52 lines
1.5 KiB
GDScript
52 lines
1.5 KiB
GDScript
extends Node
|
|
|
|
|
|
@export var dragon_template: PackedScene
|
|
@export var dragon_ingame: PackedScene
|
|
@export var dragon_spots: Array[Node2D]
|
|
|
|
var _instantiator: DragonInstantiator
|
|
|
|
|
|
func _ready():
|
|
_instantiator = DragonInstantiator.new(dragon_template, get_viewport(), get_window())
|
|
|
|
await get_tree().process_frame
|
|
move_window_to_bottom_right()
|
|
|
|
|
|
func move_window_to_bottom_right():
|
|
var display_index: int = DisplayServer.window_get_current_screen()
|
|
|
|
var work_area_position: Vector2i = DisplayServer.screen_get_usable_rect(display_index).position
|
|
var work_area_size: Vector2i = DisplayServer.screen_get_usable_rect(display_index).size
|
|
|
|
var window_size: Vector2i = Vector2i(work_area_size.y / 4 * 1.77777, work_area_size.y / 4)
|
|
|
|
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_size(window_size)
|
|
DisplayServer.window_set_position(new_position)
|
|
|
|
|
|
func _input(event: InputEvent) -> void:
|
|
if event.is_pressed() and event.is_action("ui_accept"):
|
|
_instantiate_dragon_ingame(dragon_spots[0].position)
|
|
|
|
|
|
func _instantiate_dragon_ingame(position: Vector2):
|
|
var dragon: DragonEntity = dragon_ingame.instantiate()
|
|
add_child(dragon)
|
|
dragon.position = position
|
|
dragon.on_pick.connect(_pick_dragon)
|
|
|
|
|
|
func _pick_dragon(position: Vector2):
|
|
print(position)
|
|
var dragon: Dragon = _instantiator.instantiate(position)
|
|
dragon.place_back.connect(_dragon_place_back)
|
|
add_child(dragon)
|
|
|
|
|
|
func _dragon_place_back(dragon: Dragon):
|
|
print(dragon)
|