gd: added input addon

This commit is contained in:
2025-05-27 19:20:46 +02:00
parent d8a1604af9
commit c8d8c7ec25
683 changed files with 21608 additions and 2 deletions

View File

@ -0,0 +1,21 @@
## This example shows how to switch the input scheme on the fly.
extends Node
@export var joystick_scheme:GUIDEMappingContext
@export var keyboard_scheme:GUIDEMappingContext
@export var switch_to_keyboard:GUIDEAction
@export var switch_to_joystick:GUIDEAction
func _ready():
# When we get a command to switch the input scheme, we
# switch.
switch_to_keyboard.triggered.connect(_switch_input_scheme.bind(keyboard_scheme))
switch_to_joystick.triggered.connect(_switch_input_scheme.bind(joystick_scheme))
# And switch now to enable keyboard
_switch_input_scheme(keyboard_scheme)
func _switch_input_scheme(context:GUIDEMappingContext):
GUIDE.enable_mapping_context(context, true)

View File

@ -0,0 +1 @@
uid://fhw2j8umfqty

View File

@ -0,0 +1,60 @@
[gd_scene load_steps=14 format=3 uid="uid://dvbxt8jyo8okp"]
[ext_resource type="Script" path="res://guide_examples/input_scheme_switching/input_scheme_switching.gd" id="1_7l2n1"]
[ext_resource type="Texture2D" uid="uid://byjxtsekdl8t2" path="res://guide_examples/shared/godot_logo.svg" id="1_t4jeg"]
[ext_resource type="Resource" uid="uid://x33fk5wo7l2r" path="res://guide_examples/input_scheme_switching/mapping_contexts/joystick_scheme.tres" id="2_fx1v6"]
[ext_resource type="Resource" uid="uid://2hl7iqpondhi" path="res://guide_examples/input_scheme_switching/mapping_contexts/keyboard_scheme.tres" id="3_pvyn2"]
[ext_resource type="Resource" uid="uid://cxn2ibe1mn3sb" path="res://guide_examples/input_scheme_switching/mapping_contexts/actions/move.tres" id="4_3bnea"]
[ext_resource type="Resource" uid="uid://b11rcmd3hse58" path="res://guide_examples/input_scheme_switching/mapping_contexts/actions/switch_to_keyboard.tres" id="4_tts5j"]
[ext_resource type="Resource" uid="uid://c7htf8h44vbwi" path="res://guide_examples/input_scheme_switching/mapping_contexts/actions/shoot.tres" id="5_4yg1b"]
[ext_resource type="Resource" uid="uid://vctiwgvnl0ba" path="res://guide_examples/input_scheme_switching/mapping_contexts/actions/switch_to_joystick.tres" id="6_b05vw"]
[ext_resource type="Script" path="res://guide_examples/input_scheme_switching/player.gd" id="7_2r4ev"]
[ext_resource type="PackedScene" uid="uid://dkr80d2pi0d41" path="res://addons/guide/debugger/guide_debugger.tscn" id="8_nv6u5"]
[ext_resource type="PackedScene" uid="uid://c36cnvgv2ur60" path="res://guide_examples/shared/fireball/fireball.tscn" id="8_t3npb"]
[ext_resource type="Theme" uid="uid://dot0gi1yoqmrl" path="res://guide_examples/shared/ui_theme.tres" id="10_vp4t3"]
[ext_resource type="Script" path="res://guide_examples/shared/instructions_label.gd" id="11_qdni4"]
[node name="InputSchemeSwitching" type="Node2D"]
script = ExtResource("1_7l2n1")
joystick_scheme = ExtResource("2_fx1v6")
keyboard_scheme = ExtResource("3_pvyn2")
switch_to_keyboard = ExtResource("4_tts5j")
switch_to_joystick = ExtResource("6_b05vw")
[node name="Player" type="Node2D" parent="."]
position = Vector2(929, 695)
script = ExtResource("7_2r4ev")
speed = 300.0
move_action = ExtResource("4_3bnea")
shoot_action = ExtResource("5_4yg1b")
fireball_scene = ExtResource("8_t3npb")
[node name="GodotLogo" type="Sprite2D" parent="Player"]
texture = ExtResource("1_t4jeg")
[node name="UI" type="CanvasLayer" parent="."]
[node name="InstructionsLabel" type="RichTextLabel" parent="UI"]
unique_name_in_owner = true
custom_minimum_size = Vector2(500, 0)
anchors_preset = 1
anchor_left = 1.0
anchor_right = 1.0
offset_left = -552.0
offset_top = 85.0
offset_right = -52.0
offset_bottom = 125.0
grow_horizontal = 0
theme = ExtResource("10_vp4t3")
bbcode_enabled = true
text = "Lorem Ipsum Dolor"
fit_content = true
script = ExtResource("11_qdni4")
instructions_text = "%s to move.
%s to shoot a fireball."
actions = Array[Resource("res://addons/guide/guide_action.gd")]([ExtResource("4_3bnea"), ExtResource("5_4yg1b")])
[node name="Debugger" type="CanvasLayer" parent="."]
[node name="GuideDebugger" parent="Debugger" instance=ExtResource("8_nv6u5")]
theme = ExtResource("10_vp4t3")

