-
-
Notifications
You must be signed in to change notification settings - Fork 21.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remove almost all remaining dependencies of TileMapLayer on TileMap #88966
Remove almost all remaining dependencies of TileMapLayer on TileMap #88966
Conversation
fddc51a
to
54b0f95
Compare
985cf64
to
34825ad
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
34825ad
to
c17e16a
Compare
Regarding this bugsquad edit, this was a 3.x bug report. Not sure it's fixed there. |
c17e16a
to
787c784
Compare
It's just old, the issue is still relevant in Godot 4. |
That makes sense, but the question was more "Is it still relevant in 3.x" |
Well, the issue will still exist in 3.x and would require a separate fix. But it's not critical. |
Thanks! |
This is probably the last step before we can expose TileMap layers as individual nodes, as this makes TileMapLayer self-sufficient. Instead of TileMap fetching data from its parent TileMap node, the TileMap nodes sets properties on its children layers.
The TileMap has however to call
set_as_tile_map_internal_node
to adjust the behavior of the layer. It makes some callbacks (navigation and physics mainly) point towards the TileMap node as a source of the interaction (collision) instead of the layer node itself. It also automatically instantiate a navigation map for layers with index >= 1, and sets a few needed properties. Basically it allows keeping compatibility.This PR should keep full compatibility (and fix self_modulate on TileMap not working, while we are at it).
Bugsquad edit: Fixes #31413
Edit: supersedes #75320