private void treeViewCustom1_AfterSelect(object sender, TreeViewEventArgs e)
        {
            if (samplerTreeView.SelectedNode != null)
            {
                int index = samplerTreeView.SelectedNode.Index;

                activeSampler = (FMAA.BfresSamplerAnim)material.Nodes[index];
            }
        }
        public void LoadAnim(FMAA 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;

            activeSampler = (FMAA.BfresSamplerAnim)material.Samplers[samplerCB.SelectedIndex];

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

            LoadAniamtion(materialAnim, activeSampler);

            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;
                        }
                    }
                }
            }
        }
        private void samplerCB_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (material == null || !IsLoaded)
            {
                return;
            }

            if (samplerCB.SelectedIndex >= 0)
            {
                if (activeSampleU != null)
                {
                    activeSampleU = (FTXP.BfresSamplerAnim)material.Samplers[samplerCB.SelectedIndex];
                    LoadAniamtion(ActiveMaterialAnim, activeSampleU);
                }
                else
                {
                    activeSampler = (FMAA.BfresSamplerAnim)material.Samplers[samplerCB.SelectedIndex];
                    LoadAniamtion(ActiveMaterialAnim, activeSampler);
                }
            }
        }