#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; };