Merge pull request #617 from UltraCoderRU/master
Some fixes in wolves implementation
This commit is contained in:
commit
6f90b492b8
@ -23,6 +23,7 @@ Sxw1212
|
|||||||
Taugeshtu
|
Taugeshtu
|
||||||
tigerw (Tiger Wang)
|
tigerw (Tiger Wang)
|
||||||
tonibm19
|
tonibm19
|
||||||
|
UltraCoderRU
|
||||||
worktycho
|
worktycho
|
||||||
xoft
|
xoft
|
||||||
|
|
||||||
|
@ -276,7 +276,7 @@ void cMonster::Tick(float a_Dt, cChunk & a_Chunk)
|
|||||||
{
|
{
|
||||||
Distance.y = 0;
|
Distance.y = 0;
|
||||||
Distance.Normalize();
|
Distance.Normalize();
|
||||||
Distance *= 3;
|
Distance *= 5;
|
||||||
SetSpeedX(Distance.x);
|
SetSpeedX(Distance.x);
|
||||||
SetSpeedZ(Distance.z);
|
SetSpeedZ(Distance.z);
|
||||||
|
|
||||||
|
@ -204,6 +204,7 @@ void cWolf::TickFollowPlayer()
|
|||||||
{
|
{
|
||||||
if (!IsSitting())
|
if (!IsSitting())
|
||||||
{
|
{
|
||||||
|
Callback.OwnerPos.y = FindFirstNonAirBlockPosition(Callback.OwnerPos.x, Callback.OwnerPos.z);
|
||||||
TeleportToCoords(Callback.OwnerPos.x, Callback.OwnerPos.y, Callback.OwnerPos.z);
|
TeleportToCoords(Callback.OwnerPos.x, Callback.OwnerPos.y, Callback.OwnerPos.z);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -455,7 +455,9 @@ void cNBTChunkSerializer::AddMonsterEntity(cMonster * a_Monster)
|
|||||||
case cMonster::mtWolf:
|
case cMonster::mtWolf:
|
||||||
{
|
{
|
||||||
m_Writer.AddString("Owner", ((const cWolf *)a_Monster)->GetOwner());
|
m_Writer.AddString("Owner", ((const cWolf *)a_Monster)->GetOwner());
|
||||||
m_Writer.AddByte("Sitting", ((const cWolf *)a_Monster)->IsSitting());
|
m_Writer.AddByte("Sitting", (((const cWolf *)a_Monster)->IsSitting() ? 1 : 0));
|
||||||
|
m_Writer.AddByte("Angry", (((const cWolf *)a_Monster)->IsAngry() ? 1 : 0));
|
||||||
|
m_Writer.AddInt("CollarColor", ((const cWolf *)a_Monster)->GetCollarColor());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case cMonster::mtZombie:
|
case cMonster::mtZombie:
|
||||||
|
@ -1889,8 +1889,20 @@ void cWSSAnvil::LoadWolfFromNBT(cEntityList & a_Entities, const cParsedNBT & a_N
|
|||||||
int SittingIdx = a_NBT.FindChildByName(a_TagIdx, "Sitting");
|
int SittingIdx = a_NBT.FindChildByName(a_TagIdx, "Sitting");
|
||||||
if (SittingIdx > 0)
|
if (SittingIdx > 0)
|
||||||
{
|
{
|
||||||
bool IsSitting = (a_NBT.GetByte(SittingIdx) > 0);
|
bool Sitting = ((a_NBT.GetByte(SittingIdx) == 1) ? true : false);
|
||||||
Monster->SetIsSitting(IsSitting);
|
Monster->SetIsSitting(Sitting);
|
||||||
|
}
|
||||||
|
int AngryIdx = a_NBT.FindChildByName(a_TagIdx, "Angry");
|
||||||
|
if (AngryIdx > 0)
|
||||||
|
{
|
||||||
|
bool Angry = ((a_NBT.GetByte(AngryIdx) == 1) ? true : false);
|
||||||
|
Monster->SetIsAngry(Angry);
|
||||||
|
}
|
||||||
|
int CollarColorIdx = a_NBT.FindChildByName(a_TagIdx, "CollarColor");
|
||||||
|
if (CollarColorIdx > 0)
|
||||||
|
{
|
||||||
|
int CollarColor = a_NBT.GetInt(CollarColorIdx);
|
||||||
|
Monster->SetCollarColor(CollarColor);
|
||||||
}
|
}
|
||||||
a_Entities.push_back(Monster.release());
|
a_Entities.push_back(Monster.release());
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user