#include "../../src/Library/PokemonLibrary.hpp"
#include "../Core.hpp"
using namespace PkmnLib::Library;

export uint8_t PkmnLib_PokemonLibrary_Construct(PokemonLibrary*& out, PkmnLib::Library::LibrarySettings* settings,
                                                SpeciesLibrary* species, MoveLibrary* moves, ItemLibrary* items,
                                                CreatureLib::Library::GrowthRateLibrary* growthRates,
                                                CreatureLib::Library::TypeLibrary* typeLibrary,
                                                NatureLibrary* natures) {
    Try(out = new PokemonLibrary(settings, species, moves, items, growthRates, typeLibrary, natures));
}

export void PkmnLib_PokemonLibrary_Destruct(const PokemonLibrary* p) { delete p; }
export const NatureLibrary* PkmnLib_PokemonLibrary_GetNatureLibrary(const PokemonLibrary* p) {
    return p->GetNatureLibrary().GetRaw();
}