61 lines
1.3 KiB
Lua
61 lines
1.3 KiB
Lua
local Chunk = Object:extend()
|
|
|
|
function Chunk:new(map, data)
|
|
self.map = map
|
|
self.data = data
|
|
end
|
|
|
|
function Chunk:getFakeData()
|
|
local fakedata = {}
|
|
local emptyline = {00, 00, 00, 00, 00, 00, 00, 00}
|
|
fakedata.objects = {emptyline, emptyline, emptyline, emptyline, emptyline}
|
|
fakedata.terrain = {emptyline, emptyline, emptyline, emptyline, emptyline}
|
|
fakedata.grind = {emptyline, emptyline, emptyline, emptyline, emptyline}
|
|
|
|
return fakedata, false
|
|
end
|
|
|
|
function Chunk:update(dt)
|
|
|
|
end
|
|
|
|
function Chunk:spawnGrounds(x)
|
|
for i=1, 5 do
|
|
for j=1, 8 do
|
|
if (self.data.terrain[i][j] ~= 3) then
|
|
self.map.world:newCollision("floor", x+(j-1)*31, (i-1)*20, -48, 31, 20, 48)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
function Chunk:spawnObjects(x)
|
|
for i=1, 5 do
|
|
for j=1, 8 do
|
|
local id = self.data.objects[i][j]
|
|
if (id ~= 0) then
|
|
self.map.world:newObjFromIndex(id, x+(j-1)*31+12, (i-1)*20, 0)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
function Chunk:draw(x)
|
|
for i=1, 5 do
|
|
for j=1, 8 do
|
|
if (self.data.terrain[i][j] ~= 0) then
|
|
local tiley = (i-1)*20
|
|
local tilex = x + (j-1)*31 + (i-1)*10
|
|
local tileid = self.data.terrain[i][j]
|
|
|
|
self:drawTile(tilex, tiley, tileid)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
function Chunk:drawTile(x, y, type)
|
|
self.map.world.scene.assets.tileset["sptiles"]:drawTile(type, x, y)
|
|
end
|
|
|
|
return Chunk
|