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