/// <summary> /// Unregister an asset definition /// </summary> /// <typeparam name="T">Asset type</typeparam> static public void UnregisterAsset <T>() where T : IAsset { lock (BinaryLock) { foreach (RegisteredAsset ra in RegisteredAssets) { if (ra.Type == typeof(T)) { RegisteredAssets.Remove(ra); return; } } //Provider provider = GetAssetProvider(typeof(T)); //if (provider == null) // return; //provider.Remove<T>(); } }
/// <summary> /// Registers an asset definition /// </summary> /// <typeparam name="T">Type of the asset</typeparam> /// <param name="editor">Type of the editor form</param> /// <param name="tag">Tag's name</param> /// <returns>True on success</returns> static public bool RegisterAsset <T>(Type editor, string tag) where T : IAsset { foreach (RegisteredAsset ra in RegisteredAssets) { if (ra.Type == typeof(T)) { Trace.WriteDebugLine("Type of asset \"" + typeof(T).Name + "\" already registered !"); return(false); } if (ra.Tag == tag) { Trace.WriteDebugLine("Asset tag \"" + tag + "\" already registered !"); return(false); } } Trace.WriteDebugLine("Registering asset \"" + typeof(T).Name + "\" as tag \"" + tag + "\""); RegisteredAssets.Add(new RegisteredAsset(typeof(T), tag, editor)); return(true); }