// 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 PistonBlockActor : public BlockActor {

#define AFTER_EXTRA

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

public:
    /*0*/ virtual ~PistonBlockActor();
    /*1*/ virtual void load(class Level &, class CompoundTag const &, class DataLoadHelper &);
    /*2*/ virtual bool save(class CompoundTag &) const;
    /*7*/ virtual void tick(class BlockSource &);
    /*13*/ virtual void __unk_vfn_13();
    /*14*/ virtual void onRemoved(class BlockSource &);
    /*17*/ virtual void __unk_vfn_17();
    /*28*/ virtual class PistonBlockActor * getOwningPiston(class BlockSource &);
    /*29*/ virtual void __unk_vfn_29();
    /*30*/ virtual void __unk_vfn_30();
    /*31*/ virtual float getDeletionDelayTimeSeconds() const;
    /*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 &);
#ifdef ENABLE_VIRTUAL_FAKESYMBOL_PISTONBLOCKACTOR
#endif
    MCAPI void moveEntityLastProgress(class Actor &, class Vec3);

//protected:
    MCAPI bool _shouldWaterlogAttachedBlock(class BlockSource &, class BlockPos const &, class Block const &, class Block const &) const;

//private:
    MCAPI bool _attachedBlockWalker(class BlockSource &, class BlockPos const &, unsigned char, unsigned char);
    MCAPI bool _checkAttachedBlocks(class BlockSource &);
    MCAPI void _checkInceptionAchievement(class BlockActor &, class BlockSource &, class BlockPos const &);
    MCAPI bool _handleSlimeConnections(class BlockSource &, class BlockPos const &, unsigned char, unsigned char);
    MCAPI bool _hasBlockAttached(class BlockPos const &);
    MCAPI void _moveCollidedEntities(class BlockSource &);
    MCAPI void _moveCollidedEntitiesHelper(class BlockSource &, class AABB const &, class BlockPos const &, class Actor *, unsigned int);
    MCAPI void _sortAttachedBlocks(class BlockSource &);
    MCAPI void _spawnBlocks(class BlockSource &);
    MCAPI void _spawnMovingBlocks(class BlockSource &);

protected:

private:

};