Minecraft Wiki

除另有声明,转载时均必须注明出处若簡繁轉換出錯,請以遊戲內為準请勇于扩充与修正内容有兴趣逛逛我们的微博沟通交流,欢迎到社区专页需要协助,请在告示板留言

了解更多

Minecraft Wiki
Advertisement
[创建 | 历史 | 清除缓存]文档页面
此模块没有文档页面。如果你知道此模块的使用方法,请帮助为其创建文档页面。
local p = {}
local dec2hex = require('Module:Convert base').fromDec
local sprite = require('Module:Sprite').sprite
local autolink = require('Module:Autolink').link
local id2name = require('Module:Sandbox/AllConversion2')
local alink = function(text)
		if text == 'err' then
			text = '-'..mw.getCurrentFrame():extensionTag('ref',"Its name varies with aux value.",{group="note",name="blank name"})
		else
			if text:find(' %(') then
				local suff = text:sub(text:find(' %('),-1)
				text = autolink({text:gsub('%(',''):gsub('%)','')})
				if text:find('|') then
					text = text .. suff
				else
					text = text .. '|' .. text .. suff
				end
			else
				text = autolink({text})
			end
			text = '[['..text..']]'
		end
	return text
end

function p.jeBlockList()
	local list = mw.loadData('module:Sandbox/AllConversion2/JE IDs').blocks
	local result = {}
	local name,itema,itemb,item
	table.insert(result, [==[{| class="fandom-table wikitable stikitable sortable collapsible collapsed" data-description="Block IDs"
! 图片 !! [[命名空间ID]] !! 方块 !! 物品形式
]==])
	for _, v in ipairs(list) do
		table.insert(result, [[ 
|-
| height="27px"]])
		name = id2name.je.getEnname(v,'block')
		table.insert(result, ' | [[File:'..name..'.png|30px]] ||')
		table.insert(result, mw.getCurrentFrame():extensionTag('code', v) .. '||')
		table.insert(result, alink(name))
		itema = id2name.je.getDirectItem(v)
		itemb = id2name.je.getIndirectItem(v)
		if itema==itemb then
			if itema=='err' then
				item = [[ 
| style="background-color:#ffa0a0" | 无]]
			elseif itema==v then
				item = '|| ID相同'
			else
				local variants = mw.loadData('Module:Sandbox/AllConversion2/data').jeBlockToItem2
				if variants[v] then
					item = [[ 
| style="background-color:#ccaaff" |]]..itema
				else
					item = [[ 
| style="background-color:#a0a0ff" |]]..itema
				end
			end
		elseif itema=='err' then
			item = [[ 
| style="background-color:#ffff80" |]]..itemb
		elseif itemb=='err' then
			item = [[ 
| style="background-color:#80ff80" | ID相同]]
		else
			item = [[ 
| style="background-color:#ffccdd" |]]..itema..'<br>'..itemb
		end
		table.insert(result,item)
	end
	table.insert(result,[[ 
|}]])
	table.insert(result,mw.getCurrentFrame():expandTemplate({title='-'}))
	return table.concat(result)
end

function p.jeItemList()
	local list = mw.loadData('module:Sandbox/AllConversion2/JE IDs').items
	local result = {}
	local icon, name
	table.insert(result, [==[{| class="fandom-table wikitable stikitable sortable collapsible collapsed" data-description="Block IDs"
! 图片 !! [[命名空间ID]] !! 物品
]==])
	for _, v in ipairs(list) do
		table.insert(result, [[ 
|-
| height="27px"]])
		icon, name = id2name.je.getSpriteName(v,'item')
		table.insert(result, ' |'.. sprite({data='ItemSprite',[1]=icon}) .. '||')
		table.insert(result, mw.getCurrentFrame():extensionTag('code', v) .. '||')
		table.insert(result, alink(name))
	end
	table.insert(result,[[ 
|}]])
	table.insert(result,mw.getCurrentFrame():expandTemplate({title='-'}))
	return table.concat(result)
end

function p.beLegacyItemList()
	local list = require('模块:Sandbox/AllConversion2/BE_Items')
	local result = {}
	local id, icon, hex, text, spec
	table.insert(result, [==[{| class="data-table" data-description="Item IDs"
! 图标 !! Dec !! Hex !! [[命名空间ID]] !! 物品
]==])
	for k, v in ipairs(list.legacyId) do
		table.insert(result, [[ 
|-
| height="27px"]])
		if v[1]:find('-') then
			table.insert(result, ' colspan="5" style="color: gray;" | '..v[1]..' (未使用)')
		elseif v[2]:find('unused') then
			table.insert(result, 'style="color: gray;" |  || '..tostring(tonumber(v[1])+256)..' ||'..dec2hex({[1]=tonumber(v[1])+256,[2]=16})..' ||(未使用)|| ')
		else
		id = v[2]
		id, spec = id2name.be.fromLegacy(id,'nil','yes')
		icon, text= id2name.be.getSpriteName(id, 'item', 'nil', spec)
		icon = sprite({data='ItemSprite',[1]=icon})
		table.insert(result, ' |'..icon..' || '..tostring(tonumber(v[1])+256)..' || ')
		hex = dec2hex({[1]=tonumber(v[1])+256,[2]=16})
		table.insert(result, hex..' || '..v[2]..' || ')
		text = alink(text)
		table.insert(result, text)
		end
		if k % 50==0 then
			table.insert(result, [==[ 
|}
{| class="data-table" data-description="Item IDs"
! 图标 !! Dec !! Hex !! [[命名空间ID]] !! 物品
]==])
		end
	end
	table.insert(result,[[ 
|}]])
	table.insert(result,mw.getCurrentFrame():expandTemplate({title='-'}))
	return table.concat(result)
