 |
Jypeli
9
The simple game programming library
|
Siirry tämän tiedoston dokumentaatioon.
2 using 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();
199 actions.Enqueue(
new AddItemAction(
this, item ) );
204 actions.Enqueue(
new RemoveItemAction(
this, item ) );
209 actions.Enqueue(
new ClearAction(
this ) );
214 return items.Contains( item );
219 ListAction[] actionArray =
actions.ToArray();
222 for (
int i = 0; i < actionArray.Length; i++)
224 if (actionArray[i] is AddItemAction && ((AddItemAction)actionArray[i]).newItem.Equals( item ))
227 else if (actionArray[i] is RemoveItemAction && ((RemoveItemAction)actionArray[i]).removeItem.Equals( item ))
230 else if (actionArray[i] is ClearAction)
242 public T
Find( Predicate<T> pred )
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 );
345 where a is AddItemAction
346 select (a as AddItemAction).newItem;
RemoveItemAction(SynchronousList< T > items, T itemToRemove)
ClearAction(SynchronousList< T > items)
SynchronousList(int firstIndex)
Luo uuden synkronisen listan.
Action Changed
Tapahtuu kun lista on muuttunut.
void Update(Time time, Predicate< T > isUpdated)
Lisää ja poistaa jonossa olevat elementit sekä kutsuu niiden Update-metodia tietyllä ehdolla.
Action< T > ItemRemoved
Tapahtuu kun elementti on poistettu listasta.
IEnumerable< T > GetObjectsAboutToBeAdded()
ListAction(SynchronousList< T > list)
IEnumerator< T > GetEnumerator()
Rajapinta päivittyville olioille.
int Count
Kuinka monta elementtiä listassa nyt on. Ei laske mukaan samalla päivityskierroksella tehtyjä muutoks...
void OnItemRemoved(T item)
void ForEach< T1 >(Action< T, T1 > action, T1 p1)
Suorittaa annetun toimenpiteen kaikille (nykyisille) listan alkioille.
Sisältää tiedon ajasta, joka on kulunut pelin alusta ja viime päivityksestä.
Queue< ListAction > actions
SynchronousList< T > list
Rajapinta olioille, jotka ovat tuhottavissa.
Action< T > ItemAdded
Tapahtuu kun uusi elementti on lisätty listaan.
T Find(Predicate< T > pred)
List< T > FindAll(Predicate< T > pred)
SynchronousList()
Luo uuden synkronisen listan.
bool UpdateChanges()
Lisää ja poistaa jonossa olevat elementit, mutta ei kutsu elementtien Update-metodia.
int LastIndex
Viimeisen elementin indeksi.
Synkroninen lista, eli lista joka päivittyy vasta kun sen Update-metodia kutsutaan....
void ForEach(Action< T > action)
Suorittaa annetun toimenpiteen kaikille (nykyisille) listan alkioille.
int FirstIndex
Ensimmäisen elementin indeksi. Muutettavissa.
AddItemAction(SynchronousList< T > list, T itemToAdd)
void Update(Time time)
Lisää ja poistaa jonossa olevat elementit sekä kutsuu niiden Update-metodia.