View File

@ -0,0 +1,12 @@
[gd_resource type="Resource" script_class="GUIDEAction" load_steps=2 format=3 uid="uid://cxn2ibe1mn3sb"]
[ext_resource type="Script" path="res://addons/guide/guide_action.gd" id="1_anxy1"]
[resource]
script = ExtResource("1_anxy1")
name = &""
action_value_type = 2
emit_as_godot_actions = false
is_remappable = false
display_name = ""
display_category = ""

View File

@ -0,0 +1,12 @@
[gd_resource type="Resource" script_class="GUIDEAction" load_steps=2 format=3 uid="uid://c7htf8h44vbwi"]
[ext_resource type="Script" path="res://addons/guide/guide_action.gd" id="1_bkoj8"]
[resource]
script = ExtResource("1_bkoj8")
name = &""
action_value_type = 0
emit_as_godot_actions = false
is_remappable = false
display_name = ""
display_category = ""

View File

@ -0,0 +1,12 @@
[gd_resource type="Resource" script_class="GUIDEAction" load_steps=2 format=3 uid="uid://vctiwgvnl0ba"]
[ext_resource type="Script" path="res://addons/guide/guide_action.gd" id="1_8q327"]
[resource]
script = ExtResource("1_8q327")
name = &""
action_value_type = 0
emit_as_godot_actions = false
is_remappable = false
display_name = ""
display_category = ""

View File

@ -0,0 +1,13 @@
[gd_resource type="Resource" script_class="GUIDEAction" load_steps=2 format=3 uid="uid://b11rcmd3hse58"]
[ext_resource type="Script" path="res://addons/guide/guide_action.gd" id="1_4oh0y"]
[resource]
script = ExtResource("1_4oh0y")
name = &""
action_value_type = 0
block_lower_priority_actions = true
emit_as_godot_actions = false
is_remappable = false
display_name = ""
display_category = ""

View File

