From 1cd6b661c60446f6093c3c6d92cb9a0cce0f7433 Mon Sep 17 00:00:00 2001 From: Och Noe Date: Sun, 2 Feb 2020 20:25:24 +0100 Subject: Limit the speed near the target positition --- init.lua | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/init.lua b/init.lua index b2eb03e..d95360f 100644 --- a/init.lua +++ b/init.lua @@ -50,8 +50,15 @@ elevator.create_box = function(motorhash, pos, target, sender) obj:get_luaentity().target = target obj:get_luaentity().halfway = {x=pos.x, y=(pos.y+target.y)/2, z=pos.z} obj:get_luaentity().vmult = (target.y < pos.y) and -1 or 1 + -- FIX for "overshooting" + local delta_y = math.abs(pos.y-target.y) + local speed = elevator.SPEED + if (delta_y<10) then + speed = 2 + end + -- Set the speed. - obj:setvelocity({x=0, y=elevator.SPEED*obj:get_luaentity().vmult, z=0}) + obj:setvelocity({x=0, y=speed*obj:get_luaentity().vmult, z=0}) obj:setacceleration({x=0, y=elevator.ACCEL*obj:get_luaentity().vmult, z=0}) -- Set the tables. elevator.boxes[motorhash] = obj -- cgit v1.2.3