interaction wheel

cancel interaction wheel
This commit is contained in:
2024-02-28 07:12:09 -06:00
parent f87b1cfa9a
commit 50093e5937
9 changed files with 188 additions and 5 deletions

View File

@@ -5,16 +5,21 @@ class_name Player
var last_direction = 0
var interaction_location: Vector2i
var _interaction_options: InteractionWheel
@onready var animation_player: AnimationPlayer = $AnimationPlayer
@onready var interaction_timer: Timer = $InteractionTimer
const INTERACTION_WHEEL = preload("res://scene/interaction_wheel.tscn")
func _physics_process(delta: float) -> void:
var input_direction := Input.get_vector("ui_left", "ui_right", "ui_up", "ui_down")
var input_direction := Input.get_vector("move_left", "move_right", "move_up", "move_down")
velocity = input_direction * SPEED / delta
move_and_slide()
if input_direction:
if _interaction_options:
_interaction_options.queue_free()
_interaction_options = null
animation_player.current_animation = "walk"
animation_player.play()
last_direction = input_direction.angle() + 3 * PI / 2
@@ -25,9 +30,12 @@ func _physics_process(delta: float) -> void:
animation_player.stop()
func _input(event: InputEvent) -> void:
if event.is_action_pressed("ui_accept"):
Grid.get_location_data(interaction_location).interact(interaction_timer)
print("interaction started")
if event.is_action_pressed("select") and not _interaction_options:
var interactions: Array[Interaction] = Grid.get_location_data(interaction_location).get_interaction_options()
if interactions.size() > 0:
_interaction_options = INTERACTION_WHEEL.instantiate()
_interaction_options.initialize(interaction_location, interactions)
add_sibling(_interaction_options)
func _finished_interaction(results: Dictionary) -> void:
print("interaction finished: %s" % results)