@@ -27,7 +27,7 @@ public float CameraZoom
27
27
28
28
private bool ColorShapeState { get ; set ; }
29
29
private ControlsMenu . CustomButton m_PausePlayButton ;
30
- private ControlsMenu . CustomButton m_StepButton ;
30
+ private ControlsMenu . CustomButton m_SingleStepButton ;
31
31
private ControlsMenu . CustomButton m_DebugButton ;
32
32
private ControlsMenu . CustomButton m_UIButton ;
33
33
private ControlsMenu . CustomButton m_QuitButton ;
@@ -39,74 +39,6 @@ public float CameraZoom
39
39
public ControlsMenu ControlsMenu ;
40
40
public float UpdatePeriodFPS = 0.1f ;
41
41
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
-
110
42
// Override state.
111
43
private PhysicsWorld . DrawOptions m_OverrideDrawOptions ;
112
44
private PhysicsWorld . DrawOptions m_OverridePreviousDrawOptions ;
@@ -157,7 +89,7 @@ private struct MenuDefaults
157
89
private Toggle m_SleepingElement ;
158
90
private Toggle m_ContinuousElement ;
159
91
private Button m_SingleStepElement ;
160
- private Button m_PauseContinueElement ;
92
+ private Button m_PausePlayElement ;
161
93
162
94
// Draw Elements.
163
95
private Toggle m_ShowDebuggingElement ;
@@ -200,15 +132,18 @@ private void Start()
200
132
// Reset the controls.
201
133
ControlsMenu . ResetControls ( ) ;
202
134
m_PausePlayButton = ControlsMenu . pausePlayButton ;
203
- m_StepButton = ControlsMenu . stepButton ;
135
+ m_SingleStepButton = ControlsMenu . singleStepButton ;
204
136
m_DebugButton = ControlsMenu . debugButton ;
205
137
m_UIButton = ControlsMenu . uiButton ;
206
138
m_QuitButton = ControlsMenu . quitButton ;
207
139
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 ;
210
142
m_DebugButton . button . clickable . clicked += ToggleDebugging ;
211
143
m_UIButton . button . clickable . clicked += ToggleUI ;
144
+
145
+ m_PausePlayButton . button . text = WorldPaused ? "Play" : "Pause" ;
146
+ m_SingleStepButton . button . enabledSelf = WorldPaused ;
212
147
213
148
var defaultWorld = PhysicsWorld . defaultWorld ;
214
149
m_MenuDefaults = new MenuDefaults
@@ -283,10 +218,10 @@ private void Update()
283
218
SingleStep ( ) ;
284
219
}
285
220
286
- // Pause/Continue .
221
+ // Pause/Play .
287
222
if ( currentKeyboard . pKey . wasPressedThisFrame )
288
223
{
289
- TogglePauseContinue ( ) ;
224
+ TogglePausePlay ( ) ;
290
225
}
291
226
292
227
// Debugging.
@@ -490,11 +425,10 @@ private void SetupOptions()
490
425
m_SingleStepElement = root . Q < Button > ( "single-step" ) ;
491
426
m_SingleStepElement . clicked += SingleStep ;
492
427
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 ;
498
432
499
433
// Quit.
500
434
var quit = root . Q < Button > ( "quit-application" ) ;
@@ -721,7 +655,7 @@ private void TreeSelectionChanged()
721
655
722
656
// Unpause the world if paused.
723
657
if ( WorldPaused )
724
- TogglePauseContinue ( ) ;
658
+ TogglePausePlay ( ) ;
725
659
726
660
m_CameraManipulator . ResetPanZoom ( ) ;
727
661
m_CameraZoomElement . value = m_CameraManipulator . CameraZoom ;
@@ -782,10 +716,12 @@ private void Restart()
782
716
m_DisableUIRestarts = false ;
783
717
}
784
718
785
- private void TogglePauseContinue ( )
719
+ private void TogglePausePlay ( )
786
720
{
787
721
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 ;
789
725
790
726
// Update the worlds.
791
727
using var worlds = PhysicsWorld . GetWorlds ( ) ;
@@ -822,4 +758,72 @@ private static void ClearDebugDraw()
822
758
foreach ( var world in worlds )
823
759
world . ClearDraw ( ) ;
824
760
}
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
+ }
825
829
}
0 commit comments