Pagrindinis puslapis
Atsitiktinis
Prisijungti
Nustatymai
Apie MCSlime.LT
Atsakomybės apribojimas
MCSlime.LT
Paieška
Taisomas
Module:Crafting
Dėmesio:
Jūs nesate prisijungęs. Jūsų IP adresas bus viešai matomas, jei atliksite kokius nors keitimus. Jeigu
prisijungsite
arba
sukursite paskyrą
, jūsų keitimai bus priskirti jūsų naudotojo vardui; drauge įgysite naujų galimybių.
Brukalų patikra.
Ne
pildykite!
local p = {} local i18n = { colored = 'Colored', coloredDyes = { 'Orange Dye', 'Magenta Dye', 'Light Blue Dye', 'Yellow Dye', 'Lime Dye', 'Pink Dye', 'Gray Dye', 'Light Gray Dye', 'Cyan Dye', 'Purple Dye', 'Blue Dye', 'Brown Dye', 'Green Dye', 'Red Dye', 'Black Dye', }, categoryIngredientUsage = 'Category:Recipe using $1', categoryRecipeType = 'Category:$1 recipe', itemBlockOfQuartz = 'Block of Quartz', itemBlockOfQuartz = 'Block of Quartz', itemBrownMushroom = 'Brown Mushroom', itemCharcoal = 'Charcoal', itemCoal = 'Coal', itemColoredDye = 'Colored Dye', itemDye = 'Dye', itemMushroom = 'Mushroom', itemQuartzBlock = 'Quartz Block', itemSmoothQuartzBlock = 'Smooth Quartz Block', itemRedMushroom = 'Red Mushroom', itemStone = 'Stone', itemWhiteDye = 'White Dye', moduleArgs = [[Module:ProcessArgs]], moduleRecipe = [[Module:Recipe table]], moduleSlot = [[Module:Inventory slot]], stoneVariants = { 'Stone', 'Andesite', 'Granite', 'Diorite' }, type = 'Crafting', variantPages = { 'Andesite', 'Banner', 'Bed', 'Diorite', 'Firework Star', 'Granite', 'Pressure Plate', 'Sand', 'Sandstone', 'Shield', 'Slab', 'Stained Glass Pane', 'Stained Glass', 'Stairs', 'Wood Planks', 'Wood', 'Wool', }, CopperBlockLinks = { 'Block of Copper', 'Exposed Copper', 'Weathered Copper', 'Oxidized Copper', 'Cut Copper', 'Exposed Cut Copper', 'Weathered Cut Copper', 'Oxidized Cut Copper', 'Waxed Block of Copper', 'Waxed Copper', 'Waxed Exposed Copper', 'Waxed Weathered Copper', 'Waxed Cut Copper', 'Waxed Exposed Cut Copper', 'Waxed Weathered Cut Copper', 'Copper Block' }, CopperBlock = 'Block of Copper', } p.i18n = i18n local slot = require( i18n.moduleSlot ) local recipeTable = require( i18n.moduleRecipe ).table local cArgVals = { 'A1', 'B1', 'C1', 'A2', 'B2', 'C2', 'A3', 'B3', 'C3' } p.cArgVals = cArgVals function p.table( f ) local args = f if f == mw.getCurrentFrame() then args = require( i18n.moduleArgs ).merge( true ) else f = mw.getCurrentFrame() end -- Automatic shapeless positioning if args[1] then args.shapeless = 1 if args[7] then args.A1 = args[1] args.B1 = args[2] args.C1 = args[3] args.A2 = args[4] args.B2 = args[5] args.C2 = args[6] if args[8] then -- ◼◼◼ ◼◼◼ -- ◼◼◼ OR ◼◼◼ -- ◼◼◼ ◼◼◻ args.A3 = args[7] args.B3 = args[8] args.C3 = args[9] if args[9] then local identical = true for i = 1, 8 do if args[i] ~= args[i + 1] then identical = false break end end if identical then args.shapeless = nil end end else -- ◼◼◼ -- ◼◼◼ -- ◻◼◻ args.B3 = args[7] end elseif args[2] then args.A2 = args[1] args.B2 = args[2] if args[5] then -- ◻◻◻ ◻◻◻ -- ◼◼◼ OR ◼◼◼ -- ◼◼◼ ◼◼◻ args.C2 = args[3] args.A3 = args[4] args.B3 = args[5] args.C3 = args[6] elseif args[4] then -- ◻◻◻ -- ◼◼◻ -- ◼◼◻ args.A3 = args[3] args.B3 = args[4] else -- ◻◻◻ ◻◻◻ -- ◼◼◻ OR ◼◼◻ -- ◻◼◻ ◻◻◻ args.B3 = args[3] end else -- ◻◻◻ -- ◻◼◻ -- ◻◻◻ args.B2 = args[1] args.shapeless = nil end for i = 1, 9 do args[i] = nil end end -- Create recipe table, and list of ingredients local out, ingredientSets = recipeTable( args, { uiFunc = 'craftingTable', type = i18n.type, ingredientArgs = cArgVals, outputArgs = { 'Output' }, } ) local title = mw.title.getCurrentTitle() if args.nocat == '1' or title.namespace ~= 0 or title.isSubpage then return out end local categories = {} local cI = 1 if args.type and args.ignoreusage ~= '1' then categories[cI] = '[[' .. i18n.categoryRecipeType:gsub( '%$1', args.type ) .. ']]' cI = cI + 1 end if args.ignoreusage ~= '1' then -- Create ingredient categories for DPL local usedNames = {} local function addName(name) if not usedNames[name] then -- redundant with most current code, but not with all, and might prevent other issues categories[cI] = '[[' .. i18n.categoryIngredientUsage:gsub( '%$1', name ) .. ']]' cI = cI + 1 usedNames[name] = true end end for _, ingredientSet in pairs( ingredientSets ) do for _, ingredient in pairs( ingredientSet ) do local name = ingredient.name if not ingredient.mod and not usedNames[name] then -- List each dye individually as they have their own pages if name == slot.i18n.prefixes.any .. ' ' .. i18n.itemDye or name == slot.i18n.prefixes.matching .. ' ' .. i18n.itemDye or name == slot.i18n.prefixes.any .. ' ' .. i18n.itemColoredDye or name == slot.i18n.prefixes.matching .. ' ' .. i18n.itemColoredDye then if not name:find( i18n.colored ) then addName( i18n.itemWhiteDye ) end for _, dye in pairs( i18n.coloredDyes ) do addName( dye ) end -- List stone variants individually as they have their own pages elseif name == slot.i18n.prefixes.any .. ' ' .. i18n.itemStone or name == slot.i18n.prefixes.matching .. ' ' .. i18n.itemStone then for _, stone in pairs( i18n.stoneVariants ) do addName( stone ) end else -- Merge item variants which use a single page if name == slot.i18n.prefixes.any .. ' ' .. i18n.itemMushroom or name == slot.i18n.prefixes.matching .. ' ' .. i18n.itemMushroom or name == i18n.itemRedMushroom or name == i18n.itemBrownMushroom then name = i18n.itemMushroom elseif name == i18n.itemSmoothQuartzBlock then name = i18n.itemSmoothQuartzBlock elseif name == i18n.itemCharcoal then name = i18n.itemCoal elseif name:find( ' ' .. i18n.itemQuartzBlock .. '$' ) then name = i18n.itemBlockOfQuartz else for _, variant in pairs( i18n.variantPages ) do if name:find( ' ' .. variant .. '$' ) then name = variant break end end for _, variant in pairs( i18n.CopperBlockLinks ) do if name:find( variant ) then name = i18n.CopperBlock break end end -- Remove prefixes for _, prefix in pairs( slot.i18n.prefixes ) do if name:find( '^' .. prefix .. ' ' ) then name = name:gsub( '^' .. prefix .. ' ', '' ) break end end end -- handle "A or B" names local orA, orB = name:match("(.-) or (.+)") if orA then addName( orA ) addName( orB ) else addName( name ) end end end end end end return out, table.concat( categories, '' ) end return p
Paaiškinimas:
Primename, kad viskas, kas patenka į MCSlime.LT, yra skelbiama pagal GNU Free Documentation licencija 1.3 arba naujesnė versija (plačiau –
MCSlime.LT:Autorinės teisės
). Jei nenorite, kad jūsų indėlis būtų be gailesčio kaitaliojamas ir platinamas, nerašykite čia.
Jūs taip pat pasižadate, kad tai jūsų pačių rašytas turinys arba kopijuotas iš viešų ar panašių nemokamų šaltinių.
Nekopijuokite autorinėmis teisėmis apsaugotų darbų be leidimo!
Atšaukti
Kaip redaguoti
(atsidaro naujame lange)
Šablonai, naudojami puslapyje:
Šablonas:Documentation header
(
keisti
)
Šablonas:Template link
(
keisti
)
Šablonas:Tl
(
keisti
)
Šablonas:Yesno
(
keisti
)
Module:Crafting/doc
(
keisti
)
Module:Documentation
(
keisti
)
Module:ProcessArgs
(
keisti
)