private void SetCopiedMaterialData(CopyMaterialMenu menu, FMAT selectedMaterial, FMAT targetMaterial) { targetMaterial.Material.Flags = selectedMaterial.Material.Flags; targetMaterial.Material.UserDatas = selectedMaterial.Material.UserDatas; targetMaterial.Material.UserDataDict = selectedMaterial.Material.UserDataDict; if (menu.chkBoxRenderInfo.Checked) { targetMaterial.Material.RenderInfoDict = selectedMaterial.Material.RenderInfoDict; targetMaterial.Material.RenderInfos = selectedMaterial.Material.RenderInfos; } if (menu.chkBoxShaderOptions.Checked) { targetMaterial.Material.ShaderAssign = selectedMaterial.Material.ShaderAssign; } if (menu.chkBoxShaderParams.Checked) { targetMaterial.Material.ShaderParamData = selectedMaterial.Material.ShaderParamData; targetMaterial.Material.ShaderParamDict = selectedMaterial.Material.ShaderParamDict; targetMaterial.Material.ShaderParams = selectedMaterial.Material.ShaderParams; targetMaterial.Material.VolatileFlags = selectedMaterial.Material.VolatileFlags; } if (menu.chkBoxTextures.Checked) { targetMaterial.Material.SamplerDict = selectedMaterial.Material.SamplerDict; targetMaterial.Material.Samplers = selectedMaterial.Material.Samplers; targetMaterial.Material.SamplerSlotArray = selectedMaterial.Material.SamplerSlotArray; targetMaterial.Material.TextureSlotArray = selectedMaterial.Material.TextureSlotArray; targetMaterial.Material.TextureRefs = selectedMaterial.Material.TextureRefs; } targetMaterial.ReadMaterial(targetMaterial.Material); }
public void CopyMaterial(FMAT selectedMaterial) { CopyMaterialMenu menu = new CopyMaterialMenu(); menu.LoadMaterials(selectedMaterial.Text, GetModelList()); if (menu.ShowDialog() == DialogResult.OK) { foreach (TreeNode mdl in menu.materialTreeView.Nodes) { foreach (TreeNode n in mdl.Nodes) { if (n.Checked) { if (materials.ContainsKey(n.Text)) { SetCopiedMaterialData(menu, selectedMaterial, materials[n.Text]); } } } } Viewport.Instance.UpdateViewport(); } }