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


Java Block.getId方法代码示例

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


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

示例1: useOn

import cn.nukkit.block.Block; //导入方法依赖的package包/类
@Override
public boolean useOn(Block block) {
    if (this.isUnbreakable() || !canReduceDamage()) {
        return true;
    }

    if (block.getToolType() == ItemTool.TYPE_PICKAXE && this.isPickaxe() ||
            block.getToolType() == ItemTool.TYPE_SHOVEL && this.isShovel() ||
            block.getToolType() == ItemTool.TYPE_AXE && this.isAxe() ||
            block.getToolType() == ItemTool.TYPE_SWORD && this.isSword() ||
            block.getToolType() == ItemTool.SHEARS && this.isShears()
            ) {
        this.meta++;
    } else if (!this.isShears() && block.getBreakTime(this) > 0) {
        this.meta += 2;
    } else if (this.isHoe()) {
        if (block.getId() == GRASS || block.getId() == DIRT) {
            this.meta++;
        }
    } else {
        this.meta++;
    }
    return true;
}
 
开发者ID:CoreXDevelopment,项目名称:CoreX,代码行数:25,代码来源:ItemTool.java

示例2: checkBlockCollision

import cn.nukkit.block.Block; //导入方法依赖的package包/类
@Override
protected void checkBlockCollision() {
    boolean portal = false;

    Block block = this.getLevelBlock();

    if (block.getId() == Block.NETHER_PORTAL) {
        portal = true;
    }

    block.onEntityCollide(this);

    if (portal) {
        inPortalTicks++;
    }
}
 
开发者ID:JupiterDevelopmentTeam,项目名称:Jupiter,代码行数:17,代码来源:Player.java

示例3: onActivate

import cn.nukkit.block.Block; //导入方法依赖的package包/类
@Override
public boolean onActivate(Level level, Player player, Block block, Block target, BlockFace face, double fx, double fy, double fz) {
    if (target.getId() == WATER || target.getId() == STILL_WATER) {
        Item potion = new ItemPotion();

        if (this.count == 1) {
            player.getInventory().setItemInHand(potion);
        } else if (this.count > 1) {
            this.count--;
            player.getInventory().setItemInHand(this);
            if (player.getInventory().canAddItem(potion)) {
                player.getInventory().addItem(potion);
            } else {
                player.getLevel().dropItem(player.add(0, 1.3, 0), potion, player.getDirectionVector().multiply(0.4));
            }
        }
    }
    return false;
}
 
开发者ID:Rsplwe,项目名称:Nukkit-Java9,代码行数:20,代码来源:ItemGlassBottle.java

示例4: checkBlockCollision

import cn.nukkit.block.Block; //导入方法依赖的package包/类
protected void checkBlockCollision() {
    Vector3 vector = new Vector3(0, 0, 0);
    boolean portal = false;

    for (Block block : this.getCollisionBlocks()) {
        if (block.getId() == Block.NETHER_PORTAL) {
            portal = true;
            continue;
        }

        block.onEntityCollide(this);
        block.addVelocityToEntity(this, vector);
    }

    if (portal) {
        inPortalTicks++;
    }

    if (vector.lengthSquared() > 0) {
        vector = vector.normalize();
        double d = 0.014d;
        this.motionX += vector.x * d;
        this.motionY += vector.y * d;
        this.motionZ += vector.z * d;
    }
}
 
开发者ID:FrontierDevs,项目名称:Jenisys3,代码行数:27,代码来源:Entity.java

示例5: checkBlockCollision

import cn.nukkit.block.Block; //导入方法依赖的package包/类
protected void checkBlockCollision() {
    Vector3 vector = new Vector3(0, 0, 0);
    boolean portal = false;

    for (Block block : this.getCollisionBlocks()) {
        if (block.getId() == Block.NETHER_PORTAL) {
            portal = true;
            continue;
        }

        block.onEntityCollide(this);
        block.addVelocityToEntity(this, vector);
    }

    if (portal) {
        inPortalTicks++;
    } else {
        this.inPortalTicks = 0;
    }

    if (vector.lengthSquared() > 0) {
        vector = vector.normalize();
        double d = 0.014d;
        this.motionX += vector.x * d;
        this.motionY += vector.y * d;
        this.motionZ += vector.z * d;
    }
}
 
开发者ID:Rsplwe,项目名称:Nukkit-Java9,代码行数:29,代码来源:Entity.java

示例6: getLineOfSight

