Add Zombie Villagers
This commit is contained in:
@@ -1008,11 +1008,11 @@ void cProtocol_1_10_0::WriteMobMetadata(cPacketizer & a_Pkt, const cMonster & a_
|
||||
|
||||
a_Pkt.WriteBEUInt8(ZOMBIE_TYPE);
|
||||
a_Pkt.WriteBEUInt8(METADATA_TYPE_VARINT);
|
||||
a_Pkt.WriteVarInt32(Zombie.IsVillagerZombie() ? 1 : 0); // TODO: This actually encodes the zombie villager profession, but that isn't implemented yet.
|
||||
a_Pkt.WriteVarInt32(0);
|
||||
|
||||
a_Pkt.WriteBEUInt8(ZOMBIE_CONVERTING);
|
||||
a_Pkt.WriteBEUInt8(METADATA_TYPE_BOOL);
|
||||
a_Pkt.WriteBool(Zombie.IsConverting());
|
||||
a_Pkt.WriteBool(false);
|
||||
break;
|
||||
} // case mtZombie
|
||||
|
||||
@@ -1025,6 +1025,23 @@ void cProtocol_1_10_0::WriteMobMetadata(cPacketizer & a_Pkt, const cMonster & a_
|
||||
break;
|
||||
} // case mtZombiePigman
|
||||
|
||||
case mtZombieVillager:
|
||||
{
|
||||
auto & ZombieVillager = reinterpret_cast<const cZombieVillager &>(a_Mob);
|
||||
a_Pkt.WriteBEUInt8(ZOMBIE_IS_BABY);
|
||||
a_Pkt.WriteBEUInt8(METADATA_TYPE_BOOL);
|
||||
a_Pkt.WriteBool(ZombieVillager.IsBaby());
|
||||
|
||||
a_Pkt.WriteBEUInt8(ZOMBIE_TYPE);
|
||||
a_Pkt.WriteBEUInt8(METADATA_TYPE_VARINT);
|
||||
a_Pkt.WriteVarInt32(ZombieVillager.GetProfession());
|
||||
|
||||
a_Pkt.WriteBEUInt8(ZOMBIE_CONVERTING);
|
||||
a_Pkt.WriteBEUInt8(METADATA_TYPE_BOOL);
|
||||
a_Pkt.WriteBool(ZombieVillager.ConversionTime() != -1);
|
||||
break;
|
||||
} // case mtZombieVillager
|
||||
|
||||
default: break;
|
||||
} // switch (a_Mob.GetType())
|
||||
}
|
||||
|
||||
@@ -1182,15 +1182,6 @@ void cProtocol_1_11_0::WriteMobMetadata(cPacketizer & a_Pkt, const cMonster & a_
|
||||
a_Pkt.WriteBEUInt8(ZOMBIE_IS_BABY);
|
||||
a_Pkt.WriteBEUInt8(METADATA_TYPE_BOOL);
|
||||
a_Pkt.WriteBool(Zombie.IsBaby());
|
||||
|
||||
// These don't exist
|
||||
// a_Pkt.WriteBEUInt8(ZOMBIE_TYPE);
|
||||
// a_Pkt.WriteBEUInt8(METADATA_TYPE_VARINT);
|
||||
// a_Pkt.WriteVarInt32(Zombie.IsVillagerZombie() ? 1 : 0);
|
||||
|
||||
// a_Pkt.WriteBEUInt8(ZOMBIE_CONVERTING);
|
||||
// a_Pkt.WriteBEUInt8(METADATA_TYPE_BOOL);
|
||||
// a_Pkt.WriteBool(Zombie.IsConverting());
|
||||
break;
|
||||
} // case mtZombie
|
||||
|
||||
@@ -1203,6 +1194,23 @@ void cProtocol_1_11_0::WriteMobMetadata(cPacketizer & a_Pkt, const cMonster & a_
|
||||
break;
|
||||
} // case mtZombiePigman
|
||||
|
||||
case mtZombieVillager:
|
||||
{
|
||||
auto & ZombieVillager = reinterpret_cast<const cZombieVillager &>(a_Mob);
|
||||
a_Pkt.WriteBEUInt8(ZOMBIE_IS_BABY);
|
||||
a_Pkt.WriteBEUInt8(METADATA_TYPE_BOOL);
|
||||
a_Pkt.WriteBool(ZombieVillager.IsBaby());
|
||||
|
||||
a_Pkt.WriteBEUInt8(ZOMBIE_VILLAGER_CONVERTING);
|
||||
a_Pkt.WriteBEUInt8(METADATA_TYPE_VARINT);
|
||||
a_Pkt.WriteVarInt32(static_cast<UInt32>(ZombieVillager.ConversionTime()));
|
||||
|
||||
a_Pkt.WriteBEUInt8(ZOMBIE_VILLAGER_PROFESSION);
|
||||
a_Pkt.WriteBEUInt8(METADATA_TYPE_VARINT);
|
||||
a_Pkt.WriteVarInt32(static_cast<UInt32>(ZombieVillager.GetProfession()));
|
||||
break;
|
||||
} // case mtZombieVillager
|
||||
|
||||
default: break;
|
||||
} // switch (a_Mob.GetType())
|
||||
}
|
||||
|
||||
@@ -908,9 +908,6 @@ void cProtocol_1_12::WriteMobMetadata(cPacketizer & a_Pkt, const cMonster & a_Mo
|
||||
// a_Pkt.WriteBEUInt8(METADATA_TYPE_VARINT);
|
||||
// a_Pkt.WriteVarInt32(Zombie.IsVillagerZombie() ? 1 : 0);
|
||||
|
||||
// a_Pkt.WriteBEUInt8(ZOMBIE_CONVERTING);
|
||||
// a_Pkt.WriteBEUInt8(METADATA_TYPE_BOOL);
|
||||
// a_Pkt.WriteBool(Zombie.IsConverting());
|
||||
break;
|
||||
} // case mtZombie
|
||||
|
||||
@@ -923,6 +920,23 @@ void cProtocol_1_12::WriteMobMetadata(cPacketizer & a_Pkt, const cMonster & a_Mo
|
||||
break;
|
||||
} // case mtZombiePigman
|
||||
|
||||
case mtZombieVillager:
|
||||
{
|
||||
auto & ZombieVillager = reinterpret_cast<const cZombieVillager &>(a_Mob);
|
||||
a_Pkt.WriteBEUInt8(ZOMBIE_IS_BABY);
|
||||
a_Pkt.WriteBEUInt8(METADATA_TYPE_BOOL);
|
||||
a_Pkt.WriteBool(ZombieVillager.IsBaby());
|
||||
|
||||
a_Pkt.WriteBEUInt8(ZOMBIE_VILLAGER_CONVERTING);
|
||||
a_Pkt.WriteBEUInt8(METADATA_TYPE_VARINT);
|
||||
a_Pkt.WriteVarInt32(static_cast<UInt32>(ZombieVillager.ConversionTime()));
|
||||
|
||||
a_Pkt.WriteBEUInt8(ZOMBIE_VILLAGER_PROFESSION);
|
||||
a_Pkt.WriteBEUInt8(METADATA_TYPE_VARINT);
|
||||
a_Pkt.WriteVarInt32(static_cast<UInt32>(ZombieVillager.GetProfession()));
|
||||
break;
|
||||
} // case mtZombieVillager
|
||||
|
||||
case mtBlaze:
|
||||
case mtEnderDragon:
|
||||
case mtGuardian:
|
||||
|
||||
@@ -3825,9 +3825,9 @@ void cProtocol_1_8_0::WriteMobMetadata(cPacketizer & a_Pkt, const cMonster & a_M
|
||||
a_Pkt.WriteBEUInt8(0x0c);
|
||||
a_Pkt.WriteBEInt8(Zombie.IsBaby() ? 1 : -1);
|
||||
a_Pkt.WriteBEUInt8(0x0d);
|
||||
a_Pkt.WriteBEUInt8(Zombie.IsVillagerZombie() ? 1 : 0);
|
||||
a_Pkt.WriteBEUInt8(0);
|
||||
a_Pkt.WriteBEUInt8(0x0e);
|
||||
a_Pkt.WriteBEUInt8(Zombie.IsConverting() ? 1 : 0);
|
||||
a_Pkt.WriteBEUInt8(0);
|
||||
break;
|
||||
} // case mtZombie
|
||||
|
||||
@@ -3839,6 +3839,18 @@ void cProtocol_1_8_0::WriteMobMetadata(cPacketizer & a_Pkt, const cMonster & a_M
|
||||
break;
|
||||
} // case mtZombiePigman
|
||||
|
||||
case mtZombieVillager:
|
||||
{
|
||||
auto & ZombieVillager = reinterpret_cast<const cZombieVillager &>(a_Mob);
|
||||
a_Pkt.WriteBEUInt8(0x0c);
|
||||
a_Pkt.WriteBEInt8(ZombieVillager.IsBaby() ? 1 : -1);
|
||||
a_Pkt.WriteBEUInt8(0x0d);
|
||||
a_Pkt.WriteBEUInt8(1);
|
||||
a_Pkt.WriteBEUInt8(0x0e);
|
||||
a_Pkt.WriteBEUInt8((ZombieVillager.ConversionTime() == -1) ? 0 : 1);
|
||||
break;
|
||||
} // case mtZombieVillager
|
||||
|
||||
default: break;
|
||||
} // switch (a_Mob.GetType())
|
||||
}
|
||||
|
||||
@@ -4329,11 +4329,11 @@ void cProtocol_1_9_0::WriteMobMetadata(cPacketizer & a_Pkt, const cMonster & a_M
|
||||
|
||||
a_Pkt.WriteBEUInt8(12); // Index 12: Is a villager
|
||||
a_Pkt.WriteBEUInt8(METADATA_TYPE_VARINT);
|
||||
a_Pkt.WriteVarInt32(Zombie.IsVillagerZombie() ? 1 : 0); // TODO: This actually encodes the zombie villager profession, but that isn't implemented yet.
|
||||
a_Pkt.WriteVarInt32(0);
|
||||
|
||||
a_Pkt.WriteBEUInt8(13); // Index 13: Is converting
|
||||
a_Pkt.WriteBEUInt8(METADATA_TYPE_BOOL);
|
||||
a_Pkt.WriteBool(Zombie.IsConverting());
|
||||
a_Pkt.WriteBool(false);
|
||||
break;
|
||||
} // case mtZombie
|
||||
|
||||
@@ -4346,6 +4346,23 @@ void cProtocol_1_9_0::WriteMobMetadata(cPacketizer & a_Pkt, const cMonster & a_M
|
||||
break;
|
||||
} // case mtZombiePigman
|
||||
|
||||
case mtZombieVillager:
|
||||
{
|
||||
auto & ZombieVillager = reinterpret_cast<const cZombieVillager &>(a_Mob);
|
||||
a_Pkt.WriteBEUInt8(11); // Index 11: Is baby
|
||||
a_Pkt.WriteBEUInt8(METADATA_TYPE_BOOL);
|
||||
a_Pkt.WriteBool(ZombieVillager.IsBaby());
|
||||
|
||||
a_Pkt.WriteBEUInt8(12); // Index 12: Is a villager
|
||||
a_Pkt.WriteBEUInt8(METADATA_TYPE_VARINT);
|
||||
a_Pkt.WriteVarInt32(ZombieVillager.GetProfession());
|
||||
|
||||
a_Pkt.WriteBEUInt8(13); // Index 13: Is converting
|
||||
a_Pkt.WriteBEUInt8(METADATA_TYPE_BOOL);
|
||||
a_Pkt.WriteBool(ZombieVillager.ConversionTime() != -1);
|
||||
break;
|
||||
} // case mtZombieVillager
|
||||
|
||||
default: break;
|
||||
} // switch (a_Mob.GetType())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user