diff options
author | Glease <4586901+Glease@users.noreply.github.com> | 2022-09-04 02:05:45 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-09-03 19:05:45 +0100 |
commit | fc3a55795b7d363900640163409d77e398b53ed3 (patch) | |
tree | 44541302cb1f8fd4e67293efa5235ccd1502a066 /src/main | |
parent | 908d0ccaf9ecb15d97c60b6c8088740c3f53316d (diff) | |
download | GT5-Unofficial-fc3a55795b7d363900640163409d77e398b53ed3.tar.gz GT5-Unofficial-fc3a55795b7d363900640163409d77e398b53ed3.tar.bz2 GT5-Unofficial-fc3a55795b7d363900640163409d77e398b53ed3.zip |
allow separate input bus for wiremill (#335)
Diffstat (limited to 'src/main')
-rw-r--r-- | src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialWireMill.java | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialWireMill.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialWireMill.java index 88a0a849dd..a4cd774289 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialWireMill.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialWireMill.java @@ -15,6 +15,7 @@ import gregtech.api.enums.TAE; import gregtech.api.interfaces.IIconContainer; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_InputBus; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; @@ -22,9 +23,15 @@ import gtPlusPlus.core.block.ModBlocks; 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 java.util.List; import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ChatComponentTranslation; +import net.minecraftforge.fluids.FluidStack; public class GregtechMetaTileEntity_IndustrialWireMill extends GregtechMeta_MultiBlockBase<GregtechMetaTileEntity_IndustrialWireMill> @@ -32,6 +39,7 @@ public class GregtechMetaTileEntity_IndustrialWireMill private int mCasing; private IStructureDefinition<GregtechMetaTileEntity_IndustrialWireMill> STRUCTURE_DEFINITION = null; + private boolean isBussesSeparate; public GregtechMetaTileEntity_IndustrialWireMill(final int aID, final String aName, final String aNameRegional) { super(aID, aName, aNameRegional); @@ -153,6 +161,45 @@ public class GregtechMetaTileEntity_IndustrialWireMill } @Override + public boolean checkRecipeGeneric( + int aMaxParallelRecipes, long aEUPercent, int aSpeedBonusPercent, int aOutputChanceRoll) { + if (!isBussesSeparate) + return super.checkRecipeGeneric(aMaxParallelRecipes, aEUPercent, aSpeedBonusPercent, aOutputChanceRoll); + List<ItemStack> buffer = new ArrayList<>(16); + FluidStack[] tFluidInputs = getStoredFluids().toArray(new FluidStack[0]); + for (GT_MetaTileEntity_Hatch_InputBus tHatch : mInputBusses) { + IGregTechTileEntity inv = tHatch.getBaseMetaTileEntity(); + for (int i = inv.getSizeInventory() - 1; i >= 0; i--) { + if (inv.getStackInSlot(i) != null) buffer.add(inv.getStackInSlot(i)); + } + ItemStack[] tItemInputs = buffer.toArray(new ItemStack[0]); + if (checkRecipeGeneric( + tItemInputs, tFluidInputs, aMaxParallelRecipes, aEUPercent, aSpeedBonusPercent, aOutputChanceRoll)) + return true; + } + return false; + } + + @Override + public void onModeChangeByScrewdriver(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ) { + isBussesSeparate = !isBussesSeparate; + aPlayer.addChatMessage(new ChatComponentTranslation( + isBussesSeparate ? "interaction.separateBusses.enabled" : "interaction.separateBusses.disabled")); + } + + @Override + public void saveNBTData(NBTTagCompound aNBT) { + aNBT.setBoolean("isBussesSeparate", isBussesSeparate); + super.saveNBTData(aNBT); + } + + @Override + public void loadNBTData(NBTTagCompound aNBT) { + isBussesSeparate = aNBT.getBoolean("isBussesSeparate"); + super.loadNBTData(aNBT); + } + + @Override public int getMaxParallelRecipes() { return (4 * GT_Utility.getTier(this.getMaxInputVoltage())); } |