Files
netease-modsdk-wiki/docs/mcdocs/1-ModAPI/接口/世界/配方.md
2025-03-17 13:24:39 +08:00

8.0 KiB
Raw Blame History

sidebarDepth
sidebarDepth
1

配方

AddBrewingRecipes

服务端

method in mod.server.component.recipeCompServer.RecipeCompServer

  • 描述

    添加酿造台配方的接口

  • 参数

    参数名
    数据类型
    说明
    brewType str recipe_brewing_mix或者recipe_brewing_containerrecipe_brewing_mix代表混合酿造配方recipe_brewing_container代表换容酿造配方
    inputName str 该配方接受的物品
    reagentName str 酿造所需要的额外物品
    outputName str 该配方输出的物品
  • 返回值

    数据类型
    说明
    bool 是否设置成功
  • 备注

    • 输出的物品无法和原来的物品堆叠一起
    • 对于已有的配方会返回False
  • 示例

import mod.server.extraServerApi as serverApi
comp = serverApi.GetEngineCompFactory().CreateRecipe(serverApi.GetLevelId())
print(comp.AddBrewingRecipes("recipe_brewing_container", "minecraft:potion", "minecraft:gunpowder", "minecraft:splash_potion"))

GetRecipeResult

服务端

method in mod.server.component.recipeCompServer.RecipeCompServer

  • 描述

    根据配方id获取配方结果。仅支持合成配方

  • 参数

    参数名
    数据类型
    说明
    recipeId str 配方id,对应配方json文件中的identifier字段
  • 返回值

    数据类型
    说明
    list(dict) list的元素resultDict字典见备注
  • 备注

    • resultDict字典内容如下
      关键字 数据类型 说明
      itemName str 物品名称id
      auxValue int 物品附加值
      num int 物品数目
  • 示例

import mod.server.extraServerApi as serverApi
comp = serverApi.GetEngineCompFactory().CreateRecipe(serverApi.GetLevelId())
comp.GetRecipeResult(recipe1)
comp.GetRecipeResult(recipe2)

GetRecipesByInput

服务端客户端

服务端接口

method in mod.server.component.recipeCompServer.RecipeCompServer

  • 描述

    通过输入物品查询配方

  • 参数

    参数名
    数据类型
    说明
    inputIdentifier str 输入物品的标识符
    tag str 对应配方json中的tags字段里面的值
    aux int 输出物品的附加值, 不传参的话默认为0
    maxResultNum int 最大输出条目数若大于等于0时结果超过maxResultNum则只返回maxResultNum条。默认-1表示返回全部
  • 返回值

    数据类型
    说明
    list(dict) 返回符合条件的配方列表
  • 备注

    • 获取熔炉配方时若输出物品数量为1时output使用字符串表示物品identifier及附加值若输出物品数量大于1时output为一个dict
    • 在获取酿造台配方时不匹配tag标签与aux值药水的identifier需要输入全称例如minecraft:potion_type:long_turtle_master否则无法获取正确的配方。
    • 需要遍历较多数据,不建议频繁调用
  • 示例

import mod.server.extraServerApi as serverApi
comp = serverApi.GetEngineCompFactory().CreateRecipe(serverApi.GetLevelId())
print(comp.GetRecipesByInput("minecraft:log", "crafting_table", 0, -1))

客户端接口

method in mod.client.component.recipeCompClient.RecipeCompClient

  • 描述

    通过输入物品查询配方

  • 参数

    参数名
    数据类型
    说明
    inputIdentifier str 输入物品的标识符
    tag str 对应配方json中的tags字段里面的值
    aux int 输出物品的附加值, 不传参的话默认为0
    maxResultNum int 最大输出条目数若大于等于0时结果超过maxResultNum则只返回maxResultNum条。默认-1表示返回全部
  • 返回值

    数据类型
    说明
    list(dict) 返回符合条件的配方列表
  • 备注

    • 获取熔炉配方时若输出物品数量为1时output使用字符串表示物品identifier及附加值若输出物品数量大于1时output为一个dict
    • 在获取酿造台配方时不匹配tag标签与aux值药水的identifier需要输入全称例如minecraft:potion_type:long_turtle_master否则无法获取正确的配方。
    • 需要遍历较多数据,不建议频繁调用
  • 示例

import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateRecipe(clientApi.GetLevelId())
print(comp.GetRecipesByInput("minecraft:log", "crafting_table", 0, -1))

GetRecipesByResult

服务端客户端

服务端接口

method in mod.server.component.recipeCompServer.RecipeCompServer

  • 描述

    通过输出物品查询配方所需要的输入材料

  • 参数

    参数名
    数据类型
    说明
    resultIdentifier str 输出物品的标识符
    tag str 对应配方json中的tags字段里面的值
    aux int 输出物品的附加值, 不传参的话默认为0
    maxResultNum int 最大输出条目数若大于等于0时结果超过maxResultNum则只返回maxResultNum条。默认-1表示返回全部
  • 返回值

    数据类型
    说明
    list(dict) 返回符合条件的配方列表
  • 备注

    • 获取熔炉配方时若输出物品数量为1时output使用字符串表示物品identifier及附加值若输出物品数量大于1时output为一个dict
    • 在获取酿造台配方时不匹配tag标签与aux值药水的identifier需要输入全称例如minecraft:potion_type:long_turtle_master否则无法获取正确的配方。
  • 示例

import mod.server.extraServerApi as serverApi
comp = serverApi.GetEngineCompFactory().CreateRecipe(serverApi.GetLevelId())
print(comp.GetRecipesByResult("minecraft:boat", "crafting_table", 4, -1))

客户端接口

method in mod.client.component.recipeCompClient.RecipeCompClient

  • 描述

    通过输出物品查询配方所需要的输入材料

  • 参数

    参数名
    数据类型
    说明
    resultIdentifier str 输出物品的标识符
    tag str 对应配方json中的tags字段里面的值
    aux int 输出物品的附加值, 不传参的话默认为0
    maxResultNum int 最大输出条目数若大于等于0时结果超过maxResultNum则只返回maxResultNum条。默认-1表示返回全部
  • 返回值

    数据类型
    说明
    list(dict) 返回符合条件的配方列表
  • 备注

    • 获取熔炉配方时若输出物品数量为1时output使用字符串表示物品identifier及附加值若输出物品数量大于1时output为一个dict
    • 在获取酿造台配方时不匹配tag标签与aux值药水的identifier需要输入全称例如minecraft:potion_type:long_turtle_master否则无法获取正确的配方。
  • 示例

import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateRecipe(clientApi.GetLevelId())
print(comp.GetRecipesByResult("minecraft:boat", "crafting_table", 4, -1))