Beispiel #1
0
    public static void LoadHolding(string reality, Player player)
    {
        if (string.IsNullOrEmpty(reality))
        {
            Debug.LogError("Reality is null or em empty, cannot load held item.");
            return;
        }
        if (player == null)
        {
            Debug.LogError("Null player, cannot perform IO operation for held item.");
            return;
        }

        // Get file path.
        string path = OutputUtils.RealitySaveDirectory + reality + OutputUtils.HeldItemSaveFile;

        // Get the player holding monobehaviour.
        PlayerHolding holding = player.Holding;

        ItemSaveData sd = InputUtils.FileToObject <ItemSaveData>(path);

        // Apply!
        if (sd == null || string.IsNullOrEmpty(sd.Prefab))
        {
            holding.CmdDrop(false, true, player.gameObject, null);
        }
        else
        {
            holding.ServerEquip(sd.Prefab, player.gameObject, sd.Data.Serialize());
        }
    }
Beispiel #2
0
    public static void SaveHolding(string reality, Player player)
    {
        if (string.IsNullOrEmpty(reality))
        {
            Debug.LogError("Reality is null or em empty, cannot save held item.");
            return;
        }
        if (player == null)
        {
            Debug.LogError("Null player, cannot perform IO operation for held item.");
            return;
        }

        // Get file path.
        string path = OutputUtils.RealitySaveDirectory + reality + OutputUtils.HeldItemSaveFile;

        // Get the player holding monobehaviour.
        PlayerHolding holding = player.Holding;

        if (holding.Item == null)
        {
            OutputUtils.ObjectToFile(null, path);
        }
        else
        {
            ItemSaveData sd = holding.Item.GetSaveData();
            OutputUtils.ObjectToFile(sd, path);
        }
        // Done!
    }
    public void CreateDefaultSave()
    {
        QuestStageData[] questStagesArray =
        {
            new QuestStageData {
                quest = Str.Main, stage = 0
            },
            new QuestStageData {
                quest = Str.Warbler, stage = 0
            },
            new QuestStageData {
                quest = Str.Frog, stage = 0
            },
            new QuestStageData {
                quest = Str.Turtle, stage = 0
            }
        };

        PlayerData playerData = new PlayerData
        {
            position = ToArray(new Vector3(369.7f, 32.45f, 411.16f)),
            rotation = ToArray(new Quaternion(0f, 0f, 0f, 1f))
        };

        PlayerHolding playerHolding = new PlayerHolding {
            itemHolding = QuestItem.QuestItemEnum.None
        };

        WarblerChildrenStatus warblerChildrenStatus = new WarblerChildrenStatus {
            foundChild1 = false, foundChild2 = false, foundChild3 = false
        };

        ItemStatus itemStatus = new ItemStatus {
            foundSeed = false,
            foundSoil = false,
            foundRain = false,
            seedPos   = ToArray(seedItem.transform.position),
            soilPos   = ToArray(soilItem.transform.position),
            rainPos   = ToArray(rainItem.transform.position)
        };

        Data saveData = new Data
        {
            questStageData        = questStagesArray,
            playerData            = playerData,
            playerHolding         = playerHolding,
            warblerChildrenStatus = warblerChildrenStatus,
            itemStatus            = itemStatus
        };

        SerializeData(Str.SaveDefaultName, saveData);
        //SerializeJson(saveDefaultName, saveData);
    }
    public void SaveData()
    {
        return;

        Logger.Warning("Saving data...");
        QuestStageData[] questStagesArray =
        {
            new QuestStageData {
                quest = Str.Main, stage = mainQuest.QuestStage
            },
            new QuestStageData {
                quest = Str.Warbler, stage = warblerQuest.QuestStage
            },
            new QuestStageData {
                quest = Str.Frog, stage = frogQuest.QuestStage
            },
            new QuestStageData {
                quest = Str.Turtle, stage = turtleQuest.QuestStage
            }
        };

        PlayerData playerData = new PlayerData
        {
            position = ToArray(Services.PlayerMovement.transform.position),
            rotation = ToArray(Services.PlayerMovement.transform.rotation)
        };

        PlayerHolding playerHolding = new PlayerHolding {
            itemHolding = Services.PlayerItemHolder._holdingItem ?
                          Services.PlayerItemHolder._currentlyHeldItem.GetComponent <QuestItem>().itemEnum :
                          QuestItem.QuestItemEnum.None
        };

        Yarn.Unity.InMemoryVariableStorage questMemory = Services.DialogueController.InMemoryVariableStorage;

        WarblerChildrenStatus warblerChildrenStatus = new WarblerChildrenStatus {
            foundChild1 = questMemory.GetValue(Str.Child1String).AsBool,
            foundChild2 = questMemory.GetValue(Str.Child2String).AsBool,
            foundChild3 = questMemory.GetValue(Str.Child3String).AsBool
        };

        ItemStatus itemStatus = new ItemStatus {
            foundSeed = questMemory.GetValue(Str.SeedString).AsBool,
            foundSoil = questMemory.GetValue(Str.SoilString).AsBool,
            foundRain = questMemory.GetValue(Str.RainString).AsBool,
            seedPos   = ToArray(seedItem.transform.position),
            soilPos   = ToArray(soilItem.transform.position),
            rainPos   = ToArray(rainItem.transform.position)
        };

        Data saveData = new Data {
            questStageData        = questStagesArray,
            playerData            = playerData,
            playerHolding         = playerHolding,
            warblerChildrenStatus = warblerChildrenStatus,
            itemStatus            = itemStatus
        };

        SerializeData(Str.SaveName, saveData);

        //SerializeJson(saveName, saveData);
        Logger.Warning("Data saved successfully.");
    }