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.Components.Orbital;
|
||||||
using NewHorizons.External.Configs;
|
using NewHorizons.External.Configs;
|
||||||
using NewHorizons.Utility.OWML;
|
using NewHorizons.Utility.OWML;
|
||||||
@ -60,24 +61,13 @@ namespace NewHorizons.Builder.General
|
|||||||
|
|
||||||
Delay.RunWhen(
|
Delay.RunWhen(
|
||||||
() => Locator._centerOfTheUniverse != null,
|
() => Locator._centerOfTheUniverse != null,
|
||||||
() => {
|
() => Locator._centerOfTheUniverse._staticReferenceFrame = astroObject.GetComponent<OWRigidbody>()
|
||||||
Locator._centerOfTheUniverse._staticReferenceFrame = astroObject.GetComponent<OWRigidbody>();
|
|
||||||
}
|
|
||||||
);
|
);
|
||||||
|
|
||||||
NeverDeactivateCenterOfTheUniverse(astroObject.gameObject);
|
PreserveActiveCenterOfTheUniverse.Apply(astroObject.gameObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
return astroObject;
|
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