Skip to content

Commit

Permalink
Clean up AbstractKeyMappingBuilder
Browse files Browse the repository at this point in the history
  • Loading branch information
Gaming32 committed May 26, 2024
1 parent 2d8cb95 commit a0b1ec3
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 21 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,12 @@ public interface KeyMappingBuilder {

KeyMappingBuilder conflictContext(ConflictContext conflictContext);

KeyMappingWithAction register(Consumer<Minecraft> action);
KeyMappingExt register(Consumer<Minecraft> action);

enum ConflictContext {
UNIVERSAL, GUI, IN_GAME
}

record KeyMappingWithAction(KeyMapping mapping, Consumer<Minecraft> action) {
record KeyMappingExt(KeyMapping mapping, ConflictContext conflictContext, Consumer<Minecraft> action) {
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,16 @@
import java.util.List;
import java.util.function.Consumer;

public abstract class AbstractKeyMappingBuilder implements KeyMappingBuilder {
protected final List<KeyMappingWithAction> mappings = new ArrayList<>();
public class KeyMappingBuilderImpl implements KeyMappingBuilder {
private final List<KeyMappingExt> 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();
}

Expand Down Expand Up @@ -60,7 +60,7 @@ public KeyMappingBuilder conflictContext(ConflictContext conflictContext) {
}

@Override
public KeyMappingWithAction register(Consumer<Minecraft> action) {
public KeyMappingExt register(Consumer<Minecraft> action) {
if (name == null) {
throw new IllegalStateException("KeyMappingBuilder.name not set");
}
Expand All @@ -70,17 +70,18 @@ public KeyMappingWithAction register(Consumer<Minecraft> 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<KeyMapping> 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);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -83,7 +83,7 @@ public <T extends TooltipComponent> void register(Class<T> clazz, Function<? sup

@Override
public void registerKeyMappings(Consumer<KeyMappingBuilder> 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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -84,11 +84,11 @@ public void registerClientTooltips(Consumer<ClientTooltipRegistrar> handler) {

@Override
public void registerKeyMappings(Consumer<KeyMappingBuilder> handler) {
final var builder = new AbstractKeyMappingBuilder() {
final KeyMappingBuilderImpl builder = new KeyMappingBuilderImpl() {
@Override
public KeyMappingWithAction register(Consumer<Minecraft> action) {
final KeyMappingWithAction mapping = super.register(action);
mapping.mapping().setKeyConflictContext(KeyConflictContext.valueOf(conflictContext.name()));
public KeyMappingExt register(Consumer<Minecraft> action) {
final KeyMappingExt mapping = super.register(action);
mapping.mapping().setKeyConflictContext(KeyConflictContext.valueOf(mapping.conflictContext().name()));
return mapping;
}
};
Expand Down

0 comments on commit a0b1ec3

Please sign in to comment.