Add Ember Twin cairn variant (#608)

## Minor features
- Added the Ember Twin Cairn variant (#591)

## Improvements
- Renames the cairn NomaiTextType enums to what they actually are.
This commit is contained in:
Nick 2023-06-18 18:43:11 -04:00 committed by GitHub
commit 82e314dce6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
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 _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;

View File

@ -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);

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)
{

View File

@ -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
}
}

View File

@ -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": {

View File

@ -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;