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

#define BEFORE_EXTRA
class BlockLegacy;
#include "Bedrock.hpp"
#undef BEFORE_EXTRA

class BlockPalette {

#define AFTER_EXTRA
public:
    std::mutex mLegacyBlockStatesConversionWarningMutex;
    std::set<std::pair<int,int>> mLegacyBlockStatesConversionWarningSet;
    std::map<std::string,BlockLegacy const*> mNameLookup;
    std::map<CompoundTag,Block const*>mBlockFromSerId;
    std::vector<Block const*>mBlockFromRuntimeId;
    Level *mLevel;
#undef AFTER_EXTRA
#ifndef DISABLE_CONSTRUCTOR_PREVENTION_BLOCKPALETTE
public:
    class BlockPalette& operator=(class BlockPalette const &) = delete;
    BlockPalette(class BlockPalette const &) = delete;
    BlockPalette() = delete;
#endif

public:
#ifdef ENABLE_VIRTUAL_FAKESYMBOL_BLOCKPALETTE
#endif
    MCAPI BlockPalette(struct BlockPalette::ConstructorToken);
    MCAPI class Block const & getBlock(class CompoundTag const &) const;
    MCAPI class Block const & getBlock(unsigned int const &) const;
    MCAPI class Block const & getBlockFromLegacyData(struct NewBlockID, unsigned int) const;
    MCAPI class BlockLegacy const * getBlockLegacy(std::string const &) const;
    MCAPI void initFromBlockDefinitions();
    MCAPI class Block const & switchBlock(class Block const &, class BlockLegacy const &) const;
    MCAPI ~BlockPalette();

//private:
    MCAPI bool shouldWarnFor(struct NewBlockID, unsigned short) const;

private:

};