aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristina Berchtold <kekzdealer@gmail.com>2020-04-23 22:06:32 +0200
committerChristina Berchtold <kekzdealer@gmail.com>2020-04-23 22:06:32 +0200
commitd48674f9c4243fe4439999e59c798a13113f3037 (patch)
treeee9ba0d21d6c135ee0153da2fcbbb33bdc6d902b
parent35477125b256e6577156911ddf8bcc30a090edc7 (diff)
downloadGT5-Unofficial-d48674f9c4243fe4439999e59c798a13113f3037.tar.gz
GT5-Unofficial-d48674f9c4243fe4439999e59c798a13113f3037.tar.bz2
GT5-Unofficial-d48674f9c4243fe4439999e59c798a13113f3037.zip
Fixed Multi Hatch ignoring circuit in controller when drained from
-rw-r--r--config/IC2.ini2
-rw-r--r--config/splash.properties2
-rw-r--r--options.txt4
-rw-r--r--src/main/java/kekztech/KekzCore.java2
-rw-r--r--src/main/java/kekztech/MultiFluidHandler.java21
-rw-r--r--src/main/java/tileentities/GTMTE_FluidMultiStorage.java14
-rw-r--r--src/main/java/tileentities/TE_TFFTMultiHatch.java7
7 files changed, 43 insertions, 9 deletions
diff --git a/config/IC2.ini b/config/IC2.ini
index fa85e91926..7849244d49 100644
--- a/config/IC2.ini
+++ b/config/IC2.ini
@@ -1,5 +1,5 @@
; ic2 general config
-; created Apr 13, 2020 6:20:15 PM
+; created Apr 23, 2020 8:50:49 PM
;---
[worldgen]
diff --git a/config/splash.properties b/config/splash.properties
index 8953d81490..2e2172118a 100644
--- a/config/splash.properties
+++ b/config/splash.properties
@@ -1,5 +1,5 @@
#Splash screen properties
-#Mon Apr 13 18:20:02 CEST 2020
+#Thu Apr 23 20:50:25 CEST 2020
logoTexture=textures/gui/title/mojang.png
background=0xFFFFFF
font=0x0
diff --git a/options.txt b/options.txt
index f087516d51..e851f7e842 100644
--- a/options.txt
+++ b/options.txt
@@ -90,6 +90,10 @@ key_Boost Key:0
key_Mode Switch Key:0
key_Side Inventory Key:0
key_Hub Expand Key:0
+key_Baubles Inventory:48
+key_Change Wand Focus:33
+key_Activate Hover Harness:35
+key_Misc Wand Toggle:34
key_Glider Toggle:34
key_Sound Locator:38
key_Night Vision:25
diff --git a/src/main/java/kekztech/KekzCore.java b/src/main/java/kekztech/KekzCore.java
index 56645e9050..cff0a69b0a 100644
--- a/src/main/java/kekztech/KekzCore.java
+++ b/src/main/java/kekztech/KekzCore.java
@@ -133,7 +133,7 @@ public class KekzCore {
}
@Mod.EventHandler
- public void init(FMLInitializationEvent event ) {
+ public void init(FMLInitializationEvent event) {
// Multiblock controllers
sofc1 = new GTMTE_SOFuelCellMK1(13101, "multimachine.fuelcellmk1", "Solid-Oxide Fuel Cell Mk I");
sofc2 = new GTMTE_SOFuelCellMK2(13102, "multimachine.fuelcellmk2", "Solid-Oxide Fuel Cell Mk II");
diff --git a/src/main/java/kekztech/MultiFluidHandler.java b/src/main/java/kekztech/MultiFluidHandler.java
index a96094a8f0..880576ca7e 100644
--- a/src/main/java/kekztech/MultiFluidHandler.java
+++ b/src/main/java/kekztech/MultiFluidHandler.java
@@ -15,6 +15,7 @@ public class MultiFluidHandler {
private int capacityPerFluid;
private boolean locked = true;
+ private byte fluidSelector = -1;
public MultiFluidHandler() {
@@ -39,6 +40,26 @@ public class MultiFluidHandler {
locked = state;
}
+ /**
+ * Used to tell the MFH if a fluid is selected by
+ * an Integrated Circuit in the controller.
+ *
+ * @param fluidSelector
+ * Selected fluid or -1 if no fluid is selected
+ */
+ public void setFluidSelector(byte fluidSelector) {
+ this.fluidSelector = fluidSelector;
+ }
+
+ /**
+ *
+ * @return
+ * Selected fluid or -1 if no fluid is selected
+ */
+ public byte getSelectedFluid() {
+ return fluidSelector;
+ }
+
public boolean contains(FluidStack fluid) {
return !locked && fluids.contains(fluid);
}
diff --git a/src/main/java/tileentities/GTMTE_FluidMultiStorage.java b/src/main/java/tileentities/GTMTE_FluidMultiStorage.java
index f220da2dbc..c14b9608c4 100644
--- a/src/main/java/tileentities/GTMTE_FluidMultiStorage.java
+++ b/src/main/java/tileentities/GTMTE_FluidMultiStorage.java
@@ -46,6 +46,8 @@ public class GTMTE_FluidMultiStorage extends GT_MetaTileEntity_MultiBlockBase {
private int runningCost = 0;
private boolean doVoidExcess = false;
+
+ private byte fluidSelector = 0;
public GTMTE_FluidMultiStorage(int aID, String aName, String aNameRegional) {
super(aID, aName, aNameRegional);
@@ -115,7 +117,11 @@ public class GTMTE_FluidMultiStorage extends GT_MetaTileEntity_MultiBlockBase {
super.mEfficiencyIncrease = 10000;
super.mEUt = runningCost;
super.mMaxProgresstime = 10;
-
+
+ if(guiSlotItem != null && guiSlotItem.getUnlocalizedName().equals("gt.integrated_circuit")) {
+ this.fluidSelector = (byte) guiSlotItem.getItemDamage();
+ }
+
// If there are no basic I/O hatches, let multi hatches handle it and skip a lot of code!
if (multiHatches.size() > 0 && super.mInputHatches.size() == 0 && super.mOutputHatches.size() == 0) {
return true;
@@ -143,8 +149,7 @@ public class GTMTE_FluidMultiStorage extends GT_MetaTileEntity_MultiBlockBase {
// Push out fluids
if (guiSlotItem != null && guiSlotItem.getUnlocalizedName().equals("gt.integrated_circuit")) {
- final int config = guiSlotItem.getItemDamage();
- final FluidStack storedFluid = mfh.getFluid(config);
+ final FluidStack storedFluid = mfh.getFluid(fluidSelector);
// Sum available output capacity
int possibleOutput = 0;
for (GT_MetaTileEntity_Hatch_Output outputHatch : super.mOutputHatches) {
@@ -159,7 +164,7 @@ public class GTMTE_FluidMultiStorage extends GT_MetaTileEntity_MultiBlockBase {
// Output as much as possible
final FluidStack tempStack = storedFluid.copy();
tempStack.amount = possibleOutput;
- tempStack.amount = mfh.pullFluid(tempStack, config, true);
+ tempStack.amount = mfh.pullFluid(tempStack, fluidSelector, true);
super.addOutput(tempStack);
} else {
@@ -193,6 +198,7 @@ public class GTMTE_FluidMultiStorage extends GT_MetaTileEntity_MultiBlockBase {
if (mfh != null) {
mfh.setLock(!super.getBaseMetaTileEntity().isActive());
+ mfh.setFluidSelector(fluidSelector);
}
}
diff --git a/src/main/java/tileentities/TE_TFFTMultiHatch.java b/src/main/java/tileentities/TE_TFFTMultiHatch.java
index 1f92f924c4..5e652b3cd8 100644
--- a/src/main/java/tileentities/TE_TFFTMultiHatch.java
+++ b/src/main/java/tileentities/TE_TFFTMultiHatch.java
@@ -19,7 +19,7 @@ import net.minecraftforge.fluids.IFluidHandler;
public class TE_TFFTMultiHatch extends TileEntity implements IFluidHandler {
- private static final int OUTPUT_SPEED = 100; // L/s
+ private static final int OUTPUT_SPEED = 1000; // L/s
private MultiFluidHandler mfh;
private int tickCounter = 0;
@@ -126,9 +126,12 @@ public class TE_TFFTMultiHatch extends TileEntity implements IFluidHandler {
if(mfh != null) {
final FluidStack drain = mfh.getFluid(0);
if(drain != null) {
+ // If there's no integrated circuit in the TFFT controller, output slot 0
+ final byte selectedSlot = (mfh.getSelectedFluid() == -1) ? 0 : mfh.getSelectedFluid();
+
return new FluidStack(
drain.getFluid(),
- mfh.pullFluid(new FluidStack(drain.getFluid(), maxDrain), 0, doDrain)
+ mfh.pullFluid(new FluidStack(drain.getFluid(), maxDrain), selectedSlot, doDrain)
);
}
}