изменения

This commit is contained in:
Salikh 2023-12-12 21:12:56 +04:00
parent 1284f2afaa
commit b4d3dfbd11
7 changed files with 77 additions and 60 deletions

View File

@ -43,15 +43,14 @@ namespace AirBomber.Generics
return collect._collection.Insert(obj); return collect._collection.Insert(obj);
} }
public static bool operator -(BomberGenericCollection<T, U> collect, int public static T? operator -(BomberGenericCollection<T, U> collect, int pos)
pos)
{ {
T? obj = collect._collection[pos]; T? obj = collect._collection[pos];
if (obj == null) if (obj != null)
{ {
return false; collect._collection.Remove(pos);
} }
return collect._collection.Remove(pos); return obj;
} }
public U? GetU(int pos) public U? GetU(int pos)

View File

@ -52,7 +52,7 @@ namespace AirBomber.DrawningObjects
} }
public void SetPosition(int x, int y) public void SetPosition(int x, int y)
{ {
if (_startPosX + _PlaneWidth > _pictureWidth + 180) if (_startPosX + _PlaneWidth > _pictureWidth)
{ {
_startPosX = _pictureWidth - _PlaneWidth; _startPosX = _pictureWidth - _PlaneWidth;
} }

View File

@ -58,9 +58,11 @@
Tools.Controls.Add(ButtonRemoveBomber); Tools.Controls.Add(ButtonRemoveBomber);
Tools.Controls.Add(ButtonAddBomber); Tools.Controls.Add(ButtonAddBomber);
Tools.Controls.Add(MessageBoxBomber); Tools.Controls.Add(MessageBoxBomber);
Tools.Location = new Point(538, 5); Tools.Location = new Point(471, 4);
Tools.Margin = new Padding(3, 2, 3, 2);
Tools.Name = "Tools"; Tools.Name = "Tools";
Tools.Size = new Size(250, 556); Tools.Padding = new Padding(3, 2, 3, 2);
Tools.Size = new Size(219, 417);
Tools.TabIndex = 0; Tools.TabIndex = 0;
Tools.TabStop = false; Tools.TabStop = false;
Tools.Text = "Инструменты"; Tools.Text = "Инструменты";
@ -71,18 +73,21 @@
Kit.Controls.Add(AddKit); Kit.Controls.Add(AddKit);
Kit.Controls.Add(KitTextbox); Kit.Controls.Add(KitTextbox);
Kit.Controls.Add(listBoxStorages); Kit.Controls.Add(listBoxStorages);
Kit.Location = new Point(17, 33); Kit.Location = new Point(15, 25);
Kit.Margin = new Padding(3, 2, 3, 2);
Kit.Name = "Kit"; Kit.Name = "Kit";
Kit.Size = new Size(227, 282); Kit.Padding = new Padding(3, 2, 3, 2);
Kit.Size = new Size(199, 212);
Kit.TabIndex = 4; Kit.TabIndex = 4;
Kit.TabStop = false; Kit.TabStop = false;
Kit.Text = "Наборы"; Kit.Text = "Наборы";
// //
// RemoveKit // RemoveKit
// //
RemoveKit.Location = new Point(11, 231); RemoveKit.Location = new Point(10, 173);
RemoveKit.Margin = new Padding(3, 2, 3, 2);
RemoveKit.Name = "RemoveKit"; RemoveKit.Name = "RemoveKit";
RemoveKit.Size = new Size(193, 36); RemoveKit.Size = new Size(169, 27);
RemoveKit.TabIndex = 3; RemoveKit.TabIndex = 3;
RemoveKit.Text = "Удалить набор"; RemoveKit.Text = "Удалить набор";
RemoveKit.UseVisualStyleBackColor = true; RemoveKit.UseVisualStyleBackColor = true;
@ -90,9 +95,10 @@
// //
// AddKit // AddKit
// //
AddKit.Location = new Point(11, 63); AddKit.Location = new Point(10, 47);
AddKit.Margin = new Padding(3, 2, 3, 2);
AddKit.Name = "AddKit"; AddKit.Name = "AddKit";
AddKit.Size = new Size(193, 36); AddKit.Size = new Size(169, 27);
AddKit.TabIndex = 2; AddKit.TabIndex = 2;
AddKit.Text = "Добавить набор"; AddKit.Text = "Добавить набор";
AddKit.UseVisualStyleBackColor = true; AddKit.UseVisualStyleBackColor = true;
@ -100,26 +106,29 @@
// //
// KitTextbox // KitTextbox
// //
KitTextbox.Location = new Point(15, 30); KitTextbox.Location = new Point(13, 22);
KitTextbox.Margin = new Padding(3, 2, 3, 2);
KitTextbox.Name = "KitTextbox"; KitTextbox.Name = "KitTextbox";
KitTextbox.Size = new Size(189, 27); KitTextbox.Size = new Size(166, 23);
KitTextbox.TabIndex = 1; KitTextbox.TabIndex = 1;
// //
// listBoxStorages // listBoxStorages
// //
listBoxStorages.FormattingEnabled = true; listBoxStorages.FormattingEnabled = true;
listBoxStorages.ItemHeight = 20; listBoxStorages.ItemHeight = 15;
listBoxStorages.Location = new Point(11, 109); listBoxStorages.Location = new Point(10, 82);
listBoxStorages.Margin = new Padding(3, 2, 3, 2);
listBoxStorages.Name = "listBoxStorages"; listBoxStorages.Name = "listBoxStorages";
listBoxStorages.Size = new Size(193, 104); listBoxStorages.Size = new Size(169, 79);
listBoxStorages.TabIndex = 0; listBoxStorages.TabIndex = 0;
listBoxStorages.SelectedIndexChanged += ListBoxObjects_SelectedIndexChanged; listBoxStorages.SelectedIndexChanged += ListBoxObjects_SelectedIndexChanged;
// //
// ButtonRefreshCollection // ButtonRefreshCollection
// //
ButtonRefreshCollection.Location = new Point(28, 448); ButtonRefreshCollection.Location = new Point(24, 336);
ButtonRefreshCollection.Margin = new Padding(3, 2, 3, 2);
ButtonRefreshCollection.Name = "ButtonRefreshCollection"; ButtonRefreshCollection.Name = "ButtonRefreshCollection";
ButtonRefreshCollection.Size = new Size(193, 37); ButtonRefreshCollection.Size = new Size(169, 28);
ButtonRefreshCollection.TabIndex = 3; ButtonRefreshCollection.TabIndex = 3;
ButtonRefreshCollection.Text = "Обновить коллекцию"; ButtonRefreshCollection.Text = "Обновить коллекцию";
ButtonRefreshCollection.UseVisualStyleBackColor = true; ButtonRefreshCollection.UseVisualStyleBackColor = true;
@ -127,9 +136,10 @@
// //
// ButtonRemoveBomber // ButtonRemoveBomber
// //
ButtonRemoveBomber.Location = new Point(28, 401); ButtonRemoveBomber.Location = new Point(24, 301);
ButtonRemoveBomber.Margin = new Padding(3, 2, 3, 2);
ButtonRemoveBomber.Name = "ButtonRemoveBomber"; ButtonRemoveBomber.Name = "ButtonRemoveBomber";
ButtonRemoveBomber.Size = new Size(193, 41); ButtonRemoveBomber.Size = new Size(169, 31);
ButtonRemoveBomber.TabIndex = 2; ButtonRemoveBomber.TabIndex = 2;
ButtonRemoveBomber.Text = "Удалить самолёт"; ButtonRemoveBomber.Text = "Удалить самолёт";
ButtonRemoveBomber.UseVisualStyleBackColor = true; ButtonRemoveBomber.UseVisualStyleBackColor = true;
@ -137,9 +147,10 @@
// //
// ButtonAddBomber // ButtonAddBomber
// //
ButtonAddBomber.Location = new Point(28, 321); ButtonAddBomber.Location = new Point(24, 241);
ButtonAddBomber.Margin = new Padding(3, 2, 3, 2);
ButtonAddBomber.Name = "ButtonAddBomber"; ButtonAddBomber.Name = "ButtonAddBomber";
ButtonAddBomber.Size = new Size(193, 41); ButtonAddBomber.Size = new Size(169, 31);
ButtonAddBomber.TabIndex = 1; ButtonAddBomber.TabIndex = 1;
ButtonAddBomber.Text = "Добавить самолёт"; ButtonAddBomber.Text = "Добавить самолёт";
ButtonAddBomber.UseVisualStyleBackColor = true; ButtonAddBomber.UseVisualStyleBackColor = true;
@ -147,16 +158,18 @@
// //
// MessageBoxBomber // MessageBoxBomber
// //
MessageBoxBomber.Location = new Point(28, 368); MessageBoxBomber.Location = new Point(24, 276);
MessageBoxBomber.Margin = new Padding(3, 2, 3, 2);
MessageBoxBomber.Name = "MessageBoxBomber"; MessageBoxBomber.Name = "MessageBoxBomber";
MessageBoxBomber.Size = new Size(193, 27); MessageBoxBomber.Size = new Size(169, 23);
MessageBoxBomber.TabIndex = 0; MessageBoxBomber.TabIndex = 0;
// //
// PicBoxBomberCollection // PicBoxBomberCollection
// //
PicBoxBomberCollection.Location = new Point(0, 38); PicBoxBomberCollection.Location = new Point(7, 28);
PicBoxBomberCollection.Margin = new Padding(3, 2, 3, 2);
PicBoxBomberCollection.Name = "PicBoxBomberCollection"; PicBoxBomberCollection.Name = "PicBoxBomberCollection";
PicBoxBomberCollection.Size = new Size(473, 563); PicBoxBomberCollection.Size = new Size(473, 422);
PicBoxBomberCollection.TabIndex = 1; PicBoxBomberCollection.TabIndex = 1;
PicBoxBomberCollection.TabStop = false; PicBoxBomberCollection.TabStop = false;
// //
@ -166,7 +179,8 @@
menuStrip.Items.AddRange(new ToolStripItem[] { fileToolStripMenuItem }); menuStrip.Items.AddRange(new ToolStripItem[] { fileToolStripMenuItem });
menuStrip.Location = new Point(0, 0); menuStrip.Location = new Point(0, 0);
menuStrip.Name = "menuStrip"; menuStrip.Name = "menuStrip";
menuStrip.Size = new Size(800, 28); menuStrip.Padding = new Padding(5, 2, 0, 2);
menuStrip.Size = new Size(700, 24);
menuStrip.TabIndex = 2; menuStrip.TabIndex = 2;
menuStrip.Text = "Файл"; menuStrip.Text = "Файл";
// //
@ -174,20 +188,20 @@
// //
fileToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { SaveToolStripMenuItem, LoadToolStripMenuItem }); fileToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { SaveToolStripMenuItem, LoadToolStripMenuItem });
fileToolStripMenuItem.Name = "fileToolStripMenuItem"; fileToolStripMenuItem.Name = "fileToolStripMenuItem";
fileToolStripMenuItem.Size = new Size(59, 24); fileToolStripMenuItem.Size = new Size(48, 20);
fileToolStripMenuItem.Text = "Файл"; fileToolStripMenuItem.Text = "Файл";
// //
// SaveToolStripMenuItem // SaveToolStripMenuItem
// //
SaveToolStripMenuItem.Name = "SaveToolStripMenuItem"; SaveToolStripMenuItem.Name = "SaveToolStripMenuItem";
SaveToolStripMenuItem.Size = new Size(224, 26); SaveToolStripMenuItem.Size = new Size(141, 22);
SaveToolStripMenuItem.Text = "Сохранение"; SaveToolStripMenuItem.Text = "Сохранение";
SaveToolStripMenuItem.Click += SaveToolStripMenuItem_Click; SaveToolStripMenuItem.Click += SaveToolStripMenuItem_Click;
// //
// LoadToolStripMenuItem // LoadToolStripMenuItem
// //
LoadToolStripMenuItem.Name = "LoadToolStripMenuItem"; LoadToolStripMenuItem.Name = "LoadToolStripMenuItem";
LoadToolStripMenuItem.Size = new Size(224, 26); LoadToolStripMenuItem.Size = new Size(141, 22);
LoadToolStripMenuItem.Text = "Загрузка"; LoadToolStripMenuItem.Text = "Загрузка";
LoadToolStripMenuItem.Click += LoadToolStripMenuItem_Click; LoadToolStripMenuItem.Click += LoadToolStripMenuItem_Click;
// //
@ -203,13 +217,14 @@
// //
// FormBomberCollection // FormBomberCollection
// //
AutoScaleDimensions = new SizeF(8F, 20F); AutoScaleDimensions = new SizeF(7F, 15F);
AutoScaleMode = AutoScaleMode.Font; AutoScaleMode = AutoScaleMode.Font;
ClientSize = new Size(800, 619); ClientSize = new Size(700, 467);
Controls.Add(PicBoxBomberCollection); Controls.Add(PicBoxBomberCollection);
Controls.Add(Tools); Controls.Add(Tools);
Controls.Add(menuStrip); Controls.Add(menuStrip);
MainMenuStrip = menuStrip; MainMenuStrip = menuStrip;
Margin = new Padding(3, 2, 3, 2);
Name = "FormBomberCollection"; Name = "FormBomberCollection";
Text = "FormBomberCollection"; Text = "FormBomberCollection";
Tools.ResumeLayout(false); Tools.ResumeLayout(false);

