Exemplo n.º 1
0
 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);
 }
Exemplo n.º 2
0
 private void UpdateStatus(LandBlockStatusFlag flag)
 {
     Status.LandBlockStatusFlag = flag;
     Diagnostics.Diagnostics.SetLandBlockKey(id.LandblockX, id.LandblockY, Status);
 }
Exemplo n.º 3
0
        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;
            }
        }