Beispiel #1
0
        static void Process(Options options)
        {
            var moduleSystem = LoadModuleSystem(options);

            var map      = new WCMap(options.TargetDirectory);
            var rootName = "WPSC_GENERATED";

            map.FindCategory(rootName)?.Remove();

            Category?rootCached = null;

            Category root() => rootCached ?? (rootCached = map.CreateCategory(rootName));

            if (moduleSystem != null)
            {
                using var writer = new StringWriter();
                moduleSystem.IncludeModuleLibrary(writer);
                var moduleScript = root().CreateScript("Module System");
                moduleScript.Source = writer.ToString();
            }

            var files = Directory
                        .GetFiles(options.SourceDirectory, "*.lua", SearchOption.AllDirectories)
                        .Where(f => !options.Excludes.Contains(Path.GetRelativePath(options.SourceDirectory, f)));

            Category?modules = null;

            ProcessDir(options, options.SourceDirectory, moduleSystem, () => modules ?? (modules = root().CreateCategory("Modules")));

            map.Save(options.TargetDirectory);
        }
Beispiel #2
0
 public Script(WCMap map, WtgTrigger inner, int source)
 {
     _map    = map;
     Inner   = inner;
     _source = source;
 }
Beispiel #3
0
 public Category(WCMap map, WtgCategory inner)
 {
     _map  = map;
     Inner = inner;
 }