Skip to content

Commit

Permalink
Key mapping migration
Browse files Browse the repository at this point in the history
  • Loading branch information
Gaming32 committed Apr 19, 2024
1 parent 8fb734e commit 1123e23
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import com.mojang.blaze3d.platform.InputConstants;
import com.mojang.blaze3d.platform.Window;
import dev.architectury.registry.client.keymappings.KeyMappingRegistry;
import io.github.gaming32.bingo.Bingo;
import io.github.gaming32.bingo.client.config.BingoClientConfig;
import io.github.gaming32.bingo.client.icons.DefaultIconRenderers;
Expand Down Expand Up @@ -154,7 +153,7 @@ class TeamValue {
DefaultIconRenderers.setup();

final KeyMapping boardKey = new KeyMapping("bingo.key.board", InputConstants.KEY_B, "bingo.key.category");
KeyMappingRegistry.register(boardKey);
BingoPlatform.platform.registerKeyMappings(registrar -> registrar.accept(boardKey));
ClientEvents.CLIENT_TICK_START.register(minecraft -> {
while (boardKey.consumeClick()) {
if (clientGame != null) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package io.github.gaming32.bingo.platform;

import io.github.gaming32.bingo.network.BingoNetworking;
import net.minecraft.client.KeyMapping;
import net.minecraft.client.gui.screens.inventory.tooltip.ClientTooltipComponent;
import net.minecraft.world.inventory.tooltip.TooltipComponent;

Expand All @@ -21,6 +22,8 @@ public abstract class BingoPlatform {

public abstract void registerClientTooltips(Consumer<ClientTooltipRegistrar> handler);

public abstract void registerKeyMappings(Consumer<Consumer<KeyMapping>> handler);

public interface ClientTooltipRegistrar {
<T extends TooltipComponent> void register(Class<T> clazz, Function<? super T, ? extends ClientTooltipComponent> factory);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import io.github.gaming32.bingo.platform.event.Event;
import net.fabricmc.api.EnvType;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
import net.fabricmc.fabric.api.client.keybinding.v1.KeyBindingHelper;
import net.fabricmc.fabric.api.client.rendering.v1.HudRenderCallback;
import net.fabricmc.fabric.api.client.rendering.v1.TooltipComponentCallback;
import net.fabricmc.fabric.api.client.screen.v1.ScreenEvents;
Expand All @@ -18,6 +19,7 @@
import net.fabricmc.fabric.api.event.lifecycle.v1.ServerTickEvents;
import net.fabricmc.fabric.api.event.player.UseItemCallback;
import net.fabricmc.loader.api.FabricLoader;
import net.minecraft.client.KeyMapping;
import net.minecraft.client.gui.screens.inventory.tooltip.ClientTooltipComponent;
import net.minecraft.world.InteractionResultHolder;
import net.minecraft.world.inventory.tooltip.TooltipComponent;
Expand Down Expand Up @@ -70,6 +72,11 @@ public <T extends TooltipComponent> void register(Class<T> clazz, Function<? sup
});
}

@Override
public void registerKeyMappings(Consumer<Consumer<KeyMapping>> handler) {
handler.accept(KeyBindingHelper::registerKeyBinding);
}

private void registerEvents() {
Event.REGISTER_COMMANDS.setRegistrar(handler -> CommandRegistrationCallback.EVENT.register(handler::register));
Event.PLAYER_JOIN.setRegistrar(FabricEvents.PLAYER_JOIN::register);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import io.github.gaming32.bingo.platform.BingoPlatform;
import io.github.gaming32.bingo.platform.event.ClientEvents;
import io.github.gaming32.bingo.platform.event.Event;
import net.minecraft.client.KeyMapping;
import net.minecraft.client.Minecraft;
import net.minecraft.server.level.ServerPlayer;
import net.neoforged.bus.api.IEventBus;
Expand All @@ -12,6 +13,7 @@
import net.neoforged.fml.loading.FMLPaths;
import net.neoforged.neoforge.client.event.ClientPlayerNetworkEvent;
import net.neoforged.neoforge.client.event.RegisterClientTooltipComponentFactoriesEvent;
import net.neoforged.neoforge.client.event.RegisterKeyMappingsEvent;
import net.neoforged.neoforge.client.event.RenderGuiEvent;
import net.neoforged.neoforge.client.event.ScreenEvent;
import net.neoforged.neoforge.common.NeoForge;
Expand All @@ -28,9 +30,11 @@
import java.util.function.Consumer;

public class NeoForgePlatform extends BingoPlatform {
private final IEventBus modEventBus;
private final BingoNetworking networking;

public NeoForgePlatform(IEventBus modEventBus) {
this.modEventBus = modEventBus;
networking = new BingoNetworkingImpl(modEventBus);
registerEvents();
}
Expand All @@ -57,11 +61,16 @@ public boolean isModLoaded(String id) {

@Override
public void registerClientTooltips(Consumer<ClientTooltipRegistrar> handler) {
NeoForge.EVENT_BUS.addListener((RegisterClientTooltipComponentFactoriesEvent event) ->
modEventBus.addListener((RegisterClientTooltipComponentFactoriesEvent event) ->
handler.accept(event::register)
);
}

@Override
public void registerKeyMappings(Consumer<Consumer<KeyMapping>> handler) {
modEventBus.addListener((RegisterKeyMappingsEvent event) -> handler.accept(event::register));
}

private void registerEvents() {
final IEventBus bus = NeoForge.EVENT_BUS;
Event.REGISTER_COMMANDS.setRegistrar(handler -> bus.addListener((RegisterCommandsEvent event) ->
Expand Down

0 comments on commit 1123e23

Please sign in to comment.