Skip to content

Commit 44f34c6

Browse files
authored
Tww/#302 craft results (#303)
* craft results considering concentration * Craft Statistics Tracker First Draft * Multicraft Tracker * Resourcefulness Tracker
1 parent c496571 commit 44f34c6

File tree

7 files changed

+609
-236
lines changed

7 files changed

+609
-236
lines changed

Classes/ProfessionGear.lua

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ function CraftSim.ProfessionGear:SetItem(itemLink)
3636
self.item = Item:CreateFromItemLink(itemLink)
3737

3838
-- parse stats
39-
local extractedStats = GetItemStats(itemLink)
39+
local extractedStats = C_Item.GetItemStats(itemLink)
4040

4141
if not extractedStats then
4242
print("Could not extract item stats: " .. tostring(itemLink))

Classes/RecipeData.lua

+2-1
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,6 @@ function CraftSim.RecipeData:new(recipeID, isRecraft, isWorkOrder, crafterData)
136136
---@type string?
137137
self.allocationItemGUID = nil
138138
self.maxQuality = self.recipeInfo.maxQuality
139-
--self.isGear = self.recipeInfo.hasSingleItemOutput and self.recipeInfo.qualityIlvlBonuses ~= nil
140139

141140
self.supportsMulticraft = false
142141
self.supportsResourcefulness = false
@@ -481,6 +480,7 @@ end
481480
function CraftSim.RecipeData:Copy()
482481
---@type CraftSim.RecipeData
483482
local copy = CraftSim.RecipeData(self.recipeID, self.isRecraft, self.orderData ~= nil, self.crafterData)
483+
copy.concentrating = self.concentrating
484484
copy.reagentData = self.reagentData:Copy(copy)
485485
copy.professionGearSet = self.professionGearSet:Copy()
486486
copy.professionStats = self.professionStats:Copy()
@@ -611,6 +611,7 @@ function CraftSim.RecipeData:GetJSON(indent)
611611
jb:Add("recipeID", self.recipeID)
612612
jb:Add("categoryID", self.categoryID)
613613
jb:Add("subtypeID", self.subtypeID)
614+
jb:Add("concentrating", self.concentrating)
614615
jb:Add("learned", self.learned)
615616
jb:Add("numSkillUps", self.numSkillUps)
616617
jb:Add("recipeIcon", self.recipeIcon)

Init/Init.lua

+2-4
Original file line numberDiff line numberDiff line change
@@ -405,7 +405,6 @@ function CraftSim.INIT:PLAYER_LOGIN()
405405
end
406406

