Editor/Services/ArchRectanglePlacement.cs

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; }
}