Cobblemon道馆徽章

Cobblemon道馆徽章

Cobblemon道馆徽章模组添加了一个徽章压制机,用于制作自定义道馆徽章(及缎带),并支持基于角色的权限访问。

Cobblemon Gym Badges

Cobblemon Gym Badges 添加了一个徽章压制机(Badge Press),用于制作自定义道馆徽章(和缎带),并带有基于角色的访问权限。

特性

  • 带有专用制作界面的徽章压制机方块
  • 道馆馆主角色,用于限制徽章制作
  • 支持数据包 + 资源包,用于自定义徽章和缎带
  • JEI / EMI / REI 集成(每位玩家仅显示可制作的配方)
  • 资源包优先的设计,使自定义美术资源保留在 jar 之外
  • 这基本上包含了在 JEI / EMI / REI 中查看自定义物品的功能,类似于 Easy Item List 模组

使用徽章压制机

  1. 放置一个徽章压制机。
  2. 将核心材料放入顶部槽位,将基底材料放入底部槽位。
  3. 如果你拥有所需的角色(如果有的话),徽章将出现在输出槽位中。

创建自定义徽章(数据包 + 资源包)

你需要两个部分:

  1. 用于徽章定义和配方的数据包
  2. 用于模型和纹理的资源包
关于数据包 / 资源包的信息

数据包:徽章定义

路径:data/<namespace>/cgb/badge/<id>.json
(此处的 cgb 是徽章的注册表命名空间。)

命名提示: <id> 是徽章的身份标识和翻译键。 如果你想要一个“冠军缎带”,请将文件命名为 champion_ribbon.json,并为 badge.<namespace>.champion_ribbon 添加翻译。内部物品 id 始终是根据 badgebox 决定的 cgb:badge、cgb:badge_ribbon 或 cgb:badge_untagged,但玩家只会看到徽章定义名称。

示例(徽章):

{
  "name": { "text": "Fire Badge" },
  "theme": "fire",
  "texture": "cgb:item/fire_badge",
  "badgebox": "badge"
}

示例(缎带):

{
  "name": { "text": "Champion Ribbon" },
  "theme": "champion",
  "texture": "cgb:item/blue_ribbon",
  "badgebox": "ribbon"
}

字段概览:

  • name(可选):显示名称组件。
  • theme(可选):主题字符串。如果省略,则使用文件名作为主题。
  • role(可选):所需的角色名称(不带 gym_leader_ 前缀)。
  • tags(可选):要应用到徽章物品上的额外物品标签。
  • model_data(可选):自定义模型数据值。如果省略,模组会为每种 badgebox 类型自动分配一个唯一值。
  • model 或 texture(可选):要使用的物品模型 id。如果你只设置 texture,模组会生成物品模型。
  • badgebox(可选):none、badge 或 ribbon。
    • 这控制物品获得哪个 BadgeBox 标签。
    • badge 是默认值(添加 badgebox:badges)。
    • ribbon 添加 badgebox:ribbons。
    • none 不添加 BadgeBox 标签。
    • 标签名称来自 BadgeBox 模组且是固定的;此字段隐藏了这种复杂性。

数据包:徽章配方

路径:data/<namespace>/recipe/<id>.json

示例:

{
  "type": "cgb:badgemaking",
  "core": { "item": "minecraft:gold_ingot" },
  "base": { "item": "minecraft:blue_dye" },
  "result": {
    "theme": "champion"
  }
}
  • core = 徽章压制机的顶部槽位
  • base = 徽章压制机的底部槽位

资源包:模型 + 纹理

路径:

  • 纹理:assets/<namespace>/textures/item/<id>.png

对于简单的 2D 徽章/缎带,你只需要纹理。模组会在运行时生成基础物品模型和 CustomModelData 覆盖,因此你不需要提供 badge.json、badge_ribbon.json, 或每个徽章的模型文件。

如果你的徽章定义使用 "texture": "cgb:item/blue_ribbon",你还必须提供:

  • assets/cgb/textures/item/blue_ribbon.png

如果你想要自定义物品模型(3D 或分层),请在徽章定义中设置 "model": "<namespace>:item/<id>" 并自行包含模型 JSON。

模型选择(纹理的选取方式):

  • 此模组使用 CustomModelData 为每个徽章选择正确的模型。
  • 如果省略 model_data,模组会为每种 badgebox 类型自动分配唯一值。
  • 基础模型和覆盖会在客户端自动生成。

如果你需要在多个资源包之间保持稳定的 ID,你仍然可以手动设置 model_data,但这不是必需的。

加载你的资源包

  • 数据包:将包放入 world/datapacks/ 并运行 /reload。
  • 资源包:将包放入 resourcepacks/ 并在“资源包”菜单中启用它。

故障排除

  • JEI/EMI/REI 中缺少纹理通常意味着模型文件缺失。 如果你使用 model,请确保徽章定义中的模型 id 指向一个真实的物品模型 JSON。
  • 如果你手动设置 model_data,请确保每个徽章在每种 badgebox 类型下都有一个唯一编号。 否则,请让模组自动分配。