|
63 | 63 | // CraftBukkit start |
64 | 64 | // SPIGOT-7045: Give ocelot babies back their special spawn reason. Note: This is the only modification required as ocelots count as monsters which means they only spawn during normal chunk ticking and do not spawn during chunk generation as starter mobs. |
65 | 65 | level.addFreshEntityWithPassengers(mobForSpawn, (mobForSpawn instanceof net.minecraft.world.entity.animal.Ocelot && !((org.bukkit.entity.Ageable) mobForSpawn.getBukkitEntity()).isAdult()) ? org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.OCELOT_BABY : org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.NATURAL); |
66 | | -@@ -427,9 +_,12 @@ |
| 66 | +@@ -433,9 +_,14 @@ |
67 | 67 | private static WeightedList<MobSpawnSettings.SpawnerData> mobsAt( |
68 | | - ServerLevel level, StructureManager structureManager, ChunkGenerator generator, MobCategory cetagory, BlockPos pos, @Nullable Holder<Biome> biome |
| 68 | + ServerLevel level, StructureManager structureManager, ChunkGenerator generator, MobCategory category, BlockPos pos, @Nullable Holder<Biome> biome |
69 | 69 | ) { |
70 | | -- return isInNetherFortressBounds(pos, level, cetagory, structureManager) |
71 | | -+ WeightedList<MobSpawnSettings.SpawnerData> spawnerData = isInNetherFortressBounds(pos, level, cetagory, structureManager) |
72 | | - ? NetherFortressStructure.FORTRESS_ENEMIES |
73 | | - : generator.getMobsAt(biome != null ? biome : level.getBiome(pos), structureManager, cetagory, pos); |
74 | | -+ MobSpawnForBiomeEvent mobSpawnForBiomeEvent = new MobSpawnForBiomeEvent(level, structureManager, generator, cetagory, pos, biome, spawnerData); |
| 70 | +- return isInNetherFortressBounds(pos, level, category, structureManager) |
| 71 | +- ? NetherFortressStructure.FORTRESS_ENEMIES |
| 72 | +- : generator.getMobsAt(biome != null ? biome : level.getBiome(pos), structureManager, category, pos); |
| 73 | ++ // Papyrus start - mob spawn event |
| 74 | ++ WeightedList<MobSpawnSettings.SpawnerData> spawnerData = isInNetherFortressBounds(pos, level, category, structureManager) |
| 75 | ++ ? NetherFortressStructure.FORTRESS_ENEMIES |
| 76 | ++ : generator.getMobsAt(biome != null ? biome : level.getBiome(pos), structureManager, category, pos); |
| 77 | ++ MobSpawnForBiomeEvent mobSpawnForBiomeEvent = new MobSpawnForBiomeEvent(level, structureManager, generator, category, pos, biome, spawnerData); |
75 | 78 | + mobSpawnForBiomeEvent.callEvent(); |
76 | 79 | + return mobSpawnForBiomeEvent.getSpawnerData(); |
| 80 | ++ // Papyrus end |
77 | 81 | } |
78 | 82 |
|
79 | 83 | public static boolean isInNetherFortressBounds(BlockPos pos, ServerLevel level, MobCategory category, StructureManager structureManager) { |
80 | | -@@ -626,7 +_,11 @@ |
| 84 | +@@ -632,7 +_,11 @@ |
81 | 85 | } |
82 | 86 |
|
83 | 87 | this.spawnPotential.addCharge(blockPos, d); |
|
0 commit comments