package dmillerw.menu.data.click;
import dmillerw.menu.handler.KeyboardHandler;
import dmillerw.menu.helper.KeyReflectionHelper;
import net.minecraft.client.Minecraft;
import net.minecraft.client.settings.KeyBinding;
/**
* @author dmillerw
*/
public class ClickActionKey implements ClickAction.IClickAction {
public final String key;
public boolean toggle;
public ClickActionKey(String key, boolean toggle) {
this.key = key;
this.toggle = toggle;
}
public KeyBinding getKeyBinding() {
for (KeyBinding binding : Minecraft.getMinecraft().gameSettings.keyBindings) {
if (binding.getKeyDescription().equalsIgnoreCase(key)) {
return binding;
}
}
return null;
}
@Override
public ClickAction getClickAction() {
return ClickAction.KEYBIND;
}
@Override
public boolean onClicked() {
KeyBinding binding = getKeyBinding();
if (binding != null) {
if (toggle) {
KeyboardHandler.INSTANCE.toggleKey(binding);
} else {
KeyboardHandler.INSTANCE.fireKey(binding);
}
}
return true;
}
@Override
public void onRemoved() {
KeyBinding keyBinding = getKeyBinding();
if (keyBinding != null) {
KeyReflectionHelper.unpressKey(getKeyBinding());
}
toggle = !toggle;
}
}