Module:Equipment

From BTAWiki
Revision as of 13:17, 15 April 2021 by Turtrus (talk | contribs) (Test module creation)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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

-- Module:Equipment is my attempt to create a list of mechs that use a particular 
-- bit of equipment with the idea being you can see what mechs to hunt for particular bits of gear.

local p = {}

local mechs = require('Module:Mech').core
local getArgs = require('Module:Arguments').getArgs

p.componentID = {
  emod_kit_cdhs
}


function p.equipmentMechs(frame)
  local tpl_args = getArgs(frame, {parentFirst=true})

  local equipment = tpl_args[1]
  local where = string.format('Mech.ComponentDefID HOLDS "%s"', equipment)

  -- when querying for mechs, set the limit to 2000. this is arbitrarily high
  -- (larger than the total number of mechs). without this, factions with lots
  -- of mechs would not show all of them.
  local equipmentMechData = mw.ext.cargo.query(
    'Mech,Chassis','Chassis.Name=Name,Chassis.VariantName=VariantName',
    { join = 'Mech.ChassisID=Chassis.Id', where=where, limit=2000 }
  )

  local equipList = mw.html.create('ul')
  equipList:cssText('column-count: 3;-moz-column-count: 3;-webkit-column-count: 3')
  for _, mech in ipairs(factionMechData) do
    equipList:tag('li'):wikitext(string.format(
      '[[%s#%s|%s %s]]', mech['Name'], mech['VariantName'], 
      mech['Name'], mech['VariantName']
    ))
  end
  return equipList
end

return p