local world = {}
local w, h = term.getSize()
function loadWorld(pWorld)
world = pWorld
end
function unloadWorld()
world = {}
end
function loadObject(name, object)
world[name] = object
end
function unloadObject(name)
world[name] = nil
end
local function newRay(x, y, z, xP, yP, zP, d)
local xD = x + xP
local yD = y + yP
local zD = y + zP
local cX = x
local cY = y
local cZ = z
for a=1,d do
x = math.floor(cX)
y = math.floor(cY)
z = math.floor(cZ)
for b,c in pairs(world) do
return world[b][x][y][z]
end
cX = cX + xD
cY = cY + yD
cZ = cZ + zD
end
end
local function screen(x, y, z, xP, yP, zP, d,

local sW2 = math.floor(w/2)
local sW1 = sW2*-1
local sH2 = math.floor(h/2)
local sH1 = sH2*-1
local cX
local cY
local cZ
local tablea = {}
for a=sW1,sW2 do
tablea[a+sW2+1] = {}
for b=sH1,sH2 do
cX = xP+(xP*a/xP)
cY = yP+(yP*b/yP)
cZ = zP+(zP*a/zP)
tablea[a+sW2+1][b+sH2+1] = newRay(x, y, z, cX, cY, cZ, d)
print(cX)
print(cY)
print(cZ)
print(tablea[a+sW2+1][b+sH2+1])
if tablea[a+sW2+1][b+sH2+1] == nil then
tablea[a+sW2+1][b+sH2+1] = b
end
end
end
return tablea
end
local function display(tablea)
for a=1,#tablea do
for b=1,#tablea[a] do
term.setCursorPos(a,

term.setBackgroundColor(tablea[a][b])
term.write(" ")
end
end
end
local f = {}
f[1] = {}
f[1][1] = {}
f[1][1][1] = colors.blue
f[1][1][2] = colors.yellow
f[1][2] = {}
f[1][2][1] = colors.green
loadObject("testObject", f)
a = screen(1, 1, 1, 0, 0, -4, 8, colors.black)
display(a)
sleep(1)