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",
|
||||||
var lightMapper = new LightMapper(InstallPath, CampaignName, MissionName);
|
"The path to the root Thief installation.");
|
||||||
lightMapper.Light(MultiSampling);
|
var campaignNameArg = new Argument<string>(
|
||||||
lightMapper.Save(OutputName);
|
"campaignName",
|
||||||
|
"The folder name of the fan mission. For OMs this is blank.");
|
||||||
Timing.LogAll();
|
var missionNameArg = new Argument<string>(
|
||||||
return default;
|
"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 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