From f0e63a11428431b745fafc5c49a8f13b36e035b8 Mon Sep 17 00:00:00 2001 From: Sara Date: Wed, 25 Feb 2026 23:11:32 +0100 Subject: [PATCH] fix: chunk gets removed from tree before deleting --- modules/terrain/terrain.cpp | 1 + project/scenes/terrain_test.tscn | 30 +++++++++++++++--------------- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/modules/terrain/terrain.cpp b/modules/terrain/terrain.cpp index f0d64180..a925b6b5 100644 --- a/modules/terrain/terrain.cpp +++ b/modules/terrain/terrain.cpp @@ -100,6 +100,7 @@ void Terrain::construct_chunk_grid() { } this->workload_lock.lock(); for (TerrainChunkMesh *mesh : this->meshes) { + remove_child(mesh); mesh->queue_free(); } size_t const chunks_per_side{ this->side_length / this->chunk_size }; diff --git a/project/scenes/terrain_test.tscn b/project/scenes/terrain_test.tscn index cd5b0455..b1dc732d 100644 --- a/project/scenes/terrain_test.tscn +++ b/project/scenes/terrain_test.tscn @@ -12,13 +12,6 @@ sky_material = SubResource("ProceduralSkyMaterial_kbmr5") background_mode = 2 sky = SubResource("Sky_w3uoq") -[sub_resource type="Curve" id="Curve_kbmr5"] -_limits = [0.0, 1.0, 0.0, 323.34308] -_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(134.4993, 0.6274206), -0.006221681, -0.006221681, 0, 0, Vector2(237.39348, 0.0977577), -0.0030463666, -0.0030463666, 0, 0, Vector2(323.34308, 0), 0.0, 0.0, 0, 0] -point_count = 4 - -[sub_resource type="Curve" id="Curve_w3uoq"] - [sub_resource type="Curve" id="Curve_chm2y"] _limits = [0.0, 1.0, 0.0, 500.0] _data = [Vector2(0, 1), 0.0, -0.0016919965, 0, 0, Vector2(228.71338, 0.44817185), -0.0011880936, -0.0011880936, 0, 0, Vector2(500, 0), 7.00571e-05, -0.05797184, 0, 0] @@ -29,9 +22,16 @@ _limits = [-30.0, 0.0, 0.0, 100.0] _data = [Vector2(0, 0), 0.0, -0.56894803, 0, 0] point_count = 1 +[sub_resource type="Curve" id="Curve_kbmr5"] +_limits = [0.0, 1.0, 0.0, 323.34308] +_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(134.4993, 0.6274206), -0.006221681, -0.006221681, 0, 0, Vector2(237.39348, 0.0977577), -0.0030463666, -0.0030463666, 0, 0, Vector2(323.34308, 0), 0.0, 0.0, 0, 0] +point_count = 4 + +[sub_resource type="Curve" id="Curve_w3uoq"] + [sub_resource type="Curve" id="Curve_nonsf"] _limits = [0.0, 1.0, 0.0, 500.0] -_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(287.8075, 0.3595702), -0.0056187166, -0.0056187166, 0, 0, Vector2(500, 0), 0.0, 0.0, 0, 0] +_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(275.82242, 0.47838098), -0.0056187166, -0.0056187166, 0, 0, Vector2(500, 0), 0.0, 0.0, 0, 0] point_count = 3 [sub_resource type="Curve" id="Curve_4kj3c"] @@ -51,20 +51,20 @@ side_length = 1000 chunk_size = 100 thread_count = 2 -[node name="TerrainModifierDistance" type="TerrainModifierDistance" parent="Terrain" unique_id=1885116624] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 115.563965, 82.77078, 637.2768) -blend_distance = 4.0 -distance_weight_curve = SubResource("Curve_kbmr5") -distance_height_curve = SubResource("Curve_w3uoq") - [node name="TerrainModifierDistance3" type="TerrainModifierDistance" parent="Terrain" unique_id=1846439541] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 392.32507, 273.6683, 272.20636) blend_distance = 4.0 distance_weight_curve = SubResource("Curve_chm2y") distance_height_curve = SubResource("Curve_o3i6r") +[node name="TerrainModifierDistance" type="TerrainModifierDistance" parent="Terrain" unique_id=1885116624] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 115.563965, 111.77251, 558.931) +blend_distance = 4.0 +distance_weight_curve = SubResource("Curve_kbmr5") +distance_height_curve = SubResource("Curve_w3uoq") + [node name="TerrainModifierDistance2" type="TerrainModifierDistance" parent="Terrain" unique_id=2110821264] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 788.26746, -90.20175, 675.6073) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 788.26746, -118.721924, 675.6073) blend_mode = 2 distance_weight_curve = SubResource("Curve_nonsf") distance_height_curve = SubResource("Curve_4kj3c")