feat: basic dragon instantiating

This commit is contained in:
Gerard Gascón 2025-04-03 17:40:27 +02:00
parent a0bb24464d
commit 9e153b63ac
6 changed files with 76 additions and 1 deletions

29
scripts/dragon.gd Normal file
View file

@ -0,0 +1,29 @@
extends Control
var dragging = false
var dragging_start_position = Vector2i()
@onready var window: Window = $".."
func _ready():
set_process_input(true)
func _input(event):
if event is not InputEventMouseButton:
return
if event.button_index != MOUSE_BUTTON_LEFT:
return
if event.pressed:
dragging = true
dragging_start_position = Vector2i(get_global_mouse_position())
else:
dragging = false
func _process(_delta):
if dragging:
window.position = window.position + Vector2i(get_global_mouse_position()) - dragging_start_position

1
scripts/dragon.gd.uid Normal file
View file

@ -0,0 +1 @@
uid://bmlkcni4km614

View file

@ -1,5 +1,9 @@
extends Node
@export var dragon_template: PackedScene
func _ready():
await get_tree().process_frame
move_window_to_bottom_right()
@ -16,3 +20,17 @@ func move_window_to_bottom_right():
var new_position: Vector2i = work_area_position + Vector2i(work_area_size.x - window_size.x, work_area_size.y - window_size.y)
DisplayServer.window_set_position(new_position)
func _unhandled_input(event: InputEvent) -> void:
if event.is_action_pressed("ui_accept"):
_instantiate_dragon(Vector2i(0, 0))
func _instantiate_dragon(relative_position: Vector2i) -> void:
var dragon = dragon_template.instantiate()
add_child(dragon)
if dragon is Window:
var window_position: Vector2i = DisplayServer.window_get_position()
dragon.position = window_position + relative_position
dragon.show()