diff --git a/.editorconfig b/.editorconfig
index 171fa743..6c360ac4 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -15,6 +15,10 @@ insert_final_newline = true
indent_style = space
indent_size = 2
+# Matches multiple files with brace expansion notation
+[*.{groovy}]
+indent_size = 4
+
# Override default charset for XML and CFG files
[*.{json,cfg,xml}]
insert_final_newline = false
diff --git a/CHANGELOG_v2.md b/CHANGELOG_v2.md
index 973d4de8..e3253ba7 100644
--- a/CHANGELOG_v2.md
+++ b/CHANGELOG_v2.md
@@ -2,6 +2,7 @@
## Move mods
- Baubles-LTS (1.0.6.0) -> BubblesEX (1.6.5)
- Bring Me The Rings! (0.4) -> BubblesEX (1.6.5)
+- CraftTweaker (4.1.20.700) -> GroovyScript (1.4.3)
## Delete mods
- AE2 Wireless Terminal-LTS
@@ -10,6 +11,8 @@
- AE2 Wireless Interface Terminal
- AE2 Wireless Pattern Terminal
- p455w0rd's AE2 Wireless Terminals Patch
+- MTLib
+- ModTweaker
## Update mods
- AE2FluidCraft-Rework-Unofficial (2.7.9 -> 2.7.10)
@@ -22,7 +25,7 @@
- Forgelin-Continuous (2.3.10.1 -> 2.3.20.0)
- GTConsolidate (1.1.3.5 -> 1.1.4.2)
- GTExpertCore (2.7.4 -> 2.7.8)
-- GTMoreTools (1.1.2 -> 1.3.3)
+- GTMoreTools (1.1.2 -> 1.4.0)
- HadEnoughItems (4.27.1 -> 4.30.3)
- Hot or Not GTCEu (1.3.0 -> 1.4.0)
- Inventory Bogo Sorter (1.6.2 -> 1.6.4)
diff --git a/manifest.json b/manifest.json
index 1c8c6a6e..65c1e031 100644
--- a/manifest.json
+++ b/manifest.json
@@ -210,8 +210,8 @@
"required": true
},
{
- "projectID": 239197,
- "fileID": 5486112,
+ "projectID": 687577,
+ "fileID": 7925117,
"required": true
},
{
@@ -294,11 +294,6 @@
"fileID": 2745545,
"required": true
},
- {
- "projectID": 253211,
- "fileID": 3308160,
- "required": true
- },
{
"projectID": 245425,
"fileID": 2530747,
@@ -329,11 +324,6 @@
"fileID": 3157548,
"required": true
},
- {
- "projectID": 220954,
- "fileID": 3840577,
- "required": true
- },
{
"projectID": 322344,
"fileID": 6790812,
@@ -691,7 +681,7 @@
},
{
"projectID": 1458022,
- "fileID": 8091637,
+ "fileID": 8247574,
"required": true
},
{
diff --git a/modlist.html b/modlist.html
index 0291f74c..e2aafc28 100644
--- a/modlist.html
+++ b/modlist.html
@@ -38,7 +38,7 @@
GregTech Food Option (by bruberu)
GregTech CE: Unofficial (by dandannoodlesman)
ConnectedTexturesMod (by tterrag1098)
-CraftTweaker (by Jaredlll08)
+GroovyScript (by CleanroomMC)
dan's Crafting Tweaks (by cleanroommc)
ArchitectureCraft - TridentMC Version (by darkevilmac)
Custom Main Menu (by Lumien231)
@@ -55,14 +55,12 @@
Ender IO OC Conduits (by HenryLoenwind)
Better Questing Unofficial (by CleanroomMC)
Project Red - Core (by MrTJP)
-MTLib (by Jaredlll08)
EZStorage 2 (by zer0fall)
PackagedAuto (by TheLMiffy1111)
TopAllDependents (by xuanyu)
LemonSkin (by myxazaur)
Framed Compacting Drawers (by Eutropium)
FTB Utilities (Forge) (by FTB)
-ModTweaker (by Jaredlll08)
LibNine (by phantamanta44)
Lazy AE2 (by phantamanta44)
Dynamistics (by Eutropium)
diff --git a/overrides/config/gtmt/modules.cfg b/overrides/config/gtmt/modules.cfg
index cf6923f3..f08cce34 100644
--- a/overrides/config/gtmt/modules.cfg
+++ b/overrides/config/gtmt/modules.cfg
@@ -17,6 +17,11 @@ modules {
# Mod Dependencies: [ chisel ]
B:"gtmt:chisel_integration"=true
+ # JEI Integration Module
+ # Module Dependencies: [ gtmt:integration ]
+ # Mod Dependencies: [ jei ]
+ B:"gtmt:jei_integration"=true
+
# Core of GTMTMod
B:"gtmt:core"=true
@@ -28,6 +33,10 @@ modules {
# Module Dependencies: [ gtmt:integration ]
# Mod Dependencies: [ storagedrawers ]
B:"gtmt:storage_drawers_integration"=true
+
+ # GTMoreTools Tools Module
+ # Module Dependencies: [ gtmt:core ]
+ B:"gtmt:tools"=true
}
diff --git a/overrides/config/gtmt/tools.cfg b/overrides/config/gtmt/tools.cfg
new file mode 100644
index 00000000..73c39466
--- /dev/null
+++ b/overrides/config/gtmt/tools.cfg
@@ -0,0 +1,48 @@
+# Configuration file
+
+general {
+ # Enable tool restrictions and JEI item hiding.
+ # default: false
+ B:enable=true
+
+ # Items to apply restrictions to.
+ # Format: modid:item_name@meta, maxDamage, hideFromJEI
+ # maxDamage 0 = no restriction; positive = set max durability to this value
+ # hideFromJEI true = hide from JEI and remove crafting recipes
+ # Example: minecraft:wooden_sword, 0, false
+ # Example: appliedenergistics2:certus_quartz_sword, 0, false
+ S:items <
+ minecraft:wooden_sword, 0, false
+ minecraft:wooden_shovel, 1, false
+ minecraft:wooden_pickaxe, 1, false
+ minecraft:wooden_axe, 1, false
+ minecraft:stone_sword, 0, false
+ minecraft:stone_shovel, 1, false
+ minecraft:stone_pickaxe, 1, false
+ minecraft:stone_axe, 1, false
+ minecraft:iron_sword, 0, false
+ minecraft:iron_shovel, 1, false
+ minecraft:iron_pickaxe, 1, false
+ minecraft:iron_axe, 1, false
+ minecraft:golden_sword, 0, false
+ minecraft:golden_shovel, 1, false
+ minecraft:golden_pickaxe, 1, false
+ minecraft:golden_axe, 1, false
+ minecraft:diamond_sword, 0, false
+ minecraft:diamond_shovel, 1, false
+ minecraft:diamond_pickaxe, 1, false
+ minecraft:diamond_axe, 1, false
+ appliedenergistics2:certus_quartz_sword, 0, true
+ appliedenergistics2:certus_quartz_spade, 0, true
+ appliedenergistics2:certus_quartz_pickaxe, 0, true
+ appliedenergistics2:certus_quartz_axe, 0, true
+ appliedenergistics2:nether_quartz_sword, 0, true
+ appliedenergistics2:nether_quartz_spade, 0, true
+ appliedenergistics2:nether_quartz_pickaxe, 0, true
+ appliedenergistics2:nether_quartz_axe, 0, true
+ architecturecraft:sawblade, 0, true
+ architecturecraft:largepulley, 0, true
+ >
+}
+
+
diff --git a/overrides/groovy/.groovylintrc.json b/overrides/groovy/.groovylintrc.json
new file mode 100644
index 00000000..6c1475a4
--- /dev/null
+++ b/overrides/groovy/.groovylintrc.json
@@ -0,0 +1,35 @@
+{
+ "extends": "all",
+ "rules": {
+ "braces.ElseBlockBraces": "off",
+ "braces.IfStatementBraces": "off",
+ "convention.CompileStatic": "off",
+ "convention.NoDef": "off",
+ "convention.ImplicitReturnStatement": "warn",
+ "convention.VariableTypeRequired": "off",
+ "design.BuilderMethodWithSideEffects": "off",
+ "design.Instanceof": "off",
+ "design.NestedForLoop": "off",
+ "dry.DuplicateListLiteral": "off",
+ "dry.DuplicateNumberLiteral": "off",
+ "dry.DuplicateStringLiteral": "off",
+ "formatting.BlankLineBeforePackage": "off",
+ "formatting.Indentation": {
+ "spacesPerIndentLevel": 4,
+ "severity": "error"
+ },
+ "formatting.SpaceAroundMapEntryColon": {
+ "characterBeforeColonRegex": "\\s",
+ "characterAfterColonRegex": "\\s"
+ },
+ "groovyism.UseCollectMany": "off",
+ "imports.NoWildcardImports": "off",
+ "logging.Println": "warning",
+ "naming.ClassNameSameAsFilename": "off",
+ "naming.FactoryMethodName": "off",
+ "naming.PackageNameMatchesFilePath": {
+ "groupId": "post"
+ },
+ "unnecessary.UnnecessaryReturnKeyword": "off"
+ }
+}
\ No newline at end of file
diff --git a/overrides/groovy/assets/gte2/lang/en_us.lang b/overrides/groovy/assets/gte2/lang/en_us.lang
new file mode 100644
index 00000000..e69de29b
diff --git a/overrides/groovy/postInit/globals.groovy b/overrides/groovy/postInit/globals.groovy
new file mode 100644
index 00000000..b93892f2
--- /dev/null
+++ b/overrides/groovy/postInit/globals.groovy
@@ -0,0 +1,74 @@
+import gregtech.integration.groovy.GroovyScriptModule
+import net.minecraftforge.fml.common.Loader
+
+mi = { String name, int count = 1 ->
+ def stack = GroovyScriptModule.getMetaItem(name)
+ if (stack == null) {
+ log.warn("MetaItem not found: ${name}")
+ return null
+ }
+ stack.setCount(count)
+ return stack
+}
+
+////////////////////////////////////////
+// Applied Energistics 2
+////////////////////////////////////////
+// Extended Crafting Terminal
+mods.minecraft.ore_dict.add('craftExtendedTerminal', item('appliedenergistics2:part', 341))
+mods.minecraft.ore_dict.add('craftExtendedTerminal', item('ae2fc:part_fluid_pattern_ex_terminal'))
+
+// Fluid Assembler
+mods.minecraft.ore_dict.add('craftAssemblerFluid', item('ae2fc:fluid_assembler'))
+mods.minecraft.ore_dict.add('craftAssemblerFluid', item('aeadditions:fluidcrafter'))
+
+
+////////////////////////////////////////
+// Minecraft
+////////////////////////////////////////
+// Grass
+mods.minecraft.ore_dict.add('grass', item('minecraft:double_plant', 2))
+mods.minecraft.ore_dict.add('grass', item('minecraft:double_plant', 3))
+mods.minecraft.ore_dict.add('grass', item('minecraft:tallgrass', 32767))
+
+// Colors
+colors = [
+ 'white', 'orange', 'magenta', 'light_blue', 'yellow', 'lime',
+ 'pink', 'gray', 'silver', 'cyan', 'purple', 'blue',
+ 'brown', 'green', 'red', 'black'
+]
+colorLiquid = [
+ fluid('dye_white'), fluid('dye_orange'), fluid('dye_magenta'),
+ fluid('dye_light_blue'), fluid('dye_yellow'), fluid('dye_lime'),
+ fluid('dye_pink'), fluid('dye_gray'), fluid('dye_light_gray'),
+ fluid('dye_cyan'), fluid('dye_purple'), fluid('dye_blue'),
+ fluid('dye_brown'), fluid('dye_green'), fluid('dye_red'),
+ fluid('dye_black')
+]
+
+
+////////////////////////////////////////
+// Other
+////////////////////////////////////////
+// Wrench
+mods.minecraft.ore_dict.add('wrench', item('appliedenergistics2:certus_quartz_wrench'))
+mods.minecraft.ore_dict.add('wrench', item('appliedenergistics2:nether_quartz_wrench'))
+mods.minecraft.ore_dict.add('wrench', item('enderio:item_yeta_wrench'))
+
+// Wools
+mods.minecraft.ore_dict.add('wool', item('chisel:wool_black', 32767))
+mods.minecraft.ore_dict.add('wool', item('chisel:wool_red', 32767))
+mods.minecraft.ore_dict.add('wool', item('chisel:wool_green', 32767))
+mods.minecraft.ore_dict.add('wool', item('chisel:wool_brown', 32767))
+mods.minecraft.ore_dict.add('wool', item('chisel:wool_blue', 32767))
+mods.minecraft.ore_dict.add('wool', item('chisel:wool_purple', 32767))
+mods.minecraft.ore_dict.add('wool', item('chisel:wool_cyan', 32767))
+mods.minecraft.ore_dict.add('wool', item('chisel:wool_lightgray', 32767))
+mods.minecraft.ore_dict.add('wool', item('chisel:wool_gray', 32767))
+mods.minecraft.ore_dict.add('wool', item('chisel:wool_pink', 32767))
+mods.minecraft.ore_dict.add('wool', item('chisel:wool_lime', 32767))
+mods.minecraft.ore_dict.add('wool', item('chisel:wool_yellow', 32767))
+mods.minecraft.ore_dict.add('wool', item('chisel:wool_lightblue', 32767))
+mods.minecraft.ore_dict.add('wool', item('chisel:wool_magenta', 32767))
+mods.minecraft.ore_dict.add('wool', item('chisel:wool_orange', 32767))
+mods.minecraft.ore_dict.add('wool', item('chisel:wool_white', 32767))
diff --git a/overrides/groovy/postInit/normal/AE2FluidCraftingRework.groovy b/overrides/groovy/postInit/normal/AE2FluidCraftingRework.groovy
new file mode 100644
index 00000000..a978a94f
--- /dev/null
+++ b/overrides/groovy/postInit/normal/AE2FluidCraftingRework.groovy
@@ -0,0 +1,179 @@
+import gregtech.api.recipes.RecipeMap
+
+def assembler = RecipeMap.getByName("assembler")
+
+////////////////////////////////////////
+// Blocks
+////////////////////////////////////////
+// Fluid Pattern Encoder
+mods.minecraft.crafting.removeByOutput(item('ae2fc:fluid_pattern_encoder'))
+mods.jei.ingredient.hide(item('ae2fc:fluid_pattern_encoder'))
+
+// Ingredient Buffer
+mods.minecraft.crafting.removeByOutput(item('ae2fc:ingredient_buffer'))
+mods.jei.ingredient.hide(item('ae2fc:ingredient_buffer'))
+
+// Large Ingredient Buffer
+mods.minecraft.crafting.removeByOutput(item('ae2fc:large_ingredient_buffer'))
+mods.jei.ingredient.hide(item('ae2fc:large_ingredient_buffer'))
+
+// ME Fluid Assembler
+mods.minecraft.crafting.removeByOutput(item('ae2fc:fluid_assembler'))
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('ae2fc:fluid_assembler'))
+ .input(item('aeadditions:fluidcrafter'))
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(3)
+ .inputs(
+ mi('plateGlass', 2),
+ ore('circuitHv') * 2,
+ mi('electric.pump.hv', 2),
+ mi('fluid.regulator.hv', 2),
+ mi('plateSteel', 4)
+ )
+ .fluidInputs(fluid('plastic') * 144)
+ .outputs(item('ae2fc:fluid_assembler'))
+ .duration(200)
+ .EUt(480)
+ .buildAndRegister()
+
+// Fluid Packet Decoder
+mods.minecraft.crafting.removeByOutput(item('ae2fc:fluid_packet_decoder'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('ae2fc:fluid_packet_decoder'))
+ .shape([
+ [mi('plateStainlessSteel'), mi('electric.piston.hv'), mi('plateStainlessSteel')],
+ [ore('craftGlassCable'), ore('craftInterfaceFluid'), ore('craftGlassCable')],
+ [mi('plateStainlessSteel'), item('appliedenergistics2:material', 23), mi('plateStainlessSteel')]
+ ])
+ .register()
+
+// Precision Burette
+mods.minecraft.crafting.removeByOutput(item('ae2fc:burette'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('ae2fc:burette'))
+ .shape([
+ [mi('plateStainlessSteel'), mi('electric.piston.hv'), mi('plateStainlessSteel')],
+ [item('appliedenergistics2:quartz_glass'), item('minecraft:bucket'), item('appliedenergistics2:quartz_glass')],
+ [mi('plateStainlessSteel'), item('appliedenergistics2:material', 23), mi('plateStainlessSteel')]
+ ])
+ .register()
+
+// Fluid Discretizer
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('ae2fc:fluid_discretizer'))
+ .shape([
+ [mi('plateStainlessSteel'), item('appliedenergistics2:material', 24), mi('plateStainlessSteel')],
+ [item('appliedenergistics2:part', 220), item('appliedenergistics2:condenser'), item('appliedenergistics2:part', 221)],
+ [mi('plateStainlessSteel'), item('appliedenergistics2:material', 24), mi('plateStainlessSteel')]
+ ])
+ .register()
+
+// ME Dual Interface
+mods.minecraft.crafting.remove(resource('ae2fc:dual_interface'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('ae2fc:dual_interface'))
+ .shape([
+ [mi('plateTitanium'), mi('plateGlass'), mi('plateTitanium')],
+ [item('gtexpert:meta_item_1', 1), item('gregtech:machine_casing', 3), item('gtexpert:meta_item_1', 1)],
+ [mi('plateTitanium'), mi('plateGlass'), mi('plateTitanium')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(3)
+ .inputs(
+ item('gregtech:machine_casing', 3),
+ item('gtexpert:meta_item_1', 1),
+ mi('plateGlass'),
+ mi('plateTitanium', 2)
+ )
+ .outputs(item('ae2fc:dual_interface'))
+ .duration(20)
+ .EUt(1920)
+ .buildAndRegister()
+
+// Fluid Pattern Terminal
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('ae2fc:part_fluid_pattern_terminal'))
+ .shape([
+ [ore('craftingToolScrewdriver'), item('appliedenergistics2:part', 380), ore('craftingToolSoftHammer')],
+ [mi('screwStainlessSteel'), item('appliedenergistics2:material', 52), mi('screwStainlessSteel')],
+ [mi('plateStainlessSteel'), item('appliedenergistics2:material', 23), mi('plateStainlessSteel')]
+ ])
+ .register()
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('ae2fc:part_fluid_pattern_terminal'))
+ .shape([
+ [ore('craftingToolSoftHammer'), item('appliedenergistics2:part', 380), ore('craftingToolScrewdriver')],
+ [mi('screwStainlessSteel'), item('appliedenergistics2:material', 52), mi('screwStainlessSteel')],
+ [mi('plateStainlessSteel'), item('appliedenergistics2:material', 23), mi('plateStainlessSteel')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .inputs(
+ item('appliedenergistics2:material', 23),
+ item('appliedenergistics2:part', 380),
+ item('appliedenergistics2:material', 52),
+ mi('screwStainlessSteel'),
+ mi('plateStainlessSteel')
+ )
+ .outputs(item('ae2fc:part_fluid_pattern_terminal'))
+ .duration(20)
+ .EUt(1920)
+ .buildAndRegister()
+
+// Extended Processing Fluid Pattern Terminal
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('ae2fc:part_fluid_pattern_ex_terminal'))
+ .shape([
+ [ore('craftingToolScrewdriver'), item('ae2fc:part_fluid_pattern_terminal'), ore('craftingToolSoftHammer')],
+ [mi('screwStainlessSteel'), item('appliedenergistics2:material', 52), mi('screwStainlessSteel')],
+ [mi('plateStainlessSteel'), item('appliedenergistics2:material', 24), mi('plateStainlessSteel')]
+ ])
+ .register()
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('ae2fc:part_fluid_pattern_ex_terminal'))
+ .shape([
+ [ore('craftingToolSoftHammer'), item('ae2fc:part_fluid_pattern_terminal'), ore('craftingToolScrewdriver')],
+ [mi('screwStainlessSteel'), item('appliedenergistics2:material', 52), mi('screwStainlessSteel')],
+ [mi('plateStainlessSteel'), item('appliedenergistics2:material', 24), mi('plateStainlessSteel')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .inputs(
+ item('appliedenergistics2:material', 24),
+ item('ae2fc:part_fluid_pattern_terminal'),
+ item('appliedenergistics2:material', 52),
+ mi('screwStainlessSteel'),
+ mi('plateStainlessSteel')
+ )
+ .outputs(item('ae2fc:part_fluid_pattern_ex_terminal'))
+ .duration(20)
+ .EUt(1920)
+ .buildAndRegister()
+
+// Fluid Level Maintainer
+mods.minecraft.crafting.removeByOutput(item('ae2fc:fluid_level_maintainer'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('ae2fc:fluid_level_maintainer'))
+ .shape([
+ [mi('plateFluixAlloy'), item('appliedenergistics2:part', 281), mi('plateFluixAlloy')],
+ [item('appliedenergistics2:material', 22), item('gtexpert:meta_item_1', 1), item('appliedenergistics2:material', 22)],
+ [mi('plateFluixAlloy'), item('appliedenergistics2:material', 53), mi('plateFluixAlloy')]
+ ])
+ .register()
+
+
+////////////////////////////////////////
+// Items
+////////////////////////////////////////
+// Wireless Fluid Interface Terminal
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('ae2fc:wireless_fluid_pattern_terminal'))
+ .shape([
+ [item('appliedenergistics2:material', 41), item('ae2fc:part_fluid_pattern_terminal'), item('appliedenergistics2:material', 41)],
+ [item('appliedenergistics2:material', 24), item('gtexpert:meta_item_1', 1), item('appliedenergistics2:material', 24)],
+ [mi('plateNetherQuartz'), item('appliedenergistics2:dense_energy_cell'), mi('plateNetherQuartz')]
+ ])
+ .register()
diff --git a/overrides/groovy/postInit/normal/AE2Sutff.groovy b/overrides/groovy/postInit/normal/AE2Sutff.groovy
new file mode 100644
index 00000000..1c5a561c
--- /dev/null
+++ b/overrides/groovy/postInit/normal/AE2Sutff.groovy
@@ -0,0 +1,121 @@
+import gregtech.api.recipes.RecipeMap
+
+def assembler = RecipeMap.getByName("assembler")
+def chemical_bath = RecipeMap.getByName("chemical_bath")
+
+////////////////////////////////////////
+// Blocks
+////////////////////////////////////////
+// Crystal Growth Chamber
+mods.jei.ingredient.hide(item('ae2stuff:grower'))
+
+// Advanced Inscriber
+mods.jei.ingredient.hide(item('ae2stuff:inscriber'))
+
+// Wireless Connector
+def connectors = [
+ item('ae2stuff:wireless', 1),
+ item('ae2stuff:wireless', 2),
+ item('ae2stuff:wireless', 3),
+ item('ae2stuff:wireless', 4),
+ item('ae2stuff:wireless', 5),
+ item('ae2stuff:wireless', 6),
+ item('ae2stuff:wireless', 7),
+ item('ae2stuff:wireless', 8),
+ item('ae2stuff:wireless', 9),
+ item('ae2stuff:wireless', 10),
+ item('ae2stuff:wireless', 11),
+ item('ae2stuff:wireless', 12),
+ item('ae2stuff:wireless', 13),
+ item('ae2stuff:wireless', 14),
+ item('ae2stuff:wireless', 15),
+ item('ae2stuff:wireless', 16)
+]
+connectors.each { connector ->
+ mods.minecraft.crafting.removeByOutput(connector)
+ mods.minecraft.ore_dict.add('ae2stuffConnectors', connector)
+}
+mods.minecraft.ore_dict.add('ae2stuffConnectors', item('ae2stuff:wireless', 0))
+mods.minecraft.crafting.remove(resource('ae2stuff:recipe1'))
+assembler.recipeBuilder()
+ .circuitMeta(2)
+ .inputs(
+ item('appliedenergistics2:material', 24) * 4,
+ item('gtexpert:meta_item_1', 1) * 2,
+ item('appliedenergistics2:material', 41),
+ item('gregtech:machine_casing', 4)
+ )
+ .fluidInputs(fluid('fluix_alloy') * 1152)
+ .outputs(item('ae2stuff:wireless', 0))
+ .duration(20)
+ .EUt(1920)
+ .buildAndRegister()
+connectors.eachWithIndex { connector, i ->
+ chemical_bath.recipeBuilder()
+ .inputs(ore('ae2stuffConnectors'))
+ .fluidInputs(colorLiquid[i] * 18)
+ .outputs(connector)
+ .duration(20)
+ .EUt(7)
+ .buildAndRegister()
+}
+
+// Wireless Connector Hub
+def hubs = [
+ item('ae2stuff:wireless_hub', 1),
+ item('ae2stuff:wireless_hub', 2),
+ item('ae2stuff:wireless_hub', 3),
+ item('ae2stuff:wireless_hub', 4),
+ item('ae2stuff:wireless_hub', 5),
+ item('ae2stuff:wireless_hub', 6),
+ item('ae2stuff:wireless_hub', 7),
+ item('ae2stuff:wireless_hub', 8),
+ item('ae2stuff:wireless_hub', 9),
+ item('ae2stuff:wireless_hub', 10),
+ item('ae2stuff:wireless_hub', 11),
+ item('ae2stuff:wireless_hub', 12),
+ item('ae2stuff:wireless_hub', 13),
+ item('ae2stuff:wireless_hub', 14),
+ item('ae2stuff:wireless_hub', 15),
+ item('ae2stuff:wireless_hub', 16)
+]
+hubs.each { hub ->
+ mods.minecraft.crafting.removeByOutput(hub)
+ mods.minecraft.ore_dict.add('ae2stuffConnectorHubs', hub)
+}
+mods.minecraft.ore_dict.add('ae2stuffConnectorHubs', item('ae2stuff:wireless_hub', 0))
+mods.minecraft.crafting.remove(resource('ae2stuff:recipe2'))
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ ore('ae2stuffConnectors') * 8,
+ mi('sensor.luv')
+ )
+ .outputs(item('ae2stuff:wireless_hub', 0))
+ .duration(20)
+ .EUt(7680)
+ .buildAndRegister()
+hubs.eachWithIndex { hub, i ->
+ chemical_bath.recipeBuilder()
+ .inputs(ore('ae2stuffConnectorHubs'))
+ .fluidInputs(colorLiquid[i] * 18)
+ .outputs(hub)
+ .duration(20)
+ .EUt(7)
+ .buildAndRegister()
+}
+
+
+////////////////////////////////////////
+// Items
+////////////////////////////////////////
+// Network Visualisation Tool
+mods.minecraft.crafting.removeByOutput(item('ae2stuff:visualiser'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('ae2stuff:visualiser'))
+ .shape([
+ [mi('plateAluminium'), item('appliedenergistics2:material', 43), mi('plateAluminium')],
+ [item('appliedenergistics2:network_tool'), mi('wireless'), item('appliedenergistics2:entropy_manipulator')],
+ [mi('plateAluminium'), item('appliedenergistics2:material', 44), mi('plateAluminium')]
+ ])
+ .register()
diff --git a/overrides/groovy/postInit/normal/AEAdditions.groovy b/overrides/groovy/postInit/normal/AEAdditions.groovy
new file mode 100644
index 00000000..1a4a32c4
--- /dev/null
+++ b/overrides/groovy/postInit/normal/AEAdditions.groovy
@@ -0,0 +1,336 @@
+import net.minecraftforge.fml.common.Loader
+import gregtech.api.recipes.RecipeMap
+import net.minecraftforge.fml.common.registry.ForgeRegistries
+import net.minecraft.item.ItemStack
+
+def assembler = RecipeMap.getByName("assembler")
+
+if (Loader.isModLoaded('aeadditions')) {
+ ForgeRegistries.ITEMS.valuesCollection
+ .findAll { it.registryName?.namespace == 'aeadditions' }
+ .each { regItem ->
+ def stack = new ItemStack(regItem, 1, 0)
+ if (stack.displayName.contains('ME Fluid Pattern')) {
+ mods.jei.ingredient.hide(stack)
+ }
+ }
+}
+
+
+////////////////////////////////////////
+// Items
+////////////////////////////////////////
+// Fluid Pattern
+mods.minecraft.crafting.removeByOutput(item('aeadditions:pattern.fluid'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('aeadditions:pattern.fluid'))
+ .shape([
+ [mi('screwStainlessSteel'), mi('plateStainlessSteel'), ore('craftingToolHardHammer')],
+ [mi('plateStainlessSteel'), item('appliedenergistics2:quartz_glass'), mi('plateStainlessSteel')],
+ [ore('craftingToolScrewdriver'), mi('plateStainlessSteel'), mi('screwStainlessSteel')]
+ ])
+ .register()
+
+// Wireless Universal Terminal
+mods.jei.ingredient.hide(item('aeadditions:terminal.universal.wireless'))
+
+// Wireless Fluid Terminal
+mods.minecraft.crafting.removeByOutput(item('aeadditions:terminal.fluid.wireless'))
+mods.jei.ingredient.hide(item('aeadditions:terminal.fluid.wireless'))
+
+// 256k Storage Component
+mods.minecraft.crafting.removeByOutput(item('aeadditions:storage.component'))
+assembler.recipeBuilder()
+ .inputs(
+ ore('circuitZpm') * 4,
+ mi('plateNaquadahAlloy', 4),
+ mi('dustCertusQuartz', 16),
+ item('appliedenergistics2:material', 24)
+ )
+ .fluidInputs(fluid('steel') * 144)
+ .outputs(item('aeadditions:storage.component'))
+ .duration(200)
+ .EUt(122880)
+ .buildAndRegister()
+assembler.recipeBuilder()
+ .inputs(
+ item('appliedenergistics2:material', 24),
+ ore('circuitZpm') * 4,
+ item('appliedenergistics2:material', 38) * 4
+ )
+ .fluidInputs(fluid('steel') * 144)
+ .outputs(item('aeadditions:storage.component'))
+ .duration(400)
+ .EUt(122880)
+ .buildAndRegister()
+
+// 1024k Storage Component
+mods.minecraft.crafting.removeByOutput(item('aeadditions:storage.component', 1))
+assembler.recipeBuilder()
+ .inputs(
+ ore('circuitZpm') * 4,
+ mi('plateAmericium', 4),
+ mi('dustCertusQuartz', 16),
+ item('appliedenergistics2:material', 24)
+ )
+ .fluidInputs(fluid('steel') * 144)
+ .outputs(item('aeadditions:storage.component', 1))
+ .duration(200)
+ .EUt(122880)
+ .buildAndRegister()
+assembler.recipeBuilder()
+ .inputs(
+ item('appliedenergistics2:material', 24),
+ ore('circuitZpm') * 4,
+ item('aeadditions:storage.component') * 4
+ )
+ .fluidInputs(fluid('steel') * 144)
+ .outputs(item('aeadditions:storage.component', 1))
+ .duration(400)
+ .EUt(122880)
+ .buildAndRegister()
+
+// 4096k Storage Component
+mods.minecraft.crafting.removeByOutput(item('aeadditions:storage.component', 2))
+assembler.recipeBuilder()
+ .inputs(
+ ore('circuitUv') * 4,
+ mi('plateDarmstadtium', 4),
+ mi('dustCertusQuartz', 32),
+ item('appliedenergistics2:material', 23)
+ )
+ .fluidInputs(fluid('steel') * 144)
+ .outputs(item('aeadditions:storage.component', 2))
+ .duration(200)
+ .EUt(491520)
+ .buildAndRegister()
+assembler.recipeBuilder()
+ .inputs(
+ item('appliedenergistics2:material', 23),
+ ore('circuitUv') * 4,
+ item('aeadditions:storage.component', 1) * 4
+ )
+ .fluidInputs(fluid('steel') * 144)
+ .outputs(item('aeadditions:storage.component', 2))
+ .duration(400)
+ .EUt(491520)
+ .buildAndRegister()
+
+// 16384k Storage Component
+mods.minecraft.crafting.removeByOutput(item('aeadditions:storage.component', 3))
+assembler.recipeBuilder()
+ .inputs(
+ ore('circuitUv') * 4,
+ mi('plateNeutronium', 4),
+ mi('dustCertusQuartz', 32),
+ item('appliedenergistics2:material', 23)
+ )
+ .fluidInputs(fluid('steel') * 144)
+ .outputs(item('aeadditions:storage.component', 3))
+ .duration(200)
+ .EUt(491520)
+ .buildAndRegister()
+assembler.recipeBuilder()
+ .inputs(
+ item('appliedenergistics2:material', 23),
+ ore('circuitUv') * 4,
+ item('aeadditions:storage.component', 2) * 4
+ )
+ .fluidInputs(fluid('steel') * 144)
+ .outputs(item('aeadditions:storage.component', 3))
+ .duration(400)
+ .EUt(491520)
+ .buildAndRegister()
+
+// 256k Fluid Component
+mods.minecraft.crafting.removeByOutput(item('aeadditions:storage.component', 4))
+assembler.recipeBuilder()
+ .inputs(
+ ore('circuitZpm') * 4,
+ mi('plateNaquadahAlloy', 4),
+ mi('dustNetherQuartz', 16),
+ item('appliedenergistics2:material', 24)
+ )
+ .fluidInputs(fluid('stainless_steel') * 144)
+ .outputs(item('aeadditions:storage.component', 4))
+ .duration(200)
+ .EUt(122880)
+ .buildAndRegister()
+assembler.recipeBuilder()
+ .inputs(
+ item('appliedenergistics2:material', 24),
+ ore('circuitZpm') * 4,
+ item('appliedenergistics2:material', 57) * 4
+ )
+ .fluidInputs(fluid('stainless_steel') * 144)
+ .outputs(item('aeadditions:storage.component', 4))
+ .duration(400)
+ .EUt(122880)
+ .buildAndRegister()
+
+// 1024k Fluid Component
+mods.minecraft.crafting.removeByOutput(item('aeadditions:storage.component', 5))
+assembler.recipeBuilder()
+ .inputs(
+ ore('circuitZpm') * 4,
+ mi('plateAmericium', 4),
+ mi('dustNetherQuartz', 16),
+ item('appliedenergistics2:material', 24)
+ )
+ .fluidInputs(fluid('stainless_steel') * 144)
+ .outputs(item('aeadditions:storage.component', 5))
+ .duration(200)
+ .EUt(122880)
+ .buildAndRegister()
+assembler.recipeBuilder()
+ .inputs(
+ item('appliedenergistics2:material', 24),
+ ore('circuitZpm') * 4,
+ item('aeadditions:storage.component', 4) * 4
+ )
+ .fluidInputs(fluid('stainless_steel') * 144)
+ .outputs(item('aeadditions:storage.component', 5))
+ .duration(400)
+ .EUt(122880)
+ .buildAndRegister()
+
+// 4096k Fluid Component
+mods.minecraft.crafting.removeByOutput(item('aeadditions:storage.component', 6))
+assembler.recipeBuilder()
+ .inputs(
+ ore('circuitUv') * 4,
+ mi('plateDarmstadtium', 4),
+ mi('dustNetherQuartz', 32),
+ item('appliedenergistics2:material', 23)
+ )
+ .fluidInputs(fluid('stainless_steel') * 144)
+ .outputs(item('aeadditions:storage.component', 6))
+ .duration(200)
+ .EUt(491520)
+ .buildAndRegister()
+assembler.recipeBuilder()
+ .inputs(
+ item('appliedenergistics2:material', 23),
+ ore('circuitUv') * 4,
+ item('aeadditions:storage.component', 5) * 4
+ )
+ .fluidInputs(fluid('stainless_steel') * 144)
+ .outputs(item('aeadditions:storage.component', 6))
+ .duration(400)
+ .EUt(491520)
+ .buildAndRegister()
+
+
+////////////////////////////////////////
+// Blocks
+////////////////////////////////////////
+// Certus Quartz Tank
+mods.minecraft.crafting.removeByOutput(item('aeadditions:certustank'))
+mods.jei.ingredient.hide(item('aeadditions:certustank'))
+
+// Gas Interface
+mods.minecraft.crafting.removeByOutput(item('aeadditions:gas_interface'))
+mods.jei.ingredient.hide(item('aeadditions:gas_interface'))
+
+// ME Drive Fixture
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('aeadditions:part.base'))
+ .shape([
+ [ore('craftGlassCable'), item('appliedenergistics2:part', 120), ore('craftGlassCable')],
+ [item('appliedenergistics2:part', 120), item('appliedenergistics2:drive'), item('appliedenergistics2:part', 120)],
+ [ore('craftGlassCable'), item('appliedenergistics2:part', 120), ore('craftGlassCable')]
+ ])
+ .register()
+
+// ME Energy Cell Fixture
+mods.minecraft.crafting.removeByOutput(item('aeadditions:part.base', 1))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('aeadditions:part.base', 1))
+ .shape([
+ [ore('craftGlassCable'), item('appliedenergistics2:part', 120), ore('craftGlassCable')],
+ [item('appliedenergistics2:part', 120), item('appliedenergistics2:energy_cell'), item('appliedenergistics2:part', 120)],
+ [ore('craftGlassCable'), item('appliedenergistics2:part', 120), ore('craftGlassCable')]
+ ])
+ .register()
+
+// Fluid Interface
+mods.jei.ingredient.hide(item('aeadditions:part.base', 2))
+
+// ME Ore Dictionary Export Bus
+mods.minecraft.crafting.removeByOutput(item('aeadditions:part.base', 3))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('aeadditions:part.base', 3))
+ .shape([
+ [ore('craftingToolScrewdriver'), mi('plateTitanium'), ore('craftingToolSoftHammer')],
+ [item('appliedenergistics2:material', 44), mi('ore_dictionary_filter'), item('appliedenergistics2:material', 43)],
+ [mi('screwTitanium'), mi('robot.arm.hv'), mi('screwTitanium')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(4)
+ .inputs(
+ item('appliedenergistics2:material', 44),
+ item('appliedenergistics2:material', 43),
+ mi('ore_dictionary_filter'),
+ mi('plateTitanium'),
+ mi('screwTitanium', 2),
+ mi('robot.arm.hv')
+ )
+ .outputs(item('aeadditions:part.base', 3))
+ .duration(20)
+ .EUt(1920)
+ .buildAndRegister()
+
+// Fluid Filler
+mods.minecraft.crafting.removeByOutput(item('aeadditions:fluidfiller'))
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('aeadditions:fluidfiller'))
+ .input(item('appliedenergistics2:part', 520), ore('craftAssemblerFluid'))
+ .register()
+
+// ME Fluid Assembler
+mods.minecraft.crafting.removeByOutput(item('aeadditions:fluidcrafter'))
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('aeadditions:fluidcrafter'))
+ .input(item('ae2fc:fluid_assembler'))
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(2)
+ .inputs(
+ mi('plateGlass', 2),
+ ore('circuitHv') * 2,
+ mi('electric.pump.hv', 2),
+ mi('fluid.regulator.hv', 2),
+ mi('plateSteel', 4)
+ )
+ .fluidInputs(fluid('plastic') * 144)
+ .outputs(item('aeadditions:fluidcrafter'))
+ .duration(200)
+ .EUt(480)
+ .buildAndRegister()
+
+// Fluid Vibration Chamber
+mods.minecraft.crafting.removeByOutput(item('aeadditions:vibrantchamberfluid'))
+assembler.recipeBuilder()
+ .inputs(
+ ore('circuitHv') * 2,
+ ore('cableGtSingleGold') * 2,
+ mi('electric.pump.hv', 2),
+ mi('wireGtDoubleKanthal', 4),
+ mi('plateStainlessSteel', 7)
+ )
+ .outputs(item('aeadditions:vibrantchamberfluid'))
+ .duration(200)
+ .EUt(480)
+ .buildAndRegister()
+
+// Obsidian ME Drive
+mods.minecraft.crafting.removeByOutput(item('aeadditions:hardmedrive'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('aeadditions:hardmedrive'))
+ .shape([
+ [item('enderio:block_reinforced_obsidian'), ore('craftDenseCoveredCable'), item('enderio:block_reinforced_obsidian')],
+ [item('enderio:block_reinforced_obsidian'), item('appliedenergistics2:drive'), item('enderio:block_reinforced_obsidian')],
+ [item('enderio:block_reinforced_obsidian'), item('minecraft:obsidian'), item('enderio:block_reinforced_obsidian')]
+ ])
+ .register()
diff --git a/overrides/groovy/postInit/normal/AppliedEnergistics.groovy b/overrides/groovy/postInit/normal/AppliedEnergistics.groovy
new file mode 100644
index 00000000..87a48797
--- /dev/null
+++ b/overrides/groovy/postInit/normal/AppliedEnergistics.groovy
@@ -0,0 +1,1733 @@
+import net.minecraftforge.fml.common.Loader
+import gregtech.api.recipes.RecipeMap
+import net.minecraftforge.fml.common.registry.ForgeRegistries
+import net.minecraft.item.ItemStack
+
+def assembler = RecipeMap.getByName("assembler")
+def alloy_smelter = RecipeMap.getByName("alloy_smelter")
+def cutter = RecipeMap.getByName("cutter")
+
+mods.jei.category.hideCategory('appliedenergistics2.grinder')
+mods.jei.category.hideCategory('appliedenergistics2.inscriber')
+
+if (Loader.isModLoaded('appliedenergistics2')) {
+ ForgeRegistries.ITEMS.valuesCollection
+ .findAll { it.registryName?.namespace == 'appliedenergistics2' }
+ .each { regItem ->
+ def stack = new ItemStack(regItem, 1, 0)
+ if (stack.displayName.contains('Cable Facade')) {
+ mods.jei.ingredient.hide(stack)
+ }
+ if (stack.displayName.contains('Paint Ball')) {
+ mods.minecraft.crafting.removeByOutput(stack)
+ mods.jei.ingredient.hide(stack)
+ }
+ }
+}
+
+
+////////////////////////////////////////
+// Items
+////////////////////////////////////////
+// Certus Quartz Dust
+mods.minecraft.ore_dict.remove('dustCertusQuartz', item('appliedenergistics2:material', 2))
+mods.jei.ingredient.hide(item('appliedenergistics2:material', 2))
+
+// Nether Quartz Dust
+mods.minecraft.ore_dict.remove('dustNetherQuartz', item('appliedenergistics2:material', 3))
+mods.minecraft.ore_dict.remove('dustQuartz', item('appliedenergistics2:material', 3))
+mods.jei.ingredient.hide(item('appliedenergistics2:material', 3))
+
+// Fluix Dust
+mods.minecraft.ore_dict.remove('dustFluix', item('appliedenergistics2:material', 8))
+mods.jei.ingredient.hide(item('appliedenergistics2:material', 8))
+
+// Ender Dust
+mods.minecraft.ore_dict.remove('dustEnder', item('appliedenergistics2:material', 46))
+mods.minecraft.ore_dict.remove('dustEnderPearl', item('appliedenergistics2:material', 46))
+mods.jei.ingredient.hide(item('appliedenergistics2:material', 46))
+
+// Iron Dust
+mods.minecraft.ore_dict.remove('dustIron', item('appliedenergistics2:material', 49))
+mods.jei.ingredient.hide(item('appliedenergistics2:material', 49))
+
+// Gold Dust
+mods.minecraft.ore_dict.remove('dustGold', item('appliedenergistics2:material', 51))
+mods.jei.ingredient.hide(item('appliedenergistics2:material', 51))
+
+// Wooden Gear
+mods.jei.ingredient.hide(item('appliedenergistics2:material', 40))
+mods.minecraft.ore_dict.remove('gearWood', item('appliedenergistics2:material', 40))
+
+// Network Tool
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:network_tool'))
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('appliedenergistics2:network_tool'))
+ .input(ore('wrench'), item('appliedenergistics2:material', 23), item('minecraft:chest'), ore('itemIlluminatedPanel'))
+ .register()
+
+// View Cell
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:view_cell'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:view_cell'))
+ .shape([
+ [mi('plateGlass'), mi('plateRedAlloy'), mi('plateGlass')],
+ [mi('plateRedAlloy'), ore('crystalCertusQuartz'), mi('plateRedAlloy')],
+ [mi('plateAluminium'), mi('plateAluminium'), mi('plateAluminium')]
+ ])
+ .register()
+
+// Blank Pattern
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:material', 52))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:material', 52))
+ .shape([
+ [item('appliedenergistics2:quartz_glass'), mi('plateGlowstone'), item('appliedenergistics2:quartz_glass')],
+ [mi('plateGlowstone'), ore('crystalCertusQuartz'), mi('plateGlowstone')],
+ [mi('plateAluminium'), mi('plateAluminium'), mi('plateAluminium')]
+ ])
+ .register()
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:material', 52) * 2)
+ .shape([
+ [item('appliedenergistics2:quartz_glass'), mi('plateGlowstone'), item('appliedenergistics2:quartz_glass')],
+ [mi('plateGlowstone'), ore('crystalPureCertusQuartz'), mi('plateGlowstone')],
+ [mi('plateAluminium'), mi('plateAluminium'), mi('plateAluminium')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('appliedenergistics2:quartz_glass'),
+ mi('plateGlowstone', 2),
+ mi('plateAluminium', 2),
+ ore('craftCertusQuartz')
+ )
+ .outputs(item('appliedenergistics2:material', 52) * 4)
+ .duration(20)
+ .EUt(1920)
+ .buildAndRegister()
+
+// Creative Storage Cell
+mods.jei.ingredient.hide(item('appliedenergistics2:creative_storage_cell'))
+
+// 1k Storage Component
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:material', 35))
+assembler.recipeBuilder()
+ .inputs(
+ ore('circuitUlv') * 4,
+ mi('plateWroughtIron', 4),
+ mi('dustCertusQuartz', 4),
+ item('appliedenergistics2:material', 22)
+ )
+ .fluidInputs(fluid('steel') * 144)
+ .outputs(item('appliedenergistics2:material', 35))
+ .duration(200)
+ .EUt(480)
+ .buildAndRegister()
+
+// 4k Storage Component
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:material', 36))
+assembler.recipeBuilder()
+ .inputs(
+ ore('circuitEv') * 4,
+ mi('plateTitanium', 4),
+ mi('dustCertusQuartz', 4),
+ item('appliedenergistics2:material', 22)
+ )
+ .fluidInputs(fluid('steel') * 144)
+ .outputs(item('appliedenergistics2:material', 36))
+ .duration(200)
+ .EUt(1920)
+ .buildAndRegister()
+assembler.recipeBuilder()
+ .inputs(
+ item('appliedenergistics2:material', 22),
+ ore('circuitEv') * 4,
+ item('appliedenergistics2:material', 35) * 4
+ )
+ .fluidInputs(fluid('steel') * 144)
+ .outputs(item('appliedenergistics2:material', 36))
+ .duration(400)
+ .EUt(1920)
+ .buildAndRegister()
+
+// 16k Storage Component
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:material', 37))
+assembler.recipeBuilder()
+ .inputs(
+ ore('circuitIv') * 4,
+ mi('plateTungstenSteel', 4),
+ mi('dustCertusQuartz', 8),
+ item('appliedenergistics2:material', 24)
+ )
+ .fluidInputs(fluid('steel') * 144)
+ .outputs(item('appliedenergistics2:material', 37))
+ .duration(200)
+ .EUt(7680)
+ .buildAndRegister()
+assembler.recipeBuilder()
+ .inputs(
+ item('appliedenergistics2:material', 24),
+ ore('circuitIv') * 4,
+ item('appliedenergistics2:material', 36) * 4
+ )
+ .fluidInputs(fluid('steel') * 144)
+ .outputs(item('appliedenergistics2:material', 37))
+ .duration(400)
+ .EUt(7680)
+ .buildAndRegister()
+
+// 64k Storage Component
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:material', 38))
+assembler.recipeBuilder()
+ .inputs(
+ ore('circuitLuv') * 4,
+ mi('plateRhodiumPlatedPalladium', 4),
+ mi('dustCertusQuartz', 8),
+ item('appliedenergistics2:material', 24)
+ )
+ .fluidInputs(fluid('steel') * 144)
+ .outputs(item('appliedenergistics2:material', 38))
+ .duration(200)
+ .EUt(30720)
+ .buildAndRegister()
+assembler.recipeBuilder()
+ .inputs(
+ item('appliedenergistics2:material', 24),
+ ore('circuitLuv') * 4,
+ item('appliedenergistics2:material', 37) * 4
+ )
+ .fluidInputs(fluid('steel') * 144)
+ .outputs(item('appliedenergistics2:material', 38))
+ .duration(400)
+ .EUt(30720)
+ .buildAndRegister()
+
+// 1k Fluid Component
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:material', 54))
+assembler.recipeBuilder()
+ .inputs(
+ ore('circuitUlv') * 4,
+ mi('plateWroughtIron', 4),
+ mi('dustNetherQuartz', 4),
+ item('appliedenergistics2:material', 22)
+ )
+ .fluidInputs(fluid('stainless_steel') * 144)
+ .outputs(item('appliedenergistics2:material', 54))
+ .duration(200)
+ .EUt(480)
+ .buildAndRegister()
+
+// 4k Fluid Component
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:material', 55))
+assembler.recipeBuilder()
+ .inputs(
+ ore('circuitEv') * 4,
+ mi('plateTitanium', 4),
+ mi('dustNetherQuartz', 4),
+ item('appliedenergistics2:material', 22)
+ )
+ .fluidInputs(fluid('stainless_steel') * 144)
+ .outputs(item('appliedenergistics2:material', 55))
+ .duration(200)
+ .EUt(1920)
+ .buildAndRegister()
+assembler.recipeBuilder()
+ .inputs(
+ item('appliedenergistics2:material', 22),
+ ore('circuitEv') * 4,
+ item('appliedenergistics2:material', 54) * 4
+ )
+ .fluidInputs(fluid('stainless_steel') * 144)
+ .outputs(item('appliedenergistics2:material', 55))
+ .duration(400)
+ .EUt(1920)
+ .buildAndRegister()
+
+// 16k Fluid Component
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:material', 56))
+assembler.recipeBuilder()
+ .inputs(
+ ore('circuitIv') * 4,
+ mi('plateTungstenSteel', 4),
+ mi('dustNetherQuartz', 8),
+ item('appliedenergistics2:material', 24)
+ )
+ .fluidInputs(fluid('stainless_steel') * 144)
+ .outputs(item('appliedenergistics2:material', 56))
+ .duration(200)
+ .EUt(7680)
+ .buildAndRegister()
+assembler.recipeBuilder()
+ .inputs(
+ item('appliedenergistics2:material', 24),
+ ore('circuitIv') * 4,
+ item('appliedenergistics2:material', 55) * 4
+ )
+ .fluidInputs(fluid('stainless_steel') * 144)
+ .outputs(item('appliedenergistics2:material', 56))
+ .duration(400)
+ .EUt(7680)
+ .buildAndRegister()
+
+// 64k Fluid Component
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:material', 57))
+assembler.recipeBuilder()
+ .inputs(
+ ore('circuitLuv') * 4,
+ mi('plateRhodiumPlatedPalladium', 4),
+ mi('dustNetherQuartz', 8),
+ item('appliedenergistics2:material', 24)
+ )
+ .fluidInputs(fluid('stainless_steel') * 144)
+ .outputs(item('appliedenergistics2:material', 57))
+ .duration(200)
+ .EUt(30720)
+ .buildAndRegister()
+assembler.recipeBuilder()
+ .inputs(
+ item('appliedenergistics2:material', 24),
+ ore('circuitLuv') * 4,
+ item('appliedenergistics2:material', 56) * 4
+ )
+ .fluidInputs(fluid('stainless_steel') * 144)
+ .outputs(item('appliedenergistics2:material', 57))
+ .duration(400)
+ .EUt(30720)
+ .buildAndRegister()
+
+// 2^3 Spatial Component
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:material', 32))
+assembler.recipeBuilder()
+ .inputs(
+ ore('circuitEv') * 4,
+ mi('plateTitanium', 4),
+ mi('dustCertusQuartz', 32),
+ item('appliedenergistics2:material', 23)
+ )
+ .fluidInputs(fluid('hsla_steel') * 144)
+ .outputs(item('appliedenergistics2:material', 32))
+ .duration(200)
+ .EUt(1920)
+ .buildAndRegister()
+
+// 16^3 Spatial Component
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:material', 33))
+assembler.recipeBuilder()
+ .inputs(
+ ore('circuitIv') * 4,
+ mi('plateTungstenSteel', 4),
+ mi('dustCertusQuartz', 32),
+ item('appliedenergistics2:material', 23)
+ )
+ .fluidInputs(fluid('tungsten_steel') * 144)
+ .outputs(item('appliedenergistics2:material', 33))
+ .duration(200)
+ .EUt(7680)
+ .buildAndRegister()
+assembler.recipeBuilder()
+ .inputs(
+ item('appliedenergistics2:material', 23),
+ ore('circuitIv') * 4,
+ item('appliedenergistics2:material', 32) * 4
+ )
+ .fluidInputs(fluid('tungsten_steel') * 144)
+ .outputs(item('appliedenergistics2:material', 33))
+ .duration(400)
+ .EUt(7680)
+ .buildAndRegister()
+
+// 128^3 Spatial Component
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:material', 34))
+assembler.recipeBuilder()
+ .inputs(
+ ore('circuitLuv') * 4,
+ mi('plateRhodiumPlatedPalladium', 4),
+ mi('dustCertusQuartz', 32),
+ item('appliedenergistics2:material', 23)
+ )
+ .fluidInputs(fluid('tungsten_steel') * 144)
+ .outputs(item('appliedenergistics2:material', 34))
+ .duration(200)
+ .EUt(30720)
+ .buildAndRegister()
+assembler.recipeBuilder()
+ .inputs(
+ item('appliedenergistics2:material', 23),
+ ore('circuitLuv') * 4,
+ item('appliedenergistics2:material', 33) * 4
+ )
+ .fluidInputs(fluid('tungsten_steel') * 144)
+ .outputs(item('appliedenergistics2:material', 34))
+ .duration(400)
+ .EUt(30720)
+ .buildAndRegister()
+
+// Entropy Manipulator
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:entropy_manipulator'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:entropy_manipulator'))
+ .shape([
+ [null, item('appliedenergistics2:material', 22), ore('crystalFluix')],
+ [null, item('appliedenergistics2:energy_cell'), item('appliedenergistics2:material', 24)],
+ [mi('stickSteel'), null, null]
+ ])
+ .register()
+
+// Charged Staff
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:charged_staff'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:charged_staff'))
+ .shape([
+ [null, item('appliedenergistics2:material', 1), item('appliedenergistics2:material', 1)],
+ [null, item('appliedenergistics2:energy_cell'), item('appliedenergistics2:material', 1)],
+ [mi('stickSteel'), null, null]
+ ])
+ .register()
+
+// Matter Cannon
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:matter_cannon'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:matter_cannon'))
+ .shape([
+ [mi('plateSteel'), mi('plateSteel'), item('appliedenergistics2:material', 43)],
+ [item('appliedenergistics2:material', 36), item('appliedenergistics2:dense_energy_cell'), null],
+ [mi('plateSteel'), null, null]
+ ])
+ .register()
+
+// Color Applicator
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:color_applicator'))
+mods.jei.ingredient.hide(item('appliedenergistics2:color_applicator'))
+
+// Wireless Terminal
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:wireless_terminal'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:wireless_terminal'))
+ .shape([
+ [item('appliedenergistics2:material', 41), item('appliedenergistics2:part', 380), item('appliedenergistics2:material', 41)],
+ [item('appliedenergistics2:material', 24), item('gtexpert:meta_item_1', 1), item('appliedenergistics2:material', 24)],
+ [mi('plateNetherQuartz'), item('appliedenergistics2:dense_energy_cell'), mi('plateNetherQuartz')]
+ ])
+ .register()
+
+// Wireless Crafting Terminal
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:wireless_crafting_terminal'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:wireless_crafting_terminal'))
+ .shape([
+ [item('appliedenergistics2:material', 41), item('appliedenergistics2:part', 360), item('appliedenergistics2:material', 41)],
+ [item('appliedenergistics2:material', 24), item('gtexpert:meta_item_1', 1), item('appliedenergistics2:material', 24)],
+ [mi('plateNetherQuartz'), item('appliedenergistics2:dense_energy_cell'), mi('plateNetherQuartz')]
+ ])
+ .register()
+
+// Wireless Fluid Terminal
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:wireless_fluid_terminal'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:wireless_fluid_terminal'))
+ .shape([
+ [item('appliedenergistics2:material', 41), item('appliedenergistics2:part', 520), item('appliedenergistics2:material', 41)],
+ [item('appliedenergistics2:material', 24), item('gtexpert:meta_item_1', 1), item('appliedenergistics2:material', 24)],
+ [mi('plateNetherQuartz'), item('appliedenergistics2:dense_energy_cell'), mi('plateNetherQuartz')]
+ ])
+ .register()
+
+// Wireless Pattern Terminal
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:wireless_pattern_terminal'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:wireless_pattern_terminal'))
+ .shape([
+ [item('appliedenergistics2:material', 41), item('appliedenergistics2:part', 340), item('appliedenergistics2:material', 41)],
+ [item('appliedenergistics2:material', 24), item('gtexpert:meta_item_1', 1), item('appliedenergistics2:material', 24)],
+ [mi('plateNetherQuartz'), item('appliedenergistics2:dense_energy_cell'), mi('plateNetherQuartz')]
+ ])
+ .register()
+
+// Wireless Interface Terminal
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:wireless_interface_terminal'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:wireless_interface_terminal'))
+ .shape([
+ [item('appliedenergistics2:material', 41), item('appliedenergistics2:part', 480), item('appliedenergistics2:material', 41)],
+ [item('appliedenergistics2:material', 24), item('gtexpert:meta_item_1', 1), item('appliedenergistics2:material', 24)],
+ [mi('plateNetherQuartz'), item('appliedenergistics2:dense_energy_cell'), mi('plateNetherQuartz')]
+ ])
+ .register()
+
+// Biometric Card
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:biometric_card'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:biometric_card'))
+ .shape([
+ [item('appliedenergistics2:material', 22), mi('plateIron'), mi('plateIron')],
+ [mi('plateGold'), mi('plateRedAlloy'), mi('plateGold')],
+ [null, null, null]
+ ])
+ .register()
+
+// Memory Card
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:memory_card'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:memory_card'))
+ .shape([
+ [item('appliedenergistics2:material', 23), mi('plateIron'), mi('plateIron')],
+ [mi('plateGold'), mi('plateRedAlloy'), mi('plateGold')],
+ [null, null, null]
+ ])
+ .register()
+
+// Basic Card
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:material', 25))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:material', 25))
+ .shape([
+ [mi('plateGold'), mi('plateAluminium'), null],
+ [mi('plateRedAlloy'), item('appliedenergistics2:material', 23), mi('plateAluminium')],
+ [mi('plateGold'), mi('plateAluminium'), null]
+ ])
+ .register()
+
+// Capacity Card
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:material', 27))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:material', 27))
+ .shape([
+ [item('appliedenergistics2:material', 25), item('appliedenergistics2:material', 35), null],
+ [item('appliedenergistics2:material', 35), ore('gemCertusQuartz'), null],
+ [null, null, null]
+ ])
+ .register()
+
+// Crafting Card
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:material', 53))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:material', 53))
+ .shape([
+ [item('appliedenergistics2:material', 25), item('appliedenergistics2:material', 35), null],
+ [item('appliedenergistics2:material', 35), item('minecraft:crafting_table'), null],
+ [null, null, null]
+ ])
+ .register()
+
+// Redstone Card
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:material', 26))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:material', 26))
+ .shape([
+ [item('appliedenergistics2:material', 25), item('minecraft:redstone_torch'), null],
+ [item('minecraft:redstone_torch'), item('appliedenergistics2:material', 23), null],
+ [null, null, null]
+ ])
+ .register()
+
+// Advanced Card
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:material', 28))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:material', 28))
+ .shape([
+ [mi('platePlatinum'), mi('plateAluminium'), null],
+ [mi('plateRedAlloy'), item('appliedenergistics2:material', 23), mi('plateAluminium')],
+ [mi('platePlatinum'), mi('plateAluminium'), null]
+ ])
+ .register()
+
+// Fuzzy Card
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:material', 29))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:material', 29))
+ .shape([
+ [item('appliedenergistics2:material', 28), item('appliedenergistics2:material', 24), null],
+ [item('appliedenergistics2:material', 22), item('appliedenergistics2:material', 23), null],
+ [null, null, null]
+ ])
+ .register()
+
+// Inverter Card
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:material', 31))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:material', 31))
+ .shape([
+ [item('appliedenergistics2:material', 28), mi('cover.activity.detector'), null],
+ [mi('cover.activity.detector'), item('appliedenergistics2:material', 23), null],
+ [null, null, null]
+ ])
+ .register()
+
+// Pattern Expansion Card
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:material', 58))
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('appliedenergistics2:material', 58))
+ .input(item('appliedenergistics2:material', 28), ore('craftInterfaceDual'), item('appliedenergistics2:material', 23))
+ .register()
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('appliedenergistics2:material', 58))
+ .input(item('appliedenergistics2:material', 28), ore('craftInterfaceItem'), ore('craftInterfaceFluid'), item('appliedenergistics2:material', 23))
+ .register()
+
+// Acceleration Card
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:material', 30))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:material', 30))
+ .shape([
+ [item('appliedenergistics2:material', 28), item('appliedenergistics2:material', 24), null],
+ [item('appliedenergistics2:material', 22), ore('craftFluix'), null],
+ [null, null, null]
+ ])
+ .register()
+
+// Quantum Link Card
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:material', 59))
+ .shape([
+ [item('appliedenergistics2:material', 42), mi('cover.digital.wireless'), item('appliedenergistics2:material', 42)],
+ [item('appliedenergistics2:material', 47), item('appliedenergistics2:material', 28), item('appliedenergistics2:material', 47)],
+ [item('appliedenergistics2:material', 42), mi('sensor.ev'), item('appliedenergistics2:material', 42)]
+ ])
+ .register()
+
+// Magnet Card
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:material', 60))
+ .shape([
+ [mi('plateRedstone'), item('appliedenergistics2:part', 300), mi('plateLapis')],
+ [mi('stickNeodymiumMagnetic'), item('appliedenergistics2:material', 28), mi('stickNeodymiumMagnetic')],
+ [mi('stickNeodymiumMagnetic'), null, mi('stickNeodymiumMagnetic')]
+ ])
+ .register()
+
+// Wireless Receiver
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:material', 41))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:material', 41))
+ .shape([
+ [ore('craftGlassCable'), item('appliedenergistics2:material', 9), ore('craftGlassCable')],
+ [mi('sensor.ev'), mi('stickTitanium'), mi('sensor.ev')],
+ [mi('plateCertusQuartz'), ore('circuitEv'), mi('plateCertusQuartz')]
+ ])
+ .register()
+
+// Wireless Boosting
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:material', 42))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:material', 42))
+ .shape([
+ [mi('dustFluix'), ore('crystalCertusQuartz'), mi('plateEnderPearl')],
+ [mi('plateTitanium'), mi('plateTitanium'), mi('plateTitanium')],
+ [null, null, null]
+ ])
+ .register()
+
+// Annihilation Plane
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:part', 300))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:part', 300))
+ .shape([
+ [ore('craftingToolScrewdriver'), mi('dustFluix'), ore('craftingToolSoftHammer')],
+ [mi('screwSteel'), mi('dustFluix'), mi('screwSteel')],
+ [mi('plateSteel'), item('appliedenergistics2:material', 44), mi('plateSteel')]
+ ])
+ .register()
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:part', 300))
+ .shape([
+ [ore('craftingToolSoftHammer'), mi('dustFluix'), ore('craftingToolScrewdriver')],
+ [mi('screwSteel'), mi('dustFluix'), mi('screwSteel')],
+ [mi('plateSteel'), item('appliedenergistics2:material', 44), mi('plateSteel')]
+ ])
+ .register()
+
+// Fluid Annihilation Plane
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:part', 302))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:part', 302))
+ .shape([
+ [ore('craftingToolScrewdriver'), mi('dustLapis'), ore('craftingToolSoftHammer')],
+ [mi('screwStainlessSteel'), mi('dustLapis'), mi('screwSteel')],
+ [mi('plateStainlessSteel'), item('appliedenergistics2:material', 44), mi('plateStainlessSteel')]
+ ])
+ .register()
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:part', 302))
+ .shape([
+ [ore('craftingToolSoftHammer'), ore('gemLapis'), ore('craftingToolScrewdriver')],
+ [mi('screwStainlessSteel'), ore('gemLapis'), mi('screwStainlessSteel')],
+ [mi('plateStainlessSteel'), item('appliedenergistics2:material', 44), mi('plateStainlessSteel')]
+ ])
+ .register()
+
+// Formation Plane
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:part', 320))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:part', 320))
+ .shape([
+ [ore('craftingToolScrewdriver'), mi('dustFluix'), ore('craftingToolSoftHammer')],
+ [mi('screwSteel'), mi('dustFluix'), mi('screwSteel')],
+ [mi('plateSteel'), item('appliedenergistics2:material', 43), mi('plateSteel')]
+ ])
+ .register()
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:part', 320))
+ .shape([
+ [ore('craftingToolSoftHammer'), mi('dustFluix'), ore('craftingToolScrewdriver')],
+ [mi('screwSteel'), mi('dustFluix'), mi('screwSteel')],
+ [mi('plateSteel'), item('appliedenergistics2:material', 43), mi('plateSteel')]
+ ])
+ .register()
+
+// Fluid Formation Plane
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:part', 321))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:part', 302))
+ .shape([
+ [ore('craftingToolScrewdriver'), mi('dustLapis'), ore('craftingToolSoftHammer')],
+ [mi('screwStainlessSteel'), mi('dustLapis'), mi('screwSteel')],
+ [mi('plateStainlessSteel'), item('appliedenergistics2:material', 43), mi('plateStainlessSteel')]
+ ])
+ .register()
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:part', 302))
+ .shape([
+ [ore('craftingToolSoftHammer'), ore('gemLapis'), ore('craftingToolScrewdriver')],
+ [mi('screwStainlessSteel'), ore('gemLapis'), mi('screwStainlessSteel')],
+ [mi('plateStainlessSteel'), item('appliedenergistics2:material', 43), mi('plateStainlessSteel')]
+ ])
+ .register()
+
+// Certus Quartz Crystal
+mods.jei.ingredient.hide(item('appliedenergistics2:material'))
+
+
+////////////////////////////////////////
+// Blocks
+////////////////////////////////////////
+// Cable Anchor
+def anchorIngots_x4 = [
+ item('minecraft:iron_ingot'),
+ mi('ingotCopper'),
+ mi('ingotAnnealedCopper'),
+ mi('ingotTin'),
+ mi('ingotLead'),
+ mi('ingotNickel'),
+ mi('ingotSilver'),
+ mi('ingotSteel')
+]
+def anchorIngots_x6 = [
+ mi('ingotBronze'),
+ mi('ingotBrass'),
+ mi('ingotInvar'),
+ mi('ingotDarkSteel')
+]
+def anchorIngots_x8 = [
+ mi('ingotStainlessSteel'),
+ mi('ingotTitanium')
+]
+anchorIngots_x4.each { anchorIngot_x4 ->
+ mods.minecraft.crafting.shapelessBuilder()
+ .output(item('appliedenergistics2:part', 120) * 4)
+ .input(anchorIngot_x4, ore('craftingToolKnife'))
+ .register()
+ cutter.recipeBuilder()
+ .inputs(anchorIngot_x4)
+ .fluidInputs(fluid('lubricant') * 1)
+ .outputs(item('appliedenergistics2:part', 120) * 8)
+ .duration(80)
+ .EUt(480)
+ .buildAndRegister()
+ cutter.recipeBuilder()
+ .inputs(anchorIngot_x4)
+ .fluidInputs(fluid('distilled_water') * 3)
+ .outputs(item('appliedenergistics2:part', 120) * 8)
+ .duration(160)
+ .EUt(480)
+ .buildAndRegister()
+ cutter.recipeBuilder()
+ .inputs(anchorIngot_x4)
+ .fluidInputs(fluid('water') * 4)
+ .outputs(item('appliedenergistics2:part', 120) * 8)
+ .duration(200)
+ .EUt(480)
+ .buildAndRegister()
+}
+anchorIngots_x6.each { anchorIngot_x6 ->
+ mods.minecraft.crafting.shapelessBuilder()
+ .output(item('appliedenergistics2:part', 120) * 6)
+ .input(anchorIngot_x6, ore('craftingToolKnife'))
+ .register()
+ cutter.recipeBuilder()
+ .inputs(anchorIngot_x6)
+ .fluidInputs(fluid('lubricant') * 1)
+ .outputs(item('appliedenergistics2:part', 120) * 12)
+ .duration(80)
+ .EUt(480)
+ .buildAndRegister()
+ cutter.recipeBuilder()
+ .inputs(anchorIngot_x6)
+ .fluidInputs(fluid('distilled_water') * 3)
+ .outputs(item('appliedenergistics2:part', 120) * 12)
+ .duration(160)
+ .EUt(480)
+ .buildAndRegister()
+ cutter.recipeBuilder()
+ .inputs(anchorIngot_x6)
+ .fluidInputs(fluid('water') * 4)
+ .outputs(item('appliedenergistics2:part', 120) * 12)
+ .duration(200)
+ .EUt(480)
+ .buildAndRegister()
+}
+anchorIngots_x8.each { anchorIngot_x8 ->
+ mods.minecraft.crafting.shapelessBuilder()
+ .output(item('appliedenergistics2:part', 120) * 8)
+ .input(anchorIngot_x8, ore('craftingToolKnife'))
+ .register()
+ cutter.recipeBuilder()
+ .inputs(anchorIngot_x8)
+ .fluidInputs(fluid('lubricant') * 1)
+ .outputs(item('appliedenergistics2:part', 120) * 16)
+ .duration(80)
+ .EUt(480)
+ .buildAndRegister()
+ cutter.recipeBuilder()
+ .inputs(anchorIngot_x8)
+ .fluidInputs(fluid('distilled_water') * 3)
+ .outputs(item('appliedenergistics2:part', 120) * 16)
+ .duration(160)
+ .EUt(480)
+ .buildAndRegister()
+ cutter.recipeBuilder()
+ .inputs(anchorIngot_x8)
+ .fluidInputs(fluid('water') * 4)
+ .outputs(item('appliedenergistics2:part', 120) * 16)
+ .duration(200)
+ .EUt(480)
+ .buildAndRegister()
+}
+
+// ME Controller
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:controller'))
+assembler.recipeBuilder()
+ .inputs(
+ item('appliedenergistics2:material', 24) * 2,
+ ore('circuitHv') * 2,
+ mi('plateBlackSteel', 4),
+ item('appliedenergistics2:fluix_block')
+ )
+ .fluidInputs(fluid('plastic') * 144)
+ .outputs(item('appliedenergistics2:controller'))
+ .duration(200)
+ .EUt(480)
+ .buildAndRegister()
+
+// Quartz Glass
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:quartz_glass'))
+alloy_smelter.recipeBuilder()
+ .inputs(
+ ore('blockGlass'),
+ mi('dustCertusQuartz')
+ )
+ .outputs(item('appliedenergistics2:quartz_glass'))
+ .duration(20)
+ .EUt(480)
+ .buildAndRegister()
+alloy_smelter.recipeBuilder()
+ .inputs(
+ ore('blockGlass'),
+ mi('dustQuartzite')
+ )
+ .outputs(item('appliedenergistics2:quartz_glass'))
+ .duration(20)
+ .EUt(480)
+ .buildAndRegister()
+
+// Vibrant Quartz Glass
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:quartz_vibrant_glass'))
+alloy_smelter.recipeBuilder()
+ .inputs(
+ item('appliedenergistics2:quartz_glass'),
+ item('minecraft:glowstone_dust') * 8
+ )
+ .outputs(item('appliedenergistics2:quartz_vibrant_glass'))
+ .duration(20)
+ .EUt(480)
+ .buildAndRegister()
+alloy_smelter.recipeBuilder()
+ .inputs(
+ item('minecraft:glowstone'),
+ mi('dustAluminium', 8)
+ )
+ .outputs(item('appliedenergistics2:quartz_vibrant_glass'))
+ .duration(20)
+ .EUt(480)
+ .buildAndRegister()
+
+// Quartz Fixture
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:quartz_fixture'))
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('appliedenergistics2:quartz_fixture'))
+ .input(ore('gemCertusQuartz'), mi('stickAluminium'))
+ .register()
+
+// Charger
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:charger'))
+mods.jei.ingredient.hide(item('appliedenergistics2:charger'))
+
+// Security Terminal
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:security_station'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:security_station'))
+ .shape([
+ [mi('plateSteel'), ore('chestWood'), mi('plateSteel')],
+ [ore('craftGlassCable'), item('appliedenergistics2:material', 35), ore('craftGlassCable')],
+ [mi('plateSteel'), item('appliedenergistics2:material', 22), mi('plateSteel')]
+ ])
+ .register()
+
+// Quantum Ring
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:quantum_ring'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:quantum_ring'))
+ .shape([
+ [mi('plateTitanium'), item('appliedenergistics2:material', 22), mi('plateTitanium')],
+ [item('gtexpert:meta_item_1', 1), mi('emitter.ev'), ore('craftGlassCable')],
+ [mi('plateTitanium'), item('appliedenergistics2:material', 22), mi('plateTitanium')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('appliedenergistics2:material', 22),
+ ore('craftGlassCable'),
+ item('gtexpert:meta_item_1', 1),
+ mi('emitter.ev'),
+ mi('plateTitanium', 2)
+ )
+ .outputs(item('appliedenergistics2:quantum_ring'))
+ .duration(100)
+ .EUt(1920)
+ .buildAndRegister()
+
+// Quantum Link
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:quantum_link'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:quantum_link'))
+ .shape([
+ [mi('plateGlass'), ore('pearlFluix'), mi('plateGlass')],
+ [ore('pearlFluix'), mi('field.generator.ev'), ore('pearlFluix')],
+ [mi('plateGlass'), ore('pearlFluix'), mi('plateGlass')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('field.generator.ev'),
+ ore('pearlFluix') * 2,
+ mi('plateGlass', 2)
+ )
+ .outputs(item('appliedenergistics2:quantum_link'))
+ .duration(100)
+ .EUt(1920)
+ .buildAndRegister()
+
+// Spatial Pylon
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:spatial_pylon'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:spatial_pylon'))
+ .shape([
+ [mi('plateGlass'), ore('craftGlassCable'), mi('plateGlass')],
+ [mi('dustFluix'), ore('crystalFluix'), mi('dustFluix')],
+ [mi('plateGlass'), ore('craftGlassCable'), mi('plateGlass')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('plateGlass', 2),
+ ore('craftGlassCable') * 2,
+ mi('dustFluix'),
+ ore('crystalFluix')
+ )
+ .outputs(item('appliedenergistics2:spatial_pylon'))
+ .duration(100)
+ .EUt(1920)
+ .buildAndRegister()
+
+// ME IO Port
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:io_port'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:io_port'))
+ .shape([
+ [mi('plateGlass'), mi('plateGlass'), mi('plateGlass')],
+ [ore('craftGlassCable'), item('appliedenergistics2:drive'), ore('craftGlassCable')],
+ [mi('plateSteel'), item('appliedenergistics2:material', 24), mi('plateSteel')]
+ ])
+ .register()
+
+// ME Spatial IO Port
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:spatial_io_port'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:spatial_io_port'))
+ .shape([
+ [mi('plateGlass'), mi('plateGlass'), mi('plateGlass')],
+ [ore('craftGlassCable'), item('appliedenergistics2:drive'), ore('craftGlassCable')],
+ [mi('plateSteel'), item('gtexpert:meta_item_1', 1), mi('plateSteel')]
+ ])
+ .register()
+
+// ME Chest
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:chest'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:chest'))
+ .shape([
+ [mi('plateSteel'), item('appliedenergistics2:part', 380), mi('plateSteel')],
+ [ore('craftGlassCable'), ore('chestWood'), ore('craftGlassCable')],
+ [mi('plateSteel'), item('appliedenergistics2:material', 22), mi('plateSteel')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('appliedenergistics2:part', 380),
+ item('appliedenergistics2:material', 22),
+ ore('chestWood'),
+ ore('craftGlassCable'),
+ mi('plateSteel', 2)
+ )
+ .outputs(item('appliedenergistics2:chest'))
+ .duration(20)
+ .EUt(1920)
+ .buildAndRegister()
+
+// ME Drive
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:drive'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:drive'))
+ .shape([
+ [mi('plateBlackSteel'), item('gtexpert:meta_item_1', 1), mi('plateBlackSteel')],
+ [ore('craftGlassCable'), item('appliedenergistics2:chest'), ore('craftGlassCable')],
+ [mi('plateBlackSteel'), item('appliedenergistics2:material', 24), mi('plateBlackSteel')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('appliedenergistics2:material', 24),
+ item('gtexpert:meta_item_1', 1),
+ item('appliedenergistics2:chest'),
+ ore('craftGlassCable'),
+ mi('plateBlackSteel', 2)
+ )
+ .outputs(item('appliedenergistics2:drive'))
+ .duration(100)
+ .EUt(1920)
+ .buildAndRegister()
+
+// ME Interface
+mods.minecraft.crafting.remove(resource('appliedenergistics2:network/blocks/interfaces_interface'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:interface'))
+ .shape([
+ [mi('plateSteel'), mi('plateGlass'), mi('plateSteel')],
+ [item('gtexpert:meta_item_1', 1), item('gregtech:machine_casing', 3), item('gtexpert:meta_item_1', 1)],
+ [mi('plateSteel'), mi('plateGlass'), mi('plateSteel')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('gregtech:machine_casing', 3),
+ item('gtexpert:meta_item_1', 1),
+ mi('plateGlass'),
+ mi('plateSteel', 2)
+ )
+ .outputs(item('appliedenergistics2:interface'))
+ .duration(20)
+ .EUt(1920)
+ .buildAndRegister()
+
+// ME Fluid Interface
+mods.minecraft.crafting.remove(resource('aeadditions:misc/parttointerface'))
+mods.minecraft.crafting.remove(resource('appliedenergistics2:network/blocks/fluid_interfaces_interface'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:fluid_interface'))
+ .shape([
+ [mi('plateStainlessSteel'), mi('plateGlass'), mi('plateStainlessSteel')],
+ [item('gtexpert:meta_item_1', 1), item('gregtech:machine_casing', 3), item('gtexpert:meta_item_1', 1)],
+ [mi('plateStainlessSteel'), mi('plateGlass'), mi('plateStainlessSteel')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(2)
+ .inputs(
+ item('gregtech:machine_casing', 3),
+ item('gtexpert:meta_item_1', 1),
+ mi('plateGlass'),
+ mi('plateStainlessSteel', 2)
+ )
+ .outputs(item('appliedenergistics2:fluid_interface'))
+ .duration(20)
+ .EUt(1920)
+ .buildAndRegister()
+
+// Cell Workbench
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:cell_workbench'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:cell_workbench'))
+ .shape([
+ [ore('wool'), mi('cover.screen'), ore('wool')],
+ [mi('plateAluminium'), item('appliedenergistics2:material', 23), mi('plateAluminium')],
+ [mi('plateAluminium'), mi('plateAluminium'), mi('plateAluminium')]
+ ])
+ .register()
+
+// Matter Condenser
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:condenser'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:condenser'))
+ .shape([
+ [mi('plateSteel'), mi('electric.piston.hv'), mi('plateSteel')],
+ [mi('electric.piston.hv'), mi('hull.hv'), mi('electric.piston.hv')],
+ [mi('plateSteel'), mi('electric.piston.hv'), mi('plateSteel')]
+ ])
+ .register()
+
+// Energy Acceptor
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:energy_acceptor'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:energy_acceptor'))
+ .shape([
+ [mi('plateSteel'), mi('plateGlass'), mi('plateSteel')],
+ [mi('plateGlass'), ore('crystalFluix'), mi('plateGlass')],
+ [mi('plateSteel'), mi('plateGlass'), mi('plateSteel')]
+ ])
+ .register()
+
+// Vibration Chamber
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:vibration_chamber'))
+assembler.recipeBuilder()
+ .inputs(
+ ore('circuitHv') * 2,
+ ore('cableGtSingleGold') * 2,
+ mi('wireGtDoubleKanthal', 4),
+ mi('plateSteel', 7)
+ )
+ .outputs(item('appliedenergistics2:vibration_chamber'))
+ .duration(200)
+ .EUt(480)
+ .buildAndRegister()
+
+// Energy Cell
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:energy_cell'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:energy_cell'))
+ .shape([
+ [mi('plateFluix'), ore('circuitHv'), mi('plateFluix')],
+ [ore('craftCoveredCable'), ore('batteryHv'), ore('craftCoveredCable')],
+ [mi('plateFluix'), ore('cableGtOctalAluminium'), mi('plateFluix')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('plateFluix', 2),
+ ore('batteryHv'),
+ ore('circuitHv'),
+ ore('craftCoveredCable')
+ )
+ .outputs(item('appliedenergistics2:energy_cell'))
+ .duration(20)
+ .EUt(1920)
+ .buildAndRegister()
+
+// Dense Energy Cell
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:dense_energy_cell'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:dense_energy_cell'))
+ .shape([
+ [item('appliedenergistics2:energy_cell'), ore('circuitEv'), item('appliedenergistics2:energy_cell')],
+ [ore('craftDenseCoveredCable'), item('gtexpert:meta_item_1', 1), ore('craftDenseCoveredCable')],
+ [item('appliedenergistics2:energy_cell'), mi('battery_buffer.ev.16'), item('appliedenergistics2:energy_cell')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('appliedenergistics2:energy_cell') * 2,
+ mi('battery_buffer.ev.16'),
+ item('gtexpert:meta_item_1', 1),
+ ore('circuitEv'),
+ ore('craftDenseCoveredCable')
+ )
+ .outputs(item('appliedenergistics2:dense_energy_cell'))
+ .duration(20)
+ .EUt(7680)
+ .buildAndRegister()
+
+// Crafting Unit
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:crafting_unit'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:crafting_unit'))
+ .shape([
+ [mi('plateSteel'), item('appliedenergistics2:material', 22), mi('plateSteel')],
+ [ore('circuitHv'), item('appliedenergistics2:material', 24), ore('circuitHv')],
+ [mi('plateSteel'), item('appliedenergistics2:material', 23), mi('plateSteel')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('appliedenergistics2:material', 22),
+ item('appliedenergistics2:material', 24),
+ item('appliedenergistics2:material', 23),
+ ore('circuitHv'),
+ mi('plateSteel', 2)
+ )
+ .outputs(item('appliedenergistics2:crafting_unit'))
+ .duration(20)
+ .EUt(1920)
+ .buildAndRegister()
+
+// Molecular Assembler
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:molecular_assembler'))
+assembler.recipeBuilder()
+ .inputs(
+ mi('plateGlass', 2),
+ ore('circuitHv') * 2,
+ mi('conveyor.module.hv', 2),
+ mi('robot.arm.hv', 2),
+ mi('plateSteel', 4)
+ )
+ .fluidInputs(fluid('plastic') * 144)
+ .outputs(item('appliedenergistics2:molecular_assembler'))
+ .duration(200)
+ .EUt(480)
+ .buildAndRegister()
+
+// Light Detecting Fixture
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:light_detector'))
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('appliedenergistics2:light_detector'))
+ .input(ore('gemChargedCertusQuartz'), mi('stickIron'))
+ .register()
+
+// Illuminated Panel
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:part', 180))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:part', 180))
+ .shape([
+ [null, mi('plateGlowstone'), null],
+ [mi('plateSteel'), mi('plateRedAlloy'), mi('cover.screen')],
+ [null, mi('plateGlowstone'), null]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .inputs(
+ mi('plateGlowstone'),
+ mi('plateSteel'),
+ mi('plateRedAlloy'),
+ mi('cover.screen')
+ )
+ .outputs(item('appliedenergistics2:part', 180))
+ .duration(20)
+ .EUt(1920)
+ .buildAndRegister()
+
+// ME Terminal
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:part', 380))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:part', 380))
+ .shape([
+ [mi('stickSteel'), ore('craftingToolScrewdriver'), mi('stickSteel')],
+ [item('appliedenergistics2:part', 180), ore('circuitHv'), mi('plateSteel')],
+ [mi('stickSteel'), mi('screwSteel'), mi('stickSteel')]
+ ])
+ .register()
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:part', 380))
+ .shape([
+ [mi('stickSteel'), mi('screwSteel'), mi('stickSteel')],
+ [item('appliedenergistics2:part', 180), ore('circuitHv'), mi('plateSteel')],
+ [mi('stickSteel'), ore('craftingToolScrewdriver'), mi('stickSteel')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .inputs(
+ item('appliedenergistics2:part', 180),
+ ore('circuitHv'),
+ mi('screwSteel'),
+ mi('plateSteel'),
+ mi('stickSteel', 2)
+ )
+ .outputs(item('appliedenergistics2:part', 380))
+ .duration(20)
+ .EUt(1920)
+ .buildAndRegister()
+
+// ME Fluid Terminal
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:part', 520))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:part', 520))
+ .shape([
+ [mi('stickStainlessSteel'), ore('craftingToolScrewdriver'), mi('stickStainlessSteel')],
+ [item('appliedenergistics2:part', 180), ore('circuitHv'), mi('plateStainlessSteel')],
+ [mi('stickStainlessSteel'), mi('screwStainlessSteel'), mi('stickStainlessSteel')]
+ ])
+ .register()
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:part', 520))
+ .shape([
+ [mi('stickStainlessSteel'), mi('screwStainlessSteel'), mi('stickStainlessSteel')],
+ [item('appliedenergistics2:part', 180), ore('circuitHv'), mi('plateStainlessSteel')],
+ [mi('stickStainlessSteel'), ore('craftingToolScrewdriver'), mi('stickStainlessSteel')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .inputs(
+ item('appliedenergistics2:part', 180),
+ ore('circuitHv'),
+ mi('screwStainlessSteel'),
+ mi('plateStainlessSteel'),
+ mi('stickStainlessSteel', 2)
+ )
+ .outputs(item('appliedenergistics2:part', 520))
+ .duration(20)
+ .EUt(1920)
+ .buildAndRegister()
+
+// ME Crafting Terminal
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:part', 360))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:part', 360))
+ .shape([
+ [ore('craftingToolScrewdriver'), item('appliedenergistics2:part', 380), ore('craftingToolSoftHammer')],
+ [mi('screwSteel'), mi('workbench'), mi('screwSteel')],
+ [mi('plateSteel'), item('appliedenergistics2:material', 22), mi('plateSteel')]
+ ])
+ .register()
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:part', 360))
+ .shape([
+ [ore('craftingToolSoftHammer'), item('appliedenergistics2:part', 380), ore('craftingToolScrewdriver')],
+ [mi('screwSteel'), mi('workbench'), mi('screwSteel')],
+ [mi('plateSteel'), item('appliedenergistics2:material', 22), mi('plateSteel')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .inputs(
+ item('appliedenergistics2:material', 22),
+ item('appliedenergistics2:part', 380),
+ mi('workbench'),
+ mi('screwSteel'),
+ mi('plateSteel')
+ )
+ .outputs(item('appliedenergistics2:part', 360))
+ .duration(20)
+ .EUt(1920)
+ .buildAndRegister()
+
+// ME Interface Terminal
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:part', 480))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:part', 480))
+ .shape([
+ [ore('craftingToolScrewdriver'), item('appliedenergistics2:part', 380), ore('craftingToolSoftHammer')],
+ [mi('screwSteel'), ore('craftInterfaceItem'), mi('screwSteel')],
+ [mi('plateSteel'), item('appliedenergistics2:material', 23), mi('plateSteel')]
+ ])
+ .register()
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:part', 480))
+ .shape([
+ [ore('craftingToolSoftHammer'), item('appliedenergistics2:part', 380), ore('craftingToolScrewdriver')],
+ [mi('screwSteel'), ore('craftInterfaceItem'), mi('screwSteel')],
+ [mi('plateSteel'), item('appliedenergistics2:material', 23), mi('plateSteel')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .inputs(
+ item('appliedenergistics2:material', 23),
+ item('appliedenergistics2:part', 380),
+ ore('craftInterfaceItem'),
+ mi('screwSteel'),
+ mi('plateSteel')
+ )
+ .outputs(item('appliedenergistics2:part', 480))
+ .duration(20)
+ .EUt(1920)
+ .buildAndRegister()
+
+// Configuration Interface Terminal
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:part', 521))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:part', 521))
+ .shape([
+ [ore('craftingToolScrewdriver'), item('appliedenergistics2:part', 380), ore('craftingToolSoftHammer')],
+ [mi('screwSteel'), ore('craftInterfaceItem'), mi('screwSteel')],
+ [mi('plateSteel'), item('gtexpert:meta_item_1', 1), mi('plateSteel')]
+ ])
+ .register()
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:part', 521))
+ .shape([
+ [ore('craftingToolSoftHammer'), item('appliedenergistics2:part', 380), ore('craftingToolScrewdriver')],
+ [mi('screwSteel'), ore('craftInterfaceItem'), mi('screwSteel')],
+ [mi('plateSteel'), item('gtexpert:meta_item_1', 1), mi('plateSteel')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .inputs(
+ item('gtexpert:meta_item_1', 1),
+ item('appliedenergistics2:part', 380),
+ ore('craftInterfaceItem'),
+ mi('screwSteel'),
+ mi('plateSteel')
+ )
+ .outputs(item('appliedenergistics2:part', 521))
+ .duration(20)
+ .EUt(1920)
+ .buildAndRegister()
+
+// Configuration Fluid Interface Terminal
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:part', 522))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:part', 522))
+ .shape([
+ [ore('craftingToolScrewdriver'), item('appliedenergistics2:part', 380), ore('craftingToolSoftHammer')],
+ [mi('screwStainlessSteel'), ore('craftInterfaceFluid'), mi('screwStainlessSteel')],
+ [mi('plateStainlessSteel'), item('gtexpert:meta_item_1', 1), mi('plateStainlessSteel')]
+ ])
+ .register()
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:part', 522))
+ .shape([
+ [ore('craftingToolSoftHammer'), item('appliedenergistics2:part', 380), ore('craftingToolScrewdriver')],
+ [mi('screwStainlessSteel'), ore('craftInterfaceFluid'), mi('screwStainlessSteel')],
+ [mi('plateStainlessSteel'), item('gtexpert:meta_item_1', 1), mi('plateStainlessSteel')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .inputs(
+ item('gtexpert:meta_item_1', 1),
+ item('appliedenergistics2:part', 380),
+ ore('craftInterfaceFluid'),
+ mi('screwStainlessSteel'),
+ mi('plateStainlessSteel')
+ )
+ .outputs(item('appliedenergistics2:part', 522))
+ .duration(20)
+ .EUt(1920)
+ .buildAndRegister()
+
+// ME Pattern Terminal
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:part', 340))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:part', 340))
+ .shape([
+ [ore('craftingToolScrewdriver'), item('appliedenergistics2:part', 380), ore('craftingToolSoftHammer')],
+ [mi('screwSteel'), item('appliedenergistics2:material', 52), mi('screwSteel')],
+ [mi('plateSteel'), item('appliedenergistics2:material', 23), mi('plateSteel')]
+ ])
+ .register()
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:part', 340))
+ .shape([
+ [ore('craftingToolSoftHammer'), item('appliedenergistics2:part', 380), ore('craftingToolScrewdriver')],
+ [mi('screwSteel'), item('appliedenergistics2:material', 52), mi('screwSteel')],
+ [mi('plateSteel'), item('appliedenergistics2:material', 23), mi('plateSteel')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .inputs(
+ item('appliedenergistics2:material', 23),
+ item('appliedenergistics2:part', 380),
+ item('appliedenergistics2:material', 52),
+ mi('screwSteel'),
+ mi('plateSteel')
+ )
+ .outputs(item('appliedenergistics2:part', 340))
+ .duration(20)
+ .EUt(1920)
+ .buildAndRegister()
+
+// ME Extended Processing Pattern Terminal
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:part', 341))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:part', 341))
+ .shape([
+ [ore('craftingToolScrewdriver'), item('appliedenergistics2:part', 340), ore('craftingToolSoftHammer')],
+ [mi('screwSteel'), item('appliedenergistics2:material', 52), mi('screwSteel')],
+ [mi('plateSteel'), item('appliedenergistics2:material', 24), mi('plateSteel')]
+ ])
+ .register()
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:part', 341))
+ .shape([
+ [ore('craftingToolSoftHammer'), item('appliedenergistics2:part', 340), ore('craftingToolScrewdriver')],
+ [mi('screwSteel'), item('appliedenergistics2:material', 52), mi('screwSteel')],
+ [mi('plateSteel'), item('appliedenergistics2:material', 24), mi('plateSteel')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .inputs(
+ item('appliedenergistics2:material', 24),
+ item('appliedenergistics2:part', 340),
+ item('appliedenergistics2:material', 52),
+ mi('screwSteel'),
+ mi('plateSteel')
+ )
+ .outputs(item('appliedenergistics2:part', 341))
+ .duration(20)
+ .EUt(1920)
+ .buildAndRegister()
+
+// P2P Tunnel
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:part', 460))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:part', 460))
+ .shape([
+ [item('appliedenergistics2:material', 24), mi('plateAluminium'), item('appliedenergistics2:material', 24)],
+ [mi('plateAluminium'), item('appliedenergistics2:part', 180), mi('plateAluminium')],
+ [ore('crystalPureFluix'), ore('crystalPureFluix'), ore('crystalPureFluix')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .inputs(
+ item('appliedenergistics2:material', 24),
+ item('appliedenergistics2:part', 180),
+ ore('crystalPureFluix') * 2,
+ mi('plateAluminium', 2)
+ )
+ .outputs(item('appliedenergistics2:part', 460))
+ .duration(20)
+ .EUt(1920)
+ .buildAndRegister()
+
+// ME Wireless Access Point
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:wireless_access_point'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:wireless_access_point'))
+ .shape([
+ [null, item('appliedenergistics2:material', 41), null],
+ [null, item('appliedenergistics2:material', 23), null],
+ [null, ore('craftGlassCable'), null]
+ ])
+ .register()
+
+// ME Level Emitter
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:part', 280))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:part', 280))
+ .shape([
+ [null, mi('plateSteel'), null],
+ [ore('craftGlassCable'), item('minecraft:redstone_torch'), ore('craftGlassCable')],
+ [null, mi('plateSteel'), null]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('minecraft:redstone_torch'),
+ ore('craftGlassCable'),
+ mi('plateSteel')
+ )
+ .outputs(item('appliedenergistics2:part', 280))
+ .duration(20)
+ .EUt(1920)
+ .buildAndRegister()
+
+// ME Fluid Level Emitter
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:part', 281))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:part', 281))
+ .shape([
+ [null, mi('plateStainlessSteel'), null],
+ [ore('craftGlassCable'), item('minecraft:redstone_torch'), ore('craftGlassCable')],
+ [null, mi('plateStainlessSteel'), null]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(2)
+ .inputs(
+ item('minecraft:redstone_torch'),
+ ore('craftGlassCable'),
+ mi('plateStainlessSteel')
+ )
+ .outputs(item('appliedenergistics2:part', 281))
+ .duration(20)
+ .EUt(1920)
+ .buildAndRegister()
+
+// ME Storage Bus
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:part', 220))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:part', 220))
+ .shape([
+ [mi('plateSteel'), ore('craftingToolSoftHammer'), mi('plateSteel')],
+ [mi('conveyor.module.hv'), ore('craftInterfaceItem'), mi('conveyor.module.hv')],
+ [mi('plateSteel'), mi('item_filter'), mi('plateSteel')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('conveyor.module.hv'),
+ mi('item_filter'),
+ ore('craftInterfaceItem'),
+ mi('plateSteel', 2)
+ )
+ .outputs(item('appliedenergistics2:part', 220))
+ .duration(20)
+ .EUt(1920)
+ .buildAndRegister()
+
+// ME Fluid Storage Bus
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:part', 221))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:part', 221))
+ .shape([
+ [mi('plateStainlessSteel'), ore('craftingToolSoftHammer'), mi('plateStainlessSteel')],
+ [mi('electric.pump.hv'), ore('craftInterfaceFluid'), mi('electric.pump.hv')],
+ [mi('plateStainlessSteel'), mi('fluid_filter'), mi('plateStainlessSteel')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('electric.pump.hv'),
+ mi('fluid_filter'),
+ ore('craftInterfaceFluid'),
+ mi('plateStainlessSteel', 2)
+ )
+ .outputs(item('appliedenergistics2:part', 221))
+ .duration(20)
+ .EUt(1920)
+ .buildAndRegister()
+
+// ME OreDict Storage Bus
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:part', 222))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:part', 222))
+ .shape([
+ [mi('plateTitanium'), ore('craftingToolSoftHammer'), mi('plateTitanium')],
+ [mi('conveyor.module.hv'), ore('craftInterfaceItem'), mi('conveyor.module.hv')],
+ [mi('plateTitanium'), mi('ore_dictionary_filter'), mi('plateTitanium')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('conveyor.module.hv'),
+ mi('ore_dictionary_filter'),
+ ore('craftInterfaceItem'),
+ mi('plateTitanium', 2)
+ )
+ .outputs(item('appliedenergistics2:part', 222))
+ .duration(20)
+ .EUt(1920)
+ .buildAndRegister()
+
+// ME Toggle Bus
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:part', 80))
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('appliedenergistics2:part', 80))
+ .input(item('appliedenergistics2:part', 100))
+ .register()
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:part', 80))
+ .shape([
+ [null, mi('plateRedAlloy'), null],
+ [ore('craftGlassCable'), item('minecraft:lever'), ore('craftGlassCable')],
+ [null, mi('plateRedAlloy'), null]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('minecraft:lever'),
+ ore('craftGlassCable'),
+ mi('plateRedAlloy')
+ )
+ .outputs(item('appliedenergistics2:part', 80))
+ .duration(20)
+ .EUt(1920)
+ .buildAndRegister()
+
+// ME Inverted Toggle Bus
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:part', 100))
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('appliedenergistics2:part', 100))
+ .input(item('appliedenergistics2:part', 80))
+ .register()
+
+// ME Import Bus
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:part', 240))
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('appliedenergistics2:part', 240))
+ .input(item('appliedenergistics2:part', 260))
+ .register()
+
+// ME Fluid Import Bus
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:part', 241))
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('appliedenergistics2:part', 241))
+ .input(item('appliedenergistics2:part', 261))
+ .register()
+
+// ME Export Bus
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:part', 260))
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('appliedenergistics2:part', 260))
+ .input(item('appliedenergistics2:part', 240))
+ .register()
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:part', 260))
+ .shape([
+ [ore('craftingToolScrewdriver'), mi('plateTitanium'), ore('craftingToolSoftHammer')],
+ [item('appliedenergistics2:material', 44), mi('item_filter'), item('appliedenergistics2:material', 43)],
+ [mi('screwSteel'), mi('conveyor.module.hv'), mi('screwSteel')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(2)
+ .inputs(
+ item('appliedenergistics2:material', 44),
+ item('appliedenergistics2:material', 43),
+ mi('item_filter'),
+ mi('plateTitanium'),
+ mi('screwSteel', 2),
+ mi('conveyor.module.hv')
+ )
+ .outputs(item('appliedenergistics2:part', 260))
+ .duration(20)
+ .EUt(1920)
+ .buildAndRegister()
+
+// ME Fluid Export Bus
+mods.minecraft.crafting.removeByOutput(item('appliedenergistics2:part', 261))
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('appliedenergistics2:part', 261))
+ .input(item('appliedenergistics2:part', 241))
+ .register()
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('appliedenergistics2:part', 261))
+ .shape([
+ [ore('craftingToolScrewdriver'), mi('plateTitanium'), ore('craftingToolSoftHammer')],
+ [item('appliedenergistics2:material', 44), mi('fluid_filter'), item('appliedenergistics2:material', 43)],
+ [mi('screwStainlessSteel'), mi('electric.pump.hv'), mi('screwStainlessSteel')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(3)
+ .inputs(
+ item('appliedenergistics2:material', 44),
+ item('appliedenergistics2:material', 43),
+ mi('fluid_filter'),
+ mi('plateTitanium'),
+ mi('screwStainlessSteel', 2),
+ mi('electric.pump.hv')
+ )
+ .outputs(item('appliedenergistics2:part', 261))
+ .duration(20)
+ .EUt(1920)
+ .buildAndRegister()
diff --git a/overrides/groovy/postInit/normal/ArchitectureCraft.groovy b/overrides/groovy/postInit/normal/ArchitectureCraft.groovy
new file mode 100644
index 00000000..7119f3d9
--- /dev/null
+++ b/overrides/groovy/postInit/normal/ArchitectureCraft.groovy
@@ -0,0 +1,42 @@
+////////////////////////////////////////
+// Items
+////////////////////////////////////////
+// Circular Saw Blade
+mods.minecraft.crafting.removeByOutput(item('architecturecraft:sawblade'))
+
+// Large Pulley
+mods.minecraft.crafting.removeByOutput(item('architecturecraft:largepulley'))
+
+// Chisel
+mods.minecraft.crafting.removeByOutput(item('architecturecraft:chisel'))
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('architecturecraft:chisel'))
+ .input(item('chisel:chisel_iron'))
+ .register()
+
+// Hammer
+mods.minecraft.crafting.removeByOutput(item('architecturecraft:hammer'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('architecturecraft:hammer'))
+ .shape([
+ [mi('plateDoubleIron'), mi('plateIron'), mi('plateIron')],
+ [ore('craftingToolFile'), item('minecraft:stick'), ore('craftingToolHardHammer')],
+ [null, item('minecraft:stick'), null]
+ ])
+ .register()
+
+
+
+////////////////////////////////////////
+// Blocks
+////////////////////////////////////////
+// Sawbench
+mods.minecraft.crafting.removeByOutput(item('architecturecraft:sawbench'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('architecturecraft:sawbench'))
+ .shape([
+ [mi('plateDoubleIron'), mi('toolHeadBuzzSawIron'), mi('plateDoubleIron')],
+ [ore('fenceWood'), mi('gearWood'), ore('fenceWood')],
+ [ore('fenceWood'), item('minecraft:wooden_pressure_plate'), ore('fenceWood')]
+ ])
+ .register()
diff --git a/overrides/groovy/postInit/normal/BuildingGadgets.groovy b/overrides/groovy/postInit/normal/BuildingGadgets.groovy
new file mode 100644
index 00000000..ec44dd48
--- /dev/null
+++ b/overrides/groovy/postInit/normal/BuildingGadgets.groovy
@@ -0,0 +1,94 @@
+import gregtech.api.recipes.RecipeMap
+
+def assembler = RecipeMap.getByName("assembler")
+
+////////////////////////////////////////
+// Items
+////////////////////////////////////////
+// Building Gadget
+mods.minecraft.crafting.removeByOutput(item('buildinggadgets:buildingtool'))
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('stickRedAlloy', 2),
+ mi('screwRedAlloy', 2),
+ mi('dustIron'),
+ mi('circuit_board.basic'),
+ ore('circuitUlv'),
+ mi('battery.re.lv.sodium')
+ )
+ .outputs(item('buildinggadgets:buildingtool'))
+ .duration(100)
+ .EUt(7)
+ .buildAndRegister()
+
+// Copy-Paste Gadget
+mods.minecraft.crafting.removeByOutput(item('buildinggadgets:copypastetool'))
+assembler.recipeBuilder()
+ .circuitMeta(2)
+ .inputs(
+ mi('stickRedAlloy', 2),
+ mi('screwRedAlloy', 2),
+ mi('dustGold'),
+ mi('circuit_board.basic'),
+ ore('circuitUlv'),
+ mi('battery.re.lv.sodium')
+ )
+ .outputs(item('buildinggadgets:copypastetool'))
+ .duration(100)
+ .EUt(7)
+ .buildAndRegister()
+
+// Exchanging Gadget
+mods.minecraft.crafting.removeByOutput(item('buildinggadgets:exchangertool'))
+assembler.recipeBuilder()
+ .circuitMeta(3)
+ .inputs(
+ mi('stickRedAlloy', 3),
+ mi('screwRedAlloy', 3),
+ mi('dustObsidian'),
+ mi('circuit_board.basic', 2),
+ ore('circuitUlv'),
+ mi('battery.re.lv.sodium')
+ )
+ .outputs(item('buildinggadgets:exchangertool'))
+ .duration(100)
+ .EUt(7)
+ .buildAndRegister()
+
+// Destruction Gadget
+mods.minecraft.crafting.removeByOutput(item('buildinggadgets:destructiontool'))
+assembler.recipeBuilder()
+ .circuitMeta(4)
+ .inputs(
+ mi('stickRedAlloy', 2),
+ mi('screwRedAlloy', 2),
+ item('enderio:item_material', 20),
+ mi('circuit_board.basic'),
+ ore('circuitUlv'),
+ mi('battery.re.lv.sodium')
+ )
+ .outputs(item('buildinggadgets:destructiontool'))
+ .duration(100)
+ .EUt(7)
+ .buildAndRegister()
+
+
+
+////////////////////////////////////////
+// Blocks
+////////////////////////////////////////
+// Template Manager
+mods.minecraft.crafting.removeByOutput(item('buildinggadgets:templatemanager'))
+assembler.recipeBuilder()
+ .circuitMeta(4)
+ .inputs(
+ mi('plateSteel', 3),
+ mi('plateGold', 2),
+ ore('circuitLv'),
+ item('gregtech:machine_casing', 1)
+ )
+ .outputs(item('buildinggadgets:templatemanager'))
+ .duration(100)
+ .EUt(7)
+ .buildAndRegister()
diff --git a/overrides/groovy/postInit/normal/CapabilityAdapter.groovy b/overrides/groovy/postInit/normal/CapabilityAdapter.groovy
new file mode 100644
index 00000000..6f4cc8eb
--- /dev/null
+++ b/overrides/groovy/postInit/normal/CapabilityAdapter.groovy
@@ -0,0 +1,13 @@
+////////////////////////////////////////
+// Blocks
+////////////////////////////////////////
+// Capability Adapter
+mods.minecraft.crafting.removeByOutput(item('rf-capability-adapter:aecapabilityadapter'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('rf-capability-adapter:aecapabilityadapter'))
+ .shape([
+ [mi('plateTitanium'), ore('crystalPureFluix'), mi('plateTitanium')],
+ [ore('crystalPureFluix'), ore('craftInterfaceDual'), ore('crystalPureFluix')],
+ [mi('plateTitanium'), ore('crystalPureFluix'), mi('plateTitanium')]
+ ])
+ .register()
diff --git a/overrides/groovy/postInit/normal/CatWalks.groovy b/overrides/groovy/postInit/normal/CatWalks.groovy
new file mode 100644
index 00000000..3588459b
--- /dev/null
+++ b/overrides/groovy/postInit/normal/CatWalks.groovy
@@ -0,0 +1,150 @@
+import gregtech.api.recipes.RecipeMap
+
+def assembler = RecipeMap.getByName("assembler")
+
+////////////////////////////////////////
+// Items
+////////////////////////////////////////
+// Blowtorch
+mods.minecraft.crafting.removeByOutput(item('catwalks:blowtorch'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('catwalks:blowtorch'))
+ .shape([
+ [null, mi('screwSteel'), item('minecraft:flint_and_steel')],
+ [ore('craftingToolScrewdriver'), mi('stickLongSteel'), mi('screwSteel')],
+ [mi('stickLongSteel'), ore('craftingToolWrench'), null]
+ ])
+ .register()
+
+
+
+////////////////////////////////////////
+// Blocks
+////////////////////////////////////////
+// Classic Catwalk
+assembler.recipeBuilder()
+ .circuitMeta(6)
+ .inputs(
+ mi('frameSteel'),
+ mi('screwSteel', 2),
+ mi('stickLongSteel', 4)
+ )
+ .outputs(item('catwalks:catwalk').withNbt(['material': 'classic']) * 4)
+ .duration(20)
+ .EUt(7)
+ .buildAndRegister()
+assembler.recipeBuilder()
+ .circuitMeta(7)
+ .inputs(
+ ore('frameGtDarkSteel'),
+ mi('screwDarkSteel', 2),
+ mi('stickLongDarkSteel', 4)
+ )
+ .outputs(item('catwalks:catwalk').withNbt(['material': 'classic']) * 16)
+ .duration(20)
+ .EUt(7)
+ .buildAndRegister()
+assembler.recipeBuilder()
+ .circuitMeta(6)
+ .inputs(item('catwalks:catwalk').withNbt(['material': 'classic']))
+ .notConsumable(item('minecraft:record_cat'))
+ .outputs(item('catwalks:catwalk').withNbt(['material': 'nyanwalk']))
+ .duration(20)
+ .EUt(7)
+ .buildAndRegister()
+
+// Glass Catwalk
+assembler.recipeBuilder()
+ .circuitMeta(6)
+ .inputs(
+ mi('frameSteel'),
+ mi('plateGlass', 3),
+ mi('stickLongSteel', 4)
+ )
+ .outputs(item('catwalks:catwalk').withNbt(['material': 'glass']) * 4)
+ .duration(20)
+ .EUt(7)
+ .buildAndRegister()
+assembler.recipeBuilder()
+ .circuitMeta(7)
+ .inputs(
+ ore('frameGtDarkSteel'),
+ mi('plateGlass', 3),
+ mi('stickLongDarkSteel', 4)
+ )
+ .outputs(item('catwalks:catwalk').withNbt(['material': 'glass']) * 16)
+ .duration(20)
+ .EUt(7)
+ .buildAndRegister()
+
+// Wood Catwalk
+assembler.recipeBuilder()
+ .circuitMeta(7)
+ .inputs(
+ mi('frameTreatedWood'),
+ mi('plateTreatedWood', 3),
+ mi('stickLongSteel', 4)
+ )
+ .outputs(item('catwalks:catwalk').withNbt(['material': 'treated_wood']) * 4)
+ .duration(20)
+ .EUt(7)
+ .buildAndRegister()
+assembler.recipeBuilder()
+ .circuitMeta(8)
+ .inputs(
+ mi('frameTreatedWood'),
+ mi('plateTreatedWood', 3),
+ mi('stickLongDarkSteel', 4)
+ )
+ .outputs(item('catwalks:catwalk').withNbt(['material': 'treated_wood']) * 16)
+ .duration(20)
+ .EUt(7)
+ .buildAndRegister()
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('catwalks:catwalk').withNbt(['material': 'treated_wood']))
+ .input(item('catwalks:catwalk').withNbt(['material': 'custom_0']))
+ .register()
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('catwalks:catwalk').withNbt(['material': 'custom_0']))
+ .input(item('catwalks:catwalk').withNbt(['material': 'treated_wood']))
+ .register()
+
+// Classic Ladder
+mods.minecraft.crafting.removeByOutput(item('catwalks:ladder'))
+assembler.recipeBuilder()
+ .circuitMeta(6)
+ .inputs(
+ item('minecraft:ladder'),
+ mi('stickLongSteel', 4)
+ )
+ .outputs(item('catwalks:ladder') * 6)
+ .duration(20)
+ .EUt(7)
+ .buildAndRegister()
+assembler.recipeBuilder()
+ .circuitMeta(7)
+ .inputs(
+ item('enderio:block_dark_steel_ladder'),
+ mi('stickLongDarkSteel', 4)
+ )
+ .outputs(item('catwalks:ladder') * 32)
+ .duration(20)
+ .EUt(7)
+ .buildAndRegister()
+
+// Classic Support Cables
+mods.minecraft.crafting.removeByOutput(item('catwalks:cable'))
+assembler.recipeBuilder()
+ .circuitMeta(8)
+ .inputs(mi('stickLongSteel', 3))
+ .outputs(item('catwalks:cable') * 6)
+ .duration(20)
+ .EUt(7)
+ .buildAndRegister()
+assembler.recipeBuilder()
+ .circuitMeta(9)
+ .inputs(mi('stickLongDarkSteel', 3))
+ .outputs(item('catwalks:cable') * 32)
+ .duration(20)
+ .EUt(7)
+ .buildAndRegister()
diff --git a/overrides/groovy/postInit/normal/ChickenChunks.groovy b/overrides/groovy/postInit/normal/ChickenChunks.groovy
new file mode 100644
index 00000000..1a05a7b1
--- /dev/null
+++ b/overrides/groovy/postInit/normal/ChickenChunks.groovy
@@ -0,0 +1,36 @@
+import gregtech.api.recipes.RecipeMap
+
+def assembler = RecipeMap.getByName("assembler")
+def packer = RecipeMap.getByName("packer")
+
+////////////////////////////////////////
+// Blocks
+////////////////////////////////////////
+// Chunk Loader
+mods.minecraft.crafting.removeByOutput(item('chickenchunks:chunk_loader'))
+packer.recipeBuilder()
+ .inputs(item('chickenchunks:chunk_loader', 1) * 9)
+ .outputs(item('chickenchunks:chunk_loader'))
+ .duration(20)
+ .EUt(30)
+ .buildAndRegister()
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('frameSteel'),
+ mi('stickLongGold', 2),
+ mi('plateObsidian', 3)
+ )
+ .outputs(item('chickenchunks:chunk_loader'))
+ .duration(100)
+ .EUt(30)
+ .buildAndRegister()
+
+// Spot Loader
+mods.minecraft.crafting.removeByOutput(item('chickenchunks:chunk_loader', 1))
+packer.recipeBuilder()
+ .inputs(item('chickenchunks:chunk_loader'))
+ .outputs(item('chickenchunks:chunk_loader', 1) * 9)
+ .duration(20)
+ .EUt(30)
+ .buildAndRegister()
diff --git a/overrides/groovy/postInit/normal/CompactMachines.groovy b/overrides/groovy/postInit/normal/CompactMachines.groovy
new file mode 100644
index 00000000..bbae40c1
--- /dev/null
+++ b/overrides/groovy/postInit/normal/CompactMachines.groovy
@@ -0,0 +1,182 @@
+import gregtech.api.recipes.RecipeMap
+
+def assembler = RecipeMap.getByName("assembler")
+def packer = RecipeMap.getByName("packer")
+
+mods.jei.category.hideCategory('compactmachines3.MultiblockMiniaturization')
+mods.minecraft.crafting.removeByOutput(item('compactmachines3:fieldprojector'))
+mods.jei.ingredient.hide(item('compactmachines3:fieldprojector'))
+
+
+
+////////////////////////////////////////
+// Items
+////////////////////////////////////////
+// Personal Shrinking Device
+mods.minecraft.crafting.remove(resource('compactmachines3:psd'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('compactmachines3:psd'))
+ .shape([
+ [null, mi('cover.screen'), null],
+ [mi('emitter.lv'), item('minecraft:book'), mi('emitter.lv')],
+ [null, ore('circuitLv'), null]
+ ])
+ .register()
+
+// Tunnel
+assembler.recipeBuilder()
+ .inputs(
+ mi('cover.energy.detector'),
+ mi('cover.item.detector'),
+ mi('cover.fluid.detector')
+ )
+ .outputs(item('compactmachines3:tunneltool') * 4)
+ .duration(100)
+ .EUt(30)
+ .buildAndRegister()
+
+// Redstone Tunnel
+assembler.recipeBuilder()
+ .inputs(
+ mi('cover.activity.detector'),
+ mi('component.resistor')
+ )
+ .outputs(item('compactmachines3:redstonetunneltool') * 4)
+ .duration(100)
+ .EUt(30)
+ .buildAndRegister()
+
+
+
+////////////////////////////////////////
+// Blocks
+////////////////////////////////////////
+// Compact Machine Wall
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('compactmachines3:wallbreakable') * 8)
+ .shape([
+ [mi('frameSteel'), mi('frameSteel'), mi('frameSteel')],
+ [mi('frameSteel'), mi('sensor.lv'), mi('frameSteel')],
+ [mi('frameSteel'), mi('frameSteel'), mi('frameSteel')]
+ ])
+ .register()
+
+// Tiny Compact Machine
+packer.recipeBuilder()
+ .inputs(
+ item('compactmachines3:wallbreakable') * 8,
+ item('gtexpert:meta_item_1', 17)
+ )
+ .outputs(item('compactmachines3:machine', 0))
+ .duration(200)
+ .EUt(7)
+ .buildAndRegister()
+packer.recipeBuilder()
+ .inputs(item('compactmachines3:machine', 0))
+ .outputs(
+ item('compactmachines3:wallbreakable') * 8,
+ item('gtexpert:meta_item_1', 17)
+ )
+ .duration(10)
+ .EUt(7)
+ .buildAndRegister()
+
+// Small Compact Machine
+packer.recipeBuilder()
+ .inputs(
+ item('compactmachines3:wallbreakable') * 16,
+ mi('field.generator.lv')
+ )
+ .outputs(item('compactmachines3:machine', 1))
+ .duration(200)
+ .EUt(30)
+ .buildAndRegister()
+packer.recipeBuilder()
+ .inputs(item('compactmachines3:machine', 1))
+ .outputs(
+ item('compactmachines3:wallbreakable') * 16,
+ mi('field.generator.lv')
+ )
+ .duration(10)
+ .EUt(7)
+ .buildAndRegister()
+
+// Normal Compact Machine
+packer.recipeBuilder()
+ .inputs(
+ item('compactmachines3:wallbreakable') * 24,
+ mi('field.generator.mv')
+ )
+ .outputs(item('compactmachines3:machine', 2))
+ .duration(200)
+ .EUt(120)
+ .buildAndRegister()
+packer.recipeBuilder()
+ .inputs(item('compactmachines3:machine', 2))
+ .outputs(
+ item('compactmachines3:wallbreakable') * 24,
+ mi('field.generator.mv')
+ )
+ .duration(10)
+ .EUt(7)
+ .buildAndRegister()
+
+// Large Compact Machine
+packer.recipeBuilder()
+ .inputs(
+ item('compactmachines3:wallbreakable') * 32,
+ mi('field.generator.hv')
+ )
+ .outputs(item('compactmachines3:machine', 3))
+ .duration(200)
+ .EUt(480)
+ .buildAndRegister()
+packer.recipeBuilder()
+ .inputs(item('compactmachines3:machine', 3))
+ .outputs(
+ item('compactmachines3:wallbreakable') * 32,
+ mi('field.generator.hv')
+ )
+ .duration(10)
+ .EUt(7)
+ .buildAndRegister()
+
+// Giant Compact Machine
+packer.recipeBuilder()
+ .inputs(
+ item('compactmachines3:wallbreakable') * 40,
+ mi('field.generator.ev')
+ )
+ .outputs(item('compactmachines3:machine', 4))
+ .duration(200)
+ .EUt(1920)
+ .buildAndRegister()
+packer.recipeBuilder()
+ .inputs(item('compactmachines3:machine', 4))
+ .outputs(
+ item('compactmachines3:wallbreakable') * 40,
+ mi('field.generator.ev')
+ )
+ .duration(10)
+ .EUt(7)
+ .buildAndRegister()
+
+// Maximum Compact Machine
+packer.recipeBuilder()
+ .inputs(
+ item('compactmachines3:wallbreakable') * 48,
+ mi('field.generator.iv')
+ )
+ .outputs(item('compactmachines3:machine', 5))
+ .duration(200)
+ .EUt(7680)
+ .buildAndRegister()
+packer.recipeBuilder()
+ .inputs(item('compactmachines3:machine', 5))
+ .outputs(
+ item('compactmachines3:wallbreakable') * 48,
+ mi('field.generator.iv')
+ )
+ .duration(10)
+ .EUt(7)
+ .buildAndRegister()
diff --git a/overrides/groovy/postInit/normal/DankNull.groovy b/overrides/groovy/postInit/normal/DankNull.groovy
new file mode 100644
index 00000000..de0eb9a6
--- /dev/null
+++ b/overrides/groovy/postInit/normal/DankNull.groovy
@@ -0,0 +1,133 @@
+import gregtech.api.recipes.RecipeMap
+
+def assembler = RecipeMap.getByName("assembler")
+
+////////////////////////////////////////
+// Items
+////////////////////////////////////////
+// Panels
+mods.minecraft.crafting.removeByOutput(item('danknull:dank_null_panel_0'))
+mods.jei.ingredient.hide(item('danknull:dank_null_panel_0'))
+mods.minecraft.crafting.removeByOutput(item('danknull:dank_null_panel_1'))
+mods.jei.ingredient.hide(item('danknull:dank_null_panel_1'))
+mods.minecraft.crafting.removeByOutput(item('danknull:dank_null_panel_2'))
+mods.jei.ingredient.hide(item('danknull:dank_null_panel_2'))
+mods.minecraft.crafting.removeByOutput(item('danknull:dank_null_panel_3'))
+mods.jei.ingredient.hide(item('danknull:dank_null_panel_3'))
+mods.minecraft.crafting.removeByOutput(item('danknull:dank_null_panel_4'))
+mods.jei.ingredient.hide(item('danknull:dank_null_panel_4'))
+mods.minecraft.crafting.removeByOutput(item('danknull:dank_null_panel_5'))
+mods.jei.ingredient.hide(item('danknull:dank_null_panel_5'))
+
+
+
+////////////////////////////////////////
+// Blocks
+////////////////////////////////////////
+// null Mk1
+mods.minecraft.crafting.removeByOutput(item('danknull:dank_null_0'))
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('danknull:dank_null_0'))
+ .input(item('danknull:dank_null_0'))
+ .register()
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('danknull:dank_null_0'))
+ .shape([
+ [item('minecraft:dye', 1), ore('blockObsidian'), item('minecraft:dye', 1)],
+ [ore('blockObsidian'), null, ore('blockObsidian')],
+ [item('minecraft:dye', 1), ore('blockObsidian'), item('minecraft:dye', 1)]
+ ])
+ .register()
+
+// null mk2
+mods.minecraft.crafting.removeByOutput(item('danknull:dank_null_1'))
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('danknull:dank_null_1'))
+ .input(item('danknull:dank_null_1'))
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('plateLapis', 4),
+ item('danknull:dank_null_0')
+ )
+ .fluidInputs(fluid('glass') * 144)
+ .outputs(item('danknull:dank_null_1'))
+ .duration(200)
+ .EUt(16)
+ .buildAndRegister()
+
+// null mk3
+mods.minecraft.crafting.removeByOutput(item('danknull:dank_null_2'))
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('danknull:dank_null_2'))
+ .input(item('danknull:dank_null_2'))
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('plateTinAlloy', 4),
+ item('danknull:dank_null_1')
+ )
+ .fluidInputs(fluid('glass') * 144)
+ .outputs(item('danknull:dank_null_2'))
+ .duration(200)
+ .EUt(64)
+ .buildAndRegister()
+
+// null mk4
+mods.minecraft.crafting.removeByOutput(item('danknull:dank_null_3'))
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('danknull:dank_null_3'))
+ .input(item('danknull:dank_null_3'))
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('plateRoseGold', 4),
+ item('danknull:dank_null_2')
+ )
+ .fluidInputs(fluid('glass') * 144)
+ .outputs(item('danknull:dank_null_3'))
+ .duration(200)
+ .EUt(256)
+ .buildAndRegister()
+
+// null mk5
+mods.minecraft.crafting.removeByOutput(item('danknull:dank_null_4'))
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('danknull:dank_null_4'))
+ .input(item('danknull:dank_null_4'))
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('plateDiamond', 4),
+ item('danknull:dank_null_3')
+ )
+ .fluidInputs(fluid('glass') * 144)
+ .outputs(item('danknull:dank_null_4'))
+ .duration(200)
+ .EUt(1920)
+ .buildAndRegister()
+
+// null mk6
+mods.minecraft.crafting.removeByOutput(item('danknull:dank_null_5'))
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('danknull:dank_null_5'))
+ .input(item('danknull:dank_null_5'))
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('plateEmerald', 4),
+ item('danknull:dank_null_4')
+ )
+ .fluidInputs(fluid('glass') * 144)
+ .outputs(item('danknull:dank_null_5'))
+ .duration(200)
+ .EUt(7680)
+ .buildAndRegister()
+
+// Creative
+mods.jei.ingredient.hide(item('danknull:dank_null_6'))
diff --git a/overrides/groovy/postInit/normal/DraconicEvolution.groovy b/overrides/groovy/postInit/normal/DraconicEvolution.groovy
new file mode 100644
index 00000000..c365c3ec
--- /dev/null
+++ b/overrides/groovy/postInit/normal/DraconicEvolution.groovy
@@ -0,0 +1 @@
+mods.jei.category.hideCategory('DraconicEvolution.Fusion')
diff --git a/overrides/groovy/postInit/normal/EIOForestry.groovy b/overrides/groovy/postInit/normal/EIOForestry.groovy
new file mode 100644
index 00000000..1f9e904e
--- /dev/null
+++ b/overrides/groovy/postInit/normal/EIOForestry.groovy
@@ -0,0 +1,19 @@
+if (!isLoaded('enderiointegrationforestry')) return
+
+////////////////////////////////////////
+// Items
+////////////////////////////////////////
+// OreDict: craftPropolis
+mods.minecraft.ore_dict.add('craftPropolis', item('forestry:propolis', 0))
+mods.minecraft.ore_dict.add('craftPropolis', item('forestry:propolis', 1))
+mods.minecraft.ore_dict.add('craftPropolis', item('forestry:propolis', 3))
+
+// Fluid Storage Housing
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:item_species_item_filter'))
+ .shape([
+ [null, null, null],
+ [ore('craftPropolis'), item('enderio:item_advanced_item_filter'), ore('craftPropolis')],
+ [null, null, null]
+ ])
+ .register()
diff --git a/overrides/groovy/postInit/normal/EZStorage.groovy b/overrides/groovy/postInit/normal/EZStorage.groovy
new file mode 100644
index 00000000..44c305c6
--- /dev/null
+++ b/overrides/groovy/postInit/normal/EZStorage.groovy
@@ -0,0 +1,238 @@
+import gregtech.api.recipes.RecipeMap
+
+def assembler = RecipeMap.getByName("assembler")
+
+// ########################################
+// Blocks
+// ########################################
+// Blank Box
+mods.minecraft.crafting.removeByOutput(item('ezstorage:blank_box'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('ezstorage:blank_box'))
+ .shape([
+ [ore('logWood'), ore('craftingToolHardHammer'), ore('logWood')],
+ [mi('plateBronze'), ore('logWood'), mi('plateBronze')],
+ [ore('logWood'), mi('plateBronze'), ore('logWood')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(mi('plateBronze', 2), ore('logWood') * 3)
+ .outputs(item('ezstorage:blank_box'))
+ .duration(100)
+ .EUt(30)
+ .buildAndRegister()
+
+// Storage Core
+mods.minecraft.crafting.removeByOutput(item('ezstorage:storage_core'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('ezstorage:storage_core'))
+ .shape([
+ [ore('logWood'), ore('craftingToolHardHammer'), ore('logWood')],
+ [mi('plateIron'), item('ezstorage:storage_box'), mi('plateIron')],
+ [ore('logWood'), mi('plateIron'), ore('logWood')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(item('ezstorage:storage_box'), ore('logWood') * 2, mi('plateIron', 2))
+ .outputs(item('ezstorage:storage_core'))
+ .duration(100)
+ .EUt(30)
+ .buildAndRegister()
+
+// Storage Box
+mods.minecraft.crafting.removeByOutput(item('ezstorage:storage_box'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('ezstorage:storage_box'))
+ .shape([
+ [ore('logWood'), ore('craftingToolHardHammer'), ore('logWood')],
+ [item('ezstorage:blank_box'), mi('crate.wood'), item('ezstorage:blank_box')],
+ [ore('logWood'), item('ezstorage:blank_box'), ore('logWood')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(mi('crate.wood'), ore('logWood') * 2, item('ezstorage:blank_box') * 3)
+ .outputs(item('ezstorage:storage_box'))
+ .duration(100)
+ .EUt(30)
+ .buildAndRegister()
+
+// Condensed Storage Box
+mods.minecraft.crafting.removeByOutput(item('ezstorage:condensed_storage_box'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('ezstorage:condensed_storage_box'))
+ .shape([
+ [mi('plateIron'), ore('craftingToolHardHammer'), mi('plateIron')],
+ [mi('plateIron'), mi('crate.bronze'), mi('plateIron')],
+ [mi('plateIron'), item('ezstorage:storage_box'), mi('plateIron')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(mi('crate.bronze'), item('ezstorage:storage_box'), mi('plateIron', 3))
+ .outputs(item('ezstorage:condensed_storage_box'))
+ .duration(100)
+ .EUt(30)
+ .buildAndRegister()
+
+// Super Storage Box
+mods.minecraft.crafting.removeByOutput(item('ezstorage:super_storage_box'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('ezstorage:super_storage_box'))
+ .shape([
+ [mi('plateGold'), ore('craftingToolHardHammer'), mi('plateGold')],
+ [mi('plateGold'), mi('crate.steel'), mi('plateGold')],
+ [mi('plateGold'), item('ezstorage:condensed_storage_box'), mi('plateGold')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(mi('crate.steel'), item('ezstorage:condensed_storage_box'), mi('plateGold', 3))
+ .outputs(item('ezstorage:super_storage_box'))
+ .duration(100)
+ .EUt(30)
+ .buildAndRegister()
+
+// Ultra Storage Box
+mods.minecraft.crafting.removeByOutput(item('ezstorage:ultra_storage_box'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('ezstorage:ultra_storage_box'))
+ .shape([
+ [mi('plateAluminium'), ore('craftingToolHardHammer'), mi('plateAluminium')],
+ [mi('plateAluminium'), mi('crate.aluminium'), mi('plateAluminium')],
+ [mi('plateAluminium'), item('ezstorage:super_storage_box'), mi('plateAluminium')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(mi('crate.aluminium'), item('ezstorage:super_storage_box'), mi('plateAluminium', 3))
+ .outputs(item('ezstorage:ultra_storage_box'))
+ .duration(100)
+ .EUt(120)
+ .buildAndRegister()
+
+// Hyper Storage Box
+mods.minecraft.crafting.removeByOutput(item('ezstorage:hyper_storage_box'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('ezstorage:hyper_storage_box'))
+ .shape([
+ [mi('plateStainlessSteel'), ore('craftingToolHardHammer'), mi('plateStainlessSteel')],
+ [mi('plateStainlessSteel'), mi('crate.stainless_steel'), mi('plateStainlessSteel')],
+ [mi('plateStainlessSteel'), item('ezstorage:ultra_storage_box'), mi('plateStainlessSteel')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(mi('crate.stainless_steel'), item('ezstorage:ultra_storage_box'), mi('plateStainlessSteel', 3))
+ .outputs(item('ezstorage:hyper_storage_box'))
+ .duration(100)
+ .EUt(480)
+ .buildAndRegister()
+
+// Input Port
+mods.minecraft.crafting.removeByOutput(item('ezstorage:input_port'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('ezstorage:input_port'))
+ .shape([
+ [mi('plateSteel'), ore('craftingToolWrench'), mi('plateSteel')],
+ [item('minecraft:hopper'), item('ezstorage:storage_core'), item('minecraft:hopper')],
+ [mi('plateSteel'), ore('craftingPiston'), mi('plateSteel')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(ore('craftingPiston'), item('ezstorage:storage_core'), mi('plateSteel', 2))
+ .outputs(item('ezstorage:input_port'))
+ .duration(100)
+ .EUt(30)
+ .buildAndRegister()
+
+// Output Port
+mods.minecraft.crafting.removeByOutput(item('ezstorage:output_port'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('ezstorage:output_port'))
+ .shape([
+ [mi('plateSteel'), item('minecraft:dropper'), mi('plateSteel')],
+ [item('minecraft:dropper'), item('ezstorage:input_port'), item('minecraft:dropper')],
+ [mi('plateSteel'), ore('craftingToolWrench'), mi('plateSteel')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(item('minecraft:dropper'), item('ezstorage:input_port'), mi('plateSteel', 2))
+ .outputs(item('ezstorage:output_port'))
+ .duration(100)
+ .EUt(30)
+ .buildAndRegister()
+
+// Extract Port
+mods.minecraft.crafting.removeByOutput(item('ezstorage:extract_port'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('ezstorage:extract_port'))
+ .shape([
+ [item('minecraft:iron_bars'), item('minecraft:comparator'), item('minecraft:iron_bars')],
+ [item('minecraft:hopper'), item('ezstorage:input_port'), item('minecraft:hopper')],
+ [item('minecraft:iron_bars'), item('minecraft:comparator'), item('minecraft:iron_bars')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(item('minecraft:comparator'), item('minecraft:hopper'), item('ezstorage:input_port'), item('minecraft:iron_bars') * 2)
+ .outputs(item('ezstorage:extract_port'))
+ .duration(100)
+ .EUt(30)
+ .buildAndRegister()
+
+// Crafting Box
+mods.minecraft.crafting.removeByOutput(item('ezstorage:crafting_box'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('ezstorage:crafting_box'))
+ .shape([
+ [mi('plateSteel'), ore('craftingToolHardHammer'), mi('plateSteel')],
+ [mi('workbench'), item('ezstorage:blank_box'), mi('workbench')],
+ [mi('plateSteel'), ore('craftingToolWrench'), mi('plateSteel')]
+ ])
+ .register()
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('ezstorage:crafting_box'))
+ .shape([
+ [mi('plateSteel'), ore('craftingToolWrench'), mi('plateSteel')],
+ [mi('workbench'), item('ezstorage:blank_box'), mi('workbench')],
+ [mi('plateSteel'), ore('craftingToolHardHammer'), mi('plateSteel')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(mi('workbench'), item('ezstorage:blank_box'), mi('plateSteel', 2))
+ .outputs(item('ezstorage:crafting_box'))
+ .duration(100)
+ .EUt(30)
+ .buildAndRegister()
+
+// Search Box
+mods.minecraft.crafting.removeByOutput(item('ezstorage:search_box'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('ezstorage:search_box'))
+ .shape([
+ [mi('plateSteel'), ore('craftingToolWrench'), mi('plateSteel')],
+ [item('minecraft:compass'), item('ezstorage:blank_box'), item('minecraft:compass')],
+ [mi('plateSteel'), ore('craftingToolHardHammer'), mi('plateSteel')]
+ ])
+ .register()
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('ezstorage:search_box'))
+ .shape([
+ [mi('plateSteel'), ore('craftingToolHardHammer'), mi('plateSteel')],
+ [item('minecraft:compass'), item('ezstorage:blank_box'), item('minecraft:compass')],
+ [mi('plateSteel'), ore('craftingToolWrench'), mi('plateSteel')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(item('minecraft:compass'), item('ezstorage:blank_box'), mi('plateSteel', 2))
+ .outputs(item('ezstorage:search_box'))
+ .duration(100)
+ .EUt(30)
+ .buildAndRegister()
diff --git a/overrides/groovy/postInit/normal/Elevator.groovy b/overrides/groovy/postInit/normal/Elevator.groovy
new file mode 100644
index 00000000..4a959b1e
--- /dev/null
+++ b/overrides/groovy/postInit/normal/Elevator.groovy
@@ -0,0 +1,52 @@
+import gregtech.api.recipes.RecipeMap
+
+def chemical_bath = RecipeMap.getByName("chemical_bath")
+
+// ########################################
+// Blocks
+// ########################################
+def elevators = [
+ item('elevatorid:elevator_white'),
+ item('elevatorid:elevator_orange'),
+ item('elevatorid:elevator_magenta'),
+ item('elevatorid:elevator_light_blue'),
+ item('elevatorid:elevator_yellow'),
+ item('elevatorid:elevator_lime'),
+ item('elevatorid:elevator_pink'),
+ item('elevatorid:elevator_gray'),
+ item('elevatorid:elevator_silver'),
+ item('elevatorid:elevator_cyan'),
+ item('elevatorid:elevator_purple'),
+ item('elevatorid:elevator_blue'),
+ item('elevatorid:elevator_brown'),
+ item('elevatorid:elevator_green'),
+ item('elevatorid:elevator_red'),
+ item('elevatorid:elevator_black')
+]
+elevators.each { elevator ->
+ mods.minecraft.crafting.removeByOutput(elevator)
+}
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('elevatorid:elevator_black'))
+ .shape([
+ [mi('plateSteel'), mi('plateSteel'), mi('plateSteel')],
+ [mi('gearSmallSteel'), mi('frameSteel'), mi('gearSmallSteel')],
+ [mi('plateSteel'), mi('plateSteel'), mi('plateSteel')]
+ ])
+ .register()
+chemical_bath.recipeBuilder()
+ .inputs(ore('blockElevator'))
+ .fluidInputs(fluid('chlorine') * 50)
+ .outputs(item('elevatorid:elevator_black'))
+ .duration(400)
+ .EUt(7)
+ .buildAndRegister()
+elevators.eachWithIndex { elevator, i ->
+ chemical_bath.recipeBuilder()
+ .inputs(ore('blockElevator'))
+ .fluidInputs(colorLiquid[i] * 18)
+ .outputs(elevator)
+ .duration(20)
+ .EUt(7)
+ .buildAndRegister()
+}
diff --git a/overrides/groovy/postInit/normal/EnderIO/A_Machines.groovy b/overrides/groovy/postInit/normal/EnderIO/A_Machines.groovy
new file mode 100644
index 00000000..2d82bca2
--- /dev/null
+++ b/overrides/groovy/postInit/normal/EnderIO/A_Machines.groovy
@@ -0,0 +1,515 @@
+import gregtech.api.recipes.RecipeMap
+
+def assembler = RecipeMap.getByName("assembler")
+
+
+// Basic Capacitor Bank
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:block_cap_bank', 1))
+ .shape([
+ [item('enderio:item_basic_capacitor'), ore('circuitHv'), item('enderio:item_basic_capacitor')],
+ [mi('plateElectricalSteel'), ore('itemSimpleMachineChassi'), mi('plateElectricalSteel')],
+ [item('enderio:item_basic_capacitor'), ore('batteryHv'), item('enderio:item_basic_capacitor')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('enderio:item_basic_capacitor') * 2,
+ mi('plateElectricalSteel'),
+ ore('circuitHv'),
+ ore('itemSimpleMachineChassi')
+ )
+ .outputs(item('enderio:block_cap_bank', 1))
+ .duration(20)
+ .EUt(7680)
+ .buildAndRegister()
+
+// Capacitor Bank
+mods.minecraft.crafting.removeByOutput(item('enderio:block_cap_bank', 2))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:block_cap_bank', 2))
+ .shape([
+ [item('enderio:item_basic_capacitor', 1), ore('circuitEv'), item('enderio:item_basic_capacitor', 1)],
+ [mi('plateEnergeticAlloy'), ore('itemMachineChassi'), mi('plateEnergeticAlloy')],
+ [item('enderio:block_cap_bank', 1), ore('batteryEv'), item('enderio:block_cap_bank', 1)]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('enderio:block_cap_bank', 1) * 2,
+ mi('plateEnergeticAlloy'),
+ item('enderio:item_basic_capacitor', 1),
+ ore('circuitEv'),
+ ore('batteryEv'),
+ ore('itemMachineChassi')
+ )
+ .outputs(item('enderio:block_cap_bank', 2))
+ .duration(20)
+ .EUt(7680)
+ .buildAndRegister()
+
+// Vibrant Capacitor Bank
+mods.minecraft.crafting.removeByOutput(item('enderio:block_cap_bank', 3))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:block_cap_bank', 3))
+ .shape([
+ [item('enderio:item_basic_capacitor', 2), ore('circuitIv'), item('enderio:item_basic_capacitor', 2)],
+ [ore('itemVibrantCrystal'), ore('itemEnhancedMachineChassi'), ore('itemVibrantCrystal')],
+ [item('enderio:block_cap_bank', 2), ore('batteryIv'), item('enderio:block_cap_bank', 2)]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('enderio:block_cap_bank', 2) * 2,
+ ore('itemVibrantCrystal'),
+ item('enderio:item_basic_capacitor', 2),
+ ore('circuitIv'),
+ ore('batteryIv'),
+ ore('itemEnhancedMachineChassi')
+ )
+ .outputs(item('enderio:block_cap_bank', 3))
+ .duration(20)
+ .EUt(7680)
+ .buildAndRegister()
+
+// Block Detector
+mods.jei.ingredient.hide(item('enderio:block_detector_block'))
+
+// Block Detector (Silent)
+mods.jei.ingredient.hide(item('enderio:block_detector_block_silent'))
+
+// Energy Gauge
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:block_gauge'))
+ .shape([
+ [mi('plateIron'), null, mi('plateIron')],
+ [mi('plateElectricalSteel'), item('enderio:item_conduit_probe'), mi('plateElectricalSteel')],
+ [mi('plateIron'), null, mi('plateIron')]
+ ])
+ .register()
+
+// Power Monitor
+mods.jei.ingredient.hide(item('enderio:block_power_monitor'))
+
+// Graphical Power Monitor
+mods.jei.ingredient.hide(item('enderio:block_advanced_power_monitor'))
+
+// Simple Powered Furnace
+mods.jei.ingredient.hide(item('enderio:block_simple_furnace'))
+
+// Simple Alloy Smelter
+mods.jei.ingredient.hide(item('enderio:block_simple_alloy_smelter'))
+
+// Alloy Smelter
+mods.jei.ingredient.hide(item('enderio:block_alloy_smelter'))
+
+// Enhanced Alloy Smelter
+mods.jei.ingredient.hide(item('enderio:block_enhanced_alloy_smelter'))
+
+// Buffers
+mods.jei.ingredient.hide(item('enderio:block_buffer', 32767))
+
+// Enchanter
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:block_enchanter'))
+ .shape([
+ [ore('gemDiamond'), item('minecraft:book'), ore('gemDiamond')],
+ [mi('plateDarkSteel'), mi('plateDarkSteel'), mi('plateDarkSteel')],
+ [null, mi('plateDarkSteel'), null]
+ ])
+ .register()
+
+// Farming Station
+mods.jei.ingredient.hide(item('enderio:block_farm_station'))
+
+// Combustion Generator
+mods.jei.ingredient.hide(item('enderio:block_combustion_generator'))
+
+// Enhanced Combustion Generator
+mods.jei.ingredient.hide(item('enderio:block_enhanced_combustion_generator'))
+
+// Simple Stirling Generator
+mods.jei.ingredient.hide(item('enderio:block_simple_stirling_generator'))
+
+// Stirling Generator
+mods.jei.ingredient.hide(item('enderio:block_stirling_generator'))
+
+// Zombie Generator
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:block_zombie_generator'))
+ .shape([
+ [mi('plateDarkSteel'), ore('circuitHv'), mi('plateDarkSteel')],
+ [ore('fusedQuartz'), ore('itemMachineChassi'), ore('fusedQuartz')],
+ [mi('electric.motor.hv'), ore('skullZombieElectrode'), mi('electric.motor.hv')]
+ ])
+ .register()
+
+// Frank'n'Zombie Generator
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:block_franken_zombie_generator'))
+ .shape([
+ [mi('plateSoularium'), ore('circuitEv'), mi('plateSoularium')],
+ [ore('fusedQuartz'), ore('itemEnhancedMachineChassi'), ore('fusedQuartz')],
+ [mi('electric.motor.ev'), ore('skullZombieFrankenstein'), mi('electric.motor.ev')]
+ ])
+ .register()
+
+// Ender Generator
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:block_ender_generator'))
+ .shape([
+ [mi('plateEndSteel'), ore('circuitIv'), mi('plateEndSteel')],
+ [ore('fusedQuartz'), ore('itemEndSteelMachineChassi'), ore('fusedQuartz')],
+ [mi('electric.motor.iv'), ore('skullSentientEnder'), mi('electric.motor.iv')]
+ ])
+ .register()
+
+// Killer Joe
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:block_killer_joe'))
+ .shape([
+ [mi('plateSoularium'), ore('circuitEv'), mi('plateSoularium')],
+ [ore('fusedQuartz'), ore('itemEnhancedMachineChassi'), ore('fusedQuartz')],
+ [mi('electric.motor.ev'), ore('skullZombieController'), mi('electric.motor.ev')]
+ ])
+ .register()
+
+// Lava Heat Exchanger
+mods.jei.ingredient.hide(item('enderio:block_lava_generator'))
+
+// Electric Light
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:block_electric_light'))
+ .shape([
+ [ore('blockGlassHardened'), ore('blockGlassHardened'), ore('blockGlassHardened')],
+ [mi('plateSilicon'), item('minecraft:glowstone_dust'), mi('plateSilicon')],
+ [mi('plateSilicon'), item('enderio:item_basic_capacitor'), mi('plateSilicon')]
+ ])
+ .register()
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('enderio:block_electric_light'))
+ .input(item('enderio:block_electric_light', 1), ore('craftingRedstoneTorch'))
+ .register()
+
+// Electric Light (Inverted)
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('enderio:block_electric_light', 1))
+ .input(item('enderio:block_electric_light'), ore('craftingRedstoneTorch'))
+ .register()
+
+// Light
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:block_electric_light', 2))
+ .shape([
+ [null, null, null],
+ [item('enderio:block_fused_glass', 32767), item('enderio:block_fused_glass', 32767), item('enderio:block_fused_glass', 32767)],
+ [mi('plateSilicon'), ore('blockGlowstone'), mi('plateSilicon')]
+ ])
+ .register()
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('enderio:block_electric_light', 2))
+ .input(item('enderio:block_electric_light', 3), ore('craftingRedstoneTorch'))
+ .register()
+
+// Light (Inverted)
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('enderio:block_electric_light', 3))
+ .input(item('enderio:block_electric_light', 2), ore('craftingRedstoneTorch'))
+ .register()
+
+// Wireless Light
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('enderio:block_electric_light', 4))
+ .input(item('enderio:block_electric_light'), item('enderio:item_material', 43))
+ .register()
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('enderio:block_electric_light', 4))
+ .input(item('enderio:block_electric_light', 5), ore('craftingRedstoneTorch'))
+ .register()
+
+// Wireless Light (Inverted)
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('enderio:block_electric_light', 5))
+ .input(item('enderio:block_electric_light', 4), ore('craftingRedstoneTorch'))
+ .register()
+
+// Attractor Obelisk
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:block_attractor_obelisk'))
+ .shape([
+ [null, ore('itemAttractorCrystal'), null],
+ [mi('plateEnergeticAlloy'), mi('gearWood'), mi('plateEnergeticAlloy')],
+ [mi('plateSoularium'), ore('itemSoulMachineChassi'), mi('plateSoularium')]
+ ])
+ .register()
+
+// Aversion Obelisk
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:block_aversion_obelisk'))
+ .shape([
+ [null, item('enderio:block_enderman_skull', 2), null],
+ [mi('plateEnergeticAlloy'), mi('gearEnergeticAlloy'), mi('plateEnergeticAlloy')],
+ [mi('plateSoularium'), ore('itemSoulMachineChassi'), mi('plateSoularium')]
+ ])
+ .register()
+
+// Inhibitor Obelisk
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:block_inhibitor_obelisk'))
+ .shape([
+ [null, ore('itemEnderCrystal'), null],
+ [mi('plateEnergeticAlloy'), mi('gearElectricalSteel'), mi('plateEnergeticAlloy')],
+ [mi('plateSoularium'), ore('itemSoulMachineChassi'), mi('plateSoularium')]
+ ])
+ .register()
+
+// Relocator Obelisk
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:block_relocator_obelisk'))
+ .shape([
+ [null, ore('blockPrismarine'), null],
+ [ore('blockPrismarine'), item('enderio:block_aversion_obelisk'), ore('blockPrismarine')],
+ [null, mi('gearVibrantAlloy'), null]
+ ])
+ .register()
+
+// Weather Obelisk
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:block_weather_obelisk'))
+ .shape([
+ [null, ore('itemWeatherCrystal'), null],
+ [mi('plateEnergeticAlloy'), item('enderio:item_basic_capacitor', 2), mi('plateEnergeticAlloy')],
+ [mi('plateSoularium'), ore('itemSoulMachineChassi'), mi('plateSoularium')]
+ ])
+ .register()
+
+// Experience Obelisk
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:block_experience_obelisk'))
+ .shape([
+ [null, item('enderio:item_xp_transfer'), null],
+ [mi('plateEnergeticAlloy'), mi('super_tank.lv'), mi('plateEnergeticAlloy')],
+ [mi('plateSoularium'), ore('itemSoulMachineChassi'), mi('plateSoularium')]
+ ])
+ .register()
+
+// Painting Machine
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:block_painter'))
+ .shape([
+ [mi('sensor.hv'), ore('circuitHv'), mi('sensor.hv')],
+ [mi('gearElectricalSteel'), ore('itemMachineChassi'), mi('gearElectricalSteel')],
+ [mi('plateElectricalSteel'), mi('plateElectricalSteel'), mi('plateElectricalSteel')]
+ ])
+ .register()
+
+// Endervoir
+mods.jei.ingredient.hide(item('enderio:block_reservoir'))
+
+// Omnivoir
+mods.jei.ingredient.hide(item('enderio:block_omni_reservoir'))
+
+// Simple SAG Mill
+mods.jei.ingredient.hide(item('enderio:block_simple_sag_mill'))
+
+// SAG Mill
+mods.jei.ingredient.hide(item('enderio:block_sag_mill'))
+
+// Enhanced SAG Mill
+mods.jei.ingredient.hide(item('enderio:block_enhanced_sag_mill'))
+
+// Slice'N'Splice
+mods.jei.ingredient.hide(item('enderio:block_slice_and_splice'))
+
+// Photovoltaic Cells
+mods.jei.ingredient.hide(item('enderio:block_solar_panel', 32767))
+
+// Soul Binder
+mods.jei.ingredient.hide(item('enderio:block_soul_binder'))
+
+// Powered Spawner
+mods.jei.ingredient.hide(item('enderio:block_powered_spawner'))
+mods.jei.ingredient.hide(item('enderio:block_creative_spawner'))
+
+// The Vat
+mods.jei.ingredient.hide(item('enderio:block_vat'))
+
+// The Enhanced Vat
+mods.jei.ingredient.hide(item('enderio:block_enhanced_vat'))
+
+// Simple Wired Charger
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:block_simple_wired_charger'))
+ .shape([
+ [mi('plateStone'), mi('plateSteel'), mi('plateStone')],
+ [mi('plateStone'), item('enderio:item_material'), mi('plateStone')],
+ [mi('gearStone'), mi('plateSteel'), mi('gearStone')]
+ ])
+ .register()
+
+// Wired Charger
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:block_wired_charger'))
+ .shape([
+ [mi('plateEnergeticAlloy'), mi('plateDarkSteel'), mi('plateEnergeticAlloy')],
+ [mi('emitter.hv'), ore('itemMachineChassi'), mi('sensor.hv')],
+ [mi('gearEnergeticAlloy'), mi('plateDarkSteel'), mi('gearEnergeticAlloy')]
+ ])
+ .register()
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:block_wired_charger'))
+ .shape([
+ [mi('plateDoubleEnergeticAlloy'), mi('plateDarkSteel'), mi('plateDoubleEnergeticAlloy')],
+ [mi('emitter.hv'), ore('itemMachineChassi'), mi('sensor.hv')],
+ [mi('gearEnergeticAlloy'), item('enderio:block_simple_wired_charger'), mi('gearEnergeticAlloy')]
+ ])
+ .register()
+
+// Enhanced Wired Charger
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:block_enhanced_wired_charger'))
+ .shape([
+ [mi('plateVibrantAlloy'), mi('plateEndSteel'), mi('plateVibrantAlloy')],
+ [mi('emitter.ev'), ore('itemEnhancedMachineChassi'), mi('sensor.ev')],
+ [mi('gearVibrantAlloy'), mi('plateEndSteel'), mi('gearVibrantAlloy')]
+ ])
+ .register()
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:block_enhanced_wired_charger'))
+ .shape([
+ [mi('plateDoubleVibrantAlloy'), mi('plateEndSteel'), mi('plateDoubleVibrantAlloy')],
+ [mi('emitter.ev'), ore('itemEnhancedMachineChassi'), mi('sensor.ev')],
+ [mi('gearVibrantAlloy'), item('enderio:block_wired_charger'), mi('gearVibrantAlloy')]
+ ])
+ .register()
+
+// Wireless Charger
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:block_wireless_charger'))
+ .shape([
+ [mi('plateElectricalSteel'), mi('plateElectricalSteel'), mi('plateElectricalSteel')],
+ [mi('plateElectricalSteel'), ore('skullEnderResonator'), mi('plateElectricalSteel')],
+ [mi('plateElectricalSteel'), item('enderio:item_capacitor_silver'), mi('plateElectricalSteel')]
+ ])
+ .register()
+
+// Wireless Charging Antenna
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:block_normal_wireless_charger'))
+ .shape([
+ [ore('itemWirelessDish'), item('enderio:block_wireless_charger'), ore('itemWirelessDish')],
+ [ore('itemWirelessDish'), ore('itemMachineChassi'), ore('itemWirelessDish')],
+ [null, item('enderio:item_capacitor_silver'), null]
+ ])
+ .register()
+
+// Enhanced Wireless Charging Antenna
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:block_enhanced_wireless_charger'))
+ .shape([
+ [ore('itemWirelessDish'), item('enderio:block_wireless_charger'), ore('itemWirelessDish')],
+ [ore('itemWirelessDish'), ore('itemMachineChassi'), ore('itemWirelessDish')],
+ [null, item('enderio:item_capacitor_vivid'), null]
+ ])
+ .register()
+
+// Wireless Charging Antenna Extension
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:block_wireless_charger_extension'))
+ .shape([
+ [null, ore('itemWirelessDish'), null],
+ [ore('itemWirelessDish'), mi('plateEndSteel'), ore('itemWirelessDish')],
+ [null, ore('itemWirelessDish'), null]
+ ])
+ .register()
+
+// Fluid Tanks
+
+// Dimensional Transceiver
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:block_transceiver'))
+ .shape([
+ [mi('sensor.iv'), ore('skullEnderResonator'), mi('sensor.iv')],
+ [item('enderio:block_fused_quartz', 32767), item('enderio:block_travel_anchor'), item('enderio:block_fused_quartz', 32767)],
+ [ore('itemEnderCrystal'), item('enderio:item_capacitor_vivid'), ore('itemEnderCrystal')]
+ ])
+ .register()
+
+// Vacuum Chest
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:block_vacuum_chest'))
+ .shape([
+ [mi('plateConstructionAlloy'), mi('plateConstructionAlloy'), mi('plateConstructionAlloy')],
+ [mi('plateConstructionAlloy'), mi('item_collector.hv'), mi('plateConstructionAlloy')],
+ [mi('plateConstructionAlloy'), ore('itemEnderCrystal'), mi('plateConstructionAlloy')]
+ ])
+ .register()
+
+// XP Vacuum
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:block_xp_vacuum'))
+ .shape([
+ [mi('plateConstructionAlloy'), mi('plateConstructionAlloy'), mi('plateConstructionAlloy')],
+ [mi('plateConstructionAlloy'), item('enderio:item_xp_transfer'), mi('plateConstructionAlloy')],
+ [mi('plateConstructionAlloy'), ore('itemPulsatingCrystal'), mi('plateConstructionAlloy')]
+ ])
+ .register()
+
+// The Niard
+mods.jei.ingredient.hide(item('enderio:block_niard'))
+
+// Travel Anchor
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:block_travel_anchor'))
+ .shape([
+ [mi('plateElectricalSteel'), ore('blockElevator'), mi('plateElectricalSteel')],
+ [ore('itemPulsatingCrystal'), ore('itemEnhancedMachineChassi'), ore('itemPulsatingCrystal')],
+ [mi('plateElectricalSteel'), mi('field.generator.hv'), mi('plateElectricalSteel')]
+ ])
+ .register()
+
+// Telepad Block
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:block_tele_pad'))
+ .shape([
+ [item('enderio:block_fused_quartz', 32767), mi('plateVibrantAlloy'), item('enderio:block_fused_quartz', 32767)],
+ [mi('plateDarkSteel'), item('enderio:block_travel_anchor'), mi('plateDarkSteel')],
+ [mi('plateDarkSteel'), item('enderio:item_capacitor_silver'), mi('plateDarkSteel')]
+ ])
+ .register()
+
+// Dialing Device
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:block_dialing_device'))
+ .shape([
+ [null, mi('plateElectricalSteel'), null],
+ [null, ore('skullEnderResonator'), null],
+ [mi('plateDarkSteel'), item('enderio:item_capacitor_vivid'), mi('plateDarkSteel')]
+ ])
+ .register()
+
+// Impulse Hopper
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:block_impulse_hopper'))
+ .shape([
+ [mi('plateElectricalSteel'), ore('blockHopper'), mi('plateElectricalSteel')],
+ [mi('gearEnergeticAlloy'), ore('itemMachineChassi'), mi('gearEnergeticAlloy')],
+ [mi('plateElectricalSteel'), mi('plateRedstoneAlloy'), mi('plateElectricalSteel')]
+ ])
+ .register()
+
+// Simple Crafter
+mods.jei.ingredient.hide(item('enderio:block_simple_crafter'))
+
+// Crafter
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:block_crafter'))
+ .shape([
+ [mi('plateSilicon'), mi('plateSilicon'), mi('plateSilicon')],
+ [mi('plateConstructionAlloy'), ore('itemEnhancedMachineChassi'), mi('plateConstructionAlloy')],
+ [mi('gearVibrantAlloy'), mi('workbench'), mi('gearVibrantAlloy')]
+ ])
+ .register()
diff --git a/overrides/groovy/postInit/normal/EnderIO/B_Items.groovy b/overrides/groovy/postInit/normal/EnderIO/B_Items.groovy
new file mode 100644
index 00000000..08f99fdc
--- /dev/null
+++ b/overrides/groovy/postInit/normal/EnderIO/B_Items.groovy
@@ -0,0 +1,659 @@
+import gregtech.api.recipes.RecipeMap
+
+def alloy_smelter = RecipeMap.getByName("alloy_smelter")
+
+
+// Conduit Facade
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:item_conduit_facade'))
+ .shape([
+ [ore('itemConduitBinder'), ore('itemConduitBinder'), ore('itemConduitBinder')],
+ [ore('itemConduitBinder'), null, ore('itemConduitBinder')],
+ [ore('itemConduitBinder'), ore('itemConduitBinder'), ore('itemConduitBinder')]
+ ])
+ .register()
+
+// Hardened Conduit Facade
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:item_conduit_facade', 1))
+ .shape([
+ [null, mi('dustObsidian'), null],
+ [mi('dustObsidian'), item('enderio:item_conduit_facade'), mi('dustObsidian')],
+ [null, mi('dustObsidian'), null]
+ ])
+ .register()
+
+// Transparent Conduit Facade
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:item_conduit_facade', 2))
+ .shape([
+ [ore('itemConduitBinder'), ore('itemConduitBinder'), ore('itemConduitBinder')],
+ [ore('itemConduitBinder'), item('enderio:block_fused_glass', 32767), ore('itemConduitBinder')],
+ [ore('itemConduitBinder'), ore('itemConduitBinder'), ore('itemConduitBinder')]
+ ])
+ .register()
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('enderio:item_conduit_facade', 2))
+ .input(item('enderio:item_conduit_facade'), item('enderio:block_fused_glass', 32767))
+ .register()
+
+// Transparent Hardened Conduit
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('enderio:item_conduit_facade', 3))
+ .input(item('enderio:item_conduit_facade', 1), item('enderio:block_fused_glass', 32767))
+ .register()
+
+// Conduit Probe
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:item_conduit_probe'))
+ .shape([
+ [mi('nuggetElectricalSteel'), null, mi('nuggetElectricalSteel')],
+ [mi('plateConstructionAlloy'), item('enderio:item_yeta_wrench'), mi('plateConstructionAlloy')],
+ [mi('plateConstructionAlloy'), item('enderio:item_material', 20), mi('plateConstructionAlloy')]
+ ])
+ .register()
+
+// Experience Rod
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:item_xp_transfer'))
+ .shape([
+ [null, null, ore('itemVibrantCrystal')],
+ [null, mi('stickVibrantAlloy'), null],
+ [mi('stickVibrantAlloy'), null, null]
+ ])
+ .register()
+
+// Cold Fire Igniter
+mods.jei.ingredient.hide(item('enderio:item_cold_fire_igniter'))
+
+// Coordinate Selector
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:item_coord_selector'))
+ .shape([
+ [mi('emitter.hv'), ore('circuitHv'), mi('plateElectricalSteel')],
+ [null, mi('gearVibrantAlloy'), mi('plateElectricalSteel')],
+ [null, null, mi('plateElectricalSteel')]
+ ])
+ .register()
+
+// Staff of Traveling
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:item_travel_staff'))
+ .shape([
+ [null, null, ore('itemEnderCrystal')],
+ [null, mi('stickDarkSteel'), null],
+ [mi('stickDarkSteel'), null, null]
+ ])
+ .register()
+
+// Rod of Return
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:item_rod_of_return'))
+ .shape([
+ [null, ore('itemPulsatingCrystal'), ore('itemEnderCrystal')],
+ [null, mi('stickDarkSteel'), ore('itemPulsatingCrystal')],
+ [mi('stickDarkSteel'), null, null]
+ ])
+ .register()
+
+// Electromagnet
+mods.jei.ingredient.hide(item('enderio:item_magnet'))
+
+// Enderios
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:item_ender_food'))
+ .shape([
+ [item('minecraft:bowl'), item('minecraft:milk_bucket'), null],
+ [item('minecraft:wheat'), mi('dustEnderPearl'), null],
+ [null, null, null]
+ ])
+ .register()
+
+// Basic Item Filter
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:item_basic_item_filter'))
+ .shape([
+ [mi('dustElectricalSteel'), ore('paperBlack'), mi('dustElectricalSteel')],
+ [ore('paperBlack'), mi('item_filter'), ore('paperBlack')],
+ [mi('dustElectricalSteel'), ore('paperBlack'), mi('dustElectricalSteel')]
+ ])
+ .register()
+
+// Advanced Item Filter
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:item_advanced_item_filter'))
+ .shape([
+ [mi('dustRedstoneAlloy'), ore('paperBlack'), mi('dustRedstoneAlloy')],
+ [ore('paperBlack'), mi('item_filter'), ore('paperBlack')],
+ [mi('dustRedstoneAlloy'), ore('paperBlack'), mi('dustRedstoneAlloy')]
+ ])
+ .register()
+
+// Limited Item Filter
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:item_limited_item_filter'))
+ .shape([
+ [null, ore('skullZombieController'), null],
+ [item('minecraft:comparator'), item('enderio:item_advanced_item_filter'), item('minecraft:comparator')],
+ [null, null, null]
+ ])
+ .register()
+
+// Big Item Filter
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:item_big_item_filter'))
+ .shape([
+ [mi('dustObsidian'), ore('paperBlack'), mi('dustObsidian')],
+ [ore('paperBlack'), ore('skullSkeletalContractor'), ore('paperBlack')],
+ [mi('dustObsidian'), ore('paperBlack'), mi('dustObsidian')]
+ ])
+ .register()
+
+// Advanced Big Item Filter
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:item_big_advanced_item_filter'))
+ .shape([
+ [null, item('minecraft:shulker_shell'), null],
+ [null, item('enderio:item_advanced_item_filter'), null],
+ [null, item('minecraft:shulker_shell'), null]
+ ])
+ .register()
+
+// Big Enchantment Item Filter
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('enderio:item_enchantment_filter_big'))
+ .input(item('enderio:item_big_item_filter'), item('minecraft:enchanted_book'))
+ .register()
+
+// Existing Item Filter
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:item_existing_item_filter'))
+ .shape([
+ [null, mi('dustRedstoneAlloy'), null],
+ [mi('dustRedstoneAlloy'), item('enderio:item_advanced_item_filter'), mi('dustRedstoneAlloy')],
+ [null, item('minecraft:comparator'), null]
+ ])
+ .register()
+
+// Mod Item Filter
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:item_mod_item_filter'))
+ .shape([
+ [null, ore('paperBlack'), null],
+ [ore('paperBlack'), item('enderio:item_yeta_wrench'), ore('paperBlack')],
+ [null, ore('paperBlack'), null]
+ ])
+ .register()
+
+// Power Item Filter
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:item_power_item_filter'))
+ .shape([
+ [null, ore('paperBlack'), null],
+ [ore('paperBlack'), item('enderio:item_conduit_probe'), ore('paperBlack')],
+ [null, ore('paperBlack'), null]
+ ])
+ .register()
+
+// Enchantment Item Filter
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('enderio:item_enchantment_filter_normal'))
+ .input(item('enderio:item_basic_item_filter'), item('minecraft:enchanted_book'))
+ .register()
+
+// Basic Fluid Filter
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:item_fluid_filter'))
+ .shape([
+ [mi('dustRedstoneAlloy'), ore('paperBlack'), mi('dustRedstoneAlloy')],
+ [ore('paperBlack'), mi('fluid_filter'), ore('paperBlack')],
+ [mi('dustRedstoneAlloy'), ore('paperBlack'), mi('dustRedstoneAlloy')]
+ ])
+ .register()
+
+// Redstone Filter Base
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:item_material', 60))
+ .shape([
+ [mi('plateRedstoneAlloy'), ore('paperBlack'), mi('plateRedstoneAlloy')],
+ [ore('paperBlack'), mi('plateIron'), ore('paperBlack')],
+ [mi('plateRedstoneAlloy'), ore('paperBlack'), mi('plateRedstoneAlloy')]
+ ])
+ .register()
+
+// Redstone NOT Filter
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:item_redstone_not_filter'))
+ .shape([
+ [null, null, null],
+ [ore('craftingRedstoneTorch'), ore('itemRedstoneFilterBase'), mi('plateRedstoneAlloy')],
+ [null, null, null]
+ ])
+ .register()
+
+// Redstone OR Filter
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:item_redstone_or_filter'))
+ .shape([
+ [null, mi('plateRedstoneAlloy'), null],
+ [null, ore('itemRedstoneFilterBase'), null],
+ [null, mi('plateRedstoneAlloy'), null]
+ ])
+ .register()
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('enderio:item_redstone_or_filter'))
+ .input(ore('craftingRedstoneTorch'), item('enderio:item_redstone_nor_filter'))
+ .register()
+
+// Redstone AND Filter
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:item_redstone_and_filter'))
+ .shape([
+ [null, ore('craftingRedstoneTorch'), null],
+ [null, ore('itemRedstoneFilterBase'), null],
+ [null, ore('craftingRedstoneTorch'), null]
+ ])
+ .register()
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('enderio:item_redstone_and_filter'))
+ .input(ore('craftingRedstoneTorch'), item('enderio:item_redstone_nand_filter'))
+ .register()
+
+// Redstone NOR Filter
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('enderio:item_redstone_nor_filter'))
+ .input(ore('craftingRedstoneTorch'), item('enderio:item_redstone_or_filter'))
+ .register()
+
+// Redstone NAND Filter
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('enderio:item_redstone_nand_filter'))
+ .input(ore('craftingRedstoneTorch'), item('enderio:item_redstone_and_filter'))
+ .register()
+
+// Redstone XOR Filter
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:item_redstone_xor_filter'))
+ .shape([
+ [null, ore('craftingRedstoneTorch'), null],
+ [mi('plateRedstoneAlloy'), ore('itemRedstoneFilterBase'), mi('plateRedstoneAlloy')],
+ [null, ore('craftingRedstoneTorch'), null]
+ ])
+ .register()
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('enderio:item_redstone_xor_filter'))
+ .input(ore('craftingRedstoneTorch'), item('enderio:item_redstone_xnor_filter'))
+ .register()
+
+// Redstone XNOR Filter
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('enderio:item_redstone_xnor_filter'))
+ .input(ore('craftingRedstoneTorch'), item('enderio:item_redstone_xor_filter'))
+ .register()
+
+// Redstone Toggle Latch Filter
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:item_redstone_toggle_filter'))
+ .shape([
+ [null, null, null],
+ [item('minecraft:lever'), ore('itemRedstoneFilterBase'), mi('plateRedstoneAlloy')],
+ [null, null, null]
+ ])
+ .register()
+
+// Redstone Counting Filter
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:item_redstone_counting_filter'))
+ .shape([
+ [mi('plateRedstoneAlloy'), null, null],
+ [mi('plateRedstoneAlloy'), ore('itemRedstoneFilterBase'), mi('plateRedstoneAlloy')],
+ [mi('plateRedstoneAlloy'), null, null]
+ ])
+ .register()
+
+// Redstone Sensor Filter
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:item_redstone_sensor_filter'))
+ .shape([
+ [null, null, null],
+ [item('minecraft:comparator'), ore('itemRedstoneFilterBase'), mi('plateRedstoneAlloy')],
+ [null, null, null]
+ ])
+ .register()
+
+// Redstone Timer Filter
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:item_redstone_timer_filter'))
+ .shape([
+ [null, null, null],
+ [mi('plateRedstoneAlloy'), ore('itemRedstoneFilterBase'), item('minecraft:clock')],
+ [null, null, null]
+ ])
+ .register()
+
+// Staff of Levity
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:item_staff_of_levity'))
+ .shape([
+ [null, null, ore('itemPrecientCrystal')],
+ [null, mi('stickEndSteel'), null],
+ [mi('stickEndSteel'), null, null]
+ ])
+ .register()
+
+// Simple Inventory Charger
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:item_inventory_charger_simple'))
+ .shape([
+ [mi('nuggetDarkSteel'), mi('plateConductiveIron'), mi('nuggetDarkSteel')],
+ [mi('plateConductiveIron'), item('enderio:item_capacitor_silver'), mi('plateConductiveIron')],
+ [mi('nuggetDarkSteel'), mi('plateConductiveIron'), mi('nuggetDarkSteel')]
+ ])
+ .register()
+
+// Basic Inventory Charger
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:item_inventory_charger_basic'))
+ .shape([
+ [mi('plateDarkSteel'), mi('plateElectricalSteel'), mi('plateDarkSteel')],
+ [ore('itemWirelessDish'), ore('skullZombieElectrode'), ore('itemWirelessDish')],
+ [mi('plateDarkSteel'), item('enderio:block_cap_bank', 1), mi('plateDarkSteel')]
+ ])
+ .register()
+
+// Inventory Charger
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:item_inventory_charger'))
+ .shape([
+ [mi('plateDarkSteel'), mi('plateEnergeticAlloy'), mi('plateDarkSteel')],
+ [ore('itemWirelessDish'), ore('skullEnderResonator'), ore('itemWirelessDish')],
+ [mi('plateDarkSteel'), item('enderio:block_cap_bank', 2), mi('plateDarkSteel')]
+ ])
+ .register()
+
+// Vibrant Inventory Charger
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:item_inventory_charger_vibrant'))
+ .shape([
+ [mi('plateDarkSteel'), mi('plateVibrantAlloy'), mi('plateDarkSteel')],
+ [ore('itemWirelessDish'), ore('skullSentientEnder'), ore('itemWirelessDish')],
+ [mi('plateDarkSteel'), item('enderio:block_cap_bank', 3), mi('plateDarkSteel')]
+ ])
+ .register()
+
+// Blank Dark Steel Upgrade
+alloy_smelter.recipeBuilder()
+ .inputs(
+ item('enderio:item_basic_item_filter'),
+ item('enderio:block_dark_iron_bars')
+ )
+ .outputs(item('enderio:item_dark_steel_upgrade'))
+ .duration(56)
+ .EUt(480)
+ .buildAndRegister()
+
+// Dark Steel Upgrade "Micro Anvil"
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:item_dark_steel_upgrade', 1).withNbt(['enderio:dsu': 'enderio:anvil']))
+ .shape([
+ [null, mi('nuggetDarkSteel'), mi('nuggetDarkSteel')],
+ [null, null, item('minecraft:stick')],
+ [item('enderio:item_dark_steel_upgrade'), null, item('minecraft:stick')]
+ ])
+ .register()
+
+// Dark Steel Upgrade "Mini Anvil"
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:item_dark_steel_upgrade', 1).withNbt(['enderio:dsu': 'enderio:anvil1']))
+ .shape([
+ [null, mi('plateDarkSteel'), mi('plateDarkSteel')],
+ [null, null, item('minecraft:stick')],
+ [item('enderio:item_dark_steel_upgrade'), null, item('minecraft:stick')]
+ ])
+ .register()
+
+// Dark Steel Upgrade "Pocket Anvil"
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:item_dark_steel_upgrade', 1).withNbt(['enderio:dsu': 'enderio:anvil2']))
+ .shape([
+ [null, null, ore('blockDarkSteel')],
+ [null, null, item('minecraft:stick')],
+ [item('enderio:item_dark_steel_upgrade'), item('enderio:block_dark_steel_anvil'), item('minecraft:stick')]
+ ])
+ .register()
+
+// Dark Steel Upgrade "Carpeting"
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('enderio:item_dark_steel_upgrade', 1).withNbt(['enderio:dsu': 'enderio:carpet']))
+ .input(item('enderio:item_dark_steel_upgrade'), item('minecraft:carpet', 32767))
+ .register()
+
+// Dark Steel Upgrade "Depth"
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('enderio:item_dark_steel_upgrade', 1).withNbt(['enderio:dsu': 'enderio:depth']))
+ .input(item('enderio:item_dark_steel_upgrade'), item('minecraft:skull', 4))
+ .register()
+
+// Dark Steel Upgrade "Direct"
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:item_dark_steel_upgrade', 1).withNbt(['enderio:dsu': 'enderio:direct']))
+ .shape([
+ [mi('nuggetVibrantAlloy'), mi('plateVibrantAlloy'), mi('nuggetVibrantAlloy')],
+ [mi('plateVibrantAlloy'), ore('enderpearl'), mi('plateVibrantAlloy')],
+ [mi('nuggetVibrantAlloy'), item('enderio:item_dark_steel_upgrade'), mi('nuggetVibrantAlloy')]
+ ])
+ .register()
+
+// Dark Steel Upgrade "Elytra"
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('enderio:item_dark_steel_upgrade', 1).withNbt(['enderio:dsu': 'enderio:elytra']))
+ .input(item('enderio:item_dark_steel_upgrade'), item('minecraft:elytra'))
+ .register()
+
+// Dark Steel Upgrade "Empowered lv1"
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('enderio:item_dark_steel_upgrade', 1).withNbt(['enderio:dsu': 'enderio:energyupgrade']))
+ .input(item('enderio:item_dark_steel_upgrade'), ore('itemVibrantCrystal'))
+ .register()
+
+// Dark Steel Upgrade "Empowered lv2"
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('enderio:item_dark_steel_upgrade', 1).withNbt(['enderio:dsu': 'enderio:energyupgrade1']))
+ .input(item('enderio:item_dark_steel_upgrade'), item('enderio:item_basic_capacitor'))
+ .register()
+
+// Dark Steel Upgrade "Empowered lv3"
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('enderio:item_dark_steel_upgrade', 1).withNbt(['enderio:dsu': 'enderio:energyupgrade2']))
+ .input(item('enderio:item_dark_steel_upgrade'), item('enderio:item_basic_capacitor', 1))
+ .register()
+
+// Dark Steel Upgrade "Empowered lv4"
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('enderio:item_dark_steel_upgrade', 1).withNbt(['enderio:dsu': 'enderio:energyupgrade3']))
+ .input(item('enderio:item_dark_steel_upgrade'), item('enderio:item_basic_capacitor', 2))
+ .register()
+
+// Dark Steel Upgrade "Empowered lv5"
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('enderio:item_dark_steel_upgrade', 1).withNbt(['enderio:dsu': 'enderio:energyupgrade4']))
+ .input(item('enderio:item_dark_steel_upgrade'), ore('skullEnderResonator'))
+ .register()
+
+// Dark Steel Upgrade "Glider"
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('enderio:item_dark_steel_upgrade', 1).withNbt(['enderio:dsu': 'enderio:glide']))
+ .input(item('enderio:item_dark_steel_upgrade'), item('enderio:item_material', 7))
+ .register()
+
+// Dark Steel Upgrade "Fork"
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('enderio:item_dark_steel_upgrade', 1).withNbt(['enderio:dsu': 'enderio:hoe']))
+ .input(item('enderio:item_dark_steel_upgrade'), item('minecraft:golden_hoe'))
+ .register()
+
+// Dark Steel Upgrade "Inventory lv1"
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('enderio:item_dark_steel_upgrade', 1).withNbt(['enderio:dsu': 'enderio:inv']))
+ .input(item('enderio:item_dark_steel_upgrade'), ore('chestWood'), mi('gearWood'))
+ .register()
+
+// Dark Steel Upgrade "Inventory lv2"
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('enderio:item_dark_steel_upgrade', 1).withNbt(['enderio:dsu': 'enderio:inv1']))
+ .input(item('enderio:item_dark_steel_upgrade'), ore('chestWood'), mi('gearEnergeticAlloy'))
+ .register()
+
+// Dark Steel Upgrade "Inventory lv3"
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('enderio:item_dark_steel_upgrade', 1).withNbt(['enderio:dsu': 'enderio:inv2']))
+ .input(item('enderio:item_dark_steel_upgrade'), ore('chestWood'), mi('gearVibrantAlloy'))
+ .register()
+
+// Dark Steel Upgrade "Jump lv1"
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('enderio:item_dark_steel_upgrade', 1).withNbt(['enderio:dsu': 'enderio:jumpboost1']))
+ .input(item('enderio:item_dark_steel_upgrade'), ore('craftingPiston'), mi('gearWood'))
+ .register()
+
+// Dark Steel Upgrade "Jump lv2"
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('enderio:item_dark_steel_upgrade', 1).withNbt(['enderio:dsu': 'enderio:jumpboost2']))
+ .input(item('enderio:item_dark_steel_upgrade'), ore('craftingPiston'), mi('gearEnergeticAlloy'))
+ .register()
+
+// Dark Steel Upgrade "Jump lv3"
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('enderio:item_dark_steel_upgrade', 1).withNbt(['enderio:dsu': 'enderio:jumpboost3']))
+ .input(item('enderio:item_dark_steel_upgrade'), ore('craftingPiston'), mi('gearVibrantAlloy'))
+ .register()
+
+// Dark Steel Upgrade "Night Vision"
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('enderio:item_dark_steel_upgrade', 1).withNbt(['enderio:dsu': 'enderio:nightvision']))
+ .input(item('enderio:item_dark_steel_upgrade'), item('minecraft:potion').withNbt([Potion: 'minecraft:night_vision']))
+ .register()
+
+// Dark Steel Upgrade "Padding"
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('enderio:item_dark_steel_upgrade', 1).withNbt(['enderio:dsu': 'enderio:padding']))
+ .input(item('enderio:item_dark_steel_upgrade'), ore('wool'))
+ .register()
+
+// Dark Steel Upgrade(XP) "Solars"
+mods.jei.ingredient.hide(item('enderio:item_dark_steel_upgrade', 1).withNbt(['enderio:dsu': 'enderiomachines:solar']))
+mods.jei.ingredient.hide(item('enderio:item_dark_steel_upgrade', 1).withNbt(['enderio:dsu': 'enderiomachines:solar', 'enderio:enabled': 1 as byte]))
+mods.jei.ingredient.hide(item('enderio:item_dark_steel_upgrade', 1).withNbt(['enderio:dsu': 'enderiomachines:solar1']))
+mods.jei.ingredient.hide(item('enderio:item_dark_steel_upgrade', 1).withNbt(['enderio:dsu': 'enderiomachines:solar1', 'enderio:enabled': 1 as byte]))
+mods.jei.ingredient.hide(item('enderio:item_dark_steel_upgrade', 1).withNbt(['enderio:dsu': 'enderiomachines:solar2']))
+mods.jei.ingredient.hide(item('enderio:item_dark_steel_upgrade', 1).withNbt(['enderio:dsu': 'enderiomachines:solar2', 'enderio:enabled': 1 as byte]))
+mods.jei.ingredient.hide(item('enderio:item_dark_steel_upgrade', 1).withNbt(['enderio:dsu': 'enderiomachines:solar3']))
+mods.jei.ingredient.hide(item('enderio:item_dark_steel_upgrade', 1).withNbt(['enderio:dsu': 'enderiomachines:solar3', 'enderio:enabled': 1 as byte]))
+
+// Dark Steel Upgrade "Sound Locator"
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('enderio:item_dark_steel_upgrade', 1).withNbt(['enderio:dsu': 'enderio:sounddetector']))
+ .input(item('enderio:item_dark_steel_upgrade'), item('minecraft:noteblock'))
+ .register()
+
+// Dark Steel Upgrade "Speed lv1"
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('enderio:item_dark_steel_upgrade', 1).withNbt(['enderio:dsu': 'enderio:speedboost1']))
+ .input(item('enderio:item_dark_steel_upgrade'), item('minecraft:potion').withNbt([Potion: 'minecraft:long_swiftness']), mi('gearWood'))
+ .register()
+
+// Dark Steel Upgrade "Speed lv2"
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('enderio:item_dark_steel_upgrade', 1).withNbt(['enderio:dsu': 'enderio:speedboost2']))
+ .input(item('enderio:item_dark_steel_upgrade'), item('minecraft:potion').withNbt([Potion: 'minecraft:long_swiftness']), mi('gearEnergeticAlloy'))
+ .register()
+
+// Dark Steel Upgrade "Speed lv3"
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('enderio:item_dark_steel_upgrade', 1).withNbt(['enderio:dsu': 'enderio:speedboost3']))
+ .input(item('enderio:item_dark_steel_upgrade'), item('minecraft:potion').withNbt([Potion: 'minecraft:long_swiftness']), mi('gearVibrantAlloy'))
+ .register()
+
+// Dark Steel Upgrade "Spoon"
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('enderio:item_dark_steel_upgrade', 1).withNbt(['enderio:dsu': 'enderio:spoon']))
+ .input(item('enderio:item_dark_steel_upgrade'), item('minecraft:golden_shovel'))
+ .register()
+
+// Dark Steel Upgrade "Step Assist"
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:item_dark_steel_upgrade', 1).withNbt(['enderio:dsu': 'enderio:step_assist']))
+ .shape([
+ [null, null, item('minecraft:brick')],
+ [null, item('minecraft:brick'), item('minecraft:brick')],
+ [item('minecraft:brick'), item('minecraft:brick'), item('enderio:item_dark_steel_upgrade')]
+ ])
+ .register()
+
+// Dark Steel Upgrade "Flippers"
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('enderio:item_dark_steel_upgrade', 1).withNbt(['enderio:dsu': 'enderio:swim']))
+ .input(item('enderio:item_dark_steel_upgrade'), item('minecraft:waterlily'))
+ .register()
+
+// Dark Steel Upgrade "Explosive lv1"
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('enderio:item_dark_steel_upgrade', 1).withNbt(['enderio:dsu': 'enderio:tnt']))
+ .input(item('enderio:item_dark_steel_upgrade'), item('minecraft:tnt'), mi('gearWood'))
+ .register()
+
+// Dark Steel Upgrade "Explosive lv2"
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('enderio:item_dark_steel_upgrade', 1).withNbt(['enderio:dsu': 'enderio:tnt1']))
+ .input(item('enderio:item_dark_steel_upgrade'), item('minecraft:tnt'), mi('gearStone'))
+ .register()
+
+// Dark Steel Upgrade "Explosive lv3"
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('enderio:item_dark_steel_upgrade', 1).withNbt(['enderio:dsu': 'enderio:tnt2']))
+ .input(item('enderio:item_dark_steel_upgrade'), item('minecraft:tnt'), mi('gearElectricalSteel'))
+ .register()
+
+// Dark Steel Upgrade "Explosive lv4"
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('enderio:item_dark_steel_upgrade', 1).withNbt(['enderio:dsu': 'enderio:tnt3']))
+ .input(item('enderio:item_dark_steel_upgrade'), item('minecraft:tnt'), mi('gearEnergeticAlloy'))
+ .register()
+
+// Dark Steel Upgrade "Explosive lv5"
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('enderio:item_dark_steel_upgrade', 1).withNbt(['enderio:dsu': 'enderio:tnt4']))
+ .input(item('enderio:item_dark_steel_upgrade'), item('minecraft:tnt'), mi('gearVibrantAlloy'))
+ .register()
+
+// Dark Steel Upgrade "The One Probe"
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('enderio:item_dark_steel_upgrade', 1).withNbt(['enderio:dsu': 'enderio:top']))
+ .input(item('enderio:item_dark_steel_upgrade'), item('theoneprobe:probe'))
+ .register()
+
+// Dark Steel Upgrade "Travel"
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('enderio:item_dark_steel_upgrade', 1).withNbt(['enderio:dsu': 'enderio:travel']))
+ .input(item('enderio:item_dark_steel_upgrade'), ore('itemEnderCrystal'))
+ .register()
+
+// Extract Speed Upgrade
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:item_extract_speed_upgrade'))
+ .shape([
+ [mi('plateConstructionAlloy'), mi('plateConstructionAlloy'), mi('plateConstructionAlloy')],
+ [mi('plateElectricalSteel'), item('minecraft:piston'), mi('plateElectricalSteel')],
+ [mi('plateElectricalSteel'), item('enderio:item_dark_steel_upgrade'), mi('plateElectricalSteel')]
+ ])
+ .register()
+
+// Extract Speed Downgrade
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:item_extract_speed_downgrade'))
+ .shape([
+ [mi('plateConstructionAlloy'), mi('plateConstructionAlloy'), mi('plateConstructionAlloy')],
+ [mi('plateElectricalSteel'), item('minecraft:sticky_piston'), mi('plateElectricalSteel')],
+ [mi('plateElectricalSteel'), item('enderio:item_dark_steel_upgrade'), mi('plateElectricalSteel')]
+ ])
+ .register()
diff --git a/overrides/groovy/postInit/normal/EnderIO/C_Materials.groovy b/overrides/groovy/postInit/normal/EnderIO/C_Materials.groovy
new file mode 100644
index 00000000..3aa43428
--- /dev/null
+++ b/overrides/groovy/postInit/normal/EnderIO/C_Materials.groovy
@@ -0,0 +1,515 @@
+import gregtech.api.recipes.RecipeMap
+
+def alloy_smelter = RecipeMap.getByName("alloy_smelter")
+def assembler = RecipeMap.getByName("assembler")
+def electric_blast_furnace = RecipeMap.getByName("electric_blast_furnace")
+def macerator = RecipeMap.getByName("macerator")
+def mixer = RecipeMap.getByName("mixer")
+def compressor = RecipeMap.getByName("compressor")
+def rock_breaker = RecipeMap.getByName("rock_breaker")
+
+
+////////////////////////////////////////
+// Items
+////////////////////////////////////////
+// Simple Machine Parts
+mods.jei.ingredient.hide(item('enderio:item_material', 69))
+
+// Machine Parts
+mods.jei.ingredient.hide(item('enderio:item_material', 2))
+
+// Enhanced Machine Parts
+mods.jei.ingredient.hide(item('enderio:item_material', 68))
+
+// Simple Machine Chassis
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:item_material'))
+ .shape([
+ [ore('barsIron'), mi('plateIron'), ore('barsIron')],
+ [mi('plateIron'), item('enderio:item_material', 20), mi('plateIron')],
+ [ore('barsIron'), mi('plateIron'), ore('barsIron')]
+ ])
+ .register()
+
+// Industrial Machine Chassis
+alloy_smelter.recipeBuilder()
+ .inputs(
+ ore('itemSimpleMachineChassi'),
+ ore('dyeMachine')
+ )
+ .outputs(item('enderio:item_material', 1))
+ .duration(100)
+ .EUt(480)
+ .buildAndRegister()
+
+// Soul Machine Chassis
+alloy_smelter.recipeBuilder()
+ .inputs(
+ ore('itemSimpleMachineChassi'),
+ ore('dyeSoulMachine')
+ )
+ .outputs(item('enderio:item_material', 53))
+ .duration(100)
+ .EUt(480)
+ .buildAndRegister()
+
+// Enhanced Machine Chassis
+alloy_smelter.recipeBuilder()
+ .inputs(
+ ore('itemEndSteelMachineChassi'),
+ ore('dyeEnhancedMachine')
+ )
+ .outputs(item('enderio:item_material', 54))
+ .duration(100)
+ .EUt(480)
+ .buildAndRegister()
+
+// Soulless Machine Chassis
+assembler.recipeBuilder()
+ .inputs(
+ item('enderio:block_industrial_insulation') * 6,
+ ore('skullGuardianDiode') * 2,
+ ore('itemSoulMachineChassi')
+ )
+ .outputs(item('enderio:item_material', 55))
+ .duration(50)
+ .EUt(480)
+ .buildAndRegister()
+
+// End Steel Chassis
+assembler.recipeBuilder()
+ .inputs(
+ item('enderio:block_end_iron_bars') * 4,
+ mi('plateEndSteel', 4),
+ ore('skullEnderResonator')
+ )
+ .outputs(item('enderio:item_material', 66))
+ .duration(50)
+ .EUt(480)
+ .buildAndRegister()
+
+// Photovoltaic Plate
+mods.jei.ingredient.hide(item('enderio:item_material', 3))
+
+// Conduit Binder
+electric_blast_furnace.recipeBuilder()
+ .inputs(
+ mi('dustClay', 3),
+ mi('dustAndesite'),
+ mi('dustDiorite')
+ )
+ .property('temperature', 1700)
+ .outputs(item('enderio:item_material', 4))
+ .duration(20)
+ .EUt(480)
+ .buildAndRegister()
+
+// Silicon
+mods.jei.ingredient.hide(item('enderio:item_material', 5))
+// .remove();
+
+// Glider Wing
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:item_material', 6))
+ .shape([
+ [null, null, mi('stickDarkSteel')],
+ [null, mi('stickDarkSteel'), item('minecraft:leather')],
+ [mi('stickDarkSteel'), item('minecraft:leather'), item('minecraft:leather')]
+ ])
+ .register()
+
+// Glider Wings
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:item_material', 7))
+ .shape([
+ [mi('screwDarkSteel'), mi('stickDarkSteel'), mi('screwDarkSteel')],
+ [mi('ringDarkSteel'), mi('stickLongDarkSteel'), mi('ringDarkSteel')],
+ [item('enderio:item_material', 6), mi('stickLongDarkSteel'), item('enderio:item_material', 6)]
+ ])
+ .register()
+
+// Nutritious Stick
+mods.jei.ingredient.hide(item('enderio:item_material', 8))
+
+// Wooden Gear
+mods.jei.ingredient.hide(item('enderio:item_material', 9))
+mods.minecraft.ore_dict.remove('gearWood', item('enderio:item_material', 9))
+
+// Stone Gear
+mods.jei.ingredient.hide(item('enderio:item_material', 10))
+mods.minecraft.ore_dict.remove('gearStone', item('enderio:item_material', 10))
+
+// Infinity Bimetal Gear
+mods.jei.ingredient.hide(item('enderio:item_material', 11))
+
+// Energized Bimetal Gear
+mods.jei.ingredient.hide(item('enderio:item_material', 12))
+
+// Vibrant Bimetal Gear
+mods.jei.ingredient.hide(item('enderio:item_material', 13))
+
+// Dark Bimetal Gear
+mods.jei.ingredient.hide(item('enderio:item_material', 73))
+
+// Flour
+mods.jei.ingredient.hide(item('enderio:item_material', 21))
+mods.minecraft.ore_dict.remove('dustWheat', item('enderio:item_material', 21))
+
+// Conduit Binder Composite
+mods.jei.ingredient.hide(item('enderio:item_material', 22))
+
+// Coal Powder
+mods.jei.ingredient.hide(item('enderio:item_material', 23))
+mods.minecraft.ore_dict.remove('dustCoal', item('enderio:item_material', 23))
+
+// Iron Powder
+mods.jei.ingredient.hide(item('enderio:item_material', 24))
+mods.minecraft.ore_dict.remove('dustIron', item('enderio:item_material', 24))
+
+// Gold Powder
+mods.jei.ingredient.hide(item('enderio:item_material', 25))
+mods.minecraft.ore_dict.remove('dustGold', item('enderio:item_material', 25))
+
+// Copper Powder
+mods.jei.ingredient.hide(item('enderio:item_material', 26))
+mods.minecraft.ore_dict.remove('dustCopper', item('enderio:item_material', 26))
+
+// Tin Powder
+mods.jei.ingredient.hide(item('enderio:item_material', 27))
+mods.minecraft.ore_dict.remove('dustTin', item('enderio:item_material', 27))
+
+// Ender Pearl Powder
+mods.jei.ingredient.hide(item('enderio:item_material', 28))
+// .remove();
+
+// Obsidian Powder
+mods.jei.ingredient.hide(item('enderio:item_material', 29))
+mods.minecraft.ore_dict.remove('dustObsidian', item('enderio:item_material', 29))
+
+// Cobalt Powder
+mods.jei.ingredient.hide(item('enderio:item_material', 31))
+mods.minecraft.ore_dict.remove('dustCobalt', item('enderio:item_material', 31))
+
+// Lapis Powder
+mods.jei.ingredient.hide(item('enderio:item_material', 32))
+mods.minecraft.ore_dict.remove('dustLapis', item('enderio:item_material', 32))
+
+// Quartz Powder
+mods.jei.ingredient.hide(item('enderio:item_material', 33))
+mods.minecraft.ore_dict.remove('dustNetherQuartz', item('enderio:item_material', 33))
+
+// Confusing Powder
+mods.jei.ingredient.hide(item('enderio:item_material', 61))
+
+// Soul Powder
+mods.jei.ingredient.hide(item('enderio:item_material', 74))
+
+// Glowstone Dust
+mods.jei.ingredient.hide(item('enderio:item_material', 76))
+
+// Grains of Prescience
+macerator.recipeBuilder()
+ .inputs(ore('itemPrecientCrystal'))
+ .outputs(item('enderio:item_material', 34))
+ .duration(20)
+ .EUt(2)
+ .buildAndRegister()
+mixer.recipeBuilder()
+ .circuitMeta(2)
+ .inputs(
+ ore('itemVibrantPowder'),
+ mi('dustPlatinum')
+ )
+ .outputs(item('enderio:item_material', 34) * 2)
+ .duration(100)
+ .EUt(480)
+ .buildAndRegister()
+
+// Grains of Vibrant
+macerator.recipeBuilder()
+ .inputs(ore('itemVibrantCrystal'))
+ .outputs(item('enderio:item_material', 35))
+ .duration(20)
+ .EUt(2)
+ .buildAndRegister()
+mixer.recipeBuilder()
+ .circuitMeta(2)
+ .inputs(
+ mi('dustVibrantAlloy'),
+ mi('dustEmerald')
+ )
+ .outputs(item('enderio:item_material', 35) * 2)
+ .duration(100)
+ .EUt(480)
+ .buildAndRegister()
+
+// Grains of Piezallity
+macerator.recipeBuilder()
+ .inputs(ore('itemPulsatingCrystal'))
+ .outputs(item('enderio:item_material', 36))
+ .duration(20)
+ .EUt(2)
+ .buildAndRegister()
+mixer.recipeBuilder()
+ .circuitMeta(2)
+ .inputs(
+ mi('dustPulsatingIron'),
+ mi('dustDiamond')
+ )
+ .outputs(item('enderio:item_material', 36) * 2)
+ .duration(100)
+ .EUt(480)
+ .buildAndRegister()
+
+// Grains of the End
+macerator.recipeBuilder()
+ .inputs(ore('itemEnderCrystal'))
+ .outputs(item('enderio:item_material', 37))
+ .duration(20)
+ .EUt(2)
+ .buildAndRegister()
+mixer.recipeBuilder()
+ .circuitMeta(2)
+ .inputs(
+ ore('itemVibrantPowder'),
+ mi('dustEndSteel')
+ )
+ .fluidInputs(fluid('xpjuice') * 8000)
+ .outputs(item('enderio:item_material', 37) * 2)
+ .duration(600)
+ .EUt(480)
+ .buildAndRegister()
+
+// Photovoltaic Composite
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:item_material', 38))
+ .shape([
+ [mi('dustLapis'), mi('dustCoal'), null],
+ [mi('dustSilicon'), null, null],
+ [null, null, null]
+ ])
+ .register()
+
+// Clippings and Trimmings
+macerator.recipeBuilder()
+ .inputs(ore('grass'))
+ .outputs(item('enderio:item_material', 46))
+ .duration(100)
+ .EUt(480)
+ .buildAndRegister()
+
+// Twigs and Prunings
+macerator.recipeBuilder()
+ .inputs(item('minecraft:deadbush'))
+ .outputs(item('enderio:item_material', 47))
+ .duration(100)
+ .EUt(480)
+ .buildAndRegister()
+
+// Organic Green Dye
+alloy_smelter.recipeBuilder()
+ .inputs(
+ item('enderio:item_material', 46) * 6,
+ item('minecraft:egg')
+ )
+ .outputs(item('enderio:item_material', 48))
+ .duration(56)
+ .EUt(480)
+ .buildAndRegister()
+
+// Organic Brown Dye
+alloy_smelter.recipeBuilder()
+ .inputs(
+ item('enderio:item_material', 47) * 6,
+ item('minecraft:egg')
+ )
+ .outputs(item('enderio:item_material', 49))
+ .duration(56)
+ .EUt(480)
+ .buildAndRegister()
+
+// Organic Black Dye
+alloy_smelter.recipeBuilder()
+ .inputs(
+ mi('dustCoal', 3),
+ item('minecraft:egg')
+ )
+ .outputs(item('enderio:item_material', 50))
+ .duration(56)
+ .EUt(480)
+ .buildAndRegister()
+
+// Industrial Dye Blend
+mixer.recipeBuilder()
+ .inputs(
+ mi('dustNetherQuartz', 4),
+ mi('dustLapis', 2),
+ ore('dyeGreen') * 2,
+ ore('dyeBlack')
+ )
+ .outputs(item('enderio:item_material', 51) * 9)
+ .duration(100)
+ .EUt(480)
+ .buildAndRegister()
+
+// Soul Attuned Dye Blend
+mixer.recipeBuilder()
+ .inputs(
+ mi('dustNetherQuartz', 4),
+ mi('dustSoularium', 2),
+ ore('dyeBrown') * 2,
+ ore('dyeBlack')
+ )
+ .outputs(item('enderio:item_material', 52) * 9)
+ .duration(100)
+ .EUt(480)
+ .buildAndRegister()
+
+// Enhanced Dye Blend
+mixer.recipeBuilder()
+ .inputs(
+ ore('itemPulsatingPowder') * 4,
+ mi('dustNetherQuartz', 4),
+ ore('dyeBlack')
+ )
+ .outputs(item('enderio:item_material', 67) * 9)
+ .duration(100)
+ .EUt(480)
+ .buildAndRegister()
+
+// Wireless Energy Transmitter
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:item_material', 65))
+ .shape([
+ [item('minecraft:dye', 15), mi('plateElectricalSteel'), null],
+ [null, item('minecraft:dye', 15), mi('plateElectricalSteel')],
+ [item('minecraft:dye', 15), mi('plateElectricalSteel'), null]
+ ])
+ .register()
+
+// Ender Fragment
+mods.jei.ingredient.hide(item('enderio:item_material', 62))
+
+// Withering Dust
+mods.jei.ingredient.hide(item('enderio:item_material', 63))
+
+// Remote Awareness Upgrade
+mods.jei.ingredient.hide(item('enderio:item_material', 64))
+
+// Cake Base
+mods.jei.ingredient.hide(item('enderio:item_material', 70))
+
+// Netherotta
+mods.jei.ingredient.hide(item('enderio:item_material', 72))
+
+// Infinity Rod
+mods.jei.ingredient.hide(item('enderio:item_material', 71))
+
+// Infinity Reagent
+mods.jei.ingredient.hide(item('enderio:item_material', 75))
+
+// Animal Token
+mods.jei.ingredient.hide(item('enderio:item_material', 78))
+
+// Monster Token
+mods.jei.ingredient.hide(item('enderio:item_material', 79))
+
+// Player Token
+mods.jei.ingredient.hide(item('enderio:item_material', 80))
+
+// Unfired Death Urn
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('enderio:item_material', 81))
+ .shape([
+ [ore('itemClay'), ore('itemPulsatingPowder'), ore('itemClay')],
+ [ore('itemClay'), null, ore('itemClay')],
+ [ore('itemClay'), ore('itemClay'), ore('itemClay')]
+ ])
+ .register()
+
+// Death Urn
+alloy_smelter.recipeBuilder()
+ .inputs(
+ item('minecraft:dye', 15) * 7,
+ item('enderio:item_material', 81)
+ )
+ .outputs(item('enderio:block_death_pouch'))
+ .duration(56)
+ .EUt(480)
+ .buildAndRegister()
+
+// Infinity Dust
+macerator.recipeBuilder()
+ .inputs(item('enderio:item_material', 20))
+ .outputs(item('enderio:block_infinity_fog'))
+ .duration(500)
+ .EUt(480)
+ .buildAndRegister()
+
+// Grains of Infinity
+macerator.recipeBuilder()
+ .inputs(item('enderio:block_infinity'))
+ .outputs(item('enderio:item_material', 20) * 4)
+ .duration(500)
+ .EUt(480)
+ .buildAndRegister()
+macerator.recipeBuilder()
+ .inputs(item('enderio:block_infinity', 1))
+ .outputs(item('enderio:item_material', 20) * 16)
+ .duration(500)
+ .EUt(480)
+ .buildAndRegister()
+macerator.recipeBuilder()
+ .inputs(item('enderio:block_infinity', 2))
+ .outputs(item('enderio:item_material', 20) * 64)
+ .duration(500)
+ .EUt(480)
+ .buildAndRegister()
+
+// Infinity Dust Block
+compressor.recipeBuilder()
+ .inputs(item('enderio:item_material', 20) * 4)
+ .outputs(item('enderio:block_infinity'))
+ .duration(500)
+ .EUt(480)
+ .buildAndRegister()
+rock_breaker.recipeBuilder()
+ .notConsumable(item('enderio:block_infinity'))
+ .outputs(item('enderio:block_infinity'))
+ .duration(100)
+ .EUt(480)
+ .buildAndRegister()
+
+// Compressed Infinity Dust Block
+compressor.recipeBuilder()
+ .inputs(item('enderio:block_infinity') * 4)
+ .outputs(item('enderio:block_infinity', 1))
+ .duration(500)
+ .EUt(480)
+ .buildAndRegister()
+
+// Double Compressed Infinity Dust Block
+compressor.recipeBuilder()
+ .inputs(item('enderio:block_infinity', 1) * 4)
+ .outputs(item('enderio:block_infinity', 2))
+ .duration(500)
+ .EUt(480)
+ .buildAndRegister()
+
+// Glowstone Nano-Particles
+macerator.recipeBuilder()
+ .inputs(ore('itemClayedGlowstone'))
+ .outputs(item('enderio:block_holier_fog'))
+ .duration(56)
+ .EUt(480)
+ .buildAndRegister()
+
+// Glowstone Nano-Particles
+mods.jei.ingredient.hide(item('enderio:block_holy_fog'))
+mods.jei.ingredient.hide(item('enderio:block_holier_fog'))
+
+// Owl Egg
+mods.jei.ingredient.hide(item('enderio:item_owl_egg'))
+
+// Grainy Capacitor
+mods.jei.ingredient.hide(item('enderio:item_capacitor_grainy'))
diff --git a/overrides/groovy/postInit/normal/EnderIO/D_Blocks.groovy b/overrides/groovy/postInit/normal/EnderIO/D_Blocks.groovy
new file mode 100644
index 00000000..b0f69a60
--- /dev/null
+++ b/overrides/groovy/postInit/normal/EnderIO/D_Blocks.groovy
@@ -0,0 +1,134 @@
+import gregtech.api.recipes.RecipeMap
+
+def alloy_smelter = RecipeMap.getByName("alloy_smelter")
+
+
+// Dark Paper Anvil
+alloy_smelter.recipeBuilder()
+ .inputs(
+ item('enderio:block_dark_steel_anvil'),
+ ore('paperBlack')
+ )
+ .outputs(item('enderio:block_dark_paper_anvil'))
+ .duration(200)
+ .EUt(480)
+ .buildAndRegister()
+
+// Self-resetting Levers
+mods.jei.ingredient.hide(item('enderio:block_self_resetting_lever5'))
+mods.jei.ingredient.hide(item('enderio:block_self_resetting_lever10'))
+mods.jei.ingredient.hide(item('enderio:block_self_resetting_lever30'))
+mods.jei.ingredient.hide(item('enderio:block_self_resetting_lever60'))
+mods.jei.ingredient.hide(item('enderio:block_self_resetting_lever300'))
+mods.jei.ingredient.hide(item('enderio:block_self_resetting_lever5i'))
+mods.jei.ingredient.hide(item('enderio:block_self_resetting_lever10i'))
+mods.jei.ingredient.hide(item('enderio:block_self_resetting_lever30i'))
+mods.jei.ingredient.hide(item('enderio:block_self_resetting_lever60i'))
+mods.jei.ingredient.hide(item('enderio:block_self_resetting_lever300i'))
+
+// Decoration Blocks
+mods.jei.ingredient.hide(item('enderio:block_decoration1', 32767))
+mods.jei.ingredient.hide(item('enderio:block_decoration2', 32767))
+mods.jei.ingredient.hide(item('enderio:block_decoration3', 32767))
+
+// Industrial Insulation
+alloy_smelter.recipeBuilder()
+ .inputs(
+ item('enderio:item_material', 51) * 3,
+ item('minecraft:wool')
+ )
+ .outputs(item('enderio:block_industrial_insulation'))
+ .duration(100)
+ .EUt(480)
+ .buildAndRegister()
+
+// TNTs
+mods.jei.ingredient.hide(item('enderio:block_confusion_charge'))
+mods.jei.ingredient.hide(item('enderio:block_concussion_charge'))
+mods.jei.ingredient.hide(item('enderio:block_ender_charge'))
+
+// Pressure Plates
+mods.jei.ingredient.hide(item('enderio:block_painted_pressure_plate', 32767))
+
+// Fused Quartz
+mods.jei.ingredient.hide(item('enderio:block_fused_quartz', 1))
+mods.jei.ingredient.hide(item('enderio:block_fused_quartz', 2))
+mods.jei.ingredient.hide(item('enderio:block_fused_quartz', 3))
+mods.jei.ingredient.hide(item('enderio:block_fused_quartz', 4))
+mods.jei.ingredient.hide(item('enderio:block_fused_quartz', 5))
+mods.jei.ingredient.hide(item('enderio:block_fused_quartz', 6))
+mods.jei.ingredient.hide(item('enderio:block_fused_quartz', 7))
+mods.jei.ingredient.hide(item('enderio:block_fused_quartz', 8))
+mods.jei.ingredient.hide(item('enderio:block_fused_quartz', 9))
+mods.jei.ingredient.hide(item('enderio:block_fused_quartz', 10))
+mods.jei.ingredient.hide(item('enderio:block_fused_quartz', 11))
+mods.jei.ingredient.hide(item('enderio:block_fused_quartz', 12))
+mods.jei.ingredient.hide(item('enderio:block_fused_quartz', 13))
+mods.jei.ingredient.hide(item('enderio:block_fused_quartz', 14))
+mods.jei.ingredient.hide(item('enderio:block_fused_quartz', 15))
+
+// Quartz Clear Glass
+mods.jei.ingredient.hide(item('enderio:block_fused_glass', 1))
+mods.jei.ingredient.hide(item('enderio:block_fused_glass', 2))
+mods.jei.ingredient.hide(item('enderio:block_fused_glass', 3))
+mods.jei.ingredient.hide(item('enderio:block_fused_glass', 4))
+mods.jei.ingredient.hide(item('enderio:block_fused_glass', 5))
+mods.jei.ingredient.hide(item('enderio:block_fused_glass', 6))
+mods.jei.ingredient.hide(item('enderio:block_fused_glass', 7))
+mods.jei.ingredient.hide(item('enderio:block_fused_glass', 8))
+mods.jei.ingredient.hide(item('enderio:block_fused_glass', 9))
+mods.jei.ingredient.hide(item('enderio:block_fused_glass', 10))
+mods.jei.ingredient.hide(item('enderio:block_fused_glass', 11))
+mods.jei.ingredient.hide(item('enderio:block_fused_glass', 12))
+mods.jei.ingredient.hide(item('enderio:block_fused_glass', 13))
+mods.jei.ingredient.hide(item('enderio:block_fused_glass', 14))
+mods.jei.ingredient.hide(item('enderio:block_fused_glass', 15))
+
+// Other Glass
+mods.jei.ingredient.hide(item('enderio:block_enlightened_fused_quartz', 32767))
+mods.jei.ingredient.hide(item('enderio:block_holy_fused_quartz', 32767))
+mods.jei.ingredient.hide(item('enderio:block_holy_fused_glass', 32767))
+mods.jei.ingredient.hide(item('enderio:block_holy_enlightened_fused_glass', 32767))
+mods.jei.ingredient.hide(item('enderio:block_holy_dark_fused_quartz', 32767))
+mods.jei.ingredient.hide(item('enderio:block_holy_dark_fused_glass', 32767))
+mods.jei.ingredient.hide(item('enderio:block_unholy_fused_quartz', 32767))
+mods.jei.ingredient.hide(item('enderio:block_enlightened_fused_quartz', 32767))
+mods.jei.ingredient.hide(item('enderio:block_enlightened_fused_glass', 32767))
+mods.jei.ingredient.hide(item('enderio:block_dark_fused_quartz', 32767))
+mods.jei.ingredient.hide(item('enderio:block_dark_fused_glass', 32767))
+mods.jei.ingredient.hide(item('enderio:block_holy_fused_quartz', 32767))
+mods.jei.ingredient.hide(item('enderio:block_holy_fused_glass', 32767))
+mods.jei.ingredient.hide(item('enderio:block_holy_enlightened_fused_quartz', 32767))
+mods.jei.ingredient.hide(item('enderio:block_holy_enlightened_fused_glass', 32767))
+mods.jei.ingredient.hide(item('enderio:block_holy_dark_fused_quartz', 32767))
+mods.jei.ingredient.hide(item('enderio:block_holy_dark_fused_glass', 32767))
+mods.jei.ingredient.hide(item('enderio:block_unholy_fused_quartz', 32767))
+mods.jei.ingredient.hide(item('enderio:block_unholy_fused_glass', 32767))
+mods.jei.ingredient.hide(item('enderio:block_unholy_enlightened_fused_quartz', 32767))
+mods.jei.ingredient.hide(item('enderio:block_unholy_enlightened_fused_glass', 32767))
+mods.jei.ingredient.hide(item('enderio:block_unholy_dark_fused_quartz', 32767))
+mods.jei.ingredient.hide(item('enderio:block_unholy_dark_fused_glass', 32767))
+mods.jei.ingredient.hide(item('enderio:block_pasture_fused_quartz', 32767))
+mods.jei.ingredient.hide(item('enderio:block_pasture_fused_glass', 32767))
+mods.jei.ingredient.hide(item('enderio:block_pasture_enlightened_fused_quartz', 32767))
+mods.jei.ingredient.hide(item('enderio:block_pasture_enlightened_fused_glass', 32767))
+mods.jei.ingredient.hide(item('enderio:block_pasture_dark_fused_quartz', 32767))
+mods.jei.ingredient.hide(item('enderio:block_pasture_dark_fused_glass', 32767))
+mods.jei.ingredient.hide(item('enderio:block_not_holy_fused_quartz', 32767))
+mods.jei.ingredient.hide(item('enderio:block_not_holy_fused_glass', 32767))
+mods.jei.ingredient.hide(item('enderio:block_not_holy_enlightened_fused_quartz', 32767))
+mods.jei.ingredient.hide(item('enderio:block_not_holy_enlightened_fused_glass', 32767))
+mods.jei.ingredient.hide(item('enderio:block_not_holy_dark_fused_quartz', 32767))
+mods.jei.ingredient.hide(item('enderio:block_not_holy_dark_fused_glass', 32767))
+mods.jei.ingredient.hide(item('enderio:block_not_unholy_fused_quartz', 32767))
+mods.jei.ingredient.hide(item('enderio:block_not_unholy_fused_glass', 32767))
+mods.jei.ingredient.hide(item('enderio:block_not_unholy_enlightened_fused_quartz', 32767))
+mods.jei.ingredient.hide(item('enderio:block_not_unholy_enlightened_fused_glass', 32767))
+mods.jei.ingredient.hide(item('enderio:block_not_unholy_dark_fused_quartz', 32767))
+mods.jei.ingredient.hide(item('enderio:block_not_unholy_dark_fused_glass', 32767))
+mods.jei.ingredient.hide(item('enderio:block_not_pasture_fused_quartz', 32767))
+mods.jei.ingredient.hide(item('enderio:block_not_pasture_fused_glass', 32767))
+mods.jei.ingredient.hide(item('enderio:block_not_pasture_enlightened_fused_quartz', 32767))
+mods.jei.ingredient.hide(item('enderio:block_not_pasture_enlightened_fused_glass', 32767))
+mods.jei.ingredient.hide(item('enderio:block_not_pasture_dark_fused_quartz', 32767))
+mods.jei.ingredient.hide(item('enderio:block_not_pasture_dark_fused_glass', 32767))
diff --git a/overrides/groovy/postInit/normal/EnderIO/globals.groovy b/overrides/groovy/postInit/normal/EnderIO/globals.groovy
new file mode 100644
index 00000000..47eb5f70
--- /dev/null
+++ b/overrides/groovy/postInit/normal/EnderIO/globals.groovy
@@ -0,0 +1,121 @@
+////////////////////////////////////////
+// Materials
+////////////////////////////////////////
+// Ball
+def balls = [
+ item('enderio:item_alloy_ball'),
+ item('enderio:item_alloy_ball', 1),
+ item('enderio:item_alloy_ball', 2),
+ item('enderio:item_alloy_ball', 3),
+ item('enderio:item_alloy_ball', 4),
+ item('enderio:item_alloy_ball', 5),
+ item('enderio:item_alloy_ball', 6),
+ item('enderio:item_alloy_ball', 7),
+ item('enderio:item_alloy_ball', 8),
+ item('enderio:item_alloy_ball', 9),
+ item('enderio:item_alloy_endergy_ball'),
+ item('enderio:item_alloy_endergy_ball', 1),
+ item('enderio:item_alloy_endergy_ball', 2),
+ item('enderio:item_alloy_endergy_ball', 3),
+ item('enderio:item_alloy_endergy_ball', 4),
+ item('enderio:item_alloy_endergy_ball', 5),
+ item('enderio:item_alloy_endergy_ball', 6),
+ item('enderio:item_material', 57),
+ item('enderio:item_material', 58),
+ item('enderio:item_material', 59)
+]
+
+// Nugget
+def nuggets = [
+ item('enderio:item_alloy_nugget'),
+ item('enderio:item_alloy_nugget', 1),
+ item('enderio:item_alloy_nugget', 2),
+ item('enderio:item_alloy_nugget', 3),
+ item('enderio:item_alloy_nugget', 4),
+ item('enderio:item_alloy_nugget', 5),
+ item('enderio:item_alloy_nugget', 6),
+ item('enderio:item_alloy_nugget', 7),
+ item('enderio:item_alloy_nugget', 8),
+ item('enderio:item_alloy_nugget', 9),
+ item('enderio:item_alloy_endergy_nugget'),
+ item('enderio:item_alloy_endergy_nugget', 1),
+ item('enderio:item_alloy_endergy_nugget', 2),
+ item('enderio:item_alloy_endergy_nugget', 3),
+ item('enderio:item_alloy_endergy_nugget', 4),
+ item('enderio:item_alloy_endergy_nugget', 5),
+ item('enderio:item_alloy_endergy_nugget', 6)
+]
+
+// Ingot
+def ingots = [
+ item('enderio:item_alloy_ingot'),
+ item('enderio:item_alloy_ingot', 1),
+ item('enderio:item_alloy_ingot', 2),
+ item('enderio:item_alloy_ingot', 3),
+ item('enderio:item_alloy_ingot', 4),
+ item('enderio:item_alloy_ingot', 5),
+ item('enderio:item_alloy_ingot', 6),
+ item('enderio:item_alloy_ingot', 7),
+ item('enderio:item_alloy_ingot', 8),
+ item('enderio:item_alloy_ingot', 9),
+ item('enderio:item_alloy_endergy_ingot'),
+ item('enderio:item_alloy_endergy_ingot', 1),
+ item('enderio:item_alloy_endergy_ingot', 2),
+ item('enderio:item_alloy_endergy_ingot', 3),
+ item('enderio:item_alloy_endergy_ingot', 4),
+ item('enderio:item_alloy_endergy_ingot', 5),
+ item('enderio:item_alloy_endergy_ingot', 6)
+]
+
+// Block
+def blocks = [
+ item('enderio:block_alloy'),
+ item('enderio:block_alloy', 1),
+ item('enderio:block_alloy', 2),
+ item('enderio:block_alloy', 3),
+ item('enderio:block_alloy', 4),
+ item('enderio:block_alloy', 5),
+ item('enderio:block_alloy', 6),
+ item('enderio:block_alloy', 7),
+ item('enderio:block_alloy', 8),
+ item('enderio:block_alloy', 9),
+ item('enderio:block_alloy_endergy'),
+ item('enderio:block_alloy_endergy', 1),
+ item('enderio:block_alloy_endergy', 2),
+ item('enderio:block_alloy_endergy', 3),
+ item('enderio:block_alloy_endergy', 4),
+ item('enderio:block_alloy_endergy', 5),
+ item('enderio:block_alloy_endergy', 6)
+]
+
+
+// Set Recipe
+// Ball
+balls.each { ball ->
+ mods.jei.ingredient.hide(ball)
+}
+
+// Nugget
+nuggets.each { nugget ->
+ mods.jei.ingredient.hide(nugget)
+}
+
+// Ingot
+ingots.each { ingot ->
+ mods.jei.ingredient.hide(ingot)
+ mods.minecraft.furnace.removeByOutput(ingot)
+}
+
+// Block
+blocks.each { block ->
+ mods.jei.ingredient.hide(block)
+}
+
+// Gear
+mods.minecraft.ore_dict.add('gearElectricalSteel', item('enderio:item_material', 11))
+mods.minecraft.ore_dict.add('gearEnergeticAlloy', item('enderio:item_material', 12))
+mods.minecraft.ore_dict.add('gearVibrantAlloy', item('enderio:item_material', 13))
+
+// Capacitor
+mods.minecraft.ore_dict.add('eio.capacitor', item('enderio:item_basic_capacitor'))
+mods.minecraft.ore_dict.add('eio.capacitor', item('enderio:item_capacitor_silver'))
diff --git a/overrides/groovy/postInit/normal/EnderStorage.groovy b/overrides/groovy/postInit/normal/EnderStorage.groovy
new file mode 100644
index 00000000..bda87562
--- /dev/null
+++ b/overrides/groovy/postInit/normal/EnderStorage.groovy
@@ -0,0 +1,53 @@
+import gregtech.api.recipes.RecipeMap
+
+def assembler = RecipeMap.getByName("assembler")
+
+// ########################################
+// Items
+// ########################################
+// Pouch
+mods.minecraft.crafting.removeByOutput(item('enderstorage:ender_pouch', 0))
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('enderstorage:ender_pouch', 0))
+ .input(item('enderstorage:ender_pouch', 0))
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(ore('foilBronze') * 4, item('minecraft:leather') * 3, ore('wool'), mi('cover.ender_fluid_link'))
+ .outputs(item('enderstorage:ender_pouch', 0))
+ .duration(400)
+ .EUt(480)
+ .buildAndRegister()
+
+
+
+// ########################################
+// Blocks
+// ########################################
+// Chest
+mods.minecraft.crafting.removeByOutput(item('enderstorage:ender_storage', 0))
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('enderstorage:ender_storage', 0))
+ .input(item('enderstorage:ender_storage', 0))
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(mi('screwBronze', 8), item('enderio:block_reinforced_obsidian') * 2, ore('wool'), mi('cover.ender_fluid_link'), mi('conveyor.module.hv'), mi('crate.bronze'))
+ .outputs(item('enderstorage:ender_storage', 0))
+ .duration(400)
+ .EUt(480)
+ .buildAndRegister()
+
+// Tank
+mods.minecraft.crafting.removeByOutput(item('enderstorage:ender_storage', 1))
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('enderstorage:ender_storage', 1))
+ .input(item('enderstorage:ender_storage', 1))
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(mi('stickBronze', 4), item('enderio:block_reinforced_obsidian') * 2, ore('wool'), mi('cover.ender_fluid_link'), mi('electric.pump.hv'), mi('drum.bronze'))
+ .outputs(item('enderstorage:ender_storage', 1))
+ .duration(400)
+ .EUt(480)
+ .buildAndRegister()
diff --git a/overrides/groovy/postInit/normal/FluxNetworks.groovy b/overrides/groovy/postInit/normal/FluxNetworks.groovy
new file mode 100644
index 00000000..fac6c8b0
--- /dev/null
+++ b/overrides/groovy/postInit/normal/FluxNetworks.groovy
@@ -0,0 +1,78 @@
+if (!isLoaded('fluxnetworks')) return
+
+import gregtech.api.recipes.RecipeMap
+
+def assembler = RecipeMap.getByName("assembler")
+
+
+////////////////////////////////////////
+// Items
+////////////////////////////////////////
+// Flux
+mods.jei.ingredient.hide(item('fluxnetworks:flux'))
+
+// Flux Core
+mods.jei.ingredient.hide(item('fluxnetworks:fluxcore'))
+
+// Flux Configurator
+mods.minecraft.crafting.removeByOutput(item('fluxnetworks:fluxconfigurator'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('fluxnetworks:fluxconfigurator'))
+ .shape([
+ [null, item('appliedenergistics2:material', 45), mi('quantumeye')],
+ [null, mi('stickDarkSteel'), item('appliedenergistics2:material', 45)],
+ [mi('stickDarkSteel'), null, null]
+ ])
+ .register()
+
+
+////////////////////////////////////////
+// Blocks
+////////////////////////////////////////
+// Flux Block
+mods.jei.ingredient.hide(item('fluxnetworks:fluxblock'))
+
+// Flux Plug
+mods.minecraft.crafting.removeByOutput(item('fluxnetworks:fluxplug'))
+assembler.recipeBuilder()
+ .circuitMeta(4)
+ .inputs(mi('emitter.ev') * 2, mi('sensor.ev') * 2, mi('cover.digital.wireless'), item('appliedenergistics2:smooth_sky_stone_block'))
+ .outputs(item('fluxnetworks:fluxplug'))
+ .duration(200)
+ .EUt(30720)
+ .buildAndRegister()
+
+// Flux Point
+mods.minecraft.crafting.removeByOutput(item('fluxnetworks:fluxpoint'))
+assembler.recipeBuilder()
+ .circuitMeta(6)
+ .inputs(mi('emitter.ev') * 2, mi('sensor.ev') * 2, mi('cover.digital.wireless'), item('appliedenergistics2:smooth_sky_stone_block'))
+ .outputs(item('fluxnetworks:fluxpoint'))
+ .duration(200)
+ .EUt(30720)
+ .buildAndRegister()
+
+// Flux Controller
+mods.minecraft.crafting.removeByOutput(item('fluxnetworks:fluxcontroller'))
+assembler.recipeBuilder()
+ .circuitMeta(8)
+ .inputs(
+ mi('emitter.ev') * 2,
+ mi('sensor.ev') * 2,
+ mi('cover.digital.wireless') * 4,
+ item('gregtech:transparent_casing', 2) * 4,
+ item('appliedenergistics2:smooth_sky_stone_block')
+ )
+ .outputs(item('fluxnetworks:fluxcontroller'))
+ .duration(200)
+ .EUt(30720)
+ .buildAndRegister()
+
+// Flux Storage
+mods.jei.ingredient.hide(item('fluxnetworks:fluxstorage'))
+
+// Herculean Flux Storage
+mods.jei.ingredient.hide(item('fluxnetworks:herculeanfluxstorage'))
+
+// Gargantuan Flux Storage
+mods.jei.ingredient.hide(item('fluxnetworks:gargantuanfluxstorage'))
diff --git a/overrides/groovy/postInit/normal/ForgeMicroblocks.groovy b/overrides/groovy/postInit/normal/ForgeMicroblocks.groovy
new file mode 100644
index 00000000..f9746fde
--- /dev/null
+++ b/overrides/groovy/postInit/normal/ForgeMicroblocks.groovy
@@ -0,0 +1,40 @@
+// ########################################
+// Items
+// ########################################
+// Stone Rod
+mods.minecraft.crafting.removeByOutput(item('microblockcbe:stone_rod'))
+mods.jei.ingredient.hide(item('microblockcbe:stone_rod'))
+mods.minecraft.ore_dict.remove('rodStone', item('microblockcbe:stone_rod'))
+
+// Stone Saw
+mods.minecraft.crafting.removeByOutput(item('microblockcbe:saw_stone'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('microblockcbe:saw_stone'))
+ .shape([
+ [null, ore('craftingToolHardHammer'), null],
+ [item('minecraft:stick'), mi('stickStone'), mi('stickStone')],
+ [item('minecraft:stick'), item('minecraft:flint'), item('minecraft:flint')]
+ ])
+ .register()
+
+// Iron Saw
+mods.minecraft.crafting.removeByOutput(item('microblockcbe:saw_iron'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('microblockcbe:saw_iron'))
+ .shape([
+ [null, ore('craftingToolHardHammer'), null],
+ [item('minecraft:stick'), mi('stickStone'), mi('stickStone')],
+ [item('minecraft:stick'), mi('plateIron'), mi('plateIron')]
+ ])
+ .register()
+
+// Diamond Saw
+mods.minecraft.crafting.removeByOutput(item('microblockcbe:saw_diamond'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('microblockcbe:saw_diamond'))
+ .shape([
+ [null, ore('craftingToolHardHammer'), null],
+ [item('minecraft:stick'), mi('stickStone'), mi('stickStone')],
+ [item('minecraft:stick'), mi('plateDiamond'), mi('plateDiamond')]
+ ])
+ .register()
diff --git a/overrides/groovy/postInit/normal/HotOrNot.groovy b/overrides/groovy/postInit/normal/HotOrNot.groovy
new file mode 100644
index 00000000..38bf21c8
--- /dev/null
+++ b/overrides/groovy/postInit/normal/HotOrNot.groovy
@@ -0,0 +1,5 @@
+// ########################################
+// Items
+// ########################################
+// Iron Tongs
+mods.minecraft.crafting.removeByOutput(item('hotornot:iron_tongs'))
diff --git a/overrides/groovy/postInit/normal/LazyAE2.groovy b/overrides/groovy/postInit/normal/LazyAE2.groovy
new file mode 100644
index 00000000..6ed6125c
--- /dev/null
+++ b/overrides/groovy/postInit/normal/LazyAE2.groovy
@@ -0,0 +1,150 @@
+mods.jei.category.hideCategory('threng.agg')
+mods.jei.category.hideCategory('threng.purify')
+mods.jei.category.hideCategory('threng.etch')
+mods.jei.category.hideCategory('threng.energize')
+
+
+////////////////////////////////////////
+// Items
+////////////////////////////////////////
+// Fluix Steel Ingot
+mods.minecraft.furnace.removeByOutput(item('threng:material'))
+mods.gregtech.electricFurnace.streamRecipes().filter { recipe ->
+ recipe.outputs.any { out -> out.isItemEqual(item('threng:material')) }
+}.removeAll()
+mods.jei.ingredient.hide(item('threng:material'))
+
+// Carbonic Fluix Complex
+mods.minecraft.crafting.removeByOutput(item('threng:material', 1))
+mods.jei.ingredient.hide(item('threng:material', 1))
+
+// Fluix-Plated Iron Ingot
+mods.jei.ingredient.hide(item('threng:material', 2))
+
+// Coal Dust
+mods.minecraft.ore_dict.remove('dustCoal', item('threng:material', 3))
+mods.jei.ingredient.hide(item('threng:material', 3))
+
+// Fluix Logic Unit
+mods.minecraft.crafting.removeByOutput(item('threng:material', 4))
+mods.jei.ingredient.hide(item('threng:material', 4))
+
+// Resonating Crystal
+mods.jei.ingredient.hide(item('threng:material', 5))
+
+// Massively Parallel Processor
+mods.jei.ingredient.hide(item('threng:material', 6))
+
+// Speculation Cores
+mods.jei.ingredient.hide(item('threng:material', 7))
+mods.minecraft.crafting.removeByOutput(item('threng:material', 8))
+mods.jei.ingredient.hide(item('threng:material', 8))
+mods.minecraft.crafting.removeByOutput(item('threng:material', 9))
+mods.jei.ingredient.hide(item('threng:material', 9))
+mods.minecraft.crafting.removeByOutput(item('threng:material', 10))
+mods.jei.ingredient.hide(item('threng:material', 10))
+mods.minecraft.crafting.removeByOutput(item('threng:material', 11))
+mods.jei.ingredient.hide(item('threng:material', 11))
+mods.minecraft.crafting.removeByOutput(item('threng:material', 12))
+mods.jei.ingredient.hide(item('threng:material', 12))
+mods.minecraft.crafting.removeByOutput(item('threng:material', 13))
+mods.jei.ingredient.hide(item('threng:material', 13))
+
+// Speculation Processor
+mods.jei.ingredient.hide(item('threng:material', 14))
+
+
+////////////////////////////////////////
+// Blocks
+////////////////////////////////////////
+// Fluix Aggregator
+mods.minecraft.crafting.removeByOutput(item('threng:machine'))
+mods.jei.ingredient.hide(item('threng:machine'))
+
+// Pulse Centrifuge
+mods.minecraft.crafting.removeByOutput(item('threng:machine', 1))
+mods.jei.ingredient.hide(item('threng:machine', 1))
+
+// ME Circuit Etcher
+mods.jei.ingredient.hide(item('threng:machine', 2))
+
+// Preemptive Assembly Unit
+mods.minecraft.crafting.removeByOutput(item('threng:machine', 3))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('threng:machine', 3))
+ .shape([
+ [mi('plateFluixAlloy'), ore('craftInterfaceItem'), mi('plateFluixAlloy')],
+ [item('appliedenergistics2:crafting_accelerator'), item('gtexpert:meta_item_1', 1), item('appliedenergistics2:crafting_accelerator')],
+ [mi('plateFluixAlloy'), item('appliedenergistics2:material', 24), mi('plateFluixAlloy')]
+ ])
+ .register()
+
+// Item Level Maintainer
+mods.minecraft.crafting.removeByOutput(item('threng:machine', 4))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('threng:machine', 4))
+ .shape([
+ [mi('plateFluixAlloy'), item('appliedenergistics2:part', 280), mi('plateFluixAlloy')],
+ [item('appliedenergistics2:material', 22), item('gtexpert:meta_item_1', 1), item('appliedenergistics2:material', 22)],
+ [mi('plateFluixAlloy'), item('appliedenergistics2:material', 53), mi('plateFluixAlloy')]
+ ])
+ .register()
+
+// Crystal Energizer
+mods.minecraft.crafting.removeByOutput(item('threng:machine', 5))
+mods.jei.ingredient.hide(item('threng:machine', 5))
+
+// Mass Assembler Frame
+mods.minecraft.crafting.removeByOutput(item('threng:big_assembler'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('threng:big_assembler') * 4)
+ .shape([
+ [mi('plateFluixAlloy'), item('appliedenergistics2:smooth_sky_stone_block'), mi('plateFluixAlloy')],
+ [item('appliedenergistics2:smooth_sky_stone_block'), item('gregtech:machine', 1647), item('appliedenergistics2:smooth_sky_stone_block')],
+ [mi('plateFluixAlloy'), item('appliedenergistics2:smooth_sky_stone_block'), mi('plateFluixAlloy')]
+ ])
+ .register()
+
+// Mass Assembler Controller
+mods.minecraft.crafting.removeByOutput(item('threng:big_assembler', 2))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('threng:big_assembler', 2))
+ .shape([
+ [item('threng:big_assembler'), item('appliedenergistics2:molecular_assembler'), item('threng:big_assembler')],
+ [ore('craftGlassCable'), item('gtexpert:meta_item_1', 1), ore('craftGlassCable')],
+ [item('threng:big_assembler'), ore('craftInterfaceItem'), item('threng:big_assembler')]
+ ])
+ .register()
+
+// Pattern Provider
+mods.minecraft.crafting.removeByOutput(item('threng:big_assembler', 3))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('threng:big_assembler', 3))
+ .shape([
+ [item('threng:big_assembler'), item('appliedenergistics2:material', 35), item('threng:big_assembler')],
+ [ore('craftGlassCable'), item('appliedenergistics2:material', 24), ore('craftGlassCable')],
+ [item('threng:big_assembler'), ore('craftInterfaceItem'), item('threng:big_assembler')]
+ ])
+ .register()
+
+// Crafting Co-Processor
+mods.minecraft.crafting.removeByOutput(item('threng:big_assembler', 4))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('threng:big_assembler', 4))
+ .shape([
+ [item('threng:big_assembler'), item('appliedenergistics2:molecular_assembler'), item('threng:big_assembler')],
+ [ore('craftGlassCable'), item('appliedenergistics2:material', 24), ore('craftGlassCable')],
+ [item('threng:big_assembler'), item('appliedenergistics2:crafting_accelerator'), item('threng:big_assembler')]
+ ])
+ .register()
+
+// Crafting Co-Processor (Storage I/O)
+mods.minecraft.crafting.removeByOutput(item('threng:big_assembler', 5))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('threng:big_assembler', 5))
+ .shape([
+ [item('threng:big_assembler'), mi('robot.arm.hv'), item('threng:big_assembler')],
+ [ore('craftGlassCable'), item('appliedenergistics2:io_port'), ore('craftGlassCable')],
+ [item('threng:big_assembler'), item('appliedenergistics2:chest'), item('threng:big_assembler')]
+ ])
+ .register()
diff --git a/overrides/groovy/postInit/normal/NAE2.groovy b/overrides/groovy/postInit/normal/NAE2.groovy
new file mode 100644
index 00000000..b3e8e853
--- /dev/null
+++ b/overrides/groovy/postInit/normal/NAE2.groovy
@@ -0,0 +1,144 @@
+import gregtech.api.recipes.RecipeMap
+
+def packer = RecipeMap.getByName("packer")
+
+////////////////////////////////////////
+// Items
+////////////////////////////////////////
+// ME Storage Component
+mods.minecraft.crafting.removeByOutput(item('nae2:material', 1))
+mods.jei.ingredient.hide(item('nae2:material', 1))
+mods.minecraft.crafting.removeByOutput(item('nae2:material', 2))
+mods.jei.ingredient.hide(item('nae2:material', 2))
+mods.minecraft.crafting.removeByOutput(item('nae2:material', 3))
+mods.jei.ingredient.hide(item('nae2:material', 3))
+mods.minecraft.crafting.removeByOutput(item('nae2:material', 4))
+mods.jei.ingredient.hide(item('nae2:material', 4))
+mods.minecraft.crafting.removeByOutput(item('nae2:material', 5))
+mods.jei.ingredient.hide(item('nae2:material', 5))
+mods.minecraft.crafting.removeByOutput(item('nae2:material', 6))
+mods.jei.ingredient.hide(item('nae2:material', 6))
+mods.minecraft.crafting.removeByOutput(item('nae2:material', 7))
+mods.jei.ingredient.hide(item('nae2:material', 7))
+mods.minecraft.crafting.removeByOutput(item('nae2:material', 8))
+mods.jei.ingredient.hide(item('nae2:material', 8))
+
+// ME Storage Cell
+mods.minecraft.crafting.removeByOutput(item('nae2:storage_cell_256k'))
+mods.jei.ingredient.hide(item('nae2:storage_cell_256k'))
+mods.minecraft.crafting.removeByOutput(item('nae2:storage_cell_1024k'))
+mods.jei.ingredient.hide(item('nae2:storage_cell_1024k'))
+mods.minecraft.crafting.removeByOutput(item('nae2:storage_cell_4096k'))
+mods.jei.ingredient.hide(item('nae2:storage_cell_4096k'))
+mods.minecraft.crafting.removeByOutput(item('nae2:storage_cell_16384k'))
+mods.jei.ingredient.hide(item('nae2:storage_cell_16384k'))
+mods.minecraft.crafting.removeByOutput(item('nae2:storage_cell_fluid_256k'))
+mods.jei.ingredient.hide(item('nae2:storage_cell_fluid_256k'))
+mods.minecraft.crafting.removeByOutput(item('nae2:storage_cell_fluid_1024k'))
+mods.jei.ingredient.hide(item('nae2:storage_cell_fluid_1024k'))
+mods.minecraft.crafting.removeByOutput(item('nae2:storage_cell_fluid_4096k'))
+mods.jei.ingredient.hide(item('nae2:storage_cell_fluid_4096k'))
+mods.minecraft.crafting.removeByOutput(item('nae2:storage_cell_fluid_16384k'))
+mods.jei.ingredient.hide(item('nae2:storage_cell_fluid_16384k'))
+
+// ME Beam Former
+mods.minecraft.crafting.removeByOutput(item('nae2:part'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('nae2:part'))
+ .shape([
+ [null, item('appliedenergistics2:material', 41), null],
+ [item('appliedenergistics2:quartz_glass'), item('appliedenergistics2:material', 24), item('appliedenergistics2:quartz_glass')],
+ [null, ore('craftGlassCable'), null]
+ ])
+ .register()
+
+// ME Void Storage Component
+mods.minecraft.crafting.removeByOutput(item('nae2:material'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('nae2:material'))
+ .shape([
+ [null, item('appliedenergistics2:material', 47), null],
+ [item('appliedenergistics2:material', 44), item('appliedenergistics2:material', 32), item('appliedenergistics2:material', 44)],
+ [null, item('appliedenergistics2:material', 47), null]
+ ])
+ .register()
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('nae2:material'))
+ .shape([
+ [null, item('appliedenergistics2:material', 44), null],
+ [item('appliedenergistics2:material', 47), item('appliedenergistics2:material', 32), item('appliedenergistics2:material', 47)],
+ [null, item('appliedenergistics2:material', 44), null]
+ ])
+ .register()
+
+// ME Void Storage Cell
+mods.minecraft.crafting.removeByOutput(item('nae2:storage_cell_void'))
+packer.recipeBuilder()
+ .inputs(
+ item('nae2:material'),
+ item('appliedenergistics2:material', 39)
+ )
+ .outputs(item('nae2:storage_cell_void'))
+ .duration(10)
+ .EUt(7)
+ .buildAndRegister()
+packer.recipeBuilder()
+ .inputs(item('nae2:storage_cell_void'))
+ .outputs(
+ item('nae2:material'),
+ item('appliedenergistics2:material', 39)
+ )
+ .duration(10)
+ .EUt(7)
+ .buildAndRegister()
+
+// ME Void Fluid Storage Cell
+mods.minecraft.crafting.removeByOutput(item('nae2:fluid_storage_cell_void'))
+packer.recipeBuilder()
+ .inputs(
+ item('nae2:material'),
+ item('aeadditions:storage.casing', 1)
+ )
+ .outputs(item('nae2:fluid_storage_cell_void'))
+ .duration(10)
+ .EUt(7)
+ .buildAndRegister()
+packer.recipeBuilder()
+ .inputs(item('nae2:fluid_storage_cell_void'))
+ .outputs(
+ item('nae2:material'),
+ item('aeadditions:storage.casing', 1)
+ )
+ .duration(10)
+ .EUt(7)
+ .buildAndRegister()
+
+// Programmed Circuit Card
+mods.minecraft.crafting.removeByOutput(item('nae2:upgrade', 2))
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('nae2:upgrade', 2))
+ .input(item('appliedenergistics2:material', 53), ore('circuitHv'))
+ .register()
+
+
+////////////////////////////////////////
+// Blocks
+////////////////////////////////////////
+// ME Storage Exposer
+mods.minecraft.crafting.removeByOutput(item('nae2:exposer'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('nae2:exposer'))
+ .shape([
+ [mi('plateTitanium'), item('appliedenergistics2:part', 463), mi('plateTitanium')],
+ [item('appliedenergistics2:material', 43), item('appliedenergistics2:material', 47), item('appliedenergistics2:material', 44)],
+ [mi('plateTitanium'), item('appliedenergistics2:part', 462), mi('plateTitanium')]
+ ])
+ .register()
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('nae2:exposer'))
+ .shape([
+ [mi('plateTitanium'), item('appliedenergistics2:part', 220), mi('plateTitanium')],
+ [item('appliedenergistics2:material', 43), item('appliedenergistics2:material', 47), item('appliedenergistics2:material', 44)],
+ [mi('plateTitanium'), item('appliedenergistics2:part', 221), mi('plateTitanium')]
+ ])
+ .register()
diff --git a/overrides/groovy/postInit/normal/OpenComputers.groovy b/overrides/groovy/postInit/normal/OpenComputers.groovy
new file mode 100644
index 00000000..08bab89b
--- /dev/null
+++ b/overrides/groovy/postInit/normal/OpenComputers.groovy
@@ -0,0 +1,2195 @@
+import net.minecraftforge.fml.common.Loader
+import gregtech.api.recipes.RecipeMap
+import net.minecraftforge.fml.common.registry.ForgeRegistries
+import net.minecraft.item.ItemStack
+
+def assembler = RecipeMap.getByName("assembler")
+def circuit_assembler = RecipeMap.getByName("circuit_assembler")
+
+if (Loader.isModLoaded('opencomputers')) {
+ ForgeRegistries.ITEMS.valuesCollection
+ .findAll { it.registryName?.namespace == 'opencomputers' }
+ .each { regItem ->
+ def stack = new ItemStack(regItem, 1, 0)
+ if (
+ stack.displayName.contains('Grog') ||
+ stack.displayName.contains('Scrench') ||
+ stack.displayName.contains('OpenComputers Manual') ||
+ stack.displayName.contains('EEPROM') ||
+ stack.displayName.contains('Linked Card') ||
+ stack.displayName.contains('Hard Disk Drive') ||
+ stack.displayName.contains('Floppy Disk') ||
+ stack.displayName.contains('Plan9k') ||
+ stack.displayName.contains('Network (Network Stack)') ||
+ stack.displayName.contains('OpenOS') ||
+ stack.displayName.contains('Data Card Software') ||
+ stack.displayName.contains('OpenLodaer') ||
+ stack.displayName.contains('Builder') ||
+ stack.displayName.contains('Generator Upgrade Software') ||
+ stack.displayName.contains('OPPM') ||
+ stack.displayName.contains('Digger') ||
+ stack.displayName.contains('Mazer') ||
+ stack.displayName.contains('OpenIRC') ||
+ stack.displayName.contains('Carpeted Capacitor') ||
+ stack.displayName.contains('Ink Cartridge') ||
+ stack.displayName.contains('Texture Picker') ||
+ stack.displayName.contains('Navigation Upgrade') ||
+ stack.displayName.contains('robot.name') ||
+ stack.displayName.contains('Creatix') ||
+ stack.displayName.contains('Crecopter') ||
+ regItem.registryName.path == 'casecreative' ||
+ regItem.registryName.path == 'robotafterimage' ||
+ regItem.registryName.path == 'card'
+ ) {
+ // keep
+ } else {
+ mods.minecraft.crafting.removeByOutput(stack)
+ }
+ }
+}
+
+
+////////////////////////////////////////
+// Items
+////////////////////////////////////////
+// Printed Circuit Board
+mods.minecraft.furnace.removeByOutput(item('opencomputers:material', 4))
+mods.jei.ingredient.hide(item('opencomputers:material', 4))
+
+// Ink Cartridge
+mods.minecraft.crafting.remove(resource('opencomputers:material52'))
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('circuit_board.plastic'),
+ item('opencomputers:material', 7),
+ item('opencomputers:material', 6) * 2,
+ mi('pipeTinyFluidPlastic', 8),
+ mi('boltElectrum', 8)
+ )
+ .fluidInputs(fluid('plastic') * 36)
+ .outputs(item('opencomputers:material', 26))
+ .duration(100)
+ .EUt(120)
+ .buildAndRegister()
+
+// Analyzer
+circuit_assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('tricorder_scanner'),
+ item('opencomputers:material', 8) * 2,
+ item('opencomputers:material', 6) * 2,
+ mi('sensor.mv')
+ )
+ .outputs(item('opencomputers:tool'))
+ .duration(100)
+ .EUt(120)
+ .buildAndRegister()
+
+// ME Upgrade - Tier 1
+mods.minecraft.crafting.remove(resource('aeadditions:oc/upgradet1'))
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('circuit_board.advanced'),
+ mi('plateStainlessSteel', 2),
+ item('opencomputers:card', 7),
+ item('appliedenergistics2:material', 41),
+ item('opencomputers:material', 7)
+ )
+ .fluidInputs(fluid('soldering_alloy') * 144)
+ .outputs(item('aeadditions:oc.upgrade', 2))
+ .duration(200)
+ .EUt(480)
+ .buildAndRegister()
+
+// ME Upgrade - Tier 2
+mods.minecraft.crafting.remove(resource('aeadditions:oc/upgradet2'))
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('circuit_board.extreme'),
+ mi('plateTitanium', 2),
+ item('opencomputers:card', 7),
+ item('appliedenergistics2:material', 41),
+ item('opencomputers:material', 8)
+ )
+ .fluidInputs(fluid('soldering_alloy') * 144)
+ .outputs(item('aeadditions:oc.upgrade', 1))
+ .duration(200)
+ .EUt(1920)
+ .buildAndRegister()
+
+// ME Upgrade - Tier 3
+mods.minecraft.crafting.remove(resource('aeadditions:oc/upgradet3'))
+assembler.recipeBuilder()
+ .circuitMeta(2)
+ .inputs(
+ mi('circuit_board.extreme'),
+ mi('plateTungstenSteel', 2),
+ item('opencomputers:card', 7),
+ item('appliedenergistics2:material', 41),
+ item('opencomputers:material', 9)
+ )
+ .fluidInputs(fluid('soldering_alloy') * 144)
+ .outputs(item('aeadditions:oc.upgrade'))
+ .duration(200)
+ .EUt(1920)
+ .buildAndRegister()
+
+// Battery Upgrade - Tier 1
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('circuit_board.plastic'),
+ mi('plateAluminium', 2),
+ item('opencomputers:capacitor'),
+ item('opencomputers:material', 6) * 2,
+ mi('boltRedAlloy', 4)
+ )
+ .fluidInputs(fluid('soldering_alloy') * 72)
+ .outputs(item('opencomputers:upgrade', 1))
+ .duration(100)
+ .EUt(120)
+ .buildAndRegister()
+
+// Battery Upgrade - Tier 2
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('circuit_board.advanced'),
+ mi('plateStainlessSteel', 2),
+ item('opencomputers:capacitor') * 2,
+ ore('componentTransistor') * 2,
+ mi('boltSilver', 8)
+ )
+ .fluidInputs(fluid('soldering_alloy') * 72)
+ .outputs(item('opencomputers:upgrade', 2))
+ .duration(100)
+ .EUt(480)
+ .buildAndRegister()
+
+// Battery Upgrade - Tier 3
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('circuit_board.extreme'),
+ mi('plateTungstenSteel', 2),
+ item('opencomputers:capacitor') * 4,
+ mi('component.advanced_smd.transistor'),
+ mi('boltElectrum', 16)
+ )
+ .fluidInputs(fluid('soldering_alloy') * 72)
+ .outputs(item('opencomputers:upgrade', 3))
+ .duration(100)
+ .EUt(1920)
+ .buildAndRegister()
+
+// Chunkloader Upgrade
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('circuit_board.plastic'),
+ mi('plateAluminium', 2),
+ item('chickenchunks:chunk_loader'),
+ item('opencomputers:material', 9)
+ )
+ .fluidInputs(fluid('soldering_alloy') * 72)
+ .outputs(item('opencomputers:upgrade', 4))
+ .duration(100)
+ .EUt(120)
+ .buildAndRegister()
+
+// Card Container - Tier 1
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('opencomputers:material', 5),
+ mi('plateAluminium', 2),
+ ore('chestWood'),
+ item('opencomputers:material', 7)
+ )
+ .fluidInputs(fluid('soldering_alloy') * 72)
+ .outputs(item('opencomputers:upgrade', 5))
+ .duration(100)
+ .EUt(120)
+ .buildAndRegister()
+
+// Card Container - Tier 2
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('opencomputers:material', 5),
+ mi('plateStainlessSteel', 2),
+ ore('chestWood'),
+ item('opencomputers:material', 8)
+ )
+ .fluidInputs(fluid('soldering_alloy') * 72)
+ .outputs(item('opencomputers:upgrade', 6))
+ .duration(100)
+ .EUt(480)
+ .buildAndRegister()
+
+// Card Container - Tier 3
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('opencomputers:material', 5),
+ mi('plateTitanium', 2),
+ ore('chestWood'),
+ item('opencomputers:material', 9)
+ )
+ .fluidInputs(fluid('soldering_alloy') * 72)
+ .outputs(item('opencomputers:upgrade', 7))
+ .duration(100)
+ .EUt(1920)
+ .buildAndRegister()
+
+// Upgrade Container - Tier 1
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('circuit_board.plastic'),
+ mi('plateAluminium', 2),
+ ore('chestWood'),
+ item('opencomputers:material', 7)
+ )
+ .fluidInputs(fluid('soldering_alloy') * 72)
+ .outputs(item('opencomputers:upgrade', 8))
+ .duration(100)
+ .EUt(120)
+ .buildAndRegister()
+
+// Upgrade Container - Tier 2
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('circuit_board.advanced'),
+ mi('plateStainlessSteel', 2),
+ ore('chestWood'),
+ item('opencomputers:material', 8)
+ )
+ .fluidInputs(fluid('soldering_alloy') * 72)
+ .outputs(item('opencomputers:upgrade', 9))
+ .duration(100)
+ .EUt(480)
+ .buildAndRegister()
+
+// Upgrade Container - Tier 3
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('circuit_board.extreme'),
+ mi('plateTitanium', 2),
+ ore('chestWood'),
+ item('opencomputers:material', 9)
+ )
+ .fluidInputs(fluid('soldering_alloy') * 72)
+ .outputs(item('opencomputers:upgrade', 10))
+ .duration(100)
+ .EUt(1920)
+ .buildAndRegister()
+
+// Crafting Upgrade
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('circuit_board.plastic'),
+ item('opencomputers:material', 8),
+ mi('workbench')
+ )
+ .fluidInputs(fluid('soldering_alloy') * 72)
+ .outputs(item('opencomputers:upgrade', 11))
+ .duration(100)
+ .EUt(120)
+ .buildAndRegister()
+
+// Database Upgrade - Tier 1
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('circuit_board.plastic'),
+ item('opencomputers:tool'),
+ item('opencomputers:storage', 2),
+ item('opencomputers:material', 8) * 2
+ )
+ .fluidInputs(fluid('soldering_alloy') * 72)
+ .outputs(item('opencomputers:upgrade', 12))
+ .duration(100)
+ .EUt(120)
+ .buildAndRegister()
+
+// Database Upgrade - Tier 2
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('circuit_board.advanced'),
+ item('opencomputers:tool'),
+ item('opencomputers:storage', 3),
+ item('opencomputers:material', 9) * 2
+ )
+ .fluidInputs(fluid('soldering_alloy') * 72)
+ .outputs(item('opencomputers:upgrade', 13))
+ .duration(100)
+ .EUt(480)
+ .buildAndRegister()
+
+// Database Upgrade - Tier 3
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('circuit_board.extreme'),
+ item('opencomputers:tool'),
+ item('opencomputers:storage', 4),
+ item('opencomputers:material', 10) * 2
+ )
+ .fluidInputs(fluid('soldering_alloy') * 72)
+ .outputs(item('opencomputers:upgrade', 14))
+ .duration(100)
+ .EUt(1920)
+ .buildAndRegister()
+
+// Experience Upgrade
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('circuit_board.advanced'),
+ item('opencomputers:tool'),
+ item('opencomputers:material', 9),
+ item('enderio:item_xp_transfer')
+ )
+ .fluidInputs(fluid('soldering_alloy') * 72)
+ .outputs(item('opencomputers:upgrade', 15))
+ .duration(100)
+ .EUt(480)
+ .buildAndRegister()
+
+// Hover Upgrade - Tier 1
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('circuit_board.plastic'),
+ mi('plateAluminium', 2),
+ mi('rotorSteel', 4),
+ item('opencomputers:material', 8) * 2,
+ mi('electric.motor.mv')
+ )
+ .fluidInputs(fluid('soldering_alloy') * 72)
+ .outputs(item('opencomputers:upgrade', 27))
+ .duration(100)
+ .EUt(120)
+ .buildAndRegister()
+
+// Hover Upgrade - Tier 2
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('circuit_board.advanced'),
+ mi('plateAluminium', 2),
+ mi('rotorStainlessSteel', 4),
+ item('opencomputers:material', 9) * 2,
+ mi('electric.motor.hv')
+ )
+ .fluidInputs(fluid('soldering_alloy') * 72)
+ .outputs(item('opencomputers:upgrade', 28))
+ .duration(100)
+ .EUt(480)
+ .buildAndRegister()
+
+// Inventory Upgrade
+assembler.recipeBuilder()
+ .circuitMeta(2)
+ .inputs(
+ mi('circuit_board.plastic'),
+ mi('plateAluminium', 2),
+ ore('chestWood'),
+ item('opencomputers:material', 8)
+ )
+ .fluidInputs(fluid('soldering_alloy') * 72)
+ .outputs(item('opencomputers:upgrade', 17))
+ .duration(100)
+ .EUt(120)
+ .buildAndRegister()
+
+// Inventory Controller Upgrade
+assembler.recipeBuilder()
+ .circuitMeta(2)
+ .inputs(
+ item('opencomputers:upgrade', 17),
+ mi('plateStainlessSteel', 2),
+ item('opencomputers:material', 9)
+ )
+ .fluidInputs(fluid('soldering_alloy') * 72)
+ .outputs(item('opencomputers:upgrade', 18))
+ .duration(100)
+ .EUt(480)
+ .buildAndRegister()
+
+// Tank Upgrade
+assembler.recipeBuilder()
+ .circuitMeta(2)
+ .inputs(
+ mi('circuit_board.plastic'),
+ mi('drum.aluminium'),
+ item('opencomputers:material', 8)
+ )
+ .fluidInputs(fluid('soldering_alloy') * 72)
+ .outputs(item('opencomputers:upgrade', 23))
+ .duration(100)
+ .EUt(120)
+ .buildAndRegister()
+
+// Tank Controller Upgrade
+assembler.recipeBuilder()
+ .circuitMeta(2)
+ .inputs(
+ item('opencomputers:upgrade', 23),
+ mi('plateStainlessSteel', 2),
+ item('opencomputers:material', 9)
+ )
+ .fluidInputs(fluid('soldering_alloy') * 72)
+ .outputs(item('opencomputers:upgrade', 24))
+ .duration(100)
+ .EUt(480)
+ .buildAndRegister()
+
+// Leash Upgrade
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('circuit_board.plastic'),
+ item('opencomputers:material', 11),
+ item('minecraft:lead') * 4
+ )
+ .fluidInputs(fluid('soldering_alloy') * 72)
+ .outputs(item('opencomputers:upgrade', 26))
+ .duration(100)
+ .EUt(120)
+ .buildAndRegister()
+
+// MFU
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('opencomputers:adapter'),
+ item('opencomputers:card', 9) * 2,
+ item('opencomputers:material', 9)
+ )
+ .fluidInputs(fluid('soldering_alloy') * 72)
+ .outputs(item('opencomputers:upgrade', 30))
+ .duration(100)
+ .EUt(1920)
+ .buildAndRegister()
+
+// Navigation Upgrade
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('circuit_board.extreme'),
+ item('opencomputers:material', 9) * 2,
+ item('minecraft:map')
+ )
+ .fluidInputs(fluid('soldering_alloy') * 72)
+ .outputs(item('opencomputers:upgrade', 19))
+ .duration(100)
+ .EUt(1920)
+ .buildAndRegister()
+
+// Piston Upgrade
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('opencomputers:upgrade', 20))
+ .input(item('opencomputers:upgrade', 33))
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('circuit_board.plastic'),
+ mi('drum.aluminium'),
+ item('opencomputers:material', 8)
+ )
+ .fluidInputs(fluid('soldering_alloy') * 72)
+ .outputs(item('opencomputers:upgrade', 20))
+ .duration(100)
+ .EUt(120)
+ .buildAndRegister()
+
+// Sticky Piston Upgrade
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('opencomputers:upgrade', 33))
+ .input(item('opencomputers:upgrade', 20), mi('rubber_drop'))
+ .register()
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('opencomputers:upgrade', 33))
+ .input(item('opencomputers:upgrade', 20), item('minecraft:slime_ball'))
+ .register()
+
+// Sign Upgrade
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('circuit_board.plastic'),
+ mi('plateAluminium', 2),
+ item('minecraft:sign'),
+ item('opencomputers:material', 8) * 2
+ )
+ .fluidInputs(fluid('soldering_alloy') * 72)
+ .outputs(item('opencomputers:upgrade', 21))
+ .duration(100)
+ .EUt(120)
+ .buildAndRegister()
+
+// Tractor Beam Upgrade
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('circuit_board.advanced'),
+ mi('item_magnet.hv'),
+ item('opencomputers:material', 9)
+ )
+ .fluidInputs(fluid('soldering_alloy') * 72)
+ .outputs(item('opencomputers:upgrade', 25))
+ .duration(100)
+ .EUt(480)
+ .buildAndRegister()
+
+// Microcontroller Case - Tier 1
+assembler.recipeBuilder()
+ .circuitMeta(3)
+ .inputs(
+ item('gregtech:machine_casing', 2),
+ mi('circuit_board.plastic'),
+ mi('plateAluminium', 2),
+ item('opencomputers:material', 8) * 2
+ )
+ .fluidInputs(fluid('plastic') * 72)
+ .outputs(item('opencomputers:material', 20))
+ .duration(100)
+ .EUt(120)
+ .buildAndRegister()
+
+// Microcontroller Case - Tier 2
+assembler.recipeBuilder()
+ .circuitMeta(3)
+ .inputs(
+ item('gregtech:machine_casing', 3),
+ mi('circuit_board.advanced'),
+ mi('plateStainlessSteel', 2),
+ item('opencomputers:material', 9) * 2
+ )
+ .fluidInputs(fluid('plastic') * 72)
+ .outputs(item('opencomputers:material', 21))
+ .duration(100)
+ .EUt(480)
+ .buildAndRegister()
+
+// Drone Case - Tier 1
+assembler.recipeBuilder()
+ .circuitMeta(3)
+ .inputs(
+ item('opencomputers:material', 20),
+ item('opencomputers:component', 4),
+ item('opencomputers:material', 8) * 2,
+ mi('electric.motor.mv', 4)
+ )
+ .fluidInputs(fluid('plastic') * 72)
+ .outputs(item('opencomputers:material', 23))
+ .duration(100)
+ .EUt(120)
+ .buildAndRegister()
+
+// Drone Case - Tier 2
+assembler.recipeBuilder()
+ .circuitMeta(3)
+ .inputs(
+ item('opencomputers:material', 21),
+ item('opencomputers:component', 5),
+ item('opencomputers:material', 9) * 2,
+ mi('electric.motor.hv', 4)
+ )
+ .fluidInputs(fluid('plastic') * 72)
+ .outputs(item('opencomputers:material', 24))
+ .duration(100)
+ .EUt(480)
+ .buildAndRegister()
+
+// Arrow Keys
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('minecraft:stone_button') * 4,
+ ore('circuitLv')
+ )
+ .outputs(item('opencomputers:material', 15))
+ .duration(200)
+ .EUt(30)
+ .buildAndRegister()
+
+// Button Group
+assembler.recipeBuilder()
+ .circuitMeta(2)
+ .inputs(
+ item('minecraft:stone_button') * 6,
+ ore('circuitLv')
+ )
+ .outputs(item('opencomputers:material', 14))
+ .duration(200)
+ .EUt(30)
+ .buildAndRegister()
+
+// Numeric Keypad
+assembler.recipeBuilder()
+ .circuitMeta(3)
+ .inputs(
+ item('minecraft:stone_button') * 9,
+ ore('circuitLv')
+ )
+ .outputs(item('opencomputers:material', 16))
+ .duration(200)
+ .EUt(30)
+ .buildAndRegister()
+
+// Keyboard
+assembler.recipeBuilder()
+ .circuitMeta(4)
+ .inputs(
+ item('minecraft:stone_button') * 64,
+ item('minecraft:stone_button') * 40,
+ ore('circuitLv'),
+ mi('plateTinAlloy')
+ )
+ .outputs(item('opencomputers:keyboard'))
+ .duration(200)
+ .EUt(30)
+ .buildAndRegister()
+
+// Disk Platter
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('lensGlass'),
+ mi('foilAluminium', 4)
+ )
+ .fluidInputs(fluid('distilled_water') * 36)
+ .outputs(item('opencomputers:material', 12))
+ .duration(200)
+ .EUt(30)
+ .buildAndRegister()
+
+// EEPROM
+mods.minecraft.crafting.remove(resource('opencomputers:storage126'))
+circuit_assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('circuit_board.plastic'),
+ item('opencomputers:material', 7),
+ item('opencomputers:material', 6) * 4,
+ mi('foilElectrum')
+ )
+ .fluidInputs(fluid('tin') * 144)
+ .outputs(item('opencomputers:storage'))
+ .duration(100)
+ .EUt(120)
+ .buildAndRegister()
+circuit_assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('circuit_board.plastic'),
+ item('opencomputers:material', 7),
+ item('opencomputers:material', 6) * 4,
+ mi('foilElectrum')
+ )
+ .fluidInputs(fluid('soldering_alloy') * 72)
+ .outputs(item('opencomputers:storage'))
+ .duration(100)
+ .EUt(120)
+ .buildAndRegister()
+
+// Floppy Disk
+mods.minecraft.crafting.remove(resource('opencomputers:storage127'))
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('opencomputers:material', 12),
+ mi('foilPlastic', 4)
+ )
+ .outputs(item('opencomputers:storage', 1))
+ .duration(200)
+ .EUt(30)
+ .buildAndRegister()
+
+// Hard Disk Drive - Tier 1
+mods.minecraft.crafting.remove(resource('opencomputers:storage128'))
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('plateSteel', 2),
+ item('opencomputers:material', 12) * 2,
+ item('opencomputers:material', 7) * 2,
+ item('opencomputers:component', 6) * 4
+ )
+ .outputs(item('opencomputers:storage', 2))
+ .duration(200)
+ .EUt(30)
+ .buildAndRegister()
+
+// Hard Disk Drive - Tier 2
+mods.minecraft.crafting.remove(resource('opencomputers:storage129'))
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('plateAluminium', 2),
+ item('opencomputers:material', 12) * 4,
+ item('opencomputers:material', 8) * 2,
+ item('opencomputers:component', 8) * 4
+ )
+ .outputs(item('opencomputers:storage', 3))
+ .duration(200)
+ .EUt(120)
+ .buildAndRegister()
+
+// Hard Disk Drive - Tier 3
+mods.minecraft.crafting.remove(resource('opencomputers:storage130'))
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('plateStainlessSteel', 2),
+ item('opencomputers:material', 12) * 8,
+ item('opencomputers:material', 9) * 2,
+ item('opencomputers:component', 10) * 4
+ )
+ .outputs(item('opencomputers:storage', 4))
+ .duration(200)
+ .EUt(480)
+ .buildAndRegister()
+
+// Central Processing Unit - Tier 1
+circuit_assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('opencomputers:material', 10) * 8,
+ item('opencomputers:material', 11),
+ ore('circuitLv'),
+ mi('plateSteel')
+ )
+ .fluidInputs(fluid('tin') * 288)
+ .outputs(item('opencomputers:component'))
+ .duration(100)
+ .EUt(30)
+ .buildAndRegister()
+circuit_assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('opencomputers:material', 10) * 8,
+ item('opencomputers:material', 11),
+ ore('circuitLv'),
+ mi('plateSteel')
+ )
+ .fluidInputs(fluid('soldering_alloy') * 144)
+ .outputs(item('opencomputers:component'))
+ .duration(100)
+ .EUt(30)
+ .buildAndRegister()
+
+// Central Processing Unit - Tier 2
+circuit_assembler.recipeBuilder()
+ .circuitMeta(2)
+ .inputs(
+ item('opencomputers:material', 10) * 12,
+ item('opencomputers:material', 11) * 2,
+ ore('circuitMv'),
+ mi('plateAluminium')
+ )
+ .fluidInputs(fluid('tin') * 288)
+ .outputs(item('opencomputers:component', 1))
+ .duration(100)
+ .EUt(120)
+ .buildAndRegister()
+circuit_assembler.recipeBuilder()
+ .circuitMeta(2)
+ .inputs(
+ item('opencomputers:material', 10) * 12,
+ item('opencomputers:material', 11) * 2,
+ ore('circuitMv'),
+ mi('plateAluminium')
+ )
+ .fluidInputs(fluid('soldering_alloy') * 144)
+ .outputs(item('opencomputers:component', 1))
+ .duration(100)
+ .EUt(120)
+ .buildAndRegister()
+
+// Central Processing Unit - Tier 3
+circuit_assembler.recipeBuilder()
+ .circuitMeta(2)
+ .inputs(
+ item('opencomputers:material', 10) * 16,
+ item('opencomputers:material', 11) * 4,
+ ore('circuitHv'),
+ mi('plateStainlessSteel')
+ )
+ .fluidInputs(fluid('tin') * 288)
+ .outputs(item('opencomputers:component', 2))
+ .duration(100)
+ .EUt(480)
+ .buildAndRegister()
+circuit_assembler.recipeBuilder()
+ .circuitMeta(2)
+ .inputs(
+ item('opencomputers:material', 10) * 16,
+ item('opencomputers:material', 11) * 4,
+ ore('circuitHv'),
+ mi('plateStainlessSteel')
+ )
+ .fluidInputs(fluid('soldering_alloy') * 144)
+ .outputs(item('opencomputers:component', 2))
+ .duration(100)
+ .EUt(480)
+ .buildAndRegister()
+
+// Accelerated Processing Unit - Tier 2
+circuit_assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('opencomputers:material', 10) * 32,
+ item('opencomputers:material', 11) * 4,
+ ore('circuitHv'),
+ mi('plateStainlessSteel')
+ )
+ .fluidInputs(fluid('tin') * 288)
+ .outputs(item('opencomputers:component', 16))
+ .duration(100)
+ .EUt(480)
+ .buildAndRegister()
+circuit_assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('opencomputers:material', 10) * 32,
+ item('opencomputers:material', 11) * 4,
+ ore('circuitHv'),
+ mi('plateStainlessSteel')
+ )
+ .fluidInputs(fluid('soldering_alloy') * 144)
+ .outputs(item('opencomputers:component', 16))
+ .duration(100)
+ .EUt(480)
+ .buildAndRegister()
+
+// Accelerated Processing Unit - Tier 3
+circuit_assembler.recipeBuilder()
+ .circuitMeta(2)
+ .inputs(
+ item('opencomputers:material', 10) * 64,
+ item('opencomputers:material', 11) * 8,
+ ore('circuitEv'),
+ mi('plateTitanium')
+ )
+ .fluidInputs(fluid('tin') * 288)
+ .outputs(item('opencomputers:component', 17))
+ .duration(100)
+ .EUt(1920)
+ .buildAndRegister()
+circuit_assembler.recipeBuilder()
+ .circuitMeta(2)
+ .inputs(
+ item('opencomputers:material', 10) * 64,
+ item('opencomputers:material', 11) * 8,
+ ore('circuitEv'),
+ mi('plateTitanium')
+ )
+ .fluidInputs(fluid('soldering_alloy') * 144)
+ .outputs(item('opencomputers:component', 17))
+ .duration(100)
+ .EUt(1920)
+ .buildAndRegister()
+
+// ALU
+circuit_assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('circuit_board.good'),
+ mi('plate.integrated_logic_circuit', 8)
+ )
+ .fluidInputs(fluid('tin') * 144)
+ .outputs(item('opencomputers:material', 10))
+ .duration(100)
+ .EUt(30)
+ .buildAndRegister()
+circuit_assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('circuit_board.good'),
+ mi('plate.integrated_logic_circuit', 8)
+ )
+ .fluidInputs(fluid('soldering_alloy') * 72)
+ .outputs(item('opencomputers:material', 10))
+ .duration(100)
+ .EUt(30)
+ .buildAndRegister()
+
+// CU
+circuit_assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('opencomputers:material', 6) * 2,
+ ore('circuitLv')
+ )
+ .fluidInputs(fluid('tin') * 144)
+ .outputs(item('opencomputers:material', 11))
+ .duration(100)
+ .EUt(30)
+ .buildAndRegister()
+circuit_assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('opencomputers:material', 6) * 2,
+ ore('circuitLv')
+ )
+ .fluidInputs(fluid('soldering_alloy') * 72)
+ .outputs(item('opencomputers:material', 11))
+ .duration(100)
+ .EUt(30)
+ .buildAndRegister()
+
+// Transistor
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ ore('boltIron') * 3,
+ item('minecraft:redstone')
+ )
+ .outputs(item('opencomputers:material', 6))
+ .duration(200)
+ .EUt(30)
+ .buildAndRegister()
+
+// Card Base
+assembler.recipeBuilder()
+ .circuitMeta(2)
+ .inputs(
+ ore('circuitLv'),
+ mi('circuit_board.good'),
+ mi('foilElectrum')
+ )
+ .outputs(item('opencomputers:material', 5))
+ .duration(100)
+ .EUt(30)
+ .buildAndRegister()
+
+// Data Card - Tier 1
+circuit_assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('opencomputers:material', 5),
+ item('opencomputers:material', 7),
+ item('opencomputers:material', 10) * 4,
+ mi('boltElectrum', 8)
+ )
+ .fluidInputs(fluid('tin') * 144)
+ .outputs(item('opencomputers:card', 10))
+ .duration(100)
+ .EUt(30)
+ .buildAndRegister()
+circuit_assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('opencomputers:material', 5),
+ item('opencomputers:material', 7),
+ item('opencomputers:material', 10) * 4,
+ mi('boltElectrum', 8)
+ )
+ .fluidInputs(fluid('soldering_alloy') * 72)
+ .outputs(item('opencomputers:card', 10))
+ .duration(100)
+ .EUt(30)
+ .buildAndRegister()
+
+// Data Card - Tier 2
+circuit_assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('opencomputers:material', 5),
+ item('opencomputers:material', 8),
+ item('opencomputers:component'),
+ mi('boltElectrum', 16)
+ )
+ .fluidInputs(fluid('tin') * 144)
+ .outputs(item('opencomputers:card', 11))
+ .duration(100)
+ .EUt(120)
+ .buildAndRegister()
+circuit_assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('opencomputers:material', 5),
+ item('opencomputers:material', 8),
+ item('opencomputers:component'),
+ mi('boltElectrum', 16)
+ )
+ .fluidInputs(fluid('soldering_alloy') * 72)
+ .outputs(item('opencomputers:card', 11))
+ .duration(100)
+ .EUt(120)
+ .buildAndRegister()
+
+// Data Card - Tier 3
+circuit_assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('opencomputers:material', 5),
+ item('opencomputers:material', 9),
+ item('opencomputers:component', 1),
+ mi('boltElectrum', 32)
+ )
+ .fluidInputs(fluid('tin') * 144)
+ .outputs(item('opencomputers:card', 12))
+ .duration(100)
+ .EUt(480)
+ .buildAndRegister()
+circuit_assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('opencomputers:material', 5),
+ item('opencomputers:material', 9),
+ item('opencomputers:component', 1),
+ mi('boltElectrum', 32)
+ )
+ .fluidInputs(fluid('soldering_alloy') * 72)
+ .outputs(item('opencomputers:card', 12))
+ .duration(100)
+ .EUt(480)
+ .buildAndRegister()
+
+// Memory Card - Tier 1
+circuit_assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('circuit_board.good'),
+ mi('plate.random_access_memory', 16),
+ item('opencomputers:material', 7) * 2,
+ mi('foilElectrum', 16)
+ )
+ .fluidInputs(fluid('tin') * 144)
+ .outputs(item('opencomputers:component', 6))
+ .duration(100)
+ .EUt(30)
+ .buildAndRegister()
+circuit_assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('circuit_board.good'),
+ mi('plate.random_access_memory', 16),
+ item('opencomputers:material', 7) * 2,
+ mi('foilElectrum', 16)
+ )
+ .fluidInputs(fluid('soldering_alloy') * 72)
+ .outputs(item('opencomputers:component', 6))
+ .duration(100)
+ .EUt(30)
+ .buildAndRegister()
+
+// Memory Card - Tier 1.5
+circuit_assembler.recipeBuilder()
+ .circuitMeta(2)
+ .inputs(
+ mi('circuit_board.plastic'),
+ mi('plate.random_access_memory', 32),
+ item('opencomputers:material', 7) * 4,
+ mi('foilElectrum', 16)
+ )
+ .fluidInputs(fluid('tin') * 144)
+ .outputs(item('opencomputers:component', 7))
+ .duration(100)
+ .EUt(120)
+ .buildAndRegister()
+circuit_assembler.recipeBuilder()
+ .circuitMeta(2)
+ .inputs(
+ mi('circuit_board.plastic'),
+ mi('plate.random_access_memory', 16),
+ item('opencomputers:material', 7) * 2,
+ mi('foilElectrum', 16)
+ )
+ .fluidInputs(fluid('soldering_alloy') * 72)
+ .outputs(item('opencomputers:component', 7))
+ .duration(100)
+ .EUt(120)
+ .buildAndRegister()
+
+// Memory Card - Tier 2
+circuit_assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('circuit_board.advanced'),
+ mi('plate.random_access_memory', 64),
+ item('opencomputers:material', 8) * 2,
+ mi('foilElectrum', 16)
+ )
+ .fluidInputs(fluid('tin') * 144)
+ .outputs(item('opencomputers:component', 8))
+ .duration(100)
+ .EUt(480)
+ .buildAndRegister()
+circuit_assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('circuit_board.advanced'),
+ mi('plate.random_access_memory', 64),
+ item('opencomputers:material', 8) * 2,
+ mi('foilElectrum', 16)
+ )
+ .fluidInputs(fluid('soldering_alloy') * 72)
+ .outputs(item('opencomputers:component', 8))
+ .duration(100)
+ .EUt(480)
+ .buildAndRegister()
+
+// Memory Card - Tier 2.5
+circuit_assembler.recipeBuilder()
+ .circuitMeta(2)
+ .inputs(
+ mi('circuit_board.advanced'),
+ mi('plate.random_access_memory', 64),
+ mi('plate.nand_memory_chip', 16),
+ item('opencomputers:material', 8) * 4,
+ mi('foilElectrum', 16)
+ )
+ .fluidInputs(fluid('tin') * 144)
+ .outputs(item('opencomputers:component', 9))
+ .duration(100)
+ .EUt(480)
+ .buildAndRegister()
+circuit_assembler.recipeBuilder()
+ .circuitMeta(2)
+ .inputs(
+ mi('circuit_board.advanced'),
+ mi('plate.random_access_memory', 64),
+ mi('plate.nand_memory_chip', 16),
+ item('opencomputers:material', 8) * 4,
+ mi('foilElectrum', 16)
+ )
+ .fluidInputs(fluid('soldering_alloy') * 72)
+ .outputs(item('opencomputers:component', 9))
+ .duration(100)
+ .EUt(480)
+ .buildAndRegister()
+
+// Memory Card - Tier 3
+circuit_assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('circuit_board.extreme'),
+ mi('plate.random_access_memory', 64),
+ mi('plate.nand_memory_chip', 32),
+ item('opencomputers:material', 9) * 2,
+ mi('foilElectrum', 16)
+ )
+ .fluidInputs(fluid('tin') * 144)
+ .outputs(item('opencomputers:component', 10))
+ .duration(100)
+ .EUt(1920)
+ .buildAndRegister()
+circuit_assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('circuit_board.extreme'),
+ mi('plate.random_access_memory', 64),
+ mi('plate.nand_memory_chip', 32),
+ item('opencomputers:material', 9) * 2,
+ mi('foilElectrum', 16)
+ )
+ .fluidInputs(fluid('soldering_alloy') * 72)
+ .outputs(item('opencomputers:component', 10))
+ .duration(100)
+ .EUt(1920)
+ .buildAndRegister()
+
+// Memory Card - Tier 3.5
+circuit_assembler.recipeBuilder()
+ .circuitMeta(2)
+ .inputs(
+ mi('circuit_board.extreme'),
+ mi('plate.random_access_memory', 64),
+ mi('plate.nand_memory_chip', 64),
+ item('opencomputers:material', 9) * 4,
+ mi('foilElectrum', 16)
+ )
+ .fluidInputs(fluid('tin') * 144)
+ .outputs(item('opencomputers:component', 11))
+ .duration(100)
+ .EUt(7680)
+ .buildAndRegister()
+circuit_assembler.recipeBuilder()
+ .circuitMeta(2)
+ .inputs(
+ mi('circuit_board.extreme'),
+ mi('plate.random_access_memory', 64),
+ mi('plate.nand_memory_chip', 64),
+ item('opencomputers:material', 9) * 4,
+ mi('foilElectrum', 16)
+ )
+ .fluidInputs(fluid('soldering_alloy') * 72)
+ .outputs(item('opencomputers:component', 11))
+ .duration(100)
+ .EUt(7680)
+ .buildAndRegister()
+
+// Graphics Card - Tier 1
+circuit_assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('opencomputers:material', 5),
+ item('opencomputers:material', 10) * 8,
+ item('opencomputers:material', 11),
+ item('opencomputers:material', 7),
+ item('opencomputers:component', 6)
+ )
+ .fluidInputs(fluid('tin') * 288)
+ .outputs(item('opencomputers:card', 1))
+ .duration(100)
+ .EUt(30)
+ .buildAndRegister()
+circuit_assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('opencomputers:material', 5),
+ item('opencomputers:material', 10) * 8,
+ item('opencomputers:material', 11),
+ item('opencomputers:material', 7),
+ item('opencomputers:component', 6)
+ )
+ .fluidInputs(fluid('soldering_alloy') * 144)
+ .outputs(item('opencomputers:card', 1))
+ .duration(100)
+ .EUt(30)
+ .buildAndRegister()
+
+// Graphics Card - Tier 2
+circuit_assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('opencomputers:material', 5),
+ item('opencomputers:material', 10) * 16,
+ item('opencomputers:material', 11) * 2,
+ item('opencomputers:material', 8) * 2,
+ item('opencomputers:component', 8)
+ )
+ .fluidInputs(fluid('tin') * 288)
+ .outputs(item('opencomputers:card', 2))
+ .duration(100)
+ .EUt(120)
+ .buildAndRegister()
+circuit_assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('opencomputers:material', 5),
+ item('opencomputers:material', 10) * 16,
+ item('opencomputers:material', 11) * 2,
+ item('opencomputers:material', 8) * 2,
+ item('opencomputers:component', 8)
+ )
+ .fluidInputs(fluid('soldering_alloy') * 144)
+ .outputs(item('opencomputers:card', 2))
+ .duration(100)
+ .EUt(120)
+ .buildAndRegister()
+
+// Graphics Card - Tier 3
+circuit_assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('opencomputers:material', 5),
+ item('opencomputers:material', 10) * 32,
+ item('opencomputers:material', 11) * 4,
+ item('opencomputers:material', 9) * 4,
+ item('opencomputers:component', 10)
+ )
+ .fluidInputs(fluid('tin') * 288)
+ .outputs(item('opencomputers:card', 3))
+ .duration(100)
+ .EUt(480)
+ .buildAndRegister()
+circuit_assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('opencomputers:material', 5),
+ item('opencomputers:material', 10) * 32,
+ item('opencomputers:material', 11) * 4,
+ item('opencomputers:material', 9) * 4,
+ item('opencomputers:component', 10)
+ )
+ .fluidInputs(fluid('soldering_alloy') * 144)
+ .outputs(item('opencomputers:card', 3))
+ .duration(100)
+ .EUt(480)
+ .buildAndRegister()
+
+// Redstone Card - Tier 1
+circuit_assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('opencomputers:material', 5),
+ item('opencomputers:material', 7) * 2,
+ item('opencomputers:cable') * 2,
+ mi('plate.integrated_logic_circuit', 4),
+ mi('cover.activity.detector')
+ )
+ .fluidInputs(fluid('tin') * 144)
+ .outputs(item('opencomputers:card', 4))
+ .duration(100)
+ .EUt(30)
+ .buildAndRegister()
+circuit_assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('opencomputers:material', 5),
+ item('opencomputers:material', 7) * 2,
+ item('opencomputers:cable') * 2,
+ mi('plate.integrated_logic_circuit', 4),
+ mi('cover.activity.detector')
+ )
+ .fluidInputs(fluid('soldering_alloy') * 72)
+ .outputs(item('opencomputers:card', 4))
+ .duration(100)
+ .EUt(30)
+ .buildAndRegister()
+
+// Redstone Card - Tier 2
+circuit_assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('opencomputers:material', 5),
+ item('opencomputers:material', 8) * 2,
+ item('opencomputers:cable') * 2,
+ mi('plate.integrated_logic_circuit', 16),
+ mi('cover.activity.detector', 2)
+ )
+ .fluidInputs(fluid('tin') * 144)
+ .outputs(item('opencomputers:card', 5))
+ .duration(100)
+ .EUt(120)
+ .buildAndRegister()
+circuit_assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('opencomputers:material', 5),
+ item('opencomputers:material', 8) * 2,
+ item('opencomputers:cable') * 2,
+ mi('plate.integrated_logic_circuit', 16),
+ mi('cover.activity.detector', 2)
+ )
+ .fluidInputs(fluid('soldering_alloy') * 72)
+ .outputs(item('opencomputers:card', 5))
+ .duration(100)
+ .EUt(120)
+ .buildAndRegister()
+
+// Network Card
+circuit_assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('opencomputers:material', 5),
+ item('opencomputers:cable') * 2,
+ item('opencomputers:material', 9),
+ mi('boltElectrum', 8)
+ )
+ .fluidInputs(fluid('tin') * 144)
+ .outputs(item('opencomputers:card', 6))
+ .duration(100)
+ .EUt(30)
+ .buildAndRegister()
+circuit_assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('opencomputers:material', 5),
+ item('opencomputers:cable') * 2,
+ item('opencomputers:material', 9),
+ mi('boltElectrum', 8)
+ )
+ .fluidInputs(fluid('soldering_alloy') * 72)
+ .outputs(item('opencomputers:card', 6))
+ .duration(100)
+ .EUt(30)
+ .buildAndRegister()
+
+// Wireless Network Card - Tier 1
+circuit_assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('opencomputers:card', 6),
+ mi('circuit_board.plastic'),
+ item('opencomputers:material', 8),
+ mi('emitter.mv'),
+ mi('sensor.mv')
+ )
+ .fluidInputs(fluid('tin') * 144)
+ .outputs(item('opencomputers:upgrade', 31))
+ .duration(100)
+ .EUt(120)
+ .buildAndRegister()
+circuit_assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('opencomputers:card', 6),
+ mi('circuit_board.plastic'),
+ item('opencomputers:material', 8),
+ mi('emitter.mv'),
+ mi('sensor.mv')
+ )
+ .fluidInputs(fluid('soldering_alloy') * 72)
+ .outputs(item('opencomputers:upgrade', 31))
+ .duration(100)
+ .EUt(120)
+ .buildAndRegister()
+
+// Wireless Network Card - Tier 2
+circuit_assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('opencomputers:card', 6),
+ mi('circuit_board.advanced'),
+ item('opencomputers:material', 9),
+ mi('emitter.hv'),
+ mi('sensor.hv')
+ )
+ .fluidInputs(fluid('tin') * 144)
+ .outputs(item('opencomputers:card', 7))
+ .duration(100)
+ .EUt(120)
+ .buildAndRegister()
+circuit_assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('opencomputers:card', 6),
+ mi('circuit_board.advanced'),
+ item('opencomputers:material', 9),
+ mi('emitter.hv'),
+ mi('sensor.hv')
+ )
+ .fluidInputs(fluid('soldering_alloy') * 72)
+ .outputs(item('opencomputers:card', 7))
+ .duration(100)
+ .EUt(120)
+ .buildAndRegister()
+
+// Internet Card
+circuit_assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('opencomputers:card', 7),
+ item('opencomputers:material', 13),
+ item('opencomputers:material', 9),
+ item('projectred-illumination:light_button', 14)
+ )
+ .fluidInputs(fluid('tin') * 144)
+ .outputs(item('opencomputers:card', 8))
+ .duration(100)
+ .EUt(480)
+ .buildAndRegister()
+circuit_assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('opencomputers:card', 7),
+ item('opencomputers:material', 13),
+ item('opencomputers:material', 9),
+ item('projectred-illumination:light_button', 14)
+ )
+ .fluidInputs(fluid('soldering_alloy') * 72)
+ .outputs(item('opencomputers:card', 8))
+ .duration(100)
+ .EUt(480)
+ .buildAndRegister()
+
+// Linked Card
+mods.minecraft.crafting.remove(resource('opencomputers:card89'))
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('opencomputers:card', 7),
+ item('opencomputers:material', 11) * 2,
+ item('opencomputers:material', 13)
+ )
+ .outputs(item('opencomputers:card', 9))
+ .duration(100)
+ .EUt(480)
+ .buildAndRegister()
+
+// Interweb
+assembler.recipeBuilder()
+ .circuitMeta(2)
+ .inputs(
+ mi('platePlastic'),
+ item('minecraft:string') * 8
+ )
+ .fluidInputs(fluid('glue') * 576)
+ .outputs(item('opencomputers:material', 13))
+ .duration(100)
+ .EUt(120)
+ .buildAndRegister()
+
+// Component Bus - Tier 1
+circuit_assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('circuit_board.good'),
+ item('opencomputers:material', 7) * 2,
+ item('opencomputers:material', 11),
+ mi('boltRedAlloy', 4)
+ )
+ .fluidInputs(fluid('tin') * 144)
+ .outputs(item('opencomputers:component', 3))
+ .duration(100)
+ .EUt(30)
+ .buildAndRegister()
+circuit_assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('circuit_board.good'),
+ item('opencomputers:material', 7) * 2,
+ item('opencomputers:material', 11),
+ mi('boltRedAlloy', 4)
+ )
+ .fluidInputs(fluid('soldering_alloy') * 72)
+ .outputs(item('opencomputers:component', 3))
+ .duration(100)
+ .EUt(30)
+ .buildAndRegister()
+
+// Component Bus - Tier 2
+circuit_assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('circuit_board.plastic'),
+ item('opencomputers:material', 8) * 2,
+ item('opencomputers:material', 11) * 4,
+ item('opencomputers:component', 8),
+ mi('boltElectrum', 8)
+ )
+ .fluidInputs(fluid('tin') * 144)
+ .outputs(item('opencomputers:component', 4))
+ .duration(100)
+ .EUt(120)
+ .buildAndRegister()
+circuit_assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('circuit_board.plastic'),
+ item('opencomputers:material', 8) * 2,
+ item('opencomputers:material', 11) * 4,
+ item('opencomputers:component', 8),
+ mi('boltElectrum', 8)
+ )
+ .fluidInputs(fluid('soldering_alloy') * 72)
+ .outputs(item('opencomputers:component', 4))
+ .duration(100)
+ .EUt(120)
+ .buildAndRegister()
+
+// Component Bus - Tier 3
+circuit_assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('circuit_board.advanced'),
+ item('opencomputers:material', 9) * 2,
+ item('opencomputers:material', 11) * 8,
+ item('opencomputers:component', 10),
+ mi('boltDiamond', 16)
+ )
+ .fluidInputs(fluid('tin') * 144)
+ .outputs(item('opencomputers:component', 5))
+ .duration(100)
+ .EUt(480)
+ .buildAndRegister()
+circuit_assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('circuit_board.advanced'),
+ item('opencomputers:material', 9) * 2,
+ item('opencomputers:material', 11) * 8,
+ item('opencomputers:component', 10),
+ mi('boltDiamond', 16)
+ )
+ .fluidInputs(fluid('soldering_alloy') * 72)
+ .outputs(item('opencomputers:component', 5))
+ .duration(100)
+ .EUt(480)
+ .buildAndRegister()
+
+// Microchip - Tier 1
+circuit_assembler.recipeBuilder()
+ .circuitMeta(2)
+ .inputs(
+ mi('circuit_board.good'),
+ ore('circuitLv'),
+ item('opencomputers:material', 6) * 4,
+ mi('foilElectrum', 4)
+ )
+ .fluidInputs(fluid('tin') * 144)
+ .outputs(item('opencomputers:material', 7))
+ .duration(100)
+ .EUt(30)
+ .buildAndRegister()
+circuit_assembler.recipeBuilder()
+ .circuitMeta(2)
+ .inputs(
+ mi('circuit_board.good'),
+ ore('circuitLv'),
+ item('opencomputers:material', 6) * 4,
+ mi('foilElectrum', 4)
+ )
+ .fluidInputs(fluid('soldering_alloy') * 72)
+ .outputs(item('opencomputers:material', 7))
+ .duration(100)
+ .EUt(30)
+ .buildAndRegister()
+
+// Microchip - Tier 2
+circuit_assembler.recipeBuilder()
+ .circuitMeta(2)
+ .inputs(
+ mi('circuit_board.plastic'),
+ ore('circuitMv'),
+ item('opencomputers:material', 6) * 8,
+ mi('foilElectrum', 8)
+ )
+ .fluidInputs(fluid('tin') * 144)
+ .outputs(item('opencomputers:material', 8))
+ .duration(100)
+ .EUt(120)
+ .buildAndRegister()
+circuit_assembler.recipeBuilder()
+ .circuitMeta(2)
+ .inputs(
+ mi('circuit_board.plastic'),
+ ore('circuitMv'),
+ item('opencomputers:material', 6) * 8,
+ mi('foilElectrum', 8)
+ )
+ .fluidInputs(fluid('soldering_alloy') * 72)
+ .outputs(item('opencomputers:material', 8))
+ .duration(100)
+ .EUt(120)
+ .buildAndRegister()
+
+// Microchip - Tier 3
+circuit_assembler.recipeBuilder()
+ .circuitMeta(2)
+ .inputs(
+ mi('circuit_board.advanced'),
+ ore('circuitHv'),
+ ore('componentTransistor') * 8,
+ mi('foilElectrum', 16)
+ )
+ .fluidInputs(fluid('tin') * 144)
+ .outputs(item('opencomputers:material', 9))
+ .duration(100)
+ .EUt(480)
+ .buildAndRegister()
+circuit_assembler.recipeBuilder()
+ .circuitMeta(2)
+ .inputs(
+ mi('circuit_board.advanced'),
+ ore('circuitHv'),
+ ore('componentTransistor') * 8,
+ mi('foilElectrum', 16)
+ )
+ .fluidInputs(fluid('soldering_alloy') * 72)
+ .outputs(item('opencomputers:material', 9))
+ .duration(100)
+ .EUt(480)
+ .buildAndRegister()
+
+// Disk Drive
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('opencomputers:diskdrive'),
+ item('opencomputers:material', 7),
+ mi('circuit_board.advanced'),
+ item('enderio:block_dark_iron_bars') * 2,
+ mi('plateObsidian', 4)
+ )
+ .fluidInputs(fluid('plastic') * 72)
+ .outputs(item('opencomputers:component', 20))
+ .duration(200)
+ .EUt(480)
+ .buildAndRegister()
+
+// Terminal Server
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('circuit_board.extreme'),
+ item('opencomputers:card', 7) * 2,
+ item('opencomputers:material', 8) * 2,
+ mi('plateObsidian', 4),
+ mi('boltElectrum', 16)
+ )
+ .fluidInputs(fluid('plastic') * 72)
+ .outputs(item('opencomputers:component', 19))
+ .duration(200)
+ .EUt(1920)
+ .buildAndRegister()
+
+// Server - Tier 1
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('circuit_board.plastic'),
+ item('opencomputers:case1'),
+ item('opencomputers:material', 7) * 2,
+ item('opencomputers:material', 8),
+ item('opencomputers:component', 9)
+ )
+ .fluidInputs(fluid('plastic') * 144)
+ .outputs(item('opencomputers:component', 13))
+ .duration(200)
+ .EUt(120)
+ .buildAndRegister()
+
+// Server - Tier 2
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('circuit_board.advanced'),
+ item('opencomputers:case2'),
+ item('opencomputers:material', 8) * 2,
+ item('opencomputers:material', 9),
+ item('opencomputers:component', 10)
+ )
+ .fluidInputs(fluid('plastic') * 144)
+ .outputs(item('opencomputers:component', 14))
+ .duration(200)
+ .EUt(480)
+ .buildAndRegister()
+
+// Server - Tier 3
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('circuit_board.extreme'),
+ item('opencomputers:case3'),
+ item('opencomputers:material', 9) * 2,
+ ore('circuitEv'),
+ item('opencomputers:component', 11)
+ )
+ .fluidInputs(fluid('plastic') * 144)
+ .outputs(item('opencomputers:component', 15))
+ .duration(200)
+ .EUt(1920)
+ .buildAndRegister()
+
+
+////////////////////////////////////////
+// Blocks
+////////////////////////////////////////
+// OC Conduit
+assembler.recipeBuilder()
+ .inputs(
+ item('opencomputers:cable'),
+ mi('plateRedstoneAlloy')
+ )
+ .fluidInputs(fluid('plastic') * 144)
+ .outputs(item('enderio:item_opencomputers_conduit'))
+ .duration(100)
+ .EUt(480)
+ .buildAndRegister()
+
+// Cable
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('cableGtSingleGold'),
+ mi('dustTinyRedAlloy')
+ )
+ .outputs(item('opencomputers:cable'))
+ .duration(200)
+ .EUt(120)
+ .buildAndRegister()
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('cableGtSingleGold'),
+ mi('dustTinyEmerald')
+ )
+ .outputs(item('opencomputers:cable'))
+ .duration(200)
+ .EUt(120)
+ .buildAndRegister()
+
+// Adapter
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('gregtech:machine_casing', 2),
+ mi('circuit_board.plastic'),
+ item('opencomputers:cable') * 2,
+ item('opencomputers:material', 7)
+ )
+ .fluidInputs(fluid('plastic') * 72)
+ .outputs(item('opencomputers:adapter'))
+ .duration(200)
+ .EUt(120)
+ .buildAndRegister()
+
+// Capacitor
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('gregtech:machine_casing', 1),
+ mi('battery.re.ulv.tantalum', 8),
+ mi('circuit_board.plastic'),
+ item('opencomputers:material', 6),
+ item('opencomputers:cable') * 2
+ )
+ .fluidInputs(fluid('plastic') * 72)
+ .outputs(item('opencomputers:capacitor'))
+ .duration(200)
+ .EUt(120)
+ .buildAndRegister()
+
+// Charger
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('gregtech:machine_casing', 1),
+ item('opencomputers:capacitor'),
+ mi('circuit_board.plastic'),
+ item('opencomputers:material', 9),
+ item('opencomputers:cable') * 2
+ )
+ .fluidInputs(fluid('plastic') * 72)
+ .outputs(item('opencomputers:charger'))
+ .duration(200)
+ .EUt(120)
+ .buildAndRegister()
+
+// Power Distributor
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('gregtech:machine_casing', 3),
+ item('opencomputers:capacitor'),
+ mi('circuit_board.advanced'),
+ mi('plateStainlessSteel'),
+ item('opencomputers:cable') * 2,
+ ore('circuitHv')
+ )
+ .fluidInputs(fluid('plastic') * 72)
+ .outputs(item('opencomputers:powerdistributor'))
+ .duration(200)
+ .EUt(480)
+ .buildAndRegister()
+
+// Power Converter
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('transformer.mv'),
+ mi('circuit_board.plastic', 2),
+ item('opencomputers:material', 8) * 2,
+ mi('plateAluminium', 2),
+ item('opencomputers:cable') * 2
+ )
+ .fluidInputs(fluid('plastic') * 72)
+ .outputs(item('opencomputers:powerconverter'))
+ .duration(200)
+ .EUt(120)
+ .buildAndRegister()
+
+// Waypoint
+assembler.recipeBuilder()
+ .circuitMeta(2)
+ .inputs(
+ item('gregtech:machine_casing', 2),
+ item('opencomputers:material', 13),
+ mi('circuit_board.plastic'),
+ item('opencomputers:material', 7),
+ item('opencomputers:material', 6) * 2,
+ item('opencomputers:cable') * 2
+ )
+ .fluidInputs(fluid('plastic') * 72)
+ .outputs(item('opencomputers:waypoint'))
+ .duration(200)
+ .EUt(120)
+ .buildAndRegister()
+
+// Net Splitter
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ mi('buffer.mv'),
+ item('opencomputers:upgrade', 18),
+ item('opencomputers:upgrade', 24),
+ mi('board.plastic', 2),
+ item('opencomputers:cable') * 2
+ )
+ .fluidInputs(fluid('plastic') * 72)
+ .outputs(item('opencomputers:transposer') * 2)
+ .duration(200)
+ .EUt(120)
+ .buildAndRegister()
+
+// Electronics Assembler
+assembler.recipeBuilder()
+ .circuitMeta(2)
+ .inputs(
+ item('gregtech:machine_casing', 2),
+ mi('circuit_board.plastic'),
+ item('opencomputers:material', 8),
+ mi('robot.arm.mv', 2)
+ )
+ .fluidInputs(fluid('plastic') * 72)
+ .outputs(item('opencomputers:assembler'))
+ .duration(200)
+ .EUt(120)
+ .buildAndRegister()
+
+// Screen - Tier 1
+circuit_assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('gregtech:machine_casing', 2),
+ mi('cover.screen'),
+ ore('circuitMv') * 2,
+ item('opencomputers:material', 6) * 2
+ )
+ .fluidInputs(fluid('tin') * 144)
+ .outputs(item('opencomputers:screen1'))
+ .duration(200)
+ .EUt(120)
+ .buildAndRegister()
+circuit_assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('gregtech:machine_casing', 2),
+ mi('cover.screen'),
+ ore('circuitMv') * 2,
+ item('opencomputers:material', 6) * 2
+ )
+ .fluidInputs(fluid('plastic') * 72)
+ .outputs(item('opencomputers:screen1'))
+ .duration(200)
+ .EUt(120)
+ .buildAndRegister()
+
+// Screen - Tier 2
+circuit_assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('opencomputers:screen1'),
+ ore('circuitHv') * 2,
+ ore('componentTransistor') * 2
+ )
+ .fluidInputs(fluid('tin') * 144)
+ .outputs(item('opencomputers:screen2'))
+ .duration(200)
+ .EUt(480)
+ .buildAndRegister()
+circuit_assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('opencomputers:screen1'),
+ ore('circuitHv') * 2,
+ ore('componentTransistor') * 2
+ )
+ .fluidInputs(fluid('plastic') * 72)
+ .outputs(item('opencomputers:screen2'))
+ .duration(200)
+ .EUt(480)
+ .buildAndRegister()
+
+// Screen - Tier 3
+circuit_assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('opencomputers:screen2'),
+ ore('circuitEv') * 2,
+ mi('component.advanced_smd.transistor')
+ )
+ .fluidInputs(fluid('tin') * 144)
+ .outputs(item('opencomputers:screen3'))
+ .duration(200)
+ .EUt(1920)
+ .buildAndRegister()
+circuit_assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(
+ item('opencomputers:screen2'),
+ ore('circuitEv') * 2,
+ mi('component.advanced_smd.transistor')
+ )
+ .fluidInputs(fluid('plastic') * 72)
+ .outputs(item('opencomputers:screen3'))
+ .duration(200)
+ .EUt(1920)
+ .buildAndRegister()
+
+// Disk Drive
+assembler.recipeBuilder()
+ .inputs(
+ item('gregtech:machine_casing', 2),
+ item('opencomputers:material', 8) * 2,
+ mi('electric.motor.mv'),
+ mi('springSmallCopper'),
+ mi('stickIronMagnetic'),
+ mi('lensGlass')
+ )
+ .fluidInputs(fluid('plastic') * 72)
+ .outputs(item('opencomputers:diskdrive'))
+ .duration(200)
+ .EUt(120)
+ .buildAndRegister()
+
+// Geolyzer
+assembler.recipeBuilder()
+ .inputs(
+ item('gregtech:machine_casing', 2),
+ mi('circuit_board.plastic'),
+ item('opencomputers:material', 8),
+ item('opencomputers:tool'),
+ mi('sensor.mv', 2),
+ mi('lensDiamond', 2)
+ )
+ .outputs(item('opencomputers:geolyzer'))
+ .duration(200)
+ .EUt(120)
+ .buildAndRegister()
+
+// Motion Sensor
+assembler.recipeBuilder()
+ .inputs(
+ mi('circuit_board.plastic'),
+ item('opencomputers:component', 1),
+ mi('platePlastic', 2),
+ item('opencomputers:cable') * 2,
+ item('minecraft:daylight_detector') * 2
+ )
+ .fluidInputs(fluid('plastic') * 72)
+ .outputs(item('opencomputers:motionsensor'))
+ .duration(200)
+ .EUt(120)
+ .buildAndRegister()
+
+// Power Distributor (second recipe - note: outputs motionsensor, same as source)
+assembler.recipeBuilder()
+ .inputs(
+ item('gregtech:machine_casing', 2),
+ mi('circuit_board.plastic'),
+ mi('plateAluminium', 2),
+ item('opencomputers:cable') * 2,
+ ore('circuitHv')
+ )
+ .fluidInputs(fluid('plastic') * 72)
+ .outputs(item('opencomputers:motionsensor'))
+ .duration(200)
+ .EUt(480)
+ .buildAndRegister()
+
+// Raid
+assembler.recipeBuilder()
+ .inputs(
+ item('opencomputers:diskdrive'),
+ item('opencomputers:component', 2),
+ item('opencomputers:component', 6),
+ mi('platePlastic', 4),
+ item('opencomputers:cable') * 2
+ )
+ .fluidInputs(fluid('plastic') * 72)
+ .outputs(item('opencomputers:raid'))
+ .duration(200)
+ .EUt(480)
+ .buildAndRegister()
+
+// Redstone I/O
+assembler.recipeBuilder()
+ .inputs(
+ item('gregtech:machine_casing', 2),
+ mi('circuit_board.plastic', 2),
+ item('opencomputers:material', 8) * 2,
+ mi('plateRedstone', 2),
+ item('opencomputers:card', 4),
+ mi('cover.activity.detector')
+ )
+ .fluidInputs(fluid('plastic') * 72)
+ .outputs(item('opencomputers:redstone'))
+ .duration(200)
+ .EUt(120)
+ .buildAndRegister()
+
+// Relay
+assembler.recipeBuilder()
+ .inputs(
+ item('gregtech:machine_casing', 2),
+ mi('circuit_board.plastic', 2),
+ mi('platePlastic', 2),
+ item('opencomputers:card', 7),
+ item('opencomputers:material', 8),
+ item('opencomputers:cable') * 2
+ )
+ .fluidInputs(fluid('plastic') * 72)
+ .outputs(item('opencomputers:relay'))
+ .duration(200)
+ .EUt(120)
+ .buildAndRegister()
+
+// Rack
+assembler.recipeBuilder()
+ .inputs(
+ item('opencomputers:relay'),
+ item('opencomputers:powerdistributor'),
+ item('opencomputers:card', 7),
+ mi('circuit_board.plastic', 2),
+ mi('rotorSteel', 4),
+ mi('plateSteel', 4)
+ )
+ .fluidInputs(fluid('plastic') * 72)
+ .outputs(item('opencomputers:rack'))
+ .duration(200)
+ .EUt(120)
+ .buildAndRegister()
+
+// Computer Case - Tier 1
+assembler.recipeBuilder()
+ .inputs(
+ item('gregtech:machine_casing', 2),
+ mi('plateAluminium', 4),
+ mi('circuit_board.plastic'),
+ item('opencomputers:material', 7),
+ mi('rotorSteel', 2)
+ )
+ .fluidInputs(fluid('plastic') * 72)
+ .outputs(item('opencomputers:case1'))
+ .duration(200)
+ .EUt(120)
+ .buildAndRegister()
+
+// Computer Case - Tier 2
+assembler.recipeBuilder()
+ .inputs(
+ item('gregtech:machine_casing', 3),
+ mi('plateStainlessSteel', 4),
+ mi('circuit_board.advanced'),
+ item('opencomputers:material', 8),
+ mi('rotorSteel', 2)
+ )
+ .fluidInputs(fluid('plastic') * 72)
+ .outputs(item('opencomputers:case2'))
+ .duration(200)
+ .EUt(480)
+ .buildAndRegister()
+
+// Computer Case - Tier 3
+assembler.recipeBuilder()
+ .inputs(
+ item('gregtech:machine_casing', 4),
+ mi('plateTitanium', 4),
+ mi('circuit_board.extreme'),
+ item('opencomputers:material', 9),
+ mi('rotorSteel', 2)
+ )
+ .fluidInputs(fluid('plastic') * 72)
+ .outputs(item('opencomputers:case3'))
+ .duration(200)
+ .EUt(1920)
+ .buildAndRegister()
diff --git a/overrides/groovy/postInit/normal/PackagedAuto.groovy b/overrides/groovy/postInit/normal/PackagedAuto.groovy
new file mode 100644
index 00000000..3a840719
--- /dev/null
+++ b/overrides/groovy/postInit/normal/PackagedAuto.groovy
@@ -0,0 +1,123 @@
+import gregtech.api.recipes.RecipeMap
+
+def assembler = RecipeMap.getByName("assembler")
+
+// ########################################
+// Items
+// ########################################
+// Package Recipe Holder
+mods.minecraft.crafting.removeByOutput(item('packagedauto:recipe_holder'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('packagedauto:recipe_holder') * 3)
+ .shape([
+ [item('appliedenergistics2:quartz_glass'), item('appliedenergistics2:material', 52), item('appliedenergistics2:quartz_glass')],
+ [item('appliedenergistics2:material', 52), ore('glowstone'), item('appliedenergistics2:material', 52)],
+ [mi('plateTitanium'), item('packagedauto:me_package_component'), mi('plateTitanium')]
+ ])
+ .register()
+
+// Package Component
+mods.minecraft.crafting.removeByOutput(item('packagedauto:package_component'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('packagedauto:package_component'))
+ .shape([
+ [mi('plateVibrantAlloy'), mi('plateTitanium'), mi('plateVibrantAlloy')],
+ [mi('plateTitanium'), item('minecraft:ender_eye'), mi('plateTitanium')],
+ [mi('plateVibrantAlloy'), mi('plateTitanium'), mi('plateVibrantAlloy')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(mi('plateVibrantAlloy', 2), mi('plateTitanium', 2), item('minecraft:ender_eye'))
+ .outputs(item('packagedauto:package_component'))
+ .duration(20)
+ .EUt(1920)
+ .buildAndRegister()
+
+// ME Packaging Component
+mods.minecraft.crafting.removeByOutput(item('packagedauto:me_package_component'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('packagedauto:me_package_component'))
+ .shape([
+ [mi('plateTitanium'), item('appliedenergistics2:quartz_glass'), mi('plateTitanium')],
+ [item('appliedenergistics2:material', 44), item('packagedauto:package_component'), item('appliedenergistics2:material', 43)],
+ [mi('plateTitanium'), item('appliedenergistics2:quartz_glass'), mi('plateTitanium')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(mi('plateTitanium', 2), item('appliedenergistics2:material', 44), item('appliedenergistics2:material', 43), item('appliedenergistics2:quartz_glass'), item('packagedauto:package_component'))
+ .outputs(item('packagedauto:me_package_component'))
+ .duration(20)
+ .EUt(1920)
+ .buildAndRegister()
+
+
+
+// ########################################
+// Blocks
+// ########################################
+// Packager
+mods.minecraft.crafting.removeByOutput(item('packagedauto:packager'))
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('packagedauto:packager'))
+ .input(item('packagedauto:unpackager'))
+ .register()
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('packagedauto:packager'))
+ .shape([
+ [mi('plateTitanium'), item('packagedauto:me_package_component'), mi('plateTitanium')],
+ [ore('circuitHv'), mi('packer.hv'), ore('circuitHv')],
+ [mi('plateTitanium'), ore('craftInterfaceItem'), mi('plateTitanium')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(mi('plateTitanium', 2), ore('craftInterfaceItem'), mi('packer.hv'), ore('circuitHv'), item('packagedauto:me_package_component'))
+ .outputs(item('packagedauto:packager'))
+ .duration(20)
+ .EUt(1920)
+ .buildAndRegister()
+
+// Unpackager
+mods.minecraft.crafting.removeByOutput(item('packagedauto:unpackager'))
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('packagedauto:unpackager'))
+ .input(item('packagedauto:packager'))
+ .register()
+
+// Encoder
+mods.minecraft.crafting.removeByOutput(item('packagedauto:encoder'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('packagedauto:encoder'))
+ .shape([
+ [mi('plateTitanium'), item('packagedauto:me_package_component'), mi('plateTitanium')],
+ [item('packagedauto:recipe_holder'), ore('craftExtendedTerminal'), item('packagedauto:recipe_holder')],
+ [mi('plateTitanium'), ore('circuitHv'), mi('plateTitanium')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(2)
+ .inputs(mi('plateTitanium', 2), ore('circuitHv'), ore('craftExtendedTerminal'), item('packagedauto:recipe_holder'), item('packagedauto:me_package_component'))
+ .outputs(item('packagedauto:encoder'))
+ .duration(20)
+ .EUt(1920)
+ .buildAndRegister()
+
+// Packager Extension
+mods.minecraft.crafting.removeByOutput(item('packagedauto:packager_extension'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('packagedauto:packager_extension'))
+ .shape([
+ [mi('plateTitanium'), item('packagedauto:me_package_component'), mi('plateTitanium')],
+ [ore('circuitHv'), item('storagedrawers:controllerslave'), ore('circuitHv')],
+ [mi('plateTitanium'), ore('craftInterfaceItem'), mi('plateTitanium')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(3)
+ .inputs(mi('plateTitanium', 2), ore('craftInterfaceItem'), item('storagedrawers:controllerslave'), ore('circuitHv'), item('packagedauto:me_package_component'))
+ .outputs(item('packagedauto:packager_extension'))
+ .duration(20)
+ .EUt(1920)
+ .buildAndRegister()
diff --git a/overrides/groovy/postInit/normal/ProjectRed.groovy b/overrides/groovy/postInit/normal/ProjectRed.groovy
new file mode 100644
index 00000000..44111caf
--- /dev/null
+++ b/overrides/groovy/postInit/normal/ProjectRed.groovy
@@ -0,0 +1,114 @@
+////////////////////////////////////////
+// Items
+////////////////////////////////////////
+// Electrotine
+mods.jei.ingredient.hide(item('projectred-core:resource_item', 105))
+mods.minecraft.ore_dict.remove('dustElectrotine', item('projectred-core:resource_item', 105))
+
+// Sandy Compound
+mods.minecraft.crafting.removeByOutput(item('projectred-core:resource_item', 250))
+mods.jei.ingredient.hide(item('projectred-core:resource_item', 250))
+
+// Silicon Boule
+mods.minecraft.furnace.removeByOutput(item('projectred-core:resource_item', 300))
+mods.jei.ingredient.hide(item('projectred-core:resource_item', 300))
+
+// Silicon
+mods.minecraft.crafting.removeByOutput(item('projectred-core:resource_item', 301))
+mods.jei.ingredient.hide(item('projectred-core:resource_item', 301))
+
+// Red Silicon Compound
+mods.minecraft.crafting.removeByOutput(item('projectred-core:resource_item', 310))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('projectred-core:resource_item', 310))
+ .shape([
+ [item('minecraft:redstone'), item('minecraft:redstone'), item('minecraft:redstone')],
+ [item('minecraft:redstone'), mi('wafer.silicon'), item('minecraft:redstone')],
+ [item('minecraft:redstone'), item('minecraft:redstone'), item('minecraft:redstone')]
+ ])
+ .register()
+
+// Glowing Silicon Compound
+mods.minecraft.crafting.removeByOutput(item('projectred-core:resource_item', 311))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('projectred-core:resource_item', 311))
+ .shape([
+ [item('minecraft:glowstone_dust'), item('minecraft:glowstone_dust'), item('minecraft:glowstone_dust')],
+ [item('minecraft:glowstone_dust'), mi('wafer.silicon'), item('minecraft:glowstone_dust')],
+ [item('minecraft:glowstone_dust'), item('minecraft:glowstone_dust'), item('minecraft:glowstone_dust')]
+ ])
+ .register()
+
+// Electrotine Silicon Compound
+mods.minecraft.crafting.removeByOutput(item('projectred-core:resource_item', 312))
+mods.jei.ingredient.hide(item('projectred-core:resource_item', 312))
+
+// Electro Silicon
+mods.minecraft.furnace.removeByOutput(item('projectred-core:resource_item', 342))
+mods.jei.ingredient.hide(item('projectred-core:resource_item', 342))
+
+// Copper Ingot
+mods.jei.ingredient.hide(item('projectred-core:resource_item', 100))
+mods.minecraft.ore_dict.remove('ingotCopper', item('projectred-core:resource_item', 100))
+
+// Tin Ingot
+mods.jei.ingredient.hide(item('projectred-core:resource_item', 101))
+mods.minecraft.ore_dict.remove('ingotTin', item('projectred-core:resource_item', 101))
+
+// Silver Ingot
+mods.jei.ingredient.hide(item('projectred-core:resource_item', 102))
+mods.minecraft.ore_dict.remove('ingotSilver', item('projectred-core:resource_item', 102))
+
+// RedAlloy Ingot
+mods.minecraft.furnace.removeByOutput(item('projectred-core:resource_item', 103))
+mods.jei.ingredient.hide(item('projectred-core:resource_item', 103))
+mods.minecraft.ore_dict.remove('ingotRedAlloy', item('projectred-core:resource_item', 103))
+
+// ElectrotineAlloy Ingot
+mods.minecraft.furnace.removeByOutput(item('projectred-core:resource_item', 104))
+mods.jei.ingredient.hide(item('projectred-core:resource_item', 104))
+mods.minecraft.ore_dict.remove('ingotElectrotineAlloy', item('projectred-core:resource_item', 104))
+
+// Ruby
+mods.jei.ingredient.hide(item('projectred-core:resource_item', 200))
+mods.minecraft.ore_dict.remove('gemRuby', item('projectred-core:resource_item', 200))
+
+// Sapphire
+mods.jei.ingredient.hide(item('projectred-core:resource_item', 201))
+mods.minecraft.ore_dict.remove('gemSapphire', item('projectred-core:resource_item', 201))
+
+// Peridot
+mods.jei.ingredient.hide(item('projectred-core:resource_item', 202))
+mods.minecraft.ore_dict.remove('gemPeridot', item('projectred-core:resource_item', 202))
+
+// Red Iron Compound
+mods.minecraft.crafting.removeByOutput(item('projectred-core:resource_item', 251))
+mods.jei.ingredient.hide(item('projectred-core:resource_item', 251))
+
+// Electrotine Iron Compound
+mods.minecraft.crafting.removeByOutput(item('projectred-core:resource_item', 252))
+mods.jei.ingredient.hide(item('projectred-core:resource_item', 252))
+
+// Woven Cloth
+mods.minecraft.crafting.removeByOutput(item('projectred-core:resource_item', 420))
+mods.jei.ingredient.hide(item('projectred-core:resource_item', 420))
+
+// Sail
+mods.minecraft.crafting.removeByOutput(item('projectred-core:resource_item', 421))
+mods.jei.ingredient.hide(item('projectred-core:resource_item', 421))
+
+// Motor
+mods.minecraft.crafting.removeByOutput(item('projectred-core:resource_item', 410))
+mods.jei.ingredient.hide(item('projectred-core:resource_item', 410))
+
+// Copper Coil
+mods.minecraft.crafting.removeByOutput(item('projectred-core:resource_item', 400))
+mods.jei.ingredient.hide(item('projectred-core:resource_item', 400))
+
+// Iron Coil
+mods.minecraft.crafting.removeByOutput(item('projectred-core:resource_item', 401))
+mods.jei.ingredient.hide(item('projectred-core:resource_item', 401))
+
+// Gold Coil
+mods.minecraft.crafting.removeByOutput(item('projectred-core:resource_item', 402))
+mods.jei.ingredient.hide(item('projectred-core:resource_item', 402))
diff --git a/overrides/groovy/postInit/normal/SOLCarrot.groovy b/overrides/groovy/postInit/normal/SOLCarrot.groovy
new file mode 100644
index 00000000..6f9d5a28
--- /dev/null
+++ b/overrides/groovy/postInit/normal/SOLCarrot.groovy
@@ -0,0 +1,9 @@
+////////////////////////////////////////
+// Items
+////////////////////////////////////////
+// Food Journal
+mods.minecraft.crafting.removeByOutput(item('solcarrot:food_book'))
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('solcarrot:food_book'))
+ .input(item('minecraft:book'), item('minecraft:carrot'))
+ .register()
diff --git a/overrides/groovy/postInit/normal/SpiceOfLife.groovy b/overrides/groovy/postInit/normal/SpiceOfLife.groovy
new file mode 100644
index 00000000..99c3de8f
--- /dev/null
+++ b/overrides/groovy/postInit/normal/SpiceOfLife.groovy
@@ -0,0 +1,31 @@
+////////////////////////////////////////
+// Items
+////////////////////////////////////////
+// Food Journal
+mods.minecraft.crafting.removeByOutput(item('spiceoflife:bookfoodjournal'))
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('spiceoflife:bookfoodjournal'))
+ .input(item('minecraft:book'), item('minecraft:wheat'))
+ .register()
+
+// Lunchbag
+mods.minecraft.crafting.removeByOutput(item('spiceoflife:lunchbag'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('spiceoflife:lunchbag'))
+ .shape([
+ [item('minecraft:paper'), null, item('minecraft:paper')],
+ [mi('rubber_drop'), item('minecraft:paper'), mi('rubber_drop')],
+ [null, null, null]
+ ])
+ .register()
+
+// Lunchbox
+mods.minecraft.crafting.removeByOutput(item('spiceoflife:lunchbox'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('spiceoflife:lunchbox'))
+ .shape([
+ [mi('plateDoubleIron'), ore('craftingToolScrewdriver'), mi('plateDoubleIron')],
+ [mi('screwIron'), mi('plateDoubleIron'), mi('screwIron')],
+ [null, null, null]
+ ])
+ .register()
diff --git a/overrides/groovy/postInit/normal/StorageDrawers.groovy b/overrides/groovy/postInit/normal/StorageDrawers.groovy
new file mode 100644
index 00000000..0247e8a9
--- /dev/null
+++ b/overrides/groovy/postInit/normal/StorageDrawers.groovy
@@ -0,0 +1,538 @@
+import gregtech.api.recipes.RecipeMap
+
+def assembler = RecipeMap.getByName("assembler")
+
+
+////////////////////////////////////////
+// Blocks
+////////////////////////////////////////
+// Trim
+mods.minecraft.crafting.removeByOutput(item('storagedrawers:trim', 32767))
+mods.chisel.carving.addGroup('drawerTrim')
+mods.chisel.carving.addVariation('drawerTrim', item('storagedrawers:trim', 0))
+mods.chisel.carving.addVariation('drawerTrim', item('storagedrawers:trim', 1))
+mods.chisel.carving.addVariation('drawerTrim', item('storagedrawers:trim', 2))
+mods.chisel.carving.addVariation('drawerTrim', item('storagedrawers:trim', 3))
+mods.chisel.carving.addVariation('drawerTrim', item('storagedrawers:trim', 4))
+mods.chisel.carving.addVariation('drawerTrim', item('storagedrawers:trim', 5))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('storagedrawers:trim', 0) * 4)
+ .shape([
+ [item('minecraft:stick'), ore('slabWood'), item('minecraft:stick')],
+ [ore('slabWood'), ore('slabWood'), ore('slabWood')],
+ [item('minecraft:stick'), ore('slabWood'), item('minecraft:stick')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(11)
+ .inputs(ore('slabWood') * 5, item('minecraft:stick') * 4)
+ .outputs(item('storagedrawers:trim', 0) * 4)
+ .duration(20)
+ .EUt(7)
+ .buildAndRegister()
+
+// Basic Drawer
+mods.minecraft.crafting.removeByOutput(item('storagedrawers:basicdrawers', 0))
+mods.chisel.carving.addGroup('drawer1x1')
+mods.chisel.carving.addVariation('drawer1x1', item('storagedrawers:basicdrawers', 0).withNbt(['material': 'oak']))
+mods.chisel.carving.addVariation('drawer1x1', item('storagedrawers:basicdrawers', 0).withNbt(['material': 'spruce']))
+mods.chisel.carving.addVariation('drawer1x1', item('storagedrawers:basicdrawers', 0).withNbt(['material': 'birch']))
+mods.chisel.carving.addVariation('drawer1x1', item('storagedrawers:basicdrawers', 0).withNbt(['material': 'jungle']))
+mods.chisel.carving.addVariation('drawer1x1', item('storagedrawers:basicdrawers', 0).withNbt(['material': 'acacia']))
+mods.chisel.carving.addVariation('drawer1x1', item('storagedrawers:basicdrawers', 0).withNbt(['material': 'dark_oak']))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('storagedrawers:basicdrawers', 0).withNbt(['material': 'oak']))
+ .shape([
+ [ore('slabWood'), ore('slabWood'), ore('slabWood')],
+ [ore('slabWood'), item('minecraft:chest'), ore('slabWood')],
+ [ore('slabWood'), ore('slabWood'), ore('slabWood')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(12)
+ .inputs(ore('slabWood') * 8, item('minecraft:chest'))
+ .outputs(item('storagedrawers:basicdrawers', 0).withNbt(['material': 'oak']))
+ .duration(20)
+ .EUt(7)
+ .buildAndRegister()
+
+// Basic Drawer 1x2
+mods.minecraft.crafting.removeByOutput(item('storagedrawers:basicdrawers', 1))
+mods.chisel.carving.addGroup('drawer1x2')
+mods.chisel.carving.addVariation('drawer1x2', item('storagedrawers:basicdrawers', 1).withNbt(['material': 'oak']))
+mods.chisel.carving.addVariation('drawer1x2', item('storagedrawers:basicdrawers', 1).withNbt(['material': 'spruce']))
+mods.chisel.carving.addVariation('drawer1x2', item('storagedrawers:basicdrawers', 1).withNbt(['material': 'birch']))
+mods.chisel.carving.addVariation('drawer1x2', item('storagedrawers:basicdrawers', 1).withNbt(['material': 'jungle']))
+mods.chisel.carving.addVariation('drawer1x2', item('storagedrawers:basicdrawers', 1).withNbt(['material': 'acacia']))
+mods.chisel.carving.addVariation('drawer1x2', item('storagedrawers:basicdrawers', 1).withNbt(['material': 'dark_oak']))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('storagedrawers:basicdrawers', 1).withNbt(['material': 'oak']) * 2)
+ .shape([
+ [ore('slabWood'), item('minecraft:chest'), ore('slabWood')],
+ [ore('slabWood'), ore('slabWood'), ore('slabWood')],
+ [ore('slabWood'), item('minecraft:chest'), ore('slabWood')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(13)
+ .inputs(ore('slabWood') * 7, item('minecraft:chest') * 2)
+ .outputs(item('storagedrawers:basicdrawers', 1).withNbt(['material': 'oak']) * 2)
+ .duration(20)
+ .EUt(7)
+ .buildAndRegister()
+
+// Basic Drawer 2x2
+mods.minecraft.crafting.removeByOutput(item('storagedrawers:basicdrawers', 2))
+mods.chisel.carving.addGroup('drawer2x2')
+mods.chisel.carving.addVariation('drawer2x2', item('storagedrawers:basicdrawers', 2).withNbt(['material': 'oak']))
+mods.chisel.carving.addVariation('drawer2x2', item('storagedrawers:basicdrawers', 2).withNbt(['material': 'spruce']))
+mods.chisel.carving.addVariation('drawer2x2', item('storagedrawers:basicdrawers', 2).withNbt(['material': 'birch']))
+mods.chisel.carving.addVariation('drawer2x2', item('storagedrawers:basicdrawers', 2).withNbt(['material': 'jungle']))
+mods.chisel.carving.addVariation('drawer2x2', item('storagedrawers:basicdrawers', 2).withNbt(['material': 'acacia']))
+mods.chisel.carving.addVariation('drawer2x2', item('storagedrawers:basicdrawers', 2).withNbt(['material': 'dark_oak']))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('storagedrawers:basicdrawers', 2).withNbt(['material': 'oak']) * 4)
+ .shape([
+ [item('minecraft:chest'), ore('slabWood'), item('minecraft:chest')],
+ [ore('slabWood'), ore('slabWood'), ore('slabWood')],
+ [item('minecraft:chest'), ore('slabWood'), item('minecraft:chest')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(14)
+ .inputs(ore('slabWood') * 5, item('minecraft:chest') * 4)
+ .outputs(item('storagedrawers:basicdrawers', 2).withNbt(['material': 'oak']) * 4)
+ .duration(20)
+ .EUt(7)
+ .buildAndRegister()
+
+// Half Basic Drawer 1x2
+mods.minecraft.crafting.removeByOutput(item('storagedrawers:basicdrawers', 3))
+mods.chisel.carving.addGroup('drawerHalf1x2')
+mods.chisel.carving.addVariation('drawerHalf1x2', item('storagedrawers:basicdrawers', 3).withNbt(['material': 'oak']))
+mods.chisel.carving.addVariation('drawerHalf1x2', item('storagedrawers:basicdrawers', 3).withNbt(['material': 'spruce']))
+mods.chisel.carving.addVariation('drawerHalf1x2', item('storagedrawers:basicdrawers', 3).withNbt(['material': 'birch']))
+mods.chisel.carving.addVariation('drawerHalf1x2', item('storagedrawers:basicdrawers', 3).withNbt(['material': 'jungle']))
+mods.chisel.carving.addVariation('drawerHalf1x2', item('storagedrawers:basicdrawers', 3).withNbt(['material': 'acacia']))
+mods.chisel.carving.addVariation('drawerHalf1x2', item('storagedrawers:basicdrawers', 3).withNbt(['material': 'dark_oak']))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('storagedrawers:basicdrawers', 3).withNbt(['material': 'oak']))
+ .shape([
+ [ore('slabWood'), ore('slabWood'), ore('slabWood')],
+ [item('minecraft:chest'), ore('slabWood'), item('minecraft:chest')],
+ [ore('slabWood'), ore('slabWood'), ore('slabWood')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(15)
+ .inputs(ore('slabWood') * 7, item('minecraft:chest') * 2)
+ .outputs(item('storagedrawers:basicdrawers', 3).withNbt(['material': 'oak']))
+ .duration(20)
+ .EUt(7)
+ .buildAndRegister()
+
+// Half Basic Drawer 2x2
+mods.minecraft.crafting.removeByOutput(item('storagedrawers:basicdrawers', 4))
+mods.chisel.carving.addGroup('drawerHalf2x2')
+mods.chisel.carving.addVariation('drawerHalf2x2', item('storagedrawers:basicdrawers', 4).withNbt(['material': 'oak']))
+mods.chisel.carving.addVariation('drawerHalf2x2', item('storagedrawers:basicdrawers', 4).withNbt(['material': 'spruce']))
+mods.chisel.carving.addVariation('drawerHalf2x2', item('storagedrawers:basicdrawers', 4).withNbt(['material': 'birch']))
+mods.chisel.carving.addVariation('drawerHalf2x2', item('storagedrawers:basicdrawers', 4).withNbt(['material': 'jungle']))
+mods.chisel.carving.addVariation('drawerHalf2x2', item('storagedrawers:basicdrawers', 4).withNbt(['material': 'acacia']))
+mods.chisel.carving.addVariation('drawerHalf2x2', item('storagedrawers:basicdrawers', 4).withNbt(['material': 'dark_oak']))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('storagedrawers:basicdrawers', 4).withNbt(['material': 'oak']) * 4)
+ .shape([
+ [ore('slabWood'), item('minecraft:chest'), ore('slabWood')],
+ [item('minecraft:chest'), ore('slabWood'), item('minecraft:chest')],
+ [ore('slabWood'), item('minecraft:chest'), ore('slabWood')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(16)
+ .inputs(ore('slabWood') * 5, item('minecraft:chest') * 4)
+ .outputs(item('storagedrawers:basicdrawers', 4).withNbt(['material': 'oak']) * 4)
+ .duration(20)
+ .EUt(7)
+ .buildAndRegister()
+
+// Framing Table
+mods.minecraft.crafting.removeByOutput(item('storagedrawers:framingtable'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('storagedrawers:framingtable'))
+ .shape([
+ [ore('slabWood'), ore('slabWood'), ore('slabWood')],
+ [ore('fenceWood'), item('minecraft:stick'), ore('fenceWood')],
+ [ore('fenceWood'), ore('craftingToolScrewdriver'), ore('fenceWood')]
+ ])
+ .register()
+
+// Framed Trim
+mods.minecraft.crafting.removeByOutput(item('storagedrawers:customtrim', 0))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('storagedrawers:customtrim', 0) * 4)
+ .shape([
+ [item('minecraft:stick'), mi('frameWood'), item('minecraft:stick')],
+ [mi('frameWood'), mi('frameWood'), mi('frameWood')],
+ [item('minecraft:stick'), mi('frameWood'), item('minecraft:stick')]
+ ])
+ .register()
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('storagedrawers:customtrim', 0) * 16)
+ .shape([
+ [mi('stickTreatedWood'), mi('frameTreatedWood'), mi('stickTreatedWood')],
+ [mi('frameTreatedWood'), mi('frameTreatedWood'), mi('frameTreatedWood')],
+ [mi('stickTreatedWood'), mi('frameTreatedWood'), mi('stickTreatedWood')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(11)
+ .inputs(mi('frameWood', 5), item('minecraft:stick') * 4)
+ .outputs(item('storagedrawers:customtrim', 0) * 4)
+ .duration(20)
+ .EUt(7)
+ .buildAndRegister()
+assembler.recipeBuilder()
+ .circuitMeta(11)
+ .inputs(mi('frameTreatedWood', 5), mi('stickTreatedWood', 4))
+ .outputs(item('storagedrawers:customtrim', 0) * 16)
+ .duration(20)
+ .EUt(7)
+ .buildAndRegister()
+
+// Framed Drawer
+mods.minecraft.crafting.removeByOutput(item('storagedrawers:customdrawers', 0))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('storagedrawers:customdrawers', 0).withNbt([:]))
+ .shape([
+ [mi('frameWood'), mi('frameWood'), mi('frameWood')],
+ [mi('frameWood'), item('minecraft:chest'), mi('frameWood')],
+ [mi('frameWood'), mi('frameWood'), mi('frameWood')]
+ ])
+ .register()
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('storagedrawers:customdrawers', 0).withNbt([:]) * 4)
+ .shape([
+ [mi('frameTreatedWood'), mi('frameTreatedWood'), mi('frameTreatedWood')],
+ [mi('frameTreatedWood'), item('minecraft:chest'), mi('frameTreatedWood')],
+ [mi('frameTreatedWood'), mi('frameTreatedWood'), mi('frameTreatedWood')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(12)
+ .inputs(mi('frameWood', 8), item('minecraft:chest'))
+ .outputs(item('storagedrawers:customdrawers', 0).withNbt([:]))
+ .duration(20)
+ .EUt(7)
+ .buildAndRegister()
+assembler.recipeBuilder()
+ .circuitMeta(12)
+ .inputs(mi('frameTreatedWood', 8), item('minecraft:chest'))
+ .outputs(item('storagedrawers:customdrawers', 0).withNbt([:]) * 4)
+ .duration(20)
+ .EUt(7)
+ .buildAndRegister()
+
+// Framed Drawer 1x2
+mods.minecraft.crafting.removeByOutput(item('storagedrawers:customdrawers', 1))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('storagedrawers:customdrawers', 1).withNbt([:]) * 2)
+ .shape([
+ [mi('frameWood'), item('minecraft:chest'), mi('frameWood')],
+ [mi('frameWood'), mi('frameWood'), mi('frameWood')],
+ [mi('frameWood'), item('minecraft:chest'), mi('frameWood')]
+ ])
+ .register()
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('storagedrawers:customdrawers', 1).withNbt([:]) * 8)
+ .shape([
+ [mi('frameTreatedWood'), item('minecraft:chest'), mi('frameTreatedWood')],
+ [mi('frameTreatedWood'), mi('frameTreatedWood'), mi('frameTreatedWood')],
+ [mi('frameTreatedWood'), item('minecraft:chest'), mi('frameTreatedWood')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(13)
+ .inputs(mi('frameWood', 7), item('minecraft:chest') * 2)
+ .outputs(item('storagedrawers:customdrawers', 1).withNbt([:]) * 2)
+ .duration(20)
+ .EUt(7)
+ .buildAndRegister()
+assembler.recipeBuilder()
+ .circuitMeta(13)
+ .inputs(mi('frameTreatedWood', 7), item('minecraft:chest') * 2)
+ .outputs(item('storagedrawers:customdrawers', 1).withNbt([:]) * 8)
+ .duration(20)
+ .EUt(7)
+ .buildAndRegister()
+
+// Framed Drawer 2x2
+mods.minecraft.crafting.removeByOutput(item('storagedrawers:customdrawers', 2))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('storagedrawers:customdrawers', 2).withNbt([:]) * 4)
+ .shape([
+ [item('minecraft:chest'), mi('frameWood'), item('minecraft:chest')],
+ [mi('frameWood'), mi('frameWood'), mi('frameWood')],
+ [item('minecraft:chest'), mi('frameWood'), item('minecraft:chest')]
+ ])
+ .register()
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('storagedrawers:customdrawers', 2).withNbt([:]) * 16)
+ .shape([
+ [item('minecraft:chest'), mi('frameTreatedWood'), item('minecraft:chest')],
+ [mi('frameTreatedWood'), mi('frameTreatedWood'), mi('frameTreatedWood')],
+ [item('minecraft:chest'), mi('frameTreatedWood'), item('minecraft:chest')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(14)
+ .inputs(mi('frameWood', 5), item('minecraft:chest') * 4)
+ .outputs(item('storagedrawers:customdrawers', 2).withNbt([:]) * 4)
+ .duration(20)
+ .EUt(7)
+ .buildAndRegister()
+assembler.recipeBuilder()
+ .circuitMeta(14)
+ .inputs(mi('frameTreatedWood', 5), item('minecraft:chest') * 4)
+ .outputs(item('storagedrawers:customdrawers', 2).withNbt([:]) * 16)
+ .duration(20)
+ .EUt(7)
+ .buildAndRegister()
+
+// Framed Half Drawer 1x2
+mods.minecraft.crafting.removeByOutput(item('storagedrawers:customdrawers', 3))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('storagedrawers:customdrawers', 3).withNbt([:]))
+ .shape([
+ [mi('frameWood'), mi('frameWood'), mi('frameWood')],
+ [item('minecraft:chest'), mi('frameWood'), item('minecraft:chest')],
+ [mi('frameWood'), mi('frameWood'), mi('frameWood')]
+ ])
+ .register()
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('storagedrawers:customdrawers', 3).withNbt([:]) * 4)
+ .shape([
+ [mi('frameTreatedWood'), mi('frameTreatedWood'), mi('frameTreatedWood')],
+ [item('minecraft:chest'), mi('frameTreatedWood'), item('minecraft:chest')],
+ [mi('frameTreatedWood'), mi('frameTreatedWood'), mi('frameTreatedWood')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(15)
+ .inputs(mi('frameWood', 7), item('minecraft:chest') * 2)
+ .outputs(item('storagedrawers:customdrawers', 3).withNbt([:]))
+ .duration(20)
+ .EUt(7)
+ .buildAndRegister()
+assembler.recipeBuilder()
+ .circuitMeta(15)
+ .inputs(mi('frameTreatedWood', 7), item('minecraft:chest') * 2)
+ .outputs(item('storagedrawers:customdrawers', 3).withNbt([:]) * 4)
+ .duration(20)
+ .EUt(7)
+ .buildAndRegister()
+
+// Framed Half Drawer 2x2
+mods.minecraft.crafting.removeByOutput(item('storagedrawers:customdrawers', 4))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('storagedrawers:customdrawers', 4).withNbt([:]) * 4)
+ .shape([
+ [mi('frameWood'), item('minecraft:chest'), mi('frameWood')],
+ [item('minecraft:chest'), mi('frameWood'), item('minecraft:chest')],
+ [mi('frameWood'), item('minecraft:chest'), mi('frameWood')]
+ ])
+ .register()
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('storagedrawers:customdrawers', 4).withNbt([:]) * 16)
+ .shape([
+ [mi('frameTreatedWood'), item('minecraft:chest'), mi('frameTreatedWood')],
+ [item('minecraft:chest'), mi('frameTreatedWood'), item('minecraft:chest')],
+ [mi('frameTreatedWood'), item('minecraft:chest'), mi('frameTreatedWood')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(16)
+ .inputs(mi('frameWood', 5), item('minecraft:chest') * 4)
+ .outputs(item('storagedrawers:customdrawers', 4).withNbt([:]) * 4)
+ .duration(20)
+ .EUt(7)
+ .buildAndRegister()
+assembler.recipeBuilder()
+ .circuitMeta(16)
+ .inputs(mi('frameTreatedWood', 5), item('minecraft:chest') * 4)
+ .outputs(item('storagedrawers:customdrawers', 4).withNbt([:]) * 16)
+ .duration(20)
+ .EUt(7)
+ .buildAndRegister()
+
+// Controller
+mods.minecraft.crafting.removeByOutput(item('storagedrawers:controller'))
+mods.minecraft.crafting.removeByOutput(item('framedcompactdrawers:framed_drawer_controller'))
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('framedcompactdrawers:framed_drawer_controller'))
+ .input(item('storagedrawers:controller'))
+ .register()
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('storagedrawers:controller'))
+ .input(item('framedcompactdrawers:framed_drawer_controller'))
+ .register()
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('storagedrawers:controller'))
+ .shape([
+ [ore('plankWood'), ore('plankWood'), ore('plankWood')],
+ [item('minecraft:repeater'), item('storagedrawers:customdrawers'), item('minecraft:repeater')],
+ [ore('plankWood'), ore('plankWood'), ore('plankWood')]
+ ])
+ .register()
+
+// Compacting Drawer
+mods.minecraft.crafting.removeByOutput(item('storagedrawers:compdrawers'))
+mods.minecraft.crafting.removeByOutput(item('framedcompactdrawers:framed_compact_drawer'))
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('framedcompactdrawers:framed_compact_drawer'))
+ .input(item('storagedrawers:compdrawers'))
+ .register()
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('storagedrawers:compdrawers'))
+ .input(item('framedcompactdrawers:framed_compact_drawer'))
+ .register()
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('storagedrawers:compdrawers'))
+ .shape([
+ [ore('plankWood'), ore('plankWood'), ore('plankWood')],
+ [ore('craftingPiston'), item('storagedrawers:customdrawers'), ore('craftingPiston')],
+ [ore('plankWood'), ore('plankWood'), ore('plankWood')]
+ ])
+ .register()
+
+// Controller Slave
+mods.minecraft.crafting.removeByOutput(item('storagedrawers:controllerslave'))
+mods.minecraft.crafting.removeByOutput(item('framedcompactdrawers:framed_slave'))
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('framedcompactdrawers:framed_slave'))
+ .input(item('storagedrawers:controllerslave'))
+ .register()
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('storagedrawers:controllerslave'))
+ .input(item('framedcompactdrawers:framed_slave'))
+ .register()
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('storagedrawers:controllerslave'))
+ .shape([
+ [ore('plankWood'), ore('plankWood'), ore('plankWood')],
+ [item('minecraft:comparator'), item('storagedrawers:customdrawers'), item('minecraft:comparator')],
+ [ore('plankWood'), ore('plankWood'), ore('plankWood')]
+ ])
+ .register()
+
+
+////////////////////////////////////////
+// Items
+////////////////////////////////////////
+// Packing Tape
+mods.minecraft.crafting.removeByOutput(item('storagedrawers:tape'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('storagedrawers:tape'))
+ .shape([
+ [null, null, null],
+ [null, item('minecraft:slime_ball'), null],
+ [item('minecraft:paper'), item('minecraft:paper'), item('minecraft:paper')]
+ ])
+ .register()
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('storagedrawers:tape'))
+ .shape([
+ [null, null, null],
+ [null, mi('rubber_drop'), null],
+ [item('minecraft:paper'), item('minecraft:paper'), item('minecraft:paper')]
+ ])
+ .register()
+
+// Upgrade Template
+mods.minecraft.crafting.removeByOutput(item('storagedrawers:upgrade_template'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('storagedrawers:upgrade_template') * 8)
+ .shape([
+ [null, null, null],
+ [mi('screwIron'), ore('drawerBasic'), mi('screwIron')],
+ [mi('screwIron'), ore('craftingToolScrewdriver'), mi('screwIron')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(8)
+ .inputs(mi('screwIron', 4), ore('drawerBasic'))
+ .outputs(item('storagedrawers:upgrade_template') * 8)
+ .duration(20)
+ .EUt(7)
+ .buildAndRegister()
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('storagedrawers:upgrade_template') * 16)
+ .shape([
+ [null, null, null],
+ [mi('screwSteel'), ore('drawerBasic'), mi('screwSteel')],
+ [mi('screwSteel'), ore('craftingToolScrewdriver'), mi('screwSteel')]
+ ])
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(8)
+ .inputs(mi('screwSteel', 4), ore('drawerBasic'))
+ .outputs(item('storagedrawers:upgrade_template') * 16)
+ .duration(20)
+ .EUt(7)
+ .buildAndRegister()
+
+// Status Upgrade MK2
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('storagedrawers:upgrade_status', 1))
+ .shape([
+ [item('minecraft:comparator'), item('minecraft:stick'), item('minecraft:comparator')],
+ [item('minecraft:stick'), item('storagedrawers:upgrade_status', 0), item('minecraft:stick')],
+ [item('minecraft:redstone'), item('minecraft:stick'), item('minecraft:redstone')]
+ ])
+ .register()
+
+// Redstone Max Upgrade
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('storagedrawers:upgrade_redstone', 1))
+ .shape([
+ [item('minecraft:redstone'), item('minecraft:redstone'), item('minecraft:redstone')],
+ [item('minecraft:stick'), item('storagedrawers:upgrade_redstone', 0), item('minecraft:stick')],
+ [item('minecraft:stick'), item('minecraft:stick'), item('minecraft:stick')]
+ ])
+ .register()
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('storagedrawers:upgrade_redstone', 1))
+ .shape([
+ [item('minecraft:redstone'), item('minecraft:redstone'), item('minecraft:redstone')],
+ [item('minecraft:stick'), item('storagedrawers:upgrade_redstone', 2), item('minecraft:stick')],
+ [item('minecraft:stick'), item('minecraft:stick'), item('minecraft:stick')]
+ ])
+ .register()
+
+// Redstone Min Upgrade
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('storagedrawers:upgrade_redstone', 2))
+ .shape([
+ [item('minecraft:stick'), item('minecraft:stick'), item('minecraft:stick')],
+ [item('minecraft:stick'), item('storagedrawers:upgrade_redstone', 0), item('minecraft:stick')],
+ [item('minecraft:redstone'), item('minecraft:redstone'), item('minecraft:redstone')]
+ ])
+ .register()
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('storagedrawers:upgrade_redstone', 2))
+ .shape([
+ [item('minecraft:stick'), item('minecraft:stick'), item('minecraft:stick')],
+ [item('minecraft:stick'), item('storagedrawers:upgrade_redstone', 1), item('minecraft:stick')],
+ [item('minecraft:redstone'), item('minecraft:redstone'), item('minecraft:redstone')]
+ ])
+ .register()
+
+// Storage Downgrade
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('storagedrawers:upgrade_one_stack'))
+ .shape([
+ [item('minecraft:stick'), item('minecraft:stick'), item('minecraft:stick')],
+ [item('minecraft:flint'), item('storagedrawers:upgrade_storage', 32767), item('minecraft:flint')],
+ [item('minecraft:stick'), item('minecraft:stick'), item('minecraft:stick')]
+ ])
+ .register()
diff --git a/overrides/groovy/postInit/normal/ToolBelt.groovy b/overrides/groovy/postInit/normal/ToolBelt.groovy
new file mode 100644
index 00000000..97c2b760
--- /dev/null
+++ b/overrides/groovy/postInit/normal/ToolBelt.groovy
@@ -0,0 +1,29 @@
+import gregtech.api.recipes.RecipeMap
+
+def assembler = RecipeMap.getByName("assembler")
+
+
+////////////////////////////////////////
+// Items
+////////////////////////////////////////
+// Tool Belt
+mods.minecraft.crafting.removeByOutput(item('toolbelt:belt'))
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(item('toolbelt:pouch') * 2, item('minecraft:string') * 2, item('minecraft:leather') * 5)
+ .fluidInputs(fluid('glue') * 50)
+ .outputs(item('toolbelt:belt'))
+ .duration(100)
+ .EUt(30)
+ .buildAndRegister()
+
+// Belt Pouch
+mods.minecraft.crafting.removeByOutput(item('toolbelt:pouch'))
+assembler.recipeBuilder()
+ .circuitMeta(2)
+ .inputs(mi('screwIronMagnetic'), mi('ringIron'), item('minecraft:string') * 4, item('minecraft:leather') * 3)
+ .fluidInputs(fluid('glue') * 100)
+ .outputs(item('toolbelt:pouch'))
+ .duration(100)
+ .EUt(30)
+ .buildAndRegister()
diff --git a/overrides/groovy/postInit/normal/Tooltips.groovy b/overrides/groovy/postInit/normal/Tooltips.groovy
new file mode 100644
index 00000000..e74b5607
--- /dev/null
+++ b/overrides/groovy/postInit/normal/Tooltips.groovy
@@ -0,0 +1,48 @@
+if (!isClient()) return
+
+import net.minecraftforge.event.entity.player.ItemTooltipEvent
+import net.minecraft.client.resources.I18n
+
+////////////////////////////////////////
+// Items
+////////////////////////////////////////
+event_manager.listen { ItemTooltipEvent event ->
+ def stack = event.itemStack
+ if (stack == null || stack.isEmpty()) return
+
+ def tooltip = event.toolTip
+ def id = stack.item.registryName?.toString()
+ if (id == null) return
+ def meta = stack.itemDamage
+
+ // AE2 P2P Tunnel
+ if (id == 'appliedenergistics2:part') {
+ switch (meta) {
+ case 460: tooltip.add('§a' + I18n.format('modpack.ae2.p2p_me.tooltip.1')); break
+ case 461: tooltip.add('§a' + I18n.format('modpack.ae2.p2p_redstone.tooltip.1')); break
+ case 462: tooltip.add('§a' + I18n.format('modpack.ae2.p2p_chest.tooltip.1')); break
+ case 463: tooltip.add('§a' + I18n.format('modpack.ae2.p2p_bucket.tooltip.1')); break
+ case 467: tooltip.add('§a' + I18n.format('modpack.ae2.p2p_torch.tooltip.1')); break
+ case 469: tooltip.add('§a' + I18n.format('modpack.ae2.p2p_conduit.tooltip.1')); break
+ case 470: tooltip.add('§a' + I18n.format('modpack.ae2.p2p_gtceu.tooltip.1')); break
+ }
+ // NAE2 P2P Interface Tunnel
+ } else if (id == 'nae2:part' && meta == 1) {
+ tooltip.add('§a' + I18n.format('modpack.nae2.p2p_interface.tooltip.1'))
+ // AEAdditions Fluid Pattern
+ } else if (id == 'aeadditions:pattern.fluid') {
+ tooltip.add('§a' + I18n.format('modpack.aeadditions.fluid_pattern.tooltip.1'))
+ // Mega Torch
+ } else if (id == 'torchmaster:mega_torch' && meta == 0) {
+ tooltip.add('§a' + I18n.format('modpack.torchmaster.mega_torch.tooltip.1'))
+ // Feral Flare Lantern
+ } else if (id == 'torchmaster:feral_flare_lantern') {
+ tooltip.add('§a' + I18n.format('modpack.torchmaster.lantern.tooltip.1'))
+ // Elevator
+ } else if (id.startsWith('elevatorid:elevator_') && !id.endsWith('_black')) {
+ tooltip.add('§a' + I18n.format('modpack.elevator.tooltip.1'))
+ // Fluid Tank
+ } else if (id == 'enderio:block_tank') {
+ tooltip.add('§a' + I18n.format('modpack.enderio.tank.tooltip.1'))
+ }
+}
diff --git a/overrides/groovy/postInit/normal/TorchMaster.groovy b/overrides/groovy/postInit/normal/TorchMaster.groovy
new file mode 100644
index 00000000..42bf0491
--- /dev/null
+++ b/overrides/groovy/postInit/normal/TorchMaster.groovy
@@ -0,0 +1,24 @@
+////////////////////////////////////////
+// Blocks
+////////////////////////////////////////
+// Mega Torch
+mods.minecraft.crafting.removeByOutput(item('torchmaster:mega_torch', 0))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('torchmaster:mega_torch', 0))
+ .shape([
+ [mi('dustCoal'), mi('dustCoal'), mi('dustCoal')],
+ [ore('foilGold'), item('gregtech:planks', 1), ore('foilGold')],
+ [ore('foilGold'), item('gregtech:planks', 1), ore('foilGold')]
+ ])
+ .register()
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('torchmaster:mega_torch', 0))
+ .shape([
+ [mi('dustCharcoal'), mi('dustCharcoal'), mi('dustCharcoal')],
+ [ore('foilGold'), item('gregtech:planks', 1), ore('foilGold')],
+ [ore('foilGold'), item('gregtech:planks', 1), ore('foilGold')]
+ ])
+ .register()
+
+// Unlit Mega Torch
+mods.jei.ingredient.hide(item('torchmaster:mega_torch', 1))
diff --git a/overrides/groovy/postInit/normal/UtilityWorlds.groovy b/overrides/groovy/postInit/normal/UtilityWorlds.groovy
new file mode 100644
index 00000000..b2636c80
--- /dev/null
+++ b/overrides/groovy/postInit/normal/UtilityWorlds.groovy
@@ -0,0 +1,36 @@
+import gregtech.api.recipes.RecipeMap
+
+def assembler = RecipeMap.getByName("assembler")
+
+
+////////////////////////////////////////
+// Blocks
+////////////////////////////////////////
+// Mining Portal
+mods.jei.ingredient.hide(item('utilityworlds:portal_mining'))
+
+// Void Portal
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('utilityworlds:portal_void'))
+ .input(item('utilityworlds:portal_void'))
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(mi('frameAluminium'), mi('plateRedstone'), mi('plateObsidian', 3))
+ .outputs(item('utilityworlds:portal_void'))
+ .duration(2000)
+ .EUt(480)
+ .buildAndRegister()
+
+// Garden Portal
+mods.minecraft.crafting.shapelessBuilder()
+ .output(item('utilityworlds:portal_garden'))
+ .input(item('utilityworlds:portal_garden'))
+ .register()
+assembler.recipeBuilder()
+ .circuitMeta(1)
+ .inputs(mi('frameTitanium'), mi('plateEmerald'), mi('plateObsidian', 3))
+ .outputs(item('utilityworlds:portal_garden'))
+ .duration(2000)
+ .EUt(1920)
+ .buildAndRegister()
diff --git a/overrides/groovy/postInit/normal/WRCBE.groovy b/overrides/groovy/postInit/normal/WRCBE.groovy
new file mode 100644
index 00000000..97a7ece9
--- /dev/null
+++ b/overrides/groovy/postInit/normal/WRCBE.groovy
@@ -0,0 +1,183 @@
+import gregtech.api.recipes.RecipeMap
+
+def assembler = RecipeMap.getByName("assembler")
+def lathe = RecipeMap.getByName("lathe")
+def chemical_reactor = RecipeMap.getByName("chemical_reactor")
+
+
+////////////////////////////////////////
+// Items
+////////////////////////////////////////
+// Obsidian Stick
+mods.minecraft.ore_dict.remove('obsidianRod', item('wrcbe:material', 0))
+mods.minecraft.crafting.removeByOutput(item('wrcbe:material', 0))
+mods.jei.ingredient.hide(item('wrcbe:material', 0))
+
+// Stone Bowl
+mods.minecraft.crafting.removeByOutput(item('wrcbe:material', 1))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('wrcbe:material', 1))
+ .shape([
+ [mi('plateStone'), null, mi('plateStone')],
+ [mi('plateStone'), ore('craftingToolHardHammer'), mi('plateStone')],
+ [mi('plateStone'), mi('plateStone'), mi('plateStone')]
+ ])
+ .register()
+lathe.recipeBuilder()
+ .inputs(item('minecraft:stone_slab'))
+ .outputs(item('wrcbe:material', 1), mi('dustSmallStone'))
+ .duration(500)
+ .EUt(7)
+ .buildAndRegister()
+
+// REther Pearl
+mods.minecraft.crafting.removeByOutput(item('wrcbe:material', 2))
+chemical_reactor.recipeBuilder()
+ .inputs(item('minecraft:ender_pearl'), item('minecraft:glowstone_dust'))
+ .fluidInputs(fluid('redstone') * 144)
+ .outputs(item('wrcbe:material', 2))
+ .duration(600)
+ .EUt(30)
+ .buildAndRegister()
+
+// Wirreless Transceiver
+mods.minecraft.crafting.removeByOutput(item('wrcbe:material', 3))
+assembler.recipeBuilder()
+ .inputs(mi('stickTungstenSteel'), item('wrcbe:material', 2))
+ .fluidInputs(fluid('redstone') * 144)
+ .outputs(item('wrcbe:material', 3))
+ .duration(600)
+ .EUt(120)
+ .buildAndRegister()
+
+// Blaze Transceiver
+mods.minecraft.crafting.removeByOutput(item('wrcbe:material', 4))
+assembler.recipeBuilder()
+ .inputs(item('minecraft:blaze_rod'), item('wrcbe:material', 2))
+ .fluidInputs(fluid('redstone') * 144)
+ .outputs(item('wrcbe:material', 4))
+ .duration(600)
+ .EUt(120)
+ .buildAndRegister()
+
+// Receiver Dish
+mods.minecraft.crafting.removeByOutput(item('wrcbe:material', 5))
+assembler.recipeBuilder()
+ .inputs(item('wrcbe:material', 1), item('wrcbe:material', 3))
+ .fluidInputs(fluid('ender_pearl') * 144)
+ .outputs(item('wrcbe:material', 5))
+ .duration(600)
+ .EUt(256)
+ .buildAndRegister()
+
+// Blaze Receiver Dish
+mods.minecraft.crafting.removeByOutput(item('wrcbe:material', 6))
+assembler.recipeBuilder()
+ .inputs(item('wrcbe:material', 1), item('wrcbe:material', 4))
+ .fluidInputs(fluid('ender_pearl') * 144)
+ .outputs(item('wrcbe:material', 6))
+ .duration(600)
+ .EUt(256)
+ .buildAndRegister()
+
+// Triangulator
+mods.minecraft.crafting.removeByOutput(item('wrcbe:triangulator'))
+assembler.recipeBuilder()
+ .inputs(item('minecraft:compass'), item('wrcbe:material', 3))
+ .fluidInputs(fluid('redstone') * 144)
+ .outputs(item('wrcbe:triangulator'))
+ .duration(600)
+ .EUt(120)
+ .buildAndRegister()
+
+// Remote
+mods.minecraft.crafting.removeByOutput(item('wrcbe:remote'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('wrcbe:remote'))
+ .shape([
+ [ore('craftingToolScrewdriver'), item('wrcbe:material', 3), ore('craftingToolFile')],
+ [ore('circuitHv'), mi('cover.screen'), ore('circuitHv')],
+ [mi('plateTungstenSteel'), mi('screwTungstenSteel'), mi('plateTungstenSteel')]
+ ])
+ .register()
+
+// Sniffer
+mods.minecraft.crafting.removeByOutput(item('wrcbe:sniffer'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('wrcbe:sniffer'))
+ .shape([
+ [item('wrcbe:material', 5), item('wrcbe:material', 3), item('wrcbe:material', 5)],
+ [mi('plateTungstenSteel'), mi('stickTungstenSteel'), mi('plateTungstenSteel')],
+ [mi('plateStone'), mi('plateStone'), mi('plateStone')]
+ ])
+ .register()
+
+// Tracker
+mods.minecraft.crafting.removeByOutput(item('wrcbe:tracker'))
+assembler.recipeBuilder()
+ .circuitMeta(2)
+ .inputs(mi('plateObsidian', 3), item('wrcbe:material', 3))
+ .fluidInputs(fluid('redstone') * 144)
+ .outputs(item('wrcbe:tracker'))
+ .duration(600)
+ .EUt(120)
+ .buildAndRegister()
+
+// REP
+mods.minecraft.crafting.removeByOutput(item('wrcbe:rep'))
+mods.jei.ingredient.hide(item('wrcbe:rep'))
+
+// Private Sniffer
+mods.minecraft.crafting.removeByOutput(item('wrcbe:p_sniffer'))
+mods.minecraft.crafting.shapedBuilder()
+ .output(item('wrcbe:p_sniffer'))
+ .shape([
+ [item('wrcbe:material', 6), item('wrcbe:material', 4), item('wrcbe:material', 6)],
+ [mi('plateTungstenSteel'), mi('stickTungstenSteel'), mi('plateTungstenSteel')],
+ [mi('plateStone'), mi('plateStone'), mi('plateStone')]
+ ])
+ .register()
+
+// Map
+mods.minecraft.crafting.removeByOutput(item('wrcbe:empty_map'))
+assembler.recipeBuilder()
+ .inputs(item('wrcbe:triangulator'), item('minecraft:paper') * 8)
+ .fluidInputs(fluid('redstone') * 144)
+ .outputs(item('wrcbe:map'))
+ .duration(300)
+ .EUt(64)
+ .buildAndRegister()
+
+
+////////////////////////////////////////
+// Blocks
+////////////////////////////////////////
+// Wireless Transmitter
+mods.minecraft.crafting.removeByOutput(item('wrcbe:wireless_logic', 0))
+assembler.recipeBuilder()
+ .inputs(mi('plateStone'), item('wrcbe:material', 3))
+ .fluidInputs(fluid('ender_pearl') * 144)
+ .outputs(item('wrcbe:wireless_logic', 0))
+ .duration(600)
+ .EUt(256)
+ .buildAndRegister()
+
+// Wireless Receiver
+mods.minecraft.crafting.removeByOutput(item('wrcbe:wireless_logic', 1))
+assembler.recipeBuilder()
+ .inputs(mi('plateStone'), item('wrcbe:material', 5))
+ .fluidInputs(fluid('ender_pearl') * 144)
+ .outputs(item('wrcbe:wireless_logic', 1))
+ .duration(600)
+ .EUt(256)
+ .buildAndRegister()
+
+// Wireless Jammer
+mods.minecraft.crafting.removeByOutput(item('wrcbe:wireless_logic', 2))
+assembler.recipeBuilder()
+ .inputs(mi('plateStone'), item('wrcbe:material', 2))
+ .fluidInputs(fluid('ender_pearl') * 144)
+ .outputs(item('wrcbe:wireless_logic', 2))
+ .duration(600)
+ .EUt(256)
+ .buildAndRegister()
diff --git a/overrides/groovy/runConfig.json b/overrides/groovy/runConfig.json
new file mode 100644
index 00000000..96032b12
--- /dev/null
+++ b/overrides/groovy/runConfig.json
@@ -0,0 +1,12 @@
+{
+ "packName": "GregTech Expert 2",
+ "packId": "gte2",
+ "version": "0.2.0",
+ "debug": false,
+ "loaders": {
+ "preInit": [],
+ "postInit": [
+ "postInit/"
+ ]
+ }
+}
diff --git a/overrides/scripts/specific/ExtraCells.zs b/overrides/scripts/specific/ExtraCells.zs
deleted file mode 100644
index 8b07a028..00000000
--- a/overrides/scripts/specific/ExtraCells.zs
+++ /dev/null
@@ -1,88 +0,0 @@
-#modloaded extracells
-# Imports
-import mods.jei.JEI;
-import crafttweaker.mods.IMod;
-import crafttweaker.item.IItemStack;
-
-val ec2 as IMod = loadedMods["extracells"];
-if (!isNull(ec2)) {
- val ec2Items as IItemStack[] = ec2.items;
-
- for item in ec2Items {
- recipes.remove(item);
- item.addTooltip(format.red("ExtraCells is out of support, please migration AE Additions!!"));
- }
-}
-
-
-
-########################################
-# Items
-########################################
-# Fluid Storage Housing
-recipes.addShapeless(, []);
-
-# Advanced Storage Housing
-recipes.addShapeless(, []);
-
-# 256k ME Storage Component
-recipes.addShapeless(, []);
-
-# 1024k ME Storage Component
-recipes.addShapeless(, []);
-
-# 4096k ME Storage Component
-recipes.addShapeless(, []);
-
-# 16384k ME Storage Component
-recipes.addShapeless(, []);
-
-# 256k ME Fluid Storage Component
-recipes.addShapeless(, []);
-
-# 1024k ME Fluid Storage Component
-recipes.addShapeless(, []);
-
-# 4096k ME Fluid Storage Component
-recipes.addShapeless(, []);
-
-# ME Portable Fluid Cell
-recipes.addShapeless(, []);
-
-# Wireless Universal Terminal
-recipes.addShapeless(, []);
-
-# Wireless Fluid Terminal
-recipes.addShapeless(, []);
-
-# ME Upgrade (Tier 1)
-recipes.addShapeless(, []);
-
-# ME Upgrade (Tier 2)
-recipes.addShapeless(, []);
-
-# ME Upgrade (Tier 3)
-recipes.addShapeless(, []);
-
-
-
-########################################
-# Blocks
-########################################
-# ME Fluid Assembler
-recipes.addShapeless(, []);
-
-# ME Fluid Auto Filler
-recipes.addShapeless(, []);
-
-# Fluid Vibration Chamber
-recipes.addShapeless(, []);
-
-# Blast resistant ME Drive
-recipes.addShapeless(, []);
-
-# ME Drive Fixture
-recipes.addShapeless(, []);
-
-# ME Energy Cell Fixture
-recipes.addShapeless(, []);
diff --git a/overrides/scripts/specific/VolumetricFlask.zs b/overrides/scripts/specific/VolumetricFlask.zs
deleted file mode 100644
index e55a4c4b..00000000
--- a/overrides/scripts/specific/VolumetricFlask.zs
+++ /dev/null
@@ -1,133 +0,0 @@
-#modloaded volumetricflask
-# Imports
-import mods.jei.JEI;
-import crafttweaker.item.IItemStack;
-
-
-
-########################################
-# Items
-########################################
-# Flask
-var flasks as IItemStack[] = [
- .withEmptyTag(),
- .withEmptyTag(),
- .withEmptyTag(),
- .withEmptyTag(),
- .withEmptyTag(),
- .withEmptyTag(),
- .withEmptyTag(),
- .withEmptyTag(),
- .withEmptyTag(),
- .withEmptyTag(),
- .withEmptyTag(),
- .withEmptyTag(),
- .withEmptyTag(),
- .withEmptyTag(),
- .withEmptyTag(),
- .withEmptyTag(),
- .withEmptyTag(),
- .withEmptyTag(),
- .withEmptyTag()
-];
-for flask in flasks {
- recipes.remove(flask);
-}
-for i, flask in flasks {
- .addItems([flasks[i]]);
- assembler.recipeBuilder()
- .circuit(i + 1)
- .notConsumable([])
- .fluidInputs([ * 144])
- .outputs([flask])
- .duration(20)
- .EUt(480)
- .buildAndRegister();
-}
-for i, flask in flasks {
- extractor.recipeBuilder()
- .inputs([flask])
- .fluidOutputs([ * 144])
- .duration(10)
- .EUt(7)
- .buildAndRegister();
-}
-.addTooltip(format.red("VolumetricFlask is out of support, please move AE2 Fluid Crafting Rework!!"));
-
-
-
-########################################
-# Blocks
-########################################
-# Interface
-.addItems([
- ,
-
-]);
-
-# Interface
-recipes.remove();
-recipes.addShapeless(, []);
-recipes.addShaped(, [
- [, , ],
- [, , ],
- [, , ]
-]);
-assembler.recipeBuilder()
- .circuit(4)
- .inputs([
- ,
- ,
- ,
- * 2
- ])
- .fluidInputs([ * 144])
- .outputs([])
- .duration(20)
- .EUt(1920)
- .buildAndRegister();
-packer.recipeBuilder()
- .inputs([])
- .outputs([, * 4])
- .duration(10)
- .EUt(7)
- .buildAndRegister();
-.addTooltip(format.red("VolumetricFlask is out of support, please move AE2 Fluid Crafting Rework!!"));
-.addTooltip(format.red("VolumetricFlask is out of support, please move AE2 Fluid Crafting Rework!!"));
-
-# Buffer
-recipes.remove();
-recipes.addShaped(, [
- [, , ],
- [, , ],
- [, , ]
-]);
-packer.recipeBuilder()
- .inputs([])
- .outputs([, * 8])
- .duration(10)
- .EUt(7)
- .buildAndRegister();
-.addTooltip(format.red("VolumetricFlask is out of support, please move AE2 Fluid Crafting Rework!!"));
-
-# Filler
-recipes.remove();
-assembler.recipeBuilder()
- .inputs([
- * 2,
- * 2,
- * 4,
-
- ])
- .fluidInputs([ * 144])
- .outputs([])
- .duration(200)
- .EUt(480)
- .buildAndRegister();
-packer.recipeBuilder()
- .inputs([])
- .outputs([, * 2])
- .duration(10)
- .EUt(7)
- .buildAndRegister();
-.addTooltip(format.red("VolumetricFlask is out of support, please move AE2 Fluid Crafting Rework!!"));