private bool Load() { if (File.Exists(Application.dataPath + "/blocks.txt")) { BlockGridSaveData data = JsonUtility.FromJson <BlockGridSaveData>(File.ReadAllText(Application.dataPath + "/blocks.txt")); for (int i = 0; i < data.blocks.Length; i++) { BlockType.GetBlockType(data.blocks[i].blockName).Place(GetWorldPosition(data.blocks[i].x, data.blocks[i].y), (Layer)data.blocks[i].z); } for (int i = 0; i < data.chests.Length; i++) { Chest chest = (Chest)BlockType.Chest.Place(GetWorldPosition(data.chests[i].x, data.chests[i].y), (Layer)data.chests[i].z); chest.Load(data.chests[i]); } for (int i = 0; i < data.furnaces.Length; i++) { Furnace furnace = (Furnace)BlockType.Furnace.Place(GetWorldPosition(data.furnaces[i].x, data.furnaces[i].y), (Layer)data.furnaces[i].z); furnace.Load(data.furnaces[i]); } for (int i = 0; i < data.stairs.Length; i++) { Stairs stairs = (Stairs)BlockType.GetBlockType(data.stairs[i].name).Place(GetWorldPosition(data.stairs[i].x, data.stairs[i].y), (Layer)data.stairs[i].z); stairs.Load(data.stairs[i]); } for (int i = 0; i < data.doors.Length; i++) { Door door = (Door)BlockType.Door.Place(GetWorldPosition(data.doors[i].x, data.doors[i].y), (Layer)data.doors[i].z); door.Load(data.doors[i]); } return(true); } return(false); }
private void Save() { BlockGridSaveData save = new BlockGridSaveData(); for (int i = 0; i < width; i++) { for (int j = 0; j < height; j++) { for (int k = 0; k < 2; k++) { if (gridArray[i, j, k] != null) { save.Add(gridArray[i, j, k], i, j, k); } } } } save.Setup(); File.WriteAllText(Application.dataPath + "/blocks.txt", JsonUtility.ToJson(save)); }