Entity = class("Entity")

function Entity:initialize(t)
	self.x, self.y = t.x, t.y
	self.gridSize = {x = t.sizeX, y = t.sizeY}
	self.color = Color:new(t.color)
	self.collision = t.collision --either "none", "moveable", "unmoveable"
	self.sprite = t.sprite
end

function Entity:atGridPos(x, y)
	if x >= self.x and x <= self.x + self.gridSize.x and
	  y >= self.y and y <= self.gridSize.y then
	  return true
	end
	return false
end

function Entity:getGridPos()
	return {x = self.x, y = self.y}
end

function Entity:getDrawPos()
	local gridPos = self:getGridPos()
	return {
		x = (gridPos.x - 1) * width / gridWidth,
		y = (gridPos.y - 1) * height / gridHeight
	}
end

function Entity:draw()
	love.graphics.setColor(self.color:set())
	local p = self:getDrawPos()
	love.graphics.draw(self.sprite, p.x, p.y, 0, drawScale, drawScale)
end

function Entity:isAlignedWithPlayerMovement(axis, pos)
	if self:getGridPos()[axis] == pos then
		return true
	end
	return false
end

function Entity:canMove()
	if self.collision == "unmoveable" then
		return false
	end
	return true
end


function Entity:move(axis, direction)
	self[axis] = self[axis] + direction
end

function Entity:push(direction)

end