using System; using System.Diagnostics; using System.Collections; namespace AMXXRelease { public class Plugin { public string name; public string source; public string options; public string outdir; public Plugin(string Name) { name = (string)Name.Clone(); source = (string)Name.Clone(); outdir = "plugins"; } } public class Module { public string sourcedir; public string projname; public string build; public string bindir; public string vcproj; public string outdir; public Module() { build = "Release"; outdir = "modules"; } public Module(string name) { build = "Release"; outdir = "modules"; sourcedir = "dlls\\" + name; projname = name + "_amxx"; vcproj = name; } } public abstract class AMod { protected ArrayList m_Modules; protected ArrayList m_Plugins; public abstract string GetName(); public virtual string GetBaseName() { return GetName(); } public AMod() { m_Modules = new ArrayList(); m_Plugins = new ArrayList(); } public virtual bool CopyExtraFiles(string basedir, string sourcedir) { return true; } public virtual string GetPluginDir() { return GetName(); } public virtual int GetModules() { return m_Modules.Count; } public virtual Module GetModule(int i) { return (Module)m_Modules[i]; } public virtual int GetPlugins() { return m_Plugins.Count; } public virtual string GetModPath() { return GetName() + "\\addons\\amxmodx"; } public virtual Plugin GetPlugin(int i) { return (Plugin)m_Plugins[i]; } public virtual Plugin AddPlugin(string name) { Plugin pl = new Plugin(name); m_Plugins.Add(pl); return pl; } } }