Heraldic Crest
基本信息
| 属性 | 值 |
|---|---|
| 注册名 | battlegear2:heraldric |
| 类 | mods.battlegear2.items.HeraldryCrest |
| 继承 | net.minecraft.item.ItemMap |
| 接口 | IHeraldryItem |
| 注册方式 | BattlegearConfig 反射循环(BattlegearConfig.java:293-306) |
| 配置键 | itemNames[0] = "heraldric"(BattlegearConfig.java:60-61) |
| 堆叠上限 | 1(HeraldryCrest.java:26) |
| 贴图 | battlegear2:bg-icon(BattlegearConfig.java:195) |
功能
纹章编辑器入口物品。右键打开本模组的纹章设计 GUI,用于绘制旗帜、盔甲等纹章图案。
核心特性:
- 打开编辑器:右键调用
player.openGui(Battlegear.INSTANCE, BattlegearGUIHandeler.flagEditor, world, 0, 0, 0)(HeraldryCrest.java:40-43) - 纹章数据存储:通过
IHeraldryItem的getHeraldry/setHeraldry读写 NBT 的byte[](HeraldryCrest.java:71-97) - 无纹章时返回默认:
getHeraldry在缺少 NBT 或键时返回HeraldryData.getDefault()(HeraldryCrest.java:72-80) - 自我容器物品:
getContainerItem返回自身,且doesContainerItemLeaveCraftingGrid返回 false —— 不会在合成后被消耗(HeraldryCrest.java:50-58, 99-102) - 分享标签:
getShareTag返回 true(HeraldryCrest.java:45-48)
作为 ItemMap 的空实现
HeraldryCrest 继承 ItemMap 但完全覆写了地图相关方法使其失效,仅借用其物品类别:
| 方法 | 返回 | 来源 |
|---|---|---|
getBaseIcon |
null |
HeraldryCrest.java:30-32 |
getTrimIcon |
null |
HeraldryCrest.java:35-37 |
getPostRenderIcon |
null |
HeraldryCrest.java:61-63 |
getMapData |
null |
HeraldryCrest.java:114-116 |
updateMapData |
空实现 | HeraldryCrest.java:118 |
onUpdate |
空实现 | HeraldryCrest.java:120-121 |
func_150911_c(地图数据包) |
null |
HeraldryCrest.java:123-126 |
onCreated |
空实现 | HeraldryCrest.java:128-129 |
addInformation |
空实现(不显示任何提示) | HeraldryCrest.java:131-134 |
渲染方面,useDefaultRenderer 返回 false(HeraldryCrest.java:104-107),shouldDoPass 排除 SecondaryColourTrim 渲染阶段(HeraldryCrest.java:109-112)。其专用渲染器 HeraldryCrestItemRenderer 仅在 Battlegear.debug 为 true 时注册(ClientProxy.java:110-118),而 Battlegear.debug 在全仓库中从未被赋值为 true —— 见 渲染配置。
数值
| 数值 | 值 | 来源 |
|---|---|---|
| 堆叠上限 | 1 | HeraldryCrest.java:26 |
| 物品提示行数 | 0(addInformation 为空) |
HeraldryCrest.java:131-134 |
纹章图案的字节编码、图案库与调色板规则位于
mods.battlegear2.api.heraldry.*(Crest、HeraldryData、HeraldryPattern、PatternStore等),其位级编码规则无法从本条目穷尽核实。
交互
| 触发 | 行为 |
|---|---|
| 右键 | 打开纹章编辑器 GUI(GUI id flagEditor)(HeraldryCrest.java:40-43) |
| 放入合成栏 | 不消耗(doesContainerItemLeaveCraftingGrid 为 false,HeraldryCrest.java:99-102) |
合成配方
纹章编辑器物品没有合成配方。registerRecipes 中不存在针对 itemNames[0](heraldric)的配方分支 —— 禁用配方的可选值列表也是从 itemNames 的索引 1 开始枚举的,明确跳过索引 0(BattlegearConfig.java:244-245)。
相关条目
- Knight’s Armour - 盔甲同样实现
IHeraldyArmour,可承载纹章 - Flag Pole - 纹章图案的另一种载体(TileEntity 存旗帜)