Commit Graph

462 Commits

Author SHA1 Message Date
Haoyu Qiu d24ee551ec Allow EditorInspector to change its property name style when necessary
Previously, an EditorInspector's property name can only be set from
outside. Inspectors used for settings needs to respond to changes in
editor settings. So a few boilerplate code is almost always needed,
including watching for a certain editor setting in `_notification()`.

This commit adds a `set_use_settings_style()` function to tell the
inspector to watch for editor settings changes on its own.
2023-04-29 10:51:00 +08:00
Rémi Verschelde 5bb46d6064
Merge pull request #76176 from YuriSizov/editor-extracted-interface-commencing
Decouple `EditorInterface` from `EditorPlugin`
2023-04-18 23:41:20 +02:00
Yuri Sizov 9e6b680cfb
Merge pull request #74814 from kleonc/tilemap-fix-rendering-odd-sized-tiles
`TileMap` Fix rendering odd-sized tiles
2023-04-18 16:27:44 +02:00
Yuri Sizov 49d7041d34 Decouple EditorInterface from EditorPlugin
- Simplify some includes in the process.
- Also exposes EditorInterface.movie_maker_enabled as a property.
2023-04-17 21:59:09 +02:00
Yuri Sizov 4154039832 Improve includes of EditorNode (and everything else)
Also start organizing editor-specific GUI components
into a dedicated folder, `editor/gui`.
Also move `editor_file_server` next to the rest of debugger classes.
2023-04-07 18:59:49 +02:00
Yuri Sizov 9b500ab53c Fix premature theme item access in editor tools 2023-04-03 18:01:11 +02:00
kleonc c72b09639a TileSet editor AtlasMergingDialog crash fix 2023-03-28 20:07:26 +02:00
kleonc 224c66324b TileMapEditor Fix preview rendering and transform calculations 2023-03-16 14:52:38 +01:00
kleonc c49a7feae3 TileMap Fix rendering odd-sized tiles 2023-03-12 16:20:38 +01:00
Haoyu Qiu bef7f14885 Add missing TTRs in tiles editor and array inspector 2023-03-09 14:38:54 +08:00
Rémi Verschelde eafc88c835
Merge pull request #73514 from AThousandShips/tile_origin_fix
Fix TileSetEditor paiting texture_origin Vector2i
2023-03-03 11:02:24 +01:00
Ninni Pipping fb317546fe Fix TileSetEditor paiting texture_origin Vector2i 2023-03-02 12:06:27 +01:00
Rémi Verschelde 7e11cc8aa0
Merge pull request #74039 from daBlesr/tilemap-remember-previosuly-selected-tile
Remember previously selected TileMap tile.
2023-03-02 11:41:48 +01:00
Niels Drost 66374c8dce TileSet editor was out of sync with TileMap and incorrectly overwrote old selected TileSet after an edit call with a null pointer. 2023-02-28 22:30:46 +01:00
nklbdev 834a6c5983
fix typo `set_polygon` in GenericTilePolygonEditor 2023-02-25 00:57:34 +05:00
kobewi 56251cf08c Fix tile atlas merging crash 2023-02-20 18:22:44 +01:00
Haoyu Qiu ccc3bdebb3 Add missing i18n in tiles editor 2023-02-15 23:08:03 +08:00
kobewi be6d5bbba6 Fix some TileMap errors and crashes 2023-02-14 00:39:41 +01:00
SnailRhymer db8d308830
Fix random placement behaviour in new TileMap Editor
Fix a bug where scattering could be set to e.g. 0.9 but a tile would still always be placed, as the check rand > 0.9 would be run on every mouse movement until it was successful.
2023-02-10 19:08:03 +01:00
Rémi Verschelde 44d5d4e3cd
Merge pull request #73007 from KoBeWi/typos_be_like
Fix error spam when deselecting TileMap
2023-02-10 15:06:40 +01:00
Gilles Roudière 89ccdc7d34 Fix TileMap patterns creation 2023-02-10 10:46:19 +01:00
kobewi f92392ce23 Fix error spam when deselecting TileMap 2023-02-10 01:07:48 +01:00
kobewi 979b53aba4 Add info label to TileMap editor 2023-02-08 20:26:53 +01:00
Raul Santos c7f4ca36a4
Use `PropertyUsageFlags` enum in parse_property 2023-01-31 23:31:15 +01:00
Rémi Verschelde 525db733c8
Merge pull request #72129 from groud/unclamp_texture_origin
Rename texture_offset and unclamp it
2023-01-27 15:40:52 +01:00
Gilles Roudière d7f3bd50bd Rename texture_offset and unclamp it 2023-01-27 11:04:45 +01:00
Rémi Verschelde aeac5a80af
Merge pull request #72050 from groud/flow_tilemap_toolbar
Make TileMap toolbar a FlowContainer
2023-01-26 01:07:48 +01:00
Gilles Roudière 156c4cbcb8 Make TileMap toolbar a FlowContainer 2023-01-25 16:27:28 +01:00
Rémi Verschelde cb6dea8513
Merge pull request #65419 from SaracenOne/tileset_read_only
Add read-only mode to tileset editor
2023-01-25 12:18:08 +01:00
Rémi Verschelde 5f335a7879
Merge pull request #72020 from vmedea/tile-editor-thread-fix
Fix: use the right tile_set in TilesEditorPlugin::_thread
2023-01-25 11:59:39 +01:00
SaracenOne f5d1cf57bd Add read-only mode to tileset editor. 2023-01-25 09:50:54 +00:00
mara 655b32187f Fix: use the right tile_set in TilesEditorPlugin::_thread
Instead of using the class member, use the item's tile set, as is
the intent.

