mirror of
https://github.com/Outer-Wilds-New-Horizons/new-horizons.git
synced 2025-12-11 20:15:44 +01:00
Merge branch 'dev' into custom-credits
This commit is contained in:
commit
eab4d3838b
@ -67,6 +67,9 @@ namespace NewHorizons.Builder.Body
|
|||||||
ambientLightGO.transform.localPosition = Vector3.zero;
|
ambientLightGO.transform.localPosition = Vector3.zero;
|
||||||
ambientLightGO.name = "AmbientLight_Star";
|
ambientLightGO.name = "AmbientLight_Star";
|
||||||
|
|
||||||
|
Light ambientLight = ambientLightGO.GetComponent<Light>();
|
||||||
|
ambientLight.range = starModule.size * OuterRadiusRatio;
|
||||||
|
|
||||||
var heatVolume = Object.Instantiate(SearchUtilities.Find("Sun_Body/Sector_SUN/Volumes_SUN/HeatVolume"), starGO.transform);
|
var heatVolume = Object.Instantiate(SearchUtilities.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;
|
||||||
@ -84,13 +87,11 @@ namespace NewHorizons.Builder.Body
|
|||||||
var planetDestructionVolume = Object.Instantiate(deathVolume, starGO.transform);
|
var planetDestructionVolume = Object.Instantiate(deathVolume, starGO.transform);
|
||||||
planetDestructionVolume.transform.localPosition = Vector3.zero;
|
planetDestructionVolume.transform.localPosition = Vector3.zero;
|
||||||
planetDestructionVolume.transform.localScale = Vector3.one;
|
planetDestructionVolume.transform.localScale = Vector3.one;
|
||||||
planetDestructionVolume.GetComponent<SphereCollider>().radius = 0.75f;
|
planetDestructionVolume.GetComponent<SphereCollider>().radius = 0.8f;
|
||||||
planetDestructionVolume.GetComponent<DestructionVolume>()._onlyAffectsPlayerAndShip = false;
|
planetDestructionVolume.GetComponent<DestructionVolume>()._onlyAffectsPlayerAndShip = false;
|
||||||
planetDestructionVolume.GetComponent<DestructionVolume>()._shrinkBodies = true;
|
planetDestructionVolume.GetComponent<DestructionVolume>()._shrinkBodies = true;
|
||||||
planetDestructionVolume.name = "PlanetDestructionVolume";
|
planetDestructionVolume.name = "PlanetDestructionVolume";
|
||||||
|
|
||||||
Light ambientLight = ambientLightGO.GetComponent<Light>();
|
|
||||||
|
|
||||||
var sunLight = new GameObject("StarLight");
|
var sunLight = new GameObject("StarLight");
|
||||||
sunLight.transform.parent = starGO.transform;
|
sunLight.transform.parent = starGO.transform;
|
||||||
sunLight.transform.localPosition = Vector3.zero;
|
sunLight.transform.localPosition = Vector3.zero;
|
||||||
@ -106,7 +107,7 @@ namespace NewHorizons.Builder.Body
|
|||||||
if (starModule.lightTint != null) lightColour = starModule.lightTint.ToColor();
|
if (starModule.lightTint != null) lightColour = starModule.lightTint.ToColor();
|
||||||
|
|
||||||
light.color = lightColour;
|
light.color = lightColour;
|
||||||
ambientLight.color = lightColour;
|
ambientLight.color = new Color(lightColour.r, lightColour.g, lightColour.b, lightColour.a == 0 ? 0.0001f : lightColour.a);
|
||||||
|
|
||||||
var faceActiveCamera = sunLight.AddComponent<FaceActiveCamera>();
|
var faceActiveCamera = sunLight.AddComponent<FaceActiveCamera>();
|
||||||
faceActiveCamera.CopyPropertiesFrom(SearchUtilities.Find("Sun_Body/Sector_SUN/Effects_SUN/SunLight").GetComponent<FaceActiveCamera>());
|
faceActiveCamera.CopyPropertiesFrom(SearchUtilities.Find("Sun_Body/Sector_SUN/Effects_SUN/SunLight").GetComponent<FaceActiveCamera>());
|
||||||
|
|||||||
@ -408,35 +408,23 @@ namespace NewHorizons.Builder.Props
|
|||||||
case PropModule.NomaiTextInfo.NomaiTextType.PreCrashRecorder:
|
case PropModule.NomaiTextInfo.NomaiTextType.PreCrashRecorder:
|
||||||
case PropModule.NomaiTextInfo.NomaiTextType.Recorder:
|
case PropModule.NomaiTextInfo.NomaiTextType.Recorder:
|
||||||
{
|
{
|
||||||
var recorderObject = (info.type == PropModule.NomaiTextInfo.NomaiTextType.PreCrashRecorder ? _preCrashRecorderPrefab : _recorderPrefab).InstantiateInactive();
|
var prefab = (info.type == PropModule.NomaiTextInfo.NomaiTextType.PreCrashRecorder ? _preCrashRecorderPrefab : _recorderPrefab);
|
||||||
|
var detailInfo = new PropModule.DetailInfo {
|
||||||
|
parentPath = info.parentPath,
|
||||||
|
rotation = info.rotation,
|
||||||
|
position = info.position
|
||||||
|
};
|
||||||
|
var recorderObject = DetailBuilder.MakeDetail(planetGO, sector, prefab, detailInfo);
|
||||||
|
recorderObject.SetActive(false);
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(info.rename))
|
if (!string.IsNullOrEmpty(info.rename))
|
||||||
{
|
{
|
||||||
recorderObject.name = info.rename;
|
recorderObject.name = info.rename;
|
||||||
}
|
}
|
||||||
|
|
||||||
recorderObject.transform.parent = sector?.transform ?? planetGO.transform;
|
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(info.parentPath))
|
|
||||||
{
|
|
||||||
var newParent = planetGO.transform.Find(info.parentPath);
|
|
||||||
if (newParent != null)
|
|
||||||
{
|
|
||||||
recorderObject.transform.parent = newParent;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Logger.LogWarning($"Cannot find parent object at path: {planetGO.name}/{info.parentPath}");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
recorderObject.transform.position = planetGO.transform.TransformPoint(info?.position ?? Vector3.zero);
|
recorderObject.transform.position = planetGO.transform.TransformPoint(info?.position ?? Vector3.zero);
|
||||||
|
|
||||||
if (info.rotation != null)
|
if (info.rotation == null)
|
||||||
{
|
|
||||||
recorderObject.transform.rotation = planetGO.transform.TransformRotation(Quaternion.Euler(info.rotation));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
var up = recorderObject.transform.position - planetGO.transform.position;
|
var up = recorderObject.transform.position - planetGO.transform.position;
|
||||||
recorderObject.transform.rotation = Quaternion.FromToRotation(Vector3.up, up) * recorderObject.transform.rotation;
|
recorderObject.transform.rotation = Quaternion.FromToRotation(Vector3.up, up) * recorderObject.transform.rotation;
|
||||||
@ -451,9 +439,6 @@ namespace NewHorizons.Builder.Props
|
|||||||
nomaiText._nomaiTextAsset.name = Path.GetFileNameWithoutExtension(info.xmlFile);
|
nomaiText._nomaiTextAsset.name = Path.GetFileNameWithoutExtension(info.xmlFile);
|
||||||
AddTranslation(xmlPath);
|
AddTranslation(xmlPath);
|
||||||
|
|
||||||
// Make sure the recorder model is loaded
|
|
||||||
StreamingHandler.SetUpStreaming(recorderObject, sector);
|
|
||||||
|
|
||||||
recorderObject.SetActive(true);
|
recorderObject.SetActive(true);
|
||||||
|
|
||||||
recorderObject.transform.Find("InteractSphere").gameObject.GetComponent<SphereShape>().enabled = true;
|
recorderObject.transform.Find("InteractSphere").gameObject.GetComponent<SphereShape>().enabled = true;
|
||||||
|
|||||||
@ -39,6 +39,7 @@ namespace NewHorizons.Components.SizeControllers
|
|||||||
private float _collapseTimer;
|
private float _collapseTimer;
|
||||||
|
|
||||||
public float collapseTime = 10f; // seconds
|
public float collapseTime = 10f; // seconds
|
||||||
|
public float supernovaTime = 45f; // seconds
|
||||||
public float lifespan = 22f; // minutes
|
public float lifespan = 22f; // minutes
|
||||||
public float supernovaSize = 50000f;
|
public float supernovaSize = 50000f;
|
||||||
|
|
||||||
@ -152,7 +153,7 @@ namespace NewHorizons.Components.SizeControllers
|
|||||||
var timeAfter = secondsElapsed - lifespanInSeconds;
|
var timeAfter = secondsElapsed - lifespanInSeconds;
|
||||||
if (timeAfter <= collapseTime)
|
if (timeAfter <= collapseTime)
|
||||||
Delay.RunWhen(() => Main.IsSystemReady, StartCollapse);
|
Delay.RunWhen(() => Main.IsSystemReady, StartCollapse);
|
||||||
else if (timeAfter <= collapseTime + 45)
|
else if (timeAfter <= collapseTime + supernovaTime)
|
||||||
Delay.RunWhen(() => Main.IsSystemReady, StartSupernova);
|
Delay.RunWhen(() => Main.IsSystemReady, StartSupernova);
|
||||||
else
|
else
|
||||||
Delay.RunWhen(() => Main.IsSystemReady, () => Delay.FireOnNextUpdate(() => DisableStar(true)));
|
Delay.RunWhen(() => Main.IsSystemReady, () => Delay.FireOnNextUpdate(() => DisableStar(true)));
|
||||||
@ -227,7 +228,7 @@ namespace NewHorizons.Components.SizeControllers
|
|||||||
if (_planetDestructionVolume != null) _planetDestructionVolume.transform.localScale = Vector3.one * supernova.GetSupernovaRadius() * 0.9f;
|
if (_planetDestructionVolume != null) _planetDestructionVolume.transform.localScale = Vector3.one * supernova.GetSupernovaRadius() * 0.9f;
|
||||||
if (_heatVolume != null) _heatVolume.transform.localScale = Vector3.one * supernova.GetSupernovaRadius();
|
if (_heatVolume != null) _heatVolume.transform.localScale = Vector3.one * supernova.GetSupernovaRadius();
|
||||||
|
|
||||||
if (Time.time > _supernovaStartTime + 45f)
|
if (Time.time > _supernovaStartTime + supernovaTime)
|
||||||
{
|
{
|
||||||
DisableStar();
|
DisableStar();
|
||||||
}
|
}
|
||||||
|
|||||||
6
NewHorizons/External/Modules/PropModule.cs
vendored
6
NewHorizons/External/Modules/PropModule.cs
vendored
@ -271,9 +271,9 @@ namespace NewHorizons.External.Modules
|
|||||||
[JsonConverter(typeof(StringEnumConverter))]
|
[JsonConverter(typeof(StringEnumConverter))]
|
||||||
public enum TornadoType
|
public enum TornadoType
|
||||||
{
|
{
|
||||||
[EnumMember(Value = @"downwards")] Downwards = 0,
|
[EnumMember(Value = @"upwards")] Upwards = 0,
|
||||||
|
|
||||||
[EnumMember(Value = @"upwards")] Upwards = 1,
|
[EnumMember(Value = @"downwards")] Downwards = 1,
|
||||||
|
|
||||||
[EnumMember(Value = @"hurricane")] Hurricane = 2
|
[EnumMember(Value = @"hurricane")] Hurricane = 2
|
||||||
}
|
}
|
||||||
@ -303,7 +303,7 @@ namespace NewHorizons.External.Modules
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// What type of cyclone should this be? Upwards and downwards are both tornados and will push in that direction.
|
/// What type of cyclone should this be? Upwards and downwards are both tornados and will push in that direction.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[DefaultValue("downwards")] public TornadoType type = TornadoType.Downwards;
|
[DefaultValue("upwards")] public TornadoType type = TornadoType.Upwards;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Angular distance from the starting position that it will wander, in terms of the angle around the x-axis.
|
/// Angular distance from the starting position that it will wander, in terms of the angle around the x-axis.
|
||||||
|
|||||||
@ -53,7 +53,7 @@ namespace NewHorizons.External.Modules.VariableSize
|
|||||||
public float solarLuminosity = 1f;
|
public float solarLuminosity = 1f;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Radius of the supernova.
|
/// Radius of the supernova. Any planets within 80% of this will be destroyed.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[DefaultValue(50000f)]
|
[DefaultValue(50000f)]
|
||||||
[Range(0f, double.MaxValue)]
|
[Range(0f, double.MaxValue)]
|
||||||
|
|||||||
@ -388,9 +388,17 @@ namespace NewHorizons
|
|||||||
var playerLight = playerBody.AddComponent<Light>();
|
var playerLight = playerBody.AddComponent<Light>();
|
||||||
playerLight.innerSpotAngle = 0;
|
playerLight.innerSpotAngle = 0;
|
||||||
playerLight.spotAngle = 179;
|
playerLight.spotAngle = 179;
|
||||||
playerLight.range = 0.5f;
|
playerLight.range = 1;
|
||||||
playerLight.intensity = 0.001f;
|
playerLight.intensity = 0.001f;
|
||||||
|
|
||||||
|
//Do the same for map
|
||||||
|
var solarSystemRoot = SearchUtilities.Find("SolarSystemRoot");
|
||||||
|
var ssrLight = solarSystemRoot.AddComponent<Light>();
|
||||||
|
ssrLight.innerSpotAngle = 0;
|
||||||
|
ssrLight.spotAngle = 179;
|
||||||
|
ssrLight.range = Main.FurthestOrbit * (4f/3f);
|
||||||
|
ssrLight.intensity = 0.001f;
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Logger.Log($"Star system finished loading [{Instance.CurrentStarSystem}]");
|
Logger.Log($"Star system finished loading [{Instance.CurrentStarSystem}]");
|
||||||
|
|||||||
@ -1634,7 +1634,7 @@
|
|||||||
},
|
},
|
||||||
"type": {
|
"type": {
|
||||||
"description": "What type of cyclone should this be? Upwards and downwards are both tornados and will push in that direction.",
|
"description": "What type of cyclone should this be? Upwards and downwards are both tornados and will push in that direction.",
|
||||||
"default": "downwards",
|
"default": "upwards",
|
||||||
"$ref": "#/definitions/TornadoType"
|
"$ref": "#/definitions/TornadoType"
|
||||||
},
|
},
|
||||||
"wanderDegreesX": {
|
"wanderDegreesX": {
|
||||||
@ -1665,13 +1665,13 @@
|
|||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "",
|
"description": "",
|
||||||
"x-enumNames": [
|
"x-enumNames": [
|
||||||
"Downwards",
|
|
||||||
"Upwards",
|
"Upwards",
|
||||||
|
"Downwards",
|
||||||
"Hurricane"
|
"Hurricane"
|
||||||
],
|
],
|
||||||
"enum": [
|
"enum": [
|
||||||
"downwards",
|
|
||||||
"upwards",
|
"upwards",
|
||||||
|
"downwards",
|
||||||
"hurricane"
|
"hurricane"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -2335,7 +2335,7 @@
|
|||||||
},
|
},
|
||||||
"supernovaSize": {
|
"supernovaSize": {
|
||||||
"type": "number",
|
"type": "number",
|
||||||
"description": "Radius of the supernova.",
|
"description": "Radius of the supernova. Any planets within 80% of this will be destroyed.",
|
||||||
"format": "float",
|
"format": "float",
|
||||||
"default": 50000.0,
|
"default": 50000.0,
|
||||||
"minimum": 0.0
|
"minimum": 0.0
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user