end


function p.beItemList(f)
	local args = f
	if f == mw.getCurrentFrame() then
		args = f.args
	end
	args = args or {}
	local isEdu = args[1] or args.isEdu or false
	local isDev = args[2] or args.isDev or false
	local lists = require('模块:Sandbox/AllConversion2/BE_Items')
	local items = lists.getRuntimeIdList(isEdu, isDev)
	local result = {}
	local icon, hex, text
	table.insert(result, [==[{| class="data-table" data-description="Item IDs"
! 图标 !! Dec !! Hex !! [[命名空间ID]] !! 物品
]==])
	for k, v in ipairs(items) do
		table.insert(result, [[ 
|-
| height="27px"]])
		icon, text= id2name.be.getSpriteName(v, 'item', 'nil')
		icon = sprite({data='ItemSprite',[1]=icon})
		table.insert(result, ' |'..icon..' || '..tostring(tonumber(k)+256)..' || ')
		hex = dec2hex({[1]=tonumber(k)+256,[2]=16})
		table.insert(result, hex..' || '..v..' || ')
		text = alink(text)
		table.insert(result, text)
		if k % 50==0 then
			table.insert(result, [==[ 
|}
{| class="data-table" data-description="Item IDs"
! 图标 !! Dec !! Hex !! [[命名空间ID]] !! 物品
]==])
		end
	end
	table.insert(result,[[ 
|}]])
	table.insert(result,mw.getCurrentFrame():expandTemplate({title='-'}))
	return table.concat(result)
end

function p.beBlockList()
	local lists = require('模块:Sandbox/AllConversion2/BE_Blocks')
	local blocks = lists.all
	local result = {}
	local icon, hex, text
	table.insert(result, [==[
为了避免和物品的ID空间重叠,物品栏中以物品形式存在的ID大于255的方块会用负数公式来作为ID,它们用来排序的ID是 255-原ID。而空气是个例外,其物品形式的ID为-158。
]==])
	table.insert(result, [==[{| class="data-table" data-description="Block IDs"
! 图标 !! Dec !! Hex !! [[命名空间ID]] !! 方块
]==])
	for k, v in ipairs(blocks) do
		table.insert(result, [[ 
|-
| height="27px"]])
		if v[1]:find('-') then
			table.insert(result, ' colspan="5" style="color: gray;" | '..v[1]..' (未使用)')
		elseif v[2]:find('unused') then
			table.insert(result, 'style="color: gray;" |  || '..v[1]..' ||'..dec2hex({[1]=v[1],[2]=16})..' ||(未使用)|| ')
		else
		icon, text= id2name.be.getSpriteName(v[2], 'block', 'nil')
		icon = sprite({data='BlockSprite',[1]=icon})
		table.insert(result, ' |'..icon..' || '..v[1]..' || ')
		hex = dec2hex({[1]=v[1],[2]=16})
		table.insert(result, hex..' || '..v[2]..' || ')
		text = alink(text)
		table.insert(result, text)
		end
		if k % 50==0 then
			table.insert(result, [==[ 
|}
{| class="data-table" data-description="Block IDs"
! 图标 !! Dec !! Hex !! [[命名空间ID]] !! 方块
]==])
		end
	end
	table.insert(result,[[ 
|}]])
	table.insert(result,mw.getCurrentFrame():expandTemplate({title='-'}))
	table.insert(result, [==[


通常情况下,方块在物品栏中的物品形式的命名空间ID与方块本身的命名空间ID相同。但存在以下例外:

{|class="fandom-table wikitable stikitable sortable collapsible" data-description="Block Item IDs"
! 方块ID !! 方块物品形式的ID
]==])
	local items = mw.loadData('模块:Sandbox/AllConversion2/data').beItemToBlock
	for k, v in pairs(items) do
		table.insert(result, [[ 
|-
| ]] .. v..' || ' .. k)
	end
	table.insert(result,[[ 
|}]])
	return table.concat(result)
end


function p.beItemAlias()
	local result = {}
	local items = require('模块:Sandbox/AllConversion2/BE_Items')
	table.insert(result, [==[
{|class="fandom-table wikitable stikitable sortable collapsible" data-description="Block Item IDs"
! 物品的别名ID !! 物品ID
]==])
	for k, v in pairs(items.alias) do
		table.insert(result, [[ 
|-
| ]] .. k..' || ' .. v)
	end
	for k, v in pairs(items.complexAlias) do
		for l, w in pairs(v) do
			if not (l == 'nil') then
				table.insert(result, [[ 
|-
| ]] .. k .. ':' .. l ..' || ' .. w)
			end
		end
	end
	table.insert(result,[[ 
|}]])
	return table.concat(result)
end

return p
Advertisement