Do you still remember the time when worlds in minecraft used to have nice looking sand borders around the islands, those magnificent flat areas covered with sand where everyone used to spawn on? My first house back in 2011 was build on one of these beaches and since beta 1.8 came out they're gone!
There were many people upset after this update but for some reason Mojang just never heard us.
But I'm not going to talk about the story much, here is the thread instead:
Here is the thing. As I remember Jeb explained his unwillingness to bring back the beaches by the fact that he should've rewrite the entire worldgen code.
I've made an experiment and now it's a mod that will respond to your nostalgia. A NON-FORGE MOD! By that I mean that I edit the pure code the way the Mojang does.
Here is the whole code:
public void replaceBiomeBlocks(int x, int z, ChunkPrimer primer, Biome[] biomesIn)
{
byte byte0 = 63;
double d = 0.03125D;
sandNoise = field_909_n.generateNoiseOctaves(sandNoise, x * 16, z * 16, 0.0D, 16, 16, 1, d, d, 1.0D);
gravelNoise = field_909_n.generateNoiseOctaves(gravelNoise, x * 16, 109.0134D, z * 16, 16, 1, 16, d, 1.0D, d);
stoneNoise = field_908_o.generateNoiseOctaves(stoneNoise, x * 16, z * 16, 0.0D, 16, 16, 1, d * 2D, d * 2D, d * 2D);
for(int k = 0; k < 16; k++)
{
for(int l = 0; l < 16; l++)
{
Biome biomegenbase = biomesIn[k + l * 16];
boolean flag = sandNoise[k + l * 16] + rand.nextDouble() * 0.20000000000000001D > 0.0D;
boolean flag1 = gravelNoise[k + l * 16] + rand.nextDouble() * 0.20000000000000001D > 3D;
int i1 = (int)(stoneNoise[k + l * 16] / 3D + 3D + rand.nextDouble() * 0.25D);
int j1 = -1;
IBlockState byte1 = biomegenbase.topBlock;
IBlockState byte2 = biomegenbase.fillerBlock;
Do you still remember the time when worlds in minecraft used to have nice looking sand borders around the islands, those magnificent flat areas covered with sand where everyone used to spawn on? My first house back in 2011 was build on one of these beaches and since beta 1.8 came out they're gone!
There were many people upset after this update but for some reason Mojang just never heard us.
But I'm not going to talk about the story much, here is the thread instead:
http://www.minecraftforum.net/forums/minecraft-discussion/suggestions/53985-bring-back-beaches
Here is the thing. As I remember Jeb explained his unwillingness to bring back the beaches by the fact that he should've rewrite the entire worldgen code.
I've made an experiment and now it's a mod that will respond to your nostalgia. A NON-FORGE MOD! By that I mean that I edit the pure code the way the Mojang does.
public void replaceBiomeBlocks(int x, int z, ChunkPrimer primer, Biome[] biomesIn)
{
byte byte0 = 63;
double d = 0.03125D;
sandNoise = field_909_n.generateNoiseOctaves(sandNoise, x * 16, z * 16, 0.0D, 16, 16, 1, d, d, 1.0D);
gravelNoise = field_909_n.generateNoiseOctaves(gravelNoise, x * 16, 109.0134D, z * 16, 16, 1, 16, d, 1.0D, d);
stoneNoise = field_908_o.generateNoiseOctaves(stoneNoise, x * 16, z * 16, 0.0D, 16, 16, 1, d * 2D, d * 2D, d * 2D);
for(int k = 0; k < 16; k++)
{
for(int l = 0; l < 16; l++)
{
Biome biomegenbase = biomesIn[k + l * 16];
boolean flag = sandNoise[k + l * 16] + rand.nextDouble() * 0.20000000000000001D > 0.0D;
boolean flag1 = gravelNoise[k + l * 16] + rand.nextDouble() * 0.20000000000000001D > 3D;
int i1 = (int)(stoneNoise[k + l * 16] / 3D + 3D + rand.nextDouble() * 0.25D);
int j1 = -1;
IBlockState byte1 = biomegenbase.topBlock;
IBlockState byte2 = biomegenbase.fillerBlock;
for(int k1 = 255; k1 >= 0; k1--)
{
int l1 = (l * 16 + k) * 256 + k1;
if(k1 <= 0 + rand.nextInt(5))
{
primer.setBlockState(l, k1, k, BEDROCK);
}
IBlockState byte3 = primer.getBlockState(l, k1, k);
if(byte3 == AIR)
{
j1 = -1;
continue;
}
if(byte3 != STONE)
{
continue;
}
if(j1 == -1)
{
if(i1 <= 0)
{
byte1 = AIR;
byte2 = STONE;
} else
if(k1 >= byte0 - 4 && k1 <= byte0 + 1)
{
byte1 = biomegenbase.topBlock;
byte2 = biomegenbase.fillerBlock;
if(flag1)
{
byte1 = AIR;
}
if(flag1)
{
byte2 = GRAVEL;
}
if(flag)
{
byte1 = SAND;
}
if(flag)
{
byte2 = SAND;
}
}
if(k1 < byte0 && byte1 ==AIR)
{
byte1 = WATER;
}
j1 = i1;
if(k1 >= byte0 - 1)
{
primer.setBlockState(l, k1, k, byte1);
} else
{
primer.setBlockState(l, k1, k, byte2);
}
continue;
}
if(j1 <= 0)
{
continue;
}
j1--;
primer.setBlockState(l, k1, k, byte2);
if(j1 == 0 && byte2 == SAND)
{
j1 = rand.nextInt(4);
byte2 = SANDSTONE;
}
}
}
}
}
What about that, Jeb?