Code/TerrainEditRequest.cs
// Copyright (c) 2026 SubZero Studios LLC. All rights reserved.

using Sandbox;

namespace SubZero.SubTerrain;

public struct TerrainEditRequest
{
	public TerrainEditKind Kind;
	public Vector3 WorldPos;
	public float Radius;

	/// <summary>0 = kind auto-scale (radius × DepthScale, clamped).</summary>
	public float Depth;

	/// <summary>Unused this pass. Reserved for a later trench (capsule SDF).</summary>
	public Vector3 EndPos;

	public bool HasTargetZ;
	public float TargetZ;
	public int Seed;
}

public struct TerrainEditResult
{
	public TerrainEditKind Kind;
	public Vector3 Origin;
	public float Radius;
	public float Depth;
	public RectInt Dirty;
	public int Texels;
	public float VolumeRemoved;
}