Пример #1
0
        private void add_material_inspector(DataFormats.JSRF.MDLB.material mat = null)
        {
            Material_Inspector mat_inspector = new Material_Inspector();

            mat_inspector.Location = new Point(0, mat_inspector_list.Count * 90);
            Materials.color c = new Materials.color(255, 255, 255, 255);


            // add control
            panel_materials.Controls.Add(mat_inspector);

            // set properties values
            for (int x = 0; x <= panel_materials.Controls.Count - 1; x++)
            {
                Control ct = panel_materials.Controls[x];

                if (ct is Material_Inspector && x == mat_inspector_list.Count)
                {
                    ((Material_Inspector)ct).id = mat_inspector_list.Count;

                    // if no input material is defined, load values from last material inspector
                    if (mat == null)
                    {
                        Material_Inspector mi_last = mat_inspector_list[mat_inspector_list.Count - 1];
                        // set material inspector values taken from last material inspector
                        ((Material_Inspector)ct).set_values(mi_last.get_color(), mi_last.get_shader_type(), mi_last.get_unk_id(), mi_last.get_hb());
                    }
                    else
                    {
                        // set material inspector values from input Material (mat)
                        Materials.color color = new Materials.color(mat.color.R, mat.color.G, mat.color.B, mat.color.A);
                        ((Material_Inspector)ct).set_values(color, mat.shader_id, mat.unk_id2, mat.HB);
                    }


                    mat_inspector_list.Add((Material_Inspector)ct);
                }
            }
        }