rawf/init.lua

43 lines
1000 B
Lua
Raw Permalink Normal View History

2021-06-28 19:07:19 -07:00
local api = {}
local MODNAME = minetest.get_current_modname()
rawset(_G, MODNAME, api)
local files = {
"bullet.lua",
"ammo.lua"
}
2021-06-28 19:29:03 -07:00
2021-06-28 19:07:19 -07:00
for _, file in ipairs(files) do
dofile(minetest.get_modpath(MODNAME).."/"..file)
end
2021-06-29 09:04:11 -07:00
local checking = {}
2021-07-03 17:24:28 -07:00
-- Returns false if the automatic timer is currently running, returns true otherwise
2021-06-29 09:04:11 -07:00
function api.enable_automatic(fire_interval, itemstack, user)
local pname = user:get_player_name()
2021-07-03 17:24:28 -07:00
if checking[pname] then return false end
2021-06-29 09:04:11 -07:00
checking[pname] = minetest.after(fire_interval, function()
checking[pname] = nil
if user and user:get_player_control().LMB then
local wielded = user:get_wielded_item()
if wielded:get_name() == itemstack:get_name() then
user:set_wielded_item(itemstack:get_definition().on_use(wielded, user, {type = "nothing"}) or wielded)
end
end
end)
2021-07-03 17:24:28 -07:00
return true
2021-06-29 09:04:11 -07:00
end
minetest.register_on_leaveplayer(function(player)
local pname = player:get_player_name()
if checking[pname] then
checking[pname]:cancel()
end
end)