using UnityEngine;
#if UNITY_EDITOR
using NWH.DWP2.NUI;
using NWH.DWP2.SailController;
using UnityEditor;
#endif
namespace NWH.DWP2.SailController
{
///
/// Shows apparent wind if placed as a child of the SailController,
/// or true wind otherwise.
///
public class WindIndicator : MonoBehaviour
{
private SailController _sailController;
private void Awake()
{
_sailController = GetComponentInParent();
}
private void Update()
{
if (_sailController != null)
{
// Show apparent wind.
transform.rotation = Quaternion.LookRotation(_sailController.ApparentWind.normalized,
transform.parent.up);
}
else if (WindGenerator.Instance != null)
{
// Show true wind.
transform.rotation = Quaternion.LookRotation(WindGenerator.Instance.CurrentWind.normalized,
transform.parent.up);
}
}
}
}
#if UNITY_EDITOR
namespace NWH.DWP2.SailController
{
[CustomEditor(typeof(WindIndicator))]
[CanEditMultipleObjects]
public class WindIndicatorEditor : DWP_NUIEditor
{
public override bool OnInspectorNUI()
{
if (!base.OnInspectorNUI())
{
return false;
}
drawer.Info("Shows apparent wind if placed as a child of the SailController, " +
"or true wind otherwise.");
drawer.EndEditor(this);
return true;
}
}
}
#endif