diff options
author | Martin Robertz <dream-master@gmx.net> | 2021-12-13 22:00:33 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-12-13 22:00:33 +0100 |
commit | 628fe2f0da60e08dcb3a6f900ce8e48278b8e639 (patch) | |
tree | e3f0a65ec0616d0492be2a12b9e20f0fc320b88d /src | |
parent | c2b4f33d9e7b3dbfdb430a33349741eb1e6f2758 (diff) | |
parent | a52711dc135c700b0e72f49330e513523ff49d0f (diff) | |
download | GT5-Unofficial-628fe2f0da60e08dcb3a6f900ce8e48278b8e639.tar.gz GT5-Unofficial-628fe2f0da60e08dcb3a6f900ce8e48278b8e639.tar.bz2 GT5-Unofficial-628fe2f0da60e08dcb3a6f900ce8e48278b8e639.zip |
Merge pull request #67 from GTNewHorizons/Misc2
Rare Earth Changes + Minor bug fixes
Diffstat (limited to 'src')
17 files changed, 589 insertions, 298 deletions
diff --git a/src/Java/gtPlusPlus/GTplusplus.java b/src/Java/gtPlusPlus/GTplusplus.java index a70ce24e45..9787a38504 100644 --- a/src/Java/gtPlusPlus/GTplusplus.java +++ b/src/Java/gtPlusPlus/GTplusplus.java @@ -512,7 +512,7 @@ public class GTplusplus implements ActionListener { sMissingItemMappings.put("miscutils:Krypton", GameRegistry.findItem(CORE.MODID, "itemCellKrypton")); sMissingItemMappings.put("miscutils:itemCellZirconiumTetrafluoride", GameRegistry.findItem(CORE.MODID, "ZirconiumTetrafluoride")); sMissingItemMappings.put("miscutils:Li2BeF4", GameRegistry.findItem(CORE.MODID, "itemCellLithiumTetrafluoroberyllate")); - + // Cryolite sMissingBlockMappings.put("miscutils:oreCryolite", GameRegistry.findBlock(CORE.MODID, "oreCryoliteF")); sMissingItemMappings.put("miscutils:itemDustTinyCryolite", GameRegistry.findItem(CORE.MODID, "itemDustTinyCryoliteF")); @@ -524,6 +524,18 @@ public class GTplusplus implements ActionListener { sMissingItemMappings.put("miscutils:crushedPurifiedCryolite", GameRegistry.findItem(CORE.MODID, "crushedPurifiedCryoliteF")); sMissingItemMappings.put("miscutils:crushedCentrifugedCryolite", GameRegistry.findItem(CORE.MODID, "crushedCentrifugedCryoliteF")); sMissingItemMappings.put("miscutils:oreCryolite", GameRegistry.findItem(CORE.MODID, "oreCryoliteF")); + + // Fluorite + sMissingBlockMappings.put("miscutils:oreFluorite", GameRegistry.findBlock(CORE.MODID, "oreFluoriteF")); + sMissingItemMappings.put("miscutils:itemDustTinyFluorite", GameRegistry.findItem(CORE.MODID, "itemDustTinyFluoriteF")); + sMissingItemMappings.put("miscutils:itemDustSmallFluorite", GameRegistry.findItem(CORE.MODID, "itemDustSmallFluoriteF")); + sMissingItemMappings.put("miscutils:itemDustFluorite", GameRegistry.findItem(CORE.MODID, "itemDustFluoriteF")); + sMissingItemMappings.put("miscutils:dustPureFluorite", GameRegistry.findItem(CORE.MODID, "dustPureFluoriteF")); + sMissingItemMappings.put("miscutils:dustImpureFluorite", GameRegistry.findItem(CORE.MODID, "dustImpureFluoriteF")); + sMissingItemMappings.put("miscutils:crushedFluorite", GameRegistry.findItem(CORE.MODID, "crushedFluoriteF")); + sMissingItemMappings.put("miscutils:crushedPurifiedFluorite", GameRegistry.findItem(CORE.MODID, "crushedPurifiedFluoriteF")); + sMissingItemMappings.put("miscutils:crushedCentrifugedFluorite", GameRegistry.findItem(CORE.MODID, "crushedCentrifugedFluoriteF")); + sMissingItemMappings.put("miscutils:oreFluorite", GameRegistry.findItem(CORE.MODID, "oreFluoriteF")); } @Mod.EventHandler diff --git a/src/Java/gtPlusPlus/core/handler/events/GeneralTooltipEventHandler.java b/src/Java/gtPlusPlus/core/handler/events/GeneralTooltipEventHandler.java index fda7760607..10dea8a7bf 100644 --- a/src/Java/gtPlusPlus/core/handler/events/GeneralTooltipEventHandler.java +++ b/src/Java/gtPlusPlus/core/handler/events/GeneralTooltipEventHandler.java @@ -6,8 +6,10 @@ import gtPlusPlus.GTplusplus; import gtPlusPlus.GTplusplus.INIT_PHASE; import gtPlusPlus.core.block.ModBlocks; import gtPlusPlus.core.lib.CORE; +import gtPlusPlus.core.util.math.MathUtils; import gtPlusPlus.core.util.minecraft.ItemUtils; import gtPlusPlus.core.util.sys.KeyboardUtils; +import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList; import net.minecraft.block.Block; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; @@ -22,7 +24,7 @@ public class GeneralTooltipEventHandler { @SubscribeEvent public void onItemTooltip(ItemTooltipEvent event){ - + if (GTplusplus.CURRENT_LOAD_PHASE != INIT_PHASE.STARTED && GTplusplus.CURRENT_LOAD_PHASE != INIT_PHASE.SERVER_START) { return; } @@ -68,8 +70,16 @@ public class GeneralTooltipEventHandler { event.toolTip.add(EnumChatFormatting.GOLD+"Capacity: "+EnumChatFormatting.AQUA+"128000L"); } } - - + + // Custom Flasks + + if (GregtechItemList.VOLUMETRIC_FLASK_8k.hasBeenSet() && event.itemStack.getItem() == GregtechItemList.VOLUMETRIC_FLASK_8k.getItem()) { + event.toolTip.add("Max Capacity: "+MathUtils.formatNumbers(8000)+"L"); + } + if (GregtechItemList.VOLUMETRIC_FLASK_32k.hasBeenSet() && event.itemStack.getItem() == GregtechItemList.VOLUMETRIC_FLASK_32k.getItem()) { + event.toolTip.add("Max Capacity: "+MathUtils.formatNumbers(32000)+"L"); + } + if (CORE.ConfigSwitches.enableAnimatedTurbines) { boolean shift = false; diff --git a/src/Java/gtPlusPlus/core/item/ModItems.java b/src/Java/gtPlusPlus/core/item/ModItems.java index 4c6f0dc712..47278c559d 100644 --- a/src/Java/gtPlusPlus/core/item/ModItems.java +++ b/src/Java/gtPlusPlus/core/item/ModItems.java @@ -523,6 +523,9 @@ public final class ModItems { MaterialGenerator.generateNuclearMaterial(ELEMENT.getInstance().POLONIUM210, false); MaterialGenerator.generateNuclearMaterial(ELEMENT.getInstance().AMERICIUM241, false); + if (!CORE.GTNH) { + MaterialGenerator.generateOreMaterialWithAllExcessComponents(ELEMENT.getInstance().TRINIUM); + } //Custom Materials that will have standalone refinery processes MaterialGenerator.generate(ELEMENT.STANDALONE.ADVANCED_NITINOL, false); @@ -534,8 +537,8 @@ public final class ModItems { //Custom Materials that are from Runescape MaterialGenerator.generate(ELEMENT.STANDALONE.BLACK_METAL); MaterialGenerator.generate(ELEMENT.STANDALONE.WHITE_METAL); - MaterialGenerator.generate(ELEMENT.STANDALONE.GRANITE, false, false); - MaterialGenerator.generate(ELEMENT.STANDALONE.RUNITE, false); + MaterialGenerator.generateOreMaterialWithAllExcessComponents(ELEMENT.STANDALONE.GRANITE); + MaterialGenerator.generateOreMaterialWithAllExcessComponents(ELEMENT.STANDALONE.RUNITE); MaterialGenerator.generate(ELEMENT.STANDALONE.DRAGON_METAL, false); MISC_MATERIALS.run(); diff --git a/src/Java/gtPlusPlus/core/item/chemistry/MilledOreProcessing.java b/src/Java/gtPlusPlus/core/item/chemistry/MilledOreProcessing.java index dfc85c533b..8dd2cd1187 100644 --- a/src/Java/gtPlusPlus/core/item/chemistry/MilledOreProcessing.java +++ b/src/Java/gtPlusPlus/core/item/chemistry/MilledOreProcessing.java @@ -243,10 +243,10 @@ public class MilledOreProcessing extends ItemPackage { //milledMonazite TODO registerOreDataForMilledType( MonaziteFlotationFroth, - ELEMENT.getInstance().ERBIUM, 96, - ELEMENT.getInstance().LANTHANUM, 96, - ELEMENT.getInstance().PRASEODYMIUM, 96, - ELEMENT.getInstance().EUROPIUM, 32 + ELEMENT.getInstance().ERBIUM, 64, + ELEMENT.getInstance().LANTHANUM, 32, + ELEMENT.getInstance().LUTETIUM, 16, + ELEMENT.getInstance().EUROPIUM, 8 ); diff --git a/src/Java/gtPlusPlus/core/material/MISC_MATERIALS.java b/src/Java/gtPlusPlus/core/material/MISC_MATERIALS.java index aaee1cc790..0b93e7dd9c 100644 --- a/src/Java/gtPlusPlus/core/material/MISC_MATERIALS.java +++ b/src/Java/gtPlusPlus/core/material/MISC_MATERIALS.java @@ -138,8 +138,8 @@ public final class MISC_MATERIALS { new MaterialStack(MaterialUtils.generateMaterialFromGtENUM(Materials.NetherQuartz), 1), new MaterialStack(MaterialUtils.generateMaterialFromGtENUM(Materials.Galena), 1), new MaterialStack(MaterialUtils.generateMaterialFromGtENUM(Materials.Chalcopyrite), 1), - new MaterialStack(MaterialUtils.generateMaterialFromGtENUM(Materials.Cobaltite), 1), - new MaterialStack(ELEMENT.STANDALONE.GRANITE, 1) + new MaterialStack(ORES.CRYOLITE, 1), + new MaterialStack(ELEMENT.getInstance().YTTRIUM, 1) }); public static final Material RARE_EARTH_MID = new Material( diff --git a/src/Java/gtPlusPlus/core/material/MaterialGenerator.java b/src/Java/gtPlusPlus/core/material/MaterialGenerator.java index 8425ed89be..d1ea784b81 100644 --- a/src/Java/gtPlusPlus/core/material/MaterialGenerator.java +++ b/src/Java/gtPlusPlus/core/material/MaterialGenerator.java @@ -46,6 +46,7 @@ import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_DustGeneration; import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_Extruder; import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_FluidCanning; import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_Fluids; +import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_Fluorite; import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_MaterialProcessing; import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_MetalRecipe; import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_Ore; @@ -397,13 +398,67 @@ public class MaterialGenerator { temp = new BaseItemPurifiedDust(matInfo); Logger.MATERIALS("Generated all ore components for "+matInfo.getLocalizedName()+", now generating processing recipes."); - new RecipeGen_Ore(matInfo); + + if (matInfo == FLUORIDES.FLUORITE){ + new RecipeGen_Fluorite(matInfo); + } + else { + new RecipeGen_Ore(matInfo); + } } catch (final Throwable t){ Logger.MATERIALS("[Error] "+(matInfo != null ? matInfo.getLocalizedName() : "Null Material")+" failed to generate."); t.printStackTrace(); } } + + public static boolean generateOreMaterialWithAllExcessComponents(final Material matInfo){ + try { + if (matInfo == null){ + Logger.DEBUG_MATERIALS("Invalid Material while constructing null material."); + return false; + } + final short[] C = matInfo.getRGBA(); + final Integer Colour = Utils.rgbtoHexValue(C[0], C[1], C[2]); + + tempBlock = new BlockBaseOre(matInfo, BlockTypes.ORE, Colour.intValue()); + tempBlock = new BlockBaseModular(matInfo,BlockTypes.STANDARD); + temp = new BaseItemIngot(matInfo); + temp = new BaseItemDust(matInfo); + temp = new BaseItemNugget(matInfo); + temp = new BaseItemPlate(matInfo); + temp = new BaseItemPlateDouble(matInfo); + + + temp = new BaseItemCrushedOre(matInfo); + temp = new BaseItemCentrifugedCrushedOre(matInfo); + temp = new BaseItemPurifiedCrushedOre(matInfo); + temp = new BaseItemImpureDust(matInfo); + temp = new BaseItemPurifiedDust(matInfo); + + Logger.MATERIALS("Generated all ore & base components for "+matInfo.getLocalizedName()+", now generating processing recipes."); + + new RecipeGen_Ore(matInfo, true); + new RecipeGen_AlloySmelter(matInfo); + new RecipeGen_Assembler(matInfo); + new RecipeGen_BlastSmelter(matInfo); + new RecipeGen_MetalRecipe(matInfo); + new RecipeGen_Extruder(matInfo); + new RecipeGen_Fluids(matInfo); + new RecipeGen_Plates(matInfo); + new RecipeGen_ShapedCrafting(matInfo); + new RecipeGen_MaterialProcessing(matInfo); + new RecipeGen_DustGeneration(matInfo); + new RecipeGen_Recycling(matInfo); + return true; + } + catch (final Throwable t){ + Logger.MATERIALS(""+matInfo.getLocalizedName()+" failed to generate."); + t.printStackTrace(); + return false; + } + + } } diff --git a/src/Java/gtPlusPlus/core/material/nuclear/FLUORIDES.java b/src/Java/gtPlusPlus/core/material/nuclear/FLUORIDES.java index 5872587872..d5c6e4a6bf 100644 --- a/src/Java/gtPlusPlus/core/material/nuclear/FLUORIDES.java +++ b/src/Java/gtPlusPlus/core/material/nuclear/FLUORIDES.java @@ -10,7 +10,7 @@ import gtPlusPlus.core.material.state.MaterialState; public class FLUORIDES { public static final Material FLUORITE = new Material( - "Fluorite", //Material Name + "Fluorite (F)", //Material Name MaterialState.ORE, //State null, //Material Colour Materials.Fluorine.mMeltingPoint, //Melting Point in C diff --git a/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java b/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java index 5156b938db..3d0e6aebfd 100644 --- a/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java +++ b/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java @@ -390,6 +390,28 @@ public class RECIPES_GREGTECH { 20 * 20, MaterialUtils.getVoltageForTier(aBotmiumTier-2), 6); + + + //Refine GT HF into GT++ HF + if (FluidUtils.doesHydrofluoricAcidGtExist()) { + CORE.RA.addChemicalPlantRecipe( + new ItemStack[] { + CI.getNumberedAdvancedCircuit(22), + }, + new FluidStack[] { + FluidUtils.getHydrofluoricAcid(2000), + FluidUtils.getHydrofluoricAcidGT(5000) + }, + new ItemStack[] { + + }, + new FluidStack[] { + FluidUtils.getHydrofluoricAcid(6000) + }, + 30 * 20, + 480, + 3); + } } @@ -1268,30 +1290,6 @@ public class RECIPES_GREGTECH { 2 * 20, 500); // EU - // CaF2 + H2SO4 → CaSO4(solid) + 2 HF - FluidStack aGregtechHydro = FluidUtils.getFluidStack("hydrofluoricacid_gt5u", 16000); - if (aGregtechHydro == null) { - aGregtechHydro = FluidUtils.getFluidStack("hydrofluoricacid", 16000); - } - - CORE.RA.addDehydratorRecipe( - new ItemStack[] { - CI.getNumberedAdvancedCircuit(5), - ItemUtils.getItemStackOfAmountFromOreDict("dustFluorite", 37), - }, - FluidUtils.getFluidStack("sulfuricacid", 56 * 144), - aGregtechHydro, // Fluid output (slot 2) - new ItemStack[] { - ItemUtils.getItemStackOfAmountFromOreDict("dustCalciumSulfate", 30), - ItemUtils.getItemStackOfAmountFromOreDict("dustSilver", 1), - ItemUtils.getItemStackOfAmountFromOreDict("dustGold", 2), - ItemUtils.getItemStackOfAmountFromOreDict("dustTin", 1), - ItemUtils.getItemStackOfAmountFromOreDict("dustCopper", 2) - }, - new int[] { 10000, 100, 100, 300, 200 }, - 10 * 60 * 20, - 230); // EU - CORE.RA.addDehydratorRecipe( new ItemStack[] { @@ -1662,19 +1660,35 @@ public class RECIPES_GREGTECH { * so if you dissolve aparite in sulphuric acid you'll get a mixture of * SO2, H2O, HF and HCl */ - final FluidStack[] apatiteOutput = { FluidUtils.getFluidStack("sulfurousacid", 3800), - FluidUtils.getFluidStack("hydrogenchloride", 1000), FluidUtils.getFluidStack("hydrofluoricacid", 400) }; - GT_Values.RA.addDistillationTowerRecipe(FluidUtils.getFluidStack("sulfuricapatite", 5200), apatiteOutput, null, - 45 * 20, 256); + final FluidStack[] apatiteOutput = { + FluidUtils.getFluidStack("sulfurousacid", 3800), + FluidUtils.getFluidStack("hydrogenchloride", 1000), + FluidUtils.getFluidStack("hydrofluoricacid", 400) }; + GT_Values.RA.addDistillationTowerRecipe( + FluidUtils.getFluidStack("sulfuricapatite", 5200), + apatiteOutput, null, + 45 * 20, + 120); - final FluidStack[] sulfurousacidOutput = { FluidUtils.getFluidStack("sulfurdioxide", 500), + final FluidStack[] sulfurousacidOutput = { + FluidUtils.getFluidStack("sulfurdioxide", 500), FluidUtils.getFluidStack("water", 500) }; - GT_Values.RA.addDistillationTowerRecipe(FluidUtils.getFluidStack("sulfurousacid", 1000), sulfurousacidOutput, - null, 10 * 20, 60); + GT_Values.RA.addDistillationTowerRecipe( + FluidUtils.getFluidStack("sulfurousacid", 1000), + sulfurousacidOutput, + null, + 10 * 20, + 60); - final FluidStack[] sulfurdioxideOutput = { FluidUtils.getFluidStack("oxygen", 144 * 2) }; - GT_Values.RA.addDistillationTowerRecipe(FluidUtils.getFluidStack("sulfurdioxide", 144 * 3), sulfurdioxideOutput, - ItemUtils.getItemStackOfAmountFromOreDict("dustSulfur", 1), 5 * 20, 30); + final FluidStack[] sulfurdioxideOutput = { + FluidUtils.getFluidStack("oxygen", 2000) + }; + GT_Values.RA.addDistillationTowerRecipe( + FluidUtils.getFluidStack("sulfurdioxide", 144 * 3), + sulfurdioxideOutput, + ItemUtils.getItemStackOfAmountFromOreDict("dustSulfur", 1), + 5 * 20, + 30); } private static void addFuels() { @@ -1735,16 +1749,6 @@ public class RECIPES_GREGTECH { } private static void chemicalBathRecipes() { - - GT_Values.RA.addChemicalBathRecipe( - FLUORIDES.FLUORITE.getCrushed(2), - FluidUtils.getFluidStack("hydrogen", 2000), - FLUORIDES.FLUORITE.getCrushedPurified(8), - FLUORIDES.FLUORITE.getDustImpure(4), - FLUORIDES.FLUORITE.getDustPurified(2), - new int[] { 10000, 5000, 1000 }, - 30 * 20, - 240); } @@ -1787,25 +1791,13 @@ public class RECIPES_GREGTECH { 10 * 20); GT_Values.RA.addChemicalRecipe( - ItemUtils.getItemStackOfAmountFromOreDict("dustApatite", 16), - null, - FluidUtils.getFluidStack("sulfuricacid", 144 * 32), - FluidUtils.getFluidStack("sulfuricapatite", 144 * 8), - ItemUtils.getItemStackOfAmountFromOreDict("dustSmallSulfur", 1), + CI.getNumberedAdvancedCircuit(21), + ItemUtils.getItemStackOfAmountFromOreDict("dustApatite", 32), + FluidUtils.getFluidStack("sulfuricacid", 4000), + FluidUtils.getFluidStack("sulfuricapatite", 8000), + ItemUtils.getItemStackOfAmountFromOreDict("dustSmallSulfur", 8), 20 * 20); - ItemStack temp_GT5u_SA = ItemUtils.getItemStackOfAmountFromOreDictNoBroken("cellHydrofluoricAcid_GT5U", 5); - if (temp_GT5u_SA != null) { - //Refine GT HF into GT++ HF - GT_Values.RA.addChemicalRecipe( - ItemUtils.getItemStackOfAmountFromOreDict("cellHydrofluoricAcid", 2), - temp_GT5u_SA, - null, // Fluid Input - FluidUtils.getFluidStack("hydrofluoricacid", 6000), // Fluid Output - CI.emptyCells(7), - 2 * 20); - } - } private static void blastFurnaceRecipes() { diff --git a/src/Java/gtPlusPlus/core/recipe/RECIPES_RareEarthProcessing.java b/src/Java/gtPlusPlus/core/recipe/RECIPES_RareEarthProcessing.java index 97636e9e65..864d0bcca8 100644 --- a/src/Java/gtPlusPlus/core/recipe/RECIPES_RareEarthProcessing.java +++ b/src/Java/gtPlusPlus/core/recipe/RECIPES_RareEarthProcessing.java @@ -168,34 +168,47 @@ public class RECIPES_RareEarthProcessing { GT_Values.RA.addChemicalBathRecipe( ItemUtils.getSimpleStack(aRareEarth, 3), FluidUtils.getFluidStack(aSulfuric, 1000), - RARE_EARTH_LOW.getCrushed(1), - RARE_EARTH_LOW.getCrushed(1), - RARE_EARTH_LOW.getCrushed(1), - new int[] {10000, 10000, 9000}, + RARE_EARTH_LOW.getCrushed(2), + RARE_EARTH_LOW.getCrushed(2), + RARE_EARTH_LOW.getCrushed(2), + new int[] {10000, 10000, 10000}, 20 * 30, - (int) GT_Values.V[1]); + MaterialUtils.getVoltageForTier(1)); // HV Rare Earth GT_Values.RA.addChemicalBathRecipe( ItemUtils.getSimpleStack(aRareEarth, 6), - FluidUtils.getFluidStack(aHydrocholric, 3000), - RARE_EARTH_MID.getCrushed(2), - RARE_EARTH_MID.getCrushed(2), - RARE_EARTH_MID.getCrushed(2), + FluidUtils.getFluidStack(aHydrocholric, 2000), + RARE_EARTH_MID.getCrushed(4), + RARE_EARTH_MID.getCrushed(4), + RARE_EARTH_MID.getCrushed(4), new int[] {10000, 9000, 8000}, - 20 * 60, - (int) GT_Values.V[3]); + 20 * 30, + MaterialUtils.getVoltageForTier(3)); // IV Rare Earth GT_Values.RA.addChemicalBathRecipe( ItemUtils.getSimpleStack(aRareEarth, 9), - FluidUtils.getFluidStack(aNitric, 6000), - RARE_EARTH_HIGH.getCrushed(3), - RARE_EARTH_HIGH.getCrushed(3), - RARE_EARTH_HIGH.getCrushed(3), - new int[] {9000, 8000, 7000}, - 20 * 90, - (int) GT_Values.V[5]); + FluidUtils.getHydrofluoricAcid(3000), + RARE_EARTH_HIGH.getCrushed(6), + RARE_EARTH_HIGH.getCrushed(6), + RARE_EARTH_HIGH.getCrushed(6), + new int[] {10000, 9000, 8000}, + 20 * 30, + MaterialUtils.getVoltageForTier(5)); + + if (FluidUtils.doesHydrofluoricAcidGtExist()) { + // IV Rare Earth + GT_Values.RA.addChemicalBathRecipe( + ItemUtils.getSimpleStack(aRareEarth, 9), + FluidUtils.getHydrofluoricAcidGT(6000), + RARE_EARTH_HIGH.getCrushed(6), + RARE_EARTH_HIGH.getCrushed(6), + RARE_EARTH_HIGH.getCrushed(6), + new int[] {9000, 8000, 7000}, + 20 * 30, + MaterialUtils.getVoltageForTier(5)); + } } diff --git a/src/Java/gtPlusPlus/core/util/minecraft/FluidUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/FluidUtils.java index a6bd50ff17..73fa919731 100644 --- a/src/Java/gtPlusPlus/core/util/minecraft/FluidUtils.java +++ b/src/Java/gtPlusPlus/core/util/minecraft/FluidUtils.java @@ -1,5 +1,7 @@ package gtPlusPlus.core.util.minecraft; +import java.util.HashMap; + import gregtech.api.enums.Dyes; import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; @@ -24,7 +26,9 @@ import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.IFluidContainerItem; public class FluidUtils { - + + private static HashMap<String, Fluid> sFluidCache = new HashMap<String, Fluid>(); + public static FluidStack getWater(final int amount){ return FluidUtils.getFluidStack("water", amount); } @@ -87,44 +91,67 @@ public class FluidUtils { return FluidUtils.getFluidStack("ic2uumatter", amount); } - public static FluidStack getFluidStack(final String fluidName, final int amount){ - Logger.WARNING("Trying to get a fluid stack of "+fluidName); - try { - FluidStack x = FluidRegistry.getFluidStack(fluidName, amount); - return x != null ? x.copy() : null; + public static FluidStack getHydrofluoricAcid(int amount) { + return FluidUtils.getFluidStack("hydrofluoricacid", amount); + } + + public static Fluid sGregtechHydrofluoricAcid = null; + + public static FluidStack getHydrofluoricAcidGT(int amount) { + if (sGregtechHydrofluoricAcid == null) { + FluidStack aGTHF = FluidUtils.getFluidStack("hydrofluoricacid_gt5u", 1); + sGregtechHydrofluoricAcid = aGTHF != null ? aGTHF.getFluid() : getHydrofluoricAcid(1).getFluid(); } - catch (final Throwable e){ - return null; + return FluidUtils.getFluidStack(sGregtechHydrofluoricAcid, amount); + } + + public static boolean doesHydrofluoricAcidGtExist() { + if (sGregtechHydrofluoricAcid == null) { + getHydrofluoricAcidGT(1); } - + return sGregtechHydrofluoricAcid != null && sGregtechHydrofluoricAcid != getHydrofluoricAcid(1).getFluid(); } - - public static FluidStack getFluidStack(final FluidStack vmoltenFluid, final int fluidAmount) { - Logger.WARNING("Trying to get a fluid stack of "+vmoltenFluid.getFluid().getName()); - try { - FluidStack x = FluidRegistry.getFluidStack(vmoltenFluid.getFluid().getName(), fluidAmount); - return x != null ? x.copy() : null; + + private static FluidStack createFluidStack(Fluid aFluid, int aAmount) { + if (aFluid != null) { + return new FluidStack(aFluid, aAmount); } - catch (final Throwable e){ - return null; + return null; + } + + public static FluidStack getFluidStack(final String aFluidName, final int aAmount){ + Fluid aFluid = sFluidCache.get(aFluidName); + if (aFluid != null) { + return createFluidStack(aFluid, aAmount); } + else { + Fluid aLookupFluid = FluidRegistry.getFluid(aFluidName); + if (aLookupFluid != null) { + sFluidCache.put(aFluidName, aLookupFluid); + return createFluidStack(aLookupFluid, aAmount); + } + } + return null; } - public static FluidStack getFluidStack(final Fluid vFluid, final int fluidAmount) { - Logger.WARNING("Trying to get a fluid stack of "+vFluid.getName()); - try { - FluidStack x = FluidRegistry.getFluidStack(vFluid.getName(), fluidAmount); - return x != null ? x.copy() : null; + public static FluidStack getFluidStack(final FluidStack aFluidStack, final int aAmount) { + if (aFluidStack == null) { + return null; } - catch (final Throwable e){ + return new FluidStack(aFluidStack, aAmount); + } + + public static FluidStack getFluidStack(final Fluid aFluid, final int aAmount) { + if (aFluid == null) { return null; } + return new FluidStack(aFluid, aAmount); } public static FluidStack[] getFluidStackArray(final String fluidName, final int amount){ Logger.WARNING("Trying to get a fluid stack of "+fluidName); try { - final FluidStack[] singleFluid = {FluidRegistry.getFluidStack(fluidName, amount)}; + final FluidStack[] singleFluid = {getFluidStack(fluidName, amount)}; return singleFluid; } catch (final Throwable e){ @@ -136,7 +163,7 @@ public class FluidUtils { public static FluidStack[] getFluidStackArray(final FluidStack fluidName, final int amount){ Logger.WARNING("Trying to get a fluid stack of "+fluidName); try { - final FluidStack[] singleFluid = {FluidRegistry.getFluidStack(fluidName.getLocalizedName(), amount)}; + final FluidStack[] singleFluid = {getFluidStack(fluidName, amount)}; return singleFluid; } catch (final Throwable e){ diff --git a/src/Java/gtPlusPlus/everglades/GTplusplus_Everglades.java b/src/Java/gtPlusPlus/everglades/GTplusplus_Everglades.java index 0709f0b1ff..ef8aa080c2 100644 --- a/src/Java/gtPlusPlus/everglades/GTplusplus_Everglades.java +++ b/src/Java/gtPlusPlus/everglades/GTplusplus_Everglades.java @@ -126,36 +126,6 @@ public class GTplusplus_Everglades implements ActionListener { if (LoadedMods.Big_Reactors) { MaterialGenerator.generateOreMaterial(ELEMENT.getInstance().YELLORIUM, false, false, true, new short[] {255, 242, 10}); } - - if (!CORE.GTNH) { - MaterialGenerator.generateOreMaterial( - ELEMENT.getInstance().TRINIUM, - true, - false, - false, - ELEMENT.getInstance().TRINIUM_REFINED.getRGBA()); - } - - - - /* - * OSRS Materials - */ - - MaterialGenerator.generateOreMaterial( - ELEMENT.STANDALONE.GRANITE, - true, - false, - false, - ELEMENT.STANDALONE.GRANITE.getRGBA()); - MaterialGenerator.generateOreMaterial( - ELEMENT.STANDALONE.RUNITE, - true, - false, - false, - ELEMENT.STANDALONE.RUNITE.getRGBA()); - - } diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_AirIntake.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_AirIntake.java index e6fd5dc797..5fb3b11d08 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_AirIntake.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_AirIntake.java @@ -1,30 +1,30 @@ package gtPlusPlus.xmod.gregtech.api.metatileentity.implementations; -import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.fluids.Fluid; -import net.minecraftforge.fluids.FluidStack; -import net.minecraft.world.World; -import net.minecraft.item.ItemStack; +import java.lang.reflect.Field; +import gregtech.api.enums.Textures; +import gregtech.api.interfaces.IIconContainer; +import gregtech.api.interfaces.ITexture; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.metatileentity.MetaTileEntity; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Input; +import gregtech.api.objects.GT_RenderedTexture; import gtPlusPlus.api.objects.random.XSTR; import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.util.minecraft.FluidUtils; import gtPlusPlus.core.util.reflect.ReflectionUtils; - -import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Input; -import gregtech.api.interfaces.tileentity.IGregTechTileEntity; - -import java.lang.reflect.Field; - import net.minecraft.entity.player.EntityPlayer; -import gregtech.api.interfaces.IIconContainer; -import gregtech.api.objects.GT_RenderedTexture; -import gregtech.api.enums.Textures; -import gregtech.api.interfaces.ITexture; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidStack; public class GT_MetaTileEntity_Hatch_AirIntake extends GT_MetaTileEntity_Hatch_Input { + private static XSTR floatGen; + public int mProgresstime = 0, mMaxProgresstime = 0; public GT_MetaTileEntity_Hatch_AirIntake(final int aID, final String aName, final String aNameRegional, final int aTier) { @@ -127,17 +127,42 @@ public class GT_MetaTileEntity_Hatch_AirIntake extends GT_MetaTileEntity_Hatch_I public void onPostTick(final IGregTechTileEntity aBaseMetaTileEntity, final long aTick) { super.onPostTick(aBaseMetaTileEntity, aTick); - if (this.getBaseMetaTileEntity().isActive() && addAirToHatch(aTick)) { - if (aTick % 8 == 0) { - if (aBaseMetaTileEntity.isClientSide()) { - this.pollutionParticles(this.getBaseMetaTileEntity().getWorld(), "cloud"); - } + + if (!aBaseMetaTileEntity.isAllowedToWork()) { + aBaseMetaTileEntity.setActive(false); + mProgresstime = 0; + mMaxProgresstime = 0; + } + else { + aBaseMetaTileEntity.setActive(true); + mMaxProgresstime = 4; + if (++mProgresstime >= mMaxProgresstime) { + addAirToHatch(aTick); + mProgresstime = 0; } - } + } } + + @Override + public int getProgresstime() { + return mProgresstime; + } + + @Override + public int maxProgresstime() { + return mMaxProgresstime; + } + + @Override + public int increaseProgress(int aProgress) { + mProgresstime += aProgress; + return mMaxProgresstime - mProgresstime; + } public void pollutionParticles(final World aWorld, final String name) { - + if (this.getBaseMetaTileEntity().isServerSide()) { + return; + } final float ran1 = GT_MetaTileEntity_Hatch_AirIntake.floatGen.nextFloat(); float ran2 = 0.0f; float ran3 = 0.0f; @@ -159,14 +184,13 @@ public class GT_MetaTileEntity_Hatch_AirIntake extends GT_MetaTileEntity_Hatch_I zSpd = (float) Math.cos(temp) * 0.1f; ySpd = -ySpd; yPos = yPos - 0.8f; - } else { + } + else { xSpd = aDir.offsetX * (0.1f + 0.2f * GT_MetaTileEntity_Hatch_AirIntake.floatGen.nextFloat()); zSpd = aDir.offsetZ * (0.1f + 0.2f * GT_MetaTileEntity_Hatch_AirIntake.floatGen.nextFloat()); xSpd = -xSpd; zSpd = -zSpd; - - } aWorld.spawnParticle(name, (double) (xPos + ran1 * 0.5f), @@ -210,49 +234,24 @@ public class GT_MetaTileEntity_Hatch_AirIntake extends GT_MetaTileEntity_Hatch_I if (AIR == this.mFluid.getFluid()) { return true; } - else return false; } - return true; + return false; } public boolean addAirToHatch(long aTick) { if (!this.getBaseMetaTileEntity().getAirAtSide(this.getBaseMetaTileEntity().getFrontFacing())) { return false; } - boolean a1 = canTankBeFilled(); - if (aTick % 4 != 0 && a1) { - return true; - } - else if (aTick % 4 != 0 && !a1) { - return false; + boolean didFill = this.fill(FluidUtils.getAir(1000), true) > 0; + if (didFill) { + this.pollutionParticles(this.getBaseMetaTileEntity().getWorld(), "cloud"); } - else { - if (!isAirInHatch()) { - return false; - } - if (this.mFluid != null && a1) { - this.mFluid.amount += 1000; - return true; - } - else if (this.mFluid != null && !a1) { - return false; - } - else { - if (this.mFluid == null) { - this.mFluid = FluidUtils.getFluidStack("air", 1000); - return true; - } - else { - //Not sure how any other fluid got in here - return false; - } - } - } + return didFill; } @Override public boolean canTankBeFilled() { - if (this.mFluid == null || (this.mFluid != null && ((this.mFluid.amount+1000) <= this.getCapacity()))) { + if (this.mFluid == null || (this.mFluid != null && (this.mFluid.amount <= this.getCapacity()))) { return true; } return false; @@ -265,12 +264,12 @@ public class GT_MetaTileEntity_Hatch_AirIntake extends GT_MetaTileEntity_Hatch_I @Override public boolean doesFillContainers() { - return false; + return true; } @Override public int fill(FluidStack aFluid, boolean doFill) { - return 0; + return super.fill(aFluid, doFill); } @Override @@ -287,4 +286,18 @@ public class GT_MetaTileEntity_Hatch_AirIntake extends GT_MetaTileEntity_Hatch_I public int fill_default(ForgeDirection aSide, FluidStack aFluid, boolean doFill) { return 0; } + + @Override + public void saveNBTData(NBTTagCompound aNBT) { + aNBT.setInteger("mProgresstime", mProgresstime); + aNBT.setInteger("mMaxProgresstime", mMaxProgresstime); + super.saveNBTData(aNBT); + } + + @Override + public void loadNBTData(NBTTagCompound aNBT) { + mProgresstime = aNBT.getInteger("mProgresstime"); + mMaxProgresstime = aNBT.getInteger("mMaxProgresstime"); + super.loadNBTData(aNBT); + } } diff --git a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Fluorite.java b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Fluorite.java new file mode 100644 index 0000000000..b285d41652 --- /dev/null +++ b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Fluorite.java @@ -0,0 +1,224 @@ +package gtPlusPlus.xmod.gregtech.loaders; + +import java.util.HashSet; +import java.util.Set; + +import gregtech.api.enums.GT_Values; +import gregtech.api.util.GT_ModHandler; +import gtPlusPlus.api.interfaces.RunnableWithInfo; +import gtPlusPlus.api.objects.Logger; +import gtPlusPlus.api.objects.data.AutoMap; +import gtPlusPlus.api.objects.data.Pair; +import gtPlusPlus.core.lib.CORE; +import gtPlusPlus.core.material.Material; +import gtPlusPlus.core.material.MaterialGenerator; +import gtPlusPlus.core.material.MaterialStack; +import gtPlusPlus.core.material.nuclear.FLUORIDES; +import gtPlusPlus.core.material.state.MaterialState; +import gtPlusPlus.core.recipe.common.CI; +import gtPlusPlus.core.util.minecraft.FluidUtils; +import gtPlusPlus.core.util.minecraft.ItemUtils; +import gtPlusPlus.core.util.minecraft.MaterialUtils; +import gtPlusPlus.core.util.minecraft.RecipeUtils; +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidStack; + +public class RecipeGen_Fluorite extends RecipeGen_Base { + + public final static Set<RunnableWithInfo<Material>> mRecipeGenMap = new HashSet<RunnableWithInfo<Material>>(); + + static { + MaterialGenerator.mRecipeMapsToGenerate.put(mRecipeGenMap); + } + + public RecipeGen_Fluorite(final Material material){ + this.toGenerate = material; + mRecipeGenMap.add(this); + + + /** + * Shaped Crafting + */ + RecipeUtils.addShapedRecipe( + CI.craftingToolHammer_Hard, null, null, + material.getCrushedPurified(1), null, null, + null, null, null, + material.getDustPurified(1)); + + RecipeUtils.addShapedRecipe( + CI.craftingToolHammer_Hard, null, null, + material.getCrushed(1), null, null, + null, null, null, + material.getDustImpure(1)); + + RecipeUtils.addShapedRecipe( + CI.craftingToolHammer_Hard, null, null, + material.getCrushedCentrifuged(1), null, null, + null, null, null, + material.getDust(1)); + + + + final ItemStack normalDust = material.getDust(1); + final ItemStack smallDust = material.getSmallDust(1); + final ItemStack tinyDust = material.getTinyDust(1); + + if (RecipeUtils.addShapedRecipe( + tinyDust, tinyDust, tinyDust, + tinyDust, tinyDust, tinyDust, + tinyDust, tinyDust, tinyDust, + normalDust)){ + Logger.WARNING("9 Tiny dust to 1 Dust Recipe: "+material.getLocalizedName()+" - Success"); + } + else { + Logger.WARNING("9 Tiny dust to 1 Dust Recipe: "+material.getLocalizedName()+" - Failed"); + } + + if (RecipeUtils.addShapedRecipe( + normalDust, null, null, + null, null, null, + null, null, null, + material.getTinyDust(9))){ + Logger.WARNING("9 Tiny dust from 1 Recipe: "+material.getLocalizedName()+" - Success"); + } + else { + Logger.WARNING("9 Tiny dust from 1 Recipe: "+material.getLocalizedName()+" - Failed"); + } + + if (RecipeUtils.addShapedRecipe( + smallDust, smallDust, null, + smallDust, smallDust, null, + null, null, null, + normalDust)){ + Logger.WARNING("4 Small dust to 1 Dust Recipe: "+material.getLocalizedName()+" - Success"); + } + else { + Logger.WARNING("4 Small dust to 1 Dust Recipe: "+material.getLocalizedName()+" - Failed"); + } + + if (RecipeUtils.addShapedRecipe( + null, normalDust, null, + null, null, null, + null, null, null, + material.getSmallDust(4))){ + Logger.WARNING("4 Small dust from 1 Dust Recipe: "+material.getLocalizedName()+" - Success"); + } + else { + Logger.WARNING("4 Small dust from 1 Dust Recipe: "+material.getLocalizedName()+" - Failed"); + } + } + + @Override + public void run() { + generateRecipes(this.toGenerate); + } + + public static void generateRecipes(final Material material){ + + int tVoltageMultiplier = MaterialUtils.getVoltageForTier(material.vTier); + + final ItemStack dustStone = ItemUtils.getItemStackOfAmountFromOreDict("dustStone", 1); + + + ItemStack tinyDustA = FLUORIDES.FLUORITE.getTinyDust(1); + ItemStack tinyDustB = FLUORIDES.FLUORITE.getTinyDust(1); + ItemStack matDust = FLUORIDES.FLUORITE.getDust(1); + ItemStack matDustA = FLUORIDES.FLUORITE.getDust(1); + + /** + * Package + */ + //Allow ore dusts to be packaged + if (ItemUtils.checkForInvalidItems(material.getSmallDust(1)) && ItemUtils.checkForInvalidItems(material.getTinyDust(1))) { + RecipeGen_DustGeneration.generatePackagerRecipes(material); + } + + + /** + * Macerate + */ + //Macerate ore to Crushed + if (GT_Values.RA.addPulveriserRecipe(material.getOre(1), new ItemStack[]{material.getCrushed(2)}, new int[]{10000}, 20*20, tVoltageMultiplier/2)){ + Logger.MATERIALS("[Macerator] Added Recipe: 'Macerate ore to Crushed ore'"); + } + //Macerate Centrifuged to Pure Dust + if (GT_Values.RA.addPulveriserRecipe(material.getCrushedCentrifuged(1), new ItemStack[]{matDust, matDustA}, new int[]{10000, 1000}, 20*20, tVoltageMultiplier/2)){ + Logger.MATERIALS("[Macerator] Added Recipe: 'Macerate Centrifuged ore to Pure Dust'"); + } + if (GT_ModHandler.addThermalCentrifugeRecipe(material.getCrushedPurified(1), (int) Math.min(5000L, Math.abs(material.getMass() * 20L)), material.getCrushedCentrifuged(1), tinyDustA, dustStone)){ + Logger.MATERIALS("[ThermalCentrifuge] Added Recipe: 'Washed ore to Centrifuged Ore' | Input: "+material.getCrushedPurified(1).getDisplayName()+" | Outputs: "+material.getCrushedCentrifuged(1).getDisplayName()+", "+tinyDustA.getDisplayName()+", "+dustStone.getDisplayName()+"."); + } + + GT_Values.RA.addChemicalBathRecipe( + FLUORIDES.FLUORITE.getCrushed(2), + FluidUtils.getFluidStack("hydrogen", 2000), + FLUORIDES.FLUORITE.getCrushedPurified(8), + FLUORIDES.FLUORITE.getDustImpure(4), + FLUORIDES.FLUORITE.getDustPurified(2), + new int[] { 10000, 5000, 1000 }, + 30 * 20, + 240); + + /** + * Forge Hammer + */ + if (GT_Values.RA.addForgeHammerRecipe(material.getCrushedCentrifuged(1), matDust, 10, tVoltageMultiplier/4)){ + Logger.MATERIALS("[ForgeHammer] Added Recipe: 'Crushed Centrifuged to Pure Dust'"); + } + + /** + * Centrifuge + */ + //Purified Dust to Clean + if (GT_Values.RA.addCentrifugeRecipe( + material.getDustPurified(1), null, + null, //In Fluid + null, //Out Fluid + matDust, tinyDustA,null, + null, null,null, + new int[]{10000, 10000}, //Chances + (int) Math.max(1L, material.getMass() * 8L), //Time + tVoltageMultiplier/2)){ //Eu + Logger.MATERIALS("[Centrifuge] Added Recipe: Purified Dust to Clean Dust"); + } + + //Impure Dust to Clean + if (GT_Values.RA.addCentrifugeRecipe( + material.getDustImpure(1), null, + null, //In Fluid + null, //Out Fluid + matDust, tinyDustB,null, + null, null,null, + new int[]{10000, 10000}, //Chances + (int) Math.max(1L, material.getMass() * 8L), //Time + tVoltageMultiplier/2)){ //Eu + Logger.MATERIALS("[Centrifuge] Added Recipe: Inpure Dust to Clean Dust"); + } + + // CaF2 + H2SO4 → CaSO4(solid) + 2 HF + FluidStack aGregtechHydro = FluidUtils.getFluidStack("hydrofluoricacid_gt5u", 16000); + if (aGregtechHydro == null) { + aGregtechHydro = FluidUtils.getFluidStack("hydrofluoricacid", 16000); + } + + CORE.RA.addDehydratorRecipe( + new ItemStack[] { + CI.getNumberedAdvancedCircuit(5), + FLUORIDES.FLUORITE.getDust(37), + }, + FluidUtils.getFluidStack("sulfuricacid", 8000), + aGregtechHydro, // Fluid output (slot 2) + new ItemStack[] { + ItemUtils.getItemStackOfAmountFromOreDict("dustCalciumSulfate", 15), + ItemUtils.getItemStackOfAmountFromOreDict("dustSilver", 1), + ItemUtils.getItemStackOfAmountFromOreDict("dustGold", 2), + ItemUtils.getItemStackOfAmountFromOreDict("dustTin", 1), + ItemUtils.getItemStackOfAmountFromOreDict("dustCopper", 2) + }, + new int[] { 10000, 1000, 1000, 3000, 2000 }, + 10 * 60 * 20, + 240); // EU + + } + +} diff --git a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_MaterialProcessing.java b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_MaterialProcessing.java index f8108852f4..92d7f73ba4 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_MaterialProcessing.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_MaterialProcessing.java @@ -3,12 +3,7 @@ package gtPlusPlus.xmod.gregtech.loaders; import java.util.HashSet; import java.util.Set; -import net.minecraft.item.ItemStack; - -import gregtech.api.GregTech_API; import gregtech.api.enums.GT_Values; -import gregtech.api.util.GT_Recipe; - import gtPlusPlus.api.interfaces.RunnableWithInfo; import gtPlusPlus.api.objects.Logger; import gtPlusPlus.api.objects.data.AutoMap; @@ -20,6 +15,7 @@ import gtPlusPlus.core.material.MaterialStack; import gtPlusPlus.core.material.state.MaterialState; import gtPlusPlus.core.recipe.common.CI; import gtPlusPlus.core.util.minecraft.ItemUtils; +import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.FluidStack; public class RecipeGen_MaterialProcessing extends RecipeGen_Base { @@ -30,16 +26,24 @@ public class RecipeGen_MaterialProcessing extends RecipeGen_Base { } public RecipeGen_MaterialProcessing(final Material M){ - this.toGenerate = M; + this(M, false); + } + + public RecipeGen_MaterialProcessing(final Material M, final boolean O){ + this.toGenerate = M; + this.disableOptional = O; mRecipeGenMap.add(this); } @Override public void run() { - generateRecipes(this.toGenerate); + generateRecipes(this.toGenerate, this.disableOptional); } - private void generateRecipes(final Material material){ + private void generateRecipes(final Material material, final boolean disableOptional){ + if (disableOptional) { + return; + } if (material.getMaterialComposites().length > 1){ Logger.MATERIALS("[Recipe Generator Debug] ["+material.getLocalizedName()+"]"); @@ -65,7 +69,7 @@ public class RecipeGen_MaterialProcessing extends RecipeGen_Base { /** - * Electrolyzer + * Centrifuge */ //Process Dust @@ -79,14 +83,14 @@ public class RecipeGen_MaterialProcessing extends RecipeGen_Base { int mCounter = 0; for (Pair<Integer, Material> f : componentMap){ if (f.getValue().getState() != MaterialState.SOLID){ - Logger.MATERIALS("[Electrolyzer] Found Fluid Component, adding "+f.getKey()+" cells of "+f.getValue().getLocalizedName()+"."); + Logger.MATERIALS("[Centrifuge] Found Fluid Component, adding "+f.getKey()+" cells of "+f.getValue().getLocalizedName()+"."); mInternalOutputs[mCounter++] = f.getValue().getCell(f.getKey()); mCellCount += f.getKey(); mTotalCount += f.getKey(); - Logger.MATERIALS("[Electrolyzer] In total, adding "+mCellCount+" cells for "+material.getLocalizedName()+" processing."); + Logger.MATERIALS("[Centrifuge] In total, adding "+mCellCount+" cells for "+material.getLocalizedName()+" processing."); } else { - Logger.MATERIALS("[Electrolyzer] Found Solid Component, adding "+f.getKey()+" dusts of "+f.getValue().getLocalizedName()+"."); + Logger.MATERIALS("[Centrifuge] Found Solid Component, adding "+f.getKey()+" dusts of "+f.getValue().getLocalizedName()+"."); mInternalOutputs[mCounter++] = f.getValue().getDust(f.getKey()); mTotalCount += f.getKey(); } @@ -94,38 +98,38 @@ public class RecipeGen_MaterialProcessing extends RecipeGen_Base { //Build Output Array for (int g=0;g<mInternalOutputs.length;g++){ - Logger.MATERIALS("[Electrolyzer] Is output["+g+"] valid with a chance? "+(mInternalOutputs[g] != null ? 10000 : 0)); + Logger.MATERIALS("[Centrifuge] Is output["+g+"] valid with a chance? "+(mInternalOutputs[g] != null ? 10000 : 0)); mChances[g] = (mInternalOutputs[g] != null ? 10000 : 0); } ItemStack emptyCell = null; if (mCellCount > 0){ emptyCell = ItemUtils.getItemStackOfAmountFromOreDict("cellEmpty", mCellCount); - Logger.MATERIALS("[Electrolyzer] Recipe now requires "+mCellCount+" empty cells as input."); + Logger.MATERIALS("[Centrifuge] Recipe now requires "+mCellCount+" empty cells as input."); } ItemStack mainDust = material.getDust(material.smallestStackSizeWhenProcessing); if (mainDust != null){ - Logger.MATERIALS("[Electrolyzer] Recipe now requires "+material.smallestStackSizeWhenProcessing+"x "+mainDust.getDisplayName()+" as input."); + Logger.MATERIALS("[Centrifuge] Recipe now requires "+material.smallestStackSizeWhenProcessing+"x "+mainDust.getDisplayName()+" as input."); } else { mainDust = material.getDust(mTotalCount); - Logger.MATERIALS("[Electrolyzer] Could not find valid input dust, trying alternative."); + Logger.MATERIALS("[Centrifuge] Could not find valid input dust, trying alternative."); if (mainDust != null){ - Logger.MATERIALS("[Electrolyzer] Recipe now requires "+mTotalCount+"x "+mainDust.getDisplayName()+" as input."); + Logger.MATERIALS("[Centrifuge] Recipe now requires "+mTotalCount+"x "+mainDust.getDisplayName()+" as input."); } else { - Logger.MATERIALS("[Electrolyzer] Could not find valid input dust, exiting."); + Logger.MATERIALS("[Centrifuge] Could not find valid input dust, exiting."); } } for (int j=0;j<mInternalOutputs.length;j++){ if (mInternalOutputs[j] == null){ mInternalOutputs[j] = GT_Values.NI; - Logger.MATERIALS("[Electrolyzer] Set slot "+j+" to null."); + Logger.MATERIALS("[Centrifuge] Set slot "+j+" to null."); } else { - Logger.MATERIALS("[Electrolyzer] Set slot "+j+" to "+mInternalOutputs[j].getDisplayName()+"."); + Logger.MATERIALS("[Centrifuge] Set slot "+j+" to "+mInternalOutputs[j].getDisplayName()+"."); } } @@ -144,10 +148,10 @@ public class RecipeGen_MaterialProcessing extends RecipeGen_Base { mChances, 20*1*(tVoltageMultiplier/10), tVoltageMultiplier)){ - Logger.MATERIALS("[Electrolyzer] Generated Electrolyzer recipe for "+material.getDust(1).getDisplayName()); + Logger.MATERIALS("[Centrifuge] Generated Centrifuge recipe for "+material.getDust(1).getDisplayName()); } else { - Logger.MATERIALS("[Electrolyzer] Failed to generate Electrolyzer recipe for "+material.getDust(1).getDisplayName()); + Logger.MATERIALS("[Centrifuge] Failed to generate Centrifuge recipe for "+material.getDust(1).getDisplayName()); } } catch(Throwable t){ @@ -252,23 +256,5 @@ public class RecipeGen_MaterialProcessing extends RecipeGen_Base { public static boolean addCentrifgeRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, FluidStack aFluidOutput, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, ItemStack aOutput4, ItemStack aOutput5, ItemStack aOutput6, int[] aChances, int aDuration, int aEUt) { return GT_Values.RA.addCentrifugeRecipe(aInput1, aInput2, aFluidInput, aFluidOutput, aOutput1, aOutput2, aOutput3, aOutput4, aOutput5, aOutput6, aChances, aDuration, aEUt); } - - public static boolean addElectrolyzerRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, FluidStack aFluidOutput, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, ItemStack aOutput4, ItemStack aOutput5, ItemStack aOutput6, int[] aChances, int aDuration, int aEUt) { - if (((aInput1 == null) && (aFluidInput == null)) || ((aOutput1 == null) && (aFluidOutput == null))) { - Logger.MATERIALS("[Electrolyzer] Either both inputs or outputs are null."); - return false; - } - if ((aInput1 != null) && ((aDuration = GregTech_API.sRecipeFile.get("electrolyzer", aInput1, aDuration)) <= 0)) { - Logger.MATERIALS("[Electrolyzer] Fail 1."); - return false; - } - if ((aFluidInput != null) && ((aDuration = GregTech_API.sRecipeFile.get("electrolyzer", aFluidInput.getFluid().getName(), aDuration)) <= 0)) { - Logger.MATERIALS("[Electrolyzer] Fail 2."); - return false; - } - GT_Recipe.GT_Recipe_Map.sElectrolyzerRecipes.addRecipe(true, new ItemStack[]{aInput1, aInput2}, new ItemStack[]{aOutput1, aOutput2, aOutput3, aOutput4, aOutput5, aOutput6}, null, aChances, new FluidStack[]{aFluidInput}, new FluidStack[]{aFluidOutput}, aDuration, aEUt, 0); - Logger.MATERIALS("[Electrolyzer] Recipe added."); - return true; - } - + } diff --git a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Ore.java b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Ore.java index b7043b5983..f3ff935d6e 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Ore.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Ore.java @@ -33,20 +33,25 @@ public class RecipeGen_Ore extends RecipeGen_Base { static { MaterialGenerator.mRecipeMapsToGenerate.put(mRecipeGenMap); } - + public RecipeGen_Ore(final Material M){ + this(M, false); + } + + public RecipeGen_Ore(final Material M, final boolean O){ this.toGenerate = M; + this.disableOptional = O; mRecipeGenMap.add(this); } @Override public void run() { - generateRecipes(this.toGenerate); + generateRecipes(this.toGenerate, this.disableOptional); } private static Material mStone; - public static void generateRecipes(final Material material){ + private void generateRecipes(final Material material, final boolean disableOptional){ if (mStone == null) { mStone = MaterialUtils.generateMaterialFromGtENUM(Materials.Stone); @@ -225,13 +230,13 @@ public class RecipeGen_Ore extends RecipeGen_Base { try { //.08 compat - if (GT_ModHandler.addThermalCentrifugeRecipe(material.getCrushed(1), 200, material.getCrushedCentrifuged(1), tinyDustB, dustStone)){ + if (GT_ModHandler.addThermalCentrifugeRecipe(material.getCrushed(1), (int) Math.min(5000L, Math.abs(material.getMass() * 20L)), material.getCrushedCentrifuged(1), tinyDustB, dustStone)){ Logger.MATERIALS("[ThermalCentrifuge] Added Recipe: 'Crushed ore to Centrifuged Ore' | Input: "+material.getCrushed(1).getDisplayName()+" | Outputs: "+material.getCrushedCentrifuged(1).getDisplayName()+", "+tinyDustB.getDisplayName()+", "+dustStone.getDisplayName()+"."); } } catch (Throwable t) {} try { - if (GT_ModHandler.addThermalCentrifugeRecipe(material.getCrushedPurified(1), 200, material.getCrushedCentrifuged(1), tinyDustA, dustStone)){ + if (GT_ModHandler.addThermalCentrifugeRecipe(material.getCrushedPurified(1), (int) Math.min(5000L, Math.abs(material.getMass() * 20L)), material.getCrushedCentrifuged(1), tinyDustA, dustStone)){ Logger.MATERIALS("[ThermalCentrifuge] Added Recipe: 'Washed ore to Centrifuged Ore' | Input: "+material.getCrushedPurified(1).getDisplayName()+" | Outputs: "+material.getCrushedCentrifuged(1).getDisplayName()+", "+tinyDustA.getDisplayName()+", "+dustStone.getDisplayName()+"."); } } @@ -262,7 +267,7 @@ public class RecipeGen_Ore extends RecipeGen_Base { matDust, tinyDustA,null, null, null,null, new int[]{10000, 10000}, //Chances - 5*20, //Time + (int) Math.max(1L, material.getMass() * 8L), //Time tVoltageMultiplier/2)){ //Eu Logger.MATERIALS("[Centrifuge] Added Recipe: Purified Dust to Clean Dust"); } @@ -275,7 +280,7 @@ public class RecipeGen_Ore extends RecipeGen_Base { matDust, tinyDustB,null, null, null,null, new int[]{10000, 10000}, //Chances - 5*20, //Time + (int) Math.max(1L, material.getMass() * 8L), //Time tVoltageMultiplier/2)){ //Eu Logger.MATERIALS("[Centrifuge] Added Recipe: Inpure Dust to Clean Dust"); } @@ -285,6 +290,7 @@ public class RecipeGen_Ore extends RecipeGen_Base { * Electrolyzer */ + if (!disableOptional) { //Process Dust if (componentMap.size() > 0 && componentMap.size() <= 6){ @@ -434,9 +440,7 @@ public class RecipeGen_Ore extends RecipeGen_Base { } } - try{ - - + try{ if (CORE.RA.addDehydratorRecipe( new ItemStack[]{mainDust, emptyCell}, null, @@ -446,6 +450,10 @@ public class RecipeGen_Ore extends RecipeGen_Base { (int) Math.max(material.getMass() * 4L * 1, 1), tVoltageMultiplier)){ Logger.MATERIALS("[Dehydrator] Generated Dehydrator recipe for "+matDust.getDisplayName()); + Logger.MATERIALS("Inputs: "+mainDust.getDisplayName()+" x"+mainDust.stackSize+", "+(emptyCell == null ? "No Cells" : ""+emptyCell.getDisplayName()+" x"+emptyCell.stackSize)); + Logger.MATERIALS("Outputs "+ItemUtils.getArrayStackNames(mInternalOutputs)); + Logger.MATERIALS("Time: "+((int) Math.max(material.getMass() * 4L * 1, 1))); + Logger.MATERIALS("EU: "+tVoltageMultiplier); } else { Logger.MATERIALS("[Dehydrator] Failed to generate Dehydrator recipe for "+matDust.getDisplayName()); @@ -457,6 +465,7 @@ public class RecipeGen_Ore extends RecipeGen_Base { } + } /** diff --git a/src/Java/gtPlusPlus/xmod/gregtech/loaders/misc/AddCustomMachineToPA.java b/src/Java/gtPlusPlus/xmod/gregtech/loaders/misc/AddCustomMachineToPA.java index e84ce73a47..2e6de159d0 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/loaders/misc/AddCustomMachineToPA.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/loaders/misc/AddCustomMachineToPA.java @@ -1,51 +1,28 @@ package gtPlusPlus.xmod.gregtech.loaders.misc; -import java.lang.reflect.Method; - import gregtech.api.util.GTPP_Recipe; +import gregtech.api.util.GT_ProcessingArray_Manager; import gregtech.api.util.GT_Recipe.GT_Recipe_Map; -import gtPlusPlus.core.util.reflect.ReflectionUtils; +import gtPlusPlus.api.objects.Logger; public class AddCustomMachineToPA { - private static final boolean sDoesPatchExist; - private static final Class sManagerPA; - private static final Method sRegisterRecipeMapForMeta; - - static { - sDoesPatchExist = ReflectionUtils.doesClassExist("gregtech.api.util.GT_ProcessingArray_Manager"); - if (sDoesPatchExist) { - sManagerPA = ReflectionUtils.getClass("gregtech.api.util.GT_ProcessingArray_Manager"); - sRegisterRecipeMapForMeta = ReflectionUtils.getMethod(sManagerPA, "registerRecipeMapForMeta", int.class, GT_Recipe_Map.class); - } - else { - sManagerPA = null; - sRegisterRecipeMapForMeta = null; - } - } - public static final void registerRecipeMapForID(int aID, GT_Recipe_Map aMap) { - if (sDoesPatchExist) { - ReflectionUtils.invokeNonBool(null, sRegisterRecipeMapForMeta, new Object[] {aID, aMap}); - } - + Logger.INFO("Attempting to add map "+aMap.mNEIName+" to Processing Array for Meta Tile "+aID+". Success? "+GT_ProcessingArray_Manager.registerRecipeMapForMeta(aID, aMap)); } public static final void registerRecipeMapBetweenRangeOfIDs(int aMin, int aMax, GT_Recipe_Map aMap) { - if (sDoesPatchExist) { - for (int i=aMin; i<=aMax;i++) { - ReflectionUtils.invokeNonBool(null, sRegisterRecipeMapForMeta, new Object[] {i, aMap}); - //GT_ProcessingArray_Manager.registerRecipeMapForMeta(i, aMap); - } - } + for (int i=aMin; i<=aMax;i++) { + registerRecipeMapForID(i, aMap); + } } public static void register() { - + // Simple Washers registerRecipeMapForID(767, GTPP_Recipe.GTPP_Recipe_Map.sSimpleWasherRecipes); registerRecipeMapBetweenRangeOfIDs(31017, 31020, GTPP_Recipe.GTPP_Recipe_Map.sSimpleWasherRecipes); - + } } diff --git a/src/resources/assets/miscutils/lang/en_US.lang b/src/resources/assets/miscutils/lang/en_US.lang index e2f034282a..c70d102235 100644 --- a/src/resources/assets/miscutils/lang/en_US.lang +++ b/src/resources/assets/miscutils/lang/en_US.lang @@ -1170,14 +1170,14 @@ item.itemRingQuantum.name=Quantum Ring item.itemScrewQuantum.name=Quantum Screw item.itemRotorQuantum.name=Quantum Rotor item.itemGearQuantum.name=Quantum Gear -item.itemDustFluorite.name=Fluorite Dust -item.itemDustTinyFluorite.name=Tiny Pile of Fluorite Dust -item.itemDustSmallFluorite.name=Small Pile of Fluorite Dust -item.crushedFluorite.name=Crushed Fluorite Ore -item.crushedCentrifugedFluorite.name=Centrifuged Crushed Fluorite Ore -item.crushedPurifiedFluorite.name=Purified Crushed Fluorite Ore -item.dustImpureFluorite.name=Impure Fluorite Dust -item.dustPureFluorite.name=Purified Fluorite Dust +item.itemDustFluoriteF.name=Fluorite (F) Dust +item.itemDustTinyFluoriteF.name=Tiny Pile of Fluorite (F) Dust +item.itemDustSmallFluoriteF.name=Small Pile of Fluorite (F) Dust +item.crushedFluoriteF.name=Crushed Fluorite (F) Ore +item.crushedCentrifugedFluoriteF.name=Centrifuged Crushed Fluorite (F) Ore +item.crushedPurifiedFluoriteF.name=Purified Crushed Fluorite (F) Ore +item.dustImpureFluoriteF.name=Impure Fluorite (F) Dust +item.dustPureFluoriteF.name=Purified Fluorite (F) Dust item.itemDustCrocoite.name=Crocoite Dust item.itemDustTinyCrocoite.name=Tiny Pile of Crocoite Dust item.itemDustSmallCrocoite.name=Small Pile of Crocoite Dust @@ -1890,7 +1890,7 @@ tile.Block of Quantum.name=Block of Quantum tile.Quantum Frame Box.name=Quantum Frame Box //Ores -tile.OreFluorite.name=Fluorite Ore +tile.OreFluoriteF.name=Fluorite (F) Ore tile.OreCrocoite.name=Crocoite Ore tile.OreGeikielite.name=Geikielite Ore tile.OreNichromite.name=Nichromite Ore |