private static void ClearLayers() { foreach (Guid key in LayerList.Keys) { Layer layer = LayerList[key]; layer.CleanUp(); } LayerList.Clear(); LayerMaps.Clear(); }
public static void ConnectAllChildren() { foreach (String key in AllMaps.Keys) { LayerMap map = AllMaps[key]; if (String.IsNullOrEmpty(map.Frame.Parent) && !LayerMaps.ContainsKey(map.Frame.Name)) { LayerMaps[map.Name] = map; } else if (!String.IsNullOrEmpty(map.Frame.Parent) && AllMaps.ContainsKey(map.Frame.Parent)) { if (!AllMaps[map.Frame.Parent].ChildMaps.ContainsKey(map.Frame.Name)) { AllMaps[map.Frame.Parent].ChildMaps[map.Frame.Name] = map; } } } }
public void loadMapFiles(string mapName) { Vector2i mapDestPos = new Vector2i(0, 0); Vector2i sourceChunkPos = new Vector2i(0, 0); // Load map var map = RB.MapLoadTMX(mapName); string path = "Assets/RetroBlit/Resources/map/map-data.json"; StreamReader reader = new StreamReader(path); String rawmapdata = reader.ReadToEnd(); reader.Close(); // Load json map info and iterate through each object loading the layers from top to bottom //TODO LayerMaps layerMaps = Mapper.deserialize <LayerMaps>(rawmapdata); foreach (LayerMap m in layerMaps.allMaps) { RB.MapLoadTMXLayer(map, m.map_layer_name, m.layer); RB.SpriteSheetSetup(m.layer, m.sprite_sheet, new Vector2i(32, 32)); RB.MapLayerSpriteSheetSet(m.layer, m.layer); } var objects = map.objectGroups[layerMaps.objectLayerName].objects; foreach (var curObj in objects) { // Make a new badguy for this object BadGuy curBadGuy = new BadGuy(curObj.rect.x, curObj.rect.y); curBadGuy.size = new Vector2i(16, 16); badGuys.Add(curBadGuy); } // You can load a spritesheet here RB.SpriteSheetSetup(0, "MyGame/MySprites", new Vector2i(16, 16)); RB.SpriteSheetSet(0); mapLayers = layerMaps.allMaps; mapSize = map.size * 32; }
public static void PurgeLayerMapDeep(LayerMap target, bool topLevel) { foreach (Layer layer in target.Layers) { LayerManager.DeleteLayerByID(layer.ID, false, false); } target.Layers.Clear(); foreach (string key in target.ChildMaps.Keys) { LayerMap map = target.ChildMaps[key]; PurgeLayerMapDeep(map, false); } target.ChildMaps.Clear(); if (topLevel) { if (!String.IsNullOrEmpty(target.Frame.Parent)) { if (AllMaps.ContainsKey(target.Frame.Parent)) { AllMaps[target.Frame.Parent].ChildMaps.Remove(target.Name); } } else { if (LayerMaps.ContainsKey(target.Name)) { LayerMaps.Remove(target.Name); } } } AllMaps.Remove(target.Name); version++; }