This commit is contained in:
_nebula 2022-12-12 22:12:57 +00:00
commit bbc2f6311e

View File

@ -21,8 +21,9 @@ namespace QSB.WorldSync;
public static class QSBWorldSync public static class QSBWorldSync
{ {
public static WorldObjectManager[] Managers; public static WorldObjectManager[] Managers;
public static Dictionary<string, string> ManagerHashes { get; private set; } = new();
public static Dictionary<string, List<IWorldObject>> ManagerToBuiltObjects { get; private set; } = new(); private static readonly Dictionary<string, List<IWorldObject>> _managerToBuiltObjects = new();
public static readonly Dictionary<string, string> ManagerHashes = new();
/// <summary> /// <summary>
/// Set when all WorldObjectManagers have called Init() on all their objects (AKA all the objects are created) /// Set when all WorldObjectManagers have called Init() on all their objects (AKA all the objects are created)
@ -87,7 +88,7 @@ public static class QSBWorldSync
DeterministicManager.OnWorldObjectsAdded(); DeterministicManager.OnWorldObjectsAdded();
foreach (var item in ManagerToBuiltObjects) foreach (var item in _managerToBuiltObjects)
{ {
var worldObjects = item.Value; var worldObjects = item.Value;
var hash = worldObjects.Select(x => x.GetType().Name).GetMD5Hash(); var hash = worldObjects.Select(x => x.GetType().Name).GetMD5Hash();
@ -145,8 +146,8 @@ public static class QSBWorldSync
AllObjectsAdded = false; AllObjectsAdded = false;
AllObjectsReady = false; AllObjectsReady = false;
ManagerToBuiltObjects = new(); _managerToBuiltObjects.Clear();
ManagerHashes = new(); ManagerHashes.Clear();
GameReset(); GameReset();
@ -440,14 +441,13 @@ public static class QSBWorldSync
} }
var className = NameOfCallingClass(); var className = NameOfCallingClass();
if (!_managerToBuiltObjects.ContainsKey(className))
if (!ManagerToBuiltObjects.ContainsKey(className))
{ {
ManagerToBuiltObjects.Add(className, new List<IWorldObject> { worldObject }); _managerToBuiltObjects.Add(className, new List<IWorldObject> { worldObject });
} }
else else
{ {
ManagerToBuiltObjects[className].Add(worldObject); _managerToBuiltObjects[className].Add(worldObject);
} }
WorldObjects.Add(worldObject); WorldObjects.Add(worldObject);