From d3eb516b18f08dcc00eff161e919d189628592ba Mon Sep 17 00:00:00 2001 From: Nick Date: Sat, 23 Jul 2022 20:56:48 -0400 Subject: [PATCH 1/2] Implement vessel computers #242 --- NewHorizons/Builder/Props/NomaiTextBuilder.cs | 34 +++++++++++++++++++ NewHorizons/External/Modules/PropModule.cs | 4 ++- 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/NewHorizons/Builder/Props/NomaiTextBuilder.cs b/NewHorizons/Builder/Props/NomaiTextBuilder.cs index 81ec285f..b090f5e3 100644 --- a/NewHorizons/Builder/Props/NomaiTextBuilder.cs +++ b/NewHorizons/Builder/Props/NomaiTextBuilder.cs @@ -18,6 +18,7 @@ namespace NewHorizons.Builder.Props private static List _ghostArcPrefabs; private static GameObject _scrollPrefab; private static GameObject _computerPrefab; + private static GameObject _preCrashComputerPrefab; private static GameObject _cairnPrefab; private static GameObject _recorderPrefab; private static GameObject _preCrashRecorderPrefab; @@ -80,6 +81,10 @@ namespace NewHorizons.Builder.Props _computerPrefab.name = "Prefab_NOM_Computer"; _computerPrefab.transform.rotation = Quaternion.identity; + _preCrashComputerPrefab = SearchUtilities.Find("BrittleHollow_Body/Sector_BH/Sector_EscapePodCrashSite/Sector_CrashFragment/EscapePod_Socket/Interactibles_EscapePod/Prefab_NOM_Vessel_Computer").InstantiateInactive(); + _preCrashComputerPrefab.name = "Prefab_NOM_Vessel_Computer"; + _preCrashComputerPrefab.transform.rotation = Quaternion.identity; + _cairnPrefab = SearchUtilities.Find("BrittleHollow_Body/Sector_BH/Sector_Crossroads/Interactables_Crossroads/Trailmarkers/Prefab_NOM_BH_Cairn_Arc (1)").InstantiateInactive(); _cairnPrefab.name = "Prefab_NOM_Cairn"; _cairnPrefab.transform.rotation = Quaternion.identity; @@ -203,6 +208,35 @@ namespace NewHorizons.Builder.Props // Make sure the computer model is loaded StreamingHandler.SetUpStreaming(computerObject, sector); + computerObject.SetActive(true); + conversationInfoToCorrespondingSpawnedGameObject[info] = computerObject; + break; + } + case PropModule.NomaiTextInfo.NomaiTextType.PreCrashComputer: + { + var computerObject = _preCrashComputerPrefab.InstantiateInactive(); + + computerObject.transform.parent = sector?.transform ?? planetGO.transform; + computerObject.transform.position = planetGO.transform.TransformPoint(info?.position ?? Vector3.zero); + + var up = computerObject.transform.position - planetGO.transform.position; + if (info.normal != null) up = planetGO.transform.TransformDirection(info.normal); + computerObject.transform.rotation = Quaternion.FromToRotation(Vector3.up, up) * computerObject.transform.rotation; + + // Move it slightly up more + computerObject.transform.position += up.normalized * 0.1f; + + var computer = computerObject.GetComponent(); + computer.SetSector(sector); + + computer._dictNomaiTextData = MakeNomaiTextDict(xmlPath); + computer._nomaiTextAsset = new TextAsset(xmlPath); + computer._nomaiTextAsset.name = Path.GetFileNameWithoutExtension(info.xmlFile); + AddTranslation(xmlPath); + + // Make sure the computer model is loaded + StreamingHandler.SetUpStreaming(computerObject, sector); + computerObject.SetActive(true); conversationInfoToCorrespondingSpawnedGameObject[info] = computerObject; break; diff --git a/NewHorizons/External/Modules/PropModule.cs b/NewHorizons/External/Modules/PropModule.cs index 1724b3e0..674480d2 100644 --- a/NewHorizons/External/Modules/PropModule.cs +++ b/NewHorizons/External/Modules/PropModule.cs @@ -462,7 +462,9 @@ namespace NewHorizons.External.Modules [EnumMember(Value = @"recorder")] Recorder = 4, - [EnumMember(Value = @"preCrashRecorder")] PreCrashRecorder = 5 + [EnumMember(Value = @"preCrashRecorder")] PreCrashRecorder = 5, + + [EnumMember(Value = @"preCrashComputer")] PreCrashComputer = 6 } /// From 7fb92959f2a5ad4e02f5f14e132d80945ba0ed8d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sun, 24 Jul 2022 00:58:58 +0000 Subject: [PATCH 2/2] Updated Schemas --- NewHorizons/Schemas/body_schema.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/NewHorizons/Schemas/body_schema.json b/NewHorizons/Schemas/body_schema.json index b7e33836..0ac4d1d8 100644 --- a/NewHorizons/Schemas/body_schema.json +++ b/NewHorizons/Schemas/body_schema.json @@ -1202,7 +1202,8 @@ "Computer", "Cairn", "Recorder", - "PreCrashRecorder" + "PreCrashRecorder", + "PreCrashComputer" ], "enum": [ "wall", @@ -1210,7 +1211,8 @@ "computer", "cairn", "recorder", - "preCrashRecorder" + "preCrashRecorder", + "preCrashComputer" ] }, "RaftInfo": {