package de.fullrisk.citrusDev.client; import de.fullrisk.citrusDev.Config; import de.fullrisk.citrusDev.UI.Module_FPS; import de.fullrisk.citrusDev.UI.MyScreen; import de.fullrisk.citrusDev.UI.OverviewScreen; import io.wispforest.owo.ui.hud.Hud; import net.fabricmc.api.ClientModInitializer; import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents; import net.fabricmc.fabric.api.client.keymapping.v1.KeyMappingHelper; import net.minecraft.client.KeyMapping; import net.minecraft.resources.Identifier; import org.lwjgl.glfw.GLFW; public class CitrusDevClient implements ClientModInitializer { private static KeyMapping openScreenKey; private static KeyMapping openOverviewKey; @Override public void onInitializeClient() { Module_FPS.register(); KeyMapping.Category category = KeyMapping.Category.register( Identifier.fromNamespaceAndPath("citrus-dev", "general")); openScreenKey = KeyMappingHelper.registerKeyMapping(new KeyMapping( "key.citrus-dev.open_screen", GLFW.GLFW_KEY_G, category )); openOverviewKey = KeyMappingHelper.registerKeyMapping(new KeyMapping( "key.citrus-dev.open_ui", GLFW.GLFW_KEY_RIGHT_SHIFT, category )); ClientTickEvents.END_CLIENT_TICK.register(client -> { if (client.player != null && !client.isPaused()) { PlaytimeTracker.tick(); } Module_FPS.tick(); // update every tick, unconditionally while (openScreenKey.consumeClick()) { client.setScreen(new MyScreen(null)); // always general tab } while (openOverviewKey.consumeClick()) { String lastModule = Config.get().lastModule; client.setScreen(new MyScreen(lastModule)); // switch no longer even needed } }); } }