![]() |
VOOZH | about |
Called by:
{{MusicLocation}}require('strict') localp={} localfunctionformatPercent(ratio) ifnotratioorratio==0then return'—' end localval=ratio*100 val=math.floor(val*100+0.5)/100 ifval%1==0then returntostring(math.floor(val))..'%' end returnstring.format('%.2f%%',val) end functionp.main(frame) localargs=frame:getParent().args localmusic=args[1]ormw.title.getCurrentTitle().text localcreative=tonumber(args.creative)or0 localdata=bucket('music_table') .select('music','page_name','java_prob','bedrock_prob','creative') .where('music',music) .limit(2000) .run() ifnotdataor#data==0then return"No data for "..music end locallocations={} for_,vinipairs(data)do localloc=v.page_nameor'unknown' localisCreative=tonumber(v.creative)or0 localjava=tonumber(v.java_prob)or0 localbedrock=tonumber(v.bedrock_prob)or0 ifcreative==0then ifisCreative==0then locations[loc]={ java=java, bedrock=bedrock } end else iflocations[loc]==nilandisCreative==0then locations[loc]={ java=java, bedrock=bedrock } end ifisCreative==1then locations[loc]={ java=java, bedrock=bedrock } end end end localsorted={} forloc,vinpairs(locations)do table.insert(sorted,{ loc=loc, java=v.java, bedrock=v.bedrock, titleScreen=(loc=='Menu screen') }) end table.sort(sorted,function(a,b) ifa.titleScreenandnotb.titleScreenthen returntrue end ifb.titleScreenandnota.titleScreenthen returnfalse end returna.loc<b.loc end) localroot=mw.html.create('table') :addClass('wikitable sortable collapsible') root:tag('tr') :tag('th'):attr('rowspan',2):wikitext('Biome'):done() :tag('th'):attr('colspan',2):wikitext('Probability') root:tag('tr') :tag('th'):wikitext(frame:expandTemplate{ title='JE', args={nl=1} }):done() :tag('th'):wikitext(frame:expandTemplate{ title='BE', args={nl=1} }) for_,entryinipairs(sorted)do localtr=mw.html.create('tr') localbiomeText ifentry.loc=='Menu screen'then biomeText='[[Menu screen]]' else biomeText=frame:expandTemplate{ title='BiomeLink', args={entry.loc} } end tr:tag('td') :wikitext(biomeText) tr:tag('td') :css('text-align','center') :wikitext(formatPercent(entry.java)) tr:tag('td') :css('text-align','center') :wikitext(formatPercent(entry.bedrock)) root:node(tr) end returntostring(root) end returnp