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

#define BEFORE_EXTRA

#undef BEFORE_EXTRA

class EndDragonFight {

#define AFTER_EXTRA

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

public:
#ifdef ENABLE_VIRTUAL_FAKESYMBOL_ENDDRAGONFIGHT
#endif
    MCAPI EndDragonFight(class BlockSource &);
    MCAPI void loadData(class CompoundTag const &);
    MCAPI void resetSpikeCrystals() const;
    MCAPI void saveData(class CompoundTag &);
    MCAPI void setDragonKilled(class EnderDragon &);
    MCAPI void spawnNewGatewayChunks(class BlockPos const &, bool, bool);
    MCAPI void tick();
    MCAPI void tryRespawn();

//private:
    MCAPI bool _canSpawnNewGateway(class ChunkViewSource *, class BlockPos const &) const;
    MCAPI void _createNewDragon();
    MCAPI struct BuildMatch _findExitPortal();
    MCAPI void _makeEndIslandFeature(class BlockSource &, class BlockPos);
    MCAPI void _placeAndLinkNewGatewayPair();
    MCAPI bool _setEndGatewayBlockActorExitPosition(class BlockSource &, class BlockSource &, class BlockPos const &, class BlockPos const &, bool);
    MCAPI void _setRespawnStage(enum RespawnAnimation);
    MCAPI void _spawnExitPortal(bool);
    MCAPI void _spawnNewGatewayChunksTask(class std::tuple<enum EndDragonFight::GatewayTask, struct EndDragonFight::GateWayGenerator, struct EndDragonFight::GateWayGenerator> &);
    MCAPI void _tickRespawnAnimation(std::vector<struct ActorUniqueID> const &, int);
    MCAPI void _updateCrystalCount();
    MCAPI void _verifyExitPositionsTask(class std::tuple<enum EndDragonFight::GatewayTask, struct EndDragonFight::GateWayGenerator, struct EndDragonFight::GateWayGenerator> &);

private:

};