private void CreateOrUpdateAbstractNode(ConcreteNode node, Cluster cluster, int level, Dictionary <Vector2Int, AbstractNode> abstractDict, ref int abstractId) { AbstractNode abstractNode; if (abstractDict.TryGetValue(node.Pos, out abstractNode)) { if (level > abstractNode.Level) { abstractNode.Level = level; } } else { cluster.AddEntrancePoint(abstractId, node); abstractNode = HPADemo.Instance.CreateAbstractNode(level, node.Pos); abstractNode.Init(abstractId, level, cluster.Id, node.Pos); abstractDict[node.Pos] = abstractNode; abstractId++; } }