Fabric 1.21.10
on 2025 Nov 05GeckoLib v5.3-alpha-2
Alpha 2 更新说明:
- 修复在较新版本的 Forge 上加载时崩溃的问题 (#773)
- 修复未渲染完整护甲套装时 GeoArmorRenderer 崩溃的问题 (#771)
- 将
BlockAndItemGeoLayer#renderStackForBone和#renderBlockForBone分别重命名为#submitItemStackRender和#submitBlockRender - 将
OBJECT_RENDER_POSE和MODEL_RENDER_POSEDataTicket 移至基础GeoRenderer类中,使子类无需在重写方法中处理它们 - 修复了每个
GeoBone仅处理一个PerBoneRenderTask的问题 - 新增
GeoBone#transformToBone - 将
PerBoneRender任务拆分为GeoRenderer#submitPerBoneRenderTasks - 移除了多个
GeoRenderer方法调用中的skipPerBoneTasks参数,因其已不再需要 - 创建了
PerBoneRenderTasks以更清晰地管理复杂化的逐骨骼渲染任务 - 限制
GeoArmorLayer的泛型类型必须为AvatarRenderState,因为模型实际使用的就是该类型 - 新增
RenderStateUtil
变更内容
- 移植至 1.21.10
- 注意:此为 ALPHA 版本,在 alpha 标签移除前可能会有破坏性变更。
- 大多数 GeoRenderer 不再填充 PACKED_LIGHT DataTicket,因为基础 RenderState 类默认已包含
lightCoords - 新增
GeoRenderState#getPackedLight GeoRenderer#defaultRender已重命名为#submitRenderTasks,以更准确反映其功能(此时并未真正执行渲染)GeoRenderer#actuallyRender已重命名为#buildRenderTask,以更准确反映其功能GeoLayer#render已重命名为#buildRenderTask,以更准确反映其功能- 移除了
GeoRenderer#reRender。取而代之的是,渲染层或渲染器应通过GeoRenderer#buildRenderTask提交新的渲染任务。因此,现在无需再检查isReRender preRender、scaleModelForRender和adjustPositionForRender现在均在 preRender 事件检查之后执行- 新增
GeoRenderer#createRenderState - 移除了
GeoEntityRenderer#createBaseRenderState—— 请改用#createRenderState - 从默认设置中移除了多个 DataTicket,这些原本只是对现有原版属性的重复拷贝,此举可消除多数据源并提升性能
- 将 GeckoLib 渲染器中的各种 Matrix4f 变量移至 DataTicket 中管理
- 移除了
GeoRenderer#doPostRenderCleanup - 在
GeoArmorLayer.RenderData中添加了关联的 HumanoidModel
- 重写了
GeoArmorRenderer—— 现在使用和理解起来应显著更简单 - 修改
DefaultedEntityGeoModel以接受可自定义的骨骼名称,而非简单的布尔值 - 为各类
GeoRenderer添加了#withRenderLayer方法,支持函数式实例化 GeoObjectRenderer现在对其GeoRenderState使用泛型,以支持泛型扩展- 直接将 partialTick 传递给
GeoRenderer#addRenderData、GeoRenderLayer#addRenderData、GeoModel#prepareForRenderPass以及各类CompileRenderState事件/钩子 (#762) - 将
GeoRenderer#adjustPositionForRender重命名为#adjustRenderPose,以更准确反映其用途 ItemArmorGeoLayer.RenderData现在使用GeoArmorRenderer.ArmorSegment而非手动插槽和部件获取器- 使
GeoRenderEvent及其各类子事件支持多加载器环境 - 所有平台特定的 GeckoLib 事件现已拆分为独立类,便于查找和管理。例如:
CompileBlockRenderLayersEvent
新增功能
- 新增“无状态”可动画对象(Stateless Animatables)。这是处理 GeckoLib 动画对象的另一种方式。
- 参见:https://github.com/bernie-g/geckolib/wiki/Stateless-Animatable-Handling-(Geckolib5)
- 新增:
StatelessGeoBlockEntityStatelessGeoEntityStatelessGeoObjectStatelessGeoReplacedEntityStatelessGeoSingletonAnimatableStatelessAnimationController
- 新增
attack.punch默认动画常量 - 新增
misc.idle.flying默认动画常量 - 新增
move.dive默认动画常量 - 新增
DefaultAnimations#triggerOnlyController,用于创建专用于任意触发动画的控制器 - 新增
RawAnimation#getStageCount - 新增
AnimationController#getStateHandler - 新增
DefaultAnimations#genericWalkFlyIdleController - 为各类 GeckoLib 渲染器添加了构造函数重载,可直接传入物品并使用对象注册 ID 创建默认实例,便于快速使用
- 示例:
new GeoEntityRenderer(ModEntities.MY_ENTITY);
- 示例:
- 新增
GeoRenderEvent#hasData - 新增
RenderUtil#getReplacedEntityRenderer - 新增
RenderUtil#getGeckoLibItemRenderer - 新增
RenderUtil#getGeckoLibEntityRenderer - 新增
RenderUtil#getGeckoLibBlockRenderer - 新增
RenderUtil#getGeckoLibArmorRenderer
Bug 修复
- 添加对双层 bedrock 关键帧的解析,因为不清楚为何 Blockbench 会导出这种格式
- 修复多人游戏中其他玩家无法看到新物品堆叠上触发动画的问题
- 修复 AnimationController 中部分错误的 Javadoc
- 确保在传递给
GeoArmorRenderer提取前,EntityRenderState已被正确提取
内部变更
- 将 GeckoLib 的数据包重新组织到文件夹中
- 为
Animation.Stage添加 StreamCodec 实现 - 为
RawAnimation添加 StreamCodec 实现 - 为更多内部方法及所有 Mixin 添加 Javadoc 以提高可读性
- 改进
GeoRenderEvent#getRenderData的 Javadoc - 移除
RenderUtil#getCurrentSystemTick - 移除
RenderUtil#booleanToFloat - 移除
RenderUtil#getGeoModelForEntityType - 移除
RenderUtil#getGeoModelForEntity - 移除
RenderUtil#getGeoModelForItem - 移除
RenderUtil#getGeoModelForBlock - 移除
RenderUtil#getGeoModelForArmor - 将
RenderUtil#getCurrentTick移至ClientUtil - 将
RenderUtil#arrayToVec移至JsonUtil - 从
GeoRenderProvider#getGeoArmorRenderer中移除了一些冗余参数 - 将
ItemArmorGeoLayer#prepHumanoidModelForRender重命名为#positionModelPartFromBone
Fabric 1.21.10
on 2025 Oct 13GeckoLib v5.3-alpha-1
变更内容
- 移植至 1.21.10
- 注意:这是一个 ALPHA 版本,直到移除 alpha 标签前都可能存在破坏性变更。
- 大多数 GeoRenderers 不再填充 PACKED_LIGHT DataTicket,因为基础 RenderState 类现在默认包含
lightCoords - 新增
GeoRenderState#getPackedLight GeoRenderer#defaultRender已重命名为#submitRenderTasks,以更准确地反映其功能(现在调用时并不实际进行渲染)GeoRenderer#actuallyRender已重命名为#buildRenderTask,以更准确地反映其功能GeoLayer#render已重命名为#buildRenderTask,以更准确地反映其功能- 移除了
GeoRenderer#reRender。取而代之的是,渲染层或渲染器应通过GeoRenderer#buildRenderTask提交新的渲染任务。因此,你不再需要在渲染器方法中检查isReRender preRender、scaleModelForRender和adjustPositionForRender现在都被移动到 预渲染事件检查之后 执行- 新增
GeoRenderer#createRenderState - 移除了
GeoEntityRenderer#createBaseRenderState—— 请改用#createRenderState - 从默认设置中移除了多个 DataTickets,这些原本只是对现有原版属性的明显复制,此举旨在消除多数据源并提升性能
- 将 GeckoLib 渲染器中的各种 Matrix4f 变量迁移至 DataTickets
- 移除了
GeoRenderer#doPostRenderCleanup - 在
GeoArmorLayer.RenderData中添加了关联的 HumanoidModel
- 重写了
GeoArmorRenderer—— 现在使用和理解起来应该显著更简单 - 将 DefaultedEntityGeoModel 改为接受可自定义的骨骼名称,而非简单的布尔值
- 在各种
GeoRenderer中新增了#withRenderLayer方法,支持函数式实例化 GeoObjectRenderer现在对其GeoRenderState使用泛型,以实现泛型扩展性- 直接将 partialTick 传递给
GeoRenderer#addRenderData、GeoRenderLayer#addRenderData、GeoModel#prepareForRenderPass以及各种CompileRenderState事件/钩子 (#762) - 将
GeoRenderer#adjustPositionForRender重命名为#adjustRenderPose,以更好地反映其预期用途 ItemArmorGeoLayer.RenderData现在使用GeoArmorRenderer.ArmorSegment而非手动槽位和部件获取器- 使
GeoRenderEvent及其各种子事件支持多加载器 - 所有平台特定的 GeckoLib 事件现在被拆分为各自的独立类,以便更容易查找和管理。例如:
CompileBlockRenderLayersEvent
新增功能
- 新增“无状态”可动画对象(Stateless Animatables)。这是处理 GeckoLib 动画对象动画的另一种方式。
- 参见:https://github.com/bernie-g/geckolib/wiki/Stateless-Animatable-Handling-(Geckolib5)
- 新增:
StatelessGeoBlockEntityStatelessGeoEntityStatelessGeoObjectStatelessGeoReplacedEntityStatelessGeoSingletonAnimatableStatelessAnimationController
- 新增
attack.punch默认动画常量 - 新增
misc.idle.flying默认动画常量 - 新增
move.dive默认动画常量 - 新增
DefaultAnimations#triggerOnlyController,用于创建专门处理任意触发动画的控制器 - 新增
RawAnimation#getStageCount - 新增
AnimationController#getStateHandler - 新增
DefaultAnimations#genericWalkFlyIdleController - 为各种 GeckoLib 渲染器添加了构造函数重载,可直接传入物品并使用对象注册的 ID 创建默认实例,便于快速简便地处理
- 示例:
new GeoEntityRenderer(ModEntities.MY_ENTITY);
- 示例:
- 新增
GeoRenderEvent#hasData - 新增
RenderUtil#getReplacedEntityRenderer - 新增
RenderUtil#getGeckoLibItemRenderer - 新增
RenderUtil#getGeckoLibEntityRenderer - 新增
RenderUtil#getGeckoLibBlockRenderer - 新增
RenderUtil#getGeckoLibArmorRenderer
Bug 修复
- 添加对双深度 bedrock 关键帧解析的支持,因为不清楚为何 Blockbench 会导出这种格式
- 修复在多人游戏中,新堆叠实体上的触发动画对其他玩家不可见的问题
- 修复 AnimationController 中一些不正确的 Javadoc
- 确保在传递给
GeoArmorRenderer提取前,EntityRenderState被正确提取
内部变更
- 将 GeckoLib 的数据包重新组织到文件夹中
- 为
Animation.Stage添加 StreamCodec 实现 - 为
RawAnimation添加 StreamCodec 实现 - 为更多内部方法及所有 Mixin 添加 Javadoc 以提高清晰度
- 改进
GeoRenderEvent#getRenderData的 Javadoc - 移除
RenderUtil#getCurrentSystemTick - 移除
RenderUtil#booleanToFloat - 移除
RenderUtil#getGeoModelForEntityType - 移除
RenderUtil#getGeoModelForEntity - 移除
RenderUtil#getGeoModelForItem - 移除
RenderUtil#getGeoModelForBlock - 移除
RenderUtil#getGeoModelForArmor - 将
RenderUtil#getCurrentTick移动至ClientUtil - 将
RenderUtil#arrayToVec移动至JsonUtil - 从
GeoRenderProvider#getGeoArmorRenderer中移除了一些多余的参数 - 将
ItemArmorGeoLayer#prepHumanoidModelForRender重命名为#positionModelPartFromBone
Fabric 1.21.1
on 2025 Oct 08v4.8.1
- 使 NeoForge 的网络注册变为可选,允许仅在客户端使用 GeckoLib
Fabric 1.21.1
on 2025 Aug 24v4.7.7
- 在尝试为动画纹理添加辉光遮罩时正确处理异常(拉取请求 #758)
- 将 DefaultedEntityGeoModel 更改为使用可空的骨骼名称输入来进行头部转动,而不是使用扁平的布尔值(#753)
- 修复了一些特定的基岩格式动画在 Blockbench 的较新版本中导出时无法解析的问题
Fabric 1.21.8
on 2025 Aug 08GeckoLib v5.2.2
Bug 修复
- 修复了 AnimationProcessor 中错误消息中的拼写错误
- 修复了 GeoModel 中回退位置的错误处理
内部
- 调整了 GeoArmorRenderer 的虚拟 ID 查找,以提高微性能
Fabric 1.21.7
on 2025 Jul 04GeckoLib v5.2.1
移植到 1.21.7
错误修复
- 临时修复物品实体渲染不可见的问题。可能需要进行一次破坏性更改才能正确修复,很快就会找到答案
Fabric 1.21.6
on 2025 Jun 27GeckoLib v5.2.0
重大变更 - 抱歉!
添加内容
- GeoItemRenderer 的渲染对象已从 ItemStack 切换为 GeoItemRenderer$RenderData。
- 这意味着 GeoItemRenderer 现在可以访问一些额外的上下文对象,包括持有该物品的玩家。
错误修复
- 修复了在
AnimationTest阶段 GeoItems 没有ItemRenderContext可用的问题(#735)
Fabric 1.21.1
on 2025 Jun 16v4.7.6
- 清理GeckoLibUtil#getSyncedAnimatable的Java文档及参数命名
- 允许手动更改的GeckoLib堆叠ID(???)像正常情况那样进行同步
- 修复GeoArmorRenderer在未注册为同步可动画化对象时共享其动画的问题(#730)
Fabric 1.21.5
on 2025 Jun 16壁虎库v5.1.0
新增内容
- 新增了
AutoGlowingGeoLayer#shouldAddZOffset——一个用于为特定渲染类型或特殊情况添加更好兼容性的切换开关 - 新增了
AutoGlowingGeoLayer#getBrightness——一个可配置的值,用于调整发光层的亮度
更改内容
- 在
AutoGlowingGeoLayer#shouldRespectWorldLighting的方法参数中添加了渲染状态 - 进行了少量代码清理
漏洞修复
- 修复了GeoArmorRenderer不支持发光遮罩的问题。需要进行小幅重写。稍有变动。抱歉。
- 修复了GeoArmorRenderer在未注册为可同步的GeoAnimatable时,已穿戴实例之间共享动画的问题(#730)
Fabric 1.21.4
on 2025 Jun 15v4.8.5
- 修复了stopTriggeredSingletonAnim实际上会启动一个触发动画而非停止它的问题
Fabric 1.21.5
on 2025 Jun 15壁虎库v5.0.2
漏洞修复
- 修复“stopTriggeredSingletonAnim”实际上启动了一个触发动画而非停止它的问题
Fabric 1.20.1
on 2025 Jun 15v4.7.1.3
Fabric:
- 更新MixinItemRenderer以提高第三方模组兼容性
Fabric 1.21.5
on 2025 Jun 15壁虎库v5.0.1
漏洞修复
- 修复了自动发光地理层渲染出黑色和紫色模型的问题
Fabric 1.21.5
on 2025 Apr 25壁虎库v5.0
新特性
- 新增了
手中物品地理层 - 新增了
逐骨骼渲染 - 新增了
数据票据#是否为左手 - 新增了
数据票据#是否蹲下 - 新增了
地理渲染#调整渲染位置 - 新增了
定向投射物渲染器 - 新增了
纹理层地理层 - 新增了
自定义骨骼纹理地理层
内部改动
- 在加载不带后缀的动画或模型文件时,移除了一些不必要的警告
- 使用旧格式修复了
默认地理模型中的Java文档 - 将
地理实体渲染器的缩放属性处理移至为渲染缩放模型中,并移动了睡眠姿势的平移以更好地适应缩放 - 将
为渲染缩放模型从预渲染中移出,使其成为独立调用 - 优化了
渲染工具#获取纹理尺寸,使其能够考虑加载后的修改 - 优化了
烘焙地理模型#获取骨骼
API改动
- 移除了
地理渲染器#为骨骼应用渲染层。现在在#预应用渲染层中添加逐骨骼渲染。 - 新增了
地理渲染层#添加逐骨骼渲染 - 更改了
物品护甲地理层的工作方式,使其更高效,并支持鞘翅(尽管目前还不是百分百正确) - 更改了
方块与物品地理层的工作方式,使其更高效且更简洁 - 将
物品护甲地理层#为渲染准备模型部件更改为为渲染准备人形模型 - 将
壁虎库客户端#获取物品的护甲模型改为返回一个人形模型而非基础模型,因为非人形模型从未被使用过 - 在
地理渲染器#最终渲染中添加了压缩光、压缩覆盖和渲染颜色 - 从
地理实体渲染器#计算Y轴旋转中移除了final关键字 - 移除了
骨骼过滤地理层和快速骨骼过滤地理层
漏洞修复
- 修复了
壁虎库动画纹理在加载纹理失败时崩溃的问题 - 修复了逐骨骼渲染任务干扰查询值的问题
- 修复了渲染层中的姿态栈操作干扰骨骼位置获取器的问题
- 修复了
地理物品渲染器和地理对象渲染器在缩放时定位不正确的问题 - 修复了
地理替换实体渲染器不传播姿态栈操作的问题 - 修复了
物品护甲地理层与使用相同数据票据的其他层发生冲突的问题
Fabric 1.21.5
on 2025 Apr 25壁虎库v5.0-alpha2
注意事项
- 由于Mojang已经使得之前的动态渲染器不实用了,所以仍在研究针对每块骨骼渲染处理的替代解决方案。
漏洞修复
- 修复了GeoObjectRenderer不存储压缩光的问题(#712)
- 修复了GeoEntityRenderer不允许通用可扩展渲染状态的问题
- 修复了
AutoGlowingGeoLayer中一些不正确的Java文档注释 - 修复了GeoArmorRenderer不考虑发光或隐形数据标签的问题
- 重新加载纹理会导致发光和动画纹理出现奇怪的问题
内部改动
- AutoGlowingGeoLayer不再移除基础纹理的部分区域,从而允许选择性的动态发射率
- AutoGlowingGeoLayer不再禁用光影兼容性
- 动画纹理和发光遮罩不再相互依赖。你可以在动画纹理上设置非动画的发光遮罩等等。
新增内容
- 添加了
RenderUtil#getEmissiveResource辅助方法 - AutoGlowingGeoLayer现在有一个
shouldRespectWorldLighting方法,允许你在绝对发射率和与世界光照协同遮荫的发射率之间进行选择
移除内容
- 壁虎库的发光纹理不再支持创建mcmeta文件。请改用发光遮罩图像(反正这样更容易)
Fabric 1.21.5
on 2025 Apr 08壁虎库(GeckoLib)v5.0-alpha1
注意事项
- 截至
alpha1版本,发光遮罩和动画纹理尚无法正常使用。这一问题很快就会解决哦 :) - 此外,由于Mojang使得之前的动态渲染器不再实用,我正在研究针对逐骨骼渲染处理的替代解决方案。
- 如果您使用了这些功能中的任何一项,请等到5.0正式版发布后再使用,谢谢。
常规变更
- 已更新至《我的世界》1.21.5版本
- 已将更新日志转换为Markdown格式
内部变更
- 重写了资源加载系统,以便在不影响输入输出(I/O)的情况下正确处理并行化的资源。
- 让GeoArmorRenderer从HumanoidArmorLayer#setPartVisibility继承骨骼可见性,以便更好地与第三方模组协同工作。
- 将默认的boneResetTime设置为5刻,并在刻时间为0时自动完成重置。这可避免不可避免的部分刻骨骼重置。
- 修复了在同步可动画物品上中键点击时,若使用触发动画或同步数据会导致冲突的问题(#681)。
- 现在,使用动画进行完整旋转的骨骼在重置时不应再反向旋转,从而使旋转动画更加流畅。
- 同步可动画物品之间不再相互阻止堆叠。
- 为动画数据添加了内存压缩。较大的模组包应能减少内存使用量。
- 为在Molang中无效使用角色变量添加了一项安全检查。
- 壁虎库(GeckoLib)实体渲染现在自动与新Forge(NeoForge)实体渲染状态修饰符兼容。
- 覆盖了原版对实体名牌渲染的64格默认硬限制。现在您可以将其扩展至256格。
- 修复了GeoBones上的世界空间定位未考虑部分刻线性插值的问题。
- 修复了非生物实体在渲染时未考虑其Y轴旋转的问题。
- 修复了死亡旋转在部分刻加倍的问题。
- 修复了在
GeoObjectRenderer中BufferSource未正确设置为非空的问题。 - 修复了
GeoEntityRenderer在重新渲染时重新应用其他PoseStack操作的问题。 - 将大量渲染值创建工作移回原版,以便更好地与原版及其他模组兼容。
- 在整个
AnimationProcessor中删除了一些多余的方法参数。 - 将
AnimationController#process重命名为AnimationController#startTick。 - 修复了
DefaultAnimations#genericFlyController在不移动时不停下来的问题。 - 将动画状态移至渲染之前,以便优化Molang查询填充。
- 修复了
AnimationController的动画速度可能在每次渲染过程中多次重新计算,导致动画处理不一致的问题。 - 将
Keyframes重命名为KeyframeMarkers。 - 壁虎库(GeckoLib)现在会预先确定在任何给定渲染帧中将使用哪些Molang查询,并预先计算所有相关值并进行缓存。这使得复杂动画成为可能。
- 将
AnimatableManager及其所有派生类移至不同的包。 - 将
AnimationController、AnimationProcessor、AnimationState移至不同的包。 - 将
AutoPlayingSoundKeyframeHandler移至不同的包。 - 删除了
AnimationPointQueue。 - 将逐骨骼渲染层渲染移至其余渲染完成之后。
- 更改了
DyeableGeoArmorRenderer的工作方式,使其更加准确。 - 修复了各种GeoRenderEvent类中的一些Javadoc错误。
API变更
- 所有壁虎库(GeckoLib)资源现在都放在/assets/geckolib/中
- 动画放在
/assets/<模组ID>/geckolib/animations/中 - 模型放在
/assets/<模组ID>/geckolib/models/中
- 动画放在
- 所有GeoRenderers现在都基于GeoRenderStates运行,而不是传递可动画对象。Mojang已经明确表示我们必须这样做 :(
- 删除了
GeoRenderer#getAnimatable。 - 从GeoRenderer的方法中删除了各种参数,默认将它们移至
GeoRenderState。 - 删除了
GeoEntityRenderer#isShaking。
- 删除了
AnimationState现在是一个内部类,用于在处理过程中携带动画状态。用户现在应使用AnimationTest。它们在功能上是相同的。- GeoRenderers扩展现在接受第二种泛型类型;即渲染状态类型(以及GeoRenderState)。
- GeoModel模型/动画引用不再需要文件路径前缀或后缀(即,您在返回的模型资源中无需包含
geo/或.geo.json)。 DataTicket现在需要通过工厂方法创建,以确保标识一致性。SerializableDataTicket不再需要注册,但在模组构造期间仍必须创建。GeoRenderer中的所有渲染方法在参数中将PoseStack和渲染状态(之前是可动画对象)的位置进行了交换。- Molang变量现在都是针对当前渲染过程中的
AnimationState进行操作的函数。 AnimationController不再需要传递可动画对象给它。- 在
AutoGlowingGeoLayer中拆分了纹理检索和使用,以便模组可以根据需要覆盖纹理。 - 所有
DefaultAnimations助手现在为了一致性和清晰性,默认过渡时间为0刻。 - 将格式版本转换为字符串,并将其转换为一个更灵活的系统。
- 为同步单例可动画对象引入了基于标识的查找,希望能消除类重复冲突。
- 将
AnimationState#getData标记为可空,以避免混淆。 - 将
EasingType中的easingType参数标记为可空,以避免混淆。 - 清理了EasingType的Javadoc。
GeoReplacedEntityRenderer现在在尝试将一个实体作为可动画对象插入时会明确报错,以防止内存泄漏。- 使
GeoReplacedEntityRenderer与GeoEntityRenderer更加一致,以确保准确性。 CustomInstructionKeyframeEvent、SoundKeyframeEvent和ParticleKeyframeEvent都已合并到KeyFrameEvent中。CustomInstructionKeyframeHandler、SoundKeyframeHandler和ParticleKeyframeHandler都已合并到KeyframeEventHandler中。- 将
KeyFrameEvent转换为记录类型。 - 将
Calculation转换为记录类型。 MolangQueries再次与边无关。- GeoRenderers的各个部分还额外提供了一个相关对象用于处理(物品堆、被替换的实体等)。
- 将
prepLivingEntityRenderState移至GeoEntityRenderer中,以便在需要时可以被重写。 - 删除了
EntityModelData。 - 删除了
DeferredGeoRenderProvider。 - 删除了
InternalUtil。 - 删除了
FileLoader。 - 删除了
Color。它已完全被net.minecraft.util.ARGB所取代。 - 从各种
GeoModel获取器中删除了GeoRenderer参数,因为它已不再需要。 - 重命名了
GeoArmorRenderer中的骨骼变量,以防止与HumanoidArmorModel的字段名冲突。 - 重命名了
GeckoLibCache为GeckoLibResources。 - 重命名了
AnimatableManager#setData为AnimatableManager#setAnimatableData(及其相关的获取器)。 - 为重命名
AutoGlowingTexture#getEmissiveResource为#getOrCreateEmissiveTexture,以提高清晰度。 - 将
GeoEntityRenderState移至GeoRenderState。 - GeckoLibUtil中的各种单例注册助手已移至新的
SyncedSingletonAnimatableCache,相关方法的层级范围已缩小,以提高清晰度和安全性。 - 重命名了
GeoRenderLayer#renderForBone为#createPerBoneRender,现在要求您将操作作为一个可运行对象返回,以便稍后运行。 - 删除了
DynamicGeoBlockRenderer、DynamicGeoEntityRenderer和DynamicGeoItemRenderer。请使用渲染层来进行针对骨骼的特定处理。我将考虑为此创建一个辅助类或其他替代选项。 - 改进了各种
GeoRenderEvent的泛型类型,使其更有用。
新内容
- 为
SingletonGeoAnimatable添加了stopTriggeredAnimation方法。 - 添加了
triggerArmorAnim用于触发盔甲动画(#433)。 - 添加了
query.controller_speedMolang查询。 - 添加了
query.limb_swingMolang查询。 - 添加了
query.limb_swing_amountMolang查询。 - 为基岩版风格的动画JSON添加了对卡特穆尔-罗姆(平滑)缓动的原生支持(感谢Zigy的前期工作)。
- 动画纹理现在支持发光遮罩(#456)。
- 在
GeoRenderer中添加了#setBonesVisible辅助方法,以便于使用。 - 添加了
AnimationController#isTriggeredAnimation用于检查当前触发的动画。 - 添加了
AnimationController#setAnimationState,如有必要可直接设置控制器的状态。 - 为每种渲染器类型添加了
CompileRenderState事件钩子。
Fabric 1.20.1
on 2025 Apr 04v4.7.1.2
Fabric:
- 将重定向混合(Mixin)移至包裹操作(WrapOperations),以防止与其他模组发生冲突
Forge:
- 将物品堆叠(itemstacks)的可堆叠性更改回退到4.7.1版本时的状态,因为Forge没有混合扩展(MixinExtras),添加它会偶尔导致冲突解决方面的问题
Fabric 1.20.1
on 2025 Apr 04v4.7.1.1
- 修复一些导致卡顿/问题的错误的堆栈比较(#689)
Fabric 1.21.1
on 2025 Apr 04v4.7.5.1
- 从样条曲线插值中移除帧外推
Fabric 1.21.1
on 2025 Apr 04v4.7.5
- 重新处理无效的动作动画关键帧。优雅地处理成功情况而非失败情况
- 添加
query.controller_speed莫朗查询。 - 移除地理模型中针对
getTextureResource和getModelResource的待移除废弃内容