This fixes an almost immediate crash in the editor for me.
2023-01-25 10:00:25 +01:00
Gilles Roudière a3b431b09d Add gesture to ViewPanner and simplify a bit its API 2023-01-23 16:43:53 +01:00
Rémi Verschelde c3539b4561
Merge pull request #70773 from KoBeWi/lector
Add range iterator to LocalVector
2023-01-21 20:53:29 +01:00
Rémi Verschelde 229c82690d
Merge pull request #70294 from KoBeWi/treedulate
Add a method to get global modulate
2023-01-21 20:51:42 +01:00
kobewi 615c517034 Use range iterators in LocalVector loops 2023-01-21 18:44:42 +01:00
Gilles Roudière ecb9c48b9f Fix a few issues with tile animations 2023-01-19 11:20:06 +01:00
Rémi Verschelde 35326d3dc5
Merge pull request #71626 from groud/fix_add_tileset_layer_undo
Fixes TileSet layer addition not being undoable
2023-01-18 22:28:48 +01:00
Rémi Verschelde bcaf048f33
Merge pull request #71379 from KoBeWi/destruction_of_compatibility_function
Remove set_drag_forwarding_compat()
2023-01-18 17:40:13 +01:00
Gilles Roudière c1de6dc84b Fix right-click on tilset atlas popup wrong position
Fix similar bug in AnimationLibraryEditor
2023-01-18 16:14:11 +01:00
Gilles Roudière 8ecbef36bb Fixes TileSet layer addition not being undoable 2023-01-18 15:54:44 +01:00
Rémi Verschelde f3743e0890
Merge pull request #71545 from groud/fix_rect_draw_tileset
Fixes rectangle painting weird behavior when dragging outside the atlas area
2023-01-17 10:42:26 +01:00
Rémi Verschelde b2e1ae6034
Merge pull request #71517 from groud/tile_data_editor_shortcut_consistency
Make keyboard shortcuts in tile data editors consistent with tilemap editor.
2023-01-17 10:40:10 +01:00
Gilles Roudière 6285d6e5f5 Fixes rectangle painting when dragging outside the atlas area 2023-01-17 10:30:07 +01:00
Gilles Roudière 21a88578e9 Make keyboard shortcuts in tile data editors consistent with tilemap editor. Fix a bug with collision shapes painting. 2023-01-16 18:50:11 +01:00
Rémi Verschelde d94a46ab95
Merge pull request #64021 from ajreckof/change-shortcut-for-rect-tool-tilemap
Add `Key::CTRL_OR_CMD` and use it to fix shortcut for tilemap painting tools on macOS
2023-01-16 12:47:07 +01:00
Rémi Verschelde da57e0059e
Merge pull request #70504 from KoBeWi/the_choosen_antipattern
Add EditorUndoRedoManager singleton
2023-01-16 09:24:50 +01:00
Rémi Verschelde 1424cd9e79
Merge pull request #59076 from Sauermann/fix-cursorshape-tilesetatlassourceeditor
Use get_cursor_shape for identifying the cursor shape in TileSetAtlasSourceEditor
2023-01-16 09:14:24 +01:00
ajreckof fa528b86b6 replace the use of CTRL by CMD_OR_CTRL in three places where using CTRL prevented the use of the functionality on mac
on Mac CTRL + Left click = Right click therefore when a functionality needs CTRL + Left click it is not possible on mac. It then forcibly needs to be CMD on mac
2023-01-16 06:07:16 +01:00
kobewi b58111588a Add EditorUndoRedoManager singleton 2023-01-16 01:11:52 +01:00
kobewi 59ea36b87c Remove set_drag_forwarding_compat() 2023-01-14 15:16:51 +01:00
Rémi Verschelde 228db366bf
Merge pull request #70601 from vmedea/keep-terrain-choice
Keep terrain choice when changing layer in tilemap editor
2023-01-13 18:04:02 +01:00
Rémi Verschelde 3e5ee12555
Merge pull request #71335 from groud/fix_atlas_merging
Fixes TileSet atlas merging not working correctly
2023-01-13 18:03:53 +01:00
Rémi Verschelde 44f7392883
Merge pull request #65370 from SaracenOne/tileset_editor_visibility_fixes
Fix contextual visibility of tileset and tilemap editors (again)
2023-01-13 18:02:12 +01:00
Gilles Roudière 28f6fcd68f Fixes TileSet atlas merging not working correctly 2023-01-13 16:50:12 +01:00
kobewi dfc4367a47 Add expand modes to TextureRect 2023-01-12 17:06:03 +01:00
Juan Linietsky e6a4debede Change set_drag_forwarding() to use callables.
* This solution is much cleaner than the one in 3.x thanks to the use of callables.
* Works without issues in any language (no need to worry about camel or snake case).
* Editor code uses a compatibility function (too much work to redo).

