本篇教程由作者设定使用 CC BY-NC-ND 协议。

第二期GTCE&GTCEu教程来了。继续上期的部分。


GTCEuWiki

继续上期的材料部分


材料

成分

components(MaterialStack[] components)

设置材料的成分部分。

  • componentsMaterialStacks-表示此材料成分的数组。


下一个例子:

#loader gregtech

import mods.gregtech.material.MaterialBuilder;
import mods.gregtech.material.Material;

var cursed_chemistry_material = MaterialBuilder(32004, "cursed_chemistry_material")
    .fluid()
    .color(0x00FF00) //纯红
    .components([<material:silver> * 3, <material:nitrogen> * 6, <material:carbon> * 2]) //设置组成
    .build(); //构建

材料Flags

MaterialFlags指关于材料的附加小属性,有很多不同的好用的Flags。

所有材料都可用的MaterialFlags:

  • "no_unification":使材料完全禁用它的统一功能(这意味着没有自动生成的配方了)。

  • "decomposition_requires_hydrogen":分解配方需要氢气作为额外的输入,数量等于输入金额,将电解机电压设置为 EV。

  • "decomposition_by_electrolyzing":启用电解机分解配方生成。

  • "decomposition_by_centrifuging":启用离心机离心配方生成。

  • "disable_decomposition":禁用此材料和所有将其作为成分的材料的分解配方生成。

  • "explosive":使材料成为某种爆炸物

  • "flammable":使材料成分易燃品

  • "generate_plate":生成板?

DustProperty材质的可用MaterialFlags:

  • "generate_plate":为此材料生成一个板,如果它只有一个DustProperty,将添加一个压缩机配方,如果它有IngotProperty,将添加卷板机配方,如果他有材料块,将生成切割机配方。

  • "generate_rod":为这种材料生成材料杆。

  • "generate_frame":为此材料生成一个金属框架,需要前置"generate_rod"。

  • "generate_gear":为此材料生成材料齿轮,需要"generate_plate"和"generate_rod"。

  • "generate_long_rod":为这种材料生成材料长杆,需要"generate_rod"。

  • "exclude_block_crafting_recipes":避免创建无序配方以使粉可以合成块。禁止通过模头/模具挤压和合金熔炼得到材料块

  • "exclude_plate_compressor_recipe": 禁止在压缩机中形成材料粉的材料板,需要"generate_plate"。

  • "exclude_block_crafting_by_hand_recipes":禁止创建无序配方以使粉合成材料块,反之亦然。

  • "mortar_grindable":所有材料都可以通过研钵研磨成他的材料粉形式。

材质的可用 MaterialFlags IngotProperty:

  • "no_working":使除了粉碎或熔炼以外的任何方式都无法合成时,这用于涂层材料。

  • "no_smashing":使材料无法被一般金属技术加工,例如弯曲板

  • "no_smelting":使材料无法被熔炼

  • "blast_furnace_calcite_double":使此材料在高炉中熔炼其矿石方解石以获得 2 倍产物。

  • "blast_furnace_calcite_triple":使此材料在高炉中加热其矿石方解石以获得 3 倍产物。

  • "generate_foil":为这种材料生成一个材料箔,需要"generate_plate"。

  • "generate_bolt_screw":为此材料生成螺栓和螺丝,需要"generate_rod"。

  • "generate_ring":为此材料生成一个材料环,需要"generate_rod"。

  • "generate_spring":为此材料生成弹簧。需要"generate_long_rod"。

  • "generate_spring_small":为此材料生成一个小弹簧,需要"generate_rod"。

  • "generate_small_gear":为这种材料生成一个小齿轮,需要"generate_plate"和"generate_rod"。

  • "generate_fine_wire":为这种材料生成细线,需要"generate_foil"。

  • "generate_rotor":为此材料生成转子。需要"generate_bolt_screw","generate_ring"和"generate_plate"。

  • "generate_dense":为这种材料生成一个致密的板,需要"generate_plate"。

  • "generate_round":为这种材料生成一个滚珠。

GemProperty材料的可用 MaterialFlags:

  • "crystallizable":如果这种材料可以在高压釜中结晶。

  • "generate_lens":为此材质生成一个透镜,需要"generate_plate"。

OreProperty材料的可用 MaterialFlags:

  • "high_sifter_output":如果在筛选机中处理粉碎的纯净矿石时该材料具有更多的输出。


