added magic lasso to pick up animals

master
tenplus1 2015-04-11 17:40:13 +01:00
parent 91f5837e75
commit 48bd314741
11 changed files with 82 additions and 16 deletions

View File

@ -1,4 +1,4 @@
-- Mobs Api (10th April 2015)
-- Mobs Api (11th April 2015)
mobs = {}
mobs.mod = "redo"

View File

@ -36,9 +36,16 @@ mobs:register_mob("mobs:bee", {
walk_end = 65,
},
on_rightclick = function(self, clicker)
if clicker:is_player() and clicker:get_inventory() and clicker:get_inventory():room_for_item("main", "mobs:bee") then
local tool = clicker:get_wielded_item()
if tool:get_name() == "mobs:magic_lasso"
and clicker:is_player()
and clicker:get_inventory()
and self.child == false
and clicker:get_inventory():room_for_item("main", "mobs:bee") then
clicker:get_inventory():add_item("main", "mobs:bee")
self.object:remove()
item:add_wear(3000) -- 22 uses
clicker:set_wielded_item(tool)
end
end,
})

View File

@ -51,9 +51,15 @@ mobs:register_mob("mobs:bunny", {
return
end
if clicker:is_player() and clicker:get_inventory() and clicker:get_inventory():room_for_item("main", "mobs:bunny") then
if item:get_name() == "mobs:magic_lasso"
and clicker:is_player()
and clicker:get_inventory()
and self.child == false
and clicker:get_inventory():room_for_item("main", "mobs:bunny") then
clicker:get_inventory():add_item("main", "mobs:bunny")
self.object:remove()
item:add_wear(3000) -- 22 uses
clicker:set_wielded_item(item)
end
end,
})

View File

@ -70,12 +70,15 @@ mobs:register_mob("mobs:chicken", {
return
end
if clicker:is_player()
if tool:get_name() == "mobs:magic_lasso"
and clicker:is_player()
and clicker:get_inventory()
and self.child == false
and clicker:get_inventory():room_for_item("main", "mobs:chicken") then
clicker:get_inventory():add_item("main", "mobs:chicken")
self.object:remove()
item:add_wear(3000) -- 22 uses
clicker:set_wielded_item(tool)
end
end,
})

12
cow.lua
View File

@ -84,7 +84,17 @@ mobs:register_mob("mobs:cow", {
end
return
end
if tool:get_name() == "mobs:magic_lasso"
and clicker:is_player()
and clicker:get_inventory()
and self.child == false
and clicker:get_inventory():room_for_item("main", "mobs:cow") then
clicker:get_inventory():add_item("main", "mobs:cow")
self.object:remove()
item:add_wear(3000) -- 22 uses
clicker:set_wielded_item(tool)
end
end,
})

View File

@ -52,3 +52,19 @@ minetest.register_craft({
if minetest.setting_get("log_mods") then
minetest.log("action", "mobs loaded")
end
-- Golden Lasso
minetest.register_tool("mobs:magic_lasso", {
description = "Magic Lasso (right-click animal to put in inventory)",
inventory_image = "mobs_magic_lasso.png",
})
minetest.register_craft({
output = "mobs:magic_lasso",
recipe = {
{"farming:string", "default:gold_lump", "farming:string"},
{"default:gold_lump", "default:diamondblock", "default:gold_lump"},
{"farming:string", "default:gold_lump", "farming:string"},
}
})

View File

@ -53,11 +53,15 @@ mobs:register_mob("mobs:kitten", {
return
end
if clicker:is_player()
if item:get_name() == "mobs:magic_lasso"
and clicker:is_player()
and clicker:get_inventory()
and self.child == false
and clicker:get_inventory():room_for_item("main", "mobs:kitten") then
clicker:get_inventory():add_item("main", "mobs:kitten")
self.object:remove()
item:add_wear(3000) -- 22 uses
clicker:set_wielded_item(item)
end
end,
})

View File

@ -24,11 +24,16 @@ mobs:register_mob("mobs:rat", {
lava_damage = 4,
light_damage = 0,
on_rightclick = function(self, clicker)
if clicker:is_player()
local tool = clicker:get_wielded_item()
if tool:get_name() == "mobs:magic_lasso"
and clicker:is_player()
and clicker:get_inventory()
and self.child == false
and clicker:get_inventory():room_for_item("main", "mobs:rat") then
clicker:get_inventory():add_item("main", "mobs:rat")
self.object:remove()
item:add_wear(3000) -- 22 uses
clicker:set_wielded_item(tool)
end
end,
})

View File

@ -80,7 +80,7 @@ mobs:register_mob("mobs:sheep", {
if obj then
obj:setvelocity({x=math.random(-1,1), y=5, z=math.random(-1,1)})
end
item:add_wear(65535/100)
item:add_wear(650) -- 100 uses
clicker:set_wielded_item(item)
end
self.object:set_properties({
@ -88,6 +88,18 @@ mobs:register_mob("mobs:sheep", {
mesh = "mobs_sheep_shaved.x",
})
end
if item:get_name() == "mobs:magic_lasso"
and clicker:is_player()
and clicker:get_inventory()
and self.child == false
and clicker:get_inventory():room_for_item("main", "mobs:sheep") then
clicker:get_inventory():add_item("main", "mobs:sheep")
self.object:remove()
item:add_wear(3000) -- 22 uses
print ("wear", item:get_wear())
clicker:set_wielded_item(item)
end
end,
})
@ -99,14 +111,6 @@ mobs:register_egg("mobs:sheep", "Sheep", "wool_white.png", 1)
minetest.register_tool("mobs:shears", {
description = "Steel Shears (right-click sheep to shear)",
inventory_image = "mobs_shears.png",
tool_capabilities = {
full_punch_interval = 1,
max_drop_level=1,
groupcaps={
snappy={times={[1]=2.5, [2]=1.20, [3]=0.35}, uses=30, maxlevel=2},
},
damage_groups = {fleshy=0},
}
})
minetest.register_craft({

Binary file not shown.

After

Width:  |  Height:  |  Size: 176 B

View File

@ -61,6 +61,17 @@ mobs:register_mob("mobs:pumba", {
end
return
end
if item:get_name() == "mobs:magic_lasso"
and clicker:is_player()
and clicker:get_inventory()
and self.child == false
and clicker:get_inventory():room_for_item("main", "mobs:pumba") then
clicker:get_inventory():add_item("main", "mobs:pumba")
self.object:remove()
item:add_wear(3000) -- 22 uses
clicker:set_wielded_item(item)
end
end,
})