From e8b6bb3af49f4bf781dcc6848801c83470a8485f Mon Sep 17 00:00:00 2001 From: Noah Pilarski Date: Mon, 12 Sep 2022 16:09:39 -0400 Subject: [PATCH] Fix mind slide projector --- NewHorizons/Patches/VisionTorchPatches.cs | 26 +++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/NewHorizons/Patches/VisionTorchPatches.cs b/NewHorizons/Patches/VisionTorchPatches.cs index 82c65832..85539624 100644 --- a/NewHorizons/Patches/VisionTorchPatches.cs +++ b/NewHorizons/Patches/VisionTorchPatches.cs @@ -49,6 +49,32 @@ namespace NewHorizons.Patches } return true; } + + [HarmonyPrefix] + [HarmonyPatch(typeof(MindSlideProjector), nameof(MindSlideProjector.SetMindSlideCollection))] + private static bool MindSlideProjector_SetMindSlideCollection(MindSlideProjector __instance, MindSlideCollection mindSlideCollection) + { + if (mindSlideCollection == null) return false; + + if (__instance._mindSlideCollection == mindSlideCollection) return false; + + if (__instance._slideCollectionItem != null) + { + __instance._slideCollectionItem.onSlideTextureUpdated -= __instance.OnSlideTextureUpdated; + __instance._slideCollectionItem.onPlayBeatAudio -= __instance.OnPlayBeatAudio; + } + + __instance._mindSlideCollection = mindSlideCollection; + __instance._defaultSlideDuration = mindSlideCollection.defaultSlideDuration; + + __instance._slideCollectionItem = mindSlideCollection.slideCollectionContainer; + __instance._slideCollectionItem.onSlideTextureUpdated += __instance.OnSlideTextureUpdated; + __instance._slideCollectionItem.onPlayBeatAudio += __instance.OnPlayBeatAudio; + __instance._slideCollectionItem.Initialize(); + __instance._slideCollectionItem.enabled = false; + + return false; + } } [HarmonyPatch]