using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks; using UnityEngine; using static KCM.StateManagement.Observers.Observer; namespace KCM.StateManagement.Observers { public interface IObserver { List monitoredFields { get; set; } List monitoredProperties { get; set; } int updateInterval { get; set; } long lastUpdate { get; set; } Dictionary values { get; set; } GameObject observerObject { get; set; } void Initialise(T instance, string[] monitoredFields, GameObject observerObject, int updateInterval); void Update(); void StateChanged(string name, object value); EventHandler StateUpdated { get; set; } } }