using AirBomber.Generics; using AirBomber.Rendering; namespace AirBomber { public partial class FormEntityCollection : Form { private readonly EntitiesGenericStorage _storage; public FormEntityCollection() { InitializeComponent(); _storage = new EntitiesGenericStorage(CollectionPictureBox.Width, CollectionPictureBox.Height); } private void ReloadObjects() { int index = StorageListBox.SelectedIndex; StorageListBox.Items.Clear(); for (int i = 0; i < _storage.Keys.Count; i++) StorageListBox.Items.Add(_storage.Keys[i]); if (StorageListBox.Items.Count > 0 && (index == -1 || index >= StorageListBox.Items.Count)) StorageListBox.SelectedIndex = 0; else if (StorageListBox.Items.Count > 0 && index > -1 && index < StorageListBox.Items.Count) StorageListBox.SelectedIndex = index; } public void ButtonAddEntity_Click(object sender, EventArgs e) { if (StorageListBox.SelectedIndex == -1) return; FormBomberConfig ConfigForm = new FormBomberConfig(); ConfigForm.AddEvent(OnEntityAdded); ConfigForm.Show(); } public void OnEntityAdded(BomberRendererBase Renderer) { var obj = _storage[StorageListBox.SelectedItem.ToString() ?? string.Empty]; if (obj is null) return; if (obj + (Renderer) != -1) { MessageBox.Show("Объект добавлен"); CollectionPictureBox.Image = obj.ShowEntities(); } else { MessageBox.Show("Не удалось добавить объект"); } } public void ButtonRemoveEntity_Click(object sender, EventArgs e) { if (StorageListBox.SelectedIndex == -1) return; var obj = _storage[StorageListBox.SelectedItem.ToString() ?? string.Empty]; if (obj is null) return; if (MessageBox.Show("Удалить объект?", "Удаление", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) return; int Pos = Convert.ToInt32(NumberMaskedTextBox.Text); if (obj - Pos == true) { MessageBox.Show("Объект удален"); CollectionPictureBox.Image = obj.ShowEntities(); } else { MessageBox.Show("Не удалось удалить объект"); } } public void ButtonRefreshCollection_Click(object sender, EventArgs e) { if (StorageListBox.SelectedIndex == -1) return; var obj = _storage[StorageListBox.SelectedItem.ToString() ?? string.Empty]; if (obj is null) return; CollectionPictureBox.Image = obj.ShowEntities(); } private void ButtonAddSet_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(SetNameTextBox.Text)) { MessageBox.Show("Не все данные заполнены", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } _storage.AddSet(SetNameTextBox.Text); ReloadObjects(); } private void ButtonRemoveSet_Click(object sender, EventArgs e) { if (StorageListBox.SelectedIndex == -1) return; if (MessageBox.Show( $"Удалить объект{StorageListBox.SelectedItem}?", "Удаление", MessageBoxButtons.YesNo, MessageBoxIcon.Question ) == DialogResult.Yes) { _storage.RemoveSet(StorageListBox.SelectedItem.ToString() ?? string.Empty); ReloadObjects(); } } private void StorageListBoxIndexChanged(object sender, EventArgs e) { CollectionPictureBox.Image = _storage[StorageListBox.SelectedItem?.ToString() ?? string.Empty]?.ShowEntities(); } private void SaveToolStripMenuItem_Click(object sender, EventArgs e) { if (SaveFileDialog.ShowDialog() == DialogResult.OK) { if (_storage.SaveData(SaveFileDialog.FileName)) MessageBox.Show("Сохранение прошло успешно", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Information); else MessageBox.Show("Не сохранилось", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Error); } } private void LoadToolStripMenuItem_Click(object sender, EventArgs e) { if (OpenFileDialog.ShowDialog() == DialogResult.OK) { if (_storage.LoadData(OpenFileDialog.FileName)) MessageBox.Show("Загрузка прошла успешно", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Information); else MessageBox.Show("Не загрузилось", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Error); } ReloadObjects(); } } }