local math, vector, minetest, mcl_mobs = math, vector, minetest, mcl_mobs local mob_class = mcl_mobs.mob_class -- play sound function mob_class:mob_sound(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 = soundinfo.base_pitch if not base_pitch then base_pitch = 1 end if self.child and (not self.sounds_child) then -- Children have higher pitch pitch = base_pitch * 1.5 else pitch = base_pitch end -- randomize the pitch a bit pitch = pitch + math.random(-10, 10) * 0.005 end minetest.sound_play(sound, { object = self.object, gain = 1.0, max_hear_distance = self.sounds.distance, pitch = pitch, }, true) self.opinion_sound_cooloff = 1 end end