From 53499cda7c988f90a1bfe5aa10ba6aa312c897d6 Mon Sep 17 00:00:00 2001 From: Maxim Date: Mon, 12 Dec 2022 10:27:57 +0100 Subject: Allow to toggle the seperation of busses (#453) --- .../GregtechMetaTileEntity_IndustrialMixer.java | 71 ++++++++++++++++------ 1 file changed, 53 insertions(+), 18 deletions(-) (limited to 'src') diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMixer.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMixer.java index 2e687e1e25..27c525012a 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMixer.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMixer.java @@ -24,7 +24,10 @@ import gtPlusPlus.core.lib.CORE; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GregtechMeta_MultiBlockBase; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; import java.util.ArrayList; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.StatCollector; import net.minecraftforge.fluids.FluidStack; public class GregtechMetaTileEntity_IndustrialMixer @@ -34,6 +37,7 @@ public class GregtechMetaTileEntity_IndustrialMixer public static String mCasingName = "Multi-Use Casing"; public static String mCasingName2 = "Titanium Turbine Casing"; private int mCasing; + private boolean isBussesSeparate = true; private static IStructureDefinition STRUCTURE_DEFINITION = null; public GregtechMetaTileEntity_IndustrialMixer(final int aID, final String aName, final String aNameRegional) { @@ -46,6 +50,18 @@ public class GregtechMetaTileEntity_IndustrialMixer CASING_TEXTURE_ID = TAE.getIndexFromPage(2, 2); } + @Override + public void saveNBTData(NBTTagCompound aNBT) { + super.saveNBTData(aNBT); + aNBT.setBoolean("isBussesSeparate", isBussesSeparate); + } + + @Override + public void loadNBTData(final NBTTagCompound aNBT) { + super.loadNBTData(aNBT); + isBussesSeparate = aNBT.getBoolean("isBussesSeparate"); + } + @Override public IMetaTileEntity newMetaEntity(final IGregTechTileEntity aTileEntity) { return new GregtechMetaTileEntity_IndustrialMixer(this.mName); @@ -148,31 +164,41 @@ public class GregtechMetaTileEntity_IndustrialMixer @Override public boolean checkRecipe(final ItemStack aStack) { - for (GT_MetaTileEntity_Hatch_InputBus tBus : mInputBusses) { - ArrayList rList = new ArrayList<>(); - for (int i = tBus.getBaseMetaTileEntity().getSizeInventory() - 1; i >= 0; i--) { - if (tBus.getBaseMetaTileEntity().getStackInSlot(i) != null) - rList.add(tBus.getBaseMetaTileEntity().getStackInSlot(i)); + if (isBussesSeparate) { + for (GT_MetaTileEntity_Hatch_InputBus tBus : mInputBusses) { + ArrayList rList = new ArrayList<>(); + for (int i = tBus.getBaseMetaTileEntity().getSizeInventory() - 1; i >= 0; i--) { + if (tBus.getBaseMetaTileEntity().getStackInSlot(i) != null) + rList.add(tBus.getBaseMetaTileEntity().getStackInSlot(i)); + } + + if (checkRecipeGeneric( + rList.toArray(new ItemStack[0]), + getStoredFluids().toArray(new FluidStack[0]), + getMaxParallelRecipes(), + getEuDiscountForParallelism(), + 250, + 10000)) { + return true; + } } - if (checkRecipeGeneric( - rList.toArray(new ItemStack[0]), + return checkRecipeGeneric( + new ItemStack[0], getStoredFluids().toArray(new FluidStack[0]), getMaxParallelRecipes(), getEuDiscountForParallelism(), 250, - 10000)) { - return true; - } + 10000); + } else { + return checkRecipeGeneric( + getStoredInputs().toArray(new ItemStack[0]), + getStoredFluids().toArray(new FluidStack[0]), + getMaxParallelRecipes(), + getEuDiscountForParallelism(), + 250, + 10000); } - - return checkRecipeGeneric( - new ItemStack[0], - getStoredFluids().toArray(new FluidStack[0]), - getMaxParallelRecipes(), - getEuDiscountForParallelism(), - 250, - 10000); } @Override @@ -200,6 +226,15 @@ public class GregtechMetaTileEntity_IndustrialMixer return CORE.ConfigSwitches.pollutionPerSecondMultiIndustrialMixer; } + @Override + public boolean onWireCutterRightClick( + byte aSide, byte aWrenchingSide, EntityPlayer aPlayer, float aX, float aY, float aZ) { + isBussesSeparate = !isBussesSeparate; + GT_Utility.sendChatToPlayer( + aPlayer, StatCollector.translateToLocal("GT5U.machines.separatebus") + " " + isBussesSeparate); + return true; + } + @Override public int getAmountOfOutputs() { return 1; -- cgit