Add ember twin cairn variant

for #591
This commit is contained in:
Noah Pilarski 2023-06-17 00:55:09 -04:00
parent 3fc0f5e059
commit af79e9d1d7
6 changed files with 101 additions and 45 deletions

View File

@ -29,8 +29,9 @@ namespace NewHorizons.Builder.Props
private static GameObject _scrollPrefab; private static GameObject _scrollPrefab;
private static GameObject _computerPrefab; private static GameObject _computerPrefab;
private static GameObject _preCrashComputerPrefab; private static GameObject _preCrashComputerPrefab;
private static GameObject _cairnPrefab; private static GameObject _cairnBHPrefab;
private static GameObject _cairnVariantPrefab; private static GameObject _cairnTHPrefab;
private static GameObject _cairnCTPrefab;
private static GameObject _recorderPrefab; private static GameObject _recorderPrefab;
private static GameObject _preCrashRecorderPrefab; private static GameObject _preCrashRecorderPrefab;
private static GameObject _trailmarkerPrefab; private static GameObject _trailmarkerPrefab;
@ -121,16 +122,22 @@ namespace NewHorizons.Builder.Props
_preCrashComputerPrefab.transform.rotation = Quaternion.identity; _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(); _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();
_cairnPrefab.transform.rotation = Quaternion.identity; _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(); _cairnTHPrefab = SearchUtilities.Find("TimberHearth_Body/Sector_TH/Sector_NomaiMines/Interactables_NomaiMines/Prefab_NOM_TH_Cairn_Arc").InstantiateInactive().Rename("Prefab_NOM_TH_Cairn").DontDestroyOnLoad();
_cairnVariantPrefab.transform.rotation = Quaternion.identity; _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) if (_recorderPrefab == null)
@ -410,19 +417,16 @@ namespace NewHorizons.Builder.Props
return computerObject; return computerObject;
} }
case NomaiTextType.Cairn: case NomaiTextType.CairnBrittleHollow:
case NomaiTextType.CairnVariant: 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)) if (!string.IsNullOrEmpty(info.rename))
{ {
cairnObject.name = info.rename; cairnObject.name = info.rename;
} }
else
{
cairnObject.name = _cairnPrefab.name;
}
cairnObject.transform.parent = sector?.transform ?? planetGO.transform; cairnObject.transform.parent = sector?.transform ?? planetGO.transform;

View File

@ -27,8 +27,9 @@ namespace NewHorizons.Builder.Props.TranslatorText
private static GameObject _scrollPrefab; private static GameObject _scrollPrefab;
public static GameObject ComputerPrefab { get; private set; } public static GameObject ComputerPrefab { get; private set; }
private static GameObject _preCrashComputerPrefab; private static GameObject _preCrashComputerPrefab;
private static GameObject _cairnPrefab; private static GameObject _cairnBHPrefab;
private static GameObject _cairnVariantPrefab; private static GameObject _cairnTHPrefab;
private static GameObject _cairnCTPrefab;
private static GameObject _recorderPrefab; private static GameObject _recorderPrefab;
private static GameObject _preCrashRecorderPrefab; private static GameObject _preCrashRecorderPrefab;
private static GameObject _trailmarkerPrefab; 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(); _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) if (_recorderPrefab == null)
@ -269,11 +275,12 @@ namespace NewHorizons.Builder.Props.TranslatorText
return computerObject; return computerObject;
} }
case NomaiTextType.Cairn: case NomaiTextType.CairnBrittleHollow:
case NomaiTextType.CairnVariant: case NomaiTextType.CairnTimberHearth:
case NomaiTextType.CairnEmberTwin:
{ {
var cairnPrefab = info.type == NomaiTextType.CairnVariant ? _cairnVariantPrefab : _cairnPrefab; var cairnPrefab = info.type == NomaiTextType.CairnTimberHearth ? _cairnTHPrefab : (info.type == NomaiTextType.CairnEmberTwin ? _cairnCTPrefab : _cairnBHPrefab);
var cairnObject = GeneralPropBuilder.MakeFromPrefab(cairnPrefab, _cairnPrefab.name, planetGO, sector, info); var cairnObject = GeneralPropBuilder.MakeFromPrefab(cairnPrefab, cairnPrefab.name, planetGO, sector, info);
// Idk do we have to set it active before finding things? // Idk do we have to set it active before finding things?
cairnObject.SetActive(true); cairnObject.SetActive(true);

View File

@ -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) if (Base.hasCometTail)
{ {

View File

@ -1,5 +1,6 @@
using Newtonsoft.Json; using Newtonsoft.Json;
using Newtonsoft.Json.Converters; using Newtonsoft.Json.Converters;
using System;
using System.Runtime.Serialization; using System.Runtime.Serialization;
namespace NewHorizons.External.Modules.TranslatorText namespace NewHorizons.External.Modules.TranslatorText
@ -7,24 +8,34 @@ namespace NewHorizons.External.Modules.TranslatorText
[JsonConverter(typeof(StringEnumConverter))] [JsonConverter(typeof(StringEnumConverter))]
public enum NomaiTextType 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
} }
} }

View File

@ -1636,26 +1636,28 @@
"x-enumNames": [ "x-enumNames": [
"Wall", "Wall",
"Scroll", "Scroll",
"Whiteboard",
"Computer", "Computer",
"Cairn", "PreCrashComputer",
"Recorder", "Recorder",
"PreCrashRecorder", "PreCrashRecorder",
"PreCrashComputer", "CairnBrittleHollow",
"Trailmarker", "CairnTimberHearth",
"CairnVariant", "CairnEmberTwin",
"Whiteboard" "Trailmarker"
], ],
"enum": [ "enum": [
"wall", "wall",
"scroll", "scroll",
"whiteboard",
"computer", "computer",
"cairn", "preCrashComputer",
"recorder", "recorder",
"preCrashRecorder", "preCrashRecorder",
"preCrashComputer", "cairnBH",
"trailmarker", "cairnTH",
"cairnVariant", "cairnCT",
"whiteboard" "trailmarker"
] ]
}, },
"NomaiTextLocation": { "NomaiTextLocation": {

View File

@ -82,6 +82,10 @@ public static class SchemaExporter
{ {
case "Celestial Body Schema": case "Celestial Body Schema":
schema.Definitions["OrbitModule"].Properties["semiMajorAxis"].Default = 5000f; 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; break;
case "Star System Schema": case "Star System Schema":
schema.Definitions["NomaiCoordinates"].Properties["x"].UniqueItems = true; schema.Definitions["NomaiCoordinates"].Properties["x"].UniqueItems = true;