public PreviewHelper(RangeListView listView, AbstractDb <int> db, CompactActIndexSelector selector, FrameViewer frameViewer, Border gridSpriteMissing, TextBox tbSpriteMissing ) { _listView = listView; _selector = selector; _frameViewer = frameViewer; _gridSpriteMissing = gridSpriteMissing; _tbSpriteMissing = tbSpriteMissing; _listView.ItemsSource = _jobs; if (db != null) { _metaGrf = db.ProjectDatabase.MetaGrf; } Db = db; _headReferenceDefault = new Act(ApplicationManager.GetResource("ref_head.act"), new Spr(ApplicationManager.GetResource("ref_head.spr"))); _bodyReferenceDefault = new Act(ApplicationManager.GetResource("ref_body.act"), new Spr(ApplicationManager.GetResource("ref_body.spr"))); _settings = new FrameViewerSettings(); _settings.Act = () => _act; _references = new List <ActReference>(); _references.Add(new ActReference { Act = DefaultBodyReference, Mode = ZMode.Back, Show = true }); _references.Add(new ActReference { Act = DefaultHeadReference, Mode = ZMode.Back, Show = true }); _settings.ReferencesGetter = () => _references; if (_selector != null) { _selector.Init(_frameViewer); _selector.Load(null); _selector.FrameChanged += (s, p) => _frameViewer.Update(); _selector.ActionChanged += (s, p) => _frameViewer.Update(); _selector.SpecialFrameChanged += (s, p) => _frameViewer.Update(); _settings.SelectedAction = () => _selector.SelectedAction; _settings.SelectedFrame = () => _selector.SelectedFrame; } for (int i = 0; i < 104; i++) { _emptyAct.AddAction(); } if (_frameViewer != null) { _frameViewer.InitComponent(_settings); } _listView.SelectionChanged += new SelectionChangedEventHandler(_jobChanged); _listView.PreviewMouseDown += _listView_PreviewMouseDown; _listView.PreviewMouseUp += _listView_PreviewMouseDown; _previews.Add(new HeadgearPreview()); _previews.Add(new ShieldPreview()); _previews.Add(new WeaponPreview()); _previews.Add(new GarmentPreview()); _previews.Add(new NpcPreview()); _previews.Add(new NullPreview()); }
private void _updatePreview(string sprite) { byte[] headActionData; byte[] headSpriteData; _act = _emptyAct; _references.RemoveRange(2, _references.Count - 2); // Sprite has 3 states : // correct path - may not be found // null - do not update and show error // none - do not update and do not show error if (sprite == null) { AddError("Resource error : couldn't find the specified sprite."); } else if (sprite == SpriteDefault) { _bodyReference = DefaultBodyReference; } else if (sprite == SpriteNone) { } else { if (sprite.GetExtension() != null) { headActionData = Grf.GetData(sprite); headSpriteData = Grf.GetData(sprite.ReplaceExtension(".spr")); if (headActionData != null && headSpriteData != null) { _act = new Act(headActionData, new Spr(headSpriteData)); } if (headActionData == null || headSpriteData == null) { SetError(String.Format("Resource error : sprite(s) not found \n{0} - {1}\n{2} - {3}", sprite, headActionData == null ? "#MISSING" : "#FOUND", sprite.ReplaceExtension(".spr"), headSpriteData == null ? "#MISSING" : "#FOUND")); } //sprite = sprite.ReplaceExtension(EncodingService.FromAnyToDisplayEncoding("_검광.act")); //headActionData = Grf.GetData(sprite); //headSpriteData = Grf.GetData(sprite.ReplaceExtension(".spr")); // //if (headActionData != null && headSpriteData != null) { // Act act = new Act(headActionData, new Spr(headSpriteData)); // act.AnchoredTo = _bodyReference; // _references.Add(new ActReference { Act = act, Mode = ZMode.Front, Show = true }); //} } } _headReference.AnchoredTo = _bodyReference; _act.AnchoredTo = _headReference; _selector.Load(_act); _frameViewer.SetGarmentMode(false); _headReference.Commands.UndoAll(); _bodyReference.Commands.UndoAll(); if (_act != null) { _act.Commands.UndoAll(); } if (Job != null && Job.Name.StartsWith("Baby ")) { _headReference.Commands.Backup(a => a.Magnify(0.75f, true)); _bodyReference.Commands.Backup(a => a.Magnify(0.75f, true)); if (_act != null) { _act.Commands.Backup(a => a.Magnify(0.75f, true)); } } if (_lastMatch is GarmentPreview) { _frameViewer.SetGarmentMode(true); } _frameViewer.Update(); }