Commit graph

126 commits

Author SHA1 Message Date
Haoyu Qiu
91204f6f3f Fix missing i18n for some editor strings 2024-04-03 16:42:28 +08:00
Haoyu Qiu
8cfded5934 Improve replication editor's pin button
- When unpressed, only hide the editor if MultiplayerSynchronizer is not
  selected.
- Add tooltip text.
2024-03-25 23:12:26 +08:00
Thaddeus Crews
9903e6779b
Enforce template syntax typename over class 2024-03-07 22:39:09 -06:00
Hugo Locurcio
8221e7546b
Add editor shortcuts to toggle bottom panel visibility
Default shortcuts use the first or second letter of each word.

This also adds a new shortcut to toggle the last opened bottom panel.
On editor startup, this defaults to the first panel in the list
(which is the Output panel).
2024-03-05 15:53:15 +01:00
Fabio Alessandrelli
45e8fa10c1 [MP] Fix replication config reload error
Override the `reset_state` method to properly handle reloading the
resource from disk.
2024-03-03 11:13:00 +01:00
Max Hilbrunner
bd8380db55 Fix removing connected peer during disconnection 2024-02-25 18:44:02 +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
Rémi Verschelde
4582ee1a0f
Merge pull request #87760 from kitbdev/extract-bottom-dock
Extract BottomPanel from EditorNode
2024-02-23 22:18:50 +01:00
Rémi Verschelde
b15105a358
Merge pull request #88641 from Calinou/doc-add-keywords
Add keywords to improve search in the class reference
2024-02-22 16:53:59 +01:00
Hugo Locurcio
f781571d07
Add keywords to improve search in the class reference 2024-02-22 16:16:49 +01:00
Rémi Verschelde
48a1a78390
Merge pull request #86260 from Faless/mp/fix_2way_auth
[MP] Fix auth not waiting for confirmation in some cases
2024-02-21 15:22:46 +01:00
kit
eb6ca91ba6 Extract BottomPanel from EditorNode 2024-02-20 15:09:07 -05:00
Rémi Verschelde
6037500219
Merge pull request #69032 from KoBeWi/check_every_changed_setting_in_every_group_everywhere()
Use `check_changed_settings_in_group()` everywhere
2024-02-20 19:34:30 +01:00
Rémi Verschelde
07254d9b1b
Merge pull request #88443 from Mickeon/documentation-hunting-for-deprecated
Update many Deprecated/Experimental descriptions for consistency
2024-02-20 11:12:07 +01:00
kobewi
a031911c82 Use check_changed_settings_in_group() everywhere 2024-02-19 21:34:45 +01:00
Micky
f9a758772a Update many Deprecated/Experimental descriptions for consistency 2024-02-17 21:33:12 +01:00
Rémi Verschelde
21f0529aa9
Revert "Update Node::get_configuration_warnings signature"
This reverts commit d3852deaa4.
2024-02-17 19:03:21 +01:00
Rémi Verschelde
39fcef1b2f
Merge pull request #88326 from brennennen/cmd_mask_comment_typo
Fixed binary representation typo in comment
2024-02-15 15:45:11 +01:00
Danil Alexeev
af28f87791
Documentation: Add support for deprecated/experimental messages 2024-02-15 15:59:50 +03:00
brennen
26d9fbaf52 Fixed binary representation typo in comment 2024-02-14 07:59:12 -06:00
A Thousand Ships
684752e75b
Replace error checks against size with is_empty 2024-02-09 12:50:15 +01:00
RedMser
d3852deaa4 Update Node::get_configuration_warnings signature 2024-02-08 23:05:20 +01:00
Rémi Verschelde
8b0c5f2fca
Merge pull request #87186 from Faless/mp/fix_remote_sync_cleanup
[MP] Fix remote net ID cleanup
2024-02-03 23:18:35 +01:00
Rémi Verschelde
f4fb4799ae
Merge pull request #87185 from Faless/mp/fix_reset
[MP] Fix spawned nodes not working after reset
2024-02-03 23:18:08 +01:00
Fabio Alessandrelli
853df2895a [MP] Handle cleanup of "scene cache" nodes
Make sure we delete the relevant ObjectID from the cache when the nodes
are removed from tree.
2024-01-18 21:18:54 +01:00
Yuri Sizov
95b27fe8c7 Reorganize code related to editor theming
This change introduces a new EditorThemeManager class
to abstract theme generatio and its subroutines.

Logic related to EditorTheme, EditorColorMap, and editor
icons has been extracted into their respective files with
includes cleaned up.

All related files have been moved to a separate folder to
better scope them in the project. This includes relevant
generated files as well.
2024-01-16 11:57:45 +01:00
Fabio Alessandrelli
754036f82f [MP] Fix auth not waiting for confirmation in some cases
The auth implementation was treating any received packet as a remote
confirmation after the peer was confirmed locally.

It now correctly awaits for the remote confirmation packet before
admitting new peers.
2024-01-14 21:38:06 +01:00
Fabio Alessandrelli
89dacb88ec [MP] Fix remote net ID cleanup
Synchronizers for spawned nodes were not correctly keeping track of the
net ID assigned by the remote, preventing the replication from
performing the proper cleanup.

