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

#define BEFORE_EXTRA

#undef BEFORE_EXTRA

class Feature {

#define AFTER_EXTRA

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

public:
    /*0*/ virtual ~Feature();
    /*1*/ virtual bool place(class BlockSource &, class BlockPos const &, class Random &) const = 0;
    /*2*/ virtual class std::optional<class BlockPos> place(class IBlockPlacementTarget &, class BlockPos const &, class Random &) const;
    /*3*/ virtual class Block const & getBlockToPlace(class Random &) const;
#ifdef ENABLE_VIRTUAL_FAKESYMBOL_FEATURE
#endif

//protected:
    MCAPI bool _placeBlock(class BlockSource &, class BlockPos const &, class Block const &) const;

protected:

};