Park/ParkSign.cs
/// <summary>
/// A park sign that shows the name of the park on the entranceway. Updates to get the park's name and open/closed status.
/// </summary>
public sealed class ParkSign : Component, IParkEvents
{
[Property] private SignPanel Panel { get; set; }
void IParkEvents.OnNameChanged( string name ) => UpdateText();
void IParkEvents.OnParkOpened() => UpdateText();
void IParkEvents.OnParkClosed() => UpdateText();
protected override void OnEnabled()
{
base.OnEnabled();
UpdateText();
}
public void UpdateText()
{
if ( !Panel.IsValid() ) return;
var park = ParkManager.Instance;
if ( !park.IsOpen() )
{
Panel.Text = "CLOSED";
Panel.Color = Color.Red;
}
else
{
Panel.Text = park.Name;
Panel.Color = Color.White;
}
}
}