public static Bitmap GetAcre(MapView m, Font f, int[] scale1, int[] scaleX, Bitmap acre, int index, byte tbuild, byte tterrain) { int mx = m.X / 2; int my = m.Y / 2; SetAcreTerrainPixels(mx, my, m.Map.Terrain, scale1, scaleX, m.TerrainScale); const int grid1 = unchecked ((int)0xFF888888u); const int grid2 = unchecked ((int)0xFF666666u); ImageUtil.SetBitmapData(acre, scaleX); using var gfx = Graphics.FromImage(acre); gfx.DrawAcrePlaza(m.Map.Terrain, mx, my, (ushort)m.Map.PlazaX, (ushort)m.Map.PlazaY, m.TerrainScale, tbuild); var buildings = m.Map.Buildings; var t = m.Map.Terrain; for (var i = 0; i < buildings.Count; i++) { var b = buildings[i]; t.GetBuildingRelativeCoordinates(mx, my, m.TerrainScale, b.X, b.Y, out var x, out var y); var pen = index == i ? Selected : Others; if (tbuild != byte.MaxValue) { var orig = ((SolidBrush)pen).Color; pen = new SolidBrush(Color.FromArgb(tbuild, orig)); } DrawBuilding(gfx, null, m.TerrainScale, pen, x, y, b, Text); } ImageUtil.GetBitmapData(acre, scaleX); ItemLayerSprite.DrawGrid(scaleX, acre.Width, acre.Height, m.AcreScale, grid1); ItemLayerSprite.DrawGrid(scaleX, acre.Width, acre.Height, m.TerrainScale, grid2); ImageUtil.SetBitmapData(acre, scaleX); foreach (var b in buildings) { t.GetBuildingRelativeCoordinates(mx, my, m.TerrainScale, b.X, b.Y, out var x, out var y); if (!t.IsWithinGrid(m.TerrainScale, x, y)) { continue; } var name = b.BuildingType.ToString(); gfx.DrawString(name, f, Text, new PointF(x, y - (m.TerrainScale * 2)), BuildingTextFormat); } if (tterrain != 0) { DrawTerrainTileNames(mx, my, gfx, t, f, m.TerrainScale, tterrain); } return(acre); }
private Bitmap GetMapWithReticle(int topX, int topY, int t, FieldItemLayer layer) { return(ItemLayerSprite.GetBitmapItemLayer(layer, topX, topY, PixelsItemMap, MapReticle, t)); }
private Bitmap GetLayerAcre(int topX, int topY, int t) { var layer = Map.CurrentLayer; return(ItemLayerSprite.GetBitmapItemLayerViewGrid(layer, topX, topY, AcreScale, PixelsItemAcre1, PixelsItemAcreX, ScaleAcre, t)); }