local db = FurnitureCatalogue.settings["data"] local p = FurC.DebugOut -- debug function calling zo_strformat with up to 10 args function FurC.PrintCraftingStation(itemId, recipeArray) local craftingType = FurC.GetCraftingSkillType(itemId, recipeArray) if not craftingType or not GetCraftingSkillName(craftingType) then return "" end return string.format(" (%s)", GetCraftingSkillName(craftingType)) end local function prefillChatBox(output, refresh) output = zo_strformat(output) if nil == output or FURC_EMPTY_STRING == output then return end local editControl = CHAT_SYSTEM.textEntry.editControl if not refresh then output = editControl:GetText() .. output elseif CHAT_SYSTEM.textEntry.editControl:HasFocus() then editControl:Clear() end -- trying to get rid of that double click error... if IsProtectedFunction("StartChatInput") then CallSecureProtected("StartChatInput", output) else StartChatInput(output) end end function FurC.ToChat(output, refresh) if type(output) == "number" then output = FurC.GetItemLink(output) end prefillChatBox(output, refresh) end local function stripColor(aString) if nil == aString then return "" end return aString:gsub("|%l%l%d%d%d%d%d", ""):gsub("|%l%l%d%l%l%d%d", ""):gsub("|c25C31E", ""):gsub("|r", "") end local function getNameFromEntry(recipeArray) if nil == recipeArray then return "" end if nil == recipeArray.itemName and nil ~= recipeArray.itemId then recipeArray.itemName = GetItemLinkName(recipeArray.itemId) end return recipeArray.itemName or "" end function FurC.PrintSource(itemLink, recipeArray) if nil == recipeArray then recipeArray = FurC.Find(itemLink) end if nil == recipeArray then return end local source = FurC.GetItemDescription(FurC.GetItemId(itemLink), recipeArray, true) local output = string.format("%s: %s", itemLink, source) if recipeArray.achievement and recipeArray.achievement ~= "" then output = string.format("%s, requires %s", output, recipeArray.achievement) end FurC.ToChat(output, true) end function FurC.FindByName(namePart) local ret = {} local itemName = "" -- d(zo_strformat("Looking for <<1>>... \n", namePart)) for itemId, recipeArray in pairs(FurC.settings["data"]) do -- d(zo_strformat("<<1>>: <<2>> (<<3>>)", recipeArray.itemId, getNameFromEntry(recipeArray), string.match(string.lower(getNameFromEntry(recipeArray)), string.lower(namePart)))) if nil ~= string.match(string.lower(getNameFromEntry(recipeArray)), string.lower(namePart)) then table.insert(ret, recipeArray) end end return ret end local function capitalise(str) str = str:gsub("^(%l)(%w*)", function(a,b) return string.upper(a)..b end) return str end