Skip to content

Commit

Permalink
Version 2.5.1
Browse files Browse the repository at this point in the history
  • Loading branch information
TeamSpen210 committed Aug 1, 2022
2 parents 875739a + 9082c20 commit c34de08
Show file tree
Hide file tree
Showing 134 changed files with 67,075 additions and 17,189 deletions.
9 changes: 7 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -46,12 +46,17 @@ Icon

# Output of "compiled" FGDs
build/
build_tmp/

# Cache files
.mypy_cache/
__pycache__/

# Blender backup files
*.blend1

# This shouldn't be shipped, but it is useful to have to allow using studiomdl/vtex.
hammer/gameinfo.txt

# Compiled Python modules
__pycache__/
# Autogenerated.
_version.py
148 changes: 148 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,148 @@

# Version (dev)

--------------------

# Version 2.5.1
* Tweak `comp_prop_rope` and `comp_vactube_junction` "Group" descriptions to make it clear they're optional.
* Tweak `comp_vactube_junction` "Override" description to make it clear they're optional.
* Tweak `comp_propcombine_set`/`_volume` "Model Filter" description to make it more clear.
* Add additional log messages for propcombine.
* Add `comp_relay`'s "Control Type"/"Control Value" option to most comp_ entities, to allow disabling them via fixup values.
* Make `point_viewcontrol` defaults to be more useful.
* Change the editor model for `prop_testchamber_door` to use a dashed line.
* The config format for additional plugins has changed - an ID is now required, allowing for a consistent import path to be used.
* Fix issues where `comp_flicker` may run indefinitely.
* Fix the `use_comma_sep` config option.
* Compilation of prop ropes, propcombine models, and decompilation will now all be done concurrently, using all CPU cores.
* Added a config option (`propcombine_pack`) to control whether propcombined models will be packed.
* Tweak the distance `comp_trigger_p2_goo` places the physics trigger below the surface.
* Correctly handle "only once" when collapsing outputs in entities such as `comp_relay`.
* Improve matching behaviour for the Entity Handle mode in `comp_scriptvar_setter`, and add a `Qangle()` mode for L4D2/Mapbase.
* Ensure propcombine entities are deleted from the BSP in all cases.
* The generated vactube animation prop is now textured with a valid material.
* New entity sprites: `npc_vehicledriver`, `comp_numeric_transition`, `point_broadcastclientcommand`.
* (#154): Add scale keyvalue to hammer_notes.
* (#42): Add editor models for Black Mesa health and suit chargers.
* (#76): Make all weapon entities include `CBaseAnimating` I/O and keyvalues.
* (#120): Fix `env_bubbles`, `env_embers`, `func_precipitation` and `func_smokevolume` having an `origin` keyvalue. These entities break if their origin is not `0 0 0`.
* Indicate the allowed combine ball sizes - `1-12`.
* Snap propcombine props to within 45 degrees, not 15.
* Remove `--showgroups` command line option. Source provides the `r_staticpropinfo` convar which performs the same function.
* Use a cache file to avoid needing to reparse particle system files every run.

--------------------

# Version 2.5.0
* Fix two issues causing produced BSPs to be potentially corrupt. If your maps are mysteriously crashing on load, this may fix the issue.
* Particle systems will now be detected and packed along with their dependencies. This needs configuration in the config file, since different games use different filenames.
* Optionally, the postcompiler can collapse and remove `func_instance_io_proxy` from maps entirely to save ents.
* Add comp_sequential_call: finds a sequence of entities (by distance or numeric suffix), then fires inputs delayed in order.
* Add `comp_flicker`: fires on/off and skin inputs repeatedly to simulate a flicker-on effect.
* `comp_scriptvar_setter` can now set global variables also.
* `prop_paint_bomb` will now show its collision mesh (futbols).
* Fix .ani files for models not being detected.
* Fix propcombine not working if blacklist is not set.
* Handle VPKs with non-ASCII bytes in filenames.
* BINK videos will now never be packed.
* When generating a default config, running from a sourcemod will be properly handled.

--------------------

# Version 2.4.0
* Added `comp_prop_rope_dynamic` and `comp_prop_cable_dynamic`, for generating 3D ropes as dynamic props.
* Added `comp_prop_rope_bunting`, for positioning other props along a rope (could be used for lights, supports, decoration, etc).
* Prop ropes may be configured to generate a collision mesh.
* Added `comp_propcombine_volume` & `tools/toolspropcombine`, which allows specifing propcombine regions with brushwork.
This does leave remmnants of the brush in the map, so the point entity may still need to be used if near brush limits.
* Added `comp_vactube_spline`, which generates Portal 2 vactube models following a path.
* Add an editor model for decals, like overlays have.
* Added ability to specify rotation seed for vactubes.

--------------------

# Version 2.2.0
* Add `comp_prop_rope`/`comp_prop_cable`: These allow generating 3D static prop versions of cables, like in Source 2. Place them down, choose a material, then connect them together like regular `move_rope`/`keyframe_rope`.
* The postcompiler is now able to properly handle pre-L4D entity outputs.
* Added "plugin" support to the compiler - directories can be specified which contain scripts to be run on the map in addition to the existing ones.
* Vactubes now have a "next junction" option for manually specifying the next location, and have a 45 degree curve variant.
* Add a pile of new entity sprites by @lazyRares.
* Propcombine can now use a bundled copy of Crowbar to decompile models if the sources are not available.

--------------------

# Version 2.1.6
* Add a set of cubedropper instances for Portal 2.
* Vactube enhancements:
* cross-junction splitter for vactubes
* Support for frankenturrets
* Allow having different object sets for each vactube
* Add `comp_relay`, a simplified version of relays which is collapsed into the callers.
* Update to Mapbase 4.1
* Add `UniqueState` inputs to `logic_branch_listener`, which creates a `logic_branch` for each unique input entity.
* Sprites for `skybox_swapper`, `comp_pack_replace_soundscript`, `env_portal_credits` and `info_ping_detector` by Luke.

--------------------

# Version 2.1.5
* Fix triggers not having a "Clients" spawnflag
* Add the vactube dropper instance
* Make the postcompiler more forgiving - it will now skip soundscripts it can't find/parse.

--------------------

# Version 2.1.4
* Merge in Black Mesa and latest Mapbase changes.
* Add in vastly expanded visgroup sets for most entities.
* Add a lot of internal or otherwise hidden entities, improve HL2 related support.
* Add a lot of entities to internal packing database, allowing packing resources these use in code.
* Fix vactube system not working properly with multiple source points.
* Fix some incorrect math in `comp_propcombine_set` shape checks.
* Add `--showgroups` option, which randomly tints each propcombine group to let you see which props have been combined.

--------------------

# Version 2.1.3
- Fix vactube system not functioning when only decorative objects are provided.
- Fix packing system always not packing from VPKs
- Fix `logic_player_slowtime` appearing in all games.
- Set `trigger_portal_cleanser` to default to clients and physics.
- Add some new options to `comp_trigger_p2_goo`, designed for bottomless pits.
- Add icon for `comp_entity_mover`.
- Automatically detect `pak02_dir.vpk` etc folders.

--------------------

# Version 2.1.1
- Upload the correct compiler version.

--------------------

# Version 2.1.0
* Add `comp_numeric_transition`: this allows transitioning an entity option gradually from one value to another over time.
* Add `comp_scriptvar_setter`: a tool for copying positions or similar configuration to a VScript instance.
* For Portal 2, add a vactube animation system for building decorative tube networks.
* Fix a few icons being missing.

--------------------

# Version 2.0.2
* Fix `func_dustmotes` having extra keyvalues which break it.
* Fix several classnames being present or absent which should not.
* Add back `rendermode`/`rendercolor` to `env_lightglow`, `env_sprite*`, `env_spritetrail`, `env_steam` and `env_sun`.
* Add "Invert" option to `comp_kv_setter`.
* Make `move_rope` and `keyframe_rope` interchangeable/identical, as they are ingame.

* Fix Portal 1's Hammer having a few syntax errors.

--------------------

# Version 2.0.1
* Fix an issue where brushes have stray bounding boxes and may break maps.

-------------------

# Version 2.0.0
* Combine FGD files from all engine branches into a tagged, unified database.
* Implement postcompiler allowing many features including auto-packing and static prop combine
* Add lots of new editor sprites.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
* In any `RunScriptCode` input, backticks can be used for string literals, instead of the disallowed `"` character.
* 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.
* 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.
Below are short explanations, see the "Help" display on the entity properties in Hammer for detailed functionality.:
Below are short explanations, see the "Help" display on the entity properties in Hammer for detailed functionality:

| Entity | Description |
|----------------------------------------------------|-------------|
Expand Down
4 changes: 2 additions & 2 deletions fgd/bases/CombineBallSpawners.fgd
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
@BaseClass base(BaseEntityPoint)
@BaseClass base(BaseEntityPoint) sphere(ballradius)
= CombineBallSpawners
[
spawnflags(flags) : "spawnflags" =
Expand All @@ -11,7 +11,7 @@
minspeed(float) : "Min ball speed" : 300.0 : "The minimum speed of balls that fly in the spawner"
maxspeed(float) : "Max ball speed" : 600.0 : "The maximum speed of balls that fly in the spawner"

ballradius(float) : "Ball radius" : 20.0 : "The radius of the energy balls."
ballradius(float) : "Ball radius" : 12.0 : "The size of the sprite and the collsion. This is restricted to within 1-12 units."
balltype(choices) : "Ball Type" : "Combine Energy Ball 1" =
[
0: "Combine Energy Ball 1"
Expand Down
10 changes: 10 additions & 0 deletions fgd/bases/ControlEnables.fgd
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
@BaseClass = ControlEnables: "A pair of keyvalues for specifying if a comp_ entity is enabled."
[
ctrl_type[engine](boolean) : "Invert Value?" : 0
ctrl_type(choices) : "Control Type" : 0 : "Controls how the Control Value is interpreted" =
[
0 : "Is Enabled?"
1 : "Is Disabled?"
]
ctrl_value(boolean) : "Control Value" : 1 : "Decides whether this entity is enabled. If disabled, the entity has no effect."
]
2 changes: 1 addition & 1 deletion fgd/bases/Weapon.fgd
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
@BaseClass base(BaseEntityPoint)
@BaseClass base(BaseEntityAnimating)
color(0 0 200)
sphere(fademindist)
sphere(fademaxdist)
Expand Down
6 changes: 3 additions & 3 deletions fgd/brush/comp/comp_propcombine_volume.fgd
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
@SolidClass
appliesto(srctools, -engine)
appliesto(srctools)
autovis(Postcompiler, Propcombine)
= comp_propcombine_volume : "Specifies a group of props that will be combined together. Note that unlike the propcombine_set point-entity version, this does impact some brush limits, so it is suggested to use the point version in instances and prefabs."
[
name(string) : "Name" : : "Two sets with the same name will be treated as one."

prop(studio) : "Group Model" : : "If set, a combinable model used to define which others will be combined."
skin(integer) : "Group Skin" : 0 : "The skin for the Group Model."
prop(studio) : "Model Filter" : : "If set, a combinable model used to filter which others will be combined. The propcombine set will only apply to models which could be combined with this one."
skin(integer) : "Skin Filter" : 0 : "The skin for the Model Filter."
]
10 changes: 6 additions & 4 deletions fgd/brush/comp/comp_trigger_p2_goo.fgd
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,14 @@
damagetype[engine](integer) : "Damage Type" : 1327104
damagetype(choices) : "Damage Type" : 1327104 : "The type of damage to do to the player." =
[
"32" : "Bottomless Pit (FALL)" // FALL
"16384" : "Water (DROWN)" // DROWN
"1048576": "Toxic Goo (ACID)" // ACID
"32" : "Bottomless Pit (FALL)"
"16384" : "Water (DROWN)"
"1048576": "Toxic Goo (ACID)"
]

phys_offset(float): "Physics Offset" : 64.0 : "The distance below the hurt trigger to place the dissolving trigger. This ensures objects are hidden by the goo / fog before being destroyed."
phys_offset(float): "Physics Offset" : 70.0 : "The distance below the hurt trigger to place the dissolving trigger. " +
"This ensures objects are hidden by the goo / fog before being destroyed. " +
"The default of 70 units is slightly more than the height of a fully extended Turret."

failsafe_delay(float): "Failsafe delay": "1.0" : "Delay after which non-cube entities will be killed."
dissolve_filter(filterclass): "Physics Filter" : : "Set to a filter entity to prevent certain entities from dissolving."
Expand Down
2 changes: 1 addition & 1 deletion fgd/brush/env/env_bubbles.fgd
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
@SolidClass base(BaseEntityBrush)
@SolidClass base(BaseEntity) // Origin breaks things.
color(200 200 0)
= env_bubbles: "An entity used to create a volume in which to spawn bubbles."
[
Expand Down
4 changes: 3 additions & 1 deletion fgd/brush/env/env_embers.fgd
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
@SolidClass base(BaseEntityBrush)
@SolidClass
base(BaseEntity) // Origin breaks things.
base(Angles)
color(200 200 0)
= env_embers: "An entity used to create a volume in which to spawn fire embers."
[
Expand Down
3 changes: 1 addition & 2 deletions fgd/brush/func/func_occluder.fgd
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// Occulder brushes are removed during compile, and stored very specially.
@SolidClass base(BaseEntity)
color(0 255 255)
color(0 255 255) appliesto(!engine)
= func_occluder: "A occluder brush used to manage dynamic visibility in maps. " +
"Occluders are used to dynamically determine what things are behind them, to prevent trying to draw them at all."
[
Expand All @@ -11,7 +11,6 @@
1: "Active"
]


// Inputs
input Deactivate(void) : "Deactivate the occluder, When inactive, it can be seen through."
input Activate(void) : "Activate the occluder. When active, it cannot be seen through."
Expand Down
2 changes: 1 addition & 1 deletion fgd/brush/func/func_precipitation.fgd
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
@SolidClass base(BaseEntityBrush)
@SolidClass base(BaseEntity) // Origin breaks things.
= func_precipitation: "A brush entity that creates rain and snow inside its volume."
[
renderamt(integer) : "Density (0-100%)" : 5 : "This is the amount of particles that fall down from top side of brush. " +
Expand Down
2 changes: 1 addition & 1 deletion fgd/brush/func/func_smokevolume.fgd
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
@SolidClass base(BaseEntityBrush)
@SolidClass base(BaseEntity) // Origin breaks things.
= func_smokevolume: "A brush entity that spawns smoke particles within its volume."
[
spawnflags(flags) =
Expand Down
2 changes: 1 addition & 1 deletion fgd/point/comp/comp_choreo_sceneset.fgd
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
iconsprite("editor/comp_choreo_sceneset.vmt")
autovis(Postcompiler, Sceneset)
autovis(Sounds, Choreo Scenes)
appliesto(srctools, -engine)
appliesto(srctools)
= comp_choreo_sceneset:
"Chains a set of choreographed scenes together."
[
Expand Down
2 changes: 1 addition & 1 deletion fgd/point/comp/comp_entity_finder.fgd
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
@PointClass
appliesto(srctools, -engine)
appliesto(srctools)
autovis(Postcompiler, Entity Finder)
iconsprite("editor/comp_entity_finder")
sphere(radius)
Expand Down
2 changes: 1 addition & 1 deletion fgd/point/comp/comp_entity_mover.fgd
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
@PointClass
iconsprite("editor/comp_entity_mover")
appliesto(srctools, -engine)
appliesto(srctools)
autovis(Postcompiler, Ent Mover)
sphere(distance)
line(255 255 255, targetname, target)
Expand Down
2 changes: 1 addition & 1 deletion fgd/point/comp/comp_flicker.fgd
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
@PointClass
appliesto(srctools, -engine)
appliesto(srctools)
base(BaseEntityPoint)
iconsprite("editor/comp_flicker")
line(255 255 255, targetname, target_mdl)
Expand Down
2 changes: 1 addition & 1 deletion fgd/point/comp/comp_kv_setter.fgd
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
@PointClass base(Angles)
iconsprite("editor/comp_kv_setter")
appliesto(srctools, -engine)
appliesto(srctools)
autovis(Postcompiler, KV Setter)
= 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."
Expand Down
3 changes: 2 additions & 1 deletion fgd/point/comp/comp_numeric_transition.fgd
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
@PointClass
appliesto(srctools, -engine)
appliesto(srctools)
base(logic_relay)
line(255 255 255, targetname, target)
iconsprite("editor/comp_numeric_transition")
= comp_numeric_transition : "When triggered, animates a keyvalue/input over time with various options."
[
target(target_destination) : "Entity to Control" : : "The entity which the outputs will be directed to."
Expand Down
3 changes: 2 additions & 1 deletion fgd/point/comp/comp_pack.fgd
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
@PointClass
base(ControlEnables)
iconsprite("editor/comp_pack")
appliesto(srctools, -engine)
appliesto(srctools)
autovis(Postcompiler, Packing)
= comp_pack:
"Explicitly identify resources to pack into the map. If more are needed, add additional keyvalues with SmartEdit off."
Expand Down
3 changes: 2 additions & 1 deletion fgd/point/comp/comp_pack_rename.fgd
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
@PointClass
base(ControlEnables)
iconsprite("editor/comp_pack_rename")
appliesto(srctools, -engine)
appliesto(srctools)
autovis(Postcompiler, Packing)
= comp_pack_rename:
"Pack a file into the BSP, under a different name than it starts with."
Expand Down
3 changes: 2 additions & 1 deletion fgd/point/comp/comp_pack_replace_soundscript.fgd
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
@PointClass
base(ControlEnables)
iconsprite("editor/comp_pack_replace_soundscript")
appliesto(srctools, -engine)
appliesto(srctools)
autovis(Postcompiler, Packing)
= comp_pack_replace_soundscript:
"Replace a soundscript with a different one."
Expand Down
4 changes: 2 additions & 2 deletions fgd/point/comp/comp_precache_model.fgd
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
@PointClass base(Angles)
@PointClass base(Angles, ControlEnables)
iconsprite("editor/comp_precache_model")
studioprop()
appliesto(srctools, -engine)
appliesto(srctools)
autovis(Postcompiler, Precacher)
= comp_precache_model:
"Force a specific model to load, for runtime switching. Duplicates will be removed."
Expand Down
3 changes: 2 additions & 1 deletion fgd/point/comp/comp_precache_sound.fgd
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
@PointClass
base(ControlEnables)
// This is implemented via a VScript method.
appliesto(+srctools, +VScript, -engine)
appliesto(+srctools, +VScript)
iconsprite("editor/comp_precache_sound")
autovis(Postcompiler, Precacher)
= comp_precache_sound:
Expand Down
4 changes: 2 additions & 2 deletions fgd/point/comp/comp_prop_cable.fgd
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@
animator() keyframe()
iconsprite("editor/comp_prop_cable")
line(128 128 128, targetname, bunting)
appliesto(srctools, -engine)
appliesto(srctools)
= comp_prop_cable: "Generates cables using a static prop. comp_prop_rope is an alternate name, they can be interchanged."
[
group(target_source): "Group" : : "Each set of cables must have a group name. Each name will be compiled to one cable."
group(target_source): "Group" : : "If set, all cables with the same group will be compiled to one model."
nextkey(target_destination) : "Next Cable" : : "Name of the next cable along this path."

slack(integer) : "Slack" : 25 : "How much extra length the cable has, for 'catenary' mode (by default it has the length between its two endpoints in the editor)."
Expand Down
Loading

0 comments on commit c34de08

Please sign in to comment.