50 lines
1.1 KiB
C++
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
|