//public IEnumerable<string> RenderIRSData(IEnumerable<IRSResult> irsData, Game game) //{ // var renderedResults = new List<string>(); // int scanColumn = 0; // renderedResults.Add("╒═════╤═════╤═════╕"); // string currentLRSScanLine = "│"; // foreach (IRSResult dataPoint in irsData) // { // string currentRegionResult = null; // if (dataPoint.Unknown) // { // currentRegionResult = Utility.Utility.DamagedScannerUnit(); // } // else if (dataPoint.GalacticBarrier) // { // currentRegionResult = game.Config.GetSetting<string>("GalacticBarrier"); // } // else // { // currentRegionResult += dataPoint; // } // currentLRSScanLine += " " + currentRegionResult + " " + "│"; // if (scanColumn == 2 || scanColumn == 5) // { // renderedResults.Add(currentLRSScanLine); // renderedResults.Add("╞═════╪═════╪═════╡"); // currentLRSScanLine = "│"; // } // if (scanColumn == 8) // { // renderedResults.Add(currentLRSScanLine); // } // scanColumn++; // } // renderedResults.Add("╘═════╧═════╧═════╛"); // return renderedResults; //} //todo: refactor with RenderLRSWithNames public IEnumerable <string> RenderScanWithNames(ScanRenderType scanRenderType, string title, List <IScanResult> data, Game game) { var renderedResults = new List <string>(); int scanColumn = 0; //todo resource this string longestName = Write.GetLongestName(data); var galacticBarrierText = this.Config.GetSetting <string>("GalacticBarrierText"); var barrierID = galacticBarrierText; var cellPadding = 1; //todo resource this int cellLength = longestName.Length > barrierID.Length ? longestName.Length : barrierID.Length; cellLength += cellPadding; var topLeft = this.Config.Setting(scanRenderType + "TopLeft"); var topMiddle = this.Config.Setting(scanRenderType + "TopMiddle"); var topRight = this.Config.Setting(scanRenderType + "TopRight"); var bottomLeft = this.Config.Setting(scanRenderType + "BottomLeft"); var bottomMiddle = this.Config.Setting(scanRenderType + "BottomMiddle"); var bottomRight = this.Config.Setting(scanRenderType + "BottomRight"); var cellLine = new string(Convert.ToChar(this.Config.Setting(scanRenderType + "CellLine")), cellLength + cellPadding); renderedResults.Add(""); renderedResults.Add(title.PadCenter(((cellLength + cellPadding) * 3) + 5)); //*3 because of borders, +5 to line it up better. //todo resource this renderedResults.Add(topLeft + cellLine + topMiddle + cellLine + topMiddle + cellLine + topRight); this.RenderMiddle(scanRenderType, data, barrierID, galacticBarrierText, cellLength, scanColumn, renderedResults, cellLine); renderedResults.Add(bottomLeft + cellLine + bottomMiddle + cellLine + bottomMiddle + cellLine + bottomRight); return(renderedResults); }
private void RenderMiddle(ScanRenderType scanRenderType, IEnumerable <IScanResult> data, string barrierID, string galacticBarrierText, int cellLength, int scanColumn, ICollection <string> renderedResults, string cellLine) { var verticalBoxLine = this.Config.Setting("VerticalBoxLine"); var middleLeft = this.Config.Setting(scanRenderType + "MiddleLeft"); var middle = this.Config.Setting(scanRenderType + "Middle"); var middleRight = this.Config.Setting(scanRenderType + "MiddleRight"); string currentLRSScanLine0 = verticalBoxLine; string currentLRSScanLine1 = verticalBoxLine; string currentLRSScanLine2 = verticalBoxLine; foreach (IScanResult scanDataPoint in data) { string currentRegionName = ""; string currentRegionResult = null; string regionCoordinate = ""; if (scanDataPoint.Coordinate != null) { regionCoordinate = Constants.SECTOR_INDICATOR + scanDataPoint.Coordinate.X + "." + scanDataPoint.Coordinate.Y + ""; currentRegionName += scanDataPoint.RegionName; } if (scanDataPoint.Unknown) { currentRegionResult = Utility.Utility.DamagedScannerUnit(); } else if (scanDataPoint.GalacticBarrier) { currentRegionName += barrierID; currentRegionResult = galacticBarrierText; } else { currentRegionResult += scanDataPoint.ToScanString(); } //breaks because coordinate is not populated when nebula currentLRSScanLine0 += " " + regionCoordinate.PadCenter(cellLength) + verticalBoxLine; currentLRSScanLine1 += " " + currentRegionName.PadCenter(cellLength) + verticalBoxLine; currentLRSScanLine2 += currentRegionResult.PadCenter(cellLength + 1) + verticalBoxLine; //todo resource this if (scanColumn == 2 || scanColumn == 5) //todo resource this { renderedResults.Add(currentLRSScanLine0); renderedResults.Add(currentLRSScanLine1); renderedResults.Add(currentLRSScanLine2); renderedResults.Add(middleLeft + cellLine + middle + cellLine + middle + cellLine + middleRight); currentLRSScanLine0 = verticalBoxLine; currentLRSScanLine1 = verticalBoxLine; currentLRSScanLine2 = verticalBoxLine; } if (scanColumn == 8) //todo resource this { renderedResults.Add(currentLRSScanLine0); renderedResults.Add(currentLRSScanLine1); renderedResults.Add(currentLRSScanLine2); } scanColumn++; } }