summaryrefslogtreecommitdiffstats
path: root/modules/multiplayer
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #83279 from Faless/mp/fix_delta_indexedRémi Verschelde2023-10-131-1/+1
|\ | | | | | | [MP] Fix "on change" indexed properties
| * [MP] Fix "on change" indexed propertiesFabio Alessandrelli2023-10-131-1/+1
| | | | | | | | Watchers were still using Object::get instead of Object::get_indexed.
* | [MP] Fix synchronizer init and resetFabio Alessandrelli2023-10-132-7/+13
|/ | | | | | | | 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.
* [MP] Optimize internal SceneReplicationConfig accessFabio Alessandrelli2023-10-104-10/+15
| | | | Use direct pointer addressing to avoid unnecessary refs/unrefs
* [MP] Avoid unnecessary internal ref/unrefsFabio Alessandrelli2023-10-106-20/+32
| | | | | Access the various internal components (cache/replicator) via pointer, to avoid unnecessary overhead.
* [MP] Optimize internal authority checksFabio Alessandrelli2023-10-103-25/+28
| | | | | We already know which MultiplayerAPI a certain Node uses, so we don't need to retrieve it via SceneTree every time.
* [MP] Optimize multiplayer NodePath cachingFabio Alessandrelli2023-10-103-27/+36
| | | | | | Only use paths during network transfer. Use ObjectID instead of NodePaths for storing the Node <-> NetID relations locally.
* [Modules] Replace `ERR_FAIL_COND` with `ERR_FAIL_NULL` where applicableA Thousand Ships2023-09-267-36/+36
|
* Replace flat buttons with flat-styled buttons with a visible pressed stateYuri Sizov2023-09-191-1/+6
|
* Fix accessing editor theme items throughout the UIYuri Sizov2023-09-151-1/+1
| | | | This also exposes `EditorInterface::get_editor_theme`.
* Extract ScriptInstance to simplify includesYuri Sizov2023-09-061-0/+1
| | | | | | | | | 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.
* Add EditorStringNames singletonkobewi2023-09-032-18/+20
|
* [MP] Improve ReplicationEditor UXFabio Alessandrelli2023-08-302-59/+53
| | | | | Use an option button for the replication mode making sync and watch (now "Always" and "On Change") mutually exclusive.
* [MP] Make replication mode an enum + optimizationsFabio Alessandrelli2023-08-303-81/+149
| | | | | | | | | | 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.
* Allow enter key to add properties to replication editor listthe-sink2023-08-292-1/+14
|
* [MP] Fix watch properties not being correctly removedFabio Alessandrelli2023-08-271-0/+1
|
* [MP] Use get/set indexed in MultiplayerSynchronizerFabio Alessandrelli2023-07-141-2/+2
| | | | | | | | | | | | 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).
* Doctool: Remove version attribute from XML headerRémi Verschelde2023-07-064-4/+4
| | | | | | 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).
* Bump version to 4.2-devRémi Verschelde2023-07-054-4/+4
| | | | Keep on waitin'
* [MP] Fix delta variables index decoding.Fabio Alessandrelli2023-06-261-2/+1
|
* Fix `MultiplayerSpawner` documentationNinni Pipping2023-06-231-1/+1
|
* Merge pull request #78409 from AThousandShips/spawn_func_fixFabio Alessandrelli2023-06-231-1/+1
|\ | | | | Do not serialize `MultiplayerSpawner.spawn_function`
| * Do not serialize `MultiplayerSpawner.spawn_function`Ninni Pipping2023-06-181-1/+1
| |
* | Ensure `RID`, `Callable`, and `Signal` are stored as stringsNinni Pipping2023-06-222-2/+2
| | | | | | | | | | Prevents parser errors in `.tscn` and `.tres` files where the assignment would otherwise be empty.
* | Clarify when things with _IDLE and _PHYSICS enums will runL4Vo52023-06-201-2/+2
|/
* Style: Harmonize header includes in modulesRémi Verschelde2023-06-1513-23/+19
| | | | | | | | | | | | | | | | | | | | 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
* [MP] Fix crash when sending multiple delta variants.Fabio Alessandrelli2023-06-111-0/+1
|
* Fix more issues with code tags in class referenceRedworkDE2023-05-291-2/+2
|
* Add restrictions to MultiplayerSynchronizer editor and documentationNinni Pipping2023-05-243-0/+71
|
* [MP] Implement "watched" properties.Fabio Alessandrelli2023-05-2413-50/+422
| | | | | Checked at "delta_interval" (default = every frame), synchronized (reliably) if changes are detected.
* Validate code tags in documentation for potential paramsYuri Sizov2023-04-264-16/+16
| | | | | | | 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.
* Decouple EditorInterface from EditorPluginYuri Sizov2023-04-171-1/+2
| | | | | - Simplify some includes in the process. - Also exposes EditorInterface.movie_maker_enabled as a property.
* Improve includes of EditorNode (and everything else)Yuri Sizov2023-04-071-1/+1
| | | | | | 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.
* Fix premature theme item access in editor toolsYuri Sizov2023-04-032-17/+51
|
* Fixups to list handling in SceneReplicationConfigMai Lavelle2023-03-071-4/+12
| | | | Wrong paths were being inserted leading to duplicates / missed properties.
* Bump version to 4.1-devRémi Verschelde2023-03-014-4/+4
| | | | Can't stop, won't stop, they said, huh?
* Minor typo and docs URL fixesRémi Verschelde2023-02-281-1/+1
|
* [MP] Fix replication config not updating sync/spawn props from code.Fabio Alessandrelli2023-02-231-0/+12
|
* [MP] Add a "synchronized" signal to MultiplayerSynchronized.Fabio Alessandrelli2023-02-203-0/+7
| | | | | Emitted upon receiving a valid sync packet after setting the variables state.
* Fix multiplayer replication crash in on_sync_receive.baptr2023-02-141-2/+4
| | | | | | | | | | | | | | | | | A number of early continue cases applied the packet-provided `size` without validation, allowing large uint32_t values to be treated as negative offsets and leading to segfaults. Now, we validate `size` against the buffer length immediately to avoid a crash. This could be triggered by receiving sync data for a synchronizer who's root node had just been removed, since the code path that checked for unusable sync state failed to advance the offset. Thus the next read could interpret part of the payload as such an invalid `size`. Now, we properly advance the read offset in that case (and raise a better error).
* [MP] Fix MultiplayerSpawner not connecting to child_entered_tree.Fabio Alessandrelli2023-02-121-0/+18
| | | | | | | | | The connection used to happen during enter_tree, but this was causing issues when setting the spawnable scenes from code. The spawner now connects/disconnects to the signal during add_spawnable_scene/clear_spawnable_scenes if the node is inside tree and has a valid spawn_path.
* Improve some editor strings for localizationHaoyu Qiu2023-02-091-2/+4
|
* Convert en_GB spelling to en_US with codespellRémi Verschelde2023-01-232-2/+2
|
* Merge pull request #71379 from KoBeWi/destruction_of_compatibility_functionRémi Verschelde2023-01-181-3/+1
|\ | | | | Remove set_drag_forwarding_compat()
| * Remove set_drag_forwarding_compat()kobewi2023-01-141-3/+1
| |
* | [MP] Fix nested spawning during "ready".Fabio Alessandrelli2023-01-174-15/+50
| | | | | | | | | | | | We want our spawns to be notified after ready, but we need to notify them in the order they entered tree, so that nested spawners can be used during "ready" (instead of having to await a frame).
* | Add EditorUndoRedoManager singletonkobewi2023-01-161-3/+3
|/
* Merge pull request #71127 from reduz/drag-forward-to-callablesRémi Verschelde2023-01-111-1/+1
|\ | | | | Change set_drag_forwarding() to use callables.
| * Change set_drag_forwarding() to use callables.Juan Linietsky2023-01-101-1/+1
| | | | | | | | | | | | | | | | * 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
* | Merge pull request #70721 from Faless/mp/4.x_fix_relay_optionRémi Verschelde2023-01-092-1/+1
|\ \ | | | | | | | | | [MP] Fix server_relay being unsettable.