Compare commits
	
		
			No commits in common. "ca017e3f7bae1e30aa9d9b9b77beff1edd9b5b73" and "350a8911182007d0570fc625faa56ff54de5d29c" have entirely different histories.
		
	
	
		
			ca017e3f7b
			...
			350a891118
		
	
		| 
						 | 
					@ -8,7 +8,7 @@
 | 
				
			||||||
  </PropertyGroup>
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  <ItemGroup>
 | 
					  <ItemGroup>
 | 
				
			||||||
    <PackageReference Include="clifx" Version="2.3.5" />
 | 
					    <PackageReference Include="System.CommandLine" Version="2.0.0-beta4.22272.1" />
 | 
				
			||||||
    <PackageReference Include="TinyEmbree" Version="1.0.3" />
 | 
					    <PackageReference Include="TinyEmbree" Version="1.0.3" />
 | 
				
			||||||
  </ItemGroup>
 | 
					  </ItemGroup>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -246,6 +246,11 @@ 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,38 +1,46 @@
 | 
				
			||||||
using CliFx;
 | 
					using System.CommandLine;
 | 
				
			||||||
using CliFx.Attributes;
 | 
					 | 
				
			||||||
using IConsole = CliFx.Infrastructure.IConsole;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace KeepersCompound.Lightmapper;
 | 
					namespace KeepersCompound.Lightmapper;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
internal static class Program
 | 
					class Program
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    public static async Task<int> Main() =>
 | 
					    private static void Main(string[] args)
 | 
				
			||||||
        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)
 | 
					 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        Timing.Reset();
 | 
					        var installPathArg = new Argument<string>(
 | 
				
			||||||
 | 
					            "installPath",
 | 
				
			||||||
 | 
					            "The path to the root Thief installation.");
 | 
				
			||||||
 | 
					        var campaignNameArg = new Argument<string>(
 | 
				
			||||||
 | 
					            "campaignName",
 | 
				
			||||||
 | 
					            "The folder name of the fan mission. For OMs this is blank.");
 | 
				
			||||||
 | 
					        var missionNameArg = new Argument<string>(
 | 
				
			||||||
 | 
					            "missionName",
 | 
				
			||||||
 | 
					            "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 lightMapper = new LightMapper(InstallPath, CampaignName, MissionName);
 | 
					        var rootCommand = new RootCommand("Compute lightmaps for a NewDark .MIS/.COW");
 | 
				
			||||||
        lightMapper.Light(MultiSampling);
 | 
					        rootCommand.AddArgument(installPathArg);
 | 
				
			||||||
        lightMapper.Save(OutputName);
 | 
					        rootCommand.AddArgument(campaignNameArg);
 | 
				
			||||||
 | 
					        rootCommand.AddArgument(missionNameArg);
 | 
				
			||||||
 | 
					        rootCommand.AddOption(outputFileOption);
 | 
				
			||||||
 | 
					        rootCommand.AddOption(multiSamplingOption);
 | 
				
			||||||
 | 
					        rootCommand.SetHandler((installPath, campaignName, missionName, outputFile, multiSampling) =>
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            Timing.Reset();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        Timing.LogAll();
 | 
					            var lightMapper = new LightMapper(installPath, campaignName, missionName);
 | 
				
			||||||
        return default;
 | 
					            lightMapper.Light(multiSampling);
 | 
				
			||||||
 | 
					            lightMapper.Save(outputFile);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            Timing.LogAll();
 | 
				
			||||||
 | 
					        }, installPathArg, campaignNameArg, missionNameArg, outputFileOption, multiSamplingOption);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        rootCommand.Invoke(args);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
		Loading…
	
		Reference in New Issue