From e273b494a43f457dbdbac5bda49701ecb9101edb Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 12 May 2024 22:32:18 +0200 Subject: [PATCH] recipes --- changelog | 9 ++- gradle.properties | 2 +- .../com/hbm/blocks/machine/SoyuzLauncher.java | 1 + .../com/hbm/crafting/SmeltingRecipes.java | 10 +-- .../hbm/handler/nei/ConstructionHandler.java | 14 ++++ .../inventory/recipes/AssemblerRecipes.java | 81 +++++++++++++++++-- src/main/java/com/hbm/lib/RefStrings.java | 2 +- .../machine/TileEntityICFStruct.java | 14 ++++ .../machine/TileEntityMachineCentrifuge.java | 2 +- src/main/resources/assets/hbm/lang/de_DE.lang | 6 ++ src/main/resources/assets/hbm/lang/en_US.lang | 6 ++ 11 files changed, 130 insertions(+), 17 deletions(-) diff --git a/changelog b/changelog index 07977c419..4e94783ae 100644 --- a/changelog +++ b/changelog @@ -3,6 +3,7 @@ * Can create custom ICF fuel pellets * Pellets use binary fuels, meaning they need two different fluids, two different solids or a solid and a fluid * Optionally, the pellet maker can accept muon capsules, each capsule can add muons to up to 16 pellets, reducing the laser input requirement + * Fuels currently only have default stats, custom stats will be added in the future ## Changed * To make balancing easier, ICFs will only directly convert 25% of incoming laser heat into output heat when there is no fuel pellet loaded, meaning when using fuel, direct heating does not apply @@ -13,7 +14,13 @@ * This fixes an issue where spamming too many blocks like that could potentially crash servers * Most explosives go off after a short delay, flammable barrels however will explode on impact * Removed unused permanent wings +* Added recipes to the ICF parts, the ICF can now be made in survival mode (recipes are still subject to change) ## Fixed * Fixed ICF laser parts being considered valid when bordering an otherwise invalid dependency block -* Fixed soyuz launcher NEI recipe showing the wrong amount of items \ No newline at end of file +* Fixed soyuz launcher NEI recipe showing the wrong amount of items +* Fixed infinite xp exploit by constantly smelting and cooling things like meteorite ingots +* Fixed centrifuge speed upgrade tooltip +* Fixed smokestacks not working with a lot of machines +* Fixed soot values being completely off for most machines +* Fixed glyphid scouts not spawning in the daylight in rampant mode \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index b22563fd6..d5142bc37 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4956 +mod_build_number=4963 credits=HbMinecraft,\ \ rodolphito (explosion algorithms),\ diff --git a/src/main/java/com/hbm/blocks/machine/SoyuzLauncher.java b/src/main/java/com/hbm/blocks/machine/SoyuzLauncher.java index 3a5b6445b..598f9aef4 100644 --- a/src/main/java/com/hbm/blocks/machine/SoyuzLauncher.java +++ b/src/main/java/com/hbm/blocks/machine/SoyuzLauncher.java @@ -218,6 +218,7 @@ public class SoyuzLauncher extends BlockDummyable { world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.struct_launcher, 30))); world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.struct_scaffold, 63))); world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.concrete_smooth, 38))); + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.struct_soyuz_core, 1))); world.func_147453_f(x, y, z, p_149749_5_); } diff --git a/src/main/java/com/hbm/crafting/SmeltingRecipes.java b/src/main/java/com/hbm/crafting/SmeltingRecipes.java index 8353cdcef..56d9e1c77 100644 --- a/src/main/java/com/hbm/crafting/SmeltingRecipes.java +++ b/src/main/java/com/hbm/crafting/SmeltingRecipes.java @@ -170,11 +170,11 @@ public class SmeltingRecipes { GameRegistry.addSmelting(ModItems.circuit_red_copper, new ItemStack(ModItems.circuit_copper, 1), 1.0F); GameRegistry.addSmelting(ModItems.circuit_copper, new ItemStack(ModItems.circuit_aluminium, 1), 1.0F); - GameRegistry.addSmelting(ModItems.ingot_chainsteel, ItemHot.heatUp(new ItemStack(ModItems.ingot_chainsteel)), 1.0F); - GameRegistry.addSmelting(ModItems.ingot_meteorite, ItemHot.heatUp(new ItemStack(ModItems.ingot_meteorite)), 1.0F); - GameRegistry.addSmelting(ModItems.ingot_meteorite_forged, ItemHot.heatUp(new ItemStack(ModItems.ingot_meteorite_forged)), 1.0F); - GameRegistry.addSmelting(ModItems.blade_meteorite, ItemHot.heatUp(new ItemStack(ModItems.blade_meteorite)), 1.0F); - GameRegistry.addSmelting(ModItems.meteorite_sword, ItemHot.heatUp(new ItemStack(ModItems.meteorite_sword_seared)), 1.0F); + GameRegistry.addSmelting(ModItems.ingot_chainsteel, ItemHot.heatUp(new ItemStack(ModItems.ingot_chainsteel)), 0.0F); + GameRegistry.addSmelting(ModItems.ingot_meteorite, ItemHot.heatUp(new ItemStack(ModItems.ingot_meteorite)), 0.0F); + GameRegistry.addSmelting(ModItems.ingot_meteorite_forged, ItemHot.heatUp(new ItemStack(ModItems.ingot_meteorite_forged)), 0.0F); + GameRegistry.addSmelting(ModItems.blade_meteorite, ItemHot.heatUp(new ItemStack(ModItems.blade_meteorite)), 0.0F); + GameRegistry.addSmelting(ModItems.meteorite_sword, ItemHot.heatUp(new ItemStack(ModItems.meteorite_sword_seared)), 0.0F); GameRegistry.addSmelting(new ItemStack(ModItems.scrap_plastic, 1, OreDictionary.WILDCARD_VALUE), new ItemStack(ModItems.ingot_polymer), 0.1F); diff --git a/src/main/java/com/hbm/handler/nei/ConstructionHandler.java b/src/main/java/com/hbm/handler/nei/ConstructionHandler.java index 37f1386ee..aff8c64c0 100644 --- a/src/main/java/com/hbm/handler/nei/ConstructionHandler.java +++ b/src/main/java/com/hbm/handler/nei/ConstructionHandler.java @@ -101,6 +101,20 @@ public class ConstructionHandler extends NEIUniversalHandler { bufferedRecipes.put(soysauce, new ItemStack(ModBlocks.soyuz_launcher)); bufferedTools.put(soysauce, new ItemStack(ModBlocks.struct_soyuz_core)); + /* ICF */ + ItemStack[] icf = new ItemStack[] { + new ItemStack(ModBlocks.icf_component, 50, 0), + ItemStackUtil.addTooltipToStack(new ItemStack(ModBlocks.icf_component, 240, 3), EnumChatFormatting.RED + "3x64 + 48"), + ItemStackUtil.addTooltipToStack(Mats.MAT_DURA.make(ModItems.bolt, 960), EnumChatFormatting.RED + "9x64"), + ItemStackUtil.addTooltipToStack(Mats.MAT_STEEL.make(ModItems.plate_cast, 240), EnumChatFormatting.RED + "3x64 + 48"), + ItemStackUtil.addTooltipToStack(new ItemStack(ModBlocks.icf_component, 117, 1), EnumChatFormatting.RED + "64 + 53"), + ItemStackUtil.addTooltipToStack(Mats.MAT_BBRONZE.make(ModItems.plate_cast, 117), EnumChatFormatting.RED + "64 + 53"), + new ItemStack(ModItems.blowtorch), + new ItemStack(ModItems.boltgun) }; + + bufferedRecipes.put(icf, new ItemStack(ModBlocks.icf)); + bufferedTools.put(icf, new ItemStack(ModBlocks.struct_icf_core)); + return recipes ? bufferedRecipes : bufferedTools; } } diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 4a282e8e1..632f54195 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -18,6 +18,7 @@ import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockCap.EnumCapBlock; +import com.hbm.blocks.machine.BlockICFLaserComponent.EnumICFPart; import com.hbm.config.GeneralConfig; import com.hbm.inventory.OreDictManager; import com.hbm.inventory.RecipesCommon.*; @@ -929,14 +930,78 @@ public class AssemblerRecipes extends SerializableRecipe { new ComparableStack(ModItems.circuit_gold, 1) }, 400); - makeRecipe(new ComparableStack(ModItems.euphemium_capacitor, 1), new AStack[] - { - new OreDictStack(NB.ingot(), 4), - new ComparableStack(ModItems.redcoil_capacitor, 1), - new ComparableStack(ModItems.ingot_euphemium, 4), - new ComparableStack(ModItems.circuit_tantalium, 6), - new ComparableStack(ModItems.powder_nitan_mix, 18), - }, 600); + makeRecipe(new ComparableStack(ModItems.euphemium_capacitor, 1), new AStack[] { + new OreDictStack(NB.ingot(), 4), + new ComparableStack(ModItems.redcoil_capacitor, 1), + new ComparableStack(ModItems.ingot_euphemium, 4), + new ComparableStack(ModItems.circuit_tantalium, 6), + new ComparableStack(ModItems.powder_nitan_mix, 18), + }, 600); + + makeRecipe(new ComparableStack(ModBlocks.icf_laser_component, 1, EnumICFPart.CELL.ordinal()), new AStack[] { + new ComparableStack(ModItems.ingot_cft, 4), + new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 4), + new ComparableStack(ModBlocks.glass_quartz, 16) + }, 200); + makeRecipe(new ComparableStack(ModBlocks.icf_laser_component, 1, EnumICFPart.EMITTER.ordinal()), new AStack[] { + new OreDictStack(W.plateWelded(), 4), + new OreDictStack(MAGTUNG.wireDense(), 16), + new OreDictStack(Fluids.XENON.getDict(16_000)) + }, 200); + makeRecipe(new ComparableStack(ModBlocks.icf_laser_component, 1, EnumICFPart.CAPACITOR.ordinal()), new AStack[] { + new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 2), + new OreDictStack(ND.wireDense(), 16), + new OreDictStack(SBD.ingot(), 4) + }, 200); + makeRecipe(new ComparableStack(ModBlocks.icf_laser_component, 1, EnumICFPart.TURBO.ordinal()), new AStack[] { + new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 2), + new OreDictStack(DNT.wireDense(), 8), + new OreDictStack(SBD.ingot(), 16) + }, 200); + makeRecipe(new ComparableStack(ModBlocks.icf_laser_component, 1, EnumICFPart.CASING.ordinal()), new AStack[] { + new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 4), + new OreDictStack(BIGMT.plateCast(), 4), + new OreDictStack(ANY_HARDPLASTIC.ingot(), 16) + }, 200); + makeRecipe(new ComparableStack(ModBlocks.icf_laser_component, 1, EnumICFPart.PORT.ordinal()), new AStack[] { + new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 2), + new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), + new OreDictStack(ND.wireDense(), 4) + }, 200); + makeRecipe(new ComparableStack(ModBlocks.icf_controller, 1), new AStack[] { + new ComparableStack(ModItems.ingot_cft, 16), + new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 4), + new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), + new OreDictStack(KEY_CIRCUIT_BISMUTH, 4) + }, 200); + + makeRecipe(new ComparableStack(ModBlocks.icf_component, 1, 0), new AStack[] { + new OreDictStack(STEEL.plateWelded(), 4), + new OreDictStack(TI.plateWelded(), 2), + }, 200); + makeRecipe(new ComparableStack(ModBlocks.icf_component, 1, 1), new AStack[] { + new ComparableStack(ModItems.ingot_cft, 2), + new OreDictStack(CMB.plateCast(), 1), + new OreDictStack(W.plateWelded(), 2), + }, 200); + makeRecipe(new ComparableStack(ModBlocks.icf_component, 1, 3), new AStack[] { + new OreDictStack(STEEL.plateWelded(), 2), + new OreDictStack(CU.plateWelded(), 2), + new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 1) + }, 200); + makeRecipe(new ComparableStack(ModBlocks.struct_icf_core, 1), new AStack[] { + new OreDictStack(CMB.plateWelded(), 16), + new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 16), + new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 16), + new OreDictStack(SBD.wireDense(), 32), + new OreDictStack(KEY_CIRCUIT_BISMUTH, 16), + new ComparableStack(ModItems.circuit_schrabidium, 24), + }, 600); + makeRecipe(new ComparableStack(ModBlocks.machine_icf_press, 1), new AStack[] { + new OreDictStack(GOLD.plateCast(), 8), + new ComparableStack(ModItems.motor, 4), + new OreDictStack(KEY_CIRCUIT_BISMUTH, 1), + }, 100); makeRecipe(new ComparableStack(DictFrame.fromOne(ModBlocks.block_cap, EnumCapBlock.NUKA)), new AStack[] { new ComparableStack(ModItems.cap_nuka, 128) }, 10); makeRecipe(new ComparableStack(DictFrame.fromOne(ModBlocks.block_cap, EnumCapBlock.QUANTUM)), new AStack[] { new ComparableStack(ModItems.cap_quantum, 128) }, 10); diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 7a8f45668..cd0a38dc4 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4956)"; + public static final String VERSION = "1.0.27 BETA (4963)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityICFStruct.java b/src/main/java/com/hbm/tileentity/machine/TileEntityICFStruct.java index d2d6c641e..8cbfc218b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityICFStruct.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityICFStruct.java @@ -4,8 +4,11 @@ import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.machine.MachineICF; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.common.util.ForgeDirection; public class TileEntityICFStruct extends TileEntity { @@ -47,4 +50,15 @@ public class TileEntityICFStruct extends TileEntity { return worldObj.getBlock(ix, iy, iz) == block && worldObj.getBlockMetadata(ix, iy, iz) == meta; } + + @Override + public AxisAlignedBB getRenderBoundingBox() { + return TileEntity.INFINITE_EXTENT_AABB; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java index 71694f632..a8e271bf5 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java @@ -330,7 +330,7 @@ public class TileEntityMachineCentrifuge extends TileEntityMachineBase implement public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_centrifuge)); if(type == UpgradeType.SPEED) { - info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level * 100) + "%")); + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (100 - 100 / (level + 1)) + "%")); info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 100) + "%")); } if(type == UpgradeType.POWER) { diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 7614eb3ff..cabde0f6a 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -4103,6 +4103,11 @@ tile.machine_hydrotreater.name=Hydrotreater tile.impact_dirt.name=Versengte Erde tile.icf.name=Trägheitsfusionsreaktor (ICF) tile.icf_block.name=ICF-Laser +tile.icf_component.name=ICF-Stabilitätselement +tile.icf_component.structure.name=ICF-Gehäuse +tile.icf_component.structure_bolted.name=ICF-Gehäuse (Genietet) +tile.icf_component.vessel.name=ICF-Eindämmungsgefäß +tile.icf_component.vessel_welded.name=ICF-Eindämmungsgefäß (Verschwißt) tile.icf_controller.name=ICF-Lasersteuerung tile.icf_laser_component.capacitor.name=ICF-Laser-Kondensator tile.icf_laser_component.casing.name=ICF-Laser-Gehäuse @@ -4605,6 +4610,7 @@ tile.stone_resource.hematite.name=Hämatit tile.stone_resource.limestone.name=Kalkstein tile.stone_resource.malachite.name=Malachit tile.stone_resource.sulfur.name=Schwefelhaltiger Stein +tile.struct_icf_core.name=Trägheitsfusionsreaktor-Kernkomponente tile.struct_iter_core.name=Fusionsreaktor-Kernkomponente tile.struct_launcher.name=Startrampe-Komponentenblock tile.struct_launcher_core.name=Kompaktrampe-Kernkomponente diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 7a690afaa..e09490ab8 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -5163,6 +5163,11 @@ tile.machine_hydrotreater.name=Hydrotreater tile.impact_dirt.name=Scorched Dirt tile.icf.name=Inertial Confinement Fusion Reactor (ICF) tile.icf_block.name=ICF Laser +tile.icf_component.name=ICF Stability Element +tile.icf_component.structure.name=ICF Casing +tile.icf_component.structure_bolted.name=ICF Casing (Riveted) +tile.icf_component.vessel.name=ICF Containment Vessel Wall +tile.icf_component.vessel_welded.name=ICF Containment Vessel Wall (Welded) tile.icf_controller.name=ICF Laser Controller tile.icf_laser_component.capacitor.name=ICF Laser Capacitor tile.icf_laser_component.casing.name=ICF Laser Casing @@ -5679,6 +5684,7 @@ tile.stone_resource.hematite.name=Hematite tile.stone_resource.limestone.name=Limestone tile.stone_resource.malachite.name=Malachite tile.stone_resource.sulfur.name=Sulfurous Stone +tile.struct_icf_core.name=Inertial Confinement Fusion Reactor Core Component tile.struct_iter_core.name=Fusion Reactor Core Component tile.struct_launcher.name=Launch Pad Component Block tile.struct_launcher_core.name=Compact Launcher Core Component