添加Flags

flags(string[] names)

将 MaterialFlags 添加到此材料。

  • names- 特定 MaterialFlags 名称的字符串数组。


例子:

#loader gregtech

import mods.gregtech.material.MaterialBuilder;
import mods.gregtech.material.Material;

var specialSteelFlagged = MaterialBuilder(32005, "special_steel_flagged") //名称
    .fluid("gas", false) //gas和方块
    .ingot() //锭粉材料
    .color(0x0000FF) //纯蓝
    .iconSet("shiny") //材料集iconset为shiny
    .flags(["generate_plate", "generate_foil"]) //添加Flags
    .toolStats(10, 3, 256, 21) //工具
    .blastTemp(2900) //EBF温度
    .ore() //矿石
    .addOreByproducts(<material:gold>, <material:copper>) //副产物
    .cableProperties(128, 2, 4, false) //材料线缆
    .build(); //构建

元素

Element用于将材料指定为元素,CEu 有元素周期表,所以你可能不需要太在意具体的数值。

Elements.add(long protons, long neutrons, long halfLifeSeconds, String decayTo, String name, String symbol, boolean isIsotope) 添加

添加一个新元素。

  • protons- 质子数量

  • neutrons- 中子数量

  • halfLifeSeconds- 此材料的半衰期时间(以秒为单位),-1用于稳定材料,也就永远不会衰变。

  • decayTo- 表示它衰减后得到的元素的字符串,用 '&' 字符分隔。

  • name- 元素名称

  • symbol- 元素的缩写,例如氧O,铁Fe。

Wiki给出的元素周期表的表格,一共135种:

质子prontons中子neutrons半衰期时间halfLifeSeconds衰变后元素decayTo名称name缩写symbol同位素isIsotope
10-1null"Hydrogen""H"false
11-1"H""Deuterium""D"true
12-1"D""Tritium"

"T"

true
22-1null"Helium""He"false
21-1"H&D""Helium-3""He-3"true
34-1null"Lithium""Li"false
45-1null"Beryllium""Be"false
55-1null"Boron""B"false
66-1null"Carbon""C"false
77-1null"Nitrogen"

"N"

false
88-1null"Oxygen""O"false
99-1null"Fluorine""F"false
1010-1null"Neon""Ne"false
1111-1null"Sodium""Na"false
1212-1null"Magnesium""Mg"false
1313-1null"Aluminium""Al"false
1414-1null"Silicon""Si"false
1515-1null"Phosphorus""P"false
1616-1null"Sulfur""S"false
1718-1null"Chlorine""Cl"false
1822-1null"Argon""Ar"false
1920-1null"Potassium""K"false
2020-1null"Calcium""Ca"false
2124-1null"Scandium""Sc"false
2226-1null"Titanium""Ti"false
2328-1null"Vanadium""V"false
2428-1null"Chrome""Cr"false
2530-1null"Manganese""Mn"false
2630-1null"Iron""Fe"false
2732-1null"Cobalt""Co"false
2830-1null"Nickel""Ni"false
2934-1null"Copper""Cu"false
3035-1null"Zinc""Zn"false
3139-1null"Gallium""Ga"false
3240-1null"Germanium""Ge"false
3342-1null"Arsenic""As"false
3445-1null"Selenium""Se"false
3545-1null"Bromine""Br"false
3648-1null"Krptom""Kr"false
3748-1null"Rubidium""Rb"false
3849-n"Strontium""Sr"f
3950-n"Yttrium""Y"f
4051-n"Zirconium""Zr"f
4153-n"Niobium""Nb"f
4253-n"Molybdenum""Mo"f
4355-n"Techneium""Tc"f
4457-n"Ruthenium""Ru"f
4558-n"Rhodium""Rh"f
4660-n"Palladium""Pd"f
4760-1n"Silver""Ag"false
4864-n"Cadmium""Cd"f
4965-n"Indium""In"f
5068-n"Tin""Sn"f
5170-n"Antimony""Sb"f
5275-n"Tellurium""Te"f
5374-n

"Iodine"

