private void UpdateStatus(LandBlockStatusFlag flag) { Status.LandBlockStatusFlag = flag; // TODO: Diagnostics uses WinForms, which is not supported in .net standard/core. // TODO: We need a better way to expose diagnostic information moving forward. // Diagnostics.Diagnostics.SetLandBlockKey(id.LandblockX, id.LandblockY, Status); }
private void UpdateStatus(LandBlockStatusFlag flag) { Status.LandBlockStatusFlag = flag; Diagnostics.Diagnostics.SetLandBlockKey(id.LandblockX, id.LandblockY, Status); }
private void UpdateLandBlockDiag() { Graphics imgGraphics = Graphics.FromImage(bitmapdiag); imgGraphics.CompositingMode = CompositingMode.SourceCopy; // The AC landblocks are laid out in a grid of 0,0 by 255,255 but not as you would expect // 0,255 ******** 255,255 // ******** // 0,0 ******** 255,0 // rows decrease / col increase. // Draw to bitmap in memory using (imgGraphics) { int coloffset = 0; int rowoffset = 0; for (int row = 0; row < 255; row++) { for (int col = 0; col < 255; col++) { if (!Diagnostics.LandBlockDiag) { return; } LandBlockStatusFlag key = new LandBlockStatusFlag(); key = Diagnostics.GetLandBlockKeyFlag(col, row); // has it changed from last known state ? if (initdraw) { TempLandBlockKeys[col, row] = key; } else { LandBlockStatusFlag prevkey = new LandBlockStatusFlag(); prevkey = TempLandBlockKeys[col, row]; // if no change then no need to write. if (prevkey == key) { break; } } switch (key) { case LandBlockStatusFlag.IdleLoading: imgGraphics.FillRectangle(brushIdleLoading, coloffset, Reverse(rowoffset), blocksize, blocksize); break; case LandBlockStatusFlag.IdleLoaded: imgGraphics.FillRectangle(brushIdleLoaded, coloffset, Reverse(rowoffset), blocksize, blocksize); break; case LandBlockStatusFlag.InUseLow: imgGraphics.FillRectangle(brushInUseLow, coloffset, Reverse(rowoffset), blocksize, blocksize); break; case LandBlockStatusFlag.InUseMed: imgGraphics.FillRectangle(brushInUseMed, coloffset, Reverse(rowoffset), blocksize, blocksize); break; case LandBlockStatusFlag.InuseHigh: imgGraphics.FillRectangle(brushInuseHigh, coloffset, Reverse(rowoffset), blocksize, blocksize); break; case LandBlockStatusFlag.IdleUnloading: imgGraphics.FillRectangle(brushIdleUnloading, coloffset, Reverse(rowoffset), blocksize, blocksize); break; case LandBlockStatusFlag.IdleUnloaded: // todo: grab pixel from original map image imgGraphics.FillRectangle(brushIdleUnloaded, coloffset, Reverse(rowoffset), blocksize, blocksize); break; case LandBlockStatusFlag.GenericError: imgGraphics.FillRectangle(brushGenericError, coloffset, Reverse(rowoffset), blocksize, blocksize); break; } coloffset = coloffset + blocksize; } rowoffset = rowoffset + blocksize; coloffset = 0; } // over lap ac map Image canvas = new Bitmap(Properties.Resources.map); Graphics gra = Graphics.FromImage(canvas); gra.DrawImage(bitmapdiag, 0, 0); picImage.Image = canvas; } // on first draw this is true. if (initdraw) { // always true for now. initdraw = true; } }