跳到主要内容

使用教程

本教程介绍如何在 Modular Machinery CE 的 CraftTweaker 配方脚本中使用耐久消耗需求。


基本用法

在你的 .zs 配方脚本中,使用 addDurabilityInput() 方法为配方添加耐久消耗需求:

import mods.modularmachinery.RecipeBuilder;

// 创建一个配方
val recipe = RecipeBuilder.newBuilder("my_recipe", "my_machine", 100);

// 添加常规输入/输出
recipe.addItemInput(<minecraft:cobblestone> * 64);
recipe.addItemOutput(<minecraft:stone> * 64);

// 添加耐久消耗:消耗铁镐 10 点耐久
recipe.addDurabilityInput(<minecraft:iron_pickaxe>, 10);

recipe.build();

参数说明

addDurabilityInput(IItemStack item, int durability)
参数类型说明
itemIItemStack需要消耗耐久的物品(CraftTweaker 物品表达式)
durabilityint每次配方运行消耗的耐久值

工作机制

  1. 检查阶段:配方开始前,检查输入总线中是否有匹配的物品且剩余耐久 ≥ 要求的消耗值
  2. 消耗阶段:配方启动时,扣减物品的耐久值
  3. 损坏处理:如果耐久降至 0 或以下,物品自动损坏并从输入总线移除
提示

耐久消耗不会消耗物品本身(除非耐久用完),玩家只需定期更换工具即可。


使用示例

基础示例:消耗铁镐耐久

val recipe = RecipeBuilder.newBuilder("crush_ore", "crusher", 80);
recipe.addItemInput(<minecraft:iron_ore> * 1);
recipe.addItemOutput(<minecraft:iron_ingot> * 2);
recipe.addDurabilityInput(<minecraft:iron_pickaxe>, 5);
recipe.build();

消耗钻石剑耐久

val recipe = RecipeBuilder.newBuilder("cut_log", "sawmill", 60);
recipe.addItemInput(<minecraft:log> * 8);
recipe.addItemOutput(<minecraft:planks> * 48);
recipe.addDurabilityInput(<minecraft:diamond_sword>, 2);
recipe.build();

使用通配元数据

元数据设为 32767 时匹配任意子类型:

// 匹配任意损坏程度的铁镐
recipe.addDurabilityInput(<minecraft:iron_pickaxe:*>, 10);

JEI 显示

添加耐久消耗需求后,JEI 配方界面中:

  • 对应工具物品会显示在输入区域
  • 鼠标悬停时会额外显示 "耐久消耗: X" 的提示文字

注意事项

  • 物品必须是可损坏的(有耐久条的物品),对不可损坏物品无效
  • 消耗值不能超过物品的最大耐久值
  • 输入总线中需要放置匹配的工具物品
  • 配方修改器(RecipeModifier)可以影响实际消耗的耐久数值