123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194 |
- using CommonAI.Zone;
- using CommonFroms.G2D.DataGrid;
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Windows.Forms;
- namespace CommonAIEditor
- {
- public partial class FormTerrainDefinition : Form
- {
- private TerrainDefinitionMap data;
- public TerrainDefinitionMap Data { get { return data; } }
- public FormTerrainDefinition()
- {
- InitializeComponent();
- this.data = Editor.Instance.TerrainDefinition.Clone() as TerrainDefinitionMap;
- this.Refresh();
- }
-
- #region ui_event
- private void listView1_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e)
- {
- var selected = SelectedBrush;
- if (selected != null)
- {
- g2DPropertyGrid1.SelectedObject = new G2DPropertyDescriptor(selected);
- }
- else
- {
- g2DPropertyGrid1.SelectedObject = null;
- }
- }
- private void g2DPropertyGrid1_PropertyValueChanged(object s, PropertyValueChangedEventArgs e)
- {
- Refresh(SelectedBrush);
- }
- private void btn_Add_Click(object sender, EventArgs e)
- {
- AddBrush();
- }
- private void btn_Remove_Click(object sender, EventArgs e)
- {
- RemoveBrush(SelectedBrush);
- }
- private void listView1_DoubleClick(object sender, EventArgs e)
- {
- this.Close();
- }
- private void button_OK_Click(object sender, EventArgs e)
- {
- this.Close();
- }
- #endregion
-
- public TerrainDefinitionMap.MapBlockBrush SelectedBrush
- {
- get
- {
- if (listView1.SelectedItems.Count > 0 && listView1.SelectedItems[0].Tag is TerrainDefinitionMap.MapBlockBrush)
- {
- return listView1.SelectedItems[0].Tag as TerrainDefinitionMap.MapBlockBrush;
- }
- return null;
- }
- set
- {
- listView1.SelectedItems.Clear();
- foreach (ListViewItem item in listView1.Items)
- {
- if (item.Tag is TerrainDefinitionMap.MapBlockBrush)
- {
- var d = item.Tag as TerrainDefinitionMap.MapBlockBrush;
- if (d.Value == value.Value)
- {
- item.Selected = true;
- }
- }
- }
- }
- }
- public int SelectedColor
- {
- get
- {
- var brush = SelectedBrush;
- if (brush != null)
- {
- return brush.Value;
- }
- return 0;
- }
- set
- {
- listView1.SelectedItems.Clear();
- foreach (ListViewItem item in listView1.Items)
- {
- if (item.Tag is TerrainDefinitionMap.MapBlockBrush)
- {
- var d = item.Tag as TerrainDefinitionMap.MapBlockBrush;
- if (d.Value == value)
- {
- item.Selected = true;
- }
- }
- }
- }
- }
- private void AddBrush()
- {
- ColorDialog cd = new ColorDialog();
- if (cd.ShowDialog() == DialogResult.OK)
- {
- var value = cd.Color.ToArgb();
- if (data.ContainsValue(value))
- {
- MessageBox.Show("已存在地块颜色: " + cd.Color);
- }
- else
- {
- TerrainDefinitionMap.MapBlockBrush block = new TerrainDefinitionMap.MapBlockBrush();
- data.Brushes.Add(block);
- Refresh(block);
- }
- }
- }
- private void RemoveBrush(TerrainDefinitionMap.MapBlockBrush selected)
- {
- if (selected != null)
- {
- int index = data.Brushes.IndexOf(selected);
- if (index >= 0)
- {
- data.Brushes.Remove(selected);
- if (index < data.Brushes.Count)
- {
- var next = data.Brushes[index];
- Refresh(next);
- }
- else if (data.Brushes.Count > 0)
- {
- var next = data.Brushes[index - 1];
- Refresh(next);
- }
- else
- {
- Refresh();
- }
- }
- }
- }
- private void Refresh(TerrainDefinitionMap.MapBlockBrush selected = null)
- {
- listView1.SuspendLayout();
- try
- {
- listView1.Items.Clear();
- foreach (var d in data.Brushes)
- {
- ListViewItem add = new ListViewItem();
- add.SubItems.Add(d.Value.ToString("X8") + "(" + d.Value + ")");
- add.SubItems.Add(d.IsBlock.ToString());
- add.SubItems.Add(d.Name + "");
- add.SubItems.Add(d.Desc + "");
- add.UseItemStyleForSubItems = false;
- add.BackColor = Color.FromArgb(d.Value);
- add.Tag = d;
- add.ToolTipText = d.Desc + "";
- listView1.Items.Add(add);
- if (selected != null && selected.Value == d.Value)
- {
- add.Selected = true;
- }
- }
- }
- finally
- {
- listView1.ResumeLayout();
- }
- }
- }
- }
|