• 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:ShipClassData"

From Kancolle Wiki
Jump to navigation Jump to search
com>Ckwng
(Module for accessing Ship Class data)
 
m (13 revisions imported)
 
(12 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
local BaseData = require("Module:BaseData")
 
local BaseData = require("Module:BaseData")
local ShipClassData = BaseData({
+
local ShipClassData = BaseData{
 
_class_suffix = "Class",
 
_class_suffix = "Class",
_type_prefix = "Type",
+
}
})
 
  
 
function ShipClassData:base_name()
 
function ShipClassData:base_name()
 +
return type(self._name) == 'table' and self._name._name or self._name
 +
end
 +
 +
function ShipClassData:base_name_test()
 
return self._name
 
return self._name
 +
end
 +
 +
function ShipClassData:short_base_name()
 +
return self._short_name or self:base_name()
 
end
 
end
  
Line 19: Line 26:
 
end
 
end
 
return table.concat(result, " ")
 
return table.concat(result, " ")
 +
end
 +
 +
function ShipClassData:name_override()
 +
local result = {}
 +
if self._prefix then
 +
table.insert(result, self._prefix)
 +
end
 +
if self._name_override or self:base_name() then
 +
    table.insert(result, self._name_override or self:base_name())
 +
end
 +
if self._suffix then
 +
table.insert(result, self._suffix)
 +
end
 +
return table.concat(result, " ")
 +
end
 +
 +
function ShipClassData:short_name()
 +
local result = {}
 +
if self._prefix then
 +
table.insert(result, self._prefix)
 +
end
 +
table.insert(result, self:short_base_name())
 +
if self._suffix then
 +
table.insert(result, self._suffix)
 +
end
 +
return table.concat(result, " ")
 +
end
 +
 +
function ShipClassData:is_type()
 +
return self._is_type
 +
end
 +
 +
function ShipClassData:base_type()
 +
return self._base_type
 
end
 
end
  
Line 25: Line 66:
 
if class._class and not class._suffix then
 
if class._class and not class._suffix then
 
class._suffix = self._class_suffix
 
class._suffix = self._class_suffix
end
 
if class._type and not class._prefix then
 
class._prefix = self._type_prefix
 
 
end
 
end
 
setmetatable(class, class)
 
setmetatable(class, class)

Latest revision as of 12:26, 12 May 2021

Documentation for this module may be created at Module:ShipClassData/doc

local BaseData = require("Module:BaseData")
local ShipClassData = BaseData{
	_class_suffix = "Class",
}

function ShipClassData:base_name()
	return type(self._name) == 'table' and self._name._name or self._name
end

function ShipClassData:base_name_test()
	return self._name
end

function ShipClassData:short_base_name()
	return self._short_name or self:base_name()
end

function ShipClassData:name()
	local result = {}
	if self._prefix then
		table.insert(result, self._prefix)
	end
	table.insert(result, self:base_name())
	if self._suffix then
		table.insert(result, self._suffix)
	end
	return table.concat(result, " ")
end

function ShipClassData:name_override()
	local result = {}
	if self._prefix then
		table.insert(result, self._prefix)
	end
	if self._name_override or self:base_name() then
	    table.insert(result, self._name_override or self:base_name())
	end
	if self._suffix then
		table.insert(result, self._suffix)
	end
	return table.concat(result, " ")
end

function ShipClassData:short_name()
	local result = {}
	if self._prefix then
		table.insert(result, self._prefix)
	end
	table.insert(result, self:short_base_name())
	if self._suffix then
		table.insert(result, self._suffix)
	end
	return table.concat(result, " ")
end

function ShipClassData:is_type()
	return self._is_type
end

function ShipClassData:base_type()
	return self._base_type
end

function ShipClassData:create(class)
	class = class or {}
	if class._class and not class._suffix then
		class._suffix = self._class_suffix
	end
	setmetatable(class, class)
	class.__index = self
	return class
end

ShipClassData.__call = ShipClassData.create

return ShipClassData