Skip to content

Commit

Permalink
Revert "use home-grown key binding system"
Browse files Browse the repository at this point in the history
This reverts commit b3e3ad5.
  • Loading branch information
deirn committed May 18, 2024
1 parent 4cc596d commit d5009fa
Show file tree
Hide file tree
Showing 19 changed files with 159 additions and 196 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package mcp.mobius.waila.fabric;

import com.mojang.blaze3d.platform.InputConstants;
import mcp.mobius.waila.api.WailaConstants;
import mcp.mobius.waila.service.IClientService;
import net.fabricmc.fabric.api.client.keybinding.v1.KeyBindingHelper;
import net.minecraft.client.KeyMapping;

public class FabricClientService implements IClientService {

@Override
public KeyMapping createKeyBind(String id, int key) {
return KeyBindingHelper.registerKeyBinding(new KeyMapping(id, InputConstants.Type.KEYSYM, key, WailaConstants.MOD_NAME));
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ public class FabricWailaClient extends WailaClient implements ClientModInitializ

@Override
public void onInitializeClient() {
registerKeyBinds();

Packets.initClient();

HudRenderCallback.EVENT.register(TooltipRenderer::render);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
mcp.mobius.waila.fabric.FabricClientService
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package mcp.mobius.waila.forge;

import com.mojang.blaze3d.platform.InputConstants;
import mcp.mobius.waila.api.WailaConstants;
import mcp.mobius.waila.service.IClientService;
import net.minecraft.client.KeyMapping;
import net.minecraftforge.client.settings.KeyConflictContext;
import net.minecraftforge.client.settings.KeyModifier;

public class ForgeClientService implements IClientService {

@Override
public KeyMapping createKeyBind(String id, int key) {
return new KeyMapping(id, KeyConflictContext.IN_GAME, KeyModifier.NONE, InputConstants.Type.KEYSYM, key, WailaConstants.MOD_NAME);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,11 @@ static void clientSetup(FMLClientSetupEvent event) {
registerConfigScreen();
}

@SubscribeEvent
static void registerKeyMappings(RegisterKeyMappingsEvent event) {
registerKeyBinds().forEach(event::register);
}

@SubscribeEvent
static void addReloadListener(RegisterClientReloadListenersEvent event) {
event.registerReloadListener(new BuiltinThemeLoader());
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
mcp.mobius.waila.forge.ForgeClientService
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package mcp.mobius.waila.neo;

import com.mojang.blaze3d.platform.InputConstants;
import mcp.mobius.waila.api.WailaConstants;
import mcp.mobius.waila.service.IClientService;
import net.minecraft.client.KeyMapping;
import net.neoforged.neoforge.client.settings.KeyConflictContext;
import net.neoforged.neoforge.client.settings.KeyModifier;

public class NeoClientService implements IClientService {

@Override
public KeyMapping createKeyBind(String id, int key) {
return new KeyMapping(id, KeyConflictContext.IN_GAME, KeyModifier.NONE, InputConstants.Type.KEYSYM, key, WailaConstants.MOD_NAME);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
import net.neoforged.neoforge.client.event.ClientTickEvent;
import net.neoforged.neoforge.client.event.RegisterClientCommandsEvent;
import net.neoforged.neoforge.client.event.RegisterClientReloadListenersEvent;
import net.neoforged.neoforge.client.event.RegisterKeyMappingsEvent;
import net.neoforged.neoforge.client.event.RenderGuiEvent;
import net.neoforged.neoforge.client.gui.IConfigScreenFactory;
import net.neoforged.neoforge.event.entity.player.ItemTooltipEvent;
Expand All @@ -30,6 +31,11 @@ static void clientSetup(FMLClientSetupEvent event) {
registerConfigScreen();
}

@SubscribeEvent
static void registerKeyMappings(RegisterKeyMappingsEvent event) {
registerKeyBinds().forEach(event::register);
}

@SubscribeEvent
static void addReloadListener(RegisterClientReloadListenersEvent event) {
event.registerReloadListener(new BuiltinThemeLoader());
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
mcp.mobius.waila.neo.NeoClientService
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package mcp.mobius.waila.quilt;

import com.mojang.blaze3d.platform.InputConstants;
import mcp.mobius.waila.api.WailaConstants;
import mcp.mobius.waila.service.IClientService;
import net.fabricmc.fabric.api.client.keybinding.v1.KeyBindingHelper;
import net.minecraft.client.KeyMapping;

public class QuiltClientService implements IClientService {

@Override
public KeyMapping createKeyBind(String id, int key) {
return KeyBindingHelper.registerKeyBinding(new KeyMapping(id, InputConstants.Type.KEYSYM, key, WailaConstants.MOD_NAME));
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ public class QuiltWailaClient extends WailaClient implements ClientModInitialize

@Override
public void onInitializeClient(ModContainer mod) {
registerKeyBinds();

Packets.initClient();

HudRenderCallback.EVENT.register(TooltipRenderer::render);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
mcp.mobius.waila.quilt.QuiltClientService
2 changes: 0 additions & 2 deletions src/main/java/mcp/mobius/waila/Waila.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
import mcp.mobius.waila.api.WailaConstants;
import mcp.mobius.waila.api.__internal__.IHarvestService;
import mcp.mobius.waila.config.BlacklistConfig;
import mcp.mobius.waila.config.KeyBinding;
import mcp.mobius.waila.config.WailaConfig;
import mcp.mobius.waila.gui.hud.theme.ThemeDefinition;
import mcp.mobius.waila.registry.RegistryFilter;
Expand Down Expand Up @@ -41,7 +40,6 @@ public abstract class Waila {
.registerTypeAdapter(WailaConfig.Overlay.Color.class, new WailaConfig.Overlay.Color.Adapter())
.registerTypeAdapter(ThemeDefinition.class, new ThemeDefinition.Adapter())
.registerTypeAdapter(ResourceLocation.class, new ResourceLocation.Serializer())
.registerTypeAdapter(KeyBinding.class, new KeyBinding.Adapter())
.create())
.build();

Expand Down
63 changes: 40 additions & 23 deletions src/main/java/mcp/mobius/waila/WailaClient.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,20 @@

import java.util.List;

import com.mojang.blaze3d.platform.InputConstants;
import mcp.mobius.waila.access.ClientAccessor;
import mcp.mobius.waila.api.IWailaConfig;
import mcp.mobius.waila.api.WailaConstants;
import mcp.mobius.waila.config.KeyBinding;
import mcp.mobius.waila.buildconst.Tl;
import mcp.mobius.waila.config.PluginConfig;
import mcp.mobius.waila.gui.hud.TooltipHandler;
import mcp.mobius.waila.gui.screen.HomeScreen;
import mcp.mobius.waila.integration.IRecipeAction;
import mcp.mobius.waila.registry.Registrar;
import mcp.mobius.waila.registry.RegistryFilter;
import mcp.mobius.waila.service.IClientService;
import mcp.mobius.waila.util.Log;
import net.minecraft.client.KeyMapping;
import net.minecraft.client.Minecraft;
import net.minecraft.network.chat.Component;
import net.minecraft.world.item.ItemStack;
Expand All @@ -22,6 +25,12 @@ public abstract class WailaClient {

private static final Log LOG = Log.create();

public static KeyMapping keyOpenConfig;
public static KeyMapping keyShowOverlay;
public static KeyMapping keyToggleLiquid;
public static KeyMapping keyShowRecipeInput;
public static KeyMapping keyShowRecipeOutput;

public static boolean showComponentBounds = false;
public static boolean showFps = false;

Expand All @@ -39,39 +48,43 @@ public static void setRecipeAction(IRecipeAction action) {
recipeAction = action;
}

protected static void onClientTick() {
KeyBinding.tick();
protected static List<KeyMapping> registerKeyBinds() {
return List.of(
keyOpenConfig = createKeyBind(Tl.Key.CONFIG),
keyShowOverlay = createKeyBind(Tl.Key.SHOW_OVERLAY),
keyToggleLiquid = createKeyBind(Tl.Key.TOGGLE_LIQUID),
keyShowRecipeInput = createKeyBind(Tl.Key.SHOW_RECIPE_INPUT),
keyShowRecipeOutput = createKeyBind(Tl.Key.SHOW_RECIPE_OUTPUT)
);
}

protected static void onClientTick() {
var client = Minecraft.getInstance();
var config = Waila.CONFIG.get();
var general = config.getGeneral();
var bindings = config.getKeyBindings();

TooltipHandler.tick();

if (client.screen == null) {
if (bindings.getOpenConfig().isPressed()) {
client.setScreen(new HomeScreen(null));
}
while (keyOpenConfig.consumeClick()) {
client.setScreen(new HomeScreen(null));
}

if (bindings.getShowOverlay().isPressed()) {
if (general.getDisplayMode() == IWailaConfig.General.DisplayMode.TOGGLE) {
general.setDisplayTooltip(!general.isDisplayTooltip());
}
while (keyShowOverlay.consumeClick()) {
if (config.getGeneral().getDisplayMode() == IWailaConfig.General.DisplayMode.TOGGLE) {
config.getGeneral().setDisplayTooltip(!config.getGeneral().isDisplayTooltip());
}
}

if (bindings.getToggleLiquid().isPressed()) {
PluginConfig.set(WailaConstants.CONFIG_SHOW_FLUID, !PluginConfig.CLIENT.getBoolean(WailaConstants.CONFIG_SHOW_FLUID));
}
while (keyToggleLiquid.consumeClick()) {
PluginConfig.set(WailaConstants.CONFIG_SHOW_FLUID, !PluginConfig.CLIENT.getBoolean(WailaConstants.CONFIG_SHOW_FLUID));
}

if (recipeAction != null) {
if (bindings.getShowRecipeInput().isPressed()) {
recipeAction.showInput(ClientAccessor.INSTANCE.getStack());
}
if (recipeAction != null) {
while (keyShowRecipeInput.consumeClick()) {
recipeAction.showInput(ClientAccessor.INSTANCE.getStack());
}

if (bindings.getShowRecipeOutput().isPressed()) {
recipeAction.showOutput(ClientAccessor.INSTANCE.getStack());
}
while (keyShowRecipeOutput.consumeClick()) {
recipeAction.showOutput(ClientAccessor.INSTANCE.getStack());
}
}
}
Expand Down Expand Up @@ -101,4 +114,8 @@ protected static void onServerLogout() {
config.setServerValue(null));
}

private static KeyMapping createKeyBind(String id) {
return IClientService.INSTANCE.createKeyBind(id, InputConstants.UNKNOWN.getValue());
}

}
83 changes: 0 additions & 83 deletions src/main/java/mcp/mobius/waila/config/KeyBinding.java

This file was deleted.

Loading

0 comments on commit d5009fa

Please sign in to comment.