A plugin describing AssetFormats. Subclasses must have a single constructor (AssetManager). All AssetPlugins in an assembly will be constructed if they are non-abstract.
Inheritance: PluginFormatAsset
Exemple #1
0
 internal PluginAsset(AssetManager manager, ResourceManager resourceManager)
     : base(manager, resourceManager)
 {
     if (!(this is AssetPlugin))
     {
         throw new InvalidOperationException();
     }
     Plugin = (AssetPlugin)this;
 }
Exemple #2
0
        /// <summary>Attempt to load a plugin type.</summary>
        /// <param name="pluginType"></param>
        public void LoadPlugin(Type pluginType)
        {
            if (pluginType.IsAbstract || !pluginType.IsSubclassOf(typeof(AssetPlugin)) || HasPluginType(pluginType))
            {
                return;
            }
            ConstructorInfo constructor = pluginType.GetConstructor(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic, null, new Type[] { typeof(AssetManager) }, null);

            if (constructor == null)
            {
                throw new Exception(string.Format("Plugin {0} of assembly {1} does not have a ({2}) constructor.", pluginType.FullName, pluginType.Assembly.FullName, typeof(AssetManager).Name));
            }
            AssetPlugin plugin = (AssetPlugin)constructor.Invoke(new object[] { this });
        }
 /// <summary>Initialise the plugin asset.</summary>
 /// <param name="plugin"></param>
 public PluginAsset(AssetPlugin plugin)
     : base(plugin.Manager, plugin.ResourceManager)
 {
     Plugin = plugin;
 }
 /// <summary>
 /// Initialise the plugin asset.
 /// </summary>
 /// <param name="plugin"></param>
 public PluginFormatAsset(AssetPlugin plugin)
     : base(plugin)
 {
 }
Exemple #5
0
 /// <summary>Initialise the plugin asset.</summary>
 /// <param name="plugin"></param>
 public PluginAsset(AssetPlugin plugin)
     : base(plugin.Manager, plugin.ResourceManager)
 {
     Plugin = plugin;
 }
Exemple #6
0
 /// <summary>
 /// Initialise the plugin asset.
 /// </summary>
 /// <param name="plugin"></param>
 public PluginFormatAsset(AssetPlugin plugin) : base(plugin)
 {
 }