Changelog
GeckoLib v5.5
- Port to 26.1
Changes
API
- Refactored the base packages of GeckoLib from
software.bernie.geckolibtocom.geckolib - Added
GeoLocator- A object implementation for locators. They are only used for listening to render positions- Added
BakedGeoModel#getLocatorandBakedGeoModel#locators - Added
GeoBone#locators - Added
RenderPassUtil#addLocatorPositionListener - Extracted
GeoBone#updateBonePositionListenerstoRenderUtil#providePositionsToListeners
- Added
- Modified GeckoLib's resource loading to allow for completely custom resource formats
- Gives root-level access to
Resourceinstances. Write an adapter to read resource files from any format you want! - Changed
GeckoLibLoaderfrom an SPI to a registerable interface - Added
GeckoLibUtil#addResourceLoader - Removed
GeckoLibUtil#addCustomBakedModelFactory - Converted
BakedGeoModelto a non-record, extendable class, for potential third-party adapters - Converted
Animationto a non-record, extendable class, for potential third-party adapters - Converted
ModelPropertiesto a non-record, extendable class, for potential third-party adapters - Converted
MathParserback to an instantiable object to allow for extensible implementations, added a deduplication schema to it, and performed a general cleanup - Improved the deduplication schema for
MathParser, further reducing memory consumption - Removed
BakedAnimationsAdapterandKeyFrameMarkersAdapter - Removed the legacy loading objects:
BoneCubeFaceUVLocatorClassLocatorValueMinecraftGeometryModelPolyMeshPolysUnionTextureMeshUVFacesUVUnionBoneStructureGeometryTree- Moved
ModelPropertiestogeckolib.cache.model - Moved
BakedAnimationstogeckolib.cache.animation
- Gives root-level access to
- Cleaned up
EasingType- Added a zero-parameter factory constructor to
EasingTypeand inGeckoLibUtil - Added
EasingState#interpolate - Added
EasingState#getFirstEasingArg - Added
EasingType#modifyKeyframes - Changed
EasingType#registerto return a generic type instead ofEasingType - Removed
EasingType#easeIn - Removed
EasingType#lerpWithOverride - Removed
EasingType#fromJson
- Added a zero-parameter factory constructor to
- Added
BakedAnimationCache#sizeandBakedModelCache#size - Added the
.jsonresource path toBakedGeoModel'sModelProperties - Removed
GeoReplacedEntity#getReplacingEntityTypeas it was no longer used - Converted all Javadocs to Markdown format
- Folded internal implementation methods in
BakedGeoModelandGeoBonefor API visibility - Removed the class parameter for TokenType-based
DataTickets, and properly typed the builtin GeckoLib tickets - Removed
MiscUtil#WORLD_TO_MODEL_SIZE - Removed
MiscUtil#MODEL_TO_WORLD_SIZE - Added
JsonUtil#worldToModelUnitsandJsonUtil#modelToWorldUnits - Removed the dual-type generics for renderstates from:
DirectionalProjectileRendererDyeableGeoArmorRendererGeoArmorRendererGeoBlockRendererGeoEntityRendererGeoReplacedEntityRenderer
- Moved
ModelFormatVersiontocom.geckolib.loading.definition.geometry.object - Renamed
RotationtoUvFaceRotationand moved tocom.geckolib.loading.definition.geometry.object - Removed
headBoneand its associated constructor inDefaultedEntityGeoModelsince it's no longer used - Added direct-object constructors for
DefaultedBlockGeoModel,DefaultedEntityGeoModel, andDefaultedItemGeoModel - Removed
GeckoLibPlatform#getGameDiras it is no longer used - Removed
SerializableDataTickets. They haven't had a place in GeckoLib since early 1.21.x versions, and they've always had unresolvable implementation issues. - Added
VanillaModelModifier- This is mostly an internal implementation class to bridge a gap that vanilla's implementation left us - Fixed and renabled
ItemArmorGeoLayer, added support for non-Equippableitems GeoRenderer#performRenderPassnow supports multiple pre-madeBoneUpdaterswhen starting a render pass- Converted some
BlockStateandItemStackreferences in rendering toItemStackRenderStateandBlockModelRenderStateper Minecraft standards- Vanilla hasn't yet set the systems in place for this to be everywhere, so I'm just doing it where I can
- Added
RenderUtil#createRenderStateForItem - Added
RenderUtil#createRenderStateForBlock
- Added
DataTickets#createas a shortcut/helper method for creating DataTickets - Changed
DataTicket.GLOW_COLOURtoDataTicket.OUTLINE_COLOR - Moved
DataTicket.BLOCK_FACINGtoGeoBlockRenderer.DIRECTION_FACING - Moved
DataTicket.ITEMtoGeoItemRenderer.CURRENT_ITEM - Moved
DataTicket.EQUIPMENT_SLOTtoGeoArmorRenderer.CURRENT_SLOT - Moved
DataTicket.IS_GECKOLIB_WEARERtoGeoArmorRenderer.IS_GECKOLIB_WEARER - Moved
DataTicket.HUMANOID_MODELtoGeoArmorRenderer.BASE_MODEL - Added
BlockEntityRendererProvider.Contextto the constructor ofGeoBlockRenderer
Other
- Added
1.16.0and1.19.30to the known geometry model definitions - Improved resource loading performance
- Added an interface injection for
BlockEntityRenderState->GeoRenderState - GeckoLib will no longer crash when unable to find a model; and will instead render a missing texture cube
Bug Fixes
- Fixed
RenderUtil#transformToBonerunning in reverse order - Fixed
AnimationControllerhaving the wrong InternalApi annotations - Fixed top-level bones not always providing the correct position to
BonePositionListeners - Fixed GeckoLib model bones not rendering in the correct order when nested under parent bones
- Fixed GeckoLib model loading not respecting
mirrorandinflatevalues properly - Reduced backface z-fighting on 0-depth cubes. Stop making your cubes 0-thickness!
Files
geckolib-fabric-26.1-5.5.jar(687.53 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

