Item.h 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #pragma once
  2. #include "ItemType.h"
  3. #include "Reader.h"
  4. class Item : public virtual Framework::ReferenceCounter
  5. {
  6. private:
  7. ItemType *zType;
  8. float damage;
  9. float maxDamage;
  10. float durability;
  11. float maxDurability;
  12. bool eatable;
  13. bool placeable;
  14. bool equippable;
  15. int maxStackSize;
  16. Framework::Text name;
  17. private:
  18. Item( ItemType *zType, float damage );
  19. Item( ItemType *zType );
  20. Item( Item *zClone );
  21. Item( Framework::StreamReader *zItemInfo );
  22. public:
  23. virtual void tick();
  24. const ItemType *zItemType() const;
  25. float getDamage() const;
  26. float getDurability() const;
  27. bool isEatable() const;
  28. bool isPlaceable() const;
  29. bool isEquippable() const;
  30. float getMaxDurability() const;
  31. int getMaxStackSize() const;
  32. float getMaxDamage() const;
  33. virtual void applyInventoryEffects( Entity *zTarget );
  34. virtual void removeInventoryEffects( Entity *zTarget );
  35. virtual void applyEquippedEffects( Entity *zTarget );
  36. virtual void removeEquippedEffects( Entity *zTarget );
  37. virtual void applyFoodEffects( Entity *zTarget );
  38. friend ItemType;
  39. };