mirror of
https://git.revela.dev/itsRevela/LCE-Revelations.git
synced 2026-05-21 19:24:55 +00:00
fix: scale breeding and spawn-egg caps with configured mob caps
This commit is contained in:
@@ -4699,19 +4699,19 @@ bool Level::canCreateMore(eINSTANCEOF type, ESPAWN_TYPE spawnType)
|
||||
break;
|
||||
case eTYPE_CHICKEN:
|
||||
count = countInstanceOf( eTYPE_CHICKEN, true);
|
||||
max = MobCategory::MAX_XBOX_CHICKENS_WITH_SPAWN_EGG;
|
||||
max = MobCategory::maxChickensWithSpawnEgg();
|
||||
break;
|
||||
case eTYPE_WOLF:
|
||||
count = countInstanceOf( eTYPE_WOLF, true);
|
||||
max = MobCategory::MAX_XBOX_WOLVES_WITH_SPAWN_EGG;
|
||||
max = MobCategory::maxWolvesWithSpawnEgg();
|
||||
break;
|
||||
case eTYPE_MUSHROOMCOW:
|
||||
count = countInstanceOf( eTYPE_MUSHROOMCOW, true);
|
||||
max = MobCategory::MAX_XBOX_MUSHROOMCOWS_WITH_SPAWN_EGG;
|
||||
max = MobCategory::maxMushroomCowsWithSpawnEgg();
|
||||
break;
|
||||
case eTYPE_SQUID:
|
||||
count = countInstanceOf( eTYPE_SQUID, true);
|
||||
max = MobCategory::MAX_XBOX_SQUIDS_WITH_SPAWN_EGG;
|
||||
max = MobCategory::maxSquidsWithSpawnEgg();
|
||||
break;
|
||||
case eTYPE_SNOWMAN:
|
||||
count = countInstanceOf( eTYPE_SNOWMAN, true);
|
||||
@@ -4729,18 +4729,18 @@ bool Level::canCreateMore(eINSTANCEOF type, ESPAWN_TYPE spawnType)
|
||||
if((type & eTYPE_ANIMALS_SPAWN_LIMIT_CHECK) == eTYPE_ANIMALS_SPAWN_LIMIT_CHECK)
|
||||
{
|
||||
count = countInstanceOf( eTYPE_ANIMALS_SPAWN_LIMIT_CHECK, false);
|
||||
max = MobCategory::MAX_XBOX_ANIMALS_WITH_SPAWN_EGG;
|
||||
max = MobCategory::maxAnimalsWithSpawnEgg();
|
||||
}
|
||||
// 4J: Use eTYPE_ENEMY instead of monster (slimes and ghasts aren't monsters)
|
||||
else if(Entity::instanceof(type, eTYPE_ENEMY))
|
||||
{
|
||||
count = countInstanceOf(eTYPE_ENEMY, false);
|
||||
max = MobCategory::MAX_XBOX_MONSTERS_WITH_SPAWN_EGG;
|
||||
max = MobCategory::maxMonstersWithSpawnEgg();
|
||||
}
|
||||
else if( (type & eTYPE_AMBIENT) == eTYPE_AMBIENT)
|
||||
{
|
||||
count = countInstanceOf( eTYPE_AMBIENT, false);
|
||||
max = MobCategory::MAX_AMBIENT_WITH_SPAWN_EGG;
|
||||
max = MobCategory::maxAmbientWithSpawnEgg();
|
||||
}
|
||||
// 4J: Added minecart and boats
|
||||
else if (Entity::instanceof(type, eTYPE_MINECART))
|
||||
@@ -4765,21 +4765,21 @@ bool Level::canCreateMore(eINSTANCEOF type, ESPAWN_TYPE spawnType)
|
||||
break;
|
||||
case eTYPE_CHICKEN:
|
||||
count = countInstanceOf( eTYPE_CHICKEN, true);
|
||||
max = MobCategory::MAX_XBOX_CHICKENS_WITH_BREEDING;
|
||||
max = MobCategory::maxChickensWithBreeding();
|
||||
break;
|
||||
case eTYPE_WOLF:
|
||||
count = countInstanceOf( eTYPE_WOLF, true);
|
||||
max = MobCategory::MAX_XBOX_WOLVES_WITH_BREEDING;
|
||||
max = MobCategory::maxWolvesWithBreeding();
|
||||
break;
|
||||
case eTYPE_MUSHROOMCOW:
|
||||
count = countInstanceOf( eTYPE_MUSHROOMCOW, true);
|
||||
max = MobCategory::MAX_XBOX_MUSHROOMCOWS_WITH_BREEDING;
|
||||
max = MobCategory::maxMushroomCowsWithBreeding();
|
||||
break;
|
||||
default:
|
||||
if((type & eTYPE_ANIMALS_SPAWN_LIMIT_CHECK) == eTYPE_ANIMALS_SPAWN_LIMIT_CHECK)
|
||||
{
|
||||
count = countInstanceOf( eTYPE_ANIMALS_SPAWN_LIMIT_CHECK, false);
|
||||
max = MobCategory::MAX_XBOX_ANIMALS_WITH_BREEDING;
|
||||
max = MobCategory::maxAnimalsWithBreeding();
|
||||
}
|
||||
else if( (type & eTYPE_MONSTER) == eTYPE_MONSTER)
|
||||
{
|
||||
|
||||
@@ -63,6 +63,19 @@ void MobCategory::setMaxInstancesPerLevel(int max)
|
||||
m_maxPerLevel = max;
|
||||
}
|
||||
|
||||
int MobCategory::maxAnimalsWithBreeding() { return creature->getMaxInstancesPerLevel() + 20; }
|
||||
int MobCategory::maxChickensWithBreeding() { return creature_chicken->getMaxInstancesPerLevel() + 8; }
|
||||
int MobCategory::maxMushroomCowsWithBreeding() { return creature_mushroomcow->getMaxInstancesPerLevel() + 20; }
|
||||
int MobCategory::maxWolvesWithBreeding() { return creature_wolf->getMaxInstancesPerLevel() + 8; }
|
||||
|
||||
int MobCategory::maxAnimalsWithSpawnEgg() { return maxAnimalsWithBreeding() + 20; }
|
||||
int MobCategory::maxChickensWithSpawnEgg() { return maxChickensWithBreeding() + 10; }
|
||||
int MobCategory::maxWolvesWithSpawnEgg() { return maxWolvesWithBreeding() + 10; }
|
||||
int MobCategory::maxMonstersWithSpawnEgg() { return monster->getMaxInstancesPerLevel() + 20; }
|
||||
int MobCategory::maxMushroomCowsWithSpawnEgg() { return maxMushroomCowsWithBreeding() + 8; }
|
||||
int MobCategory::maxSquidsWithSpawnEgg() { return waterCreature->getMaxInstancesPerLevel() + 8; }
|
||||
int MobCategory::maxAmbientWithSpawnEgg() { return ambient->getMaxInstancesPerLevel() + 8; }
|
||||
|
||||
Material *MobCategory::getSpawnPositionMaterial()
|
||||
{
|
||||
return (Material *) spawnPositionMaterial;
|
||||
|
||||
@@ -19,20 +19,25 @@ public:
|
||||
static const int CONSOLE_SQUID_HARD_LIMIT = 5;
|
||||
static const int MAX_CONSOLE_BOSS = 1; // Max number of bosses (enderdragon/wither)
|
||||
|
||||
static const int MAX_XBOX_ANIMALS_WITH_BREEDING = CONSOLE_ANIMALS_HARD_LIMIT + 20; // Max number of animals that we can produce (in total), when breeding
|
||||
static const int MAX_XBOX_CHICKENS_WITH_BREEDING = MAX_XBOX_CHICKENS + 8; // Max number of chickens that we can produce (in total), when breeding/hatching
|
||||
static const int MAX_XBOX_MUSHROOMCOWS_WITH_BREEDING = MAX_XBOX_MUSHROOMCOWS + 20; // Max number of mushroom cows that we can produce (in total), when breeding
|
||||
static const int MAX_XBOX_WOLVES_WITH_BREEDING = MAX_XBOX_WOLVES + 8; // Max number of wolves that we can produce (in total), when breeding
|
||||
// 4J Villager breeding/egg limits - villagers are not a MobCategory so these stay hardcoded
|
||||
static const int MAX_VILLAGERS_WITH_BREEDING = 35;
|
||||
static const int MAX_XBOX_VILLAGERS_WITH_SPAWN_EGG = MAX_VILLAGERS_WITH_BREEDING + 15;
|
||||
|
||||
static const int MAX_XBOX_ANIMALS_WITH_SPAWN_EGG = MAX_XBOX_ANIMALS_WITH_BREEDING + 20;
|
||||
static const int MAX_XBOX_CHICKENS_WITH_SPAWN_EGG = MAX_XBOX_CHICKENS_WITH_BREEDING + 10;
|
||||
static const int MAX_XBOX_WOLVES_WITH_SPAWN_EGG = MAX_XBOX_WOLVES_WITH_BREEDING + 10;
|
||||
static const int MAX_XBOX_MONSTERS_WITH_SPAWN_EGG = CONSOLE_MONSTERS_HARD_LIMIT + 20;
|
||||
static const int MAX_XBOX_VILLAGERS_WITH_SPAWN_EGG = MAX_VILLAGERS_WITH_BREEDING + 15; // 4J-PB - increased this limit due to player requests
|
||||
static const int MAX_XBOX_MUSHROOMCOWS_WITH_SPAWN_EGG = MAX_XBOX_MUSHROOMCOWS_WITH_BREEDING + 8;
|
||||
static const int MAX_XBOX_SQUIDS_WITH_SPAWN_EGG = CONSOLE_SQUID_HARD_LIMIT + 8;
|
||||
static const int MAX_AMBIENT_WITH_SPAWN_EGG = CONSOLE_AMBIENT_HARD_LIMIT + 8;
|
||||
// Breeding headroom above the natural spawn cap. Read at call time so these
|
||||
// respect max-* overrides from server.properties.
|
||||
static int maxAnimalsWithBreeding();
|
||||
static int maxChickensWithBreeding();
|
||||
static int maxMushroomCowsWithBreeding();
|
||||
static int maxWolvesWithBreeding();
|
||||
|
||||
// Spawn-egg headroom above the natural (or breeding) cap.
|
||||
static int maxAnimalsWithSpawnEgg();
|
||||
static int maxChickensWithSpawnEgg();
|
||||
static int maxWolvesWithSpawnEgg();
|
||||
static int maxMonstersWithSpawnEgg();
|
||||
static int maxMushroomCowsWithSpawnEgg();
|
||||
static int maxSquidsWithSpawnEgg();
|
||||
static int maxAmbientWithSpawnEgg();
|
||||
|
||||
/*
|
||||
Maximum animals = 50 + 20 + 20 = 90
|
||||
|
||||
Reference in New Issue
Block a user