aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech
diff options
context:
space:
mode:
authorConnor-Colenso <52056774+Connor-Colenso@users.noreply.github.com>2023-04-08 22:43:02 +0100
committerGitHub <noreply@github.com>2023-04-08 23:43:02 +0200
commitd550cd09df4cbb7e68e49bab9ca090cf90425f99 (patch)
tree3722113c29e520d9c2c98264fdd189695a92265c /src/main/java/gregtech
parent32d081720f26036f05559d4124ed0a51377c1f6f (diff)
downloadGT5-Unofficial-d550cd09df4cbb7e68e49bab9ca090cf90425f99.tar.gz
GT5-Unofficial-d550cd09df4cbb7e68e49bab9ca090cf90425f99.tar.bz2
GT5-Unofficial-d550cd09df4cbb7e68e49bab9ca090cf90425f99.zip
Kill Disassembler 🔪 (#1855)
* Kill disassembler * Kill disassembler * Change arc furnace to fulfil Dreams request. --------- Co-authored-by: GTNH-Colen <54497873+GTNH-Colen@users.noreply.github.com>
Diffstat (limited to 'src/main/java/gregtech')
-rw-r--r--src/main/java/gregtech/GT_Mod.java5
-rw-r--r--src/main/java/gregtech/api/enums/ItemList.java6
-rw-r--r--src/main/java/gregtech/api/objects/ReverseShapedRecipe.java47
-rw-r--r--src/main/java/gregtech/api/objects/ReverseShapelessRecipe.java47
-rw-r--r--src/main/java/gregtech/api/util/GT_Recipe.java39
-rw-r--r--src/main/java/gregtech/api/util/GT_RecipeRegistrator.java7
-rw-r--r--src/main/java/gregtech/api/util/GT_Shaped_Recipe.java4
-rw-r--r--src/main/java/gregtech/api/util/GT_Shapeless_Recipe.java24
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Disassembler.java654
-rw-r--r--src/main/java/gregtech/loaders/misc/GT_Achievements.java1
-rw-r--r--src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java68
11 files changed, 16 insertions, 886 deletions
diff --git a/src/main/java/gregtech/GT_Mod.java b/src/main/java/gregtech/GT_Mod.java
index 5a7bee508b..be0f1c2a4c 100644
--- a/src/main/java/gregtech/GT_Mod.java
+++ b/src/main/java/gregtech/GT_Mod.java
@@ -52,8 +52,6 @@ import gregtech.api.interfaces.internal.IGT_Mod;
import gregtech.api.metatileentity.BaseMetaPipeEntity;
import gregtech.api.objects.GT_ItemStack;
import gregtech.api.objects.ItemData;
-import gregtech.api.objects.ReverseShapedRecipe;
-import gregtech.api.objects.ReverseShapelessRecipe;
import gregtech.api.objects.XSTR;
import gregtech.api.threads.GT_Runnable_MachineBlockUpdate;
import gregtech.api.util.GT_Assemblyline_Server;
@@ -544,9 +542,6 @@ public class GT_Mod implements IGT_Mod {
achievements = new GT_Achievements();
- ReverseShapedRecipe.runReverseRecipes();
- ReverseShapelessRecipe.runReverseRecipes();
-
GT_Recipe.GTppRecipeHelper = true;
GT_Log.out.println("GT_Mod: Loading finished, de-allocating temporary Init Variables.");
GregTech_API.sBeforeGTPreload = null;
diff --git a/src/main/java/gregtech/api/enums/ItemList.java b/src/main/java/gregtech/api/enums/ItemList.java
index 84f28dce8f..04029d357c 100644
--- a/src/main/java/gregtech/api/enums/ItemList.java
+++ b/src/main/java/gregtech/api/enums/ItemList.java
@@ -1367,12 +1367,6 @@ public enum ItemList implements IItemContainer {
Machine_EV_FluidCanner,
Machine_IV_FluidCanner,
- Machine_LV_Disassembler,
- Machine_MV_Disassembler,
- Machine_HV_Disassembler,
- Machine_EV_Disassembler,
- Machine_IV_Disassembler,
-
Machine_LV_Bundler,
Machine_MV_Bundler,
Machine_HV_Bundler,
diff --git a/src/main/java/gregtech/api/objects/ReverseShapedRecipe.java b/src/main/java/gregtech/api/objects/ReverseShapedRecipe.java
deleted file mode 100644
index 9b0507402c..0000000000
--- a/src/main/java/gregtech/api/objects/ReverseShapedRecipe.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package gregtech.api.objects;
-
-import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sDisassemblerRecipes;
-
-import java.util.Collections;
-import java.util.LinkedList;
-import java.util.Optional;
-import java.util.Queue;
-
-import net.minecraft.item.ItemStack;
-
-import gregtech.api.util.GT_Recipe;
-import gregtech.api.util.GT_Utility;
-import gregtech.common.tileentities.machines.basic.GT_MetaTileEntity_Disassembler;
-
-public class ReverseShapedRecipe {
-
- private static Queue<ReverseShapedRecipe> reverseRecipes = new LinkedList<>();
- private ItemStack aResult;
- private Object[] aRecipe;
-
- public static Queue<ReverseShapedRecipe> getReverseRecipes() {
- return reverseRecipes;
- }
-
- public ReverseShapedRecipe(ItemStack output, Object[] aRecipe) {
- this.aResult = output;
- this.aRecipe = aRecipe;
- reverseRecipes.add(this);
- }
-
- public static void runReverseRecipes() {
- for (ReverseShapedRecipe x : reverseRecipes) {
- Optional<GT_Recipe> recipeOptional = GT_Utility.reverseShapedRecipe(x.aResult, x.aRecipe);
- if (!recipeOptional.isPresent()) continue;
- GT_Recipe recipe = recipeOptional.get();
- ItemStack[] replacement = new ItemStack[recipe.mOutputs.length];
- GT_MetaTileEntity_Disassembler.handleRecipeTransformation(
- recipe.mOutputs,
- replacement,
- Collections.singleton(recipe.mOutputs));
-
- recipe.mOutputs = replacement;
- sDisassemblerRecipes.add(recipe);
- }
- }
-}
diff --git a/src/main/java/gregtech/api/objects/ReverseShapelessRecipe.java b/src/main/java/gregtech/api/objects/ReverseShapelessRecipe.java
deleted file mode 100644
index a872f2a8f0..0000000000
--- a/src/main/java/gregtech/api/objects/ReverseShapelessRecipe.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package gregtech.api.objects;
-
-import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sDisassemblerRecipes;
-
-import java.util.Collections;
-import java.util.LinkedList;
-import java.util.Optional;
-import java.util.Queue;
-
-import net.minecraft.item.ItemStack;
-
-import gregtech.api.util.GT_Recipe;
-import gregtech.api.util.GT_Utility;
-import gregtech.common.tileentities.machines.basic.GT_MetaTileEntity_Disassembler;
-
-public class ReverseShapelessRecipe {
-
- private static Queue<ReverseShapelessRecipe> reverseRecipes = new LinkedList<>();
- private ItemStack aResult;
- private Object[] aRecipe;
-
- public static Queue<ReverseShapelessRecipe> getReverseRecipes() {
- return reverseRecipes;
- }
-
- public ReverseShapelessRecipe(ItemStack output, Object[] aRecipe) {
- this.aResult = output;
- this.aRecipe = aRecipe;
- reverseRecipes.add(this);
- }
-
- public static void runReverseRecipes() {
- for (ReverseShapelessRecipe x : reverseRecipes) {
- Optional<GT_Recipe> recipeOptional = GT_Utility.reverseShapelessRecipe(x.aResult, x.aRecipe);
- if (!recipeOptional.isPresent()) continue;
- GT_Recipe recipe = recipeOptional.get();
- ItemStack[] replacement = new ItemStack[recipe.mOutputs.length];
- GT_MetaTileEntity_Disassembler.handleRecipeTransformation(
- recipe.mOutputs,
- replacement,
- Collections.singleton(recipe.mOutputs));
-
- recipe.mOutputs = replacement;
- sDisassemblerRecipes.add(recipe);
- }
- }
-}
diff --git a/src/main/java/gregtech/api/util/GT_Recipe.java b/src/main/java/gregtech/api/util/GT_Recipe.java
index eedd568ebb..9f266ba550 100644
--- a/src/main/java/gregtech/api/util/GT_Recipe.java
+++ b/src/main/java/gregtech/api/util/GT_Recipe.java
@@ -1219,41 +1219,6 @@ public class GT_Recipe implements Comparable<GT_Recipe> {
false).setSlotOverlay(false, false, GT_UITextures.OVERLAY_SLOT_FURNACE)
.setProgressBar(GT_UITextures.PROGRESSBAR_ARROW, ProgressBar.Direction.RIGHT);
- /** Set {@code aSpecialValue = -100} to bypass the disassembler tier check and default recipe duration. */
- public static final GT_Recipe_Map sDisassemblerRecipes = new GT_Recipe_Map(
- new HashSet<>(250),
- "gt.recipe.disassembler",
- "Disassembler",
- null,
- GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "Disassembler"),
- 1,
- 9,
- 1,
- 0,
- 1,
- E,
- 1,
- E,
- true,
- false) {
-
- @Override
- public IDrawable getOverlayForSlot(boolean isFluid, boolean isOutput, int index, boolean isSpecial) {
- if (isOutput) {
- switch (index) {
- case 0, 2, 6, 8 -> {
- return GT_UITextures.OVERLAY_SLOT_CIRCUIT;
- }
- case 4 -> {
- return GT_UITextures.OVERLAY_SLOT_WRENCH;
- }
- }
- }
- return super.getOverlayForSlot(isFluid, isOutput, index, isSpecial);
- }
- }.setSlotOverlay(false, false, GT_UITextures.OVERLAY_SLOT_WRENCH)
- .setProgressBar(GT_UITextures.PROGRESSBAR_ASSEMBLE, ProgressBar.Direction.RIGHT);
-
public static final GT_Recipe_Map sScannerFakeRecipes = new GT_Recipe_Map(
new HashSet<>(300),
"gt.recipe.scanner",
@@ -1357,7 +1322,7 @@ public class GT_Recipe implements Comparable<GT_Recipe> {
null,
GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "PlasmaArcFurnace"),
1,
- 4,
+ 9,
1,
1,
1,
@@ -1377,7 +1342,7 @@ public class GT_Recipe implements Comparable<GT_Recipe> {
null,
GregTech.getResourcePath(TEXTURES_GUI_BASICMACHINES, "ArcFurnace"),
1,
- 4,
+ 9,
1,
1,
3,
diff --git a/src/main/java/gregtech/api/util/GT_RecipeRegistrator.java b/src/main/java/gregtech/api/util/GT_RecipeRegistrator.java
index 19afbb9ff0..2c08e461b7 100644
--- a/src/main/java/gregtech/api/util/GT_RecipeRegistrator.java
+++ b/src/main/java/gregtech/api/util/GT_RecipeRegistrator.java
@@ -327,7 +327,12 @@ public class GT_RecipeRegistrator {
new ItemStack[] { GT_OreDictUnificator.getIngotOrDust(aData.mMaterial),
GT_OreDictUnificator.getIngotOrDust(aData.getByProduct(0)),
GT_OreDictUnificator.getIngotOrDust(aData.getByProduct(1)),
- GT_OreDictUnificator.getIngotOrDust(aData.getByProduct(2)) },
+ GT_OreDictUnificator.getIngotOrDust(aData.getByProduct(2)),
+ GT_OreDictUnificator.getIngotOrDust(aData.getByProduct(3)),
+ GT_OreDictUnificator.getIngotOrDust(aData.getByProduct(5)),
+ GT_OreDictUnificator.getIngotOrDust(aData.getByProduct(6)),
+ GT_OreDictUnificator.getIngotOrDust(aData.getByProduct(7)),
+ GT_OreDictUnificator.getIngotOrDust(aData.getByProduct(8)) },
null,
(int) Math.max(16, tAmount / M),
90,
diff --git a/src/main/java/gregtech/api/util/GT_Shaped_Recipe.java b/src/main/java/gregtech/api/util/GT_Shaped_Recipe.java
index 982c0e8f35..02bc0ba0bf 100644
--- a/src/main/java/gregtech/api/util/GT_Shaped_Recipe.java
+++ b/src/main/java/gregtech/api/util/GT_Shaped_Recipe.java
@@ -9,7 +9,6 @@ import net.minecraft.world.World;
import net.minecraftforge.oredict.ShapedOreRecipe;
import gregtech.api.interfaces.internal.IGT_CraftingRecipe;
-import gregtech.api.objects.ReverseShapedRecipe;
public class GT_Shaped_Recipe extends ShapedOreRecipe implements IGT_CraftingRecipe {
@@ -24,9 +23,6 @@ public class GT_Shaped_Recipe extends ShapedOreRecipe implements IGT_CraftingRec
mEnchantmentLevelsAdded = aEnchantmentLevelsAdded;
mRemovableByGT = aRemovableByGT;
mKeepingNBT = aKeepingNBT;
- if (aDismantleAble) {
- new ReverseShapedRecipe(aResult, aRecipe);
- }
}
@Override
diff --git a/src/main/java/gregtech/api/util/GT_Shapeless_Recipe.java b/src/main/java/gregtech/api/util/GT_Shapeless_Recipe.java
index fc1d523ecc..93ba33da31 100644
--- a/src/main/java/gregtech/api/util/GT_Shapeless_Recipe.java
+++ b/src/main/java/gregtech/api/util/GT_Shapeless_Recipe.java
@@ -9,11 +9,10 @@ import net.minecraft.world.World;
import net.minecraftforge.oredict.ShapelessOreRecipe;
import gregtech.api.interfaces.internal.IGT_CraftingRecipe;
-import gregtech.api.objects.ReverseShapelessRecipe;
public class GT_Shapeless_Recipe extends ShapelessOreRecipe implements IGT_CraftingRecipe {
- public final boolean /* mDismantleable, */ mRemovableByGT, mKeepingNBT;
+ public final boolean mRemovableByGT, mKeepingNBT;
private final Enchantment[] mEnchantmentsAdded;
private final int[] mEnchantmentLevelsAdded;
@@ -24,9 +23,6 @@ public class GT_Shapeless_Recipe extends ShapelessOreRecipe implements IGT_Craft
mEnchantmentLevelsAdded = aEnchantmentLevelsAdded;
mRemovableByGT = aRemovableByGT;
mKeepingNBT = aKeepingNBT;
- if (aDismantleAble) {
- new ReverseShapelessRecipe(aResult, aRecipe);
- }
}
@Override
@@ -84,24 +80,6 @@ public class GT_Shapeless_Recipe extends ShapelessOreRecipe implements IGT_Craft
if (tCharge > 0) GT_ModHandler.chargeElectricItem(rStack, tCharge, Integer.MAX_VALUE, true, false);
}
- // Saving Ingredients inside the Item.
- // if (mDismantleable) {
- // NBTTagCompound rNBT = rStack.getTagCompound(), tNBT = new NBTTagCompound();
- // if (rNBT == null) rNBT = new NBTTagCompound();
- // for (int i = 0; i < 9; i++) {
- // ItemStack tStack = aGrid.getStackInSlot(i);
- // if (tStack != null && GT_Utility.getContainerItem(tStack, true) == null &&
- // !(tStack.getItem() instanceof GT_MetaGenerated_Tool)) {
- // tStack = GT_Utility.copyAmount(1, tStack);
- // GT_ModHandler.dischargeElectricItem(tStack, Integer.MAX_VALUE, Integer.MAX_VALUE,
- // true, false, true);
- // tNBT.setTag("Ingredient." + i, tStack.writeToNBT(new NBTTagCompound()));
- // }
- // }
- // rNBT.setTag("GT.CraftingComponents", tNBT);
- // rStack.setTagCompound(rNBT);
- // }
-
// Add Enchantments
for (int i = 0; i < mEnchantmentsAdded.length; i++) GT_Utility.ItemNBT.addEnchantment(
rStack,
diff --git a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Disassembler.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Disassembler.java
deleted file mode 100644
index aa7004cacf..0000000000
--- a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Disassembler.java
+++ /dev/null
@@ -1,654 +0,0 @@
-package gregtech.common.tileentities.machines.basic;
-
-import static gregtech.api.enums.Mods.*;
-import static gregtech.api.enums.Textures.BlockIcons.*;
-
-import java.util.*;
-import java.util.concurrent.atomic.AtomicInteger;
-import java.util.concurrent.atomic.AtomicReference;
-import java.util.stream.Collectors;
-import java.util.stream.IntStream;
-
-import net.minecraft.init.Blocks;
-import net.minecraft.init.Items;
-import net.minecraft.item.ItemStack;
-import net.minecraftforge.oredict.OreDictionary;
-
-import com.google.common.collect.ArrayListMultimap;
-
-import gregtech.api.GregTech_API;
-import gregtech.api.enums.GT_Values;
-import gregtech.api.enums.ItemList;
-import gregtech.api.enums.Materials;
-import gregtech.api.enums.OrePrefixes;
-import gregtech.api.interfaces.ITexture;
-import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
-import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
-import gregtech.api.items.GT_MetaGenerated_Tool;
-import gregtech.api.metatileentity.MetaTileEntity;
-import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachine;
-import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_TieredMachineBlock;
-import gregtech.api.objects.GT_ItemStack;
-import gregtech.api.objects.ItemData;
-import gregtech.api.render.TextureFactory;
-import gregtech.api.util.GT_ModHandler;
-import gregtech.api.util.GT_OreDictUnificator;
-import gregtech.api.util.GT_Recipe;
-import gregtech.api.util.GT_Utility;
-import gregtech.api.util.extensions.ArrayExt;
-import ic2.api.item.IC2Items;
-
-public class GT_MetaTileEntity_Disassembler extends GT_MetaTileEntity_BasicMachine {
-
- public GT_MetaTileEntity_Disassembler(int aID, String aName, String aNameRegional, int aTier) {
- super(
- aID,
- aName,
- aNameRegional,
- aTier,
- 1,
- new String[] {
- "Disassembles Machines up to " + GT_Values.TIER_COLORS[aTier] + GT_Values.VOLTAGE_NAMES[aTier],
- "Can also disassemble most assembler recipes!" },
- 1,
- 9,
- "Disassembler.png",
- "",
-
- // Textures
- TextureFactory.of(
- TextureFactory.of(OVERLAY_SIDE_DISASSEMBLER_ACTIVE),
- TextureFactory.builder()
- .addIcon(OVERLAY_SIDE_DISASSEMBLER_ACTIVE_GLOW)
- .glow()
- .build()),
- TextureFactory.of(
- TextureFactory.of(OVERLAY_SIDE_DISASSEMBLER),
- TextureFactory.builder()
- .addIcon(OVERLAY_SIDE_DISASSEMBLER_GLOW)
- .glow()
- .build()),
- TextureFactory.of(
- TextureFactory.of(OVERLAY_FRONT_DISASSEMBLER_ACTIVE),
- TextureFactory.builder()
- .addIcon(OVERLAY_FRONT_DISASSEMBLER_ACTIVE_GLOW)
- .glow()
- .build()),
- TextureFactory.of(
- TextureFactory.of(OVERLAY_FRONT_DISASSEMBLER),
- TextureFactory.builder()
- .addIcon(OVERLAY_FRONT_DISASSEMBLER_GLOW)
- .glow()
- .build()),
- TextureFactory.of(
- TextureFactory.of(OVERLAY_TOP_DISASSEMBLER_ACTIVE),
- TextureFactory.builder()
- .addIcon(OVERLAY_TOP_DISASSEMBLER_ACTIVE_GLOW)
- .glow()
- .build()),
- TextureFactory.of(
- TextureFactory.of(OVERLAY_TOP_DISASSEMBLER),
- TextureFactory.builder()
- .addIcon(OVERLAY_TOP_DISASSEMBLER_GLOW)
- .glow()
- .build()),
- TextureFactory.of(
- TextureFactory.of(OVERLAY_BOTTOM_DISASSEMBLER_ACTIVE),
- TextureFactory.builder()
- .addIcon(OVERLAY_BOTTOM_DISASSEMBLER_ACTIVE_GLOW)
- .glow()
- .build()),
- TextureFactory.of(
- TextureFactory.of(OVERLAY_BOTTOM_DISASSEMBLER),
- TextureFactory.builder()
- .addIcon(OVERLAY_BOTTOM_DISASSEMBLER_GLOW)
- .glow()
- .build()));
- }
-
- public GT_MetaTileEntity_Disassembler(String aName, int aTier, String aDescription, ITexture[][][] aTextures,
- String aGUIName, String aNEIName) {
- super(aName, aTier, 1, aDescription, aTextures, 1, 9, aGUIName, aNEIName);
- }
-
- public GT_MetaTileEntity_Disassembler(String aName, int aTier, String[] aDescription, ITexture[][][] aTextures,
- String aGUIName, String aNEIName) {
- super(aName, aTier, 1, aDescription, aTextures, 1, 9, aGUIName, aNEIName);
- }
-
- @Override
- public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
- return new GT_MetaTileEntity_Disassembler(
- this.mName,
- this.mTier,
- this.mDescriptionArray,
- this.mTextures,
- this.mGUIName,
- this.mNEIName);
- }
-
- private static final ItemStack[][] alwaysReplace = { {
- // ItemStack to look for
- new ItemStack(Blocks.trapped_chest, 1, OreDictionary.WILDCARD_VALUE) },
- {
- // ItemStack to replace
- new ItemStack(Blocks.chest) } };
-
- private static final Object[][] OreDictionaryOverride = { {
- // String to look for
- "plankWood", "stoneCobble", "gemDiamond", "logWood", "stickWood", "treeSapling" },
- {
- // ItemStack to replace
- new ItemStack(Blocks.planks), new ItemStack(Blocks.cobblestone), new ItemStack(Items.diamond),
- new ItemStack(Blocks.log), new ItemStack(Items.stick), new ItemStack(Blocks.sapling) } };
-
- public static ArrayListMultimap<GT_ItemStack, ItemStack> getOutputHardOverrides() {
- return outputHardOverrides;
- }
-
- private static final ArrayListMultimap<GT_ItemStack, ItemStack> outputHardOverrides;
-
- private static final Set<GT_ItemStack> blackList = new HashSet<>();
-
- public static Set<GT_ItemStack> getBlackList() {
- return blackList;
- }
-
- static {
- outputHardOverrides = ArrayListMultimap.create();
- outputHardOverrides.put(new GT_ItemStack(new ItemStack(Blocks.torch, 6)), new ItemStack(Items.stick));
- addBlacklist(ItemList.Casing_Coil_Superconductor.get(1L));
- addBlacklist(Materials.Graphene.getDust(1));
- addBlacklist(ItemList.Circuit_Parts_Vacuum_Tube.get(1L));
- addBlacklist(ItemList.Schematic.get(1L));
- if (Railcraft.isModLoaded()) {
- addBlacklist(GT_ModHandler.getModItem(Railcraft.ID, "track", 1L, 0));
- addBlacklist(GT_ModHandler.getModItem(Railcraft.ID, "track", 1L, 736));
- addBlacklist(GT_ModHandler.getModItem(Railcraft.ID, "track", 1L, 816));
- }
- addBlacklist(IC2Items.getItem("mixedMetalIngot"));
- addBlacklist(GT_ModHandler.getModItem(Railcraft.ID, "machine.alpha", 1L, 14));
- // region transformer
- // Temporary solution for cable dupe
- // Maybe we can mark assembler recipes as "cannot disassemble"
- // and only disassemble crafting recipes in the future
- // Also `getIC2Item` doesn't work, maybe loading order?
- addBlacklist(ItemList.Transformer_MV_LV.get(1L));
- addBlacklist(GT_ModHandler.getModItem(IndustrialCraft2.ID, "blockElectric", 1L, 3));
- addBlacklist(ItemList.Transformer_HV_MV.get(1L));
- addBlacklist(GT_ModHandler.getModItem(IndustrialCraft2.ID, "blockElectric", 1L, 4));
- addBlacklist(ItemList.Transformer_EV_HV.get(1L));
- addBlacklist(GT_ModHandler.getModItem(IndustrialCraft2.ID, "blockElectric", 1L, 5));
- addBlacklist(ItemList.Transformer_IV_EV.get(1L));
- addBlacklist(GT_ModHandler.getModItem(IndustrialCraft2.ID, "blockElectric", 1L, 6));
- // endregion transformer
- addBlacklist(GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiPart", 1L, 36));
- addBlacklist(GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiPart", 1L, 536));
- }
-
- public static void addBlacklist(ItemStack stack) {
- blackList.add(new GT_ItemStack(stack));
- }
-
- private boolean isCircuit(ItemStack stack) {
- ItemData data = GT_OreDictUnificator.getAssociation(stack);
- if (data != null) {
- return data.mPrefix == OrePrefixes.circuit;
- }
- return false;
- }
-
- private boolean compareToUnpacker(ItemStack is) {
- return null
- != GT_Recipe.GT_Recipe_Map.sUnboxinatorRecipes.findRecipe(null, true, true, Long.MAX_VALUE, null, is);
- }
-
- @Override
- public int checkRecipe() {
- ItemStack is = getInputAt(0);
-
- if (GT_Utility.isStackInvalid(is)) return DID_NOT_FIND_RECIPE;
-
- if (is.getItem() instanceof GT_MetaGenerated_Tool || isCircuit(is)
- || blackList.stream()
- .anyMatch(t -> GT_Utility.areStacksEqual(t.toStack(), is, true))
- || compareToUnpacker(is))
- return DID_NOT_FIND_RECIPE;
-
- Integer handleHardOverride = handleHardOverride(is);
- if (handleHardOverride != null) return handleHardOverride;
-
- return process();
- }
-
- private Integer handleHardOverride(ItemStack is) {
- Set<GT_ItemStack> stacks = outputHardOverrides.keySet();
- for (GT_ItemStack stack : stacks) {
- ItemStack in = is.copy();
- in.stackSize = 1;
- if (stack.isStackEqual(in) && stack.mStackSize <= is.stackSize) {
- return setOutputsAndTime(
- outputHardOverrides.get(stack)
- .toArray(new ItemStack[0]),
- stack.mStackSize) ? FOUND_AND_SUCCESSFULLY_USED_RECIPE : DID_NOT_FIND_RECIPE;
- }
- }
- return null;
- }
-
- private boolean checkTier(ItemStack is) {
- ItemStack comp = new ItemStack(GregTech_API.sBlockMachines);
- if (is.getItem() == comp.getItem()) {
- IMetaTileEntity iMetaTileEntity = GregTech_API.METATILEENTITIES[is.getItemDamage()];
-
- return iMetaTileEntity instanceof GT_MetaTileEntity_TieredMachineBlock
- && ((GT_MetaTileEntity_TieredMachineBlock) iMetaTileEntity).mTier > this.mTier;
- }
- return false;
- }
-
- private int process() {
- int statusCode = onTheFlyGeneration();
- if (statusCode != DID_NOT_FIND_RECIPE) return statusCode;
-
- return checkRecipeMap();
- }
-
- private int onTheFlyGeneration() {
- Collection<DissassembleReference> recipes = this.findRecipeFromMachine();
- if (recipes.isEmpty()) return DID_NOT_FIND_RECIPE;
-
- DissassembleReference recipe = ensureDowncasting(recipes);
-
- removeInvalidStacks(recipe);
-
- if (!checkVoltage(recipe)) {
- return FOUND_RECIPE_BUT_DID_NOT_MEET_REQUIREMENTS;
- }
-
- return setOutputsAndTime(recipe.inputs, recipe.stackSize) ? FOUND_AND_SUCCESSFULLY_USED_RECIPE
- : FOUND_RECIPE_BUT_DID_NOT_MEET_REQUIREMENTS;
- }
-
- private void removeInvalidStacks(DissassembleReference recipe) {
- for (int i = 0; i < recipe.inputs.length; i++)
- if (GT_Utility.isStackInvalid(recipe.inputs[i]) || recipe.inputs[i].stackSize < 1) recipe.inputs[i] = null;
-
- recipe.inputs = ArrayExt.withoutNulls(recipe.inputs, ItemStack[]::new);
- }
-
- private int checkRecipeMap() {
- GT_Recipe gt_recipe = GT_Recipe.GT_Recipe_Map.sDisassemblerRecipes.findRecipe(
- this.getBaseMetaTileEntity(),
- true,
- this.maxEUInput(),
- null,
- this.getAllInputs());
- if (gt_recipe == null) return DID_NOT_FIND_RECIPE;
- if (gt_recipe.isRecipeInputEqual(false, null, this.getAllInputs())) {
- if (gt_recipe.mSpecialValue == -100) {
- // Bypass standard disassembler restrictions.
- this.getInputAt(0).stackSize -= gt_recipe.mInputs[0].stackSize;
- System.arraycopy(gt_recipe.mOutputs, 0, this.mOutputItems, 0, gt_recipe.mOutputs.length);
-
- this.calculateOverclockedNess(gt_recipe);
- return FOUND_AND_SUCCESSFULLY_USED_RECIPE;
- } else {
- return setOutputsAndTime(gt_recipe.mOutputs, gt_recipe.mInputs[0].stackSize)
- ? FOUND_AND_SUCCESSFULLY_USED_RECIPE
- : FOUND_RECIPE_BUT_DID_NOT_MEET_REQUIREMENTS;
- }
- }
-
- return FOUND_RECIPE_BUT_DID_NOT_MEET_REQUIREMENTS;
- }
-
- private boolean setOutputsAndTime(ItemStack[] inputs, int stackSize) {
- ItemStack machineInput = this.getInputAt(0);
- if (checkTier(machineInput)) return false;
-
- if (machineInput.stackSize >= stackSize) machineInput.stackSize -= stackSize;
- else return false;
-
- System.arraycopy(inputs, 0, this.mOutputItems, 0, inputs.length);
- this.calculateOverclockedNess(30, 600);
-
- return true;
- }
-
- private static DissassembleReference ensureDowncasting(Collection<? extends DissassembleReference> recipes) {
- ItemStack[] inputs = recipes.stream()
- .findFirst()
- .orElseThrow(NullPointerException::new).inputs;
- int EUt = recipes.stream()
- .findFirst()
- .orElseThrow(NullPointerException::new).EUt;
-
- ItemStack[] output = new ItemStack[inputs.length];
- List<GT_Recipe> recipesColl = null;
- if (recipes.size() > 1) recipesColl = recipes.stream()
- .skip(1)
- .map(x -> x.recipe)
- .collect(Collectors.toList());
-
- handleRecipeTransformation(inputs, output, recipesColl);
-
- return new DissassembleReference(
- recipes.stream()
- .mapToInt(x -> x.stackSize)
- .min()
- .orElseThrow(NumberFormatException::new),
- output,
- null,
- EUt);
- }
-
- private static void handleRecipeTransformation(ItemStack[] inputs, ItemStack[] output,
- List<? extends GT_Recipe> recipesColl) {
- for (int i = 0, inputsLength = inputs.length; i < inputsLength; i++) {
- Set<ItemStack[]> inputsStacks = null;
- if (recipesColl != null) inputsStacks = recipesColl.stream()
- .map(x -> x.mInputs)
- .collect(Collectors.toSet());
- handleRecipeTransformationInternal(inputs, output, inputsStacks, i);
- }
- addOthersAndHandleAlwaysReplace(inputs, output);
- }
-
- /**
- * Public Interface for ReverseRecipes, do not call inside of this class.
- */
- public static void handleRecipeTransformation(ItemStack[] inputs, ItemStack[] output,
- Set<ItemStack[]> inputsStacks) {
- for (int i = 0, inputsLength = inputs.length; i < inputsLength; i++)
- handleRecipeTransformationInternal(inputs, output, inputsStacks, i);
- addOthersAndHandleAlwaysReplace(inputs, output);
- }
-
- private static void handleRecipeTransformationInternal(ItemStack[] inputs, ItemStack[] output,
- Set<ItemStack[]> inputsStacks, int i) {
- ItemStack input = inputs[i];
- ItemData data = GT_OreDictUnificator.getItemData(input);
- if (data == null || data.mMaterial == null || data.mMaterial.mMaterial == null || data.mPrefix == null) {
- output[i] = input;
- return;
- }
- handleReplacement(inputsStacks, data, output, input, i);
- }
-
- private static void addOthersAndHandleAlwaysReplace(ItemStack[] inputs, ItemStack[] output) {
- for (int i = 0; i < inputs.length; i++) {
- // Adds rest of Items
- if (output[i] == null) output[i] = inputs[i];
-
- // Math.min the recipe output if Items are the same
- if (GT_Utility.areStacksEqual(output[i], inputs[i]))
- output[i].stackSize = Math.min(output[i].stackSize, inputs[i].stackSize);
-
- // Handles replacement Overrides
- ItemStack[] itemStacks = alwaysReplace[0];
- for (int j = 0; j < itemStacks.length; j++) {
- ItemStack x = itemStacks[j];
- if (GT_Utility.areStacksEqual(x, output[i], true)) {
- output[i] = alwaysReplace[1][j];
- break;
- }
- }
-
- output[i] = handleUnification(output[i]);
- output[i] = handleWildcard(output[i]);
- output[i] = handleContainerItem(output[i]);
- }
- }
-
- private static ItemStack handleUnification(ItemStack stack) {
- for (int oreID : OreDictionary.getOreIDs(stack)) {
- for (int i = 0; i < OreDictionaryOverride[0].length; i++) if (OreDictionary.getOreName(oreID)
- .equals(
- OreDictionaryOverride[0][i])) {
- ItemStack ret = ((ItemStack) OreDictionaryOverride[1][i]).copy();
- ret.stackSize = stack.stackSize;
- return ret;
- }
- }
- return GT_OreDictUnificator.get(stack);
- }
-
- private static ItemStack handleWildcard(ItemStack stack) {
- if (stack != null && stack.getItemDamage() == OreDictionary.WILDCARD_VALUE
- && !stack.getItem()
- .isDamageable()) {
- stack.setItemDamage(0);
- }
- return stack;
- }
-
- private static ItemStack handleContainerItem(ItemStack stack) {
- if (stack != null && stack.getItem()
- .hasContainerItem(stack)) {
- return null;
- }
- return stack;
- }
-
- private static void handleReplacement(Set<ItemStack[]> inputsStacks, ItemData data, ItemStack[] output,
- ItemStack input, int i) {
- AtomicReference<Materials> toRpl = new AtomicReference<>();
- Materials first = data.mMaterial.mMaterial;
- if (inputsStacks != null) {
- handleInputStacks(inputsStacks, toRpl, data, first, i);
- }
- if (toRpl.get() == null) {
- // Remove Magnetic and Annealed Modifiers
- handleBetterMaterialsVersions(data, toRpl);
- }
- if (toRpl.get() != null) {
- output[i] = GT_OreDictUnificator.get(data.mPrefix, toRpl.get(), input.stackSize);
- return;
- }
- if (data.mPrefix == OrePrefixes.circuit) {
- handleCircuits(first, output, input, i);
- }
- }
-
- private static void handleInputStacks(Set<ItemStack[]> inputsStacks, AtomicReference<? super Materials> toRpl,
- ItemData data, Materials first, int i) {
- final int finalIndex = i;
- inputsStacks.forEach(stackArray -> {
- ItemData dataAgainst = GT_OreDictUnificator.getItemData(stackArray[finalIndex]);
- if (dataAgainst == null || dataAgainst.mMaterial == null
- || dataAgainst.mMaterial.mMaterial == null
- || dataAgainst.mPrefix == null
- || dataAgainst.mPrefix != data.mPrefix) {
- return;
- }
- handleDifferentMaterialsOnRecipes(first, dataAgainst.mMaterial.mMaterial, toRpl);
- handleAnyMaterials(first, toRpl);
- });
- }
-
- private static void handleAnyMaterials(Materials first, AtomicReference<? super Materials> toRpl) {
- if (first.mOreReRegistrations.stream()
- .anyMatch(y -> y.equals(Materials.AnyIron)))
- toRpl.set(Materials.Iron);
- else if (first.mOreReRegistrations.stream()
- .anyMatch(y -> y.equals(Materials.AnyCopper)))
- toRpl.set(Materials.Copper);
- else if (first.mOreReRegistrations.stream()
- .anyMatch(y -> y.equals(Materials.AnyRubber)))
- toRpl.set(Materials.Rubber);
- else if (first.mOreReRegistrations.stream()
- .anyMatch(y -> y.equals(Materials.AnyBronze)))
- toRpl.set(Materials.Bronze);
- else if (first.mOreReRegistrations.stream()
- .anyMatch(y -> y.equals(Materials.AnySyntheticRubber)))
- toRpl.set(Materials.Rubber);
- }
-
- private static void handleDifferentMaterialsOnRecipes(Materials first, Materials second,
- AtomicReference<? super Materials> toRpl) {
- if (!first.equals(second))
- if (first.equals(Materials.Aluminium) && second.equals(Materials.Iron)) toRpl.set(second);
- else if (first.equals(Materials.Steel) && second.equals(Materials.Iron)) toRpl.set(second);
- else if (first.equals(Materials.WroughtIron) && second.equals(Materials.Iron)) toRpl.set(second);
- else if (first.equals(Materials.Aluminium) && second.equals(Materials.WroughtIron))
- toRpl.set(Materials.Iron);
- else if (first.equals(Materials.Aluminium) && second.equals(Materials.Steel)) toRpl.set(second);
- else if (first.equals(Materials.Polytetrafluoroethylene) && second.equals(Materials.Plastic))
- toRpl.set(second);
- else if (first.equals(Materials.Polybenzimidazole) && second.equals(Materials.Plastic)) toRpl.set(second);
- else if (first.equals(Materials.Polystyrene) && second.equals(Materials.Plastic)) toRpl.set(second);
- else if (first.equals(Materials.Silicone) && second.equals(Materials.Plastic)) toRpl.set(second);
- else if (first.equals(Materials.NetherQuartz)
- || first.equals(Materials.CertusQuartz) && second.equals(Materials.Quartzite))
- toRpl.set(second);
- else if (first.equals(Materials.Plastic) && second.equals(Materials.Wood)) toRpl.set(second);
- else if (first.equals(Materials.Diamond) && second.equals(Materials.Glass)) toRpl.set(second);
- }
-
- private static void handleBetterMaterialsVersions(ItemData data, AtomicReference<? super Materials> toRpl) {
- if (Materials.SteelMagnetic.equals(data.mMaterial.mMaterial)) {
- toRpl.set(Materials.Steel);
- } else if (Materials.IronMagnetic.equals(data.mMaterial.mMaterial)) {
- toRpl.set(Materials.Iron);
- } else if (Materials.NeodymiumMagnetic.equals(data.mMaterial.mMaterial)) {
- toRpl.set(Materials.Neodymium);
- } else if (Materials.SamariumMagnetic.equals(data.mMaterial.mMaterial)) {
- toRpl.set(Materials.Samarium);
- } else if (Materials.AnnealedCopper.equals(data.mMaterial.mMaterial)) {
- toRpl.set(Materials.Copper);
- }
- }
-
- @SuppressWarnings("deprecation")
- private static void handleCircuits(Materials first, ItemStack[] output, ItemStack input, int i) {
- if (first.equals(Materials.Primitive)) output[i] = ItemList.NandChip.get(input.stackSize);
- else if (first.equals(Materials.Basic)) output[i] = ItemList.Circuit_Microprocessor.get(input.stackSize);
- else if (first.equals(Materials.Good)) output[i] = ItemList.Circuit_Good.get(input.stackSize);
- else if (first.equals(Materials.Advanced)) output[i] = ItemList.Circuit_Advanced.get(input.stackSize);
- else if (first.equals(Materials.Data)) output[i] = ItemList.Circuit_Data.get(input.stackSize);
- else if (first.equals(Materials.Master)) output[i] = ItemList.Circuit_Master.get(input.stackSize);
- else if (first.equals(Materials.Ultimate)) output[i] = ItemList.Circuit_Quantummainframe.get(input.stackSize);
- else if (first.equals(Materials.Superconductor))
- output[i] = ItemList.Circuit_Crystalmainframe.get(input.stackSize);
- else if (first.equals(Materials.Infinite)) output[i] = ItemList.Circuit_Wetwaremainframe.get(input.stackSize);
- else if (first.equals(Materials.Bio)) output[i] = ItemList.Circuit_Biomainframe.get(input.stackSize);
- }
-
- static class DissassembleReference {
-
- final int stackSize;
- ItemStack[] inputs;
- final GT_Recipe recipe;
- final int EUt;
-
- public DissassembleReference(int stackSize, ItemStack[] inputs, GT_Recipe recipe, int EUt) {
- this.stackSize = stackSize;
- this.inputs = inputs;
- this.recipe = recipe;
- this.EUt = EUt;
- }
-
- public DissassembleReference(int stackSize, ItemStack[] inputs, GT_Recipe recipe) {
- this.stackSize = stackSize;
- this.inputs = inputs;
- this.recipe = recipe;
- if (recipe != null) {
- this.EUt = recipe.mEUt;
- } else {
- this.EUt = 0;
- }
- }
- }
-
- private Collection<DissassembleReference> findRecipeFromMachine() {
- ItemStack is = getInputAt(0);
- if (GT_Utility.isStackInvalid(is)) return Collections.emptySet();
-
- AtomicInteger stacksize = new AtomicInteger();
- // Check Recipe Maps for creation of Item
- List<DissassembleReference> possibleRecipes = GT_Recipe.GT_Recipe_Map.sAssemblerRecipes.mRecipeList.stream()
- .filter(
- x -> Arrays.stream(
- x.mOutputs)
- .anyMatch(
- y -> {
- if (y == null)
- return false;
- ItemStack out = is.copy();
- out.stackSize = y.stackSize;
- boolean isDone = GT_Utility.areStacksEqual(
- y,
- out,
- true)
- && y.stackSize
- <= is.stackSize;
- if (isDone)
- stacksize.set(
- y.stackSize);
- return isDone;
- }))
- .map(
- x -> new DissassembleReference(
- stacksize.get(),
- x.mInputs,
- x))
- .collect(
- Collectors.toList());
-
- // Is there only one way to create it?
- if (possibleRecipes.size() == 1) return possibleRecipes;
-
- // There are Multiple Ways -> Get recipe with cheapest inputs
- // More Inputs should mean cheaper Materials
- return possibleRecipes.stream()
- .sorted(Comparator.comparingDouble(GT_MetaTileEntity_Disassembler::getCheaperInputs))
- .collect(Collectors.toList());
- }
-
- private static double getCheaperInputs(GT_MetaTileEntity_Disassembler.DissassembleReference x) {
- double fluidInputValueRaw = Arrays.stream(x.recipe.mFluidInputs)
- .flatMapToInt(f -> IntStream.of(f.amount))
- .sum();
- fluidInputValueRaw = fluidInputValueRaw > 0 ? fluidInputValueRaw : 144D;
- double inputValue = Arrays.stream(x.inputs)
- .flatMapToInt(f -> IntStream.of(f.stackSize))
- .sum()
- + (fluidInputValueRaw / 144D);
- double fluidOutputValueRaw = Arrays.stream(x.recipe.mFluidOutputs)
- .flatMapToInt(f -> IntStream.of(f.amount))
- .sum();
- fluidOutputValueRaw = fluidOutputValueRaw > 0 ? fluidOutputValueRaw : 144D;
- double outputValue = Arrays.stream(x.recipe.mOutputs)
- .flatMapToInt(f -> IntStream.of(f.stackSize))
- .sum()
- + (fluidOutputValueRaw / 144D);
- return outputValue / inputValue;
- }
-
- private boolean checkVoltage(DissassembleReference recipe) {
- return recipe.EUt < GT_Values.V[this.mTier];
- }
-
- @Override
- protected boolean allowPutStackValidated(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide,
- ItemStack aStack) {
- return super.allowPutStackValidated(aBaseMetaTileEntity, aIndex, aSide, aStack)
- && aStack.getTagCompound() != null
- && aStack.getTagCompound()
- .getCompoundTag("GT.CraftingComponents")
- != null;
- }
-
- @Override
- public GT_Recipe.GT_Recipe_Map getRecipeList() {
- return GT_Recipe.GT_Recipe_Map.sDisassemblerRecipes;
- }
-
- // GUI stuff
-
- @Override
- public boolean hasNEITransferRect() {
- return false;
- }
-}
diff --git a/src/main/java/gregtech/loaders/misc/GT_Achievements.java b/src/main/java/gregtech/loaders/misc/GT_Achievements.java
index 06f7884875..5318e6cb39 100644
--- a/src/main/java/gregtech/loaders/misc/GT_Achievements.java
+++ b/src/main/java/gregtech/loaders/misc/GT_Achievements.java
@@ -124,7 +124,6 @@ public class GT_Achievements {
null),
"highpowerdrill",
false);
- registerAchievement("repair", 4, 5, ItemList.Machine_HV_Disassembler.get(1), "highpowerdrill", false);
registerAchievement(
"unitool",
diff --git a/src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java b/src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java
index ec1866b375..caaa8f16dd 100644
--- a/src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java
+++ b/src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java
@@ -5677,63 +5677,6 @@ public class GT_Loader_MetaTileEntities implements Runnable { // TODO CHECK CIRC
OrePrefixes.circuit.get(Materials.Elite), 'W', OrePrefixes.cableGt01.get(Materials.Tungsten),
'G', new ItemStack(Blocks.glass, 1) });
- ItemList.Machine_LV_Disassembler.set(
- new GT_MetaTileEntity_Disassembler(
- 451,
- "basicmachine.disassembler.tier.01",
- "Basic Disassembler",
- 1).getStackForm(1L));
- ItemList.Machine_MV_Disassembler.set(
- new GT_MetaTileEntity_Disassembler(
- 452,
- "basicmachine.disassembler.tier.02",
- "Advanced Disassembler",
- 2).getStackForm(1L));
- ItemList.Machine_HV_Disassembler.set(
- new GT_MetaTileEntity_Disassembler(
- 453,
- "basicmachine.disassembler.tier.03",
- "Advanced Disassembler II",
- 3).getStackForm(1L));
- ItemList.Machine_EV_Disassembler.set(
- new GT_MetaTileEntity_Disassembler(
- 454,
- "basicmachine.disassembler.tier.04",
- "Advanced Disassembler III",
- 4).getStackForm(1L));
- ItemList.Machine_IV_Disassembler.set(
- new GT_MetaTileEntity_Disassembler(
- 455,
- "basicmachine.disassembler.tier.05",
- "Advanced Disassembler IV",
- 5).getStackForm(1L));
-
- GT_ModHandler.addCraftingRecipe(
- ItemList.Machine_LV_Disassembler.get(1L),
- bitsd,
- new Object[] { "ACA", aTextWireHull, "ACA", 'M', ItemList.Hull_LV, 'A', ItemList.Robot_Arm_LV, 'C',
- OrePrefixes.circuit.get(Materials.Basic), 'W', OrePrefixes.cableGt01.get(Materials.Tin) });
- GT_ModHandler.addCraftingRecipe(
- ItemList.Machine_MV_Disassembler.get(1L),
- bitsd,
- new Object[] { "ACA", aTextWireHull, "ACA", 'M', ItemList.Hull_MV, 'A', ItemList.Robot_Arm_MV, 'C',
- OrePrefixes.circuit.get(Materials.Good), 'W', OrePrefixes.cableGt01.get(Materials.AnyCopper) });
- GT_ModHandler.addCraftingRecipe(
- ItemList.Machine_HV_Disassembler.get(1L),
- bitsd,
- new Object[] { "ACA", aTextWireHull, "ACA", 'M', ItemList.Hull_HV, 'A', ItemList.Robot_Arm_HV, 'C',
- OrePrefixes.circuit.get(Materials.Advanced), 'W', OrePrefixes.cableGt01.get(Materials.Gold) });
- GT_ModHandler.addCraftingRecipe(
- ItemList.Machine_EV_Disassembler.get(1L),
- bitsd,
- new Object[] { "ACA", aTextWireHull, "ACA", 'M', ItemList.Hull_EV, 'A', ItemList.Robot_Arm_EV, 'C',
- OrePrefixes.circuit.get(Materials.Data), 'W', OrePrefixes.cableGt01.get(Materials.Aluminium) });
- GT_ModHandler.addCraftingRecipe(
- ItemList.Machine_IV_Disassembler.get(1L),
- bitsd,
- new Object[] { "ACA", aTextWireHull, "ACA", 'M', ItemList.Hull_IV, 'A', ItemList.Robot_Arm_IV, 'C',
- OrePrefixes.circuit.get(Materials.Elite), 'W', OrePrefixes.cableGt01.get(Materials.Tungsten) });
-
if (Forestry.isModLoaded()) {
ItemList.Machine_IndustrialApiary.set(
new GT_MetaTileEntity_IndustrialApiary(
@@ -8055,6 +7998,7 @@ public class GT_Loader_MetaTileEntities implements Runnable { // TODO CHECK CIRC
GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W',
GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE4, 'G',
OrePrefixes.cell.get(Materials.Graphite) }).getStackForm(1L));
+
ItemList.Machine_MV_ArcFurnace.set(
new GT_MetaTileEntity_BasicMachine_GT_Recipe(
652,
@@ -8105,6 +8049,7 @@ public class GT_Loader_MetaTileEntities implements Runnable { // TODO CHECK CIRC
GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W',
GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE4, 'G',
OrePrefixes.cell.get(Materials.Graphite) }).getStackForm(1L));
+
ItemList.Machine_EV_ArcFurnace.set(
new GT_MetaTileEntity_BasicMachine_GT_Recipe(
654,
@@ -8114,7 +8059,7 @@ public class GT_Loader_MetaTileEntities implements Runnable { // TODO CHECK CIRC
"",
GT_Recipe.GT_Recipe_Map.sArcFurnaceRecipes,
1,
- 4,
+ 9,
48000,
0,
1,
@@ -8130,6 +8075,7 @@ public class GT_Loader_MetaTileEntities implements Runnable { // TODO CHECK CIRC
GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, 'W',
GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE4, 'G',
OrePrefixes.cell.get(Materials.Graphite) }).getStackForm(1L));
+
ItemList.Machine_IV_ArcFurnace.set(
new GT_MetaTileEntity_BasicMachine_GT_Recipe(
655,
@@ -8139,7 +8085,7 @@ public class GT_Loader_MetaTileEntities implements Runnable { // TODO CHECK CIRC
"",
GT_Recipe.GT_Recipe_Map.sArcFurnaceRecipes,
1,
- 4,
+ 9,
64000,
0,
1,
@@ -8243,7 +8189,7 @@ public class GT_Loader_MetaTileEntities implements Runnable { // TODO CHECK CIRC
"",
GT_Recipe.GT_Recipe_Map.sPlasmaArcFurnaceRecipes,
1,
- 4,
+ 9,
8000,
0,
1,
@@ -8269,7 +8215,7 @@ public class GT_Loader_MetaTileEntities implements Runnable { // TODO CHECK CIRC
"",
GT_Recipe.GT_Recipe_Map.sPlasmaArcFurnaceRecipes,
1,
- 4,
+ 9,
16000,
0,
1,