Code/TerrainBrushSettings.cs
// Copyright (c) 2026 SubZero Studios LLC. All rights reserved.
using Sandbox;
namespace SubZero.SubTerrain;
public sealed class CraterBrushSettings
{
[Property, Range( 16f, 200f )]
public float MaxDepth { get; set; } = 96f;
[Property, Title( "Depth Scale" ), Range( 0.1f, 1.5f )]
public float DepthScale { get; set; } = 0.5f;
[Property, Range( 0f, 32f )]
public float MaxRaise { get; set; } = 12f;
[Property, Range( 0.4f, 0.95f )]
public float BowlRadius { get; set; } = 0.75f;
[Property, Range( 0f, 0.7f )]
public float Irregularity { get; set; } = 0.35f;
[Property, Range( 0f, 0.5f )]
public float Stretch { get; set; } = 0.25f;
[Property, Range( 0f, 1f )]
public float Blend { get; set; } = 0.65f;
}
public sealed class DigBrushSettings
{
[Property, Range( 16f, 120f )]
public float MaxDepth { get; set; } = 48f;
[Property, Title( "Depth Scale" ), Range( 0.1f, 1.5f )]
public float DepthScale { get; set; } = 0.85f;
[Property, Range( 0f, 40f )]
public float MaxRaise { get; set; } = 18f;
[Property, Range( 0.7f, 0.98f )]
public float BowlRadius { get; set; } = 0.9f;
[Property, Range( 0f, 0.4f )]
public float Irregularity { get; set; } = 0.12f;
[Property, Range( 0f, 0.35f )]
public float Stretch { get; set; } = 0.08f;
[Property, Range( 0f, 1f )]
public float Blend { get; set; } = 0.35f;
}
public sealed class FlattenBrushSettings
{
[Property, Range( 0.05f, 1f )]
public float Strength { get; set; } = 0.65f;
[Property, Range( 4f, 64f )]
public float MaxDelta { get; set; } = 24f;
}