added ability to protect tamed mobs

This commit is contained in:
TenPlus1 2016-11-08 16:11:00 +00:00
parent c16c083d31
commit 127dad97a7
4 changed files with 57 additions and 1 deletions

35
api.lua
View File

@ -1,5 +1,5 @@
-- Mobs Api (31st October 2016)
-- Mobs Api (8th November 2016)
mobs = {}
mobs.mod = "redo"
@ -1848,6 +1848,14 @@ local mob_punch = function(self, hitter, tflp, tool_capabilities, dir)
return
end
-- is mob protected?
if self.protected
and minetest.is_protected(self.object:getpos(), hitter:get_player_name()) then
minetest.chat_send_player(hitter:get_player_name(), "Mob has been protected!")
return
end
-- weapon wear
local weapon = hitter:get_wielded_item()
local punch_interval = 1.4
@ -2949,6 +2957,31 @@ function mobs:capture_mob(self, clicker, chance_hand, chance_net, chance_lasso,
end
end
-- protect tamed mob with rune iten
function mobs:protect(self, clicker)
if self.tamed == false then
minetest.chat_send_player(name, S("Not tamed!"))
return false
end
local tool = clicker:get_wielded_item()
local name = clicker:get_player_name()
if tool:get_name() == "mobs:protector" then
tool:take_item() -- take 1 protection rune
clicker:set_wielded_item(tool)
self.protected = true
minetest.chat_send_player(name, S("Protected!"))
return true
end
return false
end
local mob_obj = {}
local mob_sta = {}

View File

@ -240,6 +240,14 @@ This function allows the mob to be fed the item inside self.follow be it apple,
'tame' true or false stating if mob can be tamed so player can pick them up
mobs:protect(self, clicker)
This function can be used to right-click any tamed mob with mobs:protector item, this will protect the mob from harm inside of a protected area from other players.
'self' mob information
'clicker' player information
Useful Internal Variables
'self.health' contains current health of mob

View File

@ -83,3 +83,18 @@ minetest.register_craft({
{'', 'group:stick', 'default:steel_ingot'},
}
})
-- protection rune
minetest.register_craftitem("mobs:protector", {
description = S("Mob Protection Rune"),
inventory_image = "mobs_protector.png",
})
minetest.register_craft({
output = "mobs:protector",
recipe = {
{"default:stone", "default:stone", "default:stone"},
{"default:stone", "default:goldblock", "default:stone"},
{"default:stone", "default:stone", "default:stone"},
}
})

BIN
textures/mobs_protector.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 B