Latest revision |
Your text |
Line 28: |
Line 28: |
| return icon | | return icon |
| else | | else |
| return 'NoIcon.png' | | return 'NoImage.png' |
| end | | end |
| end
| |
|
| |
| function p.itemId(name)
| |
| return name:gsub('%s+', '') .. 'Item'
| |
| end | | end |
|
| |
|
Line 48: |
Line 44: |
| end | | end |
| return set[item] ~= nil | | return set[item] ~= nil |
| | end |
| | |
| | --- Build HTML code for an icon image. |
| | -- @param name string |
| | -- @param size string|nil One of: <code>"iconNormal"</code> (64px) or <code>"iconRecipe"</code> (44px). Default: <code>"iconNormal"</code> |
| | -- @param bg string|nil |
| | -- @param border string|nil |
| | -- @param too_expensive boolean|nil |
| | -- @author User:Avaren |
| | function p.build_icon(name, link, size, bg, border, too_expensive) |
| | local L = require('Module:Localization') -- local import |
| | |
| | if not size then |
| | size = 'iconNormal' |
| | end |
| | local icon_bg |
| | if bg then |
| | icon_bg = bg |
| | end |
| | local icon_border |
| | if border then |
| | icon_border = border |
| | end |
| | |
| | local item_data = mw.loadData('Module:ItemData') |
| | local item = item_data.items[name] |
| | local image |
| | if item then |
| | if item['group'] == L.t('Skill Books') then |
| | image = 'SkillBook.png' |
| | icon_bg = 'iconGold' |
| | elseif item['group'] == L.t('Skill Scrolls') then |
| | image = 'Skill Scroll' |
| | icon_bg = 'iconGold' |
| | -- Attempt to generate skill page |
| | elseif in_array(L.t('Basic Research'), item['tagGroups']) then |
| | image = string.sub(item['untranslated'], 1, -7):gsub('%s+', '') .. '_Icon.png' |
| | icon_bg = 'paperBasic' |
| | elseif in_array(L.t('Advanced Research'), item['tagGroups']) then |
| | image = string.sub(item['untranslated'], 1, -10):gsub('%s+', '') .. '_Icon.png' |
| | icon_bg = 'paperAdvanced' |
| | elseif in_array(L.t('Modern Research'), item['tagGroups']) then |
| | image = string.sub(item['untranslated'], 1, -8):gsub('%s+', '') .. '_Icon.png' |
| | icon_bg = 'paperModern' |
| | else |
| | image = p.checkImage(item['untranslated'], too_expensive) |
| | end |
| | if not icon_bg then |
| | if item['group'] == L.t('Food') then |
| | icon_bg = 'iconGreen' |
| | elseif item['carried'] == L.t('Hands') then |
| | icon_bg = 'iconBrown' |
| | end |
| | end |
| | else |
| | image = p.checkImage(name, too_expensive) |
| | end |
| | |
| | if not icon_bg then |
| | icon_bg = 'iconBlue' |
| | end |
| | |
| | if border then |
| | icon_border = border |
| | else |
| | icon_border = 'borderBlue' |
| | end |
| | |
| | if size == 'iconNormal' then |
| | icon_container = 'iconContainer' |
| | else |
| | icon_container = 'iconContainerSmall' |
| | end |
| | |
| | if not link then |
| | link = '' |
| | else |
| | link = '|link='..link |
| | end |
| | |
| | local file = '[[File:' .. image .. '|frameless|class=' .. size .. ' ' .. icon_bg .. link ..']]' |
| | return '<div class="' .. icon_container .. '"><div class="iconStack">' .. file .. '</div><div class="iconBorder ' .. icon_border .. '" style="position:absolute;"></div></div>' |
| | end |
| | |
| | --- Get HTML code for an icon image. |
| | -- @author User:Avaren |
| | function p.Icon(frame) |
| | args = p.normaliseArgs(frame) |
| | return p.build_icon(args.name, args.link, args.size, args.bg, args.border, args.too_expensive) |
| end | | end |
|
| |
|
Line 320: |
Line 405: |
| -- @author User:Demian | | -- @author User:Demian |
| function p.isEmpty(str) | | function p.isEmpty(str) |
| return nil == str or "" == str | | return nil == str == nil or "" == str |
| end
| |
| | |
| function p.mapColour(colourName)
| |
| local foreground = "white"
| |
| local background = "#1165AF"
| |
| | |
| mw.log(colourName)
| |
| | |
| colour_map = {
| |
| ["aliceblue"] = "f0f8ff",
| |
| ["antiquewhite"] = "faebd7",
| |
| ["aqua"] = "00ffff",
| |
| ["aquamarine"] = "7fffd4",
| |
| ["azure"] = "f0ffff",
| |
| ["beige"] = "f5f5dc",
| |
| ["bisque"] = "ffe4c4",
| |
| ["black"] = "000000",
| |
| ["blanchedalmond"] = "ffebcd",
| |
| ["blue"] = "0000ff",
| |
| ["blueviolet"] = "8a2be2",
| |
| ["brown"] = "a52a2a",
| |
| ["burlywood"] = "deb887",
| |
| ["cadetblue"] = "5f9ea0",
| |
| ["chartreuse"] = "7fff00",
| |
| ["chocolate"] = "d2691e",
| |
| ["coral"] = "ff7f50",
| |
| ["cornflowerblue"] = "6495ed",
| |
| ["cornsilk"] = "fff8dc",
| |
| ["crimson"] = "dc143c",
| |
| ["cyan"] = "00ffff",
| |
| ["darkblue"] = "00008b",
| |
| ["darkcyan"] = "008b8b",
| |
| ["darkgoldenrod"] = "b8860b",
| |
| ["darkgray"] = "a9a9a9",
| |
| ["darkgreen"] = "006400",
| |
| ["darkkhaki"] = "bdb76b",
| |
| ["darkmagenta"] = "8b008b",
| |
| ["darkolivegreen"] = "556b2f",
| |
| ["darkorange"] = "ff8c00",
| |
| ["darkorchid"] = "9932cc",
| |
| ["darkred"] = "8b0000",
| |
| ["darksalmon"] = "e9967a",
| |
| ["darkseagreen"] = "8fbc8f",
| |
| ["darkslateblue"] = "483d8b",
| |
| ["darkslategray"] = "2f4f4f",
| |
| ["darkturquoise"] = "00ced1",
| |
| ["darkviolet"] = "9400d3",
| |
| ["deeppink"] = "ff1493",
| |
| ["deepskyblue"] = "00bfff",
| |
| ["dimgray"] = "696969",
| |
| ["dodgerblue"] = "1e90ff",
| |
| ["feldspar"] = "d19275",
| |
| ["firebrick"] = "b22222",
| |
| ["floralwhite"] = "fffaf0",
| |
| ["forestgreen"] = "228b22",
| |
| ["fuchsia"] = "ff00ff",
| |
| ["gainsboro"] = "dcdcdc",
| |
| ["ghostwhite"] = "f8f8ff",
| |
| ["gold"] = "ffd700",
| |
| ["goldenrod"] = "daa520",
| |
| ["gray"] = "808080",
| |
| ["green"] = "008000",
| |
| ["greenyellow"] = "adff2f",
| |
| ["honeydew"] = "f0fff0",
| |
| ["hotpink"] = "ff69b4",
| |
| ["indianred "] = "cd5c5c",
| |
| ["indigo "] = "4b0082",
| |
| ["ivory"] = "fffff0",
| |
| ["khaki"] = "f0e68c",
| |
| ["lavender"] = "e6e6fa",
| |
| ["lavenderblush"] = "fff0f5",
| |
| ["lawngreen"] = "7cfc00",
| |
| ["lemonchiffon"] = "fffacd",
| |
| ["lightblue"] = "add8e6",
| |
| ["lightcoral"] = "f08080",
| |
| ["lightcyan"] = "e0ffff",
| |
| ["lightgoldenrodyellow"] = "fafad2",
| |
| ["lightgrey"] = "d3d3d3",
| |
| ["lightgreen"] = "90ee90",
| |
| ["lightpink"] = "ffb6c1",
| |
| ["lightsalmon"] = "ffa07a",
| |
| ["lightseagreen"] = "20b2aa",
| |
| ["lightskyblue"] = "87cefa",
| |
| ["lightslateblue"] = "8470ff",
| |
| ["lightslategray"] = "778899",
| |
| ["lightsteelblue"] = "b0c4de",
| |
| ["lightyellow"] = "ffffe0",
| |
| ["lime"] = "00ff00",
| |
| ["limegreen"] = "32cd32",
| |
| ["linen"] = "faf0e6",
| |
| ["magenta"] = "ff00ff",
| |
| ["maroon"] = "800000",
| |
| ["mediumaquamarine"] = "66cdaa",
| |
| ["mediumblue"] = "0000cd",
| |
| ["mediumorchid"] = "ba55d3",
| |
| ["mediumpurple"] = "9370d8",
| |
| ["mediumseagreen"] = "3cb371",
| |
| ["mediumslateblue"] = "7b68ee",
| |
| ["mediumspringgreen"] = "00fa9a",
| |
| ["mediumturquoise"] = "48d1cc",
| |
| ["mediumvioletred"] = "c71585",
| |
| ["midnightblue"] = "191970",
| |
| ["mintcream"] = "f5fffa",
| |
| ["mistyrose"] = "ffe4e1",
| |
| ["moccasin"] = "ffe4b5",
| |
| ["navajowhite"] = "ffdead",
| |
| ["navy"] = "000080",
| |
| ["oldlace"] = "fdf5e6",
| |
| ["olive"] = "808000",
| |
| ["olivedrab"] = "6b8e23",
| |
| ["orange"] = "ffa500",
| |
| ["orangered"] = "ff4500",
| |
| ["orchid"] = "da70d6",
| |
| ["palegoldenrod"] = "eee8aa",
| |
| ["palegreen"] = "98fb98",
| |
| ["paleturquoise"] = "afeeee",
| |
| ["palevioletred"] = "d87093",
| |
| ["papayawhip"] = "ffefd5",
| |
| ["peachpuff"] = "ffdab9",
| |
| ["peru"] = "cd853f",
| |
| ["pink"] = "ffc0cb",
| |
| ["plum"] = "dda0dd",
| |
| ["powderblue"] = "b0e0e6",
| |
| ["purple"] = "800080",
| |
| ["red"] = "ff0000",
| |
| ["rosybrown"] = "bc8f8f",
| |
| ["royalblue"] = "4169e1",
| |
| ["saddlebrown"] = "8b4513",
| |
| ["salmon"] = "fa8072",
| |
| ["sandybrown"] = "f4a460",
| |
| ["seagreen"] = "2e8b57",
| |
| ["seashell"] = "fff5ee",
| |
| ["sienna"] = "a0522d",
| |
| ["silver"] = "c0c0c0",
| |
| ["skyblue"] = "87ceeb",
| |
| ["slateblue"] = "6a5acd",
| |
| ["slategray"] = "708090",
| |
| ["snow"] = "fffafa",
| |
| ["springgreen"] = "00ff7f",
| |
| ["steelblue"] = "4682b4",
| |
| ["tan"] = "d2b48c",
| |
| ["teal"] = "008080",
| |
| ["thistle"] = "d8bfd8",
| |
| ["tomato"] = "ff6347",
| |
| ["turquoise"] = "40e0d0",
| |
| ["violet"] = "ee82ee",
| |
| ["violetred"] = "d02090",
| |
| ["wheat"] = "f5deb3",
| |
| ["white"] = "ffffff",
| |
| ["whitesmoke"] = "f5f5f5",
| |
| ["yellow"] = "ffff00",
| |
| ["yellowgreen"] = "9acd32"
| |
| }
| |
| | |
| colour_found = colour_map[colourName:lower()]
| |
| if colour_found ~= nil then
| |
| background = '#' .. colour_found
| |
| end
| |
| | |
| return foreground, background
| |
| end | | end |
|
| |
|
| return p | | return p |