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. */ /** Returns whether the wither is invulnerable to arrows. */
bool IsArmored(void) const; bool IsArmored(void) const;
/** Use the wither the invulnerable from the spawn? */
bool IsSpawnInvulnerable(void) const { return m_IsSpawnInvulnerable; }
// cEntity overrides // cEntity overrides
virtual bool Initialize(cWorld * a_World) override; virtual bool Initialize(cWorld * a_World) override;

View File

@ -2013,7 +2013,14 @@ void cProtocol125::WriteMobMetadata(const cMonster & a_Mob)
case cMonster::mtWither: case cMonster::mtWither:
{ {
WriteByte(0x54); // Int at index 20 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 WriteByte(0x66); // Float at index 6
WriteFloat((float)(a_Mob.GetHealth())); WriteFloat((float)(a_Mob.GetHealth()));
break; break;

View File

@ -2820,7 +2820,14 @@ void cProtocol172::cPacketizer::WriteMobMetadata(const cMonster & a_Mob)
case cMonster::mtWither: case cMonster::mtWither:
{ {
WriteByte(0x54); // Int at index 20 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 WriteByte(0x66); // Float at index 6
WriteFloat((float)(a_Mob.GetHealth())); WriteFloat((float)(a_Mob.GetHealth()));
break; break;

View File

@ -516,7 +516,14 @@ void cNBTChunkSerializer::AddMonsterEntity(cMonster * a_Monster)
} }
case cMonster::mtWither: 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; break;
} }
case cMonster::mtWolf: 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"); int CurrLine = a_NBT.FindChildByName(a_TagIdx, "Invul");
if (CurrLine > 0) if (CurrLine > 0)
{ {
Monster->SetWitherInvulnerableTicks(a_NBT.GetInt(CurrLine)); Monster->SetInvulnerableTicks(a_NBT.GetInt(CurrLine));
} }
a_Entities.push_back(Monster.release()); a_Entities.push_back(Monster.release());