public void LoadMaterial(FMAT mat) { if (mat.MaterialU != null) { TabPage tabPage = null; for (int i = 0; i < stTabControl1.TabPages.Count; i++) { if (stTabControl1.TabPages[i].Text == "Render State") { tabPage = stTabControl1.TabPages[i]; } } if (tabPage == null) { tabPage = new TabPage(); tabPage.Text = "Render State"; stTabControl1.TabPages.Add(tabPage); RenderStateEditor = new RenderStateEditor(); RenderStateEditor.Dock = DockStyle.Fill; RenderStateEditor.LoadRenderState(mat.MaterialU.RenderState); tabPage.Controls.Add(RenderStateEditor); } else { RenderStateEditor.LoadRenderState(mat.MaterialU.RenderState); } } material = mat; textBoxMaterialName.Text = material.Text; SetActiveGameByShader(material.shaderassign.ShaderArchive, material.shaderassign.ShaderModel); chkboxVisible.Bind(material, "Enabled"); FillForm(); }
public void LoadMaterial(FMAT mat) { if (mat.MaterialU != null) { TabPage tabPage = null; for (int i = 0; i < stTabControl1.TabPages.Count; i++) { if (stTabControl1.TabPages[i].Text == "Render State") { tabPage = stTabControl1.TabPages[i]; } } if (tabPage == null) { tabPage = new TabPage(); tabPage.Text = "Render State"; stTabControl1.TabPages.Add(tabPage); RenderStateEditor = new RenderStateEditor(); RenderStateEditor.Dock = DockStyle.Fill; tabPage.Controls.Add(RenderStateEditor); } else { RenderStateEditor.LoadRenderState(mat.MaterialU.RenderState); } } material = mat; textBoxMaterialName.Text = material.Text; SetActiveGameByShader(material.shaderassign.ShaderArchive, material.shaderassign.ShaderModel); chkboxVisible.Bind(material, "Enabled"); FillForm(); uvEditor1.ActiveObjects.Clear(); uvEditor1.Textures.Clear(); foreach (var shp in ((FMDL)material.Parent.Parent).shapes) { if (shp.GetMaterial().Text == material.Text) { uvEditor1.ActiveObjects.Add(shp); } } foreach (var ftexContainer in PluginRuntime.ftexContainers) { foreach (var texmap in material.TextureMaps) { if (ftexContainer.ResourceNodes.ContainsKey(texmap.Name)) { uvEditor1.Textures.Add(LoadTextureUvMap(texmap, (FTEX)ftexContainer.ResourceNodes[texmap.Name])); } } } foreach (var bntx in PluginRuntime.bntxContainers) { foreach (var texmap in material.TextureMaps) { if (bntx.Textures.ContainsKey(texmap.Name)) { uvEditor1.Textures.Add(LoadTextureUvMap(texmap, bntx.Textures[texmap.Name])); } } } uvEditor1.Reset(); uvEditor1.ActiveMaterial = material; uvEditor1.Refresh(); }