Initial Animals upload
							
								
								
									
										185
									
								
								bee.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,185 @@
 | 
			
		||||
 | 
			
		||||
-- Bee by KrupnoPavel
 | 
			
		||||
 | 
			
		||||
mobs:register_mob("mobs_animal:bee", {
 | 
			
		||||
	type = "animal",
 | 
			
		||||
	passive = true,
 | 
			
		||||
	hp_min = 1,
 | 
			
		||||
	hp_max = 2,
 | 
			
		||||
	armor = 200,
 | 
			
		||||
	collisionbox = {-0.2, -0.01, -0.2, 0.2, 0.2, 0.2},
 | 
			
		||||
	visual = "mesh",
 | 
			
		||||
	mesh = "mobs_bee.x",
 | 
			
		||||
	textures = {
 | 
			
		||||
		{"mobs_bee.png"},
 | 
			
		||||
	},
 | 
			
		||||
	makes_footstep_sound = false,
 | 
			
		||||
	sounds = {
 | 
			
		||||
		random = "mobs_bee",
 | 
			
		||||
	},	
 | 
			
		||||
	walk_velocity = 1,
 | 
			
		||||
	jump = true,
 | 
			
		||||
	drops = {
 | 
			
		||||
		{name = "mobs:honey", chance = 2, min = 1, max = 2},
 | 
			
		||||
	},
 | 
			
		||||
	water_damage = 2,
 | 
			
		||||
	lava_damage = 2,
 | 
			
		||||
	light_damage = 0,
 | 
			
		||||
	fall_damage = 0,
 | 
			
		||||
	fall_speed = -3,
 | 
			
		||||
	animation = {
 | 
			
		||||
		speed_normal = 15,
 | 
			
		||||
		stand_start = 0,
 | 
			
		||||
		stand_end = 30,
 | 
			
		||||
		walk_start = 35,
 | 
			
		||||
		walk_end = 65,
 | 
			
		||||
	},
 | 
			
		||||
	on_rightclick = function(self, clicker)
 | 
			
		||||
		mobs:capture_mob(self, clicker, 25, 80, 0, true, nil)
 | 
			
		||||
	end,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
mobs:register_spawn("mobs_animal:bee", {"group:flower"}, 20, 10, 9000, 1, 31000, true)
 | 
			
		||||
 | 
			
		||||
mobs:register_egg("mobs_animal:bee", "Bee", "mobs_bee_inv.png", 0)
 | 
			
		||||
 | 
			
		||||
minetest.register_alias("mobs:bee", "mobs_animal:bee")
 | 
			
		||||
 | 
			
		||||
-- honey
 | 
			
		||||
minetest.register_craftitem(":mobs:honey", {
 | 
			
		||||
	description = "Honey",
 | 
			
		||||
	inventory_image = "mobs_honey_inv.png",
 | 
			
		||||
	on_use = minetest.item_eat(6),
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
-- beehive (when placed spawns bee)
 | 
			
		||||
minetest.register_node(":mobs:beehive", {
 | 
			
		||||
	description = "Beehive",
 | 
			
		||||
	drawtype = "plantlike",
 | 
			
		||||
	visual_scale = 1.0,
 | 
			
		||||
	tiles = {"mobs_beehive.png"},
 | 
			
		||||
	inventory_image = "mobs_beehive.png",
 | 
			
		||||
	paramtype = "light",
 | 
			
		||||
	sunlight_propagates = true,
 | 
			
		||||
	walkable = true,
 | 
			
		||||
	groups = {oddly_breakable_by_hand = 3, flammable = 1},
 | 
			
		||||
	sounds = default.node_sound_defaults(),
 | 
			
		||||
 | 
			
		||||
	on_construct = function(pos)
 | 
			
		||||
 | 
			
		||||
		local meta = minetest.get_meta(pos)
 | 
			
		||||
 | 
			
		||||
		meta:set_string("formspec", "size[8,6]"
 | 
			
		||||
			..default.gui_bg..default.gui_bg_img..default.gui_slots
 | 
			
		||||
			.. "image[3,0.8;0.8,0.8;mobs_bee_inv.png]"
 | 
			
		||||
			.. "list[current_name;beehive;4,0.5;1,1;]"
 | 
			
		||||
			.. "list[current_player;main;0,2.35;8,4;]"
 | 
			
		||||
			.. "listring[]")
 | 
			
		||||
 | 
			
		||||
		meta:get_inventory():set_size("beehive", 1)
 | 
			
		||||
	end,
 | 
			
		||||
--[[
 | 
			
		||||
	after_place_node = function(pos, placer, itemstack)
 | 
			
		||||
 | 
			
		||||
		if placer:is_player() then
 | 
			
		||||
 | 
			
		||||
			minetest.set_node(pos, {name = "mobs:beehive", param2 = 1})
 | 
			
		||||
 | 
			
		||||
			if math.random(1, 4) == 1 then
 | 
			
		||||
				minetest.add_entity(pos, "mobs:bee")
 | 
			
		||||
			end
 | 
			
		||||
		end
 | 
			
		||||
	end,
 | 
			
		||||
]]
 | 
			
		||||
	on_punch = function(pos, node, puncher)
 | 
			
		||||
 | 
			
		||||
		-- yep, bee's don't like having their home punched by players
 | 
			
		||||
		puncher:set_hp(puncher:get_hp() - 4)
 | 
			
		||||
	end,
 | 
			
		||||
 | 
			
		||||
	allow_metadata_inventory_put = function(pos, listname, index, stack, player)
 | 
			
		||||
 | 
			
		||||
		if listname == "beehive" then
 | 
			
		||||
			return 0
 | 
			
		||||
		end
 | 
			
		||||
 | 
			
		||||
		return stack:get_count()
 | 
			
		||||
	end,
 | 
			
		||||
 | 
			
		||||
	can_dig = function(pos,player)
 | 
			
		||||
 | 
			
		||||
		local meta = minetest.get_meta(pos)
 | 
			
		||||
 | 
			
		||||
		-- only dig beehive if no honey inside
 | 
			
		||||
		return meta:get_inventory():is_empty("beehive")
 | 
			
		||||
	end,
 | 
			
		||||
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	output = "mobs:beehive",
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{"mobs:bee","mobs:bee","mobs:bee"},
 | 
			
		||||
	}
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
-- honey block
 | 
			
		||||
minetest.register_node(":mobs:honey_block", {
 | 
			
		||||
	description = "Honey Block",
 | 
			
		||||
	tiles = {"mobs_honey_block.png"},
 | 
			
		||||
	groups = {snappy = 3, flammable = 2},
 | 
			
		||||
	sounds = default.node_sound_dirt_defaults(),
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	output = "mobs:honey_block",
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{"mobs:honey", "mobs:honey", "mobs:honey"},
 | 
			
		||||
		{"mobs:honey", "mobs:honey", "mobs:honey"},
 | 
			
		||||
		{"mobs:honey", "mobs:honey", "mobs:honey"},
 | 
			
		||||
	}
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	output = "mobs:honey 9",
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{"mobs:honey_block"},
 | 
			
		||||
	}
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
-- beehive workings
 | 
			
		||||
minetest.register_abm({
 | 
			
		||||
	nodenames = {"mobs:beehive"},
 | 
			
		||||
	interval = 6,
 | 
			
		||||
	chance = 6,
 | 
			
		||||
	catch_up = false,
 | 
			
		||||
	action = function(pos, node)
 | 
			
		||||
 | 
			
		||||
		-- bee's only make honey during the day
 | 
			
		||||
		local tod = (minetest.get_timeofday() or 0) * 24000
 | 
			
		||||
 | 
			
		||||
		if tod < 5500 or tod > 18500 then
 | 
			
		||||
			return
 | 
			
		||||
		end
 | 
			
		||||
 | 
			
		||||
		-- is hive full?
 | 
			
		||||
		local meta = minetest.get_meta(pos)
 | 
			
		||||
		if not meta then return end -- for older beehives
 | 
			
		||||
		local inv = minetest.get_meta(pos):get_inventory()
 | 
			
		||||
		local honey = inv:get_stack("beehive", 1):get_count()
 | 
			
		||||
 | 
			
		||||
		-- is hive full?
 | 
			
		||||
		if honey > 19 then
 | 
			
		||||
			return
 | 
			
		||||
		end
 | 
			
		||||
 | 
			
		||||
		-- no flowers no honey, nuff said!
 | 
			
		||||
		if #minetest.find_nodes_in_area_under_air(
 | 
			
		||||
			{x = pos.x - 4, y = pos.y - 3, z = pos.z - 4},
 | 
			
		||||
			{x = pos.x + 4, y = pos.y + 3, z = pos.z + 4},
 | 
			
		||||
			"group:flower") > 3 then
 | 
			
		||||
 | 
			
		||||
			inv:add_item("beehive", "mobs:honey")
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
})
 | 
			
		||||
							
								
								
									
										86
									
								
								bunny.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,86 @@
 | 
			
		||||
 | 
			
		||||
-- Bunny by ExeterDad
 | 
			
		||||
 | 
			
		||||
mobs:register_mob("mobs_animal:bunny", {
 | 
			
		||||
	type = "animal",
 | 
			
		||||
	passive = true,
 | 
			
		||||
	reach = 1,
 | 
			
		||||
	hp_min = 1,
 | 
			
		||||
	hp_max = 4,
 | 
			
		||||
	armor = 200,
 | 
			
		||||
	collisionbox = {-0.268, -0.5, -0.268,  0.268, 0.167, 0.268},
 | 
			
		||||
	visual = "mesh",
 | 
			
		||||
	mesh = "mobs_bunny.b3d",
 | 
			
		||||
	drawtype = "front",
 | 
			
		||||
	textures = {
 | 
			
		||||
		{"mobs_bunny_grey.png"},
 | 
			
		||||
		{"mobs_bunny_brown.png"},
 | 
			
		||||
		{"mobs_bunny_white.png"},
 | 
			
		||||
	},
 | 
			
		||||
	sounds = {},
 | 
			
		||||
	makes_footstep_sound = false,
 | 
			
		||||
	walk_velocity = 1,
 | 
			
		||||
	run_velocity = 2,
 | 
			
		||||
	runaway = true,
 | 
			
		||||
	jump = true,
 | 
			
		||||
	drops = {
 | 
			
		||||
		{name = "mobs:meat_raw", chance = 1, min = 1, max = 1},
 | 
			
		||||
	},
 | 
			
		||||
	water_damage = 1,
 | 
			
		||||
	lava_damage = 4,
 | 
			
		||||
	light_damage = 0,
 | 
			
		||||
	fear_height = 2,
 | 
			
		||||
	animation = {
 | 
			
		||||
		speed_normal = 15,
 | 
			
		||||
		stand_start = 1,
 | 
			
		||||
		stand_end = 15,
 | 
			
		||||
		walk_start = 16,
 | 
			
		||||
		walk_end = 24,
 | 
			
		||||
		punch_start = 16,
 | 
			
		||||
		punch_end = 24,
 | 
			
		||||
	},
 | 
			
		||||
	follow = {"farming:carrot", "farming_plus:carrot_item"},
 | 
			
		||||
	view_range = 8,
 | 
			
		||||
	replace_rate = 10,
 | 
			
		||||
	replace_what = {"farming:carrot_7", "farming:carrot_8", "farming_plus:carrot"},
 | 
			
		||||
	replace_with = "air",
 | 
			
		||||
	on_rightclick = function(self, clicker)
 | 
			
		||||
 | 
			
		||||
		-- feed or tame
 | 
			
		||||
		if mobs:feed_tame(self, clicker, 4, true, true) then
 | 
			
		||||
			return
 | 
			
		||||
		end
 | 
			
		||||
 | 
			
		||||
		-- Monty Python tribute
 | 
			
		||||
		local item = clicker:get_wielded_item()
 | 
			
		||||
 | 
			
		||||
		if item:get_name() == "mobs:lava_orb" then
 | 
			
		||||
 | 
			
		||||
			if not minetest.setting_getbool("creative_mode") then
 | 
			
		||||
				item:take_item()
 | 
			
		||||
				clicker:set_wielded_item(item)
 | 
			
		||||
			end
 | 
			
		||||
 | 
			
		||||
			self.object:set_properties({
 | 
			
		||||
				textures = {"mobs_bunny_evil.png"},
 | 
			
		||||
			})
 | 
			
		||||
 | 
			
		||||
			self.type = "monster"
 | 
			
		||||
			self.object:set_hp(20)
 | 
			
		||||
 | 
			
		||||
			return
 | 
			
		||||
		end
 | 
			
		||||
 | 
			
		||||
		mobs:capture_mob(self, clicker, 30, 50, 80, false, nil)
 | 
			
		||||
	end,
 | 
			
		||||
 | 
			
		||||
	attack_type = "dogfight",
 | 
			
		||||
	damage = 5,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
mobs:register_spawn("mobs_animal:bunny",
 | 
			
		||||
	{"default:dirt_with_grass", "ethereal:prairie_dirt"}, 20, 10, 15000, 2, 31000, true)
 | 
			
		||||
 | 
			
		||||
mobs:register_egg("mobs_animal:bunny", "Bunny", "mobs_bunny_inv.png", 0)
 | 
			
		||||
 | 
			
		||||
minetest.register_alias("mobs:bunny", "mobs_animal:bunny")
 | 
			
		||||
							
								
								
									
										254
									
								
								chicken.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,254 @@
 | 
			
		||||
 | 
			
		||||
-- Chicken by JK Murray
 | 
			
		||||
 | 
			
		||||
mobs:register_mob("mobs_animal:chicken", {
 | 
			
		||||
	type = "animal",
 | 
			
		||||
	passive = true,
 | 
			
		||||
	hp_min = 5,
 | 
			
		||||
	hp_max = 10,
 | 
			
		||||
	armor = 200,
 | 
			
		||||
	collisionbox = {-0.3, -0.75, -0.3, 0.3, 0.1, 0.3},
 | 
			
		||||
	visual = "mesh",
 | 
			
		||||
	mesh = "mobs_chicken.x",
 | 
			
		||||
	-- seems a lot of textures but this fixes the problem with the model
 | 
			
		||||
	textures = {
 | 
			
		||||
		{"mobs_chicken.png", "mobs_chicken.png", "mobs_chicken.png", "mobs_chicken.png",
 | 
			
		||||
		"mobs_chicken.png", "mobs_chicken.png", "mobs_chicken.png", "mobs_chicken.png", "mobs_chicken.png"},
 | 
			
		||||
		{"mobs_chicken_black.png", "mobs_chicken_black.png", "mobs_chicken_black.png", "mobs_chicken_black.png",
 | 
			
		||||
		"mobs_chicken_black.png", "mobs_chicken_black.png", "mobs_chicken_black.png", "mobs_chicken_black.png", "mobs_chicken_black.png"},
 | 
			
		||||
	},
 | 
			
		||||
	child_texture = {
 | 
			
		||||
		{"mobs_chick.png", "mobs_chick.png", "mobs_chick.png", "mobs_chick.png",
 | 
			
		||||
		"mobs_chick.png", "mobs_chick.png", "mobs_chick.png", "mobs_chick.png", "mobs_chick.png"},
 | 
			
		||||
	},
 | 
			
		||||
	makes_footstep_sound = true,
 | 
			
		||||
	sounds = {
 | 
			
		||||
		random = "mobs_chicken",
 | 
			
		||||
	},
 | 
			
		||||
	walk_velocity = 1,
 | 
			
		||||
	run_velocity = 3,
 | 
			
		||||
	runaway = true,
 | 
			
		||||
	jump = true,
 | 
			
		||||
	drops = {
 | 
			
		||||
		{name = "mobs:chicken_raw", chance = 1, min = 2, max = 2},
 | 
			
		||||
	},
 | 
			
		||||
	water_damage = 1,
 | 
			
		||||
	lava_damage = 5,
 | 
			
		||||
	light_damage = 0,
 | 
			
		||||
	fall_damage = 0,
 | 
			
		||||
	fall_speed = -8,
 | 
			
		||||
	fear_height = 5,
 | 
			
		||||
	animation = {
 | 
			
		||||
		speed_normal = 15,
 | 
			
		||||
		stand_start = 0,
 | 
			
		||||
		stand_end = 1, -- 20
 | 
			
		||||
		walk_start = 20,
 | 
			
		||||
		walk_end = 40,
 | 
			
		||||
	},
 | 
			
		||||
	follow = {"farming:seed_wheat", "farming:seed_cotton"},
 | 
			
		||||
	view_range = 5,
 | 
			
		||||
 | 
			
		||||
	on_rightclick = function(self, clicker)
 | 
			
		||||
 | 
			
		||||
		if mobs:feed_tame(self, clicker, 8, true, true) then
 | 
			
		||||
			return
 | 
			
		||||
		end
 | 
			
		||||
 | 
			
		||||
		mobs:capture_mob(self, clicker, 30, 50, 80, false, nil)
 | 
			
		||||
	end,
 | 
			
		||||
 | 
			
		||||
	do_custom = function(self)
 | 
			
		||||
 | 
			
		||||
		if not self.child
 | 
			
		||||
		and math.random(1, 500) == 1 then
 | 
			
		||||
 | 
			
		||||
			local pos = self.object:getpos()
 | 
			
		||||
 | 
			
		||||
			minetest.add_item(pos, "mobs:egg")
 | 
			
		||||
 | 
			
		||||
			minetest.sound_play("default_place_node_hard", {
 | 
			
		||||
				pos = pos,
 | 
			
		||||
				gain = 1.0,
 | 
			
		||||
				max_hear_distance = 5,
 | 
			
		||||
			})
 | 
			
		||||
		end
 | 
			
		||||
	end,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
mobs:register_spawn("mobs_animal:chicken",
 | 
			
		||||
	{"default:dirt_with_grass", "ethereal:bamboo_dirt"}, 20, 10, 15000, 1, 31000, true)
 | 
			
		||||
 | 
			
		||||
mobs:register_egg("mobs_animal:chicken", "Chicken", "mobs_chicken_inv.png", 0)
 | 
			
		||||
 | 
			
		||||
minetest.register_alias("mobs:chicken", "mobs_animal:chicken")
 | 
			
		||||
 | 
			
		||||
-- egg entity
 | 
			
		||||
 | 
			
		||||
mobs:register_arrow("mobs_animal:egg_entity", {
 | 
			
		||||
	visual = "sprite",
 | 
			
		||||
	visual_size = {x=.5, y=.5},
 | 
			
		||||
	textures = {"mobs_chicken_egg.png"},
 | 
			
		||||
	velocity = 6,
 | 
			
		||||
 | 
			
		||||
	hit_player = function(self, player)
 | 
			
		||||
		player:punch(self.object, 1.0, {
 | 
			
		||||
			full_punch_interval = 1.0,
 | 
			
		||||
			damage_groups = {fleshy = 1},
 | 
			
		||||
		}, nil)
 | 
			
		||||
	end,
 | 
			
		||||
 | 
			
		||||
	hit_mob = function(self, player)
 | 
			
		||||
		player:punch(self.object, 1.0, {
 | 
			
		||||
			full_punch_interval = 1.0,
 | 
			
		||||
			damage_groups = {fleshy = 1},
 | 
			
		||||
		}, nil)
 | 
			
		||||
	end,
 | 
			
		||||
 | 
			
		||||
	hit_node = function(self, pos, node)
 | 
			
		||||
 | 
			
		||||
		local num = math.random(1, 10)
 | 
			
		||||
 | 
			
		||||
		if num == 1 then
 | 
			
		||||
 | 
			
		||||
			pos.y = pos.y + 1
 | 
			
		||||
 | 
			
		||||
			local nod = minetest.get_node_or_nil(pos)
 | 
			
		||||
 | 
			
		||||
			if not nod
 | 
			
		||||
			or not minetest.registered_nodes[nod.name]
 | 
			
		||||
			or minetest.registered_nodes[nod.name].walkable == true then
 | 
			
		||||
				return
 | 
			
		||||
			end
 | 
			
		||||
 | 
			
		||||
			local mob = minetest.add_entity(pos, "mobs_animal:chicken")
 | 
			
		||||
			local ent2 = mob:get_luaentity()
 | 
			
		||||
 | 
			
		||||
			mob:set_properties({
 | 
			
		||||
				textures = ent2.child_texture[1],
 | 
			
		||||
				visual_size = {
 | 
			
		||||
					x = ent2.base_size.x / 2,
 | 
			
		||||
					y = ent2.base_size.y / 2
 | 
			
		||||
				},
 | 
			
		||||
				collisionbox = {
 | 
			
		||||
					ent2.base_colbox[1] / 2,
 | 
			
		||||
					ent2.base_colbox[2] / 2,
 | 
			
		||||
					ent2.base_colbox[3] / 2,
 | 
			
		||||
					ent2.base_colbox[4] / 2,
 | 
			
		||||
					ent2.base_colbox[5] / 2,
 | 
			
		||||
					ent2.base_colbox[6] / 2
 | 
			
		||||
				},
 | 
			
		||||
			})
 | 
			
		||||
 | 
			
		||||
			ent2.child = true
 | 
			
		||||
			ent2.tamed = true
 | 
			
		||||
			ent2.owner = self.playername
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
-- egg throwing item
 | 
			
		||||
 | 
			
		||||
local egg_GRAVITY = 9
 | 
			
		||||
local egg_VELOCITY = 19
 | 
			
		||||
 | 
			
		||||
-- shoot egg
 | 
			
		||||
local mobs_shoot_egg = function (item, player, pointed_thing)
 | 
			
		||||
 | 
			
		||||
	local playerpos = player:getpos()
 | 
			
		||||
 | 
			
		||||
	minetest.sound_play("default_place_node_hard", {
 | 
			
		||||
		pos = playerpos,
 | 
			
		||||
		gain = 1.0,
 | 
			
		||||
		max_hear_distance = 5,
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	local obj = minetest.add_entity({
 | 
			
		||||
		x = playerpos.x,
 | 
			
		||||
		y = playerpos.y +1.5,
 | 
			
		||||
		z = playerpos.z
 | 
			
		||||
	}, "mobs_animal:egg_entity")
 | 
			
		||||
 | 
			
		||||
	local ent = obj:get_luaentity()
 | 
			
		||||
	local dir = player:get_look_dir()
 | 
			
		||||
 | 
			
		||||
	ent.velocity = egg_VELOCITY -- needed for api internal timing
 | 
			
		||||
	ent.switch = 1 -- needed so that egg doesn't despawn straight away
 | 
			
		||||
 | 
			
		||||
	obj:setvelocity({
 | 
			
		||||
		x = dir.x * egg_VELOCITY,
 | 
			
		||||
		y = dir.y * egg_VELOCITY,
 | 
			
		||||
		z = dir.z * egg_VELOCITY
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	obj:setacceleration({
 | 
			
		||||
		x = dir.x * -3,
 | 
			
		||||
		y = -egg_GRAVITY,
 | 
			
		||||
		z = dir.z * -3
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	-- pass player name to egg for chick ownership
 | 
			
		||||
	local ent2 = obj:get_luaentity()
 | 
			
		||||
	ent2.playername = player:get_player_name()
 | 
			
		||||
 | 
			
		||||
	item:take_item()
 | 
			
		||||
 | 
			
		||||
	return item
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
-- egg
 | 
			
		||||
minetest.register_node(":mobs:egg", {
 | 
			
		||||
	description = "Chicken Egg",
 | 
			
		||||
	tiles = {"mobs_chicken_egg.png"},
 | 
			
		||||
	inventory_image  = "mobs_chicken_egg.png",
 | 
			
		||||
	visual_scale = 0.7,
 | 
			
		||||
	drawtype = "plantlike",
 | 
			
		||||
	wield_image = "mobs_chicken_egg.png",
 | 
			
		||||
	paramtype = "light",
 | 
			
		||||
	walkable = false,
 | 
			
		||||
	is_ground_content = true,
 | 
			
		||||
	sunlight_propagates = true,
 | 
			
		||||
	selection_box = {
 | 
			
		||||
		type = "fixed",
 | 
			
		||||
		fixed = {-0.2, -0.5, -0.2, 0.2, 0, 0.2}
 | 
			
		||||
	},
 | 
			
		||||
	groups = {snappy = 2, dig_immediate = 3},
 | 
			
		||||
	after_place_node = function(pos, placer, itemstack)
 | 
			
		||||
		if placer:is_player() then
 | 
			
		||||
			minetest.set_node(pos, {name = "mobs:egg", param2 = 1})
 | 
			
		||||
		end
 | 
			
		||||
	end,
 | 
			
		||||
	on_use = mobs_shoot_egg
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
-- fried egg
 | 
			
		||||
minetest.register_craftitem(":mobs:chicken_egg_fried", {
 | 
			
		||||
description = "Fried Egg",
 | 
			
		||||
	inventory_image = "mobs_chicken_egg_fried.png",
 | 
			
		||||
	on_use = minetest.item_eat(2),
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	type  =  "cooking",
 | 
			
		||||
	recipe  = "mobs:egg",
 | 
			
		||||
	output = "mobs:chicken_egg_fried",
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
-- raw chicken
 | 
			
		||||
minetest.register_craftitem(":mobs:chicken_raw", {
 | 
			
		||||
description = "Raw Chicken",
 | 
			
		||||
	inventory_image = "mobs_chicken_raw.png",
 | 
			
		||||
	on_use = minetest.item_eat(2),
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
-- cooked chicken
 | 
			
		||||
minetest.register_craftitem(":mobs:chicken_cooked", {
 | 
			
		||||
description = "Cooked Chicken",
 | 
			
		||||
	inventory_image = "mobs_chicken_cooked.png",
 | 
			
		||||
	on_use = minetest.item_eat(6),
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	type  =  "cooking",
 | 
			
		||||
	recipe  = "mobs:chicken_raw",
 | 
			
		||||
	output = "mobs:chicken_cooked",
 | 
			
		||||
})
 | 
			
		||||
							
								
								
									
										149
									
								
								cow.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,149 @@
 | 
			
		||||
 | 
			
		||||
-- Cow by Krupnovpavel (additional texture by JurajVajda)
 | 
			
		||||
 | 
			
		||||
mobs:register_mob("mobs_animal:cow", {
 | 
			
		||||
	type = "animal",
 | 
			
		||||
	passive = false,
 | 
			
		||||
	attack_type = "dogfight",
 | 
			
		||||
	reach = 2,
 | 
			
		||||
	damage = 4,
 | 
			
		||||
	hp_min = 5,
 | 
			
		||||
	hp_max = 20,
 | 
			
		||||
	armor = 200,
 | 
			
		||||
	collisionbox = {-0.4, -0.01, -0.4, 0.4, 1, 0.4},
 | 
			
		||||
	visual = "mesh",
 | 
			
		||||
	mesh = "mobs_cow.x",
 | 
			
		||||
	textures = {
 | 
			
		||||
		{"mobs_cow.png"},
 | 
			
		||||
		{"mobs_cow2.png"},
 | 
			
		||||
	},
 | 
			
		||||
	makes_footstep_sound = true,
 | 
			
		||||
	sounds = {
 | 
			
		||||
		random = "mobs_cow",
 | 
			
		||||
	},
 | 
			
		||||
	walk_velocity = 1,
 | 
			
		||||
	run_velocity = 2,
 | 
			
		||||
	jump = true,
 | 
			
		||||
	drops = {
 | 
			
		||||
		{name = "mobs:meat_raw", chance = 1, min = 1, max = 3},
 | 
			
		||||
		{name = "mobs:leather", chance = 1, min = 1, max = 2},
 | 
			
		||||
	},
 | 
			
		||||
	water_damage = 1,
 | 
			
		||||
	lava_damage = 5,
 | 
			
		||||
	light_damage = 0,
 | 
			
		||||
	animation = {
 | 
			
		||||
		speed_normal = 15,
 | 
			
		||||
		speed_run = 15,
 | 
			
		||||
		stand_start = 0,
 | 
			
		||||
		stand_end = 30,
 | 
			
		||||
		walk_start = 35,
 | 
			
		||||
		walk_end = 65,
 | 
			
		||||
		run_start = 105,
 | 
			
		||||
		run_end = 135,
 | 
			
		||||
		punch_start = 70,
 | 
			
		||||
		punch_end = 100,
 | 
			
		||||
	},
 | 
			
		||||
	follow = "farming:wheat",
 | 
			
		||||
	view_range = 7,
 | 
			
		||||
	replace_rate = 10,
 | 
			
		||||
	replace_what = {"default:grass_3", "default:grass_4", "default:grass_5", "farming:wheat_8"},
 | 
			
		||||
	replace_with = "air",
 | 
			
		||||
	fear_height = 2,
 | 
			
		||||
	on_rightclick = function(self, clicker)
 | 
			
		||||
 | 
			
		||||
		-- feed or tame
 | 
			
		||||
		if mobs:feed_tame(self, clicker, 8, true, true) then
 | 
			
		||||
			return
 | 
			
		||||
		end
 | 
			
		||||
 | 
			
		||||
		local tool = clicker:get_wielded_item()
 | 
			
		||||
 | 
			
		||||
		-- milk cow with empty bucket
 | 
			
		||||
		if tool:get_name() == "bucket:bucket_empty" then
 | 
			
		||||
 | 
			
		||||
			--if self.gotten == true
 | 
			
		||||
			if self.child == true then
 | 
			
		||||
				return
 | 
			
		||||
			end
 | 
			
		||||
 | 
			
		||||
			if self.gotten == true then
 | 
			
		||||
				minetest.chat_send_player(clicker:get_player_name(),
 | 
			
		||||
						"Cow already milked!")
 | 
			
		||||
				return
 | 
			
		||||
			end
 | 
			
		||||
 | 
			
		||||
			local inv = clicker:get_inventory()
 | 
			
		||||
 | 
			
		||||
			inv:remove_item("main", "bucket:bucket_empty")
 | 
			
		||||
 | 
			
		||||
			if inv:room_for_item("main", {name = "mobs:bucket_milk"}) then
 | 
			
		||||
				clicker:get_inventory():add_item("main", "mobs:bucket_milk")
 | 
			
		||||
			else
 | 
			
		||||
				local pos = self.object:getpos()
 | 
			
		||||
				pos.y = pos.y + 0.5
 | 
			
		||||
				minetest.add_item(pos, {name = "mobs:bucket_milk"})
 | 
			
		||||
			end
 | 
			
		||||
 | 
			
		||||
			self.gotten = true -- milked
 | 
			
		||||
 | 
			
		||||
			return
 | 
			
		||||
		end
 | 
			
		||||
 | 
			
		||||
		mobs:capture_mob(self, clicker, 0, 5, 60, false, nil)
 | 
			
		||||
	end,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
mobs:register_spawn("mobs_animal:cow",
 | 
			
		||||
	{"default:dirt_with_grass", "ethereal:green_dirt"}, 20, 10, 15000, 1, 31000, true)
 | 
			
		||||
 | 
			
		||||
mobs:register_egg("mobs_animal:cow", "Cow", "default_grass.png", 1)
 | 
			
		||||
 | 
			
		||||
minetest.register_alias("mobs:cow", "mobs_animal:cow")
 | 
			
		||||
 | 
			
		||||
-- bucket of milk
 | 
			
		||||
minetest.register_craftitem(":mobs:bucket_milk", {
 | 
			
		||||
	description = "Bucket of Milk",
 | 
			
		||||
	inventory_image = "mobs_bucket_milk.png",
 | 
			
		||||
	stack_max = 1,
 | 
			
		||||
	on_use = minetest.item_eat(8, 'bucket:bucket_empty'),
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
-- cheese wedge
 | 
			
		||||
minetest.register_craftitem(":mobs:cheese", {
 | 
			
		||||
	description = "Cheese",
 | 
			
		||||
	inventory_image = "mobs_cheese.png",
 | 
			
		||||
	on_use = minetest.item_eat(4),
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	type = "cooking",
 | 
			
		||||
	output = "mobs:cheese",
 | 
			
		||||
	recipe = "mobs:bucket_milk",
 | 
			
		||||
	cooktime = 5,
 | 
			
		||||
	replacements = {{ "mobs:bucket_milk", "bucket:bucket_empty"}}
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
-- cheese block
 | 
			
		||||
minetest.register_node(":mobs:cheeseblock", {
 | 
			
		||||
	description = "Cheese Block",
 | 
			
		||||
	tiles = {"mobs_cheeseblock.png"},
 | 
			
		||||
	is_ground_content = false,
 | 
			
		||||
	groups = {crumbly = 3},
 | 
			
		||||
	sounds = default.node_sound_dirt_defaults()
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	output = "mobs:cheeseblock",
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{'mobs:cheese', 'mobs:cheese', 'mobs:cheese'},
 | 
			
		||||
		{'mobs:cheese', 'mobs:cheese', 'mobs:cheese'},
 | 
			
		||||
		{'mobs:cheese', 'mobs:cheese', 'mobs:cheese'},
 | 
			
		||||
	}
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	output = "mobs:cheese 9",
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{'mobs:cheeseblock'},
 | 
			
		||||
	}
 | 
			
		||||
})
 | 
			
		||||
							
								
								
									
										2
									
								
								depends.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,2 @@
 | 
			
		||||
default
 | 
			
		||||
mobs
 | 
			
		||||
							
								
								
									
										1
									
								
								description.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1 @@
 | 
			
		||||
Adds farm animals.
 | 
			
		||||
							
								
								
									
										15
									
								
								init.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,15 @@
 | 
			
		||||
 | 
			
		||||
local path = minetest.get_modpath("mobs_animal")
 | 
			
		||||
 | 
			
		||||
-- Animals
 | 
			
		||||
 | 
			
		||||
dofile(path .. "/chicken.lua") -- JKmurray
 | 
			
		||||
dofile(path .. "/cow.lua") -- KrupnoPavel
 | 
			
		||||
dofile(path .. "/rat.lua") -- PilzAdam
 | 
			
		||||
dofile(path .. "/sheep.lua") -- PilzAdam
 | 
			
		||||
dofile(path .. "/warthog.lua") -- KrupnoPavel
 | 
			
		||||
dofile(path .. "/bee.lua") -- KrupnoPavel
 | 
			
		||||
dofile(path .. "/bunny.lua") -- ExeterDad
 | 
			
		||||
dofile(path .. "/kitten.lua") -- Jordach/BFD
 | 
			
		||||
 | 
			
		||||
print ("[MOD] Mobs Redo 'Animals' loaded")
 | 
			
		||||
							
								
								
									
										58
									
								
								kitten.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,58 @@
 | 
			
		||||
 | 
			
		||||
-- Kitten by Jordach / BFD
 | 
			
		||||
 | 
			
		||||
mobs:register_mob("mobs_animal:kitten", {
 | 
			
		||||
	type = "animal",
 | 
			
		||||
	passive = true,
 | 
			
		||||
	hp_min = 5,
 | 
			
		||||
	hp_max = 10,
 | 
			
		||||
	armor = 200,
 | 
			
		||||
	collisionbox = {-0.3, -0.3, -0.3, 0.3, 0.1, 0.3},
 | 
			
		||||
	visual = "mesh",
 | 
			
		||||
	visual_size = {x = 0.5, y = 0.5},
 | 
			
		||||
	mesh = "mobs_kitten.b3d",
 | 
			
		||||
	textures = {
 | 
			
		||||
		{"mobs_kitten_striped.png"},
 | 
			
		||||
		{"mobs_kitten_splotchy.png"},
 | 
			
		||||
		{"mobs_kitten_ginger.png"},
 | 
			
		||||
		{"mobs_kitten_sandy.png"},
 | 
			
		||||
	},
 | 
			
		||||
	makes_footstep_sound = false,
 | 
			
		||||
	sounds = {
 | 
			
		||||
		random = "mobs_kitten",
 | 
			
		||||
	},
 | 
			
		||||
	walk_velocity = 0.6,
 | 
			
		||||
	run_velocity = 2,
 | 
			
		||||
	runaway = true,
 | 
			
		||||
	jump = false,
 | 
			
		||||
	drops = {
 | 
			
		||||
		{name = "farming:string", chance = 1, min = 1, max = 1},
 | 
			
		||||
	},
 | 
			
		||||
	water_damage = 1,
 | 
			
		||||
	lava_damage = 5,
 | 
			
		||||
	fear_height = 3,
 | 
			
		||||
	animation = {
 | 
			
		||||
		speed_normal = 42,
 | 
			
		||||
		stand_start = 97,
 | 
			
		||||
		stand_end = 192,
 | 
			
		||||
		walk_start = 0,
 | 
			
		||||
		walk_end = 96,
 | 
			
		||||
	},
 | 
			
		||||
	follow = {"mobs:rat", "ethereal:fish_raw", "mobs_fish:clownfish", "mobs_fish:tropical"},
 | 
			
		||||
	view_range = 8,
 | 
			
		||||
	on_rightclick = function(self, clicker)
 | 
			
		||||
 | 
			
		||||
		if mobs:feed_tame(self, clicker, 4, true, true) then
 | 
			
		||||
			return
 | 
			
		||||
		end
 | 
			
		||||
 | 
			
		||||
		mobs:capture_mob(self, clicker, 50, 50, 90, false, nil)
 | 
			
		||||
	end
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
mobs:register_spawn("mobs_animal:kitten",
 | 
			
		||||
	{"default:dirt_with_grass", "ethereal:grove_dirt"}, 20, 12, 22000, 1, 31000, true)
 | 
			
		||||
 | 
			
		||||
mobs:register_egg("mobs_animal:kitten", "Kitten", "mobs_kitten_inv.png", 0)
 | 
			
		||||
 | 
			
		||||
minetest.register_alias("mobs:kitten", "mobs_animal:kitten")
 | 
			
		||||
							
								
								
									
										7645
									
								
								models/mobs_bee.x
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								models/mobs_bunny.b3d
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										3080
									
								
								models/mobs_chicken.x
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										7420
									
								
								models/mobs_cow.x
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								models/mobs_kitten.b3d
									
									
									
									
									
										Executable file
									
								
							
							
						
						
							
								
								
									
										5316
									
								
								models/mobs_pumba.x
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								models/mobs_rat.b3d
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								models/mobs_sheep.b3d
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								models/mobs_sheep_shaved.b3d
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										58
									
								
								rat.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,58 @@
 | 
			
		||||
 | 
			
		||||
-- Rat by PilzAdam
 | 
			
		||||
 | 
			
		||||
mobs:register_mob("mobs_animal:rat", {
 | 
			
		||||
	type = "animal",
 | 
			
		||||
	passive = true,
 | 
			
		||||
	hp_min = 1,
 | 
			
		||||
	hp_max = 4,
 | 
			
		||||
	armor = 200,
 | 
			
		||||
	collisionbox = {-0.2, -1, -0.2, 0.2, -0.8, 0.2},
 | 
			
		||||
	visual = "mesh",
 | 
			
		||||
	mesh = "mobs_rat.b3d",
 | 
			
		||||
	textures = {
 | 
			
		||||
		{"mobs_rat.png"},
 | 
			
		||||
		{"mobs_rat2.png"},
 | 
			
		||||
	},
 | 
			
		||||
	makes_footstep_sound = false,
 | 
			
		||||
	sounds = {
 | 
			
		||||
		random = "mobs_rat",
 | 
			
		||||
	},
 | 
			
		||||
	walk_velocity = 1,
 | 
			
		||||
	run_velocity = 2,
 | 
			
		||||
	runaway = true,
 | 
			
		||||
	jump = true,
 | 
			
		||||
	water_damage = 0,
 | 
			
		||||
	lava_damage = 4,
 | 
			
		||||
	light_damage = 0,
 | 
			
		||||
	fear_height = 2,
 | 
			
		||||
	on_rightclick = function(self, clicker)
 | 
			
		||||
		mobs:capture_mob(self, clicker, 25, 80, 0, true, nil)
 | 
			
		||||
	end,
 | 
			
		||||
--[[
 | 
			
		||||
	do_custom = function(self)
 | 
			
		||||
		local pos = self.object:getpos()
 | 
			
		||||
		print("rat pos", pos.x, pos.y, pos.z)
 | 
			
		||||
	end,
 | 
			
		||||
--]]
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
mobs:register_spawn("mobs_animal:rat", {"default:stone"}, 20, 5, 15000, 2, 0)
 | 
			
		||||
 | 
			
		||||
mobs:register_egg("mobs_animal:rat", "Rat", "mobs_rat_inventory.png", 0)
 | 
			
		||||
 | 
			
		||||
minetest.register_alias("mobs:rat", "mobs_animal:rat")
 | 
			
		||||
 | 
			
		||||
-- cooked rat, yummy!
 | 
			
		||||
minetest.register_craftitem(":mobs:rat_cooked", {
 | 
			
		||||
	description = "Cooked Rat",
 | 
			
		||||
	inventory_image = "mobs_cooked_rat.png",
 | 
			
		||||
	on_use = minetest.item_eat(3),
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	type = "cooking",
 | 
			
		||||
	output = "mobs:rat_cooked",
 | 
			
		||||
	recipe = "mobs:rat",
 | 
			
		||||
	cooktime = 5,
 | 
			
		||||
})
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								screenshot.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 33 KiB  | 
							
								
								
									
										194
									
								
								sheep.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,194 @@
 | 
			
		||||
 | 
			
		||||
local all_colours = {
 | 
			
		||||
	{"black",      "Black",      "#000000b0"},
 | 
			
		||||
	{"blue",       "Blue",       "#015dbb70"},
 | 
			
		||||
	{"brown",      "Brown",      "#663300a0"},
 | 
			
		||||
	{"cyan",       "Cyan",       "#01ffd870"},
 | 
			
		||||
	{"dark_green", "Dark Green", "#005b0770"},
 | 
			
		||||
	{"dark_grey",  "Dark Grey",  "#303030b0"},
 | 
			
		||||
	{"green",      "Green",      "#61ff0170"},
 | 
			
		||||
	{"grey",       "Grey",       "#5b5b5bb0"},
 | 
			
		||||
	{"magenta",    "Magenta",    "#ff05bb70"},
 | 
			
		||||
	{"orange",     "Orange",     "#ff840170"},
 | 
			
		||||
	{"pink",       "Pink",       "#ff65b570"},
 | 
			
		||||
	{"red",        "Red",        "#ff0000a0"},
 | 
			
		||||
	{"violet",     "Violet",     "#2000c970"},
 | 
			
		||||
	{"white",      "White",      "#abababc0"},
 | 
			
		||||
	{"yellow",     "Yellow",     "#e3ff0070"},
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
-- Sheep by PilzAdam, texture converted to minetest by AMMOnym from Summerfield pack
 | 
			
		||||
 | 
			
		||||
for _, col in pairs(all_colours) do
 | 
			
		||||
 | 
			
		||||
	mobs:register_mob("mobs_animal:sheep_"..col[1], {
 | 
			
		||||
		type = "animal",
 | 
			
		||||
		passive = true,
 | 
			
		||||
		hp_min = 8,
 | 
			
		||||
		hp_max = 10,
 | 
			
		||||
		armor = 200,
 | 
			
		||||
		collisionbox = {-0.5, -1, -0.5, 0.5, 0.3, 0.5},
 | 
			
		||||
		visual = "mesh",
 | 
			
		||||
		mesh = "mobs_sheep.b3d",
 | 
			
		||||
		textures = {
 | 
			
		||||
			{"mobs_sheep_base.png^(mobs_sheep_wool.png^[colorize:" .. col[3] .. ")"},
 | 
			
		||||
		},
 | 
			
		||||
		gotten_texture = {"mobs_sheep_shaved.png"},
 | 
			
		||||
		gotten_mesh = "mobs_sheep_shaved.b3d",
 | 
			
		||||
		makes_footstep_sound = true,
 | 
			
		||||
		sounds = {
 | 
			
		||||
			random = "mobs_sheep",
 | 
			
		||||
		},
 | 
			
		||||
		walk_velocity = 1,
 | 
			
		||||
		run_velocity = 2,
 | 
			
		||||
		runaway = true,
 | 
			
		||||
		jump = true,
 | 
			
		||||
		drops = {
 | 
			
		||||
			{name = "mobs:meat_raw", chance = 1, min = 1, max = 2},
 | 
			
		||||
			--{name = "wool:"..col[1], chance = 1, min = 1, max = 1},
 | 
			
		||||
		},
 | 
			
		||||
		water_damage = 1,
 | 
			
		||||
		lava_damage = 5,
 | 
			
		||||
		light_damage = 0,
 | 
			
		||||
		animation = {
 | 
			
		||||
			speed_normal = 15,
 | 
			
		||||
			speed_run = 15,
 | 
			
		||||
			stand_start = 0,
 | 
			
		||||
			stand_end = 80,
 | 
			
		||||
			walk_start = 81,
 | 
			
		||||
			walk_end = 100,
 | 
			
		||||
		},
 | 
			
		||||
		follow = {"farming:wheat", "default:grass_5"},
 | 
			
		||||
		view_range = 8,
 | 
			
		||||
		replace_rate = 10,
 | 
			
		||||
		replace_what = {"default:grass_3", "default:grass_4", "default:grass_5", "farming:wheat_8"},
 | 
			
		||||
		replace_with = "air",
 | 
			
		||||
		replace_offset = -1,
 | 
			
		||||
		fear_height = 3,
 | 
			
		||||
 | 
			
		||||
		on_rightclick = function(self, clicker)
 | 
			
		||||
 | 
			
		||||
			--are we feeding?
 | 
			
		||||
			if mobs:feed_tame(self, clicker, 8, true, true) then
 | 
			
		||||
 | 
			
		||||
				--if full grow fuzz
 | 
			
		||||
				if self.gotten == false then
 | 
			
		||||
 | 
			
		||||
					self.object:set_properties({
 | 
			
		||||
						textures = {"mobs_sheep_base.png^(mobs_sheep_wool.png^[colorize:" .. col[3] .. ")"},
 | 
			
		||||
						mesh = "mobs_sheep.b3d",
 | 
			
		||||
					})
 | 
			
		||||
				end
 | 
			
		||||
 | 
			
		||||
				return
 | 
			
		||||
			end
 | 
			
		||||
 | 
			
		||||
			local item = clicker:get_wielded_item()
 | 
			
		||||
			local itemname = item:get_name()
 | 
			
		||||
 | 
			
		||||
			--are we giving a haircut>
 | 
			
		||||
			if itemname == "mobs:shears" then
 | 
			
		||||
 | 
			
		||||
				if self.gotten ~= false
 | 
			
		||||
				and self.child ~= false
 | 
			
		||||
				and not minetest.get_modpath("wool") then
 | 
			
		||||
					return
 | 
			
		||||
				end
 | 
			
		||||
 | 
			
		||||
				self.gotten = true -- shaved
 | 
			
		||||
 | 
			
		||||
				local obj = minetest.add_item(
 | 
			
		||||
					self.object:getpos(),
 | 
			
		||||
					ItemStack( "wool:" .. col[1] .. " " .. math.random(1, 3) )
 | 
			
		||||
				)
 | 
			
		||||
 | 
			
		||||
				if obj then
 | 
			
		||||
 | 
			
		||||
					obj:setvelocity({
 | 
			
		||||
						x = math.random(-1, 1),
 | 
			
		||||
						y = 5,
 | 
			
		||||
						z = math.random(-1, 1)
 | 
			
		||||
					})
 | 
			
		||||
				end
 | 
			
		||||
 | 
			
		||||
				item:add_wear(650) -- 100 uses
 | 
			
		||||
 | 
			
		||||
				clicker:set_wielded_item(item)
 | 
			
		||||
 | 
			
		||||
				self.object:set_properties({
 | 
			
		||||
					textures = {"mobs_sheep_shaved.png"},
 | 
			
		||||
					mesh = "mobs_sheep_shaved.b3d",
 | 
			
		||||
				})
 | 
			
		||||
 | 
			
		||||
				return
 | 
			
		||||
			end
 | 
			
		||||
 | 
			
		||||
			local name = clicker:get_player_name()
 | 
			
		||||
 | 
			
		||||
			--are we coloring?
 | 
			
		||||
			if itemname:find("dye:") then
 | 
			
		||||
 | 
			
		||||
				if self.gotten == false
 | 
			
		||||
				and self.child == false
 | 
			
		||||
				and self.tamed == true
 | 
			
		||||
				and name == self.owner then
 | 
			
		||||
 | 
			
		||||
					local colr = string.split(itemname, ":")[2]
 | 
			
		||||
 | 
			
		||||
					for _,c in pairs(all_colours) do
 | 
			
		||||
 | 
			
		||||
						if c[1] == colr then
 | 
			
		||||
 | 
			
		||||
							local pos = self.object:getpos()
 | 
			
		||||
 | 
			
		||||
							self.object:remove()
 | 
			
		||||
 | 
			
		||||
							local mob = minetest.add_entity(pos, "mobs_animal:sheep_" .. colr)
 | 
			
		||||
							local ent = mob:get_luaentity()
 | 
			
		||||
 | 
			
		||||
							ent.owner = name
 | 
			
		||||
							ent.tamed = true
 | 
			
		||||
 | 
			
		||||
							-- take item
 | 
			
		||||
							if not minetest.setting_getbool("creative_mode") then
 | 
			
		||||
								item:take_item()
 | 
			
		||||
								clicker:set_wielded_item(item)
 | 
			
		||||
							end
 | 
			
		||||
 | 
			
		||||
							break
 | 
			
		||||
						end
 | 
			
		||||
					end
 | 
			
		||||
				end
 | 
			
		||||
 | 
			
		||||
				return
 | 
			
		||||
			end
 | 
			
		||||
 | 
			
		||||
			--are we capturing?
 | 
			
		||||
			mobs:capture_mob(self, clicker, 0, 5, 60, false, nil)
 | 
			
		||||
		end
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	mobs:register_egg("mobs_animal:sheep_"..col[1], col[2] .. " Sheep", "wool_"..col[1]..".png", 1)
 | 
			
		||||
 | 
			
		||||
	minetest.register_alias("mobs:sheep_"..col[1], "mobs_animal:sheep_"..col[1])
 | 
			
		||||
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
mobs:register_spawn("mobs_animal:sheep_white",
 | 
			
		||||
	{"default:dirt_with_grass", "ethereal:green_dirt"}, 20, 10, 15000, 1, 31000, true)
 | 
			
		||||
 | 
			
		||||
-- compatibility (item and entity)
 | 
			
		||||
minetest.register_alias("mobs:sheep", "mobs:sheep_white")
 | 
			
		||||
 | 
			
		||||
--[[
 | 
			
		||||
-- replace old sheep entity with new white sheep
 | 
			
		||||
minetest.register_entity("mobs:sheep", {
 | 
			
		||||
 | 
			
		||||
	on_activate = function(self, staticdata, dtime_s)
 | 
			
		||||
 | 
			
		||||
		self.object:remove()
 | 
			
		||||
 | 
			
		||||
		minetest.add_entity(self.object:getpos(), "mobs_animal:sheep_white")
 | 
			
		||||
	end
 | 
			
		||||
})
 | 
			
		||||
]]
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								sounds/mobs_bee.ogg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								sounds/mobs_chicken.ogg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								sounds/mobs_cow.ogg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								sounds/mobs_kitten.ogg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								sounds/mobs_pig.ogg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								sounds/mobs_pig_angry.ogg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								sounds/mobs_rat.ogg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								sounds/mobs_sheep.ogg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								textures/mobs_bee.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.8 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								textures/mobs_bee_inv.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 934 B  | 
							
								
								
									
										
											BIN
										
									
								
								textures/mobs_beehive.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 513 B  | 
							
								
								
									
										
											BIN
										
									
								
								textures/mobs_bucket_milk.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 241 B  | 
							
								
								
									
										
											BIN
										
									
								
								textures/mobs_bunny_brown.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 999 B  | 
							
								
								
									
										
											BIN
										
									
								
								textures/mobs_bunny_evil.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 809 B  | 
							
								
								
									
										
											BIN
										
									
								
								textures/mobs_bunny_grey.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 771 B  | 
							
								
								
									
										
											BIN
										
									
								
								textures/mobs_bunny_inv.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 466 B  | 
							
								
								
									
										
											BIN
										
									
								
								textures/mobs_bunny_white.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 809 B  | 
							
								
								
									
										
											BIN
										
									
								
								textures/mobs_cheese.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 247 B  | 
							
								
								
									
										
											BIN
										
									
								
								textures/mobs_cheeseblock.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 609 B  | 
							
								
								
									
										
											BIN
										
									
								
								textures/mobs_chick.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.0 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								textures/mobs_chicken.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.9 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								textures/mobs_chicken_black.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.7 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								textures/mobs_chicken_cooked.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 216 B  | 
							
								
								
									
										
											BIN
										
									
								
								textures/mobs_chicken_egg_fried.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 166 B  | 
							
								
								
									
										
											BIN
										
									
								
								textures/mobs_chicken_inv.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 369 B  | 
							
								
								
									
										
											BIN
										
									
								
								textures/mobs_chicken_raw.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 218 B  | 
							
								
								
									
										
											BIN
										
									
								
								textures/mobs_cooked_rat.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 239 B  | 
							
								
								
									
										
											BIN
										
									
								
								textures/mobs_cow.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 948 B  | 
							
								
								
									
										
											BIN
										
									
								
								textures/mobs_cow2.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 4.3 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								textures/mobs_honey_block.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 272 B  | 
							
								
								
									
										
											BIN
										
									
								
								textures/mobs_honey_inv.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 301 B  | 
							
								
								
									
										
											BIN
										
									
								
								textures/mobs_kitten_ginger.png
									
									
									
									
									
										Executable file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 440 B  | 
							
								
								
									
										
											BIN
										
									
								
								textures/mobs_kitten_inv.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 377 B  | 
							
								
								
									
										
											BIN
										
									
								
								textures/mobs_kitten_sandy.png
									
									
									
									
									
										Executable file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 404 B  | 
							
								
								
									
										
											BIN
										
									
								
								textures/mobs_kitten_splotchy.png
									
									
									
									
									
										Executable file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 456 B  | 
							
								
								
									
										
											BIN
										
									
								
								textures/mobs_kitten_striped.png
									
									
									
									
									
										Executable file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 416 B  | 
							
								
								
									
										
											BIN
										
									
								
								textures/mobs_pork_cooked.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 224 B  | 
							
								
								
									
										
											BIN
										
									
								
								textures/mobs_pork_raw.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 198 B  | 
							
								
								
									
										
											BIN
										
									
								
								textures/mobs_pumba.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.2 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								textures/mobs_rat.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.0 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								textures/mobs_rat2.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 834 B  | 
							
								
								
									
										
											BIN
										
									
								
								textures/mobs_rat_inventory.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 565 B  | 
							
								
								
									
										
											BIN
										
									
								
								textures/mobs_sheep_base.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 635 B  | 
							
								
								
									
										
											BIN
										
									
								
								textures/mobs_sheep_shaved.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 983 B  | 
							
								
								
									
										
											BIN
										
									
								
								textures/mobs_sheep_wool.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.0 KiB  | 
							
								
								
									
										82
									
								
								warthog.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,82 @@
 | 
			
		||||
 | 
			
		||||
-- Warthog by KrupnoPavel
 | 
			
		||||
 | 
			
		||||
mobs:register_mob("mobs_animal:pumba", {
 | 
			
		||||
	type = "animal",
 | 
			
		||||
	passive = false,
 | 
			
		||||
	attack_type = "dogfight",
 | 
			
		||||
	group_attack = true,
 | 
			
		||||
	reach = 2,
 | 
			
		||||
	damage = 2,
 | 
			
		||||
	hp_min = 5,
 | 
			
		||||
	hp_max = 15,
 | 
			
		||||
	armor = 200,
 | 
			
		||||
	collisionbox = {-0.4, -0.01, -0.4, 0.4, 1, 0.4},
 | 
			
		||||
	visual = "mesh",
 | 
			
		||||
	mesh = "mobs_pumba.x",
 | 
			
		||||
	textures = {
 | 
			
		||||
		{"mobs_pumba.png"},
 | 
			
		||||
	},
 | 
			
		||||
	makes_footstep_sound = true,
 | 
			
		||||
	sounds = {
 | 
			
		||||
		random = "mobs_pig",
 | 
			
		||||
		attack = "mobs_pig_angry",
 | 
			
		||||
	},
 | 
			
		||||
	walk_velocity = 2,
 | 
			
		||||
	run_velocity = 3,
 | 
			
		||||
	jump = true,
 | 
			
		||||
	follow = {"default:apple", "farming:potato"},
 | 
			
		||||
	view_range = 10,
 | 
			
		||||
	drops = {
 | 
			
		||||
		{name = "mobs:pork_raw", chance = 1, min = 1, max = 3},
 | 
			
		||||
	},
 | 
			
		||||
	water_damage = 1,
 | 
			
		||||
	lava_damage = 5,
 | 
			
		||||
	light_damage = 0,
 | 
			
		||||
	fear_height = 2,
 | 
			
		||||
	animation = {
 | 
			
		||||
		speed_normal = 15,
 | 
			
		||||
		stand_start = 25,
 | 
			
		||||
		stand_end = 55,
 | 
			
		||||
		walk_start = 70,
 | 
			
		||||
		walk_end = 100,
 | 
			
		||||
		punch_start = 70,
 | 
			
		||||
		punch_end = 100,
 | 
			
		||||
	},
 | 
			
		||||
	on_rightclick = function(self, clicker)
 | 
			
		||||
 | 
			
		||||
		if mobs:feed_tame(self, clicker, 8, true, true) then
 | 
			
		||||
			return
 | 
			
		||||
		end
 | 
			
		||||
 | 
			
		||||
		mobs:capture_mob(self, clicker, 0, 5, 50, false, nil)
 | 
			
		||||
	end,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
mobs:register_spawn("mobs_animal:pumba",
 | 
			
		||||
	{"ethereal:mushroom_dirt", "default:dirt_with_dry_grass"}, 20, 10, 15000, 1, 31000, true)
 | 
			
		||||
 | 
			
		||||
mobs:register_egg("mobs_animal:pumba", "Warthog", "wool_pink.png", 1)
 | 
			
		||||
 | 
			
		||||
minetest.register_alias("mobs:pumba", "mobs_animal:pumba")
 | 
			
		||||
 | 
			
		||||
-- raw porkchop
 | 
			
		||||
minetest.register_craftitem(":mobs:pork_raw", {
 | 
			
		||||
	description = "Raw Porkchop",
 | 
			
		||||
	inventory_image = "mobs_pork_raw.png",
 | 
			
		||||
	on_use = minetest.item_eat(4),
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
-- cooked porkchop
 | 
			
		||||
minetest.register_craftitem(":mobs:pork_cooked", {
 | 
			
		||||
	description = "Cooked Porkchop",
 | 
			
		||||
	inventory_image = "mobs_pork_cooked.png",
 | 
			
		||||
	on_use = minetest.item_eat(8),
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	type = "cooking",
 | 
			
		||||
	output = "mobs:pork_cooked",
 | 
			
		||||
	recipe = "mobs:pork_raw",
 | 
			
		||||
	cooktime = 5,
 | 
			
		||||
})
 | 
			
		||||