Ejemplo n.º 1
0
    private void ChangeAnimation()
    {
        var tempStatus = CurrentStatus;

        if (SyncInverted && CurrentStatus == ConveyorStatus.Forward)
        {
            CurrentStatus = ConveyorStatus.Backward;
        }
        else if (SyncInverted && CurrentStatus == ConveyorStatus.Backward)
        {
            CurrentStatus = ConveyorStatus.Forward;
        }

        spriteHandler.ChangeSprite((int)CurrentStatus);
        spriteHandler.ChangeSpriteVariant((int)CurrentDirection);

        switch (CurrentStatus)
        {
        case ConveyorStatus.Forward:
            position = directionsForward[CurrentDirection];
            break;

        case ConveyorStatus.Backward:
            position = directionsBackward[CurrentDirection];
            break;

        default:
            position = Vector3.up;
            break;
        }

        CurrentStatus = tempStatus;
    }
Ejemplo n.º 2
0
    public void SetBeltFromBuildMenu(ConveyorDirection direction)
    {
        CurrentDirection = direction;
        //Discover any neighbours:
        for (int i = 0; i < searchDirs.Length; i++)
        {
            var conveyorBelt =
                registerTile.Matrix.GetFirst <ConveyorBelt>(registerTile.LocalPosition + searchDirs[i].To3Int(), true);

            if (conveyorBelt != null)
            {
                if (conveyorBelt.AssignedSwitch != null)
                {
                    conveyorBelt.AssignedSwitch.AddConveyorBelt(new List <ConveyorBelt> {
                        this
                    });
                    CurrentStatus = conveyorBelt.CurrentStatus;
                    break;
                }
            }
        }
    }
Ejemplo n.º 3
0
    /* Make this object a subordinate object. Make the switch boss around the behavior of this thing*/

    /// <summary>
    /// This method is called from the connected Conveyor Switch when its state changes.
    /// It will update the belt current state and its sprite.
    /// </summary>
    /// <param name="switchState"></param>
    public void UpdateStatus(ConveyorBeltSwitch.State switchState)
    {
        switch (switchState)
        {
        case ConveyorBeltSwitch.State.Off:
            CurrentStatus = ConveyorStatus.Off;
            break;

        case ConveyorBeltSwitch.State.Forward:
            CurrentStatus = ConveyorStatus.Forward;
            break;

        case ConveyorBeltSwitch.State.Backward:
            CurrentStatus = ConveyorStatus.Backward;
            break;

        default:
            throw new ArgumentOutOfRangeException(nameof(switchState), switchState, null);
        }

        ChangeAnimation();
    }
Ejemplo n.º 4
0
 private void SetState(ConveyorStatus newStatus)
 {
     CurrentStatus = newStatus;
     GetPositionOffset();
     RefreshSprites();
 }
Ejemplo n.º 5
0
 public override void OnStartServer()
 {
     CurrentStatus = ConveyorStatus.Off;
     RefreshSprites();
     UpdateManager.Add(CallbackType.UPDATE, UpdateMe);
 }
Ejemplo n.º 6
0
 private void SyncStatus(ConveyorStatus oldStatus, ConveyorStatus newStatus)
 {
     CurrentStatus = newStatus;
     GetPositionOffset();
     RefreshSprites();
 }