@ -0,0 +1,97 @@
[gd_resource type="Resource" script_class="GUIDEMappingContext" load_steps=23 format=3 uid="uid://x33fk5wo7l2r"]
[ext_resource type="Resource" uid="uid://cxn2ibe1mn3sb" path="res://guide_examples/input_scheme_switching/mapping_contexts/actions/move.tres" id="1_hupae"]
[ext_resource type="Script" path="res://addons/guide/inputs/guide_input_joy_axis_2d.gd" id="2_t6p7a"]
[ext_resource type="Script" path="res://addons/guide/guide_input_mapping.gd" id="3_6jy3p"]
[ext_resource type="Script" path="res://addons/guide/modifiers/guide_modifier_deadzone.gd" id="3_c1g58"]
[ext_resource type="Script" path="res://addons/guide/guide_action_mapping.gd" id="4_ssubt"]
[ext_resource type="Resource" uid="uid://c7htf8h44vbwi" path="res://guide_examples/input_scheme_switching/mapping_contexts/actions/shoot.tres" id="5_pd4bb"]
[ext_resource type="Script" path="res://addons/guide/inputs/guide_input_joy_button.gd" id="6_eieuy"]
[ext_resource type="Script" path="res://addons/guide/triggers/guide_trigger_pressed.gd" id="7_0nn3e"]
[ext_resource type="Resource" uid="uid://b11rcmd3hse58" path="res://guide_examples/input_scheme_switching/mapping_contexts/actions/switch_to_keyboard.tres" id="8_7nlt6"]
[ext_resource type="Script" path="res://addons/guide/inputs/guide_input_any.gd" id="8_hdd7g"]
[ext_resource type="Script" path="res://addons/guide/guide_mapping_context.gd" id="9_1vdw8"]
[sub_resource type="Resource" id="Resource_7qyuq"]
script = ExtResource("2_t6p7a")
x = 0
y = 1
joy_index = -1
[sub_resource type="Resource" id="Resource_8pjab"]
script = ExtResource("3_c1g58")
lower_threshold = 0.2
upper_threshold = 1.0
[sub_resource type="Resource" id="Resource_wxd67"]
script = ExtResource("3_6jy3p")
override_action_settings = false
is_remappable = false
display_name = ""
display_category = ""
input = SubResource("Resource_7qyuq")
modifiers = Array[Resource("res://addons/guide/modifiers/guide_modifier.gd")]([SubResource("Resource_8pjab")])
triggers = Array[Resource("res://addons/guide/triggers/guide_trigger.gd")]([])
[sub_resource type="Resource" id="Resource_lomew"]
script = ExtResource("4_ssubt")
action = ExtResource("1_hupae")
input_mappings = Array[ExtResource("3_6jy3p")]([SubResource("Resource_wxd67")])
metadata/_guide_input_mappings_collapsed = false
[sub_resource type="Resource" id="Resource_guotu"]
script = ExtResource("6_eieuy")
button = 0
joy_index = -1
[sub_resource type="Resource" id="Resource_ws3e0"]
script = ExtResource("7_0nn3e")
actuation_threshold = 0.5
[sub_resource type="Resource" id="Resource_b21ub"]
script = ExtResource("3_6jy3p")
override_action_settings = false
is_remappable = false
display_name = ""
display_category = ""
input = SubResource("Resource_guotu")
modifiers = Array[Resource("res://addons/guide/modifiers/guide_modifier.gd")]([])
triggers = Array[Resource("res://addons/guide/triggers/guide_trigger.gd")]([SubResource("Resource_ws3e0")])
[sub_resource type="Resource" id="Resource_tmt5r"]
script = ExtResource("4_ssubt")
action = ExtResource("5_pd4bb")
input_mappings = Array[ExtResource("3_6jy3p")]([SubResource("Resource_b21ub")])
[sub_resource type="Resource" id="Resource_41j1i"]
script = ExtResource("8_hdd7g")
mouse_buttons = false
mouse_movement = false
minimum_mouse_movement_distance = 1.0
joy_buttons = false
joy_axes = false
minimum_joy_axis_actuation_strength = 0.2
keyboard = true
touch = false
mouse = false
joy = false
[sub_resource type="Resource" id="Resource_ncpby"]
script = ExtResource("3_6jy3p")
override_action_settings = false
is_remappable = false
display_name = ""
display_category = ""
input = SubResource("Resource_41j1i")
modifiers = Array[Resource("res://addons/guide/modifiers/guide_modifier.gd")]([])
triggers = Array[Resource("res://addons/guide/triggers/guide_trigger.gd")]([])
[sub_resource type="Resource" id="Resource_28cwt"]
script = ExtResource("4_ssubt")
action = ExtResource("8_7nlt6")
input_mappings = Array[ExtResource("3_6jy3p")]([SubResource("Resource_ncpby")])
[resource]
script = ExtResource("9_1vdw8")
display_name = ""
mappings = Array[ExtResource("4_ssubt")]([SubResource("Resource_lomew"), SubResource("Resource_tmt5r"), SubResource("Resource_28cwt")])

View File

