initial commit
This commit is contained in:
parent
3c9ee26b06
commit
22186c33b9
1458 changed files with 282792 additions and 0 deletions
131
java/src/game/worldgen/ReplacerAltSurface.java
Executable file
131
java/src/game/worldgen/ReplacerAltSurface.java
Executable file
|
@ -0,0 +1,131 @@
|
|||
package game.worldgen;
|
||||
|
||||
import game.biome.Biome;
|
||||
import game.block.Block;
|
||||
import game.material.Material;
|
||||
import game.rng.OctaveGen;
|
||||
import game.rng.Random;
|
||||
import game.world.State;
|
||||
import game.world.WorldServer;
|
||||
|
||||
public class ReplacerAltSurface implements BlockReplacer
|
||||
{
|
||||
private final OctaveGen altNoiseGen;
|
||||
private final OctaveGen exclNoiseGen;
|
||||
|
||||
private final double[] alt2Noise = new double[256];
|
||||
private final double[] alt1Noise = new double[256];
|
||||
private final double[] exclNoise = new double[256];
|
||||
|
||||
private final State filler;
|
||||
private final State alt1;
|
||||
private final State alt2;
|
||||
private final State liquid;
|
||||
private final Block fillerBlock;
|
||||
|
||||
// public ReplacerAltSurface(Dimension dim, Random rand) {
|
||||
// this(rand, dim.getFiller(), dim.getAltFiller1(), dim.getAltFiller2(), dim.getLiquid());
|
||||
// }
|
||||
|
||||
public ReplacerAltSurface(Random rand, State filler, State alt1, State alt2, State liquid)
|
||||
{
|
||||
this.altNoiseGen = new OctaveGen(rand, 4);
|
||||
this.exclNoiseGen = new OctaveGen(rand, 4);
|
||||
this.filler = filler;
|
||||
this.alt1 = alt1;
|
||||
this.alt2 = alt2;
|
||||
this.liquid = liquid;
|
||||
this.fillerBlock = filler.getBlock();
|
||||
}
|
||||
|
||||
public void replaceBlocks(WorldServer world, int x, int z, ChunkPrimer primer, Random rand, Biome[] biomes)
|
||||
{
|
||||
int i = world.getSeaLevel() + 1;
|
||||
double d0 = 0.03125D;
|
||||
this.altNoiseGen.generate(this.alt2Noise, x * 16, z * 16, 0, 16, 16, 1, d0, d0, 1.0D);
|
||||
this.altNoiseGen.generate(this.alt1Noise, x * 16, 109, z * 16, 16, 1, 16, d0, 1.0D, d0);
|
||||
this.exclNoiseGen.generate(this.exclNoise, x * 16, z * 16, 0, 16, 16, 1, d0 * 2.0D, d0 * 2.0D, d0 * 2.0D);
|
||||
|
||||
for (int j = 0; j < 16; ++j)
|
||||
{
|
||||
for (int k = 0; k < 16; ++k)
|
||||
{
|
||||
boolean flag = this.alt2Noise[j + k * 16] + rand.doublev() * 0.2D > 0.0D;
|
||||
boolean flag1 = this.alt1Noise[j + k * 16] + rand.doublev() * 0.2D > 0.0D;
|
||||
int l = (int)(this.exclNoise[j + k * 16] / 3.0D + 3.0D + rand.doublev() * 0.25D);
|
||||
int i1 = -1;
|
||||
State iblockstate = this.filler;
|
||||
State iblockstate1 = this.filler;
|
||||
|
||||
for (int j1 = primer.height - 1; j1 >= 0; --j1)
|
||||
{
|
||||
// if (j1 < (primer.height - 1) - rand.zrange(5) || this.ceiling == null)
|
||||
// {
|
||||
State iblockstate2 = primer.get(k, j1, j);
|
||||
|
||||
if (iblockstate2.getBlock() != null && iblockstate2.getBlock().getMaterial() != Material.air)
|
||||
{
|
||||
if (iblockstate2.getBlock() == this.fillerBlock)
|
||||
{
|
||||
if (i1 == -1)
|
||||
{
|
||||
if (l <= 0)
|
||||
{
|
||||
iblockstate = null;
|
||||
iblockstate1 = this.filler;
|
||||
}
|
||||
else if (j1 >= i - 4 && j1 <= i + 1)
|
||||
{
|
||||
iblockstate = this.filler;
|
||||
iblockstate1 = this.filler;
|
||||
|
||||
if (flag1)
|
||||
{
|
||||
iblockstate = this.alt1;
|
||||
iblockstate1 = this.filler;
|
||||
}
|
||||
|
||||
if (flag)
|
||||
{
|
||||
iblockstate = this.alt2;
|
||||
iblockstate1 = this.alt2;
|
||||
}
|
||||
}
|
||||
|
||||
if (j1 < i && (iblockstate == null || iblockstate.getBlock().getMaterial() == Material.air))
|
||||
{
|
||||
iblockstate = this.liquid;
|
||||
}
|
||||
|
||||
i1 = l;
|
||||
|
||||
if (j1 >= i - 1)
|
||||
{
|
||||
primer.set(k, j1, j, iblockstate);
|
||||
}
|
||||
else
|
||||
{
|
||||
primer.set(k, j1, j, iblockstate1);
|
||||
}
|
||||
}
|
||||
else if (i1 > 0)
|
||||
{
|
||||
--i1;
|
||||
primer.set(k, j1, j, iblockstate1);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
i1 = -1;
|
||||
}
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// primer.set(k, j1, j, this.ceiling);
|
||||
// }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue