Allow owned entities to be picked up by owners if spawnegg is registered

master
Jordan Irwin 2021-05-25 00:06:18 -07:00
parent 35d80b61a2
commit 1000562ed3
3 changed files with 40 additions and 1 deletions

View File

@ -12,6 +12,7 @@ revived-1.1
- does not automatically prepend colon (:) when registering a mob name
- option to set nametag
- griefing is disabled unless 'mobs_griefing' setting enabled
- owned entities can be picked up with mobs:lasso
revived-1.0

View File

@ -325,7 +325,45 @@ cmer.on_death = function(self, killer)
end
end
local pick_up_items = {
["mobs:lasso"] = true,
}
cmer.on_rightclick = function(self, clicker)
if pick_up_items[clicker:get_wielded_item():get_name()] then
-- spawneggs required for picking up
if not core.global_exists("asm") then return end
local pname = clicker:get_player_name()
local mname = "entity"
if self.nametag then
mname = self.nametag:lower()
end
local egg = asm.getEgg(self.name)
if not egg then
core.chat_send_player(pname, "This " .. mname .. " cannot be picked up.")
return
end
if not self.owner then
core.chat_send_player(pname, "You cannot pick up a wild " .. mname .. ".")
elseif pname ~= self.owner then
core.chat_send_player(pname, "You cannot pick up this " .. mname
.. " owned by " .. self.owner .. ".")
else
local stack = ItemStack(egg)
local pinv = clicker:get_inventory()
if not pinv:room_for_item("main", stack) then
core.chat_send_player(pname, "You do not have room in your inventory.")
return
end
self.object:remove()
pinv:add_item("main", stack)
end
end
end
cmer.on_step = function(self, dtime)

View File

@ -3,4 +3,4 @@ title = Creatures Revived
description = An API for creating mobs.
version = 1.1
depends = default
optional_depends = creatures
optional_depends = creatures, asm_spawneggs