Mercurial > wow > cyborg-mmo7
diff RatPageController.lua @ 18:cccc7661a2e6
Simplified the Rat page model and controller object models.
author | madcatzinc@35b17cf1-18cd-47ff-9ca3-31d6b526ef09 |
---|---|
date | Thu, 25 Apr 2013 01:30:11 +0000 |
parents | 80192bc4a108 |
children | b7074b47cfc7 |
line wrap: on
line diff
--- a/RatPageController.lua Thu Apr 25 01:30:05 2013 +0000 +++ b/RatPageController.lua Thu Apr 25 01:30:11 2013 +0000 @@ -18,66 +18,58 @@ --~ along with this program; if not, write to the Free Software --~ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -CyborgMMO_RatPageController = { - new = function() - local self = {} - CyborgMMO_RatPageModel.Instance().SetMode(1) +------------------------------------------------------------------------------ - self.SlotClicked = function(slot) - local slotObject = nil - slotObject = CyborgMMO_RatPageModel.Instance().GetObjectOnButton(slot.Id) - CyborgMMO_RatPageModel.Instance().SetObjectOnButton(slot.Id, CyborgMMO_RatPageModel.Instance().GetMode(), self.GetCursorObject()) +local RatPageController_methods = {} +local RatPageController_mt = {__index=RatPageController_methods} - if slotObject then - slotObject.Pickup() - end +local function RatPageController() + local self = {} +-- CyborgMMO_RatPageModel:SetMode(1) + setmetatable(self, RatPageController_mt) + return self +end + +function RatPageController_methods:SlotClicked(slot) + local slotObject = nil + slotObject = CyborgMMO_RatPageModel:GetObjectOnButton(slot.Id) + CyborgMMO_RatPageModel:SetObjectOnButton(slot.Id, CyborgMMO_RatPageModel:GetMode(), self:GetCursorObject()) + + if slotObject then + slotObject.Pickup() + end +end + +function RatPageController_methods:ModeClicked(mode) + CyborgMMO_DPrint("Setting mode "..tostring(mode.Id)) + CyborgMMO_RatPageModel:SetMode(mode.Id) +end + +function RatPageController_methods:GetCursorObject() + local cursorObject = nil + if GetCursorInfo() then + local type,detail,subdetail = GetCursorInfo() + cursorObject = CyborgMMO_WowObject.Create(type, detail, subdetail) + ClearCursor() + end + return cursorObject +end + +function RatPageController_methods:CallbackDropped(callbackObject) + local slot = nil + local observers = CyborgMMO_RatPageModel:GetAllObservers() + for i=1,#observers do + if MouseIsOver(observers[i]) then + slot = observers[i] + break end + end + if slot then + CyborgMMO_RatPageModel:SetObjectOnButton(slot.Id, CyborgMMO_RatPageModel:GetMode(), callbackObject.wowObject) + end +end - self.ModeClicked = function(mode) - CyborgMMO_DPrint("Setting mode "..tostring(mode.Id)) - CyborgMMO_RatPageModel.Instance().SetMode(mode.Id) - end +------------------------------------------------------------------------------ - self.GetCursorObject = function() - local cursorObject = nil - if GetCursorInfo() then - local type,detail,subdetail = GetCursorInfo() - cursorObject = CyborgMMO_WowObject.Create(type, detail, subdetail) - ClearCursor() - end - return cursorObject - end +CyborgMMO_RatPageController = RatPageController() - self.CallbackDropped = function(callbackObject) - local slot = nil - local observers = CyborgMMO_RatPageModel.Instance().GetAllObservers() - for i=1,#observers do - if MouseIsOver(observers[i]) then - slot = observers[i] - break - end - end - if slot then - CyborgMMO_RatPageModel.Instance().SetObjectOnButton(slot.Id, CyborgMMO_RatPageModel.Instance().GetMode(), callbackObject.wowObject) - end - end - - self.Close = function() - end - - self.Open = function() - end - - return self - end, - - m_Instance = nil, - - Instance = function() - if not CyborgMMO_RatPageController.m_Instance then - CyborgMMO_RatPageController.m_Instance = CyborgMMO_RatPageController.new() - end - return CyborgMMO_RatPageController.m_Instance - end, -} -