VOOZH about

URL: https://minecraft.wiki/w/Module:Block_distribution

⇱ Module:Block distribution – Minecraft Wiki


Module:Block distribution

From Minecraft Wiki
Jump to navigation Jump to search
Documentation[view] [edit] [history] [purge]Jump to code ↴

Template:Block distribution

[view] [edit] [history] [purge]The above documentation is transcluded from Module:Block distribution/doc.
require('strict')
localp={}
functionp._main(args)
localpageNames,argOrder={},{}
forkey,valinpairs(args)do
iftonumber(key)then
pageNames[key]={'page_name','=',val}
argOrder[val]=key
end
end
if#pageNames==0then
localtitleText=mw.title.getCurrentTitle().text
table.insert(pageNames,{'page_name','=',titleText})
argOrder[titleText]=1
end
localbucketData=bucket('resource_location')
.select('page_name','json')
.where({'edition','=','java'})
.where(bucket.Or(pageNames))
.run()
assert(bucketData,'No resource location data found for '..mw.text.listToText(argOrder))
localdata={}
for_,vinipairs(bucketData)do
localjson=mw.text.jsonDecode(v['json'])
json['page_name']=v['page_name']
json['Sortkey']=json['Resource location']
:gsub('deepslate','~deepslate')
table.insert(data,json)
end
-- Sort blocks by arg input order
-- Blocks that share a page are subsorted by resource id
table.sort(data,function(a,b)
localaPos=argOrder[a['page_name']]or99999
localbPos=argOrder[b['page_name']]or99999
ifaPos<bPosthen
returntrue
elseifaPos>bPosthen
returnfalse
elseifaPos==bPosthen
returna['Sortkey']<b['Sortkey']
end
end)
localblocks,added={},{}
localnamespace='minecraft'
if#data>0then
for_,jsoninipairs(data)do
localdisplayName=json['Display name']
localresourceLocation=json['Resource location']
localedition=json['Edition']
localform=json['Form']
localblockForm=false
iftype(form)=="string"then
ifform=="block"then
blockForm=true
end
elseiftype(form)=="table"then
for_,vinipairs(form)do
ifv=="block"andnotjson['Fluid tags']then
blockForm=true
end
end
end
ifresourceLocation~=nilanddisplayName~=nilandedition=="java"andblockForm==truethen
ifstring.find(resourceLocation,":")==nilthen
resourceLocation=namespace..':'..resourceLocation
end
ifnotadded[resourceLocation]then
added[resourceLocation]=displayName
table.insert(blocks,{displayName,resourceLocation})
end
end
end
end
assert(#blocks>0,'No valid resource location data found for '..mw.text.listToText(argOrder))
localnameList,idList={},{}
for_,vinipairs(blocks)do
table.insert(nameList,v[1])
table.insert(idList,v[2])
end
localout=mw.html.create('div')
:addClass('mcw-calc')
:attr({
['data-type']='blockDistribution',
['data-block-names']=table.concat(nameList,','),
['data-blocks']=table.concat(idList,','),
['data-page-name']=mw.title.getCurrentTitle().rootText
})
returnout
end
functionp.main(frame)
localargs=frame:getParent().args
returnp._main(args)
end
returnp
Retrieved from "https://minecraft.wiki/w/Module:Block_distribution?oldid=3148041"

Navigation menu