Commit Graph

312 Commits

Author SHA1 Message Date
0f5158edeb Better _set_voxel_with_tool for the Marching Cubes world. 2020-10-24 17:53:34 +02:00
cd341b9475 Fix typo in comment. 2020-10-24 17:53:14 +02:00
cf370025fc Moved the position calculation from the world editor to a virtual method inside VoxelWorld. 2020-10-24 02:41:32 +02:00
c4eb758d20 Added _THREAD_SAFE_CLASS_ declaration to VoxelChunk and also made job-related methods thread safe. 2020-10-23 19:47:04 +02:00
9824738095 Make sure VoxelPropJob calls next job and sets itself to complete properly on every codepath. 2020-10-20 22:04:29 +02:00
50701f1740 Also add the new lod generation code to the prop job. 2020-10-20 17:10:26 +02:00
6e68267bd0 My mesh utils module is now an optional dependency. The terrarin job will use it to simplify meshes over lod level 4. 2020-10-20 16:29:39 +02:00
5a9b99c199 Missing guards, and fixed an ERR_FAIL_INDEX_V. 2020-10-12 18:53:35 +02:00
e14bc67da8 Implement isolevel support for the voxel editor. 2020-10-12 16:39:52 +02:00
33030e485a properly call set_complete in VoxelLightJob. This fixes non-threaded chunk builds. 2020-10-08 11:23:27 +02:00
9de15f0b0f Uncomment a mesh data resource check. Also handle if phase gets too high in VoxelTerrarinJob. 2020-10-07 11:54:30 +02:00
e42931597c Fix compile for 4.0. 2020-10-06 23:15:32 +02:00
0e4e59e970 Remove create_mesher and _create_mesher from chunks. Mesher creating now should be handled by the world itself in _create_chunk. This makes worlds able to use different chunk mesher setups for different parts of a world. Also this cust down the amount of classes that you need to create if you are implementing a new mesher. 2020-10-06 19:43:49 +02:00
3add3daef4 VoxelPropJob now works. 2020-10-06 19:24:58 +02:00
989e82b332 Small cleanups. 2020-10-06 12:29:16 +02:00
8c06a778f2 Now generation works again. Also removed some stray debug prints, and small cleanups. 2020-10-06 00:05:06 +02:00
14735b8569 Fix running the first job. 2020-10-05 22:34:11 +02:00
08c2fc8fc1 More work on the logic. 2020-10-03 21:58:24 +02:00
eb1d55f05b More work on the logic, and api fixes. 2020-10-03 17:18:43 +02:00
235943f7ca Removed the old meshing implementation, and replaced most logic to the new one. The code compiles, but it won't work for now. Also other cleanups. 2020-10-02 23:47:39 +02:00
0db9475db1 Added get_current_job_index and next_job tp VoxelChunk. 2020-10-02 16:49:36 +02:00
46132202b0 Added generation specific process and physics process to VoxelChunk and VoxelJob. 2020-10-02 16:45:08 +02:00
43bb7dfa66 Add back the next_phase call into the new jobs. 2020-10-02 14:53:45 +02:00
3f04002453 Fix errors with bindings 2020-10-02 12:24:00 +02:00
a25862527c More work on VoxelJob's api. 2020-10-02 12:19:24 +02:00
643f76f7e8 Also add the reset code to VoxelPropJob. 2020-10-01 23:51:10 +02:00
8ff53e4299 Added VoxelPropJob. 2020-10-01 23:43:04 +02:00
9cca71355f Added VoxelLightJob. 2020-10-01 21:44:59 +02:00
3f23be12bc VoxelTerrarinJob now has the necessary code in it as methods. 2020-10-01 21:31:39 +02:00
bf17467879 Clear the 2 vectors in the destructor. 2020-10-01 21:05:37 +02:00
394214b758 Added the meshers and liquid meshers api from VoxelChunk into VoxelTerrarinJob. 2020-10-01 21:01:39 +02:00
579e4263d0 Added VoxelTerrarinJob. 2020-10-01 20:57:42 +02:00
be2cd7a4b3 Added a vector of jobs and an api for it into VoxelChunk. 2020-10-01 20:49:54 +02:00
71f69666cd Moved VoxelJob to a new folder. Also added generate_ao and generate_random_ao from voxel chunk into it. 2020-10-01 20:18:43 +02:00
6f8e54879b Added channel allocation queries to VoxelChunk. 2020-09-05 20:06:23 +02:00
142809d0cb Add an alternative type and isolevel to the default channels enum. 2020-08-21 20:02:47 +02:00
5938f7f783 Now the type and isolevel channels are customizable in the meshers. 2020-08-21 20:02:22 +02:00
5358c99646 Now VoxelChunkDefault supports coloring MeshDataResources that span multiple chunks. 2020-08-16 18:20:16 +02:00
d8cf2af059 Same change to BUILD_PHASE_MESH_DATA_RESOURCES aswell. 2020-08-04 15:36:03 +02:00
6af711322d BUILD_PHASE_TERRARIN_MESH now can also distribute it's calculations onto multiple frames. 2020-08-04 15:30:34 +02:00
469927cc3b Now BUILD_PHASE_COLLIDER, and BUILD_PHASE_LIGHTS can both distribute their work onto multiple frames. 2020-08-04 14:53:10 +02:00
0a4d07c582 The terrarin mesh setup phase can now distribute it's calculations onto multiple frames.. Also small fixes to the single threaded logic. 2020-08-04 14:40:40 +02:00
b0a888d595 Removed limit execution time, and made everything a simple stub when ThreadPool is not present. 2020-08-04 10:52:27 +02:00
f1bee24803 Set start time in execute(). 2020-08-04 10:21:01 +02:00
919620031b Fix compile if ThreadPool is not present. 2020-08-04 10:08:04 +02:00
10b588f576 Cancel the job if complete is false. 2020-08-04 09:51:16 +02:00
bf58b94a99 Removed the thread from VoxelChunkDefault. 2020-08-04 09:49:40 +02:00
cff203fc49 Now the threading is handled by ThreadPool. 2020-08-04 09:44:18 +02:00
b95f055acd Add lod falloff property to VoxelWorldDefault. Also improved _update_lods(). 2020-08-03 19:05:40 +02:00
768728139e Fix compile for 4.0. 2020-07-29 00:02:42 +02:00
f8663879dd bake_mesh_array_uv in VoxelChunk now can't index outside the image's size. 2020-07-20 21:21:09 +02:00
c9ee935af3 Added an add_mesh_data_resource variant to VoxelChunk, also added the apply_voxel_scale parameter to them. Also added a few transform helpers. 2020-07-20 01:06:34 +02:00
698f6083ea Add MESH_DATA_RESOURCE_PRESENT around a piece of code. 2020-07-18 14:19:13 +02:00
18ad178b1e Moved the create_meshers call from BUILD_PHASE_SETUP to _build. This causes it to run on the main thread. This is the first time I got a crash related to this, also the engine docs suggests that only scenetree manipulation is unsafe from threads, so this might have been caused by something else. 2020-07-18 13:12:29 +02:00
dee38b1588 Fix light's position, as it expects it's coordinates in voxel world data space. Will probably change this eventually. 2020-07-07 18:01:21 +02:00
5ee5b12a4e Update _bake_light in VoxelChunkDefault to use the new apis. 2020-07-07 17:35:44 +02:00
eac68265c1 Fix transforms in add_prop. 2020-07-07 17:02:30 +02:00
b8aaaf499b Implemented add_prop in VoxelWorld. (Some of the transform calculations still need to be fixed.) 2020-07-07 02:22:45 +02:00
6f7c4fbc8a Removed VoxelChunkPropData, the api of VoxelWorld, and VoxelChunk now uses PropDatas directly. 2020-07-07 01:06:46 +02:00
1355c301e8 Update draw_debug_mdr_colliders's logic to use the new api. Also fix error spam when a mesh data doens't have a collider. 2020-06-30 20:28:37 +02:00
3190217284 Moved simple collider storage from VoxelChunkDefault to VoxelChunk and separated it from the mesh data resource api. 2020-06-30 18:55:50 +02:00
138614f743 Update MeshDataResource offsets, as now they are Transforms. 2020-06-30 15:24:11 +02:00
a4b5400a4e Fix debug collider offsets. 2020-06-30 15:10:48 +02:00
7777056af3 Fix collider transform. 2020-06-30 11:59:22 +02:00
bb2f13b075 Small improvements. Also added commented out code for debugging the terrarin meshes (They will need to be converted be lines). 2020-06-29 23:44:54 +02:00
b54a1021d4 Moved away from using ImmediateGeometry for debug meshes. Also implemented debugging mdr colliders. 2020-06-29 23:08:52 +02:00
2e69796d08 Implement collider transforms. 2020-06-28 21:55:00 +02:00
9e2d71169b Add prop uv rect query into the library, and make add_mesh_data_resource use it. 2020-06-28 21:31:26 +02:00
1996f60f0f Fix indexing. 2020-06-28 21:30:26 +02:00
21d135fb0b Now chunk can only have one prop mesher. 2020-06-28 20:04:40 +02:00
70d9cdf6db Removed unused member. 2020-06-28 19:16:11 +02:00
0138c02bf8 Implemented meshing chunk's mesh data resources. 2020-06-28 19:02:49 +02:00
cb6d8f5156 Added mesh data resources to VoxelChunk. 2020-06-28 16:57:53 +02:00
be4876c2f1 Fix compile if the props module isn't present. 2020-06-27 18:25:23 +02:00
a991de9d2e Moved PropData to the props modue. 2020-06-27 17:04:40 +02:00
78be4a6666 A bit more work on props. 2020-06-23 19:32:37 +02:00
7aa0edf98e Work on updating the prop meshing implementation (does not work yet). 2020-06-23 14:30:49 +02:00
19a255c4dd Fix typo. 2020-06-23 01:13:04 +02:00
15659929b2 Added a few const qualifiers. 2020-06-23 01:05:41 +02:00
88ab910eb8 Brought back the old Prop implementation, and PropTool, because not only this implementation was already done, it will work better than spawning possibly thousands of nodes with the props module, but I also found a way to eventually make it more user friendly. 2020-06-22 21:49:58 +02:00
b88e430950 Remove unused import. 2020-06-20 22:07:50 +02:00
7219d7b2d4 Added a Cubic chunk and World. 2020-06-12 19:34:47 +02:00
7c95171944 Added a MarchingCubes World and Chunk. 2020-06-12 18:36:00 +02:00
7c93cc8f52 VoxelWorldDefault will not update lods automatically for now. 2020-05-23 21:59:58 +02:00
1d51be2f0b Moved 4.0 compatibility code into a new defines.h (like in ESS). 2020-05-23 10:34:47 +02:00
703acd1b56 Fix world to voxel calculations when the voxel scale is not 1. 2020-05-19 00:50:19 +02:00
edce32b190 Fix compile for 4.0. 2020-05-16 21:32:02 +02:00
19f3c1f8ff Fix compile for javascript. 2020-04-26 00:34:34 +02:00
af0c4d6586 add_chunk will error out now if a chunk is already owned by an another world. Also smaller improvements to set_chunks and the exit tree notification. 2020-04-22 15:57:00 +02:00
a2a9c1f714 Fix an in-editor scene-saving related crash. 2020-04-22 12:35:48 +02:00
9475986ee0 Added is_inside_tree() property to VoxelChunk. 2020-04-22 12:33:14 +02:00
b970c86264 Hide a few properties from the editor, and also from serialization. 2020-04-22 12:26:53 +02:00
49af0c9f30 Fix potential crash. 2020-04-22 12:23:49 +02:00
efd08f69bf Allow the level generator to be null, without failing. 2020-04-22 12:21:50 +02:00
a34ceedf6a Now merge_mesh_array and bake_mesh_array_uv will work properly even if the supplied arrays don't have all the expected channels. 2020-04-22 12:20:33 +02:00
a306f8cf91 Add queued generation the VoxelChunkDefault. 2020-04-22 12:16:31 +02:00
f00dd13c43 Fix typo. 2020-04-20 18:19:33 +02:00
5235641122 Only build liquid colliders inside the editor. 2020-04-20 17:41:37 +02:00
61c246c069 Disabled area generation for now. 2020-04-20 17:33:04 +02:00
9635ef064c A bit more work on areas. They don't work properly yet, they might need to have a closed mesh. 2020-04-20 17:30:22 +02:00