yes
parent
def0540622
commit
f42231f1a4
|
@ -5,6 +5,7 @@ import com.github.halotroop.litecraft.types.block.Block.Properties;
|
||||||
public final class Blocks
|
public final class Blocks
|
||||||
{
|
{
|
||||||
public static final Block AIR = new Block(new Properties("air").visible(false));
|
public static final Block AIR = new Block(new Properties("air").visible(false));
|
||||||
|
public static final Block GRASS = new Block(new Properties("block/cubes/soil/grass/grass_top.png").canCaveCarve(true));
|
||||||
public static final Block DIRT = new Block("block/cubes/soil/dirt.png", new Properties("dirt").canCaveCarve(true));
|
public static final Block DIRT = new Block("block/cubes/soil/dirt.png", new Properties("dirt").canCaveCarve(true));
|
||||||
public static final Block ANDESITE = new Block("block/cubes/stone/basic/andesite.png", new Properties("andesite").canCaveCarve(true));
|
public static final Block ANDESITE = new Block("block/cubes/stone/basic/andesite.png", new Properties("andesite").canCaveCarve(true));
|
||||||
public static final Block DIORITE = new Block("block/cubes/stone/basic/diorite.png", new Properties("diorite").canCaveCarve(true));
|
public static final Block DIORITE = new Block("block/cubes/stone/basic/diorite.png", new Properties("diorite").canCaveCarve(true));
|
||||||
|
|
|
@ -22,6 +22,7 @@ public class CavesModifier implements WorldModifier, WorldGenConstants
|
||||||
@Override
|
@Override
|
||||||
public void modifyWorld(BlockAccess world, Random rand, int chunkStartX, int chunkStartY, int chunkStartZ)
|
public void modifyWorld(BlockAccess world, Random rand, int chunkStartX, int chunkStartY, int chunkStartZ)
|
||||||
{
|
{
|
||||||
|
for (int i = 0; i < 8; ++i) world.setBlock(chunkStartX + i, chunkStartY + i, chunkStartZ + i, Blocks.DIORITE);
|
||||||
final int subChunks = CHUNK_SIZE >> 2; // in 4x4x4 blocks
|
final int subChunks = CHUNK_SIZE >> 2; // in 4x4x4 blocks
|
||||||
|
|
||||||
for (int subChunkX = 0; subChunkX < subChunks; subChunkX++)
|
for (int subChunkX = 0; subChunkX < subChunks; subChunkX++)
|
||||||
|
@ -37,14 +38,14 @@ public class CavesModifier implements WorldModifier, WorldGenConstants
|
||||||
int scOffsetY = subChunkY << 2; // sub chunk offset y
|
int scOffsetY = subChunkY << 2; // sub chunk offset y
|
||||||
int scTotalY = scOffsetY + chunkStartY;
|
int scTotalY = scOffsetY + chunkStartY;
|
||||||
// calculate noise at each corner of the cube [lower|upper][south|north][west|east]
|
// calculate noise at each corner of the cube [lower|upper][south|north][west|east]
|
||||||
double noiseLSW = this.caveNoise.sample(subChunkX, subChunkY, subChunkZ); // base = lower south west
|
double noiseLSW = this.caveNoise.sample(scTotalX, scTotalY, scTotalZ); // base = lower south west
|
||||||
double noiseUSW = this.caveNoise.sample(subChunkX, subChunkY + 1, subChunkZ);
|
double noiseUSW = this.caveNoise.sample(scTotalX, scTotalY + 4, scTotalZ);
|
||||||
double noiseLNW = this.caveNoise.sample(subChunkX, subChunkY, subChunkZ + 1);
|
double noiseLNW = this.caveNoise.sample(scTotalX, scTotalY, scTotalZ + 4);
|
||||||
double noiseUNW = this.caveNoise.sample(subChunkX, subChunkY + 1, subChunkZ + 1);
|
double noiseUNW = this.caveNoise.sample(scTotalX, scTotalY + 4, scTotalZ + 4);
|
||||||
double noiseLSE = this.caveNoise.sample(subChunkX + 1, subChunkY, subChunkZ);
|
double noiseLSE = this.caveNoise.sample(scTotalX + 4, scTotalY, scTotalZ);
|
||||||
double noiseUSE = this.caveNoise.sample(subChunkX + 1, subChunkY + 1, subChunkZ);
|
double noiseUSE = this.caveNoise.sample(scTotalX + 4, scTotalY + 4, scTotalZ);
|
||||||
double noiseLNE = this.caveNoise.sample(subChunkX + 1, subChunkY, subChunkZ + 1);
|
double noiseLNE = this.caveNoise.sample(scTotalX + 4, scTotalY, scTotalZ + 4);
|
||||||
double noiseUNE = this.caveNoise.sample(subChunkX + 1, subChunkY + 1, subChunkZ + 1);
|
double noiseUNE = this.caveNoise.sample(scTotalX + 4, scTotalY + 4, scTotalZ + 4);
|
||||||
// calculate y lerp progresses
|
// calculate y lerp progresses
|
||||||
// lerp = low + progress * (high - low)
|
// lerp = low + progress * (high - low)
|
||||||
double ypSW = 0.25 * (noiseUSW - noiseLSW);
|
double ypSW = 0.25 * (noiseUSW - noiseLSW);
|
||||||
|
|
|
@ -40,6 +40,8 @@ public class EarthChunkGenerator implements ChunkGenerator, WorldGenConstants
|
||||||
block = pickStone(rockNoise);
|
block = pickStone(rockNoise);
|
||||||
else if (totalY < height)
|
else if (totalY < height)
|
||||||
block = Blocks.DIRT;
|
block = Blocks.DIRT;
|
||||||
|
else if (totalY == height)
|
||||||
|
block = Blocks.GRASS;
|
||||||
chunk.setBlock(x, y, z, block);
|
chunk.setBlock(x, y, z, block);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue