Skip to content

Commit d755f03

Browse files
committed
Sandbox refactoring.
1 parent 28246cc commit d755f03

File tree

5 files changed

+106
-102
lines changed

5 files changed

+106
-102
lines changed

LowLevel/Sandbox/Assets/Sandbox/Scripts/SandboxManager.cs

Lines changed: 87 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public float CameraZoom
2727

2828
private bool ColorShapeState { get; set; }
2929
private ControlsMenu.CustomButton m_PausePlayButton;
30-
private ControlsMenu.CustomButton m_StepButton;
30+
private ControlsMenu.CustomButton m_SingleStepButton;
3131
private ControlsMenu.CustomButton m_DebugButton;
3232
private ControlsMenu.CustomButton m_UIButton;
3333
private ControlsMenu.CustomButton m_QuitButton;
@@ -39,74 +39,6 @@ public float CameraZoom
3939
public ControlsMenu ControlsMenu;
4040
public float UpdatePeriodFPS = 0.1f;
4141

42-
public void SetOverrideDrawOptions(PhysicsWorld.DrawOptions overridenOptions, PhysicsWorld.DrawOptions fixedOptions)
43-
{
44-
// Finish if we're already overriding.
45-
if (m_OverrideDrawOptions != PhysicsWorld.DrawOptions.Off)
46-
return;
47-
48-
// Disable the appropriate elements.
49-
foreach (var item in m_DrawFlagElements)
50-
{
51-
if ((item.Key & overridenOptions) == 0)
52-
continue;
53-
54-
item.Value.enabledSelf = false;
55-
}
56-
57-
// Set the override.
58-
m_OverridePreviousDrawOptions = PhysicsWorld.defaultWorld.drawOptions;
59-
m_OverrideDrawOptions = overridenOptions;
60-
UpdateOverrideWorldDrawOptions(fixedOptions);
61-
}
62-
63-
public void ResetOverrideDrawOptions()
64-
{
65-
// Finish if we're not overriding.
66-
if (m_OverrideDrawOptions == PhysicsWorld.DrawOptions.Off)
67-
return;
68-
69-
// Enable all the elements.
70-
foreach (var item in m_DrawFlagElements)
71-
item.Value.enabledSelf = true;
72-
73-
// Restore previous draw flags.
74-
UpdateOverrideWorldDrawOptions(m_OverridePreviousDrawOptions);
75-
m_OverridePreviousDrawOptions = m_OverrideDrawOptions = PhysicsWorld.DrawOptions.Off;
76-
}
77-
78-
private void UpdateOverrideWorldDrawOptions(PhysicsWorld.DrawOptions fixedOptions)
79-
{
80-
// Calculate new draw flags.
81-
var newDrawOptions = (PhysicsWorld.defaultWorld.drawOptions & ~m_OverrideDrawOptions) | fixedOptions;
82-
83-
// Update the worlds.
84-
using var worlds = PhysicsWorld.GetWorlds();
85-
foreach (var world in worlds)
86-
world.drawOptions = newDrawOptions;
87-
}
88-
89-
public void SetOverrideColorShapeState(bool colorShapeState)
90-
{
91-
// Finish if we're already in the requested state.
92-
if (m_OverrideColorShapeState)
93-
return;
94-
95-
// Set the override.
96-
m_OverridePreviousColorShapeState = ColorShapeState;
97-
m_ColorShapeStateElement.enabledSelf = false;
98-
ColorShapeState = colorShapeState;
99-
m_OverrideColorShapeState = true;
100-
}
101-
102-
public void ResetOverrideColorShapeState()
103-
{
104-
// Restore previous flag.
105-
m_ColorShapeStateElement.enabledSelf = true;
106-
ColorShapeState = m_OverridePreviousColorShapeState;
107-
m_OverrideColorShapeState = m_OverridePreviousColorShapeState = false;
108-
}
109-
11042
// Override state.
11143
private PhysicsWorld.DrawOptions m_OverrideDrawOptions;
11244
private PhysicsWorld.DrawOptions m_OverridePreviousDrawOptions;
@@ -157,7 +89,7 @@ private struct MenuDefaults
15789
private Toggle m_SleepingElement;
15890
private Toggle m_ContinuousElement;
15991
private Button m_SingleStepElement;
160-
private Button m_PauseContinueElement;
92+
private Button m_PausePlayElement;
16193

