diff options
Diffstat (limited to 'source/Mobs')
-rw-r--r-- | source/Mobs/Sheep.cpp | 158 |
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(); + } + } +} |