Files
MinecraftConsoles/Minecraft.Client/MultiPlayerLocalPlayer.h
daoge b3feddfef3 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 97a4399472.

* 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 <lokirautio@gmail.com>
2026-03-03 03:04:10 +08:00

88 lines
2.4 KiB
C++

#pragma once
#include "LocalPlayer.h"
#include "..\Minecraft.World\SharedConstants.h"
class ClientConnection;
class Minecraft;
class Level;
//#define STRESS_TEST_MOVE
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, float dmg);
virtual void heal(float 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, float 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, bool doRefreshAttributes);
virtual void onEffectRemoved(MobEffectInstance *effect);
public:
virtual void closeContainer();
void clientSideCloseContainer();
virtual void hurtTo(float newHealth, ETelemetryChallenges damageSource);
virtual void awardStat(Stat *stat, byteArray param);
void awardStatFromServer(Stat *stat, byteArray param);
void onUpdateAbilities();
bool isLocalPlayer();
protected:
virtual void sendRidingJump();
public:
virtual void sendOpenInventory();
// 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);
// 4J added for testing
#ifdef STRESS_TEST_MOVE
void StressTestMove(double *tempX, double *tempY, double *tempZ);
#endif
};