Пример #1
0
 public void Add(TileSet tileset)
 {
     foreach (Tile tile in tileset.Tiles.Values) {
         _registry[tile.Id] = tileset;
         _tileRegistry[tile.Id] = tile;
     }
 }
Пример #2
0
        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;
                }
            }
        }
Пример #3
0
 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);
 }
Пример #4
0
 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);
 }