Tremor Mod Wiki
Explore
Main Page
All Pages
Interactive Maps
navigation
Main page
Community portal
Recent changes
Random page
Admin noticeboard
Mod Content
NPCs
Bosses
Enemies
Weapons
Tools
Accessories
Armor
Vanity items
Gamepedia
Gamepedia support
Report a bad ad
Help Wiki
Contact us
FANDOM
Fan Central
BETA
Games
Anime
Movies
TV
Video
Wikis
Explore Wikis
Community Central
Start a Wiki
Don't have an account?
Register
Sign In
FANDOM
Explore
Current Wiki
Start a Wiki
Don't have an account?
Register
Sign In
Sign In
Register
Tremor Mod Wiki
969
pages
Explore
Main Page
All Pages
Interactive Maps
navigation
Main page
Community portal
Recent changes
Random page
Admin noticeboard
Mod Content
NPCs
Bosses
Enemies
Weapons
Tools
Accessories
Armor
Vanity items
Gamepedia
Gamepedia support
Report a bad ad
Help Wiki
Contact us
Editing
Module:Item
Back to page
Edit source
View history
Talk (0)
Edit Page
Module:Item
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
local trim = mw.text.trim local currentFrame -- credit: http://richard.warburton.it -- this version is with trim. local function explode(div,str) if (div=='') then return false end local pos,arr = 0,{} -- for each divider found for st,sp in function() return string.find(str,div,pos,true) end do table.insert(arr,trim(string.sub(str,pos,st-1))) -- Attach chars left of current divider pos = sp + 1 -- Jump past current divider end table.insert(arr, trim(string.sub(str,pos))) -- Attach chars right of last divider return arr end local function imagecode(image, link, text, size, scale) local image_output = '[[File:' .. image .. '|link='.. link .. '|' .. text if size or scale then local basescale if size then size, basescale = unpack(explode('*', size)) if size == '' then size = nil end if basescale == '' then basescale = nil end end if not size then size = currentFrame:callParserFunction( '#imgw', image)..'x'..currentFrame:callParserFunction( '#imgh', image)..'px' end scale = tonumber(scale or 1) * tonumber(basescale or 1) if scale ~= 1 then local str for i, v in ipairs(explode('x', string.gsub(size, 'px', ''))) do if str then str = str .. 'x' else str = '' end if v ~= '' then str = str .. math.ceil(tonumber(v) * tonumber(scale)) end end size = str..'px' end return image_output .. '|' .. size .. ']]' else return image_output .. ']]' end end local image_for_cargo local function images(image, link, text, size, scale) if not image:find('/') then image_for_cargo = image return imagecode(image, link, text, size, scale) end image = explode('/', image) local result = '' if size and size:find('/') then size = explode('/', size) for i, v in ipairs(image) do result = result .. imagecode(v, link, text, size[i], scale) end else for i, v in ipairs(image) do result = result .. imagecode(v, link, text, size, scale) end end return result end -- main return object return { go = function(frame, args) currentFrame = frame -- cache if args then for k, v in pairs(args) do if v == '' then args[k] = nil end end if args['nolink'] then args['link'] = '' else if not args['link'] then args['link'] = args[1] end end end local getArg = function(key) if args then return args[key] else local value = frame.args[key] if not value then return nil end value = trim(value) if value == '' then return nil else return value end end end local _arg1 = getArg(1) or '' local _link = trim(frame.args['link'] or args['link'] or '') -- keep '' input local _arg2 = getArg(2) local text if _arg2 then -- intuitive pluralism -- The comparisons are performed in order, so putting the more common ones in front gives the best performance. if _arg2 == 's' then local suffix1 = _arg1:sub(-1) -- cache for better performance. local suffix2 = _arg1:sub(-2) -- cache for better performance. if suffix1 == 'y' then if suffix2 == 'ay' or suffix2 == 'ey' or suffix2 == 'iy' or suffix2 == 'oy' or suffix2 == 'uy' then text = _arg1 .. 's' -- eg. ray->rays else text = _arg1:sub(1, -2) .. 'ies' -- eg. firefly->fireflies end elseif suffix2 == 'fe'then text = _arg1:sub(1, -3) .. 'ves' -- eg. knife->knives elseif suffix1 == 'f' and suffix2 ~= 'ff' then text = _arg1:sub(1, -2) .. 'ves' -- eg. wolf->wolves, leaf->leaves, but buff->buffs else text = _arg1 .. 's' end elseif _arg2 == 'es' then text = _arg1 .. 'es' elseif _arg2 == 'ies' then text = _arg1:sub(1, -2) .. 'ies' elseif _arg2 == 'ves' then if _arg1:sub(-2) == 'fe' then text = _arg1:sub(1, -3) .. 'ves' --replace last 2 letters, e.g. knife->knives elseif _arg1:sub(-1) == 'f' or _arg1:sub(-2) ~= 'ff' then text = _arg1:sub(1, -2) .. 'ves' --replace last letter, e.g. wolf-wolves, leaf->leaves, but buff->buffs end else text = _arg2 end else text = _arg1 end local class = 'item-link' local _mode = getArg('mode') local output_image, output_text, output_table = true, true, false if _mode then if _mode == 'image' or _mode == 'imageonly' or _mode =='onlyimage' then output_text = false elseif _mode == 'text' or _mode == 'noimage' then output_image = false elseif _mode == 'table' or _mode == '2-cell' then output_table = true end end local image_output = '' if output_image then image_output = images(getArg('image') or (_arg1 .. '.' .. (getArg('ext') or 'png')), _link, text, getArg('size'), getArg('scale')) end local text_output = '' if output_text then local _note = getArg('note') local _note2 = getArg('note2') local _wrap if _note2 then _wrap = false else _wrap = getArg('wrap') end if _link ~= '' then if text == _link then text = '[['..text..']]' else text = '[['.._link..'|'..text..']]' end end local content = mw.text.tag('span', nil, text) if _wrap then if _note then class = 'item-link -w' content = content .. mw.text.tag('span',{class='note'}, _note) end else if _note then content = content .. mw.text.tag('span',{class='note'}, _note) end if _note2 then class = 'item-link -w' content = content .. mw.text.tag('div',{class='note'}, _note2) end end text_output = mw.text.tag{name='span', content=content} end local _class = getArg('class') local _css = getArg('css') if _class then class = class .. ' ' .. _class end local attr = {class = class} if _css then attr.style = _css end local anchor = '' if getArg('anchor') then anchor = mw.text.tag('div', {id=frame:callParserFunction('anchorencode', _arg1), class='anchor'}, '') end if output_table then attr.class = class .. ' block aligncenter' local result = mw.text.tag('span', attr, image_output) .. '||' attr.class = class .. ' block alignleft' return result .. mw.text.tag('span', attr, text_output .. anchor) else return mw.text.tag('span', attr, image_output .. text_output .. anchor) end end }
Summary:
Please note that all contributions to the Tremor Mod Wiki are considered to be released under the CC BY-SA 3.0
Cancel
Editing help
(opens in new window)
Template used on this page:
Module:Item/doc
(
edit
)
Follow on IG
TikTok
Join Fan Lab