16294
// Draw Elements.
16395
private Toggle m_ShowDebuggingElement;
@@ -200,15 +132,18 @@ private void Start()
200132
// Reset the controls.
201133
ControlsMenu.ResetControls();
202134
m_PausePlayButton = ControlsMenu.pausePlayButton;
203-
m_StepButton = ControlsMenu.stepButton;
135+
m_SingleStepButton = ControlsMenu.singleStepButton;
204136
m_DebugButton = ControlsMenu.debugButton;
205137
m_UIButton = ControlsMenu.uiButton;
206138
m_QuitButton = ControlsMenu.quitButton;
207139

208-
m_PausePlayButton.button.clickable.clicked += TogglePauseContinue;
209-
m_StepButton.button.clickable.clicked += SingleStep;
140+
m_PausePlayButton.button.clickable.clicked += TogglePausePlay;
141+
m_SingleStepButton.button.clickable.clicked += SingleStep;
210142
m_DebugButton.button.clickable.clicked += ToggleDebugging;
211143
m_UIButton.button.clickable.clicked += ToggleUI;
144+
145+
m_PausePlayButton.button.text = WorldPaused ? "Play" : "Pause";
146+
m_SingleStepButton.button.enabledSelf = WorldPaused;
212147

213148
var defaultWorld = PhysicsWorld.defaultWorld;
214149
m_MenuDefaults = new MenuDefaults
@@ -283,10 +218,10 @@ private void Update()
283218
SingleStep();
284219
}
285220

286-
// Pause/Continue.
221+
// Pause/Play.
287222
if (currentKeyboard.pKey.wasPressedThisFrame)
288223
{
289-
TogglePauseContinue();
224+
TogglePausePlay();
290225
}
291226

292227
// Debugging.
@@ -490,11 +425,10 @@ private void SetupOptions()
490425
m_SingleStepElement = root.Q<Button>("single-step");
491426
m_SingleStepElement.clicked += SingleStep;
492427

493-
// Pause/Continue.
494-
m_PauseContinueElement = root.Q<Button>("pause-continue");
495-
m_PauseContinueElement.enabledSelf = !WorldPaused;
496-
m_PauseContinueElement.text = WorldPaused ? "Continue (P)" : "Pause (P)";
497-
m_PauseContinueElement.clicked += TogglePauseContinue;
428+
// Pause/Play.
429+
m_PausePlayElement = root.Q<Button>("pause-play");
430+
m_PausePlayElement.text = WorldPaused ? "Play" : "Pause";
431+
m_PausePlayElement.clicked += TogglePausePlay;
498432

499433
// Quit.
500434
var quit = root.Q<Button>("quit-application");
@@ -721,7 +655,7 @@ private void TreeSelectionChanged()
721655

722656
// Unpause the world if paused.
723657
if (WorldPaused)
724-
TogglePauseContinue();
658+
TogglePausePlay();
725659

726660
m_CameraManipulator.ResetPanZoom();
727661
m_CameraZoomElement.value = m_CameraManipulator.CameraZoom;
@@ -782,10 +716,12 @@ private void Restart()
782716
m_DisableUIRestarts = false;
783717
}
784718

