#pragma once #include #include #include #include class Block; class Entity; class NetworkMessage; class BlockComponent : public virtual Framework::ReferenceCounter { public: BlockComponent(); virtual void initialize(Block* zBlock) = 0; virtual bool tick(int numTicks) = 0; virtual void api(Framework::StreamReader* zRequest, NetworkMessage* zResponse, Entity* zSource) = 0; virtual Framework::XML::Element* getTooltipUIML() const = 0; virtual void loadComponent(Framework::StreamReader* zReader) = 0; virtual void saveComponent(Framework::StreamWriter* zWriter) const = 0; virtual bool isLightSource() const; virtual int getLightColor() const; };