Example #1
0
        public static string GetSpriteFromJob(MultiGrfReader grf, Job job, PreviewHelper helper, string sprite, ViewIdTypes type)
        {
            switch (type)
            {
            case ViewIdTypes.Garment:
                return(GetSpritePathFromJob(grf, job, @"data\sprite\·Îºê\" + sprite + @"\" + helper.GenderString + "\\{0}_" + helper.GenderString, helper.Gender, null, sprite));

            case ViewIdTypes.Shield:
                return(GetSpritePathFromJob(grf, job, @"data\sprite\¹æÆÐ\{0}\{0}_" + helper.GenderString + sprite, helper.Gender, "¹æÆÐ", sprite));

            case ViewIdTypes.Weapon:
                return(GetSpritePathFromJob(grf, job, @"data\sprite\Àΰ£Á·\{0}\{0}_" + helper.GenderString + sprite, helper.Gender, "Àΰ£Á·", sprite));

            case ViewIdTypes.Headgear:
                return(EncodingService.FromAnyToDisplayEncoding(@"data\sprite\¾Ç¼¼»ç¸®\" + helper.GenderString + "\\" + EncodingService.FromAnyToDisplayEncoding(helper.GenderString + "_") + helper.PreviewSprite));

            case ViewIdTypes.Npc:
                if (helper.PreviewSprite != null && helper.PreviewSprite.EndsWith(".gr2", StringComparison.OrdinalIgnoreCase))
                {
                    return(EncodingService.FromAnyToDisplayEncoding(@"data\model\3dmob\" + helper.PreviewSprite));
                }

                return(EncodingService.FromAnyToDisplayEncoding(@"data\sprite\npc\" + helper.PreviewSprite));
            }

            return(null);
        }
        public AccEditDialog(SdeDatabase gdb)
            : base("View IDs editor", "treeList.png", SizeToContent.WidthAndHeight, ResizeMode.NoResize)
        {
            _gdb      = gdb;
            _multiGrf = gdb.MetaGrf;

            InitializeComponent();
            WindowStartupLocation = WindowStartupLocation.CenterOwner;
            Owner  = WpfUtilities.TopWindow;
            _async = new AsyncOperation(_progressBar);

            _obItems = new ObservableCollection <AccessoryItemView>(new List <AccessoryItemView>());
            _dataGrid.ItemsSource           = _obItems;
            _dataGrid.CanUserAddRows        = true;
            _dataGrid.CanUserDeleteRows     = true;
            _dataGrid.IsReadOnly            = false;
            _dataGrid.CanUserReorderColumns = false;
            _dataGrid.CanUserResizeColumns  = false;
            _dataGrid.CanUserSortColumns    = true;
            _dataGrid.SelectionMode         = Microsoft.Windows.Controls.DataGridSelectionMode.Extended;
            _dataGrid.SelectionUnit         = Microsoft.Windows.Controls.DataGridSelectionUnit.CellOrRowHeader;
            _dataGrid.CanUserResizeRows     = false;

            _dataGrid.KeyDown += new KeyEventHandler(_dataGrid_KeyDown);

            _loadData();
        }
Example #3
0
        public TextViewItem(ListView listView, GetSetSetting setting, MultiGrfReader metaGrf)
        {
            _setting = setting;
            _metaGrf = metaGrf;
            ListView = listView;

            InitializeComponent();

            _tblockDescription.PreviewMouseMove += (e, a) => OnMouseOver(e);
            _tbText.TextChanged       += _tbText_TextChanged;
            _toolTip                   = new ToolTip();
            _tRectangleOverlay.ToolTip = _toolTip;

            MouseEnter += new MouseEventHandler(_tkTreeViewItem_MouseEnter);
            MouseLeave += new MouseEventHandler(_tkTreeViewItem_MouseLeave);

            try {
                DefaultValue = ProjectConfiguration.ConfigAsker.RetrieveSetting(() => setting.Value).Default;
            }
            catch {
                DefaultValue = setting.Value;
            }

            _tbText.SavePathUniqueName = "Server database editor - TVI - " + DefaultValue;
            _tbText.Text = setting.Value;

            PreviewDragEnter += _dragOver;
            PreviewDragOver  += _dragOver;
            PreviewDragLeave += _dragLeave;
            PreviewDrop      += (e, a) => { _tbText.OnMainGridDrop(e, a); a.Handled = true; };
        }
Example #4
0
        public void Read(ReadableTuple <int> tuple, GDbTab tab)
        {
            PreviewSprite = null;
            KeepPreviousPreviewPosition = true;
            RemoveJobs();
            RemoveError();
            List <Job> jobs;

            _lastTuple  = tuple;
            _metaGrf    = tab.ProjectDatabase.MetaGrf;
            _currentTab = tab;

            foreach (var preview in _previews)
            {
                if (preview.CanRead(tuple))
                {
                    if (_lastMatch != preview)
                    {
                        KeepPreviousPreviewPosition = false;
                    }

                    _lastMatch = preview;
                    string job = tuple.GetValue <string>(ServerItemAttributes.ApplicableJob);
                    jobs = JobList.GetJobsFromHex("0x" + ((job == "") ? "FFFFFFFF" : job), tuple.GetIntNoThrow(ServerItemAttributes.Upper));
                    preview.Read(tuple, this, jobs);
                    break;
                }
            }

            if (_listView.Items.Count > 0)
            {
                _listView.SelectedItem = PreferredJob;

                if (_listView.SelectedItem == null)
                {
                    if (_oldJob != null)
                    {
                        _listView.SelectedItem = _oldJob;
                    }

                    if (_listView.SelectedItem == null)
                    {
                        _listView.SelectedIndex = 0;
                    }
                }
            }
            else
            {
                _updatePreview(SpriteDefault);
            }

            if (!KeepPreviousPreviewPosition)
            {
                _selector.SetAction(_lastMatch.SuggestedAction);
            }
        }
        public MultiGrfExplorer(MultiGrfReader metaGrf, string explorerPath, string filter, string selected)
            : base("Meta GRF explorer", "cde.ico", SizeToContent.Manual, ResizeMode.CanResize)
        {
            InitializeComponent();

            ShowInTaskbar = true;
            _explorerPath = explorerPath.ToLower();
            _metaGrf      = metaGrf;
            //metaGrf.Lock();

            if (filter != "")
            {
                _entries.AddRange(metaGrf.FilesInDirectory(_explorerPath).Select(metaGrf.GetEntry).Where(p => p.RelativePath.IndexOf(filter, StringComparison.OrdinalIgnoreCase) > -1));
            }
            else
            {
                _entries.AddRange(metaGrf.FilesInDirectory(_explorerPath).Select(metaGrf.GetEntry));
            }

            _entriesAll.AddRange(_entries);

            foreach (FileEntry entry in _entries)
            {
                entry.DataImage = entry.DisplayRelativePath;
            }

            _loadEncoding();

            ListViewDataTemplateHelper.GenerateListViewTemplateNew(_items, new ListViewDataTemplateHelper.GeneralColumnInfo[] {
                new ListViewDataTemplateHelper.RangeColumnInfo {
                    Header = "File name", DisplayExpression = "DataImage", ToolTipBinding = "RelativePath", IsFill = true, MinWidth = 60, TextWrapping = TextWrapping.Wrap
                },
                new ListViewDataTemplateHelper.GeneralColumnInfo {
                    Header = "Type", DisplayExpression = "FileType", FixedWidth = 40, TextAlignment = TextAlignment.Right, ToolTipBinding = "FileType"
                },
                new ListViewDataTemplateHelper.GeneralColumnInfo {
                    Header = "Size", DisplayExpression = "DisplaySize", FixedWidth = 60, TextAlignment = TextAlignment.Right, ToolTipBinding = "DisplaySize"
                },
            }, new MetaGrfSorter(), new string[] { });

            _items.MouseDoubleClick += new MouseButtonEventHandler(_items_MouseDoubleClick);

            _items.ItemsSource = _entries;
            VirtualFileDataObject.SetDraggable(_imagePreview, _wrapper);

            ApplicationShortcut.Link(ApplicationShortcut.Copy, _copyItems, _items);
            ApplicationShortcut.Link(ApplicationShortcut.Confirm, () => _buttonSelect_Click(null, null), _items);

            this.Loaded += delegate {
                _items.SelectedItem = _entries.FirstOrDefault(p => String.CompareOrdinal(p.DisplayRelativePath, selected.ToDisplayEncoding(true) + ".bmp") == 0);
                _items.ScrollToCenterOfView(_items.SelectedItem);
            };

            this.Owner = WpfUtilities.TopWindow;
        }
Example #6
0
        public void BackupClient(string file, MultiGrfReader mGrf)
        {
            if (!SdeAppConfiguration.BackupsManagerState || !IsStarted || _backupThread.IsCrashed)
            {
                return;
            }
            if (file == null)
            {
                throw new ArgumentNullException("file");
            }

            BackupClient(file, mGrf.GetData(file));
        }
        public LuaTableDialog(SdeDatabase database)
            : base("Lua settings", "settings.png", SizeToContent.Height, ResizeMode.NoResize)
        {
            _multiGrf = database.MetaGrf;
            InitializeComponent();

            Binder.Bind(_cbMobTables, () => ProjectConfiguration.SyncMobTables, _updateMobTables, true);
            Binder.Bind(_cbAccTables, () => ProjectConfiguration.HandleViewIds, _updateccTables, true);

            WpfUtils.AddMouseInOutEffectsBox(_cbMobTables, _cbAccTables);
            _database = database;

            _oldPath1 = ProjectConfiguration.SyncMobId;
            _oldPath2 = ProjectConfiguration.SyncMobName;

            _spMob.Children.Add(new TextViewItem(null, new GetSetSetting(v => ProjectConfiguration.SyncMobId = v, () => ProjectConfiguration.SyncMobId), _multiGrf)
            {
                Description = "npcidentity.lub"
            });
            _spMob.Children.Add(new TextViewItem(null, new GetSetSetting(v => ProjectConfiguration.SyncMobName = v, () => ProjectConfiguration.SyncMobName), _multiGrf)
            {
                Description = "jobname.lub"
            });
            _spAcc.Children.Add(new TextViewItem(null, new GetSetSetting(v => ProjectConfiguration.SyncAccId = v, () => ProjectConfiguration.SyncAccId), _multiGrf)
            {
                Description = "accessoryid.lub"
            });
            _spAcc.Children.Add(new TextViewItem(null, new GetSetSetting(v => ProjectConfiguration.SyncAccName = v, () => ProjectConfiguration.SyncAccName), _multiGrf)
            {
                Description = "accname.lub"
            });

            _spMob.SizeChanged += _grid_SizeChanged;
            _spAcc.SizeChanged += _grid_SizeChanged;

            Extensions.SetMinimalSize(this);
            this.Owner = WpfUtilities.TopWindow;
        }
Example #8
0
        public static string GetSpritePathFromJob(MultiGrfReader grf, Job job, string spriteFormat, GenderType gender, string folder, string sprite, int level = 0)
        {
            if (sprite == PreviewHelper.SpriteNone)
            {
                return(PreviewHelper.SpriteNone);
            }

            spriteFormat = EncodingService.FromAnyToDisplayEncoding(spriteFormat);

            var    dico = _getJobToPath(folder, gender);
            string subPath;

            Job current = job;

            // Remove baby jobs
            if (JobGroup.Baby2.Is(current.Upper))
            {
                current = Job.Get(current.Id, JobGroup.Normal2);
            }

            if (JobGroup.Baby3.Is(current.Upper))
            {
                current = Job.Get(current.Id, JobGroup.Normal3);
            }

            if (!dico.ContainsKey(current))
            {
                // Find the job by its parent
                while (current != null)
                {
                    // Remove trans jobs
                    if (JobGroup.Trans2.Is(current.Upper))
                    {
                        current = Job.Get(current.Id, JobGroup.Normal2);
                    }

                    if (JobGroup.Trans3.Is(current.Upper))
                    {
                        current = Job.Get(current.Id, JobGroup.Normal3);
                    }

                    if (dico.ContainsKey(current))
                    {
                        break;
                    }

                    if (current.Parent != null && current.Parent.Id != JobList.Novice.Id)
                    {
                        current = current.Parent;
                    }
                    else
                    {
                        break;
                    }
                }
            }

            if (current == null || !dico.ContainsKey(current))
            {
                subPath = job.SpriteName;
            }
            else
            {
                subPath = dico[current];
            }

            string path = String.Format(spriteFormat, subPath);

            if (level == 0 && (grf.GetData(path + ".act") == null && job.Parent != null))
            {
                if (job.Parent.Id != JobList.Novice.Id)
                {
                    path = GetSpritePathFromJob(grf, job.Parent, spriteFormat, gender, folder, sprite, level + 1);

                    if (grf.GetData(path + ".act") == null && job.Parent.Parent != null)
                    {
                        if (job.Parent.Parent.Id != JobList.Novice.Id)
                        {
                            path = GetSpritePathFromJob(grf, job.Parent.Parent, spriteFormat, gender, folder, sprite, level + 2);
                        }
                    }
                }
            }

            //if (level == 0) {
            //	if (grf.GetData(path + ".act") == null) {
            //		return PreviewHelper.SpriteMissing;
            //	}
            //}

            return(path);
        }
Example #9
0
 public SdeDatabase(MultiGrfReader metaGrf)
 {
     _metaGrf = metaGrf;
     Commands = new CommandsHolder();
 }
Example #10
0
        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());
        }
Example #11
0
        public List <string> TestItem(ReadableTuple <int> tuple, MultiGrfReader grf, Type compare = null)
        {
            var result = new List <string>();

            _metaGrf   = grf;
            _lastTuple = tuple;

            foreach (var preview in _previews)
            {
                if (preview.CanRead(tuple) && !(preview is NullPreview) && (compare == null || preview.GetType() == compare))
                {
                    string jobt = tuple.GetValue <string>(ServerItemAttributes.ApplicableJob);
                    var    jobs = JobList.GetJobsFromHex("0x" + ((jobt == "") ? "FFFFFFFF" : jobt), tuple.GetIntNoThrow(ServerItemAttributes.Upper));
                    preview.Read(tuple, this, jobs);

                    _jobs.Clear();
                    _jobs.AddRange(jobs);

                    if (PreviewSprite == SpriteNone)
                    {
                        return(result);
                    }

                    var gender = _lastTuple.GetValue <GenderType>(ServerItemAttributes.Gender);

                    foreach (var job in jobs)
                    {
                        _listView.SelectedItem = job;

                        if (_listView.SelectedItem == null)
                        {
                            continue;
                        }

                        if (gender == GenderType.Undefined)
                        {
                            gender = GenderType.Both;
                        }

                        if (gender == GenderType.Both || gender == GenderType.Female)
                        {
                            _overrideGender = GenderType.Female;

                            var act = preview.GetSpriteFromJob(tuple, this);
                            var spr = act.ReplaceExtension(".spr");

                            result.Add(act);
                            result.Add(spr);
                        }

                        if (gender == GenderType.Both || gender == GenderType.Male)
                        {
                            _overrideGender = GenderType.Male;

                            var act = preview.GetSpriteFromJob(tuple, this);
                            var spr = act.ReplaceExtension(".spr");

                            result.Add(act);
                            result.Add(spr);
                        }

                        _overrideGender = null;
                    }
                    break;
                }
            }

            return(result);
        }