diff --git a/NHSE.WinForms/Resources/Map assets/brush.png b/NHSE.WinForms/Resources/Map assets/brush.png new file mode 100644 index 0000000..fc20571 Binary files /dev/null and b/NHSE.WinForms/Resources/Map assets/brush.png differ diff --git a/NHSE.WinForms/Resources/Map assets/center_brush.png b/NHSE.WinForms/Resources/Map assets/center_brush.png new file mode 100644 index 0000000..a949e47 Binary files /dev/null and b/NHSE.WinForms/Resources/Map assets/center_brush.png differ diff --git a/NHSE.WinForms/Resources/Map assets/center_water_brush.png b/NHSE.WinForms/Resources/Map assets/center_water_brush.png new file mode 100644 index 0000000..5fa0ea7 Binary files /dev/null and b/NHSE.WinForms/Resources/Map assets/center_water_brush.png differ diff --git a/NHSE.WinForms/Resources/Map assets/down_left_dirt_corner.png b/NHSE.WinForms/Resources/Map assets/down_left_dirt_corner.png new file mode 100644 index 0000000..38bc51f Binary files /dev/null and b/NHSE.WinForms/Resources/Map assets/down_left_dirt_corner.png differ diff --git a/NHSE.WinForms/Resources/Map assets/down_left_water_corner.png b/NHSE.WinForms/Resources/Map assets/down_left_water_corner.png new file mode 100644 index 0000000..07ec80a Binary files /dev/null and b/NHSE.WinForms/Resources/Map assets/down_left_water_corner.png differ diff --git a/NHSE.WinForms/Resources/Map assets/down_right_dirt_corner.png b/NHSE.WinForms/Resources/Map assets/down_right_dirt_corner.png new file mode 100644 index 0000000..9ccc1b4 Binary files /dev/null and b/NHSE.WinForms/Resources/Map assets/down_right_dirt_corner.png differ diff --git a/NHSE.WinForms/Resources/Map assets/down_right_water_corner.png b/NHSE.WinForms/Resources/Map assets/down_right_water_corner.png new file mode 100644 index 0000000..3404c82 Binary files /dev/null and b/NHSE.WinForms/Resources/Map assets/down_right_water_corner.png differ diff --git a/NHSE.WinForms/Resources/Map assets/e_brush.png b/NHSE.WinForms/Resources/Map assets/e_brush.png new file mode 100644 index 0000000..817a58e Binary files /dev/null and b/NHSE.WinForms/Resources/Map assets/e_brush.png differ diff --git a/NHSE.WinForms/Resources/Map assets/e_water_brush.png b/NHSE.WinForms/Resources/Map assets/e_water_brush.png new file mode 100644 index 0000000..690e185 Binary files /dev/null and b/NHSE.WinForms/Resources/Map assets/e_water_brush.png differ diff --git a/NHSE.WinForms/Resources/Map assets/mouse.png b/NHSE.WinForms/Resources/Map assets/mouse.png new file mode 100644 index 0000000..814c450 Binary files /dev/null and b/NHSE.WinForms/Resources/Map assets/mouse.png differ diff --git a/NHSE.WinForms/Resources/Map assets/n_brush.png b/NHSE.WinForms/Resources/Map assets/n_brush.png new file mode 100644 index 0000000..720deab Binary files /dev/null and b/NHSE.WinForms/Resources/Map assets/n_brush.png differ diff --git a/NHSE.WinForms/Resources/Map assets/n_water_brush.png b/NHSE.WinForms/Resources/Map assets/n_water_brush.png new file mode 100644 index 0000000..ee18b40 Binary files /dev/null and b/NHSE.WinForms/Resources/Map assets/n_water_brush.png differ diff --git a/NHSE.WinForms/Resources/Map assets/ne_brush_angular.png b/NHSE.WinForms/Resources/Map assets/ne_brush_angular.png new file mode 100644 index 0000000..13a29b5 Binary files /dev/null and b/NHSE.WinForms/Resources/Map assets/ne_brush_angular.png differ diff --git a/NHSE.WinForms/Resources/Map assets/ne_brush_diagonal.png b/NHSE.WinForms/Resources/Map assets/ne_brush_diagonal.png new file mode 100644 index 0000000..5bfd9c0 Binary files /dev/null and b/NHSE.WinForms/Resources/Map assets/ne_brush_diagonal.png differ diff --git a/NHSE.WinForms/Resources/Map assets/ne_water_brush_angular.png b/NHSE.WinForms/Resources/Map assets/ne_water_brush_angular.png new file mode 100644 index 0000000..0975739 Binary files /dev/null and b/NHSE.WinForms/Resources/Map assets/ne_water_brush_angular.png differ diff --git a/NHSE.WinForms/Resources/Map assets/ne_water_brush_diagonal.png b/NHSE.WinForms/Resources/Map assets/ne_water_brush_diagonal.png new file mode 100644 index 0000000..a746136 Binary files /dev/null and b/NHSE.WinForms/Resources/Map assets/ne_water_brush_diagonal.png differ diff --git a/NHSE.WinForms/Resources/Map assets/nw_brush_angular.png b/NHSE.WinForms/Resources/Map assets/nw_brush_angular.png new file mode 100644 index 0000000..7e161a0 Binary files /dev/null and b/NHSE.WinForms/Resources/Map assets/nw_brush_angular.png differ diff --git a/NHSE.WinForms/Resources/Map assets/nw_brush_diagonal.png b/NHSE.WinForms/Resources/Map assets/nw_brush_diagonal.png new file mode 100644 index 0000000..4def61c Binary files /dev/null and b/NHSE.WinForms/Resources/Map assets/nw_brush_diagonal.png differ diff --git a/NHSE.WinForms/Resources/Map assets/nw_water_brush_angular.png b/NHSE.WinForms/Resources/Map assets/nw_water_brush_angular.png new file mode 100644 index 0000000..928fb02 Binary files /dev/null and b/NHSE.WinForms/Resources/Map assets/nw_water_brush_angular.png differ diff --git a/NHSE.WinForms/Resources/Map assets/nw_water_brush_diagonal.png b/NHSE.WinForms/Resources/Map assets/nw_water_brush_diagonal.png new file mode 100644 index 0000000..89a0aa3 Binary files /dev/null and b/NHSE.WinForms/Resources/Map assets/nw_water_brush_diagonal.png differ diff --git a/NHSE.WinForms/Resources/Map assets/s_brush.png b/NHSE.WinForms/Resources/Map assets/s_brush.png new file mode 100644 index 0000000..05e2ed0 Binary files /dev/null and b/NHSE.WinForms/Resources/Map assets/s_brush.png differ diff --git a/NHSE.WinForms/Resources/Map assets/s_water_brush.png b/NHSE.WinForms/Resources/Map assets/s_water_brush.png new file mode 100644 index 0000000..3ebc534 Binary files /dev/null and b/NHSE.WinForms/Resources/Map assets/s_water_brush.png differ diff --git a/NHSE.WinForms/Resources/Map assets/se_brush_angular.png b/NHSE.WinForms/Resources/Map assets/se_brush_angular.png new file mode 100644 index 0000000..a93bd70 Binary files /dev/null and b/NHSE.WinForms/Resources/Map assets/se_brush_angular.png differ diff --git a/NHSE.WinForms/Resources/Map assets/se_brush_diagonal.png b/NHSE.WinForms/Resources/Map assets/se_brush_diagonal.png new file mode 100644 index 0000000..dfc2eda Binary files /dev/null and b/NHSE.WinForms/Resources/Map assets/se_brush_diagonal.png differ diff --git a/NHSE.WinForms/Resources/Map assets/se_water_brush_angular.png b/NHSE.WinForms/Resources/Map assets/se_water_brush_angular.png new file mode 100644 index 0000000..775c5a6 Binary files /dev/null and b/NHSE.WinForms/Resources/Map assets/se_water_brush_angular.png differ diff --git a/NHSE.WinForms/Resources/Map assets/se_water_brush_diagonal.png b/NHSE.WinForms/Resources/Map assets/se_water_brush_diagonal.png new file mode 100644 index 0000000..dd5d430 Binary files /dev/null and b/NHSE.WinForms/Resources/Map assets/se_water_brush_diagonal.png differ diff --git a/NHSE.WinForms/Resources/Map assets/sw_brush_angular.png b/NHSE.WinForms/Resources/Map assets/sw_brush_angular.png new file mode 100644 index 0000000..309a8ad Binary files /dev/null and b/NHSE.WinForms/Resources/Map assets/sw_brush_angular.png differ diff --git a/NHSE.WinForms/Resources/Map assets/sw_brush_diagonal.png b/NHSE.WinForms/Resources/Map assets/sw_brush_diagonal.png new file mode 100644 index 0000000..64c5dc6 Binary files /dev/null and b/NHSE.WinForms/Resources/Map assets/sw_brush_diagonal.png differ diff --git a/NHSE.WinForms/Resources/Map assets/sw_water_brush_angular.png b/NHSE.WinForms/Resources/Map assets/sw_water_brush_angular.png new file mode 100644 index 0000000..ea5fad0 Binary files /dev/null and b/NHSE.WinForms/Resources/Map assets/sw_water_brush_angular.png differ diff --git a/NHSE.WinForms/Resources/Map assets/sw_water_brush_diagonal.png b/NHSE.WinForms/Resources/Map assets/sw_water_brush_diagonal.png new file mode 100644 index 0000000..cdd5e87 Binary files /dev/null and b/NHSE.WinForms/Resources/Map assets/sw_water_brush_diagonal.png differ diff --git a/NHSE.WinForms/Resources/Map assets/top_left_dirt_corner.png b/NHSE.WinForms/Resources/Map assets/top_left_dirt_corner.png new file mode 100644 index 0000000..eb8678b Binary files /dev/null and b/NHSE.WinForms/Resources/Map assets/top_left_dirt_corner.png differ diff --git a/NHSE.WinForms/Resources/Map assets/top_left_water_corner.png b/NHSE.WinForms/Resources/Map assets/top_left_water_corner.png new file mode 100644 index 0000000..adbdbd4 Binary files /dev/null and b/NHSE.WinForms/Resources/Map assets/top_left_water_corner.png differ diff --git a/NHSE.WinForms/Resources/Map assets/top_right_dirt_corner.png b/NHSE.WinForms/Resources/Map assets/top_right_dirt_corner.png new file mode 100644 index 0000000..1d6e02e Binary files /dev/null and b/NHSE.WinForms/Resources/Map assets/top_right_dirt_corner.png differ diff --git a/NHSE.WinForms/Resources/Map assets/top_right_water_corner.png b/NHSE.WinForms/Resources/Map assets/top_right_water_corner.png new file mode 100644 index 0000000..22fd734 Binary files /dev/null and b/NHSE.WinForms/Resources/Map assets/top_right_water_corner.png differ diff --git a/NHSE.WinForms/Resources/Map assets/w_brush.png b/NHSE.WinForms/Resources/Map assets/w_brush.png new file mode 100644 index 0000000..15b2dd9 Binary files /dev/null and b/NHSE.WinForms/Resources/Map assets/w_brush.png differ diff --git a/NHSE.WinForms/Resources/Map assets/w_water_brush.png b/NHSE.WinForms/Resources/Map assets/w_water_brush.png new file mode 100644 index 0000000..8fc1a6b Binary files /dev/null and b/NHSE.WinForms/Resources/Map assets/w_water_brush.png differ diff --git a/NHSE.WinForms/Subforms/Map/FieldItemEditor.Designer.cs b/NHSE.WinForms/Subforms/Map/FieldItemEditor.Designer.cs index 79e5806..e9f3271 100644 --- a/NHSE.WinForms/Subforms/Map/FieldItemEditor.Designer.cs +++ b/NHSE.WinForms/Subforms/Map/FieldItemEditor.Designer.cs @@ -67,6 +67,7 @@ private void InitializeComponent() this.B_RemoveBranches = new System.Windows.Forms.ToolStripMenuItem(); this.B_RemoveShells = new System.Windows.Forms.ToolStripMenuItem(); this.B_RemoveFlowers = new System.Windows.Forms.ToolStripMenuItem(); + this.B_RemoveBushes = new System.Windows.Forms.ToolStripMenuItem(); this.B_FillHoles = new System.Windows.Forms.ToolStripMenuItem(); this.B_RemoveAll = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); @@ -149,7 +150,7 @@ private void InitializeComponent() this.CHK_RedirectExtensionLoad = new System.Windows.Forms.CheckBox(); this.CHK_MoveOnDrag = new System.Windows.Forms.CheckBox(); this.CHK_FieldItemSnap = new System.Windows.Forms.CheckBox(); - this.B_RemoveBushes = new System.Windows.Forms.ToolStripMenuItem(); + this.B_TerrainBrush = new System.Windows.Forms.Button(); this.CM_Click.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.PB_Map)).BeginInit(); this.CM_Picture.SuspendLayout(); @@ -480,108 +481,115 @@ private void InitializeComponent() this.Menu_Batch}); this.CM_Remove.Name = "CM_Picture"; this.CM_Remove.ShowImageMargin = false; - this.CM_Remove.Size = new System.Drawing.Size(156, 362); + this.CM_Remove.Size = new System.Drawing.Size(124, 340); // // B_RemoveAllWeeds // this.B_RemoveAllWeeds.Name = "B_RemoveAllWeeds"; - this.B_RemoveAllWeeds.Size = new System.Drawing.Size(155, 22); + this.B_RemoveAllWeeds.Size = new System.Drawing.Size(123, 22); this.B_RemoveAllWeeds.Text = "Weeds"; this.B_RemoveAllWeeds.Click += new System.EventHandler(this.B_RemoveAllWeeds_Click); // // B_RemoveAllTrees // this.B_RemoveAllTrees.Name = "B_RemoveAllTrees"; - this.B_RemoveAllTrees.Size = new System.Drawing.Size(155, 22); + this.B_RemoveAllTrees.Size = new System.Drawing.Size(123, 22); this.B_RemoveAllTrees.Text = "Trees"; this.B_RemoveAllTrees.Click += new System.EventHandler(this.B_RemoveAllTrees_Click); // // B_RemovePlants // this.B_RemovePlants.Name = "B_RemovePlants"; - this.B_RemovePlants.Size = new System.Drawing.Size(155, 22); + this.B_RemovePlants.Size = new System.Drawing.Size(123, 22); this.B_RemovePlants.Text = "Plants"; this.B_RemovePlants.Click += new System.EventHandler(this.B_RemovePlants_Click); // // B_RemoveObjects // this.B_RemoveObjects.Name = "B_RemoveObjects"; - this.B_RemoveObjects.Size = new System.Drawing.Size(155, 22); + this.B_RemoveObjects.Size = new System.Drawing.Size(123, 22); this.B_RemoveObjects.Text = "Objects"; this.B_RemoveObjects.Click += new System.EventHandler(this.B_RemoveObjects_Click); // // B_RemovePlacedItems // this.B_RemovePlacedItems.Name = "B_RemovePlacedItems"; - this.B_RemovePlacedItems.Size = new System.Drawing.Size(155, 22); + this.B_RemovePlacedItems.Size = new System.Drawing.Size(123, 22); this.B_RemovePlacedItems.Text = "Placed Items"; this.B_RemovePlacedItems.Click += new System.EventHandler(this.B_RemovePlacedItems_Click); // // B_RemoveFences // this.B_RemoveFences.Name = "B_RemoveFences"; - this.B_RemoveFences.Size = new System.Drawing.Size(155, 22); + this.B_RemoveFences.Size = new System.Drawing.Size(123, 22); this.B_RemoveFences.Text = "Fences"; this.B_RemoveFences.Click += new System.EventHandler(this.B_RemoveFences_Click); // // B_RemoveBranches // this.B_RemoveBranches.Name = "B_RemoveBranches"; - this.B_RemoveBranches.Size = new System.Drawing.Size(155, 22); + this.B_RemoveBranches.Size = new System.Drawing.Size(123, 22); this.B_RemoveBranches.Text = "Branches"; this.B_RemoveBranches.Click += new System.EventHandler(this.B_RemoveBranches_Click); // // B_RemoveShells // this.B_RemoveShells.Name = "B_RemoveShells"; - this.B_RemoveShells.Size = new System.Drawing.Size(155, 22); + this.B_RemoveShells.Size = new System.Drawing.Size(123, 22); this.B_RemoveShells.Text = "Shells"; this.B_RemoveShells.Click += new System.EventHandler(this.B_RemoveShells_Click); // // B_RemoveFlowers // this.B_RemoveFlowers.Name = "B_RemoveFlowers"; - this.B_RemoveFlowers.Size = new System.Drawing.Size(155, 22); + this.B_RemoveFlowers.Size = new System.Drawing.Size(123, 22); this.B_RemoveFlowers.Text = "Flowers"; this.B_RemoveFlowers.Click += new System.EventHandler(this.B_RemoveFlowers_Click); // + // B_RemoveBushes + // + this.B_RemoveBushes.Name = "B_RemoveBushes"; + this.B_RemoveBushes.Size = new System.Drawing.Size(123, 22); + this.B_RemoveBushes.Text = "Bushes"; + this.B_RemoveBushes.Click += new System.EventHandler(this.B_RemoveBushes_Click); + // // B_FillHoles // this.B_FillHoles.Name = "B_FillHoles"; - this.B_FillHoles.Size = new System.Drawing.Size(155, 22); + this.B_FillHoles.Size = new System.Drawing.Size(123, 22); this.B_FillHoles.Text = "Holes"; this.B_FillHoles.Click += new System.EventHandler(this.B_FillHoles_Click); // // B_RemoveAll // this.B_RemoveAll.Name = "B_RemoveAll"; - this.B_RemoveAll.Size = new System.Drawing.Size(155, 22); + this.B_RemoveAll.Size = new System.Drawing.Size(123, 22); this.B_RemoveAll.Text = "All"; this.B_RemoveAll.Click += new System.EventHandler(this.B_RemoveAll_Click); // // toolStripSeparator1 // this.toolStripSeparator1.Name = "toolStripSeparator1"; - this.toolStripSeparator1.Size = new System.Drawing.Size(152, 6); + this.toolStripSeparator1.Size = new System.Drawing.Size(120, 6); // // B_WaterFlowers // this.B_WaterFlowers.Name = "B_WaterFlowers"; - this.B_WaterFlowers.Size = new System.Drawing.Size(155, 22); + this.B_WaterFlowers.Size = new System.Drawing.Size(123, 22); this.B_WaterFlowers.Text = "Water Flowers"; this.B_WaterFlowers.Click += new System.EventHandler(this.B_WaterFlowers_Click); // // Menu_Spawn // this.Menu_Spawn.Name = "Menu_Spawn"; - this.Menu_Spawn.Size = new System.Drawing.Size(155, 22); + this.Menu_Spawn.Size = new System.Drawing.Size(123, 22); this.Menu_Spawn.Text = "Spawn..."; this.Menu_Spawn.Click += new System.EventHandler(this.Menu_Spawn_Click); // // Menu_Batch // this.Menu_Batch.Name = "Menu_Batch"; - this.Menu_Batch.Size = new System.Drawing.Size(155, 22); + this.Menu_Batch.Size = new System.Drawing.Size(123, 22); this.Menu_Batch.Text = "Batch Editor"; this.Menu_Batch.Click += new System.EventHandler(this.Menu_Bulk_Click); // @@ -1004,6 +1012,7 @@ private void InitializeComponent() // // Tab_Terrain // + this.Tab_Terrain.Controls.Add(this.B_TerrainBrush); this.Tab_Terrain.Controls.Add(this.L_TerrainTileLabelTransparency); this.Tab_Terrain.Controls.Add(this.TR_Terrain); this.Tab_Terrain.Controls.Add(this.TR_BuildingTransparency); @@ -1085,7 +1094,7 @@ private void InitializeComponent() // this.B_DumpLoadTerrain.Location = new System.Drawing.Point(6, 413); this.B_DumpLoadTerrain.Name = "B_DumpLoadTerrain"; - this.B_DumpLoadTerrain.Size = new System.Drawing.Size(112, 40); + this.B_DumpLoadTerrain.Size = new System.Drawing.Size(49, 40); this.B_DumpLoadTerrain.TabIndex = 40; this.B_DumpLoadTerrain.Text = "Dump/Import"; this.B_DumpLoadTerrain.UseVisualStyleBackColor = true; @@ -1093,9 +1102,9 @@ private void InitializeComponent() // // B_ModifyAllTerrain // - this.B_ModifyAllTerrain.Location = new System.Drawing.Point(126, 413); + this.B_ModifyAllTerrain.Location = new System.Drawing.Point(60, 413); this.B_ModifyAllTerrain.Name = "B_ModifyAllTerrain"; - this.B_ModifyAllTerrain.Size = new System.Drawing.Size(112, 40); + this.B_ModifyAllTerrain.Size = new System.Drawing.Size(89, 40); this.B_ModifyAllTerrain.TabIndex = 39; this.B_ModifyAllTerrain.Text = "Modify All..."; this.B_ModifyAllTerrain.UseVisualStyleBackColor = true; @@ -1387,12 +1396,15 @@ private void InitializeComponent() this.CHK_FieldItemSnap.Text = "Snap Field Items to Grid on Set"; this.CHK_FieldItemSnap.UseVisualStyleBackColor = true; // - // B_RemoveBushes + // B_TerrainBrush // - this.B_RemoveBushes.Name = "B_RemoveBushes"; - this.B_RemoveBushes.Size = new System.Drawing.Size(155, 22); - this.B_RemoveBushes.Text = "Bushes"; - this.B_RemoveBushes.Click += new System.EventHandler(this.B_RemoveBushes_Click); + this.B_TerrainBrush.Location = new System.Drawing.Point(155, 413); + this.B_TerrainBrush.Name = "B_TerrainBrush"; + this.B_TerrainBrush.Size = new System.Drawing.Size(83, 40); + this.B_TerrainBrush.TabIndex = 48; + this.B_TerrainBrush.Text = "Terrain brushes"; + this.B_TerrainBrush.UseVisualStyleBackColor = true; + this.B_TerrainBrush.Click += new System.EventHandler(this.B_TerrainBrush_Click); // // FieldItemEditor // @@ -1429,6 +1441,7 @@ private void InitializeComponent() this.Name = "FieldItemEditor"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; this.Text = "Field Item Editor"; + this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.FieldItemEditor_FormClosed); this.CM_Click.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.PB_Map)).EndInit(); this.CM_Picture.ResumeLayout(false); @@ -1589,5 +1602,6 @@ private void InitializeComponent() private System.Windows.Forms.ToolStripMenuItem B_ExportPlacedDesigns; private System.Windows.Forms.ToolStripMenuItem Menu_Batch; private System.Windows.Forms.ToolStripMenuItem B_RemoveBushes; + private System.Windows.Forms.Button B_TerrainBrush; } } \ No newline at end of file diff --git a/NHSE.WinForms/Subforms/Map/FieldItemEditor.cs b/NHSE.WinForms/Subforms/Map/FieldItemEditor.cs index 98abb77..507c618 100644 --- a/NHSE.WinForms/Subforms/Map/FieldItemEditor.cs +++ b/NHSE.WinForms/Subforms/Map/FieldItemEditor.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Drawing; using System.Drawing.Imaging; using System.IO; @@ -6,6 +7,7 @@ using System.Windows.Forms; using NHSE.Core; using NHSE.Sprites; +using NHSE.WinForms.Subforms.Map; namespace NHSE.WinForms { @@ -28,6 +30,8 @@ public sealed partial class FieldItemEditor : Form, IItemLayerEditor public ItemEditor ItemProvider => ItemEdit; public ItemLayer SpawnLayer => Map.CurrentLayer; + private TerrainBrushEditor? tbeForm; + public FieldItemEditor(MainSave sav) { InitializeComponent(); @@ -118,12 +122,13 @@ private void ReloadMapBackground() private void ReloadAcreBackground() { var tbuild = (byte)TR_BuildingTransparency.Value; - var tterrain = (byte) TR_Terrain.Value; + var tterrain = (byte)TR_Terrain.Value; PB_Acre.BackgroundImage = View.GetBackgroundAcre(L_Coordinates.Font, tbuild, tterrain, SelectedBuildingIndex); PB_Acre.Invalidate(); // background image reassigning to same img doesn't redraw; force it } private void ReloadMapItemGrid() => PB_Map.Image = View.GetMapWithReticle(GetItemTransparency()); + private void ReloadAcreItemGrid() => PB_Acre.Image = View.GetLayerAcre(GetItemTransparency()); public void ReloadItems() @@ -179,7 +184,31 @@ private void OmniTileTerrain(MouseEventArgs e) var x = View.X + HoverX; var y = View.Y + HoverY; var tile = Map.Terrain.GetTile(x / 2, y / 2); - OmniTileTerrain(tile); + if (tbeForm?.brushSelected != true) + { + OmniTileTerrain(tile); + return; + } + + if (tbeForm.Slider_thickness.Value <= 1) + { + SetTile(tile); + return; + } + + List selectedTiles = new(); + int radius = tbeForm.Slider_thickness.Value; + int threshold = (radius * radius) / 2; + for (int i = -radius; i < radius; i++) + { + for (int j = -radius; j < radius; j++) + { + if ((i * i) + (j * j) < threshold) + selectedTiles.Add(Map.Terrain.GetTile((x / 2) + i, (y / 2) + j)); + } + } + + SetTiles(selectedTiles); } private void OmniTile(Item tile, int x, int y) @@ -189,13 +218,16 @@ private void OmniTile(Item tile, int x, int y) default: ViewTile(tile, x, y); return; + case Keys.Alt | Keys.Control: case Keys.Alt | Keys.Control | Keys.Shift: ReplaceTile(tile, x, y); return; + case Keys.Shift: SetTile(tile, x, y); return; + case Keys.Alt: DeleteTile(tile, x, y); return; @@ -209,12 +241,15 @@ private void OmniTileTerrain(TerrainTile tile) default: ViewTile(tile); return; + case Keys.Shift | Keys.Control: RotateTile(tile); return; + case Keys.Shift: SetTile(tile); return; + case Keys.Alt: DeleteTile(tile); return; @@ -252,6 +287,10 @@ private void PB_Acre_MouseMove(object sender, MouseEventArgs e) MoveDrag(e); return; } + if (e.Button == MouseButtons.Left && tbeForm?.brushSelected == true) + { + OmniTileTerrain(e); + } var oldTile = l.GetTile(View.X + HoverX, View.Y + HoverY); var tile = GetTile(l, e, out var x, out var y); @@ -414,11 +453,34 @@ private void RotateTile(TerrainTile tile) private void SetTile(TerrainTile tile) { var pgt = (TerrainTile)PG_TerrainTile.SelectedObject; + if (tbeForm?.randomizeVariation == true) + { + switch (pgt.UnitModel) + { + case TerrainUnitModel.Cliff5B: + case TerrainUnitModel.River5B: + Random rand = new(); + pgt.Variation = (ushort)rand.Next(4); + break; + } + } + tile.CopyFrom(pgt); ReloadBuildingsTerrain(); } + private void SetTiles(IEnumerable tiles) + { + var pgt = (TerrainTile)PG_TerrainTile.SelectedObject; + foreach (TerrainTile tile in tiles) + { + tile.CopyFrom(pgt); + } + + ReloadBuildingsTerrain(); + } + private void DeleteTile(Item tile, int x, int y) { if (CHK_AutoExtension.Checked) @@ -553,6 +615,7 @@ private void B_Down_Click(object sender, EventArgs e) } private void B_DumpAcre_Click(object sender, EventArgs e) => MapDumpHelper.DumpLayerAcreSingle(Map.CurrentLayer, AcreIndex, CB_Acre.Text, (int)NUD_Layer.Value); + private void B_DumpAllAcres_Click(object sender, EventArgs e) => MapDumpHelper.DumpLayerAcreAll(Map.CurrentLayer); private void B_ImportAcre_Click(object sender, EventArgs e) @@ -585,7 +648,9 @@ private void B_ImportBuildings_Click(object sender, EventArgs e) System.Media.SystemSounds.Asterisk.Play(); ReloadBuildingsTerrain(); } + private void B_DumpTerrainAcre_Click(object sender, EventArgs e) => MapDumpHelper.DumpTerrainAcre(Map.Terrain, AcreIndex, CB_Acre.Text); + private void B_DumpTerrainAll_Click(object sender, EventArgs e) => MapDumpHelper.DumpTerrainAll(Map.Terrain); private void B_ImportTerrainAcre_Click(object sender, EventArgs e) @@ -711,7 +776,7 @@ private void PB_Map_MouseMove(object sender, MouseEventArgs e) private void NUD_Layer_ValueChanged(object sender, EventArgs e) { - Map.MapLayer = (int) NUD_Layer.Value - 1; + Map.MapLayer = (int)NUD_Layer.Value - 1; LoadItemGridAcre(); } @@ -756,30 +821,50 @@ private void Modify(ToolStripItem sender, Func action) } private void B_RemoveAllWeeds_Click(object sender, EventArgs e) => Remove(B_RemoveAllWeeds, Map.CurrentLayer.RemoveAllWeeds); + private void B_RemoveAllTrees_Click(object sender, EventArgs e) => Remove(B_RemoveAllTrees, Map.CurrentLayer.RemoveAllTrees); + private void B_FillHoles_Click(object sender, EventArgs e) => Remove(B_FillHoles, Map.CurrentLayer.RemoveAllHoles); + private void B_RemovePlants_Click(object sender, EventArgs e) => Remove(B_RemovePlants, Map.CurrentLayer.RemoveAllPlants); + private void B_RemoveFences_Click(object sender, EventArgs e) => Remove(B_RemoveFences, Map.CurrentLayer.RemoveAllFences); + private void B_RemoveObjects_Click(object sender, EventArgs e) => Remove(B_RemoveObjects, Map.CurrentLayer.RemoveAllObjects); + private void B_RemoveAll_Click(object sender, EventArgs e) => Remove(B_RemoveAll, Map.CurrentLayer.RemoveAll); + private void B_RemovePlacedItems_Click(object sender, EventArgs e) => Remove(B_RemovePlacedItems, Map.CurrentLayer.RemoveAllPlacedItems); + private void B_RemoveShells_Click(object sender, EventArgs e) => Remove(B_RemoveShells, Map.CurrentLayer.RemoveAllShells); + private void B_RemoveBranches_Click(object sender, EventArgs e) => Remove(B_RemoveBranches, Map.CurrentLayer.RemoveAllBranches); + private void B_RemoveFlowers_Click(object sender, EventArgs e) => Remove(B_RemoveFlowers, Map.CurrentLayer.RemoveAllFlowers); + private void B_RemoveBushes_Click(object sender, EventArgs e) => Remove(B_RemoveBushes, Map.CurrentLayer.RemoveAllBushes); private void B_WaterFlowers_Click(object sender, EventArgs e) => Modify(B_WaterFlowers, (xmin, ymin, width, height) => Map.CurrentLayer.WaterAllFlowers(xmin, ymin, width, height, (ModifierKeys & Keys.Control) != 0)); private static void ShowContextMenuBelow(ToolStripDropDown c, Control n) => c.Show(n.PointToScreen(new Point(0, n.Height))); + private void B_RemoveItemDropDown_Click(object sender, EventArgs e) => ShowContextMenuBelow(CM_Remove, B_RemoveItemDropDown); + private void B_DumpLoadField_Click(object sender, EventArgs e) => ShowContextMenuBelow(CM_DLField, B_DumpLoadField); + private void B_DumpLoadTerrain_Click(object sender, EventArgs e) => ShowContextMenuBelow(CM_DLTerrain, B_DumpLoadTerrain); + private void B_DumpLoadBuildings_Click(object sender, EventArgs e) => ShowContextMenuBelow(CM_DLBuilding, B_DumpLoadBuildings); + private void B_ModifyAllTerrain_Click(object sender, EventArgs e) => ShowContextMenuBelow(CM_Terrain, B_ModifyAllTerrain); + private void B_DumpLoadAcres_Click(object sender, EventArgs e) => ShowContextMenuBelow(CM_DLMapAcres, B_DumpLoadAcres); + private void TR_Transparency_Scroll(object sender, EventArgs e) => ReloadItems(); + private void TR_BuildingTransparency_Scroll(object sender, EventArgs e) => ReloadBuildingsTerrain(); + private void TR_Terrain_Scroll(object sender, EventArgs e) => ReloadBuildingsTerrain(); #region Buildings @@ -794,7 +879,7 @@ private void NUD_PlazaX_ValueChanged(object sender, EventArgs e) { if (Loading) return; - Map.PlazaX = (uint) NUD_PlazaX.Value; + Map.PlazaX = (uint)NUD_PlazaX.Value; ReloadBuildingsTerrain(); } @@ -802,7 +887,7 @@ private void NUD_PlazaY_ValueChanged(object sender, EventArgs e) { if (Loading) return; - Map.PlazaY = (uint) NUD_PlazaY.Value; + Map.PlazaY = (uint)NUD_PlazaY.Value; ReloadBuildingsTerrain(); } @@ -866,7 +951,8 @@ private void NUD_BuildingType_ValueChanged(object sender, EventArgs e) LB_Items.Items[SelectedBuildingIndex] = Map.Buildings[SelectedBuildingIndex].ToString(); ReloadBuildingsTerrain(); } - #endregion + + #endregion Buildings #region Acres @@ -911,7 +997,7 @@ private void B_ImportMapAcres_Click(object sender, EventArgs e) System.Media.SystemSounds.Asterisk.Play(); } - #endregion + #endregion Acres private void B_ZeroElevation_Click(object sender, EventArgs e) { @@ -996,12 +1082,24 @@ private void Menu_Bulk_Click(object sender, EventArgs e) SpawnLayer.ClearDanglingExtensions(0, 0, SpawnLayer.MaxWidth, SpawnLayer.MaxHeight); LoadItemGridAcre(); } + + private void B_TerrainBrush_Click(object sender, EventArgs e) + { + tbeForm = new TerrainBrushEditor(PG_TerrainTile, this); + tbeForm.Show(); + } + + private void FieldItemEditor_FormClosed(object sender, FormClosedEventArgs e) + { + tbeForm?.Close(); + } } public interface IItemLayerEditor { void ReloadItems(); + ItemEditor ItemProvider { get; } ItemLayer SpawnLayer { get; } } -} +} \ No newline at end of file diff --git a/NHSE.WinForms/Subforms/Map/TerrainBrushEditor.Designer.cs b/NHSE.WinForms/Subforms/Map/TerrainBrushEditor.Designer.cs new file mode 100644 index 0000000..a4e4a03 --- /dev/null +++ b/NHSE.WinForms/Subforms/Map/TerrainBrushEditor.Designer.cs @@ -0,0 +1,779 @@ + +namespace NHSE.WinForms.Subforms.Map +{ + partial class TerrainBrushEditor + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(TerrainBrushEditor)); + this.nw_rounded_tile = new System.Windows.Forms.Button(); + this.n_tile = new System.Windows.Forms.Button(); + this.ne_rounded_tile = new System.Windows.Forms.Button(); + this.w_tile = new System.Windows.Forms.Button(); + this.middle_tile = new System.Windows.Forms.Button(); + this.e_tile = new System.Windows.Forms.Button(); + this.sw_rounded_tile = new System.Windows.Forms.Button(); + this.s_tile = new System.Windows.Forms.Button(); + this.se_rounded_tile = new System.Windows.Forms.Button(); + this.nw_angular_tile = new System.Windows.Forms.Button(); + this.ne_angular_tile = new System.Windows.Forms.Button(); + this.sw_angular_tile = new System.Windows.Forms.Button(); + this.se_angular_tile = new System.Windows.Forms.Button(); + this.lbl_angular_borders = new System.Windows.Forms.Label(); + this.lbl_diagonal_borders = new System.Windows.Forms.Label(); + this.slider_thickness = new System.Windows.Forms.TrackBar(); + this.btn_normal_click = new System.Windows.Forms.Button(); + this.btn_brush = new System.Windows.Forms.Button(); + this.lbl_brush = new System.Windows.Forms.Label(); + this.lbl_size_count = new System.Windows.Forms.Label(); + this.lbl_elevation_count = new System.Windows.Forms.Label(); + this.lbl_elevation = new System.Windows.Forms.Label(); + this.slider_elevation = new System.Windows.Forms.TrackBar(); + this.tabControl1 = new System.Windows.Forms.TabControl(); + this.tabPage1 = new System.Windows.Forms.TabPage(); + this.dr_dirt_inside = new System.Windows.Forms.Button(); + this.tr_dirt_inside = new System.Windows.Forms.Button(); + this.dl_dirt_inside = new System.Windows.Forms.Button(); + this.tl_dirt_inside = new System.Windows.Forms.Button(); + this.label3 = new System.Windows.Forms.Label(); + this.tabPage2 = new System.Windows.Forms.TabPage(); + this.dr_water_inside = new System.Windows.Forms.Button(); + this.tr_water_inside = new System.Windows.Forms.Button(); + this.dl_water_inside = new System.Windows.Forms.Button(); + this.tl_water_inside = new System.Windows.Forms.Button(); + this.label4 = new System.Windows.Forms.Label(); + this.nw_angular_water_tile = new System.Windows.Forms.Button(); + this.label1 = new System.Windows.Forms.Label(); + this.n_water_tile = new System.Windows.Forms.Button(); + this.ne_angular_water_tile = new System.Windows.Forms.Button(); + this.w_water_tile = new System.Windows.Forms.Button(); + this.center_water_tile = new System.Windows.Forms.Button(); + this.e_water_tile = new System.Windows.Forms.Button(); + this.s_water_tile = new System.Windows.Forms.Button(); + this.sw_angular_water_tile = new System.Windows.Forms.Button(); + this.label2 = new System.Windows.Forms.Label(); + this.se_angular_water_tile = new System.Windows.Forms.Button(); + this.se_diagonal_water_tile = new System.Windows.Forms.Button(); + this.ne_diagonal_water_tile = new System.Windows.Forms.Button(); + this.sw_diagonal_water_tile = new System.Windows.Forms.Button(); + this.nw_diagonal_water_tile = new System.Windows.Forms.Button(); + this.cb_tileVariation = new System.Windows.Forms.CheckBox(); + ((System.ComponentModel.ISupportInitialize)(this.slider_thickness)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.slider_elevation)).BeginInit(); + this.tabControl1.SuspendLayout(); + this.tabPage1.SuspendLayout(); + this.tabPage2.SuspendLayout(); + this.SuspendLayout(); + // + // nw_rounded_tile + // + this.nw_rounded_tile.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("nw_rounded_tile.BackgroundImage"))); + this.nw_rounded_tile.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.nw_rounded_tile.Location = new System.Drawing.Point(8, 42); + this.nw_rounded_tile.Name = "nw_rounded_tile"; + this.nw_rounded_tile.Size = new System.Drawing.Size(64, 64); + this.nw_rounded_tile.TabIndex = 0; + this.nw_rounded_tile.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.nw_rounded_tile.UseVisualStyleBackColor = true; + this.nw_rounded_tile.Click += new System.EventHandler(this.nw_rounded_tile_Click); + // + // n_tile + // + this.n_tile.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("n_tile.BackgroundImage"))); + this.n_tile.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.n_tile.Location = new System.Drawing.Point(78, 42); + this.n_tile.Name = "n_tile"; + this.n_tile.Size = new System.Drawing.Size(64, 64); + this.n_tile.TabIndex = 1; + this.n_tile.UseVisualStyleBackColor = true; + this.n_tile.Click += new System.EventHandler(this.n_tile_Click); + // + // ne_rounded_tile + // + this.ne_rounded_tile.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("ne_rounded_tile.BackgroundImage"))); + this.ne_rounded_tile.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.ne_rounded_tile.Location = new System.Drawing.Point(148, 42); + this.ne_rounded_tile.Name = "ne_rounded_tile"; + this.ne_rounded_tile.Size = new System.Drawing.Size(64, 64); + this.ne_rounded_tile.TabIndex = 2; + this.ne_rounded_tile.UseVisualStyleBackColor = true; + this.ne_rounded_tile.Click += new System.EventHandler(this.ne_rounded_tile_Click); + // + // w_tile + // + this.w_tile.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("w_tile.BackgroundImage"))); + this.w_tile.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.w_tile.Location = new System.Drawing.Point(8, 112); + this.w_tile.Name = "w_tile"; + this.w_tile.Size = new System.Drawing.Size(64, 64); + this.w_tile.TabIndex = 3; + this.w_tile.UseVisualStyleBackColor = true; + this.w_tile.Click += new System.EventHandler(this.w_tile_Click); + // + // middle_tile + // + this.middle_tile.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("middle_tile.BackgroundImage"))); + this.middle_tile.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.middle_tile.Location = new System.Drawing.Point(78, 112); + this.middle_tile.Name = "middle_tile"; + this.middle_tile.Size = new System.Drawing.Size(64, 64); + this.middle_tile.TabIndex = 4; + this.middle_tile.UseVisualStyleBackColor = true; + this.middle_tile.Click += new System.EventHandler(this.middle_tile_Click); + // + // e_tile + // + this.e_tile.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("e_tile.BackgroundImage"))); + this.e_tile.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.e_tile.Location = new System.Drawing.Point(148, 112); + this.e_tile.Name = "e_tile"; + this.e_tile.Size = new System.Drawing.Size(64, 64); + this.e_tile.TabIndex = 5; + this.e_tile.UseVisualStyleBackColor = true; + this.e_tile.Click += new System.EventHandler(this.e_tile_Click); + // + // sw_rounded_tile + // + this.sw_rounded_tile.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("sw_rounded_tile.BackgroundImage"))); + this.sw_rounded_tile.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.sw_rounded_tile.Location = new System.Drawing.Point(8, 181); + this.sw_rounded_tile.Name = "sw_rounded_tile"; + this.sw_rounded_tile.Size = new System.Drawing.Size(64, 64); + this.sw_rounded_tile.TabIndex = 6; + this.sw_rounded_tile.UseVisualStyleBackColor = true; + this.sw_rounded_tile.Click += new System.EventHandler(this.sw_rounded_tile_Click); + // + // s_tile + // + this.s_tile.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("s_tile.BackgroundImage"))); + this.s_tile.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.s_tile.Location = new System.Drawing.Point(78, 181); + this.s_tile.Name = "s_tile"; + this.s_tile.Size = new System.Drawing.Size(64, 64); + this.s_tile.TabIndex = 7; + this.s_tile.UseVisualStyleBackColor = true; + this.s_tile.Click += new System.EventHandler(this.s_tile_Click); + // + // se_rounded_tile + // + this.se_rounded_tile.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("se_rounded_tile.BackgroundImage"))); + this.se_rounded_tile.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.se_rounded_tile.Location = new System.Drawing.Point(148, 181); + this.se_rounded_tile.Name = "se_rounded_tile"; + this.se_rounded_tile.Size = new System.Drawing.Size(64, 64); + this.se_rounded_tile.TabIndex = 8; + this.se_rounded_tile.UseVisualStyleBackColor = true; + this.se_rounded_tile.Click += new System.EventHandler(this.se_rounded_tile_Click); + // + // nw_angular_tile + // + this.nw_angular_tile.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("nw_angular_tile.BackgroundImage"))); + this.nw_angular_tile.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.nw_angular_tile.Location = new System.Drawing.Point(8, 276); + this.nw_angular_tile.Name = "nw_angular_tile"; + this.nw_angular_tile.Size = new System.Drawing.Size(64, 64); + this.nw_angular_tile.TabIndex = 9; + this.nw_angular_tile.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.nw_angular_tile.UseVisualStyleBackColor = true; + this.nw_angular_tile.Click += new System.EventHandler(this.nw_angular_tile_Click); + // + // ne_angular_tile + // + this.ne_angular_tile.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("ne_angular_tile.BackgroundImage"))); + this.ne_angular_tile.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.ne_angular_tile.Location = new System.Drawing.Point(78, 276); + this.ne_angular_tile.Name = "ne_angular_tile"; + this.ne_angular_tile.Size = new System.Drawing.Size(64, 64); + this.ne_angular_tile.TabIndex = 10; + this.ne_angular_tile.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.ne_angular_tile.UseVisualStyleBackColor = true; + this.ne_angular_tile.Click += new System.EventHandler(this.ne_angular_tile_Click); + // + // sw_angular_tile + // + this.sw_angular_tile.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("sw_angular_tile.BackgroundImage"))); + this.sw_angular_tile.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.sw_angular_tile.Location = new System.Drawing.Point(8, 346); + this.sw_angular_tile.Name = "sw_angular_tile"; + this.sw_angular_tile.Size = new System.Drawing.Size(64, 64); + this.sw_angular_tile.TabIndex = 11; + this.sw_angular_tile.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.sw_angular_tile.UseVisualStyleBackColor = true; + this.sw_angular_tile.Click += new System.EventHandler(this.sw_angular_tile_Click); + // + // se_angular_tile + // + this.se_angular_tile.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("se_angular_tile.BackgroundImage"))); + this.se_angular_tile.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.se_angular_tile.Location = new System.Drawing.Point(78, 346); + this.se_angular_tile.Name = "se_angular_tile"; + this.se_angular_tile.Size = new System.Drawing.Size(64, 64); + this.se_angular_tile.TabIndex = 12; + this.se_angular_tile.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.se_angular_tile.UseVisualStyleBackColor = true; + this.se_angular_tile.Click += new System.EventHandler(this.se_angular_tile_Click); + // + // lbl_angular_borders + // + this.lbl_angular_borders.AutoSize = true; + this.lbl_angular_borders.Location = new System.Drawing.Point(5, 256); + this.lbl_angular_borders.Name = "lbl_angular_borders"; + this.lbl_angular_borders.Size = new System.Drawing.Size(87, 13); + this.lbl_angular_borders.TabIndex = 13; + this.lbl_angular_borders.Text = "Angular borders :"; + // + // lbl_diagonal_borders + // + this.lbl_diagonal_borders.AutoSize = true; + this.lbl_diagonal_borders.Location = new System.Drawing.Point(5, 15); + this.lbl_diagonal_borders.Name = "lbl_diagonal_borders"; + this.lbl_diagonal_borders.Size = new System.Drawing.Size(93, 13); + this.lbl_diagonal_borders.TabIndex = 14; + this.lbl_diagonal_borders.Text = "Diagonal borders :"; + // + // slider_thickness + // + this.slider_thickness.Location = new System.Drawing.Point(369, 208); + this.slider_thickness.Minimum = 1; + this.slider_thickness.Name = "slider_thickness"; + this.slider_thickness.Size = new System.Drawing.Size(104, 45); + this.slider_thickness.TabIndex = 15; + this.slider_thickness.Value = 1; + this.slider_thickness.ValueChanged += new System.EventHandler(this.slider_thickness_ValueChanged); + // + // btn_normal_click + // + this.btn_normal_click.Image = ((System.Drawing.Image)(resources.GetObject("btn_normal_click.Image"))); + this.btn_normal_click.Location = new System.Drawing.Point(375, 36); + this.btn_normal_click.Name = "btn_normal_click"; + this.btn_normal_click.Size = new System.Drawing.Size(43, 39); + this.btn_normal_click.TabIndex = 16; + this.btn_normal_click.UseVisualStyleBackColor = true; + this.btn_normal_click.Click += new System.EventHandler(this.btn_normal_click_Click); + // + // btn_brush + // + this.btn_brush.Image = ((System.Drawing.Image)(resources.GetObject("btn_brush.Image"))); + this.btn_brush.Location = new System.Drawing.Point(436, 36); + this.btn_brush.Name = "btn_brush"; + this.btn_brush.Size = new System.Drawing.Size(43, 39); + this.btn_brush.TabIndex = 17; + this.btn_brush.UseVisualStyleBackColor = true; + this.btn_brush.Click += new System.EventHandler(this.btn_brush_Click); + // + // lbl_brush + // + this.lbl_brush.AutoSize = true; + this.lbl_brush.Location = new System.Drawing.Point(369, 188); + this.lbl_brush.Name = "lbl_brush"; + this.lbl_brush.Size = new System.Drawing.Size(61, 13); + this.lbl_brush.TabIndex = 18; + this.lbl_brush.Text = "Brush size :"; + // + // lbl_size_count + // + this.lbl_size_count.AutoSize = true; + this.lbl_size_count.Location = new System.Drawing.Point(459, 188); + this.lbl_size_count.Name = "lbl_size_count"; + this.lbl_size_count.Size = new System.Drawing.Size(13, 13); + this.lbl_size_count.TabIndex = 19; + this.lbl_size_count.Text = "1"; + // + // lbl_elevation_count + // + this.lbl_elevation_count.AutoSize = true; + this.lbl_elevation_count.Location = new System.Drawing.Point(459, 106); + this.lbl_elevation_count.Name = "lbl_elevation_count"; + this.lbl_elevation_count.Size = new System.Drawing.Size(13, 13); + this.lbl_elevation_count.TabIndex = 22; + this.lbl_elevation_count.Text = "0"; + // + // lbl_elevation + // + this.lbl_elevation.AutoSize = true; + this.lbl_elevation.Location = new System.Drawing.Point(369, 106); + this.lbl_elevation.Name = "lbl_elevation"; + this.lbl_elevation.Size = new System.Drawing.Size(57, 13); + this.lbl_elevation.TabIndex = 21; + this.lbl_elevation.Text = "Elevation :"; + // + // slider_elevation + // + this.slider_elevation.Location = new System.Drawing.Point(372, 126); + this.slider_elevation.Maximum = 6; + this.slider_elevation.Name = "slider_elevation"; + this.slider_elevation.Size = new System.Drawing.Size(104, 45); + this.slider_elevation.TabIndex = 20; + this.slider_elevation.ValueChanged += new System.EventHandler(this.slider_elevation_ValueChanged); + // + // tabControl1 + // + this.tabControl1.Controls.Add(this.tabPage1); + this.tabControl1.Controls.Add(this.tabPage2); + this.tabControl1.Location = new System.Drawing.Point(12, 12); + this.tabControl1.Name = "tabControl1"; + this.tabControl1.SelectedIndex = 0; + this.tabControl1.Size = new System.Drawing.Size(351, 452); + this.tabControl1.TabIndex = 23; + // + // tabPage1 + // + this.tabPage1.Controls.Add(this.dr_dirt_inside); + this.tabPage1.Controls.Add(this.tr_dirt_inside); + this.tabPage1.Controls.Add(this.dl_dirt_inside); + this.tabPage1.Controls.Add(this.tl_dirt_inside); + this.tabPage1.Controls.Add(this.label3); + this.tabPage1.Controls.Add(this.nw_rounded_tile); + this.tabPage1.Controls.Add(this.lbl_diagonal_borders); + this.tabPage1.Controls.Add(this.n_tile); + this.tabPage1.Controls.Add(this.ne_rounded_tile); + this.tabPage1.Controls.Add(this.w_tile); + this.tabPage1.Controls.Add(this.middle_tile); + this.tabPage1.Controls.Add(this.e_tile); + this.tabPage1.Controls.Add(this.s_tile); + this.tabPage1.Controls.Add(this.sw_rounded_tile); + this.tabPage1.Controls.Add(this.lbl_angular_borders); + this.tabPage1.Controls.Add(this.se_rounded_tile); + this.tabPage1.Controls.Add(this.se_angular_tile); + this.tabPage1.Controls.Add(this.ne_angular_tile); + this.tabPage1.Controls.Add(this.sw_angular_tile); + this.tabPage1.Controls.Add(this.nw_angular_tile); + this.tabPage1.Location = new System.Drawing.Point(4, 22); + this.tabPage1.Name = "tabPage1"; + this.tabPage1.Padding = new System.Windows.Forms.Padding(3); + this.tabPage1.Size = new System.Drawing.Size(343, 426); + this.tabPage1.TabIndex = 0; + this.tabPage1.Text = "Dirt"; + this.tabPage1.UseVisualStyleBackColor = true; + // + // dr_dirt_inside + // + this.dr_dirt_inside.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("dr_dirt_inside.BackgroundImage"))); + this.dr_dirt_inside.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.dr_dirt_inside.Location = new System.Drawing.Point(233, 346); + this.dr_dirt_inside.Name = "dr_dirt_inside"; + this.dr_dirt_inside.Size = new System.Drawing.Size(64, 64); + this.dr_dirt_inside.TabIndex = 19; + this.dr_dirt_inside.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.dr_dirt_inside.UseVisualStyleBackColor = true; + this.dr_dirt_inside.Click += new System.EventHandler(this.dr_dirt_inside_Click); + // + // tr_dirt_inside + // + this.tr_dirt_inside.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("tr_dirt_inside.BackgroundImage"))); + this.tr_dirt_inside.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.tr_dirt_inside.Location = new System.Drawing.Point(233, 276); + this.tr_dirt_inside.Name = "tr_dirt_inside"; + this.tr_dirt_inside.Size = new System.Drawing.Size(64, 64); + this.tr_dirt_inside.TabIndex = 17; + this.tr_dirt_inside.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.tr_dirt_inside.UseVisualStyleBackColor = true; + this.tr_dirt_inside.Click += new System.EventHandler(this.tr_dirt_inside_Click); + // + // dl_dirt_inside + // + this.dl_dirt_inside.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("dl_dirt_inside.BackgroundImage"))); + this.dl_dirt_inside.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.dl_dirt_inside.Location = new System.Drawing.Point(163, 346); + this.dl_dirt_inside.Name = "dl_dirt_inside"; + this.dl_dirt_inside.Size = new System.Drawing.Size(64, 64); + this.dl_dirt_inside.TabIndex = 18; + this.dl_dirt_inside.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.dl_dirt_inside.UseVisualStyleBackColor = true; + this.dl_dirt_inside.Click += new System.EventHandler(this.dl_dirt_inside_Click); + // + // tl_dirt_inside + // + this.tl_dirt_inside.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("tl_dirt_inside.BackgroundImage"))); + this.tl_dirt_inside.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.tl_dirt_inside.Location = new System.Drawing.Point(163, 276); + this.tl_dirt_inside.Name = "tl_dirt_inside"; + this.tl_dirt_inside.Size = new System.Drawing.Size(64, 64); + this.tl_dirt_inside.TabIndex = 16; + this.tl_dirt_inside.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.tl_dirt_inside.UseVisualStyleBackColor = true; + this.tl_dirt_inside.Click += new System.EventHandler(this.tl_dirt_inside_Click); + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(160, 256); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(75, 13); + this.label3.TabIndex = 15; + this.label3.Text = "Inner corners :"; + // + // tabPage2 + // + this.tabPage2.Controls.Add(this.dr_water_inside); + this.tabPage2.Controls.Add(this.tr_water_inside); + this.tabPage2.Controls.Add(this.dl_water_inside); + this.tabPage2.Controls.Add(this.tl_water_inside); + this.tabPage2.Controls.Add(this.label4); + this.tabPage2.Controls.Add(this.nw_angular_water_tile); + this.tabPage2.Controls.Add(this.label1); + this.tabPage2.Controls.Add(this.n_water_tile); + this.tabPage2.Controls.Add(this.ne_angular_water_tile); + this.tabPage2.Controls.Add(this.w_water_tile); + this.tabPage2.Controls.Add(this.center_water_tile); + this.tabPage2.Controls.Add(this.e_water_tile); + this.tabPage2.Controls.Add(this.s_water_tile); + this.tabPage2.Controls.Add(this.sw_angular_water_tile); + this.tabPage2.Controls.Add(this.label2); + this.tabPage2.Controls.Add(this.se_angular_water_tile); + this.tabPage2.Controls.Add(this.se_diagonal_water_tile); + this.tabPage2.Controls.Add(this.ne_diagonal_water_tile); + this.tabPage2.Controls.Add(this.sw_diagonal_water_tile); + this.tabPage2.Controls.Add(this.nw_diagonal_water_tile); + this.tabPage2.Location = new System.Drawing.Point(4, 22); + this.tabPage2.Name = "tabPage2"; + this.tabPage2.Padding = new System.Windows.Forms.Padding(3); + this.tabPage2.Size = new System.Drawing.Size(343, 426); + this.tabPage2.TabIndex = 1; + this.tabPage2.Text = "Water"; + this.tabPage2.UseVisualStyleBackColor = true; + // + // dr_water_inside + // + this.dr_water_inside.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("dr_water_inside.BackgroundImage"))); + this.dr_water_inside.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.dr_water_inside.Location = new System.Drawing.Point(233, 346); + this.dr_water_inside.Name = "dr_water_inside"; + this.dr_water_inside.Size = new System.Drawing.Size(64, 64); + this.dr_water_inside.TabIndex = 34; + this.dr_water_inside.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.dr_water_inside.UseVisualStyleBackColor = true; + this.dr_water_inside.Click += new System.EventHandler(this.dr_water_inside_Click); + // + // tr_water_inside + // + this.tr_water_inside.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("tr_water_inside.BackgroundImage"))); + this.tr_water_inside.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.tr_water_inside.Location = new System.Drawing.Point(233, 276); + this.tr_water_inside.Name = "tr_water_inside"; + this.tr_water_inside.Size = new System.Drawing.Size(64, 64); + this.tr_water_inside.TabIndex = 32; + this.tr_water_inside.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.tr_water_inside.UseVisualStyleBackColor = true; + this.tr_water_inside.Click += new System.EventHandler(this.tr_water_inside_Click); + // + // dl_water_inside + // + this.dl_water_inside.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("dl_water_inside.BackgroundImage"))); + this.dl_water_inside.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.dl_water_inside.Location = new System.Drawing.Point(163, 346); + this.dl_water_inside.Name = "dl_water_inside"; + this.dl_water_inside.Size = new System.Drawing.Size(64, 64); + this.dl_water_inside.TabIndex = 33; + this.dl_water_inside.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.dl_water_inside.UseVisualStyleBackColor = true; + this.dl_water_inside.Click += new System.EventHandler(this.dl_water_inside_Click); + // + // tl_water_inside + // + this.tl_water_inside.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("tl_water_inside.BackgroundImage"))); + this.tl_water_inside.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.tl_water_inside.Location = new System.Drawing.Point(163, 276); + this.tl_water_inside.Name = "tl_water_inside"; + this.tl_water_inside.Size = new System.Drawing.Size(64, 64); + this.tl_water_inside.TabIndex = 31; + this.tl_water_inside.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.tl_water_inside.UseVisualStyleBackColor = true; + this.tl_water_inside.Click += new System.EventHandler(this.tl_water_inside_Click); + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(160, 256); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(75, 13); + this.label4.TabIndex = 30; + this.label4.Text = "Inner corners :"; + // + // nw_angular_water_tile + // + this.nw_angular_water_tile.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("nw_angular_water_tile.BackgroundImage"))); + this.nw_angular_water_tile.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.nw_angular_water_tile.Location = new System.Drawing.Point(8, 276); + this.nw_angular_water_tile.Name = "nw_angular_water_tile"; + this.nw_angular_water_tile.Size = new System.Drawing.Size(64, 64); + this.nw_angular_water_tile.TabIndex = 15; + this.nw_angular_water_tile.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.nw_angular_water_tile.UseVisualStyleBackColor = true; + this.nw_angular_water_tile.Click += new System.EventHandler(this.nw_angular_water_tile_Click); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(5, 15); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(93, 13); + this.label1.TabIndex = 29; + this.label1.Text = "Diagonal borders :"; + // + // n_water_tile + // + this.n_water_tile.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("n_water_tile.BackgroundImage"))); + this.n_water_tile.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.n_water_tile.Location = new System.Drawing.Point(78, 42); + this.n_water_tile.Name = "n_water_tile"; + this.n_water_tile.Size = new System.Drawing.Size(64, 64); + this.n_water_tile.TabIndex = 16; + this.n_water_tile.UseVisualStyleBackColor = true; + this.n_water_tile.Click += new System.EventHandler(this.n_water_tile_Click); + // + // ne_angular_water_tile + // + this.ne_angular_water_tile.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("ne_angular_water_tile.BackgroundImage"))); + this.ne_angular_water_tile.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.ne_angular_water_tile.Location = new System.Drawing.Point(78, 276); + this.ne_angular_water_tile.Name = "ne_angular_water_tile"; + this.ne_angular_water_tile.Size = new System.Drawing.Size(64, 64); + this.ne_angular_water_tile.TabIndex = 17; + this.ne_angular_water_tile.UseVisualStyleBackColor = true; + this.ne_angular_water_tile.Click += new System.EventHandler(this.ne_angular_water_tile_Click); + // + // w_water_tile + // + this.w_water_tile.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("w_water_tile.BackgroundImage"))); + this.w_water_tile.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.w_water_tile.Location = new System.Drawing.Point(8, 112); + this.w_water_tile.Name = "w_water_tile"; + this.w_water_tile.Size = new System.Drawing.Size(64, 64); + this.w_water_tile.TabIndex = 18; + this.w_water_tile.UseVisualStyleBackColor = true; + this.w_water_tile.Click += new System.EventHandler(this.w_water_tile_Click); + // + // center_water_tile + // + this.center_water_tile.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("center_water_tile.BackgroundImage"))); + this.center_water_tile.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.center_water_tile.Location = new System.Drawing.Point(78, 112); + this.center_water_tile.Name = "center_water_tile"; + this.center_water_tile.Size = new System.Drawing.Size(64, 64); + this.center_water_tile.TabIndex = 19; + this.center_water_tile.UseVisualStyleBackColor = true; + this.center_water_tile.Click += new System.EventHandler(this.center_water_tile_Click); + // + // e_water_tile + // + this.e_water_tile.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("e_water_tile.BackgroundImage"))); + this.e_water_tile.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.e_water_tile.Location = new System.Drawing.Point(148, 112); + this.e_water_tile.Name = "e_water_tile"; + this.e_water_tile.Size = new System.Drawing.Size(64, 64); + this.e_water_tile.TabIndex = 20; + this.e_water_tile.UseVisualStyleBackColor = true; + this.e_water_tile.Click += new System.EventHandler(this.e_water_tile_Click); + // + // s_water_tile + // + this.s_water_tile.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("s_water_tile.BackgroundImage"))); + this.s_water_tile.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.s_water_tile.Location = new System.Drawing.Point(78, 181); + this.s_water_tile.Name = "s_water_tile"; + this.s_water_tile.Size = new System.Drawing.Size(64, 64); + this.s_water_tile.TabIndex = 22; + this.s_water_tile.UseVisualStyleBackColor = true; + this.s_water_tile.Click += new System.EventHandler(this.s_water_tile_Click); + // + // sw_angular_water_tile + // + this.sw_angular_water_tile.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("sw_angular_water_tile.BackgroundImage"))); + this.sw_angular_water_tile.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.sw_angular_water_tile.Location = new System.Drawing.Point(8, 346); + this.sw_angular_water_tile.Name = "sw_angular_water_tile"; + this.sw_angular_water_tile.Size = new System.Drawing.Size(64, 64); + this.sw_angular_water_tile.TabIndex = 21; + this.sw_angular_water_tile.UseVisualStyleBackColor = true; + this.sw_angular_water_tile.Click += new System.EventHandler(this.sw_angular_water_tile_Click); + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(5, 256); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(87, 13); + this.label2.TabIndex = 28; + this.label2.Text = "Angular borders :"; + // + // se_angular_water_tile + // + this.se_angular_water_tile.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("se_angular_water_tile.BackgroundImage"))); + this.se_angular_water_tile.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.se_angular_water_tile.Location = new System.Drawing.Point(78, 346); + this.se_angular_water_tile.Name = "se_angular_water_tile"; + this.se_angular_water_tile.Size = new System.Drawing.Size(64, 64); + this.se_angular_water_tile.TabIndex = 23; + this.se_angular_water_tile.UseVisualStyleBackColor = true; + this.se_angular_water_tile.Click += new System.EventHandler(this.se_angular_water_tile_Click); + // + // se_diagonal_water_tile + // + this.se_diagonal_water_tile.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("se_diagonal_water_tile.BackgroundImage"))); + this.se_diagonal_water_tile.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.se_diagonal_water_tile.Location = new System.Drawing.Point(148, 182); + this.se_diagonal_water_tile.Name = "se_diagonal_water_tile"; + this.se_diagonal_water_tile.Size = new System.Drawing.Size(64, 64); + this.se_diagonal_water_tile.TabIndex = 27; + this.se_diagonal_water_tile.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.se_diagonal_water_tile.UseVisualStyleBackColor = true; + this.se_diagonal_water_tile.Click += new System.EventHandler(this.se_diagonal_water_tile_Click); + // + // ne_diagonal_water_tile + // + this.ne_diagonal_water_tile.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("ne_diagonal_water_tile.BackgroundImage"))); + this.ne_diagonal_water_tile.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.ne_diagonal_water_tile.Location = new System.Drawing.Point(148, 42); + this.ne_diagonal_water_tile.Name = "ne_diagonal_water_tile"; + this.ne_diagonal_water_tile.Size = new System.Drawing.Size(64, 64); + this.ne_diagonal_water_tile.TabIndex = 25; + this.ne_diagonal_water_tile.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.ne_diagonal_water_tile.UseVisualStyleBackColor = true; + this.ne_diagonal_water_tile.Click += new System.EventHandler(this.ne_diagonal_water_tile_Click); + // + // sw_diagonal_water_tile + // + this.sw_diagonal_water_tile.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("sw_diagonal_water_tile.BackgroundImage"))); + this.sw_diagonal_water_tile.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.sw_diagonal_water_tile.Location = new System.Drawing.Point(8, 181); + this.sw_diagonal_water_tile.Name = "sw_diagonal_water_tile"; + this.sw_diagonal_water_tile.Size = new System.Drawing.Size(64, 64); + this.sw_diagonal_water_tile.TabIndex = 26; + this.sw_diagonal_water_tile.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.sw_diagonal_water_tile.UseVisualStyleBackColor = true; + this.sw_diagonal_water_tile.Click += new System.EventHandler(this.sw_diagonal_water_tile_Click); + // + // nw_diagonal_water_tile + // + this.nw_diagonal_water_tile.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("nw_diagonal_water_tile.BackgroundImage"))); + this.nw_diagonal_water_tile.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.nw_diagonal_water_tile.Location = new System.Drawing.Point(8, 42); + this.nw_diagonal_water_tile.Name = "nw_diagonal_water_tile"; + this.nw_diagonal_water_tile.Size = new System.Drawing.Size(64, 64); + this.nw_diagonal_water_tile.TabIndex = 24; + this.nw_diagonal_water_tile.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.nw_diagonal_water_tile.UseVisualStyleBackColor = true; + this.nw_diagonal_water_tile.Click += new System.EventHandler(this.nw_diagonal_water_tile_Click); + // + // cb_tileVariation + // + this.cb_tileVariation.AutoSize = true; + this.cb_tileVariation.Location = new System.Drawing.Point(369, 260); + this.cb_tileVariation.Name = "cb_tileVariation"; + this.cb_tileVariation.Size = new System.Drawing.Size(138, 17); + this.cb_tileVariation.TabIndex = 24; + this.cb_tileVariation.Text = "Randomize tile variation"; + this.cb_tileVariation.UseVisualStyleBackColor = true; + this.cb_tileVariation.CheckedChanged += new System.EventHandler(this.cb_tileVariation_CheckedChanged); + // + // TerrainBrushEditor + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(511, 486); + this.Controls.Add(this.cb_tileVariation); + this.Controls.Add(this.tabControl1); + this.Controls.Add(this.lbl_elevation_count); + this.Controls.Add(this.lbl_elevation); + this.Controls.Add(this.slider_elevation); + this.Controls.Add(this.lbl_size_count); + this.Controls.Add(this.lbl_brush); + this.Controls.Add(this.btn_brush); + this.Controls.Add(this.btn_normal_click); + this.Controls.Add(this.slider_thickness); + this.Name = "TerrainBrushEditor"; + this.Text = "TerrainBrushEditor"; + this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.TerrainBrushEditor_FormClosed); + ((System.ComponentModel.ISupportInitialize)(this.slider_thickness)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.slider_elevation)).EndInit(); + this.tabControl1.ResumeLayout(false); + this.tabPage1.ResumeLayout(false); + this.tabPage1.PerformLayout(); + this.tabPage2.ResumeLayout(false); + this.tabPage2.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Button nw_rounded_tile; + private System.Windows.Forms.Button n_tile; + private System.Windows.Forms.Button ne_rounded_tile; + private System.Windows.Forms.Button w_tile; + private System.Windows.Forms.Button middle_tile; + private System.Windows.Forms.Button e_tile; + private System.Windows.Forms.Button sw_rounded_tile; + private System.Windows.Forms.Button s_tile; + private System.Windows.Forms.Button se_rounded_tile; + private System.Windows.Forms.Button nw_angular_tile; + private System.Windows.Forms.Button ne_angular_tile; + private System.Windows.Forms.Button sw_angular_tile; + private System.Windows.Forms.Button se_angular_tile; + private System.Windows.Forms.Label lbl_angular_borders; + private System.Windows.Forms.Label lbl_diagonal_borders; + private System.Windows.Forms.TrackBar slider_thickness; + private System.Windows.Forms.Button btn_normal_click; + private System.Windows.Forms.Button btn_brush; + private System.Windows.Forms.Label lbl_brush; + private System.Windows.Forms.Label lbl_size_count; + private System.Windows.Forms.Label lbl_elevation_count; + private System.Windows.Forms.Label lbl_elevation; + private System.Windows.Forms.TrackBar slider_elevation; + private System.Windows.Forms.TabControl tabControl1; + private System.Windows.Forms.TabPage tabPage1; + private System.Windows.Forms.TabPage tabPage2; + private System.Windows.Forms.Button nw_angular_water_tile; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Button n_water_tile; + private System.Windows.Forms.Button ne_angular_water_tile; + private System.Windows.Forms.Button w_water_tile; + private System.Windows.Forms.Button center_water_tile; + private System.Windows.Forms.Button e_water_tile; + private System.Windows.Forms.Button s_water_tile; + private System.Windows.Forms.Button sw_angular_water_tile; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Button se_angular_water_tile; + private System.Windows.Forms.Button se_diagonal_water_tile; + private System.Windows.Forms.Button ne_diagonal_water_tile; + private System.Windows.Forms.Button sw_diagonal_water_tile; + private System.Windows.Forms.Button nw_diagonal_water_tile; + private System.Windows.Forms.Button dr_dirt_inside; + private System.Windows.Forms.Button tr_dirt_inside; + private System.Windows.Forms.Button dl_dirt_inside; + private System.Windows.Forms.Button tl_dirt_inside; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Button dr_water_inside; + private System.Windows.Forms.Button tr_water_inside; + private System.Windows.Forms.Button dl_water_inside; + private System.Windows.Forms.Button tl_water_inside; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.CheckBox cb_tileVariation; + } +} \ No newline at end of file diff --git a/NHSE.WinForms/Subforms/Map/TerrainBrushEditor.cs b/NHSE.WinForms/Subforms/Map/TerrainBrushEditor.cs new file mode 100644 index 0000000..1a382a7 --- /dev/null +++ b/NHSE.WinForms/Subforms/Map/TerrainBrushEditor.cs @@ -0,0 +1,408 @@ +using NHSE.Core; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace NHSE.WinForms.Subforms.Map +{ + public partial class TerrainBrushEditor : Form + { + public PropertyGrid PG_TerrainTile; + private FieldItemEditor FIEWindow; + + public TrackBar Slider_thickness { get => slider_thickness; } + + public bool brushSelected; + + public bool randomizeVariation; + + public TerrainBrushEditor(PropertyGrid pG_TerrainTile, FieldItemEditor fieWindow) + { + InitializeComponent(); + this.PG_TerrainTile = pG_TerrainTile; + this.FIEWindow = fieWindow; + } + + #region Tiles buttons + + #region Dirt tiles + + private void nw_rounded_tile_Click(object sender, EventArgs e) + { + TerrainTile newTile = new TerrainTile(); + newTile.UnitModel = TerrainUnitModel.Cliff3B; + newTile.LandMakingAngle = 0; + newTile.Elevation = (ushort)slider_elevation.Value; + + PG_TerrainTile.SelectedObject = newTile; + } + + private void n_tile_Click(object sender, EventArgs e) + { + TerrainTile newTile = new TerrainTile(); + newTile.UnitModel = TerrainUnitModel.Cliff5B; + newTile.LandMakingAngle = 3; + newTile.Elevation = (ushort)slider_elevation.Value; + + PG_TerrainTile.SelectedObject = newTile; + } + + private void ne_rounded_tile_Click(object sender, EventArgs e) + { + TerrainTile newTile = new TerrainTile(); + newTile.UnitModel = TerrainUnitModel.Cliff3B; + newTile.LandMakingAngle = 3; + newTile.Elevation = (ushort)slider_elevation.Value; + + PG_TerrainTile.SelectedObject = newTile; + } + + private void w_tile_Click(object sender, EventArgs e) + { + TerrainTile newTile = new TerrainTile(); + newTile.UnitModel = TerrainUnitModel.Cliff5B; + newTile.LandMakingAngle = 0; + newTile.Elevation = (ushort)slider_elevation.Value; + + PG_TerrainTile.SelectedObject = newTile; + } + + private void middle_tile_Click(object sender, EventArgs e) + { + TerrainTile newTile = new TerrainTile(); + newTile.Elevation = (ushort)slider_elevation.Value; + + PG_TerrainTile.SelectedObject = newTile; + } + + private void e_tile_Click(object sender, EventArgs e) + { + TerrainTile newTile = new TerrainTile(); + newTile.UnitModel = TerrainUnitModel.Cliff5B; + newTile.LandMakingAngle = 2; + newTile.Elevation = (ushort)slider_elevation.Value; + + PG_TerrainTile.SelectedObject = newTile; + } + + private void sw_rounded_tile_Click(object sender, EventArgs e) + { + TerrainTile newTile = new TerrainTile(); + newTile.UnitModel = TerrainUnitModel.Cliff3B; + newTile.LandMakingAngle = 1; + newTile.Elevation = (ushort)slider_elevation.Value; + + PG_TerrainTile.SelectedObject = newTile; + } + + private void s_tile_Click(object sender, EventArgs e) + { + TerrainTile newTile = new TerrainTile(); + newTile.UnitModel = TerrainUnitModel.Cliff5B; + newTile.LandMakingAngle = 1; + newTile.Elevation = (ushort)slider_elevation.Value; + + PG_TerrainTile.SelectedObject = newTile; + } + + private void se_rounded_tile_Click(object sender, EventArgs e) + { + TerrainTile newTile = new TerrainTile(); + newTile.UnitModel = TerrainUnitModel.Cliff3B; + newTile.LandMakingAngle = 2; + newTile.Elevation = (ushort)slider_elevation.Value; + + PG_TerrainTile.SelectedObject = newTile; + } + + private void nw_angular_tile_Click(object sender, EventArgs e) + { + TerrainTile newTile = new TerrainTile(); + newTile.UnitModel = TerrainUnitModel.Cliff3C; + newTile.Elevation = (ushort)slider_elevation.Value; + + PG_TerrainTile.SelectedObject = newTile; + } + + private void ne_angular_tile_Click(object sender, EventArgs e) + { + TerrainTile newTile = new TerrainTile(); + newTile.UnitModel = TerrainUnitModel.Cliff3C; + newTile.LandMakingAngle = 3; + newTile.Elevation = (ushort)slider_elevation.Value; + + PG_TerrainTile.SelectedObject = newTile; + } + + private void sw_angular_tile_Click(object sender, EventArgs e) + { + TerrainTile newTile = new TerrainTile(); + newTile.UnitModel = TerrainUnitModel.Cliff3C; + newTile.LandMakingAngle = 1; + newTile.Elevation = (ushort)slider_elevation.Value; + + PG_TerrainTile.SelectedObject = newTile; + } + + private void se_angular_tile_Click(object sender, EventArgs e) + { + TerrainTile newTile = new TerrainTile(); + newTile.UnitModel = TerrainUnitModel.Cliff3C; + newTile.LandMakingAngle = 2; + newTile.Elevation = (ushort)slider_elevation.Value; + + PG_TerrainTile.SelectedObject = newTile; + } + + private void tr_dirt_inside_Click(object sender, EventArgs e) + { + TerrainTile newTile = new TerrainTile(); + newTile.UnitModel = TerrainUnitModel.Cliff7A; + newTile.LandMakingAngle = 2; + newTile.Elevation = (ushort)slider_elevation.Value; + + PG_TerrainTile.SelectedObject = newTile; + } + + private void dl_dirt_inside_Click(object sender, EventArgs e) + { + TerrainTile newTile = new TerrainTile(); + newTile.UnitModel = TerrainUnitModel.Cliff7A; + newTile.Elevation = (ushort)slider_elevation.Value; + + PG_TerrainTile.SelectedObject = newTile; + } + + private void dr_dirt_inside_Click(object sender, EventArgs e) + { + TerrainTile newTile = new TerrainTile(); + newTile.UnitModel = TerrainUnitModel.Cliff7A; + newTile.LandMakingAngle = 1; + newTile.Elevation = (ushort)slider_elevation.Value; + + PG_TerrainTile.SelectedObject = newTile; + } + + #endregion Dirt tiles + + #region Water tiles + + private void nw_diagonal_water_tile_Click(object sender, EventArgs e) + { + TerrainTile newTile = new TerrainTile(); + newTile.UnitModel = TerrainUnitModel.River3B; + newTile.Elevation = (ushort)slider_elevation.Value; + + PG_TerrainTile.SelectedObject = newTile; + } + + private void n_water_tile_Click(object sender, EventArgs e) + { + TerrainTile newTile = new TerrainTile(); + newTile.UnitModel = TerrainUnitModel.River5B; + newTile.LandMakingAngle = 3; + newTile.Elevation = (ushort)slider_elevation.Value; + + PG_TerrainTile.SelectedObject = newTile; + } + + private void ne_diagonal_water_tile_Click(object sender, EventArgs e) + { + TerrainTile newTile = new TerrainTile(); + newTile.UnitModel = TerrainUnitModel.River3B; + newTile.LandMakingAngle = 3; + newTile.Elevation = (ushort)slider_elevation.Value; + + PG_TerrainTile.SelectedObject = newTile; + } + + private void w_water_tile_Click(object sender, EventArgs e) + { + TerrainTile newTile = new TerrainTile(); + newTile.UnitModel = TerrainUnitModel.River5B; + newTile.Elevation = (ushort)slider_elevation.Value; + + PG_TerrainTile.SelectedObject = newTile; + } + + private void center_water_tile_Click(object sender, EventArgs e) + { + TerrainTile newTile = new TerrainTile(); + newTile.UnitModel = TerrainUnitModel.River8A; + newTile.Elevation = (ushort)slider_elevation.Value; + + PG_TerrainTile.SelectedObject = newTile; + } + + private void e_water_tile_Click(object sender, EventArgs e) + { + TerrainTile newTile = new TerrainTile(); + newTile.UnitModel = TerrainUnitModel.River5B; + newTile.LandMakingAngle = 2; + newTile.Elevation = (ushort)slider_elevation.Value; + + PG_TerrainTile.SelectedObject = newTile; + } + + private void sw_diagonal_water_tile_Click(object sender, EventArgs e) + { + TerrainTile newTile = new TerrainTile(); + newTile.UnitModel = TerrainUnitModel.River3B; + newTile.LandMakingAngle = 1; + newTile.Elevation = (ushort)slider_elevation.Value; + + PG_TerrainTile.SelectedObject = newTile; + } + + private void s_water_tile_Click(object sender, EventArgs e) + { + TerrainTile newTile = new TerrainTile(); + newTile.UnitModel = TerrainUnitModel.River5B; + newTile.LandMakingAngle = 1; + newTile.Elevation = (ushort)slider_elevation.Value; + + PG_TerrainTile.SelectedObject = newTile; + } + + private void se_diagonal_water_tile_Click(object sender, EventArgs e) + { + TerrainTile newTile = new TerrainTile(); + newTile.UnitModel = TerrainUnitModel.River3B; + newTile.LandMakingAngle = 2; + newTile.Elevation = (ushort)slider_elevation.Value; + + PG_TerrainTile.SelectedObject = newTile; + } + + private void nw_angular_water_tile_Click(object sender, EventArgs e) + { + TerrainTile newTile = new TerrainTile(); + newTile.UnitModel = TerrainUnitModel.River3C; + newTile.Elevation = (ushort)slider_elevation.Value; + + PG_TerrainTile.SelectedObject = newTile; + } + + private void ne_angular_water_tile_Click(object sender, EventArgs e) + { + TerrainTile newTile = new TerrainTile(); + newTile.UnitModel = TerrainUnitModel.River3C; + newTile.LandMakingAngle = 3; + newTile.Elevation = (ushort)slider_elevation.Value; + + PG_TerrainTile.SelectedObject = newTile; + } + + private void sw_angular_water_tile_Click(object sender, EventArgs e) + { + TerrainTile newTile = new TerrainTile(); + newTile.UnitModel = TerrainUnitModel.River3C; + newTile.LandMakingAngle = 1; + newTile.Elevation = (ushort)slider_elevation.Value; + + PG_TerrainTile.SelectedObject = newTile; + } + + private void se_angular_water_tile_Click(object sender, EventArgs e) + { + TerrainTile newTile = new TerrainTile(); + newTile.UnitModel = TerrainUnitModel.River3C; + newTile.LandMakingAngle = 2; + newTile.Elevation = (ushort)slider_elevation.Value; + + PG_TerrainTile.SelectedObject = newTile; + } + + private void tl_dirt_inside_Click(object sender, EventArgs e) + { + TerrainTile newTile = new TerrainTile(); + newTile.UnitModel = TerrainUnitModel.Cliff7A; + newTile.LandMakingAngle = 3; + newTile.Elevation = (ushort)slider_elevation.Value; + + PG_TerrainTile.SelectedObject = newTile; + } + + private void tl_water_inside_Click(object sender, EventArgs e) + { + TerrainTile newTile = new TerrainTile(); + newTile.UnitModel = TerrainUnitModel.River7A; + newTile.LandMakingAngle = 3; + newTile.Elevation = (ushort)slider_elevation.Value; + + PG_TerrainTile.SelectedObject = newTile; + } + + private void tr_water_inside_Click(object sender, EventArgs e) + { + TerrainTile newTile = new TerrainTile(); + newTile.UnitModel = TerrainUnitModel.River7A; + newTile.LandMakingAngle = 2; + newTile.Elevation = (ushort)slider_elevation.Value; + + PG_TerrainTile.SelectedObject = newTile; + } + + private void dl_water_inside_Click(object sender, EventArgs e) + { + TerrainTile newTile = new TerrainTile(); + newTile.UnitModel = TerrainUnitModel.River7A; + newTile.Elevation = (ushort)slider_elevation.Value; + + PG_TerrainTile.SelectedObject = newTile; + } + + private void dr_water_inside_Click(object sender, EventArgs e) + { + TerrainTile newTile = new TerrainTile(); + newTile.UnitModel = TerrainUnitModel.River7A; + newTile.LandMakingAngle = 1; + newTile.Elevation = (ushort)slider_elevation.Value; + + PG_TerrainTile.SelectedObject = newTile; + } + + #endregion Water tiles + + #endregion Tiles buttons + + private void slider_thickness_ValueChanged(object sender, EventArgs e) + { + lbl_size_count.Text = slider_thickness.Value.ToString(); + } + + private void slider_elevation_ValueChanged(object sender, EventArgs e) + { + lbl_elevation_count.Text = slider_elevation.Value.ToString(); + TerrainTile currentTile = (TerrainTile)PG_TerrainTile.SelectedObject; + currentTile.Elevation = (ushort)slider_elevation.Value; + PG_TerrainTile.SelectedObject = currentTile; + } + + private void btn_brush_Click(object sender, EventArgs e) + { + brushSelected = true; + } + + private void TerrainBrushEditor_FormClosed(object sender, FormClosedEventArgs e) + { + brushSelected = false; + } + + private void btn_normal_click_Click(object sender, EventArgs e) + { + brushSelected = false; + } + + private void cb_tileVariation_CheckedChanged(object sender, EventArgs e) + { + randomizeVariation = cb_tileVariation.Checked; + } + } +} \ No newline at end of file diff --git a/NHSE.WinForms/Subforms/Map/TerrainBrushEditor.resx b/NHSE.WinForms/Subforms/Map/TerrainBrushEditor.resx new file mode 100644 index 0000000..a7959a5 --- /dev/null +++ b/NHSE.WinForms/Subforms/Map/TerrainBrushEditor.resx @@ -0,0 +1,448 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAANJJREFUWEft + kkEKwkAMRT2Se6/SnTtP4MaT1EsICq48gcfwDG5jMiQwIylp2ilhYD68UtLm/w8zu0gdRwB+jVEv0NXv + QC9QpcDptS+whP+AEF6A4LFfFJZjicI0+LNfuLy6wKojQIPFwUKbBXCxYEoUYNF2gSnlARbhBQhemy9c + Ugvkph54fb5wqVqBKkeQG3ppq8DzOiQuj0NCM/TSVoH3/ZzAEkBohl7CCxBsb0uCv59bQjNbAtvb2qKA + 9xJuU4AeAmcVM5lT+P9cyA2teTkD+AEK/VymHh4LtQAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAHRJREFUWEft + lEEKwCAMBPMk/+StX/Ivfi3tCoUectFCVnCFySGrOGDQanM30hp3S+ApVMJmJiiaAb7A1YstgHO/2EqA + whCIgizoAoD6BIA/AxKQQBRkQRcA1CcAGkIJ8AWiIJOz/4E9ZgDl5Rus9mf21uZ+A370sqxy3sgYAAAA + AElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAALBJREFUWEft + ktENgCAMRBnJnfxzJXdxNWzNQVQKiDRBIpe8xFSvvKhmXq01LTMESKCaqkgLS6kKLRj/QHuBZZskTAq1 + fFngAh7XF2kuwMtLQC0QcRSHSuJBMVDjNxcczhTn6Se4g7oPzd6JdCvgwBofmv1MwIF1XsCRTXMBLmuC + tR0JaH0CgSEwBA5oP06KRCppIgnwzM+lkiZZAboQi1r0IXDmVHw0T93DLDgDM8LaHcL21oKZfDHMAAAA + AElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAALdJREFUWEft + jrENwkAMRTNSOsZggXR0dOxCBzNEoqOizSLMQHv4205kWSfEkeJEzl96J90v/F93uKRkwN933N+vg+8W + jo+e+ab3XWdDBWNDw9xBALyeN2Y+tIbqAkBnJM0J0N0Q+AOBaTxtVwDojCQn4Ic3JUBbIVAukDv0K9UF + gM5ImhOgrRAIgboCQGckzQnQVgjUFQA6I2lOgLbKBfbnHZM7WAoL4DHMErZbBHwP7LFPXb5P6Q1Ekiip + tp7kbQAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAG5JREFUWEft + k8EJwDAMAztSduqvK2WXruYigyEPUwgEKxA97iPlcRDrurtZ8LzNGbPZfOYtcIEoq3GBrKiCLgCoXwD4 + NyABukBWVEEXAJqhBLQCrUACZ88QnD3DPW6ALpAVlegI9xAIxuIvW5ebfR7akqzxTGdRAAAAAElFTkSu + QmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAL5JREFUWEft + lLENgzAQRTMSXcZgAbp0mYeOLJEuVabJDGnNcfKXkPOVYHyRbWGkh46P7vs1cLpMzq25Pjtla/7tnc8+ + zvCZ5npDwT9YDgovCOCBLlrxU4AtWVK+gAx00YomkE2gH89K+QJs2YLHbVDKF5CBFqTSBOoRYMsW1CMg + Ay1I5bgC+AXXI8BKUni/7ko9AjLQor00gWgBVpJCNgF8ftECMtDCWLIL4OBdAmtQuDXHu+XQMIdAmPtM + cG4GH+MqDktBIcAAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAN9JREFUWEfV + kjEOwjAMRXskNo7BBdjY2Nh6EDY4AxISQydWlh6DM7AGEvlLAdkkbdI4edJbUsl+ktvtTsbAjvDfrMN5 + a17P69cb3N9XztCb9E4rZexyBPhiWIpJAZvj2skNjrXtAMgNniKtkak+IOUUWU6gHgDnhLQR8LgcnEuF + 0BoZ9YDPUhgVAGNCYv+BOgLGW+/MGdJGAFgqhMaHUQ8AOUMmnQCoBwApBHLLfW1E2wHARghGhdCY+fws + 9S0TEOJfSJYThFAPAFyIeoCVPpcDIZCey+EvL3oCjgoCjHkDaXNIgOzvzCwAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAKhJREFUWEdj + SJ79/z8MZ+0zAGNCYtQUBzsAJklvPOoAsAOwSdATD7wDRtPAqAOwSdATj+aCUQeM5oLRXDA4HOA/xRyO + sSmkFR5wBzCAwLcnG/8jY2TH0AMPqAPgUYDuCHrhke2AHXNiIA7AlhDpgUEOAGEGGAObIkowzFxcGOh7 + UOgzgKMAJIDNEEowuoXo+Pi6QrDdYALEwaaIEgwyE2ouTjwIHPD/PwBhQEHYepTbEQAAAABJRU5ErkJg + gg== + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAANBJREFUWEfl + kUEKwjAQRedI7jyGF3DnzhN4kO70EoILV57AY3iGbmN/6IcSQhLspJPgh1/CBPJeGTldnVv2/Nr5ls5T + d8/b0cmUcI4Z4s/48AHNAk6BZLQFDsPetx+B2CO/lODxc/ftR2DtCkLw/wjkwFMFzcZcIPZ4qmpgJgZJ + VV2gdAXqYKZ5gRz4/bgI2q9ADIpWBzMxOLqZQLiCHJhAdnWaECC0BKyeJdxEIASy1cEMVtCUAMHzdf00 + I7A5mDH7c8YMzGAF5gLz0Sa2AiJfZ5gW6v4DgG0AAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAMFJREFUWEft + ksEJwmAMhR2pA3nz5gTuYpcQPHhyAsdwBq9pkiaQQqjmb2us/R98UgJ97wO7y8zhDCCPOdmGAI6Msni8 + UUtqUKB+hPMJHO9NmHULYAFMJV2AkLp4vLISpC4eryxK/QaKBPBFxS2NUAXSBQip/Tz40v8IFP0Ft3YP + hFcYZV0COKpsTECHH9cTs6gAHhgbGtf73AKEzPQZE9Dh1/PCeGUlyEyfbwtg7w8I0I9BJeyN7zTu3Blb + +O4+vAF0ur+3ofvv9eQAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAI9JREFUWEft + kksKgDAMRHskD+TOnVfSg7jyajGUCEKnfuhAimTgbSLTPGnTtIgkz4SACjTTFHTgV5qiB8Qb8BeY9wGR + 7qClZwEKtqYedwFUYmJr6kElJramnngDIfB7gW0dM7auDCox6V/A/QpCIARQiQkS0J/O5KASk0cBjyvo + T+DKWXw7v/tms2KHzRSRA53H1e+X+l40AAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAMlJREFUWEft + lDEKwzAMRXOkbj1GLtAtW7fepVt6hkK3Tl1zkZ6hqyq5EgiRUGM7EU7y4UFsyNcDO2m6HkBBa7sHz9sJ + Pu9HeD6/Dknod3V3o4MbAR0aLgKELs1lF3AXIHjML5sTwFm7QAUCw/0S9kRkrCgHHjMddwEcOpsA9lYi + wASB9nosRh0CEhGQz7EUXP8/qxRwP4IkgVzqFZgKlkZhf+kC16SHymOYTSA2JGEpcgSxcRcYy+ICdAcs + i8ZdwAYFNnYHbLoe4AuhXv5kSpW3kgAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAANVJREFUWEft + lUEOgkAMRedI7jyGF3Dnzh13cadnMHHnyq0X8Qxssa1tgtA4wrSBJvOTR8jA/L4ACelw7ro+x8eGmLre + vm6jawD2j2bwGq3TQUpKQYn7ZU88r40MScN8rVsKICIABBHQSkqIJwAnatFcqkBfANGyLgGtpAQR+LT/ + Ea2khMkCXq+A6/NZjcDutDUhnoBsxF+pBfEE8BVoRXOJKSCbLOH6fLTNFnB9PvAEskAh3+0QGIDGNOQX + bkEBPl0mVQA/shyu0QYOcQ0MqN/AggIpvQHY5bR6btS67gAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAJ1JREFUSEvd + k0kOwyAQBOH/T+ZAUnRLMY4dxZ7hkJRkwSyqFgeXv6f7XAYBS0M6cKrMZwQAd7Vysb731tqSEOtf1FpT + Q6ydoa9xHCvfYaaVGNYdw1xr97HqHHa0eg9rPsOe1q9jxQz9k+8yVs7Q1ziOlZJuoR4bQfayUQN3tWJM + fy73Lc9WOORIYH3eK/ZYL6jVzsX6Hw6ApfIvKeUB8ZRerSxQcEMAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAQlJREFUWEft + kLENwkAMRTNCRqGjygxULMEENKEC0aOUdGzAABSswEDhfmRHjjEpkrNTwJO+OBKf3neKn6Qsy5aO8UDO + oUdxJGm9dIFeHl4gCQfbL1FgIE+p6ZU/hjxue0ueErO9Ie5Cr32xxBT/7Q1pHxrxw5KK+G5vCAehMR8s + oYrf9obsIzSan+Ph3CKWlEOj+WH5WAkanc/rfmll8EwX0CW6iznQchm8lwWqqoqTczAHMae7OIXdY9Vf + 3jRrU2YF87PlEKIAfvlsyXSet9N0qYSlMiwZ+xrZCgBIrSKQfJNnLWDJ9fZchuXX/TZfAaDlLNL/XeQM + RPpraLGbXCJL4Bwm/hNHUbwBwb/n5ZFhMTIAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAURJREFUWEfV + kz1uwzAMhXWkHKhAhmzduvUwuUILBOjQqWuW5hY5Q1eXZPQMiiYdqXX884APkCmZ79m00/5y7cDz107Q + tdZ6dPbz+CTYugTATY8EAZKVd7iGn+tpFBiCQ/eWmIG85jV4ppoogEbUOgLPjKkxtDw0wPn9JTG0FgpT + rdoAniljDWEEY2i7ASJDwE2/P157w8goDOCZamoCjAHZ616eKRMZ6+b/RRSNIAqAWdO6b8RrSDfHOkJk + A0TGfAOMYVg0yvJqrKi+rQAwhrymkVFUH3yEYwFasIrqYYC/GrcgikZgA9C6GMGgUZau30OEANYYv1tx + WGmq+noDEPLKWxu21pcPwOY6AA7OwToCYAR49bxBQW6bpOKw0lT1dQRgY/3L0XXenSGAfvK5WUcAjIAo + N7K8GmuqugTIy2W0bICUfgFsM8lZ5OSoNQAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAL1JREFUWEft + k8ENgzAMRTMSG3Hgxm5doRuwBXukdRUDTn+aUBwDUp70LhGKn+Tg+mn27kwuETA+O9KR5oThfvAPZ6Xg + 9IB4BawZmwARYkYLaAHRcPg7VqUkQFtBbgXogqMK2iNsAakAtjph6GL21WoTB7AoREsBWAH7WQG64KiC + HwHs8h5Ide4QwIqQ2L+5U0BKGJTyi/churRY9MpzCtClNUwGKKygSDicsApgw9gVCmD5o+3Z3vM93/bT + 7F+fijm3FuocYAAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAARNJREFUWEfl + lDEOwjAQBPMkHoREQUdHx2P4AkhIFFS0NPALv4E2ZJ1sdFhnYsA4B6y0UrwX+0a5JNXs4mp6Xm+qw3ra + r+mr23mHOb04TrxT8jCrpAgAs2nMPOgdqwDweb/qQT4N1LVuZQagadj7tF0yyw4UHQEa06MASAFCggEI + zgHyHQCQzAEB40V95mU1CQD7Q6kUAAoQNOspozEF8NIINLEOmHA0GgT8mwAQIGBmMRATALDfRMmDpGI5 + pdWZmQbIMgLWwjqzR7/urAChmI8O0DSl/xwAY+jWdyDd7a2GDtM0tGd0AAoQWEuAIiOgzADA/CyLAfBa + mk/C30CxGCqWQyl7eC2tApRS01gfQWkZAHD1DSio9mQAUhOLAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAMRJREFUWEft + lcENgzAMRTtSN+qhN3ZjBTboFuwRbLAlJ9hUqmobQb70EEoC/4mAeGTm9ZkLneYkVWCYnjEC7zIe4h6t + VBIefPRMyjsgBEoX6ALhAvLzQwGEpmKSLoCB0pwtEMVdYN37+wiI4nwB+fkxtMwvWExUxQwt8wuUmAIu + WwA3trioANzIYlfYck4BmPgVteSInYD4VVZY4w1qyTeoektTpF7wb6h6S7SAugXaQi9WATwwLCDHEHmB + hjWvjddjc1kAfjDnH1HeFlkAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAPNJREFUWEft + ktENAiEQRCnJNvyzB//syAL8tAW70TbODLndEJgNIAdccr5kEm5YlpHV3d+XRXR+fLxCr9a3aq/L00Gx + 7w051FMSIIEVl+j2OvmGENYi5oV+AmteImn4q5TSEbAmLVJqApQ8K/OA5ZsB2EVYh7CmzAOWv/8AoKZp + Ta2HXQ7JgVYJ8bfS6+KclHgE2JTnbx2BrJkUK0BIcmiF+TW1nt0EwKVSNDRA+Mu3VIzldwuQk8JGEMI8 + IL5Vn5PSGiCm1v8HmB8Al0NSMErK9AAYAZ5/6n9gFwEAK7IObuXrxmgpbHOEFIxgXc7h4AGc+wJL4nBO + k7/SKwAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAPlJREFUWEft + lDEKwkAQRfdKHsNuGzs7T2ClF/AQAVtLrQS9gY3XiNdYGcjfDJMRNnEzjOCH14SQ/+DvJjRtTLvVIt2P + 60CYx43A47INhLkIlRObdA6W5NwOMRHWIjk0ARcwn0AKmJ8FNwIAIn8Bsyl4ORfgV2ZWgeXplYgSkZrk + 0ASuBWY/C24FAESe130gqou4EQCaBAEROcnXQrzchQDQJAiIAO2KlZAjJ3AjADQJDkQmT+NeAGjlHIiM + FvoZAYkmwZFC+JENon28BK2UIwU+3gLt41PQJDhSJGfqBBKtlAOBrrZPLYFSuto+JADwEn829vmYd5s2 + pjcDMbnwsOO6CgAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAPNJREFUWEft + ksENwjAQBF0SbfBLD/zoiAJ40gLdQBtBi73S6diLgsDOPTLSSmEv8Y1kyuUxzcxpvhXEdsjx+nzH90w0 + V73vioUC5/uh8MWeWRSwiXpEHfxN2upKGgGP6q0E57ZTy3zCK/Co3i7j3HZqoc9PAhY7txLo1GKmqwA7 + tZjpIkDYUSilANJer6iDQNQTNWdHgUikvV5RB4GoJ2rObklgyBWQXSClANLGFXUQiHqi5r5LIYDfdvlf + roAzP/dddwGP73eBlAJIG1fWHmZZ+00aAQTPWL7JFSCbCAB2wwX4bCP/A6OByKZ8XMFoEghM8wtTtV1x + vQJZswAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAQBJREFUWEfl + ljEKAjEQRT2SHsMujZ2dnZ2VXsBDCLaWCoKgla2Nx1CPYBuZ2fkQ1wkbNYlh/fC2iNm8z44L28mdw3LI + TAc9u7gaK8v58rMCEJ82EyZbgZFdq1ABQrali0/cX90Y2ZY+98uWcQtkGQFmT3LM/j8LQLyfG6b9BSB2 + 3/viChCyPV4gPu9mjE9cRIEkI0CBurj9BSD2/enaVwDCT8TFFCDkuPBAWH/N3hUDOTY8MQsEjQBC0PSo + gSasU2aBJmEMMSizwPjYZUKFQBM08VIAn865ChCiruJ+t2sSQjvkG0RdJXcBdQTaxlRwAboAFHDXCPcG + Dd/v2vrzmrEPgBv2BTppveAAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAL1JREFUWEft + k8ENwjAMRVkJJuHCBAzBBF2iO/TMpbuFJLUlx01DrBqMqL/0qsiVvp+U9mSZe5gCHG1yDIG4pMnHU1tK + MU0U8I9QT+BxOwcKjJv5DwFc+ByuBVRmC3OBBNTIgwV8sRSok0dDYNcVuIALbAlcxrmAv6eYCySgTh4u + wBf3AnXyaAioXEGtuBcXcIGVQBxkeGpzDYEE1C3pEcDFe/9/JJdivi0QO39AID0IuIzOWvMMLXw3L2dT + eAEBo25FgNXFAAAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAKtJREFUWEft + lMEJhDAQRW1prcTLVmARVmAT9uB5L/Y2mg8Dw/APmoVJwAm8gJmf5MEEh1l2GRoN3J0C19QUuhhJmfIN + 9CGwfD9SA04ig2U9/QiUj986/YU/XGFZBQJ3gnewl1pYVoEAK0SCFrBCFE0F0IIU6EZg3I4q/KEKy3og + 8GQDw15qYVkPBFghErSAFaJoKoAWpEAKsEIk7/4P9PEGyqTYQu36k+wsu5y32Bq4H4qrsAAAAABJRU5E + rkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAKJJREFUWEft + ktEJgCAURV2pJumnCRqiCVqiHfzup91MQaHkUV5focl7cCAudDhQajLaqJInATaADesoIQrrrED+gfIB + 89jB+Nf5V0XAtgwwr4UUD6DkCOwQSorADsj9BDFeh58EVBHQrztMOwGUHOH/AbmfICAB1QRYjzeC92WA + 2x7DKClCTsBlp6QI7AD7QIpTaSPgTBCn7o4QEO9+u9m1OQDqINUMemAzWwAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAANBJREFUWEft + lTEOwjAMRXsluAUbCxI7h+AEXIKdsTNLz8PEHYLt9kvBstxEgpTQfOlV4g/fbyhqdwp9iODfuvN6YXsd + BN3vbg/B67o4VAg6cX8+bAJzv+wFHNfgkMdXBKxDHjKKVCGAw1rAGp+DNv9AwBpOpQksLsDIKJIioP+G + 1mgOMoqUFqDNJrByAUZGkRQBBCLWaA7T3JjSArTZBJrAsgLMNDemCgEc/oQAbVYssN5vwZzAcXhmIaNI + aQHa/IF3gB8ROBZ3Xv825nV234cXW5vp4szff5EAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAKpJREFUWEft + lMENgDAIRbueG3h3No/dwHk8uUMNJDWEEG0TCiT28C7wa18CNW0ll8qynwit9dZ7sgAK1KY1KCA1rHAX + AFxHAPjvwBRwF5AaVrgLAPGf4Xpcw8ARhBPgIdrTBgV40V3AmvivYCQ4gingLiA1LPn3M4yxA1yA/4or + NKMFCvCidDnAc1qk1ot4jiOdaQFH0PIhmpGQznwh7oAlj0CFNt5qevVcbnfgb04LZbZ8AAAAAElFTkSu + QmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAANJJREFUWEft + ljEOwjAMRbkS3IKNBYmdQ3ACLsHO2Jml52HiDsFO+CgtP5UTpEquaum1liv9/8ZuzqELObtbH7Helcf1 + oO+frM9t8h4f+/vzC4qsaDkExoOi8QzusgwESrBy5W8BVsZg5cpsAoBJKJfjNpJS05gEZKFFJVi5MpsA + WAWWI8DCa/AvIEs49a8irDRnGQIs2Ip/ARZag38BWWiwlVUAAvgxSalpfAiw0Bb8CshCA2tZBZoFWFgL + fgVkoYG1+BbIQaD1jm9aTr6hrHDvwhuUWQ84t/lAbAAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAHdJREFUWEdj + SP6/9j8Mey59BsaExKgpDnYATJLeeNQBYAdgk6AnHngHjKYBEBGx582A4MHhAGxBQ088mgtGHTDwDsAm + QU88mgtGHTCgDgBhkAMGFGMVJAeTA4D6IFEA5dMdjDoA5oABxVgF6YlBxGgaGEAHrP0PAGtZ7S6agQxB + AAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAALtJREFUWEft + krENgzAQRVmJbJEuTaT0GYIJskR6Smoa5qHKDsfZ8UnW5TAnC9mynS+9gl98P+nonjCBh/nmXaiH67ha + jrq9vvODhYXH74d7D4b5dbPQaAx/gSgByhkCBjf3TVECdAppVAtuFixAkYY1PJZP4wKEmwmnWgHcLEQg + FGlYSx0Cl/cCBukBDW4mPkULZD/BKQIU6YEj6hLQBB/8IWmyC/CgQNoT8LQnQHf3SZrsAjwo0PxPOMEG + sxbPKEfoE64AAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAANFJREFUWEft + kkEOwjAMBPs9fsCdt3HkB7yHE38oTnAkOywEbxSlh4y0JdpKY9N2u+y33eZ0feT825d78vvh0u5nny9F + 3pMkrCmDalwvByiMpjnI4Ho5QGE0zUEG1yMZEzQMdQnXIxkTNAx1CdfLIQvO9ycVu0CNG2RwvRzmL2BF + bNCgbxxrASRj8rYRIBkT1cVJrwAJo1FdnLXA9AWQjInq4iAZE9XFWd9A7wKq4UHSSFTDI0+gmaHIgP5/ + 0cNa4AgLNDMUNLDOUGTA+gYmLrBtL3K1KgqLkj9WAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAPBJREFUWEft + ksENwjAUQ7MSbMEASNwZgl24c2SDzsOJHdqfKF/6CSZJ2/wkh1oyRK7wc0vNfX7P0pfXx7k052v0/dPl + s2TuPrh8j21hLAbFCnI6wMJSn5+TcxYkFOR0gMWl3j0AlW4xgqHMKshR2RYjGMqsgpwOruA2fVeZwY/r + yTkLEgpyOvQfIAtLzWDfAUH/NNYAVJ4yg7lkDRgKQVKuPoAKICg2g/3P6mn4AWpgVvcBCGrNYPuSSVcX + glujASqiYgj2l/U1zIDmYFZ85/H/Lc8qYqB0UxGw/WOXOgaMMCBrVSFgbFUR4HgHOg4wZgFEuvj60Bpa + MAAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAANlJREFUWEft + ksENgzAMRVmpnYRLJ+gQnaBLdAfOXLpbaqNYMtJPaBIH58CXnoQC8n8ymZ5hCZNnLgESaKYpaGApTaEB + 1x3wF3g9bn4SQwis73mTcBFxF+ByzekiKQHaDG8ni0lo0E6gRMQkNCgrED/rl5SA0F1kCIH75wvLNd1E + 3AW4XIPKNeYitQK0Od5enNIQ+QW1InFMfYYVEFC5plnESqD6PhwJCKhcgzbBUodiqAyBSjUlArtzVJYD + lTPVAvQAi1KgcuY0AcFUQCMF/54zIgDeSVnifAk/uEy1gXtaxNUAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAALxJREFUWEft + krENAjEMRW8l2IKOBomeIZiAJegpr6a5eajYwdghX7IMF10UESsXnvSL/CjOk5LhRCOpyNp2qZ621ylE + d7vbI0R3c/2g4SLE8q2/X/YkgQCG56RI4HzYkOQvUCIgiePeNCUASkR45goEsJcrcpyeKxGw5IrEY2ma + EgBLRHhmIwIlpET6EABzInH797gLAIhUfwLgLgBEoj8BvvAjVXEXsLCA3x8Q+hPAu+tUxV3AwgLdf8KR + XrVEbH8yCMf7AAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAALlJREFUWEft + ldENQDAQhq3EJF5MYAgTWMIOnr3Yre7au+RC0VKtqD/5RU7T72tIFCnTqlHRbZrkIQCQwz4eG1Q2aUDg + /wh/gcwEALhp1Ehw15QKS4/iB+EgEl+ATz71dWYCEszNQ8AGfo0AlpaFzxm4GmZdWh4+LgKPvALXk39P + wAf8LYErYO5GAAbWf/TeHHNHAEvbmPgI3AVzaTuT2AKwp79AqJNjtQBeRBkmZ0dzXYav5xJkn41qAQpx + tq7mqcNnAAAAAElFTkSuQmCC + + + \ No newline at end of file