• Forge论坛

导航页

  • 主页
  • 向文档做出贡献
  • 入门
    • 概述
    • 模组文件
    • 规划你的模组结构
    • 版本号
  • 核心概念
    • 注册表
    • 端位(Sides)
    • 事件
    • 模组生命周期
    • 资源
    • 国际化与本地化
  • 方块
    • 概述
    • 方块状态
  • 物品
    • 概述
    • BlockEntityWithoutLevelRenderer
  • 网络
    • 概述
    • SimpleImpl
    • 实体的同步
  • 方块实体
    • 概述
    • BlockEntityRenderer
  • 游戏特效
    • 粒子效果
    • 音效
  • 数据储存
    • Capabilities
    • Saved Data
    • 编解码器(Codecs)
  • 图形用户界面
    • 菜单(Menus)
    • 屏幕(Screens)
  • 渲染
    • 模型扩展
      • 概述
      • 根变换
      • 渲染类型
      • 部分可见度
      • 面数据
    • 模型加载器
      • 概述
      • 烘焙模型
      • 变换
      • 物品重载
        • ItemOverrides()
        • resolve
        • getOverrides
        • BakedOverride
  • 资源
    • 客户端资源(Assets)
      • 概述
      • 模型
        • 概述
        • 纹理色调
        • 物品属性
    • 服务端数据(Data)
      • 概述
      • 配方
        • 概述
        • 自定义配方
        • 原料
        • 非数据包配方
      • 战利品表
      • 全局战利品修改器
      • 标签
      • 进度
      • 条件性加载数据
  • 数据生成
    • 概述
    • 客户端资源(Assets)
      • 模型提供者
      • 语言提供者
      • 音效提供者
    • 服务端数据(Data)
      • 配方提供者
      • 战利品表提供者
      • 标签提供者
      • 进度提供者
      • 全局战利品修改器提供者
      • 数据包注册表对象提供者
  • 杂项功能
    • 配置
    • 键盘布局
    • 游戏测试
    • Forge更新检查器
    • 调试分析器
  • 进阶主题
    • 访问转换器
  • 向Forge做出贡献
    • 概述
    • Pull Request准则
  • 旧版本
    • 概述
    • 移植到当前版本

物品重载(ItemOverrides)

ItemOverrides为BakedModel提供了一种处理ItemStack状态并返回新BakedModel的方法;此后,返回的模型将替换旧模型。ItemOverrides表示任意函数(BakedModel, ItemStack, ClientLevel, LivingEntity, int) → BakedModel,使其适用于动态模型。在原版中,它用于实现物品属性重写。

ItemOverrides()

给定ItemOverride的列表,该构造函数将复制并烘焙该列表。可以使用#getOverrides访问烘焙后的覆盖。

resolve

这需要一个BakedModel、ItemStack、ClientLevel、LivingEntity和int来生成另一个用于渲染的BakedModel。这是模型可以处理其物品状态的地方。

这不应该改变存档。

getOverrides

返回一个不可变列表,该列表包含此ItemOverrides使用的所有BakedOverride。如果不适用,则返回空列表。

BakedOverride

这个类表示一个原版的物品覆盖,它为一个物品和一个模型的属性保存了几个ItemOverrides$PropertyMatcher,以备满足这些匹配器时使用。它们是原版物品JSON模型的overrides数组中的对象:

{
  // 在一个原版JSON物品模型内
  "overrides": [
    {
      // 这是一个ItemOverride
      "predicate": {
        // 这是Map<ResourceLocation, Float>,包含属性的名称以及它们的最小值
        "example1:prop": 0.5
      },
      // 这是该覆盖的'location'或目标模型,如果上面的predicate匹配,则使用它
      "model": "example1:item/model"
    },
    {
      // 这是另一个ItemOverride
      "predicate": {
        "example2:prop": 1
      },
      "model": "example2:item/model"
    }
  ]
}
Built with MkDocs using a custom theme. Hosted by Read the Docs.
Enable Dark Theme