add left/right controls to inv ui

This commit is contained in:
Rowan 2025-06-12 17:25:20 -04:00
parent 32be032c4a
commit c56b89db84
4 changed files with 33 additions and 13 deletions

View file

@ -16,7 +16,7 @@ anchor_bottom = 1.0
grow_horizontal = 2 grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
script = ExtResource("1_qw0r6") script = ExtResource("1_qw0r6")
action = "inventory" action_name = &"inventory"
[node name="ColorRect" type="ColorRect" parent="."] [node name="ColorRect" type="ColorRect" parent="."]
layout_mode = 1 layout_mode = 1

View file

@ -4,13 +4,12 @@ signal pressed(toggle_state: bool)
signal released(toggle_state: bool) signal released(toggle_state: bool)
@export var toggle_state: bool @export var toggle_state: bool
@export var action_name: StringName
@export var action: String
func _input(event: InputEvent) -> void: func _input(event: InputEvent) -> void:
if event.is_action_pressed(action): if event.is_action_pressed(action_name):
self.toggle_state = !toggle_state self.toggle_state = !toggle_state
pressed.emit(toggle_state) pressed.emit(toggle_state)
if event.is_action_released(action): if event.is_action_released(action_name):
released.emit(toggle_state) released.emit(toggle_state)

View file

@ -5,3 +5,9 @@ class_name InventoryUI extends VBoxContainer
func _ready() -> void: func _ready() -> void:
item_list.add_items(inventory.items) item_list.add_items(inventory.items)
func _input(event: InputEvent) -> void:
if event.is_action_pressed(PlayerInput.UIAction.Right):
item_list.move_right()
elif event.is_action_pressed(PlayerInput.UIAction.Left):
item_list.move_left()

View file

@ -6,12 +6,27 @@ enum Device {
Gamepad Gamepad
} }
class Action: class GameAction:
static var Run = 'run' static var Run = 'run'
static var Interact = 'interact' static var Interact = 'interact'
static var Ready = 'ready' static var Ready = 'ready'
static var Fire = 'fire' static var Fire = 'fire'
class UIAction:
static var Accept = 'ui_accept'
static var Select = 'ui_select'
static var Cancel = 'ui_cancel'
static var FocusNext = 'ui_focus_next'
static var FocusPrev = 'ui_focus_prev'
static var Left = 'ui_left'
static var Right = 'ui_right'
static var Up = 'ui_up'
static var Down = 'ui_down'
static var PageUp = 'ui_page_up'
static var PageDown = 'ui_page_down'
static var Home = 'ui_home'
static var End = 'ui_end'
signal walk signal walk
signal run signal run
signal interact signal interact
@ -82,7 +97,7 @@ var _analog_dir: Vector2:
).normalized() ).normalized()
func _process(_delta: float) -> void: func _process(_delta: float) -> void:
is_running = Input.is_action_pressed(Action.Run) is_running = Input.is_action_pressed(GameAction.Run)
func _get_device(event: InputEvent) -> Device: func _get_device(event: InputEvent) -> Device:
if event is InputEventMouse or event is InputEventKey: if event is InputEventMouse or event is InputEventKey:
@ -95,22 +110,22 @@ func _get_device(event: InputEvent) -> Device:
func _input(event: InputEvent) -> void: func _input(event: InputEvent) -> void:
last_known_device = _get_device(event) last_known_device = _get_device(event)
if event.is_action_pressed(Action.Interact): if event.is_action_pressed(GameAction.Interact):
is_interacting = true is_interacting = true
if event.is_action_released(Action.Interact): if event.is_action_released(GameAction.Interact):
is_interacting = false is_interacting = false
if event.is_action_pressed(Action.Ready): if event.is_action_pressed(GameAction.Ready):
is_weapon_ready = true is_weapon_ready = true
if event.is_action_released(Action.Ready): if event.is_action_released(GameAction.Ready):
is_weapon_ready = false is_weapon_ready = false
if event.is_action_pressed(Action.Fire): if event.is_action_pressed(GameAction.Fire):
is_firing = true is_firing = true
if event.is_action_released(Action.Fire): if event.is_action_released(GameAction.Fire):
is_firing = false is_firing = false
func next_velocity(speed: float, dir: Vector2 = movement_dir) -> Vector3: func next_velocity(speed: float, dir: Vector2 = movement_dir) -> Vector3: