Added support for key modifiers; GUI can now be opened and closed with the same button (if no widget has focus). Closes #6
This commit is contained in:
@@ -12,6 +12,7 @@ import net.minecraft.client.settings.KeyBinding;
|
|||||||
import net.minecraftforge.api.distmarker.Dist;
|
import net.minecraftforge.api.distmarker.Dist;
|
||||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||||
import net.minecraftforge.client.event.InputEvent.KeyInputEvent;
|
import net.minecraftforge.client.event.InputEvent.KeyInputEvent;
|
||||||
|
import net.minecraftforge.client.settings.KeyModifier;
|
||||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||||
import net.minecraftforge.fml.client.registry.ClientRegistry;
|
import net.minecraftforge.fml.client.registry.ClientRegistry;
|
||||||
|
|
||||||
@@ -27,21 +28,31 @@ public class KeyHandler
|
|||||||
{
|
{
|
||||||
if(Minecraft.getInstance() != null && Minecraft.getInstance().currentScreen == null)
|
if(Minecraft.getInstance() != null && Minecraft.getInstance().currentScreen == null)
|
||||||
{
|
{
|
||||||
if(KeyHandler.KEY_WORLD_HANDLER.isPressed())
|
if(KeyHandler.isPressed(KeyHandler.KEY_WORLD_HANDLER))
|
||||||
{
|
{
|
||||||
ActionHelper.displayGui();
|
ActionHelper.displayGui();
|
||||||
}
|
}
|
||||||
else if(KeyHandler.KEY_WORLD_HANDLER_POS1.isPressed() && Config.getSettings().shortcutKeys())
|
else if(KeyHandler.isPressed(KeyHandler.KEY_WORLD_HANDLER_POS1) && Config.getSettings().shortcutKeys())
|
||||||
{
|
{
|
||||||
BlockHelper.setPos1(BlockHelper.getFocusedBlockPos());
|
BlockHelper.setPos1(BlockHelper.getFocusedBlockPos());
|
||||||
}
|
}
|
||||||
else if(KeyHandler.KEY_WORLD_HANDLER_POS2.isPressed() && Config.getSettings().shortcutKeys())
|
else if(KeyHandler.isPressed(KeyHandler.KEY_WORLD_HANDLER_POS2) && Config.getSettings().shortcutKeys())
|
||||||
{
|
{
|
||||||
BlockHelper.setPos2(BlockHelper.getFocusedBlockPos());
|
BlockHelper.setPos2(BlockHelper.getFocusedBlockPos());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean isPressed(KeyBinding keyBinding)
|
||||||
|
{
|
||||||
|
return keyBinding.isPressed() && (KeyModifier.NONE.equals(keyBinding.getKeyModifier()) || KeyModifier.getActiveModifier().equals(keyBinding.getKeyModifier()));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isPressed(KeyBinding keyBinding, int keyCode)
|
||||||
|
{
|
||||||
|
return keyCode == keyBinding.getKey().getKeyCode() && (KeyModifier.NONE.equals(keyBinding.getKeyModifier()) || KeyModifier.getActiveModifier().equals(keyBinding.getKeyModifier()));
|
||||||
|
}
|
||||||
|
|
||||||
public static void updatePosKeys()
|
public static void updatePosKeys()
|
||||||
{
|
{
|
||||||
boolean isRegistered = KeyHandler.arePosKeysRegistered();
|
boolean isRegistered = KeyHandler.arePosKeysRegistered();
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ import exopandora.worldhandler.Main;
|
|||||||
import exopandora.worldhandler.WorldHandler;
|
import exopandora.worldhandler.WorldHandler;
|
||||||
import exopandora.worldhandler.builder.impl.BuilderWorldHandler;
|
import exopandora.worldhandler.builder.impl.BuilderWorldHandler;
|
||||||
import exopandora.worldhandler.config.Config;
|
import exopandora.worldhandler.config.Config;
|
||||||
|
import exopandora.worldhandler.event.KeyHandler;
|
||||||
import exopandora.worldhandler.gui.button.EnumIcon;
|
import exopandora.worldhandler.gui.button.EnumIcon;
|
||||||
import exopandora.worldhandler.gui.button.GuiButtonIcon;
|
import exopandora.worldhandler.gui.button.GuiButtonIcon;
|
||||||
import exopandora.worldhandler.gui.button.GuiButtonTab;
|
import exopandora.worldhandler.gui.button.GuiButtonTab;
|
||||||
@@ -628,6 +629,25 @@ public class GuiWorldHandler extends Container
|
|||||||
return super.mouseClicked(mouseX, mouseY, keyCode);
|
return super.mouseClicked(mouseX, mouseY, keyCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean keyPressed(int keyCode, int scanCode, int modifiers)
|
||||||
|
{
|
||||||
|
boolean focused = this.getFocused() != null;
|
||||||
|
|
||||||
|
if(focused && this.getFocused() instanceof Widget)
|
||||||
|
{
|
||||||
|
focused = ((Widget) this.getFocused()).isFocused();
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!focused && KeyHandler.isPressed(KeyHandler.KEY_WORLD_HANDLER, keyCode))
|
||||||
|
{
|
||||||
|
this.onClose();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return super.keyPressed(keyCode, scanCode, modifiers);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onClose()
|
public void onClose()
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user