//if it's not built into Radiant, just make it yourself
/*what you will need make the pushable object
create a chair,
key: targetname
value: chair //this can be changed but you will need to amend the script at point **1**
------------
create a small square brush the same size as the chair (height may be flat)
key: targetname
value: chair_spot //this can be changed but you will need to amend the script at point **2**
------------
create the trigger, same size as the chair (trigger->use)
key: targetname
value: chair_trigger //this can be changed but you will need to amend the script at point **3**
key: setthread
value: mover //this can be changed but you will need to amend the script at point **4**
------------
copy all this script!!!
*/
main:
//edit these bits -v-v-v-
level.object = $chair //**1**<---but only the end bit!
level.object_spot = $chair_spot //**2**<---but only the end bit!
level.object_trigger = $chair_trigger //**3**<---but only the end bit!
//edit these bits -^-^-^-
level.object_trigger bind level.object
level.object_spot notsolid
//level.object_spot hide
end
object_move_spot:
local.angles = (vector_toangles ($player.origin - self.origin))
self.angles = (0 (local.angles[1]+180) 0)
self speed 1000
self moveforward 16
self waitmove
end
object_move:
self speed 48
self moveto ((level.object_spot.origin[0]) (level.object_spot.origin[1]) (self.origin[2]))
self waitmove
end
//-^-^-^-^-^-^-^-^-^-^-^-this bit will only be needed once-^-^-^-^-^-^-^-^-^-^-^-
//-v-v-v-this bit will be the only script you use for each pushable entity-v-v-v-
mover: //**4**
level.object_spot thread object_move_spot //these bits you will need to edit if giving it new names
wait 0.01
level.object thread object_move
// level.object playsound //this will have to be defined by the scripter depending on what you want to push
end
//only problem at the moment the pushable_entity will go through walls, nothing a collision_entity won't cure
here's what i came up with, the func_pushobject just hasn't been scripted,