Java源码示例:cn.nukkit.event.block.BlockBurnEvent

示例1
private void tryToCatchBlockOnFire(Block block, int bound, int damage) {
    int burnAbility = block.getBurnAbility();

    Random random = this.getLevel().rand;

    if (random.nextInt(bound) < burnAbility) {

        if (random.nextInt(damage + 10) < 5) {
            int meta = damage + random.nextInt(5) / 4;

            if (meta > 15) {
                meta = 15;
            }

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

            if (!e.isCancelled()) {
                this.getLevel().setBlock(block, new BlockFire(meta), true);
                this.getLevel().scheduleUpdate(block, this.tickRate());
            }
        } else {
            BlockBurnEvent ev = new BlockBurnEvent(block);
            this.getLevel().getServer().getPluginManager().callEvent(ev);

            if (!ev.isCancelled()) {
                this.getLevel().setBlock(block, new BlockAir(), true);
            }
        }

        if (block instanceof BlockTNT) {
            ((BlockTNT) block).prime();
        }
    }
}
 
示例2
private void tryToCatchBlockOnFire(Block block, int bound, int damage) {
    int burnAbility = block.getBurnAbility();

    Random random = ThreadLocalRandom.current();

    if (random.nextInt(bound) < burnAbility) {

        if (random.nextInt(damage + 10) < 5) {
            int meta = damage + random.nextInt(5) / 4;

            if (meta > 15) {
                meta = 15;
            }

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

            if (!e.isCancelled()) {
                this.getLevel().setBlock(block, Block.get(BlockID.FIRE, meta), true);
                this.getLevel().scheduleUpdate(block, this.tickRate());
            }
        } else {
            BlockBurnEvent ev = new BlockBurnEvent(block);
            this.getLevel().getServer().getPluginManager().callEvent(ev);

            if (!ev.isCancelled()) {
                this.getLevel().setBlock(block, Block.get(BlockID.AIR), true);
            }
        }

        if (block instanceof BlockTNT) {
            ((BlockTNT) block).prime();
        }
    }
}
 
示例3
private void tryToCatchBlockOnFire(Block block, int bound, int damage) {
    int burnAbility = block.getBurnAbility();

    Random random = ThreadLocalRandom.current();

    if (random.nextInt(bound) < burnAbility) {

        if (random.nextInt(damage + 10) < 5) {
            int meta = damage + random.nextInt(5) / 4;

            if (meta > 15) {
                meta = 15;
            }

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

            if (!e.isCancelled()) {
                this.getLevel().setBlock(block, new BlockFire(meta), true);
                this.getLevel().scheduleUpdate(block, this.tickRate());
            }
        } else {
            BlockBurnEvent ev = new BlockBurnEvent(block);
            this.getLevel().getServer().getPluginManager().callEvent(ev);

            if (!ev.isCancelled()) {
                this.getLevel().setBlock(block, new BlockAir(), true);
            }
        }

        if (block instanceof BlockTNT) {
            ((BlockTNT) block).prime();
        }
    }
}