Mercurial > wow > cyborg-mmo7
changeset 51:fb81254bd7b8
Clarified the distinction between data (what is actually saved) and the objects (which store the data, but also have methods and other attributes).
author | madcatzinc@35b17cf1-18cd-47ff-9ca3-31d6b526ef09 |
---|---|
date | Fri, 03 May 2013 23:24:04 +0000 |
parents | 7cbd32de1fdd |
children | da98db8191f5 |
files | CyborgMMO7.lua RatPageModel.lua |
diffstat | 2 files changed, 30 insertions(+), 55 deletions(-) [+] |
line wrap: on
line diff
--- a/CyborgMMO7.lua Fri May 03 23:23:58 2013 +0000 +++ b/CyborgMMO7.lua Fri May 03 23:24:04 2013 +0000 @@ -92,18 +92,22 @@ return CyborgMMO7SaveData end -function CyborgMMO_SetRatSaveData(data) +function CyborgMMO_SetRatSaveData(objects) assert(VarsLoaded) - local saveData = {} + local data = {} for mode=1,RAT7.MODES do - saveData[mode] = {} + data[mode] = {} for button=1,RAT7.BUTTONS do - if data[mode][button] then - saveData[mode][button] = data[mode][button]:SaveData() + if objects[mode][button] then + data[mode][button] = objects[mode][button]:SaveData() end end end - CyborgMMO_GetSaveData().Rat = saveData + CyborgMMO_GetSaveData().Rat = data +end + +function CyborgMMO_GetRatSaveData() + return CyborgMMO_GetSaveData().Rat end local function GetSpellID(name)
--- a/RatPageModel.lua Fri May 03 23:23:58 2013 +0000 +++ b/RatPageModel.lua Fri May 03 23:24:04 2013 +0000 @@ -36,13 +36,10 @@ local self = {} self.mode = 1 self.observers = {} - self.data = {} + self.objects = {} - for i=1,RAT7.MODES do - self.data[i] = {} - for j=1,RAT7.BUTTONS do - self.data[i][j] = {} - end + for mode=1,RAT7.MODES do + self.objects[mode] = {} end setmetatable(self, RatPageModel_mt) @@ -50,48 +47,26 @@ return self end -function RatPageModel_methods:InitSaveData(data) - for i=1,RAT7.MODES do - if not data["Rat"][i] then - data["Rat"][i] = {} - end - for j=1,RAT7.BUTTONS do - if not data["Rat"][i][j] then - data["Rat"][i][j] = {} +function RatPageModel_methods:LoadData() + CyborgMMO_DPrint("Loading...") + local data = CyborgMMO_GetRatSaveData() + for mode=1,RAT7.MODES do + for button=1,RAT7.BUTTONS do + local buttonData = data and data[mode] and data[mode][button] + if buttonData and buttonData.type then + local object = CyborgMMO_CreateWowObject(buttonData.type, buttonData.detail, buttonData.subdetail) + self:SetObjectOnButtonNoUpdate(button, mode, object) + else + self:SetObjectOnButtonNoUpdate(button, mode, nil) end end end -end - -function RatPageModel_methods:LoadData() - CyborgMMO_DPrint("Loading...") - local data = CyborgMMO_GetSaveData() - - if not data["Rat"] then - data["Rat"] = {} - self:InitSaveData(data) - end - - self.data = data["Rat"] - if data then - for mode=1,RAT7.MODES do - for button=1,RAT7.BUTTONS do - local data = self.data[mode][button] - if data and data.type then - local object = CyborgMMO_CreateWowObject(data.type, data.detail, data.subdetail) - self:SetObjectOnButtonNoUpdate(button, mode, object) - else - self:SetObjectOnButtonNoUpdate(button, mode, nil) - end - end - end - self:UpdateObservers() - end + self:UpdateObservers() end function RatPageModel_methods:SaveData() CyborgMMO_DPrint("Saving...") - CyborgMMO_SetRatSaveData(self.data) + CyborgMMO_SetRatSaveData(self.objects) end function RatPageModel_methods:SetMode(mode) @@ -103,21 +78,17 @@ return self.mode end -function RatPageModel_methods:GetData() - return self.data,self.mode -end - function RatPageModel_methods:GetObjectOnButton(button) - if not self.data[self.mode][button] then + if not self.objects[self.mode][button] then return nil else - return self.data[self.mode][button] + return self.objects[self.mode][button] end end function RatPageModel_methods:SetObjectOnButtonNoUpdate(button, mode, object) -- CyborgMMO_DPrint("button = "..tostring(button).." mode = "..tostring(mode)) - self.data[mode][button] = object + self.objects[mode][button] = object if object then object:SetBinding(CyborgMMO_ProfileKeyBindings[((mode-1)*RAT7.BUTTONS)+button]) @@ -149,7 +120,7 @@ function RatPageModel_methods:UpdateObservers() for i=1,#self.observers do - self.observers[i].Update(self.data, self.mode) + self.observers[i].Update(self.objects, self.mode) end self:SaveData() end