gd: added input addon
This commit is contained in:
69
addons/guide/ui/renderers/joy/joy_renderer.gd
Normal file
69
addons/guide/ui/renderers/joy/joy_renderer.gd
Normal file
@ -0,0 +1,69 @@
|
||||
@tool
|
||||
extends GUIDEIconRenderer
|
||||
|
||||
@onready var _stick:Control = %Stick
|
||||
@onready var _button:Control = %Button
|
||||
@onready var _text:Control = %Text
|
||||
@onready var _directions:Control = %Directions
|
||||
@onready var _horizontal:Control = %Horizontal
|
||||
@onready var _vertical:Control = %Vertical
|
||||
|
||||
|
||||
|
||||
func supports(input:GUIDEInput) -> bool:
|
||||
return input is GUIDEInputJoyBase
|
||||
|
||||
func render(input:GUIDEInput) -> void:
|
||||
_stick.visible = false
|
||||
_button.visible = false
|
||||
_directions.visible = false
|
||||
_horizontal.visible = false
|
||||
_vertical.visible = false
|
||||
_text.text = ""
|
||||
|
||||
|
||||
if input is GUIDEInputJoyAxis1D:
|
||||
_stick.visible = true
|
||||
match input.axis:
|
||||
JOY_AXIS_LEFT_X:
|
||||
_directions.visible = true
|
||||
_text.text = "1"
|
||||
_horizontal.visible = true
|
||||
JOY_AXIS_RIGHT_X:
|
||||
_directions.visible = true
|
||||
_text.text = "2"
|
||||
_horizontal.visible = true
|
||||
JOY_AXIS_LEFT_Y:
|
||||
_directions.visible = true
|
||||
_text.text = "1"
|
||||
_vertical.visible = true
|
||||
JOY_AXIS_RIGHT_Y:
|
||||
_directions.visible = true
|
||||
_text.text = "2"
|
||||
_vertical.visible = true
|
||||
JOY_AXIS_TRIGGER_LEFT:
|
||||
_text.text = "3"
|
||||
JOY_AXIS_TRIGGER_RIGHT:
|
||||
_text.text = "4"
|
||||
|
||||
|
||||
|
||||
if input is GUIDEInputJoyAxis2D:
|
||||
_stick.visible = true
|
||||
match input.x:
|
||||
JOY_AXIS_LEFT_X, JOY_AXIS_LEFT_Y:
|
||||
_text.text = "1"
|
||||
JOY_AXIS_RIGHT_X, JOY_AXIS_RIGHT_Y:
|
||||
_text.text = "2"
|
||||
_:
|
||||
# well we don't know really what this is but what can we do.
|
||||
_text.text = str(input.x + input.y)
|
||||
|
||||
if input is GUIDEInputJoyButton:
|
||||
_button.visible = true
|
||||
_text.text = str(input.button)
|
||||
|
||||
call("queue_sort")
|
||||
|
||||
func cache_key(input:GUIDEInput) -> String:
|
||||
return "a9ced629-de65-4c31-9de0-8e4cbf88a2e0" + input.to_string()
|
Reference in New Issue
Block a user