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

#define BEFORE_EXTRA

#undef BEFORE_EXTRA

class CommandBlockActor : public BlockActor {

#define AFTER_EXTRA

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

public:
    /*0*/ virtual ~CommandBlockActor();
    /*1*/ virtual void load(class Level &, class CompoundTag const &, class DataLoadHelper &);
    /*2*/ virtual bool save(class CompoundTag &) const;
    /*4*/ virtual void saveBlockData(class CompoundTag &, class BlockSource &) const;
    /*5*/ virtual void loadBlockData(class CompoundTag const &, class BlockSource &, class DataLoadHelper &);
    /*6*/ virtual void onCustomTagLoadDone(class BlockSource &);
    /*9*/ virtual void onChanged(class BlockSource &);
    /*12*/ virtual void onPlace(class BlockSource &);
    /*13*/ virtual void __unk_vfn_13();
    /*17*/ virtual void __unk_vfn_17();
    /*22*/ virtual std::string const & getCustomName() const;
    /*23*/ virtual std::string const & getFilteredCustomName(class UIProfanityContext const &);
    /*25*/ virtual void setCustomName(std::string const &);
    /*29*/ virtual void __unk_vfn_29();
    /*30*/ virtual void __unk_vfn_30();
    /*32*/ virtual void __unk_vfn_32();
    /*33*/ virtual void __unk_vfn_33();
    /*34*/ virtual std::unique_ptr<class BlockActorDataPacket> _getUpdatePacket(class BlockSource &);
    /*35*/ virtual void _onUpdatePacket(class CompoundTag const &, class BlockSource &);
    /*36*/ virtual bool _playerCanUpdate(class Player const &) const;
#ifdef ENABLE_VIRTUAL_FAKESYMBOL_COMMANDBLOCKACTOR
#endif
    MCAPI class CommandBlock const * getCommandBlock(class BlockSource &) const;
    MCAPI bool getConditionalMode(class BlockSource &) const;
    MCAPI enum CommandBlockMode getMode(class BlockSource &) const;
    MCAPI bool markConditionMet(class BlockSource &);
    MCAPI bool performCommand(class BlockSource &);
    MCAPI void updateBlock(class BlockSource &, std::string const &, std::string const &, enum CommandBlockMode, bool, bool, bool, int, bool);

//private:
    MCAPI void _setAutomatic(class BlockSource &, bool, enum CommandBlockMode);

private:

};