Collision = {}
--[[
	Collision

	 [bool flag] isDisabled
		> if true used for collision

	 [bool flag] isColliding
		> if true, this collision is colliding

	 [vec2 position] from - x, y
	  > top right corner of collision box

	 [vec2 position] to - x, y
		> bottom left corner of collision box

	 [int property] width
		> width of collision box

	 [int property] height
		> height of collision box
--]]

-- can also be called with only ox and oy, where they become the width and height instead
function Collision:New(ox,oy,tx,ty)
	local o = {isColliding = false, isDisabled = false}

	if tx ~= nil and ty ~= nil then
		o.from = {x = ox, y = oy}
		o.to = {x = tx, y = ty}

		o.width = o.to.x - o.from.x
		o.height = o.to.y - o.from.y
	else
		o.width = ox
		o.height = oy

		o.from = {x = 0, y = 0}
		o.to = {x = 0, y = 0}
	end

	setmetatable(o, self)
	self.__index = self

	return o
end

function Collision:CenterAt(x, y)
	self.from.x = x-self.width/2
	self.from.y = y-self.height/2
	self.to.x = x+self.width/2
	self.to.y = y+self.height/2
end

function Collision:PlaceAt(x, y)
	self.from.x = x or self.from.x
	self.from.y = y or self.from.y
	self.to.x = self.from.x + self.width
	self.to.y = self.from.x + self.height
end

function Collision:Draw(color)
	if self.isColliding == true then
		love.graphics.setColor(0,1,0,0.5)
	elseif color == 1 then
		love.graphics.setColor(1,0,0,0.5)
	elseif color == 2 then
		love.graphics.setColor(0,1,1,0.5)
	end
	love.graphics.rectangle("fill",self.from.x-Camera.pos.x, self.from.y-Camera.pos.y, self.width, self.height)
	love.graphics.setColor(0,1,90,0.5)
	love.graphics.rectangle("line",self.from.x-Camera.pos.x, self.from.y-Camera.pos.y, self.width, self.height)
end
