public void ChangeState(ChocolatePieceStates state) { //stop current state and cleanup. if (_state != null) _state.Stop(); //start new state. _state = _stateFactory.Create(state, this); _state.Start(); }
public ChocolatePieceState Create(ChocolatePieceStates state, ChocolatePiece piece) { switch (state) { case ChocolatePieceStates.ConnectedToBar: return new ChocolatePieceStateConnectedToBar(piece); case ChocolatePieceStates.Selected: return new ChocolatePieceStateSelected(piece); case ChocolatePieceStates.Broken: return new ChocolatePieceStateBroken(piece); case ChocolatePieceStates.Inactive: return new ChocolatePieceStateInactive(piece); } Assert.IsTrue(false); return null; }