Skip to content

Recipes zh

hp-1e edited this page Oct 31, 2026 · 1 revision

English | 中文

配方

本模组为匠魂全部 66 种配方注册了 KubeJS 配方类型,写在 ServerEvents.recipes 里的 event.recipes.tconstruct.<类型>。KubeJS 自带的 event.remove、event.replaceInput、event.replaceOutput 都可以用于匠魂配方。

写法规则

  • 构造函数最多一个参数,取"最能代表这个配方的东西":熔化取原料,浇铸取产物,词条配方取词条 ID,合金不收参数。
  • "ID + 数量"一律写成两个参数,例如 .fluid('tconstruct:molten_gold', 90)。
  • 列表用单数名方法逐个追加,例如 .input(...)、.byproduct(...)。
  • 其余字段用 JSON 键名同名的链式方法,例如 .cooling_time(50)、.cast_consumed(true)。
  • 缺少必填字段时,加载配方会报英文错误,并提示该调用哪个方法。

熔化

ServerEvents.recipes(event => {
  // 普通熔化,温度和时间可省略,会按产物自动计算
  event.recipes.tconstruct.melting('#forge:ingots/gold')
    .result('tconstruct:molten_gold', 90)
    .temperature(700)
    .time(60)
    .byproduct('tconstruct:molten_copper', 10)

  // 矿石熔化,第 3 个参数是矿石倍率:metal、gem 等
  event.recipes.tconstruct.ore_melting('#forge:ores/gold')
    .result('tconstruct:molten_gold', 180, 'metal')
    .byproduct('tconstruct:molten_copper', 90, 'metal')

  // 按耐久折算的熔化,第 3 个参数是单位耐久
  event.recipes.tconstruct.damagable_melting('minecraft:golden_sword')
    .result('tconstruct:molten_gold', 180, 90)
})

浇铸

event.recipes.tconstruct.casting_table('minecraft:gold_ingot')
  .fluid('tconstruct:molten_gold', 90)
  .cast('#tconstruct:casts/multi_use/ingot')
  .cast_consumed(false)
  .cooling_time(50)
配方 构造参数 必填链式方法 常用可选方法
casting_table / casting_basin / retextured_casting_* 产物 .fluid() .cast() .cast_consumed() .switch_slots() .cooling_time()
table_duplication / basin_duplication 铸模 .fluid() .cooling_time()
casting_*_potion 产物 .bottle() .fluid() .cooling_time()
casting_*_tipping / casting_*_tipped_clearing 词条 ID .tools() .fluid() .cooling_time()
table_filling / basin_filling 容器 .fluid_amount()
*_casting_material / *_casting_composite / *_tool_casting 产物 .item_cost() .cast() .allowed_materials() 等
*_casting_part_swapping 工具 .item_cost() .index() .allowed_materials()
material_fluid 产出材料 .fluid() .input() .temperature()
molding_table / molding_basin 产物 .material() .pattern() .pattern_consumed()

合金

event.recipes.tconstruct.alloy()
  .input('tconstruct:molten_copper', 270)
  .input('tconstruct:molten_tin', 90)
  .catalyst('tconstruct:molten_quartz', 10)   // 只要求存在,不消耗
  .result('tconstruct:molten_bronze', 360)
  .temperature(700)                           // 可省略,按产物计算

词条配方

event.recipes.tconstruct.modifier('tconstruct:diamond')
  .tools('#tconstruct:modifiable')
  .input('minecraft:diamond', 4)              // 也可以写 .input('4x minecraft:diamond')
  .input('minecraft:nether_star')
  .slots('upgrades', 1)
  .level(1, 3)                                // 等级范围;.level(3) 表示只能是 3 级
  .max_tool_size(1)

event.recipes.tconstruct.incremental_modifier('tconstruct:sharpness')
  .tools('#tconstruct:modifiable/melee')
  .input('minecraft:quartz')                  // 增量词条只有一个原料,不能带数量
  .needed_per_level(36)
  .amount_per_item(1)
  .slots('upgrades', 1)

