From 4af5868322757b892d976d9549633f40f0e7eeb4 Mon Sep 17 00:00:00 2001 From: tonibm19 Date: Sun, 10 Nov 2013 17:05:19 +0100 Subject: Fixes (SEE DESC) Entity metadata is broadcasted. If player is in survival, his equipped item is removed. If you have green dye, and sheep is green, your equipped item won't be removed. --- source/Mobs/Sheep.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'source/Mobs/Sheep.cpp') diff --git a/source/Mobs/Sheep.cpp b/source/Mobs/Sheep.cpp index e8d0be2ae..bda4ccff8 100644 --- a/source/Mobs/Sheep.cpp +++ b/source/Mobs/Sheep.cpp @@ -1,3 +1,4 @@ + #include "Globals.h" // NOTE: MSVC stupidness requires this to be the same across all modules #include "Sheep.h" @@ -49,8 +50,13 @@ void cSheep::OnRightClicked(cPlayer & a_Player) Drops.push_back(cItem(E_BLOCK_WOOL, NumDrops, m_WoolColor)); m_World->SpawnItemPickups(Drops, GetPosX(), GetPosY(), GetPosZ(), 10); } - if (a_Player.GetEquippedItem().m_ItemType == E_ITEM_DYE) + if ((a_Player.GetEquippedItem().m_ItemType == E_ITEM_DYE) && (m_WoolColor != 15 - a_Player.GetEquippedItem().m_ItemDamage)) { m_WoolColor = 15 - a_Player.GetEquippedItem().m_ItemDamage; + if (!a_Player.IsGameModeCreative()) + { + a_Player.GetInventory().RemoveOneEquippedItem(); + } + m_World->BroadcastEntityMetadata(*this); } } -- cgit v1.2.3