refactor(render): extract world frame preparation
Move camera/root resolution, live settings and listener preview, sky/lighting/fog preparation, animated classification, and building visibility scratch behind a typed WorldRenderFrameBuilder while preserving retail frame order and borrowed lifetimes. Co-authored-by: Codex <codex@openai.com>
This commit is contained in:
parent
bc6f09f987
commit
6d6e5b5fa5
8 changed files with 1463 additions and 583 deletions
|
|
@ -46,7 +46,9 @@ public sealed record RuntimeOptions(
|
|||
string? AcDir,
|
||||
bool UiProbeDump,
|
||||
string? UiProbeScript,
|
||||
string? AutomationArtifactDirectory)
|
||||
string? AutomationArtifactDirectory,
|
||||
float FogStartMultiplier,
|
||||
float FogEndMultiplier)
|
||||
{
|
||||
/// <summary>
|
||||
/// Build options from the process environment. Used by
|
||||
|
|
@ -99,7 +101,9 @@ public sealed record RuntimeOptions(
|
|||
UiProbeDump: IsExactlyOne(env("ACDREAM_UI_PROBE_DUMP")),
|
||||
UiProbeScript: NullIfEmpty(env("ACDREAM_UI_PROBE_SCRIPT")),
|
||||
AutomationArtifactDirectory:
|
||||
NullIfEmpty(env("ACDREAM_AUTOMATION_ARTIFACT_DIR")));
|
||||
NullIfEmpty(env("ACDREAM_AUTOMATION_ARTIFACT_DIR")),
|
||||
FogStartMultiplier: TryParseFloat(env("ACDREAM_FOG_START_MULT")) ?? 0.7f,
|
||||
FogEndMultiplier: TryParseFloat(env("ACDREAM_FOG_END_MULT")) ?? 0.95f);
|
||||
}
|
||||
|
||||
/// <summary>True iff live-mode credentials are present and valid for connecting.</summary>
|
||||
|
|
@ -120,4 +124,9 @@ public sealed record RuntimeOptions(
|
|||
|
||||
private static int? TryParseNonNegativeInt(string? s)
|
||||
=> TryParseInt(s) is { } v && v >= 0 ? v : null;
|
||||
|
||||
private static float? TryParseFloat(string? s)
|
||||
=> float.TryParse(s, NumberStyles.Float, CultureInfo.InvariantCulture, out float value)
|
||||
? value
|
||||
: null;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue