aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gtPlusPlus/xmod/railcraft/HANDLER_Railcraft.java
blob: 0e79cd18946eccaedd6c3c09993919bd408186a0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
package gtPlusPlus.xmod.railcraft;

import static gtPlusPlus.core.creative.AddToCreativeTab.tabMisc;

import gregtech.api.enums.GT_Values;
import gregtech.api.enums.Materials;
import gregtech.api.enums.OrePrefixes;
import gregtech.api.util.GT_OreDictUnificator;
import gregtech.api.util.GT_Utility;
import gtPlusPlus.core.item.ModItems;
import gtPlusPlus.core.item.base.BaseItemBurnable;
import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.lib.LoadedMods;
import gtPlusPlus.core.recipe.common.CI;
import gtPlusPlus.core.util.minecraft.FluidUtils;
import gtPlusPlus.core.util.minecraft.ItemUtils;
import gtPlusPlus.xmod.railcraft.utils.RailcraftUtils;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;

public class HANDLER_Railcraft {
	
	

	public static void preInit() {
		if (LoadedMods.Railcraft) {
			
		}
		
		//Register Custom Coal Coke
		ModItems.itemCoalCoke = new BaseItemBurnable("itemCoalCoke", "Coking Coal", tabMisc, 64, 0, "Used for metallurgy.", "fuelCoke", 3200, 0).setTextureName(CORE.MODID + ":burnables/itemCoalCoke");
		
		//Add in things that once existed in 1.5.2
		ModItems.itemCactusCharcoal = new BaseItemBurnable("itemCactusCharcoal", "Cactus Charcoal", tabMisc, 64, 0, "Used for smelting.", "fuelCactusCharcoal", 400, 0).setTextureName(CORE.MODID + ":burnables/itemCactusCharcoal");
		ModItems.itemSugarCharcoal = new BaseItemBurnable("itemSugarCharcoal", "Sugar Charcoal", tabMisc, 64, 0, "Used for smelting.", "fuelSugarCharcoal", 400, 0).setTextureName(CORE.MODID + ":burnables/itemSugarCharcoal");
		ModItems.itemCactusCoke = new BaseItemBurnable("itemCactusCoke", "Cactus Coke", tabMisc, 64, 0, "Used for smelting.", "fuelCactusCoke", 800, 0).setTextureName(CORE.MODID + ":burnables/itemCactusCoke");
		ModItems.itemSugarCoke = new BaseItemBurnable("itemSugarCoke", "Sugar Coke", tabMisc, 64, 0, "Used for smelting.", "fuelSugarCoke", 800, 0).setTextureName(CORE.MODID + ":burnables/itemSugarCoke");

		ItemUtils.addItemToOreDictionary(ItemUtils.getSimpleStack(ModItems.itemCactusCharcoal), "itemCharcoalCactus");
		ItemUtils.addItemToOreDictionary(ItemUtils.getSimpleStack(ModItems.itemCactusCoke), "itemCokeCactus");
		ItemUtils.addItemToOreDictionary(ItemUtils.getSimpleStack(ModItems.itemSugarCharcoal), "itemCharcoalSugar");
		ItemUtils.addItemToOreDictionary(ItemUtils.getSimpleStack(ModItems.itemSugarCoke), "itemCokeSugar");
		
	}

	public static void init() {
		if (LoadedMods.Railcraft) {
			
		}
	}

