本文整理汇总了Java中cn.nukkit.level.generator.biome.Biome类的典型用法代码示例。如果您正苦于以下问题:Java Biome类的具体用法?Java Biome怎么用?Java Biome使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
Biome类属于cn.nukkit.level.generator.biome包,在下文中一共展示了Biome类的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: pickBiome
import cn.nukkit.level.generator.biome.Biome; //导入依赖的package包/类
public Biome pickBiome(int x, int z) {
long hash = x * 2345803 ^ z * 9236449 ^ this.level.getSeed();
hash *= hash + 223;
long xNoise = hash >> 20 & 3;
long zNoise = hash >> 22 & 3;
if (xNoise == 3) {
xNoise = 1;
}
if (zNoise == 3) {
zNoise = 1;
}
return this.selector.pickBiome(x + xNoise - 1, z + zNoise - 1);
}
示例2: generateChunk
import cn.nukkit.level.generator.biome.Biome; //导入依赖的package包/类
private void generateChunk(FullChunk chunk) {
chunk.setGenerated();
int c = Biome.getBiome(biome).getColor();
int R = c >> 16;
int G = (c >> 8) & 0xff;
int B = c & 0xff;
for (int Z = 0; Z < 16; ++Z) {
for (int X = 0; X < 16; ++X) {
chunk.setBiomeId(X, Z, biome);
chunk.setBiomeColor(X, Z, R, G, B);
for (int y = 0; y < 256; ++y) {
int k = this.structure[y][0];
int l = this.structure[y][1];
chunk.setBlock(X, y, Z, this.structure[y][0], this.structure[y][1]);
}
}
}
}
示例3: lookup
import cn.nukkit.level.generator.biome.Biome; //导入依赖的package包/类
public int lookup(double temperature, double rainfall) {
if (rainfall < 0.25) {
return Biome.SWAMP;
} else if (rainfall < 0.60) {
if (temperature < 0.25) {
return Biome.ICE_PLAINS;
} else if (temperature < 0.75) {
return Biome.DESERT;
} else {
return Biome.SAVANNA;
}
} else if (rainfall < 0.80) {
if (temperature < 0.25) {
return Biome.TAIGA;
} else {
return Biome.FOREST;
}
} else {
if (rainfall < 1.0) {
return Biome.JUNGLE;
}
}
return Biome.PLAINS;
}
示例4: getBiomes
import cn.nukkit.level.generator.biome.Biome; //导入依赖的package包/类
private ArrayList<String> getBiomes() {
ArrayList<String> mojangFace = new ArrayList<>();
mojangFace.add(Biome.getBiome(OCEAN).getName());
mojangFace.add(Biome.getBiome(PLAINS).getName());
mojangFace.add(Biome.getBiome(DESERT).getName());
mojangFace.add(Biome.getBiome(MOUNTAINS).getName());
mojangFace.add(Biome.getBiome(FOREST).getName());
mojangFace.add(Biome.getBiome(TAIGA).getName());
mojangFace.add(Biome.getBiome(SWAMP).getName());
mojangFace.add(Biome.getBiome(RIVER).getName());
mojangFace.add(Biome.getBiome(ICE_PLAINS).getName());
mojangFace.add(Biome.getBiome(SMALL_MOUNTAINS).getName());
mojangFace.add(Biome.getBiome(BIRCH_FOREST).getName());
mojangFace.add(Biome.getBiome(JUNGLE).getName());
mojangFace.add(Biome.getBiome(ROOFED_FOREST).getName());
mojangFace.add(Biome.getBiome(ROOFED_FOREST_M).getName());
mojangFace.add(Biome.getBiome(MUSHROOM_ISLAND).getName());
mojangFace.add(Biome.getBiome(SAVANNA).getName());
mojangFace.add(Biome.getBiome(BEACH).getName());
return mojangFace;
}
示例5: generateChunk
import cn.nukkit.level.generator.biome.Biome; //导入依赖的package包/类
@Override
public void generateChunk(int chunkX, int chunkZ) {
BaseFullChunk chunk = level.getChunk(chunkX, chunkZ);
for (int x = 0; x < 16; x++) {
for (int z = 0; z < 16; z++) {
chunk.setBiomeId(x, z, Biome.PLAINS);
}
}
// making island in this section has been removed
for (int x = 0; x < 16; x++) {
for (int z = 0; z < 16; z++) {
for (int y = 0; y < Settings.seaLevel; y++) {
chunk.setBlock(x, y, z, Block.STILL_WATER); // Water Allows stuff
// to fall through into oblivion, thus keeping lag to a minimum
}
}
}
}
示例6: setBiomes
import cn.nukkit.level.generator.biome.Biome; //导入依赖的package包/类
public void setBiomes(LocalChunk<T> lc) {
if (lc.biomes != null) {
int bx = lc.getX() << 4;
int bz = lc.getX() << 4;
String last = null;
int biome = -1;
for (int x = 0; x < lc.biomes.length; x++) {
String[] biomes2 = lc.biomes[x];
if (biomes2 != null) {
for (int y = 0; y < biomes2.length; y++) {
String biomeStr = biomes2[y];
if (biomeStr != null) {
biome = Biome.getBiome(biomeStr.toUpperCase()).getId();
level.setBiomeId(bx + x, bz + y, biome);
}
}
}
}
}
}
示例7: generateChunk
import cn.nukkit.level.generator.biome.Biome; //导入依赖的package包/类
@Override
public void generateChunk(int chunkX, int chunkZ) {
this.nukkitRandom.setSeed(chunkX * localSeed1 ^ chunkZ * localSeed2 ^ this.level.getSeed());
double[][][] noise = Generator.getFastNoise3D(this.noiseBase, 16, 128, 16, 4, 8, 4, chunkX * 16, 0, chunkZ * 16);
FullChunk chunk = this.level.getChunk(chunkX, chunkZ);
for (int x = 0; x < 16; ++x) {
for (int z = 0; z < 16; ++z) {
Biome biome = Biome.getBiome(Biome.HELL);
chunk.setBiomeId(x, z, Biome.HELL);
int biomecolor = biome.getColor();
chunk.setBiomeColor(x, z, (biomecolor >> 16), (biomecolor >> 8) & 0xff, (biomecolor & 0xff));
chunk.setBlockId(x, 0, z, Block.BEDROCK);
chunk.setBlockId(x, 127, z, Block.BEDROCK);
for (int y = 1; y <= bedrockDepth; y++) {
if (nukkitRandom.nextRange(1, 5) == 1) {
chunk.setBlockId(x, y, z, Block.BEDROCK);
chunk.setBlockId(x, 127 - y, z, Block.BEDROCK);
}
}
for (int y = 1; y < 127; ++y) {
double noiseValue = (Math.abs(this.emptyHeight - y) / this.emptyHeight) * this.emptyAmplitude - noise[x][z][y];
noiseValue -= 1 - this.density;
if (noiseValue > 0) {
chunk.setBlockId(x, y, z, Block.NETHERRACK);
} else if (y <= this.waterHeight) {
chunk.setBlockId(x, y, z, Block.STILL_LAVA);
chunk.setBlockLight(x, y + 1, z, 15);
}
}
}
}
for (Populator populator : this.generationPopulators) {
populator.populate(this.level, chunkX, chunkZ, this.nukkitRandom);
}
}
示例8: populateChunk
import cn.nukkit.level.generator.biome.Biome; //导入依赖的package包/类
@Override
public void populateChunk(int chunkX, int chunkZ) {
this.nukkitRandom.setSeed(0xdeadbeef ^ (chunkX << 8) ^ chunkZ ^ this.level.getSeed());
for (Populator populator : this.populators) {
populator.populate(this.level, chunkX, chunkZ, this.nukkitRandom);
}
FullChunk chunk = this.level.getChunk(chunkX, chunkZ);
Biome biome = Biome.getBiome(chunk.getBiomeId(7, 7));
biome.populateChunk(this.level, chunkX, chunkZ, this.nukkitRandom);
}
示例9: isSuitableBlock
import cn.nukkit.level.generator.biome.Biome; //导入依赖的package包/类
protected boolean isSuitableBlock(int block, int blockAbove, Biome biome) {
if (!(biome instanceof CaveBiome)) {
return false;
}
CaveBiome caveBiome = (CaveBiome) biome;
if (block == caveBiome.getStoneBlock()) {
return true;
}
if (block == Block.SAND || block == Block.GRAVEL) {
return !(blockAbove == Block.WATER || blockAbove == Block.STILL_WATER || blockAbove == Block.LAVA || blockAbove == Block.STILL_LAVA);
}
if (block == caveBiome.getGroundBlock()) {
return true;
}
if (block == caveBiome.getSurfaceBlock()) {
return true;
}
// Few hardcoded cases
if (block == Block.TERRACOTTA) {
return true;
}
if (block == Block.SANDSTONE) {
return true;
}
// TODO: add red sandstone case in Minecraft 1.8
return block == Block.SNOW;
}
示例10: populate
import cn.nukkit.level.generator.biome.Biome; //导入依赖的package包/类
@Override
public void populate(ChunkManager level, int chunkX, int chunkZ, NukkitRandom random) {
FullChunk chunk = level.getChunk(chunkX, chunkZ);
for (int x = 0; x < 16; ++x) {
for (int z = 0; z < 16; ++z) {
Biome biome = Biome.getBiome(chunk.getBiomeId(x, z));
Block[] cover = biome.getGroundCover();
if (cover != null && cover.length > 0) {
int diffY = 0;
if (!cover[0].isSolid()) {
diffY = 1;
}
byte[] column = chunk.getBlockIdColumn(x, z);
int y;
for (y = 127; y > 0; --y) {
if (column[y] != 0x00 && !Block.get(column[y] & 0xff).isTransparent()) {
break;
}
}
int startY = Math.min(127, y + diffY);
int endY = startY - cover.length;
for (y = startY; y > endY && y >= 0; --y) {
Block b = cover[startY - y];
if (column[y] == 0x00 && b.isSolid()) {
break;
}
if (b.getDamage() == 0) {
chunk.setBlockId(x, y, z, b.getId());
} else {
chunk.setBlock(x, y, z, b.getId(), b.getDamage());
}
}
}
}
}
}
示例11: onRun
import cn.nukkit.level.generator.biome.Biome; //导入依赖的package包/类
@Override
public void onRun() {
Block.init();
Biome.init();
SimpleChunkManager manager = new SimpleChunkManager(this.seed);
try {
Generator generator = this.generator.getConstructor(Map.class).newInstance(this.settings);
generator.init(manager, new NukkitRandom(manager.getSeed()));
GeneratorPool.put(this.levelId, generator);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
示例12: checkOldBiomes
import cn.nukkit.level.generator.biome.Biome; //导入依赖的package包/类
protected void checkOldBiomes(byte[] data) {
if (data.length != 256) {
return;
}
for (int x = 0; x < 16; ++x) {
for (int z = 0; z < 16; ++z) {
Biome biome = Biome.getBiome(data[(z << 4) | x] & 0xff);
this.setBiomeId(x, z, biome.getId());
int c = biome.getColor();
this.setBiomeColor(x, z, c >> 16, (c >> 8) & 0xff, c & 0xff);
}
}
}
示例13: pickBiome
import cn.nukkit.level.generator.biome.Biome; //导入依赖的package包/类
public Biome pickBiome(double x, double z) {
int temperature = (int) (this.getTemperature(x, z) * 63);
int rainfall = (int) (this.getRainfall(x, z) * 63);
int biomeId = this.map[temperature + (rainfall << 6)];
return this.biomes.containsKey(biomeId) ? this.biomes.get(biomeId) : this.fallback;
}
示例14: isSuitableBlock
import cn.nukkit.level.generator.biome.Biome; //导入依赖的package包/类
protected boolean isSuitableBlock(int block, int blockAbove, Biome biome) {
if (!(biome instanceof CaveBiome)) {
return false;
}
CaveBiome caveBiome = (CaveBiome) biome;
if (block == caveBiome.getStoneBlock()) {
return true;
}
if (block == Block.SAND || block == Block.GRAVEL) {
return !(blockAbove == Block.WATER || blockAbove == Block.STILL_WATER || blockAbove == Block.LAVA || blockAbove == Block.STILL_LAVA);
}
if (block == caveBiome.getGroundBlock()) {
return true;
}
if (block == caveBiome.getSurfaceBlock()) {
return true;
}
// Few hardcoded cases
if (block == Block.HARDENED_CLAY) {
return true;
}
if (block == Block.SANDSTONE) {
return true;
}
// TODO: add red sandstone case in Minecraft 1.8
return block == Block.SNOW;
}