import cn.nukkit.block.Block; //导入方法依赖的package包/类
public Block[] getLineOfSight(int maxDistance, int maxLength, Integer[] transparent) {
    if (maxDistance > 120) {
        maxDistance = 120;
    }

    if (transparent != null && transparent.length == 0) {
        transparent = null;
    }

    List<Block> blocks = new ArrayList<>();

    BlockIterator itr = new BlockIterator(this.level, this.getPosition(), this.getDirectionVector(), this.getEyeHeight(), maxDistance);

    while (itr.hasNext()) {
        Block block = itr.next();
        blocks.add(block);

        if (maxLength != 0 && blocks.size() > maxLength) {
            blocks.remove(0);
        }

        int id = block.getId();

        if (transparent == null) {
            if (id != 0) {
                break;
            }
        } else {
            if (Arrays.binarySearch(transparent, id) < 0) {
                break;
            }
        }
    }

    return blocks.stream().toArray(Block[]::new);
}
 
开发者ID:CoreXDevelopment,项目名称:CoreX,代码行数:37,代码来源:EntityLiving.java

示例7: initEntity

import cn.nukkit.block.Block; //导入方法依赖的package包/类
@Override
protected void initEntity() {
    super.initEntity();

    this.setHealth(4);
    this.setMaxHealth(4);

    this.state = 2;
    this.liveTime = this.level.rand.nextInt(3) + 1;

    if (isEffect && this.level.gameRules.getBoolean("doFireTick") && (this.server.getDifficulty() >= 2)) {
        Block block = this.getLevelBlock();
        if (block.getId() == 0 || block.getId() == Block.TALL_GRASS) {
            BlockFire fire = new BlockFire();
            fire.x = block.x;
            fire.y = block.y;
            fire.z = block.z;
            fire.level = level;
            this.getLevel().setBlock(fire, fire, true);
            if (fire.isBlockTopFacingSurfaceSolid(fire.down()) || fire.canNeighborBurn()) {

                BlockIgniteEvent e = new BlockIgniteEvent(block, null, this, BlockIgniteEvent.BlockIgniteCause.LIGHTNING);
                getServer().getPluginManager().callEvent(e);

                if (!e.isCancelled()) {
                    level.setBlock(fire, fire, true);
                    level.scheduleUpdate(fire, fire.tickRate() + level.rand.nextInt(10));
                }
            }
        }
    }
}
 
开发者ID:CoreXDevelopment,项目名称:CoreX,代码行数:33,代码来源:EntityLightning.java

示例8: TerrainParticle

import cn.nukkit.block.Block; //导入方法依赖的package包/类
public TerrainParticle(Vector3 pos, Block block) {
    super(pos, Particle.TYPE_TERRAIN, (block.getDamage() << 8) | block.getId());
}
 
开发者ID:CoreXDevelopment,项目名称:CoreX,代码行数:4,代码来源:TerrainParticle.java

示例9: onActivate

import cn.nukkit.block.Block; //导入方法依赖的package包/类
@Override
public boolean onActivate(Level level, Player player, Block block, Block target, BlockFace face, double fx, double fy, double fz) {
    if (block.getId() == AIR && (target instanceof BlockSolid)) {
        if (target.getId() == OBSIDIAN) {
            int targetX = target.getFloorX();
            int targetY = target.getFloorY();
            int targetZ = target.getFloorZ();
            int x_max = targetX;
            int x_min = targetX;
            int x;
            for (x = targetX + 1; level.getBlock(new Vector3(x, targetY, targetZ)).getId() == OBSIDIAN; x++) {
                x_max++;
            }
            for (x = targetX - 1; level.getBlock(new Vector3(x, targetY, targetZ)).getId() == OBSIDIAN; x--) {
                x_min--;
            }
            int count_x = x_max - x_min + 1;
            int z_max = targetZ;
            int z_min = targetZ;
            int z;
            for (z = targetZ + 1; level.getBlock(new Vector3(targetX, targetY, z)).getId() == OBSIDIAN; z++) {
                z_max++;
            }
            for (z = targetZ - 1; level.getBlock(new Vector3(targetX, targetY, z)).getId() == OBSIDIAN; z--) {
                z_min--;
            }
            int count_z = z_max - z_min + 1;
            int z_max_y = targetY;
            int z_min_y = targetY;
            int y;
            for (y = targetY; level.getBlock(new Vector3(targetX, y, z_max)).getId() == OBSIDIAN; y++) {
                z_max_y++;
            }
            for (y = targetY; level.getBlock(new Vector3(targetX, y, z_min)).getId() == OBSIDIAN; y++) {
                z_min_y++;
            }
            int y_max = Math.min(z_max_y, z_min_y) - 1;
            int count_y = y_max - targetY + 2;
            if ((count_x >= 4 && count_x <= 23 || count_z >= 4 && count_z <= 23) && count_y >= 5 && count_y <= 23) {
                int count_up = 0;
                for (int up_z = z_min; level.getBlock(new Vector3(targetX, y_max, up_z)).getId() == OBSIDIAN && up_z <= z_max; up_z++) {
                    count_up++;
                }
                if (count_up == count_z) {
                    for (int block_z = z_min + 1; block_z < z_max; block_z++) {
                        for (int block_y = targetY + 1; block_y < y_max; block_y++) {
                            level.setBlock(new Vector3(targetX, block_y, block_z), new BlockNetherPortal());
                        }
                    }
                    return true;
                }
            }
        }
        BlockFire fire = new BlockFire();
        fire.x = block.x;
        fire.y = block.y;
        fire.z = block.z;
        fire.level = level;

        if (fire.isBlockTopFacingSurfaceSolid(fire.down()) || fire.canNeighborBurn()) {
            BlockIgniteEvent e = new BlockIgniteEvent(block, null, player, BlockIgniteEvent.BlockIgniteCause.FLINT_AND_STEEL);
            block.getLevel().getServer().getPluginManager().callEvent(e);

            if (!e.isCancelled()) {
                level.setBlock(fire, fire, true);
                level.scheduleUpdate(fire, fire.tickRate() + level.rand.nextInt(10));
            }
            return true;
        }
        if ((player.gamemode & 0x01) == 0 && this.useOn(block)) {
            if (this.getDamage() >= this.getMaxDurability()) {
                player.getInventory().setItemInHand(new Item(Item.AIR, 0, 0));
            } else {
                this.meta++;
                player.getInventory().setItemInHand(this);
            }
        }
        return true;
    }
    return false;
}
 
