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(); }
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 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; } } }