From 3945ee9b8ab09e7f97d90063d9c2af9f1ed92cb6 Mon Sep 17 00:00:00 2001 From: Sara Date: Wed, 22 Apr 2026 22:47:38 +0200 Subject: [PATCH] fix: reduced amount of unnecessary mesh generations --- terrain.cpp | 4 ++++ terrain_modifier.cpp | 2 +- terrain_modifier_path.cpp | 6 ++++-- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/terrain.cpp b/terrain.cpp index a40c9fa..c4981e7 100644 --- a/terrain.cpp +++ b/terrain.cpp @@ -1,4 +1,5 @@ #include "terrain.h" +#include "core/config/engine.h" #include "terrain/terrain_chunk.h" #include "terrain/terrain_modifier.h" @@ -116,6 +117,9 @@ void Terrain::synchronous_generate_terrain() { } void Terrain::_notification(int what) { + if (!Engine::get_singleton()->is_editor_hint()) { + return; + } switch (what) { default: return; diff --git a/terrain_modifier.cpp b/terrain_modifier.cpp index aa4c190..50349cc 100644 --- a/terrain_modifier.cpp +++ b/terrain_modifier.cpp @@ -27,7 +27,7 @@ void TerrainModifier::_notification(int what) { } void TerrainModifier::push_changed(Rect2 area) { - if (this->terrain) { + if (this->terrain && is_inside_tree() && is_ready()) { this->terrain->push_changed(area); } } diff --git a/terrain_modifier_path.cpp b/terrain_modifier_path.cpp index 523728a..97b340a 100644 --- a/terrain_modifier_path.cpp +++ b/terrain_modifier_path.cpp @@ -74,10 +74,9 @@ void TerrainModifierPath::_notification(int what) { case NOTIFICATION_READY: children_changed(); set_notify_transform(true); - update_bounds(); return; case NOTIFICATION_TRANSFORM_CHANGED: - if (is_inside_tree()) { + if (is_inside_tree() && is_ready()) { path_changed(); } return; @@ -172,6 +171,9 @@ void TerrainModifierPath::path_changed() { } } update_configuration_warnings(); + if (!is_ready()) { + return; + } if (!update_bounds()) { push_changed(get_bounds()); }