407407
function CraftSim.INIT:HideAllModules(keepControlPanel)
408-
local craftResultsFrame = CraftSim.GGUI:GetFrame(CraftSim.INIT.FRAMES, CraftSim.CONST.FRAMES.CRAFT_RESULTS)
409408
local customerHistoryFrame = CraftSim.GGUI:GetFrame(CraftSim.INIT.FRAMES, CraftSim.CONST.FRAMES.CUSTOMER_HISTORY)
410409
local priceOverrideFrame = CraftSim.GGUI:GetFrame(CraftSim.INIT.FRAMES, CraftSim.CONST.FRAMES.PRICE_OVERRIDE)
411410
local priceOverrideFrameWO = CraftSim.GGUI:GetFrame(CraftSim.INIT.FRAMES,
@@ -431,7 +430,7 @@ function CraftSim.INIT:HideAllModules(keepControlPanel)
431430
CraftSim.CRAFT_BUFFS.frame:Hide()
432431
CraftSim.CRAFT_BUFFS.frameWO:Hide()
433432
CraftSim.COOLDOWNS.frame:Hide()
434-
craftResultsFrame:Hide()
433+
CraftSim.CRAFT_RESULTS.frame:Hide()
435434
customerHistoryFrame:Hide()
436435
priceOverrideFrame:Hide()
437436
priceOverrideFrameWO:Hide()
@@ -459,7 +458,6 @@ function CraftSim.INIT:TriggerModulesByRecipeType()
459458
return
460459
end
461460

462-
local craftResultsFrame = CraftSim.GGUI:GetFrame(CraftSim.INIT.FRAMES, CraftSim.CONST.FRAMES.CRAFT_RESULTS)
463461
local customerHistoryFrame = CraftSim.GGUI:GetFrame(CraftSim.INIT.FRAMES, CraftSim.CONST.FRAMES.CUSTOMER_HISTORY)
464462
local priceOverrideFrame = CraftSim.GGUI:GetFrame(CraftSim.INIT.FRAMES, CraftSim.CONST.FRAMES.PRICE_OVERRIDE)
465463
local priceOverrideFrameWO = CraftSim.GGUI:GetFrame(CraftSim.INIT.FRAMES,
@@ -595,7 +593,7 @@ function CraftSim.INIT:TriggerModulesByRecipeType()
595593
CraftSim.FRAME:ToggleFrame(CraftSim.RECIPE_SCAN.frame, showRecipeScan)
596594
CraftSim.FRAME:ToggleFrame(CraftSim.CRAFTQ.frame, showCraftQueue)
597595
CraftSim.FRAME:ToggleFrame(CraftSim.EXPLANATIONS.frame, showExplanations)
598-
CraftSim.FRAME:ToggleFrame(craftResultsFrame, showCraftResults)
596+
CraftSim.FRAME:ToggleFrame(CraftSim.CRAFT_RESULTS.frame, showCraftResults)
599597
CraftSim.FRAME:ToggleFrame(customerHistoryFrame, showCustomerHistory)
600598
CraftSim.FRAME:ToggleFrame(cooldownsFrame, showCooldowns)
601599

Modules/CraftResults/CraftResults.lua

+23-6
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ CraftSim.CRAFT_RESULTS.currentRecipeData = nil
1313

1414
CraftSim.CRAFT_RESULTS.currentSessionData = nil
1515

16+
---@type CraftSim.CRAFT_RESULTS.FRAME
17+
CraftSim.CRAFT_RESULTS.frame = nil
18+
1619
local dataCollect = true
1720

1821
---@param recipeData CraftSim.RecipeData
@@ -96,7 +99,9 @@ end
9699
---Saves the currentCraftResult
97100
---@param craftResult CraftSim.CraftResult
98101
function CraftSim.CRAFT_RESULTS:AddCraftResult(craftResult)
99-
local craftResultFrame = CraftSim.GGUI:GetFrame(CraftSim.INIT.FRAMES, CraftSim.CONST.FRAMES.CRAFT_RESULTS)
102+
local craftResultFrame = CraftSim.CRAFT_RESULTS.frame
103+
local craftProfitsTabContent = craftResultFrame.content.craftProfitsTab
104+
.content --[[@as CraftSim.CRAFT_RESULTS.CRAFT_PROFITS_TAB.CONTENT]]
100105

101106
print("AddCraftResult:", false, true)
102107
---@type CraftSim.CraftSessionData
@@ -111,7 +116,7 @@ function CraftSim.CRAFT_RESULTS:AddCraftResult(craftResult)
111116
CraftSim.CRAFT_RESULTS.currentSessionData:AddCraftResult(craftResult)
112117

113118
-- update frames
114-
craftResultFrame.content.totalProfitAllValue:SetText(GUTIL:FormatMoney(
119+
craftProfitsTabContent.totalProfitAllValue:SetText(GUTIL:FormatMoney(
115120
CraftSim.CRAFT_RESULTS.currentSessionData.totalProfit, true))
116121

117122
CraftSim.CRAFT_RESULTS.FRAMES:UpdateItemList()
@@ -122,7 +127,9 @@ end
122127
---@param craftResult CraftSim.CraftResult
123128
function CraftSim.CRAFT_RESULTS:AddResult(recipeData, craftResult)
124129
CraftSim.DEBUG:StartProfiling("PROCESS_CRAFT_RESULTS_UI_UPDATE")
125-
local craftResultFrame = CraftSim.GGUI:GetFrame(CraftSim.INIT.FRAMES, CraftSim.CONST.FRAMES.CRAFT_RESULTS)
130+
local craftResultFrame = CraftSim.CRAFT_RESULTS.frame
131+
local craftProfitsTabContent = craftResultFrame.content.craftProfitsTab
132+
.content --[[@as CraftSim.CRAFT_RESULTS.CRAFT_PROFITS_TAB.CONTENT]]
126133

127134
local resourcesText = ""
128135

@@ -170,7 +177,7 @@ function CraftSim.CRAFT_RESULTS:AddResult(recipeData, craftResult)
170177
((craftResult.triggeredMulticraft and (GUTIL:ColorizeText(CraftSim.LOCAL:GetText(CraftSim.CONST.TEXT.CRAFT_RESULTS_LOG_3), GUTIL.COLORS.EPIC) .. multicraftExtraItemsText)) or "") ..
171178
((craftResult.triggeredResourcefulness and (GUTIL:ColorizeText(CraftSim.LOCAL:GetText(CraftSim.CONST.TEXT.CRAFT_RESULTS_LOG_4) .. "\n", GUTIL.COLORS.UNCOMMON) .. resourcesText .. "\n")) or "")
172179

173-
craftResultFrame.content.scrollingMessageFrame:AddMessage("\n" .. newText)
180+
craftProfitsTabContent.scrollingMessageFrame:AddMessage("\n" .. newText)
174181

175182
CraftSim.CRAFT_RESULTS:AddCraftResult(craftResult)
176183
CraftSim.CRAFT_RESULTS.FRAMES:UpdateRecipeData(craftResult.recipeID)
@@ -190,11 +197,21 @@ function CraftSim.CRAFT_RESULTS:GetProfitForCraft(recipeData, craftResult)
190197

191198
local resultValue = 0
192199
for _, craftResultItem in pairs(craftResult.craftResultItems) do
200+
local itemLink = craftResultItem.item:GetItemLink()
201+
local qualityID = GUTIL:GetQualityIDFromLink(itemLink)
193202
local quantity = craftResultItem.quantity + craftResultItem.quantityMulticraft
194-
resultValue = resultValue +
195-
(CraftSim.PRICEDATA:GetMinBuyoutByItemLink(craftResultItem.item:GetItemLink()) or 0) * quantity
203+
local priceOverrideData = CraftSim.DB.PRICE_OVERRIDE:GetResultOverride(recipeData.recipeID, qualityID)
204+
local resultItemPrice = (priceOverrideData and priceOverrideData.price) or
205+
CraftSim.PRICEDATA:GetMinBuyoutByItemLink(itemLink) or 0
206+
resultValue = resultValue + resultItemPrice * quantity
207+
print("resultitem: " .. (itemLink or 0))
208+
print("result value: " .. GUTIL:FormatMoney(resultValue, true))
209+
if priceOverrideData then
210+
print("(result price overridden)")
211+
end
196212
end
197213

214+
198215
local craftProfit = (resultValue * CraftSim.CONST.AUCTION_HOUSE_CUT) - (craftingCosts - savedCosts)
199216

200217
return craftProfit

0 commit comments

Comments
 (0)