From 48bd3147416afb85518f22670ebf00d36540f72c Mon Sep 17 00:00:00 2001 From: tenplus1 Date: Sat, 11 Apr 2015 17:40:13 +0100 Subject: [PATCH] added magic lasso to pick up animals --- api.lua | 2 +- bee.lua | 9 ++++++++- bunny.lua | 8 +++++++- chicken.lua | 5 ++++- cow.lua | 12 +++++++++++- init.lua | 16 ++++++++++++++++ kitten.lua | 6 +++++- rat.lua | 7 ++++++- sheep.lua | 22 +++++++++++++--------- textures/mobs_magic_lasso.png | Bin 0 -> 176 bytes warthog.lua | 11 +++++++++++ 11 files changed, 82 insertions(+), 16 deletions(-) create mode 100644 textures/mobs_magic_lasso.png diff --git a/api.lua b/api.lua index 027e019..7cd860f 100644 --- a/api.lua +++ b/api.lua @@ -1,4 +1,4 @@ --- Mobs Api (10th April 2015) +-- Mobs Api (11th April 2015) mobs = {} mobs.mod = "redo" diff --git a/bee.lua b/bee.lua index ad954ac..fa7e52a 100644 --- a/bee.lua +++ b/bee.lua @@ -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, }) diff --git a/bunny.lua b/bunny.lua index 9233713..c860075 100644 --- a/bunny.lua +++ b/bunny.lua @@ -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, }) diff --git a/chicken.lua b/chicken.lua index 008bf47..633c05d 100644 --- a/chicken.lua +++ b/chicken.lua @@ -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, }) diff --git a/cow.lua b/cow.lua index 92225cd..4f998cc 100644 --- a/cow.lua +++ b/cow.lua @@ -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, }) diff --git a/init.lua b/init.lua index 03baf31..811eea3 100644 --- a/init.lua +++ b/init.lua @@ -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"}, + } +}) diff --git a/kitten.lua b/kitten.lua index a16a1f5..bd681bb 100755 --- a/kitten.lua +++ b/kitten.lua @@ -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, }) diff --git a/rat.lua b/rat.lua index 2858854..69ba540 100644 --- a/rat.lua +++ b/rat.lua @@ -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, }) diff --git a/sheep.lua b/sheep.lua index 358102c..a918749 100644 --- a/sheep.lua +++ b/sheep.lua @@ -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({ diff --git a/textures/mobs_magic_lasso.png b/textures/mobs_magic_lasso.png new file mode 100644 index 0000000000000000000000000000000000000000..befdc1120684c7281b1edb8129b302e9beb402b5 GIT binary patch literal 176 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPHV5AX?b6=Yxt^*32FFY4T(w)@vs zl%$(^0;L#Bg8YIR9G=}s19JR5T^vI=u7~zs