Fixes #59899
2023-01-10 14:09:24 +01:00
kleonc 4276752608 TileAtlasView Update zoom and panning before emitting signal 2023-01-05 22:00:05 +01:00
Rémi Verschelde d95794ec8a
One Copyright Update to rule them all
As many open source projects have started doing it, we're removing the
current year from the copyright notice, so that we don't need to bump
it every year.

It seems like only the first year of publication is technically
relevant for copyright notices, and even that seems to be something
that many companies stopped listing altogether (in a version controlled
codebase, the commits are a much better source of date of publication
than a hardcoded copyright statement).

We also now list Godot Engine contributors first as we're collectively
the current maintainers of the project, and we clarify that the
"exclusive" copyright of the co-founders covers the timespan before
opensourcing (their further contributions are included as part of Godot
Engine contributors).

Also fixed "cf." Frenchism - it's meant as "refer to / see".
2023-01-05 13:25:55 +01:00
Charles Crete 50e09bbaef Fix "Double-click on the TileMap's pattern prints an error" (#70892) 2023-01-03 23:06:52 -05:00
Haoyu Qiu 1ac35c38be Fix heap-use-after-free when using TileMap editor 2022-12-30 14:16:54 +08:00
Markus Sauermann b736efa9c8 Use get_cursor_shape for identifying the cursor shape in TileSetAtlasSourceEditor
get_cursor_shape() is used in cases where a Control displays different cursors in different areas.
There is no need to set the default cursor shape on every mouse move event.

Was part of the reason for #58960.
2022-12-29 02:07:39 +01:00
mara 5380e685d8 Keep terrain choice when changing layer in tilemap editor
Make `TileMapEditorTerrainsPlugin::edit` logic analogous to
`TileMapEditorTilesPlugin::edit`, in that the selection is only
cleared when switching to another tilemap.

Closes #70033.
2022-12-26 21:45:06 +01:00
Silc Renew 060fb2d093 Add inspector plugin for key time edit & Change find key argument 2022-12-22 10:03:06 +09:00
Rémi Verschelde fe1bb58e8f
Merge pull request #70238 from kleonc/tile-set-simplify-isometric-tile-polygon
`TileSet` Simplify isometric tile shape polygon to 4 vertices
2022-12-19 16:27:17 +01:00
kobewi 32b0770a73 Add a method to get global modulate 2022-12-19 11:51:37 +01:00
kleonc 3a34acdf55 TileSet Simplify tile shape polygons 2022-12-19 11:42:40 +01:00
kobewi 99a9401a2c Use layer's modulate for tile previews 2022-12-18 17:31:29 +01:00
Rémi Verschelde 05aba48354
Merge pull request #70006 from timothyqiu/atlas-source-paint-scroll
Add scroll container for tile data editors
2022-12-13 10:12:53 +01:00
Rémi Verschelde a720a8c136
Merge pull request #69893 from henrlin24/hide-scattering
Hide Scattering label and controls within TileMap editor window when "Place Random Tile" option is disabled
2022-12-13 10:10:28 +01:00
Haoyu Qiu 4fcbfcc665 Add scroll container for tile data editors 2022-12-13 15:14:01 +08:00
Rémi Verschelde f5d14f874a
Merge pull request #69300 from timothyqiu/tile-set-atlas-source
Improve TileSetAtlasSourceEditor UI
2022-12-12 11:41:59 +01:00
henrlin24 afa38bd030 Hide Scattering label and controls within TileMap editor window when "Place Random Tile" is disabled 2022-12-11 13:16:36 -05:00
Haoyu Qiu 8a22d4cd44 Fix !tile_set.is_valid() error on startup 2022-12-10 13:09:20 +08:00
Haoyu Qiu d8f5dcbf56 Improve TileSetAtlasSourceEditor UI
* Updates the overall layout, moving mode buttons to the top.
* Uses inspector category instead of a Label to show what's being edited. This also allows better scrolling behavior.
2022-12-10 12:27:48 +08:00
Rémi Verschelde 9a26ffa233
Merge pull request #67283 from KoBeWi/one_way_ticket
Add one-way indicator to tile collision editor
2022-12-09 18:05:55 +01:00
Rémi Verschelde 43bef98450
Merge pull request #60892 from KoBeWi/fat_selection
Improve tile editor selection appearance
2022-12-09 18:05:38 +01:00
kobewi 871278cdf0 Improve tile editor selection appearance 2022-12-09 14:46:17 +01:00
Haoyu Qiu af3ef844d9 Update tile source icons when editor theme changes 2022-12-08 17:21:37 +08:00
Rémi Verschelde de2d0f156e
Merge pull request #69713 from groud/rename_get_surrounding_tiles
Rename get_surrounding_tiles to get_surrounding_cells
2022-12-07 13:24:57 +01:00
Rémi Verschelde 04cd36612a
Merge pull request #69695 from timothyqiu/id-capitalization
Make ID capitalization in tiles editor consistent
2022-12-07 13:23:49 +01:00
Gilles Roudière 3ea54bb3a1 Rename get_surrounding_tiles to get_surrounding_cells 2022-12-07 11:09:10 +01:00
Haoyu Qiu 740d6f9447 Fix crash when deleting an alternative-level tile proxy 2022-12-07 14:26:54 +08:00
Haoyu Qiu 9893b04fda Make ID capitalization in tiles editor consistent 2022-12-07 10:07:10 +08:00
Haoyu Qiu 7034992ace Fix error when right clicking proxy list in TileProxiesManagerDialog 2022-12-06 09:37:07 +08:00
Haoyu Qiu 480d9d10ed Fix heap-use-after-free when exiting editor after editing TileSet 2022-12-04 16:52:26 +08:00
Haoyu Qiu 6c5c773a27 Fix heap-use-after-free when changing alternative tile ID 2022-11-30 10:32:35 +08:00
Rémi Verschelde 3d2c3aae4e
Merge pull request #69062 from trollodel/lightweight_editor_mass
Use forward-declarations in big editor classes
2022-11-29 10:27:21 +01:00
trollodel c90d0bd84f Use forward-declarations in big editor classes 2022-11-29 09:59:43 +01:00
Haoyu Qiu 4a50f44cd2 Fix heap-use-after-free when removing a tile in TileSet editor 2022-11-29 09:22:35 +08:00
Haoyu Qiu 7bc0d0c177 Update TileSet preview when paint custom data changes 2022-11-27 18:35:47 +08:00
Rémi Verschelde 6e693368e1
Merge pull request #69124 from zaevi/tilemap_fix_alternative_tile
[TileMap] Fix alternative tile issues.
2022-11-25 19:27:37 +01:00
kobewi 8a3d2f4e0c Cleanup remaining EditorUndoRedoManager usages 2022-11-24 18:56:22 +01:00
Zae f6424e68ea [TileMap] Fix alternative tile issues. 2022-11-25 00:44:02 +08:00
Markus Sauermann 28af870750 Code simplifications found by cppcheck
They are based on:
- Boolean arithmetic simplifications
- setting variables that are not accessed
- constant variables
2022-11-21 08:43:36 +01:00
Rémi Verschelde 0b27173919
Fixup TileSet build after #66557
Last rebase was too old, didn't include this API rename.
2022-11-17 13:54:15 +01:00
Rémi Verschelde 2ca972ad01
Merge pull request #66557 from MisterMX/fix/tileset-custom-data-type-reload-editor
fix(tileset): Recreate custom data editor if type has changed
2022-11-17 13:49:02 +01:00
Rémi Verschelde 4829911df2
Merge pull request #64368 from YeldhamDev/tile_editor_label_center
Properly center labels in the TileMap/Set editors
2022-11-17 13:48:53 +01:00
Markus Sauermann 3b14f0334c Remove redundant Variant-types initializations 2022-11-14 19:35:19 +01:00
Michael Alexsander 02390693ce Properly center labels in the TileMap/Set editors 2022-11-12 21:35:07 -03:00
clayjohn 3c1e5003ab Fix pathological corner case in drawing tileset editor
Interleaving draw_rect calls with and without a texture forces every rect to
have its own draw call. In this case it meant that there is a draw call for every single
tile in the atlas. This change makes it so the renderer can batch draw calls
which reduced the draw call count by a factor of 512
2022-11-04 13:04:20 -07:00
Ninni Pipping 4b29f71685 Fix incorrect drawing of alternative tiles 2022-11-03 16:17:36 +01:00
kobewi 15831e381b Unify usage of undo_redo in editor 2022-11-02 17:51:58 +01:00
Rémi Verschelde 5947f22be9
Merge pull request #67578 from KoBeWi/GEDITOR
Unify usage of GLOBAL/EDITOR_GET
2022-10-31 13:15:58 +01:00
Rémi Verschelde 420eb1aa34
Merge pull request #67445 from Zylann/rename_queue_delete
Rename queue_delete => queue_free
2022-10-31 10:51:18 +01:00
Rémi Verschelde d0fbeec66a
Merge pull request #67580 from KoBeWi/little_things
Minor code improvements
2022-10-31 10:34:57 +01:00
Marc Gilleron 7543a5e014 Rename queue_delete => queue_free
# Conflicts:
#	editor/plugins/tiles/tiles_editor_plugin.cpp
2022-10-24 22:07:02 +01:00
kobewi 1e14502f84 Add one-way indicator to tile collision editor 2022-10-24 12:03:39 +02:00
Gilles Roudière fe65d7aa7b Make terrain painting not change neighbors centers bits 2022-10-20 14:47:45 +02:00
kobewi e48c5daddf Unify usage of GLOBAL/EDITOR_GET 2022-10-18 19:01:48 +02:00
kobewi 4aaed4fee1 Minor code improvements 2022-10-18 16:44:57 +02:00
Marc Gilleron 9efb2e786e Fix case where mutex is never unlocked 2022-10-15 13:06:00 +01:00
Rémi Verschelde dc4b616596 Merge pull request #63332 from KoBeWi/static_images_aka_photos
Make some Image methods static
2022-10-15 12:56:57 +02:00
kobewi 985671012a Separate Line and CurveLinear icons 2022-10-15 02:00:39 +02:00
kobewi 072f6feaba Make some Image methods static 2022-10-14 14:34:15 +02:00
Rémi Verschelde 86a836f9e3 Merge pull request #59468 from EricEzaM/fix-zoom-shortcuts
Fix zoom in/out keyboard shortcuts not working
2022-10-13 09:03:58 +02:00
kobewi 386382d796 Fix source sort not saving in TileMap editor 2022-10-11 22:40:39 +02:00
Kongfa Waroros e81e81a56e Fix crashing when editing the `TileSet` field 2022-10-10 00:37:47 +07:00
bruvzg 0103af1ddd
Fix MSVC warnings, rename shadowed variables, fix uninitialized values, change warnings=all to use /W4. 2022-10-07 11:32:33 +03:00
kobewi 52435e6f90 Disconnect TileSet from source editor if no sources 2022-10-04 20:13:01 +02:00
Rémi Verschelde 380fba6272 Merge pull request #66713 from KoBeWi/remembuh_me
Remember tile source sort between sessions
2022-10-03 14:52:56 +02:00
Rémi Verschelde 88f70dfacd Merge pull request #66656 from magian1127/4.0DelAutotile
TileMap mouse right can delete autotile
2022-10-03 09:19:58 +02:00
kobewi 7247606f64 Remember tile source sort between sessions 2022-10-02 22:41:12 +02:00
Rémi Verschelde e69b7083d4 Merge pull request #65903 from groud/improve_terrain_painting
Right-click to erase TileSet terrains and bugfixes
2022-09-30 17:44:48 +02:00
Magian 7e30343a5c TileMap mouse right can delete autotile 2022-09-30 21:15:15 +08:00
MisterMX b6c1a03d6c fix(tileset): Recreate custom data editor if type has changed
Signed-off-by: MisterMX <mbxd12@web.de>
2022-09-28 21:16:41 +02:00
Guilherme Sousa 1ae1a02098 Fix mouse release leaving dock area 2022-09-27 13:35:01 +02:00
Eric M 16a3cec71e Fix zoom in/out keyboard shortcuts not working since the introduction of EditorZoomWidget. Add KP shortcuts to zoom in/out. 2022-09-24 18:24:59 +10:00
Rémi Verschelde 658bfb0395 Merge pull request #66159 from MewPurPur/fix-animated-tiles-offset-unit
Remove px unit from animation_separation in TileSet atlas editor
2022-09-20 15:45:41 +02:00
VolTer 6a1d1f1f75 Remove px unit from animation_separation in TileSet atlas editor (as it's tile-based, not pixel-based) 2022-09-20 15:04:26 +02:00
MinusKube 0ff2020bd4 Fix atlas view drawing roots having zoom applied twice 2022-09-17 19:07:56 +02:00
Gilles Roudière 68ffa9a2a1 Right-click to erase TileSet terrains and bugfixes 2022-09-16 15:22:55 +02:00
kobewi aafe72fcec Fix broken patterns on TileMap layer change 2022-09-10 16:45:51 +02:00
Michael Alexsander c4c9e41073 Make `Vector2i` values paired with `EDSCALE` be just `Vector2` 2022-09-08 14:46:32 -03:00
Rémi Verschelde 69233093d7 Merge pull request #65241 from bruvzg/no_keymap_ambiguity
Fix key mapping changes when moving from macOS to other platform.
2022-09-08 09:24:24 +02:00
bruvzg 6f4d233062
Fix key mapping changes when moving from macOS to other platform
Removes separate `Command` key (use `Meta` instead).
Adds an event flag to automatically remap `Command` <-> `Control` (cannot be set alongside `Control` or `Meta`).
2022-09-07 18:45:35 +02:00
smix8 d7f75fab60 Remove / Replace old Navigation Debug Visualization
- removes / replaces leftovers from old navigation debug code
- cleanes SceneTree and ProjectSettings from old navigation debug
2022-09-07 18:30:35 +02:00
kobewi 35cae71842 Fix tile source selection from picking 2022-09-07 15:02:49 +02:00
Micky dd26ecdd31 Rename CONNECT_ONESHOT TO CONNECT_ONE_SHOT
For consistency. Every other exposed `one_shot` is spaced out like this.
2022-09-06 19:00:33 +02:00
Rémi Verschelde 5fb84e5702 Merge pull request #64661 from Mickeon/rename-tilemap-world
Rename TileMap/GridMap.`world_to_map` and opposite to `local_to_map`
2022-09-06 17:01:16 +02:00
Micky 694190a354 Rename TileMap/GridMap.`world_to_map` and opposite to `local_to_map`
For both TileMap and GridMap:
- `world_to_map` -> `local_to_map`
- `map_to_world` -> `map_to_local`

Also changes any mention of "world" in this context to "local" to avoid future confusion.

Finally, updates the docs of both methods for consistency.
In particular, adding a note on how to convert the returned values from local to global coordinates and vice versa.
2022-09-05 18:08:39 +02:00
SaracenOne 15ccb319a9 Fix contextual visibility of tileset and tilemap editors 2022-09-05 16:34:09 +01:00
Aaron Franke 995b9f94e8
Replace Rect2(i) has_no_area with has_area 2022-09-04 23:03:36 -05:00
Jonathan Nicholl 15d057c521 Add `is_zero_approx` methods to `Vector2`, `3`, and `4` 2022-09-02 00:29:50 -04:00
Micky e31bb5ffeb Rename `CanvasItem.update()` to `queue_redraw()`
Affects a lot of classes. Very thoroughly checked signal connections and deferred calls to this method, add_do_method/add_undo_method calls, and so on.

Also renames the internal `_update_callback()` to `_redraw_callback()` for consistency.

Just a few comments have also been changed to say "redraw".

In CPUParticles2D, there was a private variable with the same name. It has been renamed to `do_redraw`.
2022-08-29 14:59:47 +02:00
Rémi Verschelde fd6453c45e Revert "Remove NOTIFICATION_ENTER_TREE when paired with NOTIFICATION_THEME_CHANGED"
This reverts commit 4b817a565c.

Fixes #64988.
Fixes #64997.

This caused several regressions (#64988, #64997,
https://github.com/godotengine/godot/issues/64997#issuecomment-1229970605)
which point at a flaw in the current logic:

- `Control::NOTIFICATION_ENTER_TREE` triggers a *deferred* notification with
  `NOTIFCATION_THEME_CHANGED` as introduced in #62845.
- Some classes use their `THEME_CHANGED` to cache theme items in
  member variables (e.g. `style_normal`, etc.), and use those member
  variables in `ENTER_TREE`, `READY`, `DRAW`, etc. Since the `THEME_CHANGE`
  notification is now deferred, they end up accessing invalid state and this
  can lead to not applying theme properly (e.g. for EditorHelp) or crashing
  (e.g. for EditorLog or CodeEdit).

So we need to go back to the drawing board and see if `THEME_CHANGED` can be
called earlier so that the previous logic still works?

Or can we refactor all engine code to make sure that:
- `ENTER_TREE` and similar do not depend on theme properties cached in member
  variables.
- Or `THEME_CHANGE` does trigger a general UI update to make sure that any
  bad theme handling in `ENTER_TREE` and co. gets fixed when `THEME_CHANGE`
  does arrive for the first time. But that means having a temporary invalid
  (and possibly still crashing) state, and doing some computations twice
  which might be heavy (e.g. `EditorHelp::_update_doc()`).
2022-08-29 11:11:29 +02:00
Rémi Verschelde f7f8af232c
Merge pull request #64885 from Mickeon/rename-tooltip-hint
Rename `hint_tooltip` to `tooltip_text` & setter getter
2022-08-28 17:43:01 +02:00
Aaron Record 4b817a565c Remove NOTIFICATION_ENTER_TREE when paired with NOTIFICATION_THEME_CHANGED 2022-08-27 11:52:29 -06:00
Micky ef5b9a06a9 Rename `hint_tooltip` to `tooltip_text` & setget
`hint_tooltip` -> `tooltip_text`
`set_tooltip` -> `set_tooltip_text`
`_get_tooltip` -> `get_tooltip_text`

Updates documentation, too.
2022-08-27 01:35:01 +02:00
Rémi Verschelde dadebb95aa
Merge pull request #64601 from MinusKube/alternative-tile-popup-bug
Fix alternative tile popup menu not being openable
2022-08-26 10:35:43 +02:00
MinusKube 2abccb018e Fix alternative tile popup menu not being openable 2022-08-25 16:20:56 +02:00
MinusKube d71b02cd19 Fix tileset image and background sometimes disappearing 2022-08-25 16:18:39 +02:00
kobewi ece3df3938 Add per-scene UndoRedo 2022-08-22 18:05:10 +02:00
Rémi Verschelde 6ba7dacf6b
Merge pull request #63415 from ajreckof/expose_tilemap_custom_data_methods
Expose TileMap methods related to the name of custom data layers
2022-07-29 19:43:55 +02:00
Rémi Verschelde 7199314eb3
Merge pull request #63595 from reduz/remove-signal-connect-binds
Remove Signal connect binds
2022-07-29 18:10:39 +02:00
Juan Linietsky d4433ae6d3 Remove Signal connect binds
Remove the optional argument p_binds from `Object::connect` since it was deprecated by Callable.bind().
Changed all uses of it to Callable.bind()
2022-07-29 16:26:13 +02:00
ajreckof 8433ad5353 expose TileMap methods related to the name of custom data layers 2022-07-29 15:05:42 +02:00
Estelle Linkpy Reid d5926b435e Make the alternative tile control correctly handle right-click dragging. 2022-07-29 03:11:08 +02:00
Rémi Verschelde 2e05cc3314
Merge pull request #58361 from V-Sekai/tileset_editor_selection
Fix tileset editor visiblity and selection context
2022-07-28 17:31:21 +02:00
Rémi Verschelde 199ea349f5
Merge pull request #57698 from bluenote10/feature/rename_translated_to_translated_local 2022-07-28 10:03:07 +02:00
Rémi Verschelde 222e489dfd
Merge pull request #63496 from groud/fix_tile_set_not_saving
Fix TileSet not loading correctly when embedded in a scene
2022-07-26 18:27:05 +02:00
Gilles Roudière 8da2710911 Fix TileSet not loading correctly when embedded in a scene 2022-07-26 17:39:35 +02:00
Rémi Verschelde 90019676b0 Code quality: Fix header guards consistency
Adds `header_guards.sh` bash script, used in CI to validate future
changes. Can be run locally to fix invalid header guards.
2022-07-25 11:17:40 +02:00
luz paz 38aaaa3cf9 Fix various typos not caught by codespell
Revert upstream `core/input/gamecontrollerdb.txt`. Upstream fix: https://github.com/gabomdq/SDL_GameControllerDB/pull/600
2022-07-21 07:38:23 -04:00
FireForge 97dfbea6ad Rename Control PRESET_WIDE to PRESET_FULL_RECT 2022-07-18 20:08:11 -05:00
Fabian Keller 2bf9e6090c rename translate(d) to translate(d)_local in Transform 2D/3D 2022-07-16 11:47:54 +02:00
Rémi Verschelde b942c1ffe3
Merge pull request #62827 from fire-forge/ok-cancel
Add `ok_button_text` to AcceptDialog and `cancel_button_text` to ConfirmationDialog
2022-07-13 14:10:38 +02:00
FireForge e4067064ce Add ok_button_text to AcceptDialog and cancel_button_text to ConfirmationDialog 2022-07-09 10:47:08 -05:00
kobewi d2900429e8 Add static methods for creating Image and ImageTexture 2022-07-08 13:40:47 +02:00
bruvzg 344ba0ffaf
Refactor Font configuration and import UI, and Font resources. 2022-07-06 14:12:36 +03:00
kobewi 2ccef6616e Fix crash when drawing invalid tiles 2022-06-23 14:34:23 +02:00
FireForge 88589c091b Improve TileSet editor and add more suffixes 2022-06-20 15:28:19 -05:00
bruvzg b5c96df277
Move duplicate AutoWrap, Overrun and VisibleChar behavior enums to the TextServer. 2022-06-16 16:49:37 +03:00
FireForge b8720500b0 Improve TileMap editor layer selection button 2022-06-14 14:14:19 -05:00
Rémi Verschelde d4f31e201d
Merge pull request #61809 from groud/terrain_center_bit 2022-06-13 17:06:34 +02:00
Gilles Roudière 62d2549e9e Add terrain center bit 2022-06-10 14:37:39 +02:00
kobewi cf2287a2b4 Add shortcuts to GenericTilePolygonEditor 2022-06-07 02:03:04 +02:00
FireForge 87cfe90f6e Update viewport when toggling TileMap grid 2022-06-03 13:52:53 -05:00
Aaron Record 900c676b02 Use range iterators for RBSet in most cases 2022-05-19 12:09:16 +02:00
reduz 746dddc067 Replace most uses of Map by HashMap
* Map is unnecessary and inefficient in almost every case.
* Replaced by the new HashMap.
* Renamed Map to RBMap and Set to RBSet for cases that still make sense
  (order matters) but use is discouraged.

There were very few cases where replacing by HashMap was undesired because
keeping the key order was intended.
I tried to keep those (as RBMap) as much as possible, but might have missed
some. Review appreciated!
2022-05-16 10:37:48 +02:00
Vitika9 aef3b5681d Changed signals of ItemList 2022-05-06 13:09:04 +05:30
Rémi Verschelde c273ddc3ee Style: Partially apply clang-tidy's `cppcoreguidelines-pro-type-member-init`
Didn't commit all the changes where it wants to initialize a struct
with `{}`. Should be reviewed in a separate PR.

Option `IgnoreArrays` enabled for now to be conservative, can be
disabled to see if it proposes more useful changes.

Also fixed manually a handful of other missing initializations / moved
some from constructors.
2022-05-02 16:28:25 +02:00
kobewi 142d0e7d75 Change Place Random Tiles to an icon 2022-05-01 22:13:30 +02:00
Rémi Verschelde 8dfa12cae7
Merge pull request #59979 from bruvzg/cpp_check2 2022-04-27 10:08:26 +02:00
FireForge 3073b85de9 Rename theme properties to include underscores
- check_vadjust -> check_v_adjust
- close_h_ofs -> close_h_offset
- close_v_ofs -> close_v_offset
- commentfocus -> comment_focus
- hseparation -> h_separation
- ofs -> offset
- selectedframe -> selected_frame
- state_machine_selectedframe -> state_machine_selected_frame
- table_hseparation -> table_h_separation
- table_vseparation -> table_v_separation
- vseparation -> v_separation
2022-04-23 11:16:18 -05:00
bruvzg de4c97758a
Fix more issues found by cppcheck. 2022-04-20 10:34:00 +03:00
bruvzg f851c4aa33
Fix some issues found by cppcheck. 2022-04-06 14:34:37 +03:00
Rémi Verschelde f8ab79e68a Zero initialize all pointer class and struct members
This prevents the pitfall of UB when checking if they have been
assigned something valid by comparing to nullptr.
2022-04-04 19:49:50 +02:00
Michael Alexsander deb1342036 Make `TabBar/Container` default their alignments to the left instead of center 2022-03-17 18:12:23 -03:00
kobewi 42078dec9f Allow negative indexes in ItemList and PopupMenu 2022-03-12 01:14:03 +01:00
Igor Kordiukiewicz ed0da06958 Added property hint to id property in tile set atlas source editor 2022-03-02 20:33:03 +01:00
bruvzg 74ff5921d6 Improve popup window handling.
Add window FLAG_POPUP and a platform specific routines to control popup auto-hiding and event forwarding.
2022-02-25 09:33:27 +02:00
kobewi b727b81468 Fix source picking with sort 2022-02-24 01:20:21 +01:00
SaracenOne 04535bdc7d Fix contextual tileset editor and ensure button is always visible when tileset is available 2022-02-21 13:34:11 +00:00
Rémi Verschelde 009254d87c
Merge pull request #58187 from jakobbouchard/notification-switch-chunk-c
Convert _notification methods to switch - Chunk C
2022-02-16 20:58:55 +01:00
Jakob Bouchard 6553f5c242
Convert _notification methods to switch - Chunk C 2022-02-16 13:03:05 -05:00
kobewi 547786650f Automatically select source of the picked tile 2022-02-16 00:39:00 +01:00
Rémi Verschelde 11572c6e30
Editor: Cleanup some includes dependencies
Removes some unnecessary includes from `editor_node.h`, and instead add
those where they're used.

Removes unnecessary `editor_node.h` includes in various editor classes.

Renames `dynamicfont` to `dynamic_font` in a couple files.

Misc cleanup while jumping through that rabbit hole.
2022-02-15 14:54:15 +01:00
Rémi Verschelde 6d708dfd6a
Merge pull request #57329 from Ev01/tileset-editor-minimum-zoom 2022-02-15 14:20:22 +01:00
trollodel 05b56f316d Remove most EditorNode constructor parameters and fields 2022-02-14 14:16:24 +01:00