madcatzinc@13
|
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@4
|
21 function CyborgMMO_LoadStrings(self)
|
madcatzinc@5
|
22 --~ msg("LoadStrings("..self:GetName()..") = "..CyborgMMO_StringTable[self:GetName()])
|
madcatzinc@13
|
23 self:SetText(CyborgMMO_StringTable[self:GetName()])
|
madcatzinc@0
|
24 end
|
madcatzinc@0
|
25
|
madcatzinc@13
|
26 local CyborgMMO_VarsLoaded = false
|
madcatzinc@13
|
27 local CyborgMMO_EnteredWorld = false
|
madcatzinc@13
|
28 local CyborgMMO_LoadBinding = false
|
madcatzinc@13
|
29 local CyborgMMO_SaveName = GetRealmName().."_"..UnitName("player")
|
madcatzinc@13
|
30 local CyborgMMO_Settings = nil
|
madcatzinc@0
|
31
|
madcatzinc@0
|
32
|
madcatzinc@4
|
33 function CyborgMMO_MiniMapButtonReposition(pos)
|
madcatzinc@4
|
34 CyborgMMO_MiniMapFrame:SetPoint("TOPLEFT",
|
madcatzinc@0
|
35 "Minimap",
|
madcatzinc@0
|
36 "TOPLEFT",
|
madcatzinc@13
|
37 52 - (80 * cos(pos)),
|
madcatzinc@13
|
38 (80 * sin(pos)) - 52)
|
madcatzinc@0
|
39 end
|
madcatzinc@0
|
40
|
madcatzinc@0
|
41
|
madcatzinc@4
|
42 function CyborgMMO_MiniMapButtonOnUpdate()
|
madcatzinc@0
|
43
|
madcatzinc@0
|
44 local xpos,ypos = GetCursorPosition()
|
madcatzinc@0
|
45 local xmin,ymin = Minimap:GetLeft(), Minimap:GetBottom()
|
madcatzinc@0
|
46
|
madcatzinc@0
|
47 xpos = (xmin)-(xpos / UIParent:GetScale())
|
madcatzinc@0
|
48 ypos = (ypos/ UIParent:GetScale())-(ymin)
|
madcatzinc@0
|
49
|
madcatzinc@13
|
50 local degrees = math.deg(math.atan2(ypos, xpos))
|
madcatzinc@0
|
51
|
madcatzinc@13
|
52 while degrees < 0 do
|
madcatzinc@13
|
53 degrees = degrees + 360
|
madcatzinc@0
|
54 end
|
madcatzinc@0
|
55
|
madcatzinc@4
|
56 CyborgMMO_MiniMapButtonReposition(degrees)
|
madcatzinc@0
|
57 end
|
madcatzinc@0
|
58
|
madcatzinc@4
|
59 function CyborgMMO_MouseModeChange(mode)
|
madcatzinc@4
|
60 local MiniMapTexture = getglobal("CyborgMMO_MiniMapFrameButton_Icon")
|
madcatzinc@4
|
61 local MiniMapGlowTexture = getglobal("CyborgMMO_MiniMapFrameButton_IconGlow")
|
madcatzinc@13
|
62 local OpenButtonTexture = getglobal("CyborgMMO_OpenButtonPage".."OpenMainForm"):GetNormalTexture()
|
madcatzinc@13
|
63 local OpenButtonGlowTexture = getglobal("CyborgMMO_OpenButtonPage".."OpenMainForm"):GetHighlightTexture()
|
madcatzinc@13
|
64 if mode == 1 then
|
madcatzinc@0
|
65 MiniMapTexture:SetVertexColor(1,0,0,1)
|
madcatzinc@13
|
66 -- MiniMapGlowTexture:SetVertexColor(1,0.26,0.26,.75)
|
madcatzinc@13
|
67 OpenButtonTexture:SetVertexColor(1,0,0,0.75)
|
madcatzinc@13
|
68 -- OpenButtonGlowTexture:SetVertexColor(1,0.26,0.26,0.50)
|
madcatzinc@13
|
69 elseif mode == 2 then
|
madcatzinc@0
|
70 MiniMapTexture:SetVertexColor(0.07,0.22,1,1)
|
madcatzinc@13
|
71 MiniMapGlowTexture:SetVertexColor(0.13,0.56,1,.75)
|
madcatzinc@13
|
72 OpenButtonTexture:SetVertexColor(0.07,0.22,1,0.75)
|
madcatzinc@13
|
73 OpenButtonGlowTexture:SetVertexColor(0.13,0.56,1,0.5)
|
madcatzinc@13
|
74 elseif mode == 3 then
|
madcatzinc@0
|
75 MiniMapTexture:SetVertexColor(0.52,0.08,0.89,1)
|
madcatzinc@13
|
76 MiniMapGlowTexture:SetVertexColor(0.67,0.31,0.85,.75)
|
madcatzinc@13
|
77 OpenButtonTexture:SetVertexColor(0.52,0.08,0.89,0.75)
|
madcatzinc@13
|
78 OpenButtonGlowTexture:SetVertexColor(0.67,0.31,0.85,0.5)
|
madcatzinc@0
|
79 end
|
madcatzinc@0
|
80 end
|
madcatzinc@0
|
81
|
madcatzinc@4
|
82 function CyborgMMO_LoadWowCommands()
|
madcatzinc@13
|
83 if not CyborgMMO_ProfileKeyBindings then
|
madcatzinc@9
|
84 CyborgMMO_ProfileKeyBindings = CyborgMMO_DefaultWowCommands
|
madcatzinc@1
|
85 end
|
madcatzinc@13
|
86 CyborgMMO_WowCommands = CyborgMMO_ProfileKeyBindings
|
madcatzinc@1
|
87 end
|
madcatzinc@1
|
88
|
madcatzinc@4
|
89 function CyborgMMO_GetSaveData()
|
madcatzinc@13
|
90 if CyborgMMO_VarsLoaded then
|
madcatzinc@13
|
91 if not CyborgMMO7SaveData then
|
madcatzinc@13
|
92 CyborgMMO7SaveData = {}
|
madcatzinc@5
|
93 CyborgMMO7SaveData[CyborgMMO_SaveName] = {}
|
madcatzinc@0
|
94 end
|
madcatzinc@4
|
95 CyborgMMO_LoadWowCommands()
|
madcatzinc@13
|
96 return CyborgMMO7SaveData[CyborgMMO_SaveName]
|
madcatzinc@0
|
97 end
|
madcatzinc@13
|
98 return nil
|
madcatzinc@0
|
99 end
|
madcatzinc@0
|
100
|
madcatzinc@4
|
101 function CyborgMMO_SetSaveData(data, index)
|
madcatzinc@13
|
102 if CyborgMMO_VarsLoaded then
|
madcatzinc@4
|
103 CyborgMMO_GetSaveData()[index] = data
|
madcatzinc@5
|
104 CyborgMMO_ProfileKeyBindings = CyborgMMO_WowCommands
|
madcatzinc@0
|
105 end
|
madcatzinc@0
|
106 end
|
madcatzinc@0
|
107
|
madcatzinc@4
|
108 function CyborgMMO_Event(self, event, ...)
|
madcatzinc@13
|
109 if event == "VARIABLES_LOADED" then
|
madcatzinc@13
|
110 CyborgMMO_VarsLoaded = true
|
madcatzinc@13
|
111 elseif event == "PLAYER_ENTERING_WORLD" then
|
madcatzinc@13
|
112 CyborgMMO_EnteredWorld = true
|
madcatzinc@13
|
113 elseif event == "PLAYER_ENTER_COMBAT" then
|
madcatzinc@13
|
114 msg("PLAYER_ENTER_COMBAT")
|
madcatzinc@13
|
115 CyborgMMO_Close()
|
madcatzinc@0
|
116 else
|
madcatzinc@13
|
117 msg("Event is "..tostring(event))
|
madcatzinc@13
|
118 end
|
madcatzinc@0
|
119
|
madcatzinc@0
|
120 -- Fire Loading if and only if the player is in the world and vars are loaded
|
madcatzinc@13
|
121 if not CyborgMMO_LoadBinding then
|
madcatzinc@13
|
122 if CyborgMMO_VarsLoaded then
|
madcatzinc@13
|
123 if CyborgMMO_EnteredWorld then
|
madcatzinc@4
|
124 local data = CyborgMMO_GetSaveData()
|
madcatzinc@0
|
125
|
madcatzinc@13
|
126 CyborgMMO_RatPageModel.Instance().LoadData()
|
madcatzinc@13
|
127 CyborgMMO_LoadBinding = true
|
madcatzinc@0
|
128
|
madcatzinc@13
|
129 ShowMacroFrame()
|
madcatzinc@13
|
130 HideUIPanel(MacroFrame)
|
madcatzinc@0
|
131
|
madcatzinc@0
|
132
|
madcatzinc@13
|
133 CyborgMMO_SetupModeCallbacks(1)
|
madcatzinc@13
|
134 CyborgMMO_SetupModeCallbacks(2)
|
madcatzinc@13
|
135 CyborgMMO_SetupModeCallbacks(3)
|
madcatzinc@0
|
136
|
madcatzinc@0
|
137
|
madcatzinc@0
|
138 --Reload Slider values:
|
madcatzinc@13
|
139 if not data["Settings"] then
|
madcatzinc@0
|
140 data["Settings"] = {}
|
madcatzinc@13
|
141 data["Settings"]["Cyborg"] = 0.75
|
madcatzinc@13
|
142 data["Settings"]["Plugin"] = 0.75
|
madcatzinc@13
|
143 data["Settings"]["MiniMapButton"] = true
|
madcatzinc@13
|
144 data["Settings"]["CyborgButton"] = true
|
madcatzinc@0
|
145 end
|
madcatzinc@0
|
146
|
madcatzinc@13
|
147 CyborgMMO_Settings = data["Settings"]
|
madcatzinc@0
|
148
|
madcatzinc@13
|
149 CyborgMMO_OptionPageCyborgSizeSlider:SetValue(CyborgMMO_Settings["Cyborg"])
|
madcatzinc@5
|
150 CyborgMMO_SetOpenButtonSize(CyborgMMO_Settings["Cyborg"])
|
madcatzinc@13
|
151 CyborgMMO_OptionPagePluginSizeSlider:SetValue(CyborgMMO_Settings["Plugin"])
|
madcatzinc@13
|
152 CyborgMMO_SetMainPageSize(CyborgMMO_Settings["Plugin"])
|
madcatzinc@13
|
153
|
madcatzinc@5
|
154 CyborgMMO_SetMiniMapButton(CyborgMMO_Settings["MiniMapButton"])
|
madcatzinc@5
|
155 CyborgMMO_SetCyborgHeadButton(CyborgMMO_Settings["CyborgButton"])
|
madcatzinc@0
|
156
|
madcatzinc@13
|
157 local xmin,ymin = Minimap:GetLeft(),Minimap:GetBottom()
|
madcatzinc@13
|
158 CyborgMMO_MiniMapButtonReposition(math.deg(math.atan2(ymin, xmin)))
|
madcatzinc@0
|
159 -- Close the main window for now
|
madcatzinc@13
|
160 CyborgMMO_Close()
|
madcatzinc@0
|
161 end
|
madcatzinc@0
|
162 end
|
madcatzinc@0
|
163 end
|
madcatzinc@0
|
164 end
|
madcatzinc@0
|
165
|
madcatzinc@4
|
166 function CyborgMMO_SetDefaultSettings()
|
madcatzinc@13
|
167 CyborgMMO_OpenButtonPageOpenMainForm:ClearAllPoints()
|
madcatzinc@13
|
168 CyborgMMO_MainPage:ClearAllPoints()
|
madcatzinc@13
|
169 CyborgMMO_OpenButtonPageOpenMainForm:SetPoint("LEFT", UIParent, "LEFT", 0, 0)
|
madcatzinc@13
|
170 CyborgMMO_MainPage:SetPoint("LEFT", UIParent, "LEFT", 0, 0)
|
madcatzinc@0
|
171
|
madcatzinc@13
|
172 CyborgMMO_SetOpenButtonSize(0.75)
|
madcatzinc@13
|
173 CyborgMMO_SetMainPageSize(0.75)
|
madcatzinc@13
|
174 CyborgMMO_SetMiniMapButton(true)
|
madcatzinc@13
|
175 CyborgMMO_SetCyborgHeadButton(true)
|
madcatzinc@0
|
176 end
|
madcatzinc@0
|
177
|
madcatzinc@0
|
178
|
madcatzinc@4
|
179 function CyborgMMO_SetupModeCallbacks(modeNum)
|
madcatzinc@0
|
180 fn = function()
|
madcatzinc@13
|
181 CyborgMMO_MouseModeChange(modeNum)
|
madcatzinc@4
|
182 CyborgMMO_RatPageModel.Instance().SetMode(modeNum)
|
madcatzinc@0
|
183 end
|
madcatzinc@0
|
184
|
madcatzinc@13
|
185 local buttonFrame,parentFrame,name = CyborgMMO_CallbackFactory.Instance().AddCallback(fn)
|
madcatzinc@13
|
186 local result = SetOverrideBindingClick(parentFrame, true, CyborgMMO_Mode[modeNum], name, "LeftButton")
|
madcatzinc@13
|
187 if result ~= 1 then
|
madcatzinc@13
|
188 msg("Failed to Bind modeChange")
|
madcatzinc@0
|
189 end
|
madcatzinc@0
|
190 end
|
madcatzinc@0
|
191
|
madcatzinc@4
|
192 function CyborgMMO_Loaded()
|
madcatzinc@13
|
193 CyborgMMO_MainPage:RegisterEvent("VARIABLES_LOADED")
|
madcatzinc@13
|
194 CyborgMMO_MainPage:RegisterEvent("PLAYER_ENTERING_WORLD")
|
madcatzinc@13
|
195 CyborgMMO_MainPage:RegisterEvent("PLAYER_ENTER_COMBAT")
|
madcatzinc@0
|
196 end
|
madcatzinc@0
|
197
|
madcatzinc@4
|
198 function CyborgMMO_Close()
|
madcatzinc@13
|
199 CyborgMMO_MainPage:Hide()
|
madcatzinc@13
|
200 if CyborgMMO_Settings["CyborgButton"] then
|
madcatzinc@13
|
201 CyborgMMO_OpenButtonPage:Show()
|
madcatzinc@0
|
202 end
|
madcatzinc@0
|
203 end
|
madcatzinc@0
|
204
|
madcatzinc@4
|
205 function CyborgMMO_Open()
|
madcatzinc@13
|
206 CyborgMMO_MainPage:Show()
|
madcatzinc@13
|
207 CyborgMMO_RatQuickPage:Hide()
|
madcatzinc@13
|
208 if CyborgMMO_Settings["CyborgButton"] then
|
madcatzinc@13
|
209 CyborgMMO_OpenButtonPage:Show()
|
madcatzinc@0
|
210 end
|
madcatzinc@0
|
211 end
|
madcatzinc@0
|
212
|
madcatzinc@4
|
213 function CyborgMMO_IsOpen()
|
madcatzinc@13
|
214 if CyborgMMO_MainPage:IsVisible() == 1 then
|
madcatzinc@13
|
215 return true
|
madcatzinc@0
|
216 else
|
madcatzinc@13
|
217 return false
|
madcatzinc@0
|
218 end
|
madcatzinc@0
|
219 end
|
madcatzinc@0
|
220
|
madcatzinc@4
|
221 function CyborgMMO_Toggle()
|
madcatzinc@13
|
222 if CyborgMMO_IsOpen() then
|
madcatzinc@13
|
223 CyborgMMO_Close()
|
madcatzinc@0
|
224 else
|
madcatzinc@13
|
225 CyborgMMO_Open()
|
madcatzinc@0
|
226 end
|
madcatzinc@0
|
227 end
|
madcatzinc@0
|
228
|
madcatzinc@0
|
229 function msg(m)
|
madcatzinc@13
|
230 local id,name = GetChannelName("Debug")
|
madcatzinc@13
|
231 SendChatMessage(m, "CHANNEL", nil, id)
|
madcatzinc@0
|
232 end
|
madcatzinc@0
|
233
|
madcatzinc@4
|
234 function CyborgMMO_SetMainPageSize(percent)
|
madcatzinc@13
|
235 if CyborgMMO_VarsLoaded then
|
madcatzinc@13
|
236 if CyborgMMO_EnteredWorld then
|
madcatzinc@13
|
237 CyborgMMO_MainPage:SetScale(percent)
|
madcatzinc@13
|
238 CyborgMMO_Settings["Plugin"] = percent
|
madcatzinc@4
|
239 local data = CyborgMMO_GetSaveData()
|
madcatzinc@5
|
240 data["Settings"] = CyborgMMO_Settings
|
madcatzinc@13
|
241 CyborgMMO_OptionPagePluginSizeSlider:SetValue(percent)
|
madcatzinc@0
|
242 end
|
madcatzinc@0
|
243 end
|
madcatzinc@0
|
244 end
|
madcatzinc@0
|
245
|
madcatzinc@4
|
246 function CyborgMMO_SetOpenButtonSize(percent)
|
madcatzinc@13
|
247 if CyborgMMO_VarsLoaded then
|
madcatzinc@13
|
248 if CyborgMMO_EnteredWorld then
|
madcatzinc@4
|
249 CyborgMMO_OpenButtonPage:SetScale(percent)
|
madcatzinc@13
|
250 CyborgMMO_Settings["Cyborg"] = percent
|
madcatzinc@4
|
251 local data = CyborgMMO_GetSaveData()
|
madcatzinc@5
|
252 data["Settings"] = CyborgMMO_Settings
|
madcatzinc@13
|
253 CyborgMMO_OptionPageCyborgSizeSlider:SetValue(percent)
|
madcatzinc@0
|
254 end
|
madcatzinc@0
|
255 end
|
madcatzinc@0
|
256 end
|
madcatzinc@0
|
257
|
madcatzinc@4
|
258 function CyborgMMO_SetCyborgHeadButton(boolVal)
|
madcatzinc@13
|
259 CyborgMMO_Settings["CyborgButton"] = boolVal
|
madcatzinc@13
|
260 CyborgMMO_OptionPageCyborgButton:SetChecked(boolVal)
|
madcatzinc@13
|
261 if CyborgMMO_Settings["CyborgButton"] then
|
madcatzinc@13
|
262 CyborgMMO_Close()
|
madcatzinc@0
|
263 else
|
madcatzinc@13
|
264 CyborgMMO_OpenButtonPage:Hide()
|
madcatzinc@0
|
265 end
|
madcatzinc@4
|
266 local data = CyborgMMO_GetSaveData()
|
madcatzinc@5
|
267 data["Settings"] = CyborgMMO_Settings
|
madcatzinc@0
|
268 end
|
madcatzinc@0
|
269
|
madcatzinc@4
|
270 function CyborgMMO_SetMiniMapButton(boolVal)
|
madcatzinc@5
|
271 CyborgMMO_Settings["MiniMapButton"] = boolVal
|
madcatzinc@4
|
272 CyborgMMO_OptionPageMiniMapButton:SetChecked(boolVal)
|
madcatzinc@13
|
273 if CyborgMMO_Settings["MiniMapButton"] then
|
madcatzinc@4
|
274 CyborgMMO_MiniMapFrameButton:Show()
|
madcatzinc@0
|
275 else
|
madcatzinc@4
|
276 CyborgMMO_MiniMapFrameButton:Hide()
|
madcatzinc@0
|
277 end
|
madcatzinc@4
|
278 local data = CyborgMMO_GetSaveData()
|
madcatzinc@5
|
279 data["Settings"] = CyborgMMO_Settings
|
madcatzinc@0
|
280 end
|
madcatzinc@0
|
281
|