Marc Gilleron
4ec82928b4
Remove redundant VoxelTerrain::BlockDirtyState
2019-08-25 15:14:10 +01:00
Marc Gilleron
4ff5f91e6f
Add optional physics collision through node-less static bodies
2019-08-25 13:04:49 +01:00
Marc Gilleron
332041751d
Move mesh instance into a thin wrapper
2019-08-25 01:11:38 +01:00
Marc Gilleron
ed2db2b443
Put back meshing threads to 1 for VoxelTerrain, it doesnt react well to unordered block responses
2019-08-24 23:31:48 +01:00
Marc Gilleron
9ca40b854b
Don't stop threads when the terrain exits the tree, it prevents saving-on-destroy from completing
2019-08-24 23:26:01 +01:00
Marc Gilleron
f14b374931
Made block size and a few other params modifiable (not so easy, though)
2019-08-24 01:44:27 +01:00
Marc Gilleron
e1d716d454
Merge branch 'master' into persistence
2019-08-17 20:16:22 +01:00
Marc Gilleron
43446356e9
Switch block processing to use arrays instead of single blocks to allow batching
2019-08-16 20:56:07 +01:00
Marc Gilleron
b00ec1ccad
Merge branch 'master' into persistence
2019-08-09 20:07:43 +01:00
Cory Petkovsek
2e6256f6a5
Revert adding material property to fix error message
2019-07-06 00:19:29 +09:00
Cory Petkovsek
18626133cd
Allow set_material from gdscript
2019-07-04 00:58:39 +09:00
Marc Gilleron
c272a37f1a
Merge branch 'master' into persistence
...
# Conflicts:
# terrain/block_thread_manager.h
# terrain/voxel_terrain.cpp
2019-06-25 20:51:35 +01:00
Cory Petkovsek
b13dccd998
Fix gcc shadow warning
2019-06-22 23:24:34 +09:00
Cory Petkovsek
f6a9c5761a
Fix gcc sign comparison warnings
2019-06-18 14:24:56 +09:00
Marc Gilleron
3feb32e194
Fix a crash when a VoxelTerrain is created and deleted without ever entering the tree. Was caused by Godot creating dummy instances of VoxelTerrain just to call get_property_list
when I open the inspector...
2019-06-02 02:30:22 +01:00
Marc Gilleron
5ecd449acc
Fixed VXB saving so that it actually works for lod0-only terrain:
...
- Don't rely on ERR_FILE_NOT_FOUND, Godot never returns that from FileAccess...
- Fix LOD not used in block coordinates conversion
- Fix block size saved as u8 but read as u32 in meta file
- Fix block file path not being prepended directory path
- Fix negative coord block file path containing overflowed uint
- Fix VoxelDataLoader processor not being assigned block size in some cases
- Fix VoxelDataLoader not processing save requests properly
- Fix VoxelTerrain not actually sending save requests on destruction
2019-06-02 01:59:39 +01:00
Marc Gilleron
439e5d9964
Fix sort heuristic being wrong on pending blocks surviving more than one thread_sync(), we really have to overwrite it
2019-06-02 01:54:17 +01:00
Marc Gilleron
f831d03cf5
Merge branch 'master' into persistence
...
# Conflicts:
# terrain/voxel_data_loader.cpp
2019-05-28 01:17:28 +01:00
Marc Gilleron
2c81db52f8
Rename remaining occurences of "provider" => stream
2019-05-28 01:10:50 +01:00
Marc Gilleron
82502d3397
Simple file-per-block saving WIP. Compiles but didn't test.
2019-05-28 00:40:09 +01:00
Marc Gilleron
4a90ca10a5
Rename "provider" files to "stream"
2019-05-25 16:16:03 +01:00
Marc Gilleron
2e1b13ffea
Rename VoxelProvider* => VoxelStream*
2019-05-25 16:07:38 +01:00
Marc Gilleron
15ae1b99ba
Rename voxel_provider_thread.h => voxel_data_loader.h to match class name
2019-05-25 15:07:16 +01:00
Marc Gilleron
d8cab2d32b
Use generic block manager for loading and fix bugs:
...
- VoxelProviderThread is now VoxelDataLoader and uses generic block manager
- Fixed threads locking up, input mutex was not always unlocked due to for loop exiting early
- Fixed blocks failing to load, region rejection was using invalid pointer
- Fixed block shifting in region rejection, was replacing wrong index in `block_indexes`
- Fixed block region rejection missing blocks, was not stepping back the loop after shifting blocks
- Added output message to notify of block rejection
2019-05-20 20:48:58 +01:00
Marc Gilleron
e47afabe49
Sort blocks using a heuristic, take look direction into account
2019-05-19 21:04:26 +01:00
Marc Gilleron
b9add5d671
Allow more than one thread for mesh updates, also made it generic
2019-05-19 18:27:49 +01:00
Marc Gilleron
38062b32fe
Code style
2019-05-19 18:24:03 +01:00
Marc Gilleron
29298958e7
Fix mistake in previous commit about missing binding argument
2019-05-10 00:57:09 +01:00
Marc Gilleron
96183e0c51
Fix missing argument in voxel/block conversion functions
2019-05-09 21:59:03 +01:00
Marc Gilleron
d93f23337a
Added stats to VoxelLodTerrain
2019-05-05 01:09:12 +01:00
Marc Gilleron
9363f54e8d
Comments
2019-05-04 00:00:50 +01:00
Marc Gilleron
5851e4849f
Added lod
parameter to VoxelProvider
2019-04-29 21:57:39 +01:00
Marc Gilleron
c80a24ef0b
Moved is_mesh_empty() to utility.h
2019-04-29 21:32:28 +01:00
Marc Gilleron
d1c21bdf5d
Remove function from class declaration, doesn't need to be in here
2019-04-29 21:31:52 +01:00
Marc Gilleron
faefde721a
Add base class to all meshers, gather common things in it
2019-04-28 20:48:59 +01:00
Marc Gilleron
12a97cca5a
Reorganize all files and rename a few things
2019-04-28 17:58:29 +01:00