mirror of
https://github.com/Outer-Wilds-New-Horizons/new-horizons.git
synced 2025-12-11 20:15:44 +01:00
Use a component instead of silly delay
This commit is contained in:
parent
44b6df04d2
commit
cffc063269
@ -1,3 +1,4 @@
|
||||
using NewHorizons.Components;
|
||||
using NewHorizons.Components.Orbital;
|
||||
using NewHorizons.External.Configs;
|
||||
using NewHorizons.Utility.OWML;
|
||||
@ -60,24 +61,13 @@ namespace NewHorizons.Builder.General
|
||||
|
||||
Delay.RunWhen(
|
||||
() => Locator._centerOfTheUniverse != null,
|
||||
() => {
|
||||
Locator._centerOfTheUniverse._staticReferenceFrame = astroObject.GetComponent<OWRigidbody>();
|
||||
}
|
||||
() => Locator._centerOfTheUniverse._staticReferenceFrame = astroObject.GetComponent<OWRigidbody>()
|
||||
);
|
||||
|
||||
NeverDeactivateCenterOfTheUniverse(astroObject.gameObject);
|
||||
PreserveActiveCenterOfTheUniverse.Apply(astroObject.gameObject);
|
||||
}
|
||||
|
||||
return astroObject;
|
||||
}
|
||||
|
||||
private static void NeverDeactivateCenterOfTheUniverse(GameObject centerOfTheUniverse)
|
||||
{
|
||||
NHLogger.LogVerbose("Center of the universe cannot be inactive.");
|
||||
centerOfTheUniverse.SetActive(true);
|
||||
Delay.RunWhen(() => !centerOfTheUniverse.activeInHierarchy, () => {
|
||||
NeverDeactivateCenterOfTheUniverse(centerOfTheUniverse);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
26
NewHorizons/Components/PreserveActiveCenterOfTheUniverse.cs
Normal file
26
NewHorizons/Components/PreserveActiveCenterOfTheUniverse.cs
Normal file
@ -0,0 +1,26 @@
|
||||
using NewHorizons.Utility.OWML;
|
||||
using UnityEngine;
|
||||
|
||||
namespace NewHorizons.Components
|
||||
{
|
||||
// Prevents the center of the universe being deactivated
|
||||
public class PreserveActiveCenterOfTheUniverse : MonoBehaviour
|
||||
{
|
||||
private GameObject _centerOfTheUniverse;
|
||||
|
||||
public static void Apply(GameObject center)
|
||||
{
|
||||
var go = new GameObject(nameof(PreserveActiveCenterOfTheUniverse));
|
||||
go.AddComponent<PreserveActiveCenterOfTheUniverse>()._centerOfTheUniverse = center;
|
||||
}
|
||||
|
||||
public void Update()
|
||||
{
|
||||
if (!_centerOfTheUniverse.activeInHierarchy)
|
||||
{
|
||||
NHLogger.LogWarning("Center of the universe cannot be inactive.");
|
||||
_centerOfTheUniverse.SetActive(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user