private void OnCloseRequest(QuestNode questNode) { 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"]; if (from == questNode.GetName() || to == questNode.GetName()) { if (_graphEdit.IsNodeConnected(from, fromPort, to, toPort)) { _graphEdit.DisconnectNode(from, fromPort, to, toPort); } } } questNode.QueueFree(); }
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 QuestNode AddQuestNode(QuestNode n) { _graphEdit.AddChild(n); n.Connect(nameof(QuestNode.CloseRequest), this, nameof(OnCloseRequest)); return(n); }