private void OnObjectRemoved(Sector sector, IGameObject Object) { //handle drawable ILayers if (Object is IDrawableLayer || Object is Tilemap) { Layer layer = (Layer)SceneGraphRoot; ILayer ILayer = (ILayer)Object; layer.Remove(ILayer.Layer, colors[ILayer]); colors.Remove(ILayer); QueueDraw(); return; } if (!(Object is IObject)) { LogManager.Log(LogLevel.Error, "SectorRenderer:OnObjectRemoved unhandled object " + Object); return; } IObject iObject = (IObject)Object; Node node = iObject.GetSceneGraphNode(); if (node != null) { objectsNode.RemoveChild(node); } }
private void OnObjectRemoved(Sector sector, IGameObject Object) { //handle tilemaps if (Object is Tilemap) { Layer layer = (Layer)SceneGraphRoot; Tilemap tm = (Tilemap)Object; layer.Remove(tm.ZPos, (ColorNode)colors[tm]); colors.Remove(tm); QueueDraw(); return; } //handle backgrounds if (Object is Background) { Node bgNode = ((Background)Object).GetSceneGraphNode(); backgroundNode.RemoveChild(bgNode); QueueDraw(); return; } if (!(Object is IObject)) { LogManager.Log(LogLevel.Error, "SectorRenderer:OnObjectRemoved unhandled object " + Object); return; } IObject iObject = (IObject)Object; Node node = iObject.GetSceneGraphNode(); if (node != null) { objectsNode.RemoveChild(node); } }