Inspired by 2020's April Fools' 20w14infinite Snapshot, this mod brings endless randomly generated dimensions into Minecraft.
1package net.lerariemann.infinity;
2
3import dev.architectury.registry.client.keymappings.KeyMappingRegistry;
4import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
5import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;
6import net.lerariemann.infinity.item.F4Item;
7import net.lerariemann.infinity.registry.core.ModEntities;
8import net.lerariemann.infinity.registry.core.ModItems;
9import net.lerariemann.infinity.registry.var.ModPayloads;
10import net.lerariemann.infinity.registry.var.ModScreenHandlers;
11import net.minecraft.client.option.KeyBinding;
12import net.minecraft.client.util.InputUtil;
13import net.minecraft.item.ItemStack;
14import net.minecraft.util.Hand;
15import net.minecraft.util.TypedActionResult;
16import org.lwjgl.glfw.GLFW;
17
18public class InfinityModClient {
19 public static KeyBinding f4ConfigKey = new KeyBinding("key.infinity.f4",
20 InputUtil.Type.KEYSYM,
21 GLFW.GLFW_KEY_F4,
22 "key.categories.misc");
23 public static KeyBinding postProcessorConfigKey = new KeyBinding("key.infinity.postprocessor",
24 InputUtil.Type.KEYSYM,
25 GLFW.GLFW_KEY_F12,
26 "key.categories.misc");
27
28 public static void initializeClient() {
29 ModEntities.registerEntityRenderers();
30 ModScreenHandlers.register();
31 KeyMappingRegistry.register(f4ConfigKey);
32 ModPayloads.registerS2CPacketsReceivers();
33 ClientTickEvents.END_CLIENT_TICK.register(client -> {
34 while (f4ConfigKey.wasPressed()) if (client.player != null
35 && client.player.getStackInHand(Hand.MAIN_HAND).isOf(ModItems.F4.get())) {
36 ClientPlayNetworking.send(new ModPayloads.F4DeployingPacket());
37 TypedActionResult<ItemStack> result = F4Item.deploy(client.world, client.player, Hand.MAIN_HAND);
38 client.player.setStackInHand(Hand.MAIN_HAND, result.getValue());
39 }
40 while (postProcessorConfigKey.wasPressed()) client.gameRenderer.togglePostProcessorEnabled();
41 });
42 }
43}