private void materialCB_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (material == null || !IsLoaded)
            {
                return;
            }

            if (materialCB.SelectedIndex >= 0)
            {
                btnEditSamplers.Enabled = true;

                material = ActiveMaterialAnim.Materials[materialCB.SelectedIndex];

                if (activeSampleU != null)
                {
                    LoadAniamtion(ActiveMaterialAnim, activeSampleU);
                }
                else
                {
                    LoadAniamtion(ActiveMaterialAnim, activeSampler);
                }
            }
            else
            {
                btnEditSamplers.Enabled = false;
            }
        }
        public void LoadAnim(MaterialAnimation.Material mat)
        {
            activeMat = mat;

            foreach (var sampler in mat.Samplers)
            {
                listViewCustom1.Items.Add(sampler.Text);
            }
        }
        public void LoadAnim(FTXP materialAnim)
        {
            if (materialAnim.Materials.Count <= 0)
            {
                return;
            }

            IsLoaded = false;

            ActiveMaterialAnim = materialAnim;


            materialCB.Items.Clear();
            samplerCB.Items.Clear();

            foreach (var mat in materialAnim.Materials)
            {
                materialCB.Items.Add(mat.Text);
            }

            materialCB.SelectedIndex = 0;

            material = materialAnim.Materials[materialCB.SelectedIndex];

            if (material.Samplers.Count <= 0)
            {
                return;
            }

            foreach (var sampler in material.Samplers)
            {
                samplerCB.Items.Add(sampler.Text);
            }

            samplerCB.SelectedIndex = 0;

            activeSampleU = (FTXP.BfresSamplerAnim)material.Samplers[samplerCB.SelectedIndex];

            listViewCustom1.SuspendLayout();
            listViewCustom1.Items.Clear();

            LoadAniamtion(materialAnim, activeSampleU);

            listViewCustom1.ResumeLayout();

            IsLoaded = true;
            animationTrackBar.Value = 0;
        }
        public void LoadAnim(FMAA.BfresSamplerAnim samplerAnim)
        {
            activeSampler = samplerAnim;
            material      = (MaterialAnimation.Material)samplerAnim.Parent;
            var anim = (MaterialAnimation)material.Parent;

            trackbarKeyEditor1.ClearKeys();
            trackbarKeyEditor1.Maximum = anim.FrameCount;
            samplerTreeView.Nodes.Clear();

            int KeyHeight = trackbarKeyEditor1.ClientSize.Width / anim.FrameCount;

            pictureBoxCustom1.Image = null;

            foreach (FMAA.BfresSamplerAnim sampler in material.Nodes)
            {
                samplerTreeView.Nodes.Add(sampler.Text);
            }
            if (samplerTreeView.Nodes.Count > 0)
            {
                samplerTreeView.SelectedNode = samplerTreeView.Nodes[0];
            }

            animMaxFrameUD.Value = anim.FrameCount;

            for (int Frame = 0; Frame < anim.FrameCount; Frame++)
            {
                int KeyPosY = KeyHeight;
                foreach (FMAA.BfresSamplerAnim sampler in material.Nodes)
                {
                    var keyFrame = sampler.group.GetKeyFrame(Frame);

                    if (keyFrame.IsKeyed)
                    {
                        var tex = sampler.GetActiveTexture(Frame);

                        if (tex != null)
                        {
                            Bitmap temp = tex.GetBitmap();
                            trackbarKeyEditor1.AddKeyFrameThumbSlider(Frame, KeyPosY, KeyHeight, temp);
                            KeyPosY += KeyHeight;
                        }
                    }
                }
            }
        }