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

#define BEFORE_EXTRA

#undef BEFORE_EXTRA

struct GoalDefinition {

#define AFTER_EXTRA

#undef AFTER_EXTRApublic:
#ifdef ENABLE_VIRTUAL_FAKESYMBOL_GOALDEFINITION
#endif
    MCAPI GoalDefinition();
    MCAPI GoalDefinition(struct GoalDefinition const &);
    MCAPI GoalDefinition(struct GoalDefinition &&);
    MCAPI enum POIType _getPOITypeFromString(std::string);
    MCAPI enum TargetSelectionMethod _getTargetSelectionMethodFromString(std::string const &);
    MCAPI struct GoalDefinition & operator=(struct GoalDefinition const &);
    MCAPI struct GoalDefinition & operator=(struct GoalDefinition &&);
    MCAPI bool parse(class Json::Value &, int);
    MCAPI ~GoalDefinition();
    MCAPI static std::unique_ptr<class Goal> CreateGoal(class Mob &, struct GoalDefinition const &);
    MCAPI static bool GoalExists(std::string const &);
    MCAPI static class std::unordered_map<std::string, class std::function<std::unique_ptr<class Goal> (class Mob &, struct GoalDefinition const &)>, struct std::hash<std::string>, struct std::equal_to<std::string>, class std::allocator<struct std::pair<std::string const, class std::function<std::unique_ptr<class Goal> (class Mob &, struct GoalDefinition const &)>>>> mGoalMap;

};