Module:Navboxes: Difference between revisions
From Melvor Idle
Inconvenient (talk | contribs) m (Undo revision 44798 by Inconvenient (talk)) Tag: Undo |
Inconvenient (talk | contribs) (moved getPotionNavbox here from Module:Skills) |
||
Line 32: | Line 32: | ||
result = result..'\r\n|-\r\n!scope="row"|Special' | result = result..'\r\n|-\r\n!scope="row"|Special' | ||
result = result..'\r\n|style="text-align:center;|'..table.concat(special, ' • ') | result = result..'\r\n|style="text-align:center;|'..table.concat(special, ' • ') | ||
result = result..'\r\n|}' | |||
return result | |||
end | |||
function p.getPotionNavbox(frame) | |||
local result = '{| class="wikitable" style="margin:auto; clear:both; width: 100%"' | |||
result = result..'\r\n!colspan=2|'..Icons.Icon({'Herblore', 'Potions', type='skill'}) | |||
local CombatPots = {} | |||
local SkillPots = {} | |||
for i, potData in Shared.skpairs(SkillData.Herblore.ItemData) do | |||
if potData.category == 0 then | |||
table.insert(CombatPots, Icons.Icon({potData.name, type='item', img=(potData.name..' I')})) | |||
else | |||
if potData.name == 'Bird Nests Potion' then | |||
table.insert(SkillPots, Icons.Icon({"Bird Nest Potion", type='item', img="Bird Nest Potion I"})) | |||
else | |||
table.insert(SkillPots, Icons.Icon({potData.name, type='item', img=(potData.name..' I')})) | |||
end | |||
end | |||
end | |||
result = result..'\r\n|-\r\n!Combat Potions\r\n|class="center" style="vertical-align:middle;"' | |||
result = result..'|'..table.concat(CombatPots, ' • ') | |||
result = result..'\r\n|-\r\n!Skill Potions\r\n|class="center" style="vertical-align:middle;"' | |||
result = result..'|'..table.concat(SkillPots, ' • ') | |||
result = result..'\r\n|}' | result = result..'\r\n|}' | ||
return result | return result |
Revision as of 15:25, 8 June 2021
Documentation for this module may be created at Module:Navboxes/doc
-- New module to stop navbox generators cluttering other modules
local p = {}
local SkillData = mw.loadData('Module:Skills/data')
local MagicData = mw.loadData('Module:Magic/data')
local ItemData = mw.loadData('Module:Items/data')
local Shared = require('Module:Shared')
local Icons = require('Module:Icons')
function p.getFoodNavbox(frame)
local cookedFish = {}
local harvestedFood = {}
local special = {}
for i, item in Shared.skpairs(ItemData.Items) do
if i >= 22 and i < 34 then
table.insert(cookedFish, Icons.Icon({item.name, type='item'}))
elseif i >= 152 and i < 160 then
table.insert(harvestedFood, Icons.Icon({item.name, type='item'}))
end
end
table.insert(harvestedFood, Icons.Icon({'Carrot', type='item'}))
table.insert(special, Icons.Icon({'Raw Magic Fish', type='item'}))
table.insert(special, Icons.Icon({'Lemonade', type='item'}))
local result = '{| class="wikitable" style="margin:auto; clear:both; width: 100%"'
result = result..'\r\n!colspan="2"|[[File:Carrot_(item).svg|25px|link=Food]] [[Food]]'
result = result..'\r\n|-\r\n!scope="row"|Cooked Fish'
result = result..'\r\n|style="text-align:center;|'..table.concat(cookedFish, ' • ')
result = result..'\r\n|-\r\n!scope="row"|Harvested Food'
result = result..'\r\n|style="text-align:center;|'..table.concat(harvestedFood, ' • ')
result = result..'\r\n|-\r\n!scope="row"|Special'
result = result..'\r\n|style="text-align:center;|'..table.concat(special, ' • ')
result = result..'\r\n|}'
return result
end
function p.getPotionNavbox(frame)
local result = '{| class="wikitable" style="margin:auto; clear:both; width: 100%"'
result = result..'\r\n!colspan=2|'..Icons.Icon({'Herblore', 'Potions', type='skill'})
local CombatPots = {}
local SkillPots = {}
for i, potData in Shared.skpairs(SkillData.Herblore.ItemData) do
if potData.category == 0 then
table.insert(CombatPots, Icons.Icon({potData.name, type='item', img=(potData.name..' I')}))
else
if potData.name == 'Bird Nests Potion' then
table.insert(SkillPots, Icons.Icon({"Bird Nest Potion", type='item', img="Bird Nest Potion I"}))
else
table.insert(SkillPots, Icons.Icon({potData.name, type='item', img=(potData.name..' I')}))
end
end
end
result = result..'\r\n|-\r\n!Combat Potions\r\n|class="center" style="vertical-align:middle;"'
result = result..'|'..table.concat(CombatPots, ' • ')
result = result..'\r\n|-\r\n!Skill Potions\r\n|class="center" style="vertical-align:middle;"'
result = result..'|'..table.concat(SkillPots, ' • ')
result = result..'\r\n|}'
return result
end
function p.getPrayerNavbox(frame)
local prayers = {}
for i, prayer in Shared.skpairs(SkillData.Prayer) do
table.insert(prayers, Icons.Icon({prayer.name, type="prayer"}))
end
local result = '{| class="wikitable" style="margin:auto; clear:both; width: 100%"'
result = result..'\r\n!'..Icons.Icon({'Prayer', 'Prayers', type='skill'})
result = result..'\r\n|-\r\n|style="text-align:center;"|'..table.concat(prayers, ' • ')
result = result..'\r\n|}'
return result
end
function p.getRuneNavbox(frame)
local standardRunes = {}
local combinationRunes = {}
for i, item in pairs(ItemData.Items) do
if (i >= 389 and i < 399) or (i >= 820 and i < 823) then
table.insert(standardRunes, Icons.Icon({item.name, type='item'}))
elseif i >= 823 and i < 830 then
table.insert(combinationRunes, Icons.Icon({item.name, type='item'}))
end
end
local result = '{| class="wikitable" style="margin:auto; clear:both; width: 100%"'
result = result..'\r\n!colspan="2"|[[File:Air_Rune_(item).svg|25px|link=Runes]] [[Runes]]'
result = result..'\r\n|-\r\n!scope="row"|Standard Runes'
result = result..'\r\n|style="text-align:center;"|'..table.concat(standardRunes, ' • ')
result = result..'\r\n|-\r\n!scope="row"|Combination Runes'
result = result..'\r\n|style="text-align:center;"|'..table.concat(combinationRunes, ' • ')
result = result..'\r\n|}'
return result
end
function p.getSkillcapeNavbox(frame)
local capeList = {}
for i, item in pairs(ItemData.Items) do
if Shared.contains(item.name, 'Skillcape') or item.name == 'Cape of Completion' then
table.insert(capeList, Icons.Icon({item.name, type='item'}))
end
end
table.sort(capeList, function(a,b)
return a < b
end)
local result = '{| class="wikitable" style="margin:auto; clear:both; width: 100%"'
result = result..'\r\n![[File:Cape_of_Completion_(item).svg|25px|link=Skillcapes]] [[Skillcapes]]'
result = result..'\r\n|-\r\n|style="text-align:center;"|'..table.concat(capeList, ' • ')
result = result..'\r\n|}'
return result
end
function p.getSpellNavbox(frame)
local spells = {}
local curses = {}
local auroras = {}
local ancients = {}
local altmagic = {}
for i, spell in Shared.skpairs(MagicData.Spells) do
table.insert(spells, Icons.Icon({spell.name, type='spell'}))
end
for i, spell in Shared.skpairs(MagicData.Curses) do
table.insert(curses, Icons.Icon({spell.name, type='curse'}))
end
for i, spell in Shared.skpairs(MagicData.Auroras) do
table.insert(auroras, Icons.Icon({spell.name, type='aurora'}))
end
for i, spell in Shared.skpairs(MagicData.Ancient) do
table.insert(ancients, Icons.Icon({spell.name, type='spell'}))
end
for i, spell in Shared.skpairs(MagicData.AltMagic) do
table.insert(altmagic, Icons.Icon({spell.name, type='spell'}))
end
local result = '{| class="wikitable" style="margin:auto; clear:both; width: 100%"'
result = result..'\r\n!colspan=2|[[File:Magic_(skill).svg|25px|link=Spells]] [[Spells]]'
result = result..'\r\n|-\r\n!scope="row"|Standard Spells'
result = result..'\r\n|style="text-align:center;|'..table.concat(spells, ' • ')
result = result..'\r\n|-\r\n!scope="row"|Curses'
result = result..'\r\n|style="text-align:center;|'..table.concat(curses, ' • ')
result = result..'\r\n|-\r\n!scope="row"|Auroras'
result = result..'\r\n|style="text-align:center;|'..table.concat(auroras, ' • ')
result = result..'\r\n|-\r\n!scope="row"|Ancient Magicks'
result = result..'\r\n|style="text-align:center;|'..table.concat(ancients, ' • ')
result = result..'\r\n|-\r\n!scope="row"|Alt Magic'
result = result..'\r\n|style="text-align:center;|'..table.concat(altmagic, ' • ')
result = result..'\r\n|}'
return result
end
return p