////////////////////////////////////////////

// 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;

}

 

////////////////////////////////////////////////////////////////////////