The /butcher command no longer kills NPCs, except when the -n flag is passed.

Also:
- Moved some code from BukkitWorld to LocalWorld.
- Replaced the "boolean killPets" argument by an "int flags" to provide extensibility
- Made the radius argument a double
- Basically rewrote the entire function
- Deprecated all old versions of killMobs
This commit is contained in:
TomyLobo
2011-12-06 06:26:12 +01:00
parent 4c9e0a629f
commit bc3a4377ec
3 changed files with 64 additions and 28 deletions

View File

@ -32,6 +32,14 @@ import com.sk89q.worldedit.regions.Region;
* @author sk89q
*/
public abstract class LocalWorld {
/**
* Named flags to use as parameters to {@link LocalWorld#killMobs(Vector, int, int)}
*/
public class KillFlags {
public static final int PETS = 1 << 0;
public static final int NPCS = 1 << 1;
}
/**
* Random generator.
*/
@ -268,17 +276,35 @@ public abstract class LocalWorld {
* @param radius
* @return
*/
public abstract int killMobs(Vector origin, int radius);
@Deprecated
public int killMobs(Vector origin, int radius) {
return killMobs(origin, radius, false);
}
/**
* Kill mobs in an area.
*
* @param origin
* @param radius -1 for all mobs
* @param flags various flags that determine what to kill
* @return
*/
@Deprecated
public int killMobs(Vector origin, int radius, boolean killPets) {
return killMobs(origin, radius, killPets ? KillFlags.PETS : 0);
}
/**
* Kill mobs in an area.
*
* @param origin
* @param radius
* @param killPets
* @param killflags
* @return
*/
public abstract int killMobs(Vector origin, int radius, boolean killPets);
public int killMobs(Vector origin, double radius, int flags) {
return killMobs(origin, (int) radius, (flags & KillFlags.PETS) != 0);
}
/**
* Remove entities in an area.