Module:ItemCategories
Jump to navigation
Jump to search
Documentation for this module may be created at Module:ItemCategories/doc
-- this will be mw.loadData later local config = { -- Direct mappings direct = { -- Loot ["LootTier.1"] = "LootTier 1", ["LootTier.2"] = "LootTier 2", ["LootTier.3"] = "LootTier 3", ["LootTier.4"] = "LootTier 4", ["LootTier.5"] = "LootTier 5", ["LootTier.6"] = "LootTier 6", ["Loot.GreatHouse"] = "Loot from Great Houses", ["Loot.Fremen"] = "Loot from Fremen", ["Loot.OldImperial"] = "Loot from Old Imperial", ["Loot.Component"] = "Component", ["Loot.CraftedResources"] = "Crafted Resources", ["Rarity.Rare"] = "Rare", -- Weapons ["Items.Holsters.MeleeWeapons.Knife"] = "Knife", ["Items.Holsters.MeleeWeapons.Sword"] = "Sword", ["Items.Holsters.RangedWeapons.Heavy.Flamethrower"] = "Flamethrower", ["Items.Holsters.RangedWeapons.Heavy.Lasgun"] = "Lasgun", ["Items.Holsters.RangedWeapons.Heavy.LMG"] = "LMG", ["Items.Holsters.RangedWeapons.Heavy.Pistol"] = "Pistol", ["Items.Holsters.RangedWeapons.Heavy.RocketLauncher"] = "RocketLauncher", ["Items.Holsters.RangedWeapons.Heavy.Shotgun"] = "Shotgun", ["Items.Holsters.RangedWeapons.Light.Pistol"] = "Pistol", ["Items.Holsters.RangedWeapons.Light.Rifle"] = "Rifle", ["Items.Holsters.RangedWeapons.Light.Shotgun"] = "Shotgun", ["Items.Holsters.RangedWeapons.Light.SMG"] = "SMG", -- Tools ["Items.Holsters.HydrationTools"] = "Hydration Tools", }, -- Partial mappings, matches the start only partial = { ["Items.Holsters.RangedWeapons.Heavy"] = "Heavy Ranged Weapons", ["Items.Holsters.RangedWeapons.Light"] = "Light Ranged Weapons", ["Items.Holsters.MeleeWeapons"] = "Melee Weapons", ["Items"] = "Items", ["Items.RawResources"] = "Raw Resources", ["Items.Schematics"] = "Schematics", ["Items.Clothes.ScoutArmor"] = "Light Armor", ["Items.Clothes.HeavyArmor"] = "Heavy Armor", } } local p = {} function p.fromItemTags(frame) local itemtags = frame.args[1] or "" local out = {} local seen = {} mw.log(itemtags) for tag in mw.text.gsplit(itemtags, ",") do tag = mw.text.trim(tag) mw.log("checking tag: " .. tag) -- direct tag match from config local direct = config.direct[tag] if direct then seen[direct] = true mw.log("added " .. direct .. " by direct mapping with " .. tag) end -- partial match for partial, category in pairs(config.partial) do if string.sub(tag, 1, #partial) == partial then seen[category] = true mw.log("added " .. category .. " by partial match on " .. partial) end end end for cat in pairs(seen) do table.insert(out, string.format("[[Category:%s]]", cat)) end return table.concat(out, "\n") end return p