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(); }
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); }
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); }
public void DeleteUIHint() { if (uiHint != null) { uiHint.DestroySelf(); uiHint = null; } }
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)); }
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)); }
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); }
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)); } } } }
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 }
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); }
public UIHintAttribute(UIHint hint) { this.hint = hint; }
public static Type GetUIHintVariableType(UIHint hint) { return(SkillVariable.GetVariableType(hint)); }
public void SetHint(UIHint hint) { this.hint = hint; }
public static string FsmVariablePopup(GameObject gameObject, string fsmName, UIHint hint) { return(string.Empty); }
public static bool HasUIHint(FieldInfo field, UIHint uiHintValue) { return(CustomAttributeHelpers.HasUIHint(field.GetCustomAttributes(true), uiHintValue)); }
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); }
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)); }