From 855f72d9f730ce54be6167259f33bf1785b140fb Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 20 Jan 2019 15:21:10 +0800 Subject: Fixes malilib crash *sighs* --- .../me/shedaniel/rei/client/KeyBindHelper.java | 42 ++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 src/main/java/me/shedaniel/rei/client/KeyBindHelper.java (limited to 'src/main/java/me/shedaniel/rei/client/KeyBindHelper.java') diff --git a/src/main/java/me/shedaniel/rei/client/KeyBindHelper.java b/src/main/java/me/shedaniel/rei/client/KeyBindHelper.java new file mode 100644 index 000000000..65ce788a1 --- /dev/null +++ b/src/main/java/me/shedaniel/rei/client/KeyBindHelper.java @@ -0,0 +1,42 @@ +package me.shedaniel.rei.client; + +import com.google.common.collect.Lists; +import me.shedaniel.rei.RoughlyEnoughItemsCore; +import me.shedaniel.rei.listeners.IMixinKeyBinding; +import net.minecraft.client.settings.KeyBinding; +import net.minecraft.client.util.InputMappings; +import net.minecraft.util.ResourceLocation; +import org.dimdev.rift.listener.client.KeyBindingAdder; + +import java.util.Collection; +import java.util.List; + +public class KeyBindHelper implements KeyBindingAdder { + + private static final ResourceLocation RECIPE_KEYBIND = new ResourceLocation("roughlyenoughitems", "recipe_keybind"); + private static final ResourceLocation USAGE_KEYBIND = new ResourceLocation("roughlyenoughitems", "usage_keybind"); + private static final ResourceLocation HIDE_KEYBIND = new ResourceLocation("roughlyenoughitems", "hide_keybind"); + public static KeyBinding RECIPE, USAGE, HIDE; + + @Override + public Collection getKeyBindings() { + String category = "key.rei.category"; + List keyBindings = Lists.newArrayList(); + keyBindings.add(RECIPE = createKeyBinding(RECIPE_KEYBIND, InputMappings.Type.KEYSYM, 82, category)); + keyBindings.add(USAGE = createKeyBinding(USAGE_KEYBIND, InputMappings.Type.KEYSYM, 85, category)); + keyBindings.add(HIDE = createKeyBinding(HIDE_KEYBIND, InputMappings.Type.KEYSYM, 79, category)); + addCategoryIfMissing(RECIPE, category); + return keyBindings; + } + + private void addCategoryIfMissing(KeyBinding keyBinding, String category) { + if (!((IMixinKeyBinding) keyBinding).hasCategory(category)) + ((IMixinKeyBinding) keyBinding).addCategory(category); + } + + private KeyBinding createKeyBinding(ResourceLocation location, InputMappings.Type inputType, int keyCode, String category) { + RoughlyEnoughItemsCore.LOGGER.info("Registering: key." + location.toString().replaceAll(":", ".") + " in " + category); + return new KeyBinding("key." + location.toString().replaceAll(":", "."), inputType, keyCode, category); + } + +} -- cgit