void ViewFragment(AnimationFragment fragment, bool canEdit = false)
 {
     if (fragment != null)
     {
         var view = AnimationFragmentViewModel.CreateFromFragment(_pfs, fragment, canEdit);
         TableWindow.Show(view);
     }
 }
 void OutputFragmentSelected(AnimationFragment fragment)
 {
     if (fragment == null)
     {
         ActiveFragmentSlot.UpdatePossibleValues(null);
     }
     else
     {
         ActiveFragmentSlot.UpdatePossibleValues(fragment.Fragments.Select(x => new FragmentStatusSlotItem(x)));
     }
     UpdateCanSaveAndPreviewStates();
 }
示例#3
0
        public void Process(AnimationFragment mountFragment, AnimationFragment riderFragment)
        {
            var resultInfo = new ErrorListViewModel.ErrorList();

            _mountFragment = mountFragment;
            _riderFragment = riderFragment;

            CreateFiles();
            CreateFragmentAndAnimations(resultInfo);
            SaveFiles();

            ErrorListWindow.ShowDialog("Mount creation result", resultInfo, false);
        }
示例#4
0
        void CreateFiles()
        {
            //AnimationPackLoader
            _outAnimPack = new AnimationPackFile(_animBinName);
            _outAnimPack.AnimationBin = new AnimationBin("animations/animation_tables/" + _animBinName);
            var tableEntry = new AnimationBinEntry(_fragmentName, _riderFragment.Skeletons.Values.First(), "Bin entry using skeleton - " + _mountFragment.Skeletons.Values.First() + " goes here");

            tableEntry.FragmentReferences.Add(new AnimationBinEntry.FragmentReference()
            {
                Name = _fragmentName
            });

            _outAnimPack.AnimationBin.AnimationTableEntries.Add(tableEntry);

            _riderOutputFragment           = new AnimationFragment("animations/animation_tables/" + _fragmentName + ".frg");
            _riderOutputFragment.Skeletons = new AnimationFragment.StringArrayTable(_riderFragment.Skeletons.Values.First(), _riderFragment.Skeletons.Values.First());

            _outAnimPack.Fragments.Add(_riderOutputFragment);
        }
        void MuntSelected(AnimationFragment value, FilterCollection <FragmentStatusSlotItem> collection, string skeletonName)
        {
            if (value == null)
            {
                collection.UpdatePossibleValues(null);
                _validateAction();
                return;
            }

            var newSkeletonName      = value.Skeletons.Values.FirstOrDefault();
            var existingSkeletonName = Path.GetFileNameWithoutExtension(skeletonName);

            if (newSkeletonName != existingSkeletonName)
            {
                MessageBox.Show("This fragment does not fit the current skeleton");
                return;
            }

            collection.UpdatePossibleValues(value.Fragments.Select(x => new FragmentStatusSlotItem(x)));
            _validateAction();
        }