BasicItems.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  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. Framework::RCArray<Framework::Text> groups);
  23. Item* createItem() const override;
  24. Framework::Text getItemName() const;
  25. float getHp() const;
  26. float getDurability() const;
  27. bool isSolid() const;
  28. float getHungerRecoveryPerHp() const;
  29. float getThirstRecoveryPerHp() const;
  30. };
  31. class BasicItemTypeFactory : public SubTypeFactory<ItemType, BasicItemType>
  32. {
  33. public:
  34. BasicItemTypeFactory();
  35. BasicItemType* fromJson(Framework::JSON::JSONObject* zJson) const override;
  36. Framework::JSON::JSONObject* toJson(BasicItemType* zObject) const override;
  37. Framework::JSON::Validator::JSONValidator* getValidator(
  38. Framework::JSON::Validator::ObjectValidationBuilder<
  39. Framework::JSON::Validator::JSONValidator>* builder) const override;
  40. Framework::Text getTypeToken() const override;
  41. };