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; }
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; } } } }
/* 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(); }
private void SetState(ConveyorStatus newStatus) { CurrentStatus = newStatus; GetPositionOffset(); RefreshSprites(); }
public override void OnStartServer() { CurrentStatus = ConveyorStatus.Off; RefreshSprites(); UpdateManager.Add(CallbackType.UPDATE, UpdateMe); }
private void SyncStatus(ConveyorStatus oldStatus, ConveyorStatus newStatus) { CurrentStatus = newStatus; GetPositionOffset(); RefreshSprites(); }