@ -0,0 +1,175 @@
[gd_resource type="Resource" script_class="GUIDEMappingContext" load_steps=32 format=3 uid="uid://2hl7iqpondhi"]
[ext_resource type="Resource" uid="uid://cxn2ibe1mn3sb" path="res://guide_examples/input_scheme_switching/mapping_contexts/actions/move.tres" id="1_wyjhr"]
[ext_resource type="Script" path="res://addons/guide/inputs/guide_input_key.gd" id="2_10ro5"]
[ext_resource type="Script" path="res://addons/guide/modifiers/guide_modifier_input_swizzle.gd" id="3_uaw8o"]
[ext_resource type="Script" path="res://addons/guide/modifiers/guide_modifier_negate.gd" id="4_hv31f"]
[ext_resource type="Script" path="res://addons/guide/guide_input_mapping.gd" id="5_v5abd"]
[ext_resource type="Script" path="res://addons/guide/guide_action_mapping.gd" id="6_5qe2r"]
[ext_resource type="Resource" uid="uid://c7htf8h44vbwi" path="res://guide_examples/input_scheme_switching/mapping_contexts/actions/shoot.tres" id="7_diyqh"]
[ext_resource type="Script" path="res://addons/guide/triggers/guide_trigger_pressed.gd" id="8_enquy"]
[ext_resource type="Script" path="res://addons/guide/inputs/guide_input_any.gd" id="9_j1ko4"]
[ext_resource type="Resource" uid="uid://vctiwgvnl0ba" path="res://guide_examples/input_scheme_switching/mapping_contexts/actions/switch_to_joystick.tres" id="9_p8ck7"]
[ext_resource type="Script" path="res://addons/guide/guide_mapping_context.gd" id="11_rkw8m"]
[sub_resource type="Resource" id="Resource_ckatg"]
script = ExtResource("2_10ro5")
key = 87
shift = false
control = false
alt = false
meta = false
allow_additional_modifiers = true
[sub_resource type="Resource" id="Resource_8rr5k"]
script = ExtResource("3_uaw8o")
order = 0
[sub_resource type="Resource" id="Resource_4c38v"]
script = ExtResource("4_hv31f")
x = true
y = true
z = true
[sub_resource type="Resource" id="Resource_xot0n"]
script = ExtResource("5_v5abd")
override_action_settings = false
is_remappable = false
display_name = ""
display_category = ""
input = SubResource("Resource_ckatg")
modifiers = Array[Resource("res://addons/guide/modifiers/guide_modifier.gd")]([SubResource("Resource_8rr5k"), SubResource("Resource_4c38v")])
triggers = Array[Resource("res://addons/guide/triggers/guide_trigger.gd")]([])
[sub_resource type="Resource" id="Resource_v2una"]
script = ExtResource("2_10ro5")
key = 65
shift = false
control = false
alt = false
meta = false
allow_additional_modifiers = true
[sub_resource type="Resource" id="Resource_tu604"]
script = ExtResource("4_hv31f")
x = true
y = true
z = true
[sub_resource type="Resource" id="Resource_vh7xg"]
script = ExtResource("5_v5abd")
override_action_settings = false
is_remappable = false
display_name = ""
display_category = ""
input = SubResource("Resource_v2una")
modifiers = Array[Resource("res://addons/guide/modifiers/guide_modifier.gd")]([SubResource("Resource_tu604")])
triggers = Array[Resource("res://addons/guide/triggers/guide_trigger.gd")]([])
[sub_resource type="Resource" id="Resource_sko3c"]
script = ExtResource("2_10ro5")
key = 83
shift = false
control = false
alt = false
meta = false
allow_additional_modifiers = true
[sub_resource type="Resource" id="Resource_x4ewt"]
script = ExtResource("3_uaw8o")
order = 0
[sub_resource type="Resource" id="Resource_1bv7n"]
script = ExtResource("5_v5abd")
override_action_settings = false
is_remappable = false
display_name = ""
display_category = ""
input = SubResource("Resource_sko3c")
modifiers = Array[Resource("res://addons/guide/modifiers/guide_modifier.gd")]([SubResource("Resource_x4ewt")])
triggers = Array[Resource("res://addons/guide/triggers/guide_trigger.gd")]([])
[sub_resource type="Resource" id="Resource_o6q2e"]
script = ExtResource("2_10ro5")
key = 68
shift = false
control = false
alt = false
meta = false
allow_additional_modifiers = true
[sub_resource type="Resource" id="Resource_ggp85"]
script = ExtResource("5_v5abd")
override_action_settings = false
is_remappable = false
display_name = ""
display_category = ""
input = SubResource("Resource_o6q2e")
modifiers = Array[Resource("res://addons/guide/modifiers/guide_modifier.gd")]([])
triggers = Array[Resource("res://addons/guide/triggers/guide_trigger.gd")]([])
[sub_resource type="Resource" id="Resource_lomew"]
script = ExtResource("6_5qe2r")
action = ExtResource("1_wyjhr")
input_mappings = Array[ExtResource("5_v5abd")]([SubResource("Resource_xot0n"), SubResource("Resource_vh7xg"), SubResource("Resource_1bv7n"), SubResource("Resource_ggp85")])
[sub_resource type="Resource" id="Resource_wxbv3"]
script = ExtResource("2_10ro5")
key = 32
shift = false
control = false
alt = false
meta = false
allow_additional_modifiers = true
[sub_resource type="Resource" id="Resource_a515r"]
script = ExtResource("8_enquy")
actuation_threshold = 0.5
[sub_resource type="Resource" id="Resource_u0geb"]
script = ExtResource("5_v5abd")
override_action_settings = false
is_remappable = false
display_name = ""
display_category = ""
input = SubResource("Resource_wxbv3")
modifiers = Array[Resource("res://addons/guide/modifiers/guide_modifier.gd")]([])
triggers = Array[Resource("res://addons/guide/triggers/guide_trigger.gd")]([SubResource("Resource_a515r")])
[sub_resource type="Resource" id="Resource_f8tqv"]
script = ExtResource("6_5qe2r")
action = ExtResource("7_diyqh")
input_mappings = Array[ExtResource("5_v5abd")]([SubResource("Resource_u0geb")])
[sub_resource type="Resource" id="Resource_1wnrb"]
script = ExtResource("9_j1ko4")
mouse_buttons = false
mouse_movement = false
minimum_mouse_movement_distance = 1.0
joy_buttons = true
joy_axes = false
minimum_joy_axis_actuation_strength = 0.2
keyboard = false
touch = false
mouse = false
joy = true
[sub_resource type="Resource" id="Resource_i18os"]
script = ExtResource("5_v5abd")
override_action_settings = false
is_remappable = false
display_name = ""
display_category = ""
input = SubResource("Resource_1wnrb")
modifiers = Array[Resource("res://addons/guide/modifiers/guide_modifier.gd")]([])
triggers = Array[Resource("res://addons/guide/triggers/guide_trigger.gd")]([])
[sub_resource type="Resource" id="Resource_im7a2"]
script = ExtResource("6_5qe2r")
action = ExtResource("9_p8ck7")
input_mappings = Array[ExtResource("5_v5abd")]([SubResource("Resource_i18os")])
[resource]
script = ExtResource("11_rkw8m")
display_name = ""
mappings = Array[ExtResource("6_5qe2r")]([SubResource("Resource_lomew"), SubResource("Resource_f8tqv"), SubResource("Resource_im7a2")])

View File

@ -0,0 +1,27 @@
## Our player. The player has no knowledge about input schemes, it just
## reacts to actions triggering.
extends Node2D
@export var speed:float = 200
@export var move_action:GUIDEAction
@export var shoot_action:GUIDEAction
@export var fireball_scene:PackedScene
func _ready():
shoot_action.triggered.connect(_shoot_fireball)
func _process(delta:float) -> void:
position += move_action.value_axis_2d.normalized() * speed * delta
func _shoot_fireball():
var fireball = fireball_scene.instantiate()
fireball.direction = Vector2.UP
get_parent().add_child(fireball)
fireball.global_transform = global_transform

View File

@ -0,0 +1 @@
uid://csjgtlek7infj