diff options
| author | Loki Rautio <lokirautio@gmail.com> | 2026-03-04 03:56:03 -0600 |
|---|---|---|
| committer | Loki Rautio <lokirautio@gmail.com> | 2026-03-04 03:56:03 -0600 |
| commit | 42aec6dac53dffa6afe072560a7e1d4986112538 (patch) | |
| tree | 0836426857391df1b6a83f6368a183f83ec9b104 /Minecraft.World/BeaconTile.cpp | |
| parent | c9d58eeac7c72f0b3038e084667b4d89a6249fce (diff) | |
| parent | ef9b6fd500dfabd9463267b0dd9e29577eea8a2b (diff) | |
Merge branch 'main' into pr/win64-world-saves
# Conflicts:
# Minecraft.Client/MinecraftServer.cpp
# README.md
Diffstat (limited to 'Minecraft.World/BeaconTile.cpp')
| -rw-r--r-- | Minecraft.World/BeaconTile.cpp | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/Minecraft.World/BeaconTile.cpp b/Minecraft.World/BeaconTile.cpp new file mode 100644 index 00000000..f002cbe2 --- /dev/null +++ b/Minecraft.World/BeaconTile.cpp @@ -0,0 +1,64 @@ +#include "stdafx.h" +#include "net.minecraft.world.entity.player.h" +#include "net.minecraft.world.level.h" +#include "net.minecraft.world.level.tile.entity.h" +#include "BeaconTile.h" + +BeaconTile::BeaconTile(int id) : BaseEntityTile(id, Material::glass, isSolidRender()) +{ + setDestroyTime(3.0f); +} + +shared_ptr<TileEntity> BeaconTile::newTileEntity(Level *level) +{ + return shared_ptr<BeaconTileEntity>( new BeaconTileEntity() ); +} + +bool BeaconTile::use(Level *level, int x, int y, int z, shared_ptr<Player> player, int clickedFace, float clickX, float clickY, float clickZ, bool soundOnly) +{ + if (level->isClientSide) return true; + + shared_ptr<BeaconTileEntity> beacon = dynamic_pointer_cast<BeaconTileEntity>( level->getTileEntity(x, y, z) ); + if (beacon != NULL) player->openBeacon(beacon); + + return true; +} + +bool BeaconTile::isSolidRender(bool isServerLevel) +{ + return false; +} + +bool BeaconTile::isCubeShaped() +{ + return false; +} + +bool BeaconTile::blocksLight() +{ + return false; +} + +int BeaconTile::getRenderShape() +{ + return SHAPE_BEACON; +} + +void BeaconTile::registerIcons(IconRegister *iconRegister) +{ + BaseEntityTile::registerIcons(iconRegister); +} + +void BeaconTile::setPlacedBy(Level *level, int x, int y, int z, shared_ptr<LivingEntity> by, shared_ptr<ItemInstance> itemInstance) +{ + BaseEntityTile::setPlacedBy(level, x, y, z, by, itemInstance); + if (itemInstance->hasCustomHoverName()) + { + dynamic_pointer_cast<BeaconTileEntity>( level->getTileEntity(x, y, z))->setCustomName(itemInstance->getHoverName()); + } +} + +bool BeaconTile::TestUse() +{ + return true; +}
\ No newline at end of file |
