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 = {}
|
||||||
mobs.mod = "redo"
|
mobs.mod = "redo"
|
||||||
@ -1848,6 +1848,14 @@ local mob_punch = function(self, hitter, tflp, tool_capabilities, dir)
|
|||||||
return
|
return
|
||||||
end
|
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
|
-- weapon wear
|
||||||
local weapon = hitter:get_wielded_item()
|
local weapon = hitter:get_wielded_item()
|
||||||
local punch_interval = 1.4
|
local punch_interval = 1.4
|
||||||
@ -2949,6 +2957,31 @@ function mobs:capture_mob(self, clicker, chance_hand, chance_net, chance_lasso,
|
|||||||
end
|
end
|
||||||
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_obj = {}
|
||||||
local mob_sta = {}
|
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
|
'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
|
Useful Internal Variables
|
||||||
|
|
||||||
'self.health' contains current health of mob
|
'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'},
|
{'', '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