diff --git a/src/minecraft/net/minecraft/src/ChunkProviderGenerate.java b/src/minecraft/net/minecraft/src/ChunkProviderGenerate.java index c0ba376..7117c33 100644 --- a/src/minecraft/net/minecraft/src/ChunkProviderGenerate.java +++ b/src/minecraft/net/minecraft/src/ChunkProviderGenerate.java @@ -4,6 +4,8 @@ import org.mcmodule.math.BigInteger; import java.util.List; import java.util.Random; +import static net.minecraft.src.Constants.*; + public class ChunkProviderGenerate implements IChunkProvider { /** RNG. */ @@ -140,7 +142,12 @@ public class ChunkProviderGenerate implements IChunkProvider for (int var51 = 0; var51 < 4; ++var51) { - if ((var47 += var49) > 0.0D) + if(!ENABLE_FRINGE_LAND) { + var47 += var49; + } else { + if(var51 == 0) var47 = var34; + } + if (var47 > 0.0D) { par3ArrayOfByte[var43 += var44] = (byte)Block.stone.blockID; } @@ -152,6 +159,9 @@ public class ChunkProviderGenerate implements IChunkProvider { par3ArrayOfByte[var43 += var44] = 0; } + if(ENABLE_FRINGE_LAND) { + var47 += var49; + } } var34 += var38; diff --git a/src/minecraft/net/minecraft/src/Constants.java b/src/minecraft/net/minecraft/src/Constants.java index 81dc2a7..c08fb2e 100644 --- a/src/minecraft/net/minecraft/src/Constants.java +++ b/src/minecraft/net/minecraft/src/Constants.java @@ -1,15 +1,27 @@ package net.minecraft.src; import java.lang.reflect.Field; +import sun.misc.Unsafe; public class Constants { public static boolean DISABLE_MODULO = false, - USE_64BIT_PERLIN_GENERATOR = false; + USE_64BIT_PERLIN_GENERATOR = false, + ENABLE_FRINGE_LAND = false, + FLOAT_PERLIN_GENERATOR = false; static { + Unsafe unsafe; + try { + Field unsafeField = Unsafe.class.getDeclaredField("theUnsafe"); + unsafeField.setAccessible(true); + unsafe = (Unsafe) unsafeField.get(null); + } catch (NoSuchFieldException | SecurityException | IllegalArgumentException | IllegalAccessException e) { + throw new RuntimeException(e); + } Class cls = Constants.class; try { for(Field f : cls.getDeclaredFields()) { +// unsafe.putBoolean(cls, unsafe.fieldOffset(f), Boolean.getBoolean(cls.getName() + "." + f.getName())); f.setBoolean(null, Boolean.getBoolean(cls.getName() + "." + f.getName())); } } catch(Throwable t) { diff --git a/src/minecraft/net/minecraft/src/NoiseGeneratorPerlin.java b/src/minecraft/net/minecraft/src/NoiseGeneratorPerlin.java index bf7f486..845568f 100644 --- a/src/minecraft/net/minecraft/src/NoiseGeneratorPerlin.java +++ b/src/minecraft/net/minecraft/src/NoiseGeneratorPerlin.java @@ -2,6 +2,8 @@ package net.minecraft.src; import java.util.Random; +import static net.minecraft.src.Constants.*; + public class NoiseGeneratorPerlin extends NoiseGenerator { private int[] permutations; @@ -122,7 +124,7 @@ public class NoiseGeneratorPerlin extends NoiseGenerator var73 = this.lerp(var35, this.grad(this.permutations[var66 + 1], var31, 0.0D, var38 - 1.0D), this.grad(this.permutations[var22 + 1], var31 - 1.0D, 0.0D, var38 - 1.0D)); double var79 = this.lerp(var42, var70, var73); var10001 = var75++; - par1ArrayOfDouble[var10001] += (var79 * var77); + par1ArrayOfDouble[var10001] += FLOAT_PERLIN_GENERATOR ? (float) (var79 * var77) : var79 * var77; } } } @@ -203,7 +205,7 @@ public class NoiseGeneratorPerlin extends NoiseGenerator double var60 = this.lerp(var56, var33, var35); double var62 = this.lerp(var49, var58, var60); var10001 = var19++; - par1ArrayOfDouble[var10001] += (var62 * var20); + par1ArrayOfDouble[var10001] += FLOAT_PERLIN_GENERATOR ? (float) (var62 * var20) : var62 * var20; } } } diff --git a/src/minecraft/net/minecraft/src/NoiseGeneratorPerlin64.java b/src/minecraft/net/minecraft/src/NoiseGeneratorPerlin64.java index e368ea4..a55b320 100644 --- a/src/minecraft/net/minecraft/src/NoiseGeneratorPerlin64.java +++ b/src/minecraft/net/minecraft/src/NoiseGeneratorPerlin64.java @@ -2,6 +2,8 @@ package net.minecraft.src; import java.util.Random; +import static net.minecraft.src.Constants.*; + public class NoiseGeneratorPerlin64 extends NoiseGenerator { private int[] permutations; @@ -122,7 +124,7 @@ public class NoiseGeneratorPerlin64 extends NoiseGenerator var73 = this.lerp(var35, this.grad(this.permutations[var66 + 1], var31, 0.0D, var38 - 1.0D), this.grad(this.permutations[var22 + 1], var31 - 1.0D, 0.0D, var38 - 1.0D)); double var79 = this.lerp(var42, var70, var73); var10001 = var75++; - par1ArrayOfDouble[var10001] += (var79 * var77); + par1ArrayOfDouble[var10001] += FLOAT_PERLIN_GENERATOR ? (float) (var79 * var77) : var79 * var77; } } } @@ -203,7 +205,7 @@ public class NoiseGeneratorPerlin64 extends NoiseGenerator double var60 = this.lerp(var56, var33, var35); double var62 = this.lerp(var49, var58, var60); var10001 = var19++; - par1ArrayOfDouble[var10001] += (var62 * var20); + par1ArrayOfDouble[var10001] += FLOAT_PERLIN_GENERATOR ? (float) (var62 * var20) : var62 * var20; } } }