Модуль:Элементы игры

Материал из Playzone Minecraft Wiki
Версия от 00:27, 18 января 2017; Softer (обсуждение | вклад) (1 версия импортирована)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Для документации этого модуля может быть создана страница Модуль:Элементы игры/doc

-- Текстовые идентификаторы элементов игры.

local p = {}
local rettypes = {["тип"] = "type", ["type"] = "type", ["идентификатор"] = "id", ["ид"] = "id", ["id"] = "id", [""] = "id"}

-- Получение данных (вариант для внутреннего использования; именно его нужно использовать в модулях)
function p._get(name)
	local thing = mw.ustring.gsub(mw.ustring.lower(mw.text.trim(name or "")), "[_%(%)%s]+", "-")
	local database = mw.loadData("Модуль:Элементы игры/Данные")
	
	return database[thing]
end

-- Получение данных (вариант для общего использования за пределами модулей).
function p.get(f)
	local args = f
	if f == mw.getCurrentFrame() then
		args = require("Модуль:ProcessArgs").merge(true)
	end
	
	local fullretval = p._get(args[1])
	local _rettype = mw.text.trim(args[2] or "")
	local rettype = rettypes[_rettype]
	if rettype == "id" then -- текстовый идентификатор, значение по умолчанию
		retval = fullretval.id
	elseif rettype == "type" then -- тип предмета
		retval = fullretval.type
	else
		error("Непонятный тип запрашиваемых данных: " .. _rettype)
	end
	
	return retval
end