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(); }
internal unsafe void PercentChanged(object sender, EventArgs e) { if (VertexSet == null || SelectedDestination == null || updating) { return; } MDL0VertexNode vSet = VertexSet; if ((SelectedAnimation != null) && (CurrentFrame > 0)) { SHP0EntryNode entry = SelectedAnimation.FindChild(vSet.Name, false) as SHP0EntryNode; SHP0VertexSetNode v; if (entry == null) { (v = (entry = SelectedAnimation.FindOrCreateEntry(vSet.Name)).Children[0] as SHP0VertexSetNode).Name = SelectedDestination.Name; } else if ((v = entry.FindChild(SelectedDestination.Name, false) as SHP0VertexSetNode) == null) { if (!float.IsNaN(textBox1.Value)) { v = entry.FindOrCreateEntry(SelectedDestination.Name); v.SetKeyframe(CurrentFrame - 1, textBox1.Value / 100.0f); } } else if (float.IsNaN(textBox1.Value)) { v.RemoveKeyframe(CurrentFrame - 1); } else { v.SetKeyframe(CurrentFrame - 1, textBox1.Value / 100.0f); } } //TargetModel.ApplyCHR(SelectedCHR0, CurrentFrame); //TargetModel.ApplySHP(SelectedAnimation, CurrentFrame); //ResetBox(); //_mainWindow.modelPanel1.Invalidate(); _mainWindow.UpdateModel(); }