Files
Corupture/scripts/player.gd
Eric f87b1cfa9a Changed resource spawning
added interact functionality
temp added zoom with scroll wheel
2024-02-27 10:22:28 -06:00

42 lines
1.3 KiB
GDScript

extends CharacterBody2D
class_name Player
@export var SPEED := 4
var last_direction = 0
var interaction_location: Vector2i
@onready var animation_player: AnimationPlayer = $AnimationPlayer
@onready var interaction_timer: Timer = $InteractionTimer
func _physics_process(delta: float) -> void:
var input_direction := Input.get_vector("ui_left", "ui_right", "ui_up", "ui_down")
velocity = input_direction * SPEED / delta
move_and_slide()
if input_direction:
animation_player.current_animation = "walk"
animation_player.play()
last_direction = input_direction.angle() + 3 * PI / 2
rotation = last_direction
interaction_location = Grid.world_to_grid(position) + Vector2i(input_direction.round())
Grid.set_selected_tile(interaction_location)
else:
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")
func _finished_interaction(results: Dictionary) -> void:
print("interaction finished: %s" % results)
func _unhandled_input(event):
if event is InputEventMouseButton:
match event.button_index:
MOUSE_BUTTON_WHEEL_DOWN:
$Camera2D.zoom -= Vector2(0.01, 0.01)
MOUSE_BUTTON_WHEEL_UP:
$Camera2D.zoom += Vector2(0.01, 0.01)