- Welcome to the Kancolle Wiki!
- If you have any questions regarding site content, account registration, etc., please visit the KanColle Wiki Discord
Difference between revisions of "Module:ShipMetaKai"
Jump to navigation
Jump to search
com>Ckwng (WIP) |
com>Ckwng m |
||
Line 3: | Line 3: | ||
local Formatting = require('Module:Formatting') | local Formatting = require('Module:Formatting') | ||
− | local format = require('Module: | + | local format = require('Module:StringOperations').format |
local ShipMetaKai = BaseData{ | local ShipMetaKai = BaseData{ | ||
− | _template = [[{|class=" | + | _template = [[{|class="${table_class}" style="float: right;" |
|- | |- | ||
!colspan=2|${name} ${japanese_name} | !colspan=2|${name} ${japanese_name} | ||
Line 52: | Line 52: | ||
local ship_class = self._ship:class() | local ship_class = self._ship:class() | ||
if ship_class then | if ship_class then | ||
− | self._vars.class = format{self._class_template, ship_class = | + | self._vars.class = format{self._class_template, ship_class = ship_class:name()} |
end | end | ||
end | end | ||
Line 86: | Line 86: | ||
function ShipMetaKai:create_infobox_prep() | function ShipMetaKai:create_infobox_prep() | ||
self._vars = {} | self._vars = {} | ||
− | local table_classes = {" | + | local table_classes = {"wikitable"} |
if self._args.classes then | if self._args.classes then | ||
table.insert(table_classes, self._args.classes) | table.insert(table_classes, self._args.classes) | ||
Line 96: | Line 96: | ||
end | end | ||
self._vars.table_class = table.concat(table_classes, " ") | self._vars.table_class = table.concat(table_classes, " ") | ||
− | self._vars.table_id = collapsible and collapsible ~= "true" and ("mw-customcollapsible-" .. collapsible) or "" | + | --self._vars.table_id = collapsible and collapsible ~= "true" and ("mw-customcollapsible-" .. collapsible) or "" |
− | self._vars.float = self._args.float and format{self._float_style_template, float = self._args.float} or "" | + | --self._vars.float = self._args.float and format{self._float_style_template, float = self._args.float} or "" |
+ | self._vars.voice_actor_header = self._voice_actor_header | ||
+ | self._vars.artist_header = self._artist_header | ||
end | end | ||
Revision as of 06:55, 2 August 2016
Documentation for this module may be created at Module:ShipMetaKai/doc
local BaseData = require('Module:BaseData')
local Ship = require('Module:Ship')
local Formatting = require('Module:Formatting')
local format = require('Module:StringOperations').format
local ShipMetaKai = BaseData{
_template = [[{|class="${table_class}" style="float: right;"
|-
!colspan=2|${name} ${japanese_name}
|-
!Class
|${class}
|-
!${voice_actor_header}
|${voice_actor}
|-
!${artist_header}
|${artist}
|-
!Availability
|${availability}
|-
!Implemented on
|${implementation_date}
|}]],
_voice_actor_header = "[[Glossary#List of Vessels by Japanese Voice Actresses|Seiyuu]]",
_artist_header = "[[Glossary#List of Vessels by Artist|Artist]]",
_class_template = "[[:Category:${ship_class}|]]",
_fields = {
"name",
"class",
"voice_actor",
"artist",
"availability",
"implementation_date",
},
}
function ShipMetaKai:Infobox(args)
return self{
_args = args,
}:create_infobox()
end
function ShipMetaKai:name()
self._vars.name = Formatting:format_stat(self._ship:name())
self._vars.japanese_name = tostring(Formatting:japanese_text(Formatting:format_stat(self._ship:japanese_name())))
end
function ShipMetaKai:class()
local ship_class = self._ship:class()
if ship_class then
self._vars.class = format{self._class_template, ship_class = ship_class:name()}
end
end
function ShipMetaKai:voice_actor()
self._vars.voice_actor = Formatting:format_stat(self._ship:voice_actor())
end
function ShipMetaKai:artist()
self._vars.artist = Formatting:format_stat(self._ship:artist())
end
function ShipMetaKai:availability()
return
end
function ShipMetaKai:implementation_date()
return
end
function ShipMetaKai:create_item()
if self._args.name then
self._ship = Ship(self._args.name, self._args.model)
else
self._ship = Ship(self._args[1])
end
end
function ShipMetaKai:get_module()
self._ship_data_module = Ship:get_module(self._args.name or self._args[1])
end
function ShipMetaKai:create_infobox_prep()
self._vars = {}
local table_classes = {"wikitable"}
if self._args.classes then
table.insert(table_classes, self._args.classes)
end
local collapsible = self._args.collapsible
if collapsible then
table.insert(table_classes, "mw-collapsible")
table.insert(table_classes, "mw-collapsed")
end
self._vars.table_class = table.concat(table_classes, " ")
--self._vars.table_id = collapsible and collapsible ~= "true" and ("mw-customcollapsible-" .. collapsible) or ""
--self._vars.float = self._args.float and format{self._float_style_template, float = self._args.float} or ""
self._vars.voice_actor_header = self._voice_actor_header
self._vars.artist_header = self._artist_header
end
function ShipMetaKai:format_template()
for _, field in ipairs(self._fields) do
self[field](self)
end
return format(self._template, self._vars)
end
function ShipMetaKai:add_fields()
return
end
function ShipMetaKai:create_infobox()
self:add_fields()
self:create_item()
self:get_module()
self:create_infobox_prep()
return self:format_template()
end
return ShipMetaKai