예제 #1
0
 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();
 }
예제 #2
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);
     }
 }
예제 #3
0
 private QuestNode AddQuestNode(QuestNode n)
 {
     _graphEdit.AddChild(n);
     n.Connect(nameof(QuestNode.CloseRequest), this, nameof(OnCloseRequest));
     return(n);
 }