extends Node2D
class_name Glowling

@onready var tilemap : CustomTileMap  = $"../TileMap" # This needs rectifying
var current_path : Array[Vector2i] = []

@onready var animation_player : AnimationPlayer = $GlowlingAnimations

var speed : int = 40

func _ready() -> void:
	animation_player.play("GlowingPulse")
	pass

# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta : float) ->	void:
	if current_path.is_empty():
		return 
	
	var target_position : Vector2 = tilemap.map_to_local(current_path.front() as Vector2i)
	global_position = global_position.move_toward(target_position, speed * delta)

	if global_position == target_position:
		current_path.pop_front()
	pass

## This is the temporary way for having something move
func _unhandled_input(event : InputEvent) -> void:
	var click_position : Vector2 = get_global_mouse_position()
	if event.is_action_pressed("move_to"):
		if tilemap.is_point_walkable(click_position):
			current_path = tilemap.astar.get_id_path(
				tilemap.local_to_map(global_position),
				tilemap.local_to_map(click_position)
			).slice(1)
