35 lines
1.1 KiB
GDScript
35 lines
1.1 KiB
GDScript
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)
|