From af79e9d1d74a94cfb5bc8c899a063aaaf70944d2 Mon Sep 17 00:00:00 2001 From: Noah Pilarski Date: Sat, 17 Jun 2023 00:55:09 -0400 Subject: [PATCH 01/11] Add ember twin cairn variant for #591 --- NewHorizons/Builder/Props/NomaiTextBuilder.cs | 34 +++++++++++-------- .../TranslatorText/TranslatorTextBuilder.cs | 27 +++++++++------ NewHorizons/External/Configs/PlanetConfig.cs | 28 +++++++++++++++ .../Props/TranslatorText/NomaiTextType.cs | 31 +++++++++++------ NewHorizons/Schemas/body_schema.json | 22 ++++++------ SchemaExporter/SchemaExporter.cs | 4 +++ 6 files changed, 101 insertions(+), 45 deletions(-) diff --git a/NewHorizons/Builder/Props/NomaiTextBuilder.cs b/NewHorizons/Builder/Props/NomaiTextBuilder.cs index a613b6a4..9dfe17bd 100644 --- a/NewHorizons/Builder/Props/NomaiTextBuilder.cs +++ b/NewHorizons/Builder/Props/NomaiTextBuilder.cs @@ -29,8 +29,9 @@ namespace NewHorizons.Builder.Props private static GameObject _scrollPrefab; private static GameObject _computerPrefab; private static GameObject _preCrashComputerPrefab; - private static GameObject _cairnPrefab; - private static GameObject _cairnVariantPrefab; + private static GameObject _cairnBHPrefab; + private static GameObject _cairnTHPrefab; + private static GameObject _cairnCTPrefab; private static GameObject _recorderPrefab; private static GameObject _preCrashRecorderPrefab; private static GameObject _trailmarkerPrefab; @@ -121,16 +122,22 @@ namespace NewHorizons.Builder.Props _preCrashComputerPrefab.transform.rotation = Quaternion.identity; } - if (_cairnPrefab == null) + if (_cairnBHPrefab == null) { - _cairnPrefab = SearchUtilities.Find("BrittleHollow_Body/Sector_BH/Sector_Crossroads/Interactables_Crossroads/Trailmarkers/Prefab_NOM_BH_Cairn_Arc (1)").InstantiateInactive().Rename("Prefab_NOM_Cairn").DontDestroyOnLoad(); - _cairnPrefab.transform.rotation = Quaternion.identity; + _cairnBHPrefab = SearchUtilities.Find("BrittleHollow_Body/Sector_BH/Sector_Crossroads/Interactables_Crossroads/Trailmarkers/Prefab_NOM_BH_Cairn_Arc (1)").InstantiateInactive().Rename("Prefab_NOM_BH_Cairn").DontDestroyOnLoad(); + _cairnBHPrefab.transform.rotation = Quaternion.identity; } - if (_cairnVariantPrefab == null) + if (_cairnTHPrefab == null) { - _cairnVariantPrefab = SearchUtilities.Find("TimberHearth_Body/Sector_TH/Sector_NomaiMines/Interactables_NomaiMines/Prefab_NOM_TH_Cairn_Arc").InstantiateInactive().Rename("Prefab_NOM_Cairn").DontDestroyOnLoad(); - _cairnVariantPrefab.transform.rotation = Quaternion.identity; + _cairnTHPrefab = SearchUtilities.Find("TimberHearth_Body/Sector_TH/Sector_NomaiMines/Interactables_NomaiMines/Prefab_NOM_TH_Cairn_Arc").InstantiateInactive().Rename("Prefab_NOM_TH_Cairn").DontDestroyOnLoad(); + _cairnTHPrefab.transform.rotation = Quaternion.identity; + } + + if (_cairnCTPrefab == null) + { + _cairnCTPrefab = SearchUtilities.Find("CaveTwin_Body/Sector_CaveTwin/Sector_NorthHemisphere/Sector_NorthSurface/Sector_TimeLoopExperiment/Interactables_TimeLoopExperiment/Prefab_NOM_CT_Cairn_Arc").InstantiateInactive().Rename("Prefab_NOM_CT_Cairn").DontDestroyOnLoad(); + _cairnCTPrefab.transform.rotation = Quaternion.identity; } if (_recorderPrefab == null) @@ -410,19 +417,16 @@ namespace NewHorizons.Builder.Props return computerObject; } - case NomaiTextType.Cairn: - case NomaiTextType.CairnVariant: + case NomaiTextType.CairnBrittleHollow: + case NomaiTextType.CairnTimberHearth: + case NomaiTextType.CairnEmberTwin: { - var cairnObject = (info.type == NomaiTextType.CairnVariant ? _cairnVariantPrefab : _cairnPrefab).InstantiateInactive(); + var cairnObject = (info.type == NomaiTextType.CairnTimberHearth ? _cairnTHPrefab : (info.type == NomaiTextType.CairnEmberTwin ? _cairnCTPrefab : _cairnBHPrefab)).InstantiateInactive(); if (!string.IsNullOrEmpty(info.rename)) { cairnObject.name = info.rename; } - else - { - cairnObject.name = _cairnPrefab.name; - } cairnObject.transform.parent = sector?.transform ?? planetGO.transform; diff --git a/NewHorizons/Builder/Props/TranslatorText/TranslatorTextBuilder.cs b/NewHorizons/Builder/Props/TranslatorText/TranslatorTextBuilder.cs index 1fd23ee2..862257ed 100644 --- a/NewHorizons/Builder/Props/TranslatorText/TranslatorTextBuilder.cs +++ b/NewHorizons/Builder/Props/TranslatorText/TranslatorTextBuilder.cs @@ -27,8 +27,9 @@ namespace NewHorizons.Builder.Props.TranslatorText private static GameObject _scrollPrefab; public static GameObject ComputerPrefab { get; private set; } private static GameObject _preCrashComputerPrefab; - private static GameObject _cairnPrefab; - private static GameObject _cairnVariantPrefab; + private static GameObject _cairnBHPrefab; + private static GameObject _cairnTHPrefab; + private static GameObject _cairnCTPrefab; private static GameObject _recorderPrefab; private static GameObject _preCrashRecorderPrefab; private static GameObject _trailmarkerPrefab; @@ -93,14 +94,19 @@ namespace NewHorizons.Builder.Props.TranslatorText _preCrashComputerPrefab = SearchUtilities.Find("BrittleHollow_Body/Sector_BH/Sector_EscapePodCrashSite/Sector_CrashFragment/EscapePod_Socket/Interactibles_EscapePod/Prefab_NOM_Vessel_Computer").InstantiateInactive().Rename("Prefab_NOM_Vessel_Computer").DontDestroyOnLoad(); } - if (_cairnPrefab == null) + if (_cairnBHPrefab == null) { - _cairnPrefab = SearchUtilities.Find("BrittleHollow_Body/Sector_BH/Sector_Crossroads/Interactables_Crossroads/Trailmarkers/Prefab_NOM_BH_Cairn_Arc (1)").InstantiateInactive().Rename("Prefab_NOM_Cairn").DontDestroyOnLoad(); + _cairnBHPrefab = SearchUtilities.Find("BrittleHollow_Body/Sector_BH/Sector_Crossroads/Interactables_Crossroads/Trailmarkers/Prefab_NOM_BH_Cairn_Arc (1)").InstantiateInactive().Rename("Prefab_NOM_BH_Cairn").DontDestroyOnLoad(); } - if (_cairnVariantPrefab == null) + if (_cairnTHPrefab == null) { - _cairnVariantPrefab = SearchUtilities.Find("TimberHearth_Body/Sector_TH/Sector_NomaiMines/Interactables_NomaiMines/Prefab_NOM_TH_Cairn_Arc").InstantiateInactive().Rename("Prefab_NOM_Cairn").DontDestroyOnLoad(); + _cairnTHPrefab = SearchUtilities.Find("TimberHearth_Body/Sector_TH/Sector_NomaiMines/Interactables_NomaiMines/Prefab_NOM_TH_Cairn_Arc").InstantiateInactive().Rename("Prefab_NOM_TH_Cairn").DontDestroyOnLoad(); + } + + if (_cairnCTPrefab == null) + { + _cairnCTPrefab = SearchUtilities.Find("CaveTwin_Body/Sector_CaveTwin/Sector_NorthHemisphere/Sector_NorthSurface/Sector_TimeLoopExperiment/Interactables_TimeLoopExperiment/Prefab_NOM_CT_Cairn_Arc").InstantiateInactive().Rename("Prefab_NOM_CT_Cairn").DontDestroyOnLoad(); } if (_recorderPrefab == null) @@ -269,11 +275,12 @@ namespace NewHorizons.Builder.Props.TranslatorText return computerObject; } - case NomaiTextType.Cairn: - case NomaiTextType.CairnVariant: + case NomaiTextType.CairnBrittleHollow: + case NomaiTextType.CairnTimberHearth: + case NomaiTextType.CairnEmberTwin: { - var cairnPrefab = info.type == NomaiTextType.CairnVariant ? _cairnVariantPrefab : _cairnPrefab; - var cairnObject = GeneralPropBuilder.MakeFromPrefab(cairnPrefab, _cairnPrefab.name, planetGO, sector, info); + var cairnPrefab = info.type == NomaiTextType.CairnTimberHearth ? _cairnTHPrefab : (info.type == NomaiTextType.CairnEmberTwin ? _cairnCTPrefab : _cairnBHPrefab); + var cairnObject = GeneralPropBuilder.MakeFromPrefab(cairnPrefab, cairnPrefab.name, planetGO, sector, info); // Idk do we have to set it active before finding things? cairnObject.SetActive(true); diff --git a/NewHorizons/External/Configs/PlanetConfig.cs b/NewHorizons/External/Configs/PlanetConfig.cs index 4d76aede..260896b3 100644 --- a/NewHorizons/External/Configs/PlanetConfig.cs +++ b/NewHorizons/External/Configs/PlanetConfig.cs @@ -579,6 +579,34 @@ namespace NewHorizons.External.Configs } } } + if (Props?.nomaiText != null) + { + foreach (var nomaiText in Props.nomaiText) + { + if (nomaiText.type == Modules.TranslatorText.NomaiTextType.Cairn) + { + nomaiText.type = Modules.TranslatorText.NomaiTextType.CairnBrittleHollow; + } + else if (nomaiText.type == Modules.TranslatorText.NomaiTextType.CairnVariant) + { + nomaiText.type = Modules.TranslatorText.NomaiTextType.CairnTimberHearth; + } + } + } + if (Props?.translatorText != null) + { + foreach (var translatorText in Props.translatorText) + { + if (translatorText.type == Modules.TranslatorText.NomaiTextType.Cairn) + { + translatorText.type = Modules.TranslatorText.NomaiTextType.CairnBrittleHollow; + } + else if (translatorText.type == Modules.TranslatorText.NomaiTextType.CairnVariant) + { + translatorText.type = Modules.TranslatorText.NomaiTextType.CairnTimberHearth; + } + } + } if (Base.hasCometTail) { diff --git a/NewHorizons/External/Modules/Props/TranslatorText/NomaiTextType.cs b/NewHorizons/External/Modules/Props/TranslatorText/NomaiTextType.cs index 4d75a178..fc6023f1 100644 --- a/NewHorizons/External/Modules/Props/TranslatorText/NomaiTextType.cs +++ b/NewHorizons/External/Modules/Props/TranslatorText/NomaiTextType.cs @@ -1,5 +1,6 @@ using Newtonsoft.Json; using Newtonsoft.Json.Converters; +using System; using System.Runtime.Serialization; namespace NewHorizons.External.Modules.TranslatorText @@ -7,24 +8,34 @@ namespace NewHorizons.External.Modules.TranslatorText [JsonConverter(typeof(StringEnumConverter))] public enum NomaiTextType { - [EnumMember(Value = @"wall")] Wall = 0, + [EnumMember(Value = @"wall")] Wall, - [EnumMember(Value = @"scroll")] Scroll = 1, + [EnumMember(Value = @"scroll")] Scroll, - [EnumMember(Value = @"computer")] Computer = 2, + [EnumMember(Value = @"whiteboard")] Whiteboard, - [EnumMember(Value = @"cairn")] Cairn = 3, + [EnumMember(Value = @"computer")] Computer, - [EnumMember(Value = @"recorder")] Recorder = 4, + [EnumMember(Value = @"preCrashComputer")] PreCrashComputer, - [EnumMember(Value = @"preCrashRecorder")] PreCrashRecorder = 5, + [EnumMember(Value = @"recorder")] Recorder, - [EnumMember(Value = @"preCrashComputer")] PreCrashComputer = 6, + [EnumMember(Value = @"preCrashRecorder")] PreCrashRecorder, - [EnumMember(Value = @"trailmarker")] Trailmarker = 7, + [EnumMember(Value = @"cairnBH")] CairnBrittleHollow, - [EnumMember(Value = @"cairnVariant")] CairnVariant = 8, + [EnumMember(Value = @"cairnTH")] CairnTimberHearth, - [EnumMember(Value = @"whiteboard")] Whiteboard = 9, + [EnumMember(Value = @"cairnCT")] CairnEmberTwin, + + [EnumMember(Value = @"trailmarker")] Trailmarker, + + #region Obsolete + + [Obsolete("Please use CairnBrittleHollow instead")][EnumMember(Value = @"cairn")] Cairn, + + [Obsolete("Please use CairnTimberHearth instead")][EnumMember(Value = @"cairnVariant")] CairnVariant, + + #endregion } } diff --git a/NewHorizons/Schemas/body_schema.json b/NewHorizons/Schemas/body_schema.json index a45b559d..c63a8f12 100644 --- a/NewHorizons/Schemas/body_schema.json +++ b/NewHorizons/Schemas/body_schema.json @@ -1636,26 +1636,28 @@ "x-enumNames": [ "Wall", "Scroll", + "Whiteboard", "Computer", - "Cairn", + "PreCrashComputer", "Recorder", "PreCrashRecorder", - "PreCrashComputer", - "Trailmarker", - "CairnVariant", - "Whiteboard" + "CairnBrittleHollow", + "CairnTimberHearth", + "CairnEmberTwin", + "Trailmarker" ], "enum": [ "wall", "scroll", + "whiteboard", "computer", - "cairn", + "preCrashComputer", "recorder", "preCrashRecorder", - "preCrashComputer", - "trailmarker", - "cairnVariant", - "whiteboard" + "cairnBH", + "cairnTH", + "cairnCT", + "trailmarker" ] }, "NomaiTextLocation": { diff --git a/SchemaExporter/SchemaExporter.cs b/SchemaExporter/SchemaExporter.cs index c2e94e25..557679ac 100644 --- a/SchemaExporter/SchemaExporter.cs +++ b/SchemaExporter/SchemaExporter.cs @@ -82,6 +82,10 @@ public static class SchemaExporter { case "Celestial Body Schema": schema.Definitions["OrbitModule"].Properties["semiMajorAxis"].Default = 5000f; + schema.Definitions["NomaiTextType"].Enumeration.Remove("cairn"); + schema.Definitions["NomaiTextType"].EnumerationNames.Remove("Cairn"); + schema.Definitions["NomaiTextType"].Enumeration.Remove("cairnVariant"); + schema.Definitions["NomaiTextType"].EnumerationNames.Remove("CairnVariant"); break; case "Star System Schema": schema.Definitions["NomaiCoordinates"].Properties["x"].UniqueItems = true; From bf4daef815342658b2b92c6391838533c5c3d3aa Mon Sep 17 00:00:00 2001 From: JohnCorby Date: Wed, 21 Jun 2023 22:46:39 -0700 Subject: [PATCH 02/11] SchemaExporter: remove unneeded guy --- SchemaExporter/SchemaExporter.cs | 4 ---- 1 file changed, 4 deletions(-) diff --git a/SchemaExporter/SchemaExporter.cs b/SchemaExporter/SchemaExporter.cs index 557679ac..c2e94e25 100644 --- a/SchemaExporter/SchemaExporter.cs +++ b/SchemaExporter/SchemaExporter.cs @@ -82,10 +82,6 @@ public static class SchemaExporter { case "Celestial Body Schema": schema.Definitions["OrbitModule"].Properties["semiMajorAxis"].Default = 5000f; - schema.Definitions["NomaiTextType"].Enumeration.Remove("cairn"); - schema.Definitions["NomaiTextType"].EnumerationNames.Remove("Cairn"); - schema.Definitions["NomaiTextType"].Enumeration.Remove("cairnVariant"); - schema.Definitions["NomaiTextType"].EnumerationNames.Remove("CairnVariant"); break; case "Star System Schema": schema.Definitions["NomaiCoordinates"].Properties["x"].UniqueItems = true; From 947cf0eee54eee8d997b565e1f3b4ec0dd7955da Mon Sep 17 00:00:00 2001 From: Ben C Date: Thu, 22 Jun 2023 05:49:23 +0000 Subject: [PATCH 03/11] Updated Schemas --- NewHorizons/Schemas/body_schema.json | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/NewHorizons/Schemas/body_schema.json b/NewHorizons/Schemas/body_schema.json index c63a8f12..b4ec5ce7 100644 --- a/NewHorizons/Schemas/body_schema.json +++ b/NewHorizons/Schemas/body_schema.json @@ -1644,7 +1644,9 @@ "CairnBrittleHollow", "CairnTimberHearth", "CairnEmberTwin", - "Trailmarker" + "Trailmarker", + "Cairn", + "CairnVariant" ], "enum": [ "wall", @@ -1657,7 +1659,9 @@ "cairnBH", "cairnTH", "cairnCT", - "trailmarker" + "trailmarker", + "cairn", + "cairnVariant" ] }, "NomaiTextLocation": { From bd531dca6eb3f7d4fe5034f9abc4ce84e1d32592 Mon Sep 17 00:00:00 2001 From: JohnCorby Date: Wed, 21 Jun 2023 23:50:59 -0700 Subject: [PATCH 04/11] work on orbs --- NewHorizons/Builder/Props/DetailBuilder.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/NewHorizons/Builder/Props/DetailBuilder.cs b/NewHorizons/Builder/Props/DetailBuilder.cs index 2cb79c45..8c9eb213 100644 --- a/NewHorizons/Builder/Props/DetailBuilder.cs +++ b/NewHorizons/Builder/Props/DetailBuilder.cs @@ -345,8 +345,8 @@ namespace NewHorizons.Builder.Props else if (component is NomaiInterfaceOrb orb) { - orb._parentAstroObject = planetGO.GetComponent(); - orb._parentBody = planetGO.GetComponent(); + // TODO: orb lock count is negative. this breaks things. simply resetting it does not work + orb.GetComponent()._detectableFields = new ForceVolume[] { planetGO.GetComponent().GetGravityVolume() }; } else if (component is VisionTorchItem torchItem) From 0f6800172fad55546408a8df78a6bcb4e65b2cb7 Mon Sep 17 00:00:00 2001 From: JohnCorby Date: Wed, 21 Jun 2023 23:51:57 -0700 Subject: [PATCH 05/11] Revert "SchemaExporter: remove unneeded guy" This reverts commit bf4daef815342658b2b92c6391838533c5c3d3aa. --- SchemaExporter/SchemaExporter.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/SchemaExporter/SchemaExporter.cs b/SchemaExporter/SchemaExporter.cs index c2e94e25..557679ac 100644 --- a/SchemaExporter/SchemaExporter.cs +++ b/SchemaExporter/SchemaExporter.cs @@ -82,6 +82,10 @@ public static class SchemaExporter { case "Celestial Body Schema": schema.Definitions["OrbitModule"].Properties["semiMajorAxis"].Default = 5000f; + schema.Definitions["NomaiTextType"].Enumeration.Remove("cairn"); + schema.Definitions["NomaiTextType"].EnumerationNames.Remove("Cairn"); + schema.Definitions["NomaiTextType"].Enumeration.Remove("cairnVariant"); + schema.Definitions["NomaiTextType"].EnumerationNames.Remove("CairnVariant"); break; case "Star System Schema": schema.Definitions["NomaiCoordinates"].Properties["x"].UniqueItems = true; From 7f41847aea54ba702b12e87a9e73cb088494660f Mon Sep 17 00:00:00 2001 From: Ben C Date: Thu, 22 Jun 2023 06:54:23 +0000 Subject: [PATCH 06/11] Updated Schemas --- NewHorizons/Schemas/body_schema.json | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/NewHorizons/Schemas/body_schema.json b/NewHorizons/Schemas/body_schema.json index b4ec5ce7..c63a8f12 100644 --- a/NewHorizons/Schemas/body_schema.json +++ b/NewHorizons/Schemas/body_schema.json @@ -1644,9 +1644,7 @@ "CairnBrittleHollow", "CairnTimberHearth", "CairnEmberTwin", - "Trailmarker", - "Cairn", - "CairnVariant" + "Trailmarker" ], "enum": [ "wall", @@ -1659,9 +1657,7 @@ "cairnBH", "cairnTH", "cairnCT", - "trailmarker", - "cairn", - "cairnVariant" + "trailmarker" ] }, "NomaiTextLocation": { From aa1ae374aacc71740609e3189f7117b5b8733f0d Mon Sep 17 00:00:00 2001 From: JohnCorby Date: Thu, 22 Jun 2023 00:10:28 -0700 Subject: [PATCH 07/11] fix orbs --- NewHorizons/Builder/Props/DetailBuilder.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/NewHorizons/Builder/Props/DetailBuilder.cs b/NewHorizons/Builder/Props/DetailBuilder.cs index 8c9eb213..6cb352f5 100644 --- a/NewHorizons/Builder/Props/DetailBuilder.cs +++ b/NewHorizons/Builder/Props/DetailBuilder.cs @@ -255,7 +255,8 @@ namespace NewHorizons.Builder.Props else if(component is SectoredMonoBehaviour behaviour) { - behaviour.SetSector(sector); + // not using SetSector here because it registers the events twice + behaviour._sector = sector; } else if(component is OWItemSocket socket) @@ -345,7 +346,7 @@ namespace NewHorizons.Builder.Props else if (component is NomaiInterfaceOrb orb) { - // TODO: orb lock count is negative. this breaks things. simply resetting it does not work + // detect planet gravity orb.GetComponent()._detectableFields = new ForceVolume[] { planetGO.GetComponent().GetGravityVolume() }; } From f23c7924ec6903bffd6a2ec09befbc71b8ba26f6 Mon Sep 17 00:00:00 2001 From: JohnCorby Date: Thu, 22 Jun 2023 00:12:18 -0700 Subject: [PATCH 08/11] comment --- NewHorizons/Builder/Props/DetailBuilder.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/NewHorizons/Builder/Props/DetailBuilder.cs b/NewHorizons/Builder/Props/DetailBuilder.cs index 6cb352f5..e0008823 100644 --- a/NewHorizons/Builder/Props/DetailBuilder.cs +++ b/NewHorizons/Builder/Props/DetailBuilder.cs @@ -256,6 +256,7 @@ namespace NewHorizons.Builder.Props else if(component is SectoredMonoBehaviour behaviour) { // not using SetSector here because it registers the events twice + // perhaps this happens with ISectorGroup.SetSector or Sector.SetParentSector too? idk and nothing seems to break because of it yet behaviour._sector = sector; } From 0599e4c9884577485f1355026eabe090c02d357d Mon Sep 17 00:00:00 2001 From: JohnCorby Date: Thu, 22 Jun 2023 00:13:45 -0700 Subject: [PATCH 09/11] another comment --- NewHorizons/Builder/Props/DetailBuilder.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/NewHorizons/Builder/Props/DetailBuilder.cs b/NewHorizons/Builder/Props/DetailBuilder.cs index e0008823..8e988487 100644 --- a/NewHorizons/Builder/Props/DetailBuilder.cs +++ b/NewHorizons/Builder/Props/DetailBuilder.cs @@ -348,6 +348,7 @@ namespace NewHorizons.Builder.Props else if (component is NomaiInterfaceOrb orb) { // detect planet gravity + // perhaps we should just detect no volumes. it seems to behave similarly in either case orb.GetComponent()._detectableFields = new ForceVolume[] { planetGO.GetComponent().GetGravityVolume() }; } From 89f334f5696d3434b03888600112d4784394dd1a Mon Sep 17 00:00:00 2001 From: JohnCorby Date: Thu, 22 Jun 2023 00:24:58 -0700 Subject: [PATCH 10/11] sometimes there is no planet gravity --- NewHorizons/Builder/Props/DetailBuilder.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/NewHorizons/Builder/Props/DetailBuilder.cs b/NewHorizons/Builder/Props/DetailBuilder.cs index 8e988487..69ff3c11 100644 --- a/NewHorizons/Builder/Props/DetailBuilder.cs +++ b/NewHorizons/Builder/Props/DetailBuilder.cs @@ -348,8 +348,8 @@ namespace NewHorizons.Builder.Props else if (component is NomaiInterfaceOrb orb) { // detect planet gravity - // perhaps we should just detect no volumes. it seems to behave similarly in either case - orb.GetComponent()._detectableFields = new ForceVolume[] { planetGO.GetComponent().GetGravityVolume() }; + var gravityVolume = planetGO.GetAttachedOWRigidbody().GetAttachedGravityVolume(); + orb.GetComponent()._detectableFields = gravityVolume ? new ForceVolume[] { gravityVolume } : new ForceVolume[] { }; } else if (component is VisionTorchItem torchItem) From 6fc600553798d3896e3174501b503557f665102e Mon Sep 17 00:00:00 2001 From: Nick Date: Wed, 28 Jun 2023 16:42:08 -0400 Subject: [PATCH 11/11] Vio fixed Dreamworld fog --- .../DreamworldControllerPatches.cs | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 NewHorizons/Patches/EchoesOfTheEyePatches/DreamworldControllerPatches.cs diff --git a/NewHorizons/Patches/EchoesOfTheEyePatches/DreamworldControllerPatches.cs b/NewHorizons/Patches/EchoesOfTheEyePatches/DreamworldControllerPatches.cs new file mode 100644 index 00000000..4119fd0a --- /dev/null +++ b/NewHorizons/Patches/EchoesOfTheEyePatches/DreamworldControllerPatches.cs @@ -0,0 +1,30 @@ +using HarmonyLib; +using System.Collections.Generic; +using System.Reflection.Emit; +using UnityEngine; + +namespace NewHorizons.Patches.EchoesOfTheEyePatches +{ + [HarmonyPatch(typeof(DreamWorldController))] + public static class DreamworldControllerPatches + { + [HarmonyTranspiler] + [HarmonyPatch(nameof(DreamWorldController.FixedUpdate))] + [HarmonyPatch(nameof(DreamWorldController.SpawnInDreamWorld))] + public static IEnumerable DreamWorldController_SpawnInDreamworld(IEnumerable instructions) + { + // Thank you vio very cool! + // For some reason in Patch 13 they made it so the planetary fog controller is disabled in the Dreamworld + // This broke Hazy Dreams + return new CodeMatcher(instructions).MatchForward(false, + new CodeMatch(OpCodes.Ldarg_0), + new CodeMatch(OpCodes.Ldfld, AccessTools.Field(typeof(DreamWorldController), nameof(DreamWorldController._playerCamera))), + new CodeMatch(OpCodes.Callvirt, AccessTools.Property(typeof(OWCamera), nameof(OWCamera.planetaryFog)).GetGetMethod()), + new CodeMatch(OpCodes.Ldc_I4_0), + new CodeMatch(OpCodes.Callvirt, AccessTools.Property(typeof(Behaviour), nameof(Behaviour.enabled)).GetSetMethod()) + ) + .Repeat(matcher => matcher.RemoveInstructions(5)) + .InstructionEnumeration(); + } + } +}