From c3397f6b36b2c69211c6ff95eef1d28f87221818 Mon Sep 17 00:00:00 2001 From: Scribble Date: Mon, 27 Sep 2021 22:09:37 +0200 Subject: [PATCH] Removed weirdness in VirtualKeybindings, fixed Unicode issues again -Removed doubled code -Removed deprecated code -Made VirtualKeybindings able to be played back or recorded. This will theoretically come up in #41 -Added more blocked keybindings --- .../de/scribble/lp/tasmod/ClientProxy.java | 6 ++- .../lp/tasmod/util/ContainerSerialiser.java | 5 ++- .../lp/tasmod/virtual/VirtualKeybindings.java | 42 +++---------------- 3 files changed, 14 insertions(+), 39 deletions(-) diff --git a/src/main/java/de/scribble/lp/tasmod/ClientProxy.java b/src/main/java/de/scribble/lp/tasmod/ClientProxy.java index 85c8761d..5e9360b4 100644 --- a/src/main/java/de/scribble/lp/tasmod/ClientProxy.java +++ b/src/main/java/de/scribble/lp/tasmod/ClientProxy.java @@ -90,11 +90,15 @@ public void init(FMLInitializationEvent ev) { ClientRegistry.registerKeyBinding(infoGuiKey); ClientRegistry.registerKeyBinding(bufferViewKey); - VirtualKeybindings.registerBlockedKeyBinding(infoGuiKey); + VirtualKeybindings.registerBlockedKeyBinding(tickratezeroKey); VirtualKeybindings.registerBlockedKeyBinding(tickAdvance); VirtualKeybindings.registerBlockedKeyBinding(stopkey); + VirtualKeybindings.registerBlockedKeyBinding(savestateSaveKey); + VirtualKeybindings.registerBlockedKeyBinding(savestateLoadKey); VirtualKeybindings.registerBlockedKeyBinding(testingKey); + VirtualKeybindings.registerBlockedKeyBinding(infoGuiKey); + VirtualKeybindings.registerBlockedKeyBinding(bufferViewKey); createTASDir(); createSavestatesDir(); diff --git a/src/main/java/de/scribble/lp/tasmod/util/ContainerSerialiser.java b/src/main/java/de/scribble/lp/tasmod/util/ContainerSerialiser.java index dc500805..ee7b7d1f 100644 --- a/src/main/java/de/scribble/lp/tasmod/util/ContainerSerialiser.java +++ b/src/main/java/de/scribble/lp/tasmod/util/ContainerSerialiser.java @@ -3,6 +3,7 @@ import java.io.File; import java.io.IOException; import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.List; @@ -112,14 +113,14 @@ public int getFileVersion(File file) throws IOException { public InputContainer fromEntireFileV1(File file) throws IOException { - List lines = FileUtils.readLines(file, Charset.defaultCharset()); + List lines = FileUtils.readLines(file, StandardCharsets.UTF_8); File monitorFile=new File(file, "../"+file.getName().replace(".tas", "")+".mon"); List monitorLines=null; if(monitorFile.exists()) { - monitorLines = FileUtils.readLines(monitorFile, Charset.defaultCharset()); + monitorLines = FileUtils.readLines(monitorFile, StandardCharsets.UTF_8); } InputContainer container = new InputContainer(); diff --git a/src/main/java/de/scribble/lp/tasmod/virtual/VirtualKeybindings.java b/src/main/java/de/scribble/lp/tasmod/virtual/VirtualKeybindings.java index 3b017aba..bf17fe53 100644 --- a/src/main/java/de/scribble/lp/tasmod/virtual/VirtualKeybindings.java +++ b/src/main/java/de/scribble/lp/tasmod/virtual/VirtualKeybindings.java @@ -8,6 +8,7 @@ import com.google.common.collect.Maps; +import de.scribble.lp.tasmod.ClientProxy; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiChat; import net.minecraft.client.gui.GuiControls; @@ -31,7 +32,6 @@ public class VirtualKeybindings { private static long cooldown = 20; private static HashMap cooldownHashMap = Maps.newHashMap(); private static List blockedKeys = new ArrayList<>(); - private static List blockedDuringRecordingKeys = new ArrayList<>(); private static long cooldowntimer = 0; public static boolean focused = false; @@ -45,7 +45,10 @@ public static void increaseCooldowntimer() { * @return */ public static boolean isKeyDown(KeyBinding keybind) { - boolean down = Keyboard.isKeyDown(keybind.getKeyCode()); + + int keycode=keybind.getKeyCode(); + boolean down = isKeyCodeAlwaysBlocked(keycode) ? Keyboard.isKeyDown(keycode) : ClientProxy.virtual.willKeyBeDown(keycode); + if (down) { if (cooldownHashMap.containsKey(keybind)) { if (cooldown <= cooldowntimer - (long) cooldownHashMap.get(keybind)) { @@ -73,22 +76,7 @@ public static boolean isKeyDownExceptTextfield(KeyBinding keybind) { if (mc.currentScreen instanceof GuiChat || mc.currentScreen instanceof GuiEditSign || (focused && mc.currentScreen != null) || mc.currentScreen instanceof GuiControls) { return false; } - boolean down = Keyboard.isKeyDown(keybind.getKeyCode()); - if (down) { - if (cooldownHashMap.containsKey(keybind)) { - if (cooldown <= cooldowntimer - (long) cooldownHashMap.get(keybind)) { - cooldownHashMap.put(keybind, cooldowntimer); - cooldown=Minecraft.getDebugFPS()/3; - return true; - } - return false; - } else { - cooldownHashMap.put(keybind, cooldowntimer); - cooldown=Minecraft.getDebugFPS()/3; - return true; - } - } - return false; + return isKeyDown(keybind); } /** @@ -99,11 +87,6 @@ public static void registerBlockedKeyBinding(KeyBinding keybind) { blockedKeys.add(keybind); } - @Deprecated - public static void registerBlockedDuringRecordingKeyBinding(KeyBinding keybind) { - blockedDuringRecordingKeys.add(keybind); - } - /** * Checks whether the keycode should not be recorded or played back in a TAS * @param keycode to block @@ -116,18 +99,5 @@ public static boolean isKeyCodeAlwaysBlocked(int keycode) { } return false; } - @Deprecated - public static boolean isKeyCodeBlockedDuringRecording(int keycode) { - for (KeyBinding keybind : blockedDuringRecordingKeys) { - if (keycode == keybind.getKeyCode()) { - blockedDuringRecordingKeys.remove(keybind); - return true; - } - } - return false; - } - public static void setCooldown(long cooldown) { - VirtualKeybindings.cooldown = cooldown; - } }