mirror of
https://github.com/Outer-Wilds-New-Horizons/new-horizons.git
synced 2025-12-11 20:15:44 +01:00
Fix funny NRE
This commit is contained in:
parent
5ab573b907
commit
e9bc02b54d
@ -188,14 +188,14 @@ namespace NewHorizons.Builder.Body
|
|||||||
|
|
||||||
public static void PairExit(string exitName, OuterFogWarpVolume warpController)
|
public static void PairExit(string exitName, OuterFogWarpVolume warpController)
|
||||||
{
|
{
|
||||||
if (!BrambleNodeBuilder.NamedNodes.ContainsKey(exitName))
|
if (!BrambleNodeBuilder.namedNodes.ContainsKey(exitName))
|
||||||
{
|
{
|
||||||
if (!_unpairedDimensions.ContainsKey(exitName)) _unpairedDimensions[exitName] = new();
|
if (!_unpairedDimensions.ContainsKey(exitName)) _unpairedDimensions[exitName] = new();
|
||||||
_unpairedDimensions[exitName].Add(warpController);
|
_unpairedDimensions[exitName].Add(warpController);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
warpController._linkedInnerWarpVolume = BrambleNodeBuilder.NamedNodes[exitName];
|
warpController._linkedInnerWarpVolume = BrambleNodeBuilder.namedNodes[exitName];
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void FinishPairingDimensionsForExitNode(string nodeName)
|
public static void FinishPairingDimensionsForExitNode(string nodeName)
|
||||||
|
|||||||
@ -21,21 +21,21 @@ namespace NewHorizons.Builder.Props
|
|||||||
// keys are all dimension names that have been referenced by at least one node but do not (yet) exist
|
// keys are all dimension names that have been referenced by at least one node but do not (yet) exist
|
||||||
// values are all nodes' warp controllers that link to a given dimension
|
// values are all nodes' warp controllers that link to a given dimension
|
||||||
// unpairedNodes[name of dimension that doesn't exist yet] => List{warp controller for node that links to that dimension, ...}
|
// unpairedNodes[name of dimension that doesn't exist yet] => List{warp controller for node that links to that dimension, ...}
|
||||||
private static Dictionary<string, List<InnerFogWarpVolume>> _unpairedNodes = new();
|
private static readonly Dictionary<string, List<InnerFogWarpVolume>> _unpairedNodes = new();
|
||||||
private static Dictionary<string, List<SignalInfo>> _propagatedSignals = null;
|
private static readonly Dictionary<string, List<SignalInfo>> _propagatedSignals = new();
|
||||||
|
|
||||||
public static Dictionary<string, InnerFogWarpVolume> NamedNodes { get; private set; }
|
public static readonly Dictionary<string, InnerFogWarpVolume> namedNodes = new();
|
||||||
public static Dictionary<BrambleNodeInfo, GameObject> BuiltBrambleNodes { get; private set; }
|
public static readonly Dictionary<BrambleNodeInfo, GameObject> builtBrambleNodes = new();
|
||||||
|
|
||||||
private static string _brambleSeedPrefabPath = "DB_PioneerDimension_Body/Sector_PioneerDimension/Interactables_PioneerDimension/SeedWarp_ToPioneer (1)";
|
private static string _brambleSeedPrefabPath = "DB_PioneerDimension_Body/Sector_PioneerDimension/Interactables_PioneerDimension/SeedWarp_ToPioneer (1)";
|
||||||
private static string _brambleNodePrefabPath = "DB_HubDimension_Body/Sector_HubDimension/Interactables_HubDimension/InnerWarp_ToCluster";
|
private static string _brambleNodePrefabPath = "DB_HubDimension_Body/Sector_HubDimension/Interactables_HubDimension/InnerWarp_ToCluster";
|
||||||
|
|
||||||
public static void Init()
|
public static void Init()
|
||||||
{
|
{
|
||||||
_unpairedNodes = new();
|
_unpairedNodes.Clear();
|
||||||
_propagatedSignals = null;
|
_propagatedSignals.Clear();
|
||||||
NamedNodes = new();
|
namedNodes.Clear();
|
||||||
BuiltBrambleNodes = new();
|
builtBrambleNodes.Clear();
|
||||||
|
|
||||||
PropagateSignals();
|
PropagateSignals();
|
||||||
}
|
}
|
||||||
@ -117,7 +117,6 @@ namespace NewHorizons.Builder.Props
|
|||||||
|
|
||||||
// This dictionary lists all the signals a given node should have, depending on the dimension it links to
|
// This dictionary lists all the signals a given node should have, depending on the dimension it links to
|
||||||
// ie, if a node links to "dimension1", then that node should spawn all of the signals in the list propagatedSignals["dimension1"]
|
// ie, if a node links to "dimension1", then that node should spawn all of the signals in the list propagatedSignals["dimension1"]
|
||||||
_propagatedSignals = new Dictionary<string, List<SignalInfo>>();
|
|
||||||
foreach (var dimension in allDimensions)
|
foreach (var dimension in allDimensions)
|
||||||
{
|
{
|
||||||
_propagatedSignals[dimension.name] = new();
|
_propagatedSignals[dimension.name] = new();
|
||||||
@ -274,12 +273,14 @@ namespace NewHorizons.Builder.Props
|
|||||||
// Cleanup for dimension exits
|
// Cleanup for dimension exits
|
||||||
if (config.name != null)
|
if (config.name != null)
|
||||||
{
|
{
|
||||||
NamedNodes[config.name] = innerFogWarpVolume;
|
namedNodes[config.name] = innerFogWarpVolume;
|
||||||
BrambleDimensionBuilder.FinishPairingDimensionsForExitNode(config.name);
|
BrambleDimensionBuilder.FinishPairingDimensionsForExitNode(config.name);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make signals
|
// Make signals
|
||||||
foreach (var signalConfig in _propagatedSignals[config.linksTo])
|
if (_propagatedSignals.TryGetValue(config.linksTo, out var connectedSignals))
|
||||||
|
{
|
||||||
|
foreach (var signalConfig in connectedSignals)
|
||||||
{
|
{
|
||||||
var signalGO = SignalBuilder.Make(go, sector, signalConfig, mod);
|
var signalGO = SignalBuilder.Make(go, sector, signalConfig, mod);
|
||||||
signalGO.GetComponent<AudioSignal>()._identificationDistance = 0;
|
signalGO.GetComponent<AudioSignal>()._identificationDistance = 0;
|
||||||
@ -287,6 +288,7 @@ namespace NewHorizons.Builder.Props
|
|||||||
signalGO.transform.position = brambleNode.transform.position;
|
signalGO.transform.position = brambleNode.transform.position;
|
||||||
signalGO.transform.parent = brambleNode.transform;
|
signalGO.transform.parent = brambleNode.transform;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Done!
|
// Done!
|
||||||
brambleNode.SetActive(true);
|
brambleNode.SetActive(true);
|
||||||
|
|||||||
@ -270,13 +270,15 @@ namespace NewHorizons
|
|||||||
NewHorizonsData.Load();
|
NewHorizonsData.Load();
|
||||||
SignalBuilder.Init();
|
SignalBuilder.Init();
|
||||||
BrambleDimensionBuilder.Init();
|
BrambleDimensionBuilder.Init();
|
||||||
BrambleNodeBuilder.Init();
|
|
||||||
AstroObjectLocator.Init();
|
AstroObjectLocator.Init();
|
||||||
StreamingHandler.Init();
|
StreamingHandler.Init();
|
||||||
AudioTypeHandler.Init();
|
AudioTypeHandler.Init();
|
||||||
|
|
||||||
PlanetCreationHandler.Init(BodyDict[CurrentStarSystem]);
|
PlanetCreationHandler.Init(BodyDict[CurrentStarSystem]);
|
||||||
|
|
||||||
|
// Relies on the list of bodies from PlanetCreationHandler so it must run after
|
||||||
|
BrambleNodeBuilder.Init();
|
||||||
|
|
||||||
VesselWarpHandler.LoadVessel();
|
VesselWarpHandler.LoadVessel();
|
||||||
SystemCreationHandler.LoadSystem(SystemDict[CurrentStarSystem]);
|
SystemCreationHandler.LoadSystem(SystemDict[CurrentStarSystem]);
|
||||||
LoadTranslations(ModHelper.Manifest.ModFolderPath + "Assets/", this);
|
LoadTranslations(ModHelper.Manifest.ModFolderPath + "Assets/", this);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user