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

#define BEFORE_EXTRA

#undef BEFORE_EXTRA

class ArmorItem : public Item {

#define AFTER_EXTRA

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

public:
    /*0*/ virtual ~ArmorItem();
    /*5*/ virtual void __unk_vfn_5();
    /*26*/ virtual void __unk_vfn_26();
    /*27*/ virtual void __unk_vfn_27();
    /*31*/ virtual void __unk_vfn_31();
    /*32*/ virtual void __unk_vfn_32();
    /*34*/ virtual void __unk_vfn_34();
    /*37*/ virtual void __unk_vfn_37();
    /*38*/ virtual void appendFormattedHovertext(class ItemStackBase const &, class Level &, std::string &, bool) const;
    /*39*/ virtual bool isValidRepairItem(class ItemStackBase const &, class ItemStackBase const &) const;
    /*40*/ virtual int getEnchantSlot() const;
    /*41*/ virtual int getEnchantValue() const;
    /*42*/ virtual int getArmorValue() const;
    /*43*/ virtual void __unk_vfn_43();
    /*45*/ virtual int getDamageChance(int) const;
    /*46*/ virtual void __unk_vfn_46();
    /*47*/ virtual void __unk_vfn_47();
    /*48*/ virtual class Color getColor(class CompoundTag const *, class ItemDescriptor const &) const;
    /*49*/ virtual void __unk_vfn_49();
    /*50*/ virtual void __unk_vfn_50();
    /*53*/ virtual bool isTintable() const;
    /*54*/ virtual int buildIdAux(short, class CompoundTag const *) const;
    /*55*/ virtual class ItemDescriptor buildDescriptor(short, class CompoundTag const *) const;
    /*56*/ virtual class ItemStack & use(class ItemStack &, class Player &) const;
    /*57*/ virtual bool dispense(class BlockSource &, class Container &, int, class Vec3 const &, unsigned char) const;
    /*62*/ virtual void hurtEnemy(class ItemStack &, class Mob *, class Mob *) const;
    /*64*/ virtual bool mineBlock(class ItemStack &, class Block const &, int, int, int, class Actor *) const;
    /*79*/ virtual void __unk_vfn_79();
    /*80*/ virtual void __unk_vfn_80();
    /*85*/ virtual struct TextureUVCoordinateSet const & getIcon(class ItemStackBase const &, int, bool) const;
    /*87*/ virtual class Item & setIcon(std::string const &, int);
    /*90*/ virtual void __unk_vfn_90();
    /*97*/ virtual void __unk_vfn_97();
    /*100*/ virtual float getArmorKnockbackResistance() const;
#ifdef ENABLE_VIRTUAL_FAKESYMBOL_ARMORITEM
    MCVAPI bool isArmor() const;
#endif
    MCAPI ArmorItem(std::string const &, int, class ArmorItem::ArmorMaterial const &, int, enum ArmorSlot);
    MCAPI bool hasCustomColor(class CompoundTag const *) const;
    MCAPI void playEquipSound(class BlockSource &, enum ArmorSlot, class Player &) const;
    MCAPI void setColor(class ItemStackBase &, class Color const &) const;
    MCAPI static class ArmorItem::ArmorMaterial const CHAIN;
    MCAPI static class ArmorItem::ArmorMaterial const DIAMOND;
    MCAPI static class ArmorItem::ArmorMaterial const ELYTRA;
    MCAPI static class ArmorItem::ArmorMaterial const GOLD;
    MCAPI static class ArmorItem::ArmorMaterial const IRON;
    MCAPI static class ArmorItem::ArmorMaterial const LEATHER;
    MCAPI static class ArmorItem::ArmorMaterial const NETHERITE;
    MCAPI static class ArmorItem::ArmorMaterial const TURTLE;
    MCAPI static bool dispenseArmor(class BlockSource &, class Container &, int, class Vec3 const &, unsigned char, enum ArmorSlot);
    MCAPI static enum ArmorSlot getSlotForItem(class ItemStackBase const &);
    MCAPI static bool isFlyEnabled(class ItemInstance const &);
    MCAPI static int const mHealthPerSlot[];

};