aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorYang Xizhi <60341015+GlodBlock@users.noreply.github.com>2022-07-13 22:10:10 +0800
committerGitHub <noreply@github.com>2022-07-13 21:10:10 +0700
commitf765b4e65dd2b228ab9d62c67284aa44e1ac8e23 (patch)
tree9267df8d606a3b972ac4018a561d6872f74526c4 /src/main
parentbe86786c07bd3b214fda09766f70235e5012a75e (diff)
downloadGT5-Unofficial-f765b4e65dd2b228ab9d62c67284aa44e1ac8e23.tar.gz
GT5-Unofficial-f765b4e65dd2b228ab9d62c67284aa44e1ac8e23.tar.bz2
GT5-Unofficial-f765b4e65dd2b228ab9d62c67284aa44e1ac8e23.zip
more tiers of quad input hatches (#1123)
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/gregtech/api/enums/ItemList.java6
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_MultiInput.java7
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_AssemblyLine.java56
-rw-r--r--src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java6
-rw-r--r--src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java6
5 files changed, 54 insertions, 27 deletions
diff --git a/src/main/java/gregtech/api/enums/ItemList.java b/src/main/java/gregtech/api/enums/ItemList.java
index b50415c3ef..275a6bdd7b 100644
--- a/src/main/java/gregtech/api/enums/ItemList.java
+++ b/src/main/java/gregtech/api/enums/ItemList.java
@@ -973,7 +973,11 @@ public enum ItemList implements IItemContainer {
Hatch_Input_UV,
Hatch_Input_MAX,
- Hatch_Input_Multi_2x2,
+ Hatch_Input_Multi_2x2_EV,
+ Hatch_Input_Multi_2x2_IV,
+ Hatch_Input_Multi_2x2_LuV,
+ Hatch_Input_Multi_2x2_ZPM,
+ Hatch_Input_Multi_2x2_UV,
Hatch_Input_Bus_ULV,
Hatch_Input_Bus_LV,
diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_MultiInput.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_MultiInput.java
index 39599006f2..b16ec3c7c7 100644
--- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_MultiInput.java
+++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_MultiInput.java
@@ -1,6 +1,5 @@
package gregtech.api.metatileentity.implementations;
-import gregtech.GT_Mod;
import gregtech.api.enums.ItemList;
import gregtech.api.gui.GT_Container_2by2_Fluid;
import gregtech.api.gui.GT_GUIContainer_2by2_Fluid;
@@ -15,7 +14,7 @@ import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.FluidTankInfo;
-import static gregtech.api.enums.Textures.BlockIcons.*;
+import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_INPUT_HATCH_2x2;
public class GT_MetaTileEntity_Hatch_MultiInput extends GT_MetaTileEntity_Hatch_Input {
@@ -29,7 +28,7 @@ public class GT_MetaTileEntity_Hatch_MultiInput extends GT_MetaTileEntity_Hatch_
}
public GT_MetaTileEntity_Hatch_MultiInput(String aName, int aSlot, int aTier, String[] aDescription, ITexture[][][] aTextures) {
- super(aName, aTier, aSlot, aDescription, aTextures);
+ super(aName, aSlot, aTier, aDescription, aTextures);
this.mStoredFluid = new FluidStack[aSlot];
mCapacityPer = 8000 * (1 << aTier) / aSlot;
}
@@ -217,7 +216,7 @@ public class GT_MetaTileEntity_Hatch_MultiInput extends GT_MetaTileEntity_Hatch_
@Override
public FluidStack drain(ForgeDirection from, FluidStack aFluid, boolean doDrain) {
if (getFluid() != null && aFluid != null && getFluid().isFluidEqual(aFluid)) {
- if (hasFluid(aFluid) && !canTankBeEmptied()) {
+ if (hasFluid(aFluid)) {
FluidStack tStored = mStoredFluid[getFluidSlot(aFluid)];
if (tStored.amount <= 0 && isFluidChangingAllowed()) {
setFluid(null, getFluidSlot(tStored));
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_AssemblyLine.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_AssemblyLine.java
index c037aeb512..436c8c1e59 100644
--- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_AssemblyLine.java
+++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_AssemblyLine.java
@@ -12,11 +12,7 @@ import gregtech.api.gui.GT_GUIContainer_MultiMachine;
import gregtech.api.interfaces.ITexture;
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
-import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_EnhancedMultiBlockBase;
-import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch;
-import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_DataAccess;
-import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Input;
-import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_InputBus;
+import gregtech.api.metatileentity.implementations.*;
import gregtech.api.render.TextureFactory;
import gregtech.api.util.GT_AssemblyLineUtils;
import gregtech.api.util.GT_Multiblock_Tooltip_Builder;
@@ -173,8 +169,9 @@ public class GT_MetaTileEntity_AssemblyLine extends GT_MetaTileEntity_EnhancedMu
int[] tStack = null;
int[] tFluids = null;
+ int[] tFluidSlot = null;
boolean foundRecipe = false;
-
+
nextDataStick:
for (ItemStack tDataStick : tDataStickList) {
GT_AssemblyLineUtils.LookupResult tLookupResult = GT_AssemblyLineUtils.findAssemblyLineRecipeFromDataStick(tDataStick, false);
@@ -190,11 +187,11 @@ public class GT_MetaTileEntity_AssemblyLine extends GT_MetaTileEntity_EnhancedMu
continue;
}
}
-
+
// So here we check against the recipe found on the data stick.
// If we run into missing buses/hatches or bad inputs, we go to the next data stick.
// This check only happens if we have a valid up to date data stick.
-
+
// Check Inputs allign
int aItemCount = tRecipe.mInputs.length;
tStack = new int[aItemCount];
@@ -212,26 +209,37 @@ public class GT_MetaTileEntity_AssemblyLine extends GT_MetaTileEntity_EnhancedMu
GT_FML_LOGGER.info("Item: " + i + " accepted");
}
}
-
+
// Check Fluid Inputs allign
int aFluidCount = tRecipe.mFluidInputs.length;
tFluids = new int[aFluidCount];
+ tFluidSlot = new int[aFluidCount];
for (int i = 0; i < aFluidCount; i++){
if (mInputHatches.get(i) == null) {
continue nextDataStick;
}
else {
- FluidStack fluidInHatch = mInputHatches.get(i).mFluid;
- if (!GT_Utility.areFluidsEqual(fluidInHatch, tRecipe.mFluidInputs[i], true) || fluidInHatch.amount < tRecipe.mFluidInputs[i].amount) {
- continue nextDataStick;
+ if (mInputHatches.get(i) instanceof GT_MetaTileEntity_Hatch_MultiInput) {
+ GT_MetaTileEntity_Hatch_MultiInput tMultiHatch = (GT_MetaTileEntity_Hatch_MultiInput) mInputHatches.get(i);
+ if (!tMultiHatch.hasFluid(tRecipe.mFluidInputs[i]) || tMultiHatch.getFluidAmount(tRecipe.mFluidInputs[i]) < tRecipe.mFluidInputs[i].amount) {
+ continue nextDataStick;
+ }
+ tFluids[i] = tRecipe.mFluidInputs[i].amount;
+ tFluidSlot[i] = tMultiHatch.getFluidSlot(tRecipe.mFluidInputs[i]);
+ }
+ else {
+ FluidStack fluidInHatch = mInputHatches.get(i).mFluid;
+ if (!GT_Utility.areFluidsEqual(fluidInHatch, tRecipe.mFluidInputs[i], true) || fluidInHatch.amount < tRecipe.mFluidInputs[i].amount) {
+ continue nextDataStick;
+ }
+ tFluids[i] = tRecipe.mFluidInputs[i].amount;
}
- tFluids[i] = tRecipe.mFluidInputs[i].amount;
if (GT_Values.D1) {
GT_FML_LOGGER.info("Fluid:" + i + " accepted");
}
}
}
-
+
if (GT_Values.D1) {
GT_FML_LOGGER.info("Check overclock");
}
@@ -244,18 +252,18 @@ public class GT_MetaTileEntity_AssemblyLine extends GT_MetaTileEntity_EnhancedMu
continue;
}
if (GT_Values.D1) {
- GT_FML_LOGGER.info("Find available recipe");
+ GT_FML_LOGGER.info("Find available recipe");
}
mOutputItems = new ItemStack[] {tRecipe.mOutput};
foundRecipe = true;
break ;
}
-
+
// Best not to run this recipe.
if (!foundRecipe || tStack.length <= 0) {
return false;
}
-
+
if (GT_Values.D1) {
GT_FML_LOGGER.info("All checked start consuming inputs");
@@ -266,9 +274,17 @@ public class GT_MetaTileEntity_AssemblyLine extends GT_MetaTileEntity_EnhancedMu
}
for (int i = 0; i < tFluids.length; i++) {
- mInputHatches.get(i).mFluid.amount -= tFluids[i];
- if (mInputHatches.get(i).mFluid.amount <= 0) {
- mInputHatches.get(i).mFluid = null;
+ if (mInputHatches.get(i) instanceof GT_MetaTileEntity_Hatch_MultiInput) {
+ GT_MetaTileEntity_Hatch_MultiInput tMultiHatch = (GT_MetaTileEntity_Hatch_MultiInput) mInputHatches.get(i);
+ tMultiHatch.getFluid(tFluidSlot[i]).amount -= tFluids[i];
+ if (tMultiHatch.getFluid(tFluidSlot[i]).amount <= 0) {
+ tMultiHatch.setFluid(null, tFluidSlot[i]);
+ }
+ } else {
+ mInputHatches.get(i).mFluid.amount -= tFluids[i];
+ if (mInputHatches.get(i).mFluid.amount <= 0) {
+ mInputHatches.get(i).mFluid = null;
+ }
}
}
diff --git a/src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java b/src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java
index 2bbb599efb..31f4de8808 100644
--- a/src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java
+++ b/src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java
@@ -473,7 +473,11 @@ public class GT_MachineRecipeLoader implements Runnable {
GT_Values.RA.addArcFurnaceRecipe(ItemList.Long_Distance_Pipeline_Item_Pipe.get(1L), new ItemStack[]{GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Tin, 1L), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Steel, 1L)}, null, 10, 120);
GT_Values.RA.addFluidExtractionRecipe(ItemList.Long_Distance_Pipeline_Item_Pipe.get(16L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Tin, 3L), Materials.Steel.getMolten(324), 10000, 400, 90);
- GT_Values.RA.addAssemblerRecipe(new ItemStack[]{GT_OreDictUnificator.get(OrePrefixes.pipeQuadruple, Materials.StainlessSteel, 1L), ItemList.Hull_EV.get(1L), GT_Utility.getIntegratedCircuit(4)}, Materials.Glass.getMolten(2304L), ItemList.Hatch_Input_Multi_2x2.get(1L), 600, 24);
+ GT_Values.RA.addAssemblerRecipe(new ItemStack[]{GT_OreDictUnificator.get(OrePrefixes.pipeQuadruple, Materials.StainlessSteel, 1L), ItemList.Hull_EV.get(1L), GT_Utility.getIntegratedCircuit(4)}, Materials.Glass.getMolten(2304L), ItemList.Hatch_Input_Multi_2x2_EV.get(1L), 600, 24);
+ GT_Values.RA.addAssemblerRecipe(new ItemStack[]{GT_OreDictUnificator.get(OrePrefixes.pipeQuadruple, Materials.Titanium, 1L), ItemList.Hull_IV.get(1L), GT_Utility.getIntegratedCircuit(4)}, Materials.Glass.getMolten(2304L), ItemList.Hatch_Input_Multi_2x2_IV.get(1L), 600, 24);
+ GT_Values.RA.addAssemblerRecipe(new ItemStack[]{GT_OreDictUnificator.get(OrePrefixes.pipeQuadruple, Materials.TungstenSteel, 1L), ItemList.Hull_LuV.get(1L), GT_Utility.getIntegratedCircuit(4)}, Materials.Polytetrafluoroethylene.getMolten(2304L), ItemList.Hatch_Input_Multi_2x2_LuV.get(1L), 600, 24);
+ GT_Values.RA.addAssemblerRecipe(new ItemStack[]{GT_OreDictUnificator.get(OrePrefixes.pipeQuadruple, Materials.NiobiumTitanium, 1L), ItemList.Hull_ZPM.get(1L), GT_Utility.getIntegratedCircuit(4)}, Materials.Polytetrafluoroethylene.getMolten(2304L), ItemList.Hatch_Input_Multi_2x2_ZPM.get(1L), 600, 24);
+ GT_Values.RA.addAssemblerRecipe(new ItemStack[]{GT_OreDictUnificator.get(OrePrefixes.pipeQuadruple, Materials.MysteriousCrystal, 1L), ItemList.Hull_UV.get(1L), GT_Utility.getIntegratedCircuit(4)}, Materials.Polybenzimidazole.getMolten(2304L), ItemList.Hatch_Input_Multi_2x2_UV.get(1L), 600, 24);
GT_Values.RA.addAssemblerRecipe(new ItemStack[]{GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Steel, 4L), GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.TungstenSteel, 1L), ItemList.Robot_Arm_IV.get(2L), GT_Utility.getIntegratedCircuit(3)}, GT_Values.NF, ItemList.Casing_Gearbox_TungstenSteel.get(1L), 200, 30);
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 d040b08fc9..a2f00ced9c 100644
--- a/src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java
+++ b/src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java
@@ -228,7 +228,11 @@ public class GT_Loader_MetaTileEntities implements Runnable {//TODO CHECK CIRCUI
ItemList.Hatch_Input_ZPM.set(new GT_MetaTileEntity_Hatch_Input(57, "hatch.input.tier.07", "Input Hatch (ZPM)", 7).getStackForm(1L));
ItemList.Hatch_Input_UV.set(new GT_MetaTileEntity_Hatch_Input(58, "hatch.input.tier.08", "Input Hatch (UV)", 8).getStackForm(1L));
ItemList.Hatch_Input_MAX.set(new GT_MetaTileEntity_Hatch_Input(59, "hatch.input.tier.09", "Input Hatch (UHV)", 9).getStackForm(1L));
- ItemList.Hatch_Input_Multi_2x2.set(new GT_MetaTileEntity_Hatch_MultiInput(200, 4, "hatch.multi.input.tier.01", "Quadruple Input Hatch", 4).getStackForm(1L));
+ ItemList.Hatch_Input_Multi_2x2_EV.set(new GT_MetaTileEntity_Hatch_MultiInput(200, 4, "hatch.multi.input.tier.01", "Quadruple Input Hatch (EV)", 4).getStackForm(1L));
+ ItemList.Hatch_Input_Multi_2x2_IV.set(new GT_MetaTileEntity_Hatch_MultiInput(710, 4, "hatch.multi.input.tier.02", "Quadruple Input Hatch (IV)", 5).getStackForm(1L));
+ ItemList.Hatch_Input_Multi_2x2_LuV.set(new GT_MetaTileEntity_Hatch_MultiInput(711, 4, "hatch.multi.input.tier.03", "Quadruple Input Hatch (LuV)", 6).getStackForm(1L));
+ ItemList.Hatch_Input_Multi_2x2_ZPM.set(new GT_MetaTileEntity_Hatch_MultiInput(712, 4, "hatch.multi.input.tier.04", "Quadruple Input Hatch (ZPM)", 7).getStackForm(1L));
+ ItemList.Hatch_Input_Multi_2x2_UV.set(new GT_MetaTileEntity_Hatch_MultiInput(713, 4, "hatch.multi.input.tier.05", "Quadruple Input Hatch (UV)", 8).getStackForm(1L));
ItemList.Hatch_Output_ULV.set(new GT_MetaTileEntity_Hatch_Output(60, "hatch.output.tier.00", "Output Hatch (ULV)", 0).getStackForm(1L));
ItemList.Hatch_Output_LV.set(new GT_MetaTileEntity_Hatch_Output(61, "hatch.output.tier.01", "Output Hatch (LV)", 1).getStackForm(1L));