Exemplo n.º 1
0
    private static void DoVariablesMenu(GameObject go, string fsmName, UIHint hint)
    {
        GenericMenu genericMenu = new GenericMenu();

        using (List <Skill> .Enumerator enumerator = SkillEditor.FsmList.GetEnumerator())
        {
            while (enumerator.MoveNext())
            {
                Skill current = enumerator.get_Current();
                if (current.get_GameObject() == go && current.get_Name() == fsmName)
                {
                    NamedVariable[] names = current.get_Variables().GetNames(SkillVariable.GetVariableType(hint));
                    NamedVariable[] array = names;
                    for (int i = 0; i < array.Length; i++)
                    {
                        NamedVariable namedVariable = array[i];
                        genericMenu.AddItem(new GUIContent(namedVariable.get_Name()), false, new GenericMenu.MenuFunction2(StringEditor.SetStringValue), namedVariable.get_Name());
                    }
                }
            }
        }
        if (genericMenu.GetItemCount() == 0)
        {
            genericMenu.AddDisabledItem(new GUIContent(Strings.get_Label_None()));
        }
        genericMenu.ShowAsContext();
    }
Exemplo n.º 2
0
        bool IsMatch(UIHint uiHint, UIHintDefinition definition)
        {
            if (definition.Parameters.Count != uiHint.Parameters.Count)
            {
                return(false);
            }

            for (var i = 0; i < definition.Parameters.Count; i++)
            {
                var parameter           = uiHint.Parameters[i];
                var parameterDefinition = definition.Parameters[i];

                if (parameterDefinition.Type == UIHintParameterType.Any)
                {
                    continue;
                }

                if (parameterDefinition.Type != parameter.Type)
                {
                    return(false);
                }
            }

            return(true);
        }
Exemplo n.º 3
0
        public bool IsMatch(UIHint uiHint, UIHintDefinition definition)
        {
            var minParameters = definition.Parameters.Where(p => !p.Optional).Count();
            var maxParameters = definition.Parameters.Count();

            if (uiHint.Parameters.Count < minParameters)
            {
                return(false);
            }

            if (uiHint.Parameters.Count > maxParameters)
            {
                return(false);
            }

            for (var i = 0; i < uiHint.Parameters.Count; i++)
            {
                var parameter           = uiHint.Parameters[i];
                var parameterDefinition = definition.Parameters[i];

                if (parameterDefinition.Type == UIHintParameterType.Any)
                {
                    continue;
                }

                if (parameterDefinition.Type != parameter.Type)
                {
                    return(false);
                }
            }

            return(true);
        }
Exemplo n.º 4
0
 public void DeleteUIHint()
 {
     if (uiHint != null)
     {
         uiHint.DestroySelf();
         uiHint = null;
     }
 }
Exemplo n.º 5
0
 public static void VariablesPopup(GameObject go, string fsmName, UIHint hint, SkillString variable)
 {
     if (SkillEditorGUILayout.BrowseButton(go != null, Strings.get_Tooltip_Browse_variables_in_FSM()))
     {
         StringEditor.editingVariable = variable;
         StringEditor.DoVariablesMenu(go, fsmName, hint);
     }
 }
        public UIHintControlMatch Create(UIHint uiHint, UIHintControlMapping mapping)
        {
            var definition = mapping.UIHintDefinition;
            var parameters = new Dictionary <string, object>();

            for (var i = 0; i < uiHint.Parameters.Count; i++)
            {
                parameters[definition.Parameters[i].Id] = uiHint.Parameters[i].Value;
            }

            return(new UIHintControlMatch(mapping.ControlId, uiHint.Id, parameters));
        }
Exemplo n.º 7
0
        public UIHintControlMatch GetFor(UIHint uiHint)
        {
            var mapping = UIHintControlMappingProvider
                          .GetFor(uiHint.Id)
                          .Where(m => UIHintControlMatchEvaluator.IsMatch(uiHint, m.UIHintDefinition))
                          .FirstOrDefault();

            if (mapping == null)
            {
                return(null);
            }

            return(ControlReferenceCreator.Create(uiHint, mapping));
        }
Exemplo n.º 8
0
        public ControlReference GetFor(UIHint uiHint)
        {
            if (!Mappings.ContainsKey(uiHint.Id))
            {
                return(null);
            }

            var mapping = Mappings[uiHint.Id].Where(m => IsMatch(uiHint, m.UIHintDefinition)).FirstOrDefault();

            if (mapping != null)
            {
                return(ControlReferenceCreator.Create(uiHint, mapping));
            }

            return(null);
        }
