Inspired by 2020's April Fools' 20w14infinite Snapshot, this mod brings endless randomly generated dimensions into Minecraft.

Further forge fixes

+21 -53
-2
build.forge.gradle.kts
··· 188 188 modImplementation("dev.su5ed.sinytra:fabric-loader:2.7.11+0.16.5+1.20.1") 189 189 modImplementation("dev.su5ed.sinytra.fabric-api:fabric-api-base:0.4.32+ef105b4977") 190 190 modImplementation("dev.su5ed.sinytra.fabric-api:fabric-networking-api-v1:1.3.14+fb7c822677") 191 - modImplementation("dev.su5ed.sinytra.fabric-api:fabric-object-builder-api-v1:11.1.5+f8c414ce77") 192 191 modImplementation("dev.su5ed.sinytra.fabric-api:fabric-resource-loader-v0:0.11.12+4b4151c077") 193 192 jarJar("dev.su5ed.sinytra:fabric-loader:2.7.11+0.16.5+1.20.1") 194 193 jarJar("dev.su5ed.sinytra.fabric-api:fabric-api-base:0.4.32+ef105b4977") 195 194 jarJar("dev.su5ed.sinytra.fabric-api:fabric-networking-api-v1:1.3.14+fb7c822677") 196 - jarJar("dev.su5ed.sinytra.fabric-api:fabric-object-builder-api-v1:11.1.5+f8c414ce77") 197 195 jarJar("dev.su5ed.sinytra.fabric-api:fabric-resource-loader-v0:0.11.12+4b4151c077") 198 196 199 197
-9
src/main/java/net/lerariemann/infinity/access/ScreenAccess.java
··· 1 - package net.lerariemann.infinity.access; 2 - 3 - import net.minecraft.client.gui.components.Renderable; 4 - import net.minecraft.client.gui.components.events.GuiEventListener; 5 - import net.minecraft.client.gui.narration.NarratableEntry; 6 - 7 - public interface ScreenAccess { 8 - <T extends GuiEventListener & Renderable & NarratableEntry> T infinity$addWidget(T widget); 9 - }
-20
src/main/java/net/lerariemann/infinity/mixin/core/ScreenMixin.java
··· 1 - package net.lerariemann.infinity.mixin.core; 2 - 3 - import net.lerariemann.infinity.access.ScreenAccess; 4 - import net.minecraft.client.gui.components.Renderable; 5 - import net.minecraft.client.gui.components.events.GuiEventListener; 6 - import net.minecraft.client.gui.narration.NarratableEntry; 7 - import net.minecraft.client.gui.screens.Screen; 8 - import org.spongepowered.asm.mixin.Mixin; 9 - import org.spongepowered.asm.mixin.Shadow; 10 - 11 - @Mixin(Screen.class) 12 - public abstract class ScreenMixin implements ScreenAccess { 13 - @Shadow 14 - protected abstract <T extends GuiEventListener & Renderable & NarratableEntry> T addRenderableWidget(T widget); 15 - 16 - @Override 17 - public <T extends GuiEventListener & Renderable & NarratableEntry> T infinity$addWidget(T widget) { 18 - return addRenderableWidget(widget); 19 - } 20 - }
+1 -1
src/main/java/net/lerariemann/infinity/mixin/fixes/WorldChunkMixin.java
··· 10 10 @Mixin(LevelChunk.class) 11 11 public class WorldChunkMixin { 12 12 /* Silencing extensive log spam */ 13 - @Inject(method = "promotePendingBlockEntity", at = @At(value = "INVOKE", target = "Lorg/slf4j/Logger;warn(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V"), cancellable = true) 13 + @Inject(method = "promotePendingBlockEntity", at = @At(value = "INVOKE", remap = false, target = "Lorg/slf4j/Logger;warn(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V"), cancellable = true) 14 14 private void silenceLogSpam(CallbackInfoReturnable<BlockEntity> cir) { 15 15 cir.setReturnValue(null); 16 16 }
+1 -2
src/main/java/net/lerariemann/infinity/mixin/qol/EditWorldScreenMixin.java
··· 1 1 package net.lerariemann.infinity.mixin.qol; 2 2 3 3 import it.unimi.dsi.fastutil.booleans.BooleanConsumer; 4 - import net.lerariemann.infinity.access.ScreenAccess; 5 4 import net.lerariemann.infinity.util.InfinityMethods; 6 5 //? if >1.21 { 7 6 import net.minecraft.client.Minecraft; ··· 32 31 *///?} 33 32 , CallbackInfo ci) { 34 33 var screen = (EditWorldScreen) (Object) this; 35 - ((ScreenAccess) screen).infinity$addWidget(Button.builder(Component.translatable("screen.infinity.delete_datapacks"), button -> { 34 + screen.addRenderableWidget(Button.builder(Component.translatable("screen.infinity.delete_datapacks"), button -> { 36 35 boolean bl = InfinityMethods.deleteLevel(session); 37 36 this.callback.accept(!bl); 38 37 }).width(200).tooltip(Tooltip.create(Component.translatable("screen.infinity.delete_datapacks.tooltip"), null)).build());
+2 -12
src/main/java/net/lerariemann/infinity/registry/core/ModEntities.java
··· 21 21 import net.minecraft.world.entity.SpawnPlacementTypes; 22 22 import static net.minecraft.world.entity.SpawnPlacementTypes.*; 23 23 //?} else { 24 - /*import net.fabricmc.fabric.api.object.builder.v1.entity.FabricEntityTypeBuilder; 25 - import static net.minecraft.world.entity.SpawnPlacements.Type.*; 24 + /*import static net.minecraft.world.entity.SpawnPlacements.Type.*; 26 25 *///?} 27 26 import net.minecraft.world.entity.animal.Animal; 28 27 import net.minecraft.world.entity.monster.AbstractSkeleton; ··· 69 68 70 69 public static final RegistrySupplier<EntityType<ChaosSlime>> CHAOS_SLIME = INFINITY_ENTITIES 71 70 .register("chaos_slime", () -> 72 - //? if >1.21 { 73 - 74 71 EntityType.Builder.of(ChaosSlime::new, MobCategory.MONSTER) 75 72 .sized(0.52f, 0.52f) 76 73 .clientTrackingRange(10) 77 - .build(type("chaos_slime")) 78 - //?} else { 79 - /*FabricEntityTypeBuilder.create(MobCategory.MONSTER, ChaosSlime::new) 80 - .dimensions(EntityDimensions.scalable(0.52f, 0.52f)) 81 - .trackRangeBlocks(10) 82 - .build() 83 - *///?} 84 - ); 74 + .build(type("chaos_slime"))); 85 75 public static final RegistrySupplier<EntityType<ChaosSkeleton>> CHAOS_SKELETON = INFINITY_ENTITIES 86 76 .register("chaos_skeleton", () -> EntityType.Builder.of(ChaosSkeleton::new, MobCategory.MONSTER) 87 77 .sized(0.6f, 1.99f)
+2 -1
src/main/resources/accesswideners/1.20.1.accesswidener
··· 8 8 accessible class net/minecraft/world/level/levelgen/SurfaceRules$SurfaceRule 9 9 accessible class net/minecraft/world/entity/animal/AbstractFish$FishMoveControl 10 10 accessible method net/minecraft/world/entity/Entity getRelativePortalPosition (Lnet/minecraft/core/Direction$Axis;Lnet/minecraft/BlockUtil$FoundRectangle;)Lnet/minecraft/world/phys/Vec3; 11 - accessible method net/minecraft/world/level/levelgen/structure/Structure findGenerationPoint (Lnet/minecraft/world/level/levelgen/structure/Structure$GenerationContext;)Ljava/util/Optional; 11 + accessible method net/minecraft/world/level/levelgen/structure/Structure findGenerationPoint (Lnet/minecraft/world/level/levelgen/structure/Structure$GenerationContext;)Ljava/util/Optional; 12 + accessible method net/minecraft/client/gui/screens/Screen addRenderableWidget (Lnet/minecraft/client/gui/components/events/GuiEventListener;)Lnet/minecraft/client/gui/components/events/GuiEventListener;
+2 -1
src/main/resources/accesswideners/1.21.1.accesswidener
··· 8 8 accessible class net/minecraft/world/level/levelgen/SurfaceRules$SurfaceRule 9 9 accessible class net/minecraft/world/entity/animal/AbstractFish$FishMoveControl 10 10 accessible method net/minecraft/world/level/block/NetherPortalBlock getDimensionTransitionFromExit (Lnet/minecraft/world/entity/Entity;Lnet/minecraft/core/BlockPos;Lnet/minecraft/BlockUtil$FoundRectangle;Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/world/level/portal/DimensionTransition$PostDimensionTransition;)Lnet/minecraft/world/level/portal/DimensionTransition; 11 - accessible method net/minecraft/world/level/levelgen/structure/Structure findGenerationPoint (Lnet/minecraft/world/level/levelgen/structure/Structure$GenerationContext;)Ljava/util/Optional; 11 + accessible method net/minecraft/world/level/levelgen/structure/Structure findGenerationPoint (Lnet/minecraft/world/level/levelgen/structure/Structure$GenerationContext;)Ljava/util/Optional; 12 + accessible method net/minecraft/client/gui/screens/Screen addRenderableWidget (Lnet/minecraft/client/gui/components/events/GuiEventListener;)Lnet/minecraft/client/gui/components/events/GuiEventListener;
-1
src/main/resources/infinity-forge.mixins.json
··· 69 69 ], 70 70 "client": [ 71 71 "SoundListMixin", 72 - "core.ScreenMixin", 73 72 "iridescence.LivingEntityRendererMixin", 74 73 "iridescence.PostEffectProcessorMixin", 75 74 "options.BackgroundRendererMixin",
-1
src/main/resources/infinity.mixins.json
··· 68 68 ], 69 69 "client": [ 70 70 "SoundListMixin", 71 - "core.ScreenMixin", 72 71 "iridescence.LivingEntityRendererMixin", 73 72 "iridescence.PostEffectProcessorMixin", 74 73 "options.BackgroundRendererMixin",
+3
versions/1.20.1-forge/src/main/resources/META-INF/accesstransformer.cfg
··· 6 6 7 7 public net.minecraft.world.level.block.NetherPortalBlock 8 8 public net.minecraft.world.level.levelgen.structure.Structure 9 + 10 + public net.minecraft.client.gui.screens.Screen m_142416_(Lnet/minecraft/client/gui/components/events/GuiEventListener;)Lnet/minecraft/client/gui/components/events/GuiEventListener; # addRenderableWidget 11 + public net.minecraft.client.gui.screens.worldselection.CreateWorldScreen m_142416_(Lnet/minecraft/client/gui/components/events/GuiEventListener;)Lnet/minecraft/client/gui/components/events/GuiEventListener; # addRenderableWidget
+4 -1
versions/1.21.1-neoforge/src/main/resources/META-INF/accesstransformer.cfg
··· 9 9 public net.minecraft.world.level.block.NetherPortalBlock 10 10 public net.minecraft.world.level.levelgen.structure.Structure 11 11 public net.minecraft.world.level.block.NetherPortalBlock getDimensionTransitionFromExit(Lnet/minecraft/world/entity/Entity;Lnet/minecraft/core/BlockPos;Lnet/minecraft/BlockUtil$FoundRectangle;Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/world/level/portal/DimensionTransition$PostDimensionTransition;)Lnet/minecraft/world/level/portal/DimensionTransition; 12 - public net.minecraft.world.level.levelgen.structure.Structure findGenerationPoint(Lnet/minecraft/world/level/levelgen/structure/Structure$GenerationContext;)Ljava/util/Optional; 12 + public net.minecraft.world.level.levelgen.structure.Structure findGenerationPoint(Lnet/minecraft/world/level/levelgen/structure/Structure$GenerationContext;)Ljava/util/Optional; 13 + 14 + public net.minecraft.client.gui.screens.worldselection.CreateWorldScreen addRenderableWidget(Lnet/minecraft/client/gui/components/events/GuiEventListener;)Lnet/minecraft/client/gui/components/events/GuiEventListener; # addRenderableWidget 15 + public net.minecraft.client.gui.screens.Screen addRenderableWidget(Lnet/minecraft/client/gui/components/events/GuiEventListener;)Lnet/minecraft/client/gui/components/events/GuiEventListener; # addRenderableWidget
+3 -1
versions/1.21.10-neoforge/src/main/resources/META-INF/accesstransformer.cfg
··· 10 10 public net.minecraft.world.level.levelgen.structure.Structure 11 11 public net.minecraft.world.level.block.NetherPortalBlock getDimensionTransitionFromExit(Lnet/minecraft/world/entity/Entity;Lnet/minecraft/core/BlockPos;Lnet/minecraft/BlockUtil$FoundRectangle;Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/world/level/portal/TeleportTransition$PostTeleportTransition;)Lnet/minecraft/world/level/portal/TeleportTransition; # getDimensionTransitionFromExit 12 12 public net.minecraft.world.level.levelgen.structure.Structure findGenerationPoint(Lnet/minecraft/world/level/levelgen/structure/Structure$GenerationContext;)Ljava/util/Optional; 13 - public net.minecraft.core.MappedRegistry$TagSet 13 + public net.minecraft.core.MappedRegistry$TagSet 14 + 15 + public net.minecraft.client.gui.screens.Screen addRenderableWidget(Lnet/minecraft/client/gui/components/events/GuiEventListener;)Lnet/minecraft/client/gui/components/events/GuiEventListener; # addRenderableWidget
+3 -1
versions/1.21.8-neoforge/src/main/resources/META-INF/accesstransformer.cfg
··· 10 10 public net.minecraft.world.level.levelgen.structure.Structure 11 11 public net.minecraft.world.level.block.NetherPortalBlock getDimensionTransitionFromExit(Lnet/minecraft/world/entity/Entity;Lnet/minecraft/core/BlockPos;Lnet/minecraft/BlockUtil$FoundRectangle;Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/world/level/portal/TeleportTransition$PostTeleportTransition;)Lnet/minecraft/world/level/portal/TeleportTransition; # getDimensionTransitionFromExit 12 12 public net.minecraft.world.level.levelgen.structure.Structure findGenerationPoint(Lnet/minecraft/world/level/levelgen/structure/Structure$GenerationContext;)Ljava/util/Optional; 13 - public net.minecraft.core.MappedRegistry$TagSet 13 + public net.minecraft.core.MappedRegistry$TagSet 14 + 15 + public net.minecraft.client.gui.screens.Screen addRenderableWidget(Lnet/minecraft/client/gui/components/events/GuiEventListener;)Lnet/minecraft/client/gui/components/events/GuiEventListener; # addRenderableWidget