Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function charToColor(code)
- if code == "0" then
- return colors.white
- elseif code == "1" then
- return colors.orange
- elseif code == "2" then
- return colors.magenta
- elseif code == "3" then
- return colors.lightBlue
- elseif code == "4" then
- return colors.yellow
- elseif code == "5" then
- return colors.lime
- elseif code == "6" then
- return colors.pink
- elseif code == "7" then
- return colors.gray
- elseif code == "8" then
- return colors.lightGray
- elseif code == "9" then
- return colors.cyan
- elseif code == "a" then
- return colors.purple
- elseif code == "b" then
- return colors.blue
- elseif code == "c" then
- return colors.brown
- elseif code == "d" then
- return colors.green
- elseif code == "e" then
- return colors.red
- elseif code == "f" then
- return colors.black
- else
- return nil
- end
- end
- function drawPixel(x,y,color)
- term.setCursorPos(x,y)
- term.setBackgroundColor(color)
- write(" ")
- end
- function pixel(color,ch)
- term.setBackgroundColor(color)
- write(ch)
- end
- term.clear()
- term.setCursorPos(1,1)
- --manual
- posY = -1
- filename = "block_colors.txt"
- net = peripheral.find("modem")
- if net == nil then print("brakuje modemu!") os.exit() end
- port = 420
- --auto
- blockID = {}
- colorID = {}
- screenSize = 0
- if fs.exists(filename) then
- print("file exist loading...")
- sleep(1)
- file = fs.open(filename, "r")
- switch = true
- line = file.readLine()
- while line ~= nil do
- if switch then
- table.insert(blockID,line)
- print("wczytano: " ..line .." do blockID")
- switch = false
- else
- table.insert(colorID,line)
- term.setTextColor(charToColor(line))
- print("wczytano: " ..line .." do colorID")
- term.setTextColor(charToColor("0"))
- switch = true
- end
- line = file.readLine()
- end
- file.close()
- print("file loaded setting screen size...")
- sleep(1)
- end
- --ustawia rozmiar ekranu
- net.open(port)
- event, side, port1, port2, msg = os.pullEvent( "modem_message" )
- for i, block in pairs(msg) do
- if block.x > screenSize then
- screenSize = block.x
- end
- end
- print("screen size: " ..screenSize)
- sleep(1)
- print("starting scanning!")
- sleep(1)
- colorText = {{},{}} -- x , y , colorZnaku , colorTla , znak
- colorBack = {{},{}}
- znakBuffer = {{},{}}
- for i = 1, screenSize * 4 do
- colorText[i] = {} -- create a new row
- for j=1,screenSize * 4 do
- colorText[i][j] = colors.black
- end
- end
- for i = 1, screenSize * 4 do
- colorBack[i] = {} -- create a new row
- for j=1,screenSize * 4 do
- colorBack[i][j] = colors.black
- end
- end
- for i = 1, screenSize * 4 do
- znakBuffer[i] = {} -- create a new row
- for j=1,screenSize * 4 do
- znakBuffer[i][j] = ""
- end
- end
- term.clear()
- tempBlockID = ""
- while true do
- event, side, port1, port2, msg = os.pullEvent( "modem_message" )
- for i, block in pairs(msg) do
- --evenevenlower
- if block.name ~= "minecraft:air" and block.y == posY - 2 then
- tempBlockID = ""
- for o, line in pairs(blockID) do
- if string.find(block.name,blockID[o]) ~= nil then
- tempBlockID = o
- end
- end
- if tempBlockID ~= "" then
- --print(tostring(block.x + screenSize + 1) .." , " ..tostring(block.y + screenSize + 1))
- colorText[block.x + screenSize + 1][block.z + screenSize + 1] = charToColor(colorID[tempBlockID])
- colorBack[block.x + screenSize + 1][block.z + screenSize + 1] = colors.black
- znakBuffer[block.x + screenSize + 1][block.z + screenSize + 1] = "\127"
- end
- end
- --evelower
- if block.name ~= "minecraft:air" and block.y == posY - 1 then
- tempBlockID = ""
- for o, line in pairs(blockID) do
- if string.find(block.name,blockID[o]) ~= nil then
- tempBlockID = o
- end
- end
- if tempBlockID ~= "" then
- colorText[block.x + screenSize + 1][block.z + screenSize + 1] = colors.black
- colorBack[block.x + screenSize + 1][block.z + screenSize + 1] = charToColor(colorID[tempBlockID])
- znakBuffer[block.x + screenSize + 1][block.z + screenSize + 1] = "\127"
- else
- colorText[block.x + screenSize + 1][block.z + screenSize + 1] = colors.red
- colorBack[block.x + screenSize + 1][block.z + screenSize + 1] = colors.black
- znakBuffer[block.x + screenSize + 1][block.z + screenSize + 1] = "\191"
- end
- end
- --floor
- if block.name ~= "minecraft:air" and block.y == posY then
- tempBlockID = ""
- for o, line in pairs(blockID) do
- if string.find(block.name,blockID[o]) ~= nil then
- tempBlockID = o
- end
- end
- if tempBlockID ~= "" then
- colorText[block.x + screenSize + 1][block.z + screenSize + 1] = colors.gray
- colorBack[block.x + screenSize + 1][block.z + screenSize + 1] = charToColor(colorID[tempBlockID])
- znakBuffer[block.x + screenSize + 1][block.z + screenSize + 1] = "\127"
- else
- colorText[block.x + screenSize + 1][block.z + screenSize + 1] = colors.red
- colorBack[block.x + screenSize + 1][block.z + screenSize + 1] = colors.black
- znakBuffer[block.x + screenSize + 1][block.z + screenSize + 1] = "?"
- end
- end
- --walls
- if block.name ~= "minecraft:air" and block.y == posY + 1 then
- tempBlockID = ""
- for o, line in pairs(blockID) do
- if string.find(block.name,blockID[o]) ~= nil then
- tempBlockID = o
- end
- end
- if tempBlockID ~= "" then
- colorText[block.x + screenSize + 1][block.z + screenSize + 1] = colors.white
- colorBack[block.x + screenSize + 1][block.z + screenSize + 1] = charToColor(colorID[tempBlockID])
- znakBuffer[block.x + screenSize + 1][block.z + screenSize + 1] = "\127"
- else
- colorText[block.x + screenSize + 1][block.z + screenSize + 1] = colors.red
- colorBack[block.x + screenSize + 1][block.z + screenSize + 1] = colors.black
- znakBuffer[block.x + screenSize + 1][block.z + screenSize + 1] = "X"
- end
- end
- --walls +1
- if block.name ~= "minecraft:air" and block.y == posY + 2 then
- tempBlockID = ""
- for o, line in pairs(blockID) do
- if string.find(block.name,blockID[o]) ~= nil then
- tempBlockID = o
- end
- end
- if tempBlockID ~= "" then
- colorText[block.x + screenSize + 1][block.z + screenSize + 1] = colors.black
- colorBack[block.x + screenSize + 1][block.z + screenSize + 1] = charToColor(colorID[tempBlockID])
- znakBuffer[block.x + screenSize + 1][block.z + screenSize + 1] = " "
- else
- colorText[block.x + screenSize + 1][block.z + screenSize + 1] = colors.red
- colorBack[block.x + screenSize + 1][block.z + screenSize + 1] = colors.black
- znakBuffer[block.x + screenSize + 1][block.z + screenSize + 1] = "X"
- end
- end
- end
- --pozycja gracza
- if colorBack[screenSize + 1][screenSize + 1] == colors.white then
- colorText[screenSize + 1][screenSize + 1] = colors.black
- else
- colorText[screenSize + 1][screenSize + 1] = colors.white
- end
- znakBuffer[screenSize + 1][screenSize + 1] = "\2"
- --RYSOWANIE
- for i = 1, screenSize * 4, 1 do
- for o = 1, screenSize * 4, 1 do
- term.setCursorPos(i,o)
- term.setBackgroundColor(colorBack[i][o])
- term.setTextColor(colorText[i][o])
- write(znakBuffer[i][o])
- end
- end
- --CZYSZCZENIE BUFFERA
- for i = 1, screenSize * 4 do
- for j=1,screenSize * 4 do
- colorText[i][j] = colors.black
- end
- end
- for i = 1, screenSize * 4 do
- for j=1,screenSize * 4 do
- colorBack[i][j] = colors.black
- end
- end
- for i = 1, screenSize * 4 do
- for j=1,screenSize * 4 do
- znakBuffer[i][j] = " "
- end
- end
- --sleep(0.2)
- end
Add Comment
Please, Sign In to add comment