"I"f
5477-n"Xenon""Xe"f
5577-n"Caesium""Cs"f
5681-n"Barium""Ba"f
5781-1null"Lanthanum""La"false
5882-n"Cerium"Ce"f
5981-n"Praseodymium""Pr"f
6084-n"Neodymium""Nd"f
6183-n"Promethium""Pm"f
6288-n"Samarium""Sm"f
6388-n"Europium"Eu"f
6493-n"Gadolinium""Gd"f
6593-n"Terbium""Tb"f
6696-n"Dysprosium""Dy"f
6797-1null"Holmium""Ho"false
6899-n"Erbium""Er"f
6999-n"Thulium""Tm"f
70103-n"Ytterbium""Yb"f
71103-n"Lutetium""Lu"f
72106-n"Hafnium""Hf"f
73107-n"Tantalum""Ta"f
74109-n"Tungsten""W"f
75111-n"Rhenium""Re"f
76114-n"Osmium""Os"f
77115-1null"Iridium""Ir"false
78117-n"Platinum""Pt"f
79117-

n

"Gold""Au"f
80120-n"Mercury""Hg"f
81123-n"Thallium""Tl"f
82125-n"Lead""Pb"f
83125-n"Bismuth"

"Bi"

f
84124-n"Polonium""Po"f
85124-n"Astatine""At"f
86134-n"Radon""Rn"f

87

134-1null"Francium""Fr"false
88136-n"Radium""Ra"f
89136-n"Actinium""Ac"f
90140-n"Thorium""Th"

f

91138-n"Protactinium""Pa"f
92146-n"Uranium""U"f
92146-n"Uranium-238""U-238"f
92143-n"Uranium-235""U-235"true
93144-n"Neptunium""Np"f
94152-n"Plutonium""Pu"f

94

145-1null"Plutonium-239""Pu-239"false
94149-

n

"Plutonium-241""Pu-241"true
95150-n"Americium""Am"
96153-n"Curium""Cm"
97152-n"Berkelium""Bk"
98153-n"Californium""Cf"
99153-n"Einsteinium""Es"
100157-n"Fermium""Fm"
101157-n"Mendelevium""Md"
102157-n"Nobelium""No"
103159-1null"Lawrencium""Lr"false
104161-n"Rutherfordium""Rf"f
105163-n"Dubnium""Db"f
106165-n"Seaborgium""Sg"f
107163-n"Bohrium""Bh"f
108169-n"Hassium""Hs"f
109167-n"Meitnerium""Mt"f
110171-n"Darmstadtium""Ds"f
111169-n"Roentgenium""Rg"f
112173-n"Copernicium""Cn"f
113171-1null"Nihonium""Nh"false
114175-n"Flerovium""Fl"f
115173-n"Moscovium""Mc"f
116177-n"Livermorium""Lv"f
117177-n"Tennessine""Ts"f
118176-n"Oganesson""Og"f
119178-n"Tritanium""Tr"f
120180-n"Duranium""Dr"f
125198-n"Trinium""Ke"f
174352140n"Naquadah""Nq"true
174354140null"NaquadahEnriched""Nq+"true
174348140n"Naquadria""Nq"true
01000-1n"Neutronium""Nt"false
7501000-1n"Adamantium""Ad"false
850900-1n"Vibranium""Vb"false
550670-1n"Taranium""Tn"false

元素材料例子

#loader gregtech
import mods.gregtech.material.MaterialBuilder;
import mods.gregtech.material.Material;
import mods.gregtech.material.Elements;

var CEu = Elements.add(999, 999, -1, null, "GTCEu", "CEu", false); // create a new element.

var element_material = MaterialBuilder(32006, "element_material").element("GTCEu").build();

var Au = Elements.get("Gold"); // get an existing element.

var element_material = MaterialBuilder(32007, "element_material").element("Gold").build();

元素例子

#loader gregtech
#priority 10000
import mods.gregtech.material.MaterialBuilder;
import mods.gregtech.material.Material;

val red_iron = MaterialBuilder(32000, "red_iron")
    .ingot().fluid()
    .color(0xF7B29B)
    .flags(["generate_plate", "generate_rod", "generate_gear", "decomposition_by_centrifuging"])
    .components([<material:iron> * 1, <material:redstone> * 1])
    .cableProperties(32, 2, 1)
    .build();
    
val glowing_redstone = MaterialBuilder(32001, "glowing_redstone")
    .dust()
    .color(0x774D05).iconSet("bright")
    .flags(["decomposition_by_centrifuging"])
    .components([<material:glowstone> * 1, <material:redstone> * 1])
    .build();
    
