
#include "UserData.hpp"
#include "UserDataStorage.hpp"

namespace Porygon::UserData {
    extern "C" {
    void RegisterUserDataType(uint32_t id) {
        auto ud = new UserData({});
        UserDataStorage::RegisterType(id, ud);
    }

    void RegisterUserDataField(uint32_t typeId, uint32_t fieldId, UserDataField *field) {
        auto ud = UserDataStorage::GetUserDataType(typeId);
        ud->CreateField(fieldId, field);
    }

    int32_t GetUserDataFieldCount(uint32_t typeId) {
        auto ud = UserDataStorage::GetUserDataType(typeId);
        return ud->GetFieldCount();
    }
    }
}