[Feature] _illusionary on any entity to disable collision (like ZHLT's zhlt_noclip)
Opened this issue · 3 comments
Allows for stuff like non-solid trains and doors for aesthetic purposes (ex: clouds), without requiring mod support. Also saves clipnodes on non-standard nonsolid entities.
In Q1/Hx2/HL1, this would only generate hull 0 for any brush that isn't a clip brush. In Q2, this wouldn't really be necessary unless making a gigantic map (since contents_mist exists), but would only generate the visual mesh.
The _noclip
key is already taken on worldspawn, for something similar but slightly different (https://ericw-tools.readthedocs.io/en/latest/qbsp.html#cmdoption-qbsp-noclip - skips building hull1/2 entirely, bsp won't load in most engines - mostly meant for debugging or to be combined with -wrbrushes
.)
Even if this would only be used on real bmodel entities, (func_door, etc.) it should probably be a different key for clarity.
Since this sounds the same as func_detail_illusionary
but just for bmodels, maybe _illusionary
for the key name?
Would it be OK if the hull0 contents was made empty, same as func_detail_illusionary
?
_illusionary
is a logical name.
Empty contents would usually be fine (and probably expected), but being able to have a solid hull 0 without hulls 1-3 is sometimes useful as well, particularly in HL for small details to be able to still receive decals without hindering movement. Idk what to call a variant that retains contents though (_pointonly
? _onlyhull0
?), and iiuc it would work the same as _illusionary
in Q2 mode (due to how q2bsp works).
Thought about this a bit more, and was wondering if perhaps a _contents
KV that overrides the contents of all of an entity's brushes (except a few special ones, like clip*
and origin
) might help? So by default, _illusionary
would set empty contents, but a HL1 could set -2
to keep zhlt_noclip
-style behavior.