User talk:Srs bsnss
I'm sick of seeing the red text at the top of my screen, so here I am, making this page exist. Srs bsnss 01:33, 4 July 2013 (PDT)
This is kinda tricky. There are three ways that it can be done.
- Animations - this is what Valve uses. There's a cube model, I forget it's name, which has animations that are designed for specific sets of pipes and so I wouldn't recommend it, unless you copy-paste some tubes from Valve maps.
- A system of trigger_push entities. This is the dodgiest method, and is used only once or twice in the official game. It involves trigger_pushes pushing the cube through the pipes. It would not recommend it, unless you need to use the physical cube in the test.
- Path_tracks and tracktrains. This is how I do tube cubes and have generally found it to be the easiest and best way.
How to do method #3
- Inside your pipe system, at the start, create a path_track entity. Give it a name like vac_path1. Set the 'Next Stop' to vac_path2. Duplicate it (hold shift + drag), and it should automatically re-name it and connect it to the first one. Continue this process of duplicating the one before until you have enough to satisfy your pipes (pro tip: more path_tracks in bends will make it smoother). One the last one, give it the output:
OnPass > !activator > Kill
- Create a prop_dynamic_override. Set it's model to metal_box.mdl. Name it whatever you want (e.g. vac_box)
- Use the brush tool to create a func_tracktrain (a brush entity). It only needs to be a 32x32x32 cube, if not smaller. Align it with the center of the prop_dynamic_override. Give it the following settings:
Name = vac_tracktrain First Stop = vac_path1 Max/Initial Speed = 800 is good, but whatever you like
- Go back to the prop_dynamic_override's settings, set 'Parent' to vac_tracktrain.
- Create a point_template entity. Name it vac_temp. Give it the following settings:
Temp 1 = vac_tracktrain Temp 2 = vac_box
- MAKE SURE THE FLAG "PRESERVE ENTITY NAMES" IS NOT TICKED.
- Create a logic_timer. Give it the following settings:
Name = vac_timer Random Time = Yes Min. Interval = 0.3 is good but whatever you want Max. Interval = 1.3 is good but whatever you want.
Smaller gap will mean a greater frequency of cubes.
- Give it the following output:
OnTimer > vac_temp > ForceSpawn.
- Simply trigger the logic_timer, and you're done! Cubes!
But what if you want different objects? This only produces one type of cube!
- Repeat the middle steps, I.E., create a new prop_dynamic_override, a new func_tracktrain, and a new point_template for your other object.
- Create a logic_case. Give it a name like vac_spawner and give it the following outputs:
OnCase01 > vac_temp > ForceSpawn OnCase02 > vac_temp2 > ForceSpawn OnCase03 > vac_temp3 > ForceSpawn
- Go into the settings of the logic_timer. Remove the original output and give it this one:
OnTimer > vac_spawner > PickRandom.
- Ta-da! Random objects through your tubes! Make sure you give them separate names, of course, as well as re-parenting and so on.
Hopefully this helps.