#include "GrasslandBiom.h" #include "BlockType.h" #include "BasicBlocks.h" #include "FastNoiseLite.h" #include "FastNoiseWrapper.h" #include "TreeTemplate.h" GrasslandBiom::GrasslandBiom() : BiomGenerator() { addTemplateGenerator( new TreeTemplate( 0.02f, BirchBlockType::INSTANCE, LeavesBlockType::INSTANCE, 8, 15 ) ); addTemplateGenerator( new TreeTemplate( 0.01f, BeechBlockType::INSTANCE, LeavesBlockType::INSTANCE, 8, 13 ) ); addTemplateGenerator( new TreeTemplate( 0.005f, OakBlockType::INSTANCE, LeavesBlockType::INSTANCE, 10, 15 ) ); heightNoise = 0; } GrasslandBiom::~GrasslandBiom() { if( heightNoise ) heightNoise->release(); } Framework::Either GrasslandBiom::generateSurfaceBlock( int x, int y, int z ) { return DirtBlockType::ID; } Framework::Either GrasslandBiom::generateBelowSurfaceBlock( int x, int y, int z ) { return StoneBlockType::ID; } Noise* GrasslandBiom::zHeightMapNoise( int seed ) { if( heightNoise ) return heightNoise; FastNoiseLite* noise = new FastNoiseLite( seed ); noise->SetNoiseType( FastNoiseLite::NoiseType::NoiseType_ValueCubic ); FastNoiseWrapper* wrapper = new FastNoiseWrapper( noise, seed ); wrapper->setMultiplier( 0.2f ); heightNoise = wrapper; return heightNoise; }