public void Update(DwarfTime gameTime, ChunkManager chunks, Camera camera) { if (RootComponent != null) { RootComponent.UpdateTransformsRecursive(); } Factions.Update(gameTime); foreach (GameComponent component in Components.Values) { if (component.IsActive) { component.Update(gameTime, chunks, camera); } if (component.IsDead) { Removals.Add(component); component.IsActive = false; component.IsDead = true; component.IsVisible = false; } } HandleAddRemoves(); }
public void RemoveComponent(GameComponent component) { RemovalMutex.WaitOne(); Removals.Add(component); RemovalMutex.ReleaseMutex(); }
public void Remove(InstanceData data) { DataLock.WaitOne(); Removals.Add(data); DataLock.ReleaseMutex(); }