Commit 610d6236 authored by Gerard Gascón's avatar Gerard Gascón
Browse files

feat: instantiating dragons to ingame position

parent fc921cc9
Loading
Loading
Loading
Loading
+12 −5
Original line number Diff line number Diff line
[gd_scene load_steps=2 format=3 uid="uid://baa8gpicw2yg0"]
[gd_scene load_steps=4 format=3 uid="uid://miutbdsgccd1"]

[ext_resource type="Texture2D" uid="uid://fdqnc2qrrvn1" path="res://assets/sprites/icon.svg" id="1_ixu8j"]
[ext_resource type="Script" uid="uid://csb23v0fr12e0" path="res://scenes/dragons/dragon_entity_dragger.gd" id="1_jccds"]
[ext_resource type="PackedScene" uid="uid://baa8gpicw2yg0" path="res://scenes/dragons/dragon_sprite.tscn" id="2_l1h0r"]

[node name="Dragon" type="Node2D"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_6eaxg"]
size = Vector2(128, 128)

[node name="Sprite" type="Sprite2D" parent="."]
[node name="Dragon" type="Area2D"]
script = ExtResource("1_jccds")

[node name="Dragon" parent="." instance=ExtResource("2_l1h0r")]

[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(0, 1)
texture = ExtResource("1_ixu8j")
shape = SubResource("RectangleShape2D_6eaxg")
+17 −0
Original line number Diff line number Diff line
extends Area2D
class_name DragonEntity


signal on_pick(position)


func _ready() -> void:
	set_process_input(true)


func _input_event(viewport, event, shape_idx) -> void:
	if event is InputEventMouseButton \
	and event.button_index == MOUSE_BUTTON_LEFT \
	and event.is_pressed():
		on_pick.emit(position)
		queue_free()
+1 −0
Original line number Diff line number Diff line
uid://csb23v0fr12e0
+9 −0
Original line number Diff line number Diff line
[gd_scene load_steps=2 format=3 uid="uid://baa8gpicw2yg0"]

[ext_resource type="Texture2D" uid="uid://fdqnc2qrrvn1" path="res://assets/sprites/icon.svg" id="1_ixu8j"]

[node name="Dragon" type="Node2D"]

[node name="Sprite" type="Sprite2D" parent="."]
position = Vector2(0, 1)
texture = ExtResource("1_ixu8j")
+19 −6
Original line number Diff line number Diff line
@@ -2,13 +2,14 @@ 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, dragon_spots, get_viewport(), get_window())
	_instantiator = DragonInstantiator.new(dragon_template, get_viewport(), get_window())
	
	await get_tree().process_frame
	move_window_to_bottom_right()
@@ -28,9 +29,21 @@ func move_window_to_bottom_right():
	DisplayServer.window_set_position(new_position)


func _unhandled_input(event: InputEvent) -> void:
	if event.is_action_pressed("ui_accept"):
		var dragon: Dragon = _instantiator.instantiate()
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)

Loading