Fix some warp exit stuff

This commit is contained in:
Nick 2023-03-23 22:40:55 -04:00
parent df41617c04
commit 1b441d0c53
2 changed files with 12 additions and 31 deletions

View File

@ -76,7 +76,7 @@ namespace NewHorizons.Builder.Props
go.transform.position = pos; go.transform.position = pos;
go.transform.rotation = rot; go.transform.rotation = rot;
} }
if (alignRadial) if (alignRadial && planetGO != null)
{ {
var up = (go.transform.position - planetGO.transform.position).normalized; var up = (go.transform.position - planetGO.transform.position).normalized;
go.transform.rotation = Quaternion.FromToRotation(Vector3.up, up) * rot; go.transform.rotation = Quaternion.FromToRotation(Vector3.up, up) * rot;

View File

@ -63,23 +63,6 @@ namespace NewHorizons.Handlers
_vesselSpawnPoint = SearchUtilities.Find("DB_VesselDimension_Body/Sector_VesselDimension").GetComponentInChildren<SpawnPoint>(); _vesselSpawnPoint = SearchUtilities.Find("DB_VesselDimension_Body/Sector_VesselDimension").GetComponentInChildren<SpawnPoint>();
} }
public static void OnReceiveWarpedBody(OWRigidbody warpedBody, NomaiWarpPlatform startPlatform, NomaiWarpPlatform targetPlatform)
{
bool isPlayer = warpedBody.CompareTag("Player");
if (isPlayer)
{
Transform player_body = Locator.GetPlayerTransform();
OWRigidbody s_rb = Locator.GetShipBody();
OWRigidbody p_rb = Locator.GetPlayerBody();
Vector3 newPos = player_body.position;
Vector3 offset = player_body.up * 10;
newPos += offset;
s_rb.SetPosition(newPos);
s_rb.SetRotation(player_body.transform.rotation);
s_rb.SetVelocity(p_rb.GetVelocity());
}
}
public static void TeleportToVessel() public static void TeleportToVessel()
{ {
var playerSpawner = GameObject.FindObjectOfType<PlayerSpawner>(); var playerSpawner = GameObject.FindObjectOfType<PlayerSpawner>();
@ -162,16 +145,6 @@ namespace NewHorizons.Handlers
vesselWarpController._whiteHole = newWhiteHole.GetComponentInChildren<SingularityController>(); vesselWarpController._whiteHole = newWhiteHole.GetComponentInChildren<SingularityController>();
vesselWarpController._whiteHoleOneShot = vesselWarpController._whiteHole.transform.parent.Find("WhiteHoleAudio_OneShot").GetComponent<OWAudioSource>(); vesselWarpController._whiteHoleOneShot = vesselWarpController._whiteHole.transform.parent.Find("WhiteHoleAudio_OneShot").GetComponent<OWAudioSource>();
vesselWarpController._targetWarpPlatform.OnReceiveWarpedBody += OnReceiveWarpedBody;
var attachWarpExitToVessel = system.Config.Vessel?.warpExit?.attachToVessel ?? false;
var warpExitParent = vesselWarpController._targetWarpPlatform.transform.parent;
var warpExit = GeneralPropBuilder.MakeFromExisting(vesselWarpController._targetWarpPlatform.gameObject, null, null, system.Config.Vessel?.warpExit, parentOverride: attachWarpExitToVessel ? warpExitParent : null);
if (attachWarpExitToVessel)
{
warpExit.transform.parent = warpExitParent;
}
vesselObject.GetComponent<MapMarker>()._labelID = (UITextType)TranslationHandler.AddUI("Vessel"); vesselObject.GetComponent<MapMarker>()._labelID = (UITextType)TranslationHandler.AddUI("Vessel");
var hasParentBody = !string.IsNullOrEmpty(system.Config.Vessel?.vesselSpawn?.parentBody); var hasParentBody = !string.IsNullOrEmpty(system.Config.Vessel?.vesselSpawn?.parentBody);
@ -194,6 +167,17 @@ namespace NewHorizons.Handlers
GameObject.Destroy(rfVolume.gameObject); GameObject.Destroy(rfVolume.gameObject);
} }
} }
var attachWarpExitToVessel = system.Config.Vessel?.warpExit?.attachToVessel ?? false;
var warpExitParent = vesselWarpController._targetWarpPlatform.transform.parent;
var planetGO = hasPhysics ? vesselObject.transform.parent.gameObject : null;
var warpExit = GeneralPropBuilder.MakeFromExisting(vesselWarpController._targetWarpPlatform.gameObject, planetGO, null, system.Config.Vessel?.warpExit, parentOverride: attachWarpExitToVessel ? warpExitParent : null);
if (attachWarpExitToVessel)
{
warpExit.transform.parent = warpExitParent;
}
vesselWarpController._targetWarpPlatform._owRigidbody = warpExit.GetAttachedOWRigidbody(); vesselWarpController._targetWarpPlatform._owRigidbody = warpExit.GetAttachedOWRigidbody();
var hasZeroGravityVolume = system.Config.Vessel?.hasZeroGravityVolume ?? !hasParentBody; var hasZeroGravityVolume = system.Config.Vessel?.hasZeroGravityVolume ?? !hasParentBody;
@ -232,9 +216,6 @@ namespace NewHorizons.Handlers
VesselWarpController vesselWarpController = vectorSector.GetComponentInChildren<VesselWarpController>(true); VesselWarpController vesselWarpController = vectorSector.GetComponentInChildren<VesselWarpController>(true);
WarpController = vesselWarpController; WarpController = vesselWarpController;
if (vesselWarpController._targetWarpPlatform != null)
vesselWarpController._targetWarpPlatform.OnReceiveWarpedBody += OnReceiveWarpedBody;
if (vesselWarpController._whiteHole == null) if (vesselWarpController._whiteHole == null)
{ {
GameObject whiteHole = SearchUtilities.Find("DB_VesselDimension_Body/Sector_VesselDimension/Sector_VesselBridge/Interactibles_VesselBridge/WhiteHole"); GameObject whiteHole = SearchUtilities.Find("DB_VesselDimension_Body/Sector_VesselDimension/Sector_VesselBridge/Interactibles_VesselBridge/WhiteHole");