#ifndef WORLD_GENERATOR_HPP_
#define WORLD_GENERATOR_HPP_

#include <Chunk/Chunk.hpp>
#include <GeneratorNode/GeneratorNode.hpp>

/**
 * @brief Abstract base class for world generators for different world types.
 */
class WorldGenerator
{
public:
    virtual ~WorldGenerator() = default;

    /**
     * @brief Generate the specified chunk.
     * 
     * @param chunk The chunk to generate (initially empty).
     */
    virtual void generateChunk(Chunk &chunk) = 0;

    /**
     * @brief Returns the generator node for weather in this world.
     */
    virtual GeneratorNode getWeatherGenNode() = 0;
};

#endif