//------------------------------------------------------------------------------ // // This code was generated by a tool. // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // //------------------------------------------------------------------------------ using System; using Luban; using AlicizaX.Config.Runtime; namespace Game.Config { public partial class TablesComponent { internal Tables.TbLocalization TbLocalization { private set; get; } internal Tables.TbAchievement TbAchievement { private set; get; } internal Tables.TbSounds TbSounds { private set; get; } private ConfigComponent m_ConfigComponent; public void Init(ConfigComponent configComponent) { m_ConfigComponent = configComponent; configComponent.RemoveAllConfigs(); } /// /// 是否加载完成 /// public bool IsLoaded { get; private set; } /// /// 异步加载配置文件 /// /// 加载器 public async System.Threading.Tasks.Task LoadAsync(System.Func> loader) { if (IsLoaded) { return; } IsLoaded = false; m_ConfigComponent.RemoveAllConfigs(); var loadTasks = new System.Collections.Generic.List(); TbLocalization = new Tables.TbLocalization(() => loader("tables_tblocalization")); loadTasks.Add(TbLocalization.LoadAsync()); m_ConfigComponent.Add(nameof(Tables.TbLocalization), TbLocalization); TbAchievement = new Tables.TbAchievement(() => loader("tables_tbachievement")); loadTasks.Add(TbAchievement.LoadAsync()); m_ConfigComponent.Add(nameof(Tables.TbAchievement), TbAchievement); TbSounds = new Tables.TbSounds(() => loader("tables_tbsounds")); loadTasks.Add(TbSounds.LoadAsync()); m_ConfigComponent.Add(nameof(Tables.TbSounds), TbSounds); await System.Threading.Tasks.Task.WhenAll(loadTasks); Refresh(); IsLoaded = true; } /// /// 设置本地化的适配器 /// /// 适配器对象 /// 如果未加载完成将抛出此异常 public void SetTranslateText(System.Func translator) { if (IsLoaded == false) { throw new InvalidOperationException("Table is not loaded!"); } TbLocalization.TranslateText(translator); TbAchievement.TranslateText(translator); TbSounds.TranslateText(translator); } private void ResolveRef() { TbLocalization.ResolveRef(this); TbAchievement.ResolveRef(this); TbSounds.ResolveRef(this); PostResolveRef(); } public void Refresh() { PostInit(); ResolveRef(); } partial void PostInit(); partial void PostResolveRef(); } }