using System;
using UnityEngine;
namespace RogueUtils.Data
{
///
/// This is a base class for BaseVariable to allow things to have references
/// to BaseVariable without knowing their type.
///
public abstract class SubBaseVariable : ScriptableObject
{
private event EventHandler InternalOnChangeUntyped;
public event EventHandler OnChangeUntyped
{
add
{
InternalOnChangeUntyped += value;
}
remove
{
InternalOnChangeUntyped -= value;
}
}
protected void BaseHandleValueChange()
{
InternalOnChangeUntyped?.Invoke(this, EventArgs.Empty);
}
public abstract T GetValue();
public abstract object GetValueUntyped();
public abstract void SetValueUntyped(object value);
}
}