TechReborn/src/main/java/techreborn/init/ModRecipes.java

582 lines
23 KiB
Java
Raw Normal View History

2017-06-02 20:35:51 +02:00
/*
* This file is part of TechReborn, licensed under the MIT License (MIT).
*
* Copyright (c) 2017 TechReborn
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
package techreborn.init;
2015-04-14 01:12:24 +02:00
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
2015-04-12 17:43:51 +02:00
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.FurnaceRecipes;
import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.FluidUtil;
import net.minecraftforge.fml.common.Loader;
2015-05-15 05:19:52 +02:00
import net.minecraftforge.oredict.OreDictionary;
2016-04-23 22:11:30 +02:00
import reborncore.api.recipe.RecipeHandler;
2017-06-12 21:33:30 +02:00
import reborncore.common.registration.RebornRegistry;
import reborncore.common.util.ItemUtils;
2015-11-08 13:15:45 +01:00
import reborncore.common.util.OreUtil;
import reborncore.common.util.RebornCraftingHelper;
2015-11-08 13:15:45 +01:00
import techreborn.Core;
import techreborn.api.recipe.machines.*;
import techreborn.blocks.BlockOre;
import techreborn.compat.CompatManager;
2015-04-12 23:45:13 +02:00
import techreborn.config.ConfigTechReborn;
import techreborn.init.recipes.*;
import techreborn.items.*;
2017-06-12 21:33:30 +02:00
import techreborn.lib.ModInfo;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
2016-10-08 21:46:16 +02:00
import static techreborn.utils.OreDictUtils.getDictData;
import static techreborn.utils.OreDictUtils.getDictOreOrEmpty;
2016-10-08 21:46:16 +02:00
import static techreborn.utils.OreDictUtils.isDictPrefixed;
import static techreborn.utils.OreDictUtils.joinDictName;
2017-06-12 21:33:30 +02:00
@RebornRegistry(modID = ModInfo.MOD_ID)
2016-10-08 21:46:16 +02:00
public class ModRecipes {
2017-06-12 21:33:30 +02:00
2016-10-08 21:46:16 +02:00
public static void init() {
2016-12-12 16:53:04 +01:00
//Gonna rescan to make sure we have an uptodate list
OreUtil.scanForOres();
//Done again incase we loaded before QuantumStorage
CompatManager.isQuantumStorageLoaded = Loader.isModLoaded("quantumstorage");
CraftingTableRecipes.init();
SmeltingRecipes.init();
ExtractorRecipes.init();
RollingMachineRecipes.init();
FluidGeneratorRecipes.init();
IndustrialGrinderRecipes.init();
IndustrialCentrifugeRecipes.init();
IndustrialElectrolyzerRecipes.init();
ImplosionCompressorRecipes.init();
ScrapboxRecipes.init();
ChemicalReactorRecipes.init();
FusionReactorRecipes.init();
2017-10-16 14:52:10 +02:00
DistillationTowerRecipes.init();
2016-03-25 10:47:34 +01:00
addAlloySmelterRecipes();
addBlastFurnaceRecipes();
2016-10-08 21:46:16 +02:00
addVacuumFreezerRecipes();
2016-03-25 10:47:34 +01:00
addIc2Recipes();
addGrinderRecipes();
addCompressorRecipes();
}
2016-03-07 18:26:04 +01:00
2017-06-12 15:23:32 +02:00
public static void postInit() {
if (ConfigTechReborn.disableRailcraftSteelNuggetRecipe) {
Iterator<Entry<ItemStack, ItemStack>> iterator = FurnaceRecipes.instance().getSmeltingList().entrySet().iterator();
Map.Entry<ItemStack, ItemStack> entry;
while (iterator.hasNext()) {
entry = iterator.next();
if (entry.getValue() instanceof ItemStack && entry.getKey() instanceof ItemStack) {
ItemStack input = (ItemStack) entry.getKey();
ItemStack output = (ItemStack) entry.getValue();
2017-06-12 15:23:32 +02:00
if (ItemUtils.isInputEqual("nuggetSteel", output, true, true, false) && ItemUtils.isInputEqual("nuggetIron", input, true, true, false)) {
Core.logHelper.info("Removing a steelnugget smelting recipe");
iterator.remove();
}
}
}
}
IndustrialSawmillRecipes.init();
//Let it be in postInit to be sure that oredict already there
if (OreUtil.doesOreExistAndValid("stoneMarble")) {
ItemStack marbleStack = getOre("stoneMarble");
marbleStack.setCount(1);
RecipeHandler.addRecipe(new GrinderRecipe(
marbleStack, ItemDusts.getDustByName("marble"),
120, 10));
}
if (OreUtil.doesOreExistAndValid("stoneBasalt")) {
ItemStack marbleStack = getOre("stoneBasalt");
marbleStack.setCount(1);
RecipeHandler.addRecipe(new GrinderRecipe(
marbleStack, ItemDusts.getDustByName("basalt"),
120, 10));
}
}
2016-10-08 21:46:16 +02:00
private static void addCompressorRecipes() {
2016-12-10 09:15:39 +01:00
RecipeHandler.addRecipe(new CompressorRecipe(ItemIngots.getIngotByName("advanced_alloy"),
ItemPlates.getPlateByName("advanced_alloy"), 400, 20));
RecipeHandler.addRecipe(
2016-12-21 18:44:44 +01:00
new CompressorRecipe(IC2Duplicates.CARBON_MESH.getStackBasedOnConfig(), ItemPlates.getPlateByName("carbon"), 400,
2016-10-08 21:46:16 +02:00
2));
2016-12-22 01:41:33 +01:00
for (String ore : OreUtil.oreNames) {
2017-06-28 21:54:12 +02:00
if (ore.equals("iridium")) {
2017-06-25 15:15:01 +02:00
continue;
}
2016-12-22 01:41:33 +01:00
if (OreUtil.doesOreExistAndValid("plate" + OreUtil.capitalizeFirstLetter(ore)) && OreUtil.doesOreExistAndValid("ingot" + OreUtil.capitalizeFirstLetter(ore))) {
2016-12-12 16:53:04 +01:00
RecipeHandler.addRecipe(
2017-07-08 20:01:03 +02:00
new CompressorRecipe(OreUtil.getStackFromName("ingot" + OreUtil.capitalizeFirstLetter(ore), 1), OreUtil.getStackFromName("plate" + OreUtil.capitalizeFirstLetter(ore), 1), 300,
2016-12-12 16:53:04 +01:00
4));
}
if (OreUtil.doesOreExistAndValid("plate" + OreUtil.capitalizeFirstLetter(ore)) && OreUtil.doesOreExistAndValid("gem" + OreUtil.capitalizeFirstLetter(ore))) {
RecipeHandler.addRecipe(
2017-10-08 19:58:00 +02:00
new CompressorRecipe(OreUtil.getStackFromName("gem" + OreUtil.capitalizeFirstLetter(ore), 1), OreUtil.getStackFromName("plate" + OreUtil.capitalizeFirstLetter(ore), 1), 300,
4));
}
2016-12-12 16:53:04 +01:00
2016-12-22 01:41:33 +01:00
if (OreUtil.hasPlate(ore) && OreUtil.hasBlock(ore)) {
2016-12-12 16:53:04 +01:00
RecipeHandler.addRecipe(
2017-10-09 14:23:41 +02:00
new CompressorRecipe(OreUtil.getStackFromName("block" + OreUtil.capitalizeFirstLetter(ore), 1), OreUtil.getStackFromName("plate" + OreUtil.capitalizeFirstLetter(ore), 9), 300,
2016-12-12 16:53:04 +01:00
4));
}
}
RecipeHandler.addRecipe(
new CompressorRecipe(OreUtil.getStackFromName("plankWood", 1), OreUtil.getStackFromName("plateWood", 1), 300,
4));
RecipeHandler.addRecipe(
new CompressorRecipe(OreUtil.getStackFromName("dustLazurite", 8), OreUtil.getStackFromName("plateLazurite", 1), 300,
4));
2016-03-06 14:33:35 +01:00
}
static void addGrinderRecipes() {
2016-03-25 10:47:34 +01:00
// Vanilla
// int eutick = 2;
// int ticktime = 300;
2016-10-08 21:46:16 +02:00
RecipeHandler.addRecipe(new GrinderRecipe(
new ItemStack(Items.BONE),
new ItemStack(Items.DYE, 6, 15),
170, 19));
RecipeHandler.addRecipe(new GrinderRecipe(
new ItemStack(Blocks.COBBLESTONE),
new ItemStack(Blocks.SAND),
230, 23));
RecipeHandler.addRecipe(new GrinderRecipe(
new ItemStack(Blocks.GRAVEL),
new ItemStack(Items.FLINT),
200, 20));
RecipeHandler.addRecipe(new GrinderRecipe(
new ItemStack(Items.COAL),
ItemDusts.getDustByName("coal"),
230, 27));
RecipeHandler.addRecipe(new GrinderRecipe(
new ItemStack(net.minecraft.init.Items.CLAY_BALL),
ItemDusts.getDustByName("clay"),
200, 18));
RecipeHandler.addRecipe(new GrinderRecipe(
new ItemStack(Blocks.GLOWSTONE),
ItemDusts.getDustByName("glowstone", 4), 220, 21));
2016-10-08 21:46:16 +02:00
RecipeHandler.addRecipe(new GrinderRecipe(
new ItemStack(Blocks.NETHERRACK),
ItemDusts.getDustByName("netherrack"),
300, 27));
RecipeHandler.addRecipe(new GrinderRecipe(
new ItemStack(Blocks.END_STONE),
ItemDusts.getDustByName("endstone"),
300, 16));
RecipeHandler.addRecipe(new GrinderRecipe(
new ItemStack(Items.ENDER_EYE),
ItemDusts.getDustByName("ender_eye", 2),
200, 22));
RecipeHandler.addRecipe(new GrinderRecipe(
new ItemStack(Items.ENDER_PEARL),
ItemDusts.getDustByName("ender_pearl", 2),
200, 22));
2016-10-08 21:46:16 +02:00
for (String oreDictionaryName : OreDictionary.getOreNames()) {
if (isDictPrefixed(oreDictionaryName, "ore", "gem", "ingot")) {
ItemStack oreStack = getDictOreOrEmpty(oreDictionaryName, 1);
2016-10-08 21:46:16 +02:00
String[] data = getDictData(oreDictionaryName);
//High-level ores shouldn't grind here
if (data[0].equals("ore") && (
data[1].equals("tungsten") ||
data[1].equals("titanium") ||
data[1].equals("aluminium") ||
data[1].equals("iridium") ||
data[1].equals("saltpeter")) ||
oreStack.isEmpty())
2016-10-08 21:46:16 +02:00
continue;
2016-10-08 21:46:16 +02:00
boolean ore = data[0].equals("ore");
Core.logHelper.debug("Ore: " + data[1]);
ItemStack dust = getDictOreOrEmpty(joinDictName("dust", data[1]), ore ? 2 : 1);
if (dust.isEmpty() || dust.getItem() == null) {
2016-10-08 21:46:16 +02:00
continue;
}
dust = dust.copy();
2016-11-25 14:25:51 +01:00
if (ore) {
2016-11-19 13:50:08 +01:00
dust.setCount(2);
}
2016-10-08 21:46:16 +02:00
RecipeHandler.addRecipe(new GrinderRecipe(oreStack, dust, ore ? 270 : 200, ore ? 31 : 22));
}
}
2016-03-25 10:47:34 +01:00
}
2016-03-24 01:39:26 +01:00
2016-10-08 21:46:16 +02:00
static void addVacuumFreezerRecipes() {
RecipeHandler.addRecipe(new VacuumFreezerRecipe(
new ItemStack(Blocks.ICE, 2),
new ItemStack(Blocks.PACKED_ICE),
60, 100
));
RecipeHandler.addRecipe(new VacuumFreezerRecipe(
2016-12-10 09:15:39 +01:00
ItemIngots.getIngotByName("hot_tungstensteel"),
2016-10-08 21:46:16 +02:00
ItemIngots.getIngotByName("tungstensteel"),
440, 120));
RecipeHandler.addRecipe(new VacuumFreezerRecipe(
ItemCells.getCellByName("heliumplasma"),
ItemCells.getCellByName("helium"),
440, 128));
RecipeHandler.addRecipe(
new VacuumFreezerRecipe(
ItemCells.getCellByName("water"),
ItemCells.getCellByName("cell"),
60, 87));
2016-10-08 21:46:16 +02:00
}
2016-10-08 21:46:16 +02:00
static void addAlloySmelterRecipes() {
2016-03-25 10:47:34 +01:00
// Bronze
RecipeHandler.addRecipe(
2016-10-08 21:46:16 +02:00
new AlloySmelterRecipe(ItemIngots.getIngotByName("copper", 3), ItemIngots.getIngotByName("tin", 1),
ItemIngots.getIngotByName("bronze", 4), 200, 16));
RecipeHandler.addRecipe(
2016-10-08 21:46:16 +02:00
new AlloySmelterRecipe(ItemIngots.getIngotByName("copper", 3), ItemDusts.getDustByName("tin", 1),
ItemIngots.getIngotByName("bronze", 4), 200, 16));
RecipeHandler.addRecipe(
2016-10-08 21:46:16 +02:00
new AlloySmelterRecipe(ItemDusts.getDustByName("copper", 3), ItemIngots.getIngotByName("tin", 1),
ItemIngots.getIngotByName("bronze", 4), 200, 16));
RecipeHandler.addRecipe(
2016-10-08 21:46:16 +02:00
new AlloySmelterRecipe(ItemDusts.getDustByName("copper", 3), ItemDusts.getDustByName("tin", 1),
ItemIngots.getIngotByName("bronze", 4), 200, 16));
2016-03-25 10:47:34 +01:00
// Electrum
RecipeHandler.addRecipe(
2016-10-08 21:46:16 +02:00
new AlloySmelterRecipe(new ItemStack(Items.GOLD_INGOT, 1), ItemIngots.getIngotByName("silver", 1),
ItemIngots.getIngotByName("electrum", 2), 200, 16));
RecipeHandler.addRecipe(
2016-10-08 21:46:16 +02:00
new AlloySmelterRecipe(new ItemStack(Items.GOLD_INGOT, 1), ItemDusts.getDustByName("silver", 1),
ItemIngots.getIngotByName("electrum", 2), 200, 16));
RecipeHandler.addRecipe(
2016-10-08 21:46:16 +02:00
new AlloySmelterRecipe(ItemDusts.getDustByName("gold", 1), ItemIngots.getIngotByName("silver", 1),
ItemIngots.getIngotByName("electrum", 2), 200, 16));
RecipeHandler.addRecipe(
2016-10-08 21:46:16 +02:00
new AlloySmelterRecipe(ItemDusts.getDustByName("gold", 1), ItemDusts.getDustByName("silver", 1),
ItemIngots.getIngotByName("electrum", 2), 200, 16));
2016-03-25 10:47:34 +01:00
// Invar
RecipeHandler.addRecipe(
2016-10-08 21:46:16 +02:00
new AlloySmelterRecipe(new ItemStack(Items.IRON_INGOT, 2), ItemIngots.getIngotByName("nickel", 1),
ItemIngots.getIngotByName("invar", 3), 200, 16));
RecipeHandler.addRecipe(
2016-10-08 21:46:16 +02:00
new AlloySmelterRecipe(new ItemStack(Items.IRON_INGOT, 2), ItemDusts.getDustByName("nickel", 1),
ItemIngots.getIngotByName("invar", 3), 200, 16));
RecipeHandler.addRecipe(
2016-10-08 21:46:16 +02:00
new AlloySmelterRecipe(ItemDusts.getDustByName("iron", 2), ItemIngots.getIngotByName("nickel", 1),
ItemIngots.getIngotByName("invar", 3), 200, 16));
RecipeHandler.addRecipe(
2016-10-08 21:46:16 +02:00
new AlloySmelterRecipe(ItemDusts.getDustByName("iron", 2), ItemDusts.getDustByName("nickel", 1),
ItemIngots.getIngotByName("invar", 3), 200, 16));
2016-03-25 10:47:34 +01:00
// Brass
2016-10-08 21:46:16 +02:00
if (OreUtil.doesOreExistAndValid("ingotBrass")) {
2017-06-25 15:15:01 +02:00
ItemStack brassStack = getOre("ingotBrass");
2016-11-19 13:50:08 +01:00
brassStack.setCount(4);
RecipeHandler.addRecipe(
2016-10-08 21:46:16 +02:00
new AlloySmelterRecipe(ItemIngots.getIngotByName("copper", 3), ItemIngots.getIngotByName("zinc", 1),
brassStack, 200, 16));
RecipeHandler.addRecipe(
2016-10-08 21:46:16 +02:00
new AlloySmelterRecipe(ItemIngots.getIngotByName("copper", 3), ItemDusts.getDustByName("zinc", 1),
brassStack, 200, 16));
RecipeHandler.addRecipe(
2016-10-08 21:46:16 +02:00
new AlloySmelterRecipe(ItemDusts.getDustByName("copper", 3), ItemIngots.getIngotByName("zinc", 1),
brassStack, 200, 16));
RecipeHandler.addRecipe(
2016-10-08 21:46:16 +02:00
new AlloySmelterRecipe(ItemDusts.getDustByName("copper", 3), ItemDusts.getDustByName("zinc", 1),
brassStack, 200, 16));
2016-03-25 10:47:34 +01:00
}
// Red Alloy
2016-10-08 21:46:16 +02:00
if (OreUtil.doesOreExistAndValid("ingotRedAlloy")) {
2017-06-25 15:15:01 +02:00
ItemStack redAlloyStack = getOre("ingotRedAlloy");
2016-11-19 13:50:08 +01:00
redAlloyStack.setCount(1);
RecipeHandler.addRecipe(
2016-10-08 21:46:16 +02:00
new AlloySmelterRecipe(new ItemStack(Items.REDSTONE, 4), ItemIngots.getIngotByName("copper", 1),
redAlloyStack, 200, 16));
RecipeHandler.addRecipe(
2016-10-08 21:46:16 +02:00
new AlloySmelterRecipe(new ItemStack(Items.REDSTONE, 4), new ItemStack(Items.IRON_INGOT, 1),
redAlloyStack, 200, 16));
2016-03-25 10:47:34 +01:00
}
// Blue Alloy
2016-10-08 21:46:16 +02:00
if (OreUtil.doesOreExistAndValid("ingotBlueAlloy")) {
2017-06-25 15:15:01 +02:00
ItemStack blueAlloyStack = getOre("ingotBlueAlloy");
2016-11-19 13:50:08 +01:00
blueAlloyStack.setCount(1);
2016-03-25 10:47:34 +01:00
RecipeHandler.addRecipe(new AlloySmelterRecipe(ItemDusts.getDustByName("teslatite", 4),
2016-10-08 21:46:16 +02:00
ItemIngots.getIngotByName("silver", 1), blueAlloyStack, 200, 16));
2016-03-25 10:47:34 +01:00
}
// Blue Alloy
2016-10-08 21:46:16 +02:00
if (OreUtil.doesOreExistAndValid("ingotPurpleAlloy") && OreUtil.doesOreExistAndValid("dustInfusedTeslatite")) {
2017-06-25 15:15:01 +02:00
ItemStack purpleAlloyStack = getOre("ingotPurpleAlloy");
2016-11-19 13:50:08 +01:00
purpleAlloyStack.setCount(1);
2017-06-25 15:15:01 +02:00
ItemStack infusedTeslatiteStack = getOre("ingotPurpleAlloy");
2016-11-19 13:50:08 +01:00
infusedTeslatiteStack.setCount(8);
2016-03-25 10:47:34 +01:00
RecipeHandler.addRecipe(new AlloySmelterRecipe(ItemIngots.getIngotByName("redAlloy", 1),
2016-10-08 21:46:16 +02:00
ItemIngots.getIngotByName("blueAlloy", 1), purpleAlloyStack, 200, 16));
RecipeHandler.addRecipe(
2016-10-08 21:46:16 +02:00
new AlloySmelterRecipe(new ItemStack(Items.GOLD_INGOT, 1), infusedTeslatiteStack, purpleAlloyStack,
200, 16));
2016-03-25 10:47:34 +01:00
}
// Aluminum Brass
2016-10-08 21:46:16 +02:00
if (OreUtil.doesOreExistAndValid("ingotAluminumBrass")) {
2017-06-25 15:15:01 +02:00
ItemStack aluminumBrassStack = getOre("ingotAluminumBrass");
2016-11-19 13:50:08 +01:00
aluminumBrassStack.setCount(4);
2016-03-25 10:47:34 +01:00
RecipeHandler.addRecipe(new AlloySmelterRecipe(ItemIngots.getIngotByName("copper", 3),
2016-10-08 21:46:16 +02:00
ItemIngots.getIngotByName("aluminum", 1), aluminumBrassStack, 200, 16));
2016-03-25 10:47:34 +01:00
RecipeHandler.addRecipe(new AlloySmelterRecipe(ItemIngots.getIngotByName("copper", 3),
2016-10-08 21:46:16 +02:00
ItemDusts.getDustByName("aluminum", 1), aluminumBrassStack, 200, 16));
2016-03-25 10:47:34 +01:00
RecipeHandler.addRecipe(new AlloySmelterRecipe(ItemDusts.getDustByName("copper", 3),
2016-10-08 21:46:16 +02:00
ItemIngots.getIngotByName("aluminum", 1), aluminumBrassStack, 200, 16));
RecipeHandler.addRecipe(
2016-10-08 21:46:16 +02:00
new AlloySmelterRecipe(ItemDusts.getDustByName("copper", 3), ItemDusts.getDustByName("aluminum", 1),
aluminumBrassStack, 200, 16));
2016-03-25 10:47:34 +01:00
}
// Manyullyn
if (OreUtil.doesOreExistAndValid("ingotManyullyn") && OreUtil.doesOreExistAndValid("ingotCobalt") && OreUtil
2016-10-08 21:46:16 +02:00
.doesOreExistAndValid("ingotArdite")) {
2017-06-25 15:15:01 +02:00
ItemStack manyullynStack = getOre("ingotManyullyn");
2016-11-19 13:50:08 +01:00
manyullynStack.setCount(1);
2017-06-25 15:15:01 +02:00
ItemStack cobaltStack = getOre("ingotCobalt");
2016-11-19 13:50:08 +01:00
cobaltStack.setCount(1);
2017-06-25 15:15:01 +02:00
ItemStack arditeStack = getOre("ingotArdite");
2016-11-19 13:50:08 +01:00
arditeStack.setCount(1);
2016-03-25 10:47:34 +01:00
RecipeHandler.addRecipe(new AlloySmelterRecipe(cobaltStack, arditeStack, manyullynStack, 200, 16));
}
// Conductive Iron
2016-10-08 21:46:16 +02:00
if (OreUtil.doesOreExistAndValid("ingotConductiveIron")) {
2017-06-25 15:15:01 +02:00
ItemStack conductiveIronStack = getOre("ingotConductiveIron");
2016-11-19 13:50:08 +01:00
conductiveIronStack.setCount(1);
RecipeHandler.addRecipe(
2016-10-08 21:46:16 +02:00
new AlloySmelterRecipe(new ItemStack(Items.REDSTONE, 1), new ItemStack(Items.IRON_INGOT, 1),
conductiveIronStack, 200, 16));
2016-03-25 10:47:34 +01:00
}
// Redstone Alloy
2016-10-08 21:46:16 +02:00
if (OreUtil.doesOreExistAndValid("ingotRedstoneAlloy") && OreUtil.doesOreExistAndValid("itemSilicon")) {
2017-06-25 15:15:01 +02:00
ItemStack redstoneAlloyStack = getOre("ingotRedstoneAlloy");
2016-11-19 13:50:08 +01:00
redstoneAlloyStack.setCount(1);
2017-06-25 15:15:01 +02:00
ItemStack siliconStack = getOre("itemSilicon");
2016-11-19 13:50:08 +01:00
siliconStack.setCount(1);
RecipeHandler.addRecipe(
2016-10-08 21:46:16 +02:00
new AlloySmelterRecipe(new ItemStack(Items.REDSTONE, 1), siliconStack, redstoneAlloyStack, 200,
16));
2016-03-25 10:47:34 +01:00
}
// Pulsating Iron
2016-10-08 21:46:16 +02:00
if (OreUtil.doesOreExistAndValid("ingotPhasedIron")) {
2017-06-25 15:15:01 +02:00
ItemStack pulsatingIronStack = getOre("ingotPhasedIron");
2016-11-19 13:50:08 +01:00
pulsatingIronStack.setCount(1);
RecipeHandler.addRecipe(
2016-10-08 21:46:16 +02:00
new AlloySmelterRecipe(new ItemStack(Items.IRON_INGOT, 1), new ItemStack(Items.ENDER_PEARL, 1),
pulsatingIronStack, 200, 16));
RecipeHandler.addRecipe(
2016-12-11 20:34:56 +01:00
new AlloySmelterRecipe(new ItemStack(Items.IRON_INGOT, 1), ItemDusts.getDustByName("ender_pearl", 1),
2016-10-08 21:46:16 +02:00
pulsatingIronStack, 200, 16));
2016-03-25 10:47:34 +01:00
}
// Vibrant Alloy
2016-10-08 21:46:16 +02:00
if (OreUtil.doesOreExistAndValid("ingotEnergeticAlloy") && OreUtil.doesOreExistAndValid("ingotPhasedGold")) {
2017-06-25 15:15:01 +02:00
ItemStack energeticAlloyStack = getOre("ingotEnergeticAlloy");
2016-11-19 13:50:08 +01:00
energeticAlloyStack.setCount(1);
2017-06-25 15:15:01 +02:00
ItemStack vibrantAlloyStack = getOre("ingotPhasedGold");
2016-11-19 13:50:08 +01:00
vibrantAlloyStack.setCount(1);
RecipeHandler.addRecipe(
2016-10-08 21:46:16 +02:00
new AlloySmelterRecipe(energeticAlloyStack, new ItemStack(Items.ENDER_PEARL, 1), vibrantAlloyStack,
200, 16));
RecipeHandler.addRecipe(
2016-12-11 20:34:56 +01:00
new AlloySmelterRecipe(energeticAlloyStack, ItemDusts.getDustByName("ender_pearl", 1),
2016-10-08 21:46:16 +02:00
vibrantAlloyStack, 200, 16));
2016-03-25 10:47:34 +01:00
}
// Soularium
2016-10-08 21:46:16 +02:00
if (OreUtil.doesOreExistAndValid("ingotSoularium")) {
2017-06-25 15:15:01 +02:00
ItemStack soulariumStack = getOre("ingotSoularium");
2016-11-19 13:50:08 +01:00
soulariumStack.setCount(1);
RecipeHandler.addRecipe(
2016-10-08 21:46:16 +02:00
new AlloySmelterRecipe(new ItemStack(Blocks.SOUL_SAND, 1), new ItemStack(Items.GOLD_INGOT, 1),
soulariumStack, 200, 16));
2016-03-25 10:47:34 +01:00
}
}
2016-10-08 21:46:16 +02:00
static void addBlastFurnaceRecipes() {
RecipeHandler.addRecipe(
2016-10-08 21:46:16 +02:00
new BlastFurnaceRecipe(ItemDusts.getDustByName("titanium"), null, ItemIngots.getIngotByName("titanium"),
null, 3600, 120, 1500));
2016-03-25 10:47:34 +01:00
RecipeHandler.addRecipe(new BlastFurnaceRecipe(ItemDustsSmall.getSmallDustByName("titanium", 4), null,
2016-10-08 21:46:16 +02:00
ItemIngots.getIngotByName("titanium"), null, 3600, 120, 1500));
RecipeHandler.addRecipe(
2016-10-08 21:46:16 +02:00
new BlastFurnaceRecipe(ItemDusts.getDustByName("aluminum"), null, ItemIngots.getIngotByName("aluminum"),
null, 2200, 120, 1700));
2016-03-25 10:47:34 +01:00
RecipeHandler.addRecipe(new BlastFurnaceRecipe(ItemDustsSmall.getSmallDustByName("aluminum", 4), null,
2016-10-08 21:46:16 +02:00
ItemIngots.getIngotByName("aluminum"), null, 2200, 120, 1700));
RecipeHandler.addRecipe(
2016-10-08 21:46:16 +02:00
new BlastFurnaceRecipe(ItemDusts.getDustByName("tungsten"), null, ItemIngots.getIngotByName("tungsten"),
null, 18000, 120, 2500));
2016-03-25 10:47:34 +01:00
RecipeHandler.addRecipe(new BlastFurnaceRecipe(ItemDustsSmall.getSmallDustByName("tungsten", 4), null,
2016-10-08 21:46:16 +02:00
ItemIngots.getIngotByName("tungsten"), null, 18000, 120, 2500));
RecipeHandler.addRecipe(
2016-10-08 21:46:16 +02:00
new BlastFurnaceRecipe(ItemDusts.getDustByName("chrome"), null, ItemIngots.getIngotByName("chrome"),
null, 4420, 120, 1700));
2016-03-25 10:47:34 +01:00
RecipeHandler.addRecipe(new BlastFurnaceRecipe(ItemDustsSmall.getSmallDustByName("chrome", 4), null,
2016-10-08 21:46:16 +02:00
ItemIngots.getIngotByName("chrome"), null, 4420, 120, 1700));
RecipeHandler.addRecipe(
2016-10-08 21:46:16 +02:00
new BlastFurnaceRecipe(ItemDusts.getDustByName("steel"), null, ItemIngots.getIngotByName("steel"), null,
2800, 120, 1000));
2016-03-25 10:47:34 +01:00
RecipeHandler.addRecipe(new BlastFurnaceRecipe(ItemDustsSmall.getSmallDustByName("steel", 4), null,
2016-10-08 21:46:16 +02:00
ItemIngots.getIngotByName("steel"), null, 2800, 120, 1000));
RecipeHandler.addRecipe(
2016-10-08 21:46:16 +02:00
new BlastFurnaceRecipe(ItemDusts.getDustByName("galena", 2), null, ItemIngots.getIngotByName("silver"),
ItemIngots.getIngotByName("lead"), 80, 120, 1500));
RecipeHandler.addRecipe(
2016-10-08 21:46:16 +02:00
new BlastFurnaceRecipe(new ItemStack(Items.IRON_INGOT), ItemDusts.getDustByName("coal", 2),
2016-12-11 20:34:56 +01:00
ItemIngots.getIngotByName("steel"), ItemDusts.getDustByName("dark_ashes", 2), 500, 120, 1000));
RecipeHandler.addRecipe(
2016-10-08 21:46:16 +02:00
new BlastFurnaceRecipe(ItemIngots.getIngotByName("tungsten"), ItemIngots.getIngotByName("steel"),
2016-12-11 20:34:56 +01:00
ItemIngots.getIngotByName("hot_tungstensteel"), ItemDusts.getDustByName("dark_ashes", 4), 500,
2016-10-08 21:46:16 +02:00
500, 3000));
RecipeHandler.addRecipe(
2016-10-08 21:46:16 +02:00
new BlastFurnaceRecipe(new ItemStack(Blocks.IRON_ORE), ItemDusts.getDustByName("calcite"),
2016-12-11 20:34:56 +01:00
new ItemStack(Items.IRON_INGOT, 3), ItemDusts.getDustByName("dark_ashes"), 140, 120, 1000));
RecipeHandler.addRecipe(
2016-10-08 21:46:16 +02:00
new BlastFurnaceRecipe(BlockOre.getOreByName("Pyrite"), ItemDusts.getDustByName("calcite"),
2016-12-11 20:34:56 +01:00
new ItemStack(Items.IRON_INGOT, 2), ItemDusts.getDustByName("dark_ashes"), 140, 120, 1000));
2016-03-25 10:47:34 +01:00
}
2016-10-08 21:46:16 +02:00
static void addIc2Recipes() {
RebornCraftingHelper.addShapelessOreRecipe(new ItemStack(ModItems.MANUAL), IC2Duplicates.REFINED_IRON.getStackBasedOnConfig(),
2016-10-08 21:46:16 +02:00
Items.BOOK);
2016-03-25 10:47:34 +01:00
// RebornCraftingHelper
// .addShapedOreRecipe(ItemParts.getPartByName("machineParts", 16), "CSC", "SCS", "CSC", 'S', "ingotSteel",
// 'C', "circuitBasic");
//
// RebornCraftingHelper.addShapedOreRecipe(new
2016-12-05 10:40:55 +01:00
// ItemStack(ModBlocks.magicalAbsorber),
2016-03-25 10:47:34 +01:00
// "CSC", "IBI", "CAC",
// 'C', "circuitMaster",
// 'S', "craftingSuperconductor",
// 'B', Blocks.beacon,
2016-12-05 10:40:55 +01:00
// 'A', ModBlocks.magicEnergeyConverter,
// 'I', "plateIridium");
2016-03-25 10:47:34 +01:00
//
// RebornCraftingHelper.addShapedOreRecipe(new
2016-12-05 10:40:55 +01:00
// ItemStack(ModBlocks.magicEnergeyConverter),
2016-03-25 10:47:34 +01:00
// "CTC", "PBP", "CLC",
// 'C', "circuitAdvanced",
// 'P', "platePlatinum",
// 'B', Blocks.beacon,
// 'L', "lapotronCrystal",
2016-03-25 10:47:34 +01:00
// 'T', TechRebornAPI.recipeCompact.getItem("teleporter"));
// RebornCraftingHelper.addShapedOreRecipe(new ItemStack(ModBlocks.dragonEggEnergySiphoner), "CTC", "ISI", "CBC", 'I',
2016-12-05 11:48:21 +01:00
// "plateIridium", 'C', "circuitBasic",
// 'B', ModItems.lithiumBattery, 'S', ModBlocks.Supercondensator, 'T', ModBlocks.extractor);
2016-03-25 10:47:34 +01:00
// RebornCraftingHelper.addShapedOreRecipe(new
2016-12-05 10:40:55 +01:00
// ItemStack(ModBlocks.electricCraftingTable),
2016-03-25 10:47:34 +01:00
// "ITI", "IBI", "ICI",
// 'I', "plateIron",
// 'C', "circuitAdvanced",
// 'T', "crafterWood",
// 'B', "machineBlockBasic");
2016-03-25 10:47:34 +01:00
// RebornCraftingHelper.addShapedOreRecipe(new
2016-12-05 10:40:55 +01:00
// ItemStack(ModBlocks.electricCraftingTable),
2016-03-25 10:47:34 +01:00
// "ATA", "ABA", "ACA",
// 'A', "plateAluminum",
// 'C', "circuitAdvanced",
// 'T', "crafterWood",
// 'B', "machineBlockBasic");
2016-03-25 10:47:34 +01:00
// RebornCraftingHelper.addShapedOreRecipe(new
2016-12-05 10:40:55 +01:00
// ItemStack(ModBlocks.chunkLoader),
2016-03-25 10:47:34 +01:00
// "SCS", "CMC", "SCS",
// 'S', "plateSteel",
// 'C', "circuitMaster",
// 'M', new ItemStack(ModItems.parts, 1, 39));
// RebornCraftingHelper.addShapedOreRecipe(new ItemStack(ModBlocks.PlasmaGenerator), "PPP", "PTP", "CGC", 'P',
// ItemPlates.getPlateByName("tungstensteel"), 'T', IC2Duplicates.HVT.getStackBasedOnConfig(),
// 'G', IC2Duplicates.GENERATOR.getStackBasedOnConfig(), 'C',
// "circuitMaster");
2016-03-25 10:47:34 +01:00
// Smetling
RebornCraftingHelper
2016-10-08 21:46:16 +02:00
.addSmelting(ItemDusts.getDustByName("copper", 1), getOre("ingotCopper"),
1F);
RebornCraftingHelper
2016-10-08 21:46:16 +02:00
.addSmelting(ItemDusts.getDustByName("tin", 1), ItemIngots.getIngotByName("tin"), 1F);
RebornCraftingHelper
2016-10-08 21:46:16 +02:00
.addSmelting(ItemDusts.getDustByName("bronze", 1), ItemIngots.getIngotByName("bronze"),
1F);
RebornCraftingHelper
2016-10-08 21:46:16 +02:00
.addSmelting(ItemDusts.getDustByName("lead", 1), ItemIngots.getIngotByName("lead"), 1F);
RebornCraftingHelper
2016-10-08 21:46:16 +02:00
.addSmelting(ItemDusts.getDustByName("silver", 1), ItemIngots.getIngotByName("silver"),
1F);
2016-03-28 19:31:32 +02:00
}
2016-10-08 21:46:16 +02:00
public static ItemStack getBucketWithFluid(Fluid fluid) {
return FluidUtil.getFilledBucket(new FluidStack(fluid, Fluid.BUCKET_VOLUME));
}
2016-07-16 17:17:44 +02:00
public static ItemStack getOre(String name) {
2016-10-08 21:46:16 +02:00
if (OreDictionary.getOres(name).isEmpty()) {
return new ItemStack(ModItems.MISSING_RECIPE_PLACEHOLDER);
2016-07-16 23:16:22 +02:00
}
return OreDictionary.getOres(name).get(0).copy();
}
2016-07-16 17:17:44 +02:00
}