Beispiel #1
0
 public bool IsCompatibleWith(LogicSlot otherLogicSlot)
 {
     return(otherLogicSlot != null &&
            otherLogicSlot.Owner != Owner &&
            otherLogicSlot.isInputSlot != isInputSlot &&
            ((isInputSlot
                ? otherLogicSlot.IsCompatibleWithInputSlotType(ValueType)
                : IsCompatibleWithInputSlotType(otherLogicSlot.ValueType))));
 }
Beispiel #2
0
 private void GetSlots(Edge edge, out LogicSlot leftLogicSlot,
                       out LogicSlot rightLogicSlot)
 {
     leftLogicSlot  = (edge.output as LogicPort).Slot;
     rightLogicSlot = (edge.input as LogicPort).Slot;
     if (leftLogicSlot == null || rightLogicSlot == null)
     {
         Debug.Log("an edge is null");
     }
 }
Beispiel #3
0
        public void AddSlot(LogicSlot logicSlot)
        {
            if (!(logicSlot is LogicSlot))
            {
                throw new ArgumentException(string.Format(
                                                "Trying to add slot {0} to Material node {1}, but it is not a {2}", logicSlot, this,
                                                typeof(LogicSlot)));
            }

            _slots.Add(logicSlot);
        }
Beispiel #4
0
        public void AddEdge(LogicSlot leftLogicSlot, LogicSlot rightLogicSlot)
        {
            SerializedEdge serializedEdge = new SerializedEdge
            {
                SourceNodeGuid   = leftLogicSlot.Owner.NodeGuid,
                SourceMemberName = leftLogicSlot.MemberName,
                TargetNodeGuid   = rightLogicSlot.Owner.NodeGuid,
                TargetMemberName = rightLogicSlot.MemberName
            };

            _logicGraphEditorObject.LogicGraphData.SerializedEdges.Add(serializedEdge);

            AddEdge(serializedEdge);
        }
Beispiel #5
0
        public static Port Create(LogicSlot logicSlot, IEdgeConnectorListener connectorListener)
        {
            var port = new LogicPort(Orientation.Horizontal,
                                     logicSlot.isInputSlot ? Direction.Input : Direction.Output,
                                     logicSlot.isInputSlot ? Capacity.Single : Capacity.Multi,
                                     null)
            {
                m_EdgeConnector = new EdgeConnector <Edge>(connectorListener),
            };

            port.AddManipulator(port.m_EdgeConnector);
            port.Slot = logicSlot;
            return(port);
        }
Beispiel #6
0
        public PortInputView(LogicSlot description)
        {
            this.LoadAndAddStyleSheet("Styles/PortInputView");
            pickingMode = PickingMode.Ignore;
            ClearClassList();
            _description = description;
            _valueType   = description.ValueType;
            AddToClassList("type" + _valueType);

            _edgeControl = new EdgeControl
            {
                @from       = new Vector2(212f - 21f, 11.5f),
                to          = new Vector2(212f, 11.5f),
                edgeWidth   = 2,
                pickingMode = PickingMode.Ignore
            };
            Add(_edgeControl);

            _container = new VisualElement {
                name = "container"
            };
            {
                _control = this.Description.InstantiateControl();
                if (_control != null)
                {
                    _container.Add(_control);
                }

                var slotElement = new VisualElement {
                    name = "slot"
                };
                {
                    slotElement.Add(new VisualElement {
                        name = "dot"
                    });
                }
                _container.Add(slotElement);
            }
            Add(_container);

            _container.visible = _edgeControl.visible = _control != null;
        }
Beispiel #7
0
 public void UpdateSlot(LogicSlot newLogicSlot)
 {
     _description = newLogicSlot;
     Recreate();
 }