/// <summary> /// Package this TileSystems data and return the data type /// </summary> /// <returns>Packaged TileSystemData</returns> public TileSystemData PackageData() { // ---------- Prepare to package data ---------- TileSystemData data = new TileSystemData(_numRows, _numCols); // ---------- Begin data package ---------- for (int i = 0; i < _numRows; i++) for (int j = 0; j < _numCols; j++) data.Tiles[j + (i * _numCols)] = _tiles[i, j].PackageData(); // ---------- End data package ---------- return data; }
/// <summary> /// Load a TileSystem from data file /// </summary> public TileSystem(GameLayerTiled gameLayer, TileSystemData tileSystemData) { Construct(gameLayer, tileSystemData.NumRows, tileSystemData.NumCols); // ---------- Populate 2D tile array with specified data ---------- for (int i = 0; i < _numRows; i++) for (int j = 0; j < _numCols; j++) { int current1Dindex = j + (i * _numCols); TileRef tile = new TileRef(tileSystemData.Tiles[current1Dindex]); _tiles[i, j] = tile; } }