Ejemplo n.º 1
0
        public override void OnBodyGUI()
        {
            serializedObject.Update();

            Chat node = target as Chat;

            EditorGUILayout.PropertyField(serializedObject.FindProperty("character"), GUIContent.none);
            if (node.answers.Count == 0)
            {
                GUILayout.BeginHorizontal();
                NodeEditorGUILayout.PortField(GUIContent.none, target.GetInputPort("input"), GUILayout.MinWidth(0));
                NodeEditorGUILayout.PortField(GUIContent.none, target.GetOutputPort("output"), GUILayout.MinWidth(0));
                GUILayout.EndHorizontal();
            }
            else
            {
                NodeEditorGUILayout.PortField(GUIContent.none, target.GetInputPort("input"));
            }
            GUILayout.Space(-30);

            NodeEditorGUILayout.PropertyField(serializedObject.FindProperty("text"), GUIContent.none);
            NodeEditorGUILayout.InstancePortList("answers", typeof(DialogueBaseNode), serializedObject, NodePort.IO.Output, Node.ConnectionType.Override);

            serializedObject.ApplyModifiedProperties();
        }
Ejemplo n.º 2
0
        public override void OnBodyGUI()
        {
            GUI.color = Color.white;
            NodeEditorGUILayout.PortPair(target.GetInputPort("enter"), target.GetOutputPort("exit"));

            Rect rect = GUILayoutUtility.GetLastRect();

            rect.x    += (rect.width * 0.5f) - 50;
            rect.width = 100;
            EditorGUI.PropertyField(rect, serializedObject.FindProperty("device"), GUIContent.none);

            GUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("Repeats:", GUILayout.Width(60));
            node.repeats = EditorGUILayout.IntField(node.repeats, GUILayout.Width(33));
            EditorGUILayout.Space();
            EditorGUILayout.LabelField("Random:", GUILayout.Width(60));
            node.random = EditorGUILayout.Toggle(node.random);
            GUILayout.EndHorizontal();

            // Display the String valueIn port.
            NodePort valueInPort = node.GetInputPort("stringIn");

            if (valueInPort.IsConnected)
            {
                // Display an uneditable input value if connected
                EditorGUI.BeginDisabledGroup(true);
                EditorGUILayout.TextField(serializedObject.FindProperty("stringIn").displayName, valueInPort.GetInputValue <string>());
                EditorGUI.EndDisabledGroup();
                NodeEditorGUILayout.AddPortField(valueInPort);
            }
            else
            {
                NodeEditorGUILayout.PropertyField(serializedObject.FindProperty("stringIn"), valueInPort, true);
            }

            // Display the Float valueIn port.
            NodePort fltValueInPort = node.GetInputPort("floatIn");

            if (fltValueInPort.IsConnected)
            {
                // Display an uneditable input value if connected
                EditorGUI.BeginDisabledGroup(true);
                EditorGUILayout.FloatField(serializedObject.FindProperty("floatIn").displayName, fltValueInPort.GetInputValue <float>());
                EditorGUI.EndDisabledGroup();
                NodeEditorGUILayout.AddPortField(fltValueInPort);
            }
            else
            {
                NodeEditorGUILayout.PropertyField(serializedObject.FindProperty("floatIn"), fltValueInPort, true);
            }

            // Actions list
            NodeEditorGUILayout.InstancePortList("actions", typeof(Action), serializedObject, NodePort.IO.Input, Node.ConnectionType.Override, Node.TypeConstraint.Strict, OnCreateReorderableList);
            serializedObject.ApplyModifiedProperties();
            serializedObject.Update();

            // Footer
            DrawFooterGUI();
        }
Ejemplo n.º 3
0
        public override void OnBodyGUI()
        {
            Chat dialogue = target as Chat;

            GUILayout.BeginHorizontal();
            NodeEditorGUILayout.PortField(target.GetInputPort("input"), GUILayout.Width(100));
            EditorGUILayout.Space();
            if (dialogue.answers.Count == 0)
            {
                NodeEditorGUILayout.PortField(target.GetOutputPort("output"), GUILayout.Width(100));
            }
            GUILayout.EndHorizontal();
            NodeEditorGUILayout.PropertyField(serializedObject.FindProperty("text"));
            NodeEditorGUILayout.InstancePortList("answers", typeof(Chat.Answer), serializedObject, NodePort.IO.Output, Node.ConnectionType.Override);
        }
