123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 |
- 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;
- using CommonAI.ZoneEditor;
- using CommonAI.Zone.ZoneEditor.EventTrigger;
- namespace CommonAIEditor.Scene
- {
- public partial class SceneVarEditor : Form
- {
- readonly private SceneEditor sceneEditor;
- public SceneVarEditor(SceneEditor scene)
- {
- InitializeComponent();
- this.sceneEditor = scene;
- this.Text = scene.Text + " - 变量编辑器";
- LoadData();
- }
- private void LoadData()
- {
- foreach (ZoneVar var in sceneEditor.Data.EnvironmentVars)
- {
- this.listView1.Items.Add(ToItem(var));
- }
- }
- internal void Save()
- {
- sceneEditor.Data.EnvironmentVars.Clear();
- foreach (ListViewItem item in listView1.Items)
- {
- sceneEditor.Data.EnvironmentVars.Add(item.Tag as ZoneVar);
- }
- }
- internal bool ContainsVarKey(string key)
- {
- foreach (ListViewItem item in listView1.Items)
- {
- if (key.Equals((item.Tag as ZoneVar).Key))
- {
- return true;
- }
- }
- return false;
- }
- internal string GenVarKey()
- {
- int i = 0;
- while (true)
- {
- string name = "VarName" + i;
- if (!ContainsVarKey(name))
- {
- return name;
- }
- i++;
- }
- }
- private void btn_Add_Click(object sender, EventArgs e)
- {
- SceneVarDialog dialog = new SceneVarDialog(sceneEditor, this);
- if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
- {
- ZoneVar var = dialog.Value;
- this.listView1.Items.Add(ToItem(var));
- }
- }
- private void btn_Remove_Click(object sender, EventArgs e)
- {
- foreach (ListViewItem item in SelectedItems())
- {
- listView1.Items.Remove(item);
- }
- }
- private void btn_Edit_Click(object sender, EventArgs e)
- {
- foreach (ListViewItem item in SelectedItems())
- {
- SceneVarDialog dialog = new SceneVarDialog(sceneEditor, this, item.Tag as ZoneVar);
- if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
- {
- SetItem(dialog.Value, item);
- }
- return;
- }
- }
- private void listView1_MouseDoubleClick(object sender, MouseEventArgs e)
- {
- ListViewItem item = listView1.GetItemAt(e.X, e.Y);
- if (item != null)
- {
- SceneVarDialog dialog = new SceneVarDialog(sceneEditor, this, item.Tag as ZoneVar);
- if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
- {
- SetItem(dialog.Value, item);
- }
- }
- }
- private ListViewItem[] SelectedItems()
- {
- ListViewItem[] ret = new ListViewItem[listView1.SelectedItems.Count];
- listView1.SelectedItems.CopyTo(ret, 0);
- return ret;
- }
- private ListViewItem ToItem(ZoneVar var)
- {
- ListViewItem item = new ListViewItem(new string[] {
- var.Key,
- AbstractValueTypeMap.GetBaseValueType(var.Value.GetType()).Desc.Desc,
- var.Value.ToString(),
- var.SyncToClient?"是":"否"
- });
- item.Tag = var;
- item.ImageIndex = var.SyncToClient ? 1 : 0;
- return item;
- }
- private void SetItem(ZoneVar var, ListViewItem item)
- {
- item.SubItems[0].Text = var.Key;
- item.SubItems[1].Text = AbstractValueTypeMap.GetBaseValueType(var.Value.GetType()).Desc.Desc;
- item.SubItems[2].Text = var.Value.ToString();
- item.SubItems[3].Text = var.SyncToClient ? "是" : "否";
- item.Tag = var;
- item.ImageIndex = var.SyncToClient ? 1 : 0;
- }
- }
- }
|