785-
private void TogglePauseContinue()
719+
private void TogglePausePlay()
786720
{
787721
WorldPaused = !WorldPaused;
788-
m_PauseContinueElement.text = WorldPaused ? "Continue (P)" : "Pause (P)";
722+
m_PausePlayElement.text = m_PausePlayButton.button.text = WorldPaused ? "Play" : "Pause";
723+
m_SingleStepElement.enabledSelf = WorldPaused;
724+
m_SingleStepButton.button.enabledSelf = WorldPaused;
789725

790726
// Update the worlds.
791727
using var worlds = PhysicsWorld.GetWorlds();
@@ -822,4 +758,72 @@ private static void ClearDebugDraw()
822758
foreach (var world in worlds)
823759
world.ClearDraw();
824760
}
761+
762+
public void SetOverrideDrawOptions(PhysicsWorld.DrawOptions overridenOptions, PhysicsWorld.DrawOptions fixedOptions)
763+
{
764+
// Finish if we're already overriding.
765+
if (m_OverrideDrawOptions != PhysicsWorld.DrawOptions.Off)
766+
return;
767+
768+
// Disable the appropriate elements.
769+
foreach (var item in m_DrawFlagElements)
770+
{
771+
if ((item.Key & overridenOptions) == 0)
772+
continue;
773+
774+
item.Value.enabledSelf = false;
775+
}
776+
777+
// Set the override.
778+
m_OverridePreviousDrawOptions = PhysicsWorld.defaultWorld.drawOptions;
779+
m_OverrideDrawOptions = overridenOptions;
780+
UpdateOverrideWorldDrawOptions(fixedOptions);
781+
}
782+
783+
public void ResetOverrideDrawOptions()
784+
{
785+
// Finish if we're not overriding.
786+
if (m_OverrideDrawOptions == PhysicsWorld.DrawOptions.Off)
787+
return;
788+
789+
// Enable all the elements.
790+
foreach (var item in m_DrawFlagElements)
791+
item.Value.enabledSelf = true;
792+
793+
// Restore previous draw flags.
794+
UpdateOverrideWorldDrawOptions(m_OverridePreviousDrawOptions);
795+
m_OverridePreviousDrawOptions = m_OverrideDrawOptions = PhysicsWorld.DrawOptions.Off;
796+
}
797+
798+
private void UpdateOverrideWorldDrawOptions(PhysicsWorld.DrawOptions fixedOptions)
799+
{
800+
// Calculate new draw flags.
801+
var newDrawOptions = (PhysicsWorld.defaultWorld.drawOptions & ~m_OverrideDrawOptions) | fixedOptions;
802+
803+
// Update the worlds.
804+
using var worlds = PhysicsWorld.GetWorlds();
805+
foreach (var world in worlds)
806+
world.drawOptions = newDrawOptions;
807+
}
808+
809+
public void SetOverrideColorShapeState(bool colorShapeState)
810+
{
811+
// Finish if we're already in the requested state.
812+
if (m_OverrideColorShapeState)
813+
return;
814+
815+
// Set the override.
816+
m_OverridePreviousColorShapeState = ColorShapeState;
817+
m_ColorShapeStateElement.enabledSelf = false;
818+
ColorShapeState = colorShapeState;
819+
m_OverrideColorShapeState = true;
820+
}
821+
822+
public void ResetOverrideColorShapeState()
823+
{
824+
// Restore previous flag.
825+
m_ColorShapeStateElement.enabledSelf = true;
826+
ColorShapeState = m_OverridePreviousColorShapeState;
827+
m_OverrideColorShapeState = m_OverridePreviousColorShapeState = false;
828+
}
825829
}

LowLevel/Sandbox/Assets/Sandbox/UI/ControlsMenu/ControlsMenu.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public void Reset()
3535
}
3636

3737
public CustomButton pausePlayButton { get; private set; }
38-
public CustomButton stepButton { get; private set; }
38+
public CustomButton singleStepButton { get; private set; }
3939
public CustomButton debugButton { get; private set; }
4040
public CustomButton uiButton { get; private set; }
4141
public CustomButton quitButton { get; private set; }
@@ -82,7 +82,7 @@ private void OnEnable()
8282
this[2] = new CustomButton(root.Q<Button>("button2"));
8383

