From 1e354f63c0ce46c58de9be4aa74b06598790a0b5 Mon Sep 17 00:00:00 2001 From: Wuzzy Date: Mon, 9 Dec 2019 12:17:51 +0100 Subject: [PATCH] Add chick sounds --- mods/ENTITIES/mcl_mobs/api.lua | 37 ++++++++++++------ mods/ENTITIES/mcl_mobs/api.txt | 2 + mods/ENTITIES/mobs_mc/LICENSE-media.md | 3 ++ mods/ENTITIES/mobs_mc/chicken.lua | 6 +++ .../mobs_mc/sounds/mobs_mc_chicken_child.ogg | Bin 0 -> 9978 bytes 5 files changed, 35 insertions(+), 13 deletions(-) create mode 100644 mods/ENTITIES/mobs_mc/sounds/mobs_mc_chicken_child.ogg diff --git a/mods/ENTITIES/mcl_mobs/api.lua b/mods/ENTITIES/mcl_mobs/api.lua index b9b67078d..fb823270a 100644 --- a/mods/ENTITIES/mcl_mobs/api.lua +++ b/mods/ENTITIES/mcl_mobs/api.lua @@ -96,19 +96,29 @@ local mod_mobspawners = minetest.get_modpath("mcl_mobspawners") ~= nil local mod_hunger = minetest.get_modpath("mcl_hunger") ~= nil -- play sound -local mob_sound = function(self, sound, is_opinion, fixed_pitch) +local mob_sound = function(self, soundname, is_opinion, fixed_pitch) + local soundinfo + if self.sounds_child and self.child then + soundinfo = self.sounds_child + elseif self.sounds then + soundinfo = self.sounds + end + if not soundinfo then + return + end + local sound = soundinfo[soundname] if sound then if is_opinion and self.opinion_sound_cooloff > 0 then return end local pitch if not fixed_pitch then - local base_pitch = self.sounds.base_pitch + local base_pitch = soundinfo.base_pitch if not base_pitch then base_pitch = 1 end - if self.child then + if self.child and (not self.sounds_child) then -- Children have higher pitch pitch = base_pitch * 1.5 else @@ -140,7 +150,7 @@ local do_attack = function(self, player) -- TODO: Implement war_cry sound without being annoying --if random(0, 100) < 90 then - --mob_sound(self, self.sounds.war_cry, true) + --mob_sound(self, "war_cry", true) --end end @@ -512,7 +522,7 @@ local check_for_death = function(self, cause, cmi_cause) remove_texture_mod(self, "^[colorize:#FF000040") end end, self) - mob_sound(self, self.sounds.damage) + mob_sound(self, "damage") end -- backup nametag so we can show health stats @@ -539,7 +549,7 @@ local check_for_death = function(self, cause, cmi_cause) item_drop(self, nil) end - mob_sound(self, self.sounds.death) + mob_sound(self, "death") local pos = self.object:get_pos() @@ -928,7 +938,7 @@ local do_jump = function(self) end, self, v) if self.jump_sound_cooloff <= 0 then - mob_sound(self, self.sounds.jump) + mob_sound(self, "jump") self.jump_sound_cooloff = 0.5 end else @@ -1443,7 +1453,7 @@ local smart_mobs = function(self, s, p, dist, dtime) else -- yay i found path -- TODO: Implement war_cry sound without being annoying - --mob_sound(self, self.sounds.war_cry, true) + --mob_sound(self, "war_cry", true) set_velocity(self, self.walk_velocity) -- follow path now that it has it @@ -2058,7 +2068,7 @@ local do_states = function(self, dtime) self.v_start = true self.timer = 0 self.blinktimer = 0 - mob_sound(self, self.sounds.fuse, nil, false) + mob_sound(self, "fuse", nil, false) -- stop timer if out of reach or direct line of sight elseif self.allow_fuse_reset @@ -2290,7 +2300,7 @@ local do_states = function(self, dtime) if line_of_sight(self, p2, s2) == true then -- play attack sound - mob_sound(self, self.sounds.attack) + mob_sound(self, "attack") -- punch player (or what player is attached to) local attached = self.attack:get_attach() @@ -2344,7 +2354,7 @@ local do_states = function(self, dtime) set_animation(self, "shoot") -- play shoot attack sound - mob_sound(self, self.sounds.shoot_attack) + mob_sound(self, "shoot_attack") local p = self.object:get_pos() @@ -3017,7 +3027,7 @@ local mob_step = function(self, dtime) -- mob plays random sound at times if random(1, 100) == 1 then - mob_sound(self, self.sounds.random, true) + mob_sound(self, "random", true) end -- environmental damage timer (every 1 second) @@ -3228,6 +3238,7 @@ minetest.register_entity(name, { child = def.child or false, texture_mods = {}, shoot_arrow = def.shoot_arrow, + sounds_child = def.sounds_child, -- End of MCL2 extensions on_spawn = def.on_spawn, @@ -3857,7 +3868,7 @@ function mobs:feed_tame(self, clicker, feed_count, breed, tame) end -- make sound when fed so many times - mob_sound(self, self.sounds.random, true) + mob_sound(self, "random", true) end return true diff --git a/mods/ENTITIES/mcl_mobs/api.txt b/mods/ENTITIES/mcl_mobs/api.txt index 0430bbc00..96ae363b4 100644 --- a/mods/ENTITIES/mcl_mobs/api.txt +++ b/mods/ENTITIES/mcl_mobs/api.txt @@ -229,6 +229,8 @@ functions needed for the mob to work properly which contains the following: 'shoot_arrow(self, pos, dir)' function that is called when mob wants to shoot an arrow. You can spawn your own arrow here. pos is mob position, dir is mob's aiming direction + 'sounds_child' same as sounds, but for childs. If not defined, childs will use same + sound as adults but with higher pitch Node Replacement diff --git a/mods/ENTITIES/mobs_mc/LICENSE-media.md b/mods/ENTITIES/mobs_mc/LICENSE-media.md index 7cad2241c..696150480 100644 --- a/mods/ENTITIES/mobs_mc/LICENSE-media.md +++ b/mods/ENTITIES/mobs_mc/LICENSE-media.md @@ -81,6 +81,9 @@ Origin of those models: * PilzAdam and Wuzzy (CC0) * `mobs_mc_chicken_lay_egg.ogg` +* [AGFX](http://www.freesound.org/people/DrMinky/sounds/) (CC0) + * `mobs_mc_chicken_child.ogg` + * Source: * Randomation (CC0) * `green_slime_damage.ogg` * `green_slime_attack.ogg` diff --git a/mods/ENTITIES/mobs_mc/chicken.lua b/mods/ENTITIES/mobs_mc/chicken.lua index c6ce85507..e5c9ba80b 100644 --- a/mods/ENTITIES/mobs_mc/chicken.lua +++ b/mods/ENTITIES/mobs_mc/chicken.lua @@ -42,6 +42,12 @@ mobs:register_mob("mobs_mc:chicken", { -- TODO: death, damage distance = 16, }, + sounds_child = { + random = "mobs_mc_chicken_child", + damage = "mobs_mc_chicken_child", + death = "mobs_mc_chicken_child", + distance = 16, + }, animation = { stand_speed = 25, walk_speed = 25, run_speed = 50, stand_start = 0, stand_end = 0, diff --git a/mods/ENTITIES/mobs_mc/sounds/mobs_mc_chicken_child.ogg b/mods/ENTITIES/mobs_mc/sounds/mobs_mc_chicken_child.ogg new file mode 100644 index 0000000000000000000000000000000000000000..5ea33fc0781f1cd52b3b6427b0e75fc3f8d925ff GIT binary patch literal 9978 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