Changelog
GeckoLib v5.3-alpha-3
Alpha 3 Notes:
- Fixed a crash on world load (#776)
- More internal changes around armour rendering and ItemArmorGeoLayer
- Sorry to say, there's more API changes coming in the next version :(
Alpha 2 Notes:
- Fix Forge crashing on load on newer Forge versions (#773)
- Fix GeoArmorRenderer crashing when not rendering a full set (#771)
BlockAndItemGeoLayer#renderStackForBoneand#renderBlockForBonerenamed to#submitItemStackRenderand#submitBlockRenderrespectively- Moved the
OBJECT_RENDER_POSEandMODEL_RENDER_POSEDataTickets to the baseGeoRenderer, so that subclasses do not need to handle them in overrides - Fixed only handling 1
PerBoneRenderTaskperGeoBone - Added
GeoBone#transformToBone - Split
PerBoneRendertasks out intoGeoRenderer#submitPerBoneRenderTasks - Removed the
skipPerBoneTasksin severalGeoRenderermethod calls as it is no longer needed - Created
PerBoneRenderTasksfor neatly handling per-bone render tasks given their added complexity - Restricted
GeoArmorLayer's generic type to require anAvatarRenderState, as that is the actual type required by the models used - Added
RenderStateUtil
Changes
- Port to 1.21.10
- NOTE: This is an ALPHA build, and may be subject to breaking changes until the alpha tag is removed.
- The PACKED_LIGHT DataTicket is no longer filled for most GeoRenderers, as the base RenderState classes contain
lightCoordsnow by default - Added
GeoRenderState#getPackedLight GeoRenderer#defaultRenderhas been renamed to#submitRenderTasksto better represent its function now that we're not actually rendering at the time of that callGeoRenderer#actuallyRenderhas been renamed to#buildRenderTaskto better represent its functionGeoLayer#renderhas been renamed to#buildRenderTaskto better represent its functionGeoRenderer#reRenderhas been removed. Instead, render layers or renderers should submit another render task viaGeoRenderer#buildRenderTask. Consequently, you no longer need to check forisReRenderin renderer methodspreRender,scaleModelForRender, andadjustPositionForRenderhave all been moved to after the preRender event check- Added
GeoRenderer#createRenderState - Removed
GeoEntityRenderer#createBaseRenderState- Use#createRenderStateinstead - Removed various DataTickets from the default setup, where they're just a blatant clone of existing vanilla properties, to eliminate multiple sources of truth and improve performance
- The various Matrix4f variables in GeckoLib renderers has been moved to DataTickets
- Removed
GeoRenderer#doPostRenderCleanup - Added the associated HumanoidModel to
GeoArmorLayer.RenderData - Added
RenderModelPositioner
- Rewrote
GeoArmorRenderer- it should now be significantly easier to use and understand - Change DefaultedEntityGeoModel to take a customisable bone name instead of a flat boolean
- Added
#withRenderLayerto the variousGeoRenderers to allow for a functional instantiation GeoObjectRenderernow uses a generic for itsGeoRenderState, allowing for generic extensibility- Directly pass the partialTick to
GeoRenderer#addRenderData,GeoRenderLayer#addRenderData,GeoModel#prepareForRenderPass, and the variousCompileRenderStateevents/hooks (#762) - Renamed
GeoRenderer#adjustPositionForRenderto#adjustRenderPoseto better reflect its intended usage ItemArmorGeoLayer.RenderDatanow usesGeoArmorRenderer.ArmorSegments instead of manual slots and part getters- Made
GeoRenderEventand its various sub-events multiloader compatible - All platform-specific GeckoLib events are now split into their own individual classes to make it easier to find and manage them. E.G.
CompileBlockRenderLayersEvent
Additions
- Added "Stateless" animatables. These are an alternate way of handling animations for GeckoLib animatables.
- See: https://github.com/bernie-g/geckolib/wiki/Stateless-Animatable-Handling-(Geckolib5)
- Added:
StatelessGeoBlockEntityStatelessGeoEntityStatelessGeoObjectStatelessGeoReplacedEntityStatelessGeoSingletonAnimatableStatelessAnimationController
- Added
attack.punchDefaultAnimation constant - Added
misc.idle.flyingDefaultAnimation constant - Added
move.diveDefaultAnimation constant - Added
DefaultAnimations#triggerOnlyControllerfor creating a controller specifically for arbitrary triggered animations - Added
RawAnimation#getStageCount - Added
AnimationController#getStateHandler - Added
DefaultAnimations#genericWalkFlyIdleController - Added a constructor overload for various GeckoLib renderers that takes the item directly and creates a defaulted instance using the object's registered ID for quick and easy handling
- E.G.
new GeoEntityRenderer(ModEntities.MY_ENTITY);
- E.G.
- Added
GeoRenderEvent#hasData - Added
RenderUtil#getReplacedEntityRenderer - Added
RenderUtil#getGeckoLibItemRenderer - Added
RenderUtil#getGeckoLibEntityRenderer - Added
RenderUtil#getGeckoLibBlockRenderer - Added
RenderUtil#getGeckoLibArmorRenderer
Bug Fixes
- Add double-depth bedrock keyframe parsing because I have no idea why Blockbench is exporting that
- Fixed triggered animations not visually working on brand-new stacks in multiplayer for other players
- Fixed some incorrect javadocs in AnimationController
- Ensure the
EntityRenderStateis properly extracted before passing toGeoArmorRendererfor extraction
Internal Changes
- Reorganised GeckoLib's packets into folders
- Added a StreamCodec implementation for
Animation.Stage - Added a StreamCodec implementation for
RawAnimation - Added javadocs to more internal methods and all of the mixins, for clarity
- Improved the Javadoc on
GeoRenderEvent#getRenderData - Removed
RenderUtil#getCurrentSystemTick - Removed
RenderUtil#booleanToFloat - Removed
RenderUtil#getGeoModelForEntityType - Removed
RenderUtil#getGeoModelForEntity - Removed
RenderUtil#getGeoModelForItem - Removed
RenderUtil#getGeoModelForBlock - Removed
RenderUtil#getGeoModelForArmor - Moved
RenderUtil#getCurrentTicktoClientUtil - Moved
RenderUtil#arrayToVectoJsonUtil - Removed some superfluous parameters from
GeoRenderProvider#getGeoArmorRenderer - Renamed
ItemArmorGeoLayer#prepHumanoidModelForRenderto#positionModelPartFromBone
Dependencies
Files
geckolib-fabric-1.21.10-5.3-alpha-3.jar(719.03 KiB) Primary Download
External resources
Featured versions
See allProject members
DerToaster98
Contributor
mchorse
Contributor
KyoSleep
Contributor
Gecko
Owner

ZigyTheBird
Member
Tslat
Maintainer
Technical information
License
MIT
Client side
required
Server side
optional
Project ID

