From 6b5a35cca1539dc7e3042e0306b89fe90008643b Mon Sep 17 00:00:00 2001 From: ArthurErlich Date: Sun, 22 Mar 2026 20:36:50 +0100 Subject: [PATCH] feat(recuration): craeted test with singelotsn and spawinin planets --- Core/Singeltons/planets_singelton.gd | 5 ++++ .../Recuration/Assets/TheMoon/TheMoon.gd | 2 +- .../Recuration/Assets/TheMoon/TheMoon.tscn | 2 +- .../Recuration/Assets/abstract_body.gd | 10 +++++++ .../Recuration/Assets/abstract_body.gd.uid | 1 + Experiments/Recuration/Scenes/Recuration.tscn | 11 ++++++-- .../Recuration/Scripts/CreatePlanet.gd | 15 +++++++++++ .../Recuration/Scripts/CreatePlanet.gd.uid | 1 + Experiments/Recuration/UI/UI.tscn | 26 +++---------------- Experiments/Recuration/UI/planet_ui.tscn | 17 ++++++++++++ 10 files changed, 63 insertions(+), 27 deletions(-) create mode 100644 Experiments/Recuration/Assets/abstract_body.gd create mode 100644 Experiments/Recuration/Assets/abstract_body.gd.uid create mode 100644 Experiments/Recuration/Scripts/CreatePlanet.gd create mode 100644 Experiments/Recuration/Scripts/CreatePlanet.gd.uid create mode 100644 Experiments/Recuration/UI/planet_ui.tscn diff --git a/Core/Singeltons/planets_singelton.gd b/Core/Singeltons/planets_singelton.gd index 16ea426..8824e68 100644 --- a/Core/Singeltons/planets_singelton.gd +++ b/Core/Singeltons/planets_singelton.gd @@ -9,3 +9,8 @@ func register(planet: Node) -> void: func unregister(planet) -> void: planets.erase(planet) + + +func _process(delta: float) -> void: + if Time.get_ticks_msec() % 2000 < delta * 1000: + print_debug(JSON.stringify(planets, "\t")) diff --git a/Experiments/Recuration/Assets/TheMoon/TheMoon.gd b/Experiments/Recuration/Assets/TheMoon/TheMoon.gd index e251cf8..9a5fc53 100644 --- a/Experiments/Recuration/Assets/TheMoon/TheMoon.gd +++ b/Experiments/Recuration/Assets/TheMoon/TheMoon.gd @@ -1 +1 @@ -extends Node2D +extends AbstractBody diff --git a/Experiments/Recuration/Assets/TheMoon/TheMoon.tscn b/Experiments/Recuration/Assets/TheMoon/TheMoon.tscn index 1404e7e..2db995e 100644 --- a/Experiments/Recuration/Assets/TheMoon/TheMoon.tscn +++ b/Experiments/Recuration/Assets/TheMoon/TheMoon.tscn @@ -1,6 +1,6 @@ [gd_scene format=3 uid="uid://o2egm85y3wul"] -,[ext_resource type="Script" uid="uid://1c5nfdg2aud4" path="res://Experiments/Recuration/Assets/TheMoon/TheMoon.gd" id="1_sr6fy"] +[ext_resource type="Script" uid="uid://1c5nfdg2aud4" path="res://Experiments/Recuration/Assets/TheMoon/TheMoon.gd" id="1_sr6fy"] [ext_resource type="Texture2D" uid="uid://dng410xo7qqfv" path="res://Core/Assets/PixelPlanets/a-moon.png" id="2_oy8k5"] [node name="TheMoon" type="Node2D" unique_id=1994078602] diff --git a/Experiments/Recuration/Assets/abstract_body.gd b/Experiments/Recuration/Assets/abstract_body.gd new file mode 100644 index 0000000..d03ca00 --- /dev/null +++ b/Experiments/Recuration/Assets/abstract_body.gd @@ -0,0 +1,10 @@ +extends Node2D + +class_name AbstractBody + +func _enter_tree() -> void: + PlanetsSingelton.register(self) + + +func _exit_tree() -> void: + PlanetsSingelton.unregister(self) diff --git a/Experiments/Recuration/Assets/abstract_body.gd.uid b/Experiments/Recuration/Assets/abstract_body.gd.uid new file mode 100644 index 0000000..c17d295 --- /dev/null +++ b/Experiments/Recuration/Assets/abstract_body.gd.uid @@ -0,0 +1 @@ +uid://ds7qei5roqphg diff --git a/Experiments/Recuration/Scenes/Recuration.tscn b/Experiments/Recuration/Scenes/Recuration.tscn index 9e90f3f..f5cd87f 100644 --- a/Experiments/Recuration/Scenes/Recuration.tscn +++ b/Experiments/Recuration/Scenes/Recuration.tscn @@ -2,6 +2,7 @@ [ext_resource type="Script" uid="uid://bqslv86lm78ci" path="res://Experiments/Recuration/Scripts/RecurionCamera.gd" id="1_002bs"] [ext_resource type="PackedScene" uid="uid://cbqapc1frbhtv" path="res://Experiments/Recuration/UI/UI.tscn" id="2_qgdyp"] +[ext_resource type="Script" uid="uid://dhphpobeahiil" path="res://Experiments/Recuration/Scripts/CreatePlanet.gd" id="3_s7jin"] [ext_resource type="PackedScene" uid="uid://o2egm85y3wul" path="res://Experiments/Recuration/Assets/TheMoon/TheMoon.tscn" id="3_yu4li"] [node name="Recuration" type="Node2D" unique_id=1741828961] @@ -13,7 +14,13 @@ metadata/_custom_type_script = "uid://bqslv86lm78ci" [node name="Ui" parent="RecurionCamera" unique_id=1649292342 instance=ExtResource("2_qgdyp")] -[node name="Planets" type="Node" parent="." unique_id=1303454429] +[node name="CreatePlanet" type="Node" parent="RecurionCamera" unique_id=6331954] +script = ExtResource("3_s7jin") +planet = ExtResource("3_yu4li") +metadata/_custom_type_script = "uid://dhphpobeahiil" -[node name="TheMoon" parent="Planets" unique_id=1994078602 instance=ExtResource("3_yu4li")] +[node name="TheMoon" parent="." unique_id=1994078602 groups=["Planets"] instance=ExtResource("3_yu4li")] position = Vector2(-181, -79) + +[node name="TheMoon2" parent="." unique_id=826424265 groups=["Planets"] instance=ExtResource("3_yu4li")] +position = Vector2(115, -108) diff --git a/Experiments/Recuration/Scripts/CreatePlanet.gd b/Experiments/Recuration/Scripts/CreatePlanet.gd new file mode 100644 index 0000000..7c22f66 --- /dev/null +++ b/Experiments/Recuration/Scripts/CreatePlanet.gd @@ -0,0 +1,15 @@ +extends Node + +class_name CreatePlanet + +@export var planet: PackedScene +@onready var camera: Camera2D = get_parent() + + +func _input(event: InputEvent) -> void: + if (event is InputEventMouseButton): + if (event.button_mask == MOUSE_BUTTON_LEFT): + var planet_instance: Node2D = planet.instantiate() + var viewport_size = get_viewport().get_visible_rect().size / 2 + planet_instance.position = event.position - viewport_size + camera.position + get_tree().root.add_child(planet_instance) diff --git a/Experiments/Recuration/Scripts/CreatePlanet.gd.uid b/Experiments/Recuration/Scripts/CreatePlanet.gd.uid new file mode 100644 index 0000000..27e244d --- /dev/null +++ b/Experiments/Recuration/Scripts/CreatePlanet.gd.uid @@ -0,0 +1 @@ +uid://dhphpobeahiil diff --git a/Experiments/Recuration/UI/UI.tscn b/Experiments/Recuration/UI/UI.tscn index d22b4bc..a7a8861 100644 --- a/Experiments/Recuration/UI/UI.tscn +++ b/Experiments/Recuration/UI/UI.tscn @@ -1,6 +1,7 @@ [gd_scene format=3 uid="uid://cbqapc1frbhtv"] [ext_resource type="Script" uid="uid://dslwh6krdrhb" path="res://Experiments/Recuration/UI/ui.gd" id="1_0oc4u"] +[ext_resource type="PackedScene" uid="uid://byb5pcvu3lixf" path="res://Experiments/Recuration/UI/planet_ui.tscn" id="2_7k02w"] [node name="Ui" type="Control" unique_id=1649292342] layout_mode = 3 @@ -11,26 +12,5 @@ grow_horizontal = 2 grow_vertical = 2 script = ExtResource("1_0oc4u") -[node name="Control" type="Control" parent="." unique_id=1092984868] -anchors_preset = 0 -offset_left = 20.0 -offset_top = 20.0 -offset_right = 20.0 -offset_bottom = 20.0 - -[node name="VBoxContainer" type="VBoxContainer" parent="Control" unique_id=2035222213] -layout_mode = 0 -offset_right = 110.0 -offset_bottom = 77.0 - -[node name="Label" type="Label" parent="Control/VBoxContainer" unique_id=1466923284] -layout_mode = 2 -text = "Iron" - -[node name="Label2" type="Label" parent="Control/VBoxContainer" unique_id=2128104556] -layout_mode = 2 -text = "Copper" - -[node name="Label3" type="Label" parent="Control/VBoxContainer" unique_id=749357655] -layout_mode = 2 -text = "Copper" +[node name="PlanetUi" parent="." unique_id=1388932399 instance=ExtResource("2_7k02w")] +layout_mode = 1 diff --git a/Experiments/Recuration/UI/planet_ui.tscn b/Experiments/Recuration/UI/planet_ui.tscn new file mode 100644 index 0000000..63467f7 --- /dev/null +++ b/Experiments/Recuration/UI/planet_ui.tscn @@ -0,0 +1,17 @@ +[gd_scene format=3 uid="uid://byb5pcvu3lixf"] + +[node name="PlanetUi" type="Control" unique_id=1388932399] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="VBoxContainer" type="VBoxContainer" parent="." unique_id=1965327603] +layout_mode = 0 +offset_right = 110.0 +offset_bottom = 77.0 + +[node name="Test" type="Label" parent="VBoxContainer" unique_id=2044219282] +layout_mode = 2