summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTenPlus1 <kinsellaja@yahoo.com>2017-02-01 12:59:44 +0000
committerTenPlus1 <kinsellaja@yahoo.com>2017-02-01 12:59:44 +0000
commit6d059ef9803b691e3d0e4ebba94d79ebd9d4cd94 (patch)
treeee98a9b8e41e450be00bfe800285064e8576cb7d
parentc7ad42b8e539af969efc3b9626be6ba266716985 (diff)
add default mob egg to player inventory if 'force_take' true, otherwise save mob information inside of new egg
-rw-r--r--api.lua53
1 files changed, 32 insertions, 21 deletions
diff --git a/api.lua b/api.lua
index 193a00a..05732c1 100644
--- a/api.lua
+++ b/api.lua
@@ -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