public string GetJsonDataToSave() { List <SavedStructureData> savedStructuresList = new List <SavedStructureData>(); foreach (var structure in playerStructures) { var euler = structure.transform.rotation.eulerAngles; savedStructuresList.Add(new SavedStructureData { ID = structure.Data.ID, posX = structure.transform.position.x, posY = structure.transform.position.y, posZ = structure.transform.position.z, rotationX = euler.x, rotationY = euler.y, rotationZ = euler.z, }); } var dataToSave = new BuildingSavedData { savedStrcturesDataList = savedStructuresList }; string data = JsonUtility.ToJson(dataToSave); return(data); }
public void InitializeBalconyPlayerData() { PlayerKingdomData playerData = PlayerGameManager.GetInstance.playerData; if (!playerData.balconyBuildingsAdded) { if (playerData.buildingInformationData == null) { playerData.buildingInformationData = new List <BuildingSavedData>(); } for (int i = 0; i < buildingInformationStorage.buildingOperationList.Count; i++) { BuildingSavedData tmp = new BuildingSavedData(); tmp.buildingName = buildingInformationStorage.buildingOperationList[i].BuildingName; tmp.buildingType = buildingInformationStorage.buildingOperationList[i].buildingType; tmp.buildingLevel = buildingInformationStorage.buildingOperationList[i].buildingLevel; if (TransitionManager.GetInstance != null && TransitionManager.GetInstance.isNewGame) { tmp.buildingCondition = BuildingCondition.Functioning; } else { tmp.buildingCondition = buildingInformationStorage.buildingOperationList[i].buildingCondition; } playerData.buildingInformationData.Add(tmp); } playerData.balconyBuildingsAdded = true; } }
public void LoadJsonData(string jsonData) { BuildingSavedData savedData = JsonUtility.FromJson <BuildingSavedData>(jsonData); foreach (var data in savedData.savedStrcturesDataList) { var itemData = ItemDataManager.instance.GetItemData(data.ID); var structureToPlace = ItemSpawnManager.instance.CreateStructure((StructureItemSO)itemData); structureToPlace.PrepareForMovement(); var structureReference = structureToPlace.PrepareForPlacement(); Vector3 position = new Vector3(data.posX, data.posY, data.posZ); Quaternion rotation = Quaternion.Euler(data.rotationX, data.rotationY, data.rotationZ); structureReference.transform.position = position; structureReference.transform.rotation = rotation; structureReference.SetData((StructureItemSO)itemData); SaveStructureReference(structureReference); } }