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

#define BEFORE_EXTRA

#undef BEFORE_EXTRA

class WanderingTraderScheduler {

#define AFTER_EXTRA

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

public:
#ifdef ENABLE_VIRTUAL_FAKESYMBOL_WANDERINGTRADERSCHEDULER
#endif
    MCAPI void readSaveData();
    MCAPI void tick();
    MCAPI void writeSaveData() const;

//private:
    MCAPI std::unique_ptr<class Actor> _createWanderingTrader(class BlockPos const &);
    MCAPI bool _doesWanderingTraderExist() const;
    MCAPI class std::optional<class BlockPos> _findClosestSpawnablePositionInColumn(class BlockPos const &, class BlockSource &);
    MCAPI class BlockPos _getRandomXZAroundPos(class BlockPos const &, int, bool);
    MCAPI class std::optional<class BlockPos> _getSpawnPosFromNearestVillageToPlayerPos(class BlockPos const &, class BlockSource &);
    MCAPI bool _isPosSafeForSpawning(class BlockPos const &, class BlockSource &);

private:
    MCAPI static std::vector<float> const CHANCE_TO_SPAWN_PER_DAY;

};