using Editor; using Sandbox; using System.Linq; namespace SFXR.Editor; [CustomEditor( typeof( SFXREnvelope ) )] public class SFXREnvelopeEditor : ComponentEditorWidget { SFXREnvelope Envelope; public SFXREnvelopeEditor( SerializedObject obj ) : base( obj ) { var defaultInspector = new PropertyControlSheet(); defaultInspector.AddObject( obj ); Envelope = obj.Targets.First() as SFXREnvelope; Layout = Layout.Column(); Layout.Add( defaultInspector ); Layout.AddSpacingCell( 5 ); Layout.AddSpacingCell( 90 ); } protected override void OnPaint() { base.OnPaint(); Rect adsrRect = new Rect( 12, 138, Width - 30, 80 ); Paint.SetBrush( Theme.ControlBackground ); Paint.SetPen( Theme.ControlBackground ); Paint.DrawRect( adsrRect, 2 ); Paint.SetPen( Theme.Green, 2 ); Envelope.GetCurve().DrawLine( adsrRect, 3, 0, 1 ); } }