diff options
author | Abdiel Kavash <19243993+AbdielKavash@users.noreply.github.com> | 2024-01-01 07:48:34 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-01 14:48:34 +0100 |
commit | 7645fd98133a45896418b669693956f26a6780f8 (patch) | |
tree | 33a6f51fc5703fd86c6184001ed4f00128f4e97f /src/main/java/gtPlusPlus/core | |
parent | a752823226b618f4a54520f83bb937fcc4df1948 (diff) | |
download | GT5-Unofficial-7645fd98133a45896418b669693956f26a6780f8.tar.gz GT5-Unofficial-7645fd98133a45896418b669693956f26a6780f8.tar.bz2 GT5-Unofficial-7645fd98133a45896418b669693956f26a6780f8.zip |
Thermal Boiler rework (#815)
* Migrate recipes to RA. Fix oredict of outputs.
* New recipe UI for NEI.
* Reworked processing logic.
* Display EU/t in WAILA + misc fixes
* Small spelling updates.
* Full rework of recipes.
* Reverted Pyrotheum recipe.
* Restored old recipes + cleanup.
Diffstat (limited to 'src/main/java/gtPlusPlus/core')
-rw-r--r-- | src/main/java/gtPlusPlus/core/item/general/ItemLavaFilter.java | 83 | ||||
-rw-r--r-- | src/main/java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java | 89 |
2 files changed, 80 insertions, 92 deletions
diff --git a/src/main/java/gtPlusPlus/core/item/general/ItemLavaFilter.java b/src/main/java/gtPlusPlus/core/item/general/ItemLavaFilter.java index 0a3d5f7394..583124a44d 100644 --- a/src/main/java/gtPlusPlus/core/item/general/ItemLavaFilter.java +++ b/src/main/java/gtPlusPlus/core/item/general/ItemLavaFilter.java @@ -8,7 +8,6 @@ import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.EnumRarity; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IIcon; import net.minecraft.util.StatCollector; @@ -26,7 +25,7 @@ public class ItemLavaFilter extends CoreItem { "itemLavaFilter", AddToCreativeTab.tabMachines, 1, - 100, + 99, new String[] { "Lava Filter" }, EnumRarity.common, EnumChatFormatting.BLACK, @@ -50,74 +49,36 @@ public class ItemLavaFilter extends CoreItem { return this.mIcon[0]; } - private static boolean createNBT(ItemStack rStack) { - final NBTTagCompound tagMain = new NBTTagCompound(); - final NBTTagCompound tagNBT = new NBTTagCompound(); - tagNBT.setLong("Damage", 0); - tagMain.setTag("LavaFilter", tagNBT); - rStack.setTagCompound(tagMain); - return true; - } - - public static final long getFilterDamage(final ItemStack aStack) { - NBTTagCompound aNBT = aStack.getTagCompound(); - if (aNBT != null) { - aNBT = aNBT.getCompoundTag("LavaFilter"); - if (aNBT != null) { - return aNBT.getLong("Damage"); - } - } else { - createNBT(aStack); - } - return 0L; - } - - public static final boolean setFilterDamage(final ItemStack aStack, final long aDamage) { - NBTTagCompound aNBT = aStack.getTagCompound(); - if (aNBT != null) { - aNBT = aNBT.getCompoundTag("LavaFilter"); - if (aNBT != null) { - aNBT.setLong("Damage", aDamage); - return true; - } - } else { - createNBT(aStack); - } - return false; - } - - @Override - public double getDurabilityForDisplay(ItemStack stack) { - if (stack.getTagCompound() == null) { - createNBT(stack); - } - double currentDamage = getFilterDamage(stack); - double durabilitypercent = currentDamage / 100; - return durabilitypercent; - } - @SuppressWarnings("unchecked") @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { list.add(EnumChatFormatting.GRAY + StatCollector.translateToLocal("item.itemLavaFilter.tooltip")); - EnumChatFormatting durability = EnumChatFormatting.GRAY; - if (100 - getFilterDamage(stack) > 80) { - durability = EnumChatFormatting.GRAY; - } else if (100 - getFilterDamage(stack) > 60) { - durability = EnumChatFormatting.GREEN; - } else if (100 - getFilterDamage(stack) > 40) { - durability = EnumChatFormatting.YELLOW; - } else if (100 - getFilterDamage(stack) > 20) { - durability = EnumChatFormatting.GOLD; - } else if (100 - getFilterDamage(stack) > 0) { - durability = EnumChatFormatting.RED; + + int maxDurability = stack.getMaxDamage() + 1; + int durability = maxDurability - stack.getItemDamage(); + + EnumChatFormatting formatting = EnumChatFormatting.GRAY; + if (durability > maxDurability * 0.8) { + formatting = EnumChatFormatting.GRAY; + } else if (durability > maxDurability * 0.6) { + formatting = EnumChatFormatting.GREEN; + } else if (durability > maxDurability * 0.4) { + formatting = EnumChatFormatting.YELLOW; + } else if (durability > maxDurability * 0.2) { + formatting = EnumChatFormatting.GOLD; + } else if (durability > 0) { + formatting = EnumChatFormatting.RED; } - list.add(durability + "" + (100 - getFilterDamage(stack)) + EnumChatFormatting.GRAY + " / " + 100); - // super.addInformation(stack, player, list, bool); + list.add("Uses remaining: " + formatting + durability + EnumChatFormatting.GRAY + " / " + maxDurability); } @Override public boolean showDurabilityBar(ItemStack stack) { return true; } + + @Override + public boolean isRepairable() { + return false; + } } diff --git a/src/main/java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java b/src/main/java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java index 239add81f9..ffe2d5be64 100644 --- a/src/main/java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java +++ b/src/main/java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java @@ -35,6 +35,7 @@ import static gregtech.api.util.GT_RecipeConstants.FUSION_THRESHOLD; import static gregtech.api.util.GT_RecipeConstants.RESEARCH_ITEM; import static gregtech.api.util.GT_RecipeConstants.RESEARCH_TIME; import static gregtech.api.util.GT_RecipeConstants.UniversalChemical; +import static gtPlusPlus.api.recipe.GTPPRecipeMaps.thermalBoilerRecipes; import net.minecraft.init.Blocks; import net.minecraft.init.Items; @@ -50,7 +51,6 @@ import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_RecipeConstants; import gregtech.api.util.GT_Utility; -import gregtech.api.util.HotFuel; import gtPlusPlus.api.objects.Logger; import gtPlusPlus.core.block.ModBlocks; import gtPlusPlus.core.item.ModItems; @@ -106,6 +106,7 @@ public class RECIPES_GREGTECH { fluidHeaterRecipes(); chemplantRecipes(); alloySmelterRecipes(); + thermalBoilerRecipes(); /* * Special Recipe handlers @@ -1101,39 +1102,65 @@ public class RECIPES_GREGTECH { .eut(TierEU.RECIPE_MV / 2).addTo(distillationTowerRecipes); } + private static void thermalBoilerRecipes() { + Logger.INFO("Registering Thermal Boiler Recipes."); + + // Recipes with special value -1 display additional tooltip in NEI about lava filters. + + // Lava + + GT_Values.RA.stdBuilder() + .fluidInputs(FluidUtils.getLava(1000), FluidUtils.getWater(16_000 / GT_Values.STEAM_PER_WATER)) + .fluidOutputs(FluidUtils.getPahoehoeLava(1000), FluidUtils.getSteam(16_000)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Copper, 1), + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Tin, 1), + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Gold, 1), + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Silver, 1), + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Tantalum, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Tungstate, 1), + new ItemStack(Blocks.obsidian, 1, 0)) + .outputChances(444, 222, 56, 56, 56, 125, 1000).specialValue(-1).duration(1 * SECONDS).eut(0) + .addTo(thermalBoilerRecipes); + + // Pahoehoe Lava + + GT_Values.RA.stdBuilder() + .fluidInputs(FluidUtils.getPahoehoeLava(1000), FluidUtils.getWater(16_000 / GT_Values.STEAM_PER_WATER)) + .fluidOutputs(FluidUtils.getSteam(16_000)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Bronze, 1), + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Electrum, 1), + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Tantalum, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Tungstate, 1), + new ItemStack(Blocks.obsidian, 1, 0)) + .outputChances(167, 56, 56, 125, 3700).specialValue(-1).duration(1 * SECONDS).eut(0) + .addTo(thermalBoilerRecipes); + + // Hot Coolant + + GT_Values.RA.stdBuilder() + .fluidInputs( + FluidUtils.getFluidStack("ic2hotcoolant", 500), + FluidUtils.getWater(100_000 / GT_Values.STEAM_PER_WATER)) + .fluidOutputs(FluidUtils.getFluidStack("ic2coolant", 500), FluidUtils.getSuperHeatedSteam(100_000)) + .duration(1 * SECONDS).eut(0).addTo(thermalBoilerRecipes); + + // Solar Salt (Hot) + + GT_Values.RA.stdBuilder() + .fluidInputs( + MISC_MATERIALS.SOLAR_SALT_HOT.getFluidStack(100), + FluidUtils.getWater(100_000 / GT_Values.STEAM_PER_WATER)) + .fluidOutputs( + MISC_MATERIALS.SOLAR_SALT_COLD.getFluidStack(100), + FluidUtils.getSuperHeatedSteam(100_000)) + .duration(1 * SECONDS).eut(0).addTo(thermalBoilerRecipes); + } + private static void addFuels() { Logger.INFO("Registering New Fuels."); - HotFuel.addNewHotFuel( - FluidUtils.getLava(83), - FluidUtils.getPahoehoeLava(83), - new ItemStack[] { ItemUtils.getItemStackOfAmountFromOreDict("nuggetCopper", 1), - ItemUtils.getItemStackOfAmountFromOreDict("nuggetTin", 1), - ItemUtils.getItemStackOfAmountFromOreDict("nuggetGold", 1), - ItemUtils.getItemStackOfAmountFromOreDict("nuggetSilver", 1), - ItemUtils.getItemStackOfAmountFromOreDict("nuggetTantalum", 1), - ItemUtils.getItemStackOfAmountFromOreDict("dustSmallTungstate", 1), - ItemUtils.getSimpleStack(Blocks.obsidian) }, - new int[] { 2000, 1000, 250, 250, 250, 250, 500 }, - 0); - - HotFuel.addNewHotFuel( - FluidUtils.getPahoehoeLava(83), - GT_Values.NF, - new ItemStack[] { ItemUtils.getItemStackOfAmountFromOreDict("nuggetBronze", 1), - ItemUtils.getItemStackOfAmountFromOreDict("nuggetElectrum", 1), - ItemUtils.getItemStackOfAmountFromOreDict("nuggetTantalum", 1), - ItemUtils.getItemStackOfAmountFromOreDict("dustSmallTungstate", 1), - ItemUtils.getSimpleStack(Blocks.obsidian) }, - new int[] { 750, 250, 250, 250, 1850 }, - 0); - - HotFuel.addNewHotFuel( - MISC_MATERIALS.SOLAR_SALT_HOT.getFluidStack(100), - MISC_MATERIALS.SOLAR_SALT_COLD.getFluidStack(100), - FluidUtils.getSuperHeatedSteam(100000), - 0); - GT_Values.RA.stdBuilder().itemInputs(ItemUtils.getSimpleStack(Items.lava_bucket)).metadata(FUEL_VALUE, 32) .metadata(FUEL_TYPE, 2).duration(0).eut(0).addTo(GT_RecipeConstants.Fuel); GT_Values.RA.stdBuilder().itemInputs(ItemUtils.getIC2Cell(2)).metadata(FUEL_VALUE, 32).metadata(FUEL_TYPE, 2) |