Beispiel #1
0
 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;
 }
Beispiel #2
0
 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;
     }
 }
Beispiel #3
0
 public void StartSimulation()
 {
     simulationUpdateStatus = SimulationUpdateStatus.Intializing;
 }