|
1 |
| -|---------------------------| |
2 |
| -| TeamSpen's Hammer Addons | |
3 |
| -|---------------------------| |
4 |
| - |
5 |
| -# Features |
6 |
| - |
7 |
| -* Auto-packing - filtered based on search paths in gameinfo, and based on a FGD database + `comp_pack` entities. |
8 |
| -* Static prop combining - merges together adjacent props to allow them to be efficently drawn in batches. |
9 |
| -* A unified FGD database allowing keyvalues to be shared among games, and accurately defining when features were added and removed. |
10 |
| -* Many many upgrades to entity options and layouts. |
11 |
| -* New sprites for almost all entities, both custom made and from a number of sources: |
12 |
| - * [The TF2 Ultimate Mapping Resource Pack][tf2] |
13 |
| - * [ZPS: Supplemental Hammer Icons][zps] |
14 |
| - * [ts2do's HL FGDs][ts2do] |
| 1 | +<div align="center"> |
| 2 | + <img src="logo/icon_256.png" alt="Hammer Addons" height="200" /> |
| 3 | + <br> |
| 4 | + <br> |
| 5 | + <p> <b>Teamspen's Hammer Addons </b></p> |
| 6 | +</div> |
| 7 | + |
| 8 | +<hr> |
| 9 | + |
| 10 | +## Features |
| 11 | + |
| 12 | +* Auto-packing - Automatically packs non-stock game files into the bsp. Filtered based on search paths in the included custom gameinfo and FGD database. Assets can also be packed manually with `comp_pack` entities. |
| 13 | +* Static prop combining - merges together adjacent props to allow them to be efficently drawn in batches. To use, specify studioMDL's path then place `comp_propcombnine_volume` or `comp_propcombine_set` entities. |
| 14 | +* A [unified FGD database][unifiedfgd], allowing keyvalues to be shared among games, and accurately defining when features were added and removed. |
| 15 | +* Many more entity options, and an improved editor layout. |
| 16 | +* New sprites for almost all entities, both custom made and from a number of [other sources](#development). |
15 | 17 | * Adds lots more AutoVisgroups for easily hiding entities.
|
16 |
| -* Several `comp_` entities with additional features. These are mainly intended for use in instances, allowing modifying entities outside of the instance to conform or doing normally impossible things like positioning things in the void. |
17 |
| - To use, decompile props and configure the folder & studioMDL's path then place `comp_propcombine_set` entities. |
18 |
| -* For games supporing VScript: |
| 18 | +* Improvements for games supporting VScript: |
19 | 19 | * In any `RunScriptCode` input, backticks can be used for string literals, instead of the disallowed `"` character.
|
20 | 20 | * In addition to the normal `Entity Scripts` section, a new `Init Code` field can be used to write code that's packed and added to those scripts. Useful for setting configuration options etc. Backticks can be used here too.
|
| 21 | +* New `comp_` entities. These are mainly intended for use in instances, allowing modifying entities outside of the instance to conform or doing normally impossible things like positioning things in the void. |
| 22 | +Below are short explanations, see the "Help" display on the entity properties in Hammer for detailed functionality.: |
21 | 23 |
|
22 |
| -# Installation |
23 |
| - |
24 |
| -* Download the release from the [releases tab][releases]. |
25 |
| -* Use the provided FGD instead of the vanilla one. (Issues/PRs welcome for any entity improvements.) |
26 |
| -* Add the `hammer/` folder to gameinfo.txt, to provide sprites for the compiler. |
27 |
| -* Add the postcompiler to the compile commands: |
28 |
| - 1. Create a new command after VBSP, using the "Executable" type and |
29 |
| - choosing the postcompiler EXE. |
30 |
| - 2. In the parameters, enter `--propcombine $path/$file`. |
31 |
| -* Compile a map once, which should produce the config file `Game Folder/srctools.vdf` (this can be placed in any parent folder of the VMF). |
32 |
| -* Configure the file as desired, then compile your maps to apply the changes. |
33 |
| -* If using BEEMOD2.4, change Hammer -> Options -> Build Programs to use `vrad_original.exe`. |
| 24 | +| Entity | Description | |
| 25 | +|----------------------------------------------------|-------------| |
| 26 | + `comp_flicker` | Fires on/off and skin inputs repeatedly to simulate a flicker-on effect. | |
| 27 | +| `comp_choreo_sceneset` | Chains a set of choreographed scenes together. | |
| 28 | +| `comp_entity_finder` | Finds the closest entity of a given type, then applies various transformations. Outputs from this entity will be moved to the found entity. Further keyvalues can be set manually with SmartEdit off. | |
| 29 | +| `comp_entity_mover` | Shift an entity by a given amount. This is useful to place entities into the void, for example. | |
| 30 | +| `comp_kv_setter` | Sets a keyvalue on an entity to a new value. This is useful to compute spawnflags, or to adjust keyvalues when the target entity's options can't be set to a fixup variable. | |
| 31 | +| `comp_numeric_transition` | When triggered, animates a keyvalue/input over time with various options. | |
| 32 | +| `comp_pack` | Explicitly identify resources to pack into the map, in addition to automatic detection. | |
| 33 | +| `comp_pack_rename` | Pack a file into the BSP, under a different name than it starts with. | |
| 34 | +| `comp_pack_replace_soundscript` | Replace a soundscript with a different one. | |
| 35 | +| `comp_precache_model` | Force a specific model to load, for runtime switching. Duplicates will be removed. | |
| 36 | +| `comp_precache_sound` | Force a specific sound to load, for runtime switching. Duplicates will be removed. More keyvalues can be added. | |
| 37 | +| `comp_prop_cable`/`comp_prop_rope` | Generates 3D cables using a static prop. | |
| 38 | +| `comp_prop_cable_dynamic`/`comp_prop_rope_dynamic` | Modifies the above to generate a dynamic prop, instead. | |
| 39 | +| `comp_propcombine_set`/`comp_propcombine_volume` | Specifies a group of props that will be combined together, so they more efficiently render. | |
| 40 | +| `comp_relay` | Simplified version of `logic_relay` which is able to be optimised away by the compiler. The various inputs and outputs are useful for bundling commands together, or using more appopriate verbs. Inputs only work if given directly from entities (or via instance redirection), not in-game or dynamically. All inputs/outputs may pass through any parameter, if no override is specified. | |
| 41 | +| `comp_scriptvar_setter` | Assigns data or a group of data to a variable in an entity's VScript scope on spawn. To set an array, provide an index in the variable name in the form `varname[4]`. All the comp_scriptvars pointing to that variable will be collected into a single array literal, with holes filled by *null*. If the brackets are empty, these values will fill those holes and then append to the end in an arbitrary order. | |
| 42 | +| `comp_sequential_call` | Finds a sequence of entities (by distance or numeric suffix), then fires inputs delayed in order. | |
| 43 | +| `comp_vactube_end` | Marks the end point of a vactube. Objects reaching here will be cleaned up. | |
| 44 | +| `comp_vactube_junction` | Marks a junction in a vactube, where they're forced to change direction. Scanner models near straight nodes will be detected automatically. | |
| 45 | +| `comp_vactube_spline` | Generates a dynamic vactube model following a set of points. | |
| 46 | +| `comp_vactube_object` | Registers objects that can appear in the tubing. | |
| 47 | +| `comp_vactube_start` | Marks the start point of a vactube. This is where they spawn. | |
34 | 48 |
|
35 |
| -[releases]: https://github.com/TeamSpen210/HammerAddons/releases |
36 |
| -[skotty]: http://forums.thinking.withportals.com/downloads.php?view=detail&df_id=507 |
37 |
| -[tf2]: http://forums.tf2maps.net/showthread.php?t=4674 |
38 |
| -[ts2do]: http://halflife2.filefront.com/file/HalfLife_2_Upgraded_Base_FGDs;48139 |
39 |
| -[zps]: http://www.necrotalesgames.com/tools/index.php |
40 | 49 |
|
| 50 | +## Installation |
41 | 51 |
|
42 |
| -## Vactubes (Portal 2 only) |
| 52 | +* Follow [this guide][installationwiki]. |
| 53 | +* If using BEEMOD2.4, change Hammer -> Options -> Build Programs to use `vrad_original.exe`. |
43 | 54 |
|
44 |
| -This implements a dynamic vactube system in a similar way to Valve's system, including randomised objects, complex junctions and dropper support. |
45 | 55 |
|
46 |
| -* To use, place and configure `comp_vactube_object` entities to specify which items can appear in tubes. |
47 |
| -* To build paths a comp_vactube_start entity at the beginning of the track, and a `comp_vactube_end` at the end. |
48 |
| -* Then at each corner/junction place a `comp_vactube_junction` ent, picking the appropriate type. These all need to be rotated appropriately so the arrows point in the correct direction to be matched up by the compiler. |
49 |
| -* To split a path into multiple tubes, you'll need to use one of the "splitter" junction types. |
50 |
| -* To join multiple back into a single pipe, simply overlap two junctions such that their outputs both point down the same route. |
51 |
| -* For droppers, simply place the supplied `instances/cubedropper/dropper_vactube.vmf` instance, and run a path up to the vactube end entity in the top. Place a `prop_weighted_cube` inside the dropper to specify which cube type it will spawn. The specific route leading to the dropper will be detected and only replacement cubes will be sent this way. You'll want to add a splitter just before the dropper, so the tube can have decorative items flowing through it constantly. |
52 |
| -* To place the vactube scanner TVs, simply add a "straight"-type junction inside the model, then place the `prop_dynamic`s for the screen and optionally the spinner. The screen will need the supplied `_new` model, so both orientations have all the skins. They will automatically be detected and flash on when objects pass. |
53 |
| -* To avoid visual collisions, you may want to turn off the automatic spawning on one or more spawn points, then use the outputs on a junction to manually spawn objects in sync with another path. |
54 | 56 |
|
| 57 | +## Development |
55 | 58 |
|
56 |
| -# Development |
| 59 | +* Mapbase's FGDs have been imported as a submodule. |
| 60 | +* Some entity sprites are taken from: |
| 61 | + * [The TF2 Ultimate Mapping Resource Pack][tf2] |
| 62 | + * [ZPS: Supplemental Hammer Icons][zps] |
| 63 | + * [ts2do's HL FGDs][ts2do] |
57 | 64 |
|
58 |
| -* Mapbase's FGDs have been imported as a submodule, to track which version has been merged into this repo. |
| 65 | +[releases]: https://github.com/TeamSpen210/HammerAddons/releases |
| 66 | +[installationwiki]: https://github.com/TeamSpen210/HammerAddons/wiki/Installation |
| 67 | +[unifiedfgd]: https://github.com/TeamSpen210/HammerAddons/wiki/Unified-FGD |
| 68 | +[skotty]: http://forums.thinking.withportals.com/downloads.php?view=detail&df_id=507 |
| 69 | +[tf2]: http://forums.tf2maps.net/showthread.php?t=4674 |
| 70 | +[ts2do]: http://halflife2.filefront.com/file/HalfLife_2_Upgraded_Base_FGDs;48139 |
| 71 | +[zps]: http://www.necrotalesgames.com/tools/index.php |
0 commit comments