コード例 #1
0
 public void AddModule(AssetModule module)
 {
     if (_modules.ContainsKey(module.Name))
     {
         throw new AssetException($"Cannot add module with duplicate name {module.Name}.");
     }
     else
     {
         _modules[module.Name] = module;
         _modulesList.Add(module);
     }
 }
コード例 #2
0
 void LoadModule(AssetModule module)
 {
     foreach (var depName in module.dependencies)
     {
         if (_modules.ContainsKey(depName))
         {
             var depMod = _modules[depName];
             if (!depMod.IsLoaded)
             {
                 LoadModule(depMod);
             }
         }
         else
         {
             throw new AssetException($"Asset module dependency unsatisfied! {module.Name} depends on {depName} (missing)");
         }
     }
     module.LoadAssets(this);
     Logger.Info(this, $"Loaded asset module {module.Name}");
 }
コード例 #3
0
 public AssetInfo(string name)
 {
     Module        = AssetModule.CurrentLoadingModule ?? throw new AssetException($"Cannot create asset info {GetType().Name}: No module being loaded");
     Name          = name;
     QualifiedName = Module.Name + ":" + Name;
 }
コード例 #4
0
 public AssetModuleException(AssetModule module, string message)
     : base($"[{module.Name}] {message}")
 {
     Module = module;
 }