|
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 |
|
|
ed990caa32
|
Fix threaded ingame area generation.
|
2020-04-20 13:59:37 +02:00 |
|
|
70c884d273
|
Fix a few in-editor crashes.
|
2020-04-20 13:54:24 +02:00 |
|
|
5748179d66
|
The temp collider arrays are now properly cleared.
|
2020-04-20 13:40:27 +02:00 |
|
|
289c456428
|
Now VoxelChunkDefault can create area colliders aswell, liquids are created using these in the running game. (Only there because the editor needs raycasting.) Also fixed setting liquid visibility.
|
2020-04-20 01:01:24 +02:00 |
|
|
6e9a952a2a
|
Implemented liquid meshing.
|
2020-04-20 00:31:46 +02:00 |
|
|
21ad01ca80
|
Removed separate liquid surfaces. They will be contained inside the normal voxel arrays.
|
2020-04-19 23:35:47 +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 |
|
|
23d9acb5d4
|
Ported the lod level updater code from broken seals.
|
2020-04-17 22:09:55 +02:00 |
|
|
2d5b9ed029
|
Removed build_deferred, and build_prioritized methods from the default chunk.
|
2020-04-17 20:24:50 +02:00 |
|
|
bee499d951
|
The library now has an initialized bool. Also the world editor will refresh rects in the library if needed.
|
2020-04-17 19:21:46 +02:00 |
|
|
c382dac3ff
|
Added a new tool to the world editor, it adds a block to the location of the spatial editor's camera.
|
2020-04-17 18:36:14 +02:00 |
|
|
5c0ab27715
|
Added 3 more helper functions to voxel world.
|
2020-04-17 10:15:50 +02:00 |
|
|
9cdd107565
|
Added the surface lists into scroll containers. Also text is now aligned to the left on the buttons.
|
2020-04-17 02:39:23 +02:00 |
|
|
35863196d7
|
Now the world editor will use the channel reported by world's get_channel_index_info. Also it now has support for liquid channels (based on the currently selected tab).
|
2020-04-17 02:09:24 +02:00 |
|
|
f43e4a2cc4
|
Implemented add and remove tool mode selectors in world editor. Also added shortcuts (a, s).
|
2020-04-17 01:52:16 +02:00 |
|
|
7c0390de74
|
The air block is not required anymore. Also Implemented the sidebar for world editor. And fixed a naming error for a virtual method in the merger library.
|
2020-04-17 00:37:22 +02:00 |
|
|
76f9011c24
|
Added an overrideable fonction to VoxelWorld, so the editor plugin will be able to query the correct channel ids, for any particular world. returning -1 will mean not supported.
|
2020-04-16 21:59:30 +02:00 |
|
|
b21030ae89
|
More const qualifiers.
|
2020-04-16 17:54:32 +02:00 |
|
|
367c203cc6
|
Added lots of const qualifiers to world and chunk.
|
2020-04-16 17:10:04 +02:00 |
|
|
135b34c8a8
|
Moved the chunk position calculations from the world editor into VoxelWorld.
|
2020-04-16 14:44:22 +02:00 |
|
|
06d3b0ae32
|
Add property for voxel structures.
|
2020-04-16 14:07:10 +02:00 |
|
|
d985610574
|
Cleaned up VoxelStructure, and added an api for them into VoxelWorld.
|
2020-04-16 13:40:39 +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 |
|
|
c752086bdd
|
A bit more work on the world editor.
|
2020-04-10 16:28:33 +02:00 |
|
|
fd24639e26
|
The world editor now won't use right click, as it makes navigation awful.
|
2020-04-10 16:13:04 +02:00 |
|
|
acf2d2d701
|
Fix 2 multithreading related crashes.
|
2020-04-10 15:50:53 +02:00 |
|
|
1f23f61b3a
|
Ran clang format, as apparently I had it off.
|
2020-04-10 13:55:27 +02:00 |
|
|
01c57c30e6
|
Fix error when the data margins are 0.
|
2020-04-10 13:43:49 +02:00 |
|
|
17dfbb4cab
|
Fix voxel index calculations in the world editor.
|
2020-04-10 13:40:07 +02:00 |
|
|
03f9041eb8
|
Added get_or_create_chunk to VoxelWorld.
|
2020-04-10 13:39:11 +02:00 |
|
|
a722f807fe
|
Fix building for 3.2.
|
2020-04-09 15:45:51 +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 |
|
|
8b78f8e91d
|
Library should update it's rects even in the editor now.
|
2020-04-06 20:10:57 +02:00 |
|
|
4a535207e0
|
Now chunks will generate the collider in the spawned thread. Also a few smaller tweaks.
|
2020-04-06 20:05:19 +02:00 |
|
|
f63a8910dc
|
Fix coord calculation for the editor plugin.
|
2020-04-06 19:46:17 +02:00 |
|
|
c691c13277
|
Added a _chunk_added virtual method to voxel world.
|
2020-04-06 13:55:22 +02:00 |
|
|
b4c61ac674
|
Created a default version from world, and the mesher. Also added a BuildFlags enum to VoxelChunkDefault. Converted a few properties to use this.
|
2020-04-06 13:41:45 +02:00 |
|
|
d717c9886b
|
Fix set_chunks, and enter_tree.
|
2020-04-06 00:51:25 +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 |
|
|
98707674a4
|
Initial implementation for the voxel world editor.
|
2020-04-05 21:02:51 +02:00 |
|
|
d36eff4ed3
|
Fix potential crash.
|
2020-04-05 02:08:08 +02:00 |
|
|
b7f3b59f54
|
Removed the mutex from build phase.
|
2020-04-05 01:47:14 +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 |
|
|
214323a9a0
|
Fix compile.
|
2020-04-03 09:32:34 +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 |
|
|
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 |
|
|
599b3eb8ea
|
Fixed 2 warnings.
|
2020-03-31 13:32:06 +02:00 |
|
|
f7fd0193ea
|
Added an editable property to VoxelWorld, and made the world editor plugin make use of it.
|
2020-03-31 13:25:31 +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 |
|
|
3969e0ba5f
|
Fix a multithreading related crash.
|
2020-03-30 23:15:23 +02:00 |
|
|
f26fe74fc4
|
Ported the lod implementation from Broken Seals.
|
2020-03-30 19:46:39 +02:00 |
|
|
393ee1fb1b
|
DefaultVoxelChunk now has a general interface for storing mesh/collider RIDs.
|
2020-03-30 18:32:39 +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 |
|
|
4a3c9836ff
|
Made the default visibility change event overrideable in VoxelChunkDefault.
|
2020-03-29 23:55:40 +02:00 |
|
|
541abb954d
|
Now materials in Library are stored with vectors. This makes it possible to have different materials for every lod level for example.
|
2020-03-29 20:19:38 +02:00 |
|
|
ddfdb4489f
|
Missed a binding.
|
2020-03-24 18:44:17 +01:00 |
|
|
87d387388c
|
Apparently, calling emit signal and set_process_internal form a separate thread is not smart.
|
2020-03-24 18:42:01 +01:00 |
|
|
d0578c24d4
|
Separated VoxelStructure into 2 classes, and made it scriptable.
|
2020-03-19 13:08:58 +01:00 |
|
|
666695a220
|
Now VoxelChunkDefault will move it's meshes if it's transform changes, free them on EXIT_TREE, and sets their visibility. Also added a few missing break statements.
|
2020-03-15 19:33:10 +01: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 |
|
|
59291a9417
|
Fix math in is_position_walkable.
|
2020-03-04 18:35:09 +01:00 |
|
|
fbd2903477
|
Added is_position_walkable query to World, also a few related things.
|
2020-03-04 15:21:32 +01:00 |
|
|
dec4fcd402
|
Added get_max_frame_chunk_build_steps to be able to limit the chunk build steps launched per frame. Also a few smaller improvements.
|
2020-03-04 14:59:34 +01:00 |
|
|
d431ca4daa
|
Added index-based remove chunk function, also fixed remove_chunk, now it properly removes the given chunk from the chunk map.
|
2020-03-04 10:48:53 +01:00 |
|
|
e45e3875f8
|
Setup for a new VoxelWorldEditor.
|
2020-02-27 14:27:52 +01:00 |
|
|
d85187b6a8
|
Removed stray files.
|
2020-02-27 13:43:46 +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 |
|
|
5b32345181
|
Fleshed out VoxelStructure's api.
|
2020-02-23 22:09:45 +01:00 |
|
|
f25dac92ea
|
Started reworking VoxelStructure's api.
|
2020-02-21 10:42:51 +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 |
|
|
8e02dcb9e8
|
Fix build.
|
2019-12-24 03:22:17 +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 |
|