first commit

This commit is contained in:
Beyhan Oğur
2026-09-03 04:45:36 +03:00
commit d5f52cc3d3
1038 changed files with 169579 additions and 0 deletions
@@ -0,0 +1,59 @@
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();
}
}
}
@@ -0,0 +1,13 @@
using static ClassicAssist.Shared.UO.Commands;
namespace ClassicAssist.Data.Hotkeys.Commands
{
[HotkeyCommand( Name = "Object Inspector" )]
public class ObjectInspector : HotkeyCommand
{
public override async void Execute()
{
await InspectObjectAsync();
}
}
}
@@ -0,0 +1,48 @@
#region License
// Copyright (C) 2020 Reetus
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.
#endregion
using System.Threading;
using System.Windows.Threading;
using ClassicAssist.Shared;
using ClassicAssist.UI.Views;
namespace ClassicAssist.Data.Hotkeys.Commands
{
[HotkeyCommand( Name = "Show Chat Window" )]
public class ShowChatWindowCommand : HotkeyCommand
{
public override void Execute()
{
Engine.Dispatcher.Invoke( () =>
{
Thread t = new Thread( () =>
{
ChatWindow window = new ChatWindow();
window.Show();
Dispatcher.Run();
} )
{ IsBackground = true };
t.SetApartmentState( ApartmentState.STA );
t.Start();
} );
}
}
}
@@ -0,0 +1,43 @@
#region License
// Copyright (C) 2020 Reetus
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.
#endregion
using System.Threading;
using ClassicAssist.UI.Views;
namespace ClassicAssist.Data.Hotkeys.Commands
{
[HotkeyCommand( Category = "Commands", Name = "Show GIF Capture" )]
public class ShowGIFCaptureWindow : HotkeyCommand
{
private GIFRecorderWindow _window;
public override void Execute()
{
Thread t = new Thread( () =>
{
_window = new GIFRecorderWindow();
_window.ShowDialog();
} );
t.SetApartmentState( ApartmentState.STA );
t.IsBackground = true;
t.Start();
}
}
}
@@ -0,0 +1,34 @@
using System;
using System.Windows.Media;
using ClassicAssist.Misc;
using ICSharpCode.AvalonEdit.CodeCompletion;
using ICSharpCode.AvalonEdit.Document;
using ICSharpCode.AvalonEdit.Editing;
namespace ClassicAssist.Data.Macros
{
public class PythonCompletionData : ICompletionData
{
public PythonCompletionData( string text, string description, string insertText )
{
Description = description;
Text = insertText;
Content = text;
}
public void Complete( TextArea textArea, ISegment completionSegment, EventArgs insertionRequestEventArgs )
{
DocumentLine line = textArea.Document.Lines[textArea.Caret.Line - 1];
textArea.Document.Replace(
new TextSegment { StartOffset = line.Offset, EndOffset = line.EndOffset, Length = line.Length }, Text );
}
public ImageSource Image => Properties.Resources.python.ToImageSource();
public string Text { get; }
public object Content { get; }
public object Description { get; }
public double Priority { get; }
}
}
@@ -0,0 +1,69 @@
using System;
using System.Collections;
using System.ComponentModel;
using ClassicAssist.UI.Misc;
namespace ClassicAssist.Data.Skills
{
public class SkillComparer : IComparer
{
private readonly ListSortDirection _direction;
private readonly SkillsGridViewColumn.Enums _sortField;
public SkillComparer( ListSortDirection direction, SkillsGridViewColumn.Enums sortField )
{
_direction = direction;
_sortField = sortField;
}
public int Compare( object x, object y )
{
SkillEntry first = (SkillEntry) x;
SkillEntry second = (SkillEntry) y;
if ( first == null || second == null )
{
return -1;
}
int result;
switch ( _sortField )
{
case SkillsGridViewColumn.Enums.Name:
result = string.Compare( first.Skill.Name, second.Skill.Name, StringComparison.Ordinal );
break;
case SkillsGridViewColumn.Enums.Value:
result = first.Value.CompareTo( second.Value );
break;
case SkillsGridViewColumn.Enums.Base:
result = first.Base.CompareTo( second.Base );
break;
case SkillsGridViewColumn.Enums.Delta:
result = first.Delta.CompareTo( second.Delta );
if ( result == 0 )
{
result = first.Base.CompareTo( second.Base );
}
break;
case SkillsGridViewColumn.Enums.Cap:
result = first.Cap.CompareTo( second.Cap );
break;
case SkillsGridViewColumn.Enums.LockStatus:
result = first.LockStatus.CompareTo( second.LockStatus );
break;
default:
throw new ArgumentOutOfRangeException();
}
if ( _direction == ListSortDirection.Descending )
{
result = -result;
}
return result;
}
}
}