예제 #1
0
        // TODO: Move to a manager class rather than this packet class!
        public void PlayDefaultBlockSound(Location pos, MaterialSound sound, float pitchmod, float volumemod)
        {
            float pitch  = (float)(Utilities.UtilRandom.NextDouble() * 0.1 + 1.0 - 0.05);
            float volume = (float)Math.Min((Utilities.UtilRandom.NextDouble() * 0.1 + 1.0 - 0.1) * volumemod, 1.0);

            // TODO: registry of some form?
            switch (sound)
            {
            case MaterialSound.GRASS:
            case MaterialSound.SAND:
            case MaterialSound.LEAVES:
            case MaterialSound.WOOD:
            case MaterialSound.METAL:
            case MaterialSound.DIRT:
            case MaterialSound.STONE:
            case MaterialSound.SNOW:
            case MaterialSound.GLASS:
            case MaterialSound.CLAY:
            case MaterialSound.LIQUID:
            case MaterialSound.SLIME:
                // TODO: Don't manually search the sound list every time!
                TheClient.Sounds.Play(TheClient.Sounds.GetSound("sfx/steps/humanoid/" + sound.ToString().ToLowerFast() + (Utilities.UtilRandom.Next(4) + 1)), false, pos, pitch, volume);
                break;

            default:
                return;
            }
        }