public GameObject getResource(TileTerrainIDs id) { return(resources [id]); }
private void initWorldData() { TextAsset file = Resources.Load("TiledMap/map.json", typeof(TextAsset)) as TextAsset; Debug.Assert(file != null); JSONNode node = JSON.Parse(file.text); numTilesX = (uint)node ["width"].AsInt; numTilesY = (uint)node ["height"].AsInt; Debug.Log("MapW: " + numTilesX); Debug.Log("MapH: " + numTilesY); Debug.Log("Map Sice: " + numTilesX + " W, " + numTilesY + " H"); worldTerrainType = new TileTerrainType[numTilesY, numTilesX]; worldTerrainID = new TileTerrainIDs[numTilesY, numTilesX]; worldTerrainRepresentation = new GameObject[numTilesY, numTilesX]; riceTerrains = new RiceTerrainTile[numTilesY, numTilesX]; chunkTilesPos = new Dictionary <int, List <Pair <uint, uint> > >(); vegetation = new Dictionary <uintPair, Vegetation> (); canalManager = new CanalManager(numTilesX, numTilesY); _weedFactory = new WeedFactory(this, RICE_CHUNK_W * RICE_CHUNK_H); chunkNextID = 0; // TERRAIN for (uint k = 0; k < numTilesX * numTilesY; ++k) { uint i = k / numTilesX; uint j = k % numTilesX; //Debug.Log("Data["+i+","+j+"]="+node ["layers"] [0] ["data"] [k]); TileTerrainIDs v = (TileTerrainIDs)node ["layers"] [0] ["data"] [(int)k].AsInt; worldTerrainID [i, j] = v; worldTerrainType [i, j] = (v == TileTerrainIDs.HERBS) ? TileTerrainType.FREE : TileTerrainType.DECORATION; } // VEGETATION for (uint k = 0; k < numTilesX * numTilesY; ++k) { uint i = k / numTilesX; uint j = k % numTilesX; //Debug.Log("Data["+i+","+j+"]="+node ["layers"] [0] ["data"] [k]); int v = node ["layers"] [1] ["data"] [(int)k].AsInt; if (v != 0) { uintPair matrixPos = new uintPair(i, j); vegetation [matrixPos] = new Vegetation(i, j, (VegID)v); } } // CANALS for (uint k = 0; k < numTilesX * numTilesY; ++k) { uint i = k / numTilesX; uint j = k % numTilesX; //Debug.Log("Data["+i+","+j+"]="+node ["layers"] [0] ["data"] [k]); int v = node ["layers"] [2] ["data"] [(int)k].AsInt; if ((TileOthersIDs)v == TileOthersIDs.CANAL) { addCanal(i, j); } else if ((TileOthersIDs)v == TileOthersIDs.WATER_SOURCE) { addCanal(i, j); canalManager.addWaterSource(3, 6); } } canalManager.updateCanals(); //RICE CHUNKS for (uint k = 0; k < numTilesX * numTilesY; ++k) { uint i = k / numTilesX; uint j = k % numTilesX; //Debug.Log("Data["+i+","+j+"]="+node ["layers"] [0] ["data"] [k]); int v = node ["layers"] [2] ["data"] [(int)k].AsInt; if ((TileOthersIDs)v == TileOthersIDs.RICE_CHUNK) { createRiceChunk(i, j, true); } } canalManager.updateCanals(); }