godotengine / godotengine/godot
Godot editor interrupts sliding when sliding to change property of resource inherited from ArrayMesh
- Dominant language
- C++
- Stars
- 117k
- Forks
- 26.8k
- PR merge metrics
- PR metrics pending
Description
### Tested versions
Reproducible in 4.3.stable, 4.4.dev
### System information
Godot v4.3.stable - EndeavourOS #1 SMP PREEMPT_DYNAMIC Sat, 18 Jan 2025 02:26:57 +0000 - Wayland - Vulkan (Mobile) - integrated AMD Radeon Graphics (RADV RENOIR) - AMD Ryzen 7 4800U with Radeon Graphics (16 Threads)
### Issue description
When sliding to change property that modifies the mesh data of resource inherited from ArrayMesh, Godot editor interrupts the sliding.
### Steps to reproduce
Add the following script:
```gdscript
@tool
extends ArrayMesh
class_name ArrayMeshTest
@export var length: float = 1.0:
get: return length
set(value):
length = value
generate()
emit_changed()
func _init():
generate()
func generate():
var arr = []
arr.resize(Mesh.ARRAY_MAX)
arr[Mesh.ARRAY_VERTEX] = PackedVector3Array([Vector3(0, 0, 0), Vector3(0, length, 0), Vector3(length, 0, 0)])
clear_surfaces()
add_surface_from_arrays(PRIMITIVE_TRIANGLES, arr)
```
Create a `ArrayMeshTest` resource and try sliding the `length` property, then Godot editor interrupts the sliding.
### Minimal reproduction project (MRP)
N/A
Contributor guide
Research direction
Start with the provided @tool ArrayMeshTest script, especially the exported length setter, generate(), and emit_changed(), and reproduce the interrupted slider in the Godot editor. Trace the editor property-sliding path for resource changes; done means sliding length updates the generated mesh continuously without the editor interrupting the interaction.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- game-dev, tooling
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100