diff --git a/changelog b/changelog index 1c026a1eb..0561045f8 100644 --- a/changelog +++ b/changelog @@ -75,6 +75,12 @@ * Using state of the art anti-leave-the-screen technology, recipe tooltips (and most tooltips used by `GuiInfoScreen`) should no longer leave the screen * This means that the recipe selector can now have the tooltip follow the mouse instead of being eternally stuck in the corner * Recipe selector tooltips now have a nice orange and yellow border +* The nuclear charge and demolition nuclear grenade charge now need neutron reflectors +* Schrabidium grenade charges now use CMB steel instead of bronze +* The satellite base now only uses a medium thruster instead of a large one, making it no longer post pyrolysis +* The steel recipe in the crucible now requires flux + * The recipe is also now a fair bit slower (still faster than a blast furnace overall) +* Remodeled the catalytic reformer ## Fixed * Fixed RoR graph showing the wrong name in the GUI diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index 9e11962cc..315374e1c 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -277,8 +277,8 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_filling, 4, EnumGrenadeFilling.PLASMA.ordinal()), new Object[] { " C ", "KWK", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CAPACITOR_BOARD), 'K', ModItems.cell_tritium, 'W', WEAPONSTEEL.plate() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_filling, 4, EnumGrenadeFilling.LASER.ordinal()), new Object[] { " C ", "KWK", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ATOMIC_CLOCK), 'K', ModItems.crystal_redstone, 'W', WEAPONSTEEL.plate() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_filling, 1, EnumGrenadeFilling.NUCLEAR.ordinal()), new Object[] { " T ", "CPC", " T ", 'T', ModItems.ball_tatb, 'C', WEAPONSTEEL.plate(), 'P', PU239.nugget() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_filling, 1, EnumGrenadeFilling.NUCLEAR_DEMO.ordinal()), new Object[] { "TPT", "CPC", "TPT", 'T', ModItems.ball_tatb, 'C', WEAPONSTEEL.plate(), 'P', PU239.nugget() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_filling, 1, EnumGrenadeFilling.SCHRAB.ordinal()), new Object[] { "BCB", "TST", "BCB", 'B', ANY_BISMOIDBRONZE.plateCast(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CONTROLLER), 'T', ModItems.ball_tatb, 'S', ModItems.cell_sas3 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_filling, 1, EnumGrenadeFilling.NUCLEAR_DEMO.ordinal()), new Object[] { "TPT", "CPC", "TPT", 'T', ModItems.ball_tatb, 'C', ModItems.neutron_reflector, 'P', PU239.nugget() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_filling, 1, EnumGrenadeFilling.SCHRAB.ordinal()), new Object[] { "BCB", "TST", "BCB", 'B', CMB.plateCast(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CONTROLLER), 'T', ModItems.ball_tatb, 'S', ModItems.cell_sas3 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_extra, 1, EnumGrenadeExtra.GLUE.ordinal()), new Object[] { " P ", "PSP", " P ", 'P', Items.paper, 'S', Items.slime_ball }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_extra, 1, EnumGrenadeExtra.PROXY_FUZE.ordinal()), new Object[] { "C", "F", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CHIP), 'F', ModItems.safety_fuse }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_extra, 1, EnumGrenadeExtra.FRAG_SLEEVE.ordinal()), new Object[] { "BBB", " T ", "BBB", 'B', STEEL.bolt(), 'T', ModItems.ducttape }); diff --git a/src/main/java/com/hbm/handler/nei/ArcWelderHandler.java b/src/main/java/com/hbm/handler/nei/ArcWelderHandler.java index b1eb411bf..835e91ab1 100644 --- a/src/main/java/com/hbm/handler/nei/ArcWelderHandler.java +++ b/src/main/java/com/hbm/handler/nei/ArcWelderHandler.java @@ -1,12 +1,12 @@ package com.hbm.handler.nei; import java.awt.Rectangle; -import java.util.Locale; import com.hbm.blocks.ModBlocks; import com.hbm.inventory.gui.GUIMachineArcWelder; import com.hbm.inventory.recipes.ArcWelderRecipes; import com.hbm.inventory.recipes.ArcWelderRecipes.ArcWelderRecipe; +import com.hbm.util.BobMathUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.FontRenderer; @@ -48,11 +48,11 @@ public class ArcWelderHandler extends NEIUniversalHandler { } FontRenderer fontRenderer = Minecraft.getMinecraft().fontRenderer; - String duration = String.format(Locale.US, "%,d", arc.duration) + " ticks"; - String consumption = String.format(Locale.US, "%,d", arc.consumption) + " HE/t"; - int side = 160; - fontRenderer.drawString(duration, side - fontRenderer.getStringWidth(duration), 43, 0x404040); - fontRenderer.drawString(consumption, side - fontRenderer.getStringWidth(consumption), 55, 0x404040); + String duration = BobMathUtil.getShortNumber(arc.duration) + " ticks"; + String consumption = BobMathUtil.getShortNumber(arc.consumption) + "HE/t"; + int side = 164; + fontRenderer.drawString(duration, side - fontRenderer.getStringWidth(duration), 45, 0x404040); + fontRenderer.drawString(consumption, side - fontRenderer.getStringWidth(consumption), 57, 0x404040); return; } } diff --git a/src/main/java/com/hbm/handler/nei/NEIGenericRecipeHandler.java b/src/main/java/com/hbm/handler/nei/NEIGenericRecipeHandler.java index fbffcdeb3..b40992f81 100644 --- a/src/main/java/com/hbm/handler/nei/NEIGenericRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/NEIGenericRecipeHandler.java @@ -320,4 +320,10 @@ public abstract class NEIGenericRecipeHandler extends TemplateRecipeHandler impl drawTexturedModalRect(74 + this.getMachineXOffset(rec.recipe), 7, 77, 87, 18, 50); } } + + @Override + public void drawExtras(int recipe) { + RecipeSet rec = (RecipeSet) this.arecipes.get(recipe); + rec.recipe.printNEIExtras(); + } } diff --git a/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java b/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java index c968699a0..6ade13f40 100644 --- a/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java +++ b/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java @@ -11,6 +11,7 @@ import com.hbm.inventory.FluidStack; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.gui.GuiInfoContainer; +import com.hbm.inventory.gui.element.GUIElements; import com.hbm.items.ModItems; import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.util.BobMathUtil; @@ -247,7 +248,7 @@ public class FluidTank implements Cloneable { } type.addInfo(list); - gui.drawInfo(list.toArray(new String[0]), mouseX, mouseY); + GUIElements.drawHoveringTextFluid(list, mouseX, mouseY, gui.getFontRenderer(), gui.getItemRenderer(), gui.width, gui.height, this.type); } } diff --git a/src/main/java/com/hbm/inventory/gui/GUICrucible.java b/src/main/java/com/hbm/inventory/gui/GUICrucible.java index 1c11acefb..b0845b5ff 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICrucible.java +++ b/src/main/java/com/hbm/inventory/gui/GUICrucible.java @@ -9,6 +9,7 @@ import org.lwjgl.input.Keyboard; import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerCrucible; +import com.hbm.inventory.gui.element.GUIElements; import com.hbm.inventory.material.Mats; import com.hbm.inventory.material.Mats.MaterialStack; import com.hbm.inventory.material.NTMMaterial.SmeltingBehavior; @@ -52,7 +53,7 @@ public class GUICrucible extends GuiInfoContainer { if(guiLeft + 106 <= x && guiLeft + 106 + 18 > x && guiTop + 80 < y && guiTop + 80 + 18 >= y) { if(this.crucible.recipe != null && CrucibleRecipes.INSTANCE.recipeNameMap.containsKey(this.crucible.recipe)) { CrucibleRecipe recipe = (CrucibleRecipe) CrucibleRecipes.INSTANCE.recipeNameMap.get(this.crucible.recipe); - this.func_146283_a(recipe.print(), x, y); + GUIElements.drawHoveringTextRecipe(recipe.print(), x, y, this.fontRendererObj, itemRender, this.width, this.height); } else { this.drawCreativeTabHoveringText(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("gui.recipe.setRecipe"), x, y); } diff --git a/src/main/java/com/hbm/inventory/gui/GUIFusionTorus.java b/src/main/java/com/hbm/inventory/gui/GUIFusionTorus.java index fe857246c..98e11de61 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIFusionTorus.java +++ b/src/main/java/com/hbm/inventory/gui/GUIFusionTorus.java @@ -59,7 +59,7 @@ public class GUIFusionTorus extends GuiInfoContainer { if(guiLeft + 43 <= mouseX && guiLeft + 43 + 18 > mouseX && guiTop + 80 < mouseY && guiTop + 80 + 18 >= mouseY) { if(recipe != null) { - this.func_146283_a(recipe.print(), mouseX, mouseY); + GUIElements.drawHoveringTextRecipe(recipe.print(), mouseX, mouseY, this.fontRendererObj, itemRender, this.width, this.height); } else { this.drawCreativeTabHoveringText(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("gui.recipe.setRecipe"), mouseX, mouseY); } diff --git a/src/main/java/com/hbm/inventory/gui/element/GUIElements.java b/src/main/java/com/hbm/inventory/gui/element/GUIElements.java index 7c0b2e5d2..c30aa81c4 100644 --- a/src/main/java/com/hbm/inventory/gui/element/GUIElements.java +++ b/src/main/java/com/hbm/inventory/gui/element/GUIElements.java @@ -6,7 +6,9 @@ import java.util.List; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; +import com.hbm.inventory.fluid.FluidType; import com.hbm.lib.RefStrings; +import com.hbm.util.ColorUtil; import com.hbm.util.Vec3NT; import net.minecraft.client.Minecraft; @@ -99,6 +101,18 @@ public class GUIElements { drawHoveringText(lines, x, y, font, itemRender, guiWidth, guiHeight, 6, STANDARD_LINE_DIST, STANDARD_COLOR_BACKGROUND, STANDARD_COLOR_BACKGROUND, RECIPE_COLOR_LINE0, RECIPE_COLOR_LINE1); } + public static void drawHoveringTextFluid(List lines, int x, int y, FontRenderer font, RenderItem itemRender, int guiWidth, int guiHeight, FluidType type) { + int color0 = type.getColor(); + int r = ColorUtil.ir(color0); + int g = ColorUtil.ig(color0); + int b = ColorUtil.ib(color0); + int add = (r + g + b) / 3 > 0x80 ? -0x40 : 0x40; + int color1 = ColorUtil.color(MathHelper.clamp_int(r + add, 0, 255), MathHelper.clamp_int(g + add, 0, 255), MathHelper.clamp_int(b + add, 0, 255)); + color0 |= 0xff000000; + color1 |= 0xff000000; + drawHoveringText(lines, x, y, font, itemRender, guiWidth, guiHeight, 6, STANDARD_LINE_DIST, STANDARD_COLOR_BACKGROUND, STANDARD_COLOR_BACKGROUND, color0, color1); + } + public static void drawHoveringText(List lines, int x, int y, FontRenderer font, RenderItem itemRender, int guiWidth, int guiHeight, int headerOffset, int lineDist, int colBG0, int colBG1, int colLine0, int colLine1) { if(!lines.isEmpty()) { diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblyMachineRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblyMachineRecipes.java index b66039479..2da4ce49c 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblyMachineRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblyMachineRecipes.java @@ -946,7 +946,7 @@ public class AssemblyMachineRecipes extends GenericRecipes { this.register(new GenericRecipe("ass.satellitebase").setup(600, 100).outputItems(new ItemStack(ModItems.sat_base, 1)) .inputItems(new OreDictStack(RUBBER.ingot(), 12), new OreDictStack(TI.shell(), 3), - new ComparableStack(ModItems.thruster_large, 1), + new ComparableStack(ModItems.thruster_medium, 1), new ComparableStack(ModItems.part_generic, 8, EnumPartType.LDE), new ComparableStack(ModItems.plate_desh, 4), new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.getID()), diff --git a/src/main/java/com/hbm/inventory/recipes/CrucibleRecipes.java b/src/main/java/com/hbm/inventory/recipes/CrucibleRecipes.java index b028f9727..4dc0e6754 100644 --- a/src/main/java/com/hbm/inventory/recipes/CrucibleRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CrucibleRecipes.java @@ -60,19 +60,19 @@ public class CrucibleRecipes extends GenericRecipes { int n = MaterialShapes.NUGGET.q(1); int i = MaterialShapes.INGOT.q(1); - this.register(new CrucibleRecipe("crucible.steel").setup(2, new ItemStack(ModItems.ingot_steel)) - .inputs(new MaterialStack(Mats.MAT_IRON, n * 2), new MaterialStack(Mats.MAT_CARBON, n)) + this.register(new CrucibleRecipe("crucible.steel").setup(20, new ItemStack(ModItems.ingot_steel)) + .inputs(new MaterialStack(Mats.MAT_IRON, n * 2), new MaterialStack(Mats.MAT_CARBON, n * 3), new MaterialStack(Mats.MAT_FLUX, n)) .outputs(new MaterialStack(Mats.MAT_STEEL, n * 2))); if(Compat.isModLoaded(Compat.MOD_GT6)) { - this.register(new CrucibleRecipe("crucible.steelWrought").setup(2, new ItemStack(ModItems.ingot_steel)) - .inputs(new MaterialStack(Mats.MAT_WROUGHTIRON, n * 2), new MaterialStack(Mats.MAT_CARBON, n)) + this.register(new CrucibleRecipe("crucible.steelWrought").setup(20, new ItemStack(ModItems.ingot_steel)) + .inputs(new MaterialStack(Mats.MAT_WROUGHTIRON, n * 2), new MaterialStack(Mats.MAT_CARBON, n * 3), new MaterialStack(Mats.MAT_FLUX, n)) .outputs(new MaterialStack(Mats.MAT_STEEL, n * 2))); - this.register(new CrucibleRecipe("crucible.steelPig").setup(2, new ItemStack(ModItems.ingot_steel)) - .inputs(new MaterialStack(Mats.MAT_PIGIRON, n * 2), new MaterialStack(Mats.MAT_CARBON, n)) + this.register(new CrucibleRecipe("crucible.steelPig").setup(20, new ItemStack(ModItems.ingot_steel)) + .inputs(new MaterialStack(Mats.MAT_PIGIRON, n * 2), new MaterialStack(Mats.MAT_CARBON, n * 3), new MaterialStack(Mats.MAT_FLUX, n)) .outputs(new MaterialStack(Mats.MAT_STEEL, n * 2))); - this.register(new CrucibleRecipe("crucible.steelMeteoric").setup(2, new ItemStack(ModItems.ingot_steel)) - .inputs(new MaterialStack(Mats.MAT_METEORICIRON, n * 2), new MaterialStack(Mats.MAT_CARBON, n)) + this.register(new CrucibleRecipe("crucible.steelMeteoric").setup(20, new ItemStack(ModItems.ingot_steel)) + .inputs(new MaterialStack(Mats.MAT_METEORICIRON, n * 2), new MaterialStack(Mats.MAT_CARBON, n * 3), new MaterialStack(Mats.MAT_FLUX, n)) .outputs(new MaterialStack(Mats.MAT_STEEL, n * 2))); } diff --git a/src/main/java/com/hbm/inventory/recipes/FusionRecipe.java b/src/main/java/com/hbm/inventory/recipes/FusionRecipe.java index 8611baa5a..ddce0166e 100644 --- a/src/main/java/com/hbm/inventory/recipes/FusionRecipe.java +++ b/src/main/java/com/hbm/inventory/recipes/FusionRecipe.java @@ -5,8 +5,11 @@ import java.util.List; import com.hbm.inventory.recipes.loader.GenericRecipe; import com.hbm.util.BobMathUtil; +import com.hbm.util.Clock; import com.hbm.util.i18n.I18nUtil; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.FontRenderer; import net.minecraft.util.EnumChatFormatting; public class FusionRecipe extends GenericRecipe { @@ -43,4 +46,22 @@ public class FusionRecipe extends GenericRecipe { return list; } + + @Override + public void printNEIExtras() { + + int side = 164; + FontRenderer fontRenderer = Minecraft.getMinecraft().fontRenderer; + + String duration = BobMathUtil.getShortNumber(this.duration) + " ticks"; + fontRenderer.drawString(duration, side - fontRenderer.getStringWidth(duration), 45, 0x404040); + + if(Clock.get_ms() % 2000 < 1000) { + String consumption = BobMathUtil.getShortNumber(this.power) + "HE/t"; + fontRenderer.drawString(consumption, side - fontRenderer.getStringWidth(consumption), 57, 0x404040); + } else { + String temp = BobMathUtil.getShortNumber(this.ignitionTemp) + "Ky/t"; + fontRenderer.drawString(temp, side - fontRenderer.getStringWidth(temp), 57, 0xa000a0); + } + } } diff --git a/src/main/java/com/hbm/inventory/recipes/PUREXRecipe.java b/src/main/java/com/hbm/inventory/recipes/PUREXRecipe.java new file mode 100644 index 000000000..fb293f374 --- /dev/null +++ b/src/main/java/com/hbm/inventory/recipes/PUREXRecipe.java @@ -0,0 +1,24 @@ +package com.hbm.inventory.recipes; + +import com.hbm.inventory.recipes.loader.GenericRecipe; +import com.hbm.util.BobMathUtil; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.FontRenderer; + +public class PUREXRecipe extends GenericRecipe { + + public PUREXRecipe(String name) { + super(name); + } + + @Override + public void printNEIExtras() { + + FontRenderer fontRenderer = Minecraft.getMinecraft().fontRenderer; + String line = BobMathUtil.getShortNumber(this.duration) + " ticks " + BobMathUtil.getShortNumber(this.power) + "HE/t"; + + int side = 164; + fontRenderer.drawString(line, side - fontRenderer.getStringWidth(line), 57, 0x306030); // why so geen + } +} diff --git a/src/main/java/com/hbm/inventory/recipes/PUREXRecipes.java b/src/main/java/com/hbm/inventory/recipes/PUREXRecipes.java index 5e3f0c973..3b2434994 100644 --- a/src/main/java/com/hbm/inventory/recipes/PUREXRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/PUREXRecipes.java @@ -10,7 +10,6 @@ import com.hbm.inventory.FluidStack; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.inventory.fluid.Fluids; -import com.hbm.inventory.recipes.loader.GenericRecipe; import com.hbm.inventory.recipes.loader.GenericRecipes; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemPWRFuel.EnumPWRFuel; @@ -19,7 +18,7 @@ import com.hbm.items.machine.ItemWatzPellet.EnumWatzType; import net.minecraft.item.ItemStack; import net.minecraftforge.oredict.OreDictionary; -public class PUREXRecipes extends GenericRecipes { +public class PUREXRecipes extends GenericRecipes { public static final PUREXRecipes INSTANCE = new PUREXRecipes(); @@ -29,7 +28,7 @@ public class PUREXRecipes extends GenericRecipes { @Override public int outputFluidLimit() { return 1; } @Override public String getFileName() { return "hbmPUREX.json"; } - @Override public GenericRecipe instantiateRecipe(String name) { return new GenericRecipe(name); } + @Override public PUREXRecipe instantiateRecipe(String name) { return new PUREXRecipe(name); } @Override public void registerDefaults() { @@ -41,7 +40,7 @@ public class PUREXRecipes extends GenericRecipes { long watzPower = 10_000; long vitrification = 1_000; - this.register(new GenericRecipe("purex.uzh").setup(600, 1_000) + this.register((PUREXRecipe) new PUREXRecipe("purex.uzh").setup(600, 1_000) .inputItems(new ComparableStack(ModItems.billet_uranium_fuel), new OreDictStack(ZR.billet(), 3)) .inputFluids(new FluidStack(Fluids.NITRIC_ACID, 1000), new FluidStack(Fluids.HYDROGEN, 4000)) @@ -49,7 +48,7 @@ public class PUREXRecipes extends GenericRecipes { //CP-1 String autoPile = "autoswitch.pile"; - this.register(new GenericRecipe("purex.pilepu").setup(40, pilePower).setNameWrapper("purex.recycle").setGroup(autoPile, this) + this.register((PUREXRecipe) new PUREXRecipe("purex.pilepu").setup(40, pilePower).setNameWrapper("purex.recycle").setGroup(autoPile, this) .inputItems(new ComparableStack(ModItems.pile_rod_plutonium)) .inputFluids(new FluidStack(Fluids.SULFURIC_ACID, 100)) .outputItems(new ItemStack(ModItems.billet_pu_mix, 2), @@ -57,7 +56,7 @@ public class PUREXRecipes extends GenericRecipes { new ItemStack(ModItems.plate_iron, 2)) .setIconToFirstIngredient()); - this.register(new GenericRecipe("purex.pilepu239").setup(40, pilePower).setNameWrapper("purex.recycle").setGroup(autoPile, this) + this.register((PUREXRecipe) new PUREXRecipe("purex.pilepu239").setup(40, pilePower).setNameWrapper("purex.recycle").setGroup(autoPile, this) .inputItems(new ComparableStack(ModItems.pile_rod_pu239)) .inputFluids(new FluidStack(Fluids.SULFURIC_ACID, 100)) .outputItems(new ItemStack(ModItems.billet_pu239, 1), @@ -68,7 +67,7 @@ public class PUREXRecipes extends GenericRecipes { // ZIRNOX String autoZirnox = "autoswitch.zirnox"; - this.register(new GenericRecipe("purex.zirnoxnu").setup(100, zirnoxPower).setNameWrapper("purex.recycle").setGroup(autoZirnox, this) + this.register((PUREXRecipe) new PUREXRecipe("purex.zirnoxnu").setup(100, zirnoxPower).setNameWrapper("purex.recycle").setGroup(autoZirnox, this) .inputItems(new ComparableStack(ModItems.waste_natural_uranium)) .inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250)) .outputItems(new ItemStack(ModItems.nugget_u238, 1), @@ -77,7 +76,7 @@ public class PUREXRecipes extends GenericRecipes { new ItemStack(ModItems.nuclear_waste_tiny, 2)) .setIconToFirstIngredient()); - this.register(new GenericRecipe("purex.zirnoxmeu").setup(100, zirnoxPower).setNameWrapper("purex.recycle").setGroup(autoZirnox, this) + this.register((PUREXRecipe) new PUREXRecipe("purex.zirnoxmeu").setup(100, zirnoxPower).setNameWrapper("purex.recycle").setGroup(autoZirnox, this) .inputItems(new ComparableStack(ModItems.waste_uranium)) .inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250)) .outputItems(new ItemStack(ModItems.nugget_pu_mix, 1), @@ -86,7 +85,7 @@ public class PUREXRecipes extends GenericRecipes { new ItemStack(ModItems.nuclear_waste_tiny, 2)) .setIconToFirstIngredient()); - this.register(new GenericRecipe("purex.zirnoxthmeu").setup(100, zirnoxPower).setNameWrapper("purex.recycle").setGroup(autoZirnox, this) + this.register((PUREXRecipe) new PUREXRecipe("purex.zirnoxthmeu").setup(100, zirnoxPower).setNameWrapper("purex.recycle").setGroup(autoZirnox, this) .inputItems(new ComparableStack(ModItems.waste_thorium)) .inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250)) .outputItems(new ItemStack(ModItems.nugget_u238, 1), @@ -95,7 +94,7 @@ public class PUREXRecipes extends GenericRecipes { new ItemStack(ModItems.nuclear_waste_tiny, 2)) .setIconToFirstIngredient()); - this.register(new GenericRecipe("purex.zirnoxmox").setup(100, zirnoxPower).setNameWrapper("purex.recycle").setGroup(autoZirnox, this) + this.register((PUREXRecipe) new PUREXRecipe("purex.zirnoxmox").setup(100, zirnoxPower).setNameWrapper("purex.recycle").setGroup(autoZirnox, this) .inputItems(new ComparableStack(ModItems.waste_mox)) .inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250)) .outputItems(new ItemStack(ModItems.nugget_pu_mix, 1), @@ -104,7 +103,7 @@ public class PUREXRecipes extends GenericRecipes { new ItemStack(ModItems.nuclear_waste_tiny, 3)) .setIconToFirstIngredient()); - this.register(new GenericRecipe("purex.zirnoxmep").setup(100, zirnoxPower).setNameWrapper("purex.recycle").setGroup(autoZirnox, this) + this.register((PUREXRecipe) new PUREXRecipe("purex.zirnoxmep").setup(100, zirnoxPower).setNameWrapper("purex.recycle").setGroup(autoZirnox, this) .inputItems(new ComparableStack(ModItems.waste_plutonium)) .inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250)) .outputItems(new ItemStack(ModItems.nugget_pu_mix, 2), @@ -112,7 +111,7 @@ public class PUREXRecipes extends GenericRecipes { new ItemStack(ModItems.nuclear_waste_tiny, 3)) .setIconToFirstIngredient()); - this.register(new GenericRecipe("purex.zirnoxheu233").setup(100, zirnoxPower).setNameWrapper("purex.recycle").setGroup(autoZirnox, this) + this.register((PUREXRecipe) new PUREXRecipe("purex.zirnoxheu233").setup(100, zirnoxPower).setNameWrapper("purex.recycle").setGroup(autoZirnox, this) .inputItems(new ComparableStack(ModItems.waste_u233)) .inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250)) .outputItems(new ItemStack(ModItems.nugget_u235, 1), @@ -121,7 +120,7 @@ public class PUREXRecipes extends GenericRecipes { new ItemStack(ModItems.nuclear_waste_tiny, 3)) .setIconToFirstIngredient()); - this.register(new GenericRecipe("purex.zirnoxheu235").setup(100, zirnoxPower).setNameWrapper("purex.recycle").setGroup(autoZirnox, this) + this.register((PUREXRecipe) new PUREXRecipe("purex.zirnoxheu235").setup(100, zirnoxPower).setNameWrapper("purex.recycle").setGroup(autoZirnox, this) .inputItems(new ComparableStack(ModItems.waste_u235)) .inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250)) .outputItems(new ItemStack(ModItems.nugget_pu238, 1), @@ -130,7 +129,7 @@ public class PUREXRecipes extends GenericRecipes { new ItemStack(ModItems.nuclear_waste_tiny, 3)) .setIconToFirstIngredient()); - this.register(new GenericRecipe("purex.zirnoxles").setup(100, zirnoxPower).setNameWrapper("purex.recycle").setGroup(autoZirnox, this) + this.register((PUREXRecipe) new PUREXRecipe("purex.zirnoxles").setup(100, zirnoxPower).setNameWrapper("purex.recycle").setGroup(autoZirnox, this) .inputItems(new ComparableStack(ModItems.waste_schrabidium)) .inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250)) .outputItems(new ItemStack(ModItems.nugget_beryllium, 2), @@ -139,7 +138,7 @@ public class PUREXRecipes extends GenericRecipes { new ItemStack(ModItems.nuclear_waste_tiny, 2)) .setIconToFirstIngredient()); - this.register(new GenericRecipe("purex.zirnoxzfbmox").setup(100, zirnoxPower).setNameWrapper("purex.recycle").setGroup(autoZirnox, this) + this.register((PUREXRecipe) new PUREXRecipe("purex.zirnoxzfbmox").setup(100, zirnoxPower).setNameWrapper("purex.recycle").setGroup(autoZirnox, this) .inputItems(new ComparableStack(ModItems.waste_zfb_mox)) .inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250)) .outputItems(new ItemStack(ModItems.nugget_zirconium, 3), @@ -150,7 +149,7 @@ public class PUREXRecipes extends GenericRecipes { // Plate Fuel String autoPlate = "autoswitch.plate"; - this.register(new GenericRecipe("purex.platemox").setup(100, platePower).setNameWrapper("purex.recycle").setGroup(autoPlate, this) + this.register((PUREXRecipe) new PUREXRecipe("purex.platemox").setup(100, platePower).setNameWrapper("purex.recycle").setGroup(autoPlate, this) .inputItems(new ComparableStack(ModItems.waste_plate_mox)) .inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250)) .outputItems(new ItemStack(ModItems.powder_sr90_tiny, 1), @@ -159,7 +158,7 @@ public class PUREXRecipes extends GenericRecipes { new ItemStack(ModItems.nuclear_waste_tiny, 4)) .setIconToFirstIngredient()); - this.register(new GenericRecipe("purex.platepu238be").setup(100, platePower).setNameWrapper("purex.recycle").setGroup(autoPlate, this) + this.register((PUREXRecipe) new PUREXRecipe("purex.platepu238be").setup(100, platePower).setNameWrapper("purex.recycle").setGroup(autoPlate, this) .inputItems(new ComparableStack(ModItems.waste_plate_pu238be)) .inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250)) .outputItems(new ItemStack(ModItems.nugget_beryllium, 1), @@ -168,7 +167,7 @@ public class PUREXRecipes extends GenericRecipes { new ItemStack(ModItems.nugget_lead, 2)) .setIconToFirstIngredient()); - this.register(new GenericRecipe("purex.platepu239").setup(100, platePower).setNameWrapper("purex.recycle").setGroup(autoPlate, this) + this.register((PUREXRecipe) new PUREXRecipe("purex.platepu239").setup(100, platePower).setNameWrapper("purex.recycle").setGroup(autoPlate, this) .inputItems(new ComparableStack(ModItems.waste_plate_pu239)) .inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250)) .outputItems(new ItemStack(ModItems.nugget_pu240, 2), @@ -177,7 +176,7 @@ public class PUREXRecipes extends GenericRecipes { new ItemStack(ModItems.nuclear_waste_tiny, 5)) .setIconToFirstIngredient()); - this.register(new GenericRecipe("purex.platera226be").setup(100, platePower).setNameWrapper("purex.recycle").setGroup(autoPlate, this) + this.register((PUREXRecipe) new PUREXRecipe("purex.platera226be").setup(100, platePower).setNameWrapper("purex.recycle").setGroup(autoPlate, this) .inputItems(new ComparableStack(ModItems.waste_plate_ra226be)) .inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250)) .outputItems(new ItemStack(ModItems.nugget_beryllium, 2), @@ -186,7 +185,7 @@ public class PUREXRecipes extends GenericRecipes { new ItemStack(ModItems.nugget_lead, 1)) .setIconToFirstIngredient()); - this.register(new GenericRecipe("purex.platesa326").setup(100, platePower).setNameWrapper("purex.recycle").setGroup(autoPlate, this) + this.register((PUREXRecipe) new PUREXRecipe("purex.platesa326").setup(100, platePower).setNameWrapper("purex.recycle").setGroup(autoPlate, this) .inputItems(new ComparableStack(ModItems.waste_plate_sa326)) .inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250)) .outputItems(new ItemStack(ModItems.nugget_solinium, 1), @@ -195,7 +194,7 @@ public class PUREXRecipes extends GenericRecipes { new ItemStack(ModItems.nuclear_waste_tiny, 6)) .setIconToFirstIngredient()); - this.register(new GenericRecipe("purex.plateu233").setup(100, platePower).setNameWrapper("purex.recycle").setGroup(autoPlate, this) + this.register((PUREXRecipe) new PUREXRecipe("purex.plateu233").setup(100, platePower).setNameWrapper("purex.recycle").setGroup(autoPlate, this) .inputItems(new ComparableStack(ModItems.waste_plate_u233)) .inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250)) .outputItems(new ItemStack(ModItems.nugget_u235, 1), @@ -204,7 +203,7 @@ public class PUREXRecipes extends GenericRecipes { new ItemStack(ModItems.nuclear_waste_tiny, 6)) .setIconToFirstIngredient()); - this.register(new GenericRecipe("purex.plateu235").setup(100, platePower).setNameWrapper("purex.recycle").setGroup(autoPlate, this) + this.register((PUREXRecipe) new PUREXRecipe("purex.plateu235").setup(100, platePower).setNameWrapper("purex.recycle").setGroup(autoPlate, this) .inputItems(new ComparableStack(ModItems.waste_plate_u235)) .inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250)) .outputItems(new ItemStack(ModItems.nugget_neptunium, 1), @@ -215,7 +214,7 @@ public class PUREXRecipes extends GenericRecipes { // PWR String autoPWR = "autoswitch.pwr"; - this.register(new GenericRecipe("purex.pwrmeu").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this) + this.register((PUREXRecipe) new PUREXRecipe("purex.pwrmeu").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this) .inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.MEU)) .inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250)) .outputItems(new ItemStack(ModItems.nugget_u238, 3), @@ -224,7 +223,7 @@ public class PUREXRecipes extends GenericRecipes { new ItemStack(ModItems.nuclear_waste_tiny, 3)) .setIconToFirstIngredient()); - this.register(new GenericRecipe("purex.pwrheu233").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this) + this.register((PUREXRecipe) new PUREXRecipe("purex.pwrheu233").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this) .inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.HEU233)) .inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250)) .outputItems(new ItemStack(ModItems.nugget_u235, 3), @@ -233,7 +232,7 @@ public class PUREXRecipes extends GenericRecipes { new ItemStack(ModItems.nuclear_waste_tiny, 5)) .setIconToFirstIngredient()); - this.register(new GenericRecipe("purex.pwrheu235").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this) + this.register((PUREXRecipe) new PUREXRecipe("purex.pwrheu235").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this) .inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.HEU235)) .inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250)) .outputItems(new ItemStack(ModItems.nugget_neptunium, 3), @@ -242,7 +241,7 @@ public class PUREXRecipes extends GenericRecipes { new ItemStack(ModItems.nuclear_waste_tiny, 5)) .setIconToFirstIngredient()); - this.register(new GenericRecipe("purex.pwrmen").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this) + this.register((PUREXRecipe) new PUREXRecipe("purex.pwrmen").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this) .inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.MEN)) .inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250)) .outputItems(new ItemStack(ModItems.nugget_u238, 3), @@ -251,7 +250,7 @@ public class PUREXRecipes extends GenericRecipes { new ItemStack(ModItems.nuclear_waste_tiny, 3)) .setIconToFirstIngredient()); - this.register(new GenericRecipe("purex.pwrhen237").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this) + this.register((PUREXRecipe) new PUREXRecipe("purex.pwrhen237").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this) .inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.HEN237)) .inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250)) .outputItems(new ItemStack(ModItems.nugget_pu238, 2), @@ -260,7 +259,7 @@ public class PUREXRecipes extends GenericRecipes { new ItemStack(ModItems.nuclear_waste_tiny, 5)) .setIconToFirstIngredient()); - this.register(new GenericRecipe("purex.pwrmox").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this) + this.register((PUREXRecipe) new PUREXRecipe("purex.pwrmox").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this) .inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.MOX)) .inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250)) .outputItems(new ItemStack(ModItems.nugget_u238, 3), @@ -269,7 +268,7 @@ public class PUREXRecipes extends GenericRecipes { new ItemStack(ModItems.nuclear_waste_tiny, 3)) .setIconToFirstIngredient()); - this.register(new GenericRecipe("purex.pwrmep").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this) + this.register((PUREXRecipe) new PUREXRecipe("purex.pwrmep").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this) .inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.MEP)) .inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250)) .outputItems(new ItemStack(ModItems.nugget_lead, 2), @@ -278,7 +277,7 @@ public class PUREXRecipes extends GenericRecipes { new ItemStack(ModItems.nuclear_waste_tiny, 3)) .setIconToFirstIngredient()); - this.register(new GenericRecipe("purex.pwrhep239").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this) + this.register((PUREXRecipe) new PUREXRecipe("purex.pwrhep239").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this) .inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.HEP239)) .inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250)) .outputItems(new ItemStack(ModItems.nugget_pu_mix, 2), @@ -287,7 +286,7 @@ public class PUREXRecipes extends GenericRecipes { new ItemStack(ModItems.nuclear_waste_tiny, 5)) .setIconToFirstIngredient()); - this.register(new GenericRecipe("purex.pwrhep241").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this) + this.register((PUREXRecipe) new PUREXRecipe("purex.pwrhep241").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this) .inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.HEP241)) .inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250)) .outputItems(new ItemStack(ModItems.nugget_lead, 3), @@ -296,7 +295,7 @@ public class PUREXRecipes extends GenericRecipes { new ItemStack(ModItems.nuclear_waste_tiny, 6)) .setIconToFirstIngredient()); - this.register(new GenericRecipe("purex.pwrmea").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this) + this.register((PUREXRecipe) new PUREXRecipe("purex.pwrmea").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this) .inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.MEA)) .inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250)) .outputItems(new ItemStack(ModItems.nugget_lead, 3), @@ -305,7 +304,7 @@ public class PUREXRecipes extends GenericRecipes { new ItemStack(ModItems.nuclear_waste_tiny, 6)) .setIconToFirstIngredient()); - this.register(new GenericRecipe("purex.pwrhea242").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this) + this.register((PUREXRecipe) new PUREXRecipe("purex.pwrhea242").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this) .inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.HEA242)) .inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250)) .outputItems(new ItemStack(ModItems.nugget_lead, 3), @@ -314,7 +313,7 @@ public class PUREXRecipes extends GenericRecipes { new ItemStack(ModItems.nuclear_waste_tiny, 6)) .setIconToFirstIngredient()); - this.register(new GenericRecipe("purex.pwrhes326").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this) + this.register((PUREXRecipe) new PUREXRecipe("purex.pwrhes326").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this) .inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.HES326)) .inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250)) .outputItems(new ItemStack(ModItems.nugget_solinium, 3), @@ -323,7 +322,7 @@ public class PUREXRecipes extends GenericRecipes { new ItemStack(ModItems.nuclear_waste_tiny, 6)) .setIconToFirstIngredient()); - this.register(new GenericRecipe("purex.pwrhes327").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this) + this.register((PUREXRecipe) new PUREXRecipe("purex.pwrhes327").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this) .inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.HES327)) .inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250)) .outputItems(new ItemStack(ModItems.nugget_australium, 4), @@ -332,7 +331,7 @@ public class PUREXRecipes extends GenericRecipes { new ItemStack(ModItems.nuclear_waste_tiny, 6)) .setIconToFirstIngredient()); - this.register(new GenericRecipe("purex.pwrbfbam").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this) + this.register((PUREXRecipe) new PUREXRecipe("purex.pwrbfbam").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this) .inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.BFB_AM_MIX)) .inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250)) .outputItems(new ItemStack(ModItems.nugget_am_mix, 9), @@ -341,7 +340,7 @@ public class PUREXRecipes extends GenericRecipes { new ItemStack(ModItems.nuclear_waste_tiny, 1)) .setIconToFirstIngredient()); - this.register(new GenericRecipe("purex.pwrbfpu241").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this) + this.register((PUREXRecipe) new PUREXRecipe("purex.pwrbfpu241").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this) .inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.BFB_PU241)) .inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250)) .outputItems(new ItemStack(ModItems.nugget_pu241, 9), @@ -351,7 +350,7 @@ public class PUREXRecipes extends GenericRecipes { .setIconToFirstIngredient()); // Molten Salt - this.register(new GenericRecipe("purex.thoriumsalt").setup(20, 10_000).setIcon(ModItems.fluid_icon, Fluids.THORIUM_SALT.getID()) + this.register((PUREXRecipe) new PUREXRecipe("purex.thoriumsalt").setup(20, 10_000).setIcon(ModItems.fluid_icon, Fluids.THORIUM_SALT.getID()) .inputFluids(new FluidStack(Fluids.THORIUM_SALT_DEPLETED, 16_000)) .inputItems(new OreDictStack(TH232.nugget(), 2)) .outputFluids(new FluidStack(Fluids.THORIUM_SALT, 16_000)) @@ -361,7 +360,7 @@ public class PUREXRecipes extends GenericRecipes { // Watz String autoWatz = "autoswitch.watz"; - this.register(new GenericRecipe("purex.watzschrab").setup(60, watzPower).setNameWrapper("purex.recycle").setGroup(autoWatz, this) + this.register((PUREXRecipe) new PUREXRecipe("purex.watzschrab").setup(60, watzPower).setNameWrapper("purex.recycle").setGroup(autoWatz, this) .inputItems(new ComparableStack(ModItems.watz_pellet_depleted, 1, EnumWatzType.SCHRABIDIUM)) .inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250)) .outputItems(new ItemStack(ModItems.nugget_solinium, 15), @@ -370,7 +369,7 @@ public class PUREXRecipes extends GenericRecipes { .outputFluids(new FluidStack(Fluids.WATZ, 1_000)) .setIconToFirstIngredient()); - this.register(new GenericRecipe("purex.watzhes").setup(60, watzPower).setNameWrapper("purex.recycle").setGroup(autoWatz, this) + this.register((PUREXRecipe) new PUREXRecipe("purex.watzhes").setup(60, watzPower).setNameWrapper("purex.recycle").setGroup(autoWatz, this) .inputItems(new ComparableStack(ModItems.watz_pellet_depleted, 1, EnumWatzType.HES)) .inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250)) .outputItems(new ItemStack(ModItems.nugget_solinium, 17), @@ -379,7 +378,7 @@ public class PUREXRecipes extends GenericRecipes { .outputFluids(new FluidStack(Fluids.WATZ, 1_000)) .setIconToFirstIngredient()); - this.register(new GenericRecipe("purex.watzmes").setup(60, watzPower).setNameWrapper("purex.recycle").setGroup(autoWatz, this) + this.register((PUREXRecipe) new PUREXRecipe("purex.watzmes").setup(60, watzPower).setNameWrapper("purex.recycle").setGroup(autoWatz, this) .inputItems(new ComparableStack(ModItems.watz_pellet_depleted, 1, EnumWatzType.MES)) .inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250)) .outputItems(new ItemStack(ModItems.nugget_solinium, 12), @@ -388,7 +387,7 @@ public class PUREXRecipes extends GenericRecipes { .outputFluids(new FluidStack(Fluids.WATZ, 1_000)) .setIconToFirstIngredient()); - this.register(new GenericRecipe("purex.watzles").setup(60, watzPower).setNameWrapper("purex.recycle").setGroup(autoWatz, this) + this.register((PUREXRecipe) new PUREXRecipe("purex.watzles").setup(60, watzPower).setNameWrapper("purex.recycle").setGroup(autoWatz, this) .inputItems(new ComparableStack(ModItems.watz_pellet_depleted, 1, EnumWatzType.LES)) .inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250)) .outputItems(new ItemStack(ModItems.nugget_solinium, 9), @@ -397,7 +396,7 @@ public class PUREXRecipes extends GenericRecipes { .outputFluids(new FluidStack(Fluids.WATZ, 1_000)) .setIconToFirstIngredient()); - this.register(new GenericRecipe("purex.watzhen").setup(60, watzPower).setNameWrapper("purex.recycle").setGroup(autoWatz, this) + this.register((PUREXRecipe) new PUREXRecipe("purex.watzhen").setup(60, watzPower).setNameWrapper("purex.recycle").setGroup(autoWatz, this) .inputItems(new ComparableStack(ModItems.watz_pellet_depleted, 1, EnumWatzType.HEN)) .inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250)) .outputItems(new ItemStack(ModItems.nugget_pu239, 12), @@ -406,7 +405,7 @@ public class PUREXRecipes extends GenericRecipes { .outputFluids(new FluidStack(Fluids.WATZ, 1_000)) .setIconToFirstIngredient()); - this.register(new GenericRecipe("purex.watzmeu").setup(60, watzPower).setNameWrapper("purex.recycle").setGroup(autoWatz, this) + this.register((PUREXRecipe) new PUREXRecipe("purex.watzmeu").setup(60, watzPower).setNameWrapper("purex.recycle").setGroup(autoWatz, this) .inputItems(new ComparableStack(ModItems.watz_pellet_depleted, 1, EnumWatzType.MEU)) .inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250)) .outputItems(new ItemStack(ModItems.nugget_pu239, 12), @@ -415,7 +414,7 @@ public class PUREXRecipes extends GenericRecipes { .outputFluids(new FluidStack(Fluids.WATZ, 1_000)) .setIconToFirstIngredient()); - this.register(new GenericRecipe("purex.watzmep").setup(60, watzPower).setNameWrapper("purex.recycle").setGroup(autoWatz, this) + this.register((PUREXRecipe) new PUREXRecipe("purex.watzmep").setup(60, watzPower).setNameWrapper("purex.recycle").setGroup(autoWatz, this) .inputItems(new ComparableStack(ModItems.watz_pellet_depleted, 1, EnumWatzType.MEP)) .inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250)) .outputItems(new ItemStack(ModItems.nugget_pu241, 12), @@ -424,7 +423,7 @@ public class PUREXRecipes extends GenericRecipes { .outputFluids(new FluidStack(Fluids.WATZ, 1_000)) .setIconToFirstIngredient()); - this.register(new GenericRecipe("purex.watzlead").setup(60, watzPower).setNameWrapper("purex.recycle").setGroup(autoWatz, this) + this.register((PUREXRecipe) new PUREXRecipe("purex.watzlead").setup(60, watzPower).setNameWrapper("purex.recycle").setGroup(autoWatz, this) .inputItems(new ComparableStack(ModItems.watz_pellet_depleted, 1, EnumWatzType.LEAD)) .inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250)) .outputItems(new ItemStack(ModItems.nugget_lead, 6), @@ -433,7 +432,7 @@ public class PUREXRecipes extends GenericRecipes { .outputFluids(new FluidStack(Fluids.WATZ, 1_000)) .setIconToFirstIngredient()); - this.register(new GenericRecipe("purex.watzboron").setup(60, watzPower).setNameWrapper("purex.recycle").setGroup(autoWatz, this) + this.register((PUREXRecipe) new PUREXRecipe("purex.watzboron").setup(60, watzPower).setNameWrapper("purex.recycle").setGroup(autoWatz, this) .inputItems(new ComparableStack(ModItems.watz_pellet_depleted, 1, EnumWatzType.BORON)) .inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250)) .outputItems(new ItemStack(ModItems.powder_coal_tiny, 12), @@ -442,7 +441,7 @@ public class PUREXRecipes extends GenericRecipes { .outputFluids(new FluidStack(Fluids.WATZ, 1_000)) .setIconToFirstIngredient()); - this.register(new GenericRecipe("purex.watzdu").setup(60, watzPower).setNameWrapper("purex.recycle").setGroup(autoWatz, this) + this.register((PUREXRecipe) new PUREXRecipe("purex.watzdu").setup(60, watzPower).setNameWrapper("purex.recycle").setGroup(autoWatz, this) .inputItems(new ComparableStack(ModItems.watz_pellet_depleted, 1, EnumWatzType.DU)) .inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250)) .outputItems(new ItemStack(ModItems.nugget_polonium, 12), @@ -457,7 +456,7 @@ public class PUREXRecipes extends GenericRecipes { ItemStack copy = nuggetNQR.copy(); copy.stackSize = 12; - this.register(new GenericRecipe("purex.watznaqadah").setup(60, watzPower).setNameWrapper("purex.recycle").setGroup(autoWatz, this) + this.register((PUREXRecipe) new PUREXRecipe("purex.watznaqadah").setup(60, watzPower).setNameWrapper("purex.recycle").setGroup(autoWatz, this) .inputItems(new ComparableStack(ModItems.watz_pellet_depleted, 1, EnumWatzType.NQD)) .inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250)) .outputItems(copy, @@ -466,7 +465,7 @@ public class PUREXRecipes extends GenericRecipes { .outputFluids(new FluidStack(Fluids.WATZ, 1_000)) .setIconToFirstIngredient()); - this.register(new GenericRecipe("purex.watznaqadria").setup(60, watzPower).setNameWrapper("purex.recycle").setGroup(autoWatz, this) + this.register((PUREXRecipe) new PUREXRecipe("purex.watznaqadria").setup(60, watzPower).setNameWrapper("purex.recycle").setGroup(autoWatz, this) .inputItems(new ComparableStack(ModItems.watz_pellet_depleted, 1, EnumWatzType.NQR)) .inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250)) .outputItems(new ItemStack(ModItems.nugget_co60, 12), @@ -477,7 +476,7 @@ public class PUREXRecipes extends GenericRecipes { } //ICF - this.register(new GenericRecipe("purex.icf").setup(300, 10_000).setNameWrapper("purex.recycle") + this.register((PUREXRecipe) new PUREXRecipe("purex.icf").setup(300, 10_000).setNameWrapper("purex.recycle") .inputItems(new ComparableStack(ModItems.icf_pellet_depleted)) .outputItems(new ItemStack(ModItems.icf_pellet_empty, 1), new ItemStack(ModItems.pellet_charged, 1), @@ -486,22 +485,22 @@ public class PUREXRecipes extends GenericRecipes { .setIconToFirstIngredient()); /// Vitrification - this.register(new GenericRecipe("purex.vitliquid").setup(100, vitrification) + this.register((PUREXRecipe) new PUREXRecipe("purex.vitliquid").setup(100, vitrification) .inputItems(new ComparableStack(ModBlocks.sand_mix, 1, EnumSandType.LEAD)) .inputFluids(new FluidStack(Fluids.WASTEFLUID, 1_000)) .outputItems(new ItemStack(ModItems.nuclear_waste_vitrified))); - this.register(new GenericRecipe("purex.vitgaseous").setup(100, vitrification) + this.register((PUREXRecipe) new PUREXRecipe("purex.vitgaseous").setup(100, vitrification) .inputItems(new ComparableStack(ModBlocks.sand_mix, 1, EnumSandType.LEAD)) .inputFluids(new FluidStack(Fluids.WASTEGAS, 1_000)) .outputItems(new ItemStack(ModItems.nuclear_waste_vitrified))); - this.register(new GenericRecipe("purex.vitsolid").setup(300, vitrification) + this.register((PUREXRecipe) new PUREXRecipe("purex.vitsolid").setup(300, vitrification) .inputItems(new ComparableStack(ModBlocks.sand_mix, 1, EnumSandType.LEAD), new ComparableStack(ModItems.nuclear_waste, 4)) .outputItems(new ItemStack(ModItems.nuclear_waste_vitrified, 4))); // Schrabidium - this.register(new GenericRecipe("purex.schraranium").setup(200, 1_000).setNameWrapper("purex.schrab") + this.register((PUREXRecipe) new PUREXRecipe("purex.schraranium").setup(200, 1_000).setNameWrapper("purex.schrab") .inputItems(new ComparableStack(ModItems.ingot_schraranium)) .inputFluids(new FluidStack(Fluids.KEROSENE, 2_000), new FluidStack(Fluids.NITRIC_ACID, 1_000)) .outputItems(new ItemStack(ModItems.nugget_schrabidium, 3), @@ -510,21 +509,21 @@ public class PUREXRecipes extends GenericRecipes { .setIconToFirstIngredient()); String autoSchrab = "autoswitch.schrab"; - this.register(new GenericRecipe("purex.schrabzirnox").setup(200, 50_000).setNameWrapper("purex.schrab").setGroup(autoSchrab, this) + this.register((PUREXRecipe) new PUREXRecipe("purex.schrabzirnox").setup(200, 50_000).setNameWrapper("purex.schrab").setGroup(autoSchrab, this) .inputItems(new ComparableStack(ModItems.waste_plutonium)) .inputFluids(new FluidStack(Fluids.SOLVENT, 4_000), new FluidStack(Fluids.SCHRABIDIC, 250)) .outputItems(new ItemStack(ModItems.powder_schrabidium, 1), new ItemStack(ModItems.nugget_technetium, 3), new ItemStack(ModItems.nuclear_waste_tiny, 4)) .setIconToFirstIngredient()); - this.register(new GenericRecipe("purex.schrabpwr").setup(200, 50_000).setNameWrapper("purex.schrab").setGroup(autoSchrab, this) + this.register((PUREXRecipe) new PUREXRecipe("purex.schrabpwr").setup(200, 50_000).setNameWrapper("purex.schrab").setGroup(autoSchrab, this) .inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.MEP)) .inputFluids(new FluidStack(Fluids.SOLVENT, 4_000), new FluidStack(Fluids.SCHRABIDIC, 250)) .outputItems(new ItemStack(ModItems.powder_schrabidium, 1), new ItemStack(ModItems.nugget_technetium, 3), new ItemStack(ModItems.nuclear_waste_tiny, 4)) .setIconToFirstIngredient()); - this.register(new GenericRecipe("purex.schrabmen").setup(200, 50_000).setNameWrapper("purex.schrab").setGroup(autoSchrab, this) + this.register((PUREXRecipe) new PUREXRecipe("purex.schrabmen").setup(200, 50_000).setNameWrapper("purex.schrab").setGroup(autoSchrab, this) .inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.MEN)) .inputFluids(new FluidStack(Fluids.SOLVENT, 4_000), new FluidStack(Fluids.SCHRABIDIC, 250)) .outputItems(new ItemStack(ModItems.powder_schrabidium, 1), diff --git a/src/main/java/com/hbm/inventory/recipes/PlasmaForgeRecipe.java b/src/main/java/com/hbm/inventory/recipes/PlasmaForgeRecipe.java index e8cb2fa9c..4637b8bd0 100644 --- a/src/main/java/com/hbm/inventory/recipes/PlasmaForgeRecipe.java +++ b/src/main/java/com/hbm/inventory/recipes/PlasmaForgeRecipe.java @@ -5,8 +5,11 @@ import java.util.List; import com.hbm.inventory.recipes.loader.GenericRecipe; import com.hbm.util.BobMathUtil; +import com.hbm.util.Clock; import com.hbm.util.i18n.I18nUtil; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.FontRenderer; import net.minecraft.util.EnumChatFormatting; public class PlasmaForgeRecipe extends GenericRecipe { @@ -31,4 +34,22 @@ public class PlasmaForgeRecipe extends GenericRecipe { return list; } + + @Override + public void printNEIExtras() { + + int side = 164; + FontRenderer fontRenderer = Minecraft.getMinecraft().fontRenderer; + + String duration = BobMathUtil.getShortNumber(this.duration) + " ticks"; + fontRenderer.drawString(duration, side - fontRenderer.getStringWidth(duration), 45, 0x404040); + + if(Clock.get_ms() % 2000 < 1000) { + String consumption = BobMathUtil.getShortNumber(this.power) + "HE/t"; + fontRenderer.drawString(consumption, side - fontRenderer.getStringWidth(consumption), 57, 0x404040); + } else { + String temp = BobMathUtil.getShortNumber(this.ignitionTemp) + "TU/t"; + fontRenderer.drawString(temp, side - fontRenderer.getStringWidth(temp), 57, 0xa000a0); + } + } } diff --git a/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipe.java b/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipe.java index 145ed89ab..40ee9bf27 100644 --- a/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipe.java +++ b/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipe.java @@ -17,6 +17,8 @@ import com.hbm.util.BobMathUtil; import com.hbm.util.i18n.I18nUtil; import net.minecraft.block.Block; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.FontRenderer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; @@ -132,6 +134,17 @@ public class GenericRecipe { if(this.nameWrapper != null) name = I18nUtil.resolveKey(this.nameWrapper, name); return name; } + + public void printNEIExtras() { + + FontRenderer fontRenderer = Minecraft.getMinecraft().fontRenderer; + String duration = BobMathUtil.getShortNumber(this.duration) + " ticks"; + String consumption = BobMathUtil.getShortNumber(this.power) + "HE/t"; + + int side = 164; + fontRenderer.drawString(duration, side - fontRenderer.getStringWidth(duration), 45, 0x404040); + fontRenderer.drawString(consumption, side - fontRenderer.getStringWidth(consumption), 57, 0x404040); + } public List print() { List list = new ArrayList(); @@ -186,7 +199,6 @@ public class GenericRecipe { } } - /** Default impl only matches localized name substring, can be extended to include ingredients as well */ public boolean matchesSearch(String substring) { return getLocalizedName().toLowerCase(Locale.US).contains(substring.toLowerCase(Locale.US)); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 7544c7782..1204e54e2 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -517,7 +517,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.flame_war), 1), new Object[] { "WHW", "CTP", "WOW", 'W', Item.getItemFromBlock(Blocks.planks), 'T', Item.getItemFromBlock(Blocks.tnt), 'H', ModItems.flame_pony, 'C', ModItems.flame_conspiracy, 'P', ModItems.flame_politics, 'O', ModItems.flame_opinion }); addRecipeAuto(new ItemStack(ModBlocks.det_cord, 4), new Object[] { " P ", "PGP", " P ", 'P', Items.paper, 'G', Items.gunpowder }); addRecipeAuto(new ItemStack(ModBlocks.det_charge, 1), new Object[] { "PDP", "DTD", "PDP", 'P', STEEL.plate(), 'D', ModBlocks.det_cord, 'T', ANY_PLASTICEXPLOSIVE.ingot() }); - addRecipeAuto(new ItemStack(ModBlocks.det_nuke, 1), new Object[] { "PFP", "DCD", "PFP", 'P', DESH.plateCast(), 'D', ModBlocks.det_charge, 'C', ModItems.man_core, 'F', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CONTROLLER) }); + addRecipeAuto(new ItemStack(ModBlocks.det_nuke, 1), new Object[] { "PFP", "DCD", "PFP", 'P', ModItems.neutron_reflector, 'D', ModBlocks.det_charge, 'C', ModItems.man_core, 'F', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CONTROLLER) }); addRecipeAuto(new ItemStack(ModBlocks.det_miner, 4), new Object[] { "FFF", "ITI", "ITI", 'F', Items.flint, 'I', IRON.plate(), 'T', ModItems.ball_dynamite }); addRecipeAuto(new ItemStack(ModBlocks.det_miner, 12), new Object[] { "FFF", "ITI", "ITI", 'F', Items.flint, 'I', STEEL.plate(), 'T', ANY_PLASTICEXPLOSIVE.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.emp_bomb, 1), new Object[] { "LML", "LCL", "LML", 'L', PB.plate(), 'M', ModItems.magnetron, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED) }); diff --git a/src/main/java/com/hbm/util/ColorUtil.java b/src/main/java/com/hbm/util/ColorUtil.java index eb5554ade..04603885a 100644 --- a/src/main/java/com/hbm/util/ColorUtil.java +++ b/src/main/java/com/hbm/util/ColorUtil.java @@ -71,6 +71,10 @@ public class ColorUtil { } } + public static int color(int r, int g, int b) { + return ((r & 255) << 16) | ((g & 255) << 8) | (b & 255); + } + public static int ir(int color) { return (color & 0xff0000) >> 16; } diff --git a/src/main/resources/assets/hbm/manual/material/steel.json b/src/main/resources/assets/hbm/manual/material/steel.json index a8ec9cb71..06c913dd6 100644 --- a/src/main/resources/assets/hbm/manual/material/steel.json +++ b/src/main/resources/assets/hbm/manual/material/steel.json @@ -9,7 +9,7 @@ "zh_CN": "钢" }, "content": { - "en_US": "Upgraded version of iron, basic material. Used in almost everything. Initially obtained by combining coal and iron in a [[blast furnace|Blast Furnace]]. Upgraded recipes are available later on via [[crucible|Crucible]] and [[rotary furnace|Rotary Furnace]].", + "en_US": "Upgraded version of iron, basic material. Used in almost everything. Initially obtained by combining sand, coal and iron in a [[blast furnace|Blast Furnace]]. Upgraded recipes are available later on via [[crucible|Crucible]] and [[rotary furnace|Rotary Furnace]].", "uk_UA": "Покращена версія заліза, базовий матеріал. Використовується майже в усьому. Спочатку отримується шляхом поєднання вугілля та заліза в [[доменній печі|Blast Furnace]]. Покращені рецепти доступні пізніше в [[ливарні|Crucible]] та [[роторній печі|Rotary Furnace]].", "ru_RU": "Улучшенная версия железа, базовый материал. Используется почти во всем. Изначально получается путём комбинирования угля и железа в [[доменной печи|Blast Furnace]]. Улучшенные рецепты доступны позже через [[тигель|Crucible]] и [[роторную печь|Rotary Furnace]].", "zh_CN": "铁的升级版,是一种基础金属,几乎所有东西都要用到钢。最初可通过在[[高炉|Blast Furnace]]中混合煤炭和铁获取,而之后也有通过[[坩埚|Crucible]]和[[回转炉|Rotary Furnace]]制作的高级配方。"