Simple Door Script, with three states

This simple door script uses three states — “default”, to set the initial rotation, and “open” and “closed” to switch to that status. Note that the prim for the door needs to have Path Cut Begin at 0.375 and end at 0.875 for this to work.

It’s part of a series of LSL scripts I’m using for give some training courses on LSL 🙂

rotation rotInitial;
default
{
    state_entry()
    {
        rotInitial = llGetRot();
        state closed;
    }
}
state closed
{
    touch_start(integer total_number)
    {
        llSetRot(rotInitial * llEuler2Rot(<0, 0, PI_BY_TWO>));
        state open;
    }
}
state open
{
    touch_start(integer total_number)
    {
        llSetRot(rotInitial);
        state closed;
    }
}
Print Friendly, PDF & Email