diff --git a/cannon.lua b/cannon.lua index 45b07ce..acf514c 100644 --- a/cannon.lua +++ b/cannon.lua @@ -110,7 +110,9 @@ local register_spacecannon = function(def) mesecons = {effector = { action_on = function (pos) - spacecannon.fire(pos, def.color, def.speed, def.range) + local meta = minetest.get_meta(pos) + local owner = meta:get_string("owner") + spacecannon.fire(pos, owner, def.color, def.speed, def.range) end }}, @@ -175,7 +177,7 @@ local register_spacecannon = function(def) local meta = minetest.get_meta(pos) if fields.fire then - spacecannon.fire(pos, def.color, def.speed, def.range) + spacecannon.fire(pos, playername, def.color, def.speed, def.range) end if fields.set_digiline_channel and fields.digiline_channel then diff --git a/readme.md b/readme.md index 3429da6..2a29ed7 100644 --- a/readme.md +++ b/readme.md @@ -83,6 +83,15 @@ Example response from a "fire" request: } ``` +# Api + +Modify the ability to shoot depending on position or playername: +```lua +spacecannon.can_shoot = function(pos, playername) + return true +end +``` + # Contributors * @BuckarooBanzay diff --git a/util.lua b/util.lua index 3315dc7..9797614 100644 --- a/util.lua +++ b/util.lua @@ -28,7 +28,7 @@ spacecannon.update_formspec = function(meta) end spacecannon.can_shoot = function() - -- arguments: pos + -- arguments: pos, playername return true end @@ -37,9 +37,9 @@ spacecannon.can_destroy = function() return true end -spacecannon.fire = function(pos, color, speed, range) +spacecannon.fire = function(pos, playername, color, speed, range) - if not spacecannon.can_shoot(pos) then + if not spacecannon.can_shoot(pos, playername) then return end