Editor/AngleIntWidget.cs
using Editor;
using Sandbox;
using System;
using System.Linq;
using System.Threading.Tasks;
namespace SpriteTools;
[CustomEditor(typeof(int), NamedEditor = "angle")]
public class AngleIntWidget : ControlWidget
{
public AngleIntWidget(SerializedProperty prop) : base(prop)
{
Layout = Layout.Row();
Layout.Spacing = 4;
var intWidget = new IntegerControlWidget(prop);
intWidget.ReadOnly = true;
Layout.Add(intWidget);
var rotateLeft = new IconButton("rotate_left");
rotateLeft.OnClick += () =>
{
var angle = prop.GetValue<int>(0);
angle -= 90;
if (angle < 0) angle = 270;
prop.SetValue(angle);
};
Layout.Add(rotateLeft);
var rotateRight = new IconButton("rotate_right");
rotateRight.OnClick += () =>
{
var angle = prop.GetValue<int>(0);
angle += 90;
if (angle > 270) angle = 0;
prop.SetValue(angle);
};
Layout.Add(rotateRight);
}
protected override void PaintUnder()
{
}
}