Tags
Creators
Details
Licensed MIT
Created 4 years ago
Updated last month
All versions
5.4
Release
Fabric 1.21.117 months ago 23.8K
Compatibility
Minecraft: Java Edition
1.21.11
Platform
Fabric
Supported environments
Client-side
Client and server
Required content
Changes
GeckoLib v5.4
Changes:
Fixes:
- Fixed GeoArmorRenderer not rendering properly
- Fixed GeoArmorRenderer crashing when using renderlayers
- Fixed animations interpolating from previous animations that had already finished
- Fixed animations not transitioning back to base pose when finishing if transition time is present
- Fixed animations not rotating properly when animating bones that are rotated by default
- Fixed bone scaling not applying
API:
- GeoRenderState#addGeckolibData no longer accepts
nullvalues - Re-added
#setTransitionTickstoAnimationController - Added
JsonUtil#jsonToVec3direct helper method - Begun building a new SPI-based .json deserialization pipeline, to allow for safer and more extensible model & animation loading
- By default, GeckoLib will continue to use GSON to deserialize into intermediary unbaked objects
- I am looking at making a GeckoLib addon that uses a faster library (possibly FastJson?) to speed up loading of assets, potentially substantially
- This system is not fully implemented yet, but the majority of the code has been written and reviewed to ensure it meets current Bedrock geometry & animation specs (1.21.0 and 1.8.0 respectively)
- This will in theory allow mod authors to create their own adapters in the event they want to do custom loading or handling, without sacrificing on safety
- By default, GeckoLib will continue to use GSON to deserialize into intermediary unbaked objects
- Removed
GeckoLibClient#getGeoModelForItemas it was unused and unnecessary, useRenderUtil#getGeckoLibItemRendererinstead and get the model as needed GeckoLibServices.Clientwas extracted toGeckoLibClientServices, because java kept failing to compile for seemingly no reason- Created
GeoBone#positionAndRender, which implements the full render operation for a given bone - Added a supplier-based fallback overload for
GeoRenderState#getOrDefaultGeckolibDatafor deferred computation - Added
SerializableDataTicket#enforceValidTicket
Internal:
- Moved GeckoLib's nullability annotations to the JSpecify spec
- You will find a significant increase in nullability notations and null handling in the library, which should help eliminate confusion as to the state of the code
- Cleaned up more Javadocs
- Added a significant amount of additional documentation - specifically in package-info files and parameter type descriptions
- Renamed RawAnimation#additionalTicks to RawAnimation#waitTicks
- Removed
bind_pose_rotationlegacy support from the Bone format - Removed the unused
AnimationVariablesclass - Changed the related-object generic type for
GeoObjectRendererfromEtoOto match the rest of the library - Moved
BoneSnapshots,PerBoneRender, andRenderPassInfoto the renderer base package - Moved the various builtin
GeoRenderLayerclasses to a builtin subpackage - Moved GeckoLib's GSON instance from
KeyFramesAdaptertoGeckoLibResources - Renamed
KeyFramesAdaptertoKeyFrameMarkersAdapter - Cleaned up and standardized nullability throughout the library
- Updated some outdated javadocs from pre-update
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:8BmcQJ2H:4ILtHPhH"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:8BmcQJ2H:4ILtHPhH"
}

