Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- double ViewDistance = 0.9;
- private int DrawSystems(List<Data.System> Systems, Rectangle ScreenRectangle)
- {
- var DefaultOption = new SystemDrawOptions();
- int DrawnSystems = 0;
- List<Data.System> SystemsWithText = new List<Data.System>();
- var bitmap = new Bitmap(img);
- var bitmapData = bitmap.LockBits(
- new Rectangle(System.Drawing.Point.Empty, img.Size),
- ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb);
- var bitsPerPixel = (((int)bitmapData.PixelFormat >> 8) & 0xFF) / 8;
- int bWidth = bitmap.Width,
- bHeight = bitmap.Height;
- unsafe
- {
- var pixelDataPointer = (byte*)bitmapData.Scan0;
- foreach (var system in Systems)
- {
- var Options = DefaultOption;
- if (Style.ContainsKey(system))
- Options = Style[system];
- int DrawSize = 2;
- if (Options.Size > 0)
- DrawSize = Options.Size;
- var DrawRect = GetSystemScreenRect(system, ScreenRectangle, DrawSize);
- var CheckRect = new Rectangle(new System.Drawing.Point(ScreenRectangle.X - DrawSize, ScreenRectangle.Y - DrawSize), new System.Drawing.Size(ScreenRectangle.Width + DrawSize * 2, ScreenRectangle.Height + DrawSize * 2));
- if (DrawRect.IntersectsWith(CheckRect))
- {
- if (DrawRect.X > 0 && DrawRect.X < bWidth &&
- DrawRect.Y > 0 && DrawRect.Y < bHeight)
- {
- var target = bitmapData.Stride * DrawRect.Y + 0 + DrawRect.X * bitsPerPixel;
- pixelDataPointer[target] = (byte)(255 + pixelDataPointer[target]); //Blue
- pixelDataPointer[target + 1] = (byte)(255 + pixelDataPointer[target + 1]); //Green
- pixelDataPointer[target + 2] = (byte)(255 + pixelDataPointer[target + 2]); //Red
- }
- if (Options.ShowName || Options.Text != null)
- SystemsWithText.Add(system);
- DrawnSystems++;
- }
- }
- }
- bitmap.UnlockBits(bitmapData);
- img = bitmap;
- graphics = Graphics.FromImage(img);
- foreach (var system in SystemsWithText)
- {
- var Options = DefaultOption;
- if (Style.ContainsKey(system))
- Options = Style[system];
- int DrawSize = 1;
- if (Options.Size > 0)
- DrawSize = Options.Size;
- var DrawRect = GetSystemScreenRect(system, ScreenRectangle, DrawSize);
- var CheckRect = new Rectangle(new System.Drawing.Point(ScreenRectangle.X - DrawSize, ScreenRectangle.Y - DrawSize), new System.Drawing.Size(ScreenRectangle.Width + DrawSize * 2, ScreenRectangle.Height + DrawSize * 2));
- if (DrawRect.IntersectsWith(CheckRect))
- {
- var Pos = DrawRect.Location + DrawRect.Size;
- if (Options.ShowName)
- {
- graphics.DrawString(system.name, System.Drawing.SystemFonts.DefaultFont, StarBrush, Pos);
- Pos.Y += 15;
- }
- if (Options.Text != null)
- {
- graphics.DrawString(Options.Text, System.Drawing.SystemFonts.DefaultFont, StarBrush, Pos);
- }
- }
- }
- return DrawnSystems;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement