基本信息
我的世界Java版本
1.21.10
1.21.3–1.21.8
1.21–1.21.1
1.20.4–1.20.6
1.20–1.20.2
1.19.1–1.19.4
1.18.2
1.17.1
1.16.5
1.15.2
1.12.2
平台
Fabric
运行环境
其他链接
搬运团队
搬运资源声明
对于可进行 JAR 文件搬运的许可证,我们提供站内下载服务;其他资源会跳转到原帖下载。资源更新可能不及时,建议前往资源内提供的原帖链接下载最新版本。
详情信息
许可证 MIT
发布于 a year ago
更新于 5 days ago
更新日志
GeckoLib 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)
- 新增:
StatelessGeoBlockEntity
StatelessGeoEntity
StatelessGeoObject
StatelessGeoReplacedEntity
StatelessGeoSingletonAnimatable
StatelessAnimationController
- 新增
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