+local function coupling_logic(self)
+
+ if not self.axis_lock then return end
+
+ if not self.coupler1 then return end
+
+ if not self.dir.y == 0 then print("failing") return end
+
+ local pos = self.object:get_pos()
+
+ local pos2 = self.coupler1:get_pos()
+
+ if self.axis_lock == "x" then
+ --local velocity = self.object:get_velocity()
+
+ local distance = 1-vector.distance(pos,pos2)
+
+ local dir = vector.direction(vector.new(pos2.x,0,0),vector.new(pos.x,0,0))
+
+ local new_vel = vector.multiply(dir,distance)
+ self.object:add_velocity(new_vel)
+ --self.dir = dir
+ --[[
+ elseif self.axis_lock == "z" then
+ local velocity = self.object:get_velocity()
+ local velocity = (1-vector.distance(pos,pos2))
+ local dir = vector.direction(vector.new(0,0,pos2.z),vector.new(0,0,pos.z))
+ local new_vel = vector.multiply(dir,velocity)
+ self.object:add_velocity(new_vel)
+ --self.dir = dir
+ ]]--
+ end
+ return
+end