From b3feddfef372618c8a9d7a0abcaf18cfad866c18 Mon Sep 17 00:00:00 2001 From: daoge <3523206925@qq.com> Date: Tue, 3 Mar 2026 03:04:10 +0800 Subject: feat: TU19 (Dec 2014) Features & Content (#155) * try to resolve merge conflict * feat: TU19 (Dec 2014) Features & Content (#32) * December 2014 files * Working release build * Fix compilation issues * Add sound to Windows64Media * Add DLC content and force Tutorial DLC * Revert "Add DLC content and force Tutorial DLC" This reverts commit 97a43994725008e35fceb984d5549df9c8cea470. * Disable broken light packing * Disable breakpoint during DLC texture map load Allows DLC loading but the DLC textures are still broken * Fix post build not working * ... * fix vs2022 build * fix cmake build --------- Co-authored-by: Loki --- Minecraft.World/BeaconTileEntity.h | 75 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 Minecraft.World/BeaconTileEntity.h (limited to 'Minecraft.World/BeaconTileEntity.h') 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 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 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 getUpdatePacket(); + double getViewDistance(); + void load(CompoundTag *tag); + void save(CompoundTag *tag); + unsigned int getContainerSize(); + shared_ptr getItem(unsigned int slot); + shared_ptr removeItem(unsigned int slot, int count); + shared_ptr removeItemNoUpdate(int slot); + void setItem(unsigned int slot, shared_ptr item); + wstring getName(); + wstring getCustomName(); + bool hasCustomName(); + void setCustomName(const wstring &name); + int getMaxStackSize(); + bool stillValid(shared_ptr player); + void startOpen(); + void stopOpen(); + bool canPlaceItem(int slot, shared_ptr item); + + // 4J Stu - For container + virtual void setChanged() { TileEntity::setChanged(); } +}; \ No newline at end of file -- cgit v1.2.3