これが、lua配列を使用して、コンピュータークラフトで完全にカスタマイズ可能なUIを作成しようとしていることです。これを使用すると、uiは常に空のように見えます。
function dupChar(char, num)
ret = ''
for ii=1,num do
ret = ret..char
end
return ret
end
function drawLoad()
--Pattern:
-- X, Y, Text, FG, BG, Disabled for op, button action
ui = {}
ui.hungerStart = {3,4,'[',nil,nil,false,'none'}
ui.hungerMid1 = {ui.hungerStart[1] + 1,ui.hungerStart[2],dupChar('-',20),nil,nil,false,'none'}
ui.hungerMid2 = {ui.hungerStart[1] + 1,ui.hungerStart[2],hunger,nil,nil,false,'none'}
ui.hungerStop = {ui.hungerStart[1] + 21,ui.hungerStart[2],']',nil,nil,false,'none'}
ui.healthStart = {3,6,'[',nil,nil,false,'kill'}
ui.healthMid1 = {ui.healthStart[1] + 1,ui.healthStart[2],dupChar('-',20),nil,nil,false,'health'}
ui.healthMid2 = {ui.healthStart[1] + 1,ui.healthStart[2],health,nil,nil,false,'health'}
ui.healthStop = {ui.healthStart[1] + 21, ui.healthStart[2],']',nil,nil,false,'heal'}
end
function drawAdv(pName, page)
isOp = false
pHealth = 10
pHunger = 10
health = dupChar('$',pHealth)
hunger = dupChar('@',pHunger)
drawLoad()
color(custCol.default[1], custCol.default[2])
stat.clear()
term.clear()
for index, value in ipairs(ui) do
x, y, text, fg, bg, disOp, action = value[1],value[2],value[3],value[3],value[4],value[5],value[6]
color(custCol.default[1], custCol.default[2])
cur(x,y)
if disOp then
color(custCol.disOp[1], custCol.disOp[2])
else
color(fg,bg)
end
awrite(text)
end
end
もう1つは、
for index, x, y, text, fg, bg, disOp, action in ipairs(ui) do
また
for index, value in ipairs(ui) do
x, y, text, fg, bg, disOp, action = value[1],value[2],value[3],value[3],value[4],value[5],value[6]
リストのエントリを取得する方法です
注意:コードは少し面倒ですが、ComputerCraftでできるだけ使用せずに使用できるようにしようとしたためです(一部の関数はまだここにあり、luaでは動作しません)
読んでくれてありがとう、そして多分私を助けてくれてありがとう:)