Esempio n. 1
0
        public virtual void OnNodeUI(GraphGUI host)
        {
            var src_slot = (host.edgeGUI as EdgeGUI).DragSourceSlot;

            foreach (var slot in this.inputSlots)
            {
                if (src_slot != null && src_slot.isOutputSlot && host.graph.CanConnect(src_slot, slot))
                {
                    Styles.pinIn.fontStyle        = FontStyle.Bold;
                    Styles.pinIn.normal.textColor = Color.green;
                }
                else
                {
                    Styles.pinIn.fontStyle        = FontStyle.Normal;
                    Styles.pinIn.fontSize         = 10;
                    Styles.pinIn.normal.textColor = Color.black;
                }
                host.LayoutSlot(slot, slot.title, false, true, true, Styles.pinIn);
            }

            base.NodeUI(host);

            foreach (var slot in this.outputSlots)
            {
                EditorGUILayout.BeginHorizontal();
                GUILayout.FlexibleSpace();
                host.LayoutSlot(slot, slot.title, true, false, true, Styles.pinOut);
                EditorGUILayout.EndHorizontal();
            }
        }
Esempio n. 2
0
        public virtual void OnNodeUI(GraphGUI host)
        {
            var src_slot = (host.edgeGUI as EdgeGUI).DragSourceSlot;

            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.BeginVertical();
            foreach (var slot in this.inputSlots)
            {
                bool canConvert = false;
                if (src_slot != null && src_slot.isOutputSlot)
                {
                    canConvert = host.graph.CanConnect(src_slot, slot);

                    /*
                     * var convertor = TypeDescriptor.GetConverter (src_slot.dataType);//host.graph.CanConnect(src_slot,slot)) {
                     * try{
                     * if (convertor!=null)
                     *      canConvert = convertor.CanConvertTo (slot.dataType);
                     * }catch(Exception e) {
                     * }
                     * canConvert |= slot.dataType.IsAssignableFrom (src_slot.dataType);*/
                }
                if (canConvert)
                {
                    Styles.pinIn.fontStyle          = FontStyle.Bold;
                    Styles.pinIn.onNormal.textColor = Color.green;
                }
                else
                {
                    Styles.pinIn.fontStyle          = FontStyle.Normal;
                    Styles.pinIn.fontSize           = 10;
                    Styles.pinIn.onNormal.textColor = Color.black;
                }
                host.LayoutSlot(slot, slot.title, false, true, true, Styles.pinIn);
            }
            EditorGUILayout.EndVertical();

            base.NodeUI(host);
            EditorGUILayout.BeginVertical();
            foreach (var slot in this.outputSlots)
            {
                EditorGUILayout.BeginHorizontal();
                GUILayout.FlexibleSpace();
                host.LayoutSlot(slot, slot.title, true, false, true, Styles.pinOut);
                EditorGUILayout.EndHorizontal();
            }
            EditorGUILayout.EndVertical();
            EditorGUILayout.EndHorizontal();
        }
Esempio n. 3
0
        protected virtual void DrawOutputSlots(GraphGUI host, IEnumerable <Graphs.Slot> slots, bool prefixNodeName = false)
        {
            var src_slot = (host.edgeGUI as EdgeGUI).DragSourceSlot;

            foreach (var slot in slots)
            {
                EditorGUILayout.BeginHorizontal();
                GUILayout.FlexibleSpace();
                if (slot == src_slot)
                {
                    Styles.pinOut.fontStyle          = FontStyle.Bold;
                    Styles.pinOut.normal.textColor   = Color.blue;
                    Styles.pinOut.onNormal.textColor = Color.blue;
                }
                else
                {
                    Styles.pinOut.fontStyle          = FontStyle.Normal;
                    Styles.pinOut.normal.textColor   = Color.black;
                    Styles.pinOut.onNormal.textColor = Color.black;
                }
                var n = (slot.node as Block).runtimeInstance;
                host.LayoutSlot(slot, (prefixNodeName ? n.name + "." :"") + slot.title, true, false, true, Styles.pinOut);
                EditorGUILayout.EndHorizontal();
            }
        }
Esempio n. 4
0
        protected virtual void DrawInputSlots(GraphGUI host, IEnumerable <Graphs.Slot> slots, bool prefixNodeName = false)
        {
            var src_slot = (host.edgeGUI as EdgeGUI).DragSourceSlot;

            foreach (var slot in slots)
            {
                bool canConvert = false;
                if (src_slot != null && src_slot.isOutputSlot)
                {
                    canConvert = host.graph.CanConnect(src_slot, slot);

                    /*
                     *                  var convertor = TypeDescriptor.GetConverter (src_slot.dataType);//host.graph.CanConnect(src_slot,slot)) {
                     *                  try{
                     *                  if (convertor!=null)
                     *                          canConvert = convertor.CanConvertTo (slot.dataType);
                     *                  }catch(Exception e) {
                     *                  }
                     *                  canConvert |= slot.dataType.IsAssignableFrom (src_slot.dataType);*/
                }
                if (canConvert)
                {
                    Styles.pinIn.fontStyle          = FontStyle.Bold;
                    Styles.pinIn.normal.textColor   = Color.blue;
                    Styles.pinIn.onNormal.textColor = Color.blue;
                }
                else
                {
                    Styles.pinIn.fontStyle          = FontStyle.Normal;
                    Styles.pinIn.fontSize           = 10;
                    Styles.pinIn.normal.textColor   = Color.black;
                    Styles.pinIn.onNormal.textColor = Color.black;
                }
                var n = (slot.node as Block).runtimeInstance;
                host.LayoutSlot(slot, (prefixNodeName ? n.name + "." : "") + slot.title, false, true, true, Styles.pinIn);
            }
        }