- 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 |
m |
||
Line 1: | Line 1: | ||
+ | local BaseTable = require('Module:BaseTable') | ||
local Ship = require('Module:Ship') | local Ship = require('Module:Ship') | ||
+ | local ShipCardKai = require('Module:ShipCardKai') | ||
local Equipment = require('Module:Equipment') | local Equipment = require('Module:Equipment') | ||
local Formatting = require('Module:Formatting') | local Formatting = require('Module:Formatting') | ||
local format = require('Module:StringInterpolation').format | local format = require('Module:StringInterpolation').format | ||
− | local NanaminFleet = { | + | local NanaminFleet = BaseTable{ |
− | + | _item_class = Ship, | |
− | + | _equip_class = Equipment, | |
− | + | _equip_bg = "whitesmoke", | |
− | + | _header_template = [[! style="background-color: lightskyblue;" |Ship | |
− | + | ! style="background-color: lightskyblue;" |Equipment | |
− | + | ! style="background-color: lightskyblue;" |Ship | |
− | + | ! style="background-color: lightskyblue;" |Equipment]], | |
− | + | --[=[ | |
− | + | _column_cell_templates = { | |
− | + | ship = [[| rowspan="4" style="background: whitesmoke;" |${values.ship_card}]], | |
− | + | equips = [[| style="background: whitesmoke;" |${values.equips}]] | |
− | + | }, | |
− | + | --]=] | |
− | + | _columns = { | |
− | + | "ship", | |
− | + | "equips", | |
− | + | "ship2", | |
− | + | "equips2" | |
− | + | }, | |
− | + | _blank = "blank.png", | |
− | + | _default_size = ShipCardKai._card_size | |
− | |||
− | |||
− | |||
} | } | ||
− | function NanaminFleet: | + | function NanaminFleet:create_table_prep() |
− | if | + | self._size = self._args.image_size or self._default_size |
− | + | end | |
+ | |||
+ | function NanaminFleet:ship(row) | ||
+ | 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 = {ship_card = value}, bg_color = self._transparent, text_align = self._center_align} | ||
+ | end | ||
+ | |||
+ | function NanaminFleet:ship2(row) | ||
+ | return self:ship(row) | ||
+ | end | ||
+ | |||
+ | function NanaminFleet:equips(row) | ||
+ | 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:start_rows() | ||
+ | self._rows = {} | ||
+ | end | ||
+ | |||
+ | function NanaminFleet:finish_rows() | ||
+ | return | ||
+ | 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 | ||
− | |||
end | end | ||
− | function NanaminFleet: | + | function NanaminFleet:create_items() |
− | local | + | local count = 0 |
− | + | local row = {} | |
− | + | for index, item_key in ipairs(self._args) do | |
− | + | count = count + 1 | |
− | local | + | local item |
− | if | + | if item_key == "-" then |
− | + | item = false | |
else | else | ||
− | + | if mw.ustring.find(item_key, '/') then | |
− | + | item = self._item_class(self:process_item_key(item_key)) | |
− | |||
− | |||
− | |||
− | |||
else | else | ||
− | + | item = self._equip_class(self:process_item_key(item_key)) | |
− | |||
− | |||
− | |||
end | end | ||
− | |||
end | end | ||
− | table.insert( | + | if count % 5 == 0 then |
− | + | table.insert(self._items, row) | |
− | + | row = {} | |
− | + | end | |
− | |||
end | end | ||
− | |||
end | end | ||
− | function NanaminFleet: | + | 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 | end | ||
− | |||
− | |||
− | |||
end | end | ||
− | |||
− | |||
end | end | ||
return NanaminFleet | return NanaminFleet |
Revision as of 10:03, 8 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 = [[! style="background-color: lightskyblue;" |Ship
! style="background-color: lightskyblue;" |Equipment
! style="background-color: lightskyblue;" |Ship
! style="background-color: lightskyblue;" |Equipment]],
--[=[
_column_cell_templates = {
ship = [[| rowspan="4" style="background: whitesmoke;" |${values.ship_card}]],
equips = [[| 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)
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 = {ship_card = value}, bg_color = self._transparent, text_align = self._center_align}
end
function NanaminFleet:ship2(row)
return self:ship(row)
end
function NanaminFleet:equips(row)
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:start_rows()
self._rows = {}
end
function NanaminFleet:finish_rows()
return
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 == 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
end
end
return NanaminFleet