ds@1952: using System; ds@1952: ds@1952: namespace builder ds@1952: { ds@1952: public enum ReleaseMode : int ds@1952: { ds@1952: ReleaseMode_Release, ds@1952: ReleaseMode_Debug, ds@1952: }; ds@1952: ds@1952: public enum BuildMode : int ds@1952: { ds@1952: BuildMode_Simple, ds@1952: BuildMode_OldMetamod, ds@1952: BuildMode_Episode1, ds@1952: BuildMode_Episode2 ds@1952: }; ds@1952: ds@1952: public class Library ds@1952: { ds@1952: public Library() ds@1952: { ds@1952: has_platform_ext = false; ds@1952: is_executable = false; ds@1952: release_mode = ReleaseMode.ReleaseMode_Release; ds@1952: build_mode = BuildMode.BuildMode_Simple; ds@1952: } ds@1952: public string binary_name; /* Name of binary */ ds@1952: public string source_path; /* Local path to library build scripts */ ds@1952: public ReleaseMode release_mode; /* Release mode */ ds@1952: public BuildMode build_mode; /* Build mode */ ds@1952: public string package_path; /* Final relative path */ ds@1952: public bool has_platform_ext; /* Add extra platform extension? */ ds@1952: public string vcproj_name; /* Project file, NULL for standard */ ds@1952: public bool is_executable; /* If this is an EXE instead of a DLL */ ds@1952: }; ds@1952: ds@1952: public class Plugin ds@1952: { ds@1952: public Plugin(string file) ds@1952: { ds@1952: Source = file; ds@1952: disabled = false; ds@1952: } ds@1952: public Plugin (string file, string folder) ds@1952: { ds@1952: Source = file; ds@1952: Folder = folder; ds@1952: disabled = false; ds@1952: } ds@1952: public Plugin (string file, bool is_disabled) ds@1952: { ds@1952: Source = file; ds@1952: disabled = is_disabled; ds@1952: } ds@1952: public string Folder; /* Source folder relative to scripting (null for default) */ ds@1952: public string Source; /* Source file name */ ds@1952: public bool disabled; /* Is the plugin disabled? */ ds@1952: }; ds@1952: ds@1952: public abstract class Package ds@1952: { ds@1952: /** ds@1952: * Must return the root compression point. ds@1952: */ ds@1952: public abstract void GetCompressBases(ref string path, ref string folder); ds@1952: ds@1952: /** ds@1952: * Must return the base package output folder. ds@1952: */ ds@1952: public abstract string GetBaseFolder(); ds@1952: ds@1952: /** ds@1952: * Must return the list of folders to create. ds@1952: */ ds@1952: public abstract string [] GetFolders(); ds@1952: ds@1952: /** ds@1952: * Called when file to file copies must be performed ds@1952: */ ds@1952: public abstract void OnCopyFiles(ABuilder builder); ds@1952: ds@1952: /** ds@1952: * Called when dir to dir copies must be performed ds@1952: */ ds@1952: public abstract void OnCopyFolders(ABuilder builder); ds@1952: ds@1952: /** ds@1952: * Called to build libraries ds@1952: */ ds@1952: public abstract Library [] GetLibraries(); ds@1952: ds@1952: /** ds@1952: * Called to get package name ds@1952: */ ds@1952: public abstract string GetPackageName(); ds@1952: ds@1952: /** ds@1952: * Called to get a plugin list ds@1952: */ ds@1952: public abstract Plugin [] GetPlugins(); ds@1952: } ds@1952: }