Latest revision |
Your text |
Line 2: |
Line 2: |
|
| |
|
| local Utils = require('Module:Utils') | | local Utils = require('Module:Utils') |
| local ItemUtils = require('Module:UtilsItemTables')
| |
| local L = require('Module:Localization')
| |
|
| |
| local HEADER = [[<table class="wikitable sortable jquery-tablesorter">
| |
| <tr>
| |
| <th class="headerSort" tabindex="0" role="columnheader button" title="Sort ascending">%s</th>
| |
| <th class="headerSort" tabindex="0" role="columnheader button" title="Sort ascending">%s</th>
| |
| <th class="headerSort" tabindex="0" role="columnheader button" title="Sort ascending">%s</th>
| |
| <th class="headerSort" tabindex="0" role="columnheader button" title="Sort ascending">%s</th>
| |
| <th class="headerSort" tabindex="0" role="columnheader button" title="Sort ascending">%s</th>
| |
| <th class="headerSort" tabindex="0" role="columnheader button" title="Sort ascending">%s</th>
| |
| </tr>]]
| |
|
| |
| local TIER_HEADER = [[<table class="wikitable sortable jquery-tablesorter">
| |
| <tr>
| |
| <th class="headerSort" tabindex="0" role="columnheader button" title="Sort ascending">%s</th>
| |
| <th class="headerSort" tabindex="0" role="columnheader button" title="Sort ascending">%s</th>
| |
| </tr>]]
| |
|
| |
|
| function p.table(frame) | | function p.table(frame) |
| local args = Utils.normaliseArgs(frame)
| | local args = Utils.normaliseArgs(frame) |
| | |
| local ItemData = mw.loadData("Module:ItemData")
| |
|
| |
|
| local returnStr = string.format(HEADER, L.t('Item'), L.t('Room'), L.t('Type'), L.t('Value'), L.t('Dim. Return %'), L.t('Dimensions (X,Y,Z)'))
| | local ItemData = mw.loadData("Module:ItemData") |
|
| |
|
| local items = {}
| | local returnStr = [[<table class="wikitable sortable jquery-tablesorter"> |
| | <thead><tr> |
| | <th class="headerSort" tabindex="0" role="columnheader button" title="Sort ascending">Item</th> |
| | <th class="headerSort" tabindex="0" role="columnheader button" title="Sort ascending">Type</th> |
| | <th class="headerSort" tabindex="0" role="columnheader button" title="Sort ascending">Value</th> |
| | <th class="headerSort" tabindex="0" role="columnheader button" title="Sort ascending">Dim. Return %</th> |
| | <th class="headerSort" tabindex="0" role="columnheader button" title="Sort ascending">Dimensions</th> |
| | </tr></thead><tbody>]] |
|
| |
|
| for itemName, item in pairs(ItemData.items) do
| | local items = {} |
| if item.roomCategory and item.furnitureType and (args.category == nil or args.category == item.roomCategory) and (args.type == nil or args.type == item.furnitureType) then
| |
| table.insert(items, { item = itemName, room = item.roomCategory, type = item.furnitureType, value = item.skillValue, depreciation = item.repeatsDepreciation, dimensions = item.footprint })
| |
| end
| |
| end
| |
|
| |
|
| table.sort(items, compareItems)
| | for itemName, item in pairs(ItemData.items) do |
| | if item.roomCategory and item.furnitureType and (args.category == nil or args.category == item.roomCategory) and (args.type == nil or args.type == item.furnitureType) then |
| | table.insert(items, {item=itemName, type=item.furnitureType, value=item.skillValue, depreciation=item.repeatsDepreciation, dimensions=item.footprint}) |
| | end |
| | end |
|
| |
|
| for _, item in pairs(items) do
| | table.sort(items, compareItems) |
| returnStr = returnStr .. '<tr><td>[[' .. item.item .. ']]</td><td>' .. item.room .. '</td><td>' .. item.type .. '</td><td>' .. item.value .. '</td><td>' .. item.depreciation * 100 .. '%</td><td>' .. ItemUtils.formatFootprintDimensions(item.dimensions) .. '</td></tr>'
| |
| end
| |
|
| |
|
| return returnStr .. '</table>'
| | for _, item in pairs(items) do |
| | returnStr = returnStr .. '<tr><td>' .. item.item .. '</td><td>' .. item.type .. '</td><td>' .. item.value .. '</td><td>' .. item.depreciation .. '</td><td>' .. item.dimensions .. '</td></tr>' |
| | end |
|
| |
|
| end
| | return returnStr .. '</tbody></table>' |
| | |
| function p.blockTiers(frame)
| |
| local args = Utils.normaliseArgs(frame)
| |
| | |
| local ItemData = mw.loadData("Module:ItemData")
| |
| | |
| local returnStr = string.format(TIER_HEADER, L.t('Block'), L.t('Tier'))
| |
| | |
| local items = {}
| |
| | |
| for itemName, item in pairs(ItemData.items) do
| |
| if item.group == 'Blocks' and item.materialTier ~= nil then
| |
| table.insert(items, { item = itemName, tier = item.materialTier })
| |
| end
| |
| end
| |
| | |
| table.sort(items, compareTiers)
| |
| | |
| for _, item in pairs(items) do
| |
| returnStr = returnStr .. '<tr><td>[[' .. item.item .. ']]</td><td>' .. item.tier .. '</td></tr>'
| |
| end
| |
| | |
| return returnStr .. '</table>'
| |
| end
| |
|
| |
|
| function compareItems(a, b)
| |
| if a.room == b.room then
| |
| if a.type == b.type then
| |
| return a.item < b.item
| |
| else
| |
| return a.type < b.type
| |
| end
| |
| else
| |
| return a.room < b.room
| |
| end
| |
| end | | end |
|
| |
|
| function compareTiers(a, b) | | function compareItems(a,b) |
| if a.tier == b.tier then
| | if a.type == b.type then |
| return a.item < b.item
| | return a.item < b.item |
| else
| | else |
| return a.tier < b.tier
| | return a.type < b.type |
| end
| | end |
| end | | end |
|
| |
|
| return p | | return p |