Files
mcpe/source/World/Item/TilePlanterItem.cpp
iProgramInCpp 9642818a88 * Initial commit.
:)
2023-07-30 22:22:02 +03:00

42 lines
886 B
C++

#include "Item.hpp"
#include "Tile.hpp"
#include "Level.hpp"
TilePlanterItem::TilePlanterItem(int id, int place) : Item(id)
{
m_tile = Tile::tiles[place]->m_ID;
}
bool TilePlanterItem::useOn(ItemInstance* instance, Player* player, Level* level, int x, int y, int z, int dir)
{
if (level->getTile(x, y, z) == Tile::topSnow->m_ID)
{
dir = DIR_YNEG;
}
else switch (dir)
{
case DIR_YNEG: y--; break;
case DIR_YPOS: y++; break;
case DIR_ZNEG: z--; break;
case DIR_ZPOS: z++; break;
case DIR_XNEG: x--; break;
case DIR_XPOS: x++; break;
}
if (!instance->m_amount)
return false;
// why?
if (!level->mayPlace(m_tile, x, y, z, false))
return true;
if (!level->setTile(x, y, z, m_tile))
return true;
Tile::tiles[m_tile]->setPlacedOnFace(level, x, y, z, dir);
Tile::tiles[m_tile]->setPlacedBy(level, x, y, z, player);
instance->m_amount--;
return true;
}