// This Header is auto generated by BDSLiteLoader Toolchain
#pragma once
#define AUTO_GENERATED
#include "../Global.h"

#define BEFORE_EXTRA

#undef BEFORE_EXTRA

class StructureFeature {

#define AFTER_EXTRA

#undef AFTER_EXTRA
#ifndef DISABLE_CONSTRUCTOR_PREVENTION_STRUCTUREFEATURE
public:
    class StructureFeature& operator=(class StructureFeature const &) = delete;
    StructureFeature(class StructureFeature const &) = delete;
    StructureFeature() = delete;
#endif

public:
    /*0*/ virtual ~StructureFeature();
    /*1*/ virtual void initMobSpawnTypes(class HardcodedSpawnAreaRegistry &);
    /*2*/ virtual bool postProcess(class BlockSource &, class Random &, int, int);
    /*3*/ virtual bool getNearestGeneratedFeature(class Dimension &, class BiomeSource &, class BlockPos const &, class BlockPos &);
    /*4*/ virtual bool isFeatureChunk(class BiomeSource const &, class Random &, class ChunkPos const &, unsigned int) = 0;
    /*5*/ virtual std::unique_ptr<class StructureStart> createStructureStart(class Dimension &, class BiomeSource &, class Random &, class ChunkPos const &) = 0;
    /*6*/ virtual class StructureStart * getStructureAt(int, int, int);
    /*7*/ virtual std::vector<class BlockPos> getGuesstimatedFeaturePositions();
#ifdef ENABLE_VIRTUAL_FAKESYMBOL_STRUCTUREFEATURE
#endif
    MCAPI StructureFeature(unsigned int);
    MCAPI void createBlueprints(class Dimension &, class ChunkPos const &, class BiomeSource &);
    MCAPI void debugRender();
    MCAPI std::vector<class ChunkPos> findFarAwayStructures(class buffer_span<class ChunkPos>, unsigned int);
    MCAPI void foreachIntersectingStructureStart(class BoundingBox const &, class std::function<void (class StructureStart &)>);
    MCAPI void garbageCollectBlueprints(class buffer_span<class ChunkPos>, unsigned int);
    MCAPI void generateHardcodedMobSpawns(class LevelChunk &);
    MCAPI bool isInsideBoundingFeature(int, int, int);
    MCAPI void postProcessMobsAt(class BlockSource &, int, int, class Random &);
    MCAPI static bool findNearestFeaturePositionBySpacing(class Dimension &, class StructureFeature &, class BiomeSource &, class BlockPos const &, class BlockPos &, int, int, int, bool, int);

//protected:
    MCAPI void addFeature(class Dimension &, class Random &, class ChunkPos const &, class BiomeSource &);

protected:

};