原料
基本信息
| 属性 | 值 |
|---|---|
| 注册名 | RandomThings:ingredient |
| 类 | lumien.randomthings.Items.ItemIngredient |
| 变体数 | 8(metadata 0–7,一个类) |
| 贴图 | 统一前缀 RandomThings:crafting/(ItemIngredient.java:27) |
| 始终注册 | 是(ModItems.java:78) |
| 物品形式 | 只有 ingredient,无对应方块(grep 'ModBlocks.ingredients' = 0) |
功能
原料是本 mod 的通用中间材料集合,把 8 种零散材料收进单一物品 ID,用 metadata 区分。容器内部用 Ingredient 枚举记录每种的贴图名、显示名与堆叠上限(ItemIngredient.java:22-30)。
8 个变体
构造函数按固定顺序注册 8 项(ItemIngredient.java:37-44),metadata 即下标:
| meta | 中文名(zh_CN.lang) |
堆叠上限 | 用途 |
|---|---|---|---|
| 0 | 玩家核心(:66) |
64 | 玩家接口 配方 |
| 1 | 黑曜石手柄(:67) |
64 | 黑曜石棒,3 个矿物辞典名 |
| 2 | 末影碎片(:68) |
16 | 末影邮件 配方 |
| 3 | 灵气(:69) |
64 | 灵魂玻璃、灵魂系列配方 |
| 4 | 灵魂之铁(:70) |
64 | 灵魂盔甲 / 剑 / 钥匙 / 银瓶 |
| 5 | 转换核心(:71) |
1 | 混色机器、生物群系画刷 |
| 6 | 末影钻石(:72) |
64 | 末影能量分配器 |
| 7 | 充能水(:73) |
16 | 能量分配器、白石 |
堆叠上限来自 new Ingredient("name", "name", maxStack) 的第三个参数(ItemIngredient.java:26),逐项见 :37-44。
meta 4(灵魂之铁)有半透明渲染特例:getColorFromItemStack 在 par2 == 4 时开启 alpha 混合(ItemIngredient.java:59-64)。
矿物辞典注册
meta 1 一次性注册了三个辞典名(ItemIngredient.java:46-48):
OreDictionary.registerOre("stickObsidian", new ItemStack(this, 1, 1));
OreDictionary.registerOre("obsidianStick", new ItemStack(this, 1, 1));
OreDictionary.registerOre("obsidianRod", new ItemStack(this, 1, 1));
三个名字指向同一物品,因此模组内配方用 stickObsidian,而 ModCompHandler.postInit 还会把其他 mod 注册的 obsidianRod 全部并入 stickObsidian(Handler/ModCompHandler.java:12-16)—— 这就是黑曜石棒配方能吃到异构模组黑曜石棒的原因。
战利品
meta 4(灵魂之铁)进入村庄铁匠铺箱子(ItemIngredient.java:50-52):
ChestGenHooks.addItem(ChestGenHooks.VILLAGE_BLACKSMITH,
new WeightedRandomChestContent(new ItemStack(this, 1, 4), 1, 1, 3));
权重 3、堆叠 1–1。
数值
| 数值名 | 值 |
|---|---|
| 变体数 | 8 |
| 堆叠上限范围 | 1(转换核心)~ 64 |
| 辞典名数量 | 3(全部指向 meta 1) |
| 战利品投放 | 1 处(meta 4,村庄铁匠铺,权重 3) |
合成配方
| 产物 | 配方 | 来源 |
|---|---|---|
| meta 0 玩家核心 | xlx / lel / xlx,l=gemLapis、e=gemEmerald |
Recipes.java:102-103 |
| meta 1 ×3 黑曜石手柄 | o / o,o=黑曜石 |
Recipes.java:104-105 |
| meta 2 ×4 末影碎片 | fe,e=末影珍珠、f=燧石 |
Recipes.java:106-107 |
| meta 4 灵魂之铁 | ei,e=灵气、i=ingotIron |
Recipes.java:108-115 |
| meta 5 转换核心 | 无序:dyeRed+dyeOrange+dyeYellow+dyeGreen+dyeCyan+dyePurple+dyeGray+dyeLime+dyeMagenta(9 种) |
Recipes.java:116-127 |
| meta 6 末影钻石 | xex / ede / xex,e=末影珍珠、d=gemDiamond |
Recipes.java:128-137 |
| meta 7 充能水 | 自定义配方,非 GameRegistry |
Recipes.java:521-526 |
| meta 3 灵气 | 无合成配方(击杀灵魂掉落) | 无 |
灵气(meta 3)无 GameRegistry 配方 —— 它是击杀灵魂掉落的唯一产物。EntitySpirit.getDropItem() 返回 ModItems.ingredients(EntitySpirit.java:108-111),dropFewItems 以固定 meta 3 掉落:
int amount = this.rand.nextInt(3) + this.rand.nextInt(1 + looting);
this.entityDropItem(new ItemStack(ModItems.ingredients, amount, 3), 0.0F);
(EntitySpirit.java:114-117)—— 掉落量 nextInt(3)(0–2)加 nextInt(1 + looting),即 0 到 2 + looting 个。