1 |
119 |
MrJackdaw-1942 |
--[[This first part is only required because of the turbine bug]] |
2 |
|
MrJackdaw-1942 |
|
3 |
145 |
MrJackdaw-1942 |
--[[import "Turbine.UI" |
4 |
|
MrJackdaw-1942 |
import "Deusdictum.UI.Dragbar"]] |
5 |
135 |
MrJackdaw-1942 |
import "JackdawPlugins.SortPack.OptionPanel" |
6 |
114 |
MrJackdaw-1942 |
|
7 |
145 |
MrJackdaw-1942 |
--[[ Plugins["SortPackLoad"].Unload = function( sender, args ) |
8 |
138 |
MrJackdaw-1942 |
SortButtonData.X,SortButtonData.Y=SortButton:GetPosition() |
9 |
|
MrJackdaw-1942 |
JackdawPlugins.Patch.Save( Turbine.DataScope.Character, "SortPackButton", SortButtonData ) |
10 |
|
MrJackdaw-1942 |
end |
11 |
|
MrJackdaw-1942 |
|
12 |
|
MrJackdaw-1942 |
if not pcall(function() import "JackdawPlugins.Patch.Patch" end) then |
13 |
|
MrJackdaw-1942 |
--Turbine.Shell.WriteLine("Patch not present - default Load and Save used") |
14 |
|
MrJackdaw-1942 |
JackdawPlugins.Patch={} |
15 |
|
MrJackdaw-1942 |
function JackdawPlugins.Patch.Load(a,b,c) return Turbine.PluginData.Load(a,b,c) end |
16 |
|
MrJackdaw-1942 |
function JackdawPlugins.Patch.Save(a,b,c,d) Turbine.PluginData.Save(a,b,c,d) end |
17 |
|
MrJackdaw-1942 |
end |
18 |
|
MrJackdaw-1942 |
|
19 |
145 |
MrJackdaw-1942 |
SortButtonData=JackdawPlugins.Patch.Load( Turbine.DataScope.Character, "SortPackButton")]] |
20 |
139 |
MrJackdaw-1942 |
|
21 |
138 |
MrJackdaw-1942 |
--[[Here on in is just the normal button code. This could pass pretty much unchanged when the bug is fixed, however, having the button use slash commands is probably a bit over kill, and I would like to put some of the functionality back there instead of having it in the bag]] |
22 |
114 |
MrJackdaw-1942 |
|
23 |
138 |
MrJackdaw-1942 |
--Data for the Button. |
24 |
|
MrJackdaw-1942 |
if SortButtonData==nil then SortButtonData={} end |
25 |
|
MrJackdaw-1942 |
if SortButtonData.Scale==nil then SortButtonData.Scale=0.5 end |
26 |
|
MrJackdaw-1942 |
if SortButtonData.X==nil then SortButtonData.X=100 end |
27 |
|
MrJackdaw-1942 |
if SortButtonData.Y==nil then SortButtonData.Y=100 end |
28 |
|
MrJackdaw-1942 |
if SortButtonData.LeftClick==nil then SortButtonData.LeftClick="sort" end |
29 |
132 |
MrJackdaw-1942 |
|
30 |
138 |
MrJackdaw-1942 |
--Create the button. |
31 |
|
MrJackdaw-1942 |
--Structure is; Window/Quickslot/Icon/Cover |
32 |
132 |
MrJackdaw-1942 |
|
33 |
138 |
MrJackdaw-1942 |
SortButton=Turbine.UI.Window() |
34 |
|
MrJackdaw-1942 |
SortButton:SetVisible(true) |
35 |
|
MrJackdaw-1942 |
SortButton.DragBar = Deusdictum.UI.DragBar( SortButton,"Sort") |
36 |
|
MrJackdaw-1942 |
SortButton.DragBar:SetZOrder(9999) |
37 |
|
MrJackdaw-1942 |
SortButton:SetPosition(SortButtonData.X,SortButtonData.Y) |
38 |
|
MrJackdaw-1942 |
|
39 |
|
MrJackdaw-1942 |
SortButton:SetMouseVisible(true) |
40 |
111 |
MrJackdaw-1942 |
|
41 |
138 |
MrJackdaw-1942 |
SortButton.shortcut = Turbine.UI.Lotro.Shortcut(); |
42 |
|
MrJackdaw-1942 |
SortButton.shortcut:SetType(Turbine.UI.Lotro.ShortcutType.Alias); |
43 |
|
MrJackdaw-1942 |
SortButton.shortcut:SetData("/"..SortButtonData.LeftClick) |
44 |
126 |
MrJackdaw-1942 |
|
45 |
138 |
MrJackdaw-1942 |
SortButton.quickslot=Turbine.UI.Lotro.Quickslot(); |
46 |
|
MrJackdaw-1942 |
SortButton.quickslot:SetParent(SortButton); |
47 |
|
MrJackdaw-1942 |
SortButton.quickslot:SetShortcut(SortButton.shortcut); |
48 |
|
MrJackdaw-1942 |
SortButton.quickslot:SetVisible(true); |
49 |
|
MrJackdaw-1942 |
SortButton.quickslot:SetUseOnRightClick(false) |
50 |
114 |
MrJackdaw-1942 |
|
51 |
138 |
MrJackdaw-1942 |
SortButton.Icon=Turbine.UI.Control() |
52 |
|
MrJackdaw-1942 |
SortButton.Icon:SetParent(SortButton) |
53 |
|
MrJackdaw-1942 |
SortButton.Icon:SetVisible(true) |
54 |
|
MrJackdaw-1942 |
SortButton.Icon:SetSize(32,32) |
55 |
|
MrJackdaw-1942 |
SortButton.Icon:SetBackground(0x41007ecf) |
56 |
|
MrJackdaw-1942 |
SortButton.Icon:SetStretchMode(1) |
57 |
|
MrJackdaw-1942 |
SortButton.Icon:SetMouseVisible(false) |
58 |
|
MrJackdaw-1942 |
|
59 |
|
MrJackdaw-1942 |
SortButton.Cover=Turbine.UI.Control() |
60 |
|
MrJackdaw-1942 |
SortButton.Cover:SetParent(SortButton) |
61 |
122 |
MrJackdaw-1942 |
SortButton.Cover:SetVisible(false) |
62 |
138 |
MrJackdaw-1942 |
SortButton.Cover:SetBackColor(Turbine.UI.Color(0.5,1,1,1)) |
63 |
|
MrJackdaw-1942 |
|
64 |
|
MrJackdaw-1942 |
SortButton.SizeChanged=function() |
65 |
|
MrJackdaw-1942 |
SortButton.quickslot:SetSize(32*SortButtonData.Scale,32*SortButtonData.Scale) |
66 |
|
MrJackdaw-1942 |
SortButton.Icon:SetSize(32*SortButtonData.Scale,32*SortButtonData.Scale) |
67 |
|
MrJackdaw-1942 |
SortButton.Cover:SetSize(32*SortButtonData.Scale,32*SortButtonData.Scale) |
68 |
122 |
MrJackdaw-1942 |
end |
69 |
138 |
MrJackdaw-1942 |
|
70 |
|
MrJackdaw-1942 |
SortButton:SetSize(32*SortButtonData.Scale,32*SortButtonData.Scale) |
71 |
|
MrJackdaw-1942 |
SortButton.DragBar:Refresh() |
72 |
58 |
MrJackdaw-1942 |
|
73 |
138 |
MrJackdaw-1942 |
--When UI is unlocked then make the cover visible. |
74 |
|
MrJackdaw-1942 |
SortButton.DragEnable=function() |
75 |
|
MrJackdaw-1942 |
SortButton.Cover:SetVisible(true) |
76 |
58 |
MrJackdaw-1942 |
end |
77 |
126 |
MrJackdaw-1942 |
|
78 |
138 |
MrJackdaw-1942 |
SortButton.DragDisable=function() |
79 |
|
MrJackdaw-1942 |
SortButton.Cover:SetVisible(false) |
80 |
|
MrJackdaw-1942 |
end |
81 |
126 |
MrJackdaw-1942 |
|
82 |
138 |
MrJackdaw-1942 |
--Cover events - resize the Button. |
83 |
|
MrJackdaw-1942 |
SortButton.Cover.MouseDown=function(sender,args) |
84 |
|
MrJackdaw-1942 |
moving=true |
85 |
|
MrJackdaw-1942 |
end |
86 |
126 |
MrJackdaw-1942 |
|
87 |
138 |
MrJackdaw-1942 |
SortButton.Cover.MouseUp=function(sender,args) |
88 |
|
MrJackdaw-1942 |
moving=false |
89 |
|
MrJackdaw-1942 |
end |
90 |
126 |
MrJackdaw-1942 |
|
91 |
138 |
MrJackdaw-1942 |
SortButton.Cover.MouseMove=function(sender,args) |
92 |
|
MrJackdaw-1942 |
if moving then |
93 |
|
MrJackdaw-1942 |
local x,y=SortButton.Cover:GetMousePosition() |
94 |
|
MrJackdaw-1942 |
|
95 |
|
MrJackdaw-1942 |
SortButtonData.Scale=math.max(x,y)/32 |
96 |
|
MrJackdaw-1942 |
if SortButtonData.Scale<0.25 then SortButtonData.Scale=0.25 end |
97 |
|
MrJackdaw-1942 |
|
98 |
|
MrJackdaw-1942 |
SortButton:SetSize(32*SortButtonData.Scale,32*SortButtonData.Scale) |
99 |
|
MrJackdaw-1942 |
SortButton.DragBar:Refresh() |
100 |
122 |
MrJackdaw-1942 |
end |
101 |
126 |
MrJackdaw-1942 |
end |
102 |
|
MrJackdaw-1942 |
|
103 |
138 |
MrJackdaw-1942 |
SortButton.quickslot.MouseDown=function(sender,args) |
104 |
|
MrJackdaw-1942 |
if ( args.Button == Turbine.UI.MouseButton.Left ) then |
105 |
145 |
MrJackdaw-1942 |
--[[Turbine.PluginManager.UnloadScriptState("SortPack") |
106 |
|
MrJackdaw-1942 |
Turbine.PluginManager.LoadPlugin("SortPack")]] |
107 |
138 |
MrJackdaw-1942 |
else |
108 |
|
MrJackdaw-1942 |
local contextMenu = Turbine.UI.ContextMenu() |
109 |
|
MrJackdaw-1942 |
contextMenu.items = contextMenu:GetItems() |
110 |
|
MrJackdaw-1942 |
|
111 |
|
MrJackdaw-1942 |
local option1 = Turbine.UI.MenuItem("Action on left click..") |
112 |
|
MrJackdaw-1942 |
|
113 |
|
MrJackdaw-1942 |
local options={ |
114 |
|
MrJackdaw-1942 |
[1] = |
115 |
|
MrJackdaw-1942 |
{ |
116 |
|
MrJackdaw-1942 |
["Text"] = "Sort the pack", |
117 |
|
MrJackdaw-1942 |
["Command"] = "sort" |
118 |
|
MrJackdaw-1942 |
}, |
119 |
|
MrJackdaw-1942 |
[2] = |
120 |
|
MrJackdaw-1942 |
{ |
121 |
151 |
MrJackdaw-1942 |
["Text"] = "Re-stack the pack - WARNING EXPERIMENTAL!", |
122 |
|
MrJackdaw-1942 |
["Command"] = "stack" |
123 |
|
MrJackdaw-1942 |
}, |
124 |
|
MrJackdaw-1942 |
[3] = |
125 |
|
MrJackdaw-1942 |
{ |
126 |
138 |
MrJackdaw-1942 |
["Text"] = "Open the SortBag", |
127 |
|
MrJackdaw-1942 |
["Command"] = "openbag" |
128 |
|
MrJackdaw-1942 |
}, |
129 |
151 |
MrJackdaw-1942 |
[4] = |
130 |
138 |
MrJackdaw-1942 |
{ |
131 |
|
MrJackdaw-1942 |
["Text"] = "Open the Sort Options", |
132 |
|
MrJackdaw-1942 |
["Command"] = "sortoption" |
133 |
|
MrJackdaw-1942 |
}, |
134 |
151 |
MrJackdaw-1942 |
[5] = |
135 |
138 |
MrJackdaw-1942 |
{ |
136 |
|
MrJackdaw-1942 |
["Text"] = "Create/Edit custom Categories", |
137 |
|
MrJackdaw-1942 |
["Command"] = "SortCat" |
138 |
|
MrJackdaw-1942 |
}, |
139 |
151 |
MrJackdaw-1942 |
[6] = |
140 |
138 |
MrJackdaw-1942 |
{ |
141 |
|
MrJackdaw-1942 |
["Text"] = "Open the Sort Debug window", |
142 |
|
MrJackdaw-1942 |
["Command"] = "SortDebug" |
143 |
|
MrJackdaw-1942 |
}, |
144 |
151 |
MrJackdaw-1942 |
[7] = |
145 |
138 |
MrJackdaw-1942 |
{ |
146 |
|
MrJackdaw-1942 |
["Text"] = "Show/Hide Counter", |
147 |
|
MrJackdaw-1942 |
["Command"] = "SortCounter" |
148 |
|
MrJackdaw-1942 |
} |
149 |
|
MrJackdaw-1942 |
} |
150 |
|
MrJackdaw-1942 |
|
151 |
|
MrJackdaw-1942 |
|
152 |
|
MrJackdaw-1942 |
contextMenu.SubMenuItems = option1:GetItems() |
153 |
|
MrJackdaw-1942 |
|
154 |
|
MrJackdaw-1942 |
local suboption={} |
155 |
|
MrJackdaw-1942 |
for i=1,#options do |
156 |
|
MrJackdaw-1942 |
suboption[i] = Turbine.UI.MenuItem(options[i].Text,true,SortButtonData.LeftClick==options[i].Command) |
157 |
|
MrJackdaw-1942 |
suboption[i].Click = function () |
158 |
|
MrJackdaw-1942 |
SortButtonData.LeftClick=options[i].Command |
159 |
|
MrJackdaw-1942 |
SortButton.shortcut:SetData("/"..SortButtonData.LeftClick) |
160 |
|
MrJackdaw-1942 |
SortButton.quickslot:SetShortcut(SortButton.shortcut); |
161 |
|
MrJackdaw-1942 |
end |
162 |
|
MrJackdaw-1942 |
contextMenu.SubMenuItems:Add(suboption[i]) |
163 |
|
MrJackdaw-1942 |
end |
164 |
|
MrJackdaw-1942 |
|
165 |
|
MrJackdaw-1942 |
contextMenu.items:Add(option1) |
166 |
|
MrJackdaw-1942 |
contextMenu:ShowMenu() |
167 |
|
MrJackdaw-1942 |
end |
168 |
122 |
MrJackdaw-1942 |
end |
169 |
138 |
MrJackdaw-1942 |
|
170 |
139 |
MrJackdaw-1942 |
|
171 |
145 |
MrJackdaw-1942 |
--[[Turbine.PluginManager.UnloadScriptState("SortPack") |
172 |
|
MrJackdaw-1942 |
Turbine.PluginManager.LoadPlugin("SortPack")]] |
173 |
139 |
MrJackdaw-1942 |
|
174 |
|
MrJackdaw-1942 |
--This fixes a very odd bug that has crept in - I have no idea what is causing it, but it is most annoying. |
175 |
|
MrJackdaw-1942 |
--The icon just doesn't seem to scale properly... |
176 |
|
MrJackdaw-1942 |
|
177 |
|
MrJackdaw-1942 |
SortButton.Icon:SetSize(32*SortButtonData.Scale,32*SortButtonData.Scale) |