Commit Graph

4292 Commits

Author SHA1 Message Date
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
c85768ae8a Added NOTIFICATION_QUITTING to MainLoop. 2025-02-08 11:24:16 +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
a096f653cc Inlined set_pressed_no_signal call into BaseButton::set_pressed(). 2025-02-08 09:58:49 +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
4ac888c7af Add the paint brush tool settings buttons to the proper container in TerrainWorldEditor. 2025-02-08 08:37:10 +01:00
0762caaf20 Reordered the main tool buttons in TerrainWorldEditor. 2025-02-08 08:31:29 +01:00
33bd758806 Removed the add and remove single tools from TerrainWorldEditor as they are not very useful for a terrain engine. 2025-02-08 08:28:38 +01:00
da336fdb73 Only show the surface selection when the paint brush is active in TerrainWorldEditor. 2025-02-08 08:04:13 +01:00
a46997b87f Added the ability to erase using the paint brush in TerrainWorldEditor. 2025-02-08 07:58:14 +01:00
f7a9f5201f Added liquid mode to the isolevel brush and paint brush tools in TerrainWorldEditor. 2025-02-08 07:49:26 +01:00
17e048a044 Added a new helper method to TerrainWorld. 2025-02-08 07:44:55 +01:00
16d62d3a34 Chunk remover tool initial setup in TerrainWorldEditor. 2025-02-07 14:45:40 +01:00
3f267dcbfc Make the expected tool settings shown by default in TerrainWorldEditor. 2025-02-07 12:58:50 +01:00
1da418523a Spawn brush initial setup in TerrainWorldEditor. 2025-02-07 12:57:16 +01:00
ba6a112efb Reorganized the tools in TerrainWorldEditor. Also made the Isolevel Brush the default. 2025-02-07 12:50:59 +01:00
ae987b83e9 Renamed the add and remove tools to add single and remove single voxel in TerrainWorldEditor. Also improved their gui a bit. 2025-02-07 12:47:06 +01:00
aeae3198ba Disable allow chunk creation for the paint brush and isolevel brush tools by default in TerrainWorldEditor. A new chunk spawner tool will be added instead soon. 2025-02-07 12:40:05 +01:00
70fe973810 Invert the logic of the isolevel brush smoothness calculation so it works as expected. 2025-02-07 12:34:54 +01:00
6539b25257 Start at max isolevel brush smoothness in TerrainWorldEditor. 2025-02-07 12:30:33 +01:00
5c2f5da950 Fix isolevel brush smoothness calculation in TerrainWorldEditor. 2025-02-07 12:27:12 +01:00
58698e2971 Allow 0 as the isolevel brush strength and smoothness in TerrainWorldEditor. 2025-02-07 12:19:08 +01:00
39b3a12b1a Handle a missing case when setting voxels in TerrainWorld. 2025-02-07 12:17:11 +01:00
39cb3e398f Reset the mesher's lod index in _reset() in TerrainTerrainJob. This fixes subsequent mesh generations. 2025-02-07 10:49:40 +01:00
2024a33ee9 Implemented chunk material invalidation support for TerrainLibraryMergerPCM. 2025-02-07 10:08:22 +01:00
e11e75e5ea Unlock the mutex after the rects are refreshed in the material cache in TerrainLibraryMergerPCM. 2025-02-07 08:49:11 +01:00
2688162cf9 Optimized editing in TerrainWorldEditor. 2025-02-06 17:42:53 +01:00
c13a4d08a5 Use the new immediate build mode in TerrainWorld's set_voxel_at_world_data_position(). 2025-02-06 17:22:42 +01:00
6be11c2bff Implemented an immediate build mode for TerrainChunk. 2025-02-06 17:22:10 +01:00
952553e9ad Clear meshes as needed in TerrainTerrainJob. 2025-02-06 17:21:35 +01:00
4a2d4af692 Clear meshes as needed in TerrainPropJob. 2025-02-06 17:21:24 +01:00
ac6be71368 Codestyle fix. 2025-02-06 17:20:58 +01:00
e435adde65 Codestyle fix. 2025-02-06 17:20:46 +01:00
26b6fc89f8 Fix crash on shutdown. 2025-02-05 20:35:32 +01:00
1a5be23b91 Udpate the gizmo size properly in TerrainWorldEditor. 2025-02-05 20:32:09 +01:00