#pragma once #include #include #include #include "Block.h" class GenerationTemplate; class GeneratedStructure : public Framework::ReferenceCounter { private: int* blockIds; Block** blocks; Framework::Vec3 size; Framework::Vec3 minAffectedPos; Framework::Vec3 originPos; GenerationTemplate* t; public: GeneratedStructure( GenerationTemplate* t, Framework::Vec3 originPos, Framework::Vec3 size, Framework::Vec3 minAffectedPos ); ~GeneratedStructure(); void setBlockAt( Framework::Either block, Framework::Vec3 localPos ); bool isBlockAffected( Framework::Vec3 location ) const; Framework::Either generateBlockAt( Framework::Vec3 location ) const; Framework::Vec3 getOriginPos() const; GenerationTemplate* zTemplate() const; };