StonehearthEditor.ArcNodeData.GetEncountersWithInEdge C# (CSharp) Method

GetEncountersWithInEdge() public method

public GetEncountersWithInEdge ( string inEdgeName ) : List
inEdgeName string
return List
        public List<GameMasterNode> GetEncountersWithInEdge(string inEdgeName)
        {
            List<GameMasterNode> inEdges = new List<GameMasterNode>();
            foreach (GameMasterNode file in mEncounterFiles)
            {
                if (file.NodeType == GameMasterNodeType.ENCOUNTER)
                {
                    EncounterNodeData nodeData = file.NodeData as EncounterNodeData;
                    if (nodeData.InEdge.Equals(inEdgeName))
                    {
                        inEdges.Add(file);
                    }
                }
            }

            return inEdges;
        }

Usage Example

Exemplo n.º 1
0
        protected override void UpdateOutEdges(Graph graph)
        {
            GameMasterNode arcFile = NodeFile.Owner;
            ArcNodeData    arc     = arcFile?.NodeData as ArcNodeData;

            if (arc != null)
            {
                foreach (string inEdgeName in mOutEdgeStrings)
                {
                    List <GameMasterNode> linkedEncounters = arc.GetEncountersWithInEdge(inEdgeName);
                    if (linkedEncounters.Count == 1 && linkedEncounters[0].Name.Equals(inEdgeName))
                    {
                        if (mChoiceEdgeInfo.ContainsKey(inEdgeName))
                        {
                            foreach (string choice in mChoiceEdgeInfo[inEdgeName])
                            {
                                Node choiceNode = graph.AddNode(NodeFile.Id + "#" + choice);
                                choiceNode.LabelText = '"' + choice + '"';
                                MakeNodePrivate(choiceNode);
                                graph.AddEdge(NodeFile.Id, choiceNode.Id).UserData            = inEdgeName;
                                graph.AddEdge(choiceNode.Id, linkedEncounters[0].Id).UserData = inEdgeName;
                            }
                        }
                        else
                        {
                            graph.AddEdge(NodeFile.Id, linkedEncounters[0].Id).UserData = inEdgeName;
                        }
                    }
                    else
                    {
                        Node arcOutNode = graph.AddNode(arcFile.Id + "#" + inEdgeName);
                        arcOutNode.LabelText = inEdgeName;
                        MakeNodePrivate(arcOutNode);
                        if (mChoiceEdgeInfo.ContainsKey(inEdgeName))
                        {
                            foreach (string choice in mChoiceEdgeInfo[inEdgeName])
                            {
                                Node choiceNode = graph.AddNode(NodeFile.Id + "#" + choice);
                                choiceNode.LabelText = '"' + choice + '"';
                                MakeNodePrivate(choiceNode);
                                graph.AddEdge(NodeFile.Id, choiceNode.Id).UserData   = inEdgeName;
                                graph.AddEdge(choiceNode.Id, arcOutNode.Id).UserData = inEdgeName;
                            }
                        }
                        else
                        {
                            graph.AddEdge(NodeFile.Id, arcOutNode.Id).UserData = inEdgeName;
                        }

                        foreach (GameMasterNode linkedEncounter in linkedEncounters)
                        {
                            graph.AddEdge(arcOutNode.Id, linkedEncounter.Id).UserData = inEdgeName;
                        }
                    }
                }
            }
        }
All Usage Examples Of StonehearthEditor.ArcNodeData::GetEncountersWithInEdge