Пример #1
0
 public bool IsSame(CGModuleSlot source, CGModuleSlot target)
 {
     return(ModuleID == source.Module.UniqueID &&
            SlotName == source.Name &&
            TargetModuleID == target.Module.UniqueID &&
            TargetSlotName == target.Name);
 }
Пример #2
0
 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);
 }
Пример #3
0
 public virtual void UnlinkFrom(CGModuleSlot other)
 {
     if (Module)
     {
         Module.Generator.sortModulesINTERNAL();
         Module.Dirty = true;
     }
     if (other.Module)
     {
         other.Module.Dirty = true;
     }
 }
Пример #4
0
        public bool HasLinkTo(CGModuleSlot other)
        {
            for (int i = 0; i < LinkedSlots.Count; i++)
            {
                if (LinkedSlots[i] == other)
                {
                    return(true);
                }
            }

            return(false);
        }
Пример #5
0
        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);
        }
Пример #6
0
        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);
            }
        }
Пример #7
0
        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);
            }
        }
Пример #8
0
        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);
            }
        }
Пример #9
0
 public bool IsBetween(CGModuleSlot one, CGModuleSlot another)
 {
     return((IsTo(one) && IsFrom(another)) ||
            (IsTo(another) && IsFrom(one)));
 }
Пример #10
0
 public bool IsFrom(CGModuleSlot s)
 {
     return(s.Module.UniqueID == ModuleID && s.Name == SlotName);
 }
Пример #11
0
 public bool IsTo(CGModuleSlot s)
 {
     return(s.Module.UniqueID == TargetModuleID && s.Name == TargetSlotName);
 }
Пример #12
0
 public CGModuleLink(CGModuleSlot source, CGModuleSlot target) : this(source.Module.UniqueID, source.Name, target.Module.UniqueID, target.Name)
 {
 }