aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Extruder.java
blob: f0ebec9c6789f7c4b31fa19624e4bef4df24b82c (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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
package gtPlusPlus.xmod.gregtech.loaders;

import gregtech.api.GregTech_API;
import gregtech.api.enums.ItemList;
import gregtech.api.util.GT_Recipe;
import gtPlusPlus.core.material.Material;
import gtPlusPlus.core.util.Utils;
import net.minecraft.item.ItemStack;

public class RecipeGen_Extruder implements Runnable{

	final Material toGenerate;
	
	public RecipeGen_Extruder(final Material M){
		this.toGenerate = M;
	}
	
	@Override
	public void run() {
		generateRecipes(toGenerate);		
	}

	public static void generateRecipes(final Material material){

		final int tVoltageMultiplier = material.getMeltingPointK() >= 2800 ? 64 : 16;
		final ItemStack itemIngot = material.getIngot(1);
		final ItemStack plate_Single = material.getPlate(1);
		final ItemStack itemGear = material.getGear(1);

		final ItemStack shape_Plate = ItemList.Shape_Extruder_Plate.get(0);
		final ItemStack shape_Ring = ItemList.Shape_Extruder_Ring.get(0);
		final ItemStack shape_Gear = ItemList.Shape_Extruder_Gear.get(0);
		final ItemStack shape_Rod = ItemList.Shape_Extruder_Rod.get(0);
		final ItemStack shape_Bolt = ItemList.Shape_Extruder_Bolt.get(0);

		Utils.LOG_WARNING("Generating Extruder recipes for "+material.getLocalizedName());


		//Plate Recipe
		if (addExtruderRecipe(
				itemIngot,
				shape_Plate,
				plate_Single,
				10, 4 * tVoltageMultiplier)){
			Utils.LOG_WARNING("Extruder Plate Recipe: "+material.getLocalizedName()+" - Success");
		}
		else {
			Utils.LOG_WARNING("Extruder Plate Recipe: "+material.getLocalizedName()+" - Failed");			
		}

		//Ring Recipe
		if (!material.isRadioactive){
			if (addExtruderRecipe(
					itemIngot,
					shape_Ring,
					material.getRing(4),
					(int) Math.max(material.getMass() * 2L * 1, 1),
					6 * material.vVoltageMultiplier)){
				Utils.LOG_WARNING("Extruder Ring Recipe: "+material.getLocalizedName()+" - Success");
			}
			else {
				Utils.LOG_WARNING("Extruder Ring Recipe: "+material.getLocalizedName()+" - Failed");			
			}
		}


		//Gear Recipe
		if (!material.isRadioactive){
			if (addExtruderRecipe(
					material.getIngot(8),
					shape_Gear,
					itemGear,
					(int) Math.max(material.getMass() * 5L, 1),
					8 * material.vVoltageMultiplier)){
				Utils.LOG_WARNING("Extruder Gear Recipe: "+material.getLocalizedName()+" - Success");
			}
			else {
				Utils.LOG_WARNING("Extruder Gear Recipe: "+material.getLocalizedName()+" - Failed");			
			}
		}


		//Rod Recipe
		if (addExtruderRecipe(
				itemIngot,
				shape_Rod,
				material.getRod(2),
				(int) Math.max(material.getMass() * 2L * 1, 1),
				6 * material.vVoltageMultiplier)){
			Utils.LOG_WARNING("Extruder Rod Recipe: "+material.getLocalizedName()+" - Success");
		}
		else {
			Utils.LOG_WARNING("Extruder Rod Recipe: "+material.getLocalizedName()+" - Failed");			
		}


		//Bolt Recipe
		if (!material.isRadioactive){
			if (addExtruderRecipe(
					itemIngot, 
					shape_Bolt, 
					material.getBolt(8),
					(int) Math.max(material.getMass() * 2L * 1, 1),
					6 * material.vVoltageMultiplier)){
				Utils.LOG_WARNING("Extruder Bolt Recipe: "+material.getLocalizedName()+" - Success");
			}
			else {
				Utils.LOG_WARNING("Extruder Bolt Recipe: "+material.getLocalizedName()+" - Failed");			
			}
		}

	}	


	public static boolean addExtruderRecipe(ItemStack aInput, ItemStack aShape, ItemStack aOutput, int aDuration, int aEUt) {
		if ((aInput == null) || (aShape == null) || (aOutput == null)) {
			return false;
		}
		if ((aDuration = GregTech_API.sRecipeFile.get("extruder", aOutput, aDuration)) <= 0) {
			return false;
		}
		GT_Recipe.GT_Recipe_Map.sExtruderRecipes.addRecipe(true, new ItemStack[]{aInput, aShape}, new ItemStack[]{aOutput}, null, null, null, aDuration, aEUt, 0);
		return true;
	}



}