2022-01-22 22:10:21 +00:00
|
|
|
LoadedObjects = {
|
|
|
|
Entities = {},
|
2021-10-16 23:06:11 +00:00
|
|
|
|
2022-01-22 22:10:21 +00:00
|
|
|
Collisions = {},
|
|
|
|
Platforms = {},
|
2022-02-10 14:53:50 +00:00
|
|
|
Ladders = {},
|
|
|
|
Hazards = {}
|
2021-10-16 23:06:11 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
-- level functions
|
2022-01-22 22:10:21 +00:00
|
|
|
function LoadedObjects.DrawCollisions()
|
|
|
|
for _, platform in pairs(LoadedObjects.Platforms) do
|
|
|
|
if platform.disable == true then platform:Draw(2) end
|
|
|
|
if platform.disable == false then platform:Draw(1) end
|
2021-10-16 23:06:11 +00:00
|
|
|
end
|
|
|
|
|
2022-01-22 22:10:21 +00:00
|
|
|
for _, ladder in pairs(LoadedObjects.Ladders) do
|
2021-10-16 23:06:11 +00:00
|
|
|
ladder:Draw(2)
|
|
|
|
end
|
2022-02-10 14:53:50 +00:00
|
|
|
|
|
|
|
for _, hazard in pairs(LoadedObjects.Hazards) do
|
|
|
|
hazard:Draw(1)
|
|
|
|
end
|
2021-10-16 23:06:11 +00:00
|
|
|
end
|
|
|
|
|
2022-02-08 07:22:27 +00:00
|
|
|
-- returns true if theres a collision at that point
|
2021-11-28 02:38:30 +00:00
|
|
|
function isThereObjectAt(x,y,objectType)
|
2022-02-17 22:39:31 +00:00
|
|
|
for _, object in pairs(objectType) do
|
|
|
|
if object.disable then
|
2022-02-05 11:38:08 +00:00
|
|
|
-- Dont calculate if dissabled
|
2022-02-17 22:39:31 +00:00
|
|
|
elseif x >= object.from.x
|
|
|
|
and x <= object.to.x
|
|
|
|
and y >= object.from.y
|
|
|
|
and y <= object.to.y then
|
|
|
|
object.isColliding = true
|
2022-02-05 11:38:08 +00:00
|
|
|
return true
|
2021-10-16 23:06:11 +00:00
|
|
|
end
|
|
|
|
end
|
2022-02-05 11:38:08 +00:00
|
|
|
return false
|
2021-10-16 23:06:11 +00:00
|
|
|
end
|
|
|
|
|
2022-02-17 22:39:31 +00:00
|
|
|
function isThereCollisionAt(x,y)
|
|
|
|
if x >= 0 and x < #CollisionTable
|
|
|
|
and y >= 0 and y < #CollisionTable[0] then
|
|
|
|
return CollisionTable[math.floor(y)][math.floor(x)]
|
2022-02-08 07:22:27 +00:00
|
|
|
end
|
2022-02-17 22:39:31 +00:00
|
|
|
return false
|
2021-10-16 23:06:11 +00:00
|
|
|
end
|
2022-02-08 07:22:27 +00:00
|
|
|
|
2021-10-16 23:06:11 +00:00
|
|
|
-- flags
|
2022-02-08 07:22:27 +00:00
|
|
|
function SetCollisionFlags()
|
|
|
|
local Check = {
|
|
|
|
LoadedObjects.Collisions,
|
|
|
|
LoadedObjects.Ladders,
|
2022-02-10 14:53:50 +00:00
|
|
|
LoadedObjects.Platforms,
|
|
|
|
LoadedObjects.Hazards
|
2022-02-08 07:22:27 +00:00
|
|
|
}
|
|
|
|
for _, type in pairs(Check) do
|
|
|
|
for _, object in pairs(type) do
|
|
|
|
object.isColliding = false
|
|
|
|
end
|
2021-10-16 23:06:11 +00:00
|
|
|
end
|
2022-01-22 22:10:21 +00:00
|
|
|
for _, platform in pairs(LoadedObjects.Platforms) do
|
2022-02-08 07:22:27 +00:00
|
|
|
if main_Player.pos.y < platform.from.y then
|
2022-01-22 22:10:21 +00:00
|
|
|
platform.disable = false
|
2021-10-16 23:06:11 +00:00
|
|
|
else
|
2022-01-22 22:10:21 +00:00
|
|
|
platform.disable = true
|
2021-10-16 23:06:11 +00:00
|
|
|
end
|
|
|
|
end
|
2022-02-10 14:53:50 +00:00
|
|
|
for _, platform in pairs(LoadedObjects.Hazards) do
|
|
|
|
if main_Player.isOnGround then
|
|
|
|
platform.disable = true
|
|
|
|
else
|
|
|
|
platform.disable = false
|
|
|
|
end
|
|
|
|
end
|
2021-10-16 23:06:11 +00:00
|
|
|
end
|