Commit graph

40 commits

Author SHA1 Message Date
Caleb Cassady
7404873b66 Fix TileMapLayer bug where dirty cells could be marked twice
When using runtime data in a TileMapLayer, calling notify_runtime_tile_update
can cause error messages to be printed to the console if the same cell has been
set or erased in the same frame. This could be partially worked around by using
call_deferred on notify_runtime_tile_update, but the problem could re-emerge if
those updates were being made in coroutines.

This commit addresses the issue by adding an additional check to the dirty cell
marking of the TileMapLayer when notify_runtime_tile_update is called. This
check ensures that the cell has not already been added to the dirty cell list,
preventing the condition that causes the error message.
2025-02-10 22:18:10 -05:00
Thaddeus Crews
86002e1a3c
Merge pull request #100882 from smix8/node_navmesh_geo_parsers
Make nodes handle their respective navigation source geometry
2025-01-16 17:18:01 -06:00
smix8
0ed2cb0439 Make nodes handle their respective navigation source geometry
Makes nodes handle their respective navigation source geometry.
2025-01-12 13:14:46 +01:00
David Snopek
696285f23a Use MethodInfo::get_compatibility_hash() to generate the hash for MethodBind::get_hash() and other GDExtension hash clean up 2025-01-11 15:57:42 -06:00
A Thousand Ships
a1846b27ea
Improve use of Ref.is_null/valid
Use `is_null` over `!is_valid` and vice versa.
2024-12-23 16:35:02 -05:00
Yufeng Ying
73d85f46c9 Remove unused headers in scene.
Co-authored-by: Thaddeus Crews <repiteo@outlook.com>

Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
2024-12-24 00:40:09 +08:00
Souchet Ferdinand
d92f5e5799
Add TileMapLayer._update_cells virtual callback called when the TileMapLayer's cells are updated
Made `_update_cells` a hook into the `TileMapLayer`'s internal update
2024-11-11 13:29:38 +01:00
Danni
3d132076b2 Add collision priority property to TileSet physics layers 2024-11-02 15:37:49 -04:00
Adam Scott
0d350e7108
Set clang-format RemoveSemicolon rule to true
- Set clang-format `Standard` rule to `c++20`
2024-10-25 13:49:43 -04:00
Gilles Roudière
d75c5ec7ba Implement multiple occlusion polygons within each TileSet occlusion layer 2024-09-03 15:38:51 +02:00
Rémi Verschelde
96cbcc30e2
Merge pull request #90945 from Scony/extract-navigation-defaults
Extract navigation-related defaults to separate header
2024-08-29 10:36:14 +02:00
Rémi Verschelde
6cb21a56fd
Merge pull request #93970 from MarblesFr/feature/collision-occlusion-options-layer-map
Add occlusion enabled option to TileMapLayer
2024-08-28 00:11:40 +02:00
Pawel Lampe
c3f1bfd5cb Extract navigation-related defaults to separate header 2024-08-27 20:12:10 +02:00
kobewi
dba1a39fe1 Add helper methods to check for tile transforms 2024-08-12 02:51:34 +02:00
Sora
998f5c682e Add occlusion enabled options to tile map layer 2024-07-22 12:13:39 +02:00
kobewi
92b0375785 Fix some TileMapLayer editing problems 2024-06-29 18:18:54 +02:00
Rémi Verschelde
d71c85ce5f
Merge pull request #92016 from KoBeWi/pick_layers_like_a_boss
Allow selecting TileMapLayers by clicking them
2024-06-28 15:55:10 +02:00
Ricardo Buring
4c426b0be5 Fix TileMapLayer not respecting physics interpolation mode 2024-06-18 22:05:46 +02:00
Gilles Roudière
c283db2130 Implement X-draw-order switch in TileMapLayer 2024-06-10 15:53:58 +02:00
kobewi
6559bb68e6 Remove some TileMap dependencies from TileMapLayer 2024-05-21 11:32:14 +02:00
cosparks
601edc7d3e Fix 2d sdf collision for TileMapLayer 2024-05-20 13:03:02 -07:00
kobewi
b758222761 Allow selecting TileMapLayers by clicking them 2024-05-16 15:47:23 +02:00
kobewi
413c11357d Use Core/Scene stringnames consistently 2024-05-13 23:41:07 +02:00
kobewi
a262d2d881 Add shorthand for using singleton string names 2024-05-11 18:53:08 +02:00
A Thousand Ships
955d5affa8
Reduce and prevent unnecessary random-access to List
Random-access access to `List` when iterating is `O(n^2)` (`O(n)` when
accessing a single element)

* Removed subscript operator, in favor of a more explicit `get`
* Added conversion from `Iterator` to `ConstIterator`
* Remade existing operations into other solutions when applicable
2024-05-04 16:08:55 +02:00
kobewi
c7b6cf9f6d Don't store TileMapLayer data if empty 2024-04-19 18:05:48 +02:00
A Thousand Ships
09edece17d
[TileMap] Fix forcing cleanup on exiting tree/canvas 2024-04-04 14:47:32 +02:00
Gilles Roudière
3cd4b2859c Expose TileMapLayer 2024-04-03 11:02:34 +02:00
Ricardo Buring
2ed2ccc2d8 Fixed Timestep Interpolation (2D)
Adds fixed timestep interpolation to the rendering server (2D only).
Switchable on and off with a project setting (default is off).

Co-authored-by: lawnjelly <lawnjelly@gmail.com>
2024-03-23 12:28:36 +01:00
Gilles Roudière
787c784aca Remove almost all remaining dependencies of TileMapLayer on TileMap 2024-02-29 12:16:50 +01:00
A Thousand Ships
fe203d7003
Prevent threading problems in TileMap 2024-02-27 15:38:25 +01:00
Robert Yevdokimov
13e82094ee Remove word duplicates in comments and strings, and fix casing and punctuation 2024-02-23 17:28:28 -05:00
Gilles Roudière
33485e654e Fixes a memory leak with TileMap runtime updates 2024-02-21 13:18:21 +01:00
Rémi Verschelde
8b72165b5f
Merge pull request #88190 from Eoin-ONeill-Yokai/bugfix/materials-tilemap2d
Fix regression where a tile's custom material was ignored
2024-02-13 11:25:06 +01:00
Gilles Roudière
5a999d67ec Change TileMapEditor to TileMapLayerEditor 2024-02-12 10:11:45 +01:00
Eoin O'Neill
f50e6c80c7 Fix regression where tile-specific materials were ignored.
Regression stemmed from commit 48bed5050b

The material assigned to a tile is completely ignored in master unless
this line is changed.
2024-02-10 18:08:02 -08:00
Gilles Roudière
48bed5050b Make TileMapLayers extend Node2D and work as children of TileMap 2024-01-17 16:05:50 +01:00
kleonc
baa5504700 Fix some TileMap debug drawing truncating to ints 2024-01-14 02:02:46 +01:00
kleonc
3c25274870 Fix TileMap quadrant canvas item position not being local 2024-01-08 14:20:16 +01:00
Gilles Roudière
6bc5b3f812 Move TileMapLayer to its own files 2024-01-05 11:58:21 +01:00