#pragma once #include "Item.h" class SpawnEggItem : public Item { private: static const int SPAWN_COUNT = 1; Icon* overlay; public: enum _eSpawnResult { eSpawnResult_OK = 0, eSpawnResult_FailTooManyPigsCowsSheepCats, eSpawnResult_FailTooManyChickens, eSpawnResult_FailTooManySquid, eSpawnResult_FailTooManyBats, eSpawnResult_FailTooManyWolves, eSpawnResult_FailTooManyMooshrooms, eSpawnResult_FailTooManyAnimals, eSpawnResult_FailTooManyMonsters, eSpawnResult_FailTooManyVillagers, eSpawnResult_FailCantSpawnInPeaceful, }; SpawnEggItem(int id); virtual std::wstring getHoverName( std::shared_ptr itemInstance); virtual int getColor(std::shared_ptr item, int spriteLayer); virtual bool hasMultipleSpriteLayers(); virtual Icon* getLayerIcon(int auxValue, int spriteLayer); virtual bool useOn(std::shared_ptr itemInstance, std::shared_ptr player, Level* level, int x, int y, int z, int face, float clickX, float clickY, float clickZ, bool bTestUseOnOnly = false); virtual std::shared_ptr use( std::shared_ptr itemInstance, Level* level, std::shared_ptr player); static std::shared_ptr spawnMobAt( Level* level, int mobId, double x, double y, double z, int* piResult); // 4J Added piResult param // 4J-PB added for dispenser static std::shared_ptr canSpawn(int iAuxVal, Level* level, int* piResult); // 4J: Added for neatness static void DisplaySpawnError(std::shared_ptr player, int result); //@Override void registerIcons(IconRegister* iconRegister); };