Difference between revisions of "Module:Villagers"

From Foundation - Wiki
Jump to navigation Jump to search
 
(20 intermediate revisions by the same user not shown)
Line 1: Line 1:
local p = {}
local p = {}
local b = mw.loadData('Module:BuildingIndex')
local b = mw.loadData('Module:Buildings')
local a = require('Module:Arguments')
local a = require('Module:Arguments')
local com = require('Module:Common')
local com = require('Module:Common')
Line 11: Line 11:


for k, v in pairs(b) do
for k, v in pairs(b) do
if b.employees.rank == rank then
if v.rank == rank then
-- amay4672: v.rank looks at anything called rank in Module:Buildings
jobs[k] = true
jobs[k] = true
-- amay4672: I think [k] throughout refers to the building names from Module:Buildings
end
end
end
end
--amay4672: reasonably sure that here until :tag is all template creation
table.sort(jobs)
table.sort(jobs)
mw.log(#jobs)
mw.log(#jobs)
Line 30: Line 27:
for k, v in pairs(jobs) do
for k, v in pairs(jobs) do
local jobName = mw.html.create('li')
local jobName = mw.html.create('li')
jobName:wikitext('[[' .. com.fUpper(k) .. ']]' .. ((b[k].employees.job and ' - ' .. b[k].employees.job) or ''))
jobName:wikitext('[[' .. com.fUpper(k) .. ']]' .. ((b[k].job and ' - ' .. b[k].job) or ''))
-- amay4672: evidently com.fUpper(k) here is what creates the hyperlinked building name
jobList:node(jobName)
jobList:node(jobName)
end
end

Latest revision as of 07:50, 26 January 2026

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

local p = {}
local b = mw.loadData('Module:Buildings')
local a = require('Module:Arguments')
local com = require('Module:Common')

function p.jobs(frame)
	local args = a.getArgs(frame)
	if args[1] then
		local rank = com.fUpper(args[1])
		local jobs = {}

		for k, v in pairs(b) do
			if v.rank == rank then
			jobs[k] = true
			end
		end
		table.sort(jobs)
		mw.log(#jobs)
		local cols = {
			['column-count'] = (args[2] or 3)
		}
		local jobList = mw.html.create('div')
		jobList:addClass('job-list')
		:css(cols)
		:tag('ul')
	
		for k, v in pairs(jobs) do
			local jobName = mw.html.create('li')
			jobName:wikitext('[[' .. com.fUpper(k) .. ']]' .. ((b[k].job and ' - ' .. b[k].job) or ''))
			jobList:node(jobName)
		end
		
		return jobList
	end
	
	return ''
end
		
return p