Example #1
0
        private void btnCopyAll_Click(object sender, EventArgs e)
        {
            _copyAllState.Clear();

            if (CurrentFrame == 0)
            {
                foreach (MDL0MaterialNode mat in TargetModel.FindChildrenByType("Materials", ResourceType.MDL0Material))
                {
                    foreach (MDL0MaterialRefNode mr in mat.Children)
                    {
                        _copyAllState[mr.Parent.Name + mr.Index] = (AnimationFrame)mr._bindState;
                    }
                }
            }
            else
            {
                foreach (SRT0EntryNode entry in SelectedAnimation.Children)
                {
                    foreach (SRT0TextureNode tex in entry.Children)
                    {
                        _copyAllState[tex.Parent.Name + tex.TextureIndex] = tex.GetAnimFrame(CurrentFrame - 1);
                    }
                }
            }
        }
Example #2
0
        private void btnPasteAll_Click(object sender, EventArgs e)
        {
            if (_copyAllState.Count == 0)
            {
                return;
            }

            if (CurrentFrame == 0)
            {
                foreach (MDL0MaterialNode mat in TargetModel.FindChildrenByType("Materials", ResourceType.MDL0Material))
                {
                    foreach (MDL0MaterialRefNode mr in mat.Children)
                    {
                        if (_copyAllState.ContainsKey(mr.Parent.Name + mr.Index))
                        {
                            if (AllTrans.Checked)
                            {
                                mr._bindState._translate = _copyAllState[mr.Parent.Name + mr.Index].Translation;
                            }
                            if (AllRot.Checked)
                            {
                                mr._bindState._rotate = _copyAllState[mr.Parent.Name + mr.Index].Rotation;
                            }
                            if (AllScale.Checked)
                            {
                                mr._bindState._scale = _copyAllState[mr.Parent.Name + mr.Index].Scale;
                            }
                            mr.SignalPropertyChange();
                        }
                    }
                }
            }
            else
            {
                foreach (SRT0EntryNode entry in SelectedAnimation.Children)
                {
                    foreach (SRT0TextureNode tex in entry.Children)
                    {
                        if (_copyAllState.ContainsKey(tex.Parent.Name + tex.TextureIndex))
                        {
                            if (AllTrans.Checked)
                            {
                                tex.SetKeyframeOnlyTrans(CurrentFrame - 1, _copyAllState[tex.Parent.Name + tex.TextureIndex]);
                            }
                            if (AllRot.Checked)
                            {
                                tex.SetKeyframeOnlyRot(CurrentFrame - 1, _copyAllState[tex.Parent.Name + tex.TextureIndex]);
                            }
                            if (AllScale.Checked)
                            {
                                tex.SetKeyframeOnlyScale(CurrentFrame - 1, _copyAllState[tex.Parent.Name + tex.TextureIndex]);
                            }
                        }
                    }
                }
            }

            _mainWindow.UpdateModel();
        }