当前位置: 首页>>代码示例>>Java>>正文


Java Biome类代码示例

本文整理汇总了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);
}
 
开发者ID:Rsplwe,项目名称:Nukkit-Java9,代码行数:17,代码来源:Normal.java

示例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]);
            }
        }
    }
}
 
开发者ID:Rsplwe,项目名称:Nukkit-Java9,代码行数:20,代码来源:Flat.java

示例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;
}
 
开发者ID:FrontierDevs,项目名称:Jenisys3,代码行数:25,代码来源:BiomeSelector.java

示例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;
}
 
开发者ID:TheSolidCrafter,项目名称:ASkyBlock-Nukkit,代码行数:26,代码来源:Panel.java

示例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
            }
        }
    }
}
 
开发者ID:TheSolidCrafter,项目名称:ASkyBlock-Nukkit,代码行数:19,代码来源:SkyBlockGenerator.java

示例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);
                    }
                }
            }
        }
    }
}
 
开发者ID:IntellectualSites,项目名称:PlotSquared,代码行数:21,代码来源:NukkitLocalQueue.java

示例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);
    }
}
 
开发者ID:Rsplwe,项目名称:Nukkit-Java9,代码行数:40,代码来源:Nether.java

示例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);
}
 
开发者ID:Rsplwe,项目名称:Nukkit-Java9,代码行数:12,代码来源:Nether.java

示例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;

}
 
开发者ID:Rsplwe,项目名称:Nukkit-Java9,代码行数:37,代码来源:PopulatorCaves.java

示例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());
                    }
                }
            }
        }
    }
}
 
开发者ID:Rsplwe,项目名称:Nukkit-Java9,代码行数:38,代码来源:PopulatorGroundCover.java

示例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);
    }
}
 
开发者ID:Rsplwe,项目名称:Nukkit-Java9,代码行数:14,代码来源:GeneratorRegisterTask.java

示例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);
        }
    }
}
 
开发者ID:Rsplwe,项目名称:Nukkit-Java9,代码行数:14,代码来源:BaseFullChunk.java

示例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;
}
 
开发者ID:FrontierDevs,项目名称:Jenisys3,代码行数:8,代码来源:BiomeSelector.java

示例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;

}
 
开发者ID:FrontierDevs,项目名称:Jenisys3,代码行数:37,代码来源:PopulatorCaves.java


注:本文中的cn.nukkit.level.generator.biome.Biome类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。