Implement API for ambient mob spawn limit. Add spawn-limit.ambient to

bukkit.yml. Adds BUKKIT-2765
This commit is contained in:
Travis Watkins 2012-10-31 11:18:41 -05:00 committed by EvilSeph
parent 46d7cd1e05
commit f479aa84a4
4 changed files with 26 additions and 1 deletions

View File

@ -69,7 +69,7 @@ public final class SpawnerCreature {
EnumCreatureType enumcreaturetype = aenumcreaturetype[j1]; EnumCreatureType enumcreaturetype = aenumcreaturetype[j1];
// CraftBukkit start - use per-world spawn limits // CraftBukkit start - use per-world spawn limits
int limit = 0; int limit = enumcreaturetype.b();
switch (enumcreaturetype) { switch (enumcreaturetype) {
case MONSTER: case MONSTER:
limit = worldserver.getWorld().getMonsterSpawnLimit(); limit = worldserver.getWorld().getMonsterSpawnLimit();
@ -80,6 +80,9 @@ public final class SpawnerCreature {
case WATER_CREATURE: case WATER_CREATURE:
limit = worldserver.getWorld().getWaterAnimalSpawnLimit(); limit = worldserver.getWorld().getWaterAnimalSpawnLimit();
break; break;
case AMBIENT:
limit = worldserver.getWorld().getAmbientSpawnLimit();
break;
} }
if (limit == 0) { if (limit == 0) {

View File

@ -155,6 +155,7 @@ public final class CraftServer implements Server {
private int monsterSpawn = -1; private int monsterSpawn = -1;
private int animalSpawn = -1; private int animalSpawn = -1;
private int waterAnimalSpawn = -1; private int waterAnimalSpawn = -1;
private int ambientSpawn = -1;
private File container; private File container;
private WarningState warningState = WarningState.DEFAULT; private WarningState warningState = WarningState.DEFAULT;
@ -190,6 +191,7 @@ public final class CraftServer implements Server {
monsterSpawn = configuration.getInt("spawn-limits.monsters"); monsterSpawn = configuration.getInt("spawn-limits.monsters");
animalSpawn = configuration.getInt("spawn-limits.animals"); animalSpawn = configuration.getInt("spawn-limits.animals");
waterAnimalSpawn = configuration.getInt("spawn-limits.water-animals"); waterAnimalSpawn = configuration.getInt("spawn-limits.water-animals");
ambientSpawn = configuration.getInt("spawn-limits.ambient");
console.autosavePeriod = configuration.getInt("ticks-per.autosave"); console.autosavePeriod = configuration.getInt("ticks-per.autosave");
warningState = WarningState.value(configuration.getString("settings.deprecated-verbose")); warningState = WarningState.value(configuration.getString("settings.deprecated-verbose"));
@ -526,6 +528,7 @@ public final class CraftServer implements Server {
monsterSpawn = configuration.getInt("spawn-limits.monsters"); monsterSpawn = configuration.getInt("spawn-limits.monsters");
animalSpawn = configuration.getInt("spawn-limits.animals"); animalSpawn = configuration.getInt("spawn-limits.animals");
waterAnimalSpawn = configuration.getInt("spawn-limits.water-animals"); waterAnimalSpawn = configuration.getInt("spawn-limits.water-animals");
ambientSpawn = configuration.getInt("spawn-limits.ambient");
warningState = WarningState.value(configuration.getString("settings.deprecated-verbose")); warningState = WarningState.value(configuration.getString("settings.deprecated-verbose"));
console.autosavePeriod = configuration.getInt("ticks-per.autosave"); console.autosavePeriod = configuration.getInt("ticks-per.autosave");
@ -1236,6 +1239,10 @@ public final class CraftServer implements Server {
return waterAnimalSpawn; return waterAnimalSpawn;
} }
public int getAmbientSpawnLimit() {
return ambientSpawn;
}
public boolean isPrimaryThread() { public boolean isPrimaryThread() {
return Thread.currentThread().equals(console.primaryThread); return Thread.currentThread().equals(console.primaryThread);
} }

View File

@ -57,6 +57,7 @@ public class CraftWorld implements World {
private int monsterSpawn = -1; private int monsterSpawn = -1;
private int animalSpawn = -1; private int animalSpawn = -1;
private int waterAnimalSpawn = -1; private int waterAnimalSpawn = -1;
private int ambientSpawn = -1;
private static final Random rand = new Random(); private static final Random rand = new Random();
@ -1188,6 +1189,19 @@ public class CraftWorld implements World {
waterAnimalSpawn = limit; waterAnimalSpawn = limit;
} }
public int getAmbientSpawnLimit() {
if (ambientSpawn < 0) {
return server.getAmbientSpawnLimit();
}
return ambientSpawn;
}
public void setAmbientSpawnLimit(int limit) {
ambientSpawn = limit;
}
public void playSound(Location loc, Sound sound, float volume, float pitch) { public void playSound(Location loc, Sound sound, float volume, float pitch) {
if (loc == null || sound == null) return; if (loc == null || sound == null) return;

View File

@ -28,6 +28,7 @@ spawn-limits:
monsters: 70 monsters: 70
animals: 15 animals: 15
water-animals: 5 water-animals: 5
ambient: 15
ticks-per: ticks-per:
animal-spawns: 400 animal-spawns: 400
monster-spawns: 1 monster-spawns: 1