Inspired by 2020's April Fools' 20w14infinite Snapshot, this mod brings endless randomly generated dimensions into Minecraft.
1package net.lerariemann.infinity.registry.var;
2
3//? fabric {
4
5import net.fabricmc.fabric.api.object.builder.v1.world.poi.PointOfInterestHelper;
6//?}
7import com.google.common.collect.ImmutableSet;
8import dev.architectury.registry.registries.DeferredRegister;
9import dev.architectury.registry.registries.RegistrySupplier;
10import net.lerariemann.infinity.InfinityMod;
11import net.lerariemann.infinity.registry.core.ModBlocks;
12import net.lerariemann.infinity.util.InfinityMethods;
13import net.lerariemann.infinity.util.platform.InfinityPlatform;
14import net.minecraft.core.registries.Registries;
15import net.minecraft.resources.ResourceKey;
16import net.minecraft.world.entity.ai.village.poi.PoiType;
17
18import static net.lerariemann.infinity.InfinityMod.MOD_ID;
19
20public class ModPoi {
21 public static RegistrySupplier<PoiType> NEITHER_PORTAL;
22 public static ResourceKey<PoiType> NEITHER_PORTAL_KEY;
23
24 public static void registerPoi() {
25 InfinityMod.LOGGER.debug("Registering POI for " + InfinityMod.MOD_ID);
26 if (InfinityPlatform.INSTANCE.isFabric()) registerPoiFabric();
27 else registerPoiArchitectury();
28 NEITHER_PORTAL_KEY = ResourceKey.create(Registries.POINT_OF_INTEREST_TYPE, InfinityMethods.getId("neither_portal"));
29
30 }
31
32 // Deferred handling of Poi through Architectury API, works on NeoForge.
33 public static void registerPoiArchitectury() {
34 final DeferredRegister<PoiType> POI_TYPES = DeferredRegister.create(MOD_ID, Registries.POINT_OF_INTEREST_TYPE);
35 NEITHER_PORTAL = POI_TYPES.register("neither_portal", () -> new PoiType(ImmutableSet.copyOf(ModBlocks.PORTAL.get().getStateDefinition().getPossibleStates()), 0, 1));
36 POI_TYPES.register();
37 }
38
39 public static void registerPoiFabric() {
40 //? fabric {
41 PointOfInterestHelper.register(InfinityMethods.getId("neither_portal"), 0, 1,
42 ImmutableSet.copyOf(ModBlocks.PORTAL.get().getStateDefinition().getPossibleStates()));
43 //?}
44 }
45}