	public static void postInit() {
		if (LoadedMods.Railcraft) {
			
		}
		generateCokeOvenRecipes();
	}
	
	
	private static void generateCokeOvenRecipes() {
		ItemStack[] aInputs1 = new ItemStack[] {
				ItemUtils.getSimpleStack(Blocks.cactus),
				ItemUtils.getSimpleStack(Items.reeds)
		};
		ItemStack[] aInputs2 = new ItemStack[] {
				ItemUtils.getSimpleStack(ModItems.itemCactusCharcoal),
				ItemUtils.getSimpleStack(ModItems.itemSugarCharcoal)
		};
		ItemStack[] aOutputs = new ItemStack[] {
				ItemUtils.getSimpleStack(ModItems.itemCactusCoke),
				ItemUtils.getSimpleStack(ModItems.itemSugarCoke)
				};
		for (int i=0;i<aOutputs.length;i++) {
			// Recipes for the Charcoals and Cokes, outputting either Creosote or Charcoal Byproducts depending on the fluid input
			CORE.RA.addCokeOvenRecipe(aInputs1[i], CI.getNumberedCircuit(3), null, FluidUtils.getFluidStack("creosote", 100), aInputs2[i], 20, 16);
			CORE.RA.addCokeOvenRecipe(aInputs1[i], CI.getNumberedCircuit(4), FluidUtils.getFluidStack("nitrogen", 100), FluidUtils.getFluidStack("charcoal_byproducts", 200), aInputs2[i], 10, 16);
			CORE.RA.addCokeOvenRecipe(aInputs2[i], CI.getNumberedCircuit(3), null, FluidUtils.getFluidStack("creosote", 200), aOutputs[i], 40, 16);
			CORE.RA.addCokeOvenRecipe(aInputs2[i], CI.getNumberedCircuit(4), FluidUtils.getFluidStack("nitrogen", 50), FluidUtils.getFluidStack("charcoal_byproducts", 100), aOutputs[i], 20, 16);

			// Generate Wood Tar and Wood Gas from these Cokes
			CORE.RA.addCokeOvenRecipe(aOutputs[i], CI.getNumberedCircuit(5), FluidUtils.getFluidStack("steam", 100), Materials.WoodTar.getFluid(200) , Materials.Ash.getDustSmall(1), 60, 240);
			CORE.RA.addCokeOvenRecipe(aOutputs[i], CI.getNumberedCircuit(6), FluidUtils.getFluidStack("steam", 100), Materials.WoodGas.getFluid(300) , Materials.Ash.getDustSmall(1), 60, 240);

			// Fluid Extracting the Charcoals for Wood Tar
			GT_Values.RA.addFluidExtractionRecipe(aInputs2[i], GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 1L), Materials.WoodTar.getFluid(50L), 1000, 30, 16);

			// Processing the Charcoals with Oxygen to get CO and CO2
			// C + O = CO
			GT_Values.RA.addChemicalRecipe(aInputs2[i], GT_Utility.getIntegratedCircuit(1), Materials.Oxygen.getGas(500), Materials.CarbonMonoxide.getGas(500), Materials.Ash.getDustTiny(1), 80, 8);
			// C + 2O = CO2
			GT_Values.RA.addChemicalRecipe(aInputs2[i], GT_Utility.getIntegratedCircuit(2), Materials.Oxygen.getGas(2000), Materials.CarbonDioxide.getGas(1000), Materials.Ash.getDustTiny(1), 40, 8);

		}
		if (LoadedMods.Railcraft) {		
			for (int i=0;i<aOutputs.length;i++) {
				RailcraftUtils.addCokeOvenRecipe(aInputs1[i], true, true, aInputs2[i], FluidUtils.getFluidStack("creosote", 30), 500);			
			}
			for (int i=0;i<aOutputs.length;i++) {
				RailcraftUtils.addCokeOvenRecipe(aInputs2[i], true, true, aOutputs[i], FluidUtils.getFluidStack("creosote", 30), 500);			
			}
			
			if(LoadedMods.DreamCraft){
				for (int i=0;i<aOutputs.length;i++) {
					RailcraftUtils.addAdvancedCokeOvenRecipe(aInputs1[i], true, true, aInputs2[i], 20);
				}
				for (int i=0;i<aOutputs.length;i++) {
					RailcraftUtils.addAdvancedCokeOvenRecipe(aInputs2[i], true, true, aInputs2[i], 20);
				}
			}
		}
	}

}