Warning.png

Поддержка Wiki прекращена, она доступна в режиме архива. Информация в ней устарела и может быть неактуальной.

Изменения

Перейти к: навигация, поиск

Модуль:Варка

222 байта убрано, 18:39, 15 октября 2018
м
Удаление ссылок на ванильные предметы и блоки
local p = {}
local slot = require( [[Модуль:Инвентарный слот]] )
local getParts = slot.getParts
local prefixes = slot.prefixes
 
local function prefixedLink( name, mod )
local prefix = ''
for _, thisPrefix in pairs( prefixes ) do
if mw.ustring.find(name, '^' .. thisPrefix .. ' ' ) then
prefix = thisPrefix .. ' '
name = mw.ustring.gsub(name, '^' .. prefix, '' )
break
end
end
local page = ''
if mod and mod ~= '' then
page = mod .. '/'
end
 
local vanilla = {v = 1, vanilla = 1, mc = 1, minecraft = 1}
if mod == '' or vanilla[mw.ustring.lower(parts.mod)] then
return prefix .. name
else
return prefix .. '[[' .. page .. name .. '|' .. name .. ']]'
end
end
function p.table( f )
local args = f
if f == mw.getCurrentFrame() then
args = frequire( 'Модуль:getParentProcessArgs' ).merge().args
else
f = mw.getCurrentFrame()
end
local getParts = require( 'Модуль:Инвентарный слот' ).getParts
-- Начинать таблицу при необходимости
if multirow then
head = ''
elseif head ~= '' then multirow = 1 f:callParserFunction( '#dplvar:set', 'multirow', '1' ) else head = 1 end
-- Заканчивать таблицу при необходимости
local foot = args["подвал"] or ''
local name = ''
local description = ''
local effect = '' local duration = '' if args["название"] or args["показатьимя"] == '1' or multirow and args["показатьимя"] ~= '0' then
name = 'Название !! '
f:callParserFunction( '#dplvar:set', 'brewingname', '1' )
'! ' .. name .. 'width="150" | Ингредиенты !! ' .. recipeClass .. ' Схема [[Зельеварение|варки]]' .. effect .. duration .. description,
'|-'
}, '\n' )
end
local input = mw.text.trim( args[1] or '' )
local output2 = mw.text.trim( args[2] or '' )
local base = args['Ресурс'] or ''
if base == '' then
base = 'Грубое зелье'
-- Ячейка с названием
local nameCell
if f:callParserFunction( '#dplvar', 'brewingname' ) == '1' then if args["название"] or '' ~= '' then nameCell = args["название"] elseif multirow or f:callParserFunction( '#dplvar', 'brewingname' ) == '1' then else local names = {} local links = {} for v in mw.text.gsplit( args[2] or '', '%s*;%s*' ) do parts = getParts( v , args["Мод"] ) if not names[( parts.mod or '' ) .. = parts.name] then local link = mod or '' if not names[( parts.mod then link = parts.mod .. or '/' ) .. parts.name .. '|' end if parts.name:find( '^Люб' ) ] then table.insert( links, mw.ustring.subprefixedLink( parts.name, 0, 6 ) .. '[[' .. link .. mw.ustring.sub( parts.name, 6 mod) .. ']]' ) else tablenames[parts.mod ..insert( links, '[[:' .. link .. parts.name .. ']]' )= 1
end
names[( parts.mod or '' ) .. parts.name] = 1
end
 
nameCell = table.concat( links, '&nbsp;или<br>')
end
nameCell = table.concat( links, '&nbsp;или<br>' )
end
if args["ингредиенты"] or '' ~= '' and fuelslot ~= '' then
ingredientsCell = args["ингредиенты"] .. ' +<br>[[Огненный порошок]] (топливо)'
elseif args["ингредиенты"] or '' ~= '' then ingredientsCell = args["ингредиенты"] else ingredientsCell = {} local ingredients = {} for k, v in ipairs{ input, base } do local separator = '' if k == 2 and next( ingredients ) then separator = '&nbsp;+<br>\n' end for item in mw.text.gsplit( v, '%s*;%s*' ) do local parts = getParts( item ) if parts.name ~= '' and not ingredients[parts.name] and ( k == 2 or k == 1 and v ~= base ) then local link = '' if separator == '' and next( ingredients ) then separator = '&nbsp;или<br>\n' end if parts.mod then link = parts.mod .. '/' .. parts.name .. '|' end if parts.name:find( '^Люб' ) then table.insert( ingredientsCell, separator .. mw.ustring.sub( parts.name, 0, 6 ) .. '[[' .. link .. mw.ustring.sub( parts.name, 6 ) .. ']]' ) else table.insert( ingredientsCell, separator .. '[[' .. link .. parts.name .. ']]' ) end separator = '' ingredients[parts.name] = 1
end
local mod = ( ingredients[v] or animatedIngredients[v] ).mod
local name = ( ingredients[v] or animatedIngredients[v] ).name
table.insert( ingredientsCell, prefixedLink( name, mod ) .. separator )
end
 
ingredientsCell = table.concat( ingredientsCell, '<br>\n' )
end
if fuelslot ~= '' then ingredientsCell = table.concat( ingredientsCell ) .. '&nbsp;+<br>\n[[Огненный порошок]] (топливо)' else ingredientsCell = table.concat( ingredientsCell ) end end
-- Whether to show base or output
local newArgs = {}
if args["показатьресурс"] == '1' then newArgs["Выход2"] = base newArgs["Выход1"] = args["Ресурс2"] newArgs["Выход3"] = args["Ресурс3"] else newArgs["Выход2"] = args[2] newArgs["Выход1"] = args[3] newArgs["Выход3"] = args[4] end
-- Any other args we want to pass along
newArgs["Ресурс"] = args[1] newArgs["Рназв"] = args["Рназв"] newArgs["В2назв"] = args["Вназв"] newArgs["В1назв"] = args["В2назв"] newArgs["В3назв"] = args["В3назв"] newArgs.fuelslot = fuelslot
-- Ячейка с рецептом
local recipeCell = require( 'Модуль:Интерфейс' ).brewingStand( newArgs )
local row = {
'\n' .. ingredientsCell, 'style="padding:1px" |\n' .. recipeCell } if nameCell then table.insert( row, 1, nameCell ) end
-- Ячейка с эффектом
end
-- Ячейка с продолжительностьительностьюпродолжительностью
local durationCell = args["продолжительность"] or ''
if f:callParserFunction( '#dplvar', 'brewingduration' ) == '1' then
end
if args["отладка"] == '1' then return '<pre>' .. header .. '\n' .. row .. '\n|-\n' .. footer .. categories .. '</pre>' else return header .. '\n' .. row .. '\n|-\n' .. footer .. category end
end
return p
1136
правок

Навигация