diff --git a/NewHorizons/Builder/Props/WarpPadBuilder.cs b/NewHorizons/Builder/Props/WarpPadBuilder.cs index f1afde44..e6ae0b42 100644 --- a/NewHorizons/Builder/Props/WarpPadBuilder.cs +++ b/NewHorizons/Builder/Props/WarpPadBuilder.cs @@ -1,7 +1,6 @@ -using Epic.OnlineServices.Presence; using NewHorizons.Builder.Props.TranslatorText; +using NewHorizons.External.Modules; using NewHorizons.External.Modules.WarpPad; -using NewHorizons.Handlers; using NewHorizons.Utility; using NewHorizons.Utility.OWMLUtilities; using OWML.Utils; @@ -85,9 +84,7 @@ namespace NewHorizons.Builder.Props public static void Make(GameObject planetGO, Sector sector, NomaiWarpReceiverInfo info) { - var receiverObject = GeneralPropBuilder.MakeFromPrefab(info.detailed ? _detailedReceiverPrefab : _receiverPrefab, "NomaiWarpReceiver", planetGO, sector, info); - - StreamingHandler.SetUpStreaming(receiverObject, sector); + var receiverObject = DetailBuilder.Make(planetGO, sector, info.detailed ? _detailedReceiverPrefab : _receiverPrefab, new PropModule.DetailInfo(info)); var receiver = receiverObject.GetComponentInChildren(); @@ -107,9 +104,7 @@ namespace NewHorizons.Builder.Props public static void Make(GameObject planetGO, Sector sector, NomaiWarpTransmitterInfo info) { - var transmitterObject = GeneralPropBuilder.MakeFromPrefab(_transmitterPrefab, "NomaiWarpTransmitter", planetGO, sector, info); - - StreamingHandler.SetUpStreaming(transmitterObject, sector); + var transmitterObject = DetailBuilder.Make(planetGO, sector, _transmitterPrefab, new PropModule.DetailInfo(info)); var transmitter = transmitterObject.GetComponentInChildren(); transmitter._frequency = GetFrequency(info.frequency); @@ -123,7 +118,7 @@ namespace NewHorizons.Builder.Props private static void CreateComputer(GameObject planetGO, Sector sector, NomaiWarpComputerLoggerInfo computerInfo, NomaiWarpReceiver receiver) { - var computerObject = GeneralPropBuilder.MakeFromPrefab(TranslatorTextBuilder.ComputerPrefab, TranslatorTextBuilder.ComputerPrefab.name, planetGO, sector, computerInfo); + var computerObject = DetailBuilder.Make(planetGO, sector, TranslatorTextBuilder.ComputerPrefab, new PropModule.DetailInfo(computerInfo)); var computer = computerObject.GetComponentInChildren(); computer.SetSector(sector); @@ -133,8 +128,6 @@ namespace NewHorizons.Builder.Props var computerLogger = computerObject.AddComponent(); computerLogger._warpReceiver = receiver; - StreamingHandler.SetUpStreaming(computerObject, sector); - computerObject.SetActive(true); } diff --git a/NewHorizons/External/Modules/PropModule.cs b/NewHorizons/External/Modules/PropModule.cs index ede2eb5a..539cab5d 100644 --- a/NewHorizons/External/Modules/PropModule.cs +++ b/NewHorizons/External/Modules/PropModule.cs @@ -175,6 +175,16 @@ namespace NewHorizons.External.Modules [JsonObject] public class DetailInfo : GeneralPropInfo { + public DetailInfo() { } + + public DetailInfo(GeneralPropInfo info) + { + foreach (var prop in info.GetType().GetProperties()) + { + GetType().GetProperty(prop.Name).SetValue(this, prop.GetValue(info, null), null); + } + } + /// /// Relative filepath to an asset-bundle to load the prefab defined in `path` from ///