Files
ClassicAssist.Avalonia/ClassicAssist/Data/Hotkeys/Commands/EntityCollectionViewerHotkey.cs
T
Beyhan Oğur d5f52cc3d3 first commit
2026-09-03 04:45:36 +03:00

59 lines
1.8 KiB
C#

using System.Threading;
using System.Windows.Threading;
using ClassicAssist.Shared;
using ClassicAssist.Shared.Resources;
using ClassicAssist.UI.ViewModels;
using ClassicAssist.UI.Views;
using ClassicAssist.UO.Objects;
using UOC = ClassicAssist.Shared.UO.Commands;
namespace ClassicAssist.Data.Hotkeys.Commands
{
[HotkeyCommand( Name = "Grid Container Viewer" )]
public class EntityCollectionViewerHotkey : HotkeyCommand
{
public override void Execute()
{
int serial = UOC.GetTargeSerialAsync( Strings.Target_container___ ).Result;
Entity entity = Engine.Items.GetItem( serial ) ?? (Entity) Engine.Mobiles.GetMobile( serial );
if ( entity == null )
{
UOC.SystemMessage( Strings.Cannot_find_item___ );
return;
}
ItemCollection collection = new ItemCollection( entity.Serial );
switch ( entity )
{
case Item item:
if ( item.Container == null )
{
UOC.WaitForContainerContents( item.Serial, 1000 );
}
collection = item.Container;
break;
case Mobile mobile:
collection = new ItemCollection( entity.Serial ) { mobile.GetEquippedItems() };
break;
}
Thread t = new Thread( () =>
{
EntityCollectionViewer window = new EntityCollectionViewer
{
DataContext = new EntityCollectionViewerViewModel( collection )
};
window.Show();
Dispatcher.Run();
} ) { IsBackground = true };
t.SetApartmentState( ApartmentState.STA );
t.Start();
}
}
}