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

import net.minecraft.item.ItemStack;

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.api.objects.Logger;
import gtPlusPlus.core.util.minecraft.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;

public class ProcessingToolHeadChoocher implements Interface_OreRecipeRegistrator, Runnable {

    public ProcessingToolHeadChoocher() {
        GregtechOrePrefixes.toolSkookumChoocher.add(this);
    }

    @Override
    public void registerOre(final GregtechOrePrefixes aPrefix, final Materials aMaterial, final String aOreDictName,
            final String aModName, final 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(final GregtechOrePrefixes aPrefix, final GT_Materials aMaterial, final String aOreDictName,
            final String aModName, final ItemStack aStack) {
        // TODO Auto-generated method stub

    }

    public void materialsLoops() {
        final Materials[] i = Materials.values();
        final int size = i.length;
        Logger.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))) {
                    Logger.WARNING("Found " + aMaterial.mName + " as a valid Skookum Choocher Material.");
                    // Input 1
                    final ItemStack plate = GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L);
                    final ItemStack ingot = GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 1L);
                    final ItemStack screw = GT_OreDictUnificator.get(OrePrefixes.screw, aMaterial, 1L);
                    final ItemStack longrod = GT_OreDictUnificator.get(OrePrefixes.stickLong, aMaterial, 1L);
                    final ItemStack hammerhead = GT_OreDictUnificator.get(OrePrefixes.toolHeadHammer, aMaterial, 1L);

                    if ((null != plate) && (null != ingot)
                            && (null != hammerhead)
                            && (null != longrod)
                            && (null != screw)) {
                        RecipeUtils.addShapedRecipe(
                                hammerhead,
                                ToolDictNames.craftingToolScrewdriver.name(),
                                plate,
                                ingot,
                                plate,
                                plate,
                                longrod,
                                screw,
                                null,
                                MetaGeneratedGregtechTools.INSTANCE.getToolWithStats(
                                        MetaGeneratedGregtechTools.SKOOKUM_CHOOCHER,
                                        1,
                                        aMaterial,
                                        null,
                                        null));
                        used++;
                    } else {
                        Logger.WARNING(
                                aMaterial.mName + " could not be used for all input compoenents. [3x"
                                        + aMaterial.mName
                                        + " plates, 2x"
                                        + aMaterial.mName
                                        + " ingots, 1x"
                                        + aMaterial.mName
                                        + " 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 {
                    Logger.WARNING(aMaterial.mName + " was not a valid Skookum Choocher Material.");
                }
            } else {
                Logger.WARNING(aMaterial.mName + " was not a valid Skookum Choocher Material.");
            }
        }

        Logger.INFO("Materials used for tool gen: " + used);
    }

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