39 lines
1.1 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[CreateAssetMenu(fileName = "BoolSharedField", menuName = "Wavefunction/Shared Fields/Types/BoolSharedField", order = 1)]
public class BoolSharedField : ScriptableObject
{
/// <summary>
/// GameEvent that is triggered when this value is changed.
/// </summary>
[Tooltip("GameEvent that is triggered when this value is changed.")]
[SerializeField] private GameEvent gameEvent;
[SerializeField] private bool value;
public bool Value
{
get { return value; }
set
{
if(this.value != value) //if the new value is different from the previous one, raise the event.
{
this.value = value;
if(gameEvent != null)
gameEvent.Raise();
}
}
}
/// <summary>
/// Used to set a starting value to the shared field without triggering the Event.
/// </summary>
/// <param name="initValue"></param>
public void InitializeValue(bool initValue)
{
this.value = initValue;
}
}