swb_editor/Commands.cs
using SWB.Base;
using SWB.Player;
namespace SWB.Editor;
internal class Commands
{
static OffsetEditor offsetEditor;
[ConCmd( "swb_editor_offsets", Help = "Opens the offsets editor" )]
public static void OpenOffsetsEditor()
{
var player = PlayerBase.Local;
var weaponGO = player.Inventory.Active;
var weapon = weaponGO.Components.Get<Weapon>();
if ( offsetEditor is not null )
{
offsetEditor.Delete();
offsetEditor = null;
if ( weapon.ViewModelHandler is not null )
weapon.ViewModelHandler.EditorMode = false;
return;
}
if ( weapon is not null )
{
var screenPanel = player.RootDisplay;
offsetEditor = new OffsetEditor( weapon );
screenPanel.Panel.AddChild( offsetEditor );
if ( weapon.ViewModelHandler is not null )
weapon.ViewModelHandler.EditorMode = true;
}
}
}