赤宿 = Red Inn

素人の試行錯誤と2Dゲームプログラミング

Binding with Observable

 申し訳程度の進捗。

 Entityを削除すると、スケジューラの持つ参照がnullになってバグる。そこでEntityが削除されたとき、スケジューラは、自身が持つ参照のリストを更新したい。つまり、Entityの所有権を持つコレクションに対し、スケジューラを連動させたい(バインディング)。

 ObservableList的なものを実装した(C#)。.Netにも似たものがあるようだけれど、ミニマムな自分仕様の物の方が使い勝手は良い。

pub enum ObservableListEvent {  
    Inserted, Removed,  
}  
/// Emits ObservableList  
pub class ObservableList<T> : IList<T> {  
    // Emits events with index (where an item was inserted/removed)  
    pub emitter: Emitter<ObservableListEvent, (T, int)>;
    ...  
pub class EntityList : ObservableList<T> {  
    ...