gg.easy.airship 0.1.2129 → 0.1.2131
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Editor/Packages/AirshipPackagesWindow.cs +1 -1
- package/Runtime/Code/Bundles/SystemRoot.cs +12 -0
- package/Runtime/Code/Luau/LuauCoreCallbacks.cs +2 -0
- package/Runtime/Code/Luau/ReflectionList.cs +1 -0
- package/Runtime/Code/LuauAPI/WheelFrictionCurveAPI.cs +9 -0
- package/Runtime/Code/LuauAPI/WheelFrictionCurveAPI.cs.meta +3 -0
- package/Runtime/Code/MainMenu/MainMenuSceneManager.cs +5 -1
- package/Runtime/Code/Network/Simulation/AirshipSimulationManager.cs +6 -0
- package/Runtime/Code/Network/StateSystem/AirshipNetworkedStateManager.cs +1 -1
- package/Runtime/Code/Player/Character/MovementSystems/Character/CharacterMovement.cs +41 -9
- package/Runtime/Code/TSCodeGen/TypeGenerator.cs +1 -0
- package/Runtime/Code/VoxelWorld/Editor/VoxelBuilderEditorWindow.cs +4 -2
- package/Runtime/Code/VoxelWorld/Editor/VoxelWorldEditor.cs +27 -4
- package/Runtime/Code/VoxelWorld/Resources/{VoxelWorldURP.shadergraph → VoxelWorldAtlasURP.shadergraph} +129 -141
- package/Runtime/Code/VoxelWorld/Resources/{VoxelWorldURP.mat → VoxelWorldMatURP.mat} +2 -2
- package/Runtime/Code/VoxelWorld/TexturePacker.cs +14 -18
- package/Runtime/Code/VoxelWorld/VoxelBlockDefinition.cs +1 -1
- package/Runtime/Code/VoxelWorld/VoxelBlocks.cs +1 -1
- package/Runtime/Code/VoxelWorld/VoxelMeshProcessor.cs +8 -2
- package/Runtime/Code/VoxelWorld/VoxelWorld.cs +5 -1
- package/Runtime/Code/VoxelWorld/VoxelWorldChunk.cs +9 -3
- package/ThirdParty/Graphy - Ultimate Stats Monitor/Editor/GraphyManagerEditor.cs +4 -4
- package/ThirdParty/Graphy - Ultimate Stats Monitor/Materials/RAM_Reserved_Graph.mat +12 -67
- package/{Runtime/Code/VoxelWorld/Resources/WireFrame.mat → ThirdParty/Graphy - Ultimate Stats Monitor/Materials/Resim_Graph.mat } +21 -50
- package/{Runtime/Code/VoxelWorld/Resources/WireFrame.mat.meta → ThirdParty/Graphy - Ultimate Stats Monitor/Materials/Resim_Graph.mat.meta } +1 -1
- package/ThirdParty/Graphy - Ultimate Stats Monitor/Prefab/[Graphy].prefab +1669 -78
- package/ThirdParty/Graphy - Ultimate Stats Monitor/Runtime/Fps/G_FpsGraph.cs +52 -73
- package/ThirdParty/Graphy - Ultimate Stats Monitor/Runtime/GraphyDebugger.cs +110 -187
- package/ThirdParty/Graphy - Ultimate Stats Monitor/Runtime/GraphyManager.cs +448 -328
- package/ThirdParty/Graphy - Ultimate Stats Monitor/Runtime/Resim/G_ResimGraph.cs +188 -0
- package/ThirdParty/Graphy - Ultimate Stats Monitor/Runtime/Resim/G_ResimGraph.cs.meta +3 -0
- package/ThirdParty/Graphy - Ultimate Stats Monitor/Runtime/Resim/G_ResimManager.cs +226 -0
- package/ThirdParty/Graphy - Ultimate Stats Monitor/Runtime/Resim/G_ResimManager.cs.meta +3 -0
- package/ThirdParty/Graphy - Ultimate Stats Monitor/Runtime/Resim/G_ResimMonitor.cs +141 -0
- package/ThirdParty/Graphy - Ultimate Stats Monitor/Runtime/Resim/G_ResimMonitor.cs.meta +3 -0
- package/ThirdParty/Graphy - Ultimate Stats Monitor/Runtime/Resim.meta +3 -0
- package/ThirdParty/Graphy - Ultimate Stats Monitor/Runtime/Tayx.Graphy.asmdef +4 -1
- package/ThirdParty/Mirror/Components/NetworkStatistics.cs +49 -49
- package/URP/AirshipURPAsset.asset +3 -3
- package/package.json +1 -1
- /package/Runtime/Code/VoxelWorld/Resources/{VoxelWorldURP.shadergraph.meta → VoxelWorldAtlasURP.shadergraph.meta} +0 -0
- /package/Runtime/Code/VoxelWorld/Resources/{VoxelWorldURP.mat.meta → VoxelWorldMatURP.mat.meta} +0 -0
|
@@ -395,7 +395,7 @@ namespace Editor.Packages {
|
|
|
395
395
|
|
|
396
396
|
// Uncomment to just build iOS
|
|
397
397
|
if (isCoreMaterials) {
|
|
398
|
-
|
|
398
|
+
platforms.Clear();
|
|
399
399
|
// platforms.Add(AirshipPlatform.iOS);
|
|
400
400
|
// platforms.Add(AirshipPlatform.Android);
|
|
401
401
|
platforms.Add(AirshipPlatform.Windows);
|
|
@@ -36,6 +36,7 @@ public class SystemRoot : Singleton<SystemRoot> {
|
|
|
36
36
|
public static bool startedLoadingExtraBundle = false;
|
|
37
37
|
public static bool preWarmedCoreShaders = false;
|
|
38
38
|
public AssetBundle coreMaterialsAssetBundle;
|
|
39
|
+
private bool loadInProgress = false;
|
|
39
40
|
|
|
40
41
|
private void Awake() {
|
|
41
42
|
DontDestroyOnLoad(this);
|
|
@@ -142,12 +143,21 @@ public class SystemRoot : Singleton<SystemRoot> {
|
|
|
142
143
|
/// <param name="forceUnloadAll">If false, we attempt to keep packages that are already loaded in place (instead of unloading and re-loading them)</param>
|
|
143
144
|
/// <returns></returns>
|
|
144
145
|
public IEnumerator LoadPackages(List<AirshipPackage> packages, bool useUnityAssetBundles, bool forceUnloadAll = true, bool compileLuaOnClient = false, Action<string> onLoadingScreenStep = null) {
|
|
146
|
+
if (this.loadInProgress) {
|
|
147
|
+
Debug.LogWarning("Tried to load packages when load was already in progress. Waiting...");
|
|
148
|
+
while (this.loadInProgress) {
|
|
149
|
+
yield return null;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
this.loadInProgress = true;
|
|
153
|
+
|
|
145
154
|
#if AIRSHIP_PLAYER
|
|
146
155
|
print("Packages to load:");
|
|
147
156
|
for (int i = 0; i < packages.Count; i++) {
|
|
148
157
|
print($" {i}. {packages[i].id} (Assets v{packages[i].assetVersion}) (Code v{packages[i].codeVersion})");
|
|
149
158
|
}
|
|
150
159
|
#endif
|
|
160
|
+
|
|
151
161
|
//
|
|
152
162
|
// print("Already loaded asset bundles:");
|
|
153
163
|
// {
|
|
@@ -201,6 +211,7 @@ public class SystemRoot : Singleton<SystemRoot> {
|
|
|
201
211
|
}
|
|
202
212
|
if (zip == null) {
|
|
203
213
|
Debug.LogError("Zip was null. This is bad.");
|
|
214
|
+
this.loadInProgress = false;
|
|
204
215
|
yield break;
|
|
205
216
|
}
|
|
206
217
|
|
|
@@ -396,6 +407,7 @@ public class SystemRoot : Singleton<SystemRoot> {
|
|
|
396
407
|
}
|
|
397
408
|
}
|
|
398
409
|
|
|
410
|
+
this.loadInProgress = false;
|
|
399
411
|
#if AIRSHIP_PLAYER
|
|
400
412
|
Debug.Log("[Airship]: Finished loading asset bundles in " + sw.ElapsedMilliseconds + " ms.");
|
|
401
413
|
#endif
|
|
@@ -780,6 +780,8 @@ public partial class LuauCore : MonoBehaviour {
|
|
|
780
780
|
return LuauError(thread, "ERROR - " + propName + " get property not found on class " + staticClassName);
|
|
781
781
|
}
|
|
782
782
|
else {
|
|
783
|
+
// Not a static class object:
|
|
784
|
+
|
|
783
785
|
// Profiler.BeginSample("GetRef");
|
|
784
786
|
System.Object objectReference = ThreadDataManager.GetObjectReference(thread, instanceId);
|
|
785
787
|
// Profiler.EndSample();
|
|
@@ -148,6 +148,7 @@ namespace Luau {
|
|
|
148
148
|
[typeof(ScrollRect)] = LuauContextAll,
|
|
149
149
|
[typeof(Text)] = LuauContextAll,
|
|
150
150
|
[typeof(RectMask2D)] = LuauContextAll,
|
|
151
|
+
[typeof(WheelFrictionCurve)] = LuauContextAll,
|
|
151
152
|
|
|
152
153
|
// Particles
|
|
153
154
|
[typeof(ParticleSystem)] = LuauContextAll,
|
|
@@ -244,7 +244,11 @@ public class MainMenuSceneManager : MonoBehaviour {
|
|
|
244
244
|
// Delete core packages
|
|
245
245
|
var path = Path.Combine(Application.persistentDataPath, "Packages", "@Easy");
|
|
246
246
|
if (Directory.Exists(path)) {
|
|
247
|
-
|
|
247
|
+
try {
|
|
248
|
+
Directory.Delete(path, true);
|
|
249
|
+
} catch (Exception e) {
|
|
250
|
+
Debug.LogError(e);
|
|
251
|
+
}
|
|
248
252
|
}
|
|
249
253
|
|
|
250
254
|
// yield return SceneManager.UnloadSceneAsync("MainMenu");
|
|
@@ -2,6 +2,7 @@ using System;
|
|
|
2
2
|
using System.Collections.Generic;
|
|
3
3
|
using System.Linq;
|
|
4
4
|
using Mirror;
|
|
5
|
+
using Tayx.Graphy.Resim;
|
|
5
6
|
using UnityEngine;
|
|
6
7
|
using UnityEngine.Serialization;
|
|
7
8
|
|
|
@@ -144,6 +145,10 @@ namespace Code.Network.Simulation
|
|
|
144
145
|
// and capturing snapshots of the interpolated state on its own timeline.
|
|
145
146
|
var time = NetworkServer.active ? NetworkTime.time : Time.unscaledTimeAsDouble;
|
|
146
147
|
|
|
148
|
+
// Update debug overlay
|
|
149
|
+
var buffer = NetworkClient.bufferTime / Math.Min(Time.timeScale, 1);
|
|
150
|
+
G_ResimMonitor.FrameObserverBuffer = buffer;
|
|
151
|
+
|
|
147
152
|
if (!isActive) return;
|
|
148
153
|
if (Physics.simulationMode != SimulationMode.Script) return;
|
|
149
154
|
|
|
@@ -268,6 +273,7 @@ namespace Code.Network.Simulation
|
|
|
268
273
|
private void PerformResimulation(double baseTime)
|
|
269
274
|
{
|
|
270
275
|
Debug.Log($"T:{Time.unscaledTimeAsDouble} Resimulating from {baseTime}");
|
|
276
|
+
G_ResimMonitor.FrameResimValue = 100;
|
|
271
277
|
|
|
272
278
|
if (replaying)
|
|
273
279
|
{
|
|
@@ -179,7 +179,7 @@ namespace Code.Network.StateSystem
|
|
|
179
179
|
// in poor network conditions.
|
|
180
180
|
this.serverCommandBufferTargetSize =
|
|
181
181
|
Math.Min(this.serverCommandBufferMaxSize,
|
|
182
|
-
((int)Math.Ceiling(NetworkClient.sendInterval / Time.fixedDeltaTime)) *
|
|
182
|
+
((int)Math.Ceiling(NetworkClient.sendInterval / Time.fixedDeltaTime)) * 2);
|
|
183
183
|
print("Command buffer max size is " + this.serverCommandBufferMaxSize + ". Target size: " + this.serverCommandBufferTargetSize);
|
|
184
184
|
|
|
185
185
|
this.inputHistory = new((int)Math.Ceiling(1f / Time.fixedDeltaTime));
|
|
@@ -158,6 +158,8 @@ namespace Code.Player.Character.MovementSystems.Character
|
|
|
158
158
|
private Vector3 lookVector;
|
|
159
159
|
private BinaryBlob customInputData;
|
|
160
160
|
|
|
161
|
+
[SyncVar] public Vector3 startingLookVector;
|
|
162
|
+
|
|
161
163
|
// State information
|
|
162
164
|
public CharacterSnapshotData currentMoveSnapshot = new CharacterSnapshotData() {};
|
|
163
165
|
public CharacterAnimationSyncData currentAnimState = new CharacterAnimationSyncData() {};
|
|
@@ -186,6 +188,16 @@ namespace Code.Player.Character.MovementSystems.Character
|
|
|
186
188
|
_cameraTransform = Camera.main.transform;
|
|
187
189
|
}
|
|
188
190
|
|
|
191
|
+
public override void OnStartClient() {
|
|
192
|
+
base.OnStartClient();
|
|
193
|
+
this.lookVector = this.startingLookVector;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
public override void OnStartServer() {
|
|
197
|
+
base.OnStartServer();
|
|
198
|
+
this.lookVector = this.startingLookVector;
|
|
199
|
+
}
|
|
200
|
+
|
|
189
201
|
public override void SetMode(NetworkedStateSystemMode mode)
|
|
190
202
|
{
|
|
191
203
|
Debug.Log("Running movement in " + mode + " mode for " + this.name + ".");
|
|
@@ -845,7 +857,7 @@ namespace Code.Player.Character.MovementSystems.Character
|
|
|
845
857
|
|
|
846
858
|
//Instantly move at the desired speed
|
|
847
859
|
var moveMagnitude = characterMoveVelocity.magnitude;
|
|
848
|
-
var
|
|
860
|
+
var flatVelMagnitude = flatVelocity.magnitude;
|
|
849
861
|
|
|
850
862
|
//Don't move character in direction its already moveing
|
|
851
863
|
//Positive dot means we are already moving in this direction. Negative dot means we are moving opposite of velocity.
|
|
@@ -863,13 +875,13 @@ namespace Code.Player.Character.MovementSystems.Character
|
|
|
863
875
|
newVelocity.z = command.moveDir.z * currentMoveSnapshot.currentSpeed;
|
|
864
876
|
}
|
|
865
877
|
else if (!isImpulsing && !currentMoveSnapshot.airborneFromImpulse && //Not impulsing AND under our max speed
|
|
866
|
-
(
|
|
878
|
+
(flatVelMagnitude < (movementSettings.useAccelerationMovement
|
|
867
879
|
? currentMoveSnapshot.currentSpeed
|
|
868
880
|
: Mathf.Max(movementSettings.sprintSpeed, currentMoveSnapshot.currentSpeed) + 1)))
|
|
869
881
|
{
|
|
870
882
|
if (movementSettings.useAccelerationMovement)
|
|
871
883
|
{
|
|
872
|
-
newVelocity += Vector3.ClampMagnitude(characterMoveVelocity, currentMoveSnapshot.currentSpeed -
|
|
884
|
+
newVelocity += Vector3.ClampMagnitude(characterMoveVelocity, currentMoveSnapshot.currentSpeed - flatVelMagnitude);
|
|
873
885
|
}
|
|
874
886
|
else
|
|
875
887
|
{
|
|
@@ -879,7 +891,7 @@ namespace Code.Player.Character.MovementSystems.Character
|
|
|
879
891
|
// if(Mathf.Abs(characterMoveVelocity.z) > Mathf.Abs(newVelocity.z)){
|
|
880
892
|
// newVelocity.z = characterMoveVelocity.z;
|
|
881
893
|
// }
|
|
882
|
-
if (moveMagnitude + .5f >=
|
|
894
|
+
if (moveMagnitude + .5f >= flatVelMagnitude)
|
|
883
895
|
{
|
|
884
896
|
newVelocity.x = characterMoveVelocity.x;
|
|
885
897
|
newVelocity.z = characterMoveVelocity.z;
|
|
@@ -888,11 +900,30 @@ namespace Code.Player.Character.MovementSystems.Character
|
|
|
888
900
|
}
|
|
889
901
|
else
|
|
890
902
|
{
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
903
|
+
if(this.movementSettings.useAccelerationMovement){
|
|
904
|
+
//Using acceleration movement
|
|
905
|
+
newVelocity += normalizedMoveDir * (dirDot * dirDot / 2) *
|
|
906
|
+
(groundedState == CharacterState.Sprinting
|
|
907
|
+
? this.movementSettings.sprintAccelerationForce
|
|
908
|
+
: movementSettings.accelerationForce);
|
|
909
|
+
}else{
|
|
910
|
+
//Impulsing
|
|
911
|
+
var forwardMod = Mathf.Max(0, dirDot);
|
|
912
|
+
var addedForce = groundedState == CharacterState.Sprinting
|
|
913
|
+
? this.movementSettings.sprintAccelerationForce
|
|
914
|
+
: movementSettings.accelerationForce;
|
|
915
|
+
if(flatVelMagnitude+addedForce < currentMoveSnapshot.currentSpeed){
|
|
916
|
+
forwardMod = 1;
|
|
917
|
+
}
|
|
918
|
+
|
|
919
|
+
//Apply the force
|
|
920
|
+
newVelocity += normalizedMoveDir * forwardMod * addedForce;
|
|
921
|
+
|
|
922
|
+
//Never get faster than you've been impulsed
|
|
923
|
+
var flatVel = Vector3.ClampMagnitude(new Vector3(newVelocity.x, 0, newVelocity.z), Mathf.Max(addedForce, flatVelMagnitude));
|
|
924
|
+
newVelocity.x = flatVel.x;
|
|
925
|
+
newVelocity.z = flatVel.z;
|
|
926
|
+
}
|
|
896
927
|
}
|
|
897
928
|
|
|
898
929
|
//print("isreplay: " + replaying + " didHitForward: " + didHitForward + " moveVec: " + characterMoveVector + " colliderDot: " + colliderDot + " for: " + forwardHit.collider?.gameObject.name + " point: " + forwardHit.point);
|
|
@@ -1166,6 +1197,7 @@ namespace Code.Player.Character.MovementSystems.Character
|
|
|
1166
1197
|
}
|
|
1167
1198
|
|
|
1168
1199
|
public void SetMoveInput(Vector3 moveDir, bool jump, bool sprinting, bool crouch, int moveDirModeInt) {
|
|
1200
|
+
moveDir = moveDir.normalized;
|
|
1169
1201
|
var moveDirMode = (MoveDirectionMode)moveDirModeInt;
|
|
1170
1202
|
switch (moveDirMode) {
|
|
1171
1203
|
case MoveDirectionMode.World:
|
|
@@ -131,15 +131,17 @@ namespace Code.Airship.Resources.VoxelRenderer.Editor {
|
|
|
131
131
|
//Select this
|
|
132
132
|
selection.gameObject.SetActive(true);
|
|
133
133
|
Selection.activeGameObject = selection.gameObject;
|
|
134
|
+
Debug.Log("select.1");
|
|
134
135
|
}
|
|
135
136
|
|
|
136
|
-
if (VoxelWorldEditorToolBase.buttonActive
|
|
137
|
+
if (VoxelWorldEditorToolBase.buttonActive) {
|
|
137
138
|
//If we're not in selection mode, disable the selection zone
|
|
138
139
|
selection = world.GetComponentInChildren<SelectionZone>();
|
|
139
140
|
|
|
140
141
|
if (selection) {
|
|
141
142
|
//Select the world
|
|
142
143
|
Selection.activeGameObject = world.gameObject;
|
|
144
|
+
Debug.Log("select.2");
|
|
143
145
|
//disable it
|
|
144
146
|
selection.gameObject.SetActive(false);
|
|
145
147
|
|
|
@@ -150,7 +152,7 @@ namespace Code.Airship.Resources.VoxelRenderer.Editor {
|
|
|
150
152
|
|
|
151
153
|
//Show a foldable help box
|
|
152
154
|
EditorGUILayout.HelpBox(
|
|
153
|
-
"Left click to add\nShift+click to delete\nCtrl+click for repeat placement\
|
|
155
|
+
"Left click to add\nShift+click to delete\nCtrl+click for repeat placement\nG to rotate highlighted block",
|
|
154
156
|
MessageType.Info);
|
|
155
157
|
|
|
156
158
|
//active = EditorGUILayout.Toggle("Active", active);
|
|
@@ -233,9 +233,6 @@ public class VoxelWorldEditor : UnityEditor.Editor {
|
|
|
233
233
|
//Add selection handler
|
|
234
234
|
Selection.selectionChanged += OnSelectionChanged;
|
|
235
235
|
|
|
236
|
-
//Add a handler for the gizmo refresh event
|
|
237
|
-
SceneView.duringSceneGui += GizmoRefreshEvent;
|
|
238
|
-
|
|
239
236
|
EditorApplication.update += OnEditorUpdate;
|
|
240
237
|
|
|
241
238
|
//Save handler
|
|
@@ -428,6 +425,9 @@ public class VoxelWorldEditor : UnityEditor.Editor {
|
|
|
428
425
|
}
|
|
429
426
|
|
|
430
427
|
AirshipEditorGUI.HorizontalLine();
|
|
428
|
+
|
|
429
|
+
EditorGUILayout.LabelField("Quality", EditorStyles.boldLabel);
|
|
430
|
+
world.useSimplifiedVoxels = GUILayout.Toggle(world.useSimplifiedVoxels, new GUIContent("Simplified Voxels", "If enabled quarter blocks will be rendered as default cube voxels."));
|
|
431
431
|
|
|
432
432
|
EditorGUILayout.LabelField("Editing", EditorStyles.boldLabel);
|
|
433
433
|
|
|
@@ -509,8 +509,14 @@ public class VoxelWorldEditor : UnityEditor.Editor {
|
|
|
509
509
|
world.FullWorldUpdate();
|
|
510
510
|
}
|
|
511
511
|
}
|
|
512
|
+
|
|
513
|
+
private void OnEnable() {
|
|
514
|
+
SceneView.duringSceneGui += GizmoRefreshEvent;
|
|
515
|
+
}
|
|
512
516
|
|
|
513
517
|
private void OnDisable() {
|
|
518
|
+
SceneView.duringSceneGui -= GizmoRefreshEvent;
|
|
519
|
+
|
|
514
520
|
CleanupHandles();
|
|
515
521
|
}
|
|
516
522
|
|
|
@@ -830,7 +836,7 @@ public class VoxelWorldEditor : UnityEditor.Editor {
|
|
|
830
836
|
leftShiftDown = false;
|
|
831
837
|
}
|
|
832
838
|
|
|
833
|
-
if (currentEvent.keyCode == KeyCode.
|
|
839
|
+
if (currentEvent.keyCode == KeyCode.G) {
|
|
834
840
|
//Cycle the bits on the selected block
|
|
835
841
|
if (world.selectedBlockIndex > 0) {
|
|
836
842
|
var oldVoxel = world.GetVoxelAt(lastPos); // Assuming you have a method to get the voxel value
|
|
@@ -847,6 +853,7 @@ public class VoxelWorldEditor : UnityEditor.Editor {
|
|
|
847
853
|
//newValue = (ushort)VoxelWorld.SetVoxelFlippedBits(newValue, 0x04 );
|
|
848
854
|
VoxelEditManager.AddEdit(world, lastPos, oldVoxel, newVoxel, "Flip Voxel " + def.definition.name);
|
|
849
855
|
|
|
856
|
+
//Need to use a Key that Unity doesn't use so we don't consume it
|
|
850
857
|
currentEvent.Use();
|
|
851
858
|
}
|
|
852
859
|
|
|
@@ -983,6 +990,10 @@ public class VoxelWorldEditorToolBase : EditorTool {
|
|
|
983
990
|
buttonActive = true;
|
|
984
991
|
}
|
|
985
992
|
|
|
993
|
+
private void OnDisable() {
|
|
994
|
+
buttonActive = false;
|
|
995
|
+
}
|
|
996
|
+
|
|
986
997
|
public override void OnWillBeDeactivated() {
|
|
987
998
|
buttonActive = false;
|
|
988
999
|
}
|
|
@@ -1011,6 +1022,10 @@ public class VoxelWorldSelectionToolBase : EditorTool {
|
|
|
1011
1022
|
buttonActive = true;
|
|
1012
1023
|
}
|
|
1013
1024
|
|
|
1025
|
+
private void OnDisable() {
|
|
1026
|
+
buttonActive = false;
|
|
1027
|
+
}
|
|
1028
|
+
|
|
1014
1029
|
public override void OnWillBeDeactivated() {
|
|
1015
1030
|
buttonActive = false;
|
|
1016
1031
|
}
|
|
@@ -1038,6 +1053,10 @@ public class VoxelWorldPaintBucketToolBase : EditorTool {
|
|
|
1038
1053
|
buttonActive = true;
|
|
1039
1054
|
}
|
|
1040
1055
|
|
|
1056
|
+
private void OnDisable() {
|
|
1057
|
+
buttonActive = false;
|
|
1058
|
+
}
|
|
1059
|
+
|
|
1041
1060
|
public override void OnWillBeDeactivated() {
|
|
1042
1061
|
buttonActive = false;
|
|
1043
1062
|
}
|
|
@@ -1065,6 +1084,10 @@ public class VoxelWorldBrushToolBase : EditorTool {
|
|
|
1065
1084
|
buttonActive = true;
|
|
1066
1085
|
}
|
|
1067
1086
|
|
|
1087
|
+
private void OnDisable() {
|
|
1088
|
+
buttonActive = false;
|
|
1089
|
+
}
|
|
1090
|
+
|
|
1068
1091
|
public override void OnWillBeDeactivated() {
|
|
1069
1092
|
buttonActive = false;
|
|
1070
1093
|
}
|