Changes
Extensibility, use correct slot length function
local format = require('Module:StringInterpolation').format
local format = require('Module:StringInterpolation').format
local ShipCategoriesKai = BaseData{}
local ShipCategoriesKai = BaseData{
_type_category_template = "Category:${ship_type}s",
_stock_equipment_category_template = "Category:Ships with ${equipment_name} as stock equipment",
}
function ShipCategoriesKai:Categories(args)
function ShipCategoriesKai:Categories(args)
return self{
return self{
_args = args
_args = args
}:create_categories()
}:get_categories()
end
end
local ship_type = self._ship:type()
local ship_type = self._ship:type()
if ship_type then
if ship_type then
table.insert(self._categories, format{"Category:${ship_type}s", ship_type = Formatting:format_ship_type(ship_type)})
table.insert(self._categories, format{self._type_category_template, ship_type = Formatting:format_ship_type(ship_type)})
end
end
end
end
function ShipCategoriesKai:create_stock_equipment_categories()
function ShipCategoriesKai:create_stock_equipment_categories()
local slots = self._ship:slots()
local slots = self._ship:slots_length()
if slots then
if slots then
for i = 1, slots do
for i = 1, slots do
local equipment, size = self._ship:slot(i)
local equipment, size = self._ship:slot(i)
if equipment then
if equipment then
table.insert(self._categories, format{"Category:Ships with ${equipment_name} as stock equipment", equipment_name = equipment:common_name()})
table.insert(self._categories, format{self._stock_equipment_category_template, equipment_name = equipment:common_name()})
end
end
end
end
end
end
function ShipCategoriesKai:create_categories()
function ShipCategoriesKai:get_categories()
self._categories = {}
self._categories = {}
self:create_ship()
self:create_ship()
if self._ship then
if self._ship then
self:create_static_categories()
self:create_categories()
end
end
return self:write_categories()
return self:write_categories()
end
function ShipCategoriesKai:create_categories()
self:create_static_categories()
self:create_type_categories()
self:create_class_categories()
--self:create_rarity_categories()
self:create_construction_categories()
self:create_remodel_categories()
self:create_stock_equipment_categories()
end
end
return ShipCategoriesKai
return ShipCategoriesKai