mirror of
https://github.com/neoStudiosLCE/neoLegacy.git
synced 2026-06-24 23:47:01 +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]);
|
||||
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())
|
||||
{
|
||||
case 1:
|
||||
glTranslatef(-0.16f, -0.16f, 0);
|
||||
break;
|
||||
case 2:
|
||||
glTranslatef(0, -0.32f, 0);
|
||||
break;
|
||||
case 3:
|
||||
glTranslatef(0.16f, -0.16f, 0);
|
||||
break;
|
||||
}
|
||||
static const float offsets[8][2] = {
|
||||
{ 0.0f, 0.0f },
|
||||
{ -0.08f, -0.08f },
|
||||
{ -0.16f, -0.16f },
|
||||
{ -0.08f, -0.24f },
|
||||
{ 0.0f, -0.32f },
|
||||
{ 0.08f, -0.24f },
|
||||
{ 0.16f, -0.16f },
|
||||
{ 0.08f, -0.08f }
|
||||
};
|
||||
int rotIndex = entity->getRotation() & 0x7;
|
||||
glTranslatef(offsets[rotIndex][0], offsets[rotIndex][1], 0.0f);
|
||||
|
||||
if (itemEntity->getItem()->getItem() == Item::map)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -266,6 +266,13 @@ static std::wstring pressurePlatePropsToString(int composite)
|
|||
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)
|
||||
{
|
||||
int facing = composite & DispenserTile::FACING_MASK;
|
||||
|
|
@ -508,12 +515,6 @@ static std::wstring hayBlockPropsToString(int composite)
|
|||
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)
|
||||
{
|
||||
int facing = PistonBaseTile::getFacing(composite);
|
||||
|
|
@ -640,15 +641,6 @@ static bool registerDoorDecoder()
|
|||
registerDecoder(Tile::acacia_door_Id, fn);
|
||||
registerDecoder(Tile::dark_oak_door_Id, fn);
|
||||
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();
|
||||
|
|
@ -687,15 +679,6 @@ static bool registerStairDecoder()
|
|||
registerDecoder(Tile::stairs_darkwood_Id, fn);
|
||||
registerDecoder(Tile::stairs_red_sandstone_Id, fn);
|
||||
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();
|
||||
|
|
@ -794,15 +777,6 @@ static bool registerPlantDecoders()
|
|||
registerDecoder(Tile::redstoneLight_Id, [](int composite)->std::wstring { return redlightPropsToString(composite); });
|
||||
registerDecoder(Tile::redstoneLight_lit_Id, [](int composite)->std::wstring { return redlightPropsToString(composite); });
|
||||
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();
|
||||
|
|
|
|||
|
|
@ -107,7 +107,7 @@ int ItemFrame::getRotation()
|
|||
|
||||
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)
|
||||
|
|
|
|||
Loading…
Reference in a new issue