Exemplo n.º 1
0
        /// <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>();
            }
        }
Exemplo n.º 2
0
        /// <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);
        }