val rare_iron = MaterialBuilder(32002, "rare_iron")
    .ingot().fluid()
    .color(0x6AE26E).iconSet("bright")
    .flags(["generate_plate", "generate_rod", "generate_gear", "disable_decomposition"])
    .components([<material:iron> * 1, <material:rare_earth> * 1])
    .cableProperties(8, 2, 1)
    .build();
    
val obsidian_steel = MaterialBuilder(32003, "obsidian_steel")
    .ingot().fluid()
    .color(0x414751).iconSet("metallic")
    .flags(["generate_plate", "generate_rod", "disable_decomposition"])
    .components([<material:steel> * 1, <material:obsidian> * 1])
    .build();
    
val silicon_steel = MaterialBuilder(32004, "silicon_steel")
    .ingot().fluid()
    .color(0xB2C0C1).iconSet("shiny")
    .flags(["generate_plate", "generate_rod", "generate_gear", "decomposition_by_centrifuging"])
    .components([<material:steel> * 1, <material:silicon> * 1])
    .build();
    
val rare_gold = MaterialBuilder(32005, "rare_gold")
    .ingot().fluid()
    .color(0x755C40)
    .flags(["generate_plate", "disable_decomposition"])
    .components([<material:gold> * 1, <material:rare_earth> * 1])
    .build();

材料获取与修改

MaterialRegistry.get(String materialName)
  • materialName 使用材料的注册名来获取材料。

MaterialRegistry.getAllMaterials()
  • 获取所有已注册的材料


还有许多材料细节的Getter,例如:

getChemicalFormula()

获取材料的化学式。

materialRGB

获取材质RGB颜色。

radioactive

返回材料是否具有放射性。

protons
  • 返回材料中的质子数

neutrons
  • 返回材料中的中子数

mass
  • 返回材料中的总质量

averageProtons
  • 返回质子数量除以材料中成分的总量

averageNeutrons
  • 返回中子数量除以材料中成分的总量

averageMass
  • 返回质量量除以材料中成分的总量

blastTemperature
  • 返回材料的高炉温度

camelCaseName

 获取材料的 camelCaseName。

  • 返回材质未本地化名称的字符串的驼峰形式,即“my_material”的名称返回“myMaterial”。

unlocalizedName
  • 返回材质未本地化名称的字符串

localizedName
  • 返回材质本地化(翻译)名称的字符串

name
  • 返回材料的名称。


Setter:

setFormula(String formula, @Optional boolean withFormatting)

设置此材质的化学式和工具提示。

  • formula 化学式 字符串

  • @Optional withFormatting- 是否对公式和Tooltip应用数字格式(下标等)

addFlags(String[] names)

向此材质添加其他标志。

  • names- 要添加的标志字符串数组

setMaterialRGB(int materialRGB)

设置此材质的颜色。

  • materialRGB 要设置的RGB颜色。


例子:

#loader gregtech
import mods.gregtech.material.MaterialRegistry;
import mods.gregtech.material.Material;

var gold = MaterialRegistry.get("gold");
var name = gold.name; // "gold"
var color = gold.materialRGB; // 0xFFE650
gold.setFormula("(Au)2Au", true); //设置化学式
var formula = gold.getChemicalFormula(); // "(Au)2Au"
gold.addFlags("generate_long_rod", "generate_gear"); //添加金杆金齿轮。

加热线圈

添加一个新的方块加热线圈。

HeatingCoils.add(IBlockState state, String name, int temperature, int level, int discount, int tier, Material material)。

例子:

import mods.gregtech.blocks.HeatingCoils;

//使用Minecraft的泥土注册一个加热线圈。
// 1400开尔文(K)温度
// Level 2 (32 * 2 平行(?)多方块熔炉)
// Discount 4 (16 / 4 EU/t 烧制一个物品)
// Tier 3 ()用于热解炉和石油裂化机的 折扣 (?)
// Material null (用于泥土块在JEI里的名称。)

HeatingCoils.add(<blockstate:minecraft:dirt:variant=dirt,snowy=false>, "dirt", 1400, 2, 4, 3, null);

//使用橡木木板注册
//1900K温度
// Level 1 (32 * 1)
// Discount 2 (16/2 EU/t 每个物品)
// Tier 3 (热解炉与裂化塔)
// Material Silver (在JEI里的名称)