event.recipes.tconstruct.swappable_modifier('tconstruct:embellishment')
  .variant('tconstruct:iron')
  .tools('#tconstruct:modifiable')
  .input('minecraft:iron_ingot', 4)

event.recipes.tconstruct.multilevel_modifier('tconstruct:luck')
  .tools('#tconstruct:modifiable')
  .input('minecraft:lapis_block')
  .level(1, 'upgrades', 1)                    // 每调用一次加一级,可带槽位消耗
  .level(2)
  .level(3, 'abilities', 1)

multilevel_incremental_modifier 的写法是 incremental_modifier 加上 .level(...)。

其他配方(位置参数)

下面这些配方用 KubeJS 默认写法:构造函数按顺序传入必填字段,可选字段用同名链式方法补上。

配方 构造参数(按顺序) 可选字段
material_melting 材料, 流体产物 temperature
melting_fuel 温度, 速率 fluid duration
entity_melting 生物, 流体产物 damage
material 物品, 材料 value needed leftover
part_builder 图案, 消耗, 产物 pattern_item allow_uncraftable
item_part_builder 图案, 产物 material pattern_item cost
tool_building 工具 result_count slot_layout extra_requirements parts_override extra_materials
part_builder_recycling 工具, 图案, 产物表(图案 ID → 物品)
part_builder_tool_recycling 图案 tools parts
overslime_modifier / crafting_overslime_modifier 物品, 恢复量 tools
modifier_salvage 工具, 词条, 槽位 max_tool_size level
modifier_repair / crafting_modifier_repair 词条, 物品, 修复量
remove_modifier / extract_modifier 原料列表 name tools leftovers modifier_predicate
modifier_sorting 原料列表(只能 1 个)
modifier_set_worktable 数据键, 原料列表, 是否加入 tools modifier_predicate allow_traits
enchantment_converting 分组名, 原料列表, 是否匹配附魔书, 是否返还无附魔物品 modifier_predicate
toggle_interaction 原料列表 tools
tinker_station_damaging 物品, 伤害量
tinker_station_part_swapping / tool_material_swapping 工具 max_stack_size extra_requirements
fixed_material_swapping 工具, 物品, 材料, 部件序号 max_stack_size repair_value extra_requirements
part_swapping_override 工具, 部件, 部件序号 max_stack_size extra_requirements
tipped_tool_transform 产物, 原料, 词条 slot_layout materials
severing 生物, 掉落物 per_level_chance looting_bonus
ageable_severing 生物, 成年掉落物 child_result per_level_chance looting_bonus
player_beheading / snow_golem_beheading / mooshroom_demushrooming / sheep_shearing 无 per_level_chance looting_bonus
// 钻石 → 秘银材料
event.recipes.tconstruct.material('minecraft:diamond', 'kubejs:mythril')
// 苦力怕掉自己的头,每级斩首几率 10%
event.recipes.tconstruct.severing('minecraft:creeper', 'minecraft:creeper_head').per_level_chance(0.1)

各字段的 JSON 格式见匠魂的数据包配方;本模组源码的 docs/tconstruct-recipe-reference.md 有逐字段对照。

金属批量配方

ServerEvents.recipes(event => {
  ArsenalRecipes.metal(event, {
    name: 'mythril',                      // 对应 forge:ingots/mythril 等标签
    fluid: 'kubejs:molten_mythril',       // 流体 ID 或 '#流体标签'
    temperature: 900,                     // 可省略,按流体温度推导
    byproducts: [{ fluid: 'tconstruct:molten_silver', amount: 30 }],
    ores: true                            // false 时不生成矿石、粗矿相关配方
  })
})

会按 forge: 标签生成块、锭、粒的熔化和浇铸配方,以及粗矿、粗矿块、稀疏/普通/密集矿石的熔化配方。

流体用量常量

ArsenalFluids 提供匠魂的标准用量,例如 ArsenalFluids.INGOT(90)、NUGGET、METAL_BLOCK、GEM、GEM_SHARD、BRICK、GLASS_BLOCK、SLIMEBALL、BOTTLE 等。

Clone this wiki locally