Get star stuff on init for evolution controller

This commit is contained in:
Nick 2022-08-25 22:57:27 -04:00
parent 52af5965ed
commit 5ac37c3507
2 changed files with 30 additions and 16 deletions

View File

@ -59,10 +59,13 @@ namespace NewHorizons.Components.SizeControllers
private bool _isSupernova; private bool _isSupernova;
private float _supernovaStartTime; private float _supernovaStartTime;
private Material _collapseStartSurfaceMaterial; private static Material _collapseStartSurfaceMaterial;
private Material _collapseEndSurfaceMaterial; private static Material _collapseEndSurfaceMaterial;
private Material _startSurfaceMaterial; private static Material _startSurfaceMaterial;
private Material _endSurfaceMaterial; private static Material _endSurfaceMaterial;
private static Texture _defaultNormalRamp;
private static Texture _defaultCollapseRamp;
private Material _surfaceMaterial; private Material _surfaceMaterial;
private Texture _normalRamp; private Texture _normalRamp;
private Texture _collapseRamp; private Texture _collapseRamp;
@ -86,29 +89,39 @@ namespace NewHorizons.Components.SizeControllers
private TessellatedSphereRenderer _surface; private TessellatedSphereRenderer _surface;
private void Start() public static void Init()
{ {
_surface = GetComponentInChildren<TessellatedSphereRenderer>(true);
_rigidbody = this.GetAttachedOWRigidbody();
var sun = GameObject.FindObjectOfType<SunController>(); var sun = GameObject.FindObjectOfType<SunController>();
_collapseStartSurfaceMaterial = new Material(sun._collapseStartSurfaceMaterial); _collapseStartSurfaceMaterial = new Material(sun._collapseStartSurfaceMaterial);
_collapseEndSurfaceMaterial = new Material(sun._collapseEndSurfaceMaterial); _collapseEndSurfaceMaterial = new Material(sun._collapseEndSurfaceMaterial);
_startSurfaceMaterial = new Material(sun._startSurfaceMaterial); _startSurfaceMaterial = new Material(sun._startSurfaceMaterial);
_endSurfaceMaterial = new Material(sun._endSurfaceMaterial); _endSurfaceMaterial = new Material(sun._endSurfaceMaterial);
_defaultNormalRamp = sun._startSurfaceMaterial.GetTexture(ColorRamp);
_defaultCollapseRamp = sun._collapseStartSurfaceMaterial.GetTexture(ColorRamp);
}
private void Start()
{
_surface = GetComponentInChildren<TessellatedSphereRenderer>(true);
_surfaceMaterial = new Material(_surface._materials[0]);
_rigidbody = this.GetAttachedOWRigidbody();
if (normalRamp == null) if (normalRamp == null)
{ {
_normalRamp = sun._startSurfaceMaterial.GetTexture(ColorRamp); _normalRamp = _defaultNormalRamp;
} else }
else
{ {
_normalRamp = normalRamp; _normalRamp = normalRamp;
} }
if (collapseRamp == null) if (collapseRamp == null)
{ {
_collapseRamp = sun._collapseStartSurfaceMaterial.GetTexture(ColorRamp); _collapseRamp = _defaultCollapseRamp;
} else }
else
{ {
_collapseRamp = collapseRamp; _collapseRamp = collapseRamp;
} }
@ -165,7 +178,6 @@ namespace NewHorizons.Components.SizeControllers
} }
_flareEmitter = GetComponentInChildren<SolarFlareEmitter>(); _flareEmitter = GetComponentInChildren<SolarFlareEmitter>();
_surfaceMaterial = _surface._materials[0];
if (!isProxy) SupernovaEffectHandler.RegisterStar(this); if (!isProxy) SupernovaEffectHandler.RegisterStar(this);
@ -419,7 +431,7 @@ namespace NewHorizons.Components.SizeControllers
UpdateSupernova(); UpdateSupernova();
return; return;
} }
if (!_isCollapsing) if (!_isCollapsing)
{ {
base.FixedUpdate(); base.FixedUpdate();
@ -431,7 +443,7 @@ namespace NewHorizons.Components.SizeControllers
UpdateCollapse(); UpdateCollapse();
if (_isSupernova) return; if (_isSupernova) return;
} }
// This is just all the scales stuff for the atmosphere effects // This is just all the scales stuff for the atmosphere effects
if (_fog != null) if (_fog != null)
{ {

View File

@ -23,6 +23,7 @@ using UnityEngine.Events;
using UnityEngine.SceneManagement; using UnityEngine.SceneManagement;
using Logger = NewHorizons.Utility.Logger; using Logger = NewHorizons.Utility.Logger;
using NewHorizons.OtherMods.OWRichPresence; using NewHorizons.OtherMods.OWRichPresence;
using NewHorizons.Components.SizeControllers;
namespace NewHorizons namespace NewHorizons
{ {
@ -305,6 +306,7 @@ namespace NewHorizons
RemoteHandler.Init(); RemoteHandler.Init();
AtmosphereBuilder.Init(); AtmosphereBuilder.Init();
BrambleNodeBuilder.Init(BodyDict[CurrentStarSystem].Select(x => x.Config).Where(x => x.Bramble?.dimension != null).ToArray()); BrambleNodeBuilder.Init(BodyDict[CurrentStarSystem].Select(x => x.Config).Where(x => x.Bramble?.dimension != null).ToArray());
StarEvolutionController.Init();
if (isSolarSystem) if (isSolarSystem)
{ {