void openDoors(int mode)
    {
        //	if (last_trigger_time > 0) return;

        //	if (mode == lastTriggered) return;

        //lastTriggered = mode;
        //on trigger enter
        if (mode == 0)
        {
            if (triggerMode == TriggerMode.Hold_To_Open)
            {
                return;
            }
            if (triggerMode == TriggerMode.One_By_One_Sequential)
            {
                if (sequentialCounter == 0)
                {
                    if (ds1 == null)
                    {
                        //skip doors that do not exist
                        sequentialCounter++;
                    }
                    else
                    {
                        ds1.TriggerDoor();
                    }
                }
                if (sequentialCounter == 1)
                {
                    if (ds2 == null)
                    {
                        sequentialCounter++;
                    }
                    else
                    {
                        ds2.TriggerDoor();
                    }
                }
                if (sequentialCounter == 2)
                {
                    if (ds3 == null)
                    {
                        sequentialCounter++;
                    }
                    else
                    {
                        ds3.TriggerDoor();
                    }
                }

                if (sequentialCounter == 3)
                {
                    //there's only a limit of 4 doors. If all 4 doors don't exist, nothing happens.
                    if (ds4 != null)
                    {
                        ds4.TriggerDoor();
                    }
                    //else
                    //	sequentialCounter++;
                }

                sequentialCounter++;

                if (sequentialCounter >= 3)
                {
                    sequentialCounter = 0;
                }
            }
            else if (triggerMode == TriggerMode.All_At_Once)
            {
                if (ds1 != null)
                {
                    ds1.TriggerDoor();
                }

                if (ds2 != null)
                {
                    ds2.TriggerDoor();
                }

                if (ds3 != null)
                {
                    ds3.TriggerDoor();
                }

                if (ds4 != null)
                {
                    ds4.TriggerDoor();
                }
            }
        }


        if (mode == 1)
        {
            //if (triggerMode != TriggerMode.Hold_To_Open) return;
            //if (triggered) return;
            if (triggerMode == TriggerMode.Hold_To_Open && !triggered)
            {
                if (ds1 != null)
                {
                    ds1.TriggerDoor();
                }

                if (ds2 != null)
                {
                    ds2.TriggerDoor();
                }

                if (ds3 != null)
                {
                    ds3.TriggerDoor();
                }

                if (ds4 != null)
                {
                    ds4.TriggerDoor();
                }

                triggered = true;
            }
        }

        if (mode == 2)
        {
            //if (triggerMode != TriggerMode.Hold_To_Open) return;
            if (triggerMode == TriggerMode.Hold_To_Open && triggered)
            {
                if (ds1 != null)
                {
                    ds1.TriggerDoor();
                }

                if (ds2 != null)
                {
                    ds2.TriggerDoor();
                }

                if (ds3 != null)
                {
                    ds3.TriggerDoor();
                }

                if (ds4 != null)
                {
                    ds4.TriggerDoor();
                }

                triggered = false;
            }
        }
    }