Java源码示例:cn.nukkit.level.Explosion

示例1
public void explode(double square) {
    double root = Math.sqrt(square);

    if (root > 5.0D) {
        root = 5.0D;
    }

    EntityExplosionPrimeEvent event = new EntityExplosionPrimeEvent(this, (4.0D + new Random().nextDouble() * 1.5D * root));
    server.getPluginManager().callEvent(event);
    if (event.isCancelled()) {
        return;
    }
    Explosion explosion = new Explosion(this, event.getForce(), this);
    if (event.isBlockBreaking()) {
        explosion.explodeA();
    }
    explosion.explodeB();
    kill();
}
 
示例2
public void explode(double square) {
    double root = Math.sqrt(square);

    if (root > 5.0D) {
        root = 5.0D;
    }

    EntityExplosionPrimeEvent event = new EntityExplosionPrimeEvent(this, (4.0D + ThreadLocalRandom.current().nextDouble() * 1.5D * root));
    server.getPluginManager().callEvent(event);
    if (event.isCancelled()) {
        return;
    }
    Explosion explosion = new Explosion(this, event.getForce(), this);
    if (event.isBlockBreaking()) {
        explosion.explodeA();
    }
    explosion.explodeB();
    this.close();
}
 
示例3
public void explode(double square) {
    double root = Math.sqrt(square);

    if (root > 5.0D) {
        root = 5.0D;
    }

    EntityExplosionPrimeEvent event = new EntityExplosionPrimeEvent(this, (4.0D + new Random().nextDouble() * 1.5D * root));
    server.getPluginManager().callEvent(event);
    if (event.isCancelled()) {
        return;
    }
    Explosion explosion = new Explosion(this, event.getForce(), this);
    if (event.isBlockBreaking()) {
        explosion.explodeA();
    }
    explosion.explodeB();
    kill();
}
 
示例4
public void explode() {
    EntityExplosionPrimeEvent event = new EntityExplosionPrimeEvent(this, 4);
    server.getPluginManager().callEvent(event);
    if (event.isCancelled()) {
        return;
    }
    Explosion explosion = new Explosion(this, event.getForce(), this);
    if (event.isBlockBreaking()) {
        explosion.explodeA();
    }
    explosion.explodeB();
}
 
示例5
public void explode() {
    EntityExplosionPrimeEvent event = new EntityExplosionPrimeEvent(this, 4);
    server.getPluginManager().callEvent(event);
    if (event.isCancelled()) {
        return;
    }
    Explosion explosion = new Explosion(this, event.getForce(), this);
    if (event.isBlockBreaking()) {
        explosion.explodeA();
    }
    explosion.explodeB();
}
 
示例6
public void explode() {
    EntityExplosionPrimeEvent event = new EntityExplosionPrimeEvent(this, 4);
    server.getPluginManager().callEvent(event);
    if (event.isCancelled()) {
        return;
    }
    Explosion explosion = new Explosion(this, event.getForce(), this);
    if (event.isBlockBreaking()) {
        explosion.explodeA();
    }
    explosion.explodeB();
}
 
示例7
@Override
public boolean onActivate(Item item, Player player) {
    if (this.getLevel().getDimension() != Level.DIMENSION_OVERWORLD) {
        BedExplosionEvent event = new BedExplosionEvent(player, this, 4);
        Server.getInstance().getPluginManager().callEvent(event);
        if (event.isCancelled()) {
            return true;
        }
        Explosion explosion = new Explosion(this, event.getForce(), this);
        explosion.explodeA();

        return false;
    } 

    int time = this.getLevel().getTime() % Level.TIME_FULL;

    boolean isNight = (time >= Level.TIME_NIGHT && time < Level.TIME_SUNRISE);

    if (player != null && !isNight) {
        player.sendMessage(TextFormat.GRAY + "You can only sleep at night");
        return true;
    }

    Block blockNorth = this.north();
    Block blockSouth = this.south();
    Block blockEast = this.east();
    Block blockWest = this.west();

    Block b;
    if ((this.meta & 0x08) == 0x08) {
        b = this;
    } else {
        if (blockNorth.getId() == this.getId() && (blockNorth.meta & 0x08) == 0x08) {
            b = blockNorth;
        } else if (blockSouth.getId() == this.getId() && (blockSouth.meta & 0x08) == 0x08) {
            b = blockSouth;
        } else if (blockEast.getId() == this.getId() && (blockEast.meta & 0x08) == 0x08) {
            b = blockEast;
        } else if (blockWest.getId() == this.getId() && (blockWest.meta & 0x08) == 0x08) {
            b = blockWest;
        } else {
            if (player != null) {
                player.sendMessage(TextFormat.GRAY + "This bed is incomplete");
            }

            return true;
        }
    }

    if (player != null && !player.sleepOn(b)) {
        player.sendMessage(TextFormat.GRAY + "This bed is occupied");
    }


    return true;
}