public void SaveData(string dir)
    {
        s_leveldat dat = new s_leveldat(Grid.character_layer, Grid.item_layer, Grid.block_layer, Grid.groundworldsize);

        string jsonString = JsonUtility.ToJson(dat);

        File.WriteAllText(dir, jsonString);
    }
    public void LoadData()
    {
        string te = "";

        te = LevelData[currentlevel].text;
        s_leveldat leveldata = JsonUtility.FromJson <s_leveldat>(te);

        Grid.groundworldsize = leveldata.gridsize;

        load.FeedGridData(leveldata);
        Grid.UnpaintAllNodes();
    }
    public void LoadData(string dire)
    {
        string te = "";

        te = File.ReadAllText(dire);
        Grid.ClearGrid();

        Debug.Log(dire);
        s_leveldat leveldata = JsonUtility.FromJson <s_leveldat>(te);

        Grid.groundworldsize = leveldata.gridsize;

        load.FeedGridData(leveldata);
        Grid.UnpaintAllNodes();
    }
    void FeedGridData(s_leveldat levelData)
    {
        foreach (s_nodedat block in levelData.nodes_blocks)
        {
            Grid.block_layer[block.x, block.y] = Grid.SpawnObject(block.objectstr, new Vector2(20 * block.x, 20 * block.y));

            //SpriteRenderer rend = Grid.block_layer[block.x, block.y].gameObject.GetComponent<SpriteRenderer>();

            /*
             * if (rend != null)
             *  if (block.spr != null)
             *      //rend.sprite = block.spr;
             *
             *      Grid.block_layer[block.x, block.y].transform.rotation = block.rot;
             */
        }
        foreach (s_nodedat cha in levelData.nodes_character)
        {
            o_character character =
                (o_character)Grid.SpawnObject(cha.objectstr, new Vector2(20 * cha.x, 20 * cha.y));
            if (character.GetComponent <ICharacter>() != null)
            {
                character.GetComponent <ICharacter>().Intialize();
            }
        }
        foreach (s_nodedat cha in levelData.nodes_items)
        {
            o_item it = (o_item)Grid.SpawnObject(cha.objectstr, new Vector2(20 * cha.x, 20 * cha.y));
            if (it != null)
            {
                Grid.item_layer[cha.x, cha.y] = it;
            }
        }

        for (int x = 0; x < Grid.gridworldsize.x; x++)
        {
            for (int y = 0; y < Grid.gridworldsize.y; y++)
            {
                s_nodedat block_nod     = levelData.nodes_blocks.Find(obj => obj.x == x && obj.y == y);
                s_nodedat character_nod = levelData.nodes_character.Find(obj => obj.x == x && obj.y == y);
                s_nodedat item_nod      = levelData.nodes_items.Find(obj => obj.x == x && obj.y == y);
            }
        }
        Grid.ResetNodes();
    }