Add colours and fix orientation

This commit is contained in:
Nick 2023-03-26 00:56:26 -04:00
parent d81dde6ea0
commit 944ba3fde3
5 changed files with 39 additions and 13 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 254 B

View File

@ -2,6 +2,7 @@ using NewHorizons.Components.SizeControllers;
using NewHorizons.External.Configs;
using NewHorizons.External.Modules;
using NewHorizons.Utility;
using NewHorizons.Utility.Files;
using NewHorizons.Utility.OuterWilds;
using NewHorizons.Utility.OWML;
using UnityEngine;
@ -93,6 +94,25 @@ namespace NewHorizons.Builder.Body
gasTail.SetActive(true);
controller.gasTail = gasTail;
if (cometTailModule.dustTint != null)
{
foreach (var dust in dustTail.GetComponentsInChildren<MeshRenderer>())
{
var untintedDust = ImageUtilities.GetTexture(Main.Instance, "Assets/textures/Effects_CO_DustTail_d.png");
dust.material.mainTexture = ImageUtilities.TintImage(untintedDust, cometTailModule.dustTint.ToColor());
}
}
if (cometTailModule.gasTint != null)
{
foreach (var gas in gasTail.GetComponentsInChildren<MeshRenderer>())
{
var untintedGas = ImageUtilities.GetTexture(Main.Instance, "Assets/textures/Effects_CO_GasTail_d.png");
gas.material.mainTexture = untintedGas;
gas.material.color = cometTailModule.gasTint.ToColor();
}
}
rootObj.SetActive(true);
}
}

View File

@ -18,18 +18,9 @@ namespace NewHorizons.Components.SizeControllers
private Vector3 _gasTarget;
private Vector3 _dustTarget;
private float _angularVelocity = 1f;
public void Start()
{
_body = transform.GetAttachedOWRigidbody();
if (!_hasRotationOverride && _hasPrimaryBody)
{
UpdateTargetPositions();
dustTail?.transform?.LookAt(_dustTarget);
gasTail?.transform?.LookAt(_gasTarget);
}
}
public override void FixedUpdate()
@ -40,8 +31,8 @@ namespace NewHorizons.Components.SizeControllers
{
UpdateTargetPositions();
dustTail?.SmoothLookAt(_dustTarget, Time.deltaTime, _angularVelocity);
gasTail?.SmoothLookAt(_gasTarget, Time.deltaTime, _angularVelocity);
dustTail?.LookDir(_dustTarget);
gasTail?.LookDir(_gasTarget);
}
}

View File

@ -21,5 +21,15 @@ namespace NewHorizons.External.Modules
/// The body that the comet tail should always point away from
/// </summary>
public string primaryBody;
/// <summary>
/// Colour of the dust tail (the shorter part)
/// </summary>
public MColor dustTint;
/// <summary>
/// Colour of the gas tail (the longer part)
/// </summary>
public MColor gasTint;
}
}

View File

@ -256,14 +256,19 @@ namespace NewHorizons.Utility
public static FluidVolume.Type ConvertToOW(this NHFluidType fluidType, FluidVolume.Type @default = FluidVolume.Type.NONE) => EnumUtils.Parse(fluidType.ToString().ToUpper(), @default);
public static void SmoothLookAt(this GameObject go, Vector3 direction, float dt, float angularVelocity)
public static void SmoothLookDir(this GameObject go, Vector3 direction, float dt, float angularVelocity)
{
var start = go.transform.rotation;
var end = Quaternion.FromToRotation(Vector3.forward, direction);
var angle = Quaternion.Angle(start, end);
go.transform.rotation = Quaternion.Slerp(start, end, angularVelocity / angle * dt * dt);
go.transform.rotation = Quaternion.Slerp(start, end, (angularVelocity / angle) * dt);
}
public static void LookDir(this GameObject go, Vector3 direction)
{
go.transform.rotation = Quaternion.FromToRotation(Vector3.forward, direction);
}
}
}