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

#define BEFORE_EXTRA

#undef BEFORE_EXTRA

class BaseMoveToGoal {

#define AFTER_EXTRA

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

public:
    /*0*/ virtual ~BaseMoveToGoal();
    /*1*/ virtual bool canUse();
    /*2*/ virtual bool canContinueToUse();
    /*3*/ virtual void __unk_vfn_3();
    /*4*/ virtual void start();
    /*5*/ virtual void stop();
    /*6*/ virtual void tick();
    /*7*/ virtual void appendDebugInfo(std::string &) const = 0;
    /*8*/ virtual void __unk_vfn_8();
    /*9*/ virtual void __unk_vfn_9();
    /*10*/ virtual bool hasReachedTarget() const;
    /*11*/ virtual bool isValidTarget(class BlockSource &, class BlockPos const &) = 0;
    /*12*/ virtual int _nextStartTick();
    /*13*/ virtual bool _canReach(class BlockPos const &);
    /*14*/ virtual void _moveToBlock() = 0;
    /*15*/ virtual class Vec3 _getTargetPosition() const;
    /*16*/ virtual unsigned __int64 _getRepathTime() const;
    /*17*/ virtual bool getPOI(enum POIType);
    /*18*/ virtual class std::weak_ptr<class POIInstance> _getOwnedPOI(enum POIType) const;
    /*19*/ virtual void _createDestroyParticles(class Level &, class BlockSource &, class BlockPos);
    /*20*/ virtual void _playBreakProgressSound(class Level &, class BlockSource &, class BlockPos);
    /*21*/ virtual void _playDestroySound(class Level &, class BlockSource &, class BlockPos);
#ifdef ENABLE_VIRTUAL_FAKESYMBOL_BASEMOVETOGOAL
#endif
    MCAPI BaseMoveToGoal(class Mob &, float, float, float, int, int);

//protected:
    MCAPI class BlockPos _blockAboveTarget() const;

protected:

};