This resulted in errors being thrown when sync messages were received
after despawn (which is possible due to their unreliable nature).
2024-01-14 21:04:03 +01:00
Fabio Alessandrelli
cb08f2a968 [MP] Fix spawned nodes not working after reset
Ensures that spawnable nodes (i.e. spawned nodes over which the local
instance has authority) always have a network ID, since they may lose it
after the multiplayer is reset (e.g. when changing the multiplayer peer).
2024-01-14 20:54:41 +01:00
Muller-Castro
96a95cb974 Add const lvalue ref to container parameters 2024-01-05 14:49:57 -03:00
Fabio Alessandrelli
4826c14d20 [MP] Fix complete_auth notifying the wrong peer
The SceneMultiplayer complete_auth method was not configuring the
multiplayer peer correctly, causing it to potentially send the
notification to the wrong peer, on the wrong channel, and/or with an
incorrect transfer mode.
2023-12-17 12:27:24 +01:00
Rémi Verschelde
325cc0178e
Merge pull request #83279 from Faless/mp/fix_delta_indexed
[MP] Fix "on change" indexed properties
2023-10-13 22:20:21 +02:00
Fabio Alessandrelli
9d44954a3f [MP] Fix "on change" indexed properties
Watchers were still using Object::get instead of Object::get_indexed.
2023-10-13 16:53:24 +02:00
Fabio Alessandrelli
f79b90a6c0 [MP] Fix synchronizer init and reset
Fix set_multiplayer_authority not resetting the synchronizer.

Fix the reset function not clearing the watchers state.

Skip wrap around check for the first sync packet after reset.
2023-10-13 14:03:40 +02:00
Fabio Alessandrelli
5df7577a05 [MP] Optimize internal SceneReplicationConfig access
Use direct pointer addressing to avoid unnecessary refs/unrefs
2023-10-10 14:42:54 +02:00
Fabio Alessandrelli
311a27281f [MP] Avoid unnecessary internal ref/unrefs
Access the various internal components (cache/replicator) via pointer,
to avoid unnecessary overhead.
2023-10-10 14:42:54 +02:00
Fabio Alessandrelli
9ce423914e [MP] Optimize internal authority checks
We already know which MultiplayerAPI a certain Node uses, so we don't
need to retrieve it via SceneTree every time.
2023-10-10 14:42:54 +02:00
Fabio Alessandrelli
61cf7d180c [MP] Optimize multiplayer NodePath caching
Only use paths during network transfer.
Use ObjectID instead of NodePaths for storing the Node <-> NetID
relations locally.
2023-10-10 14:42:48 +02:00
A Thousand Ships
517e9f8aef [Modules] Replace ERR_FAIL_COND with ERR_FAIL_NULL where applicable 2023-09-26 16:44:52 +02:00
Yuri Sizov
4bd569be95 Replace flat buttons with flat-styled buttons with a visible pressed state 2023-09-19 22:36:29 +02:00
Yuri Sizov
8ecc0c4f47 Fix accessing editor theme items throughout the UI
This also exposes `EditorInterface::get_editor_theme`.
2023-09-15 14:51:01 +02:00
Yuri Sizov
d8ff69d53c Extract ScriptInstance to simplify includes
This allows to include script_instance.h directly in the
generated gdvirtual.gen.inc, and remove excessive includes
from the codebase.

This should also allow Resource to use GDVIRTUAL macros,
which wasn't possible previously due to a circular dependency.
2023-09-06 22:54:38 +02:00
kobewi
6de34fde27 Add EditorStringNames singleton 2023-09-03 19:58:18 +02:00
Fabio Alessandrelli
c1c6911b5c [MP] Improve ReplicationEditor UX
Use an option button for the replication mode making sync and watch (now
"Always" and "On Change") mutually exclusive.
2023-08-30 15:37:42 +02:00
Fabio Alessandrelli
711e96edc4 [MP] Make replication mode an enum + optimizations
REPLICATION_MODE_ALWAYS (sync) and REPLICATION_MODE_ON_CHANGE (watch)
are now mutually exclusive.

Prevent invalid NodePath from being added to the config.

Optimize the replication config loading by composing the lists on
demand.
2023-08-30 15:00:39 +02:00
the-sink
8f80ebc035 Allow enter key to add properties to replication editor list 2023-08-29 19:29:01 -07:00
Fabio Alessandrelli
3860f2e366 [MP] Fix watch properties not being correctly removed 2023-08-27 10:53:04 +02:00
Fabio Alessandrelli
b6dc799e64 [MP] Use get/set indexed in MultiplayerSynchronizer
Allows synchronizing (sub-)resource properties, transform components,
etc. by using subnames.

As an example, `.:transform.x` will only synchronize the `x` component
of the root transform instead of the whole transform.

This can also be used to synchronize a resource own properties, as long
as they are synchronizable (i.e. the property itself is not an Object,
RID, or Callable).
2023-07-14 20:50:55 +02: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 +02:00
Rémi Verschelde
346f1ab86b
Bump version to 4.2-dev
Keep on waitin'
2023-07-05 22:07:03 +02:00