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
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());
if (apply_voxel_scale) {
@ -625,7 +625,7 @@ void TerrainWorld::prop_add(Transform transform, const Ref<PropData> &prop, cons
wp = transform.xform(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();
for (int i = 0; i < count; ++i) {
@ -649,7 +649,7 @@ void TerrainWorld::prop_add(Transform transform, const Ref<PropData> &prop, cons
continue;
}
prop_add(t, p, false);
prop_add(t, p, false, false);
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);
#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
//Lights

View File

@ -176,7 +176,7 @@ public:
int generation_get_size() const;
#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
//Lights