From b3b8ba3304e26b8da56bc20cae2bbf08d7ffd46c Mon Sep 17 00:00:00 2001 From: Florian Date: Tue, 16 Sep 2025 16:24:53 +0200 Subject: [PATCH] Made buildings EnemyList more robust --- buildings/building.gd | 8 +++++--- buildings/building.tscn | 7 +------ buildings/haunted_house.tscn | 27 +++++++++++++++++++++++++-- 3 files changed, 31 insertions(+), 11 deletions(-) diff --git a/buildings/building.gd b/buildings/building.gd index 538cb31..27a49fe 100644 --- a/buildings/building.gd +++ b/buildings/building.gd @@ -1,7 +1,7 @@ class_name Building extends Node2D var location : Vector2i # x is the angle, y is the height in the grid -var dimension : Vector2i = Vector2(2, 1) # same as above +@export var dimension : Vector2i = Vector2(2, 1) # same as above @onready var grid : Grid = get_parent() # make sure location is set before adding a building to the scene tree @@ -11,10 +11,12 @@ func _ready() -> void: var angle = location.x * TAU / grid.num_collumns; # currently assumes anchor is bottom left var height = grid.ground_radius + location.y * grid.cell_height; position = height * Vector2.from_angle(angle) + grid.buildings.append(self) - for enemy in $EnemyList.get_children(): - enemy.reparent(get_parent()) + if get_node_or_null("EnemyList") != null: + for enemy in $EnemyList.get_children(): + enemy.reparent(get_parent()) func overlaps(other : Building): # heights don't overlap diff --git a/buildings/building.tscn b/buildings/building.tscn index 9466248..3b36e84 100644 --- a/buildings/building.tscn +++ b/buildings/building.tscn @@ -1,10 +1,9 @@ -[gd_scene load_steps=7 format=3 uid="uid://djawvtdwp423v"] +[gd_scene load_steps=6 format=3 uid="uid://djawvtdwp423v"] [ext_resource type="Script" uid="uid://b2ji03ekijjnn" path="res://buildings/building.gd" id="1_5j34s"] [ext_resource type="Texture2D" uid="uid://cy70quh6k3s1j" path="res://icon.svg" id="2_2yopf"] [ext_resource type="Shader" uid="uid://c7gb1nqwvkr37" path="res://buildings/building.gdshader" id="2_f1gjg"] [ext_resource type="Script" uid="uid://dj7d4d2xs3nci" path="res://buildings/building_mesh.gd" id="4_qnfc1"] -[ext_resource type="PackedScene" uid="uid://chu67ci7sl488" path="res://enemies/ghost.tscn" id="5_xr4t5"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_qnfc1"] resource_local_to_scene = true @@ -22,7 +21,3 @@ material = SubResource("ShaderMaterial_qnfc1") scale = Vector2(25, 25) texture = ExtResource("2_2yopf") script = ExtResource("4_qnfc1") - -[node name="EnemyList" type="Node2D" parent="."] - -[node name="Ghost" parent="EnemyList" instance=ExtResource("5_xr4t5")] diff --git a/buildings/haunted_house.tscn b/buildings/haunted_house.tscn index b780589..7729363 100644 --- a/buildings/haunted_house.tscn +++ b/buildings/haunted_house.tscn @@ -1,6 +1,29 @@ -[gd_scene load_steps=2 format=3 uid="uid://bno6flekdwx88"] +[gd_scene load_steps=7 format=3 uid="uid://bno6flekdwx88"] [ext_resource type="Script" uid="uid://b2ji03ekijjnn" path="res://buildings/building.gd" id="1_q3nfb"] +[ext_resource type="Shader" uid="uid://c7gb1nqwvkr37" path="res://buildings/building.gdshader" id="2_uv7v8"] +[ext_resource type="Texture2D" uid="uid://cy70quh6k3s1j" path="res://icon.svg" id="3_e6j05"] +[ext_resource type="Script" uid="uid://dj7d4d2xs3nci" path="res://buildings/building_mesh.gd" id="4_bl5jt"] +[ext_resource type="PackedScene" uid="uid://chu67ci7sl488" path="res://enemies/ghost.tscn" id="5_23fi7"] -[node name="HauntedHouse" type="Node2D"] +[sub_resource type="ShaderMaterial" id="ShaderMaterial_qnfc1"] +resource_local_to_scene = true +shader = ExtResource("2_uv7v8") +shader_parameter/ground_height = 3000.0 +shader_parameter/cell_height = 300.0 +shader_parameter/num_cells = 60 + +[node name="Building" type="Node2D"] script = ExtResource("1_q3nfb") +dimension = Vector2i(1, 2) + +[node name="Sprite2D" type="Sprite2D" parent="."] +self_modulate = Color(0.1764706, 0, 0.003921569, 0.003921569) +material = SubResource("ShaderMaterial_qnfc1") +scale = Vector2(25, 25) +texture = ExtResource("3_e6j05") +script = ExtResource("4_bl5jt") + +[node name="EnemyList" type="Node2D" parent="."] + +[node name="Ghost" parent="EnemyList" instance=ExtResource("5_23fi7")]