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

import gregtech.api.enums.Materials;
import gregtech.api.enums.OrePrefixes;
import gregtech.api.enums.SubTag;
import gregtech.api.enums.ToolDictNames;
import gregtech.api.util.GT_ModHandler;
import gregtech.api.util.GT_OreDictUnificator;
import gtPlusPlus.core.util.Utils;
import gtPlusPlus.core.util.recipe.RecipeUtils;
import gtPlusPlus.xmod.gregtech.api.enums.GregtechOrePrefixes;
import gtPlusPlus.xmod.gregtech.api.enums.GregtechOrePrefixes.GT_Materials;
import gtPlusPlus.xmod.gregtech.api.interfaces.internal.Interface_OreRecipeRegistrator;
import gtPlusPlus.xmod.gregtech.common.items.MetaGeneratedGregtechTools;
import net.minecraft.item.ItemStack;

public class ProcessingToolHeadChoocher implements Interface_OreRecipeRegistrator, Runnable {
    public ProcessingToolHeadChoocher() {
        GregtechOrePrefixes.toolSkookumChoocher.add(this);
    }

    @Override
	public void registerOre(GregtechOrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) {
        if ((aMaterial != Materials.Stone) && (aMaterial != Materials.Flint)) {
            if (aMaterial != Materials.Rubber)
            if ((!aMaterial.contains(SubTag.WOOD)) && (!aMaterial.contains(SubTag.BOUNCY)) && (!aMaterial.contains(SubTag.NO_SMASHING))) {
                GT_ModHandler.addCraftingRecipe(MetaGeneratedGregtechTools.INSTANCE.getToolWithStats(16, 1, aMaterial, aMaterial, null), GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"IhI", "III", " I ", Character.valueOf('I'), OrePrefixes.ingot.get(aMaterial)});
              }
        }
    }

	@Override
	public void registerOre(GregtechOrePrefixes aPrefix,
			GT_Materials aMaterial, String aOreDictName, String aModName,
			ItemStack aStack) {
		// TODO Auto-generated method stub
		
	}
	
	public void materialsLoops(){
		Materials[] i = Materials.values();
		int size = i.length;
		Utils.LOG_WARNING("Materials to attempt tool gen. with: "+size);
		int used = 0;
		Materials aMaterial = null;
		for (int r=0;r<size;r++){
			aMaterial = i[r];			
			if ((aMaterial != Materials.Stone) && (aMaterial != Materials.Flint) && (aMaterial != Materials.Rubber) && (aMaterial != Materials._NULL)) {	     
	            if ((!aMaterial.contains(SubTag.WOOD)) && (!aMaterial.contains(SubTag.BOUNCY)) && (!aMaterial.contains(SubTag.NO_SMASHING))&& (!aMaterial.contains(SubTag.TRANSPARENT))&& (!aMaterial.contains(SubTag.FLAMMABLE))&& (!aMaterial.contains(SubTag.MAGICAL))&& (!aMaterial.contains(SubTag.NO_SMELTING))) {
	        		Utils.LOG_WARNING("Found "+aMaterial.name()+" as a valid Skookum Choocher Material.");
	        		//Input 1
	        		ItemStack plate = GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L);
	        		ItemStack ingot = GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 1L);
	        		ItemStack screw = GT_OreDictUnificator.get(OrePrefixes.screw, aMaterial, 1L);
	        		ItemStack longrod = GT_OreDictUnificator.get(OrePrefixes.stickLong, aMaterial, 1L);
	        		ItemStack hammerhead = GT_OreDictUnificator.get(OrePrefixes.toolHeadHammer, aMaterial, 1L);
	        		
	        		if (null != plate && null != ingot && null != hammerhead && null != longrod && null != screw){
	        			RecipeUtils.recipeBuilder(
		        				hammerhead, ToolDictNames.craftingToolScrewdriver.name(), plate,
		        				ingot, plate, plate,
		        				longrod, screw, null,		        				
		        				MetaGeneratedGregtechTools.INSTANCE.getToolWithStats(MetaGeneratedGregtechTools.SKOOKUM_CHOOCHER, 1, aMaterial, null, null));
		        		used++;
	        		}    
	        		else {
	        			Utils.LOG_WARNING(""+aMaterial.name()+" could not be used for all input compoenents. [3x"+aMaterial.name()+" plates, 2x"+aMaterial.name()+" ingots, 1x"+aMaterial.name()+" Hard Hammer Head.");
	        		}
	                //GT_ModHandler.addCraftingRecipe(, GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"P H", "PIP", " I ", Character.valueOf('I'), OrePrefixes.ingot.get(aMaterial), Character.valueOf('P'), OrePrefixes.plate.get(aMaterial), Character.valueOf('H'), OrePrefixes.toolHeadHammer.get(aMaterial)});
	              }
	            else {
					Utils.LOG_WARNING(""+aMaterial.name()+" was not a valid Skookum Choocher Material.");			
				}
	        }
			else {
				Utils.LOG_WARNING(""+aMaterial.name()+" was not a valid Skookum Choocher Material.");			
			}
			
			
		}
		
		Utils.LOG_INFO("Materials used for tool gen: "+used);
	}

	@Override
	public void run() {
		Utils.LOG_INFO("Generating Skookum Choochers of all GT Materials.");
		materialsLoops();		
	}
	
	
}