Add better key modifier behavior for GUI contexts (#3307)

This commit is contained in:
mezz authored and LexManos committed 2016-10-14 13:14:27 -07:00
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);
}