2using System.Collections.Generic;
37 this.newItem = itemToAdd;
58 this.removeItem = itemToRemove;
77 foreach ( var item
in list )
79 list.OnItemRemoved( item );
88 internal List<T>
items =
new List<T>();
89 Queue<ListAction>
actions =
new Queue<ListAction>();
96 public T this[
int index]
121 get {
return items.Count; }
168 #region INotifyList<T> Members
183 #region IEnumerable Members
187 return items.GetEnumerator();
190 IEnumerator IEnumerable.GetEnumerator()
192 return items.GetEnumerator();
214 return items.Contains( item );
222 for (
int i = 0; i < actionArray.Length; i++)
244 return items.Find( pred );
249 return items.FindAll( pred );
259 if (
actions.Count == 0 )
return false;
276 foreach ( var item
in items )
281 if ( DestroyableItem !=
null && DestroyableItem.IsDestroyed )
283 if ( UpdatableItem !=
null && UpdatableItem.IsUpdated )
284 UpdatableItem.Update( time );
301 foreach ( var item
in items )
306 if ( DestroyableItem !=
null && DestroyableItem.IsDestroyed )
308 else if ( UpdatableItem !=
null && UpdatableItem.IsUpdated && isUpdated(item) )
309 UpdatableItem.Update( time );
322 for (
int i = 0; i <
items.Count; i++ )
336 for (
int i = 0; i <
items.Count; i++ )
338 action(
items[i], p1 );
AddItemAction(SynchronousList< T > list, T itemToAdd)
ClearAction(SynchronousList< T > items)
SynchronousList< T > list
ListAction(SynchronousList< T > list)
RemoveItemAction(SynchronousList< T > items, T itemToRemove)
Synkroninen lista, eli lista joka päivittyy vasta kun sen Update-metodia kutsutaan....
void ForEach< T1 >(Action< T, T1 > action, T1 p1)
Suorittaa annetun toimenpiteen kaikille (nykyisille) listan alkioille.
SynchronousList()
Luo uuden synkronisen listan.
Action Changed
Tapahtuu kun lista on muuttunut.
bool UpdateChanges()
Lisää ja poistaa jonossa olevat elementit, mutta ei kutsu elementtien Update-metodia.
void Update(Time time, Predicate< T > isUpdated)
Lisää ja poistaa jonossa olevat elementit sekä kutsuu niiden Update-metodia tietyllä ehdolla.
Action< T > ItemAdded
Tapahtuu kun uusi elementti on lisätty listaan.
Queue< ListAction > actions
void Update(Time time)
Lisää ja poistaa jonossa olevat elementit sekä kutsuu niiden Update-metodia.
List< T > FindAll(Predicate< T > pred)
int LastIndex
Viimeisen elementin indeksi.
int FirstIndex
Ensimmäisen elementin indeksi. Muutettavissa.
SynchronousList(int firstIndex)
Luo uuden synkronisen listan.
void OnItemRemoved(T item)
void ForEach(Action< T > action)
Suorittaa annetun toimenpiteen kaikille (nykyisille) listan alkioille.
T Find(Predicate< T > pred)
int Count
Kuinka monta elementtiä listassa nyt on. Ei laske mukaan samalla päivityskierroksella tehtyjä muutoks...
IEnumerable< T > GetObjectsAboutToBeAdded()
Action< T > ItemRemoved
Tapahtuu kun elementti on poistettu listasta.
IEnumerator< T > GetEnumerator()
Rajapinta olioille, jotka ovat tuhottavissa.
Rajapinta päivittyville olioille.
Sisältää tiedon ajasta, joka on kulunut pelin alusta ja viime päivityksestä.