1
0
mirror of https://github.com/p2r3/bareiron.git synced 2025-10-02 07:35:08 +02:00

fix mobs failing to find a valid spawn position

This commit is contained in:
p2r3
2025-08-23 14:42:52 +03:00
parent ee69d3ab9b
commit da2e99bd08

View File

@@ -278,7 +278,7 @@ void handlePacket (int client_fd, int length, int packet_id) {
short mob_z = (_z + dz * VIEW_DISTANCE) * 16 + ((r >> 8) & 15); short mob_z = (_z + dz * VIEW_DISTANCE) * 16 + ((r >> 8) & 15);
// Start at the Y coordinate of the spawning player and move upward // Start at the Y coordinate of the spawning player and move upward
// until a valid space is found // until a valid space is found
uint8_t mob_y = cy; uint8_t mob_y = cy - 8;
uint8_t b_low = getBlockAt(mob_x, mob_y - 1, mob_z); uint8_t b_low = getBlockAt(mob_x, mob_y - 1, mob_z);
uint8_t b_mid = getBlockAt(mob_x, mob_y, mob_z); uint8_t b_mid = getBlockAt(mob_x, mob_y, mob_z);
uint8_t b_top = getBlockAt(mob_x, mob_y + 1, mob_z); uint8_t b_top = getBlockAt(mob_x, mob_y + 1, mob_z);
@@ -293,15 +293,17 @@ void handlePacket (int client_fd, int length, int packet_id) {
b_top = getBlockAt(mob_x, mob_y + 2, mob_z); b_top = getBlockAt(mob_x, mob_y + 2, mob_z);
mob_y ++; mob_y ++;
} }
// Spawn passive mobs during the day, hostiles during the night if (mob_y != 255) {
if (world_time < 13000) { // Spawn passive mobs during the day, hostiles during the night
uint32_t mob_choice = (r >> 12) & 3; if (world_time < 13000) {
if (mob_choice == 0) spawnMob(25, mob_x, mob_y, mob_z, 20); // Chicken uint32_t mob_choice = (r >> 12) & 3;
else if (mob_choice == 1) spawnMob(28, mob_x, mob_y, mob_z, 20); // Cow if (mob_choice == 0) spawnMob(25, mob_x, mob_y, mob_z, 20); // Chicken
else if (mob_choice == 2) spawnMob(95, mob_x, mob_y, mob_z, 20); // Pig else if (mob_choice == 1) spawnMob(28, mob_x, mob_y, mob_z, 20); // Cow
else if (mob_choice == 3) spawnMob(106, mob_x, mob_y, mob_z, 20); // Sheep else if (mob_choice == 2) spawnMob(95, mob_x, mob_y, mob_z, 20); // Pig
} else { else if (mob_choice == 3) spawnMob(106, mob_x, mob_y, mob_z, 20); // Sheep
spawnMob(145, mob_x, mob_y, mob_z, 20); // Zombie } else {
spawnMob(145, mob_x, mob_y, mob_z, 20); // Zombie
}
} }
} }