diff --git a/changelog b/changelog index 8e403af29..bc517c4ea 100644 --- a/changelog +++ b/changelog @@ -1,34 +1,15 @@ -## Added -* Blueprint booklets - * Can be found in worldgen - * Using it will create one random blueprint of the same type as the booklet -* Liquid concrete - * It's conk but liquid -* Rebar - * When hooked up to liquid concrete using pipes, will fill to create reinforced concrete - * Fills bottom to top, so connect the pipes to the top -* Rebar placer - * Can be configured with different types of concrete, reinforced or not, or even colored - * Rebar created with the rebar placer will remember its type and assume it when being filled with liquid concrete -* PUREX - * Chemplant-like nuclear fuel reprocessing machine - * Handles all the nuclear fuel reprocessing that was previously done by the standard centrifuge - * All reprocessing recipes now require both kerosene and nitric acid - * Also handles the vitrification recipes and the thorium salt reprocessing from the chemical plant +## Added (last time, i forgor) +* RBMK autoloader + * Can be placed on top of RBMK fuel rods + * Can be configured to switch fuel rods in 5% depletion increments + * Usable with all forms of item transport like conveyors and pneumatic tubes ## Changed -* The alternate recipes for nitric acid and xenon gas in the chemical plant now require blueprints -* The chemical plant now has a recipe for making cobblestone from 25mB of lava (which can be liquefacted into even more lava, useful for cobblestone generation) -* Removed the old arc furnace -* Mining lasers now build up barricades in all directions and not just horizontal ones, preventing potential deadlocks due to liquid flowing in from above -* One of the new secret parts for making a certain weapon is now obtainable again via red rooms -* Biogas can now be cracked into aromatics and petroleum gas -* Custom missile part recipes have been added to the new assembler -* Mini nukes are now made from weapon steel instead of regular steel +* Replaced "re-enrichment" in the PUREX recipes with "reprocessing" ## Fixed -* Fixed a few assembler recipes using the old crafting numbers which sometimes exceed the stack limit - * As an extra safeguard, the recipe loader now throws an exception if that happens -* Fixed dupe caused by the breeding reactor -* Fixed a potential crash caused by a change done to tile entity proxies in relation to EnergyControl -* Fixed the assembler achievement still using the old one \ No newline at end of file +* Fixed many of the PUREX' recipe categories simply not processing + * It worked last time I swear +* Fixed life-ending issue where the assembler achievement's icon was incorrect +* Fixed RBMK autoloader not having a recipe + * Ow \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 70b2eaeea..e40665d77 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=5397 +mod_build_number=5412H1 credits=HbMinecraft,\ \ rodolphito (explosion algorithms),\ diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 8e08eac42..99824c4d8 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1006,14 +1006,14 @@ public class ModBlocks { @Deprecated public static Block machine_assembler; public static Block machine_assembly_machine; - public static Block machine_assemfac; + @Deprecated public static Block machine_assemfac; public static Block machine_arc_welder; public static Block machine_soldering_station; public static Block machine_arc_furnace; @Deprecated public static Block machine_chemplant; public static Block machine_chemical_plant; - public static Block machine_chemfac; + @Deprecated public static Block machine_chemfac; public static Block machine_chemical_factory; public static Block machine_purex; public static Block machine_mixer; @@ -2237,14 +2237,14 @@ public class ModBlocks { machine_ore_slopper = new MachineOreSlopper().setBlockName("machine_ore_slopper").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_mining_laser = new MachineMiningLaser(Material.iron).setBlockName("machine_mining_laser").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_mining_laser"); barricade = new BlockNoDrop(Material.sand).setBlockName("barricade").setHardness(1.0F).setResistance(2.5F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":barricade"); - machine_assembler = new MachineAssembler(Material.iron).setBlockName("machine_assembler").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_assembler"); + machine_assembler = new MachineAssembler(Material.iron).setBlockName("machine_assembler").setHardness(5.0F).setResistance(30.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":machine_assembler"); machine_assembly_machine = new MachineAssemblyMachine(Material.iron).setBlockName("machine_assembly_machine").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - machine_assemfac = new MachineAssemfac(Material.iron).setBlockName("machine_assemfac").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + machine_assemfac = new MachineAssemfac(Material.iron).setBlockName("machine_assemfac").setHardness(5.0F).setResistance(30.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_arc_welder = new MachineArcWelder(Material.iron).setBlockName("machine_arc_welder").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_soldering_station = new MachineSolderingStation(Material.iron).setBlockName("machine_soldering_station").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - machine_chemplant = new MachineChemplant(Material.iron).setBlockName("machine_chemplant").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + machine_chemplant = new MachineChemplant(Material.iron).setBlockName("machine_chemplant").setHardness(5.0F).setResistance(30.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_chemical_plant = new MachineChemicalPlant(Material.iron).setBlockName("machine_chemical_plant").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - machine_chemfac = new MachineChemfac(Material.iron).setBlockName("machine_chemfac").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + machine_chemfac = new MachineChemfac(Material.iron).setBlockName("machine_chemfac").setHardness(5.0F).setResistance(30.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_chemical_factory = new MachineChemicalFactory(Material.iron).setBlockName("machine_chemical_factory").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_purex = new MachinePUREX(Material.iron).setBlockName("machine_purex").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_mixer = new MachineMixer(Material.iron).setBlockName("machine_mixer").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index 7d4a9e0d2..3e85fdfb4 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -552,7 +552,6 @@ public class OreDictManager { if(mat.smeltable == SmeltingBehavior.SMELTABLE) { if(mat.autogen.contains(MaterialShapes.CASTPLATE)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.CASTPLATE.name() + name, new ItemStack(ModItems.plate_cast, 1, mat.id)); if(mat.autogen.contains(MaterialShapes.WELDEDPLATE)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.WELDEDPLATE.name() + name, new ItemStack(ModItems.plate_welded, 1, mat.id)); - if(mat.autogen.contains(MaterialShapes.HEAVY_COMPONENT)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.HEAVY_COMPONENT.name() + name, new ItemStack(ModItems.heavy_component, 1, mat.id)); if(mat.autogen.contains(MaterialShapes.DENSEWIRE)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.DENSEWIRE.name() + name, new ItemStack(ModItems.wire_dense, 1, mat.id)); } if(mat.autogen.contains(MaterialShapes.BOLT)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.BOLT.name() + name, new ItemStack(ModItems.bolt, 1, mat.id)); @@ -680,7 +679,7 @@ public class OreDictManager { ANY_RUBBER.addPrefix(INGOT, true); ANY_PLASTIC.addPrefix(INGOT, true).addPrefix(DUST, true).addPrefix(BLOCK, true).addPrefix(GRIP, true).addPrefix(STOCK, true); ANY_HARDPLASTIC.addPrefix(INGOT, true).addPrefix(STOCK, true).addPrefix(GRIP, true); - ANY_RESISTANTALLOY.addPrefix(INGOT, true).addPrefix(DUST, true).addPrefix(CASTPLATE, true).addPrefix(WELDEDPLATE, true).addPrefix(HEAVY_COMPONENT, true).addPrefix(BLOCK, true) + ANY_RESISTANTALLOY.addPrefix(INGOT, true).addPrefix(DUST, true).addPrefix(CASTPLATE, true).addPrefix(WELDEDPLATE, true).addPrefix(BLOCK, true) .addPrefix(LIGHTBARREL, true).addPrefix(HEAVYBARREL, true).addPrefix(LIGHTRECEIVER, true).addPrefix(HEAVYRECEIVER, true); ANY_BISMOIDBRONZE.addPrefix(INGOT, true).addPrefix(CASTPLATE, true).addPrefix(LIGHTBARREL, true).addPrefix(HEAVYBARREL, true).addPrefix(LIGHTRECEIVER, true).addPrefix(HEAVYRECEIVER, true); ANY_TAR.addPrefix(ANY, false); @@ -759,7 +758,7 @@ public class OreDictManager { public String plate() { return PLATE.name() + mats[0]; } public String plateCast() { return CASTPLATE.name() + mats[0]; } public String plateWelded() { return WELDEDPLATE.name() + mats[0]; } - public String heavyComp() { return HEAVY_COMPONENT.name() + mats[0]; } + @Deprecated public String heavyComp() { return WELDEDPLATE.name() + mats[0]; } public String wireFine() { return WIRE.name() + mats[0]; } public String wireDense() { return DENSEWIRE.name() + mats[0]; } public String shell() { return SHELL.name() + mats[0]; } @@ -1013,7 +1012,7 @@ public class OreDictManager { public String plate() { return PLATE.name() + groupName; } public String plateCast() { return CASTPLATE.name() + groupName; } public String plateWelded() { return WELDEDPLATE.name() + groupName; } - public String heavyComp() { return HEAVY_COMPONENT.name() + groupName; } + @Deprecated public String heavyComp() { return WELDEDPLATE.name() + groupName; } public String wireFine() { return WIRE.name() + groupName; } public String wireDense() { return DENSEWIRE.name() + groupName; } public String billet() { return BILLET.name() + groupName; } diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenRecipeSelector.java b/src/main/java/com/hbm/inventory/gui/GUIScreenRecipeSelector.java index 4a5e3bb83..244a2549b 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenRecipeSelector.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenRecipeSelector.java @@ -135,7 +135,7 @@ public class GUIScreenRecipeSelector extends GuiScreen { if(guiLeft + ix <= mouseX && guiLeft + ix + 18 > mouseX && guiTop + iy < mouseY && guiTop + iy + 18 >= mouseY) { GenericRecipe recipe = recipes.get(i); - this.func_146283_a(recipe.print(), mouseX, mouseY); + this.func_146283_a(recipe.print(), 0, 900); } } } @@ -143,7 +143,7 @@ public class GUIScreenRecipeSelector extends GuiScreen { if(guiLeft + 151 <= mouseX && guiLeft + 151 + 18 > mouseX && guiTop + 71 < mouseY && guiTop + 71 + 18 >= mouseY) { if(this.selection != null && this.recipeSet.recipeNameMap.containsKey(selection)) { GenericRecipe recipe = (GenericRecipe) this.recipeSet.recipeNameMap.get(selection); - this.func_146283_a(recipe.print(), mouseX, mouseY); + this.func_146283_a(recipe.print(), 0, 900); } } diff --git a/src/main/java/com/hbm/inventory/material/MaterialShapes.java b/src/main/java/com/hbm/inventory/material/MaterialShapes.java index 2f7de0461..ef44dd613 100644 --- a/src/main/java/com/hbm/inventory/material/MaterialShapes.java +++ b/src/main/java/com/hbm/inventory/material/MaterialShapes.java @@ -34,7 +34,6 @@ public class MaterialShapes { public static final MaterialShapes PIPE = new MaterialShapes(INGOT.quantity * 3, "ntmpipe"); public static final MaterialShapes QUART = new MaterialShapes(162); public static final MaterialShapes BLOCK = new MaterialShapes(INGOT.quantity * 9, "block"); - public static final MaterialShapes HEAVY_COMPONENT = new MaterialShapes(CASTPLATE.quantity * 256, "componentHeavy"); public static final MaterialShapes LIGHTBARREL = new MaterialShapes(INGOT.quantity * 3, "barrelLight"); public static final MaterialShapes HEAVYBARREL = new MaterialShapes(INGOT.quantity * 6, "barrelHeavy"); diff --git a/src/main/java/com/hbm/inventory/material/Mats.java b/src/main/java/com/hbm/inventory/material/Mats.java index 5a03bf288..3d923dd47 100644 --- a/src/main/java/com/hbm/inventory/material/Mats.java +++ b/src/main/java/com/hbm/inventory/material/Mats.java @@ -100,11 +100,11 @@ public class Mats { public static final NTMMaterial MAT_GHIORSIUM = makeSmeltable(12836, GH336, 0xF4EFE1, 0x2A3306, 0xC6C6A1).setAutogen(NUGGET, BILLET, BLOCK).m(); //Base metals - public static final NTMMaterial MAT_TITANIUM = makeSmeltable(2200, TI, 0xF7F3F2, 0x4F4C4B, 0xA99E79).setAutogen(FRAGMENT, DUST, PLATE, DENSEWIRE, CASTPLATE, WELDEDPLATE, SHELL, BLOCK, HEAVY_COMPONENT).m(); - public static final NTMMaterial MAT_COPPER = makeSmeltable(2900, CU, 0xFDCA88, 0x601E0D, 0xC18336).setAutogen(FRAGMENT, WIRE, DUST, PLATE, DENSEWIRE, CASTPLATE, WELDEDPLATE, SHELL, PIPE, BLOCK, HEAVY_COMPONENT).m(); - public static final NTMMaterial MAT_TUNGSTEN = makeSmeltable(7400, W, 0x868686, 0x000000, 0x977474).setAutogen(FRAGMENT, WIRE, BOLT, DUST, DENSEWIRE, CASTPLATE, WELDEDPLATE, BLOCK, HEAVY_COMPONENT).m(); - public static final NTMMaterial MAT_ALUMINIUM = makeSmeltable(1300, AL, 0xFFFFFF, 0x344550, 0xD0B8EB).setAutogen(FRAGMENT, WIRE, DUST, PLATE, CASTPLATE, WELDEDPLATE, SHELL, PIPE, BLOCK, HEAVY_COMPONENT).m(); - public static final NTMMaterial MAT_LEAD = makeSmeltable(8200, PB, 0xA6A6B2, 0x03030F, 0x646470).setAutogen(FRAGMENT, NUGGET, WIRE, BOLT, DUST, PLATE, CASTPLATE, PIPE, BLOCK, HEAVY_COMPONENT).m(); + public static final NTMMaterial MAT_TITANIUM = makeSmeltable(2200, TI, 0xF7F3F2, 0x4F4C4B, 0xA99E79).setAutogen(FRAGMENT, DUST, PLATE, DENSEWIRE, CASTPLATE, WELDEDPLATE, SHELL, BLOCK).m(); + public static final NTMMaterial MAT_COPPER = makeSmeltable(2900, CU, 0xFDCA88, 0x601E0D, 0xC18336).setAutogen(FRAGMENT, WIRE, DUST, PLATE, DENSEWIRE, CASTPLATE, WELDEDPLATE, SHELL, PIPE, BLOCK).m(); + public static final NTMMaterial MAT_TUNGSTEN = makeSmeltable(7400, W, 0x868686, 0x000000, 0x977474).setAutogen(FRAGMENT, WIRE, BOLT, DUST, DENSEWIRE, CASTPLATE, WELDEDPLATE, BLOCK).m(); + public static final NTMMaterial MAT_ALUMINIUM = makeSmeltable(1300, AL, 0xFFFFFF, 0x344550, 0xD0B8EB).setAutogen(FRAGMENT, WIRE, DUST, PLATE, CASTPLATE, WELDEDPLATE, SHELL, PIPE, BLOCK).m(); + public static final NTMMaterial MAT_LEAD = makeSmeltable(8200, PB, 0xA6A6B2, 0x03030F, 0x646470).setAutogen(FRAGMENT, NUGGET, WIRE, BOLT, DUST, PLATE, CASTPLATE, PIPE, BLOCK).m(); public static final NTMMaterial MAT_BISMUTH = makeSmeltable(8300, BI, 0xB200FF, 0xB200FF, 0xB200FF).setAutogen(FRAGMENT, NUGGET, BILLET, DUST, BLOCK).m(); public static final NTMMaterial MAT_ARSENIC = makeSmeltable(3300, AS, 0x6CBABA, 0x242525, 0x558080).setAutogen(NUGGET).m(); public static final NTMMaterial MAT_TANTALIUM = makeSmeltable(7300, TA, 0xFFFFFF, 0x1D1D36, 0xA89B74).setAutogen(NUGGET, DUST, BLOCK).m(); @@ -135,15 +135,15 @@ public class Mats { public static final NTMMaterial MAT_OSMIRIDIUM = makeSmeltable(7699, OSMIRIDIUM, 0xDBE3EF, 0x7891BE, 0xACBDD9).setAutogen(NUGGET, CASTPLATE, WELDEDPLATE).m(); //Alloys - public static final NTMMaterial MAT_STEEL = makeSmeltable(_AS + 0, STEEL, 0xAFAFAF, 0x0F0F0F, 0x4A4A4A).setAutogen(DUSTTINY, BOLT, WIRE, DUST, PLATE, CASTPLATE, WELDEDPLATE, SHELL, PIPE, BLOCK, HEAVY_COMPONENT, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, GRIP).m(); + public static final NTMMaterial MAT_STEEL = makeSmeltable(_AS + 0, STEEL, 0xAFAFAF, 0x0F0F0F, 0x4A4A4A).setAutogen(DUSTTINY, BOLT, WIRE, DUST, PLATE, CASTPLATE, WELDEDPLATE, SHELL, PIPE, BLOCK, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, GRIP).m(); public static final NTMMaterial MAT_MINGRADE = makeSmeltable(_AS + 1, MINGRADE, 0xFFBA7D, 0xAF1700, 0xE44C0F).setAutogen(WIRE, DUST, DENSEWIRE, BLOCK).m(); - public static final NTMMaterial MAT_ALLOY = makeSmeltable(_AS + 2, ALLOY, 0xFF8330, 0x700000, 0xFF7318).setAutogen(WIRE, DUST, DENSEWIRE, PLATE, CASTPLATE, BLOCK, HEAVY_COMPONENT).m(); + public static final NTMMaterial MAT_ALLOY = makeSmeltable(_AS + 2, ALLOY, 0xFF8330, 0x700000, 0xFF7318).setAutogen(WIRE, DUST, DENSEWIRE, PLATE, CASTPLATE, BLOCK).m(); public static final NTMMaterial MAT_DURA = makeSmeltable(_AS + 3, DURA, 0x82A59C, 0x06281E, 0x42665C).setAutogen(BOLT, DUST, PLATE, CASTPLATE, PIPE, BLOCK, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, HEAVYRECEIVER, GRIP).m(); - public static final NTMMaterial MAT_DESH = makeSmeltable(_AS + 12, DESH, 0xFF6D6D, 0x720000, 0xF22929).setAutogen(DUST, CASTPLATE, BLOCK, HEAVY_COMPONENT, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, STOCK, GRIP).m(); + public static final NTMMaterial MAT_DESH = makeSmeltable(_AS + 12, DESH, 0xFF6D6D, 0x720000, 0xF22929).setAutogen(DUST, CASTPLATE, BLOCK, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, STOCK, GRIP).m(); public static final NTMMaterial MAT_STAR = makeSmeltable(_AS + 5, STAR, 0xCCCCEA, 0x11111A, 0xA5A5D3).setAutogen(DUST, DENSEWIRE, BLOCK).m(); public static final NTMMaterial MAT_FERRO = makeSmeltable(_AS + 7, FERRO, 0xB7B7C9, 0x101022, 0x6B6B8B).setAutogen(CASTPLATE, HEAVYBARREL, HEAVYRECEIVER).m(); - public static final NTMMaterial MAT_TCALLOY = makeSmeltable(_AS + 6, TCALLOY, 0xD4D6D6, 0x323D3D, 0x9CA6A6).setAutogen(DUST, CASTPLATE, WELDEDPLATE, HEAVY_COMPONENT, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, HEAVYRECEIVER).m(); - public static final NTMMaterial MAT_CDALLOY = makeSmeltable(_AS + 13, CDALLOY, 0xF7DF8F, 0x604308, 0xFBD368).setAutogen(CASTPLATE, WELDEDPLATE, HEAVY_COMPONENT, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, HEAVYRECEIVER).m(); + public static final NTMMaterial MAT_TCALLOY = makeSmeltable(_AS + 6, TCALLOY, 0xD4D6D6, 0x323D3D, 0x9CA6A6).setAutogen(DUST, CASTPLATE, WELDEDPLATE, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, HEAVYRECEIVER).m(); + public static final NTMMaterial MAT_CDALLOY = makeSmeltable(_AS + 13, CDALLOY, 0xF7DF8F, 0x604308, 0xFBD368).setAutogen(CASTPLATE, WELDEDPLATE, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, HEAVYRECEIVER).m(); public static final NTMMaterial MAT_BBRONZE = makeSmeltable(_AS + 16, BBRONZE, 0xE19A69, 0x485353, 0x987D65).setAutogen(CASTPLATE, LIGHTBARREL, LIGHTRECEIVER, HEAVYRECEIVER).m(); public static final NTMMaterial MAT_ABRONZE = makeSmeltable(_AS + 17, ABRONZE, 0xDB9462, 0x203331, 0x77644D).setAutogen(CASTPLATE, LIGHTBARREL, LIGHTRECEIVER, HEAVYRECEIVER).m(); public static final NTMMaterial MAT_BSCCO = makeSmeltable(_AS + 18, BSCCO, 0x767BF1, 0x000000, 0x5E62C0).setAutogen(DENSEWIRE).m(); diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 476cb5e31..f3a8f3f2e 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -43,7 +43,7 @@ import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -public class AssemblerRecipes extends SerializableRecipe { +@Deprecated public class AssemblerRecipes extends SerializableRecipe { public static HashMap recipes = new HashMap(); public static List recipeList = new ArrayList(); @@ -54,7 +54,7 @@ public class AssemblerRecipes extends SerializableRecipe { @Override public void registerDefaults() { - boolean exp = GeneralConfig.enableExpensiveMode; + boolean exp = false;//GeneralConfig.enableExpensiveMode; makeRecipe(new ComparableStack(ModItems.plate_iron, 2), new AStack[] {new OreDictStack(IRON.ingot(), 3), },30); makeRecipe(new ComparableStack(ModItems.plate_gold, 2), new AStack[] {new OreDictStack(GOLD.ingot(), 3), },30); diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblyMachineRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblyMachineRecipes.java index a99236b60..b3014e716 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblyMachineRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblyMachineRecipes.java @@ -57,20 +57,21 @@ public class AssemblyMachineRecipes extends GenericRecipes { public void registerDefaults() { // plates and ingots - this.register(new GenericRecipe("ass.plateiron").setup(60, 100).outputItems(new ItemStack(ModItems.plate_iron, 1)).inputItems(new OreDictStack(IRON.ingot())).setPools(GenericRecipes.POOL_PREFIX_ALT + "plates")); - this.register(new GenericRecipe("ass.plategold").setup(60, 100).outputItems(new ItemStack(ModItems.plate_gold, 1)).inputItems(new OreDictStack(GOLD.ingot())).setPools(GenericRecipes.POOL_PREFIX_ALT + "plates")); - this.register(new GenericRecipe("ass.platetitanium").setup(60, 100).outputItems(new ItemStack(ModItems.plate_titanium, 1)).inputItems(new OreDictStack(TI.ingot())).setPools(GenericRecipes.POOL_PREFIX_ALT + "plates")); - this.register(new GenericRecipe("ass.platealu").setup(60, 100).outputItems(new ItemStack(ModItems.plate_aluminium, 1)).inputItems(new OreDictStack(AL.ingot())).setPools(GenericRecipes.POOL_PREFIX_ALT + "plates")); - this.register(new GenericRecipe("ass.platesteel").setup(60, 100).outputItems(new ItemStack(ModItems.plate_steel, 1)).inputItems(new OreDictStack(STEEL.ingot())).setPools(GenericRecipes.POOL_PREFIX_ALT + "plates")); - this.register(new GenericRecipe("ass.platelead").setup(60, 100).outputItems(new ItemStack(ModItems.plate_lead, 1)).inputItems(new OreDictStack(PB.ingot())).setPools(GenericRecipes.POOL_PREFIX_ALT + "plates")); - this.register(new GenericRecipe("ass.platecopper").setup(60, 100).outputItems(new ItemStack(ModItems.plate_copper, 1)).inputItems(new OreDictStack(CU.ingot())).setPools(GenericRecipes.POOL_PREFIX_ALT + "plates")); - this.register(new GenericRecipe("ass.platealloy").setup(60, 100).outputItems(new ItemStack(ModItems.plate_advanced_alloy, 1)).inputItems(new OreDictStack(ALLOY.ingot())).setPools(GenericRecipes.POOL_PREFIX_ALT + "plates")); - this.register(new GenericRecipe("ass.plateschrab").setup(60, 100).outputItems(new ItemStack(ModItems.plate_schrabidium, 1)).inputItems(new OreDictStack(SA326.ingot())).setPools(GenericRecipes.POOL_PREFIX_ALT + "plates")); - this.register(new GenericRecipe("ass.platecmb").setup(60, 100).outputItems(new ItemStack(ModItems.plate_combine_steel, 1)).inputItems(new OreDictStack(CMB.ingot())).setPools(GenericRecipes.POOL_PREFIX_ALT + "plates")); - this.register(new GenericRecipe("ass.plategunmetal").setup(60, 100).outputItems(new ItemStack(ModItems.plate_gunmetal, 1)).inputItems(new OreDictStack(GUNMETAL.ingot())).setPools(GenericRecipes.POOL_PREFIX_ALT + "plates")); - this.register(new GenericRecipe("ass.plateweaponsteel").setup(60, 100).outputItems(new ItemStack(ModItems.plate_weaponsteel, 1)).inputItems(new OreDictStack(WEAPONSTEEL.ingot())).setPools(GenericRecipes.POOL_PREFIX_ALT + "plates")); - this.register(new GenericRecipe("ass.platesaturnite").setup(60, 100).outputItems(new ItemStack(ModItems.plate_saturnite, 1)).inputItems(new OreDictStack(BIGMT.ingot())).setPools(GenericRecipes.POOL_PREFIX_ALT + "plates")); - this.register(new GenericRecipe("ass.platedura").setup(60, 100).outputItems(new ItemStack(ModItems.plate_dura_steel, 1)).inputItems(new OreDictStack(DURA.ingot())).setPools(GenericRecipes.POOL_PREFIX_ALT + "plates")); + String autoPlate = "autoswitch.plates"; + this.register(new GenericRecipe("ass.plateiron").setup(60, 100).outputItems(new ItemStack(ModItems.plate_iron, 1)).inputItems(new OreDictStack(IRON.ingot())).setPools(GenericRecipes.POOL_PREFIX_ALT + "plates").setGroup(autoPlate, this)); + this.register(new GenericRecipe("ass.plategold").setup(60, 100).outputItems(new ItemStack(ModItems.plate_gold, 1)).inputItems(new OreDictStack(GOLD.ingot())).setPools(GenericRecipes.POOL_PREFIX_ALT + "plates").setGroup(autoPlate, this)); + this.register(new GenericRecipe("ass.platetitanium").setup(60, 100).outputItems(new ItemStack(ModItems.plate_titanium, 1)).inputItems(new OreDictStack(TI.ingot())).setPools(GenericRecipes.POOL_PREFIX_ALT + "plates").setGroup(autoPlate, this)); + this.register(new GenericRecipe("ass.platealu").setup(60, 100).outputItems(new ItemStack(ModItems.plate_aluminium, 1)).inputItems(new OreDictStack(AL.ingot())).setPools(GenericRecipes.POOL_PREFIX_ALT + "plates").setGroup(autoPlate, this)); + this.register(new GenericRecipe("ass.platesteel").setup(60, 100).outputItems(new ItemStack(ModItems.plate_steel, 1)).inputItems(new OreDictStack(STEEL.ingot())).setPools(GenericRecipes.POOL_PREFIX_ALT + "plates").setGroup(autoPlate, this)); + this.register(new GenericRecipe("ass.platelead").setup(60, 100).outputItems(new ItemStack(ModItems.plate_lead, 1)).inputItems(new OreDictStack(PB.ingot())).setPools(GenericRecipes.POOL_PREFIX_ALT + "plates").setGroup(autoPlate, this)); + this.register(new GenericRecipe("ass.platecopper").setup(60, 100).outputItems(new ItemStack(ModItems.plate_copper, 1)).inputItems(new OreDictStack(CU.ingot())).setPools(GenericRecipes.POOL_PREFIX_ALT + "plates").setGroup(autoPlate, this)); + this.register(new GenericRecipe("ass.platealloy").setup(60, 100).outputItems(new ItemStack(ModItems.plate_advanced_alloy, 1)).inputItems(new OreDictStack(ALLOY.ingot())).setPools(GenericRecipes.POOL_PREFIX_ALT + "plates").setGroup(autoPlate, this)); + this.register(new GenericRecipe("ass.plateschrab").setup(60, 100).outputItems(new ItemStack(ModItems.plate_schrabidium, 1)).inputItems(new OreDictStack(SA326.ingot())).setPools(GenericRecipes.POOL_PREFIX_ALT + "plates").setGroup(autoPlate, this)); + this.register(new GenericRecipe("ass.platecmb").setup(60, 100).outputItems(new ItemStack(ModItems.plate_combine_steel, 1)).inputItems(new OreDictStack(CMB.ingot())).setPools(GenericRecipes.POOL_PREFIX_ALT + "plates").setGroup(autoPlate, this)); + this.register(new GenericRecipe("ass.plategunmetal").setup(60, 100).outputItems(new ItemStack(ModItems.plate_gunmetal, 1)).inputItems(new OreDictStack(GUNMETAL.ingot())).setPools(GenericRecipes.POOL_PREFIX_ALT + "plates").setGroup(autoPlate, this)); + this.register(new GenericRecipe("ass.plateweaponsteel").setup(60, 100).outputItems(new ItemStack(ModItems.plate_weaponsteel, 1)).inputItems(new OreDictStack(WEAPONSTEEL.ingot())).setPools(GenericRecipes.POOL_PREFIX_ALT + "plates").setGroup(autoPlate, this)); + this.register(new GenericRecipe("ass.platesaturnite").setup(60, 100).outputItems(new ItemStack(ModItems.plate_saturnite, 1)).inputItems(new OreDictStack(BIGMT.ingot())).setPools(GenericRecipes.POOL_PREFIX_ALT + "plates").setGroup(autoPlate, this)); + this.register(new GenericRecipe("ass.platedura").setup(60, 100).outputItems(new ItemStack(ModItems.plate_dura_steel, 1)).inputItems(new OreDictStack(DURA.ingot())).setPools(GenericRecipes.POOL_PREFIX_ALT + "plates").setGroup(autoPlate, this)); this.register(new GenericRecipe("ass.platemixed").setup(50, 100).outputItems(new ItemStack(ModItems.plate_mixed, 4)) .inputItems(new OreDictStack(ALLOY.plate(), 2), new OreDictStack(OreDictManager.getReflector(), 1), new OreDictStack(BIGMT.plate(), 1))); this.register(new GenericRecipe("ass.dalekanium").setup(200, 100).outputItems(new ItemStack(ModItems.plate_dalekanium, 1)) @@ -211,7 +212,10 @@ public class AssemblyMachineRecipes extends GenericRecipes { .inputItemsEx(new ComparableStack(ModItems.item_expensive, 1, EnumExpensiveType.STEEL_PLATING), new OreDictStack(CU.plate(), 4), new ComparableStack(ModItems.motor, 2))); this.register(new GenericRecipe("ass.chemplant").setup(200, 100).outputItems(new ItemStack(ModBlocks.machine_chemical_plant, 1)) .inputItems(new OreDictStack(STEEL.ingot(), 8), new OreDictStack(CU.pipe(), 2), new ComparableStack(ModItems.plate_polymer, 16), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.coil_tungsten, 2), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ANALOG)) - .inputItemsEx(new ComparableStack(ModItems.item_expensive, 3, EnumExpensiveType.STEEL_PLATING), new OreDictStack(CU.pipe(), 2), new ComparableStack(ModItems.plate_polymer, 16), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.coil_tungsten, 2), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ANALOG))); + .inputItemsEx(new ComparableStack(ModItems.item_expensive, 3, EnumExpensiveType.STEEL_PLATING), new OreDictStack(CU.pipe(), 2), new ComparableStack(ModItems.plate_polymer, 16), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.coil_tungsten, 2), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.ANALOG))); + this.register(new GenericRecipe("ass.purex").setup(300, 100).outputItems(new ItemStack(ModBlocks.machine_purex, 1)) + .inputItems(new OreDictStack(STEEL.shell(), 4), new OreDictStack(RUBBER.pipe(), 8), new OreDictStack(PB.plateCast(), 4), new ComparableStack(ModItems.motor_desh, 1), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BASIC)) + .inputItemsEx(new ComparableStack(ModItems.item_expensive, 2, EnumExpensiveType.LEAD_PLATING), new OreDictStack(STEEL.shell(), 4), new OreDictStack(RUBBER.pipe(), 12), new ComparableStack(ModItems.motor_desh, 3), new ComparableStack(ModItems.item_expensive, 2, EnumExpensiveType.CIRCUIT))); this.register(new GenericRecipe("ass.centrifuge").setup(200, 100).outputItems(new ItemStack(ModBlocks.machine_centrifuge, 1)) .inputItems(new ComparableStack(ModItems.centrifuge_element, 1), new OreDictStack(ANY_PLASTIC.ingot(), 4), new OreDictStack(STEEL.plate528(), 8), new OreDictStack(CU.plate(), 4), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ANALOG)) .inputItemsEx(new ComparableStack(ModItems.centrifuge_element, 1), new OreDictStack(ANY_PLASTIC.ingot(), 4), new ComparableStack(ModItems.item_expensive, 3, EnumExpensiveType.STEEL_PLATING), new OreDictStack(CU.plateCast(), 4), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ANALOG))); @@ -328,9 +332,6 @@ public class AssemblyMachineRecipes extends GenericRecipes { this.register(new GenericRecipe("ass.strandcaster").setup(200, 100).outputItems(new ItemStack(ModBlocks.machine_strand_caster, 1)) .inputItems(new ComparableStack(ModItems.ingot_firebrick, 16), new OreDictStack(STEEL.plateCast(), 6), new OreDictStack(CU.plateWelded(), 2), new OreDictStack(STEEL.shell(), 2), new OreDictStack(ANY_CONCRETE.any(), 8)) .inputItemsEx(new ComparableStack(ModItems.item_expensive, 1, EnumExpensiveType.HEAVY_FRAME), new ComparableStack(ModItems.ingot_firebrick, 16), new OreDictStack(STEEL.shell(), 4), new OreDictStack(ANY_CONCRETE.any(), 8))); - this.register(new GenericRecipe("ass.assemfac").setup(400, 100).outputItems(new ItemStack(ModBlocks.machine_assemfac, 1)) - .inputItems(new OreDictStack(STEEL.ingot(), 48), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 8), new OreDictStack(B.ingot(), 4), new OreDictStack(RUBBER.ingot(), 16), new OreDictStack(KEY_ANYPANE, 64), new ComparableStack(ModItems.motor, 18), new OreDictStack(W.bolt(), 16), new OreDictStack(STEEL.pipe(), 8), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BASIC)) - .inputItemsEx(new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.HEAVY_FRAME), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 16), new OreDictStack(B.ingot(), 4), new OreDictStack(RUBBER.ingot(), 16), new OreDictStack(KEY_ANYPANE, 64), new ComparableStack(ModItems.motor_desh, 16), new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.CIRCUIT))); this.register(new GenericRecipe("ass.chemfac").setup(400, 100).outputItems(new ItemStack(ModBlocks.machine_chemical_factory, 1)) .inputItems(new OreDictStack(DURA.ingot(), 16), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 8), new OreDictStack(RUBBER.ingot(), 16), new OreDictStack(STEEL.shell(), 12), new OreDictStack(CU.pipe(), 8), new ComparableStack(ModItems.motor_desh, 4), new ComparableStack(ModItems.coil_tungsten, 16), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BASIC)) .inputItemsEx(new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.HEAVY_FRAME), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 16), new OreDictStack(RUBBER.ingot(), 16), new OreDictStack(STEEL.shell(), 12), new OreDictStack(CU.pipe(), 16), new ComparableStack(ModItems.motor_desh, 16), new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.CIRCUIT))); @@ -448,7 +449,7 @@ public class AssemblyMachineRecipes extends GenericRecipes { this.register(new GenericRecipe("ass.pachlorophyte").setup(400, 100).outputItems(new ItemStack(ModItems.pa_coil, 1, EnumCoilType.CHLOROPHYTE.ordinal())).inputItems(new OreDictStack(CU.wireDense(), 64), new OreDictStack(CU.wireDense(), 64), new ComparableStack(ModItems.powder_chlorophyte, 16))); this.register(new GenericRecipe("ass.exposurechamber").setup(200, 100).outputItems(new ItemStack(ModBlocks.machine_exposure_chamber, 1)) .inputItems(new OreDictStack(AL.plateCast(), 12), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new OreDictStack(ANY_HARDPLASTIC.ingot(), 12), new OreDictStack(ALLOY.wireDense(), 32), new ComparableStack(ModItems.motor_desh, 2), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BISMOID), new ComparableStack(ModBlocks.capacitor_tantalium, 1), new ComparableStack(ModBlocks.glass_quartz, 16)) - .inputItems(new ComparableStack(ModItems.item_expensive, 8, EnumExpensiveType.LEAD_PLATING), new OreDictStack(ANY_HARDPLASTIC.ingot(), 24), new OreDictStack(ALLOY.wireDense(), 32), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BISMOID), new ComparableStack(ModItems.item_expensive, 2, EnumExpensiveType.COMPUTER))); + .inputItemsEx(new ComparableStack(ModItems.item_expensive, 8, EnumExpensiveType.LEAD_PLATING), new OreDictStack(ANY_HARDPLASTIC.ingot(), 24), new OreDictStack(ALLOY.wireDense(), 32), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BISMOID), new ComparableStack(ModItems.item_expensive, 2, EnumExpensiveType.COMPUTER))); // reactors this.register(new GenericRecipe("ass.breedingreactor").setup(200, 100).outputItems(new ItemStack(ModBlocks.machine_reactor_breeding, 1)) @@ -463,6 +464,9 @@ public class AssemblyMachineRecipes extends GenericRecipes { this.register(new GenericRecipe("ass.rbmk").setup(100, 100).outputItems(new ItemStack(ModBlocks.rbmk_blank, 1)) .inputItems(new ComparableStack(ModBlocks.concrete_asbestos, 4), new OreDictStack(STEEL.plateCast(), 4), new OreDictStack(CU.plate(), 8), new ComparableStack(ModItems.plate_polymer, 4)) .inputItemsEx(new ComparableStack(ModBlocks.concrete_asbestos, 4), new ComparableStack(ModItems.item_expensive, 1, EnumExpensiveType.FERRO_PLATING), new OreDictStack(CU.plate(), 16))); + this.register(new GenericRecipe("ass.rbmkautoloader").setup(100, 100).outputItems(new ItemStack(ModBlocks.rbmk_autoloader, 1)) + .inputItems(new OreDictStack(STEEL.plateWelded(), 4), new OreDictStack(PB.plateCast(), 4), new OreDictStack(B.ingot(), 4), new ComparableStack(ModItems.motor, 3)) + .inputItemsEx(new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.FERRO_PLATING), new ComparableStack(ModItems.motor_desh, 3))); // fusion reactor this.register(new GenericRecipe("ass.fusioncore").setup(600, 100).outputItems(new ItemStack(ModBlocks.struct_iter_core, 1)) @@ -492,10 +496,10 @@ public class AssemblyMachineRecipes extends GenericRecipes { .inputItemsEx(new ComparableStack(ModItems.item_expensive, 3, EnumExpensiveType.FERRO_PLATING), new OreDictStack(BIGMT.ingot(), 6), new OreDictStack(ANY_HARDPLASTIC.ingot(), 4))); this.register(new GenericRecipe("ass.watzcooler").setup(200, 100).outputItems(new ItemStack(ModBlocks.watz_cooler, 3)) .inputItems(new OreDictStack(STEEL.plateCast(), 2), new OreDictStack(CU.plateCast(), 4), new OreDictStack(RUBBER.ingot(), 2)) - .inputItems(new ComparableStack(ModItems.item_expensive, 3, EnumExpensiveType.FERRO_PLATING), new OreDictStack(RUBBER.ingot(), 8))); + .inputItemsEx(new ComparableStack(ModItems.item_expensive, 3, EnumExpensiveType.FERRO_PLATING), new OreDictStack(RUBBER.ingot(), 8))); this.register(new GenericRecipe("ass.watzcasing").setup(100, 100).outputItems(new ItemStack(ModBlocks.watz_end, 3)) .inputItems(new OreDictStack(ANY_RESISTANTALLOY.plateWelded()), new OreDictStack(B.ingot(), 3), new OreDictStack(STEEL.plateWelded(), 2)) - .inputItems(new ComparableStack(ModItems.item_expensive, 6, EnumExpensiveType.LEAD_PLATING), new OreDictStack(ANY_RESISTANTALLOY.plateWelded()))); + .inputItemsEx(new ComparableStack(ModItems.item_expensive, 6, EnumExpensiveType.LEAD_PLATING), new OreDictStack(ANY_RESISTANTALLOY.plateWelded()))); // ICF this.register(new GenericRecipe("ass.icfcell").setup(200, 100).outputItems(new ItemStack(ModBlocks.icf_laser_component, 1, EnumICFPart.CELL.ordinal())) diff --git a/src/main/java/com/hbm/inventory/recipes/BlastFurnaceRecipes.java b/src/main/java/com/hbm/inventory/recipes/BlastFurnaceRecipes.java index 1a7599b5d..455456499 100644 --- a/src/main/java/com/hbm/inventory/recipes/BlastFurnaceRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/BlastFurnaceRecipes.java @@ -16,7 +16,6 @@ import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; -import com.hbm.blocks.ModBlocks; import com.hbm.config.GeneralConfig; import com.hbm.handler.imc.IMCBlastFurnace; import com.hbm.inventory.RecipesCommon.AStack; @@ -59,10 +58,9 @@ public class BlastFurnaceRecipes extends SerializableRecipe { addRecipe(W, SA326.nugget(), new ItemStack(ModItems.ingot_magnetized_tungsten)); addRecipe(STEEL, TC99.nugget(), new ItemStack(ModItems.ingot_tcalloy)); addRecipe(GOLD.plate(), ModItems.plate_mixed, new ItemStack(ModItems.plate_paa, 2)); - addRecipe(BIGMT, ModItems.powder_meteorite, new ItemStack(ModItems.ingot_starmetal, 2)); - addRecipe(CO, ModBlocks.block_meteor, new ItemStack(ModItems.ingot_meteorite)); + addRecipe(BIGMT, ModItems.ingot_meteorite, new ItemStack(ModItems.ingot_starmetal, 2)); + addRecipe(CO, ModItems.powder_meteorite, new ItemStack(ModItems.ingot_meteorite)); addRecipe(ModItems.meteorite_sword_hardened, CO, new ItemStack(ModItems.meteorite_sword_alloyed)); - addRecipe(ModBlocks.block_meteor, CO, new ItemStack(ModItems.ingot_meteorite)); if(GeneralConfig.enableLBSM && GeneralConfig.enableLBSMSimpleChemsitry) { addRecipe(ModItems.canister_empty, COAL, new ItemStack(ModItems.canister_full, 1, Fluids.OIL.getID())); diff --git a/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java b/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java index c3927a396..2a48a04f7 100644 --- a/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java @@ -1,7 +1,6 @@ package com.hbm.inventory.recipes; import java.io.IOException; -import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map.Entry; @@ -26,7 +25,6 @@ import com.hbm.items.ItemEnums; import com.hbm.items.ItemEnums.EnumAshType; import com.hbm.items.ItemEnums.EnumChunkType; import com.hbm.items.ModItems; -import com.hbm.items.machine.ItemWatzPellet.EnumWatzType; import com.hbm.items.special.ItemBedrockOreNew; import com.hbm.items.special.ItemBedrockOre.EnumBedrockOre; import com.hbm.items.special.ItemBedrockOreNew.BedrockOreGrade; @@ -49,35 +47,12 @@ public class CentrifugeRecipes extends SerializableRecipe { boolean lbs = GeneralConfig.enableLBSM && GeneralConfig.enableLBSMSimpleCentrifuge; - recipes.put(new ComparableStack(ModItems.icf_pellet_depleted), new ItemStack[] { - new ItemStack(ModItems.icf_pellet_empty, 1), - new ItemStack(ModItems.pellet_charged, 1), - new ItemStack(ModItems.pellet_charged, 1), - new ItemStack(ModItems.powder_iron, 1) }); - recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.chunk_ore, EnumChunkType.RARE)), new ItemStack[] { new ItemStack(ModItems.powder_cobalt_tiny, 2), new ItemStack(ModItems.powder_boron_tiny, 2), new ItemStack(ModItems.powder_niobium_tiny, 2), new ItemStack(ModItems.nugget_zirconium, 3) }); - ArrayList naquadriaNuggets = OreDictionary.getOres("nuggetNaquadria"); - if(naquadriaNuggets.size() != 0) { - ItemStack nuggetNQR = naquadriaNuggets.get(0); - ItemStack copy = nuggetNQR.copy(); - copy.stackSize = 12; - recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.watz_pellet_depleted, EnumWatzType.NQD)), new ItemStack[] { - new ItemStack(ModItems.ingot_mud, 1), - copy, - new ItemStack(ModItems.nugget_euphemium, 6), - new ItemStack(ModItems.nuclear_waste, 2) }); - recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.watz_pellet_depleted, EnumWatzType.NQR)), new ItemStack[] { - new ItemStack(ModItems.ingot_mud, 1), - new ItemStack(ModItems.nugget_co60, 12), - new ItemStack(ModItems.nugget_euphemium, 6), - new ItemStack(ModItems.nuclear_waste, 2) }); - } - recipes.put(new OreDictStack(COAL.ore()), new ItemStack[] { new ItemStack(ModItems.powder_coal, 2), new ItemStack(ModItems.powder_coal, 2), @@ -329,8 +304,6 @@ public class CentrifugeRecipes extends SerializableRecipe { recipes.put(new ComparableStack(Items.blaze_rod), new ItemStack[] {new ItemStack(Items.blaze_powder, 1), new ItemStack(Items.blaze_powder, 1), new ItemStack(ModItems.powder_fire, 1), new ItemStack(ModItems.powder_fire, 1) }); - recipes.put(new ComparableStack(ModItems.ingot_schraranium), new ItemStack[] { new ItemStack(ModItems.nugget_schrabidium, 2), new ItemStack(ModItems.nugget_schrabidium, 1), new ItemStack(ModItems.nugget_uranium, 3), new ItemStack(ModItems.nugget_neptunium, 2) }); - recipes.put(new ComparableStack(ModItems.crystal_coal), new ItemStack[] { new ItemStack(ModItems.powder_coal, 3), new ItemStack(ModItems.powder_coal, 3), new ItemStack(ModItems.powder_coal, 3), new ItemStack(ModItems.powder_lithium_tiny, 1) }); recipes.put(new ComparableStack(ModItems.crystal_iron), new ItemStack[] { new ItemStack(ModItems.powder_iron, 2), new ItemStack(ModItems.powder_iron, 2), new ItemStack(ModItems.powder_titanium, 1), new ItemStack(ModItems.powder_lithium_tiny, 1) }); recipes.put(new ComparableStack(ModItems.crystal_gold), new ItemStack[] { new ItemStack(ModItems.powder_gold, 2), new ItemStack(ModItems.powder_gold, 2), new ItemStack(ModItems.ingot_mercury, 1), new ItemStack(ModItems.powder_lithium_tiny, 1) }); diff --git a/src/main/java/com/hbm/inventory/recipes/PUREXRecipes.java b/src/main/java/com/hbm/inventory/recipes/PUREXRecipes.java index 65dd62fe8..3849b1759 100644 --- a/src/main/java/com/hbm/inventory/recipes/PUREXRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/PUREXRecipes.java @@ -2,6 +2,8 @@ package com.hbm.inventory.recipes; import static com.hbm.inventory.OreDictManager.*; +import java.util.ArrayList; + import com.hbm.blocks.ModBlocks; import com.hbm.inventory.FluidStack; import com.hbm.inventory.RecipesCommon.ComparableStack; @@ -14,6 +16,7 @@ import com.hbm.items.machine.ItemPWRFuel.EnumPWRFuel; import com.hbm.items.machine.ItemWatzPellet.EnumWatzType; import net.minecraft.item.ItemStack; +import net.minecraftforge.oredict.OreDictionary; public class PUREXRecipes extends GenericRecipes { @@ -37,7 +40,8 @@ public class PUREXRecipes extends GenericRecipes { long vitrification = 1_000; // ZIRNOX - this.register(new GenericRecipe("purex.zirnoxnu").setup(100, zirnoxPower).setNameWrapper("purex.recycle") + String autoZirnox = "autoswitch.zirnox"; + this.register(new GenericRecipe("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), @@ -46,8 +50,8 @@ 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") - .inputItems(new ComparableStack(ModItems.waste_natural_uranium)) + this.register(new GenericRecipe("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_u238, 1), new ItemStack(ModItems.nugget_pu_mix, 2), @@ -55,7 +59,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") + this.register(new GenericRecipe("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), @@ -64,7 +68,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") + this.register(new GenericRecipe("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), @@ -73,7 +77,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") + this.register(new GenericRecipe("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, 1), @@ -82,7 +86,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") + this.register(new GenericRecipe("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), @@ -91,7 +95,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") + this.register(new GenericRecipe("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), @@ -100,7 +104,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") + this.register(new GenericRecipe("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), @@ -109,7 +113,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") + this.register(new GenericRecipe("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), @@ -119,7 +123,8 @@ public class PUREXRecipes extends GenericRecipes { .setIconToFirstIngredient()); // Plate Fuel - this.register(new GenericRecipe("purex.platemox").setup(100, platePower).setNameWrapper("purex.recycle") + String autoPlate = "autoswitch.plate"; + this.register(new GenericRecipe("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), @@ -128,7 +133,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") + this.register(new GenericRecipe("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), @@ -137,7 +142,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") + this.register(new GenericRecipe("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), @@ -146,7 +151,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") + this.register(new GenericRecipe("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), @@ -155,7 +160,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") + this.register(new GenericRecipe("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), @@ -164,7 +169,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") + this.register(new GenericRecipe("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), @@ -173,7 +178,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") + this.register(new GenericRecipe("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), @@ -183,7 +188,8 @@ public class PUREXRecipes extends GenericRecipes { .setIconToFirstIngredient()); // PWR - this.register(new GenericRecipe("purex.pwrmeu").setup(100, pwrPower).setNameWrapper("purex.recycle") + String autoPWR = "autoswitch.pwr"; + this.register(new GenericRecipe("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), @@ -192,7 +198,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") + this.register(new GenericRecipe("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), @@ -201,7 +207,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") + this.register(new GenericRecipe("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), @@ -210,7 +216,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") + this.register(new GenericRecipe("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), @@ -219,7 +225,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") + this.register(new GenericRecipe("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), @@ -228,7 +234,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") + this.register(new GenericRecipe("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), @@ -237,7 +243,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") + this.register(new GenericRecipe("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), @@ -246,7 +252,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") + this.register(new GenericRecipe("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), @@ -255,7 +261,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") + this.register(new GenericRecipe("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), @@ -264,7 +270,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") + this.register(new GenericRecipe("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), @@ -273,7 +279,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") + this.register(new GenericRecipe("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), @@ -282,7 +288,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") + this.register(new GenericRecipe("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), @@ -291,7 +297,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") + this.register(new GenericRecipe("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), @@ -300,7 +306,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") + this.register(new GenericRecipe("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), @@ -309,7 +315,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") + this.register(new GenericRecipe("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), @@ -328,7 +334,8 @@ public class PUREXRecipes extends GenericRecipes { new ChanceOutput(new ItemStack(ModItems.nuclear_waste_tiny, 1), 0.25F))); // Watz - this.register(new GenericRecipe("purex.watzschrab").setup(60, watzPower).setNameWrapper("purex.recycle") + String autoWatz = "autoswitch.watz"; + this.register(new GenericRecipe("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), @@ -337,7 +344,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") + this.register(new GenericRecipe("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), @@ -346,7 +353,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") + this.register(new GenericRecipe("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), @@ -355,7 +362,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") + this.register(new GenericRecipe("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), @@ -364,7 +371,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") + this.register(new GenericRecipe("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), @@ -373,7 +380,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") + this.register(new GenericRecipe("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), @@ -382,7 +389,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") + this.register(new GenericRecipe("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), @@ -391,7 +398,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") + this.register(new GenericRecipe("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), @@ -400,7 +407,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") + this.register(new GenericRecipe("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), @@ -409,7 +416,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") + this.register(new GenericRecipe("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), @@ -418,6 +425,40 @@ public class PUREXRecipes extends GenericRecipes { .outputFluids(new FluidStack(Fluids.WATZ, 1_000)) .setIconToFirstIngredient()); + ArrayList naquadriaNuggets = OreDictionary.getOres("nuggetNaquadria"); + if(naquadriaNuggets.size() != 0) { + ItemStack nuggetNQR = naquadriaNuggets.get(0); + ItemStack copy = nuggetNQR.copy(); + copy.stackSize = 12; + + this.register(new GenericRecipe("purex.watzdu").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, + new ItemStack(ModItems.nugget_euphemium, 6), + new ItemStack(ModItems.nuclear_waste, 2)) + .outputFluids(new FluidStack(Fluids.WATZ, 1_000)) + .setIconToFirstIngredient()); + + this.register(new GenericRecipe("purex.watzdu").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), + new ItemStack(ModItems.nugget_euphemium, 6), + new ItemStack(ModItems.nuclear_waste, 2)) + .outputFluids(new FluidStack(Fluids.WATZ, 1_000)) + .setIconToFirstIngredient()); + } + + //ICF + this.register(new GenericRecipe("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), + new ItemStack(ModItems.pellet_charged, 1), + new ItemStack(ModItems.powder_iron, 1)) + .setIconToFirstIngredient()); + /// Vitrification this.register(new GenericRecipe("purex.vitliquid").setup(100, vitrification) .inputItems(new ComparableStack(ModBlocks.sand_lead)) @@ -432,5 +473,37 @@ public class PUREXRecipes extends GenericRecipes { this.register(new GenericRecipe("purex.vitsolid").setup(300, vitrification) .inputItems(new ComparableStack(ModBlocks.sand_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") + .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), + new ItemStack(ModItems.nugget_uranium, 3), + new ItemStack(ModItems.nugget_neptunium, 2)) + .setIconToFirstIngredient()); + + String autoSchrab = "autoswitch.schrab"; + this.register(new GenericRecipe("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, 500)) + .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) + .inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.MEP)) + .inputFluids(new FluidStack(Fluids.SOLVENT, 4_000), new FluidStack(Fluids.SCHRABIDIC, 500)) + .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) + .inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.MEN)) + .inputFluids(new FluidStack(Fluids.SOLVENT, 4_000), new FluidStack(Fluids.SCHRABIDIC, 500)) + .outputItems(new ItemStack(ModItems.powder_schrabidium, 1), + new ItemStack(ModItems.nugget_technetium, 3), + new ItemStack(ModItems.nuclear_waste_tiny, 4)) + .setIconToFirstIngredient()); } } 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 91a8d99a4..99c37e984 100644 --- a/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipe.java +++ b/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipe.java @@ -34,6 +34,7 @@ public class GenericRecipe { public boolean writeIcon = false; public boolean customLocalization = false; protected String[] blueprintPools = null; + public String autoSwitchGroup = null; public GenericRecipe(String name) { this.name = name; @@ -59,6 +60,7 @@ public class GenericRecipe { public GenericRecipe setIcon(Block block) { return this.setIcon(new ItemStack(block)); } public GenericRecipe setNamed() { this.customLocalization = true; return this; } public GenericRecipe setPools(String... pools) { this.blueprintPools = pools; for(String pool : pools) GenericRecipes.addToPool(pool, this); return this; } + public GenericRecipe setGroup(String autoSwitch, GenericRecipes set) { this.autoSwitchGroup = autoSwitch; set.addToGroup(autoSwitch, this); return this; } public GenericRecipe inputItems(AStack... input) { this.inputItem = input; for(AStack stack : this.inputItem) if(stack.stacksize > 64) throw new IllegalArgumentException("AStack in " + this.name + " exceeds stack limit!"); return this; } public GenericRecipe inputItemsEx(AStack... input) { if(!GeneralConfig.enableExpensiveMode) return this; this.inputItem = input; for(AStack stack : this.inputItem) if(stack.stacksize > 64) throw new IllegalArgumentException("AStack in " + this.name + " exceeds stack limit!"); return this; } @@ -113,6 +115,10 @@ public class GenericRecipe { public List print() { List list = new ArrayList(); list.add(EnumChatFormatting.YELLOW + this.getLocalizedName()); + if(this.autoSwitchGroup != null) { + String[] lines = I18nUtil.resolveKeyArray("autoswitch", I18nUtil.resolveKey(this.autoSwitchGroup)); + for(String line : lines) list.add(EnumChatFormatting.GOLD + line); + } if(duration > 0) list.add(EnumChatFormatting.RED + "Duration: " + this.duration / 20D + "s"); if(power > 0) list.add(EnumChatFormatting.RED + "Consumption: " + BobMathUtil.getShortNumber(power) + "HE/t"); list.add(EnumChatFormatting.BOLD + "Input:"); diff --git a/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipes.java b/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipes.java index 2e92b67f6..0bee0728a 100644 --- a/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipes.java @@ -46,6 +46,9 @@ public abstract class GenericRecipes extends Serializab public static HashMap> blueprintPools = new HashMap(); /** Name to recipe map for all recipes that are part of pools for lookup */ public static HashMap pooledBlueprints = new HashMap(); + + /** Groups for auto switch functionality (changes recipe automatically based on first solid input) */ + public HashMap> autoSwitchGroups = new HashMap(); public abstract int inputItemLimit(); public abstract int inputFluidLimit(); @@ -54,6 +57,7 @@ public abstract class GenericRecipes extends Serializab public boolean hasDuration() { return true; } public boolean hasPower() { return true; } + /** Adds a recipe to a blueprint pool (i.e. a blueprint item's recipe list) */ public static void addToPool(String pool, GenericRecipe recipe) { List list = blueprintPools.get(pool); if(list == null) { @@ -64,6 +68,14 @@ public abstract class GenericRecipes extends Serializab pooledBlueprints.put(recipe.name, recipe); } + /** Adds a recipe to an auto switch group (recipe can switch based on first solid input) */ + public void addToGroup(String group, GenericRecipe recipe) { + List list = autoSwitchGroups.get(group); + if(list == null) list = new ArrayList(); + list.add(recipe); + autoSwitchGroups.put(group, list); + } + public static void clearPools() { blueprintPools.clear(); pooledBlueprints.clear(); @@ -78,6 +90,7 @@ public abstract class GenericRecipes extends Serializab public void deleteRecipes() { this.recipeOrderedList.clear(); this.recipeNameMap.clear(); + this.autoSwitchGroups.clear(); } public void register(T recipe) { @@ -104,6 +117,7 @@ public abstract class GenericRecipes extends Serializab if(obj.has("named") && obj.get("named").getAsBoolean()) recipe.setNamed(); if(obj.has("blueprintpool")) recipe.setPools(obj.get("blueprintpool").getAsString().split(":")); if(obj.has("nameWrapper")) recipe.setNameWrapper(obj.get("nameWrapper").getAsString()); + if(obj.has("autoSwitchGroup")) recipe.setGroup(obj.get("autoSwitchGroup").getAsString(), this); readExtraData(element, recipe); @@ -154,6 +168,7 @@ public abstract class GenericRecipes extends Serializab if(recipe.customLocalization) writer.name("named").value(true); if(recipe.nameWrapper != null) writer.name("nameWrapper").value(recipe.nameWrapper); if(recipe.blueprintPools != null && recipe.blueprintPools.length > 0) writer.name("blueprintpool").value(String.join(":", recipe.blueprintPools)); + if(recipe.autoSwitchGroup != null) writer.name("autoSwitchGroup").value(recipe.autoSwitchGroup); writeExtraData(recipe, writer); } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 4019a3355..24af636e0 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -702,7 +702,6 @@ public class ModItems { public static Item ingot_raw; public static Item plate_cast; public static Item plate_welded; - public static Item heavy_component; public static Item wire_fine; public static Item wire_dense; public static Item part_barrel_light; @@ -1458,6 +1457,7 @@ public class ModItems { public static Item gun_autoshotgun; public static Item gun_autoshotgun_shredder; public static Item gun_autoshotgun_sexy; + public static Item gun_autoshotgun_heretic; public static Item gun_quadro; public static Item gun_lag; public static Item gun_minigun; @@ -2346,7 +2346,7 @@ public class ModItems { thruster_nuclear = new Item().setUnlocalizedName("thruster_nuclear").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":thruster_nuclear"); safety_fuse = new Item().setUnlocalizedName("safety_fuse").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":safety_fuse"); part_generic = new ItemGenericPart().setUnlocalizedName("part_generic").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":part_generic"); - item_expensive = new ItemEnumMulti(EnumExpensiveType.class, true, true).setUnlocalizedName("item_expensive").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":item_expensive"); + item_expensive = new ItemExpensive().setUnlocalizedName("item_expensive").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":item_expensive"); item_secret = new ItemEnumMulti(EnumSecretType.class, true, true).setUnlocalizedName("item_secret").setCreativeTab(null).setTextureName(RefStrings.MODID + ":item_secret"); ingot_metal = new ItemEnumMulti(EnumIngotMetal.class, true, true).setUnlocalizedName("ingot_metal").setCreativeTab(null).setTextureName(RefStrings.MODID + ":ingot_metal"); chemical_dye = new ItemChemicalDye().setUnlocalizedName("chemical_dye").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":chemical_dye"); @@ -2931,7 +2931,6 @@ public class ModItems { ingot_raw = new ItemAutogen(MaterialShapes.INGOT).setUnlocalizedName("ingot_raw").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_raw"); plate_cast = new ItemAutogen(MaterialShapes.CASTPLATE).aot(Mats.MAT_BISMUTH, "plate_cast_bismuth").setUnlocalizedName("plate_cast").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_cast"); plate_welded = new ItemAutogen(MaterialShapes.WELDEDPLATE).setUnlocalizedName("plate_welded").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_welded"); - heavy_component = new ItemAutogen(MaterialShapes.HEAVY_COMPONENT).setUnlocalizedName("heavy_component").setCreativeTab(null).setTextureName(RefStrings.MODID + ":heavy_component"); wire_fine = new ItemAutogen(MaterialShapes.WIRE) .aot(Mats.MAT_ALUMINIUM, "wire_aluminium").aot(Mats.MAT_COPPER, "wire_copper") .aot(Mats.MAT_MINGRADE, "wire_red_copper").aot(Mats.MAT_GOLD, "wire_gold") @@ -5461,7 +5460,6 @@ public class ModItems { GameRegistry.registerItem(plate_welded, plate_welded.getUnlocalizedName()); GameRegistry.registerItem(shell, shell.getUnlocalizedName()); GameRegistry.registerItem(pipe, pipe.getUnlocalizedName()); - GameRegistry.registerItem(heavy_component, heavy_component.getUnlocalizedName()); //Bolts GameRegistry.registerItem(bolt, bolt.getUnlocalizedName()); @@ -6391,6 +6389,7 @@ public class ModItems { GameRegistry.registerItem(gun_autoshotgun, gun_autoshotgun.getUnlocalizedName()); GameRegistry.registerItem(gun_autoshotgun_shredder, gun_autoshotgun_shredder.getUnlocalizedName()); GameRegistry.registerItem(gun_autoshotgun_sexy, gun_autoshotgun_sexy.getUnlocalizedName()); + GameRegistry.registerItem(gun_autoshotgun_heretic, gun_autoshotgun_heretic.getUnlocalizedName()); GameRegistry.registerItem(gun_quadro, gun_quadro.getUnlocalizedName()); GameRegistry.registerItem(gun_lag, gun_lag.getUnlocalizedName()); GameRegistry.registerItem(gun_minigun, gun_minigun.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/special/ItemDrop.java b/src/main/java/com/hbm/items/special/ItemDrop.java index 154785cf5..e1db9ab9e 100644 --- a/src/main/java/com/hbm/items/special/ItemDrop.java +++ b/src/main/java/com/hbm/items/special/ItemDrop.java @@ -202,7 +202,7 @@ public class ItemDrop extends Item { list.add("Continuously heats up matter by"); list.add("resonating every planck second."); list.add("Tends to catch fire or to create"); - list.add("small plamsa arcs. Not edible."); + list.add("small plasma arcs. Not edible."); } if (this == ModItems.black_hole) { list.add("Contains a regular singularity"); diff --git a/src/main/java/com/hbm/items/special/ItemExpensive.java b/src/main/java/com/hbm/items/special/ItemExpensive.java new file mode 100644 index 000000000..cde77e340 --- /dev/null +++ b/src/main/java/com/hbm/items/special/ItemExpensive.java @@ -0,0 +1,22 @@ +package com.hbm.items.special; + +import java.util.List; + +import com.hbm.items.ItemEnumMulti; +import com.hbm.items.ItemEnums.EnumExpensiveType; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; + +public class ItemExpensive extends ItemEnumMulti { + + public ItemExpensive() { + super(EnumExpensiveType.class, true, true); + } + + @Override + public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { + list.add(EnumChatFormatting.RED + "Expensive mode item"); + } +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/ItemGunBaseNT.java b/src/main/java/com/hbm/items/weapon/sedna/ItemGunBaseNT.java index 66cb14695..f77640e05 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/ItemGunBaseNT.java +++ b/src/main/java/com/hbm/items/weapon/sedna/ItemGunBaseNT.java @@ -450,6 +450,9 @@ public class ItemGunBaseNT extends Item implements IKeybindReceiver, IItemHUD, I Minecraft.getMinecraft().renderEngine.bindTexture(Gui.icons); } + @Override + public boolean getShareTag() { return false; } + public static class SmokeNode { public double forward = 0D; diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java index 753de9167..dfa406299 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java @@ -76,7 +76,8 @@ public class GunFactoryClient { MinecraftForgeClient.registerItemRenderer(ModItems.gun_m2, new ItemRenderM2()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_autoshotgun, new ItemRenderShredder(ResourceManager.shredder_tex)); MinecraftForgeClient.registerItemRenderer(ModItems.gun_autoshotgun_shredder, new ItemRenderShredder(ResourceManager.shredder_orig_tex)); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_autoshotgun_sexy, new ItemRenderSexy()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_autoshotgun_sexy, new ItemRenderSexy(ResourceManager.sexy_tex)); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_autoshotgun_heretic, new ItemRenderSexy(ResourceManager.heretic_tex)); MinecraftForgeClient.registerItemRenderer(ModItems.gun_quadro, new ItemRenderQuadro()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_minigun, new ItemRenderMinigun(ResourceManager.minigun_tex)); MinecraftForgeClient.registerItemRenderer(ModItems.gun_minigun_lacunae, new ItemRenderMinigun(ResourceManager.minigun_lacunae_tex)); @@ -267,6 +268,7 @@ public class GunFactoryClient { ((ItemGunBaseNT) ModItems.gun_autoshotgun) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_autoshotgun_shredder) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_autoshotgun_sexy) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_autoshotgun_heretic) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_quadro) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_lag) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_minigun) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory10ga.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory10ga.java index 93c0e6913..cefcc4aad 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory10ga.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory10ga.java @@ -67,6 +67,17 @@ public class XFactory10ga { .setupStandardConfiguration() .anim(LAMBDA_DOUBLE_BARREL_ANIMS).orchestra(Orchestras.ORCHESTRA_DOUBLE_BARREL) ).setUnlocalizedName("gun_double_barrel_sacred_dragon"); + + ModItems.gun_autoshotgun_heretic = new ItemGunBaseNT(WeaponQuality.DEBUG, new GunConfig() + .draw(20).inspect(65).reloadSequential(true).inspectCancel(false).crosshair(Crosshair.L_CIRCLE).hideCrosshair(false).smoke(Lego.LAMBDA_STANDARD_SMOKE) + .rec(new Receiver(0) + .dmg(100F).delay(3).auto(true).dryfireAfterAuto(true).reload(110).jam(19).sound("hbm:weapon.fire.shotgunAuto", 1.0F, 1.0F) + .mag(new MagazineFullReload(0, 250).addConfigs(g10, g10_shrapnel, g10_du, g10_slug, g10_explosive)) + .offset(0.75, -0.125, -0.25) + .canFire(Lego.LAMBDA_STANDARD_CAN_FIRE).fire(Lego.LAMBDA_NOWEAR_FIRE).recoil(XFactory12ga.LAMBDA_RECOIL_SEXY)) + .setupStandardConfiguration() + .anim(XFactory12ga.LAMBDA_SEXY_ANIMS).orchestra(Orchestras.ORCHESTRA_SHREDDER_SEXY) + ).setUnlocalizedName("gun_autoshotgun_heretic"); } public static BiConsumer LAMBDA_RECOIL_DOUBLE_BARREL = (stack, ctx) -> { diff --git a/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModManager.java b/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModManager.java index 128341947..fbee99b2b 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModManager.java +++ b/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModManager.java @@ -138,7 +138,7 @@ public class WeaponModManager { new WeaponModDefinition(EnumModSpecial.SPEEDUP) .addMod(new Item[] {ModItems.gun_minigun, ModItems.gun_minigun_dual}, new WeaponModMinigunSpeedup(ID_MINIGUN_SPEED)) .addMod(new Item[] {ModItems.gun_autoshotgun, ModItems.gun_autoshotgun_shredder}, new WeaponModShredderSpeedup(209)); - new WeaponModDefinition(EnumModSpecial.CHOKE).addMod(new Item[] {ModItems.gun_pepperbox, ModItems.gun_maresleg, ModItems.gun_double_barrel, ModItems.gun_liberator, ModItems.gun_spas12, ModItems.gun_autoshotgun_sexy}, new WeaponModChoke(210)); + new WeaponModDefinition(EnumModSpecial.CHOKE).addMod(new Item[] {ModItems.gun_pepperbox, ModItems.gun_maresleg, ModItems.gun_double_barrel, ModItems.gun_liberator, ModItems.gun_spas12, ModItems.gun_autoshotgun_sexy, ModItems.gun_autoshotgun_heretic}, new WeaponModChoke(210)); new WeaponModDefinition(EnumModSpecial.FURNITURE_GREEN).addMod(ModItems.gun_g3, new WeaponModPolymerFurniture(ID_FURNITURE_GREEN)); new WeaponModDefinition(EnumModSpecial.FURNITURE_BLACK).addMod(ModItems.gun_g3, new WeaponModPolymerFurniture(ID_FURNITURE_BLACK)); new WeaponModDefinition(EnumModSpecial.BAYONET) diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 57e7c9744..543f77ad9 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 (5397)"; + public static final String VERSION = "1.0.27 BETA (5412H1)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index d170e553b..2a51edc27 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -22,6 +22,7 @@ import com.hbm.inventory.material.NTMMaterial; import static com.hbm.inventory.OreDictManager.*; import com.hbm.items.ModItems; +import com.hbm.items.ItemEnums.EnumExpensiveType; import com.hbm.items.ItemEnums.EnumLegendaryType; import com.hbm.items.ItemEnums.EnumPages; import com.hbm.items.ItemEnums.EnumPlantType; @@ -865,7 +866,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.pwr_heatsink, 4), new Object[] { "SCS", "CRC", "SCS", 'S', BIGMT.plateCast(), 'C', CU.plate(), 'R', RUBBER.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.pwr_reflector, 4), new Object[] { "RLR", "LSL", "RLR", 'R', OreDictManager.getReflector(), 'L', PB.plate528(), 'S', STEEL.plateCast() }); addRecipeAuto(new ItemStack(ModBlocks.pwr_casing, 4), new Object[] { "LCL", "CSC", "LCL", 'L', PB.plate528(), 'C', ANY_CONCRETE.any(), 'S', STEEL.plateCast() }); - addRecipeAuto(new ItemStack(ModBlocks.pwr_controller, 1), new Object[] { "CPC", "PSP", "CPC", 'C', ModBlocks.pwr_casing, 'P', ANY_PLASTIC.ingot(), 'S', !GeneralConfig.enableExpensiveMode ? DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC) : STEEL.heavyComp() }); + addRecipeAuto(new ItemStack(ModBlocks.pwr_controller, 1), new Object[] { "CPC", "PSP", "CPC", 'C', ModBlocks.pwr_casing, 'P', ANY_PLASTIC.ingot(), 'S', !GeneralConfig.enableExpensiveMode ? DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC) : DictFrame.fromOne(ModItems.item_expensive, EnumExpensiveType.CIRCUIT) }); addRecipeAuto(new ItemStack(ModBlocks.pwr_port, 1), new Object[] { "S", "C", "S", 'S', STEEL.plate(), 'C', ModBlocks.pwr_casing }); addRecipeAuto(new ItemStack(ModBlocks.pwr_neutron_source, 1), new Object[] { "LRL", "ZRZ", "LRL", 'L', PB.plate528(), 'R', ModItems.billet_ra226be, 'Z', ZR.plateCast() }); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index b1818f018..f797b0de3 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -718,7 +718,7 @@ public class MainRegistry { //progression achieves achBurnerPress = new Achievement("achievement.burnerPress", "burnerPress", 0, 0, new ItemStack(ModBlocks.machine_press), null).initIndependentStat().registerStat(); achBlastFurnace = new Achievement("achievement.blastFurnace", "blastFurnace", 1, 3, new ItemStack(ModBlocks.machine_difurnace_off), achBurnerPress).initIndependentStat().registerStat(); - achAssembly = new Achievement("achievement.assembly", "assembly", 3, -1, new ItemStack(ModBlocks.machine_assembler), achBurnerPress).initIndependentStat().registerStat(); + achAssembly = new Achievement("achievement.assembly", "assembly", 3, -1, new ItemStack(ModBlocks.machine_assembly_machine), achBurnerPress).initIndependentStat().registerStat(); achSelenium = new Achievement("achievement.selenium", "selenium", 3, 2, ModItems.ingot_starmetal, achBurnerPress).initIndependentStat().setSpecial().registerStat(); achChemplant = new Achievement("achievement.chemplant", "chemplant", 6, -1, new ItemStack(ModBlocks.machine_chemical_plant), achAssembly).initIndependentStat().registerStat(); achConcrete = new Achievement("achievement.concrete", "concrete", 6, -4, new ItemStack(ModBlocks.concrete), achChemplant).initIndependentStat().registerStat(); @@ -1723,6 +1723,7 @@ public class MainRegistry { ignoreMappings.add("hbm:item.journal_silver"); ignoreMappings.add("hbm:tile.machine_arc_furnace_off"); ignoreMappings.add("hbm:tile.machine_arc_furnace_on"); + ignoreMappings.add("hbm:item.heavy_component"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index 1f0be79bf..4a3ded4e7 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -40,6 +40,7 @@ import com.hbm.items.weapon.sedna.factory.XFactory12ga; import com.hbm.lib.ModDamageSource; import com.hbm.lib.RefStrings; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.HeldItemNBTPacket; import com.hbm.packet.toclient.PermaSyncPacket; import com.hbm.packet.toclient.PlayerInformPacket; import com.hbm.packet.toclient.SerializableRecipePacket; @@ -988,6 +989,11 @@ public class ModEventHandler { player.worldObj.spawnParticle("townaura", player.posX + vec.xCoord, player.posY + 1 + vec.yCoord, player.posZ + vec.zCoord, 0.0, 0.0, 0.0); } } + + if(!player.worldObj.isRemote && event.phase == TickEvent.Phase.END && player.getHeldItem() != null && player.getHeldItem().getItem() instanceof ItemGunBaseNT && player instanceof EntityPlayerMP) { + HeldItemNBTPacket packet = new HeldItemNBTPacket(player.getHeldItem()); + PacketDispatcher.wrapper.sendTo(packet, (EntityPlayerMP) player); + } } @SubscribeEvent diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 5d0002948..a3651233d 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -1014,6 +1014,7 @@ public class ResourceManager { public static final ResourceLocation shredder_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/shredder.png"); public static final ResourceLocation shredder_orig_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/shredder_orig.png"); public static final ResourceLocation sexy_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/sexy_real_no_fake.png"); + public static final ResourceLocation heretic_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/sexy_heretic.png"); public static final ResourceLocation whiskey_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/whiskey.png"); public static final ResourceLocation quadro_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/quadro.png"); public static final ResourceLocation quadro_rocket_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/quadro_rocket.png"); diff --git a/src/main/java/com/hbm/module/machine/ModuleMachineAssembler.java b/src/main/java/com/hbm/module/machine/ModuleMachineAssembler.java index 2316ad787..8b52114ee 100644 --- a/src/main/java/com/hbm/module/machine/ModuleMachineAssembler.java +++ b/src/main/java/com/hbm/module/machine/ModuleMachineAssembler.java @@ -3,6 +3,7 @@ package com.hbm.module.machine; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.recipes.AssemblyMachineRecipes; import com.hbm.inventory.recipes.loader.GenericRecipe; +import com.hbm.inventory.recipes.loader.GenericRecipes; import com.hbm.util.BobMathUtil; import api.hbm.energymk2.IEnergyHandlerMK2; @@ -19,8 +20,8 @@ public class ModuleMachineAssembler extends ModuleMachineBase { } @Override - public GenericRecipe getRecipe() { - return AssemblyMachineRecipes.INSTANCE.recipeNameMap.get(this.recipe); + public GenericRecipes getRecipeSet() { + return AssemblyMachineRecipes.INSTANCE; } @Override diff --git a/src/main/java/com/hbm/module/machine/ModuleMachineBase.java b/src/main/java/com/hbm/module/machine/ModuleMachineBase.java index 9815c0803..0a27c56d6 100644 --- a/src/main/java/com/hbm/module/machine/ModuleMachineBase.java +++ b/src/main/java/com/hbm/module/machine/ModuleMachineBase.java @@ -1,7 +1,10 @@ package com.hbm.module.machine; +import java.util.List; + import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.recipes.loader.GenericRecipe; +import com.hbm.inventory.recipes.loader.GenericRecipes; import com.hbm.inventory.recipes.loader.GenericRecipes.IOutput; import com.hbm.items.machine.ItemBlueprints; @@ -44,6 +47,21 @@ public abstract class ModuleMachineBase { /** Expects the tanks to be set up correctly beforehand */ public boolean canProcess(GenericRecipe recipe, double speed, double power) { if(recipe == null) return false; + + // auto switch functionality + if(recipe.autoSwitchGroup != null && slots[inputSlots[0]] != null) { + ItemStack itemToSwitchBy = slots[inputSlots[0]]; + List recipes = (List) this.getRecipeSet().autoSwitchGroups.get(recipe.autoSwitchGroup); + if(recipes != null) for(GenericRecipe nextRec : recipes) { + if(nextRec.getInternalName().equals(this.recipe)) continue; + if(nextRec.inputItem == null) continue; + if(nextRec.inputItem[0].matchesRecipe(itemToSwitchBy, true)) { // perform the switch + this.recipe = nextRec.getInternalName(); + return false; // cancel the recipe this tick since we need to do the previous checking all over again + } + } + } + if(power != 1 && battery.getPower() < recipe.power * power) return false; // only check with floating point numbers if mult is not 1 if(power == 1 && battery.getPower() < recipe.power) return false; @@ -109,7 +127,7 @@ public abstract class ModuleMachineBase { if(slots[outputSlots[i]] == null) { slots[outputSlots[i]] = collapse; } else { - slots[outputSlots[i]].stackSize += collapse.stackSize; // we can do this because we've already established that the result slot is not null if it's a single output + if(collapse != null) slots[outputSlots[i]].stackSize += collapse.stackSize; // we can do this because we've already established that the result slot is not null if it's a single output } } } @@ -128,8 +146,12 @@ public abstract class ModuleMachineBase { this.progress = 0D; } } + + public GenericRecipe getRecipe() { + return (GenericRecipe) getRecipeSet().recipeNameMap.get(this.recipe); + } - public abstract GenericRecipe getRecipe(); + public abstract GenericRecipes getRecipeSet(); public void update(double speed, double power, boolean extraCondition, ItemStack blueprint) { GenericRecipe recipe = getRecipe(); @@ -164,6 +186,16 @@ public abstract class ModuleMachineBase { if(inputSlots[i] == slot && recipe.inputItem[i].matchesRecipe(stack, true)) return true; } + if(recipe.autoSwitchGroup != null) { + List recipes = (List) this.getRecipeSet().autoSwitchGroups.get(recipe.autoSwitchGroup); // why the FUCK does this need a cast + if(recipes != null) for(GenericRecipe newRec : recipes) { + if(newRec.inputItem == null) continue; + if(inputSlots[0] == slot && newRec.inputItem[0].matchesRecipe(stack, true)) { + return true; + } + } + } + return false; } diff --git a/src/main/java/com/hbm/module/machine/ModuleMachineChemplant.java b/src/main/java/com/hbm/module/machine/ModuleMachineChemplant.java index c6268e2cd..facd2bfde 100644 --- a/src/main/java/com/hbm/module/machine/ModuleMachineChemplant.java +++ b/src/main/java/com/hbm/module/machine/ModuleMachineChemplant.java @@ -2,7 +2,7 @@ package com.hbm.module.machine; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.recipes.ChemicalPlantRecipes; -import com.hbm.inventory.recipes.loader.GenericRecipe; +import com.hbm.inventory.recipes.loader.GenericRecipes; import api.hbm.energymk2.IEnergyHandlerMK2; import net.minecraft.item.ItemStack; @@ -24,8 +24,8 @@ public class ModuleMachineChemplant extends ModuleMachineBase { } @Override - public GenericRecipe getRecipe() { - return ChemicalPlantRecipes.INSTANCE.recipeNameMap.get(this.recipe); + public GenericRecipes getRecipeSet() { + return ChemicalPlantRecipes.INSTANCE; } public ModuleMachineChemplant itemInput(int a, int b, int c) { inputSlots[0] = a; inputSlots[1] = b; inputSlots[2] = c; return this; } diff --git a/src/main/java/com/hbm/module/machine/ModuleMachinePUREX.java b/src/main/java/com/hbm/module/machine/ModuleMachinePUREX.java index afb8186d2..107a6d05e 100644 --- a/src/main/java/com/hbm/module/machine/ModuleMachinePUREX.java +++ b/src/main/java/com/hbm/module/machine/ModuleMachinePUREX.java @@ -2,7 +2,7 @@ package com.hbm.module.machine; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.recipes.PUREXRecipes; -import com.hbm.inventory.recipes.loader.GenericRecipe; +import com.hbm.inventory.recipes.loader.GenericRecipes; import api.hbm.energymk2.IEnergyHandlerMK2; import net.minecraft.item.ItemStack; @@ -18,8 +18,8 @@ public class ModuleMachinePUREX extends ModuleMachineBase { } @Override - public GenericRecipe getRecipe() { - return PUREXRecipes.INSTANCE.recipeNameMap.get(this.recipe); + public GenericRecipes getRecipeSet() { + return PUREXRecipes.INSTANCE; } public ModuleMachinePUREX itemInput(int start) { for(int i = 0; i < inputSlots.length; i++) inputSlots[i] = start + i; return this; } diff --git a/src/main/java/com/hbm/packet/PacketDispatcher.java b/src/main/java/com/hbm/packet/PacketDispatcher.java index 165664236..524319f01 100644 --- a/src/main/java/com/hbm/packet/PacketDispatcher.java +++ b/src/main/java/com/hbm/packet/PacketDispatcher.java @@ -67,6 +67,8 @@ public class PacketDispatcher { wrapper.registerMessage(BufPacket.Handler.class, BufPacket.class, i++, Side.CLIENT); //Syncs server recipe configs to the client wrapper.registerMessage(SerializableRecipePacket.Handler.class, SerializableRecipePacket.class, i++, Side.CLIENT); + //Syncing of NBT for guns + wrapper.registerMessage(HeldItemNBTPacket.Handler.class, HeldItemNBTPacket.class, i++, Side.CLIENT); } } diff --git a/src/main/java/com/hbm/packet/toclient/HeldItemNBTPacket.java b/src/main/java/com/hbm/packet/toclient/HeldItemNBTPacket.java new file mode 100644 index 000000000..45bf21e45 --- /dev/null +++ b/src/main/java/com/hbm/packet/toclient/HeldItemNBTPacket.java @@ -0,0 +1,68 @@ +package com.hbm.packet.toclient; + +import com.hbm.util.BufferUtil; + +import cpw.mods.fml.common.network.simpleimpl.IMessage; +import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; +import cpw.mods.fml.common.network.simpleimpl.MessageContext; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; + +public class HeldItemNBTPacket implements IMessage { + + private ItemStack stack; + + public HeldItemNBTPacket() { } + + public HeldItemNBTPacket(ItemStack stack) { + this.stack = stack; + } + + @Override + public void toBytes(ByteBuf buf) { + buf.writeShort(Item.getIdFromItem(stack.getItem())); + buf.writeByte(stack.stackSize); + buf.writeShort(stack.getItemDamage()); + NBTTagCompound nbtTagCompound = null; + nbtTagCompound = stack.stackTagCompound; + BufferUtil.writeNBT(buf, nbtTagCompound); + } + + @Override + public void fromBytes(ByteBuf buf) { + short id = buf.readShort(); + if(id >= 0) { + byte quantity = buf.readByte(); + short meta = buf.readShort(); + stack = new ItemStack(Item.getItemById(id), quantity, meta); + stack.stackTagCompound = BufferUtil.readNBT(buf); + } + } + + public static class Handler implements IMessageHandler { + + @Override + @SideOnly(Side.CLIENT) + public IMessage onMessage(HeldItemNBTPacket m, MessageContext ctx) { + try { + EntityPlayer player = Minecraft.getMinecraft().thePlayer; + if(m.stack == null) return null; + + ItemStack held = player.getHeldItem(); + if(held == null) return null; + if(held.getItem() != m.stack.getItem()) return null; + if(held.getItemDamage() != m.stack.getItemDamage()) return null; + + held.stackTagCompound = m.stack.stackTagCompound; + + } catch(Exception x) { } finally { } + return null; + } + } +} diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderSexy.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderSexy.java index 895c2357e..7c961b43c 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderSexy.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderSexy.java @@ -11,9 +11,16 @@ import com.hbm.util.Vec3NT; import net.minecraft.client.Minecraft; import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; @NotableComments public class ItemRenderSexy extends ItemRenderWeaponBase { + + protected ResourceLocation texture; + + public ItemRenderSexy(ResourceLocation texture) { + this.texture = texture; + } @Override protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.25F; } @@ -76,7 +83,7 @@ public class ItemRenderSexy extends ItemRenderWeaponBase { GL11.glPopMatrix(); } - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.sexy_tex); + Minecraft.getMinecraft().renderEngine.bindTexture(texture); GL11.glTranslated(0, -1, -8); GL11.glRotated(equip[0], 1, 0, 0); @@ -209,7 +216,7 @@ public class ItemRenderSexy extends ItemRenderWeaponBase { GL11.glEnable(GL11.GL_LIGHTING); GL11.glShadeModel(GL11.GL_SMOOTH); - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.sexy_tex); + Minecraft.getMinecraft().renderEngine.bindTexture(texture); ResourceManager.sexy.renderPart("Gun"); ResourceManager.sexy.renderPart("Barrel"); ResourceManager.sexy.renderPart("RecoilSpring"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePUREX.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePUREX.java index dd28d969c..45a476b35 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePUREX.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePUREX.java @@ -10,7 +10,7 @@ import com.hbm.inventory.container.ContainerMachinePUREX; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIMachinePUREX; -import com.hbm.inventory.recipes.ChemicalPlantRecipes; +import com.hbm.inventory.recipes.PUREXRecipes; import com.hbm.inventory.recipes.loader.GenericRecipe; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemMachineUpgrade; @@ -59,9 +59,9 @@ public class TileEntityMachinePUREX extends TileEntityMachineBase implements IEn this.inputTanks = new FluidTank[3]; this.outputTanks = new FluidTank[1]; for(int i = 0; i < 3; i++) { - this.inputTanks[i] = new FluidTank(Fluids.NONE, 16_000); + this.inputTanks[i] = new FluidTank(Fluids.NONE, 24_000); } - this.outputTanks[0] = new FluidTank(Fluids.NONE, 16_000); + this.outputTanks[0] = new FluidTank(Fluids.NONE, 24_000); this.purexModule = new ModuleMachinePUREX(0, this, slots) .itemInput(4).itemOutput(7) @@ -80,7 +80,7 @@ public class TileEntityMachinePUREX extends TileEntityMachineBase implements IEn if(!worldObj.isRemote) { - GenericRecipe recipe = ChemicalPlantRecipes.INSTANCE.recipeNameMap.get(purexModule.recipe); + GenericRecipe recipe = PUREXRecipes.INSTANCE.recipeNameMap.get(purexModule.recipe); if(recipe != null) { this.maxPower = recipe.power * 100; } @@ -124,18 +124,26 @@ public class TileEntityMachinePUREX extends TileEntityMachineBase implements IEn public DirPos[] getConPos() { return new DirPos[] { - new DirPos(xCoord + 2, yCoord, zCoord - 1, Library.POS_X), - new DirPos(xCoord + 2, yCoord, zCoord + 0, Library.POS_X), - new DirPos(xCoord + 2, yCoord, zCoord + 1, Library.POS_X), - new DirPos(xCoord - 2, yCoord, zCoord - 1, Library.NEG_X), - new DirPos(xCoord - 2, yCoord, zCoord + 0, Library.NEG_X), - new DirPos(xCoord - 2, yCoord, zCoord + 1, Library.NEG_X), - new DirPos(xCoord - 1, yCoord, zCoord + 2, Library.POS_Z), - new DirPos(xCoord + 0, yCoord, zCoord + 2, Library.POS_Z), - new DirPos(xCoord + 1, yCoord, zCoord + 2, Library.POS_Z), - new DirPos(xCoord - 1, yCoord, zCoord - 2, Library.NEG_Z), - new DirPos(xCoord + 0, yCoord, zCoord - 2, Library.NEG_Z), - new DirPos(xCoord + 1, yCoord, zCoord - 2, Library.NEG_Z), + new DirPos(xCoord + 3, yCoord, zCoord - 2, Library.POS_X), + new DirPos(xCoord + 3, yCoord, zCoord - 1, Library.POS_X), + new DirPos(xCoord + 3, yCoord, zCoord + 0, Library.POS_X), + new DirPos(xCoord + 3, yCoord, zCoord + 1, Library.POS_X), + new DirPos(xCoord + 3, yCoord, zCoord + 2, Library.POS_X), + new DirPos(xCoord - 3, yCoord, zCoord - 1, Library.NEG_X), + new DirPos(xCoord - 3, yCoord, zCoord - 2, Library.NEG_X), + new DirPos(xCoord - 3, yCoord, zCoord + 0, Library.NEG_X), + new DirPos(xCoord - 3, yCoord, zCoord + 1, Library.NEG_X), + new DirPos(xCoord - 3, yCoord, zCoord + 2, Library.NEG_X), + new DirPos(xCoord - 2, yCoord, zCoord + 3, Library.POS_Z), + new DirPos(xCoord - 1, yCoord, zCoord + 3, Library.POS_Z), + new DirPos(xCoord + 0, yCoord, zCoord + 3, Library.POS_Z), + new DirPos(xCoord + 1, yCoord, zCoord + 3, Library.POS_Z), + new DirPos(xCoord + 2, yCoord, zCoord + 3, Library.POS_Z), + new DirPos(xCoord - 2, yCoord, zCoord - 3, Library.NEG_Z), + new DirPos(xCoord - 1, yCoord, zCoord - 3, Library.NEG_Z), + new DirPos(xCoord + 0, yCoord, zCoord - 3, Library.NEG_Z), + new DirPos(xCoord + 1, yCoord, zCoord - 3, Library.NEG_Z), + new DirPos(xCoord + 2, yCoord, zCoord - 3, Library.NEG_Z), }; } diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlAuto.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlAuto.java index 3da017e91..5c1837c71 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlAuto.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlAuto.java @@ -112,6 +112,7 @@ public class TileEntityRBMKControlAuto extends TileEntityRBMKControl implements buf.writeDouble(this.levelUpper); buf.writeDouble(this.heatLower); buf.writeDouble(this.heatUpper); + if(function != null) buf.writeInt(function.ordinal()); } @Override @@ -121,6 +122,7 @@ public class TileEntityRBMKControlAuto extends TileEntityRBMKControl implements this.levelUpper = buf.readDouble(); this.heatLower = buf.readDouble(); this.heatUpper = buf.readDouble(); + this.function = RBMKFunction.values()[buf.readInt()]; } @Override diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index d909adf39..444cc8a7c 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -129,6 +129,14 @@ armorMod.type.leggings=Beinschienen armorMod.type.servo=Servos armorMod.type.special=Spezial +autoswitch=Teil der Rezeptgruppe "%s"$Rezept ändert sich basierend auf das erste Item +autoswitch.plate=Wiederanreicherung Plattenbrennstoff +autoswitch.plates=Metallplatten +autoswitch.pwr=Wiederanreicherung PWR-Brennstoff +autoswitch.schrab=Schrabidium-Extraktion +autoswitch.watz=Wiederanreicherung Watzpellet +autoswitch.zirnox=Wiederanreicherung ZIRNOX-Brennstoff + bomb.detonated=Erfolgreich gezündet! bomb.incompatible=Gerät kann nicht ausgelöst werden! bomb.launched=Erfolgreich gestartet! @@ -392,6 +400,7 @@ container.machineLargeTurbine=Industrielle Dampfturbine container.machineLiquefactor=Verflüssiger container.machineMixer=Industrieller Mixer container.machineOreSlopper=B.E.M. +container.machinePUREX=PUREX container.machinePyroOven=Pyrolyseofen container.machineRefinery=Ölraffinerie container.machineRotaryFurnace=Rotationshochofen @@ -2102,6 +2111,7 @@ item.gun_amat.name=Panzerbüchse item.gun_amat_penance.name=Penance item.gun_amat_subtlety.name=Subtlety item.gun_autoshotgun.name=Auto-Flinte +item.gun_autoshotgun_heretic.name=The Heretic item.gun_autoshotgun_sexy.name=Sexy item.gun_autoshotgun_shredder.name=Shredder item.gun_b92.name=§9B92 Energiepistole§r @@ -3710,6 +3720,7 @@ potion.hbm_taint=Verdorben potion.hbm_telekinesis=! ! ! purex.recycle=Wiederanreicherung von %s +purex.schrab=Schrabidium extrahieren aus %s radar.clearMap=Karte zurücksetzen radar.detectMissiles=Raketen erkennen @@ -4460,6 +4471,8 @@ tile.machine_powerrtg.name=PT-Isotopenzelle tile.machine_press.name=Befeuerte Presse tile.machine_puf6_tank.name=Plutoniumhexafluorid-Tank tile.machine_pumpjack.name=Pferdekopfpumpe +tile.machine_purex.name=PUREX +tile.machine_purex.desc=Wiederaufbereitungsmaschine für Kernbrennstoff.$Die meisten Rezepte benötigen Kerosin und Salpetersäure. tile.machine_pyrooven.name=Pyrolyseofen tile.machine_radar.name=Radar tile.machine_radar_large.name=Großes Radar diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 1ddb53855..32d100935 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -184,6 +184,14 @@ armorMod.type.leggings=Leggings armorMod.type.servo=Servos armorMod.type.special=Special +autoswitch=Part of auto switch group "%s"$Recipe changes based on first ingredient +autoswitch.plate=Reprocessing Plate Fuel +autoswitch.plates=Metal Plates +autoswitch.pwr=Reprocessing PWR Fuel +autoswitch.schrab=Schrabidium Extraction +autoswitch.watz=Reprocessing Watz Pellet +autoswitch.zirnox=Reprocessing ZIRNOX Fuel + battery.mode.buffer=Input/Output Mode battery.mode.input=Input Mode battery.mode.off=OffW @@ -794,6 +802,7 @@ container.machineLargeTurbine=Industrial Steam Turbine container.machineLiquefactor=Liquefactor container.machineMixer=Industrial Mixer container.machineOreSlopper=B.O.P. +container.machinePUREX=PUREX container.machinePyroOven=Pyrolysis Oven container.machineRefinery=Oil Refinery container.machineRotaryFurnace=Rotary Furnace @@ -2913,6 +2922,7 @@ item.gun_amat.name=Anti-Materiel Rifle item.gun_amat_penance.name=Penance item.gun_amat_subtlety.name=Subtlety item.gun_autoshotgun.name=Auto Shotgun +item.gun_autoshotgun_heretic.name=The Heretic item.gun_autoshotgun_sexy.name=Sexy item.gun_autoshotgun_shredder.name=Shredder item.gun_b92.name=§9B92 Energy Pistol§r @@ -4767,7 +4777,8 @@ potion.hbm_stability=Stability potion.hbm_taint=Tainted potion.hbm_telekinesis=! ! ! -purex.recycle=Re-enrichment of %s +purex.recycle=Reprocessing of %s +purex.schrab=Schrabidium extraction from %s radar.clearMap=Clear Map radar.detectMissiles=Detect Missiles @@ -5597,6 +5608,8 @@ tile.machine_powerrtg.name=PT Isotope Cell tile.machine_press.name=Burner Press tile.machine_puf6_tank.name=Plutonium Hexafluoride Tank tile.machine_pumpjack.name=Pumpjack +tile.machine_purex.name=PUREX +tile.machine_purex.desc=Reprocessing machine for many nuclear fuels.$Most recipes require kerosene and nitric acid. tile.machine_pyrooven.name=Pyrolysis Oven tile.machine_radar.name=Radar tile.machine_radar_large.name=Large Radar diff --git a/src/main/resources/assets/hbm/textures/models/weapons/sexy_heretic.png b/src/main/resources/assets/hbm/textures/models/weapons/sexy_heretic.png new file mode 100644 index 000000000..4dab907d0 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/sexy_heretic.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/whiskey (Kopie).png b/src/main/resources/assets/hbm/textures/models/weapons/whiskey (Kopie).png deleted file mode 100644 index 959b94011..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/whiskey (Kopie).png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/whiskey.xcf b/src/main/resources/assets/hbm/textures/models/weapons/whiskey.xcf deleted file mode 100644 index 2376c64d5..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/whiskey.xcf and /dev/null differ