From a0b1ec3b3cf5b2984bbcc352ced54cb63d831468 Mon Sep 17 00:00:00 2001 From: "Josiah (Gaming32) Glosson" Date: Sun, 26 May 2024 15:01:13 -0500 Subject: [PATCH] Clean up AbstractKeyMappingBuilder --- .../platform/registrar/KeyMappingBuilder.java | 4 +-- ...uilder.java => KeyMappingBuilderImpl.java} | 25 ++++++++++--------- .../gaming32/bingo/fabric/FabricPlatform.java | 4 +-- .../bingo/neoforge/NeoForgePlatform.java | 10 ++++---- 4 files changed, 22 insertions(+), 21 deletions(-) rename common/src/main/java/io/github/gaming32/bingo/platform/registrar/{AbstractKeyMappingBuilder.java => KeyMappingBuilderImpl.java} (72%) diff --git a/common/src/main/java/io/github/gaming32/bingo/platform/registrar/KeyMappingBuilder.java b/common/src/main/java/io/github/gaming32/bingo/platform/registrar/KeyMappingBuilder.java index b6b93675..0d0163b3 100644 --- a/common/src/main/java/io/github/gaming32/bingo/platform/registrar/KeyMappingBuilder.java +++ b/common/src/main/java/io/github/gaming32/bingo/platform/registrar/KeyMappingBuilder.java @@ -17,12 +17,12 @@ public interface KeyMappingBuilder { KeyMappingBuilder conflictContext(ConflictContext conflictContext); - KeyMappingWithAction register(Consumer action); + KeyMappingExt register(Consumer action); enum ConflictContext { UNIVERSAL, GUI, IN_GAME } - record KeyMappingWithAction(KeyMapping mapping, Consumer action) { + record KeyMappingExt(KeyMapping mapping, ConflictContext conflictContext, Consumer action) { } } diff --git a/common/src/main/java/io/github/gaming32/bingo/platform/registrar/AbstractKeyMappingBuilder.java b/common/src/main/java/io/github/gaming32/bingo/platform/registrar/KeyMappingBuilderImpl.java similarity index 72% rename from common/src/main/java/io/github/gaming32/bingo/platform/registrar/AbstractKeyMappingBuilder.java rename to common/src/main/java/io/github/gaming32/bingo/platform/registrar/KeyMappingBuilderImpl.java index 07458b10..53806a1d 100644 --- a/common/src/main/java/io/github/gaming32/bingo/platform/registrar/AbstractKeyMappingBuilder.java +++ b/common/src/main/java/io/github/gaming32/bingo/platform/registrar/KeyMappingBuilderImpl.java @@ -8,16 +8,16 @@ import java.util.List; import java.util.function.Consumer; -public abstract class AbstractKeyMappingBuilder implements KeyMappingBuilder { - protected final List mappings = new ArrayList<>(); +public class KeyMappingBuilderImpl implements KeyMappingBuilder { + private final List mappings = new ArrayList<>(); - protected String name; - protected String category; - protected InputConstants.Type keyType; - protected int keyCode; - protected ConflictContext conflictContext; + private String name; + private String category; + private InputConstants.Type keyType; + private int keyCode; + private ConflictContext conflictContext; - protected AbstractKeyMappingBuilder() { + public KeyMappingBuilderImpl() { reset(); } @@ -60,7 +60,7 @@ public KeyMappingBuilder conflictContext(ConflictContext conflictContext) { } @Override - public KeyMappingWithAction register(Consumer action) { + public KeyMappingExt register(Consumer action) { if (name == null) { throw new IllegalStateException("KeyMappingBuilder.name not set"); } @@ -70,17 +70,18 @@ public KeyMappingWithAction register(Consumer action) { if (action == null) { throw new IllegalStateException("KeyMappingBuilder.action not set"); } - final var result = new KeyMappingWithAction(new KeyMapping(name, keyType, keyCode, category), action); + final KeyMappingExt result = new KeyMappingExt(new KeyMapping(name, keyType, keyCode, category), conflictContext, action); + reset(); mappings.add(result); return result; } public void registerAll(Consumer consumer) { - mappings.stream().map(KeyMappingWithAction::mapping).forEach(consumer); + mappings.stream().map(KeyMappingExt::mapping).forEach(consumer); } public void handleAll(Minecraft minecraft) { - for (final KeyMappingWithAction mapping : mappings) { + for (final KeyMappingExt mapping : mappings) { while (mapping.mapping().consumeClick()) { mapping.action().accept(minecraft); } diff --git a/fabric/src/main/java/io/github/gaming32/bingo/fabric/FabricPlatform.java b/fabric/src/main/java/io/github/gaming32/bingo/fabric/FabricPlatform.java index 87b72ee8..d3790cf2 100644 --- a/fabric/src/main/java/io/github/gaming32/bingo/fabric/FabricPlatform.java +++ b/fabric/src/main/java/io/github/gaming32/bingo/fabric/FabricPlatform.java @@ -7,10 +7,10 @@ import io.github.gaming32.bingo.platform.BingoPlatform; import io.github.gaming32.bingo.platform.event.ClientEvents; import io.github.gaming32.bingo.platform.event.Event; -import io.github.gaming32.bingo.platform.registrar.AbstractKeyMappingBuilder; import io.github.gaming32.bingo.platform.registrar.ClientTooltipRegistrar; import io.github.gaming32.bingo.platform.registrar.DataReloadListenerRegistrar; import io.github.gaming32.bingo.platform.registrar.KeyMappingBuilder; +import io.github.gaming32.bingo.platform.registrar.KeyMappingBuilderImpl; import io.github.gaming32.bingo.platform.registry.DeferredRegister; import io.github.gaming32.bingo.platform.registry.RegistryBuilder; import net.fabricmc.api.EnvType; @@ -83,7 +83,7 @@ public void register(Class clazz, Function handler) { - final var builder = new AbstractKeyMappingBuilder() {}; + final KeyMappingBuilderImpl builder = new KeyMappingBuilderImpl(); handler.accept(builder); builder.registerAll(KeyBindingHelper::registerKeyBinding); ClientTickEvents.END_CLIENT_TICK.register(builder::handleAll); diff --git a/neoforge/src/main/java/io/github/gaming32/bingo/neoforge/NeoForgePlatform.java b/neoforge/src/main/java/io/github/gaming32/bingo/neoforge/NeoForgePlatform.java index 1112ec68..b19cf436 100644 --- a/neoforge/src/main/java/io/github/gaming32/bingo/neoforge/NeoForgePlatform.java +++ b/neoforge/src/main/java/io/github/gaming32/bingo/neoforge/NeoForgePlatform.java @@ -5,10 +5,10 @@ import io.github.gaming32.bingo.platform.BingoPlatform; import io.github.gaming32.bingo.platform.event.ClientEvents; import io.github.gaming32.bingo.platform.event.Event; -import io.github.gaming32.bingo.platform.registrar.AbstractKeyMappingBuilder; import io.github.gaming32.bingo.platform.registrar.ClientTooltipRegistrar; import io.github.gaming32.bingo.platform.registrar.DataReloadListenerRegistrar; import io.github.gaming32.bingo.platform.registrar.KeyMappingBuilder; +import io.github.gaming32.bingo.platform.registrar.KeyMappingBuilderImpl; import io.github.gaming32.bingo.platform.registry.DeferredRegister; import io.github.gaming32.bingo.platform.registry.RegistryBuilder; import net.minecraft.client.Minecraft; @@ -84,11 +84,11 @@ public void registerClientTooltips(Consumer handler) { @Override public void registerKeyMappings(Consumer handler) { - final var builder = new AbstractKeyMappingBuilder() { + final KeyMappingBuilderImpl builder = new KeyMappingBuilderImpl() { @Override - public KeyMappingWithAction register(Consumer action) { - final KeyMappingWithAction mapping = super.register(action); - mapping.mapping().setKeyConflictContext(KeyConflictContext.valueOf(conflictContext.name())); + public KeyMappingExt register(Consumer action) { + final KeyMappingExt mapping = super.register(action); + mapping.mapping().setKeyConflictContext(KeyConflictContext.valueOf(mapping.conflictContext().name())); return mapping; } };