Ejemplo n.º 1
0
        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);
                    }
                }
            }
        }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
        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);
            }
        }