diff --git a/Assets/Scripts/UI/InputScreen.meta b/Assets/Scripts/UI/InputScreen.meta new file mode 100644 index 000000000..bd8b0124f --- /dev/null +++ b/Assets/Scripts/UI/InputScreen.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4b1077ef2851dc14aaec3d07549939e2 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/InputDisplayButton.cs b/Assets/Scripts/UI/InputScreen/InputDisplayButton.cs similarity index 100% rename from Assets/InputDisplayButton.cs rename to Assets/Scripts/UI/InputScreen/InputDisplayButton.cs diff --git a/Assets/InputDisplayButton.cs.meta b/Assets/Scripts/UI/InputScreen/InputDisplayButton.cs.meta similarity index 100% rename from Assets/InputDisplayButton.cs.meta rename to Assets/Scripts/UI/InputScreen/InputDisplayButton.cs.meta diff --git a/Assets/InputDisplayKey.cs b/Assets/Scripts/UI/InputScreen/InputDisplayKey.cs similarity index 100% rename from Assets/InputDisplayKey.cs rename to Assets/Scripts/UI/InputScreen/InputDisplayKey.cs diff --git a/Assets/InputDisplayKey.cs.meta b/Assets/Scripts/UI/InputScreen/InputDisplayKey.cs.meta similarity index 100% rename from Assets/InputDisplayKey.cs.meta rename to Assets/Scripts/UI/InputScreen/InputDisplayKey.cs.meta diff --git a/Assets/InputDisplayLabel.cs b/Assets/Scripts/UI/InputScreen/InputDisplayLabel.cs similarity index 100% rename from Assets/InputDisplayLabel.cs rename to Assets/Scripts/UI/InputScreen/InputDisplayLabel.cs diff --git a/Assets/InputDisplayLabel.cs.meta b/Assets/Scripts/UI/InputScreen/InputDisplayLabel.cs.meta similarity index 100% rename from Assets/InputDisplayLabel.cs.meta rename to Assets/Scripts/UI/InputScreen/InputDisplayLabel.cs.meta diff --git a/Assets/InputDisplayLayout.cs b/Assets/Scripts/UI/InputScreen/InputDisplayLayout.cs similarity index 94% rename from Assets/InputDisplayLayout.cs rename to Assets/Scripts/UI/InputScreen/InputDisplayLayout.cs index 460584ddc..3b7bf03e9 100644 --- a/Assets/InputDisplayLayout.cs +++ b/Assets/Scripts/UI/InputScreen/InputDisplayLayout.cs @@ -67,6 +67,8 @@ public class InputDisplayLayout : MonoBehaviour private class ActionMapping { + public string Name; + public InputBinding Binding; public InputAction Action; public InputDisplayLabel Label; public float Hue; @@ -110,6 +112,8 @@ public class InputDisplayLayout : MonoBehaviour } else { + _dragAction.Binding.overridePath = _previewButton.Button.InputSystemPath; + _dragAction.Action.ApplyBindingOverride(_dragAction.Binding); // TODO: Assign New Binding } @@ -234,6 +238,8 @@ public class InputDisplayLayout : MonoBehaviour var input = new AetheriaInput(); ProcessActions(input.asset); + input.Enable(); + input.Global.Interact.performed += context => Debug.Log($"Interact Performed! Time = {((int) (Time.time * 1000)).ToString()}ms"); foreach (var actionMapping in _actionMappings) { @@ -275,22 +281,27 @@ public class InputDisplayLayout : MonoBehaviour private void ProcessActions(InputActionAsset input) { - var nonUIActions = input.Where(a => a.actionMap.name != "UI").ToArray(); - for (var i = 0; i < nonUIActions.Length; i++) + var bindableActions = input.Where(a => a.actionMap.name != "UI" && (a.type==InputActionType.Button || a.bindings.Any(b=>b.isComposite))).ToArray(); + for (var i = 0; i < bindableActions.Length; i++) { - var action = nonUIActions[i]; - var actionMapping = new ActionMapping - { - Action = action, - Hue = action.actionMap.name == "Global" - ? GlobalHue - : frac(GlobalHue + GlobalHueRange + (float) i / (nonUIActions.Length - 1) * (1 - GlobalHueRange * 2)) - }; - _actionMappings.Add(actionMapping); + var action = bindableActions[i]; foreach (var binding in action.bindings) { if (_bindButtons.ContainsKey(binding.path)) { + var name = action.name.Replace(' ', '\n'); + if (binding.isPartOfComposite) name = $"{name} {binding.name}"; + var actionMapping = new ActionMapping + { + Name = name, + Binding = binding, + Action = action, + Hue = action.actionMap.name == "Global" + ? GlobalHue + : frac(GlobalHue + GlobalHueRange + (float) i / (bindableActions.Length - 1) * (1 - GlobalHueRange * 2)) + }; + _actionMappings.Add(actionMapping); + var buttonMapping = _bindButtons[binding.path]; buttonMapping.ActionMapping = actionMapping; AssignColor(buttonMapping); @@ -344,7 +355,7 @@ public class InputDisplayLayout : MonoBehaviour var label = LabelPrototype.Instantiate(); label.Label.color = Color.HSVToRGB(actionMapping.Hue, Saturation, 1); actionMapping.Label = label; - label.Label.text = actionMapping.Action.name.Replace(' ', '\n'); + label.Label.text = actionMapping.Name; return label; } diff --git a/Assets/InputDisplayLayout.cs.meta b/Assets/Scripts/UI/InputScreen/InputDisplayLayout.cs.meta similarity index 100% rename from Assets/InputDisplayLayout.cs.meta rename to Assets/Scripts/UI/InputScreen/InputDisplayLayout.cs.meta diff --git a/Assets/InputDisplayRow.cs b/Assets/Scripts/UI/InputScreen/InputDisplayRow.cs similarity index 100% rename from Assets/InputDisplayRow.cs rename to Assets/Scripts/UI/InputScreen/InputDisplayRow.cs diff --git a/Assets/InputDisplayRow.cs.meta b/Assets/Scripts/UI/InputScreen/InputDisplayRow.cs.meta similarity index 100% rename from Assets/InputDisplayRow.cs.meta rename to Assets/Scripts/UI/InputScreen/InputDisplayRow.cs.meta diff --git a/Assets/InputLayout.cs b/Assets/Scripts/UI/InputScreen/InputLayout.cs similarity index 100% rename from Assets/InputLayout.cs rename to Assets/Scripts/UI/InputScreen/InputLayout.cs diff --git a/Assets/InputLayout.cs.meta b/Assets/Scripts/UI/InputScreen/InputLayout.cs.meta similarity index 100% rename from Assets/InputLayout.cs.meta rename to Assets/Scripts/UI/InputScreen/InputLayout.cs.meta