- Fix tickable instances ticking while paused
- Fix CME on effect origin shift
- ExampleEffect is now boids fireflies
- Better tick/update load distribution with small instance counts
- Add Effect instancing
- Allows mods to create visual effects without (block) entities
- One effect object maps to many AbstractInstances
- Effect objects are expected to exist in isolation
- Refactor InstanceManager to be composable about how its instances are stored
- EffectInstanceManager uses this to provide a one to many topology
- This is in need of more iteration, and more aspects of InstanceManager should be made composable in the future
- Rename InstanceData -> InstancedPart, and subclasses
- Burger Fences
- Fix GlStateTracker nuking vao element buffer bindings
- GlVertexArray tracks element buffer bindings
- Use vertexAttribPointer offset instead of ..BaseVertex
- Setup code for better crumbling rendering
- Move some logic into CoreShaderInfoMap
- Simplify VertexWriter/VertexList
- Prefer IEventBus#addListener to @SubscribeEvent
- Stop using persistent buffers... for now
- Check for errors immediately after loading shaders
- Done through FileResolution
- Add class SourceChecks to
- Throw away GatherContextEvent, do everything on client init
- Unify FileResolution and Resolver, PartialModel style
- Pass around error reporter to detect errors during load
- Rename MaterialManager -> InstancerManager and Material ->
InstancerFactory
- Create Material class consisting of RenderType and shader files
- Make ModelSuppliers use Materials as keys instead of RenderTypes
- Move diffuse calculation from context shaders to material/shaded.vert
- Merge used templates directly into compilers and remove template
classes
- Overhaul shader pipeline
- Remove VertexType#getShaderHeader in favor of vertex-only "layout
shaders"
- Remove program specs in favor of vertex-only "instance shaders"
- Add API GLSL headers for vertex and fragment shaders that store
common values
- Separate context shaders into vertex and fragment shader files
- Improve import handling
- Ensure imports are not added more than once
- Change regex for import directives to be more in line with C-style
directives
- Move some classes and GLSL files
- Inline all the things
- Now MaterialManager -> Material -> Instancer
- ModelSuppliers store RenderType
- Currently broken, it only renders chunk layers so vanilla instances are invisible
- 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
- Remove BooleanConfig, BooleanConfigCommand, and BooleanDirective
- Make Flywheel.VERSION private so it cannot be changed
- Move createUpdateLimiter from FlwConfig to InstanceManager
- 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
- Use Flywheel.rl and Flywheel.ID where ever possible
- Rename Flywheel.log to LOGGER
- Don't add namespace to network channel version
- Use counter for packet IDs
- IModels now accept a VertexConsumer
- IRenderState -> RenderType
- AbstractInstancer for dealing with InstanceData tidyness
- Alter crumbling renderer to match new system
- Add hack to keep track of bound atlas textures
- Better system for moving objects that want to receive light updates
- LightProvider interface to better abstract light lookups
- All light listeners use GridAlignedBBs
- More utility in GridAlignedBB
- Rename Client to FlywheelClient
- Remove Shadow plugin
- Remove generated source set
- Remove unused properties in gradle.properties
- Organize all imports
- Thanks for the list pepper!
- Added /flywheel backend command to replace /create experimentalRendering
- Added /flywheel normalOverlay command
- Need to think more about a good way to do this in a client only way
- Added basic config
- Logo in README.md (thanks, dani!)