aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gtPlusPlus/api/helpers/GregtechPlusPlus_API.java
blob: 24d2da31349ed2f24d3afa56ba0207933719c297 (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
package gtPlusPlus.api.helpers;

import java.util.HashMap;

import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.api.objects.minecraft.multi.SpecialMultiBehaviour;
import gtPlusPlus.core.util.minecraft.ItemUtils;
import gtPlusPlus.xmod.gregtech.api.util.SpecialBehaviourTooltipHandler;

public class GregtechPlusPlus_API {

    public static class Multiblock_API {

        private static final HashMap<String, SpecialMultiBehaviour> mSpecialBehaviourItemMap = new HashMap<String, SpecialMultiBehaviour>();

        /**
         * Register a special behaviour for GT++ Multis to listen use.
         * 
         * @param aBehaviour - An Object which has extended {@link SpecialMultiBehaviour}'s base implementation.
         * @return - Did this behaviour register properly?
         */
        public static boolean registerSpecialMultiBehaviour(SpecialMultiBehaviour aBehaviour) {
            if (aBehaviour.getTriggerItem() == null || aBehaviour.getTriggerItemTooltip() == null
                    || aBehaviour.getTriggerItemTooltip().length() <= 0) {
                Logger.INFO(
                        "Failed to attach custom multiblock logic to "
                                + ItemUtils.getItemName(aBehaviour.getTriggerItem()));
                return false;
            }
            mSpecialBehaviourItemMap.put("UniqueKey_" + aBehaviour.hashCode(), aBehaviour);
            SpecialBehaviourTooltipHandler
                    .addTooltipForItem(aBehaviour.getTriggerItem(), aBehaviour.getTriggerItemTooltip());
            Logger.INFO("Attached custom multiblock logic to " + ItemUtils.getItemName(aBehaviour.getTriggerItem()));
            return true;
        }

        public static final HashMap<String, SpecialMultiBehaviour> getSpecialBehaviourItemMap() {
            return mSpecialBehaviourItemMap;
        }
    }
}