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
5d3aa83ffa
Rebuild chunks in TerrainWorld::prop_add().
2025-04-04 01:14:23 +02:00
fb08c49ab6
Make sure the prop meshes are cleared from previous runs before returning early in TerrainPropJob.
2025-04-04 01:13:50 +02:00
5ad5d65705
Call emit_changed() in TerrainChunk setters. Also a setter fix.
2025-04-04 00:32:30 +02:00
1e4aaa412a
Set up baking tools page in TerrainWorldEditor.
2025-04-03 22:56:15 +02:00
35b072e1df
Reworked the new GLOBAL_GET_CACHED macro.
2025-03-31 12:51:27 +02:00
lawnjelly
8a735a3c02
Physics Interpolation - Move 3D FTI to SceneTree
...
Moves 3D interpolation from `VisualServer` to the client code (`SceneTree`).
Complete rework of 3D physics interpolation, but using the same user API.
2025-03-31 08:23:44 +02:00
lawnjelly
d149a59513
Add GLOBAL_GET cached macros.
...
GLOBAL_GET is an expensive operation which should not be used each frame / tick.
This PR adds macros which do a cheaper revision check, and only call the expensive GLOBAL_GET when project settings have changed.
Co-authored-by: Lukas Tenbrink <lukas.tenbrink@gmail.com>
2025-03-31 07:58:52 +02:00
320da06260
Fix windows build.
2025-02-14 19:51:19 +01:00
f56182466f
Fix compile on windows, osx, and javascript. (Hopefully.)
2025-02-14 19:43:35 +01:00
b248a28ccf
More tweaks to TerrainChunk's new scene api.
2025-02-14 18:02:32 +01:00
9841d6fdc8
Small variable name tweak.
2025-02-14 17:51:08 +01:00
10c5076819
Added the new scene_add() method to TerrainWorld. Also store scenes from props inside chunks.
2025-02-14 17:49:07 +01:00
9d6ec2bb65
Tweaks and improvements to TerrainChunk's new scene api.
2025-02-14 17:48:33 +01:00
39eeba0efd
Added scene storage api to TerrainChunks.
...
Also mass replaced the typo "tarnsform" to "transform", and fixed a
parameter name in a TerrainChunk binding.
2025-02-14 16:57:32 +01:00
418bac4209
Added owned_lights property to TerrainChunk. Also changed the lights property it is now scripting only, it won't get saved.
2025-02-14 16:39:25 +01:00
6e9e3fd580
Now TerrainLights inherit from Resource.
2025-02-14 16:27:21 +01:00
6786193010
Added to_dict() and from_dict() methods to TerrainLight/
2025-02-14 16:25:37 +01:00
601185c2bd
Set prop ownership to lights in TerrainWorld::prop_add().
2025-02-14 16:09:21 +01:00
1c14d1cb4c
Store ownership information in TerrainLights.
2025-02-14 16:09:01 +01:00
7006c947cd
Store whether a mesh_data_resource in a TerrainChunk is original or not.
2025-02-14 15:49:39 +01:00
2054f60c6d
Renamed the new original parameter in TerrainChunk and TerrainWorld's prop api from owner to original.
2025-02-14 15:32:54 +01:00
0a87629b01
Set prop ownership when adding them in TerrainWorld.
2025-02-14 15:28:45 +01:00
1643197af3
Now TerrainChunks will remember whether they own a prop or not. Also added and bound missing methods to Chunk's prop api.
2025-02-14 15:28:14 +01:00
954ca26471
Make sure the remaining chunks are notified of the changed world lights when adding / removing chunks.
2025-02-11 00:50:21 +01:00
583298dbfe
Now TerrainLights are stored inside chunks (they are also automatically saved with them). Also changed TerrainLight's api to makes use of Vector3i.
2025-02-11 00:38:48 +01:00
eb3ed4fa20
Now props and mesh data resources are saved with the TerrainChunks.
2025-02-10 17:48:11 +01:00
b0177a2c3a
Only generate chunks once.
2025-02-10 15:24:16 +01:00
23614770f1
Simplify chunks_set() in TerrainWorld.
2025-02-08 15:55:40 +01:00
42a2979d3e
Fix isolevel paint and paint brush tools always allowing chunk creation.
2025-02-08 15:10:23 +01:00
a980238482
Add the new chunk to the generation queue instead of directly calling it's build method in TerrainWorld::chunk_add().
2025-02-08 14:47:29 +01:00
64a14fee17
Also expose the liquid data in TerrainChunkBlocky.
2025-02-08 14:40:07 +01:00
c9089867f9
Fix typo.
2025-02-08 14:39:35 +01:00
9142f7c806
Implemented the spawn chunks and remove chunks tool in TerrainWorldEditor.
2025-02-08 14:23:23 +01:00
4886ff454b
Call TerrainChunk's build() after it's added to a World manually.
2025-02-08 14:22:55 +01:00
4ac6095509
Added a new helper method to TerrainWorld.
2025-02-08 14:22:31 +01:00
d0fa4ba194
Clear the material cache data in TerrainChunk::_exit_tree().
2025-02-08 14:22:03 +01:00
a2784fd2a0
Implemented the gui for the chunk spawn and chunk remove tools in TerrainWorldEditor.
2025-02-08 13:14:43 +01:00
ebcac318e7
TerrainWorldEditor variable name tweaks.
2025-02-08 12:50:26 +01:00
12214cb8c7
Fix potential hang on exit due to deadlocks.
2025-02-08 11:24:42 +01:00
b264a837a8
Implemented the paint picker tool in TerrainWorldEditor. Also improved the editor's Button signal setup.
2025-02-08 09:59:41 +01:00
175f67fd74
Tewaks to the main tool labels in TerrainWorldEditor.
2025-02-08 09:11:17 +01:00
fb9c71726c
Implemented the paint picker tool's ui in TerrainWorldEditor.
2025-02-08 09:10:54 +01:00