private void receiveEngineRunCommand(MessageEngineRunCommand msg) { MessageTick pulse = new MessageTick(0); if (msg.RunCommand == EngineRunCommand.RunMax && _runState != TickEngineRunState.RunningMax) { cancelPulse(); _numberOfIncompleteSS = _subscribedActorSolarSystems.Count(); _runState = TickEngineRunState.RunningMax; startTicksTimer(); receiveTick(pulse); } else if (msg.RunCommand == EngineRunCommand.RunPulse && _runState != TickEngineRunState.Running) { _runState = TickEngineRunState.Running; _runCancel = Context.System.Scheduler.ScheduleTellRepeatedlyCancelable(0, 5, Self, pulse, ActorRefs.Nobody); startTicksTimer(); receiveTick(pulse); } else if (msg.RunCommand == EngineRunCommand.Stop && _runState != TickEngineRunState.Stopped) { _runState = TickEngineRunState.Stopped; cancelPulse(); _secondTimer.Stop(); } }
public ActorTickEngineCoordinator(IActorRef actorTextOutput, Galaxy state) { _runState = TickEngineRunState.Stopped; _state = state; _state.Actor = Self; _actorTextOutput = actorTextOutput; setupChildSolarSystemActors(); setupTimer(); Receive <MessageEngineRunCommand>(msg => receiveEngineRunCommand(msg)); Receive <MessageTick>(msg => receiveTick(msg)); Receive <MessageEngineSSCompletedCommand>(msg => receiveSSCompleted(msg)); }
public ActorTickEngineCoordinator(IActorRef actorTextOutput, Galaxy state) { _runState = TickEngineRunState.Stopped; _state = state; _state.Actor = Self; _actorTextOutput = actorTextOutput; setupChildSolarSystemActors(); setupTimer(); Receive<MessageEngineRunCommand>(msg => receiveEngineRunCommand(msg)); Receive<MessageTick>(msg => receiveTick(msg)); Receive<MessageEngineSSCompletedCommand>(msg => receiveSSCompleted(msg)); }