public static void Unregister(string groupName, TimeObject obj) { if (_controllers.TryGetValue(groupName, out var controller)) { controller.RemoveObject(obj); } if (_registerCache.TryGetValue(groupName, out var list)) { list.Remove(obj); } }
public static void Register(string groupName, TimeObject obj) { if (_controllers.TryGetValue(groupName, out var controller)) { controller.AddObject(obj); } else { List <TimeObject> list; if (!_registerCache.TryGetValue(groupName, out list)) { list = new List <TimeObject>(); _registerCache.Add(groupName, list); } list.Add(obj); } }
public PauseState(TimeObject timeObject) : base(timeObject) { }
public BackwardState(TimeObject timeObject) : base(timeObject) { }
public ForwardState(TimeObject timeObject) : base(timeObject) { }
public State(TimeObject timeObject) { _timeObject = timeObject; }
public void RemoveObject(TimeObject obj) { obj.OnInvertableEventHandler -= OnInvertableEvent; _objects.Remove(obj); }
public void AddObject(TimeObject obj) { obj.OnInvertableEventHandler += OnInvertableEvent; _objects.Add(obj); _currentState.OnAddObject(obj); }
public override void OnAddObject(TimeObject obj) { obj.Pause(); }
public override void OnAddObject(TimeObject obj) { obj.Backward(); }
public abstract void OnAddObject(TimeObject obj);