Crusher
In Portal 2, Crushers are Panels with spikes. Like panels, they are attached to robotic arms. However, directly behind the robotic arm is a massive piston which drives the crusher.
Creating Crushers
1. Create a prop_dynamic entity with the following settings:
Property Name Value World Model models/anim_wp/cursher/crusher.mdl Name crusher1 Collision Not Solid Hold animation? Yes
2. Create a 128x64x192
block brush around the spikes on the model. Tie it to a func_brush entity with the following settings:
Property Name Value Name crusher1_brush Parent crusher1,base_attach
,base_attach
. Ignore it, it will work fine in-game. This is needed to make the brush follow the crusher's animation.3. Create a 200x112x192
block brush around the previous brush. Tie it to a trigger_hurt entity with the following settings:
Property Name Value Name crusher1_trigger_hurt Parent crusher1,base_attach Damage 1000 Damage Cap 1000 Damage Type CRUSH
4. Create a 200x96x192
block brush around the trigger_hurt brush. Tie it to a trigger_portal_cleanser entity with the following settings:
Property Name Value Name crusher1_trigger_hurt Parent crusher1,base_attach Visible No
and the following outputs:
5. Create a logic_relay with the following settings:
Property Name Value Name crusher1_logic_relay_crush
with the following outputs:
6. Create a logic_relay with the following settings:
Property Name Value Name crusher1_logic_relay_uncrush
with the following outputs:
7. Create a logic_compare with the following settings:
Property Name Value Name crusher1_logic_compare Initial Value 0 Compare Value 1
and the following outputs:
8. Create a math_counter with the following settings:
Property Name Value Name crusher1_math_counter Maximum Legal Value 1
and the following outputs:
9. In order to allow the firing of outputs for entities in a func_instance you'll have to create a func_instance_io_proxy entity with the following settings:
Property Name Value Name crusher1_proxy_crush
and the following outputs:
10. Set up triggers to open or close the crusher by triggering the proxy relays on crusher1_proxy_crush. Use crusher1_logic_compare to get the state of the crusher.
Or if you're feeling lazy just copy the file from "Instances" to "Prefabs" and add your trigger in the once you load the prefab and un-group it
External Links
- Download Crusher Instances (many custom options) - A crusher instance by Skotty