diff --git a/ProjectMachine/ProjectMachine/DrawningMachine.cs b/ProjectMachine/ProjectMachine/DrawningMachine.cs index ce00c41..2b2ab70 100644 --- a/ProjectMachine/ProjectMachine/DrawningMachine.cs +++ b/ProjectMachine/ProjectMachine/DrawningMachine.cs @@ -179,7 +179,16 @@ namespace ProjectMachine } public virtual void SetBaseColor(Color color) - { + { + if (Machine is EntityTank) + { + Machine = (EntityTank)Machine; + if (Machine is not null) + { + Machine = new EntityTank(Machine.Speed, Machine.Weight, color, (Machine as EntityTank).DopColor, (Machine as EntityTank).Turret, (Machine as EntityTank).Gun); + return; + } + } Machine = new EntityMachine(Machine.Speed, Machine.Weight, color); } } diff --git a/ProjectMachine/ProjectMachine/DrawningTank.cs b/ProjectMachine/ProjectMachine/DrawningTank.cs index dfb9813..4283fac 100644 --- a/ProjectMachine/ProjectMachine/DrawningTank.cs +++ b/ProjectMachine/ProjectMachine/DrawningTank.cs @@ -52,8 +52,12 @@ namespace ProjectMachine } public void SetDopColor(Color color) { - Machine = new EntityTank(Machine.Speed, Machine.Weight, Machine.BodyColor, + Machine = Machine as EntityTank; + if (Machine is not null) + { + Machine = new EntityTank(Machine.Speed, Machine.Weight, Machine.BodyColor, color, (Machine as EntityTank).Turret, (Machine as EntityTank).Gun); + } } } } diff --git a/ProjectMachine/ProjectMachine/FormTankConfig.Designer.cs b/ProjectMachine/ProjectMachine/FormTankConfig.Designer.cs index 2930bc9..bf70a7a 100644 --- a/ProjectMachine/ProjectMachine/FormTankConfig.Designer.cs +++ b/ProjectMachine/ProjectMachine/FormTankConfig.Designer.cs @@ -127,6 +127,7 @@ this.panelPurple.Name = "panelPurple"; this.panelPurple.Size = new System.Drawing.Size(46, 53); this.panelPurple.TabIndex = 3; + this.panelPurple.MouseDown += new System.Windows.Forms.MouseEventHandler(this.PanelColor_MouseDown); // // panelYellow // @@ -136,6 +137,7 @@ this.panelYellow.Name = "panelYellow"; this.panelYellow.Size = new System.Drawing.Size(46, 53); this.panelYellow.TabIndex = 1; + this.panelYellow.MouseDown += new System.Windows.Forms.MouseEventHandler(this.PanelColor_MouseDown); // // panelBlack // @@ -145,6 +147,7 @@ this.panelBlack.Name = "panelBlack"; this.panelBlack.Size = new System.Drawing.Size(46, 53); this.panelBlack.TabIndex = 4; + this.panelBlack.MouseDown += new System.Windows.Forms.MouseEventHandler(this.PanelColor_MouseDown); // // panelBlue // @@ -154,6 +157,7 @@ this.panelBlue.Name = "panelBlue"; this.panelBlue.Size = new System.Drawing.Size(46, 53); this.panelBlue.TabIndex = 1; + this.panelBlue.MouseDown += new System.Windows.Forms.MouseEventHandler(this.PanelColor_MouseDown); // // panelGray // @@ -163,6 +167,7 @@ this.panelGray.Name = "panelGray"; this.panelGray.Size = new System.Drawing.Size(46, 53); this.panelGray.TabIndex = 5; + this.panelGray.MouseDown += new System.Windows.Forms.MouseEventHandler(this.PanelColor_MouseDown); // // panelGreen // @@ -172,6 +177,7 @@ this.panelGreen.Name = "panelGreen"; this.panelGreen.Size = new System.Drawing.Size(46, 53); this.panelGreen.TabIndex = 1; + this.panelGreen.MouseDown += new System.Windows.Forms.MouseEventHandler(this.PanelColor_MouseDown); // // panelWhite // @@ -181,6 +187,7 @@ this.panelWhite.Name = "panelWhite"; this.panelWhite.Size = new System.Drawing.Size(46, 53); this.panelWhite.TabIndex = 2; + this.panelWhite.MouseDown += new System.Windows.Forms.MouseEventHandler(this.PanelColor_MouseDown); // // panelRed // @@ -190,6 +197,7 @@ this.panelRed.Name = "panelRed"; this.panelRed.Size = new System.Drawing.Size(46, 53); this.panelRed.TabIndex = 0; + this.panelRed.MouseDown += new System.Windows.Forms.MouseEventHandler(this.PanelColor_MouseDown); // // checkBoxGun // @@ -279,6 +287,8 @@ this.labelDopColor.TabIndex = 2; this.labelDopColor.Text = "Доп. цвет"; this.labelDopColor.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.labelDopColor.DragDrop += new System.Windows.Forms.DragEventHandler(this.LabelDopColor_DragDrop); + this.labelDopColor.DragEnter += new System.Windows.Forms.DragEventHandler(this.LabelColor_DragEnter); // // labelBaseColor // @@ -290,6 +300,8 @@ this.labelBaseColor.TabIndex = 1; this.labelBaseColor.Text = "Цвет"; this.labelBaseColor.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.labelBaseColor.DragDrop += new System.Windows.Forms.DragEventHandler(this.LabelBaseColor_DragDrop); + this.labelBaseColor.DragEnter += new System.Windows.Forms.DragEventHandler(this.LabelColor_DragEnter); // // pictureBoxObject // diff --git a/ProjectMachine/ProjectMachine/FormTankConfig.cs b/ProjectMachine/ProjectMachine/FormTankConfig.cs index ba5a5dc..2600b02 100644 --- a/ProjectMachine/ProjectMachine/FormTankConfig.cs +++ b/ProjectMachine/ProjectMachine/FormTankConfig.cs @@ -19,7 +19,7 @@ namespace ProjectMachine /// /// Событие /// - private event Action EventAddTank; + private event TankDelegate EventAddTank; /// /// Конструктор /// @@ -51,11 +51,11 @@ namespace ProjectMachine /// Добавление события /// /// - public void AddEvent(Action ev) + public void AddEvent(TankDelegate ev) { if (EventAddTank == null) { - EventAddTank = new (ev); + EventAddTank = new TankDelegate(ev); } else { @@ -120,7 +120,7 @@ namespace ProjectMachine /// /// /// - private void LabelBaseColor_DragEnter(object sender, DragEventArgs e) + private void LabelColor_DragEnter(object sender, DragEventArgs e) { if (e.Data.GetDataPresent(typeof(Color))) { @@ -131,6 +131,7 @@ namespace ProjectMachine e.Effect = DragDropEffects.None; } } + /// /// Принимаем основной цвет ///