diff options
Diffstat (limited to 'Minecraft.World/BeaconTileEntity.h')
| -rw-r--r-- | Minecraft.World/BeaconTileEntity.h | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/Minecraft.World/BeaconTileEntity.h b/Minecraft.World/BeaconTileEntity.h new file mode 100644 index 00000000..1b6067a1 --- /dev/null +++ b/Minecraft.World/BeaconTileEntity.h @@ -0,0 +1,75 @@ +#pragma once +#include "TileEntity.h" +#include "Container.h" + +class BeaconTileEntity : public TileEntity, public Container +{ +public: + eINSTANCEOF GetType() { return eTYPE_BEACONTILEENTITY; } + static TileEntity *create() { return new BeaconTileEntity(); } + // 4J Added + virtual shared_ptr<TileEntity> clone(); + +private: + static const int SCALE_TIME = SharedConstants::TICKS_PER_SECOND * 2; + +public: + static const int BEACON_EFFECTS_TIERS = 4; + static const int BEACON_EFFECTS_EFFECTS = 3; + static MobEffect *BEACON_EFFECTS[BEACON_EFFECTS_TIERS][BEACON_EFFECTS_EFFECTS]; + + static void staticCtor(); + +private: + __int64 clientSideRenderTick; + float clientSideRenderScale; + + bool isActive; + int levels; + + int primaryPower; + int secondaryPower; + + shared_ptr<ItemInstance> paymentItem; + wstring name; + +public: + BeaconTileEntity(); + + void tick(); + +private: + void applyEffects(); + void updateShape(); + +public: + float getAndUpdateClientSideScale(); + int getPrimaryPower(); + int getSecondaryPower(); + int getLevels(); + // client-side method used by GUI + void setLevels(int levels); + void setPrimaryPower(int primaryPower); + void setSecondaryPower(int secondaryPower); + shared_ptr<Packet> getUpdatePacket(); + double getViewDistance(); + void load(CompoundTag *tag); + void save(CompoundTag *tag); + unsigned int getContainerSize(); + shared_ptr<ItemInstance> getItem(unsigned int slot); + shared_ptr<ItemInstance> removeItem(unsigned int slot, int count); + shared_ptr<ItemInstance> removeItemNoUpdate(int slot); + void setItem(unsigned int slot, shared_ptr<ItemInstance> item); + wstring getName(); + wstring getCustomName(); + bool hasCustomName(); + void setCustomName(const wstring &name); + int getMaxStackSize(); + bool stillValid(shared_ptr<Player> player); + void startOpen(); + void stopOpen(); + bool canPlaceItem(int slot, shared_ptr<ItemInstance> item); + + // 4J Stu - For container + virtual void setChanged() { TileEntity::setChanged(); } +};
\ No newline at end of file |
