aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gtneioreplugin/plugin/NEIPluginConfig.java
blob: d325a1085fd3574604d2bf6b5ffe772d3a48a047 (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
package gtneioreplugin.plugin;

import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import net.minecraft.item.ItemStack;

import codechicken.nei.api.API;
import codechicken.nei.api.IConfigureNEI;
import codechicken.nei.event.NEIRegisterHandlerInfosEvent;
import codechicken.nei.recipe.HandlerInfo;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import gregtech.api.enums.ItemList;
import gregtech.api.enums.Materials;
import gregtech.api.enums.OrePrefixes;
import gregtech.api.util.GTOreDictUnificator;
import gtneioreplugin.GTNEIOrePlugin;
import gtneioreplugin.plugin.gregtech5.PluginGT5SmallOreStat;
import gtneioreplugin.plugin.gregtech5.PluginGT5UndergroundFluid;
import gtneioreplugin.plugin.gregtech5.PluginGT5VeinStat;

@SuppressWarnings("unused")
public class NEIPluginConfig implements IConfigureNEI {

    @Override
    public String getName() {
        return "GregTech Ore Plugin";
    }

    @Override
    public String getVersion() {
        return GTNEIOrePlugin.VERSION;
    }

    @Override
    public void loadConfig() {
        PluginGT5VeinStat pluginVeinStat = new PluginGT5VeinStat();
        PluginGT5SmallOreStat pluginSmallOreStat = new PluginGT5SmallOreStat();
        PluginGT5UndergroundFluid pluginGT5UndergroundFluid = new PluginGT5UndergroundFluid();
        API.registerRecipeHandler(pluginVeinStat);
        API.registerUsageHandler(pluginVeinStat);
        API.registerRecipeHandler(pluginSmallOreStat);
        API.registerUsageHandler(pluginSmallOreStat);
        API.registerRecipeHandler(pluginGT5UndergroundFluid);
        API.registerUsageHandler(pluginGT5UndergroundFluid);

        List<ItemList> catalysts = Arrays.asList(
            ItemList.OilDrill1,
            ItemList.OilDrill2,
            ItemList.OilDrill3,
            ItemList.OilDrill4,
            ItemList.OilDrillInfinite);
        for (ItemList catalyst : catalysts) {
            API.addRecipeCatalyst(catalyst.get(1), pluginGT5UndergroundFluid);
        }
    }

    @SubscribeEvent
    public void registerHandlerInfo(NEIRegisterHandlerInfosEvent event) {
        // Though first two handlers are already registered in NEI jar, we need to re-register
        // because new DimensionDisplayItems made tabs a bit taller.
        Map<String, ItemStack> handlers = new HashMap<>();
        handlers.put("PluginGT5VeinStat", GTOreDictUnificator.get(OrePrefixes.ore, Materials.Manyullyn, 1));
        handlers.put("PluginGT5SmallOreStat", GTOreDictUnificator.get(OrePrefixes.ore, Materials.Platinum, 1));
        handlers.put("PluginGT5UndergroundFluid", ItemList.Electric_Pump_UEV.get(1));
        for (Map.Entry<String, ItemStack> handler : handlers.entrySet()) {
            event.registerHandlerInfo(
                new HandlerInfo.Builder(
                    "gtneioreplugin.plugin.gregtech5." + handler.getKey(),
                    GTNEIOrePlugin.NAME,
                    GTNEIOrePlugin.MODID).setHeight(160)
                        .setMaxRecipesPerPage(2)
                        .setDisplayStack(handler.getValue())
                        .build());
        }
    }
}