A Thought about Assembly Organizing

I know this has been asked for for many years but i was looking at the source code and wondered if the same code that allows inventory drag and drop might be modified to work with assembly. Its got a lot of stuff the assembly storage menu coding doesnt so I dont know if it would be possible but maybe someone who is good at code could figure it out. Its located in the mnuInventory cs file under client- client- menus. It says somethin bout drag and drop. I dunno enough about codes to attempt to understand this. Sorry if it isnt helpful. But here is the parts i mean

[spoilerCodes:g86m32zl]lblVisibleItems = new Label[10];
for (int i = 0; i < lblVisibleItems.Length; i++) {
lblVisibleItems[i] = new Label(“lblVisibleItems” + i);
//lblVisibleItems[i].AutoSize = true;
lblVisibleItems[i].Size = new Size(200, 32);
lblVisibleItems[i].Font = FontManager.LoadFont(“PMU”, 32);
lblVisibleItems[i].Location = new Point(35, (i * 30) + 48);
//lblVisibleItems[i].HoverColor = Color.Red;
lblVisibleItems[i].ForeColor = Color.WhiteSmoke;
lblVisibleItems[i].AllowDrop = true;
lblVisibleItems[i].DragDrop += new EventHandler<DragEventArgs>(lblVisibleItems_DragDrop);
lblVisibleItems[i].MouseDown += new EventHandler<MouseButtonEventArgs>(lblVisibleItems_MouseDown);
lblVisibleItems[i].Click += new EventHandler<SdlDotNet.Widgets.MouseButtonEventArgs>(inventoryItem_Click);
this.AddWidget(lblVisibleItems[i]);

void lblVisibleItems_DragDrop(object sender, DragEventArgs e) {
if (mode == Enums.InvMenuType.Use) {
int oldSlot = Convert.ToInt32(e.Data.GetData(typeof(int)));
Network.Messenger.SendSwapInventoryItems(oldSlot, Array.IndexOf(lblVisibleItems, sender) + 1 + (currentTen * 10));
}
}

    void lblVisibleItems_MouseDown(object sender, MouseButtonEventArgs e) {
        if (mode == Enums.InvMenuType.Use) {
            if (Windows.WindowSwitcher.GameWindow.MenuManager.FindMenu("mnuItemSelected") == null) {
                Label label = (Label)sender;
                SdlDotNet.Graphics.Surface dragSurf = new SdlDotNet.Graphics.Surface(label.Buffer.Size);
                dragSurf.Fill(Color.Black);
                dragSurf.Blit(label.Buffer, new Point(0, 0));
                label.DoDragDrop(Array.IndexOf(lblVisibleItems, sender) + 1 + (currentTen * 10), DragDropEffects.Copy, dragSurf);
            }
        }
    }

    void inventoryItem_Click(object sender, SdlDotNet.Widgets.MouseButtonEventArgs e) {
        if (Players.PlayerManager.MyPlayer.GetInvItemNum(currentTen * 10 + 1 + Array.IndexOf(lblVisibleItems, sender)) &gt; 0) {
            ChangeSelected(Array.IndexOf(lblVisibleItems, sender));


            if (mode == Enums.InvMenuType.Store)
            {
                mnuBankItemSelected selectedMenu = (mnuBankItemSelected)Windows.WindowSwitcher.GameWindow.MenuManager.FindMenu("mnuBankItemSelected");
                if (selectedMenu != null) {
                    Windows.WindowSwitcher.GameWindow.MenuManager.RemoveMenu(selectedMenu);
                    //selectedMenu.ItemSlot = GetSelectedItemSlot();
                    //selectedMenu.ItemNum = Players.PlayerManager.MyPlayer.GetInvItemNum(GetSelectedItemSlot());

}
else if (mode == Enums.InvMenuType.Use)
{

                // Don"t select the item, interferes with drag & drop
                //mnuItemSelected selectedMenu = (mnuItemSelected)Windows.WindowSwitcher.GameWindow.MenuManager.FindMenu("mnuItemSelected");

[/details]

Anyway sorry if this is something you guys already tried I just thought it might be a good starting point for actually making organization a thing. Also I think you’d have to recompile the client anyway. But maybe someone smarter than me could do it.

Nice try dude even if they have tried it i am sure they appreciate the help :D