HeatingCoils.add(<blockstate:minecraft:planks:variant=oak>, "planks", 1900, 1, 2, 3, <material:silver>);

删除现有的加热线圈:

HeatingCoils.remove(IBlockState state)

例子:

import mods.gregtech.blocks.HeatingCoils;

//很容易会破坏基本MOD的进度,一定要有办法绕过这一个被删除的线圈!别让玩家卡关!
//删除白铜线圈方块。

HeatingCoils.remove(<blockstate:gregtech:wire_coil:variant=cupronickel,active=false>);

机器和RecipeMap

GTCEu 将所有配方存储在一个名为RecipeMap的东西中,可以添加或从中删除,要使用或检索RecipeMaps,您需要导入相应的包:

import mods.gregtech.recipe.RecipeMap.

RecipeMaps 使用名称定义,也使用名称检索。

例子:

import mods.gregtech.recipe.RecipeMap;

//首选方法

val alloy_smelter as RecipeMap = <recipemap:alloy_smelter>;

//替代方案

val alloy_smelter_alternate as RecipeMap = RecipeMap.getByName("alloy_smelter");

推荐将这些变量设置为全局变量Global,这样在所有的脚本中都可以使用。


GTCEu的RecipeMap列表:

机器名称RecipeMap名称输入输出流体输入流体输出
合金炉alloy_smelter1 - 2100
电弧炉arc_furnace11 - 410 - 1
组装机assembler1 - 910 - 10
装配线assembly_line4 - 1610 - 40
高压釜autoclave1 - 21 - 210 - 1
卷板机bender2100
酿造室brewery1011
装罐机canner1 - 21 - 20 - 10 - 1
离心机centrifuge0 - 20 - 60 - 10 - 6
化学浸洗器chemical_bath11 - 610 - 1
化学反应釜chemical_reactor0 - 20 - 20 - 30 - 2
电路组装机circuir_assembler1 - 610 - 10
焦炉coke_oven可乐炉10 - 100 - 1
压缩机compressor1100
石油裂化机cracker0 - 1021 - 2
板材切割机cutter11 - 20 - 10
蒸馏塔distillation_tower00 - 111 - 12
蒸馏室distillery10 - 111
电力高炉electric_blast_furnace1 - 31 - 30 - 10 - 1
电炉electric_furnace1100
电解机electrolyzer0 - 20 - 60 - 10 - 6
电磁选矿机electromagnetic_separator11 - 3

提取机extractor0 - 10 - 100 - 1
压模机extruder2100
发酵槽fermenter0 - 10 - 111
流体加热器fluid_heater1011
流体固化器fluid_solidifier1110
锻造锤forge_hammer1100
冲压机床forming_press2 - 6100
核聚变反应堆fusion_reactor0021
集气器gas_collector1001
聚爆压缩机implosion_compressor2 - 31 - 200
大型化学反应釜large_chemical_reactor0 - 30 - 30 - 50 - 4
精密激光蚀刻机laser_engraver2100
车床lathe11 - 200
研磨机macerator11 - 400
质量发生器mass_fabricator0 - 100 - 11 - 2
搅拌机mixer0 - 60 - 10 - 20 - 1
洗矿厂ore_washer1 - 21 - 30 - 10
打包机packer1 - 21 - 200
两级磁化机polarizer1100
土高炉primitive_blast_furnace2 - 31 - 300
热解炉pyrolyse_oven20 - 10 - 11
复制机replicator10 - 11 - 20 - 1
碎岩机rock_breaker11 - 400
扫描仪scanner0 - 210 - 10
筛选器sifter10 - 600
热力离心机thermal_centrifuge11 - 300
真空冷冻机vacuum_freezer0 - 10 - 10 - 10 - 1
线材轧机wiremill110

0

发电机列表:

发电机名称RecipeMap名称输入输出流体输入流体输出
燃烧发电机combustion_generator0010
燃气轮机gas_tubrine0010
等离子体发动机plasma_generator0010 - 1
半流质发电机semi_fluid_generator0010
蒸汽涡轮机stem_tubrine0010 - 1

GTCEu添加的新机器:

  • Fusion Reactor :核聚变反应堆

  • Large Chemical Reactor :大型化学反应釜

  • Assembly Line :装配线

  • Circuit Assembler :电路组装机

  • Mass Fabricator :质量发生器

  • Replicator :复制机

  • Scanner :扫描仪

  • Gas Conllector :集气器

  • Rock Breaker :碎岩机


