Object = {class = "Object"}


function Object:new2d(name,texture,x,y,z,scalex,scaley)
	o = {
		-- basic model data
		name = name or "",
		pos = {x,y,z},
		model = g3d.newModel("assets/objects/vertical_plane.obj",texture, {x,y,z} or {0,0,0}, {0,0,0}, {scalex,scaley,0} or {16,16,0}),
		shadow = g3d.newModel("assets/objects/horizontal_plane.obj",img.effects.shadow,{x,y+0.5,z} or {0,0,0},{0,0,0},{16,16,16}),
	
		-- 2D
		rotate_mode = "cam_xz",
		
		-- animation
		is_animated = false
	}
		
	o.model:makeNormals()
	setmetatable(o, self)
	self.__index = self
	return o
end
 
function Object:new2DAnimated(name,texture,x,y,z,scalex,scaley,apath,frames,speed)
	o = {
		-- basic model data
		name = name or "",
		pos = {x,y,z},
		model = g3d.newModel("assets/objects/vertical_plane.obj",texture, {x,y,z} or {0,0,0}, {0,0,0}, {scalex,scaley,0} or {16,16,0}),
		shadow = g3d.newModel("assets/objects/horizontal_plane.obj",img.effects.shadow,{x,y+0.5,z} or {0,0,0},{0,0,0},{16,16,16}),
		-- 2D
		rotate_mode = "cam_xz",
		
		-- animation
		is_animated = true,
		anim_path = nil,
		anim_frames = 1,
		anim_frame = 1,
		anim_subframe = 1,
		anim_speed = 1,
		anim_imgs = {}
	}
		
	o.model:makeNormals()
	setmetatable(o, self)
	self.__index = self
	return o
end

function load_animation(o,path,frames,speed)
	o.anim_path = path or nil
	o.anim_frames = frames or 4
	o.anim_speed = speed or frames
	
	if o.anim_path ~= nil then for i = 1, o.anim_frames, 1 do
		table.insert(o.anim_imgs,love.graphics.newImage(o.anim_path..tostring(i)..".png"))
	end end
end