-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Move some things around and do some cleanup
- Loading branch information
Showing
11 changed files
with
235 additions
and
76 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
89 changes: 89 additions & 0 deletions
89
.../src/main/java/io/github/gaming32/bingo/platform/registrar/AbstractKeyMappingBuilder.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,89 @@ | ||
package io.github.gaming32.bingo.platform.registrar; | ||
|
||
import com.mojang.blaze3d.platform.InputConstants; | ||
import net.minecraft.client.KeyMapping; | ||
import net.minecraft.client.Minecraft; | ||
|
||
import java.util.ArrayList; | ||
import java.util.List; | ||
import java.util.function.Consumer; | ||
|
||
public abstract class AbstractKeyMappingBuilder implements KeyMappingBuilder { | ||
protected final List<KeyMappingWithAction> mappings = new ArrayList<>(); | ||
|
||
protected String name; | ||
protected String category; | ||
protected InputConstants.Type keyType; | ||
protected int keyCode; | ||
protected ConflictContext conflictContext; | ||
|
||
protected AbstractKeyMappingBuilder() { | ||
reset(); | ||
} | ||
|
||
private void reset() { | ||
name = null; | ||
keyType = InputConstants.Type.KEYSYM; | ||
keyCode = -1; | ||
category = null; | ||
conflictContext = ConflictContext.UNIVERSAL; | ||
} | ||
|
||
@Override | ||
public KeyMappingBuilder name(String name) { | ||
this.name = name; | ||
return this; | ||
} | ||
|
||
@Override | ||
public KeyMappingBuilder category(String category) { | ||
this.category = category; | ||
return this; | ||
} | ||
|
||
@Override | ||
public KeyMappingBuilder keyType(InputConstants.Type type) { | ||
this.keyType = type; | ||
return this; | ||
} | ||
|
||
@Override | ||
public KeyMappingBuilder keyCode(int keyCode) { | ||
this.keyCode = keyCode; | ||
return this; | ||
} | ||
|
||
@Override | ||
public KeyMappingBuilder conflictContext(ConflictContext conflictContext) { | ||
this.conflictContext = conflictContext; | ||
return this; | ||
} | ||
|
||
@Override | ||
public KeyMappingWithAction register(Consumer<Minecraft> action) { | ||
if (name == null) { | ||
throw new IllegalStateException("KeyMappingBuilder.name not set"); | ||
} | ||
if (category == null) { | ||
throw new IllegalStateException("KeyMappingBuilder.category not set"); | ||
} | ||
if (action == null) { | ||
throw new IllegalStateException("KeyMappingBuilder.action not set"); | ||
} | ||
final var result = new KeyMappingWithAction(new KeyMapping(name, keyType, keyCode, category), action); | ||
mappings.add(result); | ||
return result; | ||
} | ||
|
||
public void registerAll(Consumer<KeyMapping> consumer) { | ||
mappings.stream().map(KeyMappingWithAction::mapping).forEach(consumer); | ||
} | ||
|
||
public void handleAll(Minecraft minecraft) { | ||
for (final KeyMappingWithAction mapping : mappings) { | ||
while (mapping.mapping().consumeClick()) { | ||
mapping.action().accept(minecraft); | ||
} | ||
} | ||
} | ||
} |
10 changes: 10 additions & 0 deletions
10
common/src/main/java/io/github/gaming32/bingo/platform/registrar/ClientTooltipRegistrar.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
package io.github.gaming32.bingo.platform.registrar; | ||
|
||
import net.minecraft.client.gui.screens.inventory.tooltip.ClientTooltipComponent; | ||
import net.minecraft.world.inventory.tooltip.TooltipComponent; | ||
|
||
import java.util.function.Function; | ||
|
||
public interface ClientTooltipRegistrar { | ||
<T extends TooltipComponent> void register(Class<T> clazz, Function<? super T, ? extends ClientTooltipComponent> factory); | ||
} |
21 changes: 21 additions & 0 deletions
21
...rc/main/java/io/github/gaming32/bingo/platform/registrar/DataReloadListenerRegistrar.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
package io.github.gaming32.bingo.platform.registrar; | ||
|
||
import net.minecraft.core.HolderLookup; | ||
import net.minecraft.resources.ResourceLocation; | ||
import net.minecraft.server.ReloadableServerResources; | ||
import net.minecraft.server.packs.resources.PreparableReloadListener; | ||
|
||
import java.util.Collection; | ||
import java.util.List; | ||
|
||
public interface DataReloadListenerRegistrar { | ||
ReloadableServerResources serverResources(); | ||
|
||
HolderLookup.Provider registryAccess(); | ||
|
||
default void register(ResourceLocation id, PreparableReloadListener listener) { | ||
register(id, listener, List.of()); | ||
} | ||
|
||
void register(ResourceLocation id, PreparableReloadListener listener, Collection<ResourceLocation> dependencies); | ||
} |
28 changes: 28 additions & 0 deletions
28
common/src/main/java/io/github/gaming32/bingo/platform/registrar/KeyMappingBuilder.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
package io.github.gaming32.bingo.platform.registrar; | ||
|
||
import com.mojang.blaze3d.platform.InputConstants; | ||
import net.minecraft.client.KeyMapping; | ||
import net.minecraft.client.Minecraft; | ||
|
||
import java.util.function.Consumer; | ||
|
||
public interface KeyMappingBuilder { | ||
KeyMappingBuilder name(String name); | ||
|
||
KeyMappingBuilder category(String category); | ||
|
||
KeyMappingBuilder keyType(InputConstants.Type type); | ||
|
||
KeyMappingBuilder keyCode(int keyCode); | ||
|
||
KeyMappingBuilder conflictContext(ConflictContext conflictContext); | ||
|
||
KeyMappingWithAction register(Consumer<Minecraft> action); | ||
|
||
enum ConflictContext { | ||
UNIVERSAL, GUI, IN_GAME | ||
} | ||
|
||
record KeyMappingWithAction(KeyMapping mapping, Consumer<Minecraft> action) { | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.