private void OnDrawNodeElement(Rect rect, int index, bool isActive, bool isFocused)
        {
            if (!(0 <= index && index < m_nodeList.serializedProperty.arraySize))
            {
                return;
            }
            var element              = m_nodeList.serializedProperty.GetArrayElementAtIndex(index);
            var idProperty           = element.FindPropertyRelative("m_id");
            var internalNameProperty = element.FindPropertyRelative("m_internalName");

            UnityEngine.Assertions.Assert.IsNotNull(idProperty, "Quest Machine: Internal error - m_id is null.");
            UnityEngine.Assertions.Assert.IsNotNull(internalNameProperty, "Quest Machine: Internal error - m_internalName is null.");
            if (idProperty == null || internalNameProperty == null)
            {
                return;
            }
            EditorGUI.BeginDisabledGroup(true);
            try
            {
                EditorGUI.TextField(new Rect(rect.x, rect.y, rect.width / 2, EditorGUIUtility.singleLineHeight),
                                    StringFieldDrawer.GetStringFieldValue(idProperty));
                EditorGUI.TextField(new Rect(rect.x + rect.width / 2, rect.y, rect.width / 2, EditorGUIUtility.singleLineHeight),
                                    StringFieldDrawer.GetStringFieldValue(internalNameProperty));
            }
            finally
            {
                EditorGUI.EndDisabledGroup();
            }
        }
        private string GetNodeText(SerializedProperty nodeProperty)
        {
            if (nodeProperty == null)
            {
                return(string.Empty);
            }
            var internalNameProperty = nodeProperty.FindPropertyRelative("m_internalName");

            UnityEngine.Assertions.Assert.IsNotNull(internalNameProperty, "Quest Machine: Internal error - m_internalName property is null.");
            if (internalNameProperty == null)
            {
                return(string.Empty);
            }
            var text = StringFieldDrawer.GetStringFieldValue(internalNameProperty);

            if (string.IsNullOrEmpty(text))
            {
                var idProperty = nodeProperty.FindPropertyRelative("m_id");
                UnityEngine.Assertions.Assert.IsNotNull(idProperty, "Quest Machine: Internal error - m_id property is null.");
                if (idProperty == null)
                {
                    return(string.Empty);
                }
                text = StringFieldDrawer.GetStringFieldValue(idProperty);
            }
            return(text);
        }
        private void DrawQuestTitle()
        {
            var titleProperty = m_questSerializedObject.FindProperty("m_title");

            UnityEngine.Assertions.Assert.IsNotNull(titleProperty, "Quest Machine: Internal error - m_title property is null.");
            if (titleProperty == null)
            {
                return;
            }
            var displayName = StringFieldDrawer.GetStringFieldValue(titleProperty);

            if (string.IsNullOrEmpty(displayName))
            {
                var idProperty = m_questSerializedObject.FindProperty("m_id");
                if (idProperty != null)
                {
                    displayName = StringFieldDrawer.GetStringFieldValue(idProperty);
                }
                if (string.IsNullOrEmpty(displayName))
                {
                    displayName = m_questSerializedObject.targetObject.name;
                }
            }
            if (m_quest.isInstance)
            {
                displayName += " (runtime: " + m_quest.GetState() + ")";
            }
            EditorGUILayout.LabelField(displayName, QuestEditorStyles.questNameGUIStyle);
        }
Example #4
0
        private void OnDrawElement(Rect rect, int index, bool isActive, bool isFocused)
        {
            if (!(0 <= index && index < m_list.serializedProperty.arraySize))
            {
                return;
            }
            var element = m_list.serializedProperty.GetArrayElementAtIndex(index);

            if (element == null)
            {
                return;
            }
            var currentValueProperty = element.FindPropertyRelative("m_currentValue");
            var currentValue         = (currentValueProperty != null) ? currentValueProperty.intValue : 0;

            EditorGUI.LabelField(rect, StringFieldDrawer.GetStringFieldValue(element.FindPropertyRelative("m_name")) + ": " + currentValue);
        }