aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gtPlusPlus/core
diff options
context:
space:
mode:
authorAbdiel Kavash <19243993+AbdielKavash@users.noreply.github.com>2024-01-01 07:48:34 -0600
committerGitHub <noreply@github.com>2024-01-01 14:48:34 +0100
commit7645fd98133a45896418b669693956f26a6780f8 (patch)
tree33a6f51fc5703fd86c6184001ed4f00128f4e97f /src/main/java/gtPlusPlus/core
parenta752823226b618f4a54520f83bb937fcc4df1948 (diff)
downloadGT5-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.java83
-rw-r--r--src/main/java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java89
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)