annotate CyborgMMO7.lua @ 31:183683794b91

Re-activated the red Cyborg head glow. It was disabled for some reason, and the red head had a purple glow.
author madcatzinc@35b17cf1-18cd-47ff-9ca3-31d6b526ef09
date Thu, 25 Apr 2013 01:31:16 +0000
parents ea423ee3a8c1
children fc5f52d60d16
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@20 26 local VarsLoaded = false
madcatzinc@20 27 local EnteredWorld = false
madcatzinc@20 28 local BindingsLoaded = false
madcatzinc@21 29 local SettingsLoaded = false
madcatzinc@20 30 local SaveName = GetRealmName().."_"..UnitName("player")
madcatzinc@21 31 local Settings = nil
madcatzinc@0 32
madcatzinc@0 33
madcatzinc@4 34 function CyborgMMO_MiniMapButtonReposition(pos)
madcatzinc@4 35 CyborgMMO_MiniMapFrame:SetPoint("TOPLEFT",
madcatzinc@0 36 "Minimap",
madcatzinc@0 37 "TOPLEFT",
madcatzinc@13 38 52 - (80 * cos(pos)),
madcatzinc@13 39 (80 * sin(pos)) - 52)
madcatzinc@0 40 end
madcatzinc@0 41
madcatzinc@0 42
madcatzinc@4 43 function CyborgMMO_MiniMapButtonOnUpdate()
madcatzinc@0 44
madcatzinc@0 45 local xpos,ypos = GetCursorPosition()
madcatzinc@0 46 local xmin,ymin = Minimap:GetLeft(), Minimap:GetBottom()
madcatzinc@0 47
madcatzinc@0 48 xpos = (xmin)-(xpos / UIParent:GetScale())
madcatzinc@0 49 ypos = (ypos/ UIParent:GetScale())-(ymin)
madcatzinc@0 50
madcatzinc@13 51 local degrees = math.deg(math.atan2(ypos, xpos))
madcatzinc@0 52
madcatzinc@13 53 while degrees < 0 do
madcatzinc@13 54 degrees = degrees + 360
madcatzinc@0 55 end
madcatzinc@0 56
madcatzinc@4 57 CyborgMMO_MiniMapButtonReposition(degrees)
madcatzinc@0 58 end
madcatzinc@0 59
madcatzinc@4 60 function CyborgMMO_MouseModeChange(mode)
madcatzinc@4 61 local MiniMapTexture = getglobal("CyborgMMO_MiniMapFrameButton_Icon")
madcatzinc@4 62 local MiniMapGlowTexture = getglobal("CyborgMMO_MiniMapFrameButton_IconGlow")
madcatzinc@13 63 local OpenButtonTexture = getglobal("CyborgMMO_OpenButtonPage".."OpenMainForm"):GetNormalTexture()
madcatzinc@13 64 local OpenButtonGlowTexture = getglobal("CyborgMMO_OpenButtonPage".."OpenMainForm"):GetHighlightTexture()
madcatzinc@13 65 if mode == 1 then
madcatzinc@0 66 MiniMapTexture:SetVertexColor(1,0,0,1)
madcatzinc@31 67 MiniMapGlowTexture:SetVertexColor(1,0.26,0.26,.75)
madcatzinc@13 68 OpenButtonTexture:SetVertexColor(1,0,0,0.75)
madcatzinc@31 69 OpenButtonGlowTexture:SetVertexColor(1,0.26,0.26,0.50)
madcatzinc@13 70 elseif mode == 2 then
madcatzinc@0 71 MiniMapTexture:SetVertexColor(0.07,0.22,1,1)
madcatzinc@13 72 MiniMapGlowTexture:SetVertexColor(0.13,0.56,1,.75)
madcatzinc@13 73 OpenButtonTexture:SetVertexColor(0.07,0.22,1,0.75)
madcatzinc@13 74 OpenButtonGlowTexture:SetVertexColor(0.13,0.56,1,0.5)
madcatzinc@13 75 elseif mode == 3 then
madcatzinc@0 76 MiniMapTexture:SetVertexColor(0.52,0.08,0.89,1)
madcatzinc@13 77 MiniMapGlowTexture:SetVertexColor(0.67,0.31,0.85,.75)
madcatzinc@13 78 OpenButtonTexture:SetVertexColor(0.52,0.08,0.89,0.75)
madcatzinc@13 79 OpenButtonGlowTexture:SetVertexColor(0.67,0.31,0.85,0.5)
madcatzinc@0 80 end
madcatzinc@0 81 end
madcatzinc@0 82
madcatzinc@4 83 function CyborgMMO_GetSaveData()
madcatzinc@20 84 if VarsLoaded then
madcatzinc@13 85 if not CyborgMMO7SaveData then
madcatzinc@13 86 CyborgMMO7SaveData = {}
madcatzinc@20 87 CyborgMMO7SaveData[SaveName] = {}
madcatzinc@0 88 end
madcatzinc@20 89 return CyborgMMO7SaveData[SaveName]
madcatzinc@0 90 end
madcatzinc@13 91 return nil
madcatzinc@0 92 end
madcatzinc@0 93
madcatzinc@4 94 function CyborgMMO_SetSaveData(data, index)
madcatzinc@20 95 if VarsLoaded then
madcatzinc@4 96 CyborgMMO_GetSaveData()[index] = data
madcatzinc@0 97 end
madcatzinc@0 98 end
madcatzinc@0 99
madcatzinc@4 100 function CyborgMMO_Event(self, event, ...)
madcatzinc@13 101 if event == "VARIABLES_LOADED" then
madcatzinc@20 102 VarsLoaded = true
madcatzinc@13 103 elseif event == "PLAYER_ENTERING_WORLD" then
madcatzinc@20 104 EnteredWorld = true
madcatzinc@19 105 elseif event == "PLAYER_REGEN_DISABLED" then
madcatzinc@13 106 CyborgMMO_Close()
madcatzinc@0 107 else
madcatzinc@15 108 CyborgMMO_DPrint("Event is "..tostring(event))
madcatzinc@13 109 end
madcatzinc@0 110
madcatzinc@0 111 -- Fire Loading if and only if the player is in the world and vars are loaded
madcatzinc@20 112 if not BindingsLoaded and VarsLoaded and EnteredWorld then
madcatzinc@20 113 local data = CyborgMMO_GetSaveData()
madcatzinc@0 114
madcatzinc@20 115 CyborgMMO_RatPageModel:LoadData()
madcatzinc@20 116 BindingsLoaded = true
madcatzinc@0 117
madcatzinc@20 118 CyborgMMO_SetupModeCallbacks(1)
madcatzinc@20 119 CyborgMMO_SetupModeCallbacks(2)
madcatzinc@20 120 CyborgMMO_SetupModeCallbacks(3)
madcatzinc@0 121
madcatzinc@21 122 Settings = data.Settings
madcatzinc@21 123 if not Settings then
madcatzinc@21 124 Settings = {}
madcatzinc@21 125 Settings.Cyborg = 0.75
madcatzinc@21 126 Settings.Plugin = 0.75
madcatzinc@21 127 Settings.MiniMapButton = true
madcatzinc@21 128 Settings.CyborgButton = true
madcatzinc@21 129 data.Settings = Settings
madcatzinc@21 130 end
madcatzinc@21 131 SettingsLoaded = true
madcatzinc@0 132
madcatzinc@21 133 -- Reload Slider values:
madcatzinc@21 134 CyborgMMO_SetOpenButtonSize(Settings.Cyborg)
madcatzinc@21 135 CyborgMMO_SetMainPageSize(Settings.Plugin)
madcatzinc@0 136
madcatzinc@21 137 CyborgMMO_SetMiniMapButton(Settings.MiniMapButton)
madcatzinc@21 138 CyborgMMO_SetCyborgHeadButton(Settings.CyborgButton)
madcatzinc@0 139
madcatzinc@20 140 local xmin,ymin = Minimap:GetLeft(),Minimap:GetBottom()
madcatzinc@20 141 CyborgMMO_MiniMapButtonReposition(math.deg(math.atan2(ymin, xmin)))
madcatzinc@20 142 -- Close the main window for now
madcatzinc@20 143 CyborgMMO_Close()
madcatzinc@0 144 end
madcatzinc@0 145 end
madcatzinc@0 146
madcatzinc@4 147 function CyborgMMO_SetDefaultSettings()
madcatzinc@13 148 CyborgMMO_OpenButtonPageOpenMainForm:ClearAllPoints()
madcatzinc@13 149 CyborgMMO_MainPage:ClearAllPoints()
madcatzinc@13 150 CyborgMMO_OpenButtonPageOpenMainForm:SetPoint("LEFT", UIParent, "LEFT", 0, 0)
madcatzinc@13 151 CyborgMMO_MainPage:SetPoint("LEFT", UIParent, "LEFT", 0, 0)
madcatzinc@0 152
madcatzinc@13 153 CyborgMMO_SetOpenButtonSize(0.75)
madcatzinc@13 154 CyborgMMO_SetMainPageSize(0.75)
madcatzinc@13 155 CyborgMMO_SetMiniMapButton(true)
madcatzinc@13 156 CyborgMMO_SetCyborgHeadButton(true)
madcatzinc@0 157 end
madcatzinc@0 158
madcatzinc@0 159
madcatzinc@4 160 function CyborgMMO_SetupModeCallbacks(modeNum)
madcatzinc@23 161 local fn = function()
madcatzinc@13 162 CyborgMMO_MouseModeChange(modeNum)
madcatzinc@18 163 CyborgMMO_RatPageModel:SetMode(modeNum)
madcatzinc@0 164 end
madcatzinc@0 165
madcatzinc@23 166 local buttonFrame,parentFrame,name = CyborgMMO_CallbackFactory:AddCallback(fn)
madcatzinc@16 167 SetOverrideBindingClick(parentFrame, true, CyborgMMO_Mode[modeNum], name, "LeftButton")
madcatzinc@0 168 end
madcatzinc@0 169
madcatzinc@4 170 function CyborgMMO_Loaded()
madcatzinc@13 171 CyborgMMO_MainPage:RegisterEvent("VARIABLES_LOADED")
madcatzinc@13 172 CyborgMMO_MainPage:RegisterEvent("PLAYER_ENTERING_WORLD")
madcatzinc@19 173 CyborgMMO_MainPage:RegisterEvent("PLAYER_REGEN_DISABLED")
madcatzinc@0 174 end
madcatzinc@0 175
madcatzinc@4 176 function CyborgMMO_Close()
madcatzinc@13 177 CyborgMMO_MainPage:Hide()
madcatzinc@0 178 end
madcatzinc@0 179
madcatzinc@4 180 function CyborgMMO_Open()
madcatzinc@13 181 CyborgMMO_MainPage:Show()
madcatzinc@13 182 CyborgMMO_RatQuickPage:Hide()
madcatzinc@0 183 end
madcatzinc@0 184
madcatzinc@4 185 function CyborgMMO_IsOpen()
madcatzinc@13 186 if CyborgMMO_MainPage:IsVisible() == 1 then
madcatzinc@13 187 return true
madcatzinc@0 188 else
madcatzinc@13 189 return false
madcatzinc@0 190 end
madcatzinc@0 191 end
madcatzinc@0 192
madcatzinc@4 193 function CyborgMMO_Toggle()
madcatzinc@13 194 if CyborgMMO_IsOpen() then
madcatzinc@13 195 CyborgMMO_Close()
madcatzinc@0 196 else
madcatzinc@13 197 CyborgMMO_Open()
madcatzinc@0 198 end
madcatzinc@0 199 end
madcatzinc@0 200
madcatzinc@15 201 function CyborgMMO_GetDebugFrame()
madcatzinc@15 202 for i=1,NUM_CHAT_WINDOWS do
madcatzinc@15 203 local windowName = GetChatWindowInfo(i);
madcatzinc@15 204 if windowName == "Debug" then
madcatzinc@15 205 return getglobal("ChatFrame" .. i)
madcatzinc@15 206 end
madcatzinc@15 207 end
madcatzinc@15 208 end
madcatzinc@15 209
madcatzinc@15 210 local log_prefix = "|cffff6666".."CyborgMMO".."|r:"
madcatzinc@15 211
madcatzinc@15 212 function CyborgMMO_DPrint(...)
madcatzinc@15 213 local debugframe = CyborgMMO_GetDebugFrame()
madcatzinc@15 214 if debugframe then
madcatzinc@15 215 local t = {log_prefix, ...}
madcatzinc@15 216 for i=1,select('#', ...)+1 do
madcatzinc@15 217 t[i] = tostring(t[i])
madcatzinc@15 218 end
madcatzinc@15 219 debugframe:AddMessage(table.concat(t, ' '))
madcatzinc@15 220 end
madcatzinc@0 221 end
madcatzinc@0 222
madcatzinc@4 223 function CyborgMMO_SetMainPageSize(percent)
madcatzinc@21 224 CyborgMMO_MainPage:SetScale(percent)
madcatzinc@21 225 CyborgMMO_OptionPagePluginSizeSlider:SetValue(percent)
madcatzinc@21 226 if BindingsLoaded then
madcatzinc@21 227 Settings.Plugin = percent
madcatzinc@0 228 end
madcatzinc@0 229 end
madcatzinc@0 230
madcatzinc@4 231 function CyborgMMO_SetOpenButtonSize(percent)
madcatzinc@21 232 CyborgMMO_OpenButtonPage:SetScale(percent)
madcatzinc@21 233 CyborgMMO_OptionPageCyborgSizeSlider:SetValue(percent)
madcatzinc@21 234 if SettingsLoaded then
madcatzinc@21 235 Settings.Cyborg = percent
madcatzinc@0 236 end
madcatzinc@0 237 end
madcatzinc@0 238
madcatzinc@21 239 function CyborgMMO_SetCyborgHeadButton(visible)
madcatzinc@21 240 if visible then
madcatzinc@21 241 CyborgMMO_OpenButtonPage:Show()
madcatzinc@0 242 else
madcatzinc@13 243 CyborgMMO_OpenButtonPage:Hide()
madcatzinc@0 244 end
madcatzinc@21 245 CyborgMMO_OptionPageCyborgButton:SetChecked(visible)
madcatzinc@21 246 if SettingsLoaded then
madcatzinc@21 247 Settings.CyborgButton = visible
madcatzinc@21 248 end
madcatzinc@0 249 end
madcatzinc@0 250
madcatzinc@21 251 function CyborgMMO_SetMiniMapButton(visible)
madcatzinc@21 252 if visible then
madcatzinc@4 253 CyborgMMO_MiniMapFrameButton:Show()
madcatzinc@0 254 else
madcatzinc@4 255 CyborgMMO_MiniMapFrameButton:Hide()
madcatzinc@0 256 end
madcatzinc@21 257 CyborgMMO_OptionPageMiniMapButton:SetChecked(visible)
madcatzinc@21 258 if SettingsLoaded then
madcatzinc@21 259 Settings.MiniMapButton = visible
madcatzinc@21 260 end
madcatzinc@0 261 end
madcatzinc@0 262