CEu删掉的机器:

  • 微波炉:已经被CEu移除,但是由GregTech Food OptionCEu版重新添加并添加了一些新功能。

  • 流体灌装机:现在与灌装机合并。

  • 流体提取机:现在与提取机合并。

  • 等离子体电弧炉:现在与电弧炉合并。

  • uu增幅液生成器:以前未完成,现在已移除。

  • 热力发电机:以前未完成,现在已移除。


RecipeBuilder

RecipeBuilders 是为机器创建RecipeMap的功能,它与 CEu 的新 Material Builder 系统非常相似。


对于过去使用过 GTCE 的 RecipeBuilders 的人:PBF土高炉和焦炉不再是特殊情况,现在使用普通RecipeBuilder语法。


Get了RecipeMap的实例后,你可以使用它们的构建器来构建配方,它有点像Java的Stream<T>,具有配置配方的完整功能。

启动构建器:

my_recipeMap_variable.recipeBuilder();

//示例

<recipemap:assembler>.recipeBuilder();

这个构建器只负责做一个开头,需要其他的Setter调用才能有用。


RecipeBuilder所有调用和Setter

物品输入:

//物品输入,使用IIngredient
.inputs(IIngredient[])

//示例

.inputs(<minecraft:iron_ingot>)
.inputs(<minecraft:iron_ingot>, <ore:dustGold> * 2, <metaitem:plateTitanium>)
.inputs([<minecraft:iron_ingot>, <ore:dustGold>, <metaitem:plateTitanium> * 64])

流体输入:

//流体输入,需要的是ILiquidStack
.fluidInputs(ILiquidStack[])

//示例
.fluidInputs(<liquid:water>)
.fluidInputs(<liquid:water>, <liquid:brass> * 1296)
.fluidInputs([<liquid:water> * 288, <liquid:brass>])

物品输出:

//物品输出,只能用IItemStack
.outputs(IItemStack[])

//示例
.outputs(<minecraft:iron_ingot>)
.outputs(<minecraft:iron_ingot>, <metaitem:plateTitanium>)
.outputs([<minecraft:iron_ingot>, <metaitem:plateTitanium> * 64])

流体输出:

// ILiquidStack
.fluidOutputs(ILiquidStack[])

//示例
.fluidOutputs(<liquid:water>)
.fluidOutputs(<liquid:water>, <liquid:brass> * 1296)
.fluidOutputs([<liquid:water> * 288, <liquid:brass>])

概率物品输出:

//IItemStack 输出物品, int 基础概率, int 每级增加概率。10000就是100%,1就是0.01%。
.chancedOutput(IItemStack, 0-10000, 0-10000)

//示例
//100就是1%的基础几率,然后每一级增加0.5%
.chancedOutput(<minecraft:diamond>, 100, 50)

此方法只能用单一的IItemStack,并且会计入RecipeMap总输出量内,两个几率都可以写0,但是不要同时写。同时写就是根本没机会输出为什么要写


编程电路:

//编程电路的数字, 只有从0到32
.circuit(int)

//示例
.circuit(10)

向配方添加编程电路,需要一个int来确定编程电路的数字,从0-32。

使用此方法,配置电路会自动添加为不消耗的输入,它计入项目输入总数量,也就是机器输入的限定数量。

这也可以使用property来执行,但这种方法更简单,更易于使用。


不消耗物品的输入:

//工作于.inputs(),但是这个物品不被Recipe消耗
.notConsumable(IIngredient[])

//示例
.notConsumable(<ore:dustChrome>)
.notConsumable(<ore:dustChrome>, <minecraft:clay>)

它被记入机器输入总数量。


不消耗的流体:

//工作于.fluidInputs(),但是此流体不消耗
.notConsumable(ILiquidStack[])

//示例
.notConsumable(<liquid:aluminium> * 144)
.notConsumable(<liquid:aluminium> * 144, <liquid:water>)

记入流体输入总量。


能源使用:

//每Tick的EU输入
.EUt(int)

//示例
.EUt(512)

此方法设置配方的每个tick的 EU 使用量。


配方时间:

//int 时间,单位tick
.duration(int)

//示例
.duration(60)

此方法设置配方时间。


