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

#define BEFORE_EXTRA
enum class PackOrigin : int {
    PackOrigin_Unknown = 0x0,
    PackOrigin_RealmsUnknown = 0x1,
    PackOrigin_Package = 0x2,
    PackOrigin_Treatment = 0x3,
    PackOrigin_Dev = 0x4,
    PackOrigin_World = 0x5,
    PackOrigin_User = 0x6,
    PackOrigin_TempCache = 0x7,
    PackOrigin_PremiumCache = 0x8,
    PackOrigin_PremiumTempCache = 0x9,
};

enum class PackType : char {
    PackType_Invalid = 0x0,
    PackType_Addon = 0x1,
    PackType_Cached = 0x2,
    PackType_CopyProtected = 0x3,
    PackType_Behavior = 0x4,
    PackType_PersonaPiece = 0x5,
    PackType_Resources = 0x6,
    PackType_Skins = 0x7,
    PackType_WorldTemplate = 0x8,
    PackType_Count = 0x9,
};

enum class PackCategory : int {
    PackCategory_Unknown = 0x0,
    PackCategory_RealmsUnknown = 0x1,
    PackCategory_Standard = 0x2,
    PackCategory_Premium = 0x3,
    PackCategory_Custom = 0x4,
    PackCategory_Subpack = 0x5,
};

#undef BEFORE_EXTRA

class ResourcePack {

#define AFTER_EXTRA

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

public:
#ifdef ENABLE_VIRTUAL_FAKESYMBOL_RESOURCEPACK
#endif
    MCAPI ResourcePack(class Pack &);
    MCAPI bool areKnownFilesValid();
    MCAPI void forEachIn(class Core::Path const &, class std::function<void (class Core::Path const &)>, int, bool) const;
    MCAPI void generateAssetSet();
    MCAPI bool getResource(class Core::Path const &, std::string &, int) const;
    MCAPI bool hasResource(class Core::Path const &, int) const;
    MCAPI void setLocale(std::string const &);
    MCAPI ~ResourcePack();
    MCAPI static class Core::PathBuffer<std::string> const RESOURCE_PACK_BUG_ICON_PATH;
    MCAPI static class Core::PathBuffer<std::string> const RESOURCE_PACK_ICON_PATH;
    MCAPI static class Core::PathBuffer<std::string> const TEXTURES_LIST_PATH;

//private:
    MCAPI void _createSubpack(struct SubpackInfo const &);
    MCAPI void _createSubpacks();

private:

};