MinecraftConsoles/Minecraft.World/ClimateLayer.h
2026-03-11 20:47:58 +03:00

30 lines
713 B
C++

#pragma once
#include "Layer.h"
#include "PerlinNoise.h"
#include "Biome.h"
#include <vector>
class ClimateLayer : public Layer
{
private:
PerlinNoise* temperatureNoise;
PerlinNoise* humidityNoise;
double scale; // ìàñøòàá øóìà (÷åì ìåíüøå, òåì êðóïíåå áèîìû)
struct BiomeCenter {
float temp;
float hum;
Biome* biome;
};
std::vector<BiomeCenter> centers;
void initBiomeCenters(); // çàïîëíèòü öåíòðû áèîìîâ
Biome* getBiomeForClimate(float temp, float hum) const;
public:
ClimateLayer(int64_t seed, int octaves = 4, double scale = 0.01);
virtual ~ClimateLayer();
virtual intArray getArea(int xo, int yo, int w, int h) override;
};