Commit Graph

479 Commits (fe84b84b51df1ff6db658f521d1040aa563cedd0)

Author SHA1 Message Date
kobewi 80341da660 Properly change GridMap floors while selecting 2024-01-12 22:17:23 +07:00
kobewi 0e8f90f4c8 Update deferred calls to use Callables 2024-01-09 16:11:47 +07:00
Rémi Verschelde 5eb22a317d
Merge pull request #83577 from DennisManaa/fix-translation-for-item-list
Add automatic translation of items to ItemList
2024-01-04 16:39:36 +07:00
smix8 cd07e73812 Remove GridMap navigation_layers leftover
Removes GridMap navigation_layers leftover.
2023-11-28 00:05:50 +07:00
DennisManaa 1a1c542836 Implement automatic translation for ItemList 2023-10-23 10:14:08 +07:00
Hugo Locurcio fcbf7011cc
Make 3D editor gizmos and debug shapes ignore fog
This makes them easier to see in their intended colors in scenes with fog.
2023-09-27 00:54:57 +07:00
Rémi Verschelde 8ddf73c74d
Merge pull request #81939 from YuriSizov/gui-flat-and-depressed
Replace flat buttons with flat-styled buttons with a visible pressed state
2023-09-25 17:18:29 +07:00
Rémi Verschelde 0ba19c3e4a
Merge pull request #81914 from jsjtxietian/update-mesh-list-immeditely-after-set-mesh-library
Update mesh list UI immediately after setting mesh library in gridmap
2023-09-20 15:18:28 +07:00
jsjtxietian c9957d8907 Update meshes list UI immeditely after setting mesh library in gridmap 2023-09-20 10:51:19 +07:00
Yuri Sizov 4bd569be95 Replace flat buttons with flat-styled buttons with a visible pressed state 2023-09-19 22:36:29 +07:00
Geoffroy Warin 5f3cbcb55d fix some keys triggering their actions twice in GridMap 2023-09-11 03:04:25 +07:00
kobewi 6de34fde27 Add EditorStringNames singleton 2023-09-03 19:58:18 +07:00
Chia-Hsiang Cheng 3a3ebbf4c9 Ensure the visibility is updated when entering the tree 2023-08-29 15:11:57 +07:00
Rémi Verschelde 4bba963f0a
Merge pull request #80782 from KoBeWi/MessLibrary
Cleanup MeshLibrary changed signals
2023-08-21 08:23:48 +07:00
kobewi ecc3944b1e Cleanup MeshLibrary changed signals 2023-08-19 11:56:31 +07:00
Geoffroy Warin 4789759035 Fix GridMap shortcuts that should not be physical 2023-08-19 02:49:41 +07:00
Geoffroy Warin f80f4eb390 Make gridmap shortcuts editable and not conflict with other plugins
Co-authored-by: Tomek <kobewi4e@gmail.com>
2023-08-10 16:55:59 +07:00
kobewi de4a3fa151 Unify and streamline connecting to Resource changes 2023-07-17 19:35:57 +07:00
Rémi Verschelde 81064cc239
Doctool: Remove version attribute from XML header
We don't use that info for anything, and it generates unnecessary diffs
every time we bump the minor version (and CI failures if we forget to
sync some files from opt-in modules (mono, text_server_fb).
2023-07-06 10:08:21 +07:00
Rémi Verschelde 346f1ab86b
Bump version to 4.2-dev
Keep on waitin'
2023-07-05 22:07:03 +07:00
Haoyu Qiu 42faab826d Fix GridMap tile picking when a search filter is applied 2023-06-21 12:02:07 +07:00
Rémi Verschelde 3158f6378e
Merge pull request #78265 from caseyjoy/57068_gridmap_grid_position
Update GridMap editor grid location when required
2023-06-20 00:04:53 +07:00
Casey 0defaefdba Update GridMap editor grid location when required
The GridMap editor's grid previously did not not move when moving
the tile cursor, only on certain menu actions.

This commit adds an update_grid call for valid mouse movement in
the editor, changes update_grid to only offset if there's a valid
cursor, and adds updates for the grid and cursor when a mesh library
is changed since we need the new RID for the update_grid check,
and if we remove the mesh library we want to make sure it gets
recentered. As a nice side-effect, it also updates to the new cursor
mesh if you load a new mesh library.

Fixes #57068
2023-06-17 16:09:41 +07:00
Rémi Verschelde 25b2f1780a
Style: Harmonize header includes in modules
This applies our existing style guide, and adds a new rule to that style
guide for modular components such as platform ports and modules:

Includes from the platform port or module ("local" includes) should be listed
first in their own block using relative paths, before Godot's "core" includes
which use "absolute" (project folder relative) paths, and finally thirdparty
includes.

Includes in `#ifdef`s come after their relevant section, i.e. the overall
structure is:

- Local includes
  * Conditional local includes
- Core includes
  * Conditional core includes
- Thirdparty includes
  * Conditional thirdparty includes
2023-06-15 14:35:45 +07:00
kobewi 366c9678ca Fix some invalid plugin edit calls 2023-06-11 22:15:54 +07:00
VolTer 1740f7ea53 Add syntax highlighter icons 2023-05-29 20:42:54 +07:00
smix8 a6ac305f96 Rework Navigation Avoidance
Rework Navigation Avoidance.
2023-05-10 05:01:58 +07:00
Yuri Sizov 391eccca76 Validate code tags in documentation for potential params
Adds a check to make_rst to look for matches
between the text inside of the [code][/code] tag
and known param identifiers.
Fixes most of what was revealed.
2023-04-26 21:36:04 +07: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 +07:00
Hugo Locurcio b78623dae6
Only change floors in GridMap editor when holding Ctrl/Cmd, not Shift
The Shift modifier frequently interfered with freelook's speed modifier,
which led to the floor level being accidentally changed.
2023-03-25 03:57:37 +07:00
smix8 cc02007e30 Fix GridMap free navigation RID error spam
Fixes GridMap free navigation RID error spam.
2023-03-21 12:19:36 +07:00
smix8 d8bad3eef5 Fix GridMap signal "cell_size_changed" disconnect error
Fixes GridMap signal "cell_size_changed" disconnect error.
2023-03-14 04:21:37 +07:00
Rémi Verschelde 1c1524a651
Bump version to 4.1-dev
Can't stop, won't stop, they said, huh?
2023-03-01 01:44:37 +07:00
smix8 624426f32e Fix GridMap 'cell_size_changed' signal not disconnecting properly
Fixes that a GridMap node would not disconnect from the 'cell_size_changed' signal when the new selected node is another valid GridMap.
2023-02-23 21:17:37 +07:00
Haoyu Qiu 84aee17901 Improvements and fixes based on Weblate comments
* Description of `ui_text_submit` action should be "Submit Text" instead of "Text Submitted".
* Spell out "Animation" instead of using "Anim.".
* Treat "Max" as regular word instead of writing "Max.".
* Use generic "Set %s" for action name instead of a dedicated "Set target_position".
* Add translator comment for:
    * "Inclusive" and "Self" in the profiler.
    * Places where it needs the context about being an editor progress label.
    * "Duplicated Animation Name" since it's refering to the new name of a duplicated animation.
    * Disambiguation of "View Plane Transform", "Paste Selects" and "Display Normal".
* Fix wrong undo action name for renaming an input action.
* Fix missing end quote in a shader error message.
* In class reference:
    * Fix duplicated "if" in the description of `signf()`.
    * Fix mismatched example output in `String.operator %()`.
    * Fix typo in the description of `Decal.texture_emission`.
    * Unify description of `String.match()` and `StringName.match()`.
2023-02-13 15:22:18 +07:00
kobewi b58111588a Add EditorUndoRedoManager singleton 2023-01-16 01:11:52 +07:00
Josh Jones a0715b30f9 Rework const on NavigationServer methods
`const` is used on all methods, even when they cause modification of the server.  This reworks the methods of the server to only use `const` on method that don't change the state of the server.
2023-01-07 17:29:00 +07: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 +07:00
Adam Scott ea33001b95 Add safety-checks before some servers `free()` 2022-12-29 16:23:38 +07:00
Rémi Verschelde 63f95c0e58
Merge pull request #70366 from quentinguidee/refactoring/fix-double-get-singleton
Fix double get_singleton()
2022-12-21 09:27:02 +07:00
smix8 61f33e205c Change GridMap navigation_layers to be per mesh_library item
Changes GridMap navigation_layers from a single bitmask for the entire GridMap to a bitmask for each item used in the mesh_library with a baked navmesh.
2022-12-20 20:51:32 +07:00
Quentin Guidée d9c05f7fbd
Fix double get_singleton()
Signed-off-by: Quentin Guidée <quentin.guidee@gmail.com>
2022-12-20 14:26:15 +07:00
smix8 eb88aef537 Add GridMap collision_priority
Adds property 'collision_priority' for all physics bodies of the entire GridMap.
2022-12-19 19:31:43 +07:00
smix8 34e7628f5f Fix Navigation API abbreviations inconsistency
Schema for navigation to name user facing API with  "navigation" without abbreviation and e.g. NavigationServer internals with abbr "nav".
2022-12-17 22:06:22 +07:00
Josh Jones 5769b0e8d8 Enable assigning an owner to navigation regions and links
This allows users of the server APIs to get back the nodes that created certain regions and links.
2022-12-10 12:03:06 +07:00
trollodel c90d0bd84f Use forward-declarations in big editor classes 2022-11-29 09:59:43 +07:00
kobewi 8a3d2f4e0c Cleanup remaining EditorUndoRedoManager usages 2022-11-24 18:56:22 +07:00
kobewi a23f6d0aa6 Fill random docs 2022-11-22 17:59:45 +07:00
trollodel ba9e619b51 Use forward-declarations in EditorPlugin where possible 2022-11-11 20:25:51 +07:00
kobewi e48c5daddf Unify usage of GLOBAL/EDITOR_GET 2022-10-18 19:01:48 +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 +07:00
Micky ae5771e1b1 Rename remaining "Spatial" in Plugins to "Node3D"
For EditorNode3DGizmo:
- `get_spatial_node` -> `get_node_3d`
- `set_spatial_node` -> `set_node_3d`

For EditorPlugin:
- `add_spatial_gizmo_plugin` -> `add_node_3d_gizmo_plugin`
- `remove_spatial_gizmo_plugin` -> `remove_node_3d_gizmo_plugin`

Also renames some internal methods for consistency (`forward_3d_draw_over_viewport` & `forward_3d_force_draw_over_viewport` ...). Basically, Spatial has been completely eradicated.
2022-10-04 16:27:29 +07:00
Rémi Verschelde 166df0896c Fix typos with codespell
Using codespell 2.3-dev from current git.

And fix typo in `methods.py` for `vsproj=yes` option (still won't work
though).
2022-09-30 14:23:36 +07:00
Rémi Verschelde f47979f087
Merge pull request #66242 from akien-mga/scons-unify-tools-target 2022-09-30 12:28:50 +07:00
Rémi Verschelde d8268aae30 Fix MSVC warnings C4324, C4389, C4456, and C4459
Part of #66537.
2022-09-28 16:43:09 +07:00
Rémi Verschelde 39facb35a0 SCons: Unify tools/target build type configuration
Implements https://github.com/godotengine/godot-proposals/issues/3371.

New `target` presets
====================

The `tools` option is removed and `target` changes to use three new presets,
which match the builds users are familiar with. These targets control the
default optimization level and enable editor-specific and debugging code:

- `editor`: Replaces `tools=yes target=release_debug`.
  * Defines: `TOOLS_ENABLED`, `DEBUG_ENABLED`, `-O2`/`/O2`
- `template_debug`: Replaces `tools=no target=release_debug`.
  * Defines: `DEBUG_ENABLED`, `-O2`/`/O2`
- `template_release`: Replaces `tools=no target=release`.
  * Defines: `-O3`/`/O2`

New `dev_build` option
======================

The previous `target=debug` is now replaced by a separate `dev_build=yes`
option, which can be used in combination with either of the three targets,
and changes the following:

- `dev_build`: Defines `DEV_ENABLED`, disables optimization (`-O0`/`/0d`),
  enables generating debug symbols, does not define `NDEBUG` so `assert()`
  works in thirdparty libraries, adds a `.dev` suffix to the binary name.

Note: Unlike previously, `dev_build` defaults to off so that users who
compile Godot from source get an optimized and small build by default.
Engine contributors should now set `dev_build=yes` in their build scripts or
IDE configuration manually.

Changed binary names
====================

The name of generated binaries and object files are changed too, to follow
this format:

`godot.<platform>.<target>[.dev][.double].<arch>[.<extra_suffix>][.<ext>]`

For example:
- `godot.linuxbsd.editor.dev.arm64`
- `godot.windows.template_release.double.x86_64.mono.exe`

Be sure to update your links/scripts/IDE config accordingly.

More flexible `optimize` and `debug_symbols` options
====================================================

The optimization level and whether to generate debug symbols can be further
specified with the `optimize` and `debug_symbols` options. So the default
values listed above for the various `target` and `dev_build` combinations
are indicative and can be replaced when compiling, e.g.:

`scons p=linuxbsd target=template_debug dev_build=yes optimize=debug`
will make a "debug" export template with dev-only code enabled, `-Og`
optimization level for GCC/Clang, and debug symbols. Perfect for debugging
complex crashes at runtime in an exported project.
2022-09-26 16:31:46 +07: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 +07:00
Rémi Verschelde 207c747ac0 Merge pull request #64193 from smix8/navigation_gridmap_navmap_change_4.x
Add GridMap function to change navigation map for baked navigation regions
2022-09-08 09:19:19 +07:00
smix8 41c529a94d Add GridMap function to change navigation map for baked navigation regions
Adds function to change the navigation map for baked navigation regions.
Before all cells with a baked navigation mesh were locked to the default navigation map of the world resource.
2022-09-08 06:43:02 +07: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 +07: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 +07: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 +07:00
Rémi Verschelde 9a368eca43
Merge pull request #64173 from smix8/navigation_debug_gridmap_edgeconnections_4.x 2022-09-01 17:57:58 +07: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 +07:00
Aaron Record 4b817a565c Remove NOTIFICATION_ENTER_TREE when paired with NOTIFICATION_THEME_CHANGED 2022-08-27 11:52:29 +07:00
kobewi 1abdffe7a0 Replace Array return types with TypedArray 2 2022-08-23 23:21:32 +07:00
kobewi ece3df3938 Add per-scene UndoRedo 2022-08-22 18:05:10 +07:00
rafallus da7a5653f4 Expose Basis `set_orthogonal_index` method as a GridMap function 2022-08-20 21:42:20 +07:00
smix8 4f0730d4bc Add Navigation Debug for GridMap edge connections
Adds navigation visual debug for GridMap edge connections that use baked navigationmesh with bake_navigation=true.
2022-08-13 21:27:56 +07:00
Michael Alexsander fe16aecbac Fix error when switching to another `GridMap` with an item with higher index selected 2022-08-09 19:05:02 +07:00
Yuri Sizov c5d7115038 Rename the argument tag to param in XML documentation 2022-08-08 22:34:31 +07:00
Aaron Franke ce0080768c
Make "Godot source files" comment consistent in modules 2022-08-05 17:09:11 +07: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 +07:00
Rémi Verschelde 199ea349f5
Merge pull request #57698 from bluenote10/feature/rename_translated_to_translated_local 2022-07-28 10:03:07 +07:00
FireForge 97dfbea6ad Rename Control PRESET_WIDE to PRESET_FULL_RECT 2022-07-18 20:08:11 +07:00
Fabian Keller 2bf9e6090c rename translate(d) to translate(d)_local in Transform 2D/3D 2022-07-16 11:47:54 +07:00
smix8 55923ade68 Add navigation layer bitmask helper functions
Adds helper functions to work with the navigation layer bitmask.
2022-06-19 13:47:19 +07:00
bruvzg b5c96df277
Move duplicate AutoWrap, Overrun and VisibleChar behavior enums to the TextServer. 2022-06-16 16:49:37 +07:00
smix8 245da150e7 Streamline Navigation layer function names.
Streamline Navigation layer function names.
2022-06-15 00:18:48 +07:00
FireForge 4678736a39 Add suffixes to all nodes and resources 2022-06-11 09:41:05 +07:00
smix8 cb8d95c271 Fix GridMap Navigation transforms and debug
Fix GridMap navigation transforms and debug.
2022-06-08 14:19:16 +07:00
smix8 cc0b525300 Fix GridMap applying wrong NavigationRegion transform
Fix GridMap applying wrong NavigationRegion transform.
2022-06-08 03:30:19 +07:00
FireForge 7f7244f04a Use consistent casing in editor filter/search bars 2022-05-28 18:43:16 +07:00
smix8 ae4b2597a1 Fix GridMap not adding custom mesh offsets to NavigationMesh generation
Fix GridMap not adding custom mesh offsets to NavigationMesh generation
2022-05-24 19:50:57 +07:00
reduz 45af29da80 Add a new HashSet template
* Intended to replace RBSet in most cases.
* Optimized for iteration speed
2022-05-20 22:40:38 +07:00
Aaron Record 900c676b02 Use range iterators for RBSet in most cases 2022-05-19 12:09:16 +07:00
Rémi Verschelde dc8c906b64
Merge pull request #58624 from dzil123/fix_update_gridmap_cursor 2022-05-16 15:31:11 +07: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 +07:00
kobewi 1dc7bcc83c Cleanup metadata usage 2022-05-06 00:27:10 +07:00
Rémi Verschelde 84f64ddde9
Merge pull request #60723 from reduz/refactor-module-initialization 2022-05-04 19:08:43 +07:00
reduz de0ca3b999 Refactor module initialization
* Changed to use the same stages as extensions.
* Makes the initialization more coherent, helping solve problems due to lack of stages.
* Makes it easier to port between module and extension.
* removed the DRIVER initialization level (no longer needed).
2022-05-04 17:34:51 +07:00
Hugo Locurcio 180e5d3028
Remove `RES` and `REF` typedefs in favor of spelled out `Ref<>`
These typedefs don't save much typing compared to the full `Ref<Resource>`
and `Ref<RefCounted>`, yet they sometimes introduce confusion among
new contributors.
2022-05-03 01:43:50 +07: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 +07:00
dzil123 726614ff4b fix gridmap cursor showing the wrong mesh 2022-04-02 01:53:36 +07:00
Rémi Verschelde 5fe6984639 Modules: Don't build editor-specific classes in templates
They're moved to an `editor` subfolder so that we can easily handle them
separately.
2022-03-28 16:48:15 +07:00
kobewi 2057ea2883 Remove duplicate editor settings definitions 2022-03-06 22:05:49 +07:00
kobewi cd6bd04cba Remove unimplemented set_clip() method 2022-03-02 00:44:30 +07: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 +07:00
Jakob Bouchard 6553f5c242
Convert _notification methods to switch - Chunk C 2022-02-16 13:03:05 +07:00
Haoyu Qiu 19a2ec3d04 Add GridMap.get_used_cells_by_item 2022-02-16 13:04:31 +07:00