diff --git a/src/client/java/de/cscherr/mcpht/Fly.java b/src/client/java/de/cscherr/mcpht/Fly.java new file mode 100644 index 0000000..fab92a5 --- /dev/null +++ b/src/client/java/de/cscherr/mcpht/Fly.java @@ -0,0 +1,42 @@ +package de.cscherr.mcpht; + +import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents; +import net.fabricmc.fabric.api.client.keybinding.v1.KeyBindingHelper; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; +import net.minecraft.client.option.KeyBinding; +import net.minecraft.client.util.InputUtil; +import org.lwjgl.glfw.GLFW; + +import java.util.ArrayList; +import java.util.List; + +public class Fly { + + public boolean enable = true; + private static KeyBinding toggleKey; + + public void init() { + toggleKey = KeyBindingHelper.registerKeyBinding(new KeyBinding( + "key.mcpht.toggleXray", // Translation of name + InputUtil.Type.KEYSYM, // Type: MOUSE or KESYM (Keyboard) + GLFW.GLFW_KEY_Y, // The keycode of the key (default?) + "category.mcpht.rendering" // Translation key for the keybinding category + )); + ClientTickEvents.END_CLIENT_TICK.register(client -> { + // NOTE: IDK why we need a while here + while (toggleKey.wasPressed()) { + if (MCPHTClient.XRAY.getEnable()) { + MCPHTClient.LOGGER.info(String.format("toggle XRay: %s", MCPHTClient.XRAY.enable)); + MCPHTClient.XRAY.enable = !MCPHTClient.XRAY.enable; + MCPHTClient.MC.worldRenderer.reload(); + } + } + }); + } + + public boolean getEnable() { + return enable && MCPHTClient.CONFIG.fly.enable; + } +} diff --git a/src/client/java/de/cscherr/mcpht/config/MCPHTConfig.java b/src/client/java/de/cscherr/mcpht/config/MCPHTConfig.java index 70953a0..257b708 100644 --- a/src/client/java/de/cscherr/mcpht/config/MCPHTConfig.java +++ b/src/client/java/de/cscherr/mcpht/config/MCPHTConfig.java @@ -9,16 +9,45 @@ import java.util.regex.Pattern; @Config(name = "mcphtconf") public class MCPHTConfig implements ConfigData { + public static class NetworkLoggingScheme { + public boolean RX = false; + public boolean TX = false; + public NetworkPacketVerbosity verbosity = NetworkPacketVerbosity.NAME; + public String regex = ".*"; + public enum NetworkPacketVerbosity { + ALL, NAME + } + } + @ConfigEntry.Category("Networking") + @ConfigEntry.Gui.CollapsibleObject + public NetworkLoggingScheme networkLogging = new NetworkLoggingScheme(); + @ConfigEntry.Category("Rendering") + @ConfigEntry.Gui.CollapsibleObject + public XRayScheme xRay = new XRayScheme(); + // TODO: toggle with hotkey + public static class XRayScheme { + public boolean enable = false; + public boolean overwriteBrightness; + } + @ConfigEntry.Category("Movement") + @ConfigEntry.Gui.CollapsibleObject + public FlyScheme fly = new FlyScheme(); + // TODO: toggle with hotkey + public static class FlyScheme { + public boolean enable = false; + } public void onSave() { MCPHTClient.LOGGER.info("saving and processing configs"); MCPHTClient.networkPacketFilter = compileFilter(); + MCPHTClient.MC.worldRenderer.reload(); logSettings(); } public void onLoad() { MCPHTClient.LOGGER.info("loading configs"); MCPHTClient.networkPacketFilter = compileFilter(); + MCPHTClient.MC.worldRenderer.reload(); logSettings(); } public void logSettings() { @@ -49,24 +78,4 @@ public class MCPHTConfig implements ConfigData { return Pattern.compile(".*"); // just accept all on error } } - public static class NetworkLoggingScheme { - public boolean RX = false; - public boolean TX = false; - public NetworkPacketVerbosity verbosity = NetworkPacketVerbosity.NAME; - public String regex = ".*"; - public enum NetworkPacketVerbosity { - ALL, NAME - } - } - @ConfigEntry.Category("Networking") - @ConfigEntry.Gui.CollapsibleObject - public NetworkLoggingScheme networkLogging = new NetworkLoggingScheme(); - @ConfigEntry.Category("Rendering") - @ConfigEntry.Gui.CollapsibleObject - public XRayScheme xRay = new XRayScheme(); - // TODO: toggle with hotkey - public static class XRayScheme { - public boolean enable = false; - public boolean overwriteBrightness; - } }