public static void SPRDBProcessor(bool json) { Console.Title = "SPR DB Converter"; Program.Choose(1, "bin", out string[] fileNames); if (fileNames.Length < 1) { return; } string filepath, ext; Spr spr; foreach (string file in fileNames) { using (spr = new Spr()) { Console.Title = "SPR DB Converter: " + Path.GetFileNameWithoutExtension(file); filepath = Path.RemoveExtension(file); ext = Path.GetExtension(file).ToLower(); if (ext == ".bin") { spr.BINReader(filepath); spr.MsgPackWriter(filepath, json); } else if (ext == ".mp" || ext == ".json") { spr.MsgPackReader(filepath, ext == ".json"); spr.BINWriter(filepath); } } } }
private void _textBox_TextChanged(object sender, TextChangedEventArgs e) { try { byte[] data = _tab.Database.MetaGrf.GetData(EncodingService.FromAnyToDisplayEncoding(GrfPath.Combine(_grfPath, _textBox.Text) + _ext)); if (data != null) { if (_ext == ".spr") { try { Spr spr = new Spr(data, false); if (spr.Images.Count > 0) { _wrapper.Image = spr.Images[0]; _wrapper.Image.MakePinkTransparent(); _wrapper.Image.MakeFirstPixelTransparent(); _image.Tag = _textBox.Text; _image.Source = _wrapper.Image.Cast <BitmapSource>(); } else { _cancelImage(); } } catch { _cancelImage(); } } else { _wrapper.Image = ImageProvider.GetImage(data, _ext); _wrapper.Image.MakePinkTransparent(); _wrapper.Image.MakeFirstPixelTransparent(); _image.Tag = _textBox.Text; _image.Source = _wrapper.Image.Cast <BitmapSource>(); } } else { _cancelImage(); } } catch (Exception err) { _cancelImage(); ErrorHandler.HandleException(err); } }
private void _threadStart(object sender, TextChangedEventArgs e) { try { var text = _textBox.Text; var tuple = e == null ? sender as ReadableTuple <int> : _tab._listView.SelectedItem as ReadableTuple <int>; byte[] data = _tab.ProjectDatabase.MetaGrf.GetData(EncodingService.FromAnyToDisplayEncoding(GrfPath.Combine(_grfPath, text) + _ext)); if (tuple != null) { if (e != null) { _redirect = tuple.GetIntNoThrow(ServerMobAttributes.Sprite); } if (_redirect > 0) { var db = _tab.GetMetaTable <int>(ServerDbs.Mobs); tuple = db.TryGetTuple(_redirect); _redirect = 0; if (tuple != null) { var val = tuple.GetValue <string>(ServerMobAttributes.ClientSprite); data = _tab.ProjectDatabase.MetaGrf.GetData(EncodingService.FromAnyToDisplayEncoding(GrfPath.Combine(_grfPath, val) + _ext)); } } } if (data != null) { if (_ext == ".spr") { try { var image = Spr.GetFirstImage(data); if (image != null) { _wrapper.Image = image; _wrapper.Image.MakePinkTransparent(); _wrapper.Image.MakeFirstPixelTransparent(); _image.BeginDispatch(delegate { var bitmap = _wrapper.Image.Cast <BitmapSource>(); _image.Tag = text; _image.Source = bitmap; }); } else { _cancelImage(); } } catch { _cancelImage(); } } else { _wrapper.Image = ImageProvider.GetImage(data, _ext); _wrapper.Image.MakePinkTransparent(); _wrapper.Image.MakeFirstPixelTransparent(); _image.BeginDispatch(delegate { var bitmap = _wrapper.Image.Cast <BitmapSource>(); _image.Tag = text; _image.Source = bitmap; }); } } else { _cancelImage(); } } catch (Exception err) { _cancelImage(); ErrorHandler.HandleException(err); } }