namespace LittleSim.App;

/// <summary>
/// Параметры одного мира: имя, размер сетки, сид, число проходов сглаживания рельефа и
/// население. Заменяет хардкод в <see cref="Scenes.WorldScene"/>; строится из выбранного
/// <see cref="Content.WorldPresetDef"/> и пользовательского ввода в меню «Новый мир» либо
/// восстанавливается из <see cref="WorldSave"/>.
/// </summary>
public sealed record WorldConfig
{
    /// <summary>Отображаемое имя мира (и имя файла сохранения).</summary>
    public string Name { get; init; } = "World";

    /// <summary>Ширина мира в клетках.</summary>
    public int Width { get; init; } = 120;

    /// <summary>Высота мира в клетках.</summary>
    public int Height { get; init; } = 70;

    /// <summary>Целочисленный сид — весь мир воспроизводится из него.</summary>
    public int Seed { get; init; }

    /// <summary>Число проходов сглаживания рельефа (больше — крупнее «континенты»).</summary>
    public int SmoothPasses { get; init; } = 4;

    /// <summary>Число жителей при генерации.</summary>
    public int Population { get; init; } = 80;
}
