From 8ef3b1d3798385631d8b59eb09436034d42e16f3 Mon Sep 17 00:00:00 2001 From: stujones11 Date: Sun, 17 Mar 2019 17:50:07 +0000 Subject: [PATCH] Make automatic firing a config option --- shooter/api.lua | 24 +++++++++++------------- shooter/init.lua | 14 ++++++++++++++ 2 files changed, 25 insertions(+), 13 deletions(-) diff --git a/shooter/api.lua b/shooter/api.lua index 6127e54..674fbf6 100644 --- a/shooter/api.lua +++ b/shooter/api.lua @@ -3,7 +3,8 @@ shooter = { } shooter.config = { - admin_weapons = true, + automatic_weapons = true, + admin_weapons = false, enable_blasting = false, enable_particle_fx = true, enable_protection = false, @@ -260,11 +261,13 @@ shooter.fire_weapon = function(player, itemstack, spec) if shots[name] and time <= shots[name] then return false end - if config.admin_weapons and minetest.check_player_privs(name, - {server=true}) then - spec.automatic = true + if config.automatic_weapons then + if config.admin_weapons and minetest.check_player_privs(name, + {server=true}) then + spec.automatic = true + end + shooting[name] = true end - shooting[name] = true spec.user = name fire_weapon(player, itemstack, spec) return true @@ -357,11 +360,6 @@ shooter.blast = function(pos, radius, fleshy, distance, user) end end -minetest.register_globalstep(function(dtime) - for _,player in pairs(minetest.get_connected_players()) do - local name = player:get_player_name() - if name then - shooting[name] = player:get_player_control().LMB == true - end - end -end) +shooter.set_shooting = function(name, is_shooting) + shooting[name] = is_shooting and true or nil +end diff --git a/shooter/init.lua b/shooter/init.lua index 136bd32..ca08b6c 100644 --- a/shooter/init.lua +++ b/shooter/init.lua @@ -54,3 +54,17 @@ minetest.register_entity("shooter:turret_entity", { self.object:remove() end, }) + +-- Automatic Firing + +if shooter.config.automatic_weapons == true then + minetest.register_globalstep(function(dtime) + for _,player in pairs(minetest.get_connected_players()) do + local name = player:get_player_name() + if name then + shooter.set_shooting(name, + player:get_player_control().LMB == true) + end + end + end) +end