隐藏配方:

.hidden()

使用此方法会使此配方不会在JEI内出现。


构建并注册:

.buildAndRegister()

此方法放在最后使用,结束这个RecipeBuilder。


例子:

import mods.gregtech.recipe.RecipeMap;

//酿造室
val brewer as RecipeMap = <recipemap:brewery>;

brewer.recipeBuilder()
    .inputs(<ore:ingotWroughtIron>)
    .fluidInputs([<liquid:oxygen> * 500])
    .outputs(<ore:ingotSteel>.firstItem)
    .duration(40)
    .EUt(120)
    .buildAndRegister();

RecipeProperty配方属性

配方属性是一些配方具有的附加属性,允许您指定附加值。

将属性应用于配方:

.property(String name, Object value)

name指的是需要添加的属性的名称,Object value则是这个对象属性的值,例如高炉温度对应值int。

可用属性:

名称描述
circuitint number刚刚提到的向配方添加编程电路,不推荐使用这个。
dimensionint dimensionID集气器使用,配置此配方在哪个维度可用。
eu_to_startint eu启动核聚变反应堆的启动EU。
explosivesIItemStack/int amount此配置有两个可用值,一是IItemStack,用于给此配方设置一个特殊的炸药;二是int,代表的是炸药输入量。
temperatureint temperature

属性示例:

import mods.gregtech.recipe.RecipeMap;
// Electric Blast Furnace
val blast_furnace as RecipeMap = <recipemap:electric_blast_furnace>;
blast_furnace.recipeBuilder()
    .inputs(<ore:ingotWroughtIron>)
    .fluidInputs([<liquid:oxygen> * 500])
    .outputs(<ore:ingotTitanium>.firstItem)
    .property("temperature", 1000)
    .duration(40)
    .EUt(120)
    .buildAndRegister();

检索和删除

检索和删除都通过RecipeMap本身使用。

例子:

val compressor as RecipeMap = <recipemap:compressor>;

// findRecipe(long 实际电压量, IItemStack[] inputs, ILiquidStack[] fluidInputs)

compressor.findRecipe(2, [<minecraft:redstone>], null)

//最后添加一个.remove()调用即可删除,如果不添加则会获取此配方

请注意,必须要传入正确的RecipeMap,不然CrT回抛出一个错误。


删除和添加发电机RecipeMap

例子:

<recipemap:semi_fluid_generator>.recipeBuilder()
    .fluidInputs(<lliquid:lava> * 16)  //流体输入
    .duration(2)  //时间
    .EUt(32)  //产能,也按找eu/tick输出
    .buildAndRegister();  //构建

至于Wiki中没有提到删除的具体方法,大概和上面的findRecipe相同使用。


终端与CrT

接口:

registerDevice(deviceItemStack, deviceName)

注册自定义设备。

createAppRegistryBuilder(appName)

根据应用名称创建registryBuilder。

isDefaultApp(default)

将其设为默认应用。

battery(euTier, cost)

设置所有等级的电池要求。

battery(appTier, euTier, cost)

设置特定等级的电池要求。

device(deviceName...)

设置所有等级的设备要求。(默认可用:"scanner", "wireless", "camera", "solar_lv")

device(appTier, device...)

设置特定等级的设备要求。

upgrade(upgradeItemStack...)

为所有等级设置升级要求。

upgrade(appTier, upgradeItemStack...)

设置特定等级的升级要求。

build()

完成并注册。


例子:

import mods.gregtech.TerminalRegistry;

TerminalRegistry.registerDevice(<ore:ingotIron>.firstItem, "ingot_iron");

TerminalRegistry.createAppRegistryBuilder("ore_prospector")
    .isDefaultApp(true)
    .battery(1, 500)
    .battery(3, 3, 1000)
    .device("camera", "wireless")
    .device(4, "ingot_iron")
    .upgrade(<minecraft:apple> * 9)
    .upgrade(2, <minecraft:apple> * 9, <minecraft:grass> * 12)
    .build();

游戏内演示:

自定义设备

GT入门魔改作者必看,第二期。-第1张图片

电池,设备和升级

GT入门魔改作者必看,第二期。-第2张图片

GT入门魔改作者必看,第二期。-第3张图片


第二篇就到这里了,如果对你有帮助的话,可以点点推荐吗?(不要脸)

附上第一篇教程链接