Пример #1
0
    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);
                }
            }
        }
    }
Пример #2
0
    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);
    }
Пример #3
0
 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;
 }
Пример #4
0
 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);
    }
Пример #7
0
    //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);
    }