开发者ID:CoreXDevelopment,项目名称:CoreX,代码行数:82,代码来源:ItemFlintSteel.java

示例10: DestroyBlockParticle

import cn.nukkit.block.Block; //导入方法依赖的package包/类
public DestroyBlockParticle(Vector3 pos, Block block) {
    super(pos.x, pos.y, pos.z);
    this.data = block.getId() | (block.getDamage() << 8);
}
 
开发者ID:Rsplwe,项目名称:Nukkit-Java9,代码行数:5,代码来源:DestroyBlockParticle.java

示例11: PunchBlockParticle

import cn.nukkit.block.Block; //导入方法依赖的package包/类
public PunchBlockParticle(Vector3 pos, Block block, BlockFace face) {
    this(pos, block.getId(), block.getDamage(), face);
}
 
开发者ID:JupiterDevelopmentTeam,项目名称:Jupiter,代码行数:4,代码来源:PunchBlockParticle.java

示例12: onUpdate

import cn.nukkit.block.Block; //导入方法依赖的package包/类
@Override
public boolean onUpdate(int currentTick) {
    if (this.closed) {
        return false;
    }

    int tickDiff = currentTick - this.lastUpdate;

    if (tickDiff <= 0 && !this.justCreated) {
        return true;
    }

    this.lastUpdate = currentTick;

    this.entityBaseTick(tickDiff);

    if (this.state == 2) {
        this.level.addLevelSoundEvent(LevelSoundEventPacket.SOUND_THUNDER, 93, -1, this, false, false);
        this.level.addLevelSoundEvent(LevelSoundEventPacket.SOUND_EXPLODE, 93, -1, this, false, false);
    }

    this.state--;

    if (this.state < 0) {
        if (this.liveTime == 0) {
            this.close();
            return false;
        } else if (this.state < -this.level.rand.nextInt(10)) {
            this.liveTime--;
            this.state = 1;

            if (this.isEffect && this.level.gameRules.getBoolean("doFireTick")) {
                Block block = this.getLevelBlock();

                if (block.getId() == Block.AIR || block.getId() == Block.TALL_GRASS) {
                    BlockIgniteEvent e = new BlockIgniteEvent(block, null, this, BlockIgniteEvent.BlockIgniteCause.LIGHTNING);
                    getServer().getPluginManager().callEvent(e);

                    if (!e.isCancelled()) {
                        Block fire = new BlockFire();
                        this.level.setBlock(block, fire);
                        this.getLevel().scheduleUpdate(fire, fire.tickRate());
                    }
                }
            }
        }
    }

    if (this.state >= 0) {
        if (this.isEffect) {
            AxisAlignedBB bb = getBoundingBox().grow(3, 3, 3);
            bb.maxX += 6;

            for (Entity entity : this.level.getCollidingEntities(bb, this)) {
                entity.onStruckByLightning(this);
            }
        }
    }

    return true;
}
 
开发者ID:CoreXDevelopment,项目名称:CoreX,代码行数:62,代码来源:EntityLightning.java


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