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
Backport 2.4.3
cassian.cc
1 year ago
c321cb54
cfb2bfef
+8
-9
3 changed files
expand all
collapse all
unified
split
common
src
main
java
net
lerariemann
infinity
dimensions
RandomDimension.java
util
InfinityMethods.java
PlatformMethods.java
+3
-3
common/src/main/java/net/lerariemann/infinity/dimensions/RandomDimension.java
···
98
98
99
99
public void genBasics() {
100
100
type_alike = PROVIDER.randomName(random, "noise_presets");
101
101
-
min_y = 16*Math.clamp((int)Math.floor(random.nextExponential() * 2), isOverworldLike() ? -125 : -3, 0);
102
102
-
int avgHeight = Math.clamp(RandomProvider.ruleInt("avgDimensionHeight"), 64, 1024);
103
103
-
int max_y = 16*Math.clamp((int)Math.floor(random.nextGaussian(avgHeight/16.0, avgHeight/64.0)), isOverworldLike() ? 1 : 5, 125);
101
101
+
min_y = 16*MathHelper.clamp((int)Math.floor(random.nextExponential() * 2), isOverworldLike() ? -125 : -3, 0);
102
102
+
int avgHeight = MathHelper.clamp(RandomProvider.ruleInt("avgDimensionHeight"), 64, 1024);
103
103
+
int max_y = 16*MathHelper.clamp((int)Math.floor(random.nextGaussian(avgHeight/16.0, avgHeight/64.0)), isOverworldLike() ? 1 : 5, 125);
104
104
randomiseblocks = PROVIDER.roll(random, "randomise_blocks");
105
105
int sea_level_default = 63;
106
106
if (!isOverworldLike()) sea_level_default = switch(type_alike) {
+4
-2
common/src/main/java/net/lerariemann/infinity/util/InfinityMethods.java
···
21
21
import net.minecraft.util.Identifier;
22
22
import net.minecraft.util.Util;
23
23
import net.minecraft.util.math.BlockPos;
24
24
+
import net.minecraft.util.math.MathHelper;
25
25
+
import net.minecraft.util.math.noise.DoublePerlinNoiseSampler;
26
26
+
import net.minecraft.util.math.random.CheckedRandom;
24
27
import net.minecraft.util.math.random.Random;
25
28
import net.minecraft.world.BlockRenderView;
26
29
import net.minecraft.world.World;
27
30
import net.minecraft.world.WorldAccess;
28
31
29
32
import java.nio.charset.StandardCharsets;
33
33
+
import java.util.Arrays;
30
34
import java.util.concurrent.atomic.AtomicBoolean;
31
31
-
32
32
-
import static net.lerariemann.infinity.InfinityModClient.sampler;
33
35
34
36
/** Common mod methods that work identically on Fabric and NeoForge.
35
37
* @see PlatformMethods */
+1
-4
common/src/main/java/net/lerariemann/infinity/util/PlatformMethods.java
···
7
7
import net.lerariemann.infinity.block.entity.BiomeBottleBlockEntity;
8
8
import net.lerariemann.infinity.block.entity.InfinityPortalBlockEntity;
9
9
import net.lerariemann.infinity.item.StarOfLangItem;
10
10
-
import net.lerariemann.infinity.registry.core.ModComponentTypes;
11
11
-
import net.lerariemann.infinity.util.var.ColorLogic;
12
10
import net.minecraft.block.Block;
13
11
import net.minecraft.block.BlockState;
14
12
import net.minecraft.block.FluidBlock;
···
30
28
31
29
import java.nio.file.Path;
32
30
import java.util.function.Function;
33
33
-
import java.util.function.Supplier;
34
31
35
35
-
import static net.lerariemann.infinity.InfinityModClient.sampler;
32
32
+
import static net.lerariemann.infinity.util.InfinityMethods.sampler;
36
33
37
34
/**
38
35
* Methods that require different implementations to work on Fabric vs. NeoForge and thus depend on {@link dev.architectury.injectables.annotations.ExpectPlatform}.