Allow on_hit to override builtin damage
This commit is contained in:
parent
4a9bf8fc6e
commit
2f5d046472
2 changed files with 7 additions and 4 deletions
|
@ -150,6 +150,7 @@ Used by `shooter.register_weapon`
|
|||
},
|
||||
on_hit = function(pointed_thing, spec, dir)
|
||||
-- May be used for arbitary shot effects like knock-back, etc.
|
||||
-- Return `true` to override built-in damage effects
|
||||
end,
|
||||
spec = {
|
||||
-- Weapon specifications
|
||||
|
|
|
@ -206,6 +206,12 @@ shooter.is_valid_object = function(object)
|
|||
end
|
||||
|
||||
local function process_hit(pointed_thing, spec, dir)
|
||||
local def = minetest.registered_items[spec.name] or {}
|
||||
if type(def.on_hit) == "function" then
|
||||
if def.on_hit(pointed_thing, spec, dir) == true then
|
||||
return
|
||||
end
|
||||
end
|
||||
if pointed_thing.type == "node" and config.allow_nodes == true then
|
||||
local pos = minetest.get_pointed_thing_position(pointed_thing, false)
|
||||
shooter.punch_node(pos, spec)
|
||||
|
@ -223,10 +229,6 @@ local function process_hit(pointed_thing, spec, dir)
|
|||
end
|
||||
end
|
||||
end
|
||||
local def = minetest.registered_items[spec.name] or {}
|
||||
if type(def.on_hit) == "function" then
|
||||
return def.on_hit(pointed_thing, spec, dir)
|
||||
end
|
||||
end
|
||||
|
||||
local function process_round(round)
|
||||
|
|
Loading…
Reference in a new issue