From f95d89a5e6b1ab6b3e7fab5e56f9b51e21ae78e3 Mon Sep 17 00:00:00 2001 From: Johannes Gäßler Date: Sun, 23 Jul 2017 21:30:57 +0200 Subject: Implemented Roasting and Carbothermic Reduction for the EBF. --- src/main/java/gregtech/common/GT_RecipeAdder.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/main/java/gregtech/common') diff --git a/src/main/java/gregtech/common/GT_RecipeAdder.java b/src/main/java/gregtech/common/GT_RecipeAdder.java index 28a5902c7f..43755c2731 100644 --- a/src/main/java/gregtech/common/GT_RecipeAdder.java +++ b/src/main/java/gregtech/common/GT_RecipeAdder.java @@ -173,7 +173,8 @@ public class GT_RecipeAdder if ((aDuration = GregTech_API.sRecipeFile.get("blastfurnace", aInput1, aDuration)) <= 0) { return false; } - GT_Recipe.GT_Recipe_Map.sBlastRecipes.addRecipe(true, new ItemStack[]{aInput1, aInput2}, new ItemStack[]{aOutput1, aOutput2}, null, null, new FluidStack[]{aFluidInput}, null, aDuration, aEUt, aLevel); + GT_Recipe.GT_Recipe_Map.sBlastRecipes.addRecipe(true, new ItemStack[]{aInput1, aInput2}, new ItemStack[]{aOutput1, aOutput2}, null, null, + new FluidStack[]{aFluidInput}, new FluidStack[]{aFluidOutput}, aDuration, aEUt, aLevel); return true; } -- cgit From a687bcd24ee1ff97ad6d86f84f1748e1cd0129a4 Mon Sep 17 00:00:00 2001 From: Johannes Gäßler Date: Sun, 23 Jul 2017 23:22:06 +0200 Subject: Changed Galena Formula: Pb3Ag3S2 -> PbS, added PbS -> Pb direct smelting Also added the corresponding pyrometallurgical recipes. --- src/main/java/gregtech/common/items/ItemComb.java | 1 - 1 file changed, 1 deletion(-) (limited to 'src/main/java/gregtech/common') diff --git a/src/main/java/gregtech/common/items/ItemComb.java b/src/main/java/gregtech/common/items/ItemComb.java index 6ee6d790db..61b0fb5c4c 100644 --- a/src/main/java/gregtech/common/items/ItemComb.java +++ b/src/main/java/gregtech/common/items/ItemComb.java @@ -212,7 +212,6 @@ public class ItemComb extends Item { tComb = getStackForType(CombType.SILVER); addSpecialCent(tComb, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Silver, 1), 30); addProcess(tComb, Materials.Silver, 100); - addProcess(tComb, Materials.Galena, 100); tComb = getStackForType(CombType.GOLD); addProcess(tComb, Materials.Gold, 100); addProcess(tComb, Materials.Magnetite, Materials.Gold, 100); -- cgit From 306160fb69b41376644d793803c67b85bc125af3 Mon Sep 17 00:00:00 2001 From: Johannes Gäßler Date: Mon, 24 Jul 2017 11:14:52 +0200 Subject: Implemented Fluid Output for the EBF Regular Fluids are put out at the bottom layer. CO2, CO, and SO2 are put out at the top layer and their amount scales with the tier of the EBF's Muffler Hatch --- .../GT_MetaTileEntity_ElectricBlastFurnace.java | 64 ++++++++++++++++++++-- 1 file changed, 59 insertions(+), 5 deletions(-) (limited to 'src/main/java/gregtech/common') diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ElectricBlastFurnace.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ElectricBlastFurnace.java index 3823e38a0b..1e729b5c0b 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ElectricBlastFurnace.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ElectricBlastFurnace.java @@ -1,13 +1,17 @@ package gregtech.common.tileentities.machines.multi; import gregtech.api.GregTech_API; +import gregtech.api.enums.Materials; import gregtech.api.enums.Textures; 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_Hatch_Muffler; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Output; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase; import gregtech.api.objects.GT_RenderedTexture; +import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; import net.minecraft.entity.player.InventoryPlayer; @@ -20,6 +24,9 @@ import java.util.ArrayList; public class GT_MetaTileEntity_ElectricBlastFurnace extends GT_MetaTileEntity_MultiBlockBase { private int mHeatingCapacity = 0; + private int controllerY; + private FluidStack[] pollutionFluidStacks = new FluidStack[]{Materials.CarbonDioxide.getGas(1000), + Materials.CarbonMonoxide.getGas(1000), Materials.SulfurDioxide.getGas(1000)}; public GT_MetaTileEntity_ElectricBlastFurnace(int aID, String aName, String aNameRegional) { super(aID, aName, aNameRegional); @@ -43,6 +50,8 @@ public class GT_MetaTileEntity_ElectricBlastFurnace "1x Energy Hatch (Any bottom layer casing)", "1x Maintenance Hatch (Any bottom layer casing)", "1x Muffler Hatch (Top middle)", + "1x Output Hatch to recover CO2/CO/SO2 (optional, any top layer casing),", + " Recovery scales with Muffler Hatch tier", "Heat Proof Machine Casings for the rest", "Each 900K over the min. Heat Capacity grants 5% speedup (multiplicatively)", "Each 1800K over the min. Heat Capacity allows for one upgraded overclock", @@ -136,6 +145,7 @@ public class GT_MetaTileEntity_ElectricBlastFurnace } this.mMaxProgresstime = Math.max(1, this.mMaxProgresstime); this.mOutputItems = new ItemStack[]{tRecipe.getOutput(0), tRecipe.getOutput(1)}; + this.mOutputFluids = new FluidStack[]{tRecipe.getFluidOutput(0)}; updateSlots(); return true; } @@ -144,6 +154,7 @@ public class GT_MetaTileEntity_ElectricBlastFurnace } public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { + controllerY = aBaseMetaTileEntity.getYCoord(); int xDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetX; int zDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetZ; @@ -199,11 +210,13 @@ public class GT_MetaTileEntity_ElectricBlastFurnace if (aBaseMetaTileEntity.getMetaIDOffset(xDir + i, 1, zDir + j) != tUsedMeta) { return false; } - if (aBaseMetaTileEntity.getBlockOffset(xDir + i, 3, zDir + j) != GregTech_API.sBlockCasings1) { - return false; - } - if (aBaseMetaTileEntity.getMetaIDOffset(xDir + i, 3, zDir + j) != 11) { - return false; + if (!addOutputToMachineList(aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir + i, 3, zDir + j), 11)) { + if (aBaseMetaTileEntity.getBlockOffset(xDir + i, 3, zDir + j) != GregTech_API.sBlockCasings1) { + return false; + } + if (aBaseMetaTileEntity.getMetaIDOffset(xDir + i, 3, zDir + j) != 11) { + return false; + } } } } @@ -263,4 +276,45 @@ public class GT_MetaTileEntity_ElectricBlastFurnace } } } + + @Override + public boolean addOutput(FluidStack aLiquid) { + if (aLiquid == null) return false; + int targetHeight; + FluidStack tLiquid = aLiquid.copy(); + boolean isOutputPollution = false; + for (FluidStack pollutionFluidStack : pollutionFluidStacks) { + if (pollutionFluidStack.isFluidEqual(pollutionFluidStack)) { + isOutputPollution = true; + break; + } + } + if (isOutputPollution) { + targetHeight = this.controllerY + 3; + int pollutionReduction = 0; + for (GT_MetaTileEntity_Hatch_Muffler tHatch : mMufflerHatches) { + if (isValidMetaTileEntity(tHatch)) { + pollutionReduction = 100 - tHatch.calculatePollutionReduction(100); + break; + } + } + tLiquid.amount = tLiquid.amount * (pollutionReduction + 5) / 100; + } else { + targetHeight = this.controllerY; + } + for (GT_MetaTileEntity_Hatch_Output tHatch : mOutputHatches) { + if (isValidMetaTileEntity(tHatch) && GT_ModHandler.isSteam(aLiquid) ? tHatch.outputsSteam() : tHatch.outputsLiquids()) { + if (tHatch.getBaseMetaTileEntity().getYCoord() == targetHeight) { + int tAmount = tHatch.fill(tLiquid, false); + if (tAmount >= tLiquid.amount) { + return tHatch.fill(tLiquid, true) >= tLiquid.amount; + } else if (tAmount > 0) { + tLiquid.amount = tLiquid.amount - tHatch.fill(tLiquid, true); + } + } + } + } + return false; + } + } -- cgit From 1763f60b3638286cfa7b0f17f6aff72e744c8a1d Mon Sep 17 00:00:00 2001 From: Johannes Gäßler Date: Wed, 26 Jul 2017 23:26:17 +0200 Subject: Added a config for the converion rate of Direct Smelting: 1 <-> 2/3 --- src/main/java/gregtech/common/GT_Proxy.java | 1 + 1 file changed, 1 insertion(+) (limited to 'src/main/java/gregtech/common') diff --git a/src/main/java/gregtech/common/GT_Proxy.java b/src/main/java/gregtech/common/GT_Proxy.java index f7ff8385ff..0c81f8873a 100644 --- a/src/main/java/gregtech/common/GT_Proxy.java +++ b/src/main/java/gregtech/common/GT_Proxy.java @@ -193,6 +193,7 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler { public boolean mForceFreeFace = false; public boolean mEasierEVPlusCables = false; public boolean mBrickedBlastFurnace = true; + public boolean mMixedOreOnlyYieldsTwoThirdsOfPureOre = false; public GT_Proxy() { GameRegistry.registerFuelHandler(this); -- cgit From af36dd30991f55e6589c8024cc6c2580f949895d Mon Sep 17 00:00:00 2001 From: Johannes Gäßler Date: Thu, 27 Jul 2017 22:44:33 +0200 Subject: Fixed a bug where every Fluid was put out at the top of the EBF --- .../machines/multi/GT_MetaTileEntity_ElectricBlastFurnace.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/main/java/gregtech/common') diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ElectricBlastFurnace.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ElectricBlastFurnace.java index 1e729b5c0b..e62977125e 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ElectricBlastFurnace.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ElectricBlastFurnace.java @@ -284,7 +284,7 @@ public class GT_MetaTileEntity_ElectricBlastFurnace FluidStack tLiquid = aLiquid.copy(); boolean isOutputPollution = false; for (FluidStack pollutionFluidStack : pollutionFluidStacks) { - if (pollutionFluidStack.isFluidEqual(pollutionFluidStack)) { + if (tLiquid.isFluidEqual(pollutionFluidStack)) { isOutputPollution = true; break; } -- cgit From a749a8536f08973ca0a3e778b37f3d78059b9ff2 Mon Sep 17 00:00:00 2001 From: Johannes Gäßler Date: Mon, 7 Aug 2017 23:12:27 +0200 Subject: Reverted changes to Mercury Ore Washing. --- src/main/java/gregtech/common/items/ItemComb.java | 1 + 1 file changed, 1 insertion(+) (limited to 'src/main/java/gregtech/common') diff --git a/src/main/java/gregtech/common/items/ItemComb.java b/src/main/java/gregtech/common/items/ItemComb.java index 61b0fb5c4c..6ee6d790db 100644 --- a/src/main/java/gregtech/common/items/ItemComb.java +++ b/src/main/java/gregtech/common/items/ItemComb.java @@ -212,6 +212,7 @@ public class ItemComb extends Item { tComb = getStackForType(CombType.SILVER); addSpecialCent(tComb, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Silver, 1), 30); addProcess(tComb, Materials.Silver, 100); + addProcess(tComb, Materials.Galena, 100); tComb = getStackForType(CombType.GOLD); addProcess(tComb, Materials.Gold, 100); addProcess(tComb, Materials.Magnetite, Materials.Gold, 100); -- cgit