DP-S-Script/Dps_A/BaseClass/OfficialProject/OfficialProject.nut

66 lines
2.6 KiB
Plaintext

/*
文件名:OfficialProject.nut
路径:Dps_A/BaseClass/OfficialProject/OfficialProject.nut
创建日期:2025-03-30 00:03
文件用途:官方项目
*/
class _Official_Project_ {
ReloadProjectMap = null;
constructor() {
//在全局中注册自己
getroottable()._GlobalOfficial_Project <- this;
ReloadProjectMap = {};
Init();
}
function Init() {
// 定义 ANSI 颜色代码
local COLOR_RESET = "\x1b[0m";
local COLOR_MAGENTA = "\x1b[95m";
local COLOR_CYAN = "\x1b[96m";
local COLOR_YELLOW = "\x1b[93m";
local COLOR_RED = "\x1b[91m";
local WorkPath = "/dp_s/OfficialProject";
local Dirs = sq_GetListDirs(WorkPath);
if (Dirs.len() > 0) {
print(format("\n\n\t\t\t\t%s开始加载DP-S插件市场项目%s", COLOR_YELLOW, COLOR_RESET));
}
foreach(DirPath in Dirs) {
local FilePaths = sq_GetListFiles(WorkPath + "/" + DirPath);
foreach(FilePath in FilePaths) {
//找到项目文件
if (FilePath == "Proj.ifo") {
local Config = sq_ReadJsonFile(WorkPath + "/" + DirPath + "/" + FilePath);
if (Config) {
try {
//读取配置文件建立Map
local ProjectConfig = Config.ProjectConfig;
if(ProjectConfig.len() > 0){
ReloadProjectMap.rawset(ProjectConfig,Config.ProjectRunFunc);
}
local ProjectFiles = Config.ProjectFiles;
//载入所有项目文件
foreach(ProjectFile in ProjectFiles) {
sq_RunScript("OfficialProject/" + DirPath + "/" + ProjectFile);
}
//调用启动函数
getroottable()[Config.ProjectRunFunc]();
//播报脚本已加载
print(format("%s[ %s ]%s" + " 脚本项目已加载 --- 当前版本: %s%.2f%s", COLOR_YELLOW, Config.ProjectName, COLOR_RESET, COLOR_YELLOW, Config.ProjectVersion, COLOR_RESET));
} catch (exception) {
//播报脚本未加载
print(format("%s[ %s ]%s" + " 脚本项目未加载 --- 当前版本: %s%.2f%s", COLOR_RED, Config.ProjectName, COLOR_RESET, COLOR_RED, Config.ProjectVersion, COLOR_RESET));
}
}
}
}
}
}
}