This commit is contained in:
Aria 2025-03-21 22:23:30 +11:00
commit 9c94d113d3
Signed by untrusted user who does not match committer: aria
GPG key ID: 19AB7AA462B8AB3B
10260 changed files with 1237388 additions and 0 deletions

View file

@ -0,0 +1,52 @@
#ifndef STAR_TECH_DATABASE_HPP
#define STAR_TECH_DATABASE_HPP
#include "StarJson.hpp"
#include "StarBiMap.hpp"
#include "StarGameTypes.hpp"
namespace Star {
STAR_EXCEPTION(TechDatabaseException, StarException);
STAR_CLASS(TechDatabase);
enum class TechType {
Head,
Body,
Legs
};
extern EnumMap<TechType> const TechTypeNames;
struct TechConfig {
String name;
String path;
Json parameters;
TechType type;
StringList scripts;
Maybe<String> animationConfig;
String description;
String shortDescription;
Rarity rarity;
String icon;
};
class TechDatabase {
public:
TechDatabase();
bool contains(String const& techName) const;
TechConfig tech(String const& techName) const;
private:
TechConfig parseTech(Json const& config, String const& path) const;
StringMap<TechConfig> m_tech;
};
}
#endif