- 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:NanaminFleet"
Jump to navigation
Jump to search
m (It works.) |
m |
||
Line 6: | Line 6: | ||
local format = require('Module:StringInterpolation').format | local format = require('Module:StringInterpolation').format | ||
− | local NanaminFleet = BaseTable{ | + | local NanaminFleet = BaseTable({ |
_item_class = Ship, | _item_class = Ship, | ||
_equip_class = Equipment, | _equip_class = Equipment, | ||
_equip_bg = "whitesmoke", | _equip_bg = "whitesmoke", | ||
− | _header_template = | + | _header_template = nil, |
− | |||
− | |||
− | |||
_column_cell_templates = { | _column_cell_templates = { | ||
ship = [[| rowspan="4" style="background: transparent;" |${values.ship_card}]], | ship = [[| rowspan="4" style="background: transparent;" |${values.ship_card}]], | ||
Line 28: | Line 25: | ||
_blank = "blank.png", | _blank = "blank.png", | ||
_default_size = ShipCardKai._card_size | _default_size = ShipCardKai._card_size | ||
− | } | + | }) |
function NanaminFleet:create_table_prep() | function NanaminFleet:create_table_prep() | ||
Line 56: | Line 53: | ||
function NanaminFleet:equips2(row) | function NanaminFleet:equips2(row) | ||
return self:equips(row) | return self:equips(row) | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
end | end | ||
Line 115: | Line 104: | ||
table.insert(self._data_rows, row_values) | table.insert(self._data_rows, row_values) | ||
end | end | ||
+ | end | ||
+ | |||
+ | function NanaminFleet:create_header() | ||
+ | self._header = format(self._header_template, {}) | ||
end | end | ||
return NanaminFleet | return NanaminFleet |
Revision as of 00:21, 9 April 2015
Documentation for this module may be created at Module:NanaminFleet/doc
local BaseTable = require('Module:BaseTable')
local Ship = require('Module:Ship')
local ShipCardKai = require('Module:ShipCardKai')
local Equipment = require('Module:Equipment')
local Formatting = require('Module:Formatting')
local format = require('Module:StringInterpolation').format
local NanaminFleet = BaseTable({
_item_class = Ship,
_equip_class = Equipment,
_equip_bg = "whitesmoke",
_header_template = nil,
_column_cell_templates = {
ship = [[| rowspan="4" style="background: transparent;" |${values.ship_card}]],
equips = [[| style="background: whitesmoke;" |${values.equips}]],
ship2 = [[| rowspan="4" style="background: transparent;" |${values.ship_card}]],
equips2 = [[| style="background: whitesmoke;" |${values.equips}]]
},
_columns = {
"ship",
"equips",
"ship2",
"equips2"
},
_blank = "blank.png",
_default_size = ShipCardKai._card_size
})
function NanaminFleet:create_table_prep()
self._size = self._args.image_size or self._default_size
end
function NanaminFleet:ship(row)
local value
if row[1] == false then
value = Formatting:format_image{self._blank, size = self._size}
else
value = ShipCardKai:card{ship = row[1], size = self._size, link = row[1]:link(), caption = row[1]:name()}
end
return {values = {ship_card = value}, bg_color = self._transparent, text_align = self._center_align}
end
function NanaminFleet:ship2(row)
row = {row[3], row[4]}
return self:ship(row)
end
function NanaminFleet:equips(row)
local value = "Lol|-|Lol2|-|Lol3|-|Lol4"
return {values = {equips = value}, bg_color = self._equip_bg, text_align = self._center_align}
end
function NanaminFleet:equips2(row)
return self:equips(row)
end
function NanaminFleet:process_item_key(item_key)
local split = mw.ustring.find(item_key, '/')
if split == nil then
return item_key
else
ship_name = mw.ustring.sub(item_key, 1, split - 1)
ship_suffix = mw.ustring.sub(item_key, split + 1, -1)
if ship_suffix == "Regular" then
ship_suffix = nil
end
return ship_name, ship_suffix
end
end
function NanaminFleet:create_items()
local count = 0
local row = {}
for index, item_key in ipairs(self._args) do
count = count + 1
local item
if item_key == "-" then
item = false
else
if mw.ustring.find(item_key, '/') then
item = self._item_class(self:process_item_key(item_key))
else
item = self._equip_class(self:process_item_key(item_key))
end
end
if count % 5 == 1 or count % 5 == 2 then
table.insert(row, item)
end
if count % 10 == 0 then
table.insert(self._items, row)
row = {}
end
end
end
function NanaminFleet:create_data_rows()
for _, item in ipairs(self._items) do
local row_values = {}
for _, column in ipairs(self._columns) do
row_values[column] = self[column](self, item)
row_values[column].rowspan = item.class ~= nil and 4 or 1
row_values[column].colspan = 1
end
table.insert(self._data_rows, row_values)
end
end
function NanaminFleet:create_header()
self._header = format(self._header_template, {})
end
return NanaminFleet