diff options
| author | daoge <3523206925@qq.com> | 2026-03-03 03:04:10 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-03-03 03:04:10 +0800 |
| commit | b3feddfef372618c8a9d7a0abcaf18cfad866c18 (patch) | |
| tree | 267761c3bb39241ba5c347bfbe2254d06686e287 /Minecraft.World/EntityDamageSource.cpp | |
| parent | 84c31a2331f7a0ec85b9d438992e244f60e5020f (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.cpp | 37 |
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 |
