- 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:ShipCardListKai"
Jump to navigation
Jump to search
com>Ckwng (Created page with "local BaseTable = require('Module:BaseTable') local Formatting = require('Module:Formatting') local Ship = require('Module:Ship') local ShipCardKai = require('Module:ShipCardK...") |
com>Ckwng |
||
Line 17: | Line 17: | ||
}, | }, | ||
_blank = "blank.png", | _blank = "blank.png", | ||
− | + | _default_size = ShipCardKai._card_size, | |
} | } | ||
Line 23: | Line 23: | ||
local value | local value | ||
if ship == false then | if ship == false then | ||
− | value = Formatting:format_image{self._blank, size = self. | + | value = Formatting:format_image{self._blank, size = self._size} |
else | else | ||
− | value = ShipCardKai:card{ship = ship, link = ship:link(), caption = ship:name()} | + | value = ShipCardKai:card{ship = ship, size = self._size, link = ship:link(), caption = ship:name()} |
end | end | ||
return {values = {value = value}, bg_color = self._transparent, text_align = self._center_align} | return {values = {value = value}, bg_color = self._transparent, text_align = self._center_align} | ||
+ | end | ||
+ | |||
+ | function BaseTable:create_table_prep() | ||
+ | self._size = self._args.image_size or self._default_size | ||
end | end | ||
Revision as of 18:35, 7 April 2015
Documentation for this module may be created at Module:ShipCardListKai/doc
local BaseTable = require('Module:BaseTable')
local Formatting = require('Module:Formatting')
local Ship = require('Module:Ship')
local ShipCardKai = require('Module:ShipCardKai')
local ShipCardListKai = BaseTable{
_item_class = Ship,
_row_starter = "",
_header_template = nil,
_cell = [[${values.value}]],
_columns = {
"one",
"two",
"three",
"four",
"five",
},
_blank = "blank.png",
_default_size = ShipCardKai._card_size,
}
function ShipCardListKai:card(ship)
local value
if ship == false then
value = Formatting:format_image{self._blank, size = self._size}
else
value = ShipCardKai:card{ship = ship, size = self._size, link = ship:link(), caption = ship:name()}
end
return {values = {value = value}, bg_color = self._transparent, text_align = self._center_align}
end
function BaseTable:create_table_prep()
self._size = self._args.image_size or self._default_size
end
function ShipCardListKai:one(row)
return self:card(row[1])
end
function ShipCardListKai:two(row)
return self:card(row[2])
end
function ShipCardListKai:three(row)
return self:card(row[3])
end
function ShipCardListKai:four(row)
return self:card(row[4])
end
function ShipCardListKai:five(row)
return self:card(row[5])
end
function ShipCardListKai:start_rows()
self._rows = {}
end
function ShipCardListKai:finish_rows()
return
end
function ShipCardListKai:process_item_key(item_key)
local split = mw.ustring.find(item_key, '/')
local ship_base_name, ship_suffix
if split == nil then
ship_base_name = item_key
else
ship_base_name = mw.ustring.sub(item_key, 1, split - 1)
ship_suffix = mw.ustring.sub(item_key, split + 1, -1)
end
return ship_base_name, ship_suffix
end
function ShipCardListKai:create_items()
local count = 0
local row = {}
for index, item_key in ipairs(self._args) do
if mw.ustring.sub(item_key, 1, 1) == "!" then
local filled = #row
if filled ~= 0 then
for i=1, 5 - filled do
table.insert(row, false)
end
table.insert(self._items, row)
row = {}
for i=1, filled do
table.insert(row, false)
end
end
table.insert(self._items, mw.ustring.sub(item_key, 2))
else
count = count + 1
local item = self._item_class(self:process_item_key(item_key))
table.insert(row, item)
if count % 5 == 0 then
table.insert(self._items, row)
row = {}
end
end
end
if #row > 0 then
for i=1, 5 - #row do
table.insert(row, false)
end
table.insert(self._items, row)
end
end
function ShipCardListKai:create_data_rows()
for _, item in ipairs(self._items) do
local row_values
if type(item) == "string" then
row_values = item
else
row_values = {}
for _, column in ipairs(self._columns) do
row_values[column] = self[column](self, item)
row_values[column].rowspan = 1
row_values[column].colspan = 1
end
end
table.insert(self._data_rows, row_values)
end
end
return ShipCardListKai