Fixed confusion over Item Frame directions
This commit is contained in:
@@ -1747,52 +1747,22 @@ void cWSSAnvil::LoadHangingFromNBT(cHangingEntity & a_Hanging, const cParsedNBT
|
||||
{
|
||||
// "Facing" tag is the prime source of the Facing; if not available, translate from older "Direction" or "Dir"
|
||||
int Facing = a_NBT.FindChildByName(a_TagIdx, "Facing");
|
||||
if (Facing > 0)
|
||||
if (Facing < 0)
|
||||
{
|
||||
Facing = (int)a_NBT.GetByte(Facing);
|
||||
if ((Facing >= 2) && (Facing <= 5))
|
||||
{
|
||||
a_Hanging.SetFacing(static_cast<eBlockFace>(Facing));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Facing = a_NBT.FindChildByName(a_TagIdx, "Direction");
|
||||
if (Facing > 0)
|
||||
{
|
||||
switch ((int)a_NBT.GetByte(Facing))
|
||||
{
|
||||
case 0: a_Hanging.SetFacing(BLOCK_FACE_ZM); break;
|
||||
case 1: a_Hanging.SetFacing(BLOCK_FACE_XM); break;
|
||||
case 2: a_Hanging.SetFacing(BLOCK_FACE_ZP); break;
|
||||
case 3: a_Hanging.SetFacing(BLOCK_FACE_XP); break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Facing = a_NBT.FindChildByName(a_TagIdx, "Dir"); // Has values 0 and 2 swapped
|
||||
if (Facing > 0)
|
||||
{
|
||||
switch ((int)a_NBT.GetByte(Facing))
|
||||
{
|
||||
case 0: a_Hanging.SetFacing(BLOCK_FACE_ZP); break;
|
||||
case 1: a_Hanging.SetFacing(BLOCK_FACE_XM); break;
|
||||
case 2: a_Hanging.SetFacing(BLOCK_FACE_ZM); break;
|
||||
case 3: a_Hanging.SetFacing(BLOCK_FACE_XP); break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
a_Hanging.SetProtocolFacing(a_NBT.GetByte(Facing));
|
||||
|
||||
int TileX = a_NBT.FindChildByName(a_TagIdx, "TileX");
|
||||
int TileY = a_NBT.FindChildByName(a_TagIdx, "TileY");
|
||||
int TileZ = a_NBT.FindChildByName(a_TagIdx, "TileZ");
|
||||
if ((TileX > 0) && (TileY > 0) && (TileZ > 0))
|
||||
{
|
||||
a_Hanging.SetPosition(
|
||||
(double)a_NBT.GetInt(TileX),
|
||||
(double)a_NBT.GetInt(TileY),
|
||||
(double)a_NBT.GetInt(TileZ)
|
||||
static_cast<double>(a_NBT.GetInt(TileX)),
|
||||
static_cast<double>(a_NBT.GetInt(TileY)),
|
||||
static_cast<double>(a_NBT.GetInt(TileZ))
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user