Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- os.loadAPI("utils")
- os.loadAPI("matrix")
- local tArgs = { ... }
- designname = tArgs[1]
- local w, h = term.getSize()
- function getkey()
- event, param = os.pullEvent("key")
- return param
- end
- function screeninit()
- term.clear()
- term.setCursorPos(1,1)
- end
- function loadlayerfile(project, layernumber)
- var = (utils.varfromfile((project.."/"..project..layernumber)))
- if var ~= nil then
- return var
- else
- return matrix.create()
- end
- end
- function savelayerfile(project, layernumber, layer)
- if(fs.exists(project) ~= true) then
- fs.makeDir(project)
- end
- utils.vartofile(layer, (project.."/"..project..layernumber))
- end
- function setletterat(x, y, letter)
- term.setCursorPos(x, y)
- term.write(""..letter)
- end
- function drawhud(layerno, x, y)
- sx, sy = term.getCursorPos()
- setletterat(1, 2, "L")
- setletterat(1, 3, layerno)
- setletterat(1, 5, "X")
- setletterat(1, 6, x)
- setletterat(1, 8, "Y")
- setletterat(1, 9, y)
- for i=1, h-1 do
- setletterat(3, i, "|")
- end
- term.setCursorPos(sx,sy)
- end
- function drawlayer(layer)
- sx, sy = term.getCursorPos()
- for i=1, w-1 do
- for j=1, h+1 do
- value = matrix.get(layer, i, j)
- if(value ~= nil) then
- setletterat(i+3, j, math.floor(value))
- end
- end
- end
- term.setCursorPos(sx, sy)
- end
- function edit(filename)
- layerlevel = 0
- layer = loadlayerfile(filename, layerlevel)
- layercopy = nil
- term.setCursorPos(4,1)
- while true do
- term.clear()
- curx, cury = term.getCursorPos()
- drawhud(layerlevel,curx-3, cury)
- drawlayer(layer)
- term.setCursorBlink(true)
- input = getkey()
- term.setCursorBlink(false)
- if (input == 16) then -- q key
- savelayerfile(filename, layerlevel, layer)
- sleep(.5)
- screeninit()
- break
- elseif (input == 30) then -- a key
- savelayerfile(filename, layerlevel, layer)
- layerlevel = layerlevel + 1
- layer = loadlayerfile(filename, layerlevel)
- elseif (input == 44) then -- z key
- if(layerlevel > 0) then
- savelayerfile(filename, layerlevel, layer)
- layerlevel = layerlevel - 1
- layer = loadlayerfile(filename, layerlevel)
- end
- elseif (input == 200) then -- up arrow
- if(cury > 1) then
- cury = cury - 1
- end
- elseif (input == 208) then -- down arrow
- if(cury < h-6) then
- cury = cury + 1
- end
- elseif (input == 203) then -- left arrow
- if(curx > 4) then
- curx = curx - 1
- end
- elseif (input == 205) then -- right arrow
- if(curx < w-15) then
- curx = curx + 1
- end
- elseif (input == 46) then -- c key
- layercopy = utils.copytable(layer)
- elseif (input == 25) then -- p key
- if (layercopy ~= nil) then
- layer = utils.copytable(layercopy)
- end
- elseif (input == 57) then -- spacebar
- matrix.remove(layer, (curx-3), cury)
- elseif ((input >= 2) and (input <= 10)) then
- matrix.set(layer, (curx-3), cury, (input-1))
- end
- term.setCursorPos(curx, cury)
- end
- end
- edit(designname)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement