-- Sheep by PilzAdam; tweaked for Pixture by KaadmY local S = minetest.get_translator("mobs") mobs:register_mob( "mobs:sheep", { type = "animal", passive = true, hp_min = 10, hp_max = 14, breath_max = 5, armor = 200, collisionbox = {-0.5, -1, -0.5, 0.5, 0.1, 0.5}, visual = "mesh", mesh = "mobs_sheep.x", visual_size = {x = 1, y = 1}, textures = { {"mobs_sheep.png"}, }, gotten_texture = {"mobs_sheep_shaved.png"}, -- gotten_mesh = "mobs_sheep.x", makes_footstep_sound = true, sounds = { random = "mobs_sheep", death = "mobs_sheep", damage = "mobs_sheep", eat = "mobs_eat", distance = 16, }, walk_velocity = 1, walk_chance = 150, jump = false, jump_height = 5, drops = { {name = "mobs:meat_raw", chance = 1, min = 2, max = 4}, {name = "mobs:wool", chance = 1, min = 1, max = 2}, }, water_damage = 0, lava_damage = 5, light_damage = 0, animation = { speed_normal = 15, speed_run = 25, stand_start = 0, stand_end = 60, walk_start = 61, walk_end = 80, }, follow = "farming:wheat", view_range = 5, replace_rate = 50, replace_what = { "default:grass", "default:tall_grass", "farming:wheat_3", "farming:wheat_4" }, replace_with = "air", replace_offset = -1, on_replace = function(self, pos) minetest.set_node(pos, {name = self.replace_with}) if mobs:feed_tame(self, self.follow, 8, false, false) then if self.gotten == false then self.object:set_properties( { textures = {"mobs_sheep.png"}, mesh = "mobs_sheep.x", }) end end end, on_rightclick = function(self, clicker) -- Are we feeding? if mobs:feed_tame(self, clicker, 8, true) then -- If full grow, add fuzz if self.gotten == false then self.object:set_properties( { textures = {"mobs_sheep.png"}, mesh = "mobs_sheep.x", }) end return end local item = clicker:get_wielded_item() local itemname = item:get_name() -- Are we giving a haircut? if minetest.get_item_group(itemname, "shears") > 0 then if self.gotten == false and self.child == false then self.gotten = true -- shaved local pos = self.object:get_pos() pos.y = pos.y + 0.5 local obj = minetest.add_item(pos, ItemStack("mobs:wool")) minetest.sound_play({name = "default_shears_cut", gain = 0.5}, {pos = clicker:get_pos(), max_hear_distance = 8}, true) if obj then obj:set_velocity( { x = math.random(-1,1), y = 5, z = math.random(-1,1) }) end if not minetest.settings:get_bool("creative_mode") then local def = item:get_definition() local cuts = minetest.get_item_group(itemname, "sheep_cuts") if cuts > 0 then item:add_wear(math.floor(65535 / cuts)) else item:add_wear(math.floor(65535 / def.tool_capabilities.snappy.uses)) end end clicker:set_wielded_item(item) self.object:set_properties( { textures = {"mobs_sheep_shaved.png"}, mesh = "mobs_sheep.x", }) end return end -- Are we capturing? mobs:capture_mob(self, clicker, 0, 5, 60, false, nil) end, }) mobs:register_spawn( "mobs:sheep", { "default:dirt_with_grass" }, 20, 10, 15000, 1, 31000 ) mobs:register_egg("mobs:sheep", S("Sheep"), "mobs_sheep_inventory.png")