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

#define BEFORE_EXTRA

#undef BEFORE_EXTRA

class FillingContainer : public Container {

#define AFTER_EXTRA

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

public:
    /*0*/ virtual ~FillingContainer();
    /*2*/ virtual void serverInitItemStackIds(int, int, class std::function<void (int, class ItemStack const &)>);
    /*5*/ virtual class ItemStack const & getItem(int) const;
    /*9*/ virtual void setItem(int, class ItemStack const &);
    /*10*/ virtual void setItemWithForceBalance(int, class ItemStack const &, bool);
    /*11*/ virtual void removeItem(int, int);
    /*14*/ virtual int getContainerSize() const;
    /*15*/ virtual int getMaxStackSize() const;
    /*16*/ virtual void startOpen(class Player &);
    /*17*/ virtual void stopOpen(class Player &);
    /*22*/ virtual void __unk_vfn_22();
    /*23*/ virtual void __unk_vfn_23();
    /*32*/ virtual bool add(class ItemStack &);
    /*33*/ virtual bool canAdd(class ItemStack const &) const;
    /*34*/ virtual void dropAll(bool);
    /*35*/ virtual void clearSlot(int);
    /*36*/ virtual int clearInventory(int);
    /*37*/ virtual void load(class ListTag const &, class SemVersion const &, class Level &);
    /*38*/ virtual void doDrop(class ItemStack &, bool);
    /*39*/ virtual int getEmptySlotsCount() const;
    /*40*/ virtual int getFirstEmptySlot() const;
#ifdef ENABLE_VIRTUAL_FAKESYMBOL_FILLINGCONTAINER
#endif
    MCAPI FillingContainer(class Player *, int, enum ContainerType);
    MCAPI void dropAll(int, int, bool);
    MCAPI void dropSlot(int, bool, bool, bool);
    MCAPI int getSlotWithItem(class ItemStack const &, bool, bool) const;
    MCAPI bool removeResource(int);
    MCAPI int removeResource(class ItemStack const &, bool, bool, int);
    MCAPI std::unique_ptr<class ListTag> save();

//protected:
    MCAPI int _addResource(class ItemStack const &);
    MCAPI void _fixBackwardCompabilityItem(class ItemStack &);
    MCAPI int _getEmptySlotsCount(int, int) const;
    MCAPI int _getFreeSlot() const;
    MCAPI int _getSlot(int) const;
    MCAPI int _getSlotWithRemainingSpace(class ItemStack const &) const;
    MCAPI void _release(int);

protected:

};