ItemType.h 890 B

1234567891011121314151617181920212223242526272829303132333435
  1. #pragma once
  2. #include <Text.h>
  3. #include <JSON.h>
  4. #include <Trie.h>
  5. #include <Writer.h>
  6. #include <Model3D.h>
  7. #include <Textur.h>
  8. class Item;
  9. class ItemStack;
  10. class ItemSkill;
  11. class ItemSkillLevelUpRule;
  12. class ItemType : public virtual Framework::ReferenceCounter
  13. {
  14. protected:
  15. const int id;
  16. const char* defaultName;
  17. ItemType( int id, const char* defaultName );
  18. virtual void loadSuperItem( Item* zItem, Framework::StreamReader* zReader ) const;
  19. public:
  20. ~ItemType();
  21. int getId() const;
  22. virtual Item* createItem() const = 0;
  23. virtual ItemStack* createItemStack( int size ) const;
  24. virtual Item* loadItem( Framework::StreamReader* zReader ) const;
  25. virtual Framework::Model3DData* getItemModel() const = 0;
  26. virtual Framework::Model3DTextur* getItemTextur() const = 0;
  27. const char* getDefaultItemName() const;
  28. };