mirror of
https://github.com/EggLinks/DanhengServer-OpenSource.git
synced 2026-01-02 20:26:03 +08:00
feat: support resources cache
This commit is contained in:
@@ -23,6 +23,16 @@ public static class HandbookGenerator
|
||||
{
|
||||
if (langFile.Extension != ".json") return;
|
||||
var lang = langFile.Name.Replace("TextMap", "").Replace(".json", "");
|
||||
|
||||
// Check if handbook needs to regenerate
|
||||
var handbookPath = $"GM Handbook/GM Handbook {lang}.txt";
|
||||
if (File.Exists(handbookPath))
|
||||
{
|
||||
var handbookInfo = new FileInfo(handbookPath);
|
||||
if (handbookInfo.LastWriteTime >= langFile.LastWriteTime)
|
||||
continue; // Skip if handbook is newer than language file
|
||||
}
|
||||
|
||||
Generate(lang);
|
||||
}
|
||||
|
||||
|
||||
@@ -127,10 +127,40 @@ public class EntryPoint
|
||||
GenerateLogMap();
|
||||
|
||||
// Load the game data
|
||||
Logger.Info(I18NManager.Translate("Server.ServerInfo.LoadingItem", I18NManager.Translate("Word.GameData")));
|
||||
try
|
||||
{
|
||||
ResourceManager.LoadGameData();
|
||||
var isCache = false;
|
||||
if (File.Exists(ResourceCache.CachePath))
|
||||
if (ConfigManager.Config.ServerOption.UseCache)
|
||||
{
|
||||
Logger.Info(I18NManager.Translate("Server.ServerInfo.LoadingItem", I18NManager.Translate("Word.Cache")));
|
||||
isCache = ResourceCache.LoadCache();
|
||||
|
||||
// Clear all game data if cache loading fails
|
||||
if (!isCache)
|
||||
{
|
||||
ResourceCache.ClearGameData();
|
||||
Logger.Warn(I18NManager.Translate("Server.ServerInfo.CacheLoadFailed"));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
File.Delete(ResourceCache.CachePath);
|
||||
Logger.Warn(I18NManager.Translate("Server.ServerInfo.CacheLoadSkip"));
|
||||
}
|
||||
|
||||
if (!isCache)
|
||||
{
|
||||
Logger.Info(I18NManager.Translate("Server.ServerInfo.LoadingItem", I18NManager.Translate("Word.GameData")));
|
||||
ResourceManager.LoadGameData();
|
||||
|
||||
// Async process cache saving
|
||||
if (ConfigManager.Config.ServerOption.UseCache && ResourceCache.IsComplete)
|
||||
{
|
||||
Logger.Warn(I18NManager.Translate("Server.ServerInfo.WaitingItem", I18NManager.Translate("Word.Cache")));
|
||||
_ = ResourceCache.SaveCache();
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user