예제 #1
0
        /// <summary>
        ///		Loads this tilemap segment node from a given binary reader.
        /// </summary>
        /// <param name="reader">Binary reader to load this tilemap segment node from.</param>
        public override void Load(BinaryReader reader)
        {
            // Load all the basic entity details.
            base.Load(reader);

            // Load all the tilemap specific details.
            _width      = reader.ReadInt32();
            _height     = reader.ReadInt32();
            _tileWidth  = reader.ReadInt16();
            _tileHeight = reader.ReadInt16();

            // Load in all the tileset in this map.
            _tileData = new TileNode[_width, _height];
            for (int x = 0; x < _width; x++)
            {
                for (int y = 0; y < _height; y++)
                {
                    _tileData[x, y] = new TileNode();
                    if (_tileData[x, y].Parent != null)
                    {
                        _tileData[x, y].Parent.RemoveChild(_tileData[x, y]);
                    }
                    _tileData[x, y].Parent = this;
                    SceneGraph.AttachNode(_tileData[x, y]);
                    _tileData[x, y].Load(reader);
                }
            }
        }