本篇教程由作者设定未经允许禁止转载。

以下为创造一台机器的全部流程。

〇. 数据包的创建

关于数据包基础教程请参考这位大大的视频:https://space.bilibili.com/166572139?spm_id_from=333.788.b_765f7570696e666f.1 (可以下载一个1.16数据包作为参考)

一. 添加方块

请先前往 config/masterful_machinery/controllers 文件夹新建.json文件(可以去别的地方复制一个,然后清空),然后参考以下代码:

{
  "controllerId": "basic",
  "name": "Basic",
  "textureOverride": "minecraft:block/cactus_side",
  "ports": [
    {
      "type": "masterfulmachinery:items",
      "textureOverride": "minecraft:block/melon_side",
      "name": "Basic Item",
      "id": "basic",
      "data": {
        "rows": 3,
        "columns": 3
      }
    },
    {
      "type": "masterfulmachinery:energy",
      "name": "Basic Energy",
      "id": "chungus",
      "data": {
        "capacity": 1000000000
      }
    },
    {
      "type": "masterfulmachinery:fluids",
      "name": "Small Fluid",
      "id": "small",
      "data": {
        "capacity": 10000
      }
    },
    {
      "type": "masterfulmachinery:mekanism_gas",
      "name": "Gassy",
      "id": "gassy",
      "data": {
        "capacity": 100000
      }
    },
    {
      "type": "masterfulmachinery:mekanism_slurry",
      "name": "MekSlurry",
      "id": "mekslurry",
      "data": {
        "capacity": 1000000
      }
    },
    {
      "type": "masterfulmachinery:create_rotation",
      "name": "Spinny",
      "id": "spinny",
      "data": {
         "stress": 1
      }
    },
    {
      "type": "masterfulmachinery:pncr_pressure",
      "name": "Air",
      "id": "air",
      "data": {
        "volume": 5000,
        "dangerPressure": 15,
        "criticalPressure": 30
      }
    },
    {
      "type": "masterfulmachinery:astral_starlight",
      "name": "Astral",
      "id": "star",
      "data": {
        "capacity": 1000
      }
    }
  ]
}
以上述代码为例:

“type”为输入输出的类型,如item(物品),fluid(流体),energy(FE)等;

“textureOverride”为对应方块的材质,可以按格式自定义(可以不加,默认为石头材质);

“name”为方块名称,可随意填写;

“id”为方块的注册名必须使用小写字母;

“data”为内部的容量,当类型为物品时“row”和“columns”分别为仓内的行和列,当类型为其它时“capacity”为仓内的容量;

其余的输入类型,如气体,浆液等请参考http://wiki.ticticboooom.live/t/example
二. 添加结构

新建一个数据包后,前往 (你数据包的名字)/data/mm/recipes/structures(全部新建的文件夹名称均不能改) 添加一个.json文件(这里使用的数据包知识不再赘述),参考以下代码:

{
    "type": "masterfulmachinery:machine_structure",
    "controllerId": "basic",
    "id": "example_structure",
    "name": "Master Machine",
    "layout": [
    [
      "AAA",
      "AAA",
      "AAA"
    ],
    [
      "BIB",
      "OFE",
      "BCB"
    ],
    [
      "SSS",
      "SSS",
      "SSS"
    ]
  ],
  "legend": {
    "A": {
      "block": "minecraft:cobblestone"
    },
    "S": {
      "block": "minecraft:stone"
    },
    "B": {
      "block": "minecraft:oak_log"
    },
    "F": {
      "block": "minecraft:furnace"
    },
    "E": {
      "block": "masterfulmachinery:basic_small_fluids_output"
    },
    "I":  {
      "block": "masterfulmachinery:basic_basic_items_input"
    },
    "O": {
      "block": "masterfulmachinery:basic_small_fluids_input"
    }
  }
}

以上为例:

“type”不能修改;

“controllerid”为上一模块你定义的controllerid;

“id”为机器的注册名,必须使用小写字母或者下划线;

“name”为机器名称,可自定义;

接下来的代码可以自动生成,具体方法:

1 进入你添加数据包的存档,搭建你喜欢的机械结构 ;

2 在物品栏内找到structure scanner这两个物品(一个是可以放置的方块,一个是工具) ;

3 使用structure scanner(工具)右击机械的对角线的两个端点,并把工具放在structure scanner(方块)里,这时可以显现你勾选的范围 ;

4 点击gui里的那段英文,这段代码存储在你的粘贴板里了,粘贴下来即可。

三. 创建配方

前往 (你数据包的名字)/data/mm/recipes 新建.json文件,参考以下代码:

{
    "type": "masterfulmachinery:machine_process",
    "structureId": "example_structure",
    "controllerId": "basic",
    "ticks": 100,
    "inputs": [
        {
            "type": "masterfulmachinery:items",
            "data":{
                "items": "minecraft:white_wool",
                "count": 2
            }
        }
    ],
    "outputs":[
        {
            "type": "masterfulmachinery:items",
            "data":{
                "item": "minecraft:string",
                "count": 4
            }
        }
    ]
}
以上为例(配方为输入两个白色羊毛,输出四个线):

“type”不能修改;

“structureId”为你上一模块的机械注册名;
“controllerId”为你上上模块的控制器注册名;

“ticks”为机器工作时间(20t=1s);

“input”为输入其中“type”为输入类型,“item”为物品注册名,“count”为输入数量;

“output”为输入其中“type”为输出类型,“item”为物品注册名,“count”为输出数量;

其余的输入输出类型,如气体,浆液等请参考http://wiki.ticticboooom.live/t/example

四. 结语

每次完成修改后记得输入指令/reload或者退出重进,否则修改无法呈现。如果无法成功添加要检查语法(https://www.sojson.com/  )并检查有没有拼写错误,以上代码不确定正确性请以https://github.com/TicTicBoooom-Mods/MasterfulMachinery/wiki/Examples 为主。希望以上教程可以帮助大家完成心爱的机械。