mirror of
https://github.com/MinecraftForge/MinecraftForge.git
synced 2026-11-13 00:37:52 +00:00
Add better key modifier behavior for GUI contexts (#3307)
This commit is contained in:
1 parent
7bbd3954f5
commit
bea5d44273
2 files changed
+53
-6
No files matched your search
@@ -19,6 +19,8 @@
|
||||
|
||||
package net.minecraftforge.client.settings;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.GuiScreen;
|
||||
import net.minecraft.client.resources.I18n;
|
||||
@@ -46,6 +48,12 @@ public enum KeyModifier {
|
||||
return GuiScreen.isCtrlKeyDown();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isActive(@Nullable IKeyConflictContext conflictContext)
|
||||
{
|
||||
return GuiScreen.isCtrlKeyDown();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getLocalizedComboName(int keyCode)
|
||||
{
|
||||
@@ -67,6 +75,12 @@ public enum KeyModifier {
|
||||
return GuiScreen.isShiftKeyDown();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isActive(@Nullable IKeyConflictContext conflictContext)
|
||||
{
|
||||
return GuiScreen.isShiftKeyDown();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getLocalizedComboName(int keyCode)
|
||||
{
|
||||
@@ -87,6 +101,12 @@ public enum KeyModifier {
|
||||
return GuiScreen.isAltKeyDown();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isActive(@Nullable IKeyConflictContext conflictContext)
|
||||
{
|
||||
return GuiScreen.isAltKeyDown();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getLocalizedComboName(int keyCode)
|
||||
{
|
||||
@@ -107,6 +127,22 @@ public enum KeyModifier {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isActive(@Nullable IKeyConflictContext conflictContext)
|
||||
{
|
||||
if (conflictContext != null && !conflictContext.conflicts(KeyConflictContext.IN_GAME))
|
||||
{
|
||||
for (KeyModifier keyModifier : MODIFIER_VALUES)
|
||||
{
|
||||
if (keyModifier.isActive(conflictContext))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getLocalizedComboName(int keyCode)
|
||||
{
|
||||
@@ -120,7 +156,7 @@ public enum KeyModifier {
|
||||
{
|
||||
for (KeyModifier keyModifier : MODIFIER_VALUES)
|
||||
{
|
||||
if (keyModifier.isActive())
|
||||
if (keyModifier.isActive(null))
|
||||
{
|
||||
return keyModifier;
|
||||
}
|
||||
@@ -158,7 +194,13 @@ public enum KeyModifier {
|
||||
|
||||
public abstract boolean matches(int keyCode);
|
||||
|
||||
/**
|
||||
* @deprecated use {@link #isActive(IKeyConflictContext)}
|
||||
*/
|
||||
@Deprecated
|
||||
public abstract boolean isActive();
|
||||
|
||||
public abstract boolean isActive(@Nullable IKeyConflictContext conflictContext);
|
||||
|
||||
public abstract String getLocalizedComboName(int keyCode);
|
||||
}
|
||||
Reference in new issue
Block a user