KeyBindingWithModifier.java 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. package chylex.bettercontrols.input;
  2. import com.mojang.blaze3d.platform.InputConstants.Type;
  3. import net.minecraft.client.KeyMapping;
  4. import net.minecraft.network.chat.Component;
  5. import net.minecraft.network.chat.TranslatableComponent;
  6. import org.jetbrains.annotations.Nullable;
  7. public class KeyBindingWithModifier extends KeyMapping {
  8. public static final String CATEGORY = "key.categories.bettercontrols";
  9. public static boolean checkCategoryMatches(final Component text) {
  10. return text instanceof TranslatableComponent && CATEGORY.equals(((TranslatableComponent)text).getKey());
  11. }
  12. @Nullable
  13. private ModifierKey modifier = null;
  14. public KeyBindingWithModifier(final String translationKey) {
  15. super(translationKey, Type.KEYSYM, -1, CATEGORY);
  16. }
  17. public void setModifier(@Nullable final ModifierKey modifier) {
  18. this.modifier = modifier;
  19. }
  20. @Nullable
  21. public ModifierKey getModifier() {
  22. return modifier;
  23. }
  24. @Override
  25. public boolean isDown() {
  26. return super.isDown() && (modifier == null || modifier.isPressed());
  27. }
  28. @Override
  29. public boolean consumeClick() {
  30. return super.consumeClick() && (modifier == null || modifier.isPressed());
  31. }
  32. }