2 using System.Collections.Generic;
\r
3 using System.ComponentModel;
\r
5 using System.Drawing;
\r
8 using System.Windows.Forms;
\r
10 namespace Tso2MqoGui
\r
12 public partial class FormMaterial : Form
\r
14 public Dictionary<string, MaterialInfo> materials;
\r
16 public FormMaterial()
\r
18 InitializeComponent();
\r
19 DialogResult = DialogResult.Cancel;
\r
22 private void FormMaterial_Load(object sender, EventArgs e)
\r
24 foreach(MaterialInfo i in materials.Values)
\r
26 ListViewItem item= lvMaterials.Items.Add(i.Name);
\r
28 item.SubItems.Add(i.diffuse == null ? "" : i.diffuse);
\r
29 item.SubItems.Add(i.shadow == null ? "" : i.shadow);
\r
30 item.SubItems.Add(i.shader == null ? "" : i.shader);
\r
34 private void bOk_Click(object sender, EventArgs e)
\r
36 // 正しく情報が設定されているかをチェックする
\r
37 foreach(ListViewItem i in lvMaterials.Items)
\r
39 if(i.SubItems[1].Text == ""
\r
40 || i.SubItems[2].Text == ""
\r
41 || i.SubItems[3].Text == ""
\r
42 || !File.Exists(i.SubItems[1].Text)
\r
43 || !File.Exists(i.SubItems[2].Text)
\r
44 || !File.Exists(i.SubItems[3].Text))
\r
46 MessageBox.Show("マテリアルの情報が正しく設定されていないか、ファイルが存在しません");
\r
53 DialogResult = DialogResult.OK;
\r
57 private void bCancel_Click(object sender, EventArgs e)
\r
59 DialogResult = DialogResult.Cancel;
\r
63 private void lvMaterials_SelectedIndexChanged(object sender, EventArgs e)
\r
65 if(lvMaterials.SelectedItems.Count > 0)
\r
67 MaterialInfo mi = lvMaterials.SelectedItems[0].Tag as MaterialInfo;
\r
68 pgMaterial.SelectedObject = mi;
\r
71 pgMaterial.SelectedObject = null;
\r
75 private void pgMaterial_PropertyValueChanged(object s, PropertyValueChangedEventArgs e)
\r
77 if(lvMaterials.SelectedItems.Count > 0)
\r
79 ListViewItem item= lvMaterials.SelectedItems[0];
\r
81 switch(e.ChangedItem.PropertyDescriptor.Name)
\r
83 case "DiffuseTexture": item.SubItems[1].Text= e.ChangedItem.Value.ToString(); break;
\r
84 case "ShadowTexture": item.SubItems[2].Text= e.ChangedItem.Value.ToString(); break;
\r
85 case "ShaderFile": item.SubItems[3].Text= e.ChangedItem.Value.ToString(); break;
\r