public void Init() { var playerTransform = Locator.GetPlayerTransform(); _playerResources = playerTransform.GetComponent <PlayerResources>(); _spaceSuit = playerTransform.GetComponentInChildren <PlayerSpacesuit>(true); _playerSpawner = FindObjectOfType <PlayerSpawner>(); _fluidDetector = Locator.GetPlayerCamera().GetComponentInChildren <FluidDetector>(); var shipTransform = Locator.GetShipTransform(); if (shipTransform == null) { return; } _shipComponents = shipTransform.GetComponentsInChildren <ShipComponent>(); _hatchController = shipTransform.GetComponentInChildren <HatchController>(); _cockpitController = shipTransform.GetComponentInChildren <ShipCockpitController>(); _shipBody = Locator.GetShipBody(); _shipSpawnPoint = GetSpawnPoint(true); // Move debug spawn point to initial ship position. _playerSpawnPoint = GetSpawnPoint(); _shipSpawnPoint.transform.position = shipTransform.position; _shipSpawnPoint.transform.rotation = shipTransform.rotation; }
private void Init() { var playerTransform = Locator.GetPlayerTransform(); _playerResources = playerTransform.GetComponent <PlayerResources>(); _spaceSuit = playerTransform.GetComponentInChildren <PlayerSpacesuit>(true); _playerSpawner = FindObjectOfType <PlayerSpawner>(); _fluidDetector = Locator.GetPlayerCamera().GetComponentInChildren <FluidDetector>(); var shipTransform = Locator.GetShipTransform(); if (shipTransform != null) { _shipComponents = shipTransform.GetComponentsInChildren <ShipComponent>(); _hatchController = shipTransform.GetComponentInChildren <HatchController>(); _cockpitController = shipTransform.GetComponentInChildren <ShipCockpitController>(); _shipBody = Locator.GetShipBody(); _shipSpawnPoint = GetSpawnPoint(true); // Move debug spawn point to initial ship position. _playerSpawnPoint = GetSpawnPoint(); _shipSpawnPoint.transform.position = shipTransform.position; _shipSpawnPoint.transform.rotation = shipTransform.rotation; } _deathHandler = new MessageHandler <DeathMessage>(); _deathHandler.OnServerReceiveMessage += OnServerReceiveMessage; _deathHandler.OnClientReceiveMessage += OnClientReceiveMessage; }
public void Init() { DebugLog.DebugWrite($"INIT"); var playerTransform = Locator.GetPlayerTransform(); _playerResources = playerTransform.GetComponent <PlayerResources>(); _spaceSuit = Locator.GetPlayerSuit(); _playerSpawner = FindObjectOfType <PlayerSpawner>(); _suitPickupVolumes = FindObjectsOfType <SuitPickupVolume>(); _fluidDetector = Locator.GetPlayerCamera().GetComponentInChildren <FluidDetector>(); _playerSpawnPoint = GetSpawnPoint(); }
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; }
private void Init() { _fluidDetector = Locator.GetPlayerCamera().GetComponentInChildren <FluidDetector>(); var mainButton = ModHelper.Menus.PauseMenu.OptionsButton.Duplicate("TELEPORT"); var shipSpawnMenu = ModHelper.Menus.PauseMenu.Copy("Ship Spawn Points"); shipSpawnMenu.Buttons.ForEach(button => button.Hide()); shipSpawnMenu.Menu.transform.localScale *= 0.5f; shipSpawnMenu.Menu.transform.localPosition *= 0.5f; var playerSpawnMenu = ModHelper.Menus.PauseMenu.Copy("Player Spawn Points"); playerSpawnMenu.Buttons.ForEach(button => button.Hide()); playerSpawnMenu.Menu.transform.localScale *= 0.5f; playerSpawnMenu.Menu.transform.localPosition *= 0.5f; var sourceButton = shipSpawnMenu.Buttons[0]; mainButton.OnClick += () => (PlayerState.IsInsideShip() ? shipSpawnMenu : playerSpawnMenu) .Open(); var spawnPointsWithNoAO = Resources.FindObjectsOfTypeAll <SpawnPoint>().ToList(); var astroObjects = Resources.FindObjectsOfTypeAll <AstroObject>().ToList(); var astroSpawnPoints = new Dictionary <AstroObject, SpawnPoint[]>(); foreach (var astroObject in astroObjects) { var attachedSpawnPoints = astroObject.GetComponentsInChildren <SpawnPoint>(true); astroSpawnPoints[astroObject] = attachedSpawnPoints; spawnPointsWithNoAO = spawnPointsWithNoAO.Except(attachedSpawnPoints).ToList(); } astroObjects.Sort((a, b) => astroSpawnPoints[a].Length.CompareTo(astroSpawnPoints[b].Length)); void CloseMenu() { shipSpawnMenu.Close(); playerSpawnMenu.Close(); ModHelper.Menus.PauseMenu.Close(); } void CreateSpawnPointButton(SpawnPoint spawnPoint, IModPopupMenu spawnMenu, string name) { var subButton = spawnMenu.AddButton(sourceButton.Copy(name)); subButton.OnClick += () => { spawnMenu.Close(); CloseMenu(); SpawnAt(spawnPoint); _prevSpawnPoint = spawnPoint; }; subButton.Show(); } void CreateSpawnPointList(List <SpawnPoint> spawnPoints, AstroObject astroObject, IModPopupMenu spawnMenu) { var subMenu = ModHelper.Menus.PauseMenu.Copy("Spawn Points"); subMenu.Buttons.ForEach(button => button.Hide()); subMenu.Menu.transform.localScale *= 0.5f; subMenu.Menu.transform.localPosition *= 0.5f; var subButton = spawnMenu.AddButton(sourceButton.Copy($"{GetAstroObjectName(astroObject)}...")); subButton.OnClick += () => subMenu.Open(); subButton.Show(); for (var i = 0; i < spawnPoints.Count; i++) { var point = spawnPoints[i]; CreateSpawnPointButton(point, subMenu, point.name); } } void CreateMiscSpawnPointList(List <SpawnPoint> spawnPoints, IModPopupMenu spawnMenu) { var subMenu = ModHelper.Menus.PauseMenu.Copy("Spawn Points"); subMenu.Buttons.ForEach(button => button.Hide()); subMenu.Menu.transform.localScale *= 0.5f; subMenu.Menu.transform.localPosition *= 0.5f; var subButton = spawnMenu.AddButton(sourceButton.Copy("<No Set AstroObject>")); subButton.OnClick += () => subMenu.Open(); subButton.Show(); for (var i = 0; i < spawnPoints.Count; i++) { var point = spawnPoints[i]; CreateSpawnPointButton(point, subMenu, point.name); } } foreach (var astroObject in astroObjects) { var allSpawnPoints = astroSpawnPoints[astroObject]; if (allSpawnPoints.Length == 0) { continue; } var shipSpawnPoints = allSpawnPoints.Where(point => point.IsShipSpawn()).ToList(); var playerSpawnPoints = allSpawnPoints.Where(point => !point.IsShipSpawn()).ToList(); var astroName = GetAstroObjectName(astroObject); if (shipSpawnPoints.Count > 1) { CreateSpawnPointList(shipSpawnPoints, astroObject, shipSpawnMenu); } else if (shipSpawnPoints.Count == 1) { CreateSpawnPointButton(shipSpawnPoints[0], shipSpawnMenu, $"{astroName} - {shipSpawnPoints[0].name}"); } if (playerSpawnPoints.Count > 1) { CreateSpawnPointList(playerSpawnPoints, astroObject, playerSpawnMenu); } else if (playerSpawnPoints.Count == 1) { CreateSpawnPointButton(playerSpawnPoints[0], playerSpawnMenu, $"{astroName} - {playerSpawnPoints[0].name}"); } } var miscShipSpawns = spawnPointsWithNoAO.Where(point => point.IsShipSpawn()).ToList(); var miscPlayerSpawns = spawnPointsWithNoAO.Where(point => !point.IsShipSpawn()).ToList(); if (miscShipSpawns.Count > 1) { CreateMiscSpawnPointList(miscShipSpawns, shipSpawnMenu); } else if (miscShipSpawns.Count == 1) { CreateSpawnPointButton(miscShipSpawns[0], shipSpawnMenu, miscShipSpawns[0].name); } if (miscPlayerSpawns.Count > 1) { CreateMiscSpawnPointList(miscPlayerSpawns, playerSpawnMenu); } else if (miscPlayerSpawns.Count == 1) { CreateSpawnPointButton(miscPlayerSpawns[0], playerSpawnMenu, miscPlayerSpawns[0].name); } var clearSaveButton = sourceButton.Copy("RESET INITIAL SPAWN POINT"); clearSaveButton.OnClick += () => { ResetInitialSpawnPoint(); CloseMenu(); }; clearSaveButton.Show(); shipSpawnMenu.AddButton(clearSaveButton); playerSpawnMenu.AddButton(clearSaveButton); var saveButton = sourceButton.Copy("SAVE LAST USED AS INITIAL"); saveButton.OnClick += () => { SetInitialSpawnPoint(); CloseMenu(); }; saveButton.Show(); shipSpawnMenu.AddButton(saveButton); playerSpawnMenu.AddButton(saveButton); }