#pragma once #include #include #include #include "ModelInfo.h" class Block; class BlockType : public virtual Framework::ReferenceCounter { private: const int id; bool needsInstance; int initialMaxHP; bool needModelSubscription; bool fluid; char maxFlowDistance; ModelInfo model; public: BlockType(int id, bool needsInstance, ModelInfo model, int initialMaxHP, bool needModelSubscription, bool fluid, char maxFlowDistance); ~BlockType(); Block* createBlock( Framework::Vec3 position, bool passable, float speedModifier); bool doesNeedInstance() const; bool doesNeedModelSubscription() const; bool isFluid() const; char getMaxFlowDistance() const; const ModelInfo& getModelInfo() const; int getId() const; };