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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