public bool IsSame(CGModuleSlot source, CGModuleSlot target) { return(ModuleID == source.Module.UniqueID && SlotName == source.Name && TargetModuleID == target.Module.UniqueID && TargetSlotName == target.Name); }
CGModuleLink GetLink(List <CGModuleLink> lst, CGModuleSlot source, CGModuleSlot target) { for (int i = 0; i < lst.Count; i++) { if (lst[i].IsSame(source, target)) { return(lst[i]); } } return(null); }
public virtual void UnlinkFrom(CGModuleSlot other) { if (Module) { Module.Generator.sortModulesINTERNAL(); Module.Dirty = true; } if (other.Module) { other.Module.Dirty = true; } }
public bool HasLinkTo(CGModuleSlot other) { for (int i = 0; i < LinkedSlots.Count; i++) { if (LinkedSlots[i] == other) { return(true); } } return(false); }
List <CGModuleLink> GetLinks(List <CGModuleLink> lst, CGModuleSlot source) { var res = new List <CGModuleLink>(); for (int i = 0; i < lst.Count; i++) { if (lst[i].IsFrom(source)) { res.Add(lst[i]); } } return(res); }
public override void UnlinkFrom(CGModuleSlot outputSlot) { if (HasLinkTo(outputSlot)) { var l1 = Module.GetInputLink(this, (CGModuleOutputSlot)outputSlot); Module.InputLinks.Remove(l1); var l2 = outputSlot.Module.GetOutputLink((CGModuleOutputSlot)outputSlot, this); outputSlot.Module.OutputLinks.Remove(l2); LinkedSlots.Remove(outputSlot); outputSlot.LinkedSlots.Remove(this); base.UnlinkFrom(outputSlot); } }
public override void LinkTo(CGModuleSlot outputSlot) { if (!HasLinkTo(outputSlot)) { Module.InputLinks.Add(new CGModuleLink(this, outputSlot)); outputSlot.Module.OutputLinks.Add(new CGModuleLink(outputSlot, this)); if (!LinkedSlots.Contains(outputSlot)) { LinkedSlots.Add(outputSlot); } if (!outputSlot.LinkedSlots.Contains(this)) { outputSlot.LinkedSlots.Add(this); } base.LinkTo(outputSlot); } }
public override void LinkTo(CGModuleSlot inputSlot) { if (!HasLinkTo(inputSlot)) { if (!inputSlot.Info.Array && inputSlot.IsLinked) { inputSlot.UnlinkAll(); } Module.OutputLinks.Add(new CGModuleLink(this, inputSlot)); inputSlot.Module.InputLinks.Add(new CGModuleLink(inputSlot, this)); if (!LinkedSlots.Contains(inputSlot)) { LinkedSlots.Add(inputSlot); } if (!inputSlot.LinkedSlots.Contains(this)) { inputSlot.LinkedSlots.Add(this); } base.LinkTo(inputSlot); } }
public bool IsBetween(CGModuleSlot one, CGModuleSlot another) { return((IsTo(one) && IsFrom(another)) || (IsTo(another) && IsFrom(one))); }
public bool IsFrom(CGModuleSlot s) { return(s.Module.UniqueID == ModuleID && s.Name == SlotName); }
public bool IsTo(CGModuleSlot s) { return(s.Module.UniqueID == TargetModuleID && s.Name == TargetSlotName); }
public CGModuleLink(CGModuleSlot source, CGModuleSlot target) : this(source.Module.UniqueID, source.Name, target.Module.UniqueID, target.Name) { }