]> git.lizzy.rs Git - Crafter.git/commitdiff
Extreme server cart test
authoroilboi <47129783+oilboi@users.noreply.github.com>
Sat, 4 Jul 2020 18:28:58 +0000 (14:28 -0400)
committeroilboi <47129783+oilboi@users.noreply.github.com>
Sat, 4 Jul 2020 18:28:58 +0000 (14:28 -0400)
mods/minecart/init.lua

index c42862ab3d178996ae44169925a02358617c35f2..3c67c663707553af4dc4a4d9093cd1d3ed8ef58d 100644 (file)
@@ -51,13 +51,15 @@ local function collision_detect(self)
                if object:is_player() then
                        local pos2 = object:get_pos()
                        if self.axis_lock == "x" then
-                               local velocity = (1-vector.distance(vector.new(pos.x,0,0),vector.new(pos2.x,0,0)))/10
+                               local velocity = (5-vector.distance(vector.new(pos.x,0,0),vector.new(pos2.x,0,0)))/10
+                               print(velocity)
                                local dir = vector.direction(vector.new(pos2.x,0,0),vector.new(pos.x,0,0))
                                --self.object:add_velocity(vector.multiply(dir,velocity))
                                self.velocity = vector.multiply(dir,velocity)
                                self.dir = dir
                        elseif self.axis_lock == "z" then
-                               local velocity = (1-vector.distance(vector.new(0,0,pos.z),vector.new(0,0,pos2.z)))/10
+                               local velocity = (5-vector.distance(vector.new(0,0,pos.z),vector.new(0,0,pos2.z)))/10
+                               print(velocity)
                                local dir = vector.direction(vector.new(0,0,pos2.z),vector.new(0,0,pos.z))
                                --self.object:add_velocity(vector.multiply(dir,velocity))
                                self.velocity = vector.multiply(dir,velocity)
@@ -150,8 +152,21 @@ minecart.on_step = function(self,dtime)
 
        if self.velocity then
                local new_vel = dtime/0.01
-               print(new_vel)
-               self.object:move_to(vector.add(float_pos,vector.multiply(self.velocity,new_vel)))
+               --print(new_vel)
+               local test = vector.multiply(self.velocity,new_vel)
+               print(dump(test))
+               if test.x >= 0.5 then
+                       test.x = 0.4999999999
+               elseif test.x <= -0.5 then
+                       test.x = -0.4999999999
+               end
+               if test.z >= 0.5 then
+                       test.z = 0.4999999999
+               elseif test.z <= -0.5 then
+                       test.z = -0.4999999999
+               end
+               self.object:move_to(vector.add(float_pos,test))
+               self.velocity = test
        end
 
        --stop minecarts from derailing when going super fast