Beispiel #1
0
        private static void AddButtonGroup(AtmosManager atmosManager)
        {
            EditorGUILayout.BeginHorizontal();

            GUI.enabled = Application.isPlaying && atmosManager.Mode != AtmosMode.Manual;

            if (GUILayout.Button("SetSpeed"))
            {
                AtmosManager.SetInternalSpeed();
            }

            if (!atmosManager.Running)
            {
                if (GUILayout.Button("Start"))
                {
                    atmosManager.StartSimulation();
                }
            }
            else if (GUILayout.Button("Stop"))
            {
                atmosManager.StopSimulation();
            }

            GUI.enabled = Application.isPlaying && !atmosManager.Running;

            if (GUILayout.Button("Step"))
            {
                AtmosThread.RunStep();
            }

            GUI.enabled = true;

            EditorGUILayout.EndHorizontal();
        }
Beispiel #2
0
        private void Update()
        {
            if (Mode == AtmosMode.GameLoop && Running)
            {
                try
                {
                    AtmosThread.RunStep();
                }
                catch (Exception e)
                {
                    Logger.LogError($"Exception in Atmos Thread! Will no longer mix gases!\n{e.StackTrace}",
                                    Category.Atmos);
                    throw;
                }
            }

            if (roundStartedServer)
            {
                if (tickRate == 0)
                {
                    tickRate = tickRateComplete / Steps;
                }

                tickCount += Time.deltaTime;

                if (tickCount > tickRate)
                {
                    DoTick();
                    tickCount   = 0f;
                    currentTick = ++currentTick % Steps;
                }
            }
        }
Beispiel #3
0
 private void Update()
 {
     if (Mode == AtmosMode.GameLoop && Running)
     {
         try
         {
             AtmosThread.RunStep();
         }
         catch (Exception e)
         {
             Logger.LogError($"Exception in Atmos Thread! Will no longer mix gases!\n{e.StackTrace}",
                             Category.Atmos);
             throw;
         }
     }
 }