public void Add(TileSet tileset) { foreach (Tile tile in tileset.Tiles.Values) { _registry[tile.Id] = tileset; _tileRegistry[tile.Id] = tile; } }
internal Level(ContentReader reader) : this() { string levelName = reader.ReadString(); int originX = reader.ReadInt32(); int originY = reader.ReadInt32(); Width = reader.ReadInt32(); Height = reader.ReadInt32(); Properties = new PropertyCollection(reader); int tilesetCount = reader.ReadInt32(); for (int i = 0; i < tilesetCount; i++) { TileSet tileset = new TileSet(reader); _tileRegistry.Add(tileset); } int objectPoolCount = reader.ReadInt32(); for (int i = 0; i < objectPoolCount; i++) { //string asset = reader.ReadString(); //ObjectPool pool = reader.ContentManager.Load<ObjectPool>(asset); ObjectPool pool = new ObjectPool(reader); _objectRegistry.Add(pool); } int layerCount = reader.ReadInt32(); for (int i = 0; i < layerCount; i++) { string type = reader.ReadString(); switch (type) { case "TILE": _layers.Add(new TileLayer(reader, _tileRegistry)); break; case "OBJE": _layers.Add(new ObjectLayer(reader, _objectRegistry)); break; } } }
public Tile(int id, TileSet tileset, int x, int y) { Id = id; _tileset = tileset; Source = new Rectangle(x * tileset.TileWidth, y * tileset.TileHeight, tileset.TileWidth, tileset.TileHeight); }