mirror of
https://github.com/Outer-Wilds-New-Horizons/new-horizons.git
synced 2025-12-11 20:15:44 +01:00
63 lines
2.1 KiB
C#
63 lines
2.1 KiB
C#
#region
|
|
|
|
using NewHorizons.External.Modules;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
using Logger = NewHorizons.Utility.Logger;
|
|
|
|
#endregion
|
|
|
|
namespace NewHorizons.Components
|
|
{
|
|
public class ShipLogDetail : MonoBehaviour
|
|
{
|
|
private Image _revealedImage;
|
|
private Image _outlineImage;
|
|
private Material _greyScaleMaterial;
|
|
private ShipLogModule.ShipLogDetailInfo _detailInfo;
|
|
|
|
public void Init(ShipLogModule.ShipLogDetailInfo info, Image revealed, Image outline, Material greyScale)
|
|
{
|
|
_detailInfo = info;
|
|
_revealedImage = revealed;
|
|
_outlineImage = outline;
|
|
_greyScaleMaterial = greyScale;
|
|
_revealedImage.enabled = false;
|
|
_outlineImage.enabled = false;
|
|
}
|
|
|
|
public void UpdateState(ShipLogEntry.State parentState)
|
|
{
|
|
switch (parentState)
|
|
{
|
|
case ShipLogEntry.State.Explored:
|
|
_outlineImage.enabled = false;
|
|
_revealedImage.enabled = true;
|
|
SetGreyScale(false);
|
|
break;
|
|
case ShipLogEntry.State.Rumored:
|
|
_outlineImage.enabled = false;
|
|
_revealedImage.enabled = true;
|
|
SetGreyScale(true);
|
|
break;
|
|
case ShipLogEntry.State.Hidden:
|
|
_revealedImage.enabled = false;
|
|
_outlineImage.enabled = !_detailInfo.invisibleWhenHidden;
|
|
break;
|
|
case ShipLogEntry.State.None:
|
|
_revealedImage.enabled = false;
|
|
_outlineImage.enabled = false;
|
|
break;
|
|
default:
|
|
Logger.LogError("Invalid ShipLogEntryState for " +
|
|
_revealedImage.transform.parent.parent.gameObject.name);
|
|
break;
|
|
}
|
|
}
|
|
|
|
private void SetGreyScale(bool greyScale)
|
|
{
|
|
_revealedImage.material = greyScale ? _greyScaleMaterial : null;
|
|
}
|
|
}
|
|
} |