Esempio n. 1
0
 public void Add()
 {
     Remove();
     DiscreteShadowCaster.GetVisibleCells(cell, litCells, (int)radius, shape);
     for (int i = 0; i < litCells.Count; i++)
     {
         int num  = litCells[i];
         int num2 = Mathf.Max(1, Mathf.RoundToInt(falloffRate * (float)Mathf.Max(Grid.GetCellDistance(num, cell), 1)));
         int num3 = Mathf.Max(0, Grid.RadiationCount[num] + intensity / num2);
         Grid.RadiationCount[num]             = num3;
         RadiationGridManager.previewLux[num] = num3;
     }
 }
    public static void CreatePreview(int origin_cell, float radius, LightShape shape, int lux)
    {
        previewLightCells.Clear();
        ListPool <int, RadiationGridEmitter> .PooledList pooledList = ListPool <int, RadiationGridEmitter> .Allocate();

        pooledList.Add(origin_cell);
        DiscreteShadowCaster.GetVisibleCells(origin_cell, pooledList, (int)radius, shape);
        int num = 0;

        foreach (int item in pooledList)
        {
            if (Grid.IsValidCell(item))
            {
                num = lux / CalculateFalloff(0.5f, item, origin_cell);
                previewLightCells.Add(new Tuple <int, int>(item, num));
                previewLux[item] = num;
            }
        }
        pooledList.Recycle();
    }
 public void UpdateLitCells()
 {
     DiscreteShadowCaster.GetVisibleCells(state.origin, litCells, (int)state.radius, state.shape);
 }