public void UpdateTerrainFromConnection(object terrainIn) { ter = LoadTerrainFromConnection(terrainIn); terrainTypes = SetTerrain(ter); int terrainLength = terrainTypes.GetLength(0) * terrainTypes.GetLength(1); Tilemap tilemap = this.gameObject.GetComponent <Tilemap>(); tRenderer = tilemap.gameObject.GetComponent <TilemapRenderer>(); TileBase[,] tileArray = new TileBase[terrainTypes.GetLength(0), terrainTypes.GetLength(1)]; for (int x = 0; x < 50; x++) { for (int y = 0; y < 50; y++) { Vector3Int currentPos = new Vector3Int(x, y, 0); tilemap.SetTile(currentPos, tile); tilemap.SetTileFlags(currentPos, TileFlags.None); if (terrainTypes[x, y] == "wall") { tilemap.SetColor(currentPos, wallColor); } else if (terrainTypes[x, y] == "swamp") { tilemap.SetColor(currentPos, swampColor); } else { tilemap.SetColor(currentPos, plainsColor); } } } }
RoomTerrain LoadTerrainFromConnection(object terrainIn) { //string savePath = "C:\\Users\\Ssmit\\Documents\\Unity\\ScreepsMobileViewer\\Assets\\Terrain1.JSON"; //string terrainFile = File.ReadAllText(savePath); // terrainFile = "{\"result\":" + terrainFile.ToString() + "}"; string terrainFile = "{\"result\": null}"; RoomTerrain t = JsonUtility.FromJson <RoomTerrain>(terrainFile); return(t); }
RoomTerrain LoadTerrainFromFile() { // get the file // var savePath = Application.dataPath + "\\Terrain1.JSON"; string savePath = "C:\\Users\\Stephen\\ScreepsMobileViewer\\Assets\\Terrain1.json"; string terrainFile = File.ReadAllText(savePath); terrainFile = "{\"result\":" + terrainFile.ToString() + "}"; RoomTerrain t = JsonUtility.FromJson<RoomTerrain>(terrainFile); return t; }
string[,] SetTerrain(RoomTerrain terrainIn) { string[,] terrainTypes = new string[50, 50]; foreach (Terrain t in terrainIn.result) { if (terrainTypes[t.x, t.y] != "wall") { terrainTypes[t.x, t.y] = t.type; } } return(terrainTypes); }
RoomTerrain LoadTerrainFromFile() { // get the file string savePath = Application.persistentDataPath + Path.DirectorySeparatorChar + "Terrain1.JSON"; //string savePath = "C:\\Users\\Stephen\\ScreepsMobileViewer\\Assets\\Terrain1.json"; string terrainFile = File.ReadAllText(savePath); terrainFile = "{\"result\":" + terrainFile.ToString() + "}"; RoomTerrain t = JsonUtility.FromJson <RoomTerrain>(terrainFile); return(t); }
RoomTerrain LoadTerrainFromConnection(ConnectRecievedTerrain t) { //{ "ok":1,"terrain":[ // {"_id":"5982ff33b097071b4adc23cb", // "room":"E20N6", // "terrain":"1111111111111111110000000000000000000000000111111111111111111111111000000000000000000000000001111111111111111111111100000000000000000000000000011111111111111111111110000000000000000000000000000111111111111111111111000000000000000000000000000001111111111111111111100000000000000000000000000000011111111111111111100000000000000000000000000000000111111111111111110000000000000000000000000000000001111111111111111000000000000000000000000000000000011111111111111100000000000000000000000000000000000111111111111110000000000000000000000000000000000001111111111111000000000000000000000000000000000000011111111111110000000000000000000000000000000000000111111111111000000000000000000000000000000000000001111111111110000000000000000000000000000000000000011111111111000000000000000000000000000000000000000011111111110000000000000000000000000000000000000000111111111000000000000000000000000000000000000000001111111100000000000000000000000000000000000000000011111110000000000000000000000000000000000000000000111111000000000000000000000000000000000000000000001111110000000000000000000000000011100000000000000001111100000000000000000000000000111000000000000000011111000000000000000000000000000000000000000000000011110000000000000000000000000000000000000000000000111100000000000000000000000000000000000000000000000111100000000000000000000011100000000000000000000001111000000000000000000001111100000000000000000000011110000011100000000000111111000000000000000000000111100000111000000000001111110000000000000000100001111000000000000000000001111000000000000000011100011110000000000000000000001100000000000000000110001111100000000000000000000000000000000000000000000011111000000000000000000000000000011000000000000001111110000000000000000000000000000110000000000000011111100000000000000000000000000000000000000000001111110000000000000000000000000000000000011000000011111100000000000000000000000000000000000111000001111111000000000000000000000000000000000001111000011111110000000000000000000000000000000000011100001111111100000000000000000000000000000000000000000011111111000000000111111111000000000000000000000001111111110000000011111111110000000000000000000000011111111110000001111111111000000000000000000000001111111111110000001111111100000100000000000000000011111111111110000001111110000011100000000000000000111111111111110000000000000000111100000000000000001111111111111100000000000000000110000000000000000001111111111111000000000000000000000000000000000000001111111111110000000000000000000000000000000000000011111111", // "type":"terrain"} // ] //} //string terrainFile = "{\"result\": null}"; RoomTerrain terr = new RoomTerrain(); Terrain[] result = new Terrain[2500]; //terr.result = result; //ConnectRecievedTerrain t = JsonUtility.FromJson<ConnectRecievedTerrain>(terrainIn.ToString()); Debug.Log("load terrain : " + t); char[] c = t.terrain[0].terrain.ToCharArray(); for (int i = 0; i < 2500; i++) { result[i] = new Terrain(); //Debug.Log(result[i]); int x = i % 50; int y = Mathf.FloorToInt(i / 50); result[i].x = x; result[i].y = y; result[i].roomName = t.terrain[0].room; if (c[i] == '1' || c[i] == '3') { result[i].type = "wall"; } else if (c[i] == '2') { result[i].type = "swamp"; } else { result[i].type = "plains"; } } terr.result = result; return(terr); }
//api.Http.GetRoom(coord.roomName, coord.shardName, serverCallback); public void UpdateTerrainFromConnection() { //Action<JSONObject> serverCallback = obj => { // var terrainData = obj["terrain"].list[0]["terrain"].str; // this.terrain[coord.key] = terrainData; // callback(terrainData); //}; Debug.Log("recTer : " + recTer); ter = LoadTerrainFromConnection(recTer); Debug.Log(ter.result[0].type); terrainTypes = SetTerrain(ter); int terrainLength = terrainTypes.GetLength(0) * terrainTypes.GetLength(1); Tilemap tilemap = tileMapGO.GetComponent<Tilemap>(); tRenderer = tilemap.gameObject.GetComponent<TilemapRenderer>(); TileBase[,] tileArray = new TileBase[terrainTypes.GetLength(0), terrainTypes.GetLength(1)]; for (int x = 0; x < 50; x++) { for (int y = 0; y < 50; y++) { Vector3Int currentPos = new Vector3Int(x, y, 0); tilemap.SetTile(currentPos, tile); tilemap.SetTileFlags(currentPos, TileFlags.None); //Debug.Log(terrainTypes[x, y] + " " + x + " "+ y); if (terrainTypes[x, y] == "wall") { //tilemap.SetColor(currentPos, wallColor); } else if (terrainTypes[x, y] == "swamp") { //tilemap.SetColor(currentPos, swampColor); } else { //tilemap.SetColor(currentPos, plainsColor); } } } }
void GenerateTileMap() { ter = LoadTerrainFromFile(); Debug.Log(ter.result[0].type); terrainTypes = SetTerrain(ter); int terrainLength = terrainTypes.GetLength(0) * terrainTypes.GetLength(1); var grid = this.gameObject.AddComponent <Grid>(); grid.cellSize = new Vector3(0.16f, 0.16f, 1); tileMapGO = new GameObject("Tilemap"); Tilemap tilemap = tileMapGO.AddComponent <Tilemap>(); tilemap.transform.SetParent(grid.transform); tRenderer = tilemap.gameObject.AddComponent <TilemapRenderer>(); tilemap.GetComponent <TilemapRenderer>().sortOrder = TilemapRenderer.SortOrder.TopLeft; TileBase[,] tileArray = new TileBase[terrainTypes.GetLength(0), terrainTypes.GetLength(1)]; for (int x = 0; x < 50; x++) { for (int y = 0; y < 50; y++) { Vector3Int currentPos = new Vector3Int(x, y, 0); tilemap.SetTile(currentPos, tile); tilemap.SetTileFlags(currentPos, TileFlags.None); if (terrainTypes[x, y] == "wall") { tilemap.SetColor(currentPos, wallColor); } else if (terrainTypes[x, y] == "swamp") { tilemap.SetColor(currentPos, swampColor); } else { tilemap.SetColor(currentPos, plainsColor); } } } //tilemap.SetTiles(positions, tileArray); }