Inline Patterns !! (and also a small little pattern rendering rework)
This adds inline as a dependency and changes the pattern iota display to render the pattern visually rather than HexPattern(dir, angles). It also adds some Inline bits to entity iotas (currently only player heads are enabled because inline's serialization seems mildly broken but that's a future issue !)
Instead of re-implementing/copying all of the pattern rendering bits that i'd need for this though, i spent some time cleaning up and re-organizing the existing pattern rendering system. Although this is more of an additional system that helps with pattern rendering rather than a rewrite of the core RenderLib code. You can read the details of it here.
Some benefits of this new system:
- configuring pattern rendering through clear and reuseable settings
- less duplicate code, especially for pattern positioning
- texture and dynamic (wobbly/gradient/renderlib one) renderers are much more in sync with eachother
- share more code
- almost identical outputs
- abstracted behind
PatternRendererso you don't have to Choose which one to use, or do anything different to use the other, besides changing settings.
Some other fun changes:
- slates glow amethyst-purple now !
- texture rendering is split into 2 textures (inner and outer) so that textures can be re-used with different colors
- dynamic renderer can use other shaders, formats, and vertexconsumers (this means light and normals !!)
- scrolls & slates show their pattern in their name for better hotbar clarity.
Some images:
Texture renderer vs dynamic (they are almost identical lol):
next inline version has some breaking changes i'd like to push in before this gets merged. can still be reviewed, all the big pattern rendering things aren't gonna change.
see #764