diff options
Diffstat (limited to 'src/Java')
55 files changed, 644 insertions, 81 deletions
diff --git a/src/Java/gregtech/api/util/GTPP_Recipe.java b/src/Java/gregtech/api/util/GTPP_Recipe.java index 51212c21bc..ce8eaf1d82 100644 --- a/src/Java/gregtech/api/util/GTPP_Recipe.java +++ b/src/Java/gregtech/api/util/GTPP_Recipe.java @@ -407,6 +407,7 @@ public class GTPP_Recipe extends GT_Recipe implements IComparableRecipe { //Special Maps for Multis public static final GTPP_Recipe_Map_Internal sFishPondRecipes = new GTPP_Recipe_Map_Internal(new HashSet<GT_Recipe>(3), "gtpp.recipe.fishpond", "Zhuhai - Fishing Port", null, RES_PATH_GUI + "basicmachines/PotionBrewer", 0, 1, 0, 0, 1, "Requires Circuit: ", 1, ".", true, true); + public static final GTPP_Recipe_Map_Internal sSpargeTowerRecipes = new GTPP_Recipe_Map_Internal(new HashSet<GT_Recipe>(10000), "gtpp.recipe.spargetower", "Sparging", null, RES_PATH_GUI + "basicmachines/FissionFuel", 9, 9, 0, 0, 1, E, 1, E, true, true); //public static final GTPP_Recipe_Map sMultiblockCentrifugeRecipes = new GT_Recipe_Map_LargeCentrifuge(); //public static final GTPP_Recipe_Map sMultiblockElectrolyzerRecipes = new GT_Recipe_Map_LargeElectrolyzer(); diff --git a/src/Java/gregtech/api/util/GasSpargingRecipe.java b/src/Java/gregtech/api/util/GasSpargingRecipe.java index 1b21a3fab2..86e52e19de 100644 --- a/src/Java/gregtech/api/util/GasSpargingRecipe.java +++ b/src/Java/gregtech/api/util/GasSpargingRecipe.java @@ -1,34 +1,43 @@ package gregtech.api.util; +import gtPlusPlus.core.util.minecraft.MaterialUtils; import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.FluidStack; public class GasSpargingRecipe implements Comparable<GasSpargingRecipe> { public final FluidStack mInputGas; + public final FluidStack mInputSpentFuel; public final int[] mMaxOutputQuantity; public final FluidStack[] mFluidInputs; public final FluidStack[] mFluidOutputs; public final ItemStack[] mInputs; public final ItemStack[] mOutputs; + public final int mDuration; + public final int mEUt; - public GasSpargingRecipe(FluidStack aSpargeGas, FluidStack[] aOutputs, int[] aMaxOutputQuantity) { + public GasSpargingRecipe(FluidStack aSpargeGas, FluidStack aSpentFuel, FluidStack[] aOutputs, int[] aMaxOutputQuantity) { mInputGas = aSpargeGas; - mFluidInputs = new FluidStack[] {mInputGas}; + mInputSpentFuel = aSpentFuel; + mFluidInputs = new FluidStack[] {mInputGas, mInputSpentFuel}; mFluidOutputs = aOutputs; mMaxOutputQuantity = aMaxOutputQuantity; - mInputs = new ItemStack[] {GT_Utility.getFluidDisplayStack(mFluidInputs[0], true)}; + mInputs = new ItemStack[] {GT_Utility.getFluidDisplayStack(mFluidInputs[0], true), GT_Utility.getFluidDisplayStack(mFluidInputs[1], true)}; mOutputs = new ItemStack[mFluidOutputs.length]; for (int i=0; i<mFluidOutputs.length;i++) { mOutputs[i] = GT_Utility.getFluidDisplayStack(mFluidOutputs[i], true); } + mDuration = 20 * 60 * 5; + mEUt = MaterialUtils.getVoltageForTier(3); } @Override public boolean equals(Object o) { if (o instanceof GasSpargingRecipe) { GasSpargingRecipe i = (GasSpargingRecipe) o; - this.mInputGas.equals(i.mInputGas); + if (this.mInputGas.equals(i.mInputGas) && this.mInputSpentFuel.equals(i.mInputSpentFuel)) { + return true; + } } return false; } @@ -42,6 +51,7 @@ public class GasSpargingRecipe implements Comparable<GasSpargingRecipe> { public boolean isValid() { if (mInputGas == null || mInputGas.amount <= 0 || + mInputSpentFuel == null || mInputSpentFuel.amount <= 0 || mFluidOutputs == null || mFluidOutputs.length < 1 || mMaxOutputQuantity == null || mMaxOutputQuantity.length < 1 || mFluidOutputs.length != mMaxOutputQuantity.length) { diff --git a/src/Java/gregtech/api/util/GasSpargingRecipeMap.java b/src/Java/gregtech/api/util/GasSpargingRecipeMap.java index 4f4bba9aca..bf12f4dc79 100644 --- a/src/Java/gregtech/api/util/GasSpargingRecipeMap.java +++ b/src/Java/gregtech/api/util/GasSpargingRecipeMap.java @@ -14,8 +14,9 @@ public class GasSpargingRecipeMap extends AutoMap<GasSpargingRecipe>{ public static final String mNEIGUIPath = RES_PATH_GUI + "basicmachines/FissionFuel.png"; - public static boolean addRecipe(FluidStack aSpargeGas, FluidStack[] aOutputs, int[] aMaxOutputs) { + public static boolean addRecipe(FluidStack aSpargeGas, FluidStack aSpentFuel, FluidStack[] aOutputs, int[] aMaxOutputs) { if (aSpargeGas == null || aSpargeGas.amount <= 0 || + aSpentFuel == null || aSpentFuel.amount <= 0 || aOutputs == null || aOutputs.length < 1 || aMaxOutputs == null || aMaxOutputs.length < 1 || aOutputs.length != aMaxOutputs.length) { @@ -24,6 +25,7 @@ public class GasSpargingRecipeMap extends AutoMap<GasSpargingRecipe>{ int aMapSize = mRecipes.size(); GasSpargingRecipe aRecipe = new GasSpargingRecipe( aSpargeGas, + aSpentFuel, aOutputs, aMaxOutputs ); diff --git a/src/Java/gtPlusPlus/core/lib/CORE.java b/src/Java/gtPlusPlus/core/lib/CORE.java index 98c49352f7..98301e41e8 100644 --- a/src/Java/gtPlusPlus/core/lib/CORE.java +++ b/src/Java/gtPlusPlus/core/lib/CORE.java @@ -10,7 +10,6 @@ import gregtech.api.GregTech_API; import gtPlusPlus.api.objects.Logger; import gtPlusPlus.api.objects.data.Pair; import gtPlusPlus.api.objects.random.XSTR; -import gtPlusPlus.core.util.Utils; import gtPlusPlus.core.util.reflect.ReflectionUtils; import gtPlusPlus.preloader.CORE_Preloader; import gtPlusPlus.xmod.gregtech.api.enums.GregtechOrePrefixes.GT_Materials; @@ -77,6 +76,7 @@ public class CORE { public static final WeakHashMap<World, EntityPlayerMP> fakePlayerCache = new WeakHashMap<World, EntityPlayerMP>(); //Tooltips; public static final String GT_Tooltip = "Added by: " + EnumChatFormatting.DARK_GREEN+"Alkalus "+EnumChatFormatting.GRAY+"- "+EnumChatFormatting.RED+"[GT++]"; + public static final String GT_Tooltip_Builder = "" + EnumChatFormatting.DARK_GREEN+"Alkalus "+EnumChatFormatting.GRAY+"- "+EnumChatFormatting.RED+"[GT++]"; public static final String GT_Tooltip_Radioactive = EnumChatFormatting.GRAY+"Warning: "+EnumChatFormatting.GREEN+"Radioactive! "+EnumChatFormatting.GOLD+" Avoid direct handling without hazmat protection."; public static final String noItem = ""; diff --git a/src/Java/gtPlusPlus/core/material/nuclear/NUCLIDE.java b/src/Java/gtPlusPlus/core/material/nuclear/NUCLIDE.java index cd28ef01fd..9bc7459f0e 100644 --- a/src/Java/gtPlusPlus/core/material/nuclear/NUCLIDE.java +++ b/src/Java/gtPlusPlus/core/material/nuclear/NUCLIDE.java @@ -146,6 +146,24 @@ public final class NUCLIDE { new MaterialStack(ELEMENT.getInstance().PROTACTINIUM, 1) }); + public static final Material Sparged_LiFBeF2UF4FP = new Material( + "Helium Sparged LiFBeF2UF4FP", //Material Name + MaterialState.PURE_LIQUID, //State + null, //Material Colour + -1, //Melting Point in C + -1, //Boiling Point in C + -1, //Protons + -1, //Neutrons + false, //Uses Blast furnace? + StringUtils.subscript(StringUtils.superscript("7")+"LiFBeF2UF4FP"), //Chemical Formula + //Material Stacks with Percentage of required elements. + new MaterialStack[]{ + new MaterialStack(FLUORIDES.LITHIUM_FLUORIDE, 1), + new MaterialStack(FLUORIDES.BERYLLIUM_FLUORIDE, 1), + new MaterialStack(FLUORIDES.URANIUM_TETRAFLUORIDE, 1), + new MaterialStack(ELEMENT.getInstance().PROTACTINIUM, 1) + }); + public static final Material UF6F2FP = new Material( "UF6F2FP", //Material Name MaterialState.PURE_LIQUID, //State @@ -237,6 +255,41 @@ public final class NUCLIDE { new MaterialStack(FLUORIDES.THORIUM_TETRAFLUORIDE, 1) }); + // Tier 1 Fuel blanket output + public static final Material Sparged_LiFThF4 = new Material( + "Fluorine Sparged LiFThF4", //Material Name + MaterialState.PURE_LIQUID, //State + null, //Material Colour + -1, //Melting Point in C + -1, //Boiling Point in C + -1, //Protons + -1, //Neutrons + false, //Uses Blast furnace? + StringUtils.subscript(StringUtils.superscript("7")+"LiFThF4"), //Chemical Formula + //Material Stacks with Percentage of required elements. + new MaterialStack[]{ + new MaterialStack(FLUORIDES.LITHIUM_FLUORIDE, 1), + new MaterialStack(FLUORIDES.THORIUM_TETRAFLUORIDE, 1) + }); + + // Tier 2 Fuel blanket output + public static final Material Sparged_LiFBeF2ThF4 = new Material( + "Fluorine Sparged LiFBeF2ThF4", //Material Name + MaterialState.PURE_LIQUID, //State + null, //Material Colour + -1, //Melting Point in C + -1, //Boiling Point in C + -1, //Protons + -1, //Neutrons + false, //Uses Blast furnace? + StringUtils.subscript(StringUtils.superscript("7")+"LiFBeF2ThF4"), //Chemical Formula + //Material Stacks with Percentage of required elements. + new MaterialStack[]{ + new MaterialStack(FLUORIDES.LITHIUM_FLUORIDE, 1), + new MaterialStack(FLUORIDES.BERYLLIUM_FLUORIDE, 1), + new MaterialStack(FLUORIDES.THORIUM_TETRAFLUORIDE, 1) + }); + public static final Material UF6F2 = new Material( "UF6F2", //Material Name MaterialState.PURE_LIQUID, //State diff --git a/src/Java/gtPlusPlus/nei/GT_NEI_LFTR_Sparging.java b/src/Java/gtPlusPlus/nei/GT_NEI_LFTR_Sparging.java index 5a251d7bd4..63c96b4f07 100644 --- a/src/Java/gtPlusPlus/nei/GT_NEI_LFTR_Sparging.java +++ b/src/Java/gtPlusPlus/nei/GT_NEI_LFTR_Sparging.java @@ -6,6 +6,9 @@ import java.util.Collections; import java.util.Iterator; import java.util.List; +import org.lwjgl.opengl.GL11; + +import codechicken.lib.gui.GuiDraw; import codechicken.nei.PositionedStack; import codechicken.nei.recipe.GuiRecipe; import codechicken.nei.recipe.TemplateRecipeHandler; @@ -18,8 +21,8 @@ import gregtech.api.util.GasSpargingRecipe; import gregtech.api.util.GasSpargingRecipeMap; import gtPlusPlus.api.objects.Logger; import gtPlusPlus.core.gui.machine.GUI_DecayablesChest; +import gtPlusPlus.core.util.math.MathUtils; import gtPlusPlus.core.util.minecraft.ItemUtils; -import gtPlusPlus.xmod.gregtech.common.tileentities.machines.multi.production.GregtechMTE_NuclearReactor; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; @@ -50,6 +53,13 @@ public class GT_NEI_LFTR_Sparging extends TemplateRecipeHandler { return 1; } + @Override + public void drawBackground(final int recipe) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GuiDraw.changeTexture(this.getGuiTexture()); + GuiDraw.drawTexturedModalRect(-4, -8, 1, 3, 174, 68); + } + public void loadTransferRects() { this.transferRects.add(new RecipeTransferRect(new Rectangle(72, 14, 22, 16), getRecipeName(), new Object[0])); } @@ -145,12 +155,14 @@ public class GT_NEI_LFTR_Sparging extends TemplateRecipeHandler { } } - public void drawExtras(int recipeIndex) { - GT_NEI_LFTR.drawText(2, 73, "Sparging occurs whilst your", -16777216); - GT_NEI_LFTR.drawText(2, 83, "LFTR is running. Happens every", -16777216); - GT_NEI_LFTR.drawText(2, 93, ""+(GregtechMTE_NuclearReactor.sMinSpargeWait/20)+"-"+(GregtechMTE_NuclearReactor.sMaxSpargeWait/20)+" seconds. Gas not", -16777216); - GT_NEI_LFTR.drawText(2, 103, "used to sparge is returned", -16777216); - GT_NEI_LFTR.drawText(2, 113, "alongside outputs.", -16777216); + public void drawExtras(int aRecipeIndex) { + final long tEUt = ((GasSpargingRecipeNEI) this.arecipes.get(aRecipeIndex)).mRecipe.mEUt; + final long tDuration = ((GasSpargingRecipeNEI) this.arecipes.get(aRecipeIndex)).mRecipe.mDuration; + GT_NEI_LFTR.drawText(10, 73, "Total: " + MathUtils.formatNumbers((long) (tDuration * tEUt)) + " EU", -16777216); + GT_NEI_LFTR.drawText(10, 83, "Usage: " + MathUtils.formatNumbers(tEUt) + " EU/t", -16777216); + GT_NEI_LFTR.drawText(10, 93, "Time: " + (tDuration < 20 ? "< 1" : MathUtils.formatNumbers(Long.valueOf(tDuration / 20))) + " secs", -16777216); + GT_NEI_LFTR.drawText(10, 103, "Gas not used to sparge is", -16777216); + GT_NEI_LFTR.drawText(10, 113, "returned alongside outputs.", -16777216); } @Override @@ -161,7 +173,7 @@ public class GT_NEI_LFTR_Sparging extends TemplateRecipeHandler { ItemStack aInput = tRecipe.mInputs.get(0).item; for (final PositionedStack tStack : tRecipe.mOutputs) { if (aStack == tStack.item) { - if (ItemList.Display_Fluid.isStackEqual(tStack.item, true, true) && ((FixedPositionedStack) tStack).mChance <= 10000) { + if (ItemList.Display_Fluid.isStackEqual(tStack.item, true, true) && ((FixedPositionedStack) tStack).mChance < 10000) { if (GT_Utility.areStacksEqual(aStack, aInput, true)) { currenttip.add("The amount returned is the remainder after all other outputs."); } @@ -278,7 +290,7 @@ public class GT_NEI_LFTR_Sparging extends TemplateRecipeHandler { tStartIndex = 0; if (tRecipe.mFluidOutputs.length > 0) { if ((tRecipe.mFluidOutputs[0] != null) && (tRecipe.mFluidOutputs[0].getFluid() != null)) { - this.mOutputs.add(new FixedPositionedStack(GT_Utility.getFluidDisplayStack(tRecipe.mFluidOutputs[0], false), 102, 5, tRecipe.getMaxOutput(tStartIndex++))); + this.mOutputs.add(new FixedPositionedStack(GT_Utility.getFluidDisplayStack(tRecipe.mFluidOutputs[0], true), 102, 5, tRecipe.getMaxOutput(tStartIndex++))); } if ((tRecipe.mFluidOutputs.length > 1) && (tRecipe.mFluidOutputs[1] != null) && (tRecipe.mFluidOutputs[1].getFluid() != null)) { this.mOutputs.add(new FixedPositionedStack(GT_Utility.getFluidDisplayStack(tRecipe.mFluidOutputs[1], false), 120, 5, tRecipe.getMaxOutput(tStartIndex++))); diff --git a/src/Java/gtPlusPlus/nei/NEI_GT_Config.java b/src/Java/gtPlusPlus/nei/NEI_GT_Config.java index 8c90926396..671e1db3ac 100644 --- a/src/Java/gtPlusPlus/nei/NEI_GT_Config.java +++ b/src/Java/gtPlusPlus/nei/NEI_GT_Config.java @@ -31,6 +31,7 @@ implements IConfigureNEI { mUniqueRecipeMapHandling.add(GTPP_Recipe_Map.sMultiblockCentrifugeRecipes_GT.mUnlocalizedName); mUniqueRecipeMapHandling.add(GTPP_Recipe_Map.sMultiblockElectrolyzerRecipes_GT.mUnlocalizedName); mUniqueRecipeMapHandling.add(GTPP_Recipe_Map.sMultiblockMixerRecipes_GT.mUnlocalizedName); + mUniqueRecipeMapHandling.add(GTPP_Recipe_Map.sSpargeTowerRecipes.mUnlocalizedName); // Standard GT Recipe Maps Logger.INFO("NEI Registration: "+GTPP_Recipe_Map_Internal.sMappingsEx.size()+" sMappingEx"); @@ -69,6 +70,8 @@ implements IConfigureNEI { new GT_NEI_MultiNoCell(GTPP_Recipe_Map.sMultiblockElectrolyzerRecipes_GT); Logger.INFO("NEI Registration: Registering NEI handler for "+GTPP_Recipe_Map.sMultiblockMixerRecipes_GT.mNEIName); new GT_NEI_MultiNoCell(GTPP_Recipe_Map.sMultiblockMixerRecipes_GT); + Logger.INFO("NEI Registration: Registering NEI handler for "+GTPP_Recipe_Map.sSpargeTowerRecipes.mNEIName); + new GT_NEI_MultiNoCell(GTPP_Recipe_Map.sSpargeTowerRecipes); Logger.INFO("NEI Registration: Registering NEI handler for "+DecayableRecipeHandler.mNEIName); API.registerRecipeHandler(new DecayableRecipeHandler()); diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java b/src/Java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java index 30ab7fc19f..bd0f11f0ad 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java @@ -398,6 +398,11 @@ public enum GregtechItemList implements GregtechItemContainer { Controller_Flotation_Cell, Casing_Flotation_Cell, + // Sparge Tower + Controller_Sparge_Tower, + Casing_Sparge_Tower_Exterior, + Casing_Sparge_Tower_Interior, + // Elemental Duplicator /*Controller_ElementalDuplicator,*/ Casing_ElementalDuplicator, diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/interfaces/internal/IGregtech_RecipeAdder.java b/src/Java/gtPlusPlus/xmod/gregtech/api/interfaces/internal/IGregtech_RecipeAdder.java index d7bb6324a0..12b4997772 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/api/interfaces/internal/IGregtech_RecipeAdder.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/api/interfaces/internal/IGregtech_RecipeAdder.java @@ -133,16 +133,16 @@ public interface IGregtech_RecipeAdder { public boolean addBlastSmelterRecipe(ItemStack[] aInput, FluidStack aInputFluid, FluidStack aOutput, int aChance, int aDuration, int aEUt, int aSpecialValue); /** - * Adds a Recipe for the Alloy Blast Smelter. (up to 9 Inputs) + * Adds a Recipe for the LFTRr. (up to 9 Inputs) * * @param aInput = ItemStack[] (not null, and respects StackSize) * @param aFluidInput = Input of a fluid (can be null, and respects StackSize) - * @param aFluidOutput = Output of the Molten Metal (not null, and respects StackSize) + * @param aFluidOutput = Output of the Molten Salts (not null, and respects StackSize) * @param aOutputStack = Item Output (Can be null) * @param aChances = Output Chance (can be == 0) * @param aDuration = Duration (must be >= 0) * @param aEUt = EU per tick needed for heating up (must be >= 0) - * @param aSpecialValue = Stores the Required Temp for the Recipe + * @param aSpecialValue = Power produced in EU/t per dynamo * @return true if the Recipe got added, otherwise false. */ public boolean addBlastSmelterRecipe(ItemStack[] aInput, FluidStack aInputFluid, FluidStack aOutput, ItemStack[] aOutputStack, int[] aChance, int aDuration, int aEUt, int aSpecialValue); @@ -175,6 +175,14 @@ public interface IGregtech_RecipeAdder { FluidStack aInput7, FluidStack aInput8, FluidStack aInput9, FluidStack aOutput1, FluidStack aOutput2, int aDuration, int aEUt); + + public boolean addFissionFuel( + boolean aOptimise, + FluidStack aInput1, FluidStack aInput2, FluidStack aInput3, + FluidStack aInput4, FluidStack aInput5, FluidStack aInput6, + FluidStack aInput7, FluidStack aInput8, FluidStack aInput9, + FluidStack aOutput1, FluidStack aOutput2, + int aDuration, int aEUt); public boolean addCyclotronRecipe(ItemStack aInput, FluidStack aFluidInput, ItemStack[] aOutputs, FluidStack aFluidOutput, int[] aChances, int aDuration, int aEUt, int aSpecialValue); diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/GregtechMetaCasingBlocks5.java b/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/GregtechMetaCasingBlocks5.java index 832ee2b56e..4a6bc444c9 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/GregtechMetaCasingBlocks5.java< |
