using System; namespace builder { public class PkgCore : Package { public PkgCore() { } public override string GetBaseFolder() { return "base"; } public override void GetCompressBases(ref string path, ref string folder) { path = "base"; folder = "addons"; } public override string GetPackageName() { return "sourcemod-core"; } /** * Must return the list of folders to create. */ public override string [] GetFolders() { string [] folders = new string[13]; folders[0] = "addons/sourcemod/bin"; folders[1] = "addons/sourcemod/plugins/disabled"; folders[2] = "addons/sourcemod/gamedata"; folders[3] = "addons/sourcemod/configs/geoip"; folders[4] = "addons/sourcemod/translations"; folders[5] = "addons/sourcemod/logs"; folders[6] = "addons/sourcemod/extensions"; folders[7] = "addons/sourcemod/data"; folders[8] = "addons/sourcemod/scripting/include"; folders[9] = "addons/sourcemod/scripting/admin-flatfile"; folders[10] = "addons/sourcemod/scripting/testsuite"; folders[11] = "cfg/sourcemod"; folders[12] = "addons/sourcemod/configs/sql-init-scripts"; return folders; } /** * Called when file to file copies must be performed */ public override void OnCopyFiles(ABuilder builder) { builder.CopyFile(this, "sourcepawn/batchtool/compile.exe", "addons/sourcemod/scripting/compile.exe"); } /** * Called when dir to dir copies must be performed */ public override void OnCopyFolders(ABuilder builder) { builder.CopyFolder(this, "configs", "addons/sourcemod/configs", null); builder.CopyFolder(this, "configs/geoip", "addons/sourcemod/configs/geoip", null); builder.CopyFolder(this, "configs/cfg", "cfg/sourcemod", null); builder.CopyFolder(this, "configs/sql-init-scripts", "addons/sourcemod/configs/sql-init-scripts", null); string [] plugin_omits = new string[1]; plugin_omits[0] = "spcomp.exe"; string [] include_omits = new string[1]; include_omits[0] = "version.tpl"; builder.CopyFolder(this, "gamedata", "addons/sourcemod/gamedata", null); builder.CopyFolder(this, "plugins", "addons/sourcemod/scripting", plugin_omits); builder.CopyFolder(this, "plugins/include", "addons/sourcemod/scripting/include", include_omits); builder.CopyFolder(this, "translations", "addons/sourcemod/translations", null); builder.CopyFolder(this, "public/licenses", "addons/sourcemod", null); builder.CopyFolder(this, "plugins/admin-flatfile", "addons/sourcemod/scripting/admin-flatfile", null); builder.CopyFolder(this, "plugins/testsuite", "addons/sourcemod/scripting/testsuite", null); } /** * Called to build libraries */ public override Library [] GetLibraries() { Library [] libs = new Library[8]; for (int i=0; i<libs.Length; i++) { libs[i] = new Library(); } libs[0].Destination = "addons/sourcemod/bin"; libs[0].LocalPath = "core"; libs[0].Name = "sourcemod_mm"; libs[0].PlatformExt = true; libs[1].Destination = "addons/sourcemod/bin"; libs[1].LocalPath = "sourcepawn/jit/x86"; libs[1].Name = "sourcepawn.jit.x86"; libs[1].ProjectFile = "jit-x86"; libs[2].Destination = "addons/sourcemod/scripting"; libs[2].LocalPath = "sourcepawn/compiler"; libs[2].Name = "spcomp"; libs[2].IsExecutable = true; libs[3].Destination = "addons/sourcemod/extensions"; libs[3].LocalPath = "extensions/geoip"; libs[3].Name = "geoip.ext"; libs[3].ProjectFile = "geoip"; libs[4].Destination = "addons/sourcemod/extensions"; libs[4].LocalPath = "extensions/bintools"; libs[4].Name = "bintools.ext"; libs[4].ProjectFile = "bintools"; libs[5].Destination = "addons/sourcemod/extensions"; libs[5].LocalPath = "extensions/mysql"; libs[5].Name = "dbi.mysql.ext"; libs[5].ProjectFile = "sm_mysql"; libs[6].Destination = "addons/sourcemod/extensions"; libs[6].LocalPath = "extensions/sdktools"; libs[6].Name = "sdktools.ext"; libs[6].ProjectFile = "sdktools"; libs[7].Destination = "addons/sourcemod/extensions"; libs[7].LocalPath = "extensions/sqlite"; libs[7].Name = "dbi.sqlite.ext"; libs[7].ProjectFile = "sm_sqlite"; return libs; } /** * Called to build plugins */ public override Plugin [] GetPlugins() { Plugin [] plugins = new Plugin[14]; plugins[0] = new Plugin("admin-flatfile", "admin-flatfile"); plugins[1] = new Plugin("adminhelp"); plugins[2] = new Plugin("antiflood"); plugins[3] = new Plugin("basecommands"); plugins[4] = new Plugin("reservedslots"); plugins[5] = new Plugin("basetriggers"); plugins[6] = new Plugin("nextmap"); plugins[7] = new Plugin("basechat"); plugins[8] = new Plugin("basefuncommands"); plugins[9] = new Plugin("basevotes"); plugins[10] = new Plugin("basefunvotes"); plugins[11] = new Plugin("admin-sql-prefetch", true); plugins[12] = new Plugin("admin-sql-threaded", true); plugins[13] = new Plugin("sql-admin-manager", true); return plugins; } } }