add main logic

This commit is contained in:
Beu
2024-12-18 16:57:45 +01:00
parent e0f72cc6ce
commit ab3463fa16
6 changed files with 378 additions and 137 deletions

View File

@@ -0,0 +1,37 @@
class InterfacesConfig {
string Name;
string Author;
string Version;
string ModePattern;
array<LayerConfig> Layers;
array<string> UnloadModules;
InterfacesConfig() {}
InterfacesConfig(const string &in _ParentPath, const string &in _Json) {
const Json::Value@ Data = Json::Parse(_Json);
Name = Data['Name'];
Author = Data['Author'];
Version = Data['Version'];
ModePattern = Data['ModePattern'];
if (Data.HasKey('Layers') && Data['Layers'].GetType() == Json::Type::Array) {
for (uint i = 0; i < Data['Layers'].Length; i++) {
try {
const LayerConfig LayerConfig(_ParentPath, Data['Layers'][i]);
Layers.InsertLast(LayerConfig);
} catch {
warn("Can't load layer \""+ i +"\" of Interface Config: \""+ Name +"\"");
}
}
}
if (Data.HasKey('UnloadModules') && Data['UnloadModules'].GetType() == Json::Type::Array) {
for (uint i = 0; i < Data['UnloadModules'].Length; i++) {
UnloadModules.InsertLast(Data['UnloadModules'][i]);
}
}
}
}