Commit Graph

265 Commits

Author SHA1 Message Date
7311297906 Chunks that are stored inside worlds in scenes will properly generate their meshes now on load. Had to change _create_chunk a bit, now it will be called for all chunks, and it needs to check whether it has to init jobs or not. 2020-10-24 22:18:23 +02:00
4ecc424b84 VoxelJob should be a inherited from Reference if ThreadPool is not available. 2020-10-24 22:08:39 +02:00
b069d38265 Properly break circular reference if a job gets cancelled while working 2020-10-24 22:04:57 +02:00
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