Update CreatureLib.
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2020-05-27 17:26:25 +02:00
parent 0d111739f4
commit f42ce8865d
53 changed files with 316 additions and 269 deletions

View File

@@ -12,11 +12,11 @@
namespace PkmnLib::Library {
class NatureLibrary {
private:
Arbutils::Collections::Dictionary<Arbutils::CaseInsensitiveConstString, const Nature*> _items;
ArbUt::Dictionary<ArbUt::CaseInsensitiveConstString, const Nature*> _items;
public:
explicit NatureLibrary(size_t size = 32) noexcept
: _items(Arbutils::Collections::Dictionary<Arbutils::CaseInsensitiveConstString, const Nature*>(size)) {}
: _items(ArbUt::Dictionary<ArbUt::CaseInsensitiveConstString, const Nature*>(size)) {}
~NatureLibrary() {
for (auto& kv : _items) {
@@ -24,27 +24,27 @@ namespace PkmnLib::Library {
}
}
inline void LoadNature(const Arbutils::CaseInsensitiveConstString& name, const Nature* nature) {
inline void LoadNature(const ArbUt::CaseInsensitiveConstString& name, const Nature* nature) {
_items.Insert(name, nature);
}
inline const Nature* GetNatureByName(const Arbutils::CaseInsensitiveConstString& name) const {
inline const Nature* GetNatureByName(const ArbUt::CaseInsensitiveConstString& name) const {
return _items[name];
}
inline const Arbutils::CaseInsensitiveConstString&
GetRandomNatureName(Arbutils::Random rand = Arbutils::Random()) const {
inline const ArbUt::CaseInsensitiveConstString&
GetRandomNatureName(ArbUt::Random rand = ArbUt::Random()) const {
auto i = rand.Get(_items.Count());
auto& map = _items.GetStdMap();
return std::next(std::begin(map), i)->first;
}
inline const Arbutils::CaseInsensitiveConstString& GetRandomNatureName(Arbutils::Random* rand) const {
inline const ArbUt::CaseInsensitiveConstString& GetRandomNatureName(ArbUt::Random* rand) const {
auto i = rand->Get(_items.Count());
auto& map = _items.GetStdMap();
return std::next(std::begin(map), i)->first;
}
inline Arbutils::CaseInsensitiveConstString GetNatureName(const Nature* nature) {
inline ArbUt::CaseInsensitiveConstString GetNatureName(const Nature* nature) {
for (const auto& v : _items) {
if (v.second == nature) {
return v.first;