Exemplo n.º 9
0
        private static void FindUIHintParameters(Type actionType, FieldInfo field)
        {
            IEnumerable <UIHintAttribute> attributes = CustomAttributeHelpers.GetAttributes <UIHintAttribute>(field);

            using (IEnumerator <UIHintAttribute> enumerator = attributes.GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    UIHintAttribute current = enumerator.get_Current();
                    UIHint          hint    = current.get_Hint();
                    UIHint          uIHint  = hint;
                    if (uIHint == 6)
                    {
                        ActionTargets.AddActionTarget(actionType, new ActionTarget(typeof(AnimationClip), field.get_Name(), false));
                    }
                }
            }
        }
Exemplo n.º 10
0
    public void CreateUIHint(Transform playerTransform, Transform interactableTransform)
    {
        GameObject uiObj = new GameObject();

        uiObj.AddComponent <Billboard>();
        Image uiImage = uiObj.AddComponent <Image>();

        uiImage.rectTransform.sizeDelta = new Vector2(0.6f, 0.6f);

        //if the interactable is a player
        if (interactableTransform.GetComponent <PlayerController>() != null)
        {
            uiImage.sprite = playerPickupSprite;
        }
        else
        if (playerTransform.GetComponent <PlayerController>().playerID < Input.GetJoystickNames().Length)
        {
            //figure out which sprite image to use
            uiImage.sprite = spriteToUse;
        }
        else
        {
            uiImage.sprite = keyboardSpriteToUse;
        }

        uiImage.material = materialToUse;

        UIHint uiHint = uiObj.AddComponent <UIHint>();

        uiHint.playerTransform  = playerTransform;
        uiHint.transformToTrack = interactableTransform;

        //set UIhint as interactables uihint
        interactableTransform.GetComponent <Interactable>().uiHint = uiHint;

        uiObj.name = "UIHint";
        uiObj.transform.position = interactableTransform.position;
        uiObj.GetComponent <RectTransform>().SetParent(canvas.transform); //Assign the newly created Image GameObject as a Child of the Parent Panel.
        uiObj.SetActive(true);                                            //Activate the GameObject
    }
Exemplo n.º 11
0
 public static SkillInt FsmIntField(GUIContent label, Skill fsm, SkillInt fsmInt, object[] attributes)
 {
     EditorGUILayout.BeginHorizontal(new GUILayoutOption[0]);
     if (fsmInt.get_UseVariable())
     {
         fsmInt = VariableEditor.DoFsmIntPopup(label, fsm, fsmInt);
     }
     else
     {
         UIHint uIHint  = CustomAttributeHelpers.GetUIHint(attributes);
         UIHint uIHint2 = uIHint;
         if (uIHint2 == 8)
         {
             fsmInt.set_Value(EditorGUILayout.LayerField(label, Convert.ToInt32(fsmInt.get_Value(), CultureInfo.get_CurrentCulture()), new GUILayoutOption[0]));
         }
         else
         {
             fsmInt.set_Value(EditorGUILayout.IntField(label, fsmInt.get_Value(), new GUILayoutOption[0]));
         }
     }
     fsmInt = (SkillInt)VariableEditor.VariableToggle(fsmInt, label.get_text());
     VariableEditor.EndVariableEditor(fsmInt);
     return(fsmInt);
 }
Exemplo n.º 12
0
 public UIHintAttribute(UIHint hint)
 {
     this.hint = hint;
 }
Exemplo n.º 13
0
 public static Type GetUIHintVariableType(UIHint hint)
 {
     return(SkillVariable.GetVariableType(hint));
 }
Exemplo n.º 14
0
 public void SetHint(UIHint hint)
 {
     this.hint = hint;
 }
 public static string FsmVariablePopup(GameObject gameObject, string fsmName, UIHint hint)
 {
     return(string.Empty);
 }
Exemplo n.º 16
0
 public static bool HasUIHint(FieldInfo field, UIHint uiHintValue)
 {
     return(CustomAttributeHelpers.HasUIHint(field.GetCustomAttributes(true), uiHintValue));
 }
