aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java/gtPlusPlus')
-rw-r--r--src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java16
-rw-r--r--src/Java/gtPlusPlus/core/recipe/RECIPES_Machines.java18
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/interfaces/internal/IGregtech_RecipeAdder.java5
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GT4Entity_AutoCrafter.java75
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/recipes/GregtechRecipeAdder.java105
5 files changed, 184 insertions, 35 deletions
diff --git a/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java b/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java
index e4f6f0de89..6b50dc688a 100644
--- a/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java
+++ b/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java
@@ -620,7 +620,7 @@ public class RECIPES_GREGTECH {
FluidUtils.getFluidStack("molten.tantalum", 144 * 4),
ItemUtils.simpleMetaStack(ModItems.itemHalfCompleteCasings, 1, 8), 32, 120);
addAR(ItemUtils.simpleMetaStack(ModItems.itemHalfCompleteCasings, 1, 1),
- ItemUtils.getItemStackOfAmountFromOreDict("plateLead", 4), FluidUtils.getFluidStack("oxygen", 1000),
+ ItemUtils.getItemStackOfAmountFromOreDict("plateDenseLead", 4), FluidUtils.getFluidStack("oxygen", 16000),
ItemUtils.getSimpleStack(GregtechItemList.Casing_Vanadium_Redox.get(1), 1), 64, 240);
//Tier 2-6
@@ -632,23 +632,23 @@ public class RECIPES_GREGTECH {
ItemStack T6 = GregtechItemList.Casing_Vanadium_Redox_MAX.get(1);
addAR(T1,
- ItemUtils.getItemStackOfAmountFromOreDict("plateStainlessSteel", 4),
- FluidUtils.getFluidStack("nitrogen", 2000),
+ ItemUtils.getItemStackOfAmountFromOreDict("plateDenseStainlessSteel", 2),
+ FluidUtils.getFluidStack("nitrogen", 16000),
T2, 120, 2000);
addAR(T2,
- ItemUtils.getItemStackOfAmountFromOreDict("plateTitanium", 4),
- FluidUtils.getFluidStack("helium", 2000),
+ ItemUtils.getItemStackOfAmountFromOreDict("plateDenseTitanium", 2),
+ FluidUtils.getFluidStack("helium", 8000),
T3, 250, 8000);
addAR(T3,
- ItemUtils.getItemStackOfAmountFromOreDict("plateTungsten", 4),
+ ItemUtils.getItemStackOfAmountFromOreDict("plateDenseTungsten", 2),
FluidUtils.getFluidStack("argon", 4000),
T4, 500, 32000);
addAR(T4,
- ItemUtils.getItemStackOfAmountFromOreDict("plateTungstenSteel", 4),
+ ItemUtils.getItemStackOfAmountFromOreDict("plateDenseTungstenSteel", 2),
FluidUtils.getFluidStack("radon", 4000),
T5, 1000, 128000);
addAR(T5,
- ItemUtils.getItemStackOfAmountFromOreDict("plateAlloyIridium", 4),
+ ItemUtils.getItemStackOfAmountFromOreDict("plateAlloyIridium", 9),
FluidUtils.getFluidStack("molten.krypton", 500),
T6, 2000, 512000);
diff --git a/src/Java/gtPlusPlus/core/recipe/RECIPES_Machines.java b/src/Java/gtPlusPlus/core/recipe/RECIPES_Machines.java
index dbcb49d359..13b24b100d 100644
--- a/src/Java/gtPlusPlus/core/recipe/RECIPES_Machines.java
+++ b/src/Java/gtPlusPlus/core/recipe/RECIPES_Machines.java
@@ -1130,21 +1130,21 @@ public class RECIPES_Machines {
if (CORE.ConfigSwitches.enableMultiblock_LargeAutoCrafter){
RecipeUtils.recipeBuilder(
- "plateStainlessSteel", CI.craftingToolHammer_Hard, "plateStainlessSteel",
- "plateStellite", "frameGtStainlessSteel", "plateStellite",
- "plateStainlessSteel", CI.craftingToolWrench, "plateStainlessSteel",
+ "plateTungstenSteel", CI.craftingToolHammer_Hard, "plateTungstenSteel",
+ "plateStellite", ItemList.Block_IridiumTungstensteel.get(1), "plateStellite",
+ "plateTungstenSteel", CI.craftingToolWrench, "plateTungstenSteel",
GregtechItemList.Casing_Autocrafter.get(Casing_Amount));
RecipeUtils.recipeBuilder(
- "plateStainlessSteel",CI.sensor_EV,"plateStainlessSteel",
- "wireFineOsmium",GregtechItemList.Gregtech_Computer_Cube.get(1), "wireFineOsmium",
- "plateStainlessSteel",CI.emitter_EV,"plateStainlessSteel",
+ "plateTungstenSteel", ItemUtils.getSimpleStack(ModItems.itemCircuitLFTR),"plateTungstenSteel",
+ CI.emitter_IV,GregtechItemList.Gregtech_Computer_Cube.get(1), CI.sensor_IV,
+ "plateTungstenSteel", "cableGt08Osmium","plateTungstenSteel",
GregtechItemList.GT4_Multi_Crafter.get(1));
RecipeUtils.recipeBuilder(
- "plateStainlessSteel",CI.craftingToolSolderingIron,"plateStainlessSteel",
- CI.robotArm_ULV, ItemList.Casing_SolidSteel.get(1), CI.robotArm_ULV,
- "plateStainlessSteel",CI.emitter_ULV,"plateStainlessSteel",
+ "plateTungstenSteel",CI.craftingToolSolderingIron,"plateStainlessSteel",
+ CI.robotArm_EV, ItemList.Casing_SolidSteel.get(1), CI.robotArm_EV,
+ "plateStainlessSteel",CI.emitter_EV,"plateTungstenSteel",
ItemUtils.getSimpleStack(ModBlocks.blockProjectTable));
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/interfaces/internal/IGregtech_RecipeAdder.java b/src/Java/gtPlusPlus/xmod/gregtech/api/interfaces/internal/IGregtech_RecipeAdder.java
index 38e27c9bb2..c442e4f7d4 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/api/interfaces/internal/IGregtech_RecipeAdder.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/interfaces/internal/IGregtech_RecipeAdder.java
@@ -160,4 +160,9 @@ public interface IGregtech_RecipeAdder {
public boolean addAdvancedFreezerRecipe(ItemStack[] aInputs, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, ItemStack[] aOutputs, int[] aChances, int aDuration, int aEUtick, int aSpecial);
+
+ public boolean addAssemblerRecipeWithOreDict(Object aInput1, int aAmount1, Object aInput2, int aAmount2, ItemStack aOutput, int a1, int a2);
+ public boolean addAssemblerRecipeWithOreDict(Object aInput1, int aAmount1, Object aInput2, int aAmount2, FluidStack aInputFluid, ItemStack aOutput, int a1, int a2);
+
+
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GT4Entity_AutoCrafter.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GT4Entity_AutoCrafter.java
index 9406fa5589..6fb37f2041 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GT4Entity_AutoCrafter.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GT4Entity_AutoCrafter.java
@@ -1,5 +1,6 @@
package gtPlusPlus.xmod.gregtech.common.tileentities.machines.multi.production;
+import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
@@ -16,6 +17,7 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Input
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_OutputBus;
import gregtech.api.objects.GT_RenderedTexture;
import gregtech.api.util.GT_Recipe;
+import gregtech.api.util.GT_Recipe.GT_Recipe_Map;
import gregtech.api.util.GT_Utility;
import gtPlusPlus.api.objects.Logger;
@@ -25,6 +27,7 @@ import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.util.math.MathUtils;
import gtPlusPlus.core.util.minecraft.NBTUtils;
import gtPlusPlus.core.util.minecraft.PlayerUtils;
+import gtPlusPlus.core.util.reflect.ReflectionUtils;
import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GregtechMeta_MultiBlockBase;
import gtPlusPlus.xmod.gregtech.common.helpers.CraftingHelper;
import gtPlusPlus.xmod.gregtech.common.helpers.autocrafter.AC_Helper_Utils;
@@ -40,7 +43,7 @@ public class GT4Entity_AutoCrafter extends GregtechMeta_MultiBlockBase {
public CraftingHelper mInventoryCrafter;
public static enum MODE {
- CRAFTING("DISASSEMBLY", "ASSEMBLY"), ASSEMBLY("CRAFTING", "DISASSEMBLY"), DISASSEMBLY("ASSEMBLY", "CRAFTING");
+ CRAFTING("CIRCUIT", "ASSEMBLY"), ASSEMBLY("CRAFTING", "DISASSEMBLY"), DISASSEMBLY("ASSEMBLY", "CIRCUIT"), CIRCUIT("DISASSEMBLY", "CRAFTING");
private final String lastMode;
private final String nextMode;
@@ -78,7 +81,8 @@ public class GT4Entity_AutoCrafter extends GregtechMeta_MultiBlockBase {
@Override
public String getMachineType() {
- return "Assembler, Disassembler, Autocrafter";
+ String sType = "Assembler, Disassembler, "+(CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK ? "Circuit Assembler, " : "")+"Autocrafter";
+ return sType;
}
@Override
@@ -123,7 +127,7 @@ public class GT4Entity_AutoCrafter extends GregtechMeta_MultiBlockBase {
@Override
public String[] getDescription() {
return new String[] { "Highly Advanced Autocrafter", "Right Click with a Screwdriver to change mode",
- "This Machine Can Craft, Assemble or Disassemble",
+ "This Machine Can Autocraft, Assemble, Disassemble or Circuit Assemble",
"200% faster than using single block machines of the same voltage",
"Processes two items per voltage tier", "--------------------------------------",
"Insert a Memory stick into the GUI", "to automate a crafting table recipe",
@@ -197,20 +201,63 @@ public class GT4Entity_AutoCrafter extends GregtechMeta_MultiBlockBase {
}
@Override
- public GT_Recipe.GT_Recipe_Map getRecipeMap() {
+ public GT_Recipe.GT_Recipe_Map getRecipeMap() {
+ if (this.mMachineMode == MODE.ASSEMBLY) {
+ return GT_Recipe.GT_Recipe_Map.sAssemblerRecipes;
+ }
+ else if (this.mMachineMode == MODE.CIRCUIT) {
+ GT_Recipe_Map r;
+ try {
+ Field f = ReflectionUtils.getField(GT_Recipe.GT_Recipe_Map.class, "sCircuitAssemblerRecipes");
+ if (f != null) {
+ r = (GT_Recipe_Map) f.get(null);
+ if (r != null) {
+ return r;
+ }
+ }
+ } catch (NoSuchFieldException | IllegalArgumentException | IllegalAccessException e) {
+ }
+ }
return GT_Recipe.GT_Recipe_Map.sAssemblerRecipes;
}
+ private boolean isModernGT = true;
+
@Override
- public void onScrewdriverRightClick(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ) {
- mMachineMode = mMachineMode.nextMode();
- if (mMachineMode == MODE.CRAFTING) {
- PlayerUtils.messagePlayer(aPlayer, "You are now running the Auto-Crafter in mode: §dAuto-Crafting");
- } else if (mMachineMode == MODE.ASSEMBLY) {
- PlayerUtils.messagePlayer(aPlayer, "You are now running the Auto-Crafter in mode: §aAssembly");
- } else {
- PlayerUtils.messagePlayer(aPlayer, "You are now running the Auto-Crafter in mode: §cDisassembly");
+ public void onScrewdriverRightClick(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ) {
+ if (isModernGT && !CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK) {
+ isModernGT = false;
}
+ //5.09 support
+ if (isModernGT) {
+ mMachineMode = mMachineMode.nextMode();
+ if (mMachineMode == MODE.CRAFTING) {
+ PlayerUtils.messagePlayer(aPlayer, "Running the Auto-Crafter in mode: §dAuto-Crafting");
+ } else if (mMachineMode == MODE.ASSEMBLY) {
+ PlayerUtils.messagePlayer(aPlayer, "Running the Auto-Crafter in mode: §aAssembly");
+ } else if (mMachineMode == MODE.DISASSEMBLY) {
+ PlayerUtils.messagePlayer(aPlayer, "Running the Auto-Crafter in mode: §cDisassembly");
+ } else {
+ PlayerUtils.messagePlayer(aPlayer, "Running the Auto-Crafter in mode: §eCircuit Assembly");
+ }
+ }
+ //5.08 support
+ else {
+ if (mMachineMode.nextMode() == MODE.CIRCUIT) {
+ mMachineMode = MODE.CRAFTING;
+ }
+ else {
+ mMachineMode = mMachineMode.nextMode();
+ }
+
+ if (mMachineMode == MODE.CRAFTING) {
+ PlayerUtils.messagePlayer(aPlayer, "You are now running the Auto-Crafter in mode: §dAuto-Crafting");
+ } else if (mMachineMode == MODE.ASSEMBLY) {
+ PlayerUtils.messagePlayer(aPlayer, "You are now running the Auto-Crafter in mode: §aAssembly");
+ } else {
+ PlayerUtils.messagePlayer(aPlayer, "You are now running the Auto-Crafter in mode: §cDisassembly");
+ }
+ }
super.onScrewdriverRightClick(aSide, aPlayer, aX, aY, aZ);
}
@@ -444,8 +491,8 @@ public class GT4Entity_AutoCrafter extends GregtechMeta_MultiBlockBase {
if (mMachineMode == MODE.DISASSEMBLY) {
tMode = "§cDisassembly";
tSpecialText = "" + (60 + 12 * this.mTier) + "% chance to recover disassembled parts.";
- } else if (mMachineMode == MODE.ASSEMBLY) {
- tMode = "§aAssembly";
+ } else if (mMachineMode == MODE.ASSEMBLY || mMachineMode == MODE.CIRCUIT) {
+ tMode = mMachineMode == MODE.ASSEMBLY ? "§aAssembly" : "§eCircuit Assembly";
if (mLastRecipeToBuffer != null && mLastRecipeToBuffer.mOutputs[0].getDisplayName() != null) {
tSpecialText = "Currently processing: " + mLastRecipeToBuffer.mOutputs[0].getDisplayName();
} else {
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/recipes/GregtechRecipeAdder.java b/src/Java/gtPlusPlus/xmod/gregtech/recipes/GregtechRecipeAdder.java
index f0cdc61a68..66f08034eb 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/recipes/GregtechRecipeAdder.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/recipes/GregtechRecipeAdder.java
@@ -2,22 +2,23 @@ package gtPlusPlus.xmod.gregtech.recipes;
import static gtPlusPlus.core.lib.CORE.GTNH;
+import java.util.List;
+
import net.minecraft.item.ItemStack;
import gregtech.api.GregTech_API;
+import gregtech.api.enums.GT_Values;
import gregtech.api.enums.Materials;
import gregtech.api.util.CustomRecipeMap;
-import gregtech.api.util.GT_Recipe;
import gregtech.api.util.Recipe_GT;
import gtPlusPlus.api.objects.Logger;
-import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.util.data.ArrayUtils;
import gtPlusPlus.core.util.minecraft.ItemUtils;
-import gtPlusPlus.core.util.minecraft.RecipeUtils;
import gtPlusPlus.xmod.gregtech.api.interfaces.internal.IGregtech_RecipeAdder;
import gtPlusPlus.xmod.gregtech.recipes.machines.RECIPEHANDLER_MatterFabricator;
import net.minecraftforge.fluids.FluidStack;
+import net.minecraftforge.oredict.OreDictionary;
public class GregtechRecipeAdder implements IGregtech_RecipeAdder {
@@ -376,7 +377,7 @@ public class GregtechRecipeAdder implements IGregtech_RecipeAdder {
+ aInput[das].stackSize);
}
}
-
+
ArrayUtils.removeNulls(aInput);
if (aInput.length <= 1) {
return false;
@@ -551,6 +552,102 @@ public class GregtechRecipeAdder implements IGregtech_RecipeAdder {
}
+ public boolean addAssemblerRecipeWithOreDict(Object aInput1, int aAmount1, Object aInput2, int aAmount2, ItemStack aOutput, int a1, int a2) {
+ if (aInput1 instanceof String || aInput2 instanceof String) {
+ int mCompleted = 0;
+ if (aInput1 instanceof String && aInput2 instanceof String) {
+ List<ItemStack> x = OreDictionary.getOres((String) aInput1, false);
+ List<ItemStack> x1 = OreDictionary.getOres((String) aInput2, false);
+ if (x != null && x.size() > 0 && x1 != null && x1.size() > 0) {
+ for (ItemStack r : x) {
+ r.stackSize = aAmount1;
+ for (ItemStack r1 : x1) {
+ r1.stackSize = aAmount2;
+ if (GT_Values.RA.addAssemblerRecipe(r, r1, aOutput, a1, a2)) {
+ mCompleted++;
+ }
+ }
+ }
+ }
+ }
+ else if (aInput1 instanceof String) {
+ List<ItemStack> x = OreDictionary.getOres((String) aInput1, false);
+ if (x != null && x.size() > 0) {
+ for (ItemStack r : x) {
+ r.stackSize = aAmount1;
+ if (GT_Values.RA.addAssemblerRecipe(r, (ItemStack) aInput2, aOutput, a1, a2)) {
+ mCompleted++;
+ }
+ }
+ }
+
+ }
+ else {
+ List<ItemStack> x = OreDictionary.getOres((String) aInput2, false);
+ if (x != null && x.size() > 0) {
+ for (ItemStack r : x) {
+ r.stackSize = aAmount1;
+ if (GT_Values.RA.addAssemblerRecipe((ItemStack) aInput1, r, aOutput, a1, a2)) {
+ mCompleted++;
+ }
+ }
+ }
+ }
+ return mCompleted > 0;
+ }
+ else {
+ return GT_Values.RA.addAssemblerRecipe((ItemStack) aInput1, (ItemStack) aInput2, aOutput, a1, a2);
+ }
+ }
+
+ public boolean addAssemblerRecipeWithOreDict(Object aInput1, int aAmount1, Object aInput2, int aAmount2, FluidStack aInputFluid, ItemStack aOutput, int a1, int a2) {
+ if (aInput1 instanceof String || aInput2 instanceof String) {
+ int mCompleted = 0;
+ if (aInput1 instanceof String && aInput2 instanceof String) {
+ List<ItemStack> x = OreDictionary.getOres((String) aInput1, false);
+ List<ItemStack> x1 = OreDictionary.getOres((String) aInput2, false);
+ if (x != null && x.size() > 0 && x1 != null && x1.size() > 0) {
+ for (ItemStack r : x) {
+ r.stackSize = aAmount1;
+ for (ItemStack r1 : x1) {
+ r1.stackSize = aAmount2;
+ if (GT_Values.RA.addAssemblerRecipe(r, r1, aInputFluid, aOutput, a1, a2)) {
+ mCompleted++;
+ }
+ }
+ }
+ }
+ }
+ else if (aInput1 instanceof String) {
+ List<ItemStack> x = OreDictionary.getOres((String) aInput1, false);
+ if (x != null && x.size() > 0) {
+ for (ItemStack r : x) {
+ r.stackSize = aAmount1;
+ if (GT_Values.RA.addAssemblerRecipe(r, (ItemStack) aInput2, aInputFluid, aOutput, a1, a2)) {
+ mCompleted++;
+ }
+ }
+ }
+
+ }
+ else {
+ List<ItemStack> x = OreDictionary.getOres((String) aInput2, false);
+ if (x != null && x.size() > 0) {
+ for (ItemStack r : x) {
+ r.stackSize = aAmount1;
+ if (GT_Values.RA.addAssemblerRecipe((ItemStack) aInput1, r, aInputFluid, aOutput, a1, a2)) {
+ mCompleted++;
+ }
+ }
+ }
+ }
+ return mCompleted > 0;
+ }
+ else {
+ return GT_Values.RA.addAssemblerRecipe((ItemStack) aInput1, (ItemStack) aInput2, aInputFluid, aOutput, a1, a2);
+ }
+ }
+