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; }