Compare commits
	
		
			2 Commits
		
	
	
		
			350a891118
			...
			ca017e3f7b
		
	
	| Author | SHA1 | Date | 
|---|---|---|
| 
							
							
								
								 | 
						ca017e3f7b | |
| 
							
							
								
								 | 
						f5fa373519 | 
| 
						 | 
					@ -8,7 +8,7 @@
 | 
				
			||||||
  </PropertyGroup>
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  <ItemGroup>
 | 
					  <ItemGroup>
 | 
				
			||||||
    <PackageReference Include="System.CommandLine" Version="2.0.0-beta4.22272.1" />
 | 
					    <PackageReference Include="clifx" Version="2.3.5" />
 | 
				
			||||||
    <PackageReference Include="TinyEmbree" Version="1.0.3" />
 | 
					    <PackageReference Include="TinyEmbree" Version="1.0.3" />
 | 
				
			||||||
  </ItemGroup>
 | 
					  </ItemGroup>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -246,11 +246,6 @@ public class LightMapper
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (propLight != null)
 | 
					        if (propLight != null)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            if (propLight.QuadLit)
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                Console.WriteLine("Quadlit light wowzer");
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            
 | 
					 | 
				
			||||||
            var light = new Light
 | 
					            var light = new Light
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                Position = baseLight.Position + propLight.Offset,
 | 
					                Position = baseLight.Position + propLight.Offset,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,46 +1,38 @@
 | 
				
			||||||
using System.CommandLine;
 | 
					using CliFx;
 | 
				
			||||||
 | 
					using CliFx.Attributes;
 | 
				
			||||||
 | 
					using IConsole = CliFx.Infrastructure.IConsole;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace KeepersCompound.Lightmapper;
 | 
					namespace KeepersCompound.Lightmapper;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class Program
 | 
					internal static class Program
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    private static void Main(string[] args)
 | 
					    public static async Task<int> Main() =>
 | 
				
			||||||
 | 
					        await new CliApplicationBuilder().AddCommandsFromThisAssembly().Build().RunAsync();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[Command(Description = "Compute lightmaps for a NewDark .MIS/.COW")]
 | 
				
			||||||
 | 
					public class LightCommand : ICommand
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    [CommandParameter(0, Description = "The path to the root Thief installation.")]
 | 
				
			||||||
 | 
					    public required string InstallPath { get; init; }
 | 
				
			||||||
 | 
					    [CommandParameter(1, Description = "The folder name of the fan mission. For OMs this is blank.")]
 | 
				
			||||||
 | 
					    public required string CampaignName { get; init; }
 | 
				
			||||||
 | 
					    [CommandParameter(2, Description = "The name of the mission file including extension.")]
 | 
				
			||||||
 | 
					    public required string MissionName { get; init; }
 | 
				
			||||||
 | 
					    [CommandOption("output", 'o', Description = "Name of output file excluding extension.")]
 | 
				
			||||||
 | 
					    public string OutputName { get; init; } = "kc_lit";
 | 
				
			||||||
 | 
					    [CommandOption("multiSampling", 'm', Description = "Enables multi-sampled shadows. Higher quality but slower.")]
 | 
				
			||||||
 | 
					    public bool MultiSampling { get; init; } = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public ValueTask ExecuteAsync(IConsole console)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        var installPathArg = new Argument<string>(
 | 
					        Timing.Reset();
 | 
				
			||||||
            "installPath",
 | 
					            
 | 
				
			||||||
            "The path to the root Thief installation.");
 | 
					        var lightMapper = new LightMapper(InstallPath, CampaignName, MissionName);
 | 
				
			||||||
        var campaignNameArg = new Argument<string>(
 | 
					        lightMapper.Light(MultiSampling);
 | 
				
			||||||
            "campaignName",
 | 
					        lightMapper.Save(OutputName);
 | 
				
			||||||
            "The folder name of the fan mission. For OMs this is blank.");
 | 
					            
 | 
				
			||||||
        var missionNameArg = new Argument<string>(
 | 
					        Timing.LogAll();
 | 
				
			||||||
            "missionName",
 | 
					        return default;
 | 
				
			||||||
            "The name of the mission file including extension.");
 | 
					 | 
				
			||||||
        var outputFileOption = new Option<string>(
 | 
					 | 
				
			||||||
            ["-o", "--output"],
 | 
					 | 
				
			||||||
            () => "kc_lit",
 | 
					 | 
				
			||||||
            "Name of output file excluding extension.");
 | 
					 | 
				
			||||||
        var multiSamplingOption = new Option<bool>(
 | 
					 | 
				
			||||||
            "--multiSampling",
 | 
					 | 
				
			||||||
            () => false,
 | 
					 | 
				
			||||||
            "Enables multi-sampled shadows. Higher quality but slower.");
 | 
					 | 
				
			||||||
        
 | 
					 | 
				
			||||||
        var rootCommand = new RootCommand("Compute lightmaps for a NewDark .MIS/.COW");
 | 
					 | 
				
			||||||
        rootCommand.AddArgument(installPathArg);
 | 
					 | 
				
			||||||
        rootCommand.AddArgument(campaignNameArg);
 | 
					 | 
				
			||||||
        rootCommand.AddArgument(missionNameArg);
 | 
					 | 
				
			||||||
        rootCommand.AddOption(outputFileOption);
 | 
					 | 
				
			||||||
        rootCommand.AddOption(multiSamplingOption);
 | 
					 | 
				
			||||||
        rootCommand.SetHandler((installPath, campaignName, missionName, outputFile, multiSampling) =>
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            Timing.Reset();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            var lightMapper = new LightMapper(installPath, campaignName, missionName);
 | 
					 | 
				
			||||||
            lightMapper.Light(multiSampling);
 | 
					 | 
				
			||||||
            lightMapper.Save(outputFile);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            Timing.LogAll();
 | 
					 | 
				
			||||||
        }, installPathArg, campaignNameArg, missionNameArg, outputFileOption, multiSamplingOption);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        rootCommand.Invoke(args);
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
		Loading…
	
		Reference in New Issue