forked from mtcontrib/mobs_redo
added ability to protect tamed mobs
This commit is contained in:
parent
c16c083d31
commit
127dad97a7
35
api.lua
35
api.lua
@ -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 = {}
|
||||
|
||||
|
8
api.txt
8
api.txt
@ -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
|
||||
|
15
crafts.lua
15
crafts.lua
@ -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
BIN
textures/mobs_protector.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 164 B |
Loading…
Reference in New Issue
Block a user