protected static IReadOnlyList <Light> GetComplexLight(int x, int y, LightColor color, Direction dir) { var result = new List <Light>(3); if (color.HasFlag(LightColor.Red)) { result.Add(new ShortLight(x, y, LightColor.Red, dir)); } if (color.HasFlag(LightColor.Green)) { result.Add(new ShortLight(x, y, LightColor.Green, dir)); } if (color.HasFlag(LightColor.Blue)) { result.Add(new ShortLight(x, y, LightColor.Blue, dir)); } return(result.Count > 0 ? result : null); }