Commit Graph

2136 Commits

Author SHA1 Message Date
b770c07a32 Always just defer call to the active UserManager or error in UserDB.
- Having an optional separate User list in UserDB when there is no
UserManager can lead to subtle bugs, so it got removed.
- It also had other limitations, like it was not possible to setup Users
properly, which could also lead to subtle bugs.
2025-05-11 14:10:32 +02:00
d8aa3140e1 Removed unused enum from User.
Note that WebPermission had the same enum if needed.
2025-05-11 11:53:15 +02:00
ebab8f1e0c Docs for the User class. 2025-05-11 11:50:32 +02:00
b438b2b35a Improve comment. 2025-05-11 11:50:20 +02:00
da142951ec Re-extracted class docs. 2025-05-11 08:49:52 +02:00
7c109ad4a0 Added read_try_lock and write_try_lock to User and UserModule. 2025-05-11 08:48:41 +02:00
516236de23 Added some comments to User. 2025-05-11 08:42:32 +02:00
0b56f22f87 Use module names instead of indexes if they are available in User::_from_dict() and User::_to_dict(). 2025-05-11 08:26:55 +02:00
abd7a0660e Write and read lock modules in User::_to_dict() and User::_from_dict(). 2025-05-11 08:20:07 +02:00
0e79057d11 Guard against bad indexes in User::_from_dict(). 2025-05-04 20:24:42 +02:00
f59632a7d3 Disabled integer division and unused signal warnings by default in gdscript. 2025-05-04 09:28:49 +02:00
ebd3280443 Automatically load sessions when HTTPSessionManagerFile enters tree. 2025-05-03 22:21:03 +02:00
45f2f77a58 Re-extracted class docs. 2025-05-03 22:12:14 +02:00
d36950fecb Added a new HTTPSessionManagerFile class. 2025-05-03 22:11:37 +02:00
8978925b2f Added serialization helper methods to HTTPSession. 2025-05-03 22:09:44 +02:00
5aa9a0db10 Hode session_id and id in HTTPSession. 2025-05-03 21:19:29 +02:00
7937fb6cae Disable internal process for UserManagerFile. It's not needed anymore. 2025-05-03 21:11:41 +02:00
3894d36ad3 Fix User::_from_dict() using wrong dictionary keys. 2025-05-03 20:53:47 +02:00
0927580e78 Fix saving files in UserManagerFile. 2025-05-03 20:51:16 +02:00
7ef5b152bc Fix calling the new _create_user() method in UserManager. 2025-05-03 20:41:28 +02:00
e9e2e72665 Now UserManager::_create_user() has a User as a parameter.
This shoukld make it easier to customize user creation. Similar idea to
how TerrainWorld's _create_chunk() works.
2025-05-03 20:25:32 +02:00
ca1f9c7674 Improved UserManagerFile's internals. 2025-05-03 20:13:52 +02:00
fd13bb3c51 Now get_all_as_vector() in UserManager is not virtual anymore. Also removed other implementations.
- This had to be done as get_all_as_vector() cannot be customized by
scripts, and if an inherited UserManager needs to set up UserModules
this will cause issues later down the line.
- Other solutions like a user_setup() method could also work, but then
that would cause more individual (non-optimizable) lookups to db-based
backends (and likely others too), so this solution seems to be the best
currently.
2025-05-03 17:07:24 +02:00
8a1981d1b8 Fix calling the wrong method in UserManager. 2025-05-03 16:57:34 +02:00
556de2db50 TerrainChunkDefault lod change code cleanups and improvements. Also set scenario on entering and exiting the tree. 2025-04-18 20:22:17 +02:00
61a43daa45 Removed unnecessary check. 2025-04-18 20:21:09 +02:00
64696b534b Don't destroy and re-generate meshes in TerrainChunk's _enter and _exit_tree, just hide / show them. This makes scene tab swithing with TerrainWorlds in the editor a lot simpler. 2025-04-18 19:50:17 +02:00
ae18822f95 Added PropDataESSEntityWorldSpawner3D class. Made PropDataESSEntityWorldSpawner3DArea and PropDataESSEntityWorldSpawner3DSingle inherit from it. 2025-04-18 13:28:10 +02:00
7681d71704 Temporary comments. 2025-04-15 10:32:31 +02:00
526209c1a4 Re-extracted class docs. 2025-04-15 10:19:14 +02:00
52d17cacd2 Added prop support for PropDataESSEntityWorldSpawner3DArea. 2025-04-15 10:18:20 +02:00
9c3ac7c4f8 Added prop support for ESSEntityWorldSpawner3DSingle. 2025-04-15 10:03:21 +02:00
1d37a1cf28 Fix drawing line colors in WorldSpawner3DSpatialGizmoPlugin. Also better colors. 2025-04-14 18:40:16 +02:00
d03decb983 Fix the spawn position line height in WorldSpawner3DSpatialGizmoPlugin. 2025-04-14 18:16:36 +02:00
bdda27e116 Fix drawing the spawn slots in ESSEntityWorldSpawner3DArea's gizmo. 2025-04-14 18:16:13 +02:00
df9be4f17d Implemented spawn entry editing to ESSEntityWorldSpawner3DArea. 2025-04-14 16:30:55 +02:00
2a249c8f25 ESSEntityWorldSpawner3DArea initial implementation. 2025-04-14 16:08:44 +02:00
12eade8158 Fix the type of the respawn time properties in ESSEntityWorldSpawner3DSingle. 2025-04-14 16:07:50 +02:00
c59cf944c2 Zero out the entity's ObjectID in ESSEntityWorldSpawner3DSingle when exiting tree. 2025-04-14 14:40:27 +02:00
48d68c0896 Renamed the level property to entity_level in ESSEntityWorldSpawner3DSingle. 2025-04-14 14:39:36 +02:00
a61442d567 Added spawn_area_extents property to ESSEntityWorldSpawner3DArea and implemented an editor gizmo for it. 2025-04-14 13:50:31 +02:00
79f54f71bf Don't use octahedral compression in the prop module's gizmos. 2025-04-14 13:49:29 +02:00
885089ad1f Added ESSEntityWorldSpawner3DArea class. 2025-04-14 12:28:51 +02:00
7b321db257 Re-extracted class docs. 2025-04-14 12:28:40 +02:00
ffe171e840 Implemented respawn support for ESSEntityWorldSpawner3DSingle. 2025-04-14 09:26:19 +02:00
b88b25409b Now Entities can store their spawner's ObjectID. 2025-04-14 09:25:34 +02:00
5c105a15fb Call spawn as deferred in ESSEntityWorldSpawner3DSingle instead of requesting a deferred entity spawn. 2025-04-14 08:27:24 +02:00
12b42eaab1 Rotate the text by 180 degrees in WorldSpawner3DSpatialGizmoPlugin. 2025-04-13 21:25:32 +02:00
b2f33108fa Added an editor gizmo plugin for TiledWalls so they can be selected in the spatial editor directly. 2025-04-13 21:07:01 +02:00
d2ba6585c4 Implemented ESSEntityWorldSpawner3DSingle. 2025-04-13 20:43:48 +02:00
b718228923 Write the spawner's name to the world in the WorldSpawner3DSpatialGizmoPlugin. 2025-04-13 19:58:55 +02:00
b792287b6e Added a Spatial Gizmo plugin for ESSEntityWorldSpawner3D. 2025-04-13 19:18:05 +02:00
26c53fd16d Added 3 new helper classes for the entity spell system. ESSEntityWorldSpawner3D, ESSEntityWorldSpawner3DSingle, ESSEntityWorldSpawner2D. 2025-04-13 18:54:12 +02:00
570bcaee0f Re-extracted class docs for terraman. 2025-04-13 18:52:58 +02:00
a21b5a843e Re/enabled the entity_spell_system's editor plugin, and disabled it's tool menu item. 2025-04-13 18:25:58 +02:00
c16c5d35f4 Bind is_priority_generation bool in TerrainWorld. Also set it to false in the constructor, but set it to true when eneteeing tree if the world already has chunks loaded. 2025-04-12 22:53:18 +02:00
9289351284 Also check whether chunks are building when doing a priority generation. 2025-04-08 09:17:12 +02:00
82218be991 Fix visibility toggling in TerrainChunkDefault even if lods are disabled. 2025-04-08 08:58:21 +02:00
97380e3f53 Only build the chunk in TerrainWorld::chunk_add() if the world is in the tree. 2025-04-08 08:32:37 +02:00
d99577365c Call chunk's enter_tree and set voxel world on entering the tree in TerrainWorld. 2025-04-08 08:31:53 +02:00
4d23866ac5 Call TerrainWorldDefault's _create_chunk() and _setup_chunk() in TerrainWorldBlocky. 2025-04-08 08:31:00 +02:00
4c2ae4dc8b Fix error message on startup. 2025-04-07 22:13:14 +02:00
bd476c1d66 Split _create_chunk() to _create_chunk() and _setup_chunk() in TerrainWorld.
Unfortunately this is a breaking change. (Very slight though.)
Now _create_chunk() should be used to initialize serialized properties
in chunks. The new _setup_chunk() virtual should be used to initialize
other non/serialized properties (like meshers).
Fortunately the only thing that needs to be done is to split old
_create_chunk() into two.
Note that when using procedural generation, the old way should just work
without any updates necessary. This change is only needed when loading
of chunks is desired.
2025-04-07 22:06:04 +02:00
32487af081 Implement TerrainWorldChunkDataManagerStaticFolderResources. 2025-04-07 22:01:12 +02:00
bb32eab4ca Fix typo. 2025-04-07 22:01:04 +02:00
b7bfd13ec4 Added a force save all chunks button to TerrainWorld's inspector if a TerrainWorldChunkDataManager is set. 2025-04-07 17:37:26 +02:00
9fefe64c3b Added force_save_all_chunks() method to TerrainWorld. 2025-04-07 17:30:29 +02:00
c64e9e1131 Added chunk saving api to TerrainWorldChunkDataManager. 2025-04-07 17:27:47 +02:00
117f6cffd1 Now TerrainWorld won't save it's chunks into scenes in the editor anymore if a TerrainWorldChunkDataManager is set. 2025-04-07 17:04:57 +02:00
5dbfdac48e Now TerrainWorld uses TerrainWorldChunkDataManagers if they are available. 2025-04-07 12:53:51 +02:00
e88789ba9e Added TerrainWorldChunkDataManager class to support loading and saving TerrainWorld chunks dynamically to and from disk. 2025-04-07 12:53:00 +02:00
9bb5495776 Re-extracted class doc for PropInstance. 2025-04-07 12:49:51 +02:00
7e999a3d5d Added a simple gizmo for PropInstances. This makes PropInstances selectable with the mouse in the Spatial editor. 2025-04-07 01:46:01 +02:00
7cfebd1eaf Now PropInstance inherits from VisualInstance. Set up it's AABB calculation. 2025-04-07 01:44:43 +02:00
8cc8c4c7b4 Return the actual AABB in TiledWall::get_aabb(). 2025-04-07 01:43:42 +02:00
aacd20d9dd Re-extracted class docs. 2025-04-04 19:03:05 +02:00
c094e070c7 Now TerrainChunks will register their lights into the VertexLights3DServer if use_vertex_lights_3d is enabled in world. 2025-04-04 18:15:33 +02:00
1ac803de1c Make use of the VertexLights3DServer in TerrainChunkDefault::_bake_lights() if enabled. 2025-04-04 17:45:11 +02:00
a4ff7e9e66 Added use_vertex_lights_3d property to TerrainWorld. 2025-04-04 17:44:42 +02:00
83e68549d5 Added VertexLight3D baking tool to TerrainWorldEditor. 2025-04-04 16:25:41 +02:00
20f5439a82 Fix TerrainChunk::light_remove_index() not actually remoing lights. 2025-04-04 16:24:48 +02:00
ffa4cf938f Added more helper methods to TerrainWorld. 2025-04-04 16:24:30 +02:00
7a50eedd5a Added item_cull_mask property to TerrainLight. 2025-04-04 16:24:12 +02:00
4f0050f019 Added light_mode property to TerrainLight. 2025-04-04 15:44:53 +02:00
d37176539e Removed OWNER_TYPE_VERTEX_LIGHT_3D from TerrainLight. 2025-04-04 15:36:37 +02:00
538a17950b Small tweaks to the info outputs in TerrainWorldEditor. 2025-04-04 15:13:37 +02:00
a8c47eed08 Fix method call in TerrainWorldEditor. 2025-04-04 15:08:32 +02:00
62a5bc1be8 Added MeshDataInstance baking tool to TerrainWorldEditor. 2025-04-04 15:06:06 +02:00
74ddba1eb1 Added mesh_data_resource_add() helper method to TerrainWorld. 2025-04-04 15:05:31 +02:00
f770c598ed Now TerrainChunks can also store a name and material for MeshDataResources. 2025-04-04 15:05:05 +02:00
a0219e12e6 Don't create prop baking tool buttons if the Props module is disabled. 2025-04-04 12:42:03 +02:00
77d9f5debd Added a scene baking tool to TerrainWorldEditor. 2025-04-04 12:39:37 +02:00
3f817947c7 Fix logic in TerrainChunk::scenes_set() and TerrainChunk::props_set(). 2025-04-04 12:39:21 +02:00
f9172bddd5 Fix typo. 2025-04-04 10:55:27 +02:00
dc4de19aaf Return and set the name with the props property in TerrainChunk. 2025-04-04 10:54:54 +02:00
0847706fa2 Implement setting a name to scenes in TerrainChunk. 2025-04-04 10:53:12 +02:00
5d036590dd Fix typo. 2025-04-04 09:20:06 +02:00
dd98d9e7e5 Added tooltips for the bake props tool's buttons in TerrainWorldEditor. 2025-04-04 09:18:45 +02:00
7e52eb6b43 Now props added to TerrainWorld can also have a name. The prop bake editor tool uses it to save and restore node names. 2025-04-04 01:27:22 +02:00
474ab893d6 Implemented Bake Props tool for TerrainWorldEditor. 2025-04-04 01:14:53 +02:00