refactor(settings): own two-phase runtime settings
Move pre-window loading, startup application, live settings mutation, toon context, quality reapply, and SettingsVM loans behind one RuntimeSettingsController. Preserve retail command behavior, ordered target publication, draft semantics, and retryable failure convergence while removing duplicate GameWindow state and feature bodies. Co-authored-by: Codex <codex@openai.com>
This commit is contained in:
parent
4eae9b4f5a
commit
fec0d94148
24 changed files with 2379 additions and 599 deletions
|
|
@ -3,6 +3,7 @@ using AcDream.App.Input;
|
|||
using AcDream.App.Interaction;
|
||||
using AcDream.App.Rendering;
|
||||
using AcDream.App.Rendering.Vfx;
|
||||
using AcDream.App.Settings;
|
||||
using AcDream.App.World;
|
||||
using AcDream.Core.Physics;
|
||||
using AcDream.Core.Rendering;
|
||||
|
|
@ -39,17 +40,15 @@ internal interface IParticleRangeSource
|
|||
|
||||
internal sealed class SettingsParticleRangeSource : IParticleRangeSource
|
||||
{
|
||||
private readonly SettingsVM? _settings;
|
||||
private readonly ParticleRange _fallback;
|
||||
private readonly IRuntimeSettingsPreviewSource _settings;
|
||||
|
||||
public SettingsParticleRangeSource(SettingsVM? settings, ParticleRange fallback)
|
||||
public SettingsParticleRangeSource(IRuntimeSettingsPreviewSource settings)
|
||||
{
|
||||
_settings = settings;
|
||||
_fallback = fallback;
|
||||
_settings = settings ?? throw new ArgumentNullException(nameof(settings));
|
||||
}
|
||||
|
||||
public float RangeMultiplier =>
|
||||
(_settings?.DisplayDraft.ParticleRange ?? _fallback) == ParticleRange.Extended
|
||||
_settings.DisplayPreview.ParticleRange == ParticleRange.Extended
|
||||
? ParticleVisibilityController.ExtendedRangeMultiplier
|
||||
: 1f;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue