diff options
author | TenPlus1 <kinsellaja@yahoo.com> | 2017-02-01 12:59:44 +0000 |
---|---|---|
committer | TenPlus1 <kinsellaja@yahoo.com> | 2017-02-01 12:59:44 +0000 |
commit | 6d059ef9803b691e3d0e4ebba94d79ebd9d4cd94 (patch) | |
tree | ee98a9b8e41e450be00bfe800285064e8576cb7d /api.lua | |
parent | c7ad42b8e539af969efc3b9626be6ba266716985 (diff) |
add default mob egg to player inventory if 'force_take' true, otherwise save mob information inside of new egg
Diffstat (limited to 'api.lua')
-rw-r--r-- | api.lua | 53 |
1 files changed, 32 insertions, 21 deletions
@@ -1,5 +1,5 @@ --- Mobs Api (31st January 2017) +-- Mobs Api (1st February 2017) mobs = {} mobs.mod = "redo" @@ -3162,27 +3162,38 @@ function mobs:capture_mob(self, clicker, chance_hand, chance_net, chance_lasso, -- calculate chance.. add to inventory if successful? if random(1, 100) <= chance then --- add special mob egg containing all mob information -local new_stack = ItemStack(mobname .. "_set") -local tmp = {} -for _,stat in pairs(self) do - local t = type(stat) - if t ~= 'function' - and t ~= 'nil' - and t ~= 'userdata' then - tmp[_] = self[_] - end -end -local data_str = minetest.serialize(tmp) -local inv = clicker:get_inventory() -new_stack:set_metadata(data_str) -if inv:room_for_item("main", new_stack) then - inv:add_item("main", new_stack) -else - minetest.add_item(clicker:getpos(), new_stack) -end + -- default mob egg + local new_stack = ItemStack(mobname) + + -- add special mob egg with all mob information + -- unless 'force_take' is true for craftitems only + if not force_take then + + new_stack = ItemStack(mobname .. "_set") + + local tmp = {} + + for _,stat in pairs(self) do + local t = type(stat) + if t ~= 'function' + and t ~= 'nil' + and t ~= 'userdata' then + tmp[_] = self[_] + end + end + + local data_str = minetest.serialize(tmp) + + new_stack:set_metadata(data_str) + end + + local inv = clicker:get_inventory() --- clicker:get_inventory():add_item("main", mobname) + if inv:room_for_item("main", new_stack) then + inv:add_item("main", new_stack) + else + minetest.add_item(clicker:getpos(), new_stack) + end self.object:remove() else |