package chylex.bettersprinting.client.input; import chylex.bettersprinting.BetterSprintingMod; import net.minecraft.client.settings.KeyBinding; import net.minecraft.client.util.InputMappings; import net.minecraftforge.client.settings.KeyModifier; import net.minecraftforge.common.ForgeConfigSpec.EnumValue; import net.minecraftforge.common.ForgeConfigSpec.IntValue; public final class KeyBindingInfo{ private final IntValue keyCode; private final EnumValue<KeyModifier> keyModifier; private final EnumValue<InputMappings.Type> keyType; public KeyBindingInfo(IntValue keyCode, EnumValue<KeyModifier> keyModifier, EnumValue<InputMappings.Type> keyType){ this.keyCode = keyCode; this.keyModifier = keyModifier; this.keyType = keyType; } public void set(KeyModifier modifier, InputMappings.Input input){ BetterSprintingMod.config.set(keyCode, input.getKeyCode()); BetterSprintingMod.config.set(keyModifier, modifier); BetterSprintingMod.config.set(keyType, input.getType()); } public void readFrom(KeyBinding binding){ set(binding.getKeyModifier(), binding.getKey()); } public void writeInto(KeyBinding binding){ binding.setKeyModifierAndCode(keyModifier.get(), keyType.get().getOrMakeInput(keyCode.get())); } }