# HG changeset patch
# User Nenue
# Date 1476723564 14400
# Node ID 4c7e9efec4b5912cc03eef6eb27993395b90bca1
# Parent c006ce87a14775c8bdaa3f0398d0048de9a5c454
fix order of operations regarding frame visibility checking
diff -r c006ce87a147 -r 4c7e9efec4b5 ClassPlan.lua
--- a/ClassPlan.lua Sat Oct 15 09:54:56 2016 -0400
+++ b/ClassPlan.lua Mon Oct 17 12:59:24 2016 -0400
@@ -1,9 +1,10 @@
-local wipe = table.wipe
+local wipe, tinsert, sort = table.wipe, tinsert, table.sort
local pairs, ipairs = pairs, ipairs
+local floor, mod, time = floor, mod, time
local GetTime = GetTime
local GI_currentTime = time()
-
+local BOUND_FRAMES = {}
local blockTemplate = {
point = 'TOPLEFT',
relativePoint ='TOPLEFT',
@@ -27,19 +28,29 @@
}
ClassPlanBlockMixin = {
templateName = 'ClassPlanBlock',
- events = {'GARRISON_MISSION_LIST_UPDATE', 'GARRISON_MISSION_FINISHED', 'GARRISON_MISSION_FINISHED'},}
+ events = {'GARRISON_MISSION_LIST_UPDATE', 'GARRISON_MISSION_STARTED', 'GARRISON_MISSION_FINISHED'},}
ClassPlanShipmentMixin = {
templateName = 'ClassPlanShipment',
parent = false,
point = 'TOPRIGHT',
relativePoint ='TOPRIGHT',
- events = {'GARRISON_LANDINGPAGE_SHIPMENTS', 'GARRISON_TALENT_UPDATE', "GARRISON_TALENT_COMPLETE", 'GARRISON_TALENT_COMPLETE', 'GARRISON_SHIPMENT_RECEIVED', "GARRISON_SHIPMENT_RECEIVED"},
+ events = {'GARRISON_LANDINGPAGE_SHIPMENTS', 'GARRISON_TALENT_UPDATE', "GARRISON_TALENT_COMPLETE", "GARRISON_SHIPMENT_RECEIVED"},
}
setmetatable(ClassPlanShipmentMixin, {__index = ClassPlanBlockMixin})
local core, MissionsHandler, ShipmentsHandler = ClassOrderPlanCore, ClassPlanBlockMixin, ClassPlanShipmentMixin
local print = DEVIAN_WORKSPACE and function(...) print('ClassPlan', ...) end or nop
-
+local GetTimeLeftString = function(timeLeft)
+ local days = floor(timeLeft/(24*3600))
+ local hours = floor(mod(timeLeft, (24*3600)) / 3600)
+ local minutes = floor(mod(timeLeft, 3600) / 60)
+ local seconds = mod(timeLeft, 60)
+ if days >= 1 then
+ return (days .. 'd' .. ' ') .. ((hours > 0) and (hours .. 'h ') or '')
+ else
+ return ((hours > 0) and (hours .. 'h ') or '') .. ((minutes > 0) and (minutes .. ' min') or '')
+ end
+end
MissionsHandler.GetPlayerData = function(self)
if not self.profile then
@@ -47,36 +58,36 @@
end
self.items = C_Garrison.GetLandingPageItems(LE_GARRISON_TYPE_7_0)
- if #self.items >= 1 then
- wipe(self.profile.missions)
- for index, data in ipairs(self.items) do
- print(' ',data.name, '|cFF00FF00'.. data.timeLeft .. '|r', date("%A %I:%m %p", data.missionEndTime))
- tinsert(self.profile.missions, data)
- end
- print('items update pending')
- self.isStale = true
+ wipe(self.profile.missions)
+ for index, data in ipairs(self.items) do
+ print(' ',data.name, '|cFF00FF00'.. data.timeLeft .. '|r', date("%A %I:%m %p", data.missionEndTime))
+ tinsert(self.profile.missions, data)
end
+ print('items update pending')
+ self.isStale = true
if self:IsVisible() then
self:Refresh()
end
end
+MissionsHandler.FreeBlock = function(self, block)
+end
+
MissionsHandler.SortHandler = function (a,b)
local result = false
- if not a or not b then
- result = true
- else
- if (a.isMine ~= b.isMine) then
- result = a.isMine
- else
- if (not b.missionEndTime) or (not a.missionEndTime) then
- print('missing article', b.missionEndTime, a.missionEndTime)
- end
- result = ( b.missionEndTime > a.missionEndTime)
- end
- end
- return result
+ --if not a or not b then
+ -- return true
+ --else
+ --if (a.isMine ~= b.isMine) then
+ -- result = a.isMine
+ --else
+ --if (not b.missionEndTime) or (not a.missionEndTime) then
+ -- print('missing article', b.missionEndTime, a.missionEndTime)
+ --end
+ return ( b.missionEndTime > a.missionEndTime)
+ --end
+ --end
end
@@ -99,10 +110,37 @@
ShipmentsHandler.SortHandler = function(a, b)
if b.isComplete ~= a.isComplete then
return a.isComplete and true or false
+ elseif a.shipmentsReady or b.shipmentsReady then
+ return (a.shipmentsReady or 0) > (b.shipmentsReady or 0)
+ else
+ return (a.creationTime) < (b.creationTime)
end
- return (a.creationTime) < (b.creationTime)
end
+local AddShipmentInfo = function(self, shipmentType, name, texture, shipmentCapacity, shipmentsReady, shipmentsTotal, creationTime, duration, timeleftString, itemName, itemIcon, itemQuality, itemID, followerID)
+ -- early login queries may return empty tables, causing the sorter to compare nil
+ if not creationTime then
+ return
+ end
+ print(shipmentType, name, shipmentCapacity, shipmentsReady, shipmentsTotal, creationTime, duration, timeleftString)
+ tinsert(self.shipments,
+ {
+ shipmentType = shipmentType,
+ name = name,
+ icon = texture,
+ shipmentCapacity = shipmentCapacity,
+ shipmentsReady = shipmentsReady,
+ shipmentsTotal = shipmentsTotal,
+ creationTime = creationTime,
+ duration = duration,
+ timeleftString = timeleftString,
+ itemName = itemName,
+ itemIcon = itemIcon,
+ itemQuality = itemQuality,
+ itemID = itemID,
+ followerID = followerID,
+ })
+end
ShipmentsHandler.GetPlayerData = function (self)
if not self.profile then
return
@@ -116,59 +154,21 @@
--print('Buildings:')
for i = 1, #buildings do
local name, texture, shipmentCapacity, shipmentsReady, shipmentsTotal, creationTime, duration, timeleftString, itemName, itemIcon, itemQuality, itemID = C_Garrison.GetLandingPageShipmentInfo(buildingID);
- tinsert(self.shipments,
- {
- shipmentType = 'Work Order',
- name = name,
- icon = texture,
- shipmentCapacity = shipmentCapacity,
- shipmentsReady = shipmentsReady,
- shipmentsTotal = shipmentsTotal,
- creationTime = creationTime,
- duration = duration,
- timeleftString = timeleftString,
- itemName = itemName,
- itemIcon = itemIcon,
- itemQuality = itemQuality,
- itemID = itemID
- })
+ AddShipmentInfo(self, 'Building', name, texture, shipmentCapacity, shipmentsReady, shipmentsTotal, creationTime, duration, timeleftString, itemName, itemIcon, itemQuality, itemID)
end
--print('Follower:')
local followerShipments = C_Garrison.GetFollowerShipments(garrisonType);
for i = 1, #followerShipments do
local name, texture, shipmentCapacity, shipmentsReady, shipmentsTotal, creationTime, duration, timeleftString, _, _, _, _, followerID = C_Garrison.GetLandingPageShipmentInfoByContainerID(followerShipments[i]);
- tinsert(self.shipments,
- {
- shipmentType = '',
- name = name,
- icon = texture,
- shipmentCapacity = shipmentCapacity,
- shipmentsReady = shipmentsReady,
- shipmentsTotal = shipmentsTotal,
- creationTime = creationTime,
- duration = duration,
- timeleftString = timeleftString,
- followerID = followerID,
- })
+ AddShipmentInfo(self, 'Follower', name, texture, shipmentCapacity, shipmentsReady, shipmentsTotal, creationTime, duration, timeleftString, nil, nil, nil, nil, followerID)
end
--print('Loose:')
local looseShipments = C_Garrison.GetLooseShipments(garrisonType)
for i = 1, #looseShipments do
local name, texture, shipmentCapacity, shipmentsReady, shipmentsTotal, creationTime, duration, timeleftString = C_Garrison.GetLandingPageShipmentInfoByContainerID(looseShipments[i]);
- tinsert(self.shipments,
- {
- shipmentType = '',
- name = name,
- icon = texture,
- shipmentCapacity = shipmentCapacity,
- shipmentsReady = shipmentsReady,
- shipmentsTotal = shipmentsTotal,
- creationTime = creationTime,
- duration = duration,
- timeleftString = timeleftString,
- })
+ AddShipmentInfo(self, 'Follower', name, texture, shipmentCapacity, shipmentsReady, shipmentsTotal, creationTime, duration, timeleftString)
end
local talentTrees = C_Garrison.GetTalentTrees(garrisonType, select(3, UnitClass("player")));
@@ -179,18 +179,8 @@
for treeIndex, tree in ipairs(talentTrees) do
for talentIndex, talent in ipairs(tree) do
local showTalent = false;
- if (talent.isBeingResearched) then
- showTalent = true;
- end
- if (talent.id == completeTalentID) then
- showTalent = true;
- end
- if (showTalent) then
- print(talent.name)
- talent.creationTime = talent.researchStartTime
- talent.duration = talent.researchDuration
- talent.shipmentType = 'Talent: '
- tinsert(self.shipments, talent)
+ if (talent.isBeingResearched) or (talent.id == completeTalentID) then
+ AddShipmentInfo(self, 'Talent', talent.name, talent.icon, 1, (talent.isBeingResearched and 0 or 1), 1, talent.researchStartTime, talent.researchDuration, talent.timeleftString)
end
end
end
@@ -198,11 +188,10 @@
self.profile.shipments = self.profile.shipments or {}
if #self.shipments >= 1 then
-
-
wipe(self.profile.shipments)
for index, data in ipairs(self.shipments) do
- print(' ', data.shipmentType .. data.name, data.creationTime, data.duration)
+
+ --DEFAULT_CHAT_FRAME:AddMessage(data.shipmentType ..' '.. tostring(data.name) ..' '.. tostring(data.creationTime) ..' '.. tostring(data.duration))
tinsert(self.profile.shipments, data)
end
self.isStale = true
@@ -219,9 +208,58 @@
self:RegisterEvent('PLAYER_ENTERING_WORLD')
self:RegisterEvent('ADDON_LOADED')
self:RegisterEvent('PLAYER_REGEN_ENABLED')
+ -- Blizzard_GarrisonUI already fires a shipment data request for GARRISON_SHIPMENT_RECEIVED; this is unlikely to
+
self:AddHandler('missions', MissionsHandler)
self:AddHandler('shipments', ShipmentsHandler)
+
+
+ self:Reanchor()
+end
+local parentFrames = {'VeneerWorldState', 'OrderHallCommandBar'}
+function core:Reanchor()
+
+
+ self:ClearAllPoints()
+
+ self.anchorParent = UIParent
+ for i, name in ipairs(parentFrames) do
+ local frame = _G[name]
+ if frame then
+ if not BOUND_FRAMES[frame] then
+ BOUND_FRAMES[frame] = {visible = frame:IsVisible()}
+ hooksecurefunc(frame, 'Show', function()
+ BOUND_FRAMES[frame].visible = true
+ print(frame:GetName(), 'Show', 'reanchor trigger')
+ self:Reanchor()
+ end)
+ hooksecurefunc(frame, 'Hide', function()
+ BOUND_FRAMES[frame].visible = false
+ print(frame:GetName(), 'Hide', 'reanchor trigger')
+ self:Reanchor()
+ end)
+ end
+ print('f:', frame:GetName(), frame:IsVisible())
+ if BOUND_FRAMES[frame].visible then
+ self.anchorParent = frame
+ break
+ end
+ end
+ end
+ print('|cFFFF8800Using ' .. tostring(self.anchorParent:GetName()) .. ' as anchor point')
+
+ if self:IsVisible() then
+ self:SetPoint('TOP', ClassPlanButton, 'BOTTOM', 0, 0)
+ ClassPlanButton.Background:Show()
+ ClassPlanButton:SetWidth(600)
+ else
+ ClassPlanButton.Background:Hide()
+ ClassPlanButton:SetWidth(200)
+ end
+
+ ClassPlanButton:SetPoint('TOP', self.anchorParent, (self.anchorPoint == UIParent) and 'TOP' or 'BOTTOM', 0, 0)
+
end
function core:AddHandler(name, prototype)
@@ -246,40 +284,44 @@
self.sortedItems[name] = {}
end
+function core:Setup()
+ if IsLoggedIn() then
+ WorldPlanData.OrderHall = WorldPlanData.OrderHall or {}
+ self.data = WorldPlanData.OrderHall
+ self.data.characters = self.data.characters or {}
+
+ local name, realm = UnitName('player')
+ realm = realm or GetRealmName()
+ self.profileKey = name .. '-' .. realm
+ if not self.data.characters[self.profileKey] then
+ self.data.characters[self.profileKey] = {}
+ end
+ self.profile = self.data.characters[self.profileKey]
+
+ self.profile.shipments = self.profile.shipments or {}
+ self.profile.missions = self.profile.missions or {}
+ self.profile.classColor = RAID_CLASS_COLORS[select(2, UnitClass('player'))]
+
+ if self.data.IsShown then
+ self:Show()
+ end
+ self.initialized = true
+ end
+end
+
function core:OnEvent (event, ...)
print(event)
if event == 'UNIT_PORTRAIT_UPDATE' then
SetPortraitTexture(self.portrait, 'player')
elseif event == 'PLAYER_LOGIN' then
if not self.initialized then
- if IsLoggedIn() then
- WorldPlanData.OrderHall = WorldPlanData.OrderHall or {}
- self.data = WorldPlanData.OrderHall
-
-
- local name, realm = UnitName('player')
- realm = realm or GetRealmName()
- self.profileKey = name .. '-' .. realm
- if not self.data[self.profileKey] then
- self.data[self.profileKey] = {}
- end
- self.profile = self.data[self.profileKey]
-
- self.profile.shipments = self.profile.shipments or {}
- self.profile.missions = self.profile.missions or {}
- self.profile.classColor = RAID_CLASS_COLORS[select(2, UnitClass('player'))]
-
- C_Garrison.RequestLandingPageShipmentInfo();
-
- if self.data.IsShown then
- self:Show()
- end
- self.initialized = true
- end
+ self:Setup()
end
- elseif self.events[event] then
+ elseif self.initialized and self.events[event] then
+ local numCalls = 0
for ptype, eventFunc in pairs(self.events[event]) do
- print('|cFF88FF00' .. tostring(ptype) .. '|r:GetPlayerData()')
+ numCalls = numCalls + 1
+ print('|cFF88FF00' .. tostring(ptype) .. '|r:GetPlayerData() --', numCalls)
eventFunc(self, event)
end
end
@@ -288,6 +330,17 @@
function core:UpdateNotifications()
end
+
+local SetOwnerData = function(self, data)
+ local name, realm = string.match(data.profileKey, "(.+)%-(.+)")
+ local ownerText = '|c'.. data.classColor.colorStr .. name .. '|r'
+ if realm ~= GI_currentRealm then
+ ownerText = ownerText .. ' (' .. realm .. ')'
+ end
+ self.Owner:SetText(ownerText)
+ self.Background:SetColorTexture(data.classColor.r, data.classColor.g, data.classColor.b)
+end
+
function core:RefreshItems(configKey, prototype)
local sortedItems = self.sortedItems[configKey]
@@ -303,6 +356,7 @@
if not block then
block = CreateFrame('Button', nil, self, prototype.templateName)
block:SetID(i)
+ block.handler = prototype
prototype.numBlocks = prototype.numBlocks + 1
if prototype.lastBlock then
@@ -316,7 +370,14 @@
totalHeight = totalHeight + block:GetHeight()
block.lastProfile = lastProfile
+ for k,v in pairs(data) do
+ if type(block[k]) ~= 'function' then
+ block[k] = v
+ end
+ end
block:Refresh(data)
+ SetOwnerData(block, data)
+
block:Show()
lastProfile = data.profileKey
end
@@ -342,18 +403,7 @@
self.currentHeight = max(itemsHeight, self.currentHeight)
end
- if OrderHallCommandBar and OrderHallCommandBar:IsVisible() then
- self:ClearAllPoints()
- self:SetPoint('TOP', OrderHallCommandBar, 'BOTTOM')
- else
-
- local posX = self.data.posX or 0
- local posY = self.data.posY or -24
- local point = self.point or 'TOP'
- local relativePoint = self.point or 'TOP'
- self:SetPoint(point, UIParent, relativePoint, posX, posY)
- end
-
+ self:Reanchor()
self:SetHeight(self.currentHeight)
end
@@ -380,20 +430,25 @@
print('updating items on show')
self:Refresh()
end
- ClassPlanButton:SetPoint('TOP', self, 'TOP', 0, 0)
+ -- grab this at least once
+ C_Garrison.RequestLandingPageShipmentInfo();
+ ClassPlanButton.Background:Show()
+ ClassPlanButton.Grip:SetShown(true)
end
function core:OnHide()
- ClassPlanButton:SetPoint('TOP', UIParent, 'TOP', 0, 0)
+ ClassPlanButton.Background:Hide()
+ ClassPlanButton.Grip:SetShown(false)
end
local GI_profileKey, GI_profile, GI_isMine
-local GetItemList = function (source, dest, onGetItem)
+local defaultClassColor = {r = 0.7, g = 0.7, b =0.7, colorStr = "ffffffff"}
+local DoItemList = function (source, dest, onGetItem)
if not source then
return
end
local numItems = 0
for index, data in ipairs(source) do
- data.classColor = GI_profile.classColor or {r = 0.7, g = 0.7, b =0.7}
+ data.classColor = GI_profile.classColor or defaultClassColor
data.profileKey = GI_profileKey
data.isMine = GI_isMine
if onGetItem then
@@ -412,49 +467,28 @@
for key, sortedItems in pairs(self.sortedItems) do
wipe(sortedItems)
local ptype = self.prototypes[key]
- print( 'object:', ptype)
+ --print( 'object:', ptype)
for name, profile in pairs(self.data.characters) do
GI_profileKey = name
GI_profile = profile
GI_isMine = (profile == self.profile)
-
- local results = GetItemList(profile[key], sortedItems, ptype.OnGetItem)
- print(' - ', name, results, 'items')
-
+ local results = DoItemList(profile[key], sortedItems, ptype.OnGetItem)
+ --print(' - ', name, results, 'items')
end
if ptype.SortHandler then
- print(' sorting', key, #sortedItems)
- table.sort(sortedItems, ptype.SortHandler)
+ sort(sortedItems, ptype.SortHandler)
end
end
end
-
-
-function core:UpdateItems ()
-end
-
function MissionsHandler:OnComplete()
- self.data.isComplete = true
+ self.isComplete = true
self:Refresh()
end
-local GetTimeLeftString = function(timeLeft)
-
- local days = floor(timeLeft/(24*3600))
- local hours = floor(mod(timeLeft, (24*3600)) / 3600)
- local minutes = floor(mod(timeLeft, 3600) / 60)
- local seconds = mod(timeLeft, 60)
- if days >= 1 then
- return (days .. 'd' .. ' ') .. ((hours > 0) and (hours .. 'h ') or '')
- else
- return ((hours > 0) and (hours .. 'h ') or '') .. ((minutes > 0) and (minutes .. ' min') or '')
- end
-end
-
function MissionsHandler:OnUpdate()
- if self.data.isComplete then
+ if self.isComplete then
return
end
@@ -477,45 +511,30 @@
end
end
-local SetClassColors = function(self, data)
+function MissionsHandler:Refresh()
- if self.lastProfile ~= data.profileKey then
- self.Owner:SetText(data.profileKey)
- self.Owner:SetTextColor(data.classColor.r, data.classColor.g, data.classColor.b)
- else
- self.Owner:SetText(nil)
- end
- self.Background:SetColorTexture(data.classColor.r, data.classColor.g, data.classColor.b,
- (data.isComplete and 0.5 or 0.1))
-end
-
-function MissionsHandler:Refresh(data)
- data = data or self.data
- self.data = data
-
- self.isComplete = data.isComplete
- self.missionEndTime = data.missionEndTime
local r,g,b = 1, 1, 1
- if data.isRare then
+ if self.isRare then
r,g,b = 0.1, 0.4, 1
end
--self.missionData = data
- self.Label:SetText(data.name)
+ self.Label:SetText(self.name)
self.Label:SetTextColor(r, g, b)
- if #data.rewards >= 1 then
- self.Icon:SetTexture(data.rewards[1].icon or GetItemIcon(data.rewards[1].itemID))
- self.rewardInfo = data.rewards[1]
+ if #self.rewards >= 1 then
+ self.Icon:SetTexture(self.rewards[1].icon or GetItemIcon(self.rewards[1].itemID))
+ self.rewardInfo = self.rewards[1]
else
- self.Icon:SetAtlas(data.typeAtlas, false)
+ self.Icon:SetAtlas(self.typeAtlas, false)
end
if self.isComplete then
self.TimeLeft:SetText('Complete!')
end
- SetClassColors(self, data)
+
+ self.Background:SetAlpha(self.isComplete and 1 or 0.1)
end
@@ -534,8 +553,7 @@
-function ShipmentsHandler:Refresh(data)
- data = data or self.data
+function ShipmentsHandler:Refresh()
--[[
self.icon = data.icon
@@ -560,41 +578,35 @@
--]]
- self.Icon:SetTexture(data.icon)
- self.data = data
+ self.Icon:SetTexture(self.icon)
-
- local isComplete = data.isComplete
-
-
-
- self.Name:SetText(data.shipmentType .. data.name)
- self.Count:SetText(data.shipmentsReady)
- self.Done:SetShown(data.shipmentsReady and (data.shipmentsReady >= 1))
+ self.Name:SetText(self.name)
+ self.Count:SetText(self.shipmentsReady)
+ self.Done:SetShown(self.shipmentsReady and (self.shipmentsReady >= 1))
-- flag as complete
- if ( data.shipmentsReady == data.shipmentsTotal ) and (not data.isBeingResearched) then
+ if ( self.shipmentsReady == self.shipmentsTotal ) and (not self.isBeingResearched) then
self.Swipe:SetCooldownUNIX(0, 0);
self.Done:Show();
- isComplete = true
+ self.isComplete = true
else
- self.Swipe:SetCooldownUNIX(data.creationTime or 0 , data.duration or 0);
+ self.Swipe:SetCooldownUNIX(self.creationTime or 0 , self.duration or 0);
end
- data.isComplete = isComplete
+ local hasPickups = (self.isComplete or (self.shipmentsTotal and (self.shipmentsReady > 0)))
+ self.Background:SetAlpha(hasPickups and 1 or 0.1)
+end
+local time = time
+function ShipmentsHandler:OnUpdate()
- SetClassColors(self, data)
-end
-function ShipmentsHandler:OnUpdate()
- local data = self.data
- if (data.shipmentsReady and data.shipmentsTotal) and (data.shipmentsReady ~= data.shipmentsTotal) then
- local timeLeft = data.creationTime + data.duration - time()
- self.TimeLeft:SetText('Next: '.. GetTimeLeftString(timeLeft) .. ' |cFFFFFF00'..data.shipmentsTotal..' orders|r')
- elseif data.isStale then
+ if (self.shipmentsReady and self.shipmentsTotal) and (self.shipmentsReady ~= self.shipmentsTotal) then
+ local timeLeft = self.creationTime + self.duration - time()
+ self.TimeLeft:SetText('Next: '.. GetTimeLeftString(timeLeft) .. ' |cFFFFFF00'..self.shipmentsTotal..' orders|r')
+ elseif self.isStale then
self.TimeLeft:SetText('|cFFFF0000Needs refresh|r')
- elseif data.isBeingResearched then
- self.TimeLeft:SetText(GetTimeLeftString(data.researchStartTime + data.researchDuration - time()))
+ elseif self.isBeingResearched then
+ self.TimeLeft:SetText(GetTimeLeftString(self.researchStartTime + self.researchDuration - time()))
else
self.TimeLeft:SetText('Complete!')
end
@@ -602,10 +614,13 @@
end
function ShipmentsHandler:OnEnter()
- local data = self.data
- if ( data.shipmentsReady and data.shipmentsTotal ) then
+
+ if ( self.shipmentsReady and self.shipmentsTotal ) then
GameTooltip:SetOwner(self, 'ANCHOR_LEFT')
- GameTooltip:AddLine(data.shipmentsReady .. ' of '.. data.shipmentsTotal)
+
+ GameTooltip:AddLine(self.Owner:GetText(), self.Owner:GetTextColor())
+ GameTooltip:AddLine(self.shipmentType)
+ GameTooltip:AddLine(self.shipmentsReady .. ' of '.. self.shipmentsTotal)
GameTooltip:Show()
end
end
@@ -618,13 +633,6 @@
function ShipmentsHandler:OnClick(button)
if button == 'RightButton' then
- for name, profile in pairs(ClassOrderPlan.data) do
- for index, shipment in pairs(profile.shipments) do
- if shipment == self.data then
- profile.shipments[index] = nil
- ClassOrderPlan:Refresh()
- end
- end
- end
+ self.handler:FreeBlock(self)
end
end
\ No newline at end of file
diff -r c006ce87a147 -r 4c7e9efec4b5 ClassPlan.xml
--- a/ClassPlan.xml Sat Oct 15 09:54:56 2016 -0400
+++ b/ClassPlan.xml Mon Oct 17 12:59:24 2016 -0400
@@ -6,40 +6,22 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-