godotengine / godotengine/godot-cpp
Behavior change with handling _notification in class hierarchy
- Dominant language
- C++
- Stars
- 2.7k
- Forks
- 809
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 8
Description
### Godot version
4.3-beta1
### godot-cpp version
4.3 - sha 45be6d0bd4e6901d47d97bed2a18af0f76450eab
### System information
Windows 11
### Issue description
In Godot 4.2, with a GDExtension class hierarchy of `Node3D > CustomNode3D > SuperCustomNode3D`, if both of the custom classes implemented in GDExtension had a `_notification` method, the `SuperCustomNode3D` had to call the `CustomNode3D` implementation as it would not be dispatched by Godot automatically.
In Godot 4.3, this behavior has been fixed and now works as it should, where Godot handles the dispatch of the `_notification` functions regardless of how the hierarchy is constructed.
This should at the very least be documented in a migration guide as a behavior change.
### Steps to reproduce
1. Create a `CustomNode3D` that extends `Node3D`, implementing `_notification`.
2. Create a `SuperCustomNode3D` that extends `CustomNode3D`, implementing `_notification`.
In Godot 4.2, the `_notification` in `CustomNode3D` was never called.
In Godot 4.3, both `_notification` functions are called.
### Minimal reproduction project
N/A
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.