A simple immutable data container used by the editor for rectangle placements of architectural pieces. It stores bounds (Min, Max), several boolean state flags about adjustment and touching, and a reference to the hosting ArchBuilding.
using System;
using System.Collections.Generic;
using System.Linq;
using Sandbox;
namespace Sunless.Architecture;
public sealed class ArchRectanglePlacement
{
public Vector2 Min { get; init; }
public Vector2 Max { get; init; }
public bool Adjusted { get; init; }
public bool Touches { get; init; }
public bool TouchesHost { get; init; }
public bool IsUsable { get; init; }
// Named by the DRAG, not the caller - the active building landed wings on the picker's placeholder.
public ArchBuilding Host { get; init; }
}