diff --git a/mods/ENTITIES/mcl_mobs/api.lua b/mods/ENTITIES/mcl_mobs/api.lua
index 4ad960bc2c..8b585e533f 100644
--- a/mods/ENTITIES/mcl_mobs/api.lua
+++ b/mods/ENTITIES/mcl_mobs/api.lua
@@ -4357,6 +4357,8 @@ function mobs:feed_tame(self, clicker, feed_count, breed, tame)
clicker:set_wielded_item(item)
end
+ mob_sound(self, "eat", nil, true)
+
-- increase health
self.health = self.health + 4
diff --git a/mods/ENTITIES/mcl_mobs/api.txt b/mods/ENTITIES/mcl_mobs/api.txt
index fa3510ca87..ba4ec4bdf4 100644
--- a/mods/ENTITIES/mcl_mobs/api.txt
+++ b/mods/ENTITIES/mcl_mobs/api.txt
@@ -145,6 +145,7 @@ functions needed for the mob to work properly which contains the following:
'base_pitch' base pitch to use adult mobs, default is 1.0 (MCL2 extension)
'random' played randomly from time to time.
also played for overfeeding animal.
+ 'eat' played when mob eats something
'war_cry' what you hear when mob starts to attack player. (currently disabled)
'attack' what you hear when being attacked.
'shoot_attack' sound played when mob shoots.
diff --git a/mods/ENTITIES/mobs_mc/LICENSE-media.md b/mods/ENTITIES/mobs_mc/LICENSE-media.md
index e77d8cb3bf..30c42c740e 100644
--- a/mods/ENTITIES/mobs_mc/LICENSE-media.md
+++ b/mods/ENTITIES/mobs_mc/LICENSE-media.md
@@ -236,6 +236,9 @@ Origin of those models:
* [kbnevel](https://freesound.org/people/kbnevel/)
* `mobs_mc_magma_cube_attack.ogg` (CC0)
* Derived from:
+* [InspectorJ](https://freesound.org/people/InspectorJ/sounds/429591/)
+ * `mobs_mc_animal_eat_generic.ogg` (CC BY 3.0)
+ * Source:
Note: Many of these sounds have been more or less modified to fit the game.
diff --git a/mods/ENTITIES/mobs_mc/chicken.lua b/mods/ENTITIES/mobs_mc/chicken.lua
index 68b055ac59..23f63ec391 100644
--- a/mods/ENTITIES/mobs_mc/chicken.lua
+++ b/mods/ENTITIES/mobs_mc/chicken.lua
@@ -42,12 +42,14 @@ mobs:register_mob("mobs_mc:chicken", {
random = "mobs_mc_chicken_buck",
damage = "mobs_mc_chicken_hurt",
death = "mobs_mc_chicken_hurt",
+ eat = "mobs_mc_animal_eat_generic",
distance = 16,
},
sounds_child = {
random = "mobs_mc_chicken_child",
damage = "mobs_mc_chicken_child",
death = "mobs_mc_chicken_child",
+ eat = "mobs_mc_animal_eat_generic",
distance = 16,
},
animation = {
diff --git a/mods/ENTITIES/mobs_mc/cow+mooshroom.lua b/mods/ENTITIES/mobs_mc/cow+mooshroom.lua
index 767bfd1598..6eb6f6f5f7 100644
--- a/mods/ENTITIES/mobs_mc/cow+mooshroom.lua
+++ b/mods/ENTITIES/mobs_mc/cow+mooshroom.lua
@@ -32,6 +32,7 @@ local cow_def = {
random = "mobs_mc_cow",
damage = "mobs_mc_cow_hurt",
death = "mobs_mc_cow_hurt",
+ eat = "mobs_mc_animal_eat_generic",
distance = 16,
},
animation = {
diff --git a/mods/ENTITIES/mobs_mc/horse.lua b/mods/ENTITIES/mobs_mc/horse.lua
index d4bfd9af19..76bbafc4cb 100644
--- a/mods/ENTITIES/mobs_mc/horse.lua
+++ b/mods/ENTITIES/mobs_mc/horse.lua
@@ -106,6 +106,7 @@ local horse = {
-- TODO: Separate damage sound
damage = "mobs_mc_horse_death",
death = "mobs_mc_horse_death",
+ eat = "mobs_mc_animal_eat_generic",
distance = 16,
},
fear_height = 4,
@@ -361,6 +362,7 @@ skeleton_horse.sounds = {
random = "mobs_mc_skeleton_random",
death = "mobs_mc_skeleton_death",
damage = "mobs_mc_skeleton_hurt",
+ eat = "mobs_mc_animal_eat_generic",
distance = 16,
}
skeleton_horse.harmed_by_heal = true
@@ -380,6 +382,7 @@ zombie_horse.sounds = {
random = "mobs_mc_zombie_growl",
death = "mobs_mc_zombie_death",
damage = "mobs_mc_zombie_hurt",
+ eat = "mobs_mc_animal_eat_generic",
distance = 16,
}
zombie_horse.harmed_by_heal = true
@@ -398,6 +401,7 @@ donkey.sounds = {
random = "mobs_mc_donkey_random",
damage = "mobs_mc_donkey_hurt",
death = "mobs_mc_donkey_death",
+ eat = "mobs_mc_animal_eat_generic",
distance = 16,
}
donkey.visual_size = { x=horse.visual_size.x*d, y=horse.visual_size.y*d }
diff --git a/mods/ENTITIES/mobs_mc/llama.lua b/mods/ENTITIES/mobs_mc/llama.lua
index 6391e867c9..67a825895c 100644
--- a/mods/ENTITIES/mobs_mc/llama.lua
+++ b/mods/ENTITIES/mobs_mc/llama.lua
@@ -57,6 +57,7 @@ mobs:register_mob("mobs_mc:llama", {
fear_height = 4,
sounds = {
random = "mobs_mc_llama",
+ eat = "mobs_mc_animal_eat_generic",
-- TODO: Death and damage sounds
distance = 16,
},
diff --git a/mods/ENTITIES/mobs_mc/ocelot.lua b/mods/ENTITIES/mobs_mc/ocelot.lua
index 89a41fe440..d2361beac2 100644
--- a/mods/ENTITIES/mobs_mc/ocelot.lua
+++ b/mods/ENTITIES/mobs_mc/ocelot.lua
@@ -49,6 +49,7 @@ local ocelot = {
sounds = {
damage = "mobs_mc_ocelot_hurt",
death = "mobs_mc_ocelot_hurt",
+ eat = "mobs_mc_animal_eat_generic",
distance = 16,
},
animation = {
@@ -113,6 +114,7 @@ cat.sounds = {
random = "mobs_mc_cat_idle",
damage = "mobs_mc_cat_hiss",
death = "mobs_mc_ocelot_hurt",
+ eat = "mobs_mc_animal_eat_generic",
distance = 16,
}
cat.on_rightclick = function(self, clicker)
diff --git a/mods/ENTITIES/mobs_mc/parrot.lua b/mods/ENTITIES/mobs_mc/parrot.lua
index 1773e9143b..28a0a85ae7 100644
--- a/mods/ENTITIES/mobs_mc/parrot.lua
+++ b/mods/ENTITIES/mobs_mc/parrot.lua
@@ -28,6 +28,7 @@ mobs:register_mob("mobs_mc:parrot", {
random = "mobs_mc_parrot_random",
damage = {name="mobs_mc_parrot_hurt", gain=0.3},
death = {name="mobs_mc_parrot_death", gain=0.6},
+ eat = "mobs_mc_animal_eat_generic",
distance = 16,
},
drops = {
@@ -67,6 +68,7 @@ mobs:register_mob("mobs_mc:parrot", {
local item = clicker:get_wielded_item()
-- Kill parrot if fed with cookie
if item:get_name() == mobs_mc.items.cookie then
+ minetest.sound_play("mobs_mc_animal_eat_generic", {object = self.object, max_hear_distance=16}, true)
self.health = 0
-- Doomed to die
self._doomed = true
diff --git a/mods/ENTITIES/mobs_mc/pig.lua b/mods/ENTITIES/mobs_mc/pig.lua
index c59ffdabdf..6f4fc8870d 100644
--- a/mods/ENTITIES/mobs_mc/pig.lua
+++ b/mods/ENTITIES/mobs_mc/pig.lua
@@ -32,6 +32,7 @@ mobs:register_mob("mobs_mc:pig", {
random = "mobs_pig",
death = "mobs_pig_angry",
damage = "mobs_pig",
+ eat = "mobs_mc_animal_eat_generic",
distance = 16,
},
animation = {
diff --git a/mods/ENTITIES/mobs_mc/rabbit.lua b/mods/ENTITIES/mobs_mc/rabbit.lua
index 783a24ff40..d48d0dedee 100644
--- a/mods/ENTITIES/mobs_mc/rabbit.lua
+++ b/mods/ENTITIES/mobs_mc/rabbit.lua
@@ -23,7 +23,11 @@ local rabbit = {
{"mobs_mc_rabbit_black.png"},
},
visual_size = {x=1.5, y=1.5},
- -- TODO: sounds: random, damage, death
+ sounds = {
+ -- TODO: sounds: random, damage, death
+ eat = "mobs_mc_animal_eat_generic",
+ distance = 16,
+ },
makes_footstep_sound = false,
walk_velocity = 1,
run_velocity = 3.7,
diff --git a/mods/ENTITIES/mobs_mc/sheep.lua b/mods/ENTITIES/mobs_mc/sheep.lua
index 374ea4b590..702f2d79d1 100644
--- a/mods/ENTITIES/mobs_mc/sheep.lua
+++ b/mods/ENTITIES/mobs_mc/sheep.lua
@@ -73,6 +73,7 @@ mobs:register_mob("mobs_mc:sheep", {
random = "mobs_sheep",
death = "mobs_sheep",
damage = "mobs_sheep",
+ sounds = "mobs_mc_animal_eat_generic",
distance = 16,
},
animation = {
diff --git a/mods/ENTITIES/mobs_mc/sounds/mobs_mc_animal_eat_generic.ogg b/mods/ENTITIES/mobs_mc/sounds/mobs_mc_animal_eat_generic.ogg
new file mode 100644
index 0000000000..cdf6969bb0
Binary files /dev/null and b/mods/ENTITIES/mobs_mc/sounds/mobs_mc_animal_eat_generic.ogg differ
diff --git a/mods/ENTITIES/mobs_mc/wolf.lua b/mods/ENTITIES/mobs_mc/wolf.lua
index 85ba7e6bda..90b73b69d3 100644
--- a/mods/ENTITIES/mobs_mc/wolf.lua
+++ b/mods/ENTITIES/mobs_mc/wolf.lua
@@ -39,6 +39,7 @@ local wolf = {
war_cry = "mobs_mc_wolf_growl",
damage = {name = "mobs_mc_wolf_hurt", gain=0.6},
death = {name = "mobs_mc_wolf_death", gain=0.6},
+ sounds = "mobs_mc_animal_eat_generic",
distance = 16,
},
pathfinding = 1,
@@ -71,7 +72,7 @@ local wolf = {
ent = dog:get_luaentity()
ent.owner = clicker:get_player_name()
-- cornfirm taming
- minetest.sound_play("mobs_mc_wolf_bark", {object=self.object, max_hear_distance=16})
+ minetest.sound_play("mobs_mc_wolf_bark", {object=self.object, max_hear_distance=16}, true)
self.object:remove()
end
end