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

From Kancolle Wiki
Jump to navigation Jump to search
com>Ckwng
m
com>Ckwng
Line 2: Line 2:
 
_image_template = "[[File:%s]]",
 
_image_template = "[[File:%s]]",
 
_no_image = "Catbomb.png|300px",
 
_no_image = "Catbomb.png|300px",
 +
_simple_link = "[[%s]]",
 +
_aliased_link = "[[%s|%s]]",
 
}
 
}
  
Line 49: Line 51:
 
function BaseData:create(data)
 
function BaseData:create(data)
 
data = data or {}
 
data = data or {}
setmetatable(data, self)
+
setmetatable(data, data)
self.__index = self
+
data.__index = self
 
return data
 
return data
 
end
 
end

Revision as of 04:10, 15 December 2014

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

local BaseData = {
	_image_template = "[[File:%s]]",
	_no_image = "Catbomb.png|300px",
	_simple_link = "[[%s]]",
	_aliased_link = "[[%s|%s]]",
}

function BaseData:create_formatter(lookup)
	return function(self, stat, raw)
		if raw then
			return stat
		elseif stat == nil then
			return "??"
		end
		local result = lookup[stat]
		if result == nil then
			return stat
		else
			return result
		end
	end
end

BaseData.format_stat = BaseData:create_formatter({
	[false] = "",
	})

BaseData.format_speed = BaseData:create_formatter({
	[5] = "Slow",
	[10] = "Fast",
	})

BaseData.format_range = BaseData:create_formatter({
	[1] = "Short",
	[2] = "Medium",
	[3] = "Long",
	[0] = "Very Short",
	[4] = "Very Long",
	})

function BaseData:format_image(name, raw)
	if raw then
		return name
	elseif name == nil then
		return mw.ustring.format(self._image_template, self._no_image)
	else
		return mw.ustring.format(self._image_template, name)
	end
end

function BaseData:create(data)
	data = data or {}
	setmetatable(data, data)
	data.__index = self
	return data
end

BaseData.__call = function (table, ...)
	return table:create(...)
end

setmetatable(BaseData, BaseData)

return BaseData