Commit Graph

78 Commits

Author SHA1 Message Date
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
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
b046db78ed Removed leftover print. 2020-04-05 22:56:40 +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
6cae9a0494 Set the property hint for voxel_world to 0. This fixes saving chunks as resoruces. 2020-04-02 21:38:19 +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
ee03e42a5a Fix assign. 2020-03-30 14:57:07 +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
d08da0375a Better way of handling the previous improvement. It will actually work now properly aswell. 2020-03-04 20:49:00 +01:00
f9d13c611f Improved aborting chunk build. 2020-03-04 20:12:15 +01:00
fbd2903477 Added is_position_walkable query to World, also a few related things. 2020-03-04 15:21:32 +01:00
36063410f9 Hide saved channels in the editor, and from scripts. 2020-02-26 12:22:46 +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
8b734eec11 Mesher's build_mesh function now has no argument, and returns an array. 2020-02-20 13:19:54 +01:00
509d45a662 build_phase() in VoxelChunk should be thread safe. 2020-02-16 16:18:41 +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
01bb492760 Merge branch 'meshers' 2020-01-13 00:40:10 +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
c0c0fa403c Fix a typo in Chunk's bindings. 2020-01-12 21:58:23 +01:00
a67d0393ca Clang format. 2020-01-09 04:29:05 +01:00
ce4020962e Now the mesher will set the material for the generated meshes directly, also it sets the material as surface material instead of an override material. 2019-12-03 19:22:04 +01:00
edec04cfdc Chunk now supports threaded builds. Also small fixes. 2019-11-19 20:39:45 +01:00
a377c994e9 Fixes. 2019-11-19 19:14:46 +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
5bfe5e7905 Fixed linker errors aswell. 2019-11-18 22:40:58 +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