private void ShowTreeModel(TreeFSMState currentState) { switch (currentState) { case TreeFSMState.HEALTHY: StartCoroutine(TimerUtils.WaitAndPerform(SimulationSettings.TreeExtinguishTimeBuffer, () => { TransitionTo(HealthyTree); })); break; case TreeFSMState.STUMP: StartCoroutine(TimerUtils.WaitAndPerform(SimulationSettings.TreeCutDownTimeBuffer, () => { TransitionTo(Stump); })); break; case TreeFSMState.BURNING: StartCoroutine(TimerUtils.WaitAndPerform(SimulationSettings.TreeIgnitionTimeBuffer, () => { TransitionTo(HealthyTree); })); break; case TreeFSMState.BURNT: TransitionTo(BurntTree); break; } }
public void SetState(TreeFSMState newState) { CancelTimingCoroutine(); if (!treeState.CurrentState.Equals(newState)) { treeState.Update.CurrentState(newState).FinishAndSend(); switch (newState) { case TreeFSMState.HEALTHY: harvestableInterface.ResetResourceCount(); flammable.Send(new Flammable.Update().SetCanBeIgnited(true)); break; case TreeFSMState.STUMP: flammable.Send(new Flammable.Update().SetCanBeIgnited(false)); timingCoroutine = StartCoroutine(RegrowAfter(SimulationSettings.TreeStumpRegrowthTimeSecs)); break; case TreeFSMState.BURNING: timingCoroutine = StartCoroutine(BurnAfter(SimulationSettings.TreeBurningTimeSecs)); break; case TreeFSMState.BURNT: flammableInterface.SelfExtinguish(flammable, false); timingCoroutine = StartCoroutine(RegrowAfter(SimulationSettings.BurntTreeRegrowthTimeSecs)); break; } } }
private void ShowTreeModel(TreeFSMState currentState) { switch (currentState) { case TreeFSMState.HEALTHY: StartCoroutine(TransitionAfter(HealthyTree, SimulationSettings.TreeExtinguishTimeBuffer)); break; case TreeFSMState.STUMP: StartCoroutine(TransitionAfter(Stump, SimulationSettings.TreeCutDownTimeBuffer)); break; case TreeFSMState.BURNING: StartCoroutine(TransitionAfter(BurningTree, SimulationSettings.TreeIgnitionTimeBuffer)); break; case TreeFSMState.BURNT: TransitionTo(BurntTree); break; } }
private void UpdateTreeTag(TreeFSMState treeFsmState) { switch (treeFsmState) { case TreeFSMState.HEALTHY: CurrentTreeTag = SimulationSettings.HealthyTreeTag; break; case TreeFSMState.STUMP: CurrentTreeTag = SimulationSettings.TreeStumpTag; break; case TreeFSMState.BURNING: CurrentTreeTag = SimulationSettings.BurningTreeTag; break; case TreeFSMState.BURNT: CurrentTreeTag = SimulationSettings.BurntTreeTag; break; default: return; } }
private void UpdateVisualization(TreeState.Update newState) { ShowTreeModel(newState.CurrentState.Value); _state = newState.CurrentState.Value; }