interaction wheel
cancel interaction wheel
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user