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); } }
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(); }
public void LoadQuest(string questGuid) { Metadata = MetadataLoader.QuestIdToMetadata[questGuid]; QuestSaveModel = Metadata.QuestSaveModel; }
public QuestMetadata(string id, string displayName, string resourcePath, Texture icon, QuestSaveModel questSaveModel) : base(id, displayName, resourcePath, icon) { QuestSaveModel = questSaveModel; }