/// <summary> /// フォームの初期化 /// </summary> private void InitForm() { // ウィンドウの位置 Location = HoI2EditorController.Settings.ScenarioEditor.Location; Size = HoI2EditorController.Settings.ScenarioEditor.Size; // 技術ツリーパネル _techTreePanelController = new TechTreePanelController(techTreePictureBox) { ApplyItemStatus = true }; _techTreePanelController.ItemMouseClick += OnTechTreeItemMouseClick; _techTreePanelController.QueryItemStatus += OnQueryTechTreeItemStatus; // マップパネル _mapPanelController = new MapPanelController(provinceMapPanel, provinceMapPictureBox); // ユニットツリー _unitTreeController = new UnitTreeController(unitTreeView); // コントローラ _controller = new ScenarioEditorController(this, _mapPanelController, _unitTreeController); }
/// <summary> /// マップパネルのマウスクリック時の処理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void OnMapPanelMouseClick(object sender, MapPanelController.ProvinceEventArgs e) { // 左クリック以外では何もしない if (e.Button != MouseButtons.Left) { return; } // 陸地プロヴィンスでなければ何もしない if (_controller.GetLandProvinceIndex(e.Id) < 0) { return; } // 選択中のプロヴィンスIDを更新する provinceIdTextBox.Text = IntHelper.ToString(e.Id); // プロヴィンスを選択する SelectProvince(e.Id); Country country = GetSelectedProvinceCountry(); switch (_mapPanelController.FilterMode) { case MapPanelController.MapFilterMode.None: Country target = (from settings in Scenarios.Data.Countries where settings.ControlledProvinces.Contains(e.Id) select settings.Country).FirstOrDefault(); provinceCountryFilterComboBox.SelectedIndex = Array.IndexOf(Countries.Tags, target) + 1; break; case MapPanelController.MapFilterMode.Core: if (country != Country.None) { coreProvinceCheckBox.Checked = !coreProvinceCheckBox.Checked; } break; case MapPanelController.MapFilterMode.Owned: if (country != Country.None && ownedProvinceCheckBox.Enabled) { ownedProvinceCheckBox.Checked = !ownedProvinceCheckBox.Checked; } break; case MapPanelController.MapFilterMode.Controlled: if (country != Country.None && controlledProvinceCheckBox.Enabled) { controlledProvinceCheckBox.Checked = !controlledProvinceCheckBox.Checked; } break; case MapPanelController.MapFilterMode.Claimed: if (country != Country.None) { claimedProvinceCheckBox.Checked = !claimedProvinceCheckBox.Checked; } break; } }
/// <summary> /// コンストラクタ /// </summary> /// <param name="form">シナリオエディタのフォーム</param> /// <param name="mapPanelController">マップパネルのコントローラ</param> /// <param name="unitTreeController">ユニットツリーのコントローラ</param> public ScenarioEditorController(ScenarioEditorForm form, MapPanelController mapPanelController, UnitTreeController unitTreeController) { _form = form; _mapPanelController = mapPanelController; _unitTreeController = unitTreeController; }