using Editor; using Sandbox; namespace VeloX; [CustomEditor( typeof( Pacejka ) )] public class PacejkaWidget : ControlObjectWidget { public override bool SupportsMultiEdit => false; public override bool IncludeLabel => false; [CustomEditor( typeof( Pacejka.PacejkaPreset ) )] private class LateralForceWidget : ControlObjectWidget { public LateralForceWidget( SerializedProperty property ) : base( property, true ) { Layout = Layout.Column(); Layout.Margin = 8f; Layout.Spacing = 8; foreach ( var item in TypeLibrary.GetType().Properties ) { var row = Layout.AddRow(); row.Spacing = 8; var propetry = SerializedObject.GetProperty( item.Name ); row.Add( new Label( propetry.Name ) ); row.Add( Create( propetry ) ); } } } private Pacejka Pacejka; public PacejkaWidget( SerializedProperty property ) : base( property, true ) { var obj = SerializedObject; Pacejka = obj.ParentProperty.GetValue(); Layout = Layout.Column(); Layout.Margin = 8f; Layout.Add( new Label.Body( $" {ToolTip}" ) { Color = Color.White } ); var tabs = Layout.Add( new TabWidget( null ) ); tabs.AddPage( nameof( Pacejka.Lateral ), null, Layout.Add( Create( obj.GetProperty( nameof( Pacejka.Lateral ) ) ) ) ); tabs.AddPage( nameof( Pacejka.Longitudinal ), null, Layout.Add( Create( obj.GetProperty( nameof( Pacejka.Longitudinal ) ) ) ) ); } }