Merge branch 'schema-integration' of https://github.com/xen-42/outer-wilds-new-horizons into schema-integration

This commit is contained in:
Nick 2022-05-23 21:26:58 -04:00
commit 497e1f5a38
5 changed files with 44 additions and 37 deletions

View File

@ -4,6 +4,7 @@ using NewHorizons.Utility;
using OWML.Utils; using OWML.Utils;
using UnityEngine; using UnityEngine;
using NewHorizons.External.Modules.VariableSize; using NewHorizons.External.Modules.VariableSize;
using Logger = NewHorizons.Utility.Logger;
namespace NewHorizons.Builder.Body namespace NewHorizons.Builder.Body
{ {
@ -22,7 +23,7 @@ namespace NewHorizons.Builder.Body
{ {
var starGO = MakeStarGraphics(planetGO, sector, starModule); var starGO = MakeStarGraphics(planetGO, sector, starModule);
var sunAudio = GameObject.Instantiate(GameObject.Find("Sun_Body/Sector_SUN/Audio_SUN"), starGO.transform); var sunAudio = Object.Instantiate(GameObject.Find("Sun_Body/Sector_SUN/Audio_SUN"), starGO.transform);
sunAudio.transform.localPosition = Vector3.zero; sunAudio.transform.localPosition = Vector3.zero;
sunAudio.transform.localScale = Vector3.one; sunAudio.transform.localScale = Vector3.one;
sunAudio.transform.Find("SurfaceAudio_Sun").GetComponent<AudioSource>().maxDistance = starModule.size * 2f; sunAudio.transform.Find("SurfaceAudio_Sun").GetComponent<AudioSource>().maxDistance = starModule.size * 2f;
@ -35,11 +36,11 @@ namespace NewHorizons.Builder.Body
GameObject sunAtmosphere = null; GameObject sunAtmosphere = null;
if (starModule.hasAtmosphere) if (starModule.hasAtmosphere)
{ {
sunAtmosphere = GameObject.Instantiate(GameObject.Find("Sun_Body/Atmosphere_SUN"), starGO.transform); sunAtmosphere = Object.Instantiate(GameObject.Find("Sun_Body/Atmosphere_SUN"), starGO.transform);
sunAtmosphere.transform.position = planetGO.transform.position; sunAtmosphere.transform.position = planetGO.transform.position;
sunAtmosphere.transform.localScale = Vector3.one * OuterRadiusRatio; sunAtmosphere.transform.localScale = Vector3.one * OuterRadiusRatio;
sunAtmosphere.name = "Atmosphere_Star"; sunAtmosphere.name = "Atmosphere_Star";
PlanetaryFogController fog = sunAtmosphere.transform.Find("FogSphere").GetComponent<PlanetaryFogController>(); var fog = sunAtmosphere.transform.Find("FogSphere").GetComponent<PlanetaryFogController>();
if (starModule.tint != null) if (starModule.tint != null)
{ {
fog.fogTint = starModule.tint; fog.fogTint = starModule.tint;
@ -58,17 +59,17 @@ namespace NewHorizons.Builder.Body
fog.lodFadeDistance = fog.fogRadius * (StarBuilder.OuterRadiusRatio - 1f); fog.lodFadeDistance = fog.fogRadius * (StarBuilder.OuterRadiusRatio - 1f);
} }
var ambientLightGO = GameObject.Instantiate(GameObject.Find("Sun_Body/AmbientLight_SUN"), starGO.transform); var ambientLightGO = Object.Instantiate(GameObject.Find("Sun_Body/AmbientLight_SUN"), starGO.transform);
ambientLightGO.transform.localPosition = Vector3.zero; ambientLightGO.transform.localPosition = Vector3.zero;
ambientLightGO.name = "AmbientLight_Star"; ambientLightGO.name = "AmbientLight_Star";
var heatVolume = GameObject.Instantiate(GameObject.Find("Sun_Body/Sector_SUN/Volumes_SUN/HeatVolume"), starGO.transform); var heatVolume = Object.Instantiate(GameObject.Find("Sun_Body/Sector_SUN/Volumes_SUN/HeatVolume"), starGO.transform);
heatVolume.transform.localPosition = Vector3.zero; heatVolume.transform.localPosition = Vector3.zero;
heatVolume.transform.localScale = Vector3.one; heatVolume.transform.localScale = Vector3.one;
heatVolume.GetComponent<SphereShape>().radius = 1f; heatVolume.GetComponent<SphereShape>().radius = 1f;
heatVolume.name = "HeatVolume"; heatVolume.name = "HeatVolume";
var deathVolume = GameObject.Instantiate(GameObject.Find("Sun_Body/Sector_SUN/Volumes_SUN/ScaledVolumesRoot/DestructionFluidVolume"), starGO.transform); var deathVolume = Object.Instantiate(GameObject.Find("Sun_Body/Sector_SUN/Volumes_SUN/ScaledVolumesRoot/DestructionFluidVolume"), starGO.transform);
deathVolume.transform.localPosition = Vector3.zero; deathVolume.transform.localPosition = Vector3.zero;
deathVolume.transform.localScale = Vector3.one; deathVolume.transform.localScale = Vector3.one;
deathVolume.GetComponent<SphereCollider>().radius = 1f; deathVolume.GetComponent<SphereCollider>().radius = 1f;
@ -170,12 +171,12 @@ namespace NewHorizons.Builder.Body
var starGO = new GameObject("Star"); var starGO = new GameObject("Star");
starGO.transform.parent = sector?.transform ?? rootObject.transform; starGO.transform.parent = sector?.transform ?? rootObject.transform;
var sunSurface = GameObject.Instantiate(GameObject.Find("Sun_Body/Sector_SUN/Geometry_SUN/Surface"), starGO.transform); var sunSurface = Object.Instantiate(GameObject.Find("Sun_Body/Sector_SUN/Geometry_SUN/Surface"), starGO.transform);
sunSurface.transform.position = rootObject.transform.position; sunSurface.transform.position = rootObject.transform.position;
sunSurface.transform.localScale = Vector3.one; sunSurface.transform.localScale = Vector3.one;
sunSurface.name = "Surface"; sunSurface.name = "Surface";
var solarFlareEmitter = GameObject.Instantiate(GameObject.Find("Sun_Body/Sector_SUN/Effects_SUN/SolarFlareEmitter"), starGO.transform); var solarFlareEmitter = Object.Instantiate(GameObject.Find("Sun_Body/Sector_SUN/Effects_SUN/SolarFlareEmitter"), starGO.transform);
solarFlareEmitter.transform.localPosition = Vector3.zero; solarFlareEmitter.transform.localPosition = Vector3.zero;
solarFlareEmitter.transform.localScale = Vector3.one; solarFlareEmitter.transform.localScale = Vector3.one;
solarFlareEmitter.name = "SolarFlareEmitter"; solarFlareEmitter.name = "SolarFlareEmitter";
@ -211,8 +212,8 @@ namespace NewHorizons.Builder.Body
var adjustedColour = new Color(colour.r * mod, colour.g * mod, colour.b * mod); var adjustedColour = new Color(colour.r * mod, colour.g * mod, colour.b * mod);
surface.sharedMaterial.color = adjustedColour; surface.sharedMaterial.color = adjustedColour;
Color.RGBToHSV(adjustedColour, out float H, out float S, out float V); Color.RGBToHSV(adjustedColour, out var h, out var s, out var v);
var darkenedColor = Color.HSVToRGB(H, S * 1.2f, V * 0.05f); var darkenedColor = Color.HSVToRGB(h, s * 1.2f, v * 0.05f);
if (starModule.endTint != null) if (starModule.endTint != null)
{ {
@ -250,6 +251,11 @@ namespace NewHorizons.Builder.Body
moteMaterial.color = new Color(colour.r * 3f, colour.g * 3f, colour.b * 3f, moteMaterial.color.a); moteMaterial.color = new Color(colour.r * 3f, colour.g * 3f, colour.b * 3f, moteMaterial.color.a);
} }
foreach (var controller in supernova.GetComponentsInChildren<SupernovaStreamersController>())
{
Object.DestroyImmediate(controller);
}
supernovaGO.SetActive(true); supernovaGO.SetActive(true);
return supernova; return supernova;

View File

@ -7,6 +7,7 @@ using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using UnityEngine; using UnityEngine;
using UnityEngine.Events; using UnityEngine.Events;
using Logger = NewHorizons.Utility.Logger;
namespace NewHorizons.Components.SizeControllers namespace NewHorizons.Components.SizeControllers
{ {

View File

@ -9,33 +9,33 @@ namespace NewHorizons.External.Configs
/// <summary> /// <summary>
/// Translation table for dialogue /// Translation table for dialogue
/// </summary> /// </summary>
public Dictionary<string, string> dialogueDictionary; public Dictionary<string, string> DialogueDictionary;
/// <summary> /// <summary>
/// Translation table for Ship Log (entries, facts, etc) /// Translation table for Ship Log (entries, facts, etc)
/// </summary> /// </summary>
public Dictionary<string, string> shipLogDictionary; public Dictionary<string, string> ShipLogDictionary;
/// <summary> /// <summary>
/// Translation table for UI elements /// Translation table for UI elements
/// </summary> /// </summary>
public Dictionary<string, string> uiDictionary; public Dictionary<string, string> UIDictionary;
public TranslationConfig(string filename) public TranslationConfig(string filename)
{ {
var dict = JObject.Parse(File.ReadAllText(filename)).ToObject<Dictionary<string, object>>(); var dict = JObject.Parse(File.ReadAllText(filename)).ToObject<Dictionary<string, object>>();
if (dict.ContainsKey(nameof(dialogueDictionary))) if (dict.ContainsKey(nameof(DialogueDictionary)))
dialogueDictionary = DialogueDictionary =
(Dictionary<string, string>) (dict[nameof(dialogueDictionary)] as JObject).ToObject( (Dictionary<string, string>) (dict[nameof(DialogueDictionary)] as JObject).ToObject(
typeof(Dictionary<string, string>)); typeof(Dictionary<string, string>));
if (dict.ContainsKey(nameof(shipLogDictionary))) if (dict.ContainsKey(nameof(ShipLogDictionary)))
shipLogDictionary = ShipLogDictionary =
(Dictionary<string, string>) (dict[nameof(shipLogDictionary)] as JObject).ToObject( (Dictionary<string, string>) (dict[nameof(ShipLogDictionary)] as JObject).ToObject(
typeof(Dictionary<string, string>)); typeof(Dictionary<string, string>));
if (dict.ContainsKey(nameof(uiDictionary))) if (dict.ContainsKey(nameof(UIDictionary)))
uiDictionary = UIDictionary =
(Dictionary<string, string>) (dict[nameof(uiDictionary)] as JObject).ToObject( (Dictionary<string, string>) (dict[nameof(UIDictionary)] as JObject).ToObject(
typeof(Dictionary<string, string>)); typeof(Dictionary<string, string>));
} }
} }

View File

@ -61,39 +61,39 @@ namespace NewHorizons.Handlers
public static void RegisterTranslation(TextTranslation.Language language, TranslationConfig config) public static void RegisterTranslation(TextTranslation.Language language, TranslationConfig config)
{ {
if (config.shipLogDictionary != null && config.shipLogDictionary.Count() > 0) if (config.ShipLogDictionary != null && config.ShipLogDictionary.Count > 0)
{ {
if (!_shipLogTranslationDictionary.ContainsKey(language)) _shipLogTranslationDictionary.Add(language, new Dictionary<string, string>()); if (!_shipLogTranslationDictionary.ContainsKey(language)) _shipLogTranslationDictionary.Add(language, new Dictionary<string, string>());
foreach (var originalKey in config.shipLogDictionary.Keys) foreach (var originalKey in config.ShipLogDictionary.Keys)
{ {
var key = originalKey.Replace("&lt;", "<").Replace("&gt;", ">").Replace("<![CDATA[", "").Replace("]]>", ""); var key = originalKey.Replace("&lt;", "<").Replace("&gt;", ">").Replace("<![CDATA[", "").Replace("]]>", "");
if (!_shipLogTranslationDictionary[language].ContainsKey(key)) _shipLogTranslationDictionary[language].Add(key, config.shipLogDictionary[originalKey]); if (!_shipLogTranslationDictionary[language].ContainsKey(key)) _shipLogTranslationDictionary[language].Add(key, config.ShipLogDictionary[originalKey]);
else _shipLogTranslationDictionary[language][key] = config.shipLogDictionary[originalKey]; else _shipLogTranslationDictionary[language][key] = config.ShipLogDictionary[originalKey];
} }
} }
if (config.dialogueDictionary != null && config.dialogueDictionary.Count() > 0) if (config.DialogueDictionary != null && config.DialogueDictionary.Count > 0)
{ {
if (!_dialogueTranslationDictionary.ContainsKey(language)) _dialogueTranslationDictionary.Add(language, new Dictionary<string, string>()); if (!_dialogueTranslationDictionary.ContainsKey(language)) _dialogueTranslationDictionary.Add(language, new Dictionary<string, string>());
foreach (var originalKey in config.dialogueDictionary.Keys) foreach (var originalKey in config.DialogueDictionary.Keys)
{ {
var key = originalKey.Replace("&lt;", "<").Replace("&gt;", ">").Replace("<![CDATA[", "").Replace("]]>", ""); var key = originalKey.Replace("&lt;", "<").Replace("&gt;", ">").Replace("<![CDATA[", "").Replace("]]>", "");
if (!_dialogueTranslationDictionary[language].ContainsKey(key)) _dialogueTranslationDictionary[language].Add(key, config.dialogueDictionary[originalKey]); if (!_dialogueTranslationDictionary[language].ContainsKey(key)) _dialogueTranslationDictionary[language].Add(key, config.DialogueDictionary[originalKey]);
else _dialogueTranslationDictionary[language][key] = config.dialogueDictionary[originalKey]; else _dialogueTranslationDictionary[language][key] = config.DialogueDictionary[originalKey];
} }
} }
if (config.uiDictionary != null && config.uiDictionary.Count() > 0) if (config.UIDictionary != null && config.UIDictionary.Count() > 0)
{ {
if (!_uiTranslationDictionary.ContainsKey(language)) _uiTranslationDictionary.Add(language, new Dictionary<string, string>()); if (!_uiTranslationDictionary.ContainsKey(language)) _uiTranslationDictionary.Add(language, new Dictionary<string, string>());
foreach (var originalKey in config.uiDictionary.Keys) foreach (var originalKey in config.UIDictionary.Keys)
{ {
var key = originalKey.Replace("&lt;", "<").Replace("&gt;", ">").Replace("<![CDATA[", "").Replace("]]>", ""); var key = originalKey.Replace("&lt;", "<").Replace("&gt;", ">").Replace("<![CDATA[", "").Replace("]]>", "");
if (!_uiTranslationDictionary[language].ContainsKey(key)) _uiTranslationDictionary[language].Add(key, config.uiDictionary[originalKey]); if (!_uiTranslationDictionary[language].ContainsKey(key)) _uiTranslationDictionary[language].Add(key, config.UIDictionary[originalKey]);
else _uiTranslationDictionary[language][key] = config.uiDictionary[originalKey]; else _uiTranslationDictionary[language][key] = config.UIDictionary[originalKey];
} }
} }
} }

View File

@ -4,21 +4,21 @@
"type": "object", "type": "object",
"additionalProperties": false, "additionalProperties": false,
"properties": { "properties": {
"dialogueDictionary": { "DialogueDictionary": {
"type": "object", "type": "object",
"description": "Translation table for dialogue", "description": "Translation table for dialogue",
"additionalProperties": { "additionalProperties": {
"type": "string" "type": "string"
} }
}, },
"shipLogDictionary": { "ShipLogDictionary": {
"type": "object", "type": "object",
"description": "Translation table for Ship Log (entries, facts, etc)", "description": "Translation table for Ship Log (entries, facts, etc)",
"additionalProperties": { "additionalProperties": {
"type": "string" "type": "string"
} }
}, },
"uiDictionary": { "UIDictionary": {
"type": "object", "type": "object",
"description": "Translation table for UI elements", "description": "Translation table for UI elements",
"additionalProperties": { "additionalProperties": {