From 9365a4845df1bf5181f35f78806e2430c7884b80 Mon Sep 17 00:00:00 2001 From: Noah Pilarski Date: Tue, 8 Apr 2025 22:06:34 -0400 Subject: [PATCH] Add tronworld model for raft --- NewHorizons/Builder/Props/EchoesOfTheEye/RaftBuilder.cs | 9 +++++++++ NewHorizons/Utility/NewHorizonExtensions.cs | 8 ++++++++ 2 files changed, 17 insertions(+) diff --git a/NewHorizons/Builder/Props/EchoesOfTheEye/RaftBuilder.cs b/NewHorizons/Builder/Props/EchoesOfTheEye/RaftBuilder.cs index c24c0106..28550681 100644 --- a/NewHorizons/Builder/Props/EchoesOfTheEye/RaftBuilder.cs +++ b/NewHorizons/Builder/Props/EchoesOfTheEye/RaftBuilder.cs @@ -45,6 +45,15 @@ namespace NewHorizons.Builder.Props.EchoesOfTheEye lightSensor._illuminatingDreamLanternList = new List(); lightSensor._lightSourceMask |= LightSourceType.DREAM_LANTERN; } + + // TODO: Change to one mesh + var twRaftRoot = new GameObject("Effects_IP_SIM_Raft"); + twRaftRoot.transform.SetParent(_prefab.transform, false); + var twRaft = SearchUtilities.Find("DreamWorld_Body/Sector_DreamWorld/Interactibles_Dreamworld/DreamRaft_Body/Effects_IP_SIM_Raft_1Way") + .Instantiate(Vector3.zero, Quaternion.identity, twRaftRoot.transform).Rename("Effects_IP_SIM_Raft_1Way"); + twRaft.Instantiate(Vector3.zero, Quaternion.Euler(0, 180, 0), twRaftRoot.transform).Rename(twRaft.name); + twRaft.Instantiate(Vector3.zero, Quaternion.Euler(0, 90, 0), twRaftRoot.transform).Rename(twRaft.name); + twRaft.Instantiate(Vector3.zero, Quaternion.Euler(0, -90, 0), twRaftRoot.transform).Rename(twRaft.name); } } } diff --git a/NewHorizons/Utility/NewHorizonExtensions.cs b/NewHorizons/Utility/NewHorizonExtensions.cs index 216ea14a..10ca7570 100644 --- a/NewHorizons/Utility/NewHorizonExtensions.cs +++ b/NewHorizons/Utility/NewHorizonExtensions.cs @@ -274,6 +274,14 @@ namespace NewHorizons.Utility return UnityEngine.Object.Instantiate(original); } + public static GameObject Instantiate(this GameObject original, Vector3 localPosition, Quaternion localRotation, Transform parent) + { + var copy = UnityEngine.Object.Instantiate(original, parent, false); + copy.transform.localPosition = localPosition; + copy.transform.localRotation = localRotation; + return copy; + } + public static T DontDestroyOnLoad(this T target) where T : UnityEngine.Object { UnityEngine.Object.DontDestroyOnLoad(target);