forked from mtcontrib/mobs_animal
		
	added support for wooden bucket and milking cow with recipes
This commit is contained in:
		
							
								
								
									
										100
									
								
								cow.lua
									
									
									
									
									
								
							
							
						
						
									
										100
									
								
								cow.lua
									
									
									
									
									
								
							@@ -19,7 +19,7 @@ mobs:register_mob("mobs_animal:cow", {
 | 
				
			|||||||
	mesh = "mobs_cow.b3d",
 | 
						mesh = "mobs_cow.b3d",
 | 
				
			||||||
	textures = {
 | 
						textures = {
 | 
				
			||||||
		{"mobs_cow.png"},
 | 
							{"mobs_cow.png"},
 | 
				
			||||||
		{"mobs_cow2.png"},
 | 
							{"mobs_cow2.png"}
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	makes_footstep_sound = true,
 | 
						makes_footstep_sound = true,
 | 
				
			||||||
	sounds = {
 | 
						sounds = {
 | 
				
			||||||
@@ -32,7 +32,7 @@ mobs:register_mob("mobs_animal:cow", {
 | 
				
			|||||||
	pushable = true,
 | 
						pushable = true,
 | 
				
			||||||
	drops = {
 | 
						drops = {
 | 
				
			||||||
		{name = "mobs:meat_raw", chance = 1, min = 1, max = 3},
 | 
							{name = "mobs:meat_raw", chance = 1, min = 1, max = 3},
 | 
				
			||||||
		{name = "mobs:leather", chance = 1, min = 0, max = 2},
 | 
							{name = "mobs:leather", chance = 1, min = 0, max = 2}
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	water_damage = 0,
 | 
						water_damage = 0,
 | 
				
			||||||
	lava_damage = 5,
 | 
						lava_damage = 5,
 | 
				
			||||||
@@ -56,7 +56,7 @@ mobs:register_mob("mobs_animal:cow", {
 | 
				
			|||||||
		die_start = 165,
 | 
							die_start = 165,
 | 
				
			||||||
		die_end = 185,
 | 
							die_end = 185,
 | 
				
			||||||
		die_speed = 10,
 | 
							die_speed = 10,
 | 
				
			||||||
		die_loop = false,
 | 
							die_loop = false
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	follow = {
 | 
						follow = {
 | 
				
			||||||
		"farming:wheat", "default:grass_1", "farming:barley",
 | 
							"farming:wheat", "default:grass_1", "farming:barley",
 | 
				
			||||||
@@ -88,9 +88,11 @@ mobs:register_mob("mobs_animal:cow", {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
		local tool = clicker:get_wielded_item()
 | 
							local tool = clicker:get_wielded_item()
 | 
				
			||||||
		local name = clicker:get_player_name()
 | 
							local name = clicker:get_player_name()
 | 
				
			||||||
 | 
							local item = tool:get_name()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		-- milk cow with empty bucket
 | 
							-- milk cow with empty bucket
 | 
				
			||||||
		if tool:get_name() == "bucket:bucket_empty" then
 | 
							if item == "bucket:bucket_empty"
 | 
				
			||||||
 | 
							or item == "wooden_bucket:bucket_wood_empty" then
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			--if self.gotten == true
 | 
								--if self.gotten == true
 | 
				
			||||||
			if self.child == true then
 | 
								if self.child == true then
 | 
				
			||||||
@@ -108,12 +110,18 @@ mobs:register_mob("mobs_animal:cow", {
 | 
				
			|||||||
			tool:take_item()
 | 
								tool:take_item()
 | 
				
			||||||
			clicker:set_wielded_item(tool)
 | 
								clicker:set_wielded_item(tool)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			if inv:room_for_item("main", {name = "mobs:bucket_milk"}) then
 | 
								-- which bucket are we using
 | 
				
			||||||
				clicker:get_inventory():add_item("main", "mobs:bucket_milk")
 | 
								local ret_item = "mobs:bucket_milk"
 | 
				
			||||||
 | 
								if item == "wooden_bucket:bucket_wood_empty" then
 | 
				
			||||||
 | 
									ret_item = "mobs:wooden_bucket_milk"
 | 
				
			||||||
 | 
								end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								if inv:room_for_item("main", {name = ret_item}) then
 | 
				
			||||||
 | 
									clicker:get_inventory():add_item("main", ret_item)
 | 
				
			||||||
			else
 | 
								else
 | 
				
			||||||
				local pos = self.object:get_pos()
 | 
									local pos = self.object:get_pos()
 | 
				
			||||||
				pos.y = pos.y + 0.5
 | 
									pos.y = pos.y + 0.5
 | 
				
			||||||
				minetest.add_item(pos, {name = "mobs:bucket_milk"})
 | 
									minetest.add_item(pos, {name = ret_item})
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			self.gotten = true -- milked
 | 
								self.gotten = true -- milked
 | 
				
			||||||
@@ -131,7 +139,7 @@ mobs:register_mob("mobs_animal:cow", {
 | 
				
			|||||||
			self.food = 0
 | 
								self.food = 0
 | 
				
			||||||
			self.gotten = false
 | 
								self.gotten = false
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
	end,
 | 
						end
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -142,10 +150,10 @@ mobs:spawn({
 | 
				
			|||||||
	neighbors = {"group:grass"},
 | 
						neighbors = {"group:grass"},
 | 
				
			||||||
	min_light = 14,
 | 
						min_light = 14,
 | 
				
			||||||
	interval = 60,
 | 
						interval = 60,
 | 
				
			||||||
	chance = 8000, -- 15000
 | 
						chance = 8000,
 | 
				
			||||||
	min_height = 5,
 | 
						min_height = 5,
 | 
				
			||||||
	max_height = 200,
 | 
						max_height = 200,
 | 
				
			||||||
	day_toggle = true,
 | 
						day_toggle = true
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -174,18 +182,16 @@ minetest.register_craftitem(":mobs:glass_milk", {
 | 
				
			|||||||
})
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
minetest.register_craft({
 | 
					minetest.register_craft({
 | 
				
			||||||
--	type = "shapeless",
 | 
					 | 
				
			||||||
	output = "mobs:glass_milk 4",
 | 
						output = "mobs:glass_milk 4",
 | 
				
			||||||
	recipe = {
 | 
						recipe = {
 | 
				
			||||||
		{"vessels:drinking_glass", "vessels:drinking_glass"},
 | 
							{"vessels:drinking_glass", "vessels:drinking_glass"},
 | 
				
			||||||
		{"vessels:drinking_glass", "vessels:drinking_glass"},
 | 
							{"vessels:drinking_glass", "vessels:drinking_glass"},
 | 
				
			||||||
		{"mobs:bucket_milk", ""}
 | 
							{"mobs:bucket_milk", ""}
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	replacements = { {"mobs:bucket_milk", "bucket:bucket_empty"} }
 | 
						replacements = {{"mobs:bucket_milk", "bucket:bucket_empty"}}
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
minetest.register_craft({
 | 
					minetest.register_craft({
 | 
				
			||||||
--	type = "shapeless",
 | 
					 | 
				
			||||||
	output = "mobs:bucket_milk",
 | 
						output = "mobs:bucket_milk",
 | 
				
			||||||
	recipe = {
 | 
						recipe = {
 | 
				
			||||||
		{"group:food_milk_glass", "group:food_milk_glass"},
 | 
							{"group:food_milk_glass", "group:food_milk_glass"},
 | 
				
			||||||
@@ -207,19 +213,18 @@ minetest.register_craftitem(":mobs:butter", {
 | 
				
			|||||||
})
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if minetest.get_modpath("farming") and farming and farming.mod then
 | 
					if minetest.get_modpath("farming") and farming and farming.mod then
 | 
				
			||||||
minetest.register_craft({
 | 
					
 | 
				
			||||||
	type = "shapeless",
 | 
						minetest.register_craft({
 | 
				
			||||||
	output = "mobs:butter",
 | 
							output = "mobs:butter",
 | 
				
			||||||
	recipe = {"mobs:bucket_milk", "farming:salt"},
 | 
							recipe = {{"mobs:bucket_milk", "farming:salt"}},
 | 
				
			||||||
	replacements = {{ "mobs:bucket_milk", "bucket:bucket_empty"}}
 | 
							replacements = {{ "mobs:bucket_milk", "bucket:bucket_empty"}}
 | 
				
			||||||
})
 | 
						})
 | 
				
			||||||
else -- some saplings are high in sodium so makes a good replacement item
 | 
					else -- some saplings are high in sodium so makes a good replacement item
 | 
				
			||||||
minetest.register_craft({
 | 
						minetest.register_craft({
 | 
				
			||||||
	type = "shapeless",
 | 
							output = "mobs:butter",
 | 
				
			||||||
	output = "mobs:butter",
 | 
							recipe = {{"mobs:bucket_milk", "default:sapling"}},
 | 
				
			||||||
	recipe = {"mobs:bucket_milk", "default:sapling"},
 | 
							replacements = {{ "mobs:bucket_milk", "bucket:bucket_empty"}}
 | 
				
			||||||
	replacements = {{ "mobs:bucket_milk", "bucket:bucket_empty"}}
 | 
						})
 | 
				
			||||||
})
 | 
					 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-- cheese wedge
 | 
					-- cheese wedge
 | 
				
			||||||
@@ -227,7 +232,7 @@ minetest.register_craftitem(":mobs:cheese", {
 | 
				
			|||||||
	description = S("Cheese"),
 | 
						description = S("Cheese"),
 | 
				
			||||||
	inventory_image = "mobs_cheese.png",
 | 
						inventory_image = "mobs_cheese.png",
 | 
				
			||||||
	on_use = minetest.item_eat(4),
 | 
						on_use = minetest.item_eat(4),
 | 
				
			||||||
	groups = {food_cheese = 1, flammable = 2},
 | 
						groups = {food_cheese = 1, flammable = 2}
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
minetest.register_craft({
 | 
					minetest.register_craft({
 | 
				
			||||||
@@ -235,7 +240,7 @@ minetest.register_craft({
 | 
				
			|||||||
	output = "mobs:cheese",
 | 
						output = "mobs:cheese",
 | 
				
			||||||
	recipe = "mobs:bucket_milk",
 | 
						recipe = "mobs:bucket_milk",
 | 
				
			||||||
	cooktime = 5,
 | 
						cooktime = 5,
 | 
				
			||||||
	replacements = {{ "mobs:bucket_milk", "bucket:bucket_empty"}}
 | 
						replacements = {{"mobs:bucket_milk", "bucket:bucket_empty"}}
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-- cheese block
 | 
					-- cheese block
 | 
				
			||||||
@@ -252,13 +257,46 @@ minetest.register_craft({
 | 
				
			|||||||
	recipe = {
 | 
						recipe = {
 | 
				
			||||||
		{"group:food_cheese", "group:food_cheese", "group:food_cheese"},
 | 
							{"group:food_cheese", "group:food_cheese", "group:food_cheese"},
 | 
				
			||||||
		{"group:food_cheese", "group:food_cheese", "group:food_cheese"},
 | 
							{"group:food_cheese", "group:food_cheese", "group:food_cheese"},
 | 
				
			||||||
		{"group:food_cheese", "group:food_cheese", "group:food_cheese"},
 | 
							{"group:food_cheese", "group:food_cheese", "group:food_cheese"}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
minetest.register_craft({
 | 
					minetest.register_craft({
 | 
				
			||||||
	output = "mobs:cheese 9",
 | 
						output = "mobs:cheese 9",
 | 
				
			||||||
	recipe = {
 | 
						recipe = {{"mobs:cheeseblock"}}
 | 
				
			||||||
		{"mobs:cheeseblock"},
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-- check for wooden bucket mod and add compatibility
 | 
				
			||||||
 | 
					if minetest.get_modpath("wooden_bucket") then
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						minetest.register_craftitem(":mobs:wooden_bucket_milk", {
 | 
				
			||||||
 | 
							description = S("Wooden Bucket of Milk"),
 | 
				
			||||||
 | 
							inventory_image = "mobs_wooden_bucket_milk.png",
 | 
				
			||||||
 | 
							stack_max = 1,
 | 
				
			||||||
 | 
							on_use = minetest.item_eat(8, "wooden_bucket:bucket_wood_empty"),
 | 
				
			||||||
 | 
							groups = {food_milk = 1, flammable = 3, drink = 1}
 | 
				
			||||||
 | 
						})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						minetest.register_craft({
 | 
				
			||||||
 | 
							output = "mobs:glass_milk 4",
 | 
				
			||||||
 | 
							recipe = {
 | 
				
			||||||
 | 
								{"vessels:drinking_glass", "vessels:drinking_glass"},
 | 
				
			||||||
 | 
								{"vessels:drinking_glass", "vessels:drinking_glass"},
 | 
				
			||||||
 | 
								{"mobs:wooden_bucket_milk", ""}
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							replacements = {{"mobs:wooden_bucket_milk", "wooden_bucket:bucket_wood_empty"}}
 | 
				
			||||||
 | 
						})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						minetest.register_craft({
 | 
				
			||||||
 | 
							output = "mobs:wooden_bucket_milk",
 | 
				
			||||||
 | 
							recipe = {
 | 
				
			||||||
 | 
								{"group:food_milk_glass", "group:food_milk_glass"},
 | 
				
			||||||
 | 
								{"group:food_milk_glass", "group:food_milk_glass"},
 | 
				
			||||||
 | 
								{"wooden_bucket:bucket_wood_empty", ""}
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							replacements = {
 | 
				
			||||||
 | 
								{"group:food_milk_glass", "vessels:drinking_glass 4"}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						})
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										
											BIN
										
									
								
								textures/mobs_wooden_bucket_milk.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/mobs_wooden_bucket_milk.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 195 B  | 
		Reference in New Issue
	
	Block a user