- ... to address the nullpointer with create pulleys
- LightListeners track their own levels
- Remove BasicProvider and LightProvider
- Rename MovingListener to better match functionality
- Remove ListenerStatus in favor of a boolean
- Instances keep track of their removal status and properly report it via LightListener#isListenerInvalid
- Bump version - 0.6.4
- Only one task engine for everything now
- Fixes crash on LightUpdater init when Flywheel is off
- Attempt to wrangle InstanceWorld init code
- Misc. cleanup/renaming
- LightUpdates now uses task engine to update listeners in parallel
- Basic workgroup system to run something on the main thread after a group of tasks is complete
- Add ShadeSeparatedBufferBuilder and other code to allow separating all
non-shaded vertices to the end of the buffer
- Add ShadedVertexList to allow defining if a certain vertex is shaded
or not
- Add new methods to ModelUtil with arguments for more flexibility
- Refactor VirtualEmptyBlockGetter to allow defining arbitrary light
values
- Add shaded argument to DiffuseLightCalculator
- Fix entitiesForRendering redirect to be compatible with carpet.
- Use more reflection for dealing with optifine
- Fixes issue where flywheel would still be on immediately after enabling optifine shaders
- The batching engine may run in parallel, meaning the force diffuse
state will not be read correctly
- ModelTransformers only process vertices that will be rendered in the
world
- Add 0.6.1 to the issue template
- Remove BooleanConfig, BooleanConfigCommand, and BooleanDirective
- Make Flywheel.VERSION private so it cannot be changed
- Move createUpdateLimiter from FlwConfig to InstanceManager
- Extract update limiting behavior to interface
- Move original impl to BandedPrimeLimiter
- Add dummy NonLimiter impl
- Add command/config to toggle update limiting
- Refactor InstanceManager to be more consistent between frame updates and tick updates
- Bump version - 0.6.1
- GlCompat now a singleton, doesn't need to be re-created
- Fix crash with F3 open and backend off
- Clear program spec map before loading
- Merge FlywheelClient and Flywheel classes
- ModelPools no longer undbind their buffer during construction, as state should be maintained externally
- Call BufferUploader#reset at the end of renderChunkLayer to partially fix crash rendering contraptions
- Remove Engine#getName, it was replaced by FlwEngine
- StructTypes no longer need to be registered
- Move backend.source to core.source
- Move GameStateRegistry to core
- Backend is static again
- Loader maintains state internally
- Combine InstanceFactories and FlywheelRendered into
InstancingControllers
- Store these controllers directly in the BlockEntity/Entity type
instead of a map for efficiency
- Redo InstancedRenderRegistry to fit these changes
- Rename all tile to block entity
- Remove all interface I prefixes
- Organize imports
- Bump version to 0.5.1
- Simplify game state system
- Need some way to re-add errors on load.
- Streamline shader compilation, reduce map lookups
- Move pipeline package from backend to core
- Simplify interfaces and remove unnecessary classes