8484
pausePlayButton = new CustomButton(root.Q<Button>("pause-play"));
85-
stepButton = new CustomButton(root.Q<Button>("step"));
85+
singleStepButton = new CustomButton(root.Q<Button>("single-step"));
8686
debugButton = new CustomButton(root.Q<Button>("debug"));
8787
uiButton = new CustomButton(root.Q<Button>("ui"));
8888
quitButton = new CustomButton(root.Q<Button>("quit"));

LowLevel/Sandbox/Assets/Sandbox/UI/ControlsMenu/ControlsMenu.uxml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<ui:Button text="..." name="button1" emoji-fallback-support="false" double-click-selects-word="false" triple-click-selects-line="false" display-tooltip-when-elided="false" enable-rich-text="false" focusable="false" style="margin-left: 1px; margin-right: 1px;"/>
88
<ui:Button text="..." name="button2" enable-rich-text="false" emoji-fallback-support="false" double-click-selects-word="false" triple-click-selects-line="false" display-tooltip-when-elided="false" focusable="false" style="margin-left: 1px; margin-right: 16px;"/>
99
<ui:Button text="Pause/Play" name="pause-play" enable-rich-text="false" emoji-fallback-support="false" double-click-selects-word="false" triple-click-selects-line="false" display-tooltip-when-elided="false" focusable="false" style="margin-left: 1px; margin-right: 1px;"/>
10-
<ui:Button text="Step" name="step" enable-rich-text="false" emoji-fallback-support="false" double-click-selects-word="false" triple-click-selects-line="false" display-tooltip-when-elided="false" focusable="false" style="margin-left: 1px; margin-right: 1px;"/>
10+
<ui:Button text="Step" name="single-step" enable-rich-text="false" emoji-fallback-support="false" double-click-selects-word="false" triple-click-selects-line="false" display-tooltip-when-elided="false" focusable="false" enabled="false" style="margin-left: 1px; margin-right: 1px;"/>
1111
<ui:Button text="Debug" name="debug" enable-rich-text="false" emoji-fallback-support="false" double-click-selects-word="false" triple-click-selects-line="false" display-tooltip-when-elided="false" focusable="false" style="margin-left: 1px; margin-right: 1px;"/>
1212
<ui:Button text="UI" name="ui" enable-rich-text="false" emoji-fallback-support="false" double-click-selects-word="false" triple-click-selects-line="false" display-tooltip-when-elided="false" focusable="false" style="margin-left: 1px; margin-right: 1px;"/>
1313
<ui:Button text="Quit" name="quit" enable-rich-text="false" emoji-fallback-support="false" double-click-selects-word="false" triple-click-selects-line="false" display-tooltip-when-elided="false" focusable="false" style="margin-left: 16px;"/>

LowLevel/Sandbox/Assets/Sandbox/UI/MainMenu/MainMenu.uxml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@
1515
<ui:Toggle label="Continuous" name="continuous" value="true" focusable="false"/>
1616
<ui:DropdownField label="Frequency" choices="15,30,60,120,Variable" index="2" name="frequency" focusable="false"/>
1717
<ui:Button text="Restart" name="restart" focusable="false" enabled="true"/>
18-
<ui:Button text="Pause/Continue (P)" name="pause-continue" focusable="false"/>
19-
<ui:Button text="Single-Step (S)" name="single-step" focusable="false" enabled="true"/>
18+
<ui:Button text="Pause / Play" name="pause-play" focusable="false" enabled="true"/>
19+
<ui:Button text="Single-Step" name="single-step" focusable="false" enabled="false"/>
2020
<ui:Button text="Quit " name="quit-application" focusable="false"/>
2121
</ui:VisualElement>
2222
</ui:Tab>

0 commit comments

Comments
 (0)