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


Java World.isChunkLoaded方法代码示例

本文整理汇总了Java中org.bukkit.World.isChunkLoaded方法的典型用法代码示例。如果您正苦于以下问题:Java World.isChunkLoaded方法的具体用法?Java World.isChunkLoaded怎么用?Java World.isChunkLoaded使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.bukkit.World的用法示例。


在下文中一共展示了World.isChunkLoaded方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: forEveryoneAround

import org.bukkit.World; //导入方法依赖的package包/类
private void forEveryoneAround(Location center, double radius, Consumer<Player> action) {
    int chunkRadius = (int) Math.ceil(radius) >> 4;
    double squared = radius * radius;
    final int x = center.getBlockX() >> 4;
    final int z = center.getBlockZ() >> 4;

    int ix = x - chunkRadius;
    int ex = x + chunkRadius;

    int iz = z - chunkRadius;
    int ez = z + chunkRadius;

    final World world = center.getWorld();
    for (int chX = ix; chX <= ex; chX++) {
        for (int chZ = iz; chZ <= ez; chZ++) {
            if(world.isChunkLoaded(chX, chZ)) {
                for (Entity e : world.getChunkAt(chX, chZ).getEntities()) {
                    if (e instanceof Player && e.getLocation().distanceSquared(center) <= squared) {
                        action.accept((Player) e);
                    }
                }
            }
        }
    }
}
 
开发者ID:upperlevel,项目名称:uppercore,代码行数:26,代码来源:ParticlePacket.java

示例2: getEntities

import org.bukkit.World; //导入方法依赖的package包/类
public static List<Entity> getEntities(Location location, double radius) {
    List<Entity> entities = new ArrayList<Entity>();
    World world = location.getWorld();

    // Find chunck by coordinates
    int smallX = MathHelper.floor((location.getX() - radius) / 16.0D);
    int bigX = MathHelper.floor((location.getX() + radius) / 16.0D);
    int smallZ = MathHelper.floor((location.getZ() - radius) / 16.0D);
    int bigZ = MathHelper.floor((location.getZ() + radius) / 16.0D);

    for (int x = smallX; x <= bigX; x++) 
    	for (int z = smallZ; z <= bigZ; z++) 
    		if (world.isChunkLoaded(x, z)) entities.addAll(Arrays.asList(world.getChunkAt(x, z).getEntities()));

    Iterator<Entity> entityIterator = entities.iterator();
    while (entityIterator.hasNext()) 
    	if (entityIterator.next().getLocation().distanceSquared(location) > radius * radius) entityIterator.remove(); 
    
    return entities;
}
 
开发者ID:EpticMC,项目名称:Mob-AI,代码行数:21,代码来源:CommandHandler.java

示例3: forEveryPlayerAroundManual

import org.bukkit.World; //导入方法依赖的package包/类
private static void forEveryPlayerAroundManual(Player viewer, Location loc, double radius, Consumer<Player> callback) {
    World world = loc.getWorld();
    double minX = loc.getX() - radius;
    double minY = loc.getY() - radius;
    double minZ = loc.getZ() - radius;
    double maxX = loc.getX() + radius;
    double maxY = loc.getY() + radius;
    double maxZ = loc.getZ() + radius;

    int chMinX = (int) Math.floor(minX - 2.0) >> 4;
    int chMaxX = (int) Math.floor(maxX + 2.0) >> 4;
    int chMinZ = (int) Math.floor(minZ - 2.0) >> 4;
    int chMaxZ = (int) Math.floor(maxZ + 2.0) >> 4;

    Object bb = BoundingBoxNms.toNms(minX, minY, minZ, maxX, maxY, maxZ);

    for (int chX = chMinX; chX <= chMaxX; chX++) {
        for (int chZ = chMinZ; chZ <= chMaxZ; chZ++) {
            if (world.isChunkLoaded(chX, chZ)) {
                for (Entity t : world.getChunkAt(chX, chZ).getEntities()) {
                    if (t instanceof Player && viewer != t) {
                        if (BoundingBoxNms.intersect(bb, EntityNms.getBoundingBox(t))) {
                            callback.accept((Player) t);
                        }
                    }
                }
            }
        }
    }
}
 
开发者ID:upperlevel,项目名称:uppercore,代码行数:31,代码来源:PlayerUtil.java

示例4: getBlock

import org.bukkit.World; //导入方法依赖的package包/类
private Block getBlock(World world, int x, int y, int z)
{
    int cx = x >> 4;
    int cz = z >> 4;

    if ((!world.isChunkLoaded(cx, cz)) && (!world.loadChunk(cx, cz, false)))
        return null;

    Chunk chunk = world.getChunkAt(cx, cz);

    if (chunk == null)
        return null;

    return chunk.getBlock(x & 0xF, y, z & 0xF);
}
 
开发者ID:SamaGames,项目名称:SurvivalAPI,代码行数:16,代码来源:OrePopulator.java

示例5: isChunkLoaded

import org.bukkit.World; //导入方法依赖的package包/类
private boolean isChunkLoaded(World world, int x, int z) {
    return world.isChunkLoaded(x, z);
}
 
开发者ID:Vrekt,项目名称:Arc-v2,代码行数:4,代码来源:ChunkPacketProcessor.java


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