Ejemplo n.º 4
0
        public override void OnBodyGUI()
        {
            //base.OnBodyGUI();
            var choose = target as DialogueChoose;

            GUILayout.BeginHorizontal();

            //输入------

            NodeEditorGUILayout.PortField(target.GetInputPort("Input"), GUILayout.Width(100));


            EditorGUILayout.Space();

            GUILayout.EndHorizontal();

            //标题
            NodeEditorGUILayout.PropertyField(serializedObject.FindProperty("Title"));
            //询问者
            NodeEditorGUILayout.PropertyField(serializedObject.FindProperty("Speaker"));

            //选项列表
            NodeEditorGUILayout.InstancePortList("ChooseList", typeof(DialogueChoose.S_Choose), serializedObject, NodePort.IO.Output, Node.ConnectionType.Override);
        }
Ejemplo n.º 5
0
        public override void OnBodyGUI()
        {
            GUI.color = Color.white;
            NodeEditorGUILayout.PortField(target.GetInputPort("enter"));
            //Debug.Log(node.filter.messageFilter);
            // Get port
            NodePort           port              = node.GetInputPort("value");
            SerializedProperty filterProperty    = serializedObject.FindProperty("filter");
            SerializedProperty inputTypeProperty = serializedObject.FindProperty("inputType");

            //SerializedProperty inputProperty = serializedObject.FindProperty("inputType");
            //GUIContent filterContent = new GUIContent("Condition signal filter", filterProperty.tooltip);
            //if (filterProperty.isExpanded = EditorGUILayout.Foldout(filterProperty.isExpanded, filterContent, DelftStyles.foldoutNoHighlight)) {
            //EditorGUI.indentLevel++;
            //Debug.Log(node.filter.messageFilter);
            EditorGUI.BeginChangeCheck();

            NodeEditorGUILayout.PropertyField(filterProperty, GUIContent.none);
            NodeEditorGUILayout.PropertyField(inputTypeProperty, GUIContent.none);
            //string oscMessage = filterProperty.FindPropertyRelative("messageFilter");
            //EditorGUILayout.PropertyField(inputTypeProperty, GUILayout.Width(33));
            if (EditorGUI.EndChangeCheck())
            {
                //Debug.Log(node.filter.messageFilter);
                serializedObject.ApplyModifiedProperties();
                serializedObject.Update();
            }
            if (node.inputType == AiGlobals.FloatConditionType.analogin)
            {
                //Debug.Log("analogin selected");
                node.filter.messageFilter = "/num/analogin/" + node.filter.port + "/";
            }
            else if (node.inputType == AiGlobals.FloatConditionType.touch)
            {
                //Debug.Log("touch selected");
                node.filter.messageFilter = "/num/touch/" + node.filter.port + "/";
            }
            else if (node.inputType == AiGlobals.FloatConditionType.touchOsc)
            {
                //Debug.Log("touchOSC selected");
                node.filter.messageFilter = "/num/1/push" + node.filter.port + "/";                         // /num/1/push1/
            }
            else if (node.inputType == AiGlobals.FloatConditionType.cleanOsc)
            {
                //Debug.Log("cleanOSC selected");
                node.filter.messageFilter = "/num/clean__project_1__button_" + node.filter.port + "/";                         // /num/clean__project_1__button_1/
            }
            else if (node.inputType == AiGlobals.FloatConditionType.any)
            {
                // leave the message filter alone
            }
            serializedObject.ApplyModifiedProperties();
            serializedObject.Update();

            //EditorGUI.indentLevel--;
            //}

            //if (expandLastSignal = EditorGUILayout.Foldout(expandLastSignal, "Last Signal", DelftStyles.foldoutNoHighlight)) {
            EditorGUI.indentLevel++;
            //if (node.signal.isValid) EditorGUILayout.SelectableLabel(node.signal.device + ":" + node.signal.oscMessage + " " + node.signal.value.ToString());
            if (node.signal.isValid)
            {
                EditorGUILayout.SelectableLabel(node.signal.oscMessage + " " + node.signal.value.ToString());
            }
            else
            {
                EditorGUILayout.LabelField("no matching float data yet");
            }
            EditorGUI.indentLevel--;
            //}

            // Input value
            EditorGUI.BeginChangeCheck();
            float val = node.value;

            val = EditorGUILayout.Slider(val, 0f, 1023f);
            NodeEditorGUILayout.AddPortField(node.GetOutputPort("valueOut"));
            if (EditorGUI.EndChangeCheck())
            {
                node.value = val;
            }

            EditorGUILayout.LabelField("Triggers", EditorStyles.boldLabel);
            NodeEditorGUILayout.InstancePortList("conditions", typeof(StateNodeBase.Empty), serializedObject, XNode.NodePort.IO.Output, XNode.Node.ConnectionType.Multiple);

            DrawFooterGUI();
        }
