Set prop ownership when adding them in TerrainWorld.

This commit is contained in:
Relintai 2025-02-14 15:28:45 +01:00
parent 1643197af3
commit 0a87629b01
2 changed files with 5 additions and 5 deletions

View File

@ -614,7 +614,7 @@ int TerrainWorld::generation_get_size() const {
} }
#ifdef MODULE_PROPS_ENABLED #ifdef MODULE_PROPS_ENABLED
void TerrainWorld::prop_add(Transform transform, const Ref<PropData> &prop, const bool apply_voxel_scale) { void TerrainWorld::prop_add(Transform transform, const Ref<PropData> &prop, const bool apply_voxel_scale, const bool p_owner) {
ERR_FAIL_COND(!prop.is_valid()); ERR_FAIL_COND(!prop.is_valid());
if (apply_voxel_scale) { if (apply_voxel_scale) {
@ -625,7 +625,7 @@ void TerrainWorld::prop_add(Transform transform, const Ref<PropData> &prop, cons
wp = transform.xform(wp); wp = transform.xform(wp);
Ref<TerrainChunk> chunk = get_or_create_chunk_at_world_position(wp); Ref<TerrainChunk> chunk = get_or_create_chunk_at_world_position(wp);
chunk->prop_add(transform, prop); chunk->prop_add(transform, prop, p_owner);
int count = prop->get_prop_count(); int count = prop->get_prop_count();
for (int i = 0; i < count; ++i) { for (int i = 0; i < count; ++i) {
@ -649,7 +649,7 @@ void TerrainWorld::prop_add(Transform transform, const Ref<PropData> &prop, cons
continue; continue;
} }
prop_add(t, p, false); prop_add(t, p, false, false);
continue; continue;
} }
@ -1608,7 +1608,7 @@ void TerrainWorld::_bind_methods() {
ClassDB::bind_method(D_METHOD("on_chunk_mesh_generation_finished", "chunk"), &TerrainWorld::on_chunk_mesh_generation_finished); ClassDB::bind_method(D_METHOD("on_chunk_mesh_generation_finished", "chunk"), &TerrainWorld::on_chunk_mesh_generation_finished);
#ifdef MODULE_PROPS_ENABLED #ifdef MODULE_PROPS_ENABLED
ClassDB::bind_method(D_METHOD("prop_add", "transform", "prop", "apply_voxel_scale"), &TerrainWorld::prop_add, DEFVAL(true)); ClassDB::bind_method(D_METHOD("prop_add", "transform", "prop", "apply_voxel_scale", "owner"), &TerrainWorld::prop_add, DEFVAL(true), DEFVAL(true));
#endif #endif
//Lights //Lights

View File

@ -176,7 +176,7 @@ public:
int generation_get_size() const; int generation_get_size() const;
#ifdef MODULE_PROPS_ENABLED #ifdef MODULE_PROPS_ENABLED
void prop_add(Transform transform, const Ref<PropData> &prop, const bool apply_voxel_scale = true); void prop_add(Transform transform, const Ref<PropData> &prop, const bool apply_voxel_scale = true, const bool p_owner = true);
#endif #endif
//Lights //Lights