From 61f5f5e64f7f9a84e2e9ffac0811f7d9612afd03 Mon Sep 17 00:00:00 2001 From: JohnCorby Date: Wed, 19 Jun 2024 14:52:44 -0700 Subject: [PATCH] possibly fix lantern petals --- NewHorizons/Builder/Props/DetailBuilder.cs | 33 ++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/NewHorizons/Builder/Props/DetailBuilder.cs b/NewHorizons/Builder/Props/DetailBuilder.cs index 5700ced2..b06f62ef 100644 --- a/NewHorizons/Builder/Props/DetailBuilder.cs +++ b/NewHorizons/Builder/Props/DetailBuilder.cs @@ -159,6 +159,12 @@ namespace NewHorizons.Builder.Props DialogueBuilder.HandleUnityCreatedDialogue(dialogue); } + // copied details need their lanterns fixed + if (!isFromAssetBundle && component is DreamLanternController lantern) + { + lantern.gameObject.AddComponent(); + } + FixComponent(component, go, detail.ignoreSun); } catch(Exception e) @@ -501,5 +507,32 @@ namespace NewHorizons.Builder.Props Destroy(this); } } + + /// + /// need component here to run after DreamLanternController.Awake + /// + [RequireComponent(typeof(DreamLanternController))] + private class DreamLanternControllerFixer : MonoBehaviour + { + private void Start() + { + // based on https://github.com/Bwc9876/OW-Amogus/blob/master/Amogus/LanternCreator.cs + // needed to fix petals looking backwards, among other things + + var lantern = GetComponent(); + // SearchUtilities caches so its fine + var sourceLantern = SearchUtilities + .Find("RingWorld_Body/Sector_RingInterior/Sector_Zone1/Sector_ArtifactHouse_Zone1/Interactibles_ArtifactHouse_Zone1/Prefab_IP_DreamLanternItem_2 (1)") + .GetComponent(); + + // this is set in Awake, we wanna override it + lantern._origLensFlareBrightness = sourceLantern._lensFlare.brightness; + lantern._focuserPetalsBaseEulerAngles = sourceLantern._focuserPetalsBaseEulerAngles; + lantern._concealerRootsBaseScale = sourceLantern._concealerRootsBaseScale; + lantern._concealerCoversStartPos = sourceLantern._concealerCoversStartPos; + + Destroy(this); + } + } } }