mirror of
https://github.com/neoStudiosLCE/neoLegacy.git
synced 2026-08-20 09:57:09 +00:00
fix: item frame rotation
This commit is contained in:
parent
b750c4bbf4
commit
a28d817d6c
|
|
@ -139,20 +139,20 @@ void ItemFrameRenderer::drawItem(shared_ptr<ItemFrame> entity)
|
||||||
|
|
||||||
glTranslatef((-7.25f / 16.0f) * Direction::STEP_X[entity->dir], -0.18f, (-7.25f / 16.0f) * Direction::STEP_Z[entity->dir]);
|
glTranslatef((-7.25f / 16.0f) * Direction::STEP_X[entity->dir], -0.18f, (-7.25f / 16.0f) * Direction::STEP_Z[entity->dir]);
|
||||||
glRotatef(180 + entity->yRot, 0, 1, 0);
|
glRotatef(180 + entity->yRot, 0, 1, 0);
|
||||||
glRotatef(-90 * entity->getRotation(), 0, 0, 1);
|
glRotatef(-45.0f * entity->getRotation(), 0, 0, 1);
|
||||||
|
|
||||||
switch (entity->getRotation())
|
static const float offsets[8][2] = {
|
||||||
{
|
{ 0.0f, 0.0f },
|
||||||
case 1:
|
{ -0.08f, -0.08f },
|
||||||
glTranslatef(-0.16f, -0.16f, 0);
|
{ -0.16f, -0.16f },
|
||||||
break;
|
{ -0.08f, -0.24f },
|
||||||
case 2:
|
{ 0.0f, -0.32f },
|
||||||
glTranslatef(0, -0.32f, 0);
|
{ 0.08f, -0.24f },
|
||||||
break;
|
{ 0.16f, -0.16f },
|
||||||
case 3:
|
{ 0.08f, -0.08f }
|
||||||
glTranslatef(0.16f, -0.16f, 0);
|
};
|
||||||
break;
|
int rotIndex = entity->getRotation() & 0x7;
|
||||||
}
|
glTranslatef(offsets[rotIndex][0], offsets[rotIndex][1], 0.0f);
|
||||||
|
|
||||||
if (itemEntity->getItem()->getItem() == Item::map)
|
if (itemEntity->getItem()->getItem() == Item::map)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -266,6 +266,13 @@ static std::wstring pressurePlatePropsToString(int composite)
|
||||||
return ss.str();
|
return ss.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static std::wstring facingToString(int facing)
|
||||||
|
{
|
||||||
|
static const std::wstring facingNames[] = { L"down", L"up", L"north", L"south", L"west", L"east" };
|
||||||
|
return (facing >= 0 && facing < 6) ? facingNames[facing] : L"unknown";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static std::wstring dispenserPropsToString(int composite)
|
static std::wstring dispenserPropsToString(int composite)
|
||||||
{
|
{
|
||||||
int facing = composite & DispenserTile::FACING_MASK;
|
int facing = composite & DispenserTile::FACING_MASK;
|
||||||
|
|
@ -508,12 +515,6 @@ static std::wstring hayBlockPropsToString(int composite)
|
||||||
return ss.str();
|
return ss.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
static std::wstring facingToString(int facing)
|
|
||||||
{
|
|
||||||
static const std::wstring facingNames[] = { L"down", L"up", L"north", L"south", L"west", L"east" };
|
|
||||||
return (facing >= 0 && facing < 6) ? facingNames[facing] : L"unknown";
|
|
||||||
}
|
|
||||||
|
|
||||||
static std::wstring pistonBasePropsToString(int composite)
|
static std::wstring pistonBasePropsToString(int composite)
|
||||||
{
|
{
|
||||||
int facing = PistonBaseTile::getFacing(composite);
|
int facing = PistonBaseTile::getFacing(composite);
|
||||||
|
|
@ -640,15 +641,6 @@ static bool registerDoorDecoder()
|
||||||
registerDecoder(Tile::acacia_door_Id, fn);
|
registerDecoder(Tile::acacia_door_Id, fn);
|
||||||
registerDecoder(Tile::dark_oak_door_Id, fn);
|
registerDecoder(Tile::dark_oak_door_Id, fn);
|
||||||
return true;
|
return true;
|
||||||
registerDecoder(Tile::torch_Id, [](int composite)->std::wstring { return torchPropsToString(composite); });
|
|
||||||
registerDecoder(Tile::furnace_Id, [](int composite)->std::wstring { return furnacePropsToString(composite); });
|
|
||||||
registerDecoder(Tile::furnace_lit_Id, [](int composite)->std::wstring { return furnacePropsToString(composite); });
|
|
||||||
registerDecoder(Tile::redStoneOre_Id, [](int composite)->std::wstring { return redstoneOrePropsToString(composite); });
|
|
||||||
registerDecoder(Tile::redStoneOre_lit_Id, [](int composite)->std::wstring { return redstoneOrePropsToString(composite); });
|
|
||||||
registerDecoder(Tile::redstoneTorch_off_Id, [](int composite)->std::wstring { return redstoneTorchPropsToString(composite); });
|
|
||||||
registerDecoder(Tile::redstoneTorch_on_Id, [](int composite)->std::wstring { return redstoneTorchPropsToString(composite); });
|
|
||||||
registerDecoder(Tile::redstoneLight_Id, [](int composite)->std::wstring { return redlightPropsToString(composite); });
|
|
||||||
registerDecoder(Tile::redstoneLight_lit_Id, [](int composite)->std::wstring { return redlightPropsToString(composite); });
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool s_doorDecoderRegistered = registerDoorDecoder();
|
static bool s_doorDecoderRegistered = registerDoorDecoder();
|
||||||
|
|
@ -687,15 +679,6 @@ static bool registerStairDecoder()
|
||||||
registerDecoder(Tile::stairs_darkwood_Id, fn);
|
registerDecoder(Tile::stairs_darkwood_Id, fn);
|
||||||
registerDecoder(Tile::stairs_red_sandstone_Id, fn);
|
registerDecoder(Tile::stairs_red_sandstone_Id, fn);
|
||||||
return true;
|
return true;
|
||||||
registerDecoder(Tile::torch_Id, [](int composite)->std::wstring { return torchPropsToString(composite); });
|
|
||||||
registerDecoder(Tile::furnace_Id, [](int composite)->std::wstring { return furnacePropsToString(composite); });
|
|
||||||
registerDecoder(Tile::furnace_lit_Id, [](int composite)->std::wstring { return furnacePropsToString(composite); });
|
|
||||||
registerDecoder(Tile::redStoneOre_Id, [](int composite)->std::wstring { return redstoneOrePropsToString(composite); });
|
|
||||||
registerDecoder(Tile::redStoneOre_lit_Id, [](int composite)->std::wstring { return redstoneOrePropsToString(composite); });
|
|
||||||
registerDecoder(Tile::redstoneTorch_off_Id, [](int composite)->std::wstring { return redstoneTorchPropsToString(composite); });
|
|
||||||
registerDecoder(Tile::redstoneTorch_on_Id, [](int composite)->std::wstring { return redstoneTorchPropsToString(composite); });
|
|
||||||
registerDecoder(Tile::redstoneLight_Id, [](int composite)->std::wstring { return redlightPropsToString(composite); });
|
|
||||||
registerDecoder(Tile::redstoneLight_lit_Id, [](int composite)->std::wstring { return redlightPropsToString(composite); });
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool s_stairDecoderRegistered = registerStairDecoder();
|
static bool s_stairDecoderRegistered = registerStairDecoder();
|
||||||
|
|
@ -794,15 +777,6 @@ static bool registerPlantDecoders()
|
||||||
registerDecoder(Tile::redstoneLight_Id, [](int composite)->std::wstring { return redlightPropsToString(composite); });
|
registerDecoder(Tile::redstoneLight_Id, [](int composite)->std::wstring { return redlightPropsToString(composite); });
|
||||||
registerDecoder(Tile::redstoneLight_lit_Id, [](int composite)->std::wstring { return redlightPropsToString(composite); });
|
registerDecoder(Tile::redstoneLight_lit_Id, [](int composite)->std::wstring { return redlightPropsToString(composite); });
|
||||||
return true;
|
return true;
|
||||||
registerDecoder(Tile::torch_Id, [](int composite)->std::wstring { return torchPropsToString(composite); });
|
|
||||||
registerDecoder(Tile::furnace_Id, [](int composite)->std::wstring { return furnacePropsToString(composite); });
|
|
||||||
registerDecoder(Tile::furnace_lit_Id, [](int composite)->std::wstring { return furnacePropsToString(composite); });
|
|
||||||
registerDecoder(Tile::redStoneOre_Id, [](int composite)->std::wstring { return redstoneOrePropsToString(composite); });
|
|
||||||
registerDecoder(Tile::redStoneOre_lit_Id, [](int composite)->std::wstring { return redstoneOrePropsToString(composite); });
|
|
||||||
registerDecoder(Tile::redstoneTorch_off_Id, [](int composite)->std::wstring { return redstoneTorchPropsToString(composite); });
|
|
||||||
registerDecoder(Tile::redstoneTorch_on_Id, [](int composite)->std::wstring { return redstoneTorchPropsToString(composite); });
|
|
||||||
registerDecoder(Tile::redstoneLight_Id, [](int composite)->std::wstring { return redlightPropsToString(composite); });
|
|
||||||
registerDecoder(Tile::redstoneLight_lit_Id, [](int composite)->std::wstring { return redlightPropsToString(composite); });
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool s_plantDecoderRegistered = registerPlantDecoders();
|
static bool s_plantDecoderRegistered = registerPlantDecoders();
|
||||||
|
|
|
||||||
|
|
@ -107,7 +107,7 @@ int ItemFrame::getRotation()
|
||||||
|
|
||||||
void ItemFrame::setRotation(int rotation)
|
void ItemFrame::setRotation(int rotation)
|
||||||
{
|
{
|
||||||
getEntityData()->set(DATA_ROTATION, static_cast<byte>(rotation % 4));
|
getEntityData()->set(DATA_ROTATION, static_cast<byte>(rotation % 8));
|
||||||
}
|
}
|
||||||
|
|
||||||
void ItemFrame::addAdditonalSaveData(CompoundTag *tag)
|
void ItemFrame::addAdditonalSaveData(CompoundTag *tag)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue