diff options
Diffstat (limited to 'Minecraft.World/StoneSlabTileItem.cpp')
| -rw-r--r-- | Minecraft.World/StoneSlabTileItem.cpp | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/Minecraft.World/StoneSlabTileItem.cpp b/Minecraft.World/StoneSlabTileItem.cpp index ea636f65..013ad03e 100644 --- a/Minecraft.World/StoneSlabTileItem.cpp +++ b/Minecraft.World/StoneSlabTileItem.cpp @@ -12,7 +12,7 @@ StoneSlabTileItem::StoneSlabTileItem(int id, HalfSlabTile *halfTile, HalfSlabTil this->halfTile = halfTile; this->fullTile = fullTile; - this->isFull = full; + isFull = full; setMaxDamage(0); setStackedByData(true); } @@ -40,7 +40,7 @@ bool StoneSlabTileItem::useOn(shared_ptr<ItemInstance> instance, shared_ptr<Play } if (instance->count == 0) return false; - if (!player->mayBuild(x, y, z)) return false; + if (!player->mayUseItemAt(x, y, z, face, instance)) return false; int currentTile = level->getTile(x, y, z); int currentData = level->getData(x, y, z); @@ -54,11 +54,9 @@ bool StoneSlabTileItem::useOn(shared_ptr<ItemInstance> instance, shared_ptr<Play return true; } - if (level->isUnobstructed(fullTile->getAABB(level, x, y, z)) && level->setTileAndData(x, y, z, fullTile->id, slabType)) + if (level->isUnobstructed(fullTile->getAABB(level, x, y, z)) && level->setTileAndData(x, y, z, fullTile->id, slabType, Tile::UPDATE_ALL)) { -// level.playSound(x + 0.5f, y + 0.5f, z + 0.5f, fullTile.soundType.getPlaceSound(), (fullTile.soundType.getVolume() + 1) / 2, fullTile.soundType.getPitch() * 0.8f); -// instance.count--; - level->playSound(x + 0.5f, y + 0.5f, z + 0.5f, fullTile->soundType->getStepSound(), (fullTile->soundType->getVolume() + 1) / 2, fullTile->soundType->getPitch() * 0.8f); + level->playSound(x + 0.5f, y + 0.5f, z + 0.5f, fullTile->soundType->getPlaceSound(), (fullTile->soundType->getVolume() + 1) / 2, fullTile->soundType->getPitch() * 0.8f); instance->count--; } return true; @@ -127,10 +125,9 @@ bool StoneSlabTileItem::tryConvertTargetTile(shared_ptr<ItemInstance> instance, { return true; } - if (level->isUnobstructed(fullTile->getAABB(level, x, y, z)) && level->setTileAndData(x, y, z, fullTile->id, slabType)) + if (level->isUnobstructed(fullTile->getAABB(level, x, y, z)) && level->setTileAndData(x, y, z, fullTile->id, slabType, Tile::UPDATE_ALL)) { - //level.playSound(x + 0.5f, y + 0.5f, z + 0.5f, fullTile.soundType.getPlaceSound(), (fullTile.soundType.getVolume() + 1) / 2, fullTile.soundType.getPitch() * 0.8f); - level->playSound(x + 0.5f, y + 0.5f, z + 0.5f, fullTile->soundType->getStepSound(), (fullTile->soundType->getVolume() + 1) / 2, fullTile->soundType->getPitch() * 0.8f); + level->playSound(x + 0.5f, y + 0.5f, z + 0.5f, fullTile->soundType->getPlaceSound(), (fullTile->soundType->getVolume() + 1) / 2, fullTile->soundType->getPitch() * 0.8f); instance->count--; } return true; |
