initial commit
This commit is contained in:
parent
3c9ee26b06
commit
22186c33b9
1458 changed files with 282792 additions and 0 deletions
163
java/src/game/worldgen/layer/GenLayerShore.java
Executable file
163
java/src/game/worldgen/layer/GenLayerShore.java
Executable file
|
@ -0,0 +1,163 @@
|
|||
package game.worldgen.layer;
|
||||
|
||||
import game.biome.Biome;
|
||||
import game.biome.BiomeJungle;
|
||||
|
||||
public class GenLayerShore extends GenLayer
|
||||
{
|
||||
public GenLayerShore(long base, GenLayer parent)
|
||||
{
|
||||
super(base);
|
||||
this.parent = parent;
|
||||
}
|
||||
|
||||
public int[] getInts(int x, int z, int width, int height)
|
||||
{
|
||||
int[] pre = this.parent.getInts(x - 1, z - 1, width + 2, height + 2);
|
||||
int[] data = IntCache.getIntCache(width * height);
|
||||
|
||||
for (int i = 0; i < height; ++i)
|
||||
{
|
||||
for (int j = 0; j < width; ++j)
|
||||
{
|
||||
this.initChunkSeed((long)(j + x), (long)(i + z));
|
||||
int id = pre[j + 1 + (i + 1) * (width + 2)];
|
||||
Biome biome = Biome.getBiome(id);
|
||||
|
||||
// if (id == Biome.mushroomPlains.id)
|
||||
// {
|
||||
// int j2 = pre[j + 1 + (i + 1 - 1) * (width + 2)];
|
||||
// int i3 = pre[j + 1 + 1 + (i + 1) * (width + 2)];
|
||||
// int l3 = pre[j + 1 - 1 + (i + 1) * (width + 2)];
|
||||
// int k4 = pre[j + 1 + (i + 1 + 1) * (width + 2)];
|
||||
//
|
||||
// if (j2 != Biome.swampland.id && i3 != Biome.swampland.id && l3 != Biome.swampland.id && k4 != Biome.swampland.id)
|
||||
// {
|
||||
// data[j + i * width] = id;
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// data[j + i * width] = Biome.mushroomPlainsEdge.id;
|
||||
// }
|
||||
// }
|
||||
// else
|
||||
if (biome != null && biome.getBiomeClass() == BiomeJungle.class)
|
||||
{
|
||||
int i2 = pre[j + 1 + (i + 1 - 1) * (width + 2)];
|
||||
int l2 = pre[j + 1 + 1 + (i + 1) * (width + 2)];
|
||||
int k3 = pre[j + 1 - 1 + (i + 1) * (width + 2)];
|
||||
int j4 = pre[j + 1 + (i + 1 + 1) * (width + 2)];
|
||||
|
||||
if (this.canNBJungle(i2) && this.canNBJungle(l2) && this.canNBJungle(k3) && this.canNBJungle(j4))
|
||||
{
|
||||
if (!isSea(i2) && !isSea(l2) && !isSea(k3) && !isSea(j4))
|
||||
{
|
||||
data[j + i * width] = id;
|
||||
}
|
||||
else
|
||||
{
|
||||
data[j + i * width] = Biome.beach.id;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
data[j + i * width] = Biome.jungleEdge.id;
|
||||
}
|
||||
}
|
||||
else if (id != Biome.extremeHills.id && id != Biome.extremeHillsPlus.id && id != Biome.extremeHillsEdge.id)
|
||||
{
|
||||
if (biome != null && biome.snowyGen)
|
||||
{
|
||||
this.putBeach(pre, data, j, i, width, id, Biome.coldBeach.id);
|
||||
}
|
||||
else // if (id != Biome.mesa.id && id != Biome.mesaPlateau_F.id)
|
||||
// {
|
||||
if (biome != null && !biome.waterGen)
|
||||
{
|
||||
int l1 = pre[j + 1 + (i + 1 - 1) * (width + 2)];
|
||||
int k2 = pre[j + 1 + 1 + (i + 1) * (width + 2)];
|
||||
int j3 = pre[j + 1 - 1 + (i + 1) * (width + 2)];
|
||||
int i4 = pre[j + 1 + (i + 1 + 1) * (width + 2)];
|
||||
|
||||
if (!isSea(l1) && !isSea(k2) && !isSea(j3) && !isSea(i4))
|
||||
{
|
||||
data[j + i * width] = id;
|
||||
}
|
||||
else
|
||||
{
|
||||
data[j + i * width] = Biome.beach.id;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
data[j + i * width] = id;
|
||||
}
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// int l = pre[j + 1 + (i + 1 - 1) * (width + 2)];
|
||||
// int i1 = pre[j + 1 + 1 + (i + 1) * (width + 2)];
|
||||
// int j1 = pre[j + 1 - 1 + (i + 1) * (width + 2)];
|
||||
// int k1 = pre[j + 1 + (i + 1 + 1) * (width + 2)];
|
||||
//
|
||||
// if (!isSea(l) && !isSea(i1) && !isSea(j1) && !isSea(k1))
|
||||
// {
|
||||
// if (this.canNBMesa(l) && this.canNBMesa(i1) && this.canNBMesa(j1) && this.canNBMesa(k1))
|
||||
// {
|
||||
// data[j + i * width] = id;
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// data[j + i * width] = Biome.desert.id;
|
||||
// }
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// data[j + i * width] = id;
|
||||
// }
|
||||
// }
|
||||
}
|
||||
else
|
||||
{
|
||||
this.putBeach(pre, data, j, i, width, id, Biome.stoneBeach.id);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
private void putBeach(int[] pre, int[] data, int x, int z, int width, int biome, int beach)
|
||||
{
|
||||
if (isSea(biome))
|
||||
{
|
||||
data[x + z * width] = biome;
|
||||
}
|
||||
else
|
||||
{
|
||||
int i = pre[x + 1 + (z + 1 - 1) * (width + 2)];
|
||||
int j = pre[x + 1 + 1 + (z + 1) * (width + 2)];
|
||||
int k = pre[x + 1 - 1 + (z + 1) * (width + 2)];
|
||||
int l = pre[x + 1 + (z + 1 + 1) * (width + 2)];
|
||||
|
||||
if (!isSea(i) && !isSea(j) && !isSea(k) && !isSea(l))
|
||||
{
|
||||
data[x + z * width] = biome;
|
||||
}
|
||||
else
|
||||
{
|
||||
data[x + z * width] = beach;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private boolean canNBJungle(int id)
|
||||
{
|
||||
return Biome.getBiome(id) != null && Biome.getBiome(id).getBiomeClass() == BiomeJungle.class ? true : id == Biome.jungleEdge.id || id == Biome.jungle.id || id == Biome.jungleHills.id || id == Biome.forest.id || id == Biome.taiga.id || isSea(id);
|
||||
}
|
||||
|
||||
// private boolean canNBMesa(int id)
|
||||
// {
|
||||
// return Biome.getBiome(id) instanceof BiomeMesa;
|
||||
// }
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue