예제 #1
0
    private void AddNoise()
    {
        int cell = Grid.PosToCell(position);
        int val  = effectExtents.x + effectExtents.width;
        int val2 = effectExtents.y + effectExtents.height;
        int x    = effectExtents.x;
        int y    = effectExtents.y;
        int x2   = 0;
        int y2   = 0;

        Grid.CellToXY(cell, out x2, out y2);
        val  = Math.Min(val, Grid.WidthInCells);
        val2 = Math.Min(val2, Grid.HeightInCells);
        x    = Math.Max(0, x);
        y    = Math.Max(0, y);
        for (int i = y; i < val2; i++)
        {
            for (int j = x; j < val; j++)
            {
                if (Grid.VisibilityTest(x2, y2, j, i, false))
                {
                    int   num       = Grid.XYToCell(j, i);
                    float dBForCell = GetDBForCell(num);
                    if (dBForCell > 0f)
                    {
                        float num2 = AudioEventManager.DBToLoudness(dBForCell);
                        Grid.Loudness[num] += num2;
                        Pair <int, float> item = new Pair <int, float>(num, num2);
                        decibels.Add(item);
                    }
                }
            }
        }
    }