Module:ItemsTable

From Melvor Idle
Revision as of 16:54, 30 January 2022 by Mazunki (talk | contribs) (bye mazunki table)
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Documentation for this module may be created at Module:ItemsTable/doc

-- this module generates [[Template:ItemsTable]] 150 lines at a time.
-- run p.getItemsTableAlt() in debug and copy the result to [[Template:ItemsTable]] after an update that adds new items.
--[=[
	mw.log(p.getItemsTableAlt(0))
	mw.log(p.getItemsTableAlt(150))
	mw.log(p.getItemsTableAlt(300))
	mw.log(p.getItemsTableAlt(450))
	mw.log(p.getItemsTableAlt(600))
	mw.log(p.getItemsTableAlt(750))
	mw.log(p.getItemsTableAlt(900))
	mw.log(p.getItemsTableAlt(1050))
--]=]

local p = {}

local Shared = require('Module:Shared')
local ItemData = mw.loadData('Module:Items/data')
local Items = require('Module:Items')
local Icons = require('Module:Icons')
local SourceTables = require('Module:Items/SourceTables')
local UseTables = require('Module:Items/UseTables')

local itemCount = Shared.tableCount(ItemData.Items) - 1

function p.getItemsTable(frame)
  local itemList = {}
  local i = 0
  while i < itemCount do
    local item = Items.getItemByID(i)
    table.insert(itemList, '\r\n|-\r\n|')
    table.insert(itemList, UseTables.getItemUses(item.name))
    i = i + 1
  end
  return table.concat(itemList)
end

--Alternate version that has everything still
function p.getItemsTableAlt(startID)
  local itemList = {}
  local i = startID
  local iend = i + 150
  while i < iend do
    local item = Items.getItemByID(i)
    if item == nil then
      break
    end
    local itemRow = '\r\n|-'
    local iCat = item.category ~= nil and item.category or ''
    itemRow = itemRow..'\r\n|'..Icons.Icon({item.name, type='item', notext=true, size=50})
    itemRow = itemRow..'||'..Icons.Icon({item.name, type='item', noicon=true})..'||'..(i)..'||'..iCat..'||'..item.type
    itemRow = itemRow..'|| '..Items._getItemStat(item, 'completionReq')
    itemRow = itemRow..'||data-sort-value="'..item.sellsFor..'"|'..Icons.GP(item.sellsFor)
    itemRow = itemRow..'||style="text-align:right;"|'..SourceTables._getItemSources(item)
    itemRow = itemRow..'||style="text-align:right;"|'..UseTables._getItemUses(item, false)
    table.insert(itemList, itemRow)
    i = i + 1
  end
  return table.concat(itemList, '')
end

return p