public static bool ShipTractorBeamSwitch_OnTriggerExit(ShipTractorBeamSwitch __instance, Collider hitCollider)
        {
            if (!__instance._isPlayerInShip && __instance._functional && hitCollider.CompareTag("PlayerDetector") && !ShipManager.Instance.HatchController._hatchObject.activeSelf)
            {
                ShipManager.Instance.HatchController.CloseHatch();
                ShipManager.Instance.ShipTractorBeam.DeactivateTractorBeam();
                new HatchMessage(false).Send();
            }

            return(false);
        }
        public void Init()
        {
            var playerTransform = Locator.GetPlayerTransform();

            _playerResources = playerTransform.GetComponent <PlayerResources>();
            _spaceSuit       = Locator.GetPlayerSuit();
            _playerSpawner   = FindObjectOfType <PlayerSpawner>();
            _shipTractorBeam = FindObjectOfType <ShipTractorBeamSwitch>();
            _fluidDetector   = Locator.GetPlayerCamera().GetComponentInChildren <FluidDetector>();

            _playerSpawnPoint = GetSpawnPoint();
            _shipSpawnPoint   = GetSpawnPoint(true);

            var shipTransform = Locator.GetShipTransform();

            if (shipTransform == null)
            {
                DebugLog.ToConsole($"Warning - Init() ran when ship was null?", MessageType.Warning);
                return;
            }
            _shipComponents    = shipTransform.GetComponentsInChildren <ShipComponent>();
            _hatchController   = shipTransform.GetComponentInChildren <HatchController>();
            _cockpitController = shipTransform.GetComponentInChildren <ShipCockpitController>();
            _shipBody          = Locator.GetShipBody();

            if (_shipSpawnPoint == null)
            {
                DebugLog.ToConsole("Warning - _shipSpawnPoint is null in Init()!", MessageType.Warning);
                return;
            }

            // Move debug spawn point to initial ship position (so ship doesnt spawn in space!)
            var timberHearth = Locator.GetAstroObject(AstroObject.Name.TimberHearth).transform;

            _shipSpawnPoint.transform.SetParent(timberHearth);
            _shipSpawnPoint.transform.localPosition = ShipContainerOffset;
            _shipSpawnPoint.transform.localRotation = ShipContainerRotation;
        }