Exemplo n.º 17
0
        public static SkillString FsmStringField(GUIContent label, Skill fsm, SkillString fsmString, object[] attributes)
        {
            if (fsmString.get_UseVariable())
            {
                EditorGUILayout.BeginHorizontal(new GUILayoutOption[0]);
                fsmString = VariableEditor.DoFsmStringPopup(label, fsm, fsmString);
            }
            else
            {
                if (fsmString.get_Value() == null)
                {
                    fsmString.set_Value(string.Empty);
                }
                EditorGUILayout.BeginHorizontal(new GUILayoutOption[0]);
                UIHint uIHint = CustomAttributeHelpers.GetUIHint(attributes);
                switch (uIHint)
                {
                case 1:
                {
                    GUILayout.BeginVertical(new GUILayoutOption[0]);
                    GUILayout.Label(label, new GUILayoutOption[0]);
                    Rect rect = GUILayoutUtility.GetRect(SkillEditorContent.TempContent(fsmString.get_Value(), ""), SkillEditorStyles.TextArea, new GUILayoutOption[]
                        {
                            GUILayout.MinHeight(44f)
                        });
                    rect.set_width(340f);
                    fsmString.set_Value(EditorGUI.TextArea(rect, fsmString.get_Value()));
                    GUILayout.EndVertical();
                    goto IL_363;
                }

                case 2:
                    fsmString.set_Value(ActionEditor.EditComponentName(label, fsmString.get_Value(), typeof(Behaviour)));
                    goto IL_363;

                case 3:
                    fsmString.set_Value(ActionEditor.EditComponentName(label, fsmString.get_Value(), typeof(MonoBehaviour)));
                    ActionEditor.TrySetBehaviourContext(fsmString.get_Value());
                    goto IL_363;

                case 4:
                    fsmString.set_Value(ActionEditor.EditMethodName(label, fsmString.get_Value(), false));
                    goto IL_363;

                case 6:
                    fsmString.set_Value(EditorGUILayout.TextField(label, fsmString.get_Value(), new GUILayoutOption[0]));
                    ActionEditor.AnimationNamePopup(fsmString);
                    goto IL_363;

                case 7:
                    fsmString.set_Value(EditorGUILayout.TagField(label, fsmString.get_Value(), new GUILayoutOption[0]));
                    goto IL_363;

                case 8:
                    StringEditor.LayerNamePopup(label, fsmString, null, null);
                    goto IL_363;

                case 11:
                {
                    fsmString.set_Value(EditorGUILayout.TextField(label, fsmString.get_Value(), new GUILayoutOption[0]));
                    EditorGUI.BeginChangeCheck();
                    string text = SkillEditorGUILayout.ScriptListPopup();
                    if (EditorGUI.EndChangeCheck() && text != "")
                    {
                        fsmString.set_Value(text);
                        goto IL_363;
                    }
                    goto IL_363;
                }

                case 15:
                    fsmString.set_Value(EditorGUILayout.TextField(label, fsmString.get_Value(), new GUILayoutOption[0]));
                    ActionEditor.FsmNamePopup(fsmString);
                    goto IL_363;

                case 16:
                    fsmString.set_Value(ActionEditor.EditFsmEvent(label, fsmString.get_Value()));
                    goto IL_363;

                case 17:
                case 18:
                case 19:
                case 20:
                case 21:
                case 22:
                case 23:
                case 24:
                case 25:
                case 26:
                case 27:
                case 28:
                case 29:
                case 30:
                case 31:
                    fsmString.set_Value(EditorGUILayout.TextField(label, fsmString.get_Value(), new GUILayoutOption[0]));
                    ActionEditor.VariablePopup(fsmString, uIHint);
                    goto IL_363;

                case 32:
                    fsmString.set_Value(EditorGUILayout.TextField(label, fsmString.get_Value(), new GUILayoutOption[0]));
                    ActionEditor.AnimatorFloatPopup(fsmString);
                    goto IL_363;

                case 33:
                    fsmString.set_Value(EditorGUILayout.TextField(label, fsmString.get_Value(), new GUILayoutOption[0]));
                    ActionEditor.AnimatorBoolPopup(fsmString);
                    goto IL_363;

                case 34:
                    fsmString.set_Value(EditorGUILayout.TextField(label, fsmString.get_Value(), new GUILayoutOption[0]));
                    ActionEditor.AnimatorIntPopup(fsmString);
                    goto IL_363;

                case 35:
                    fsmString.set_Value(EditorGUILayout.TextField(label, fsmString.get_Value(), new GUILayoutOption[0]));
                    ActionEditor.AnimatorTriggerPopup(fsmString);
                    goto IL_363;

                case 36:
                    StringEditor.SortingLayerNamePopup(label, fsmString, null, null);
                    goto IL_363;
                }
                fsmString.set_Value(EditorGUILayout.TextField(label, fsmString.get_Value(), new GUILayoutOption[0]));
            }
IL_363:
            fsmString = (SkillString)VariableEditor.VariableToggle(fsmString, label.get_text());
            VariableEditor.EndVariableEditor(fsmString);
            return(fsmString);
        }
Exemplo n.º 18
0
        public static bool HasUIHint(object[] attributes, UIHint uiHintValue)
        {
            IEnumerable <UIHintAttribute> attributes2 = CustomAttributeHelpers.GetAttributes <UIHintAttribute>(attributes);

            return(Enumerable.Any <UIHintAttribute>(attributes2, (UIHintAttribute uiHint) => uiHint.get_Hint() == uiHintValue));
        }