aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.Client/MultiPlayerLocalPlayer.h
diff options
context:
space:
mode:
authordaoge_cmd <3523206925@qq.com>2026-03-01 12:16:08 +0800
committerdaoge_cmd <3523206925@qq.com>2026-03-01 12:16:08 +0800
commitb691c43c44ff180d10e7d4a9afc83b98551ff586 (patch)
tree3e9849222cbc6ba49f2f1fc6e5fe7179632c7390 /Minecraft.Client/MultiPlayerLocalPlayer.h
parentdef8cb415354ac390b7e89052a50605285f1aca9 (diff)
Initial commit
Diffstat (limited to 'Minecraft.Client/MultiPlayerLocalPlayer.h')
-rw-r--r--Minecraft.Client/MultiPlayerLocalPlayer.h73
1 files changed, 73 insertions, 0 deletions
diff --git a/Minecraft.Client/MultiPlayerLocalPlayer.h b/Minecraft.Client/MultiPlayerLocalPlayer.h
new file mode 100644
index 00000000..8687b36a
--- /dev/null
+++ b/Minecraft.Client/MultiPlayerLocalPlayer.h
@@ -0,0 +1,73 @@
+#pragma once
+#include "LocalPlayer.h"
+#include "..\Minecraft.World\SharedConstants.h"
+
+class ClientConnection;
+class Minecraft;
+class Level;
+
+class MultiplayerLocalPlayer : public LocalPlayer
+{
+private:
+ static const int POSITION_REMINDER_INTERVAL = SharedConstants::TICKS_PER_SECOND;
+public:
+ ClientConnection *connection;
+private:
+ bool flashOnSetHealth;
+public:
+ MultiplayerLocalPlayer(Minecraft *minecraft, Level *level, User *user, ClientConnection *connection);
+private:
+ double xLast, yLast1, yLast2, zLast;
+ float yRotLast, xRotLast;
+public:
+ virtual bool hurt(DamageSource *source, int dmg);
+ virtual void heal(int heal);
+ virtual void tick();
+private:
+ bool lastOnGround;
+ bool lastSneaked;
+ bool lastIdle;
+ bool lastSprinting;
+ int positionReminder;
+public:
+ void sendPosition();
+
+ using Player::drop;
+ virtual shared_ptr<ItemEntity> drop();
+protected:
+ virtual void reallyDrop(shared_ptr<ItemEntity> itemEntity);
+public:
+ virtual void chat(const wstring& message);
+ virtual void swing();
+ virtual void respawn();
+protected:
+ virtual void actuallyHurt(DamageSource *source, int dmg);
+
+ // 4J Added override to capture event for tutorial messages
+ virtual void completeUsingItem();
+
+ // 4J Added overrides to capture events for tutorial
+ virtual void onEffectAdded(MobEffectInstance *effect);
+ virtual void onEffectUpdated(MobEffectInstance *effect);
+ virtual void onEffectRemoved(MobEffectInstance *effect);
+public:
+ virtual void closeContainer();
+ virtual void hurtTo(int newHealth, ETelemetryChallenges damageSource);
+ virtual void awardStat(Stat *stat, byteArray param);
+ void awardStatFromServer(Stat *stat, byteArray param);
+ void onUpdateAbilities();
+ bool isLocalPlayer();
+
+ // 4J - send the custom skin texture data if there is one
+ //void CustomSkin(PBYTE pbData, DWORD dwBytes);
+
+ // 4J Overriding this so we can flag an event for the tutorial
+ virtual void ride(shared_ptr<Entity> e);
+
+ // 4J - added for the Stop Sleeping
+ virtual void StopSleeping();
+
+ // 4J Added
+ virtual void setAndBroadcastCustomSkin(DWORD skinId);
+ virtual void setAndBroadcastCustomCape(DWORD capeId);
+};