annotate CyborgMMO7.lua @ 4:d186f8cd5000

Renamed functions to avoid conflicts
author madcatzinc@35b17cf1-18cd-47ff-9ca3-31d6b526ef09
date Mon, 28 May 2012 15:54:52 +0000
parents a4e2eaf9cad9
children 8428fa7cf0e4
rev   line source
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