Exemple #1
0
 private void StoreData(QuestSaveModel saveModel, QuestNode node)
 {
     if (node is QuestStartNode qsn)
     {
         saveModel.Start = qsn.Model;
     }
     else if (node is QuestEventNode qen)
     {
         saveModel.Events.Add(qen.Model);
     }
     else if (node is QuestStageNode qstn)
     {
         saveModel.Stages.Add(qstn.Model);
     }
     else if (node is QuestCompleteNode qcn)
     {
         saveModel.Completions.Add(qcn.Model);
     }
     else if (node is QuestRewardNode qrn)
     {
         saveModel.Rewards.Add(qrn.Model);
     }
 }
Exemple #2
0
        private void Save(string path)
        {
            var saveModel = new QuestSaveModel();

            // save all node data
            foreach (var node in _graphEdit.GetChildren())
            {
                if (node is QuestNode qn)
                {
                    StoreData(saveModel, qn);
                }
            }

            // establish connections
            foreach (Godot.Collections.Dictionary connection in _graphEdit.GetConnectionList())
            {
                var from     = (string)connection["from"];
                var to       = (string)connection["to"];
                var fromPort = (int)connection["from_port"];
                var toPort   = (int)connection["to_port"];

                var fromQuestNode = _graphEdit.GetNode(from) as QuestNode;
                var fromModel     = fromQuestNode.Model;
                var toQuestNode   = _graphEdit.GetNode(to) as QuestNode;
                var toModel       = toQuestNode.Model;

                saveModel.AddRightConnection(fromModel.Id, toModel.Id, fromPort, toPort);
            }
            var json = JsonConvert.SerializeObject(saveModel);
            var file = new File();

            file.OpenCompressed(path, (int)File.ModeFlags.Write, (int)File.CompressionMode.Gzip);
            file.StoreLine(json);
            file.Close();
            InvalidateFileDialogs();
        }
Exemple #3
0
 public void LoadQuest(string questGuid)
 {
     Metadata       = MetadataLoader.QuestIdToMetadata[questGuid];
     QuestSaveModel = Metadata.QuestSaveModel;
 }
Exemple #4
0
 public QuestMetadata(string id, string displayName, string resourcePath, Texture icon, QuestSaveModel questSaveModel) : base(id, displayName, resourcePath, icon)
 {
     QuestSaveModel = questSaveModel;
 }