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 UnityEngine;
using NewHorizons.External.Modules.VariableSize;
using Logger = NewHorizons.Utility.Logger;
namespace NewHorizons.Builder.Body
{
@ -22,7 +23,7 @@ namespace NewHorizons.Builder.Body
{
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.localScale = Vector3.one;
sunAudio.transform.Find("SurfaceAudio_Sun").GetComponent<AudioSource>().maxDistance = starModule.size * 2f;
@ -35,11 +36,11 @@ namespace NewHorizons.Builder.Body
GameObject sunAtmosphere = null;
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.localScale = Vector3.one * OuterRadiusRatio;
sunAtmosphere.name = "Atmosphere_Star";
PlanetaryFogController fog = sunAtmosphere.transform.Find("FogSphere").GetComponent<PlanetaryFogController>();
var fog = sunAtmosphere.transform.Find("FogSphere").GetComponent<PlanetaryFogController>();
if (starModule.tint != null)
{
fog.fogTint = starModule.tint;
@ -58,17 +59,17 @@ namespace NewHorizons.Builder.Body
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.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.localScale = Vector3.one;
heatVolume.GetComponent<SphereShape>().radius = 1f;
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.localScale = Vector3.one;
deathVolume.GetComponent<SphereCollider>().radius = 1f;
@ -170,12 +171,12 @@ namespace NewHorizons.Builder.Body
var starGO = new GameObject("Star");
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.localScale = Vector3.one;
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.localScale = Vector3.one;
solarFlareEmitter.name = "SolarFlareEmitter";
@ -211,8 +212,8 @@ namespace NewHorizons.Builder.Body
var adjustedColour = new Color(colour.r * mod, colour.g * mod, colour.b * mod);
surface.sharedMaterial.color = adjustedColour;
Color.RGBToHSV(adjustedColour, out float H, out float S, out float V);
var darkenedColor = Color.HSVToRGB(H, S * 1.2f, V * 0.05f);
Color.RGBToHSV(adjustedColour, out var h, out var s, out var v);
var darkenedColor = Color.HSVToRGB(h, s * 1.2f, v * 0.05f);
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);
}
foreach (var controller in supernova.GetComponentsInChildren<SupernovaStreamersController>())
{
Object.DestroyImmediate(controller);
}
supernovaGO.SetActive(true);
return supernova;

View File

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

View File

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

View File

@ -61,39 +61,39 @@ namespace NewHorizons.Handlers
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>());
foreach (var originalKey in config.shipLogDictionary.Keys)
foreach (var originalKey in config.ShipLogDictionary.Keys)
{
var key = originalKey.Replace("&lt;", "<").Replace("&gt;", ">").Replace("<![CDATA[", "").Replace("]]>", "");
if (!_shipLogTranslationDictionary[language].ContainsKey(key)) _shipLogTranslationDictionary[language].Add(key, config.shipLogDictionary[originalKey]);
else _shipLogTranslationDictionary[language][key] = config.shipLogDictionary[originalKey];
if (!_shipLogTranslationDictionary[language].ContainsKey(key)) _shipLogTranslationDictionary[language].Add(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>());
foreach (var originalKey in config.dialogueDictionary.Keys)
foreach (var originalKey in config.DialogueDictionary.Keys)
{
var key = originalKey.Replace("&lt;", "<").Replace("&gt;", ">").Replace("<![CDATA[", "").Replace("]]>", "");
if (!_dialogueTranslationDictionary[language].ContainsKey(key)) _dialogueTranslationDictionary[language].Add(key, config.dialogueDictionary[originalKey]);
else _dialogueTranslationDictionary[language][key] = config.dialogueDictionary[originalKey];
if (!_dialogueTranslationDictionary[language].ContainsKey(key)) _dialogueTranslationDictionary[language].Add(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>());
foreach (var originalKey in config.uiDictionary.Keys)
foreach (var originalKey in config.UIDictionary.Keys)
{
var key = originalKey.Replace("&lt;", "<").Replace("&gt;", ">").Replace("<![CDATA[", "").Replace("]]>", "");
if (!_uiTranslationDictionary[language].ContainsKey(key)) _uiTranslationDictionary[language].Add(key, config.uiDictionary[originalKey]);
else _uiTranslationDictionary[language][key] = config.uiDictionary[originalKey];
if (!_uiTranslationDictionary[language].ContainsKey(key)) _uiTranslationDictionary[language].Add(key, config.UIDictionary[originalKey]);
else _uiTranslationDictionary[language][key] = config.UIDictionary[originalKey];
}
}
}

View File

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