nineMinecraft is a joke site.
nineMinecraft is in no way affiliated with Modrinth or 9minecraft. (And frankly, who wants to be affiliated with the latter?)

NeoForge 26.1-5.5

Changelog

GeckoLib v5.5

  • Port to 26.1

Changes

API

  • Refactored the base packages of GeckoLib from software.bernie.geckolib to com.geckolib
  • Added GeoLocator - A object implementation for locators. They are only used for listening to render positions
    • Added BakedGeoModel#getLocator and BakedGeoModel#locators
    • Added GeoBone#locators
    • Added RenderPassUtil#addLocatorPositionListener
    • Extracted GeoBone#updateBonePositionListeners to RenderUtil#providePositionsToListeners
  • Modified GeckoLib's resource loading to allow for completely custom resource formats
    • Gives root-level access to Resource instances. Write an adapter to read resource files from any format you want!
    • Changed GeckoLibLoader from an SPI to a registerable interface
    • Added GeckoLibUtil#addResourceLoader
    • Removed GeckoLibUtil#addCustomBakedModelFactory
    • Converted BakedGeoModel to a non-record, extendable class, for potential third-party adapters
    • Converted Animation to a non-record, extendable class, for potential third-party adapters
    • Converted ModelProperties to a non-record, extendable class, for potential third-party adapters
    • Converted MathParser back 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 BakedAnimationsAdapter and KeyFrameMarkersAdapter
    • Removed the legacy loading objects:
      • Bone
      • Cube
      • FaceUV
      • LocatorClass
      • LocatorValue
      • MinecraftGeometry
      • Model
      • PolyMesh
      • PolysUnion
      • TextureMesh
      • UVFaces
      • UVUnion
      • BoneStructure
      • GeometryTree
      • Moved ModelProperties to geckolib.cache.model
      • Moved BakedAnimations to geckolib.cache.animation
  • Cleaned up EasingType
    • Added a zero-parameter factory constructor to EasingType and in GeckoLibUtil
    • Added EasingState#interpolate
    • Added EasingState#getFirstEasingArg
    • Added EasingType#modifyKeyframes
    • Changed EasingType#register to return a generic type instead of EasingType
    • Removed EasingType#easeIn
    • Removed EasingType#lerpWithOverride
    • Removed EasingType#fromJson
  • Added BakedAnimationCache#size and BakedModelCache#size
  • Added the .json resource path to BakedGeoModel's ModelProperties
  • Removed GeoReplacedEntity#getReplacingEntityType as it was no longer used
  • Converted all Javadocs to Markdown format
  • Folded internal implementation methods in BakedGeoModel and GeoBone for 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#worldToModelUnits and JsonUtil#modelToWorldUnits
  • Removed the dual-type generics for renderstates from:
    • DirectionalProjectileRenderer
    • DyeableGeoArmorRenderer
    • GeoArmorRenderer
    • GeoBlockRenderer
    • GeoEntityRenderer
    • GeoReplacedEntityRenderer
  • Moved ModelFormatVersion to com.geckolib.loading.definition.geometry.object
  • Renamed Rotation to UvFaceRotation and moved to com.geckolib.loading.definition.geometry.object
  • Removed headBone and its associated constructor in DefaultedEntityGeoModel since it's no longer used
  • Added direct-object constructors for DefaultedBlockGeoModel, DefaultedEntityGeoModel, and DefaultedItemGeoModel
  • Removed GeckoLibPlatform#getGameDir as 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-Equippable items
  • GeoRenderer#performRenderPass now supports multiple pre-made BoneUpdaters when starting a render pass
  • Converted some BlockState and ItemStack references in rendering to ItemStackRenderState and BlockModelRenderState per 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#create as a shortcut/helper method for creating DataTickets
  • Changed DataTicket.GLOW_COLOUR to DataTicket.OUTLINE_COLOR
  • Moved DataTicket.BLOCK_FACING to GeoBlockRenderer.DIRECTION_FACING
  • Moved DataTicket.ITEM to GeoItemRenderer.CURRENT_ITEM
  • Moved DataTicket.EQUIPMENT_SLOT to GeoArmorRenderer.CURRENT_SLOT
  • Moved DataTicket.IS_GECKOLIB_WEARER to GeoArmorRenderer.IS_GECKOLIB_WEARER
  • Moved DataTicket.HUMANOID_MODEL to GeoArmorRenderer.BASE_MODEL
  • Added BlockEntityRendererProvider.Context to the constructor of GeoBlockRenderer

Other

  • Added 1.16.0 and 1.19.30 to 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#transformToBone running in reverse order
  • Fixed AnimationController having 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 mirror and inflate values properly
  • Reduced backface z-fighting on 0-depth cubes. Stop making your cubes 0-thickness!

Files

geckolib-neoforge-26.1-5.5.jar(646.25 KiB) Primary Download

External resources


Project members

Gecko

Owner

DerToaster98

Contributor

KyoSleep

Contributor

mchorse

Contributor

Tslat

Maintainer

ZigyTheBird

Member


Technical information

License
MIT
Client side
required
Server side
optional
Project ID