mirror of
https://github.com/Outer-Wilds-New-Horizons/new-horizons.git
synced 2025-12-11 20:15:44 +01:00
Fix some warp exit stuff
This commit is contained in:
parent
df41617c04
commit
1b441d0c53
@ -76,7 +76,7 @@ namespace NewHorizons.Builder.Props
|
||||
go.transform.position = pos;
|
||||
go.transform.rotation = rot;
|
||||
}
|
||||
if (alignRadial)
|
||||
if (alignRadial && planetGO != null)
|
||||
{
|
||||
var up = (go.transform.position - planetGO.transform.position).normalized;
|
||||
go.transform.rotation = Quaternion.FromToRotation(Vector3.up, up) * rot;
|
||||
|
||||
@ -63,23 +63,6 @@ namespace NewHorizons.Handlers
|
||||
_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()
|
||||
{
|
||||
var playerSpawner = GameObject.FindObjectOfType<PlayerSpawner>();
|
||||
@ -162,16 +145,6 @@ namespace NewHorizons.Handlers
|
||||
vesselWarpController._whiteHole = newWhiteHole.GetComponentInChildren<SingularityController>();
|
||||
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");
|
||||
|
||||
var hasParentBody = !string.IsNullOrEmpty(system.Config.Vessel?.vesselSpawn?.parentBody);
|
||||
@ -194,6 +167,17 @@ namespace NewHorizons.Handlers
|
||||
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();
|
||||
|
||||
var hasZeroGravityVolume = system.Config.Vessel?.hasZeroGravityVolume ?? !hasParentBody;
|
||||
@ -232,9 +216,6 @@ namespace NewHorizons.Handlers
|
||||
VesselWarpController vesselWarpController = vectorSector.GetComponentInChildren<VesselWarpController>(true);
|
||||
WarpController = vesselWarpController;
|
||||
|
||||
if (vesselWarpController._targetWarpPlatform != null)
|
||||
vesselWarpController._targetWarpPlatform.OnReceiveWarpedBody += OnReceiveWarpedBody;
|
||||
|
||||
if (vesselWarpController._whiteHole == null)
|
||||
{
|
||||
GameObject whiteHole = SearchUtilities.Find("DB_VesselDimension_Body/Sector_VesselDimension/Sector_VesselBridge/Interactibles_VesselBridge/WhiteHole");
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user