scenes/levels: load entities from index
This commit is contained in:
parent
dcdbae749c
commit
61f15d6f67
|
@ -1,4 +0,0 @@
|
|||
return {
|
||||
["coin"] = {w = 16, h = 16},
|
||||
["block"] = {w = 16, h = 16},
|
||||
}
|
|
@ -1,8 +1,6 @@
|
|||
Datas = {}
|
||||
|
||||
Datas.levels = require "datas.levels"
|
||||
Datas.layers = require "datas.layers"
|
||||
Datas.entities = require "datas.entities"
|
||||
Datas.vpad = require "datas.vpad"
|
||||
|
||||
return Datas
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
return {
|
||||
"wall", "platform", "water"
|
||||
}
|
|
@ -27,8 +27,7 @@ function Level:loadEntities()
|
|||
end
|
||||
|
||||
function Level:addEntityByNameOnGrid(name, x, y, w, h)
|
||||
local layerdata = datas.entities
|
||||
local objWidth, objHeight = layerdata[name].w, layerdata[name].h
|
||||
local objWidth, objHeight = 16, 16
|
||||
local cellHor = math.ceil(w / objWidth)
|
||||
local cellVert = math.ceil(h / objHeight)
|
||||
for i=1, cellHor do
|
||||
|
@ -40,23 +39,11 @@ function Level:addEntityByNameOnGrid(name, x, y, w, h)
|
|||
end
|
||||
|
||||
function Level:addEntityByName(name, x, y)
|
||||
if name == "coin" then
|
||||
self.obj.Coin(self, x, y)
|
||||
end
|
||||
if name == "block" then
|
||||
self.obj.Block(self, x, y, 0)
|
||||
end
|
||||
self.obj.index[name](self, x, y)
|
||||
end
|
||||
|
||||
function Level:isEntityLayer(layername)
|
||||
local layerdata = datas.entities
|
||||
local isEntityLayer = false
|
||||
|
||||
if not (layerdata[layername] == nil) then
|
||||
isEntityLayer = true
|
||||
end
|
||||
|
||||
return isEntityLayer
|
||||
return (self.obj.index[layername] ~= nil)
|
||||
end
|
||||
|
||||
|
||||
|
@ -96,16 +83,7 @@ function Level:addCollision(x, y, w, h, name) -- Rajouter un block solide dans l
|
|||
end
|
||||
|
||||
function Level:isCollisionLayer(layername)
|
||||
layerdata = datas.layers
|
||||
local isCollisionLayer = false
|
||||
|
||||
for k, validname in pairs(layerdata) do
|
||||
if (layername == validname) then
|
||||
isCollisionLayer = true
|
||||
end
|
||||
end
|
||||
|
||||
return isCollisionLayer
|
||||
return (self.obj.collisions[layername] == true)
|
||||
end
|
||||
|
||||
function Level:addEntity(entity)
|
||||
|
|
|
@ -12,4 +12,16 @@ Obj.GFX = require "scenes.levels.entities.gfx"
|
|||
Obj.Debris = require "scenes.levels.entities.debris"
|
||||
Obj.Player = require "scenes.levels.entities.player"
|
||||
|
||||
Obj.index = {}
|
||||
|
||||
Obj.index["coin"] = Obj.Coin
|
||||
Obj.index["coin5"] = Obj.Coin5
|
||||
Obj.index["coin10"] = Obj.Coin10
|
||||
Obj.index["block"] = Obj.Block
|
||||
|
||||
Obj.collisions = {}
|
||||
Obj.collisions["wall"] = true
|
||||
Obj.collisions["water"] = true
|
||||
Obj.collisions["platform"] = true
|
||||
|
||||
return Obj
|
||||
|
|
Loading…
Reference in New Issue