mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
587 lines
35 KiB
Java
587 lines
35 KiB
Java
package com.hbm.inventory;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
|
|
import com.hbm.blocks.ModBlocks;
|
|
import com.hbm.config.GeneralConfig;
|
|
import com.hbm.inventory.RecipesCommon.AStack;
|
|
import com.hbm.inventory.RecipesCommon.ComparableStack;
|
|
import com.hbm.inventory.RecipesCommon.OreDictStack;
|
|
import com.hbm.items.ModItems;
|
|
|
|
import net.minecraft.block.Block;
|
|
import net.minecraft.init.Blocks;
|
|
import net.minecraft.init.Items;
|
|
import net.minecraft.item.Item;
|
|
import net.minecraft.item.ItemStack;
|
|
|
|
public class AnvilRecipes {
|
|
|
|
private static List<AnvilSmithingRecipe> smithingRecipes = new ArrayList();
|
|
private static List<AnvilConstructionRecipe> constructionRecipes = new ArrayList();
|
|
|
|
public static void register() {
|
|
registerSmithing();
|
|
registerConstruction();
|
|
}
|
|
|
|
/*
|
|
* ////// // // // ////// // // // // // //////
|
|
* // //// //// // // // // // //// // //
|
|
* ////// // // // // // ////// // // //// // //
|
|
* // // // // // // // // // // // //
|
|
* ////// // // // // // // // // // //////
|
|
*/
|
|
public static void registerSmithing() {
|
|
|
|
Block[] anvils = new Block[]{ModBlocks.anvil_iron, ModBlocks.anvil_lead};
|
|
|
|
for(Block anvil : anvils) {
|
|
smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModBlocks.anvil_bismuth, 1), new ComparableStack(anvil), new ComparableStack(ModItems.ingot_bismuth, 10)));
|
|
smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModBlocks.anvil_dnt, 1), new ComparableStack(anvil), new ComparableStack(ModItems.ingot_dineutronium, 10)));
|
|
smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModBlocks.anvil_ferrouranium, 1), new ComparableStack(anvil), new ComparableStack(ModItems.ingot_u238, 10)));
|
|
smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModBlocks.anvil_meteorite, 1), new ComparableStack(anvil), new ComparableStack(ModItems.ingot_meteorite, 10)));
|
|
smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModBlocks.anvil_schrabidate, 1), new ComparableStack(anvil), new ComparableStack(ModItems.ingot_schrabidate, 10)));
|
|
smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModBlocks.anvil_starmetal, 1), new ComparableStack(anvil), new ComparableStack(ModItems.ingot_starmetal, 10)));
|
|
smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModBlocks.anvil_steel, 1), new ComparableStack(anvil), new OreDictStack("ingotSteel", 10)));
|
|
}
|
|
|
|
for(int i = 0; i < 9; i++)
|
|
smithingRecipes.add(new AnvilSmithingHotRecipe(3, new ItemStack(ModItems.ingot_steel_dusted, 1, i + 1),
|
|
new ComparableStack(ModItems.ingot_steel_dusted, 1, i), new ComparableStack(ModItems.ingot_steel_dusted, 1, i)));
|
|
|
|
smithingRecipes.add(new AnvilSmithingHotRecipe(3, new ItemStack(ModItems.ingot_chainsteel, 1),
|
|
new ComparableStack(ModItems.ingot_steel_dusted, 1, 9), new ComparableStack(ModItems.ingot_steel_dusted, 1, 9)));
|
|
|
|
smithingRecipes.add(new AnvilSmithingHotRecipe(3, new ItemStack(ModItems.ingot_meteorite_forged, 1), new ComparableStack(ModItems.ingot_meteorite), new ComparableStack(ModItems.ingot_meteorite)));
|
|
smithingRecipes.add(new AnvilSmithingHotRecipe(3, new ItemStack(ModItems.blade_meteorite, 1), new ComparableStack(ModItems.ingot_meteorite_forged), new ComparableStack(ModItems.ingot_meteorite_forged)));
|
|
smithingRecipes.add(new AnvilSmithingHotRecipe(3, new ItemStack(ModItems.meteorite_sword_reforged, 1), new ComparableStack(ModItems.meteorite_sword_seared), new ComparableStack(ModItems.ingot_meteorite_forged)));
|
|
smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModItems.gun_ar15, 1), new ComparableStack(ModItems.gun_thompson), new ComparableStack(ModItems.pipe_lead)));
|
|
smithingRecipes.add(new AnvilSmithingRecipe(1916169, new ItemStack(ModItems.wings_murk, 1), new ComparableStack(ModItems.wings_limp), new ComparableStack(ModItems.particle_tachyon)));
|
|
|
|
smithingRecipes.add(new AnvilSmithingCyanideRecipe());
|
|
smithingRecipes.add(new AnvilSmithingRenameRecipe());
|
|
}
|
|
|
|
/*
|
|
* ////// ////// // // ////// ////// //// // // ////// ////// // ////// // //
|
|
* // // // //// // // // // // // // // // // // // //// //
|
|
* // // // // //// ////// // //// // // // // // // // // ////
|
|
* // // // // // // // // // // // // // // // // // //
|
|
* ////// ////// // // ////// // // // ////// ////// // // ////// // //
|
|
*/
|
|
public static void registerConstruction() {
|
|
registerConstructionRecipes();
|
|
|
|
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack("ingotIron"), new AnvilOutput(new ItemStack(ModItems.plate_iron))).setTier(3));
|
|
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack("ingotGold"), new AnvilOutput(new ItemStack(ModItems.plate_gold))).setTier(3));
|
|
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack("ingotTitanium"), new AnvilOutput(new ItemStack(ModItems.plate_titanium))).setTier(3));
|
|
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack("ingotAluminum"), new AnvilOutput(new ItemStack(ModItems.plate_aluminium))).setTier(3));
|
|
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack("ingotSteel"), new AnvilOutput(new ItemStack(ModItems.plate_steel))).setTier(3));
|
|
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack("ingotLead"), new AnvilOutput(new ItemStack(ModItems.plate_lead))).setTier(3));
|
|
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack("ingotCopper"), new AnvilOutput(new ItemStack(ModItems.plate_copper))).setTier(3));
|
|
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack("ingotAdvancedAlloy"), new AnvilOutput(new ItemStack(ModItems.plate_advanced_alloy))).setTier(3));
|
|
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack("ingotSchrabidium"), new AnvilOutput(new ItemStack(ModItems.plate_schrabidium))).setTier(3));
|
|
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack("ingotCMBSteel"), new AnvilOutput(new ItemStack(ModItems.plate_combine_steel))).setTier(3));
|
|
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack("ingotSaturnite"), new AnvilOutput(new ItemStack(ModItems.plate_saturnite))).setTier(3));
|
|
|
|
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack("ingotAluminum"), new AnvilOutput(new ItemStack(ModItems.wire_aluminium, 8))).setTier(4));
|
|
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack("ingotCopper"), new AnvilOutput(new ItemStack(ModItems.wire_copper, 8))).setTier(4));
|
|
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack("ingotTungsten"), new AnvilOutput(new ItemStack(ModItems.wire_tungsten, 8))).setTier(4));
|
|
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack("ingotMingrade"), new AnvilOutput(new ItemStack(ModItems.wire_red_copper, 8))).setTier(4));
|
|
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack("ingotAdvancedAlloy"), new AnvilOutput(new ItemStack(ModItems.wire_advanced_alloy, 8))).setTier(4));
|
|
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack("ingotGold"), new AnvilOutput(new ItemStack(ModItems.wire_gold, 8))).setTier(4));
|
|
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack("ingotSchrabidium"), new AnvilOutput(new ItemStack(ModItems.wire_schrabidium, 8))).setTier(4));
|
|
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack("ingotMagnetizedTungsten"), new AnvilOutput(new ItemStack(ModItems.wire_magnetized_tungsten, 8))).setTier(4));
|
|
|
|
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack("dustCoal"), new AnvilOutput(new ItemStack(Items.coal))).setTier(3));
|
|
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack("dustNetherQuartz"), new AnvilOutput(new ItemStack(Items.quartz))).setTier(3));
|
|
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack("dustLapis"), new AnvilOutput(new ItemStack(Items.dye, 1, 4))).setTier(3));
|
|
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack("dustDiamond"), new AnvilOutput(new ItemStack(Items.diamond))).setTier(3));
|
|
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack("dustEmerald"), new AnvilOutput(new ItemStack(Items.emerald))).setTier(3));
|
|
|
|
registerConstructionAmmo();
|
|
registerConstructionUpgrades();
|
|
registerConstructionRecycling();
|
|
}
|
|
|
|
public static void registerConstructionRecipes() {
|
|
|
|
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack("ingotAluminum", 1), new AnvilOutput(new ItemStack(ModBlocks.deco_aluminium))).setTier(1).setOverlay(OverlayType.CONSTRUCTION));
|
|
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack("ingotBeryllium", 1), new AnvilOutput(new ItemStack(ModBlocks.deco_beryllium))).setTier(1).setOverlay(OverlayType.CONSTRUCTION));
|
|
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack("ingotLead", 1), new AnvilOutput(new ItemStack(ModBlocks.deco_lead))).setTier(1).setOverlay(OverlayType.CONSTRUCTION));
|
|
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack("ingotMingrade", 1), new AnvilOutput(new ItemStack(ModBlocks.deco_red_copper))).setTier(1).setOverlay(OverlayType.CONSTRUCTION));
|
|
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack("ingotSteel", 1), new AnvilOutput(new ItemStack(ModBlocks.deco_steel))).setTier(1).setOverlay(OverlayType.CONSTRUCTION));
|
|
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack("ingotTitanium", 1), new AnvilOutput(new ItemStack(ModBlocks.deco_titanium))).setTier(1).setOverlay(OverlayType.CONSTRUCTION));
|
|
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack("ingotTungsten", 1), new AnvilOutput(new ItemStack(ModBlocks.deco_tungsten))).setTier(1).setOverlay(OverlayType.CONSTRUCTION));
|
|
|
|
constructionRecipes.add(new AnvilConstructionRecipe(
|
|
new AStack[] {new OreDictStack("ingotDineutronium", 4), new ComparableStack(ModBlocks.depth_brick)},
|
|
new AnvilOutput(new ItemStack(ModBlocks.depth_dnt))).setTier(1916169));
|
|
|
|
constructionRecipes.add(new AnvilConstructionRecipe(
|
|
new OreDictStack("plateCopper", 4),
|
|
new AnvilOutput(new ItemStack(ModItems.board_copper))).setTier(1));
|
|
constructionRecipes.add(new AnvilConstructionRecipe(
|
|
new ComparableStack(ModItems.coil_copper, 2),
|
|
new AnvilOutput(new ItemStack(ModItems.coil_copper_torus))).setTier(1).setOverlay(OverlayType.CONSTRUCTION));
|
|
constructionRecipes.add(new AnvilConstructionRecipe(
|
|
new ComparableStack(ModItems.coil_advanced_alloy, 2),
|
|
new AnvilOutput(new ItemStack(ModItems.coil_advanced_torus))).setTier(1).setOverlay(OverlayType.CONSTRUCTION));
|
|
constructionRecipes.add(new AnvilConstructionRecipe(
|
|
new ComparableStack(ModItems.coil_gold, 2),
|
|
new AnvilOutput(new ItemStack(ModItems.coil_gold_torus))).setTier(1).setOverlay(OverlayType.CONSTRUCTION));
|
|
|
|
constructionRecipes.add(new AnvilConstructionRecipe(
|
|
new AStack[] {new OreDictStack("plateIron", 2), new ComparableStack(ModItems.coil_copper), new ComparableStack(ModItems.coil_copper_torus)},
|
|
new AnvilOutput(new ItemStack(ModItems.motor, 2))).setTier(1));
|
|
constructionRecipes.add(new AnvilConstructionRecipe(
|
|
new AStack[] {new ComparableStack(ModItems.motor), new OreDictStack("ingotPolymer", 2), new OreDictStack("ingotDesh", 2), new ComparableStack(ModItems.coil_gold_torus)},
|
|
new AnvilOutput(new ItemStack(ModItems.motor_desh, 1))).setTier(3));
|
|
|
|
constructionRecipes.add(new AnvilConstructionRecipe(
|
|
new AStack[] {
|
|
new ComparableStack(Blocks.stonebrick, 4),
|
|
new OreDictStack("ingotIron", 2),
|
|
new OreDictStack("ingotTungsten", 4),
|
|
new ComparableStack(ModItems.board_copper, 2)
|
|
},
|
|
new AnvilOutput(new ItemStack(ModBlocks.machine_difurnace_off))).setTier(1));
|
|
|
|
int ukModifier = 1;
|
|
constructionRecipes.add(new AnvilConstructionRecipe(
|
|
new AStack[] {
|
|
new OreDictStack("blockGlassColorless", 4 * ukModifier),
|
|
new OreDictStack("ingotSteel", 8 * ukModifier),
|
|
new OreDictStack("ingotCopper", 8 * ukModifier),
|
|
new ComparableStack(ModItems.motor, 2 * ukModifier),
|
|
new ComparableStack(ModItems.circuit_aluminium, 1 * ukModifier)
|
|
},
|
|
new AnvilOutput(new ItemStack(ModBlocks.machine_assembler))).setTier(2));
|
|
|
|
constructionRecipes.add(new AnvilConstructionRecipe(
|
|
new AStack[] {
|
|
new ComparableStack(ModBlocks.brick_concrete, 64),
|
|
new ComparableStack(Blocks.iron_bars, 128),
|
|
new ComparableStack(ModBlocks.machine_condenser, 5),
|
|
},
|
|
new AnvilOutput(new ItemStack(ModBlocks.machine_tower_small))).setTier(3));
|
|
constructionRecipes.add(new AnvilConstructionRecipe(
|
|
new AStack[] {
|
|
new ComparableStack(ModBlocks.concrete_smooth, 128),
|
|
new ComparableStack(ModBlocks.steel_scaffold, 32),
|
|
new ComparableStack(ModBlocks.machine_condenser, 25),
|
|
new ComparableStack(ModItems.pipes_steel, 2)
|
|
},
|
|
new AnvilOutput(new ItemStack(ModBlocks.machine_tower_large))).setTier(4));
|
|
|
|
constructionRecipes.add(new AnvilConstructionRecipe(
|
|
new AStack[] {
|
|
new ComparableStack(Items.bone, 16),
|
|
new ComparableStack(Items.leather, 4),
|
|
new ComparableStack(Items.feather, 24)
|
|
},
|
|
new AnvilOutput(new ItemStack(ModItems.wings_limp))).setTier(2));
|
|
|
|
constructionRecipes.add(new AnvilConstructionRecipe(
|
|
new AStack[] {new OreDictStack("ingotDesh", 4), new OreDictStack("dustPolymer", 2), new ComparableStack(ModItems.ingot_dura_steel, 1)},
|
|
new AnvilOutput(new ItemStack(ModItems.plate_desh, 4))).setTier(3));
|
|
constructionRecipes.add(new AnvilConstructionRecipe(
|
|
new AStack[] {new OreDictStack("ingotEuphemium", 4), new ComparableStack(ModItems.powder_astatine, 2), new ComparableStack(ModItems.gem_volcanic, 1)},
|
|
new AnvilOutput(new ItemStack(ModItems.plate_euphemium, 4))).setTier(6));
|
|
constructionRecipes.add(new AnvilConstructionRecipe(
|
|
new AStack[] {new OreDictStack("ingotDineutronium", 4), new ComparableStack(ModItems.powder_spark_mix, 2), new OreDictStack("ingotDesh", 1)},
|
|
new AnvilOutput(new ItemStack(ModItems.plate_dineutronium, 4))).setTier(7));
|
|
|
|
constructionRecipes.add(new AnvilConstructionRecipe(
|
|
new AStack[] {new OreDictStack("plateTitanium", 2), new OreDictStack("ingotSteel", 1), new ComparableStack(ModItems.bolt_tungsten, 2)},
|
|
new AnvilOutput(new ItemStack(ModItems.plate_armor_titanium))).setTier(2));
|
|
constructionRecipes.add(new AnvilConstructionRecipe(
|
|
new AStack[] {new OreDictStack("plateIron", 4), new ComparableStack(ModItems.plate_saturnite, 2), new ComparableStack(ModItems.plate_armor_titanium, 1)},
|
|
new AnvilOutput(new ItemStack(ModItems.plate_armor_ajr))).setTier(3));
|
|
constructionRecipes.add(new AnvilConstructionRecipe(
|
|
new AStack[] {new ComparableStack(ModItems.plate_advanced_alloy, 4), new ComparableStack(ModItems.plate_armor_titanium, 1), new ComparableStack(ModItems.wire_tungsten, 6)},
|
|
new AnvilOutput(new ItemStack(ModItems.plate_armor_hev))).setTier(4));
|
|
constructionRecipes.add(new AnvilConstructionRecipe(
|
|
new AStack[] {new OreDictStack(OreDictManager.getReflector(), 4), new ComparableStack(ModItems.ingot_starmetal, 1), new ComparableStack(ModItems.wire_magnetized_tungsten, 6)},
|
|
new AnvilOutput(new ItemStack(ModItems.plate_armor_lunar))).setTier(4));
|
|
constructionRecipes.add(new AnvilConstructionRecipe(
|
|
new AStack[] {new ComparableStack(ModItems.ingot_meteorite_forged, 4), new OreDictStack("ingotDesh", 1), new ComparableStack(ModItems.billet_yharonite, 1)},
|
|
new AnvilOutput(new ItemStack(ModItems.plate_armor_fau))).setTier(6));
|
|
constructionRecipes.add(new AnvilConstructionRecipe(
|
|
new AStack[] {new ComparableStack(ModItems.plate_dineutronium, 4), new ComparableStack(ModItems.particle_sparkticle, 1), new ComparableStack(ModItems.plate_armor_fau, 6)},
|
|
new AnvilOutput(new ItemStack(ModItems.plate_armor_dnt))).setTier(7));
|
|
|
|
pullFromAssembler(new ComparableStack(ModItems.plate_mixed, 4), 3);
|
|
|
|
}
|
|
|
|
public static void registerConstructionAmmo() {
|
|
|
|
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack("plateCopper"), new AnvilOutput(new ItemStack(ModItems.casing_357))).setTier(1));
|
|
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack("plateCopper"), new AnvilOutput(new ItemStack(ModItems.casing_44))).setTier(1));
|
|
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack("plateCopper"), new AnvilOutput(new ItemStack(ModItems.casing_9))).setTier(1));
|
|
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack("plateCopper"), new AnvilOutput(new ItemStack(ModItems.casing_50))).setTier(1));
|
|
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack("plateCopper"), new AnvilOutput(new ItemStack(ModItems.casing_buckshot))).setTier(1));
|
|
constructionRecipes.add(new AnvilConstructionRecipe(new AStack[] {new OreDictStack("plateIron"), new ComparableStack(Items.redstone)}, new AnvilOutput(new ItemStack(ModItems.primer_357))).setTier(1));
|
|
constructionRecipes.add(new AnvilConstructionRecipe(new AStack[] {new OreDictStack("plateIron"), new ComparableStack(Items.redstone)}, new AnvilOutput(new ItemStack(ModItems.primer_44))).setTier(1));
|
|
constructionRecipes.add(new AnvilConstructionRecipe(new AStack[] {new OreDictStack("plateIron"), new ComparableStack(Items.redstone)}, new AnvilOutput(new ItemStack(ModItems.primer_9))).setTier(1));
|
|
constructionRecipes.add(new AnvilConstructionRecipe(new AStack[] {new OreDictStack("plateIron"), new ComparableStack(Items.redstone)}, new AnvilOutput(new ItemStack(ModItems.primer_50))).setTier(1));
|
|
constructionRecipes.add(new AnvilConstructionRecipe(new AStack[] {new OreDictStack("plateIron"), new ComparableStack(Items.redstone)}, new AnvilOutput(new ItemStack(ModItems.primer_buckshot))).setTier(1));
|
|
|
|
Object[][] recs = new Object[][] {
|
|
{ModItems.ammo_12gauge, ModItems.powder_fire, ModItems.ammo_12gauge_incendiary, 20, 2},
|
|
{ModItems.ammo_12gauge, Item.getItemFromBlock(ModBlocks.gravel_obsidian), ModItems.ammo_12gauge_shrapnel, 20, 2},
|
|
{ModItems.ammo_12gauge, ModItems.ingot_u238, ModItems.ammo_12gauge_du, 20, 3},
|
|
{ModItems.ammo_12gauge, ModItems.coin_maskman, ModItems.ammo_12gauge_sleek, 100, 4},
|
|
|
|
{ModItems.ammo_20gauge, ModItems.powder_fire, ModItems.ammo_20gauge_incendiary, 20, 2},
|
|
{ModItems.ammo_20gauge, Item.getItemFromBlock(ModBlocks.gravel_obsidian), ModItems.ammo_20gauge_shrapnel, 20, 2},
|
|
{ModItems.ammo_20gauge, ModItems.powder_poison, ModItems.ammo_20gauge_caustic, 20, 2},
|
|
{ModItems.ammo_20gauge, "dustDiamond", ModItems.ammo_20gauge_shock, 20, 2},
|
|
{ModItems.ammo_20gauge, Item.getItemFromBlock(Blocks.soul_sand), ModItems.ammo_20gauge_wither, 10, 3},
|
|
{ModItems.ammo_20gauge, ModItems.coin_maskman, ModItems.ammo_20gauge_sleek, 100, 4},
|
|
|
|
{ModItems.ammo_4gauge_flechette, ModItems.ingot_phosphorus, ModItems.ammo_4gauge_flechette_phosphorus, 20, 2},
|
|
{ModItems.ammo_4gauge_explosive, ModItems.egg_balefire_shard, ModItems.ammo_4gauge_balefire, 10, 4},
|
|
{ModItems.ammo_4gauge_explosive, ModItems.ammo_rocket, ModItems.ammo_4gauge_kampf, 4, 2},
|
|
{ModItems.ammo_4gauge_kampf, ModItems.pellet_canister, ModItems.ammo_4gauge_canister, 10, 3},
|
|
{ModItems.ammo_4gauge, ModItems.pellet_claws, ModItems.ammo_4gauge_claw, 4, 5},
|
|
{ModItems.ammo_4gauge, ModItems.toothpicks, ModItems.ammo_4gauge_vampire, 4, 5},
|
|
{ModItems.ammo_4gauge, ModItems.pellet_charged, ModItems.ammo_4gauge_void, 1, 5},
|
|
{ModItems.ammo_4gauge, ModItems.coin_maskman, ModItems.ammo_4gauge_sleek, 100, 4},
|
|
|
|
{ModItems.ammo_44, ModItems.ingot_dura_steel, ModItems.ammo_44_ap, 20, 2},
|
|
{ModItems.ammo_44, ModItems.ingot_u238, ModItems.ammo_44_du, 20, 2},
|
|
{ModItems.ammo_44, ModItems.ingot_phosphorus, ModItems.ammo_44_phosphorus, 20, 2},
|
|
{ModItems.ammo_44_du, ModItems.ingot_starmetal, ModItems.ammo_44_star, 10, 3},
|
|
{ModItems.ammo_44, ModItems.pellet_chlorophyte, ModItems.ammo_44_chlorophyte, 10, 3},
|
|
|
|
{ModItems.ammo_5mm, ModItems.ingot_semtex, ModItems.ammo_5mm_explosive, 20, 2},
|
|
{ModItems.ammo_5mm, ModItems.ingot_u238, ModItems.ammo_5mm_du, 20, 2},
|
|
{ModItems.ammo_5mm, ModItems.ingot_starmetal, ModItems.ammo_5mm_star, 10, 3},
|
|
{ModItems.ammo_5mm, ModItems.pellet_chlorophyte, ModItems.ammo_5mm_chlorophyte, 10, 3},
|
|
|
|
{ModItems.ammo_9mm, ModItems.ingot_dura_steel, ModItems.ammo_9mm_ap, 20, 2},
|
|
{ModItems.ammo_9mm, ModItems.ingot_u238, ModItems.ammo_9mm_du, 20, 2},
|
|
{ModItems.ammo_9mm, ModItems.pellet_chlorophyte, ModItems.ammo_9mm_chlorophyte, 10, 3},
|
|
|
|
{ModItems.ammo_22lr, ModItems.ingot_dura_steel, ModItems.ammo_22lr_ap, 20, 2},
|
|
{ModItems.ammo_22lr, ModItems.pellet_chlorophyte, ModItems.ammo_22lr_chlorophyte, 10, 3},
|
|
|
|
{ModItems.ammo_50bmg, ModItems.powder_fire, ModItems.ammo_50bmg_incendiary, 20, 2},
|
|
{ModItems.ammo_50bmg, ModItems.ingot_phosphorus, ModItems.ammo_50bmg_phosphorus, 20, 2},
|
|
{ModItems.ammo_50bmg, ModItems.ingot_semtex, ModItems.ammo_50bmg_explosive, 20, 2},
|
|
{ModItems.ammo_50bmg, ModItems.ingot_dura_steel, ModItems.ammo_50bmg_ap, 20, 2},
|
|
{ModItems.ammo_50bmg, ModItems.ingot_u238, ModItems.ammo_50bmg_du, 20, 2},
|
|
{ModItems.ammo_50bmg_du, ModItems.ingot_starmetal, ModItems.ammo_50bmg_star, 10, 3},
|
|
{ModItems.ammo_50bmg, ModItems.pellet_chlorophyte, ModItems.ammo_50bmg_chlorophyte, 10, 3},
|
|
{ModItems.ammo_50bmg, ModItems.coin_maskman, ModItems.ammo_50bmg_sleek, 100, 4},
|
|
{ModItems.ammo_50bmg, ModItems.pellet_flechette, ModItems.ammo_50bmg_flechette, 20, 2},
|
|
{ModItems.ammo_50bmg_flechette, ModItems.nugget_am_mix, ModItems.ammo_50bmg_flechette_am, 10, 3},
|
|
{ModItems.ammo_50bmg_flechette, ModItems.powder_polonium, ModItems.ammo_50bmg_flechette_po, 20, 3},
|
|
|
|
{ModItems.ammo_50ae, ModItems.ingot_dura_steel, ModItems.ammo_50ae_ap, 20, 2},
|
|
{ModItems.ammo_50ae, ModItems.ingot_u238, ModItems.ammo_50ae_du, 20, 2},
|
|
{ModItems.ammo_50ae_du, ModItems.ingot_starmetal, ModItems.ammo_50ae_star, 10, 3},
|
|
{ModItems.ammo_50ae, ModItems.pellet_chlorophyte, ModItems.ammo_50ae_chlorophyte, 10, 3},
|
|
|
|
{ModItems.ammo_556, ModItems.ingot_phosphorus, ModItems.ammo_556_phosphorus, 20, 2},
|
|
{ModItems.ammo_556, ModItems.ingot_dura_steel, ModItems.ammo_556_ap, 20, 2},
|
|
{ModItems.ammo_556, ModItems.ingot_u238, ModItems.ammo_556_du, 20, 2},
|
|
{ModItems.ammo_556_du, ModItems.ingot_starmetal, ModItems.ammo_556_star, 10, 3},
|
|
{ModItems.ammo_556, ModItems.pellet_chlorophyte, ModItems.ammo_556_chlorophyte, 10, 3},
|
|
{ModItems.ammo_556, ModItems.coin_maskman, ModItems.ammo_556_sleek, 100, 4},
|
|
{ModItems.ammo_556, Items.redstone, ModItems.ammo_556_tracer, 20, 2},
|
|
{ModItems.ammo_556, ModItems.pellet_flechette, ModItems.ammo_556_flechette, 20, 2},
|
|
{ModItems.ammo_556_flechette, ModItems.powder_fire, ModItems.ammo_556_flechette_incendiary, 20, 2},
|
|
{ModItems.ammo_556_flechette, ModItems.ingot_phosphorus, ModItems.ammo_556_flechette_phosphorus, 20, 2},
|
|
{ModItems.ammo_556_flechette, ModItems.ingot_u238, ModItems.ammo_556_flechette_du, 20, 2},
|
|
{ModItems.ammo_556_flechette, ModItems.coin_maskman, ModItems.ammo_556_flechette_sleek, 100, 4},
|
|
{ModItems.ammo_556_flechette, ModItems.pellet_chlorophyte, ModItems.ammo_556_flechette_chlorophyte, 10, 3},
|
|
};
|
|
|
|
for(Object[] objs : recs) {
|
|
|
|
if(objs[1] instanceof Item) {
|
|
constructionRecipes.add(new AnvilConstructionRecipe(new AStack[] { new ComparableStack((Item)objs[0], (int)objs[3]), new ComparableStack((Item)objs[1], 1) },
|
|
new AnvilOutput(new ItemStack((Item)objs[2], (int)objs[3]))).setTier((int)objs[4]));
|
|
|
|
} else if(objs[1] instanceof String) {
|
|
constructionRecipes.add(new AnvilConstructionRecipe(new AStack[] { new ComparableStack((Item)objs[0], (int)objs[3]), new OreDictStack((String)objs[1], 1) },
|
|
new AnvilOutput(new ItemStack((Item)objs[2], (int)objs[3]))).setTier((int)objs[4]));
|
|
}
|
|
}
|
|
}
|
|
|
|
public static void registerConstructionUpgrades() {
|
|
pullFromAssembler(new ComparableStack(ModItems.upgrade_template), 2);
|
|
pullFromAssembler(new ComparableStack(ModItems.upgrade_speed_1), 2);
|
|
pullFromAssembler(new ComparableStack(ModItems.upgrade_speed_2), 3);
|
|
pullFromAssembler(new ComparableStack(ModItems.upgrade_speed_3), 4);
|
|
pullFromAssembler(new ComparableStack(ModItems.upgrade_power_1), 2);
|
|
pullFromAssembler(new ComparableStack(ModItems.upgrade_power_2), 3);
|
|
pullFromAssembler(new ComparableStack(ModItems.upgrade_power_3), 4);
|
|
pullFromAssembler(new ComparableStack(ModItems.upgrade_effect_1), 2);
|
|
pullFromAssembler(new ComparableStack(ModItems.upgrade_effect_2), 3);
|
|
pullFromAssembler(new ComparableStack(ModItems.upgrade_effect_3), 4);
|
|
pullFromAssembler(new ComparableStack(ModItems.upgrade_fortune_1), 2);
|
|
pullFromAssembler(new ComparableStack(ModItems.upgrade_fortune_2), 3);
|
|
pullFromAssembler(new ComparableStack(ModItems.upgrade_fortune_3), 4);
|
|
pullFromAssembler(new ComparableStack(ModItems.upgrade_afterburn_1), 2);
|
|
pullFromAssembler(new ComparableStack(ModItems.upgrade_afterburn_2), 3);
|
|
pullFromAssembler(new ComparableStack(ModItems.upgrade_afterburn_3), 4);
|
|
|
|
pullFromAssembler(new ComparableStack(ModItems.upgrade_radius), 4);
|
|
pullFromAssembler(new ComparableStack(ModItems.upgrade_health), 4);
|
|
pullFromAssembler(new ComparableStack(ModItems.upgrade_smelter), 4);
|
|
pullFromAssembler(new ComparableStack(ModItems.upgrade_shredder), 4);
|
|
pullFromAssembler(new ComparableStack(ModItems.upgrade_centrifuge), 4);
|
|
pullFromAssembler(new ComparableStack(ModItems.upgrade_crystallizer), 4);
|
|
pullFromAssembler(new ComparableStack(ModItems.upgrade_nullifier), 4);
|
|
pullFromAssembler(new ComparableStack(ModItems.upgrade_screm), 4);
|
|
}
|
|
|
|
public static void registerConstructionRecycling() {
|
|
constructionRecipes.add(new AnvilConstructionRecipe(
|
|
new ComparableStack(ModBlocks.barrel_tcalloy),
|
|
new AnvilOutput[] {
|
|
new AnvilOutput(new ItemStack(ModItems.ingot_titanium, 2)),
|
|
new AnvilOutput(new ItemStack(ModItems.ingot_tcalloy, 4)),
|
|
new AnvilOutput(new ItemStack(ModItems.ingot_tcalloy, 1), 0.50F),
|
|
new AnvilOutput(new ItemStack(ModItems.ingot_tcalloy, 1), 0.25F)
|
|
}
|
|
).setTier(3));
|
|
|
|
constructionRecipes.add(new AnvilConstructionRecipe(
|
|
new ComparableStack(ModItems.circuit_raw),
|
|
new AnvilOutput[] {
|
|
new AnvilOutput(new ItemStack(ModItems.plate_steel, 1)),
|
|
new AnvilOutput(new ItemStack(ModItems.wire_aluminium, 1)),
|
|
new AnvilOutput(new ItemStack(Items.redstone, 1))
|
|
}
|
|
).setTier(1));
|
|
constructionRecipes.add(new AnvilConstructionRecipe(
|
|
new ComparableStack(ModItems.circuit_aluminium),
|
|
new AnvilOutput[] {
|
|
new AnvilOutput(new ItemStack(ModItems.plate_steel, 1)),
|
|
new AnvilOutput(new ItemStack(ModItems.wire_aluminium, 1), 0.5F),
|
|
new AnvilOutput(new ItemStack(Items.redstone, 1), 0.25F)
|
|
}
|
|
).setTier(1));
|
|
constructionRecipes.add(new AnvilConstructionRecipe(
|
|
new ComparableStack(ModItems.circuit_copper),
|
|
new AnvilOutput[] {
|
|
new AnvilOutput(new ItemStack(ModItems.circuit_aluminium, 1)),
|
|
new AnvilOutput(new ItemStack(ModItems.wire_copper, 2)),
|
|
new AnvilOutput(new ItemStack(ModItems.wire_copper, 1), 0.5F),
|
|
new AnvilOutput(new ItemStack(ModItems.wire_copper, 1), 0.25F),
|
|
new AnvilOutput(new ItemStack(ModItems.powder_quartz, 1), 0.25F),
|
|
new AnvilOutput(new ItemStack(ModItems.plate_copper, 1), 0.5F)
|
|
}
|
|
).setTier(2));
|
|
constructionRecipes.add(new AnvilConstructionRecipe(
|
|
new ComparableStack(ModItems.circuit_red_copper),
|
|
new AnvilOutput[] {
|
|
new AnvilOutput(new ItemStack(ModItems.circuit_copper, 1)),
|
|
new AnvilOutput(new ItemStack(ModItems.wire_red_copper, 2)),
|
|
new AnvilOutput(new ItemStack(ModItems.wire_red_copper, 1), 0.5F),
|
|
new AnvilOutput(new ItemStack(ModItems.wire_red_copper, 1), 0.25F),
|
|
new AnvilOutput(new ItemStack(ModItems.powder_gold, 1), 0.25F),
|
|
new AnvilOutput(new ItemStack(ModItems.plate_polymer, 1), 0.5F)
|
|
}
|
|
).setTier(3));
|
|
constructionRecipes.add(new AnvilConstructionRecipe(
|
|
new ComparableStack(ModItems.circuit_gold),
|
|
new AnvilOutput[] {
|
|
new AnvilOutput(new ItemStack(ModItems.circuit_red_copper, 1)),
|
|
new AnvilOutput(new ItemStack(ModItems.wire_gold, 2)),
|
|
new AnvilOutput(new ItemStack(ModItems.wire_gold, 1), 0.5F),
|
|
new AnvilOutput(new ItemStack(ModItems.wire_gold, 1), 0.25F),
|
|
new AnvilOutput(new ItemStack(ModItems.powder_lapis, 1), 0.25F),
|
|
new AnvilOutput(new ItemStack(ModItems.ingot_polymer, 1), 0.5F)
|
|
}
|
|
).setTier(4));
|
|
constructionRecipes.add(new AnvilConstructionRecipe(
|
|
new ComparableStack(ModItems.circuit_schrabidium),
|
|
new AnvilOutput[] {
|
|
new AnvilOutput(new ItemStack(ModItems.circuit_gold, 1)),
|
|
new AnvilOutput(new ItemStack(ModItems.wire_schrabidium, 2)),
|
|
new AnvilOutput(new ItemStack(ModItems.wire_schrabidium, 1), 0.5F),
|
|
new AnvilOutput(new ItemStack(ModItems.wire_schrabidium, 1), 0.25F),
|
|
new AnvilOutput(new ItemStack(ModItems.powder_diamond, 1), 0.25F),
|
|
new AnvilOutput(new ItemStack(ModItems.ingot_desh, 1), 0.5F)
|
|
}
|
|
).setTier(6));
|
|
|
|
constructionRecipes.add(new AnvilConstructionRecipe(
|
|
new ComparableStack(ModItems.circuit_tantalium_raw),
|
|
new AnvilOutput[] {
|
|
new AnvilOutput(new ItemStack(Items.redstone, 4)),
|
|
new AnvilOutput(new ItemStack(ModItems.wire_gold, 2)),
|
|
new AnvilOutput(new ItemStack(ModItems.plate_copper, 2)),
|
|
new AnvilOutput(new ItemStack(ModItems.nugget_tantalium, 1))
|
|
}
|
|
).setTier(4));
|
|
constructionRecipes.add(new AnvilConstructionRecipe(
|
|
new ComparableStack(ModItems.circuit_tantalium),
|
|
new AnvilOutput[] {
|
|
new AnvilOutput(new ItemStack(Items.redstone, 2)),
|
|
new AnvilOutput(new ItemStack(ModItems.wire_gold, 1)),
|
|
new AnvilOutput(new ItemStack(ModItems.wire_gold, 1), 0.5F),
|
|
new AnvilOutput(new ItemStack(ModItems.plate_copper, 1)),
|
|
new AnvilOutput(new ItemStack(ModItems.nugget_tantalium, 1), 0.75F)
|
|
}
|
|
).setTier(4));
|
|
|
|
constructionRecipes.add(new AnvilConstructionRecipe(
|
|
new ComparableStack(ModItems.circuit_bismuth_raw),
|
|
new AnvilOutput[] {
|
|
new AnvilOutput(new ItemStack(Items.redstone, 4)),
|
|
new AnvilOutput(new ItemStack(ModItems.ingot_polymer, 2)),
|
|
new AnvilOutput(new ItemStack(GeneralConfig.enable528 ? ModItems.circuit_bismuth : ModItems.ingot_asbestos, 2)),
|
|
new AnvilOutput(new ItemStack(ModItems.ingot_bismuth, 1))
|
|
}
|
|
).setTier(4));
|
|
constructionRecipes.add(new AnvilConstructionRecipe(
|
|
new ComparableStack(ModItems.circuit_bismuth),
|
|
new AnvilOutput[] {
|
|
new AnvilOutput(new ItemStack(Items.redstone, 2)),
|
|
new AnvilOutput(new ItemStack(ModItems.ingot_polymer, 1)),
|
|
new AnvilOutput(new ItemStack(ModItems.ingot_polymer, 1), 0.5F),
|
|
new AnvilOutput(new ItemStack(GeneralConfig.enable528 ? ModItems.circuit_bismuth : ModItems.ingot_asbestos, 1)),
|
|
new AnvilOutput(new ItemStack(ModItems.ingot_bismuth, 1), 0.75F)
|
|
}
|
|
).setTier(4));
|
|
|
|
constructionRecipes.add(new AnvilConstructionRecipe(
|
|
new ComparableStack(ModItems.pile_rod_uranium),
|
|
new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.billet_uranium, 3)), new AnvilOutput(new ItemStack(ModItems.plate_iron, 2))}).setTier(3));
|
|
constructionRecipes.add(new AnvilConstructionRecipe(
|
|
new ComparableStack(ModItems.pile_rod_plutonium),
|
|
new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.billet_plutonium, 3)), new AnvilOutput(new ItemStack(ModItems.plate_iron, 2))}).setTier(3));
|
|
constructionRecipes.add(new AnvilConstructionRecipe(
|
|
new ComparableStack(ModItems.pile_rod_source),
|
|
new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.billet_ra226be, 3)), new AnvilOutput(new ItemStack(ModItems.plate_iron, 2))}).setTier(3));
|
|
constructionRecipes.add(new AnvilConstructionRecipe(
|
|
new ComparableStack(ModItems.pile_rod_boron),
|
|
new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_boron, 2)), new AnvilOutput(new ItemStack(Items.stick, 2))}).setTier(3));
|
|
}
|
|
|
|
public static void pullFromAssembler(ComparableStack result, int tier) {
|
|
|
|
AStack[] ingredients = AssemblerRecipes.recipes.get(result);
|
|
|
|
if(ingredients != null) {
|
|
constructionRecipes.add(new AnvilConstructionRecipe(ingredients, new AnvilOutput(result.toStack())).setTier(tier));
|
|
}
|
|
}
|
|
|
|
public static List<AnvilSmithingRecipe> getSmithing() {
|
|
return smithingRecipes;
|
|
}
|
|
|
|
public static List<AnvilConstructionRecipe> getConstruction() {
|
|
return constructionRecipes;
|
|
}
|
|
|
|
public static class AnvilConstructionRecipe {
|
|
public List<AStack> input = new ArrayList();
|
|
public List<AnvilOutput> output = new ArrayList();
|
|
public int tierLower = 0;
|
|
public int tierUpper = -1;
|
|
OverlayType overlay = OverlayType.NONE;
|
|
|
|
public AnvilConstructionRecipe(AStack input, AnvilOutput output) {
|
|
this.input.add(input);
|
|
this.output.add(output);
|
|
this.setOverlay(OverlayType.SMITHING); //preferred overlay for 1:1 conversions is smithing
|
|
}
|
|
|
|
public AnvilConstructionRecipe(AStack[] input, AnvilOutput output) {
|
|
for(AStack stack : input) this.input.add(stack);
|
|
this.output.add(output);
|
|
this.setOverlay(OverlayType.CONSTRUCTION); //preferred overlay for many:1 conversions is construction
|
|
}
|
|
|
|
public AnvilConstructionRecipe(AStack input, AnvilOutput[] output) {
|
|
this.input.add(input);
|
|
for(AnvilOutput out : output) this.output.add(out);
|
|
this.setOverlay(OverlayType.RECYCLING); //preferred overlay for 1:many conversions is recycling
|
|
}
|
|
|
|
public AnvilConstructionRecipe(AStack[] input, AnvilOutput[] output) {
|
|
for(AStack stack : input) this.input.add(stack);
|
|
for(AnvilOutput out : output) this.output.add(out);
|
|
this.setOverlay(OverlayType.NONE); //no preferred overlay for many:many conversions
|
|
}
|
|
|
|
public AnvilConstructionRecipe setTier(int tier) {
|
|
this.tierLower = tier;
|
|
if(GeneralConfig.enableBabyMode) this.tierLower = 1;
|
|
return this;
|
|
}
|
|
|
|
public AnvilConstructionRecipe setTierRange(int lower, int upper) {
|
|
this.tierLower = lower;
|
|
this.tierUpper = upper;
|
|
if(GeneralConfig.enableBabyMode) this.tierLower = this.tierUpper = 1;
|
|
return this;
|
|
}
|
|
|
|
public boolean isTierValid(int tier) {
|
|
|
|
if(this.tierUpper == -1)
|
|
return tier >= this.tierLower;
|
|
|
|
return tier >= this.tierLower && tier <= this.tierUpper;
|
|
}
|
|
|
|
public AnvilConstructionRecipe setOverlay(OverlayType overlay) {
|
|
this.overlay = overlay;
|
|
return this;
|
|
}
|
|
|
|
public OverlayType getOverlay() {
|
|
return this.overlay;
|
|
}
|
|
|
|
public ItemStack getDisplay() {
|
|
switch(this.overlay) {
|
|
case NONE: return this.output.get(0).stack.copy();
|
|
case CONSTRUCTION: return this.output.get(0).stack.copy();
|
|
case SMITHING: return this.output.get(0).stack.copy();
|
|
case RECYCLING:
|
|
for(AStack stack : this.input) {
|
|
if(stack instanceof ComparableStack)
|
|
return ((ComparableStack)stack).toStack();
|
|
}
|
|
return this.output.get(0).stack.copy();
|
|
default: return new ItemStack(Items.iron_pickaxe);
|
|
}
|
|
}
|
|
}
|
|
|
|
public static class AnvilOutput {
|
|
public ItemStack stack;
|
|
public float chance;
|
|
|
|
public AnvilOutput(ItemStack stack) {
|
|
this(stack, 1F);
|
|
}
|
|
|
|
public AnvilOutput(ItemStack stack, float chance) {
|
|
this.stack = stack;
|
|
this.chance = chance;
|
|
}
|
|
}
|
|
|
|
public static enum OverlayType {
|
|
NONE,
|
|
CONSTRUCTION,
|
|
RECYCLING,
|
|
SMITHING;
|
|
}
|
|
}
|