void UpdateSimulationWithoutDelay() { StartFindZoneJobs(); UpdateWorldTime(); UpdateHumidity(); SimulationScript.Instance.GetSun().UpdateSun(); UpdateEarthState(); CompleteFindZoneJobs(); UpdateOrganismData(); StartOrganismJobs(); simulationUpdateStatus = SimulationUpdateStatus.Calculating; CompleteJobs(); simulationUpdateStatus = SimulationUpdateStatus.Updating; UpdateOrganismsBehavior(); UpdateOrganisms(); simulationUpdateStatus = SimulationUpdateStatus.CleaningUp; UpdateOrganismLists(); OnEndFrame?.Invoke(this, new EventArgs { }); UpdateSpeciesMotorGraphData(); simulationUpdateStatus = SimulationUpdateStatus.SettingUp; }
void UpdateSimualtion() { if (simulationUpdateStatus == SimulationUpdateStatus.SettingUp) { StartFindZoneJobs(); UpdateWorldTime(); UpdateHumidity(); SimulationScript.Instance.GetSun().UpdateSun(); UpdateEarthState(); CompleteFindZoneJobs(); UpdateOrganismData(); StartOrganismJobs(); simulationUpdateStatus = SimulationUpdateStatus.Calculating; return; } if (simulationUpdateStatus == SimulationUpdateStatus.Calculating) { UpdateJobList(); if (activeJobs.Count == 0) { simulationUpdateStatus = SimulationUpdateStatus.Updating; } } if (simulationUpdateStatus == SimulationUpdateStatus.Updating) { UpdateOrganismsBehavior(); UpdateOrganisms(); simulationUpdateStatus = SimulationUpdateStatus.CleaningUp; } if (simulationUpdateStatus == SimulationUpdateStatus.CleaningUp) { UpdateOrganismLists(); OnEndFrame?.Invoke(this, new EventArgs { }); simulationUpdateStatus = SimulationUpdateStatus.SettingUp; } }