using System.Collections; using System.Collections.Generic; using UnityEngine; [CreateAssetMenu(fileName = "BoolSharedField", menuName = "Wavefunction/Shared Fields/Types/BoolSharedField", order = 1)] public class BoolSharedField : ScriptableObject { /// /// GameEvent that is triggered when this value is changed. /// [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(); } } } /// /// Used to set a starting value to the shared field without triggering the Event. /// /// public void InitializeValue(bool initValue) { this.value = initValue; } }