diff --git a/mods/ITEMS/mcl_fireworks/register.lua b/mods/ITEMS/mcl_fireworks/register.lua index cb8d89e58..cce36042a 100644 --- a/mods/ITEMS/mcl_fireworks/register.lua +++ b/mods/ITEMS/mcl_fireworks/register.lua @@ -1,5 +1,7 @@ local S = minetest.get_translator("mcl_fireworks") +player_rocketing = {} + local help = S("Flight Duration:") local description = S("Firework Rocket") local rocket_sound = function() @@ -12,13 +14,17 @@ minetest.register_craftitem("mcl_fireworks:rocket_1", { inventory_image = "mcl_fireworks_rocket.png", stack_max = 64, on_use = function(itemstack, user, pointed_thing) - itemstack:take_item() - local torso = user:get_inventory():get_stack("armor", 3) - if torso and torso:get_name() == "mcl_armor:elytra" then - user:add_player_velocity(vector.multiply(user:get_look_dir(), 20)) - rocket_sound() - end - return itemstack + local torso = user:get_inventory():get_stack("armor", 3) + if torso and torso:get_name() == "mcl_armor:elytra" and player_rocketing[user] ~= true then + player_rocketing[user] = true + minetest.after(2.2, function() + player_rocketing[user] = false + end) + itemstack:take_item() + --user:add_player_velocity(vector.multiply(user:get_look_dir(), 20)) + rocket_sound() + end + return itemstack end, }) @@ -28,13 +34,17 @@ minetest.register_craftitem("mcl_fireworks:rocket_2", { inventory_image = "mcl_fireworks_rocket.png", stack_max = 64, on_use = function(itemstack, user, pointed_thing) - itemstack:take_item() - local torso = user:get_inventory():get_stack("armor", 3) - if torso and torso:get_name() == "mcl_armor:elytra" then - user:add_player_velocity(vector.multiply(user:get_look_dir(), 30)) - rocket_sound() - end - return itemstack + local torso = user:get_inventory():get_stack("armor", 3) + if torso and torso:get_name() == "mcl_armor:elytra" and player_rocketing[user] ~= true then + player_rocketing[user] = true + minetest.after(4.5, function() + player_rocketing[user] = false + end) + itemstack:take_item() + --user:add_player_velocity(vector.multiply(user:get_look_dir(), 20)) + rocket_sound() + end + return itemstack end, }) @@ -43,13 +53,17 @@ minetest.register_craftitem("mcl_fireworks:rocket_3", { _tt_help = help.." 3", inventory_image = "mcl_fireworks_rocket.png", stack_max = 64, - on_use = function(itemstack, user, pointed_thing, player) - itemstack:take_item() - local torso = user:get_inventory():get_stack("armor", 3) - if torso and torso:get_name() == "mcl_armor:elytra" then - user:add_player_velocity(vector.multiply(user:get_look_dir(), 40)) - rocket_sound() - end - return itemstack + on_use = function(itemstack, user, pointed_thing) + local torso = user:get_inventory():get_stack("armor", 3) + if torso and torso:get_name() == "mcl_armor:elytra" and player_rocketing[user] ~= true then + player_rocketing[user] = true + minetest.after(6, function() + player_rocketing[user] = false + end) + itemstack:take_item() + --user:add_player_velocity(vector.multiply(user:get_look_dir(), 20)) + rocket_sound() + end + return itemstack end, })