1
0

Changed the old invulnerable methods from the wither to the new.

This commit is contained in:
Howaner 2014-04-26 17:47:25 +02:00
parent 619592b5a0
commit d50f8f6f11
5 changed files with 28 additions and 4 deletions

View File

@ -19,6 +19,9 @@ public:
/** Returns whether the wither is invulnerable to arrows. */
bool IsArmored(void) const;
/** Use the wither the invulnerable from the spawn? */
bool IsSpawnInvulnerable(void) const { return m_IsSpawnInvulnerable; }
// cEntity overrides
virtual bool Initialize(cWorld * a_World) override;

View File

@ -2013,7 +2013,14 @@ void cProtocol125::WriteMobMetadata(const cMonster & a_Mob)
case cMonster::mtWither:
{
WriteByte(0x54); // Int at index 20
WriteInt((Int32)((const cWither &)a_Mob).GetWitherInvulnerableTicks());
if (((const cWither &)a_Mob).IsSpawnInvulnerable())
{
WriteInt((Int32)((const cWither &)a_Mob).GetInvulnerableTicks());
}
else
{
WriteInt((Int32)0);
}
WriteByte(0x66); // Float at index 6
WriteFloat((float)(a_Mob.GetHealth()));
break;

View File

@ -2820,7 +2820,14 @@ void cProtocol172::cPacketizer::WriteMobMetadata(const cMonster & a_Mob)
case cMonster::mtWither:
{
WriteByte(0x54); // Int at index 20
WriteInt(((const cWither &)a_Mob).GetWitherInvulnerableTicks());
if (((const cWither &)a_Mob).IsSpawnInvulnerable())
{
WriteInt(((const cWither &)a_Mob).GetInvulnerableTicks());
}
else
{
WriteInt(0);
}
WriteByte(0x66); // Float at index 6
WriteFloat((float)(a_Mob.GetHealth()));
break;

View File

@ -516,7 +516,14 @@ void cNBTChunkSerializer::AddMonsterEntity(cMonster * a_Monster)
}
case cMonster::mtWither:
{
m_Writer.AddInt("Invul", ((const cWither *)a_Monster)->GetWitherInvulnerableTicks());
if (((const cWither *)a_Monster)->IsSpawnInvulnerable())
{
m_Writer.AddInt("Invul", ((const cWither *)a_Monster)->GetInvulnerableTicks());
}
else
{
m_Writer.AddInt("Invul", 0);
}
break;
}
case cMonster::mtWolf:

View File

@ -2272,7 +2272,7 @@ void cWSSAnvil::LoadWitherFromNBT(cEntityList & a_Entities, const cParsedNBT & a
int CurrLine = a_NBT.FindChildByName(a_TagIdx, "Invul");
if (CurrLine > 0)
{
Monster->SetWitherInvulnerableTicks(a_NBT.GetInt(CurrLine));
Monster->SetInvulnerableTicks(a_NBT.GetInt(CurrLine));
}
a_Entities.push_back(Monster.release());