- VoxelGenerator no longer inherit VoxelStream
- VoxelStream is now more focused on files
- Nodes have separate stream and generator properties
- Generators use 2 dedicated threads instead of sharing a single one with streams
- TODO Image.lock() is problematic for multithreading
- TODO Voxel graph can cause RWLock contention if edited while it runs
- TODO Saving generator output no longer works, need to put it back
- Added a global file locker so threads can synchronize when accessing files
- Added mutexes to serialize access to file streams (i.e to call in series)
- VoxelStream API now expects implementations to be thread-safe
- Did some logic/data separation in RegionFile in case we need an
in-memory implementation, however I might just use SQLite in the
future instead
- Uniform compression now supports more than 8-bit depth (compat implementation)
- Fix buffers not being set to correct depth before loading from file
- Check if we save correct buffer depths in region files
- Fix inverted check when reading region meta file
- Fix version check not working in JSON meta file because it's float