aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.World/EntityDamageSource.cpp
diff options
context:
space:
mode:
authordaoge <3523206925@qq.com>2026-03-03 03:04:10 +0800
committerGitHub <noreply@github.com>2026-03-03 03:04:10 +0800
commitb3feddfef372618c8a9d7a0abcaf18cfad866c18 (patch)
tree267761c3bb39241ba5c347bfbe2254d06686e287 /Minecraft.World/EntityDamageSource.cpp
parent84c31a2331f7a0ec85b9d438992e244f60e5020f (diff)
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 <lokirautio@gmail.com>
Diffstat (limited to 'Minecraft.World/EntityDamageSource.cpp')
-rw-r--r--Minecraft.World/EntityDamageSource.cpp37
1 files changed, 30 insertions, 7 deletions
diff --git a/Minecraft.World/EntityDamageSource.cpp b/Minecraft.World/EntityDamageSource.cpp
index 8c7a5ee1..22237bf1 100644
--- a/Minecraft.World/EntityDamageSource.cpp
+++ b/Minecraft.World/EntityDamageSource.cpp
@@ -5,7 +5,7 @@
#include "net.minecraft.network.packet.h"
//EntityDamageSource::EntityDamageSource(const wstring &msgId, shared_ptr<Entity> entity) : DamageSource(msgId)
-EntityDamageSource::EntityDamageSource(ChatPacket::EChatPacketMessage msgId, shared_ptr<Entity> entity) : DamageSource(msgId)
+EntityDamageSource::EntityDamageSource(ChatPacket::EChatPacketMessage msgId, ChatPacket::EChatPacketMessage msgWithItemId, shared_ptr<Entity> entity) : DamageSource(msgId, msgWithItemId)
{
this->entity = entity;
}
@@ -21,18 +21,41 @@ shared_ptr<Entity> EntityDamageSource::getEntity()
// //return I18n.get("death." + msgId, player.name, entity.getAName());
//}
-shared_ptr<ChatPacket> EntityDamageSource::getDeathMessagePacket(shared_ptr<Player> player)
+shared_ptr<ChatPacket> EntityDamageSource::getDeathMessagePacket(shared_ptr<LivingEntity> player)
{
+ shared_ptr<ItemInstance> held = (entity != NULL) && entity->instanceof(eTYPE_LIVINGENTITY) ? dynamic_pointer_cast<LivingEntity>(entity)->getCarriedItem() : nullptr;
wstring additional = L"";
- if(entity->GetType() == eTYPE_SERVERPLAYER)
+
+ if (entity->instanceof(eTYPE_SERVERPLAYER))
+ {
+ additional = dynamic_pointer_cast<Player>(entity)->name;
+ }
+ else if (entity->instanceof(eTYPE_MOB))
+ {
+ shared_ptr<Mob> mob = dynamic_pointer_cast<Mob>(entity);
+ if (mob->hasCustomName())
+ {
+ additional = mob->getCustomName();
+ }
+ }
+
+ if ( (held != NULL) && held->hasCustomHoverName())
{
- shared_ptr<Player> sourcePlayer = dynamic_pointer_cast<Player>(entity);
- if(sourcePlayer != NULL) additional = sourcePlayer->name;
+ return shared_ptr<ChatPacket>( new ChatPacket(player->getNetworkName(), m_msgWithItemId, entity->GetType(), additional, held->getHoverName() ) );
+ }
+ else
+ {
+ return shared_ptr<ChatPacket>( new ChatPacket(player->getNetworkName(), m_msgId, entity->GetType(), additional ) );
}
- return shared_ptr<ChatPacket>( new ChatPacket(player->name, m_msgId, entity->GetType(), additional ) );
}
bool EntityDamageSource::scalesWithDifficulty()
{
- return entity != NULL && dynamic_pointer_cast<Mob>(entity) && !(dynamic_pointer_cast<Player>(entity));
+ return (entity != NULL) && entity->instanceof(eTYPE_LIVINGENTITY) && !entity->instanceof(eTYPE_PLAYER);
+}
+
+// 4J: Copy function
+DamageSource *EntityDamageSource::copy()
+{
+ return new EntityDamageSource(*this);
} \ No newline at end of file