Ejemplo n.º 6
0
 private void DrawExecutionPorts()
 {
     NodeEditorGUILayout.PortField(new GUIContent("On Activate"), target.GetOutputPort("ExecuteOnEnter"), GUILayout.MinWidth(0));
     NodeEditorGUILayout.InstancePortList("ButtonExecutions", typeof(ExecutionBranch), serializedObject, NodePort.IO.Output, Node.ConnectionType.Multiple);
     NodeEditorGUILayout.InstancePortList("Branches", typeof(ChoiceBranch), serializedObject, NodePort.IO.Output, Node.ConnectionType.Override, Node.TypeConstraint.Strict);
 }
        // private bool expandLastSignal = false;

        public override void OnBodyGUI()
        {
            GUI.color = Color.white;
            NodeEditorGUILayout.PortField(target.GetInputPort("enter"));

            // show the contents of the filter
            SerializedProperty filterProperty    = serializedObject.FindProperty("filter");
            SerializedProperty inputTypeProperty = serializedObject.FindProperty("inputType");
            // Get port
            NodePort port = node.GetInputPort("value");

            EditorGUI.BeginChangeCheck();
            // SerializedProperty filterProperty = serializedObject.FindProperty("filter");
            // SerializedProperty inputTypeProperty = serializedObject.FindProperty("inputType");
            GUIContent filterContent = new GUIContent("Incoming signal filter", filterProperty.tooltip);

            // if (filterProperty.isExpanded = EditorGUILayout.Foldout(filterProperty.isExpanded, filterContent, DelftStyles.foldoutNoHighlight)) {
            //  EditorGUI.indentLevel++;
            EditorGUI.BeginChangeCheck();
            NodeEditorGUILayout.PropertyField(filterProperty, GUIContent.none);
            NodeEditorGUILayout.PropertyField(inputTypeProperty, GUIContent.none);
            //NodeEditorGUILayout.PropertyField(inputTypeProperty, GUIContent.none);
            if (EditorGUI.EndChangeCheck())
            {
                serializedObject.ApplyModifiedProperties();
                serializedObject.Update();
            }
            //EditorGUI.indentLevel--;
            //}
            if (node.inputType == AiGlobals.StrConditionType.keydown)
            {
                //Debug.Log("keydown selected");
                node.filter.messageFilter = "/str/keydown/";
            }
            else if (node.inputType == AiGlobals.StrConditionType.speech2text)
            {
                //Debug.Log("speech2text selected");
                node.filter.messageFilter = "/str/speech2text/";
            }
            else if (node.inputType == AiGlobals.StrConditionType.recognize)
            {
                //Debug.Log("recognize selected");
                node.filter.messageFilter = "/str/recognize/";
            }

            serializedObject.ApplyModifiedProperties();
            serializedObject.Update();

            //if (expandLastSignal = EditorGUILayout.Foldout(expandLastSignal, "Last Signal", DelftStyles.foldoutNoHighlight)) {
            //EditorGUI.indentLevel++;
            if (node.signal.isValid)
            {
                EditorGUILayout.SelectableLabel(node.signal.device + ":" + node.signal.oscMessage + " " + node.signal.value.ToString());
            }
            else
            {
                EditorGUILayout.LabelField("no matching string data yet");
            }
            //EditorGUI.indentLevel--;
            //}

            // Input value
            EditorGUI.BeginChangeCheck();
            string val = node.value;

            val = EditorGUILayout.TextField(val);
            NodeEditorGUILayout.AddPortField(node.GetOutputPort("valueOut"));
            if (EditorGUI.EndChangeCheck())
            {
                node.value = val;
            }

            EditorGUILayout.LabelField("Triggers", EditorStyles.boldLabel);
            NodeEditorGUILayout.InstancePortList("conditions", typeof(StateNodeBase.Empty), serializedObject, XNode.NodePort.IO.Output, XNode.Node.ConnectionType.Multiple);

            DrawFooterGUI();
        }