diff --git a/GamecraftModdingAPI/Persistence/DeserializeFromDiskEntitiesEnginePatch.cs b/GamecraftModdingAPI/Persistence/DeserializeFromDiskEntitiesEnginePatch.cs index 29bf987..0ff675f 100644 --- a/GamecraftModdingAPI/Persistence/DeserializeFromDiskEntitiesEnginePatch.cs +++ b/GamecraftModdingAPI/Persistence/DeserializeFromDiskEntitiesEnginePatch.cs @@ -22,6 +22,8 @@ namespace GamecraftModdingAPI.Persistence public static void Prefix(ref ISerializationData ____serializationData, ref FasterList ____bytesStream, ref IEntitySerialization ____entitySerializer, bool ____spawnBlocksOnly) { if (____spawnBlocksOnly) return; // only run after second deserialization call (when all vanilla stuff is already deserialized) + if (SaveAndLoadCompositionRootPatch.currentEnginesRoot == null) return; + SerializerManager.RegisterSerializers(SaveAndLoadCompositionRootPatch.currentEnginesRoot); uint originalPos = ____serializationData.dataPos; Logging.MetaDebugLog($"dataPos: {originalPos}"); BinaryBufferReader bbr = new BinaryBufferReader(____bytesStream.ToArrayFast(out uint count), ____serializationData.dataPos); diff --git a/GamecraftModdingAPI/Persistence/SaveAndLoadCompositionRootPatch.cs b/GamecraftModdingAPI/Persistence/SaveAndLoadCompositionRootPatch.cs index 987cf86..58f5708 100644 --- a/GamecraftModdingAPI/Persistence/SaveAndLoadCompositionRootPatch.cs +++ b/GamecraftModdingAPI/Persistence/SaveAndLoadCompositionRootPatch.cs @@ -10,9 +10,12 @@ namespace GamecraftModdingAPI.Persistence [HarmonyPatch(typeof(SaveAndLoadCompositionRoot), "Compose")] class SaveAndLoadCompositionRootPatch { + public static EnginesRoot currentEnginesRoot; + public static void Prefix(EnginesRoot enginesRoot) { - SerializerManager.RegisterSerializers(enginesRoot); + currentEnginesRoot = enginesRoot; + //SerializerManager.RegisterSerializers(enginesRoot); } } } diff --git a/GamecraftModdingAPI/Tests/GamecraftModdingAPIPluginTest.cs b/GamecraftModdingAPI/Tests/GamecraftModdingAPIPluginTest.cs index 8576f97..46a7ef8 100644 --- a/GamecraftModdingAPI/Tests/GamecraftModdingAPIPluginTest.cs +++ b/GamecraftModdingAPI/Tests/GamecraftModdingAPIPluginTest.cs @@ -62,7 +62,7 @@ namespace GamecraftModdingAPI.Tests Logging.MetaDebugLog("Audio Mixers: "+string.Join(",", AudioTools.GetMixers())); //AudioTools.SetVolume(0.0f, "Music"); // The game now sets this from settings again after this is called :( - Utility.VersionTracking.Enable(); + //Utility.VersionTracking.Enable();//(very) unstable // debug/test handlers HandlerBuilder.Builder()