madcatzinc@0
|
1 --~ Warcraft Plugin for Cyborg MMO7
|
madcatzinc@0
|
2 --~ Filename: CyborgMMO7.lua
|
madcatzinc@0
|
3 --~ Description: Plugin entry point, String tables and other generic crap that I could not think to put anywhere else.
|
madcatzinc@0
|
4 --~ Copyright (C) 2012 Mad Catz Inc.
|
madcatzinc@0
|
5 --~ Author: Christopher Hooks
|
madcatzinc@0
|
6
|
madcatzinc@0
|
7 --~ This program is free software; you can redistribute it and/or
|
madcatzinc@0
|
8 --~ modify it under the terms of the GNU General Public License
|
madcatzinc@0
|
9 --~ as published by the Free Software Foundation; either version 2
|
madcatzinc@0
|
10 --~ of the License, or (at your option) any later version.
|
madcatzinc@0
|
11
|
madcatzinc@0
|
12 --~ This program is distributed in the hope that it will be useful,
|
madcatzinc@0
|
13 --~ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
madcatzinc@0
|
14 --~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
madcatzinc@0
|
15 --~ GNU General Public License for more details.
|
madcatzinc@0
|
16
|
madcatzinc@0
|
17 --~ You should have received a copy of the GNU General Public License
|
madcatzinc@0
|
18 --~ along with this program; if not, write to the Free Software
|
madcatzinc@0
|
19 --~ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
madcatzinc@0
|
20
|
madcatzinc@0
|
21
|
madcatzinc@0
|
22
|
madcatzinc@0
|
23
|
madcatzinc@0
|
24
|
madcatzinc@4
|
25 function CyborgMMO_LoadStrings(self)
|
madcatzinc@4
|
26 --~ msg("LoadStrings("..self:GetName()..") = "..StringTable[self:GetName()])
|
madcatzinc@1
|
27 self:SetText(StringTable[self:GetName()]);
|
madcatzinc@0
|
28 end
|
madcatzinc@0
|
29
|
madcatzinc@0
|
30 local VarsLoaded = false;
|
madcatzinc@0
|
31 local EnteredWorld = false;
|
madcatzinc@0
|
32 local LoadBinding = false;
|
madcatzinc@0
|
33 local SaveName = GetRealmName().."_"..UnitName("player");
|
madcatzinc@0
|
34 local Settings = nil;
|
madcatzinc@0
|
35
|
madcatzinc@0
|
36
|
madcatzinc@4
|
37 function CyborgMMO_MiniMapButtonReposition(pos)
|
madcatzinc@4
|
38 CyborgMMO_MiniMapFrame:SetPoint("TOPLEFT",
|
madcatzinc@0
|
39 "Minimap",
|
madcatzinc@0
|
40 "TOPLEFT",
|
madcatzinc@0
|
41 52-(80*cos(pos)),
|
madcatzinc@0
|
42 (80*sin(pos))-52)
|
madcatzinc@0
|
43 end
|
madcatzinc@0
|
44
|
madcatzinc@0
|
45
|
madcatzinc@4
|
46 function CyborgMMO_MiniMapButtonOnUpdate()
|
madcatzinc@0
|
47
|
madcatzinc@0
|
48 local xpos,ypos = GetCursorPosition()
|
madcatzinc@0
|
49 local xmin,ymin = Minimap:GetLeft(), Minimap:GetBottom()
|
madcatzinc@0
|
50
|
madcatzinc@0
|
51 xpos = (xmin)-(xpos / UIParent:GetScale())
|
madcatzinc@0
|
52 ypos = (ypos/ UIParent:GetScale())-(ymin)
|
madcatzinc@0
|
53
|
madcatzinc@0
|
54 local degrees = math.deg(math.atan2(ypos,xpos));
|
madcatzinc@0
|
55
|
madcatzinc@0
|
56 while(degrees < 0) do
|
madcatzinc@0
|
57 degrees = degrees + 360;
|
madcatzinc@0
|
58 end
|
madcatzinc@0
|
59
|
madcatzinc@0
|
60
|
madcatzinc@4
|
61 CyborgMMO_MiniMapButtonReposition(degrees)
|
madcatzinc@0
|
62 end
|
madcatzinc@0
|
63
|
madcatzinc@4
|
64 function CyborgMMO_MouseModeChange(mode)
|
madcatzinc@4
|
65 local MiniMapTexture = getglobal("CyborgMMO_MiniMapFrameButton_Icon")
|
madcatzinc@4
|
66 local MiniMapGlowTexture = getglobal("CyborgMMO_MiniMapFrameButton_IconGlow")
|
madcatzinc@4
|
67 local OpenButtonTexture = getglobal("CyborgMMO_OpenButtonPage".."OpenMainForm"):GetNormalTexture();
|
madcatzinc@4
|
68 local OpenButtonGlowTexture = getglobal("CyborgMMO_OpenButtonPage".."OpenMainForm"):GetHighlightTexture();
|
madcatzinc@0
|
69 if(1==mode) then
|
madcatzinc@0
|
70 MiniMapTexture:SetVertexColor(1,0,0,1)
|
madcatzinc@0
|
71 --MiniMapGlowTexture:SetVertexColor(1,0.26,0.26,.75);
|
madcatzinc@0
|
72 OpenButtonTexture:SetVertexColor(1,0,0,0.75);
|
madcatzinc@0
|
73 --OpenButtonGlowTexture:SetVertexColor(1,0.26,0.26,0.50);
|
madcatzinc@0
|
74 elseif(2==mode) then
|
madcatzinc@0
|
75 MiniMapTexture:SetVertexColor(0.07,0.22,1,1)
|
madcatzinc@0
|
76 MiniMapGlowTexture:SetVertexColor(0.13,0.56,1,.75);
|
madcatzinc@0
|
77 OpenButtonTexture:SetVertexColor(0.07,0.22,1,0.75);
|
madcatzinc@0
|
78 OpenButtonGlowTexture:SetVertexColor(0.13,0.56,1,0.5);
|
madcatzinc@0
|
79 elseif(3==mode) then
|
madcatzinc@0
|
80 MiniMapTexture:SetVertexColor(0.52,0.08,0.89,1)
|
madcatzinc@0
|
81 MiniMapGlowTexture:SetVertexColor(0.67,0.31,0.85,.75);
|
madcatzinc@0
|
82 OpenButtonTexture:SetVertexColor(0.52,0.08,0.89,0.75);
|
madcatzinc@0
|
83 OpenButtonGlowTexture:SetVertexColor(0.67,0.31,0.85,0.5);
|
madcatzinc@0
|
84 end
|
madcatzinc@0
|
85 end
|
madcatzinc@0
|
86
|
madcatzinc@4
|
87 function CyborgMMO_LoadWowCommands()
|
madcatzinc@1
|
88 if (ProfileKeyBindings == nil) then
|
madcatzinc@1
|
89 ProfileKeyBindings = {}
|
madcatzinc@1
|
90 ProfileKeyBindings = InternationalWowCommands[GetLocale()]
|
madcatzinc@1
|
91 end
|
madcatzinc@1
|
92 WowCommands = ProfileKeyBindings
|
madcatzinc@1
|
93 end
|
madcatzinc@1
|
94
|
madcatzinc@4
|
95 function CyborgMMO_GetSaveData()
|
madcatzinc@0
|
96 if(VarsLoaded) then
|
madcatzinc@0
|
97 if (CyborgMMO7SaveData == nil) then
|
madcatzinc@0
|
98 CyborgMMO7SaveData = {};
|
madcatzinc@0
|
99 CyborgMMO7SaveData[SaveName] = {}
|
madcatzinc@0
|
100 end
|
madcatzinc@4
|
101 CyborgMMO_LoadWowCommands()
|
madcatzinc@0
|
102 return CyborgMMO7SaveData[SaveName];
|
madcatzinc@0
|
103 end
|
madcatzinc@0
|
104 return nil;
|
madcatzinc@0
|
105 end
|
madcatzinc@0
|
106
|
madcatzinc@4
|
107 function CyborgMMO_SetSaveData(data, index)
|
madcatzinc@0
|
108 if(VarsLoaded) then
|
madcatzinc@4
|
109 CyborgMMO_GetSaveData()[index] = data
|
madcatzinc@1
|
110 ProfileKeyBindings = WowCommands
|
madcatzinc@0
|
111 end
|
madcatzinc@0
|
112 end
|
madcatzinc@0
|
113
|
madcatzinc@4
|
114 function CyborgMMO_Event(self, event, ...)
|
madcatzinc@0
|
115 if(event == "VARIABLES_LOADED") then
|
madcatzinc@0
|
116 VarsLoaded = true;
|
madcatzinc@0
|
117 elseif(event == "PLAYER_ENTERING_WORLD") then
|
madcatzinc@0
|
118 EnteredWorld = true;
|
madcatzinc@0
|
119 elseif(event == "PLAYER_ENTER_COMBAT") then
|
madcatzinc@0
|
120 msg("PLAYER_ENTER_COMBAT");
|
madcatzinc@0
|
121 Close();
|
madcatzinc@0
|
122 elseif(event == nil) then
|
madcatzinc@0
|
123 msg("Event is nil");
|
madcatzinc@0
|
124 else
|
madcatzinc@1
|
125 msg("Event is " + event);
|
madcatzinc@0
|
126 end
|
madcatzinc@0
|
127
|
madcatzinc@0
|
128
|
madcatzinc@0
|
129 -- Fire Loading if and only if the player is in the world and vars are loaded
|
madcatzinc@0
|
130 if(false == LoadBinding) then
|
madcatzinc@0
|
131 if(VarsLoaded) then
|
madcatzinc@0
|
132 if(EnteredWorld) then
|
madcatzinc@4
|
133 local data = CyborgMMO_GetSaveData()
|
madcatzinc@0
|
134
|
madcatzinc@4
|
135 CyborgMMO_RatPageModel.Instance().LoadData();
|
madcatzinc@0
|
136 LoadBinding = true;
|
madcatzinc@0
|
137
|
madcatzinc@0
|
138 ShowMacroFrame();
|
madcatzinc@0
|
139 HideUIPanel(MacroFrame);
|
madcatzinc@0
|
140
|
madcatzinc@0
|
141
|
madcatzinc@4
|
142 CyborgMMO_SetupModeCallbacks(1);
|
madcatzinc@4
|
143 CyborgMMO_SetupModeCallbacks(2);
|
madcatzinc@4
|
144 CyborgMMO_SetupModeCallbacks(3);
|
madcatzinc@0
|
145
|
madcatzinc@0
|
146
|
madcatzinc@0
|
147 --Reload Slider values:
|
madcatzinc@0
|
148 if(nil == data["Settings"]) then
|
madcatzinc@0
|
149 data["Settings"] = {}
|
madcatzinc@0
|
150 data["Settings"]["Cyborg"] = 0.75;
|
madcatzinc@0
|
151 data["Settings"]["Plugin"] = 0.75;
|
madcatzinc@0
|
152 data["Settings"]["MiniMapButton"] = true;
|
madcatzinc@0
|
153 data["Settings"]["CyborgButton"] = true;
|
madcatzinc@0
|
154 end
|
madcatzinc@0
|
155
|
madcatzinc@0
|
156 Settings = data["Settings"];
|
madcatzinc@0
|
157
|
madcatzinc@4
|
158 CyborgMMO_OptionPageCyborgSizeSlider:SetValue(Settings["Cyborg"]);
|
madcatzinc@4
|
159 CyborgMMO_SetOpenButtonSize(Settings["Cyborg"])
|
madcatzinc@4
|
160 CyborgMMO_OptionPagePluginSizeSlider:SetValue(Settings["Plugin"]);
|
madcatzinc@4
|
161 CyborgMMO_SetMainPageSize(Settings["Plugin"]);
|
madcatzinc@4
|
162
|
madcatzinc@4
|
163 CyborgMMO_SetMiniMapButton(Settings["MiniMapButton"])
|
madcatzinc@4
|
164 CyborgMMO_SetCyborgHeadButton(Settings["CyborgButton"])
|
madcatzinc@0
|
165
|
madcatzinc@0
|
166 local xmin,ymin = Minimap:GetLeft(), Minimap:GetBottom()
|
madcatzinc@4
|
167 CyborgMMO_MiniMapButtonReposition(math.deg(math.atan2(ymin,xmin)))
|
madcatzinc@0
|
168 -- Close the main window for now
|
madcatzinc@4
|
169 CyborgMMO_Close();
|
madcatzinc@0
|
170 end
|
madcatzinc@0
|
171 end
|
madcatzinc@0
|
172 end
|
madcatzinc@0
|
173 end
|
madcatzinc@0
|
174
|
madcatzinc@4
|
175 function CyborgMMO_SetDefaultSettings()
|
madcatzinc@4
|
176 CyborgMMO_OpenButtonPageOpenMainForm:ClearAllPoints();
|
madcatzinc@4
|
177 CyborgMMO_MainPage:ClearAllPoints();
|
madcatzinc@4
|
178 CyborgMMO_OpenButtonPageOpenMainForm:SetPoint("LEFT", UIParent, "LEFT", 0, 0);
|
madcatzinc@4
|
179 CyborgMMO_MainPage:SetPoint("LEFT", UIParent, "LEFT", 0, 0);
|
madcatzinc@0
|
180
|
madcatzinc@4
|
181 CyborgMMO_SetOpenButtonSize(0.75);
|
madcatzinc@4
|
182 CyborgMMO_SetMainPageSize(0.75);
|
madcatzinc@4
|
183 CyborgMMO_SetMiniMapButton(true);
|
madcatzinc@4
|
184 CyborgMMO_SetCyborgHeadButton(true);
|
madcatzinc@0
|
185 end
|
madcatzinc@0
|
186
|
madcatzinc@0
|
187
|
madcatzinc@4
|
188 function CyborgMMO_SetupModeCallbacks(modeNum)
|
madcatzinc@0
|
189 fn = function()
|
madcatzinc@4
|
190 CyborgMMO_MouseModeChange(modeNum);
|
madcatzinc@4
|
191 CyborgMMO_RatPageModel.Instance().SetMode(modeNum)
|
madcatzinc@0
|
192 end
|
madcatzinc@0
|
193
|
madcatzinc@4
|
194 local buttonFrame, parentFrame, name = CyborgMMO_CallbackFactory.Instance().AddCallback(fn);
|
madcatzinc@1
|
195 if(1 ~= SetOverrideBindingClick(parentFrame, true, Mode[modeNum], name, "LeftButton")) then
|
madcatzinc@0
|
196 msg("Failed to Bind modeChange");
|
madcatzinc@0
|
197 end
|
madcatzinc@0
|
198 end
|
madcatzinc@0
|
199
|
madcatzinc@4
|
200 function CyborgMMO_Loaded()
|
madcatzinc@4
|
201 CyborgMMO_MainPage:RegisterEvent("VARIABLES_LOADED");
|
madcatzinc@4
|
202 CyborgMMO_MainPage:RegisterEvent("PLAYER_ENTERING_WORLD");
|
madcatzinc@4
|
203 CyborgMMO_MainPage:RegisterEvent("PLAYER_ENTER_COMBAT");
|
madcatzinc@0
|
204 end
|
madcatzinc@0
|
205
|
madcatzinc@4
|
206 function CyborgMMO_Close()
|
madcatzinc@4
|
207 CyborgMMO_MainPage:Hide();
|
madcatzinc@0
|
208 if(Settings["CyborgButton"] == true) then
|
madcatzinc@4
|
209 CyborgMMO_OpenButtonPage:Show();
|
madcatzinc@0
|
210 end
|
madcatzinc@0
|
211 end
|
madcatzinc@0
|
212
|
madcatzinc@4
|
213 function CyborgMMO_Open()
|
madcatzinc@4
|
214 CyborgMMO_MainPage:Show();
|
madcatzinc@4
|
215 CyborgMMO_RatQuickPage:Hide();
|
madcatzinc@0
|
216 if(Settings["CyborgButton"] == true) then
|
madcatzinc@4
|
217 CyborgMMO_OpenButtonPage:Show();
|
madcatzinc@0
|
218 end
|
madcatzinc@0
|
219 end
|
madcatzinc@0
|
220
|
madcatzinc@4
|
221 function CyborgMMO_IsOpen()
|
madcatzinc@4
|
222 if(CyborgMMO_MainPage:IsVisible() == 1) then
|
madcatzinc@0
|
223 return true;
|
madcatzinc@0
|
224 else
|
madcatzinc@0
|
225 return false;
|
madcatzinc@0
|
226 end
|
madcatzinc@0
|
227 end
|
madcatzinc@0
|
228
|
madcatzinc@4
|
229 function CyborgMMO_Toggle()
|
madcatzinc@4
|
230 if(CyborgMMO_IsOpen()) then
|
madcatzinc@4
|
231 CyborgMMO_Close();
|
madcatzinc@0
|
232 else
|
madcatzinc@4
|
233 CyborgMMO_Open();
|
madcatzinc@0
|
234 end
|
madcatzinc@0
|
235 end
|
madcatzinc@0
|
236
|
madcatzinc@0
|
237 function msg(m)
|
madcatzinc@0
|
238 local id, name = GetChannelName("Debug");
|
madcatzinc@0
|
239 SendChatMessage(m, "CHANNEL", nil, id);
|
madcatzinc@0
|
240 end
|
madcatzinc@0
|
241
|
madcatzinc@4
|
242 function CyborgMMO_SetMainPageSize(percent)
|
madcatzinc@0
|
243 if(VarsLoaded) then
|
madcatzinc@0
|
244 if(EnteredWorld) then
|
madcatzinc@4
|
245 CyborgMMO_MainPage:SetScale(percent);
|
madcatzinc@0
|
246 Settings["Plugin"] = percent;
|
madcatzinc@4
|
247 local data = CyborgMMO_GetSaveData()
|
madcatzinc@0
|
248 data["Settings"] = Settings
|
madcatzinc@4
|
249 CyborgMMO_OptionPagePluginSizeSlider:SetValue(percent);
|
madcatzinc@0
|
250 end
|
madcatzinc@0
|
251 end
|
madcatzinc@0
|
252 end
|
madcatzinc@0
|
253
|
madcatzinc@4
|
254 function CyborgMMO_SetOpenButtonSize(percent)
|
madcatzinc@0
|
255 if(VarsLoaded) then
|
madcatzinc@0
|
256 if(EnteredWorld) then
|
madcatzinc@4
|
257 CyborgMMO_OpenButtonPage:SetScale(percent)
|
madcatzinc@0
|
258 Settings["Cyborg"] = percent;
|
madcatzinc@4
|
259 local data = CyborgMMO_GetSaveData()
|
madcatzinc@0
|
260 data["Settings"] = Settings
|
madcatzinc@4
|
261 CyborgMMO_OptionPageCyborgSizeSlider:SetValue(percent);
|
madcatzinc@0
|
262 end
|
madcatzinc@0
|
263 end
|
madcatzinc@0
|
264 end
|
madcatzinc@0
|
265
|
madcatzinc@4
|
266 function CyborgMMO_SetCyborgHeadButton(boolVal)
|
madcatzinc@0
|
267 Settings["CyborgButton"] = boolVal;
|
madcatzinc@4
|
268 CyborgMMO_OptionPageCyborgButton:SetChecked(boolVal);
|
madcatzinc@0
|
269 if(Settings["CyborgButton"] == true) then
|
madcatzinc@4
|
270 CyborgMMO_Close();
|
madcatzinc@0
|
271 else
|
madcatzinc@4
|
272 CyborgMMO_OpenButtonPage:Hide();
|
madcatzinc@0
|
273 end
|
madcatzinc@4
|
274 local data = CyborgMMO_GetSaveData()
|
madcatzinc@0
|
275 data["Settings"] = Settings
|
madcatzinc@0
|
276 end
|
madcatzinc@0
|
277
|
madcatzinc@4
|
278 function CyborgMMO_SetMiniMapButton(boolVal)
|
madcatzinc@4
|
279 Settings["MiniMapButton"] = boolVal
|
madcatzinc@4
|
280 Settings["MiniMapButton"] = boolVal
|
madcatzinc@4
|
281 CyborgMMO_OptionPageMiniMapButton:SetChecked(boolVal)
|
madcatzinc@0
|
282 if(Settings["MiniMapButton"] == true) then
|
madcatzinc@4
|
283 CyborgMMO_MiniMapFrameButton:Show()
|
madcatzinc@0
|
284 else
|
madcatzinc@4
|
285 CyborgMMO_MiniMapFrameButton:Hide()
|
madcatzinc@0
|
286 end
|
madcatzinc@4
|
287 local data = CyborgMMO_GetSaveData()
|
madcatzinc@0
|
288 data["Settings"] = Settings
|
madcatzinc@0
|
289 end
|
madcatzinc@0
|
290
|