summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--source/Mobs/Sheep.cpp158
1 files changed, 156 insertions, 2 deletions
diff --git a/source/Mobs/Sheep.cpp b/source/Mobs/Sheep.cpp
index 703482ddb..85081b294 100644
--- a/source/Mobs/Sheep.cpp
+++ b/source/Mobs/Sheep.cpp
@@ -33,7 +33,6 @@ void cSheep::GetDrops(cItems & a_Drops, cEntity * a_Killer)
-
void cSheep::OnRightClicked(cPlayer & a_Player)
{
if ((a_Player.GetEquippedItem().m_ItemType == E_ITEM_SHEARS) && (!m_IsSheared))
@@ -51,9 +50,164 @@ 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_ItemDamage == E_META_DYE_BLACK)
+ {
+ m_WoolColor = 15;
+ m_World->BroadcastEntityMetadata(*this);
+
+ if (!a_Player.IsGameModeCreative())
+ {
+ a_Player.GetInventory().RemoveOneEquippedItem();
+ }
+ }
+ if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_RED)
+ {
+ m_WoolColor = 14;
+ m_World->BroadcastEntityMetadata(*this);
+
+ if (!a_Player.IsGameModeCreative())
+ {
+ a_Player.GetInventory().RemoveOneEquippedItem();
+ }
+ }
+ if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_GREEN)
+ {
+ m_WoolColor = 13;
+ m_World->BroadcastEntityMetadata(*this);
+
+ if (!a_Player.IsGameModeCreative())
+ {
+ a_Player.GetInventory().RemoveOneEquippedItem();
+ }
+ }
+ if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_BROWN)
+ {
+ m_WoolColor = 12;
+ m_World->BroadcastEntityMetadata(*this);
+
+ if (!a_Player.IsGameModeCreative())
+ {
+ a_Player.GetInventory().RemoveOneEquippedItem();
+ }
+ }
+ if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_BLUE)
+ {
+ m_WoolColor = 11;
+ m_World->BroadcastEntityMetadata(*this);
+
+ if (!a_Player.IsGameModeCreative())
+ {
+ a_Player.GetInventory().RemoveOneEquippedItem();
+ }
+ }
+ if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_PURPLE)
+ {
+ m_WoolColor = 10;
+ m_World->BroadcastEntityMetadata(*this);
+
+ if (!a_Player.IsGameModeCreative())
+ {
+ a_Player.GetInventory().RemoveOneEquippedItem();
+ }
+ }
+ if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_CYAN)
+ {
+ m_WoolColor = 9;
+ m_World->BroadcastEntityMetadata(*this);
+
+ if (!a_Player.IsGameModeCreative())
+ {
+ a_Player.GetInventory().RemoveOneEquippedItem();
+ }
+ }
+ if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_LIGHTGRAY)
+ {
+ m_WoolColor = 8;
+ m_World->BroadcastEntityMetadata(*this);
+
+ if (!a_Player.IsGameModeCreative())
+ {
+ a_Player.GetInventory().RemoveOneEquippedItem();
+ }
+ }
+ if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_GRAY)
+ {
+ m_WoolColor = 7;
+ m_World->BroadcastEntityMetadata(*this);
+ if (!a_Player.IsGameModeCreative())
+ {
+ a_Player.GetInventory().RemoveOneEquippedItem();
+ }
+ }
+ if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_PINK)
+ {
+ m_WoolColor = 6;
+ m_World->BroadcastEntityMetadata(*this);
+ if (!a_Player.IsGameModeCreative())
+ {
+ a_Player.GetInventory().RemoveOneEquippedItem();
+ }
+ }
+ if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_LIGHTGREEN)
+ {
+ m_WoolColor = 5;
+ m_World->BroadcastEntityMetadata(*this);
+ if (!a_Player.IsGameModeCreative())
+ {
+ a_Player.GetInventory().RemoveOneEquippedItem();
+ }
+ }
+ if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_YELLOW)
+ {
+ m_WoolColor = 4;
+ m_World->BroadcastEntityMetadata(*this);
+ if (!a_Player.IsGameModeCreative())
+ {
+ a_Player.GetInventory().RemoveOneEquippedItem();
+ }
+ }
+ if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_LIGHTBLUE)
+ {
+ m_WoolColor = 3;
+ m_World->BroadcastEntityMetadata(*this);
+
+ if (!a_Player.IsGameModeCreative())
+ {
+ a_Player.GetInventory().RemoveOneEquippedItem();
+ }
+ }
+ if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_MAGENTA)
+ {
+ m_WoolColor = 2;
+ m_World->BroadcastEntityMetadata(*this);
+ if (!a_Player.IsGameModeCreative())
+ {
+ a_Player.GetInventory().RemoveOneEquippedItem();
+ }
+ }
+ if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_ORANGE)
+ {
+ m_WoolColor = 1;
+ m_World->BroadcastEntityMetadata(*this);
+
+ if (!a_Player.IsGameModeCreative())
+ {
+ a_Player.GetInventory().RemoveOneEquippedItem();
+ }
+ }
+ if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_WHITE)
+ {
+ m_WoolColor = 0;
+ m_World->BroadcastEntityMetadata(*this);
+
+ if (!a_Player.IsGameModeCreative())
+ {
+ a_Player.GetInventory().RemoveOneEquippedItem();
+ }
+ }
+}