aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_FluidCanning.java
blob: 7bc0eacd4fab3e94f396b43e3e59e30467c3de0c (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
package gtPlusPlus.xmod.gregtech.loaders;

import java.util.HashSet;
import java.util.Set;

import gregtech.api.enums.GT_Values;
import gregtech.api.util.GT_Recipe;

import gtPlusPlus.api.interfaces.RunnableWithInfo;
import gtPlusPlus.core.material.Material;
import gtPlusPlus.core.material.MaterialGenerator;

public class RecipeGen_FluidCanning extends RecipeGen_Base {

	public final static Set<RunnableWithInfo<Material>> mRecipeGenMap = new HashSet<RunnableWithInfo<Material>>();
	static {
		MaterialGenerator.mRecipeMapsToGenerate.put(mRecipeGenMap);
	}

	private final GT_Recipe recipe;
	public RecipeGen_FluidCanning(GT_Recipe g) {
		this(g, true);
	}
	public RecipeGen_FluidCanning(GT_Recipe g, boolean extracting) {
		recipe = g;
		mRecipeGenMap.add(this);
		disableOptional = extracting;
	}

	@Override
	public void run() {
		generateRecipes();
	}

	private void generateRecipes() {
		if (recipe != null) {			
			//Used to store Fluid extraction state
			if (this.disableOptional) {
				GT_Values.RA.addFluidExtractionRecipe(
					recipe.mInputs.length >= 1 ? recipe.mInputs[0] : null, //Input
					recipe.mInputs.length == 2 ? recipe.mInputs[1] : null, //Input 2
					recipe.mFluidOutputs.length == 1 ? recipe.mFluidOutputs[0] : null, //Fluid Output
					recipe.mSpecialValue, //Chance
					recipe.mDuration, //Duration
					recipe.mEUt //Eu Tick
					);	
			}
			else {
				GT_Values.RA.addFluidCannerRecipe(
					recipe.mInputs.length == 1 ? recipe.mInputs[0] : null, //Input
					recipe.mOutputs.length == 1 ? recipe.mOutputs[0] : null, //Input 2
					recipe.mFluidInputs.length == 1 ? recipe.mFluidInputs[0] : null, //Fluid Input
					recipe.mFluidOutputs.length == 1 ? recipe.mFluidOutputs[0] : null //Fluid Output
					);

			}

		}		
	}

}