100 lines
2.9 KiB
Java
100 lines
2.9 KiB
Java
package eu.crushedpixel.replaymod.events;
|
|
|
|
import net.minecraft.client.Minecraft;
|
|
import net.minecraft.client.gui.GuiScreen;
|
|
import net.minecraft.client.settings.KeyBinding;
|
|
import net.minecraftforge.fml.client.FMLClientHandler;
|
|
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
|
|
import net.minecraftforge.fml.common.gameevent.InputEvent.KeyInputEvent;
|
|
import eu.crushedpixel.replaymod.ReplayMod;
|
|
import eu.crushedpixel.replaymod.entities.CameraEntity.MoveDirection;
|
|
import eu.crushedpixel.replaymod.gui.GuiMouseInput;
|
|
import eu.crushedpixel.replaymod.registry.KeybindRegistry;
|
|
import eu.crushedpixel.replaymod.replay.ReplayHandler;
|
|
import eu.crushedpixel.replaymod.replay.screenshot.ReplayScreenshot;
|
|
import eu.crushedpixel.replaymod.replay.spectate.SpectateHandler;
|
|
|
|
public class KeyInputHandler {
|
|
|
|
private Minecraft mc = Minecraft.getMinecraft();
|
|
|
|
@SubscribeEvent
|
|
public void onKeyInput(KeyInputEvent event) {
|
|
|
|
if(!ReplayHandler.replayActive()) return;
|
|
if(mc.currentScreen != null) {
|
|
return;
|
|
}
|
|
|
|
KeyBinding[] keyBindings = Minecraft.getMinecraft().gameSettings.keyBindings;
|
|
for(KeyBinding kb : keyBindings) {
|
|
if(!kb.isKeyDown()) {
|
|
continue;
|
|
}
|
|
try {
|
|
|
|
if(ReplayHandler.isCamera()) {
|
|
if(kb.getKeyDescription().equals("key.forward")) {
|
|
ReplayHandler.getCameraEntity().setMovement(MoveDirection.FORWARD);
|
|
continue;
|
|
}
|
|
|
|
if(kb.getKeyDescription().equals("key.back")) {
|
|
ReplayHandler.getCameraEntity().setMovement(MoveDirection.BACKWARD);
|
|
continue;
|
|
}
|
|
|
|
if(kb.getKeyDescription().equals("key.jump")) {
|
|
ReplayHandler.getCameraEntity().setMovement(MoveDirection.UP);
|
|
continue;
|
|
}
|
|
|
|
if(kb.getKeyDescription().equals("key.left")) {
|
|
ReplayHandler.getCameraEntity().setMovement(MoveDirection.LEFT);
|
|
continue;
|
|
}
|
|
|
|
if(kb.getKeyDescription().equals("key.right")) {
|
|
ReplayHandler.getCameraEntity().setMovement(MoveDirection.RIGHT);
|
|
continue;
|
|
}
|
|
}
|
|
if(kb.getKeyDescription().equals("key.sneak")) {
|
|
if(ReplayHandler.isCamera()) {
|
|
ReplayHandler.getCameraEntity().setMovement(MoveDirection.DOWN);
|
|
} else {
|
|
ReplayHandler.spectateCamera();
|
|
}
|
|
continue;
|
|
}
|
|
|
|
if(kb.getKeyDescription().equals("key.chat")) {
|
|
mc.displayGuiScreen(new GuiMouseInput());
|
|
continue;
|
|
}
|
|
|
|
//Custom registered handlers
|
|
if(kb.getKeyDescription().equals(KeybindRegistry.KEY_THUMBNAIL) && kb.isPressed()) {
|
|
ReplayScreenshot.prepareScreenshot();
|
|
GuiReplayOverlay.requestScreenshot();
|
|
continue;
|
|
}
|
|
|
|
if(kb.getKeyDescription().equals(KeybindRegistry.KEY_SPECTATE) && kb.isPressed()) {
|
|
SpectateHandler.openSpectateSelection();
|
|
continue;
|
|
}
|
|
|
|
if(kb.getKeyDescription().equals(KeybindRegistry.KEY_LIGHTING) && kb.isPressed()) {
|
|
ReplayMod.replaySettings.setLightingEnabled(!ReplayMod.replaySettings.isLightingEnabled());
|
|
continue;
|
|
}
|
|
|
|
} catch(Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|