View File

@ -63,35 +63,38 @@ namespace AirBomber
} }
PicBoxBomberCollection.Image = obj.ShowBomber(); PicBoxBomberCollection.Image = obj.ShowBomber();
} }
private void AddBomber(DrawningBomber bomber)
{
var obj = _bomber[listBoxStorages.SelectedItem.ToString() ?? string.Empty];
if (obj == null)
{
_logger.LogWarning("Добавление пустого объекта");
return;
}
try
{
_ = obj + bomber;
MessageBox.Show("Объект добавлен");
PicBoxBomberCollection.Image = obj.ShowBomber();
_logger.LogInformation($"Добавлен объект в набор {listBoxStorages.SelectedItem.ToString()}");
}
catch (Exception ex)
{
MessageBox.Show("Не удалось добавить объект");
_logger.LogWarning($"{ex.Message} в наборе {listBoxStorages.SelectedItem.ToString()}");
}
}
private void ButtonAddBomber_Click(object sender, EventArgs e) private void ButtonAddBomber_Click(object sender, EventArgs e)
{ {
if (listBoxStorages.SelectedIndex == -1) if (listBoxStorages.SelectedIndex == -1)
{ {
return; return;
} }
var formBomberConfig = new FormBomberConfig(); FormBomberConfig form = new FormBomberConfig();
form.Show();
formBomberConfig.AddEvent(bomber => form.AddEvent(AddBomber);
{
if (listBoxStorages.SelectedIndex != -1)
{
var obj = _bomber[listBoxStorages.SelectedItem?.ToString() ?? string.Empty];
if (obj != null)
{
if (obj + bomber != 1)
{
MessageBox.Show("Объект добавлен");
PicBoxBomberCollection.Image = obj.ShowBomber();
}
else
{
MessageBox.Show("Не удалось добавить объект");
}
}
}
});
formBomberConfig.Show();
} }
private void ButtonRemoveBomber_Click(object sender, EventArgs e) private void ButtonRemoveBomber_Click(object sender, EventArgs e)

View File

@ -127,6 +127,6 @@
<value>315, 1</value> <value>315, 1</value>
</metadata> </metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>25</value> <value>62</value>
</metadata> </metadata>
</root> </root>

View File

@ -69,7 +69,7 @@ namespace ProjectBomber.Generics
public bool Remove(int position) public bool Remove(int position)
{ {
/// Проверка позиции /// Проверка позиции
if (position < 0 || position >= _places.Count) if (position < 0 || position > _maxCount || position >= Count)
throw new BomberNotFoundException(position); throw new BomberNotFoundException(position);
/// Удаление объекта из массива, присвоив элементу массива значение null /// Удаление объекта из массива, присвоив элементу массива значение null
_places.RemoveAt(position); _places.RemoveAt(position);

View File

@ -8,7 +8,7 @@
"Args": { "Args": {
"path": "Logs/log_.log", "path": "Logs/log_.log",
"rollingInterval": "Day", "rollingInterval": "Day",
"outputTemplate": "[{Timestamp:HH:mm:ss.fff}]{Level:u4}: {Message:lj}{NewLine}{Exception}" "outputTemplate": "{Level:u4}[{Timestamp:HH:mm:ss.fff}]: {Message:lj}{NewLine}{Exception}"
} }
} }
], ],