BlockComponent.h 762 B

12345678910111213141516171819202122232425262728
  1. #pragma once
  2. #include <Reader.h>
  3. #include <ReferenceCounter.h>
  4. #include <Writer.h>
  5. #include <XML.h>
  6. class Block;
  7. class Entity;
  8. class NetworkMessage;
  9. class BlockComponent : public virtual Framework::ReferenceCounter
  10. {
  11. public:
  12. BlockComponent();
  13. virtual void initialize(Block* zBlock) = 0;
  14. virtual bool tick(int numTicks) = 0;
  15. virtual void api(Framework::StreamReader* zRequest,
  16. NetworkMessage* zResponse,
  17. Entity* zSource)
  18. = 0;
  19. virtual Framework::XML::Element* getTooltipUIML() const = 0;
  20. virtual void loadComponent(Framework::StreamReader* zReader) = 0;
  21. virtual void saveComponent(Framework::StreamWriter* zWriter) const = 0;
  22. virtual bool isLightSource() const;
  23. virtual int getLightColor() const;
  24. };