tangled
alpha
login
or
join now
codexarchonic.nekoweb.org
/
ProjectInfinity
0
fork
atom
Inspired by 2020's April Fools' 20w14infinite Snapshot, this mod brings endless randomly generated dimensions into Minecraft.
0
fork
atom
overview
issues
6
pulls
pipelines
Further forge fixes
cassian.cc
4 months ago
72fcb64d
fbdf3bb2
+21
-53
14 changed files
expand all
collapse all
unified
split
build.forge.gradle.kts
src
main
java
net
lerariemann
infinity
access
ScreenAccess.java
mixin
core
ScreenMixin.java
fixes
WorldChunkMixin.java
qol
EditWorldScreenMixin.java
registry
core
ModEntities.java
resources
accesswideners
1.20.1.accesswidener
1.21.1.accesswidener
infinity-forge.mixins.json
infinity.mixins.json
versions
1.20.1-forge
src
main
resources
META-INF
accesstransformer.cfg
1.21.1-neoforge
src
main
resources
META-INF
accesstransformer.cfg
1.21.10-neoforge
src
main
resources
META-INF
accesstransformer.cfg
1.21.8-neoforge
src
main
resources
META-INF
accesstransformer.cfg
-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
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
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
1
-
package net.lerariemann.infinity.access;
2
2
-
3
3
-
import net.minecraft.client.gui.components.Renderable;
4
4
-
import net.minecraft.client.gui.components.events.GuiEventListener;
5
5
-
import net.minecraft.client.gui.narration.NarratableEntry;
6
6
-
7
7
-
public interface ScreenAccess {
8
8
-
<T extends GuiEventListener & Renderable & NarratableEntry> T infinity$addWidget(T widget);
9
9
-
}
-20
src/main/java/net/lerariemann/infinity/mixin/core/ScreenMixin.java
···
1
1
-
package net.lerariemann.infinity.mixin.core;
2
2
-
3
3
-
import net.lerariemann.infinity.access.ScreenAccess;
4
4
-
import net.minecraft.client.gui.components.Renderable;
5
5
-
import net.minecraft.client.gui.components.events.GuiEventListener;
6
6
-
import net.minecraft.client.gui.narration.NarratableEntry;
7
7
-
import net.minecraft.client.gui.screens.Screen;
8
8
-
import org.spongepowered.asm.mixin.Mixin;
9
9
-
import org.spongepowered.asm.mixin.Shadow;
10
10
-
11
11
-
@Mixin(Screen.class)
12
12
-
public abstract class ScreenMixin implements ScreenAccess {
13
13
-
@Shadow
14
14
-
protected abstract <T extends GuiEventListener & Renderable & NarratableEntry> T addRenderableWidget(T widget);
15
15
-
16
16
-
@Override
17
17
-
public <T extends GuiEventListener & Renderable & NarratableEntry> T infinity$addWidget(T widget) {
18
18
-
return addRenderableWidget(widget);
19
19
-
}
20
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
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
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
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
35
-
((ScreenAccess) screen).infinity$addWidget(Button.builder(Component.translatable("screen.infinity.delete_datapacks"), button -> {
34
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
24
-
/*import net.fabricmc.fabric.api.object.builder.v1.entity.FabricEntityTypeBuilder;
25
25
-
import static net.minecraft.world.entity.SpawnPlacements.Type.*;
24
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
72
-
//? if >1.21 {
73
73
-
74
71
EntityType.Builder.of(ChaosSlime::new, MobCategory.MONSTER)
75
72
.sized(0.52f, 0.52f)
76
73
.clientTrackingRange(10)
77
77
-
.build(type("chaos_slime"))
78
78
-
//?} else {
79
79
-
/*FabricEntityTypeBuilder.create(MobCategory.MONSTER, ChaosSlime::new)
80
80
-
.dimensions(EntityDimensions.scalable(0.52f, 0.52f))
81
81
-
.trackRangeBlocks(10)
82
82
-
.build()
83
83
-
*///?}
84
84
-
);
74
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
11
-
accessible method net/minecraft/world/level/levelgen/structure/Structure findGenerationPoint (Lnet/minecraft/world/level/levelgen/structure/Structure$GenerationContext;)Ljava/util/Optional;
11
11
+
accessible method net/minecraft/world/level/levelgen/structure/Structure findGenerationPoint (Lnet/minecraft/world/level/levelgen/structure/Structure$GenerationContext;)Ljava/util/Optional;
12
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
11
-
accessible method net/minecraft/world/level/levelgen/structure/Structure findGenerationPoint (Lnet/minecraft/world/level/levelgen/structure/Structure$GenerationContext;)Ljava/util/Optional;
11
11
+
accessible method net/minecraft/world/level/levelgen/structure/Structure findGenerationPoint (Lnet/minecraft/world/level/levelgen/structure/Structure$GenerationContext;)Ljava/util/Optional;
12
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
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
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
9
+
10
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
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
12
-
public net.minecraft.world.level.levelgen.structure.Structure findGenerationPoint(Lnet/minecraft/world/level/levelgen/structure/Structure$GenerationContext;)Ljava/util/Optional;
12
12
+
public net.minecraft.world.level.levelgen.structure.Structure findGenerationPoint(Lnet/minecraft/world/level/levelgen/structure/Structure$GenerationContext;)Ljava/util/Optional;
13
13
+
14
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
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
13
-
public net.minecraft.core.MappedRegistry$TagSet
13
13
+
public net.minecraft.core.MappedRegistry$TagSet
14
14
+
15
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
13
-
public net.minecraft.core.MappedRegistry$TagSet
13
13
+
public net.minecraft.core.MappedRegistry$TagSet
14
14
+
15
15
+
public net.minecraft.client.gui.screens.Screen addRenderableWidget(Lnet/minecraft/client/gui/components/events/GuiEventListener;)Lnet/minecraft/client/gui/components/events/GuiEventListener; # addRenderableWidget