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.Client/ServerPlayer.h | 99 ++++++++++++++++++++++------------------- 1 file changed, 54 insertions(+), 45 deletions(-) (limited to 'Minecraft.Client/ServerPlayer.h') diff --git a/Minecraft.Client/ServerPlayer.h b/Minecraft.Client/ServerPlayer.h index a9b37594..57ea8947 100644 --- a/Minecraft.Client/ServerPlayer.h +++ b/Minecraft.Client/ServerPlayer.h @@ -10,6 +10,10 @@ class Stat; class TileEntity; class Entity; class BrewingStandTileEntity; +class HopperTileEntity; +class MinecartHopper; +class BeaconTileEntity; +class EntityHorse; class Merchant; using namespace std; @@ -18,24 +22,26 @@ class ServerPlayer : public Player, public net_minecraft_world_inventory::Contai public: eINSTANCEOF GetType() { return eTYPE_SERVERPLAYER; } shared_ptr connection; - MinecraftServer *server; - ServerPlayerGameMode *gameMode; - double lastMoveX, lastMoveZ; - list chunksToSend; + MinecraftServer *server; + ServerPlayerGameMode *gameMode; + double lastMoveX, lastMoveZ; + list chunksToSend; vector entitiesToRemove; - unordered_set seenChunks; - int spewTimer; + unordered_set seenChunks; + int spewTimer; // 4J-Added, for 'Adventure Time' achievement. Biome *currentBiome; private: - int lastSentHealth; + float lastRecordedHealthAndAbsorption; + float lastSentHealth; int lastSentFood; bool lastFoodSaturationZero; int lastSentExp; - int invulnerableTime; + int invulnerableTime; int viewDistance; + __int64 lastActionTime; int lastBrupSendTickCount; // 4J Added public: @@ -45,39 +51,34 @@ public: virtual void readAdditionalSaveData(CompoundTag *entityTag); virtual void addAdditonalSaveData(CompoundTag *entityTag); - virtual void withdrawExperienceLevels(int amount); - void initMenu(); + virtual void giveExperienceLevels(int amount); + void initMenu(); -private: - ItemInstanceArray lastCarried; - -public: - virtual ItemInstanceArray getEquipmentSlots(); protected: virtual void setDefaultHeadHeight(); public: virtual float getHeadHeight(); - virtual void tick(); + virtual void tick(); void flushEntitiesToRemove(); - virtual shared_ptr getCarried(int slot); - virtual void die(DamageSource *source); - virtual bool hurt(DamageSource *dmgSource, int dmg); - virtual bool isPlayerVersusPlayer(); - void doTick(bool sendChunks, bool dontDelayChunks = false, bool ignorePortal = false); + virtual shared_ptr getCarried(int slot); + virtual void die(DamageSource *source); + virtual bool hurt(DamageSource *dmgSource, float dmg); + virtual bool canHarmPlayer(shared_ptr target); + bool canHarmPlayer(wstring targetName); // 4J: Added + void doTick(bool sendChunks, bool dontDelayChunks = false, bool ignorePortal = false); void doTickA(); void doChunkSendingTick(bool dontDelayChunks); - void doTickB(bool ignorePortal); + void doTickB(); virtual void changeDimension(int i); private: void broadcast(shared_ptr te, bool delay = false); public: - virtual void take(shared_ptr e, int orgCount); - virtual void swing(); + virtual void take(shared_ptr e, int orgCount); virtual BedSleepingResult startSleepInBed(int x, int y, int z, bool bTestUse = false); public: virtual void stopSleepInBed(bool forcefulWakeUp, bool updateLevelList, bool saveRespawnPoint); - virtual void ride(shared_ptr e); + virtual void ride(shared_ptr e); protected: virtual void checkFallDamage(double ya, bool onGround); public: @@ -94,28 +95,34 @@ private: void nextContainerCounter(); public: + virtual void openTextEdit(shared_ptr sign); virtual bool startCrafting(int x, int y, int z); // 4J added bool return - virtual bool startEnchanting(int x, int y, int z); // 4J added bool return + virtual bool openFireworks(int x, int y, int z); // 4J added + virtual bool startEnchanting(int x, int y, int z, const wstring &name); // 4J added bool return virtual bool startRepairing(int x, int y, int z); // 4J added bool return - virtual bool openContainer(shared_ptr container); // 4J added bool return - virtual bool openFurnace(shared_ptr furnace); // 4J added bool return - virtual bool openTrap(shared_ptr trap); // 4J added bool return + virtual bool openContainer(shared_ptr container); // 4J added bool return + virtual bool openHopper(shared_ptr container); + virtual bool openHopper(shared_ptr container); + virtual bool openFurnace(shared_ptr furnace); // 4J added bool return + virtual bool openTrap(shared_ptr trap); // 4J added bool return virtual bool openBrewingStand(shared_ptr brewingStand); // 4J added bool return - virtual bool openTrading(shared_ptr traderTarget); // 4J added bool return - virtual void slotChanged(AbstractContainerMenu *container, int slotIndex, shared_ptr item); - void refreshContainer(AbstractContainerMenu *menu); - virtual void refreshContainer(AbstractContainerMenu *container, vector > *items); - virtual void setContainerData(AbstractContainerMenu *container, int id, int value); - virtual void closeContainer(); - void broadcastCarriedItem(); - void doCloseContainer(); - void setPlayerInput(float xa, float ya, bool jumping, bool sneaking, float xRot, float yRot); + virtual bool openBeacon(shared_ptr beacon); + virtual bool openTrading(shared_ptr traderTarget, const wstring &name); // 4J added bool return + virtual bool openHorseInventory(shared_ptr horse, shared_ptr container); + virtual void slotChanged(AbstractContainerMenu *container, int slotIndex, shared_ptr item); + void refreshContainer(AbstractContainerMenu *menu); + virtual void refreshContainer(AbstractContainerMenu *container, vector > *items); + virtual void setContainerData(AbstractContainerMenu *container, int id, int value); + virtual void closeContainer(); + void broadcastCarriedItem(); + void doCloseContainer(); + void setPlayerInput(float xa, float ya, bool jumping, bool sneaking); virtual void awardStat(Stat *stat, byteArray param); void disconnect(); - void resetSentInfo(); - virtual void displayClientMessage(int messageId); + void resetSentInfo(); + virtual void displayClientMessage(int messageId); protected: virtual void completeUsingItem(); @@ -126,24 +133,26 @@ public: protected: virtual void onEffectAdded(MobEffectInstance *effect); - virtual void onEffectUpdated(MobEffectInstance *effect); + virtual void onEffectUpdated(MobEffectInstance *effect, bool doRefreshAttributes); virtual void onEffectRemoved(MobEffectInstance *effect); public: virtual void teleportTo(double x, double y, double z); - virtual void crit(shared_ptr entity); - virtual void magicCrit(shared_ptr entity); + virtual void crit(shared_ptr entity); + virtual void magicCrit(shared_ptr entity); void onUpdateAbilities(); ServerLevel *getLevel(); void setGameMode(GameType *mode); void sendMessage(const wstring& message, ChatPacket::EChatPacketMessage type = ChatPacket::e_ChatCustom, int customData = -1, const wstring& additionalMessage = L""); bool hasPermission(EGameCommand command); - // 4J - Don't use - //void updateOptions(shared_ptr packet); + // bool hasPermission(int permissionLevel, EGameCommand command); + //void updateOptions(shared_ptr packet); // 4J: Don't use int getViewDistance(); //bool canChatInColor(); //int getChatVisibility(); + Pos *getCommandSenderWorldPosition(); + void resetLastActionTime(); public: -- cgit v1.2.3