diff --git a/Assets/SO Architecture/Collections/BaseCollection.cs b/Assets/SO Architecture/Collections/BaseCollection.cs index 7fc0c4f1..e630f35f 100644 --- a/Assets/SO Architecture/Collections/BaseCollection.cs +++ b/Assets/SO Architecture/Collections/BaseCollection.cs @@ -3,7 +3,7 @@ namespace ScriptableObjectArchitecture { - public abstract class BaseCollection : SOArchitectureBaseObject, IEnumerable + public abstract class BaseCollection : GameEventBase, IEnumerable { public object this[int index] { diff --git a/Assets/SO Architecture/Collections/Collection.cs b/Assets/SO Architecture/Collections/Collection.cs index d3a7dd44..3bf9ea59 100644 --- a/Assets/SO Architecture/Collections/Collection.cs +++ b/Assets/SO Architecture/Collections/Collection.cs @@ -40,15 +40,28 @@ public override Type Type public void Add(T obj) { _list.Add(obj); + Raise(); } + + public void AddRange(IList obj) + { + _list.AddRange(obj); + Raise(); + } + public void Remove(T obj) { if (_list.Contains(obj)) + { _list.Remove(obj); + Raise(); + } + } public void Clear() { _list.Clear(); + Raise(); } public bool Contains(T value) { @@ -61,10 +74,12 @@ public int IndexOf(T value) public void RemoveAt(int index) { _list.RemoveAt(index); + Raise(); } public void Insert(int index, T value) { _list.Insert(index, value); + Raise(); } IEnumerator IEnumerable.GetEnumerator() { @@ -78,8 +93,9 @@ public override string ToString() { return "Collection<" + typeof(T) + ">(" + Count + ")"; } - public T[] ToArray() { + public T[] ToArray() + { return _list.ToArray(); } - } + } }