diff --git a/QSB/EyeOfTheUniverse/VesselSync/VesselManager.cs b/QSB/EyeOfTheUniverse/VesselSync/VesselManager.cs index a9b5ccff..5c5a7588 100644 --- a/QSB/EyeOfTheUniverse/VesselSync/VesselManager.cs +++ b/QSB/EyeOfTheUniverse/VesselSync/VesselManager.cs @@ -4,6 +4,7 @@ using QSB.Utility; using QSB.WorldSync; using System.Collections.Generic; using System.Linq; +using UnityEngine; namespace QSB.EyeOfTheUniverse.VesselSync { @@ -26,22 +27,27 @@ namespace QSB.EyeOfTheUniverse.VesselSync { QSBWorldSync.Init(); _warpController = QSBWorldSync.GetWorldObjects().First(); + _warpController.AttachedObject._cageTrigger.OnExit -= _warpController.AttachedObject.OnExitCageTrigger; } public void Enter(PlayerInfo player) { - DebugLog.DebugWrite($"{player.PlayerId} enter"); _playersInCage.Add(player); } public void Exit(PlayerInfo player) { - DebugLog.DebugWrite($"{player.PlayerId} exit"); _playersInCage.Remove(player); if (_playersInCage.Count == 0 && _warpController.AttachedObject._hasPower) { - DebugLog.DebugWrite($"NO PLAYERS LEFT"); + var obj = _warpController.AttachedObject; + obj._cageClosed = true; + obj._cageAnimator.TranslateToLocalPosition(new Vector3(0f, -8.1f, 0f), 5f); + obj._cageAnimator.RotateToLocalEulerAngles(new Vector3(0f, 180f, 0f), 5f); + obj._cageAnimator.OnTranslationComplete -= obj.OnCageAnimationComplete; + obj._cageAnimator.OnTranslationComplete += obj.OnCageAnimationComplete; + obj._cageLoopingAudio.FadeIn(1f, false, false, 1f); } } } diff --git a/QSB/EyeOfTheUniverse/VesselSync/WorldObjects/QSBVesselWarpController.cs b/QSB/EyeOfTheUniverse/VesselSync/WorldObjects/QSBVesselWarpController.cs index aaf018cc..753e5f20 100644 --- a/QSB/EyeOfTheUniverse/VesselSync/WorldObjects/QSBVesselWarpController.cs +++ b/QSB/EyeOfTheUniverse/VesselSync/WorldObjects/QSBVesselWarpController.cs @@ -18,7 +18,6 @@ namespace QSB.EyeOfTheUniverse.VesselSync.WorldObjects { if (hitObj.CompareTag("PlayerDetector")) { - DebugLog.DebugWrite($"On entry"); new EnterLeaveMessage(Player.EnterLeaveType.EnterVesselCage).Send(); } } @@ -27,7 +26,6 @@ namespace QSB.EyeOfTheUniverse.VesselSync.WorldObjects { if (hitObj.CompareTag("PlayerDetector")) { - DebugLog.DebugWrite($"On exit"); new EnterLeaveMessage(Player.EnterLeaveType.ExitVesselCage).Send(); } } diff --git a/QSB/Utility/DebugGUI.cs b/QSB/Utility/DebugGUI.cs index c7292283..92fcdfb3 100644 --- a/QSB/Utility/DebugGUI.cs +++ b/QSB/Utility/DebugGUI.cs @@ -272,6 +272,16 @@ namespace QSB.Utility foreach (var obj in QSBWorldSync.GetWorldObjects()) { + if (obj == null) + { + return; + } + + if (obj.ReturnObject() == null) + { + return; + } + if (obj.ShouldDisplayLabel()) { DrawLabel(obj.ReturnObject().transform, obj.ReturnLabel());