Editor/FenceLibrary/FenceDefinitionEditor.cs
namespace Editor;

public sealed class FenceDefinitionEditor : BaseResourceEditor<FenceDefinition>
{
	protected override void Initialize( Asset asset, FenceDefinition resource )
	{
		Layout = Layout.Column();
		Layout.Margin = 8;
		Layout.Spacing = 8;

		var serialized = resource.GetSerialized();
		serialized.OnPropertyChanged += NoteChanged;

		var sheet = new ControlSheet();
		sheet.AddRow( serialized.GetProperty( nameof( FenceDefinition.RootName ) ) );
		sheet.AddRow( serialized.GetProperty( nameof( FenceDefinition.Entries ) ) );
		sheet.AddRow( serialized.GetProperty( nameof( FenceDefinition.UseWeightedRandom ) ) );
		sheet.AddRow( serialized.GetProperty( nameof( FenceDefinition.MaximumSegments ) ) );
		sheet.AddRow( serialized.GetProperty( nameof( FenceDefinition.SegmentGap ) ) );
		sheet.AddRow( serialized.GetProperty( nameof( FenceDefinition.RotationRandomizationMin ) ) );
		sheet.AddRow( serialized.GetProperty( nameof( FenceDefinition.RotationRandomizationMax ) ) );
		sheet.AddRow( serialized.GetProperty( nameof( FenceDefinition.DistanceRandomizationMin ) ) );
		sheet.AddRow( serialized.GetProperty( nameof( FenceDefinition.DistanceRandomizationMax ) ) );
		sheet.AddRow( serialized.GetProperty( nameof( FenceDefinition.CreateBlockerVolumes ) ) );

		Layout.Add( sheet, 1 );
	}
}