Fixes#12
What the heck
CrumblingRenderer gets classloaded early because of its event listener.
CrumblingRenderer had an innocent static reference to a member of ModelBakery.
This caused ModelBakery to classload before additional enums could be injected into BannerPattern.
¯\_(ツ)_/¯
- Buffered models directly consume IModels
- Document IModel more
- Move contraption world render spoofing to flywheel
- Miscellaneous new RenderMaths
- Added WorldModel, renders many blocks given a world instance
- Fix broken transparency on contraptions when using Flywheel
- Add a package-info.java to many packages.
- Annotate the world parameter in Backend#canUseInstancing as nullable.
- New utility constructor for BlockModel
- Note that IDynamicInstance#beginFrame and ITickableInstance#tick are run in parallel.
- Refactor internals of InstancedRenderDispatcher to group things by InstanceWorlds.
- InstanceWorlds take over most responsibility for dispatching calls.
- Simplify massive private call chains in InstanceMaterial.
- Reorganize methods and add some documentation in MaterialManager, MaterialGroup, InstanceMaterial, and Instancer.
- Remove unused field from MaterialSpec.
- Remove unused fields from Instancer and InstanceMaterial
- Document RenderLayer
- Add RenderLayer field to RenderLayerEvent
- Stop providing a buffered model supplier
- Instead, provide an IModel supplier
- IModel exposes basic properties of models
- IModel exposes a method to copy the model to a VecBuffer
- Move material stuff to its own package
- The various render functions in the material tree now bind to specific render layers
- Instancers can choose which layer to use
- The layers are SOLID, CUTOUT, and TRANSPARENT
- More layers are likely unnecessary, but we'll see
- Deprecate functions in MaterialManager in favor of more builderesque ones using MaterialGroups
- Actually can print something that underlines a span
- Resolve imports and use the resolutions during building
- Doesn't actually make sense to have #checkErrors
- Simplify some regexes
- Parse structs
- Material managers should not be inside WorldContext
- InstancedRenderDispatcher now stores the material managers
- Delete crumbling material manager on renderer reload
- CrumblingRenderer gets its own class
- CrumblingRenderer is less jank overall
- Defer InstancedRenderRegistry deprecated function removal until 0.3
- Ender chests and trapped chests, too
- Chests orient themselves correctly
- Lids do not position themselves correctly
- Some math, will probably replace with JOML
- Refactor InstancedRenderRegistry to allow for 3rd party TEs to have instances
- Add ChestInstance, incomplete but there
- Add basic api for building vanilla formatted models
- Better instance factory registration
- Check that sectionY is within the bounds of the chunk's section array, fixes#2
- Refactor usages of Tile and Entity InstanceManagers to refer to the base class InstanceManager<>
- Immutable function map
- Parse #use directives on load
- Recursive include gathering
- More sane spec loading in WorldContext
- StateSensitiveMultiProgram builder
- Rename confusing game state things
- 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!
- Explicit call to Shader#parseStructs is required before they can be read.
- Fixes a startup crash on some drivers (apparently nvidia is cool with #[...], but other drivers fail)
- 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!)
- Config UI automatically skips to the layer of config where multiple options are available
- Removed range tooltips
- Config entries in UI list are now sorted by name, with config groups at priority
- Changed the layout of save/discard/leave prompts
- Leaving with unsaved changes now gives you the option to save
- Config tooltips now use standard Create tooltip splitting
- Fix saw and portable storage/fluid interface diffuse lighting
- Remove "disableDiffuseTransform" option from SuperByteBuffer
- Switch argument order in RenderedContraption constructor to be consistent with superclass (ContraptionWorldHolder)
- Fix Extendo Grip not applying extended reach when equipped on rejoin
- Fix mechanical crafters duping + dropping their items when added to minecart contraption
- Fix Wand of Symmetry duping rails under placed cart assemblers
- Lecterns now keep NBT when moved by contraption
- Super glue entities hanging on positions above build limit now get removed
- Fix harvester replanting sweet berry bushes in wrong state
- Cuckoo clock and clockwork bearing now go crazy in unnatural dimensions
- Create DyedBlockList for storing and accessing a set of dyed blocks
- Switch usage of BlockEntry<?>[] to DyedBlockList in AllBlocks
- These changes also finally fix the compilation error related to generic arrays