Commit Graph

75 Commits

Author SHA1 Message Date
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
7219d7b2d4 Added a Cubic chunk and World. 2020-06-12 19:34:47 +02:00
1d51be2f0b Moved 4.0 compatibility code into a new defines.h (like in ESS). 2020-05-23 10:34:47 +02:00
9475986ee0 Added is_inside_tree() property to VoxelChunk. 2020-04-22 12:33:14 +02:00
6e9a952a2a Implemented liquid meshing. 2020-04-20 00:31:46 +02:00
4a2321b161 Some settings in world will now get distributed to chunks. is_build_threaded has been moved from coxel chunk default to voxel chunk. ALso fixed a few crashes. 2020-04-18 02:15:01 +02:00
367c203cc6 Added lots of const qualifiers to world and chunk. 2020-04-16 17:10:04 +02:00
dd0fa1d7ea Cleaned up the prop spawning api in chunk and world. 2020-04-15 13:06:45 +02:00
a63ae2183a Removed _THREAD_SAFE_CLASS_ from VoxelChunk as its not used aywhere right now. 2020-04-15 12:44:16 +02:00
7a3e4ecbe3 Cleaned up the light baking api. 2020-04-15 12:41:52 +02:00
1f23f61b3a Ran clang format, as apparently I had it off. 2020-04-10 13:55:27 +02:00
073e1aeb97 Fix build for 4.0. 2020-04-09 12:34:39 +02:00
9fe51572f4 Didi the same optimization to the transvoxel uv mesher. 2020-04-07 14:40:35 +02:00
f7842e1ab2 The blocky mesher is a lot faster now. 2020-04-07 14:23:20 +02:00
a4fc573f85 Optional module dependencies are actually optional now. 2020-04-06 22:47:03 +02:00
25da88da19 Add the ability to get or set a channel compressed. 2020-04-05 22:07:52 +02:00
dfee0a7786 Added a blocky mesher, chunk, and world (The minecraft-style mesher). It's incomplete. Also ported the light baking step from Broken Seals, and fixed a few warnings. 2020-04-05 01:36:41 +02:00
2d2b7c8c3e Started reworking the way props are handled. Removed every old PropData related classes. Props are now just normal PackedScenes. Spawning conveniences/network synchronization will come later. 2020-04-04 17:22:07 +02:00
bf211fd430 Moved everything that is prop related to a new repository (props). It is required for this to compile for a short wile, while I rework things. 2020-04-03 09:25:07 +02:00
9da5d2e2d0 VoxelChunk now inherits from Resource instead of from Spatial. This is to make the scene cleaner (especially after I implement the world editor plugin). As a small bonus this should also make multithreading-related crashes harder to create, as manipulating the Scenetree from a thread by accident is now a lot harder. 2020-04-02 21:28:19 +02:00
dfafb23342 VoxelChunk now won't expose the channels for the editor. This functionality should be implemented per chunk implementation. Did not delete the code yet, just commented it out. 2020-03-31 12:42:22 +02:00
4691e2aaef Ported merge_mesh_array and merge_mesh_array from Broken Seals. 2020-03-30 14:36:49 +02:00
080e8f2437 Broke up VoxelChunk into VoxelChunk and VoxelChunkDefault. 2020-03-12 23:23:38 +01:00
29b77a3a6d Finished up the rework I started in the prevoius commit. 2020-03-06 21:09:13 +01:00
90cbfe02cc started reworking how chunk handles threaded builds. 2020-03-06 16:12:39 +01:00
8f71179c5e More work on Chunk's threading. 2020-03-06 15:39:55 +01:00
370e14f6c8 Removed the temp mesh array I just added from voxel chunk. 2020-03-06 14:27:04 +01:00
656f0ba9fa build_phase() and _build_phase() in Chunk now won't return/need to return a value, as get_build_phase_done() is equivalent. Also now chunk building is actually threaded, as it seems like I managed to remove thread creation in one of the refactor commits. Also fixed a few smaller issues/inconsistencies. 2020-03-06 14:22:04 +01:00
3e98b8e01c Added a few properties to chunk, so they can be saved into PackedScenes if needed. 2020-02-26 01:08:18 +01:00
6c39845387 Removed a few now unneeded methods from VoxelChunk, they got merged into _build_phase. Also added build_mesh_into to VoxelMesher, it's equivalent to the old build_mesh. 2020-02-20 13:44:38 +01:00
07afd06c2a Now chunks can properly use multiple meshers at the same time. 2020-02-14 19:02:31 +01:00
a457ed400c Added data margin start, and end property to VoxelWorld for easy access. Improved set_voxel, and get_voxel in VoxelChunk to accomodate for margins as originally intended (e.g. if start_margin is 1, indexes go from -1 to size + end margin). Fixed/updated indexing in VoxelMesherCubic. 2020-02-14 03:19:15 +01:00
3a8310c51f More improvements to chunk's threading logic. Also removed the build_phase_done function I added a few hours ago, and made build_phase return a bool (true if the phase is completed, false if not), essentially achieving the same effect. 2020-02-12 20:34:16 +01:00
8a2524dc57 Improved multithreading a lot, it doesn't seem to crash anymore. Also made chunk mesh generation faster by letting build phases run one after an another without launching new threads (using is_phase_threaded). 2020-02-12 14:16:31 +01:00
fd1ff4b4ff Better chunk building setup. And smaller fixes and tweaks. 2020-02-10 23:39:57 +01:00
db77530ec1 Updated the license for 2020, and added it to the top of my cpp files. 2020-01-31 19:52:37 +01:00
104a307d55 Now Chunk has a vector of meshers, this simplifies for example liquid meshing, and this allows combining multiple meshers. Also the number of build phases is settable. 2020-01-13 00:39:55 +01:00
a67d0393ca Clang format. 2020-01-09 04:29:05 +01:00
8e02dcb9e8 Fix build. 2019-12-24 03:22:17 +01:00
edec04cfdc Chunk now supports threaded builds. Also small fixes. 2019-11-19 20:39:45 +01:00
d2566ab82b gdscript->c++ conversions. 2019-11-19 14:42:21 +01:00
0594215929 Seemingly the bindings are done. Also added a new chunk build phase. 2019-11-19 00:54:28 +01:00
7885d49949 Implemented chunks's new functionality, and work on the bindings. 2019-11-18 23:50:06 +01:00
d5acb28a90 More work on fixing compile. 2019-11-18 22:22:41 +01:00
9103db635f More work on compile. 2019-11-18 21:53:33 +01:00
b60b8a96d6 More work on the build, and more api breakages. 2019-11-18 20:16:29 +01:00
decf9a4af2 Work on the interface, and build. 2019-11-18 19:43:15 +01:00
5b275155c5 Removed the classes that I got from the other voxel module. Moved the stuff that I wrote from VoxelBuffer to VoxelChunk. I'll reimplement the needed stuff myself into the chunk. 2019-11-18 19:22:11 +01:00
e0deb2ea66 Added liquid, and clutter mesh allocations into Chunk, also related modifications. 2019-11-10 13:42:59 +01:00
c674a8c045 Added chunk states, and dirty flag to Chunk. 2019-11-10 03:10:42 +01:00