diff --git a/api/common.lua b/api/common.lua index 8b01966..8342e39 100644 --- a/api/common.lua +++ b/api/common.lua @@ -41,6 +41,15 @@ function industrialtest.internal.clamp(num,min,max) return math.max(math.min(num,max),min) end +function industrialtest.internal.addYVelocityClamped(player,vel,max) + local playerVel=player:get_velocity() + if playerVel.y+vel>max then + player:add_velocity(vector.new(0,math.max(max-playerVel.y,0),0)) + else + player:add_velocity(vector.new(0,vel,0)) + end +end + function industrialtest.internal.unpackTableInto(first,second) for k,v in pairs(second) do first[k]=v diff --git a/tools/jetpack.lua b/tools/jetpack.lua index 2c84a00..46b51fc 100644 --- a/tools/jetpack.lua +++ b/tools/jetpack.lua @@ -25,7 +25,7 @@ function industrialtest.JetpackBase.update(self, player, inv, itemstack, dtime) local playerName = player:get_player_name() local control = player:get_player_control() if control.jump and self:tryFly(itemstack) then - self.addYVelocityClamped(player,1,10) + industrialtest.internal.addYVelocityClamped(player,1,10) if not soundHandles[playerName] then local pos = player:get_pos() local handle = minetest.sound_play("industrialtest_jetpack_loop", { @@ -47,15 +47,6 @@ function industrialtest.JetpackBase.update(self, player, inv, itemstack, dtime) return false end -function industrialtest.JetpackBase.addYVelocityClamped(player,vel,max) - local playerVel=player:get_velocity() - if playerVel.y+vel>max then - player:add_velocity(vector.new(0,math.max(max-playerVel.y,0),0)) - else - player:add_velocity(vector.new(0,vel,0)) - end -end - industrialtest.Jetpack=table.copy(industrialtest.JetpackBase) industrialtest.internal.unpackTableInto(industrialtest.Jetpack,{ -- _v is hack to suppress "Registered armor doesn't have material at the end of registration name" warning from 3D Armor. diff --git a/tools/quantum_suit.lua b/tools/quantum_suit.lua index 1f26078..0ca5e56 100644 --- a/tools/quantum_suit.lua +++ b/tools/quantum_suit.lua @@ -87,7 +87,7 @@ industrialtest.internal.unpackTableInto(industrialtest.QuantumBodyarmor,{ part="torso", modelImage="industrialtest_quantum_bodyarmor.png", update=industrialtest.JetpackBase.update, - addYVelocityClamped=industrialtest.JetpackBase.addYVelocityClamped, + addYVelocityClamped=industrialtest.internal.addYVelocityClamped, tryFly=industrialtest.ElectricJetpack.tryFly })