Files
academy2/modules/morpher/config_data.h
2021-07-31 03:37:28 +03:00

50 lines
1.1 KiB
C++

#ifndef CONFIG_DATA_H
#define CONFIG_DATA_H
#include <core/reference.h>
#include <scene/resources/mesh.h>
/* config data */
class ConfigData {
Dictionary config;
ConfigData();
public:
static ConfigData *get_singleton();
const Dictionary &get() {
return config;
}
};
class AccessoryData {
Dictionary accessory;
AccessoryData();
public:
PoolVector<Dictionary> get_matching_entries(const String &gender,
const String &category, const String &match) const {
const Dictionary &cat = accessory[gender];
const Dictionary &items = cat[category];
PoolVector<Dictionary> ret;
for (const Variant *key = items.next(NULL);
key; key = items.next(key)) {
const String k = *key;
if (k.match(match)) {
const Dictionary &item = items[*key];
ret.push_back(item);
}
}
return ret;
}
Dictionary get_entry(const String &gender,
const String &category, const String &name) const {
const Dictionary &cat = accessory[gender];
const Dictionary &items = cat[category];
return items[name];
}
Ref<ArrayMesh> get_mesh(const Dictionary &entry) const;
static AccessoryData *get_singleton();
};
#endif