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