public override void Add(BaseNodule item) { if (mainNode && mainNode == item.MainNode) { base.Add(item); ReCalcAllNodulePos(mainNode, true); } else if (mainNodule) { if (item.Nodules.Contains(mainNodule) && !Contains(item)) { base.Add(item); } else if (NoduleTypes.CheckCompatibility(mainNodule, item)) { base.Add(item); item.Nodules.Add(mainNodule); } if (mainNodule is OutputNodule) { (mainNodule as OutputNodule).UpdateConditionalValues(); } ReCalcAllNodulePos(mainNodule.MainNode, true); } }
protected virtual void Construct(string _name, BaseNode _mainNode) { name = _name; mainNode = (NoduleTypes.CheckCompatibility(_mainNode, this)) ? _mainNode : null; nodules = NoduleDatabase.CreateNew(this); if (mainNode) { DialogueEditorGUI.Cache.SaveNewObject(this, mainNode); } }
public override void Insert(int index, BaseNodule item) { if (mainNode == item.MainNode) { base.Insert(index, item); ReCalcAllNodulePos(mainNode, true); } else if (mainNodule && NoduleTypes.CheckCompatibility(mainNodule, item)) { base.Insert(index, item); item.Nodules.Add(mainNodule); if (mainNodule is OutputNodule) { (mainNodule as OutputNodule).UpdateConditionalValues(); } ReCalcAllNodulePos(mainNodule.MainNode, true); } }