BasicItems.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #pragma once
  2. #include "ItemType.h"
  3. class BasicItemType : public ItemType
  4. {
  5. private:
  6. Framework::Text itemName;
  7. float hp;
  8. float durability;
  9. bool solid;
  10. float hungerRecoveryPerHp;
  11. float thirstRecoveryPerHp;
  12. public:
  13. BasicItemType(Framework::Text name,
  14. ModelInfo* model,
  15. Framework::Text itemName,
  16. float hp,
  17. float durability,
  18. int maxStack,
  19. bool solid,
  20. float hungerRecoveryPerHp,
  21. float thirstRecoveryPerHp);
  22. Item* createItem() const override;
  23. Framework::Text getItemName() const;
  24. float getHp() const;
  25. float getDurability() const;
  26. bool isSolid() const;
  27. float getHungerRecoveryPerHp() const;
  28. float getThirstRecoveryPerHp() const;
  29. };
  30. class BasicItemTypeFactory : public SubTypeFactory<ItemType, BasicItemType>
  31. {
  32. public:
  33. BasicItemTypeFactory();
  34. BasicItemType* fromJson(Framework::JSON::JSONObject* zJson) const override;
  35. Framework::JSON::JSONObject* toJson(BasicItemType* zObject) const override;
  36. Framework::JSON::Validator::JSONValidator* getValidator(
  37. Framework::JSON::Validator::ObjectValidationBuilder<
  38. Framework::JSON::Validator::JSONValidator>* builder) const override;
  39. Framework::Text getTypeToken() const override;
  40. };