Beispiel #1
0
    public override void Spawn()
    {
        base.Spawn();
        SetFlag(Flags.Reserved2, true);
        SetFlag(Flags.Reserved1, StaticTop);
        if (!base.IsTop)
        {
            return;
        }
        List <RaycastHit> obj = Pool.GetList <RaycastHit>();

        GamePhysics.TraceAll(new Ray(base.transform.position, -Vector3.up), 0f, obj, 200f, 262144, QueryTriggerInteraction.Collide);
        foreach (RaycastHit item in obj)
        {
            if (item.transform.parent != null)
            {
                ElevatorStatic component = item.transform.parent.GetComponent <ElevatorStatic>();
                if (component != null && component != this && component.isServer)
                {
                    floorPositions.Add(component);
                }
            }
        }
        Pool.FreeList(ref obj);
        floorPositions.Reverse();
        base.Floor = floorPositions.Count;
        for (int i = 0; i < floorPositions.Count; i++)
        {
            floorPositions[i].SetFloorDetails(i, this);
        }
    }
Beispiel #2
0
    public override void ClearBusy()
    {
        base.ClearBusy();
        ElevatorStatic elevatorStatic = ElevatorAtFloor(LiftPositionToFloor());

        if (elevatorStatic != null)
        {
            elevatorStatic.OnLiftArrivedAtFloor();
        }
    }
Beispiel #3
0
    public override void OnMoveBegin()
    {
        base.OnMoveBegin();
        ElevatorStatic elevatorStatic = ElevatorAtFloor(LiftPositionToFloor());

        if (elevatorStatic != null)
        {
            elevatorStatic.OnLiftLeavingFloor();
        }
    }
Beispiel #4
0
 public void SetFloorDetails(int floor, ElevatorStatic owner)
 {
     ownerElevator = owner;
     base.Floor    = floor;
 }