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;
            }
        }
    }
    private static void AddButtonGroup(AtmosManager atmosManager)
    {
        EditorGUILayout.BeginHorizontal();

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

        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 #3
0
 private void Update()
 {
     if (Mode == AtmosMode.GameLoop && Running)
     {
         AtmosThread.RunStep();
     }
 }
 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;
         }
     }
 }