annotate CyborgMMO7.lua @ 15:80192bc4a108

Replaced the global msg function with CyborgMMO_DPrint: - avoids conflicts with other addons ('msg' is too generic) - has 'print' semantics (several values accepted, calls tostring) - use AddMessage with a colored prefix, instead of plain SendChatMessage
author madcatzinc@35b17cf1-18cd-47ff-9ca3-31d6b526ef09
date Thu, 25 Apr 2013 01:29:55 +0000
parents 6cb9a2936580
children a6f4c8f86130
rev   line source
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@15 22 -- CyborgMMO_DPrint("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@15 114 CyborgMMO_DPrint("PLAYER_ENTER_COMBAT")
madcatzinc@13 115 CyborgMMO_Close()
madcatzinc@0 116 else
madcatzinc@15 117 CyborgMMO_DPrint("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@15 188 CyborgMMO_DPrint("Failed to bind mode change")
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@15 229 function CyborgMMO_GetDebugFrame()
madcatzinc@15 230 for i=1,NUM_CHAT_WINDOWS do
madcatzinc@15 231 local windowName = GetChatWindowInfo(i);
madcatzinc@15 232 if windowName == "Debug" then
madcatzinc@15 233 return getglobal("ChatFrame" .. i)
madcatzinc@15 234 end
madcatzinc@15 235 end
madcatzinc@15 236 end
madcatzinc@15 237
madcatzinc@15 238 local log_prefix = "|cffff6666".."CyborgMMO".."|r:"
madcatzinc@15 239
madcatzinc@15 240 function CyborgMMO_DPrint(...)
madcatzinc@15 241 local debugframe = CyborgMMO_GetDebugFrame()
madcatzinc@15 242 if debugframe then
madcatzinc@15 243 local t = {log_prefix, ...}
madcatzinc@15 244 for i=1,select('#', ...)+1 do
madcatzinc@15 245 t[i] = tostring(t[i])
madcatzinc@15 246 end
madcatzinc@15 247 debugframe:AddMessage(table.concat(t, ' '))
madcatzinc@15 248 end
madcatzinc@0 249 end
madcatzinc@0 250
madcatzinc@4 251 function CyborgMMO_SetMainPageSize(percent)
madcatzinc@13 252 if CyborgMMO_VarsLoaded then
madcatzinc@13 253 if CyborgMMO_EnteredWorld then
madcatzinc@13 254 CyborgMMO_MainPage:SetScale(percent)
madcatzinc@13 255 CyborgMMO_Settings["Plugin"] = percent
madcatzinc@4 256 local data = CyborgMMO_GetSaveData()
madcatzinc@5 257 data["Settings"] = CyborgMMO_Settings
madcatzinc@13 258 CyborgMMO_OptionPagePluginSizeSlider:SetValue(percent)
madcatzinc@0 259 end
madcatzinc@0 260 end
madcatzinc@0 261 end
madcatzinc@0 262
madcatzinc@4 263 function CyborgMMO_SetOpenButtonSize(percent)
madcatzinc@13 264 if CyborgMMO_VarsLoaded then
madcatzinc@13 265 if CyborgMMO_EnteredWorld then
madcatzinc@4 266 CyborgMMO_OpenButtonPage:SetScale(percent)
madcatzinc@13 267 CyborgMMO_Settings["Cyborg"] = percent
madcatzinc@4 268 local data = CyborgMMO_GetSaveData()
madcatzinc@5 269 data["Settings"] = CyborgMMO_Settings
madcatzinc@13 270 CyborgMMO_OptionPageCyborgSizeSlider:SetValue(percent)
madcatzinc@0 271 end
madcatzinc@0 272 end
madcatzinc@0 273 end
madcatzinc@0 274
madcatzinc@4 275 function CyborgMMO_SetCyborgHeadButton(boolVal)
madcatzinc@13 276 CyborgMMO_Settings["CyborgButton"] = boolVal
madcatzinc@13 277 CyborgMMO_OptionPageCyborgButton:SetChecked(boolVal)
madcatzinc@13 278 if CyborgMMO_Settings["CyborgButton"] then
madcatzinc@13 279 CyborgMMO_Close()
madcatzinc@0 280 else
madcatzinc@13 281 CyborgMMO_OpenButtonPage:Hide()
madcatzinc@0 282 end
madcatzinc@4 283 local data = CyborgMMO_GetSaveData()
madcatzinc@5 284 data["Settings"] = CyborgMMO_Settings
madcatzinc@0 285 end
madcatzinc@0 286
madcatzinc@4 287 function CyborgMMO_SetMiniMapButton(boolVal)
madcatzinc@5 288 CyborgMMO_Settings["MiniMapButton"] = boolVal
madcatzinc@4 289 CyborgMMO_OptionPageMiniMapButton:SetChecked(boolVal)
madcatzinc@13 290 if CyborgMMO_Settings["MiniMapButton"] then
madcatzinc@4 291 CyborgMMO_MiniMapFrameButton:Show()
madcatzinc@0 292 else
madcatzinc@4 293 CyborgMMO_MiniMapFrameButton:Hide()
madcatzinc@0 294 end
madcatzinc@4 295 local data = CyborgMMO_GetSaveData()
madcatzinc@5 296 data["Settings"] = CyborgMMO_Settings
madcatzinc@0 297 end
madcatzinc@0 298