internal TileLayer(ContentReader reader, TileRegistry registry) : base(reader) { _registry = registry; TileWidth = reader.ReadInt16(); TileHeight = reader.ReadInt16(); Width = reader.ReadInt16(); Height = reader.ReadInt16(); _tiles = new TileGrid(Width, Height); int stackCount = reader.ReadInt32(); for (int i = 0; i < stackCount; i++) { int dx = reader.ReadInt16(); int dy = reader.ReadInt16(); int tcount = reader.ReadInt16(); Tile[] st = new Tile[tcount]; for (int j = 0; j < tcount; j++) { st[j] = _registry[reader.ReadInt16()]; } _tiles[dx, dy] = new TileStack(st); } }
internal Tileset(ContentReader reader) : this() { _manager = reader.ContentManager; int version = reader.ReadInt16(); int id = reader.ReadInt16(); TileWidth = reader.ReadInt16(); TileHeight = reader.ReadInt16(); string texAsset = reader.ReadString(); Properties = new PropertyCollection(reader); int tileCount = reader.ReadInt16(); for (int i = 0; i < tileCount; i++) { int tileId = reader.ReadInt16(); int tileX = reader.ReadInt16(); int tileY = reader.ReadInt16(); Tile tile = new Tile(tileId, this, tileX, tileY) { Properties = new PropertyCollection(reader), }; _tiles.Add(tileId, tile); } _texture = _manager.Load<Texture2D>(texAsset); }