#pragma once #include #include "GeneratorTemplate.h" #include "JsonExpression.h" #include "Noise.h" class StructureTemplateCollection : public virtual Framework::ReferenceCounter { private: Noise* activeNoise; Noise* structureNoise; double threshold; Framework::RCArray structures; Framework::Vec3 minAffected; Framework::Vec3 maxAffected; JBoolExpression* condition; public: StructureTemplateCollection( Framework::JSON::JSONValue* zConfig, JExpressionMemory* zMemory); ~StructureTemplateCollection(); void generateStructures(int x, int y, int z, int dimensionId, JExpressionMemory* zMemory, Framework::Vec3 minPos, Framework::Vec3 maxPos, Framework::RCArray* zResult); const Framework::RCArray& getStructures() const; Framework::Vec3 getMinAffected() const; Framework::Vec3 getMaxAffected() const; static Framework::JSON::Validator::JSONValidator* getConfigValidator(); };