////////////////////////////////////////////
// description for gate entities
entity* slide_gate1;
entity* slide_gate2;
// description and functions for sliding gates
// in properties set skill1=0
// set skill2= distance to slide open
// set skill3=0
/////////////////////////////////////////////
Action slider_gate1
{
my._force = 5;
gate();
my.event =
null;
my.enable_scan
= off;
my.enable_click =
off;
slide_gate1=me;
}
Action slider_gate2
{
my._force =
5;
gate(); // set up like a gate
my.event =
null;
my.enable_scan
= off;
my.enable_click =
off;
slide_gate2=me;
my.push =
6;
}
/////////////////////////////////////////////
function slide_door_open()
{
me = slide_gate1;
while(my.__moving
== on)
{ wait(1); }
if(
(my.__moving == off)
&&(my._target_x ==
my._endpos_x)
&&(my._target_y ==
my._endpos_y)
&&(my._target_z ==
my._endpos_z))
{
_door_swing();
// open gate 1
}
me = slide_gate2;
while(my.__moving
== on)
{ wait(1); }
if(
(my.__moving == off)
&&(my._target_x ==
my._endpos_x)
&&(my._target_y ==
my._endpos_y)
&&(my._target_z ==
my._endpos_z))
{
_door_swing();
// open gate 2
}
}
}
function slide_door_close()
{
me = slide_gate1;
while(my.__moving == on)
{
wait(1);
}
if(
(my.__moving == off)
&&(my._target_x ==
my._startpos_x)
&&(my._target_y ==
my._startpos_y)
&&(my._target_z ==
my._startpos_z))
{
_door_swing();
// close gate
}
me = slide_gate2;
while(my.__moving == on)
{
wait(1);
}
if(
(my.__moving == off)
&&(my._target_x ==
my._startpos_x)
&&(my._target_y ==
my._startpos_y)
&&(my._target_z ==
my._startpos_z))
{
_door_swing();
// close gate
}}
// Desc: assign to trigger blocks to open and close
ACTION slider1_on_Trigger
{
my.event
= slide_door_open;
my.enable_sonar
= on;
}
ACTION slider1_off_trigger
{
my.event
= slide_door_close;
my.enable_sonar
= on;
}
////////////////////////////////////////////////////////////////////////