diff --git a/BlueprintExplorer/BlueprintDB.cs b/BlueprintExplorer/BlueprintDB.cs index c53b7e4..0435547 100644 --- a/BlueprintExplorer/BlueprintDB.cs +++ b/BlueprintExplorer/BlueprintDB.cs @@ -962,10 +962,13 @@ public List SearchBlueprints(string searchText, int matchBuffer List passThrough = searchText.Split(' ', StringSplitOptions.RemoveEmptyEntries).ToList(); + string groupBy = null; + for (int i = 0; i < passThrough.Count; i++) { var special = passThrough[i][1..]; bool remove = true; + switch (passThrough[i][0]) { case '?': @@ -985,6 +988,11 @@ public List SearchBlueprints(string searchText, int matchBuffer //toSearch = toSearch.Where(b => EntryIsNotNull(b, path)).ToList(); } break; + case '>': + groupBy = special; + + toSearch = toSearch.Where(b => b.EnsureObj.Str(special) is not null).ToList(); + break; default: remove = false; break; @@ -1010,7 +1018,12 @@ public List SearchBlueprints(string searchText, int matchBuffer results.Add(handle); cancellationToken.ThrowIfCancellationRequested(); } + results.Sort((x, y) => y.Score(matchBuffer).CompareTo(x.Score(matchBuffer))); + + if (groupBy is not null) + return results.GroupBy(handle => handle.EnsureObj.Str(groupBy)).SelectMany(group => group).ToList(); + return results; } diff --git a/BlueprintExplorer/help.rtf b/BlueprintExplorer/help.rtf index 27d8c0a..dbb9694 100644 --- a/BlueprintExplorer/help.rtf +++ b/BlueprintExplorer/help.rtf @@ -1,184 +1,67 @@ -{\rtf1\ansi\deff3\adeflang1025 -{\fonttbl{\f0\froman\fprq2\fcharset0 Times New Roman;}{\f1\froman\fprq2\fcharset2 Symbol;}{\f2\fswiss\fprq2\fcharset0 Arial;}{\f3\froman\fprq2\fcharset0 Liberation Serif{\*\falt Times New Roman};}{\f4\fmodern\fprq1\fcharset0 Liberation Mono{\*\falt Courier New};}{\f5\fswiss\fprq2\fcharset0 Liberation Sans{\*\falt Arial};}{\f6\froman\fprq2\fcharset0 Calibri;}{\f7\froman\fprq2\fcharset0 Lucida Console;}{\f8\fmodern\fprq1\fcharset0 NSimSun;}{\f9\fnil\fprq2\fcharset0 Microsoft YaHei;}{\f10\fnil\fprq2\fcharset0 Arial;}{\f11\fswiss\fprq0\fcharset128 Arial;}} -{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;} -{\stylesheet{\s0\snext0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052 Normal;} -{\*\cs15\snext15\hich\af6\loch\f6\fs22\b0 ListLabel 1;} -{\s16\sbasedon0\snext17\rtlch\af10\afs28 \ltrch\hich\af5\loch\sb240\sa120\keepn\f5\fs28\dbch\af9 Heading;} -{\s17\sbasedon0\snext17\loch\sl276\slmult1\sb0\sa140 Text Body;} -{\s18\sbasedon17\snext18\rtlch\af11 \ltrch\loch\sl276\slmult1\sb0\sa140 List;} -{\s19\sbasedon0\snext19\rtlch\af11\afs24\ai \ltrch\loch\sb120\sa120\noline\fs24\i Caption;} -{\s20\sbasedon0\snext20\rtlch\af11\alang255 \ltrch\lang255\langfe255\loch\noline\lang255\dbch\langfe255 Index;} -{\s21\sbasedon0\snext21\rtlch\af4\afs20 \ltrch\hich\af4\loch\sb0\sa0\f4\fs20\dbch\af8 Preformatted Text;} -}{\*\listtable{\list\listtemplateid1 -{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi0\li0} -{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi0\li0} -{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi0\li0} -{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi0\li0} -{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi0\li0} -{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi0\li0} -{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi0\li0} -{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi0\li0} -{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi0\li0}\listid1} -{\list\listtemplateid2 -{\listlevel\levelnfc23\leveljc0\levelstartat0\levelfollow0{\leveltext \'01\u183 ?;}{\levelnumbers;}\f1\loch\fs22\b0\fi0\li0} -{\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'01.;}{\levelnumbers\'01;}\fi-360\li1080} -{\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'02.;}{\levelnumbers\'01;}\fi-360\li1440} -{\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'03.;}{\levelnumbers\'01;}\fi-360\li1800} -{\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'04.;}{\levelnumbers\'01;}\fi-360\li2160} -{\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'05.;}{\levelnumbers\'01;}\fi-360\li2520} -{\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'06.;}{\levelnumbers\'01;}\fi-360\li2880} -{\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'07.;}{\levelnumbers\'01;}\fi-360\li3240} -{\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'08.;}{\levelnumbers\'01;}\fi-360\li3600}\listid2} -}{\listoverridetable{\listoverride\listid1\listoverridecount0\ls1}{\listoverride\listid2\listoverridecount0\ls2}}{\*\generator LibreOffice/7.2.1.2$Windows_X86_64 LibreOffice_project/87b77fad49947c1441b67c559c339af8f3517e22}{\info{\creatim\yr0\mo0\dy0\hr0\min0}{\revtim\yr2022\mo4\dy28\hr22\min56}{\printim\yr0\mo0\dy0\hr0\min0}}{\*\userprops}\deftab720 -\hyphauto1\viewscale100 -{\*\pgdsctbl -{\pgdsc0\pgdscuse451\pgwsxn12240\pghsxn15840\marglsxn1440\margrsxn1440\margtsxn1440\margbsxn1440\pgdscnxt0 Default Page Style;}} -\formshade\paperh15840\paperw12240\margl1440\margr1440\margt1440\margb1440\sectd\sbknone\pgndec\sftnnar\saftnnrlc\sectunlocked1\pgwsxn12240\pghsxn15840\marglsxn1440\margrsxn1440\margtsxn1440\margbsxn1440\ftnbj\ftnstart1\ftnrstcont\ftnnar\aenddoc\aftnrstcont\aftnstart1\aftnnrlc -{\*\ftnsep\chftnsep}\pgndec\pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch\sl276\slmult1\ql\nowidctlpar\hyphpar0\sb0\sa200\ltrpar{\hich\af6\loch\fs28\lang1033\b\kerning1\f6\loch -SETTINGS} -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch\sl276\slmult1\ql\nowidctlpar\hyphpar0\sb0\sa200\ltrpar{\hich\af6\loch\fs22\lang1033\b0\kerning1\f6\loch -Some things are configurable, click the 'Settings' button at the top right of the main window, each setting has a description of what it does.} -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch\sl276\slmult1\ql\nowidctlpar\hyphpar0\sb0\sa200\ltrpar{\hich\af6\loch\fs28\lang1033\b\kerning1\f6\loch -COPYING} -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch\sl276\slmult1\ql\nowidctlpar\hyphpar0\sb0\sa200\ltrpar{\hich\af6\loch\fs22\lang1033\b0\kerning1\f6\loch -Right clicking on any row in the blueprints view will copy the value (with some special handling for stuff like links) to the clipboard.} -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch\sl276\slmult1\ql\nowidctlpar\hyphpar0\sb0\sa200\ltrpar{\hich\af6\loch\fs22\lang1033\b0\kerning1\f6\loch -If you hold `shift` while right-clicking a guid (i.e. a link, or the "Blueprint ID" field) the value will be copied with `!bp_` prefixed, creating !bp_guid. This can be useful for OwlcatTemplate development.} -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch\sl276\slmult1\ql\nowidctlpar\hyphpar0\sb0\sa200\ltrpar{\hich\af6\loch\fs28\lang1033\b\kerning1\f6\loch -FILTERING} -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch\sl276\slmult1\ql\nowidctlpar\hyphpar0\sb0\sa200\ltrpar{\hich\af6\loch\fs22\lang1033\b0\kerning1\f6\loch -Typing text in the filter field of the blueprint view will restrict the view to only fields (keys or values) that have a substring match. The ancestry chain of any fields will also be shown.} -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch\sl276\slmult1\ql\nowidctlpar\hyphpar0\sb0\sa200\ltrpar{\hich\af6\loch\fs22\lang1033\b0\kerning1\f6\loch -You can also focus the filter field by pressing }{\hich\af7\loch\fs22\lang1033\b0\kerning1\highlight16\f7\loch -!} -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch\sl276\slmult1\ql\nowidctlpar\hyphpar0\sb0\sa200\ltrpar{\hich\af6\loch\fs22\lang1033\b0\kerning1\f6\loch -i.e. a filter of }{\hich\af7\loch\fs22\lang1033\b0\kerning1\highlight16\f7\loch -m_Buff} -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch\sl276\slmult1\ql\nowidctlpar\hyphpar0\sb0\sa200\ltrpar{\hich\af6\loch\fs22\lang1033\b0\kerning1\f6\loch -will show a field such as }{\hich\af7\loch\fs22\lang1033\b0\kerning1\highlight16\f7\loch -Root/Thing/m_Buff} -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch\sl276\slmult1\ql\nowidctlpar\hyphpar0\sb0\sa200\ltrpar{\hich\af6\loch\fs22\lang1033\b0\kerning1\f6\loch -it will also show the Root and Thing fields (even though they do not themselves match).} -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch\sl276\slmult1\ql\nowidctlpar\hyphpar0\sb0\sa200\ltrpar{\hich\af6\loch\fs22\lang1033\b0\kerning1\f6\loch -You can use the filter: \u8216\'91}{\hich\af7\loch\fs22\lang1033\b0\kerning1\highlight16\f7\loch -Value/}{\hich\af6\loch\fs22\lang1033\b0\kerning1\f6\loch -\u8217\'92 to show }{\hich\af7\loch\fs22\lang1033\b0\kerning1\highlight16\f7\loch -Value}{\hich\af6\loch\fs22\lang1033\b0\kerning1\f6\loch - }{\hich\af6\loch\fs22\lang1033\b\kerning1\f6\loch -and}{\hich\af6\loch\fs22\lang1033\b0\kerning1\f6\loch - all children of }{\hich\af7\loch\cf1\fs22\lang1033\b0\kerning1\highlight16\f7\loch -Value} -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch\sl276\slmult1\ql\nowidctlpar\hyphpar0\sb0\sa200\ltrpar{\hich\af6\loch\cf0\fs28\lang1033\b\kerning1\f6\loch -SEARCHING INSIDE A BLUEPRINT} -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch\sl276\slmult1\ql\nowidctlpar\hyphpar0\sb0\sa200\ltrpar{\hich\af6\loch\cf0\fs22\lang1033\b0\kerning1\f6\loch -In addition to filtering, you can also type }{\hich\af7\loch\cf0\fs22\lang1033\b0\kerning1\highlight16\f7\loch -/term}{\hich\af6\loch\cf0\fs22\lang1033\b0\kerning1\f6\loch - }{\hich\af6\loch\cf0\fs22\lang1033\b0\kerning1\f6\loch -(as in vim/less) to search within a blueprint. This feature is a bit funky but mostly works, you can also use }{\hich\af7\loch\cf0\fs22\lang1033\b0\kerning1\highlight16\f7\loch -?term}{\hich\af6\loch\cf0\fs22\lang1033\b0\kerning1\f6\loch - to begin searching backwards.} -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch\sl276\slmult1\ql\nowidctlpar\hyphpar0\sb0\sa200\ltrpar{\hich\af6\loch\cf0\fs22\lang1033\b0\kerning1\f6\loch -After confirming a search with you can cycle through the (highlighted) matches:} -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch\sl276\slmult1\ql\nowidctlpar\hyphpar0\sb0\sa200\ltrpar{\hich\af7\loch\cf0\fs22\lang1033\b0\kerning1\highlight16\f7\loch -n \u8211\'96 next match} -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch\sl276\slmult1\ql\nowidctlpar\hyphpar0\sb0\sa200\ltrpar{\hich\af7\loch\cf0\fs22\lang1033\b0\kerning1\highlight16\f7\loch -N \u8211\'96 previous match} -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch\sl276\slmult1\ql\nowidctlpar\hyphpar0\sb0\sa200\ltrpar{\hich\af6\loch\cf0\fs28\lang1033\b\kerning1\f6\loch -KEYBOARD SHORTCUTS} -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch\sl276\slmult1\ql\nowidctlpar\hyphpar0\sb0\sa200\ltrpar{\hich\af6\loch\cf0\fs22\lang1033\b0\kerning1\f6\loch -You can use vim-ish keys within a blueprint to navigate around:} -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch\sl276\slmult1\ql\nowidctlpar\hyphpar0\sb0\sa200\ltrpar{\hich\af7\loch\cf0\fs22\lang1033\b0\kerning1\highlight16\f7\loch -j \u8211\'96 next line} -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch\sl276\slmult1\ql\nowidctlpar\hyphpar0\sb0\sa200\ltrpar{\hich\af7\loch\cf0\fs22\lang1033\b0\kerning1\highlight16\f7\loch -k \u8211\'96 previous line} -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch\sl276\slmult1\ql\nowidctlpar\hyphpar0\sb0\sa200\ltrpar{\hich\af7\loch\cf0\fs22\lang1033\b0\kerning1\highlight16\f7\loch -Ctrl-U/page-up \u8211\'96 scroll up a bit} -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch\sl276\slmult1\ql\nowidctlpar\hyphpar0\sb0\sa200\ltrpar{\hich\af7\loch\cf0\fs22\lang1033\b0\kerning1\highlight16\f7\loch -Ctrl-D/page-down \u8211\'96 scroll down a bit} -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch\sl276\slmult1\ql\nowidctlpar\hyphpar0\sb0\sa200\ltrpar{\hich\af7\loch\cf0\fs22\lang1033\b0\kerning1\highlight16\f7\loch - \u8211\'96 toggle expansion} -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch\sl276\slmult1\ql\nowidctlpar\hyphpar0\sb0\sa200\ltrpar{\hich\af7\loch\cf0\fs22\lang1033\b0\kerning1\highlight16\f7\loch - - follow link} -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch\sl276\slmult1\ql\nowidctlpar\hyphpar0\sb0\sa200\ltrpar{\hich\af7\loch\cf0\fs22\lang1033\b0\kerning1\highlight16\f7\loch -Ctrl- - follow link in new tab} -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch\sl276\slmult1\ql\nowidctlpar\hyphpar0\sb0\sa200\ltrpar{\hich\af7\loch\cf0\fs22\lang1033\b0\kerning1\highlight16\f7\loch -Ctrl-o \u8211\'96 go back in history} -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch\sl276\slmult1\ql\nowidctlpar\hyphpar0\sb0\sa200\ltrpar{\hich\af7\loch\cf0\fs22\lang1033\b0\kerning1\highlight16\f7\loch -Ctrl-i \u8211\'96 go forward in history} -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch\sl276\slmult1\ql\nowidctlpar\hyphpar0\sb0\sa200\ltrpar{\hich\af6\loch\cf0\fs28\lang1033\b\kerning1\f6\loch -EXPANDING}{\hich\af6\loch\cf0\fs22\lang1033\b\kerning1\f6\loch -/}{\hich\af6\loch\cf0\fs28\lang1033\b\kerning1\f6\loch -COLLAPSING} -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch\sl276\slmult1\ql\nowidctlpar\hyphpar0\sb0\sa200\ltrpar{\hich\af6\loch\cf0\fs22\lang1033\b0\kerning1\f6\loch -Clicking on the expand/collapse button will toggle the row and its children\u8217\'92s visibility.} -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch\sl276\slmult1\ql\nowidctlpar\hyphpar0\sb0\sa200\ltrpar{\hich\af6\loch\cf0\fs22\lang1033\b0\kerning1\f6\loch -Double click on a row to toggle its (and its children\u8217\'92s) collapse state} -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch\sl276\slmult1\ql\nowidctlpar\hyphpar0\sb0\sa200\ltrpar{\hich\af6\loch\cf0\fs22\lang1033\b0\kerning1\f6\loch -Hold 'Control' while toggling to toggle all the children of the node (instead of the node itself).} -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch\sl276\slmult1\ql\nowidctlpar\hyphpar0\sb0\sa200\ltrpar{\hich\af6\loch\cf0\fs28\lang1033\b\kerning1\f6\loch -FOLLOWING LINKS:} -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch\sl276\slmult1\ql\nowidctlpar\hyphpar0\sb0\sa200\ltrpar{\hich\af6\loch\cf0\fs22\lang1033\b0\kerning1\f6\loch -To follow links (denoted by the exclamation point prefixing them), click the link. } -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch\sl276\slmult1\ql\nowidctlpar\hyphpar0\sb0\sa200\ltrpar{\hich\af6\loch\cf0\fs28\lang1033\b\kerning1\f6\loch -TABS:} -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch\sl276\slmult1\ql\nowidctlpar\hyphpar0\sb0\sa200\ltrpar{\hich\af6\loch\cf0\fs22\lang1033\b0\kerning1\f6\loch -Bubbleprints supports multiple tabs, each of which can display a separate blueprint.} -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch\sl276\slmult1\ql\nowidctlpar\hyphpar0\sb0\sa200\ltrpar{\hich\af6\loch\cf0\fs22\lang1033\b0\kerning1\f6\loch -To open a new tab you can ctrl + left-click or by middle-click on a link in a blueprint.} -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch\sl276\slmult1\ql\nowidctlpar\hyphpar0\sb0\sa200\ltrpar{\hich\af6\loch\cf0\fs22\lang1033\i0\b0\kerning1\f6\loch -You can also drag tabs to \u8220\'93dock\u8221\'94 them side-by-side.} -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch\sl276\slmult1\ql\nowidctlpar\hyphpar0\sb0\sa200\ltrpar{\hich\af6\loch\cf0\fs28\lang1033\i0\b\kerning1\f6\loch -NAVIGATING}{\hich\af6\loch\cf0\fs22\lang1033\i0\b\kerning1\f6\loch -:} -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch\sl276\slmult1\ql\nowidctlpar\hyphpar0\sb0\sa200\ltrpar{\hich\af6\loch\cf0\fs22\lang1033\i0\b0\kerning1\f6\loch -Each tab has a "history" of which blueprints you have visited, similarly to a web browser. You can choose to navigate directly to a previously visited blueprint by clicking its entry at the history-bar at the bottom of the screen.} -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch\sl276\slmult1\ql\nowidctlpar\hyphpar0\sb0\sa200\ltrpar{\hich\af6\loch\cf0\fs22\lang1033\i0\b0\kerning1\f6\loch -The mouse-back and mouse-forward buttons will also navigate as expected.} -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch\sl276\slmult1\ql\nowidctlpar\hyphpar0\sb0\sa200\ltrpar{\hich\af6\loch\cf0\fs28\lang1033\i0\b\kerning1\f6\loch -SEARCHING}{\hich\af6\loch\cf0\fs22\lang1033\i0\b\kerning1\f6\loch -:} -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch\sl276\slmult1\ql\nowidctlpar\hyphpar0\sb0\sa200\ltrpar{\hich\af6\loch\cf0\fs22\lang1033\i0\b0\kerning1\f6\loch -Type in the big search bar at the top of the window.} -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch\sl276\slmult1\ql\nowidctlpar\hyphpar0\sb0\sa200\ltrpar{\hich\af6\loch\cf0\fs22\lang1033\i0\b0\kerning1\f6\loch -BubblePrints will search all blueprints by name and do a fuzzy match, then return the matches in the "best" order. It doesn't get it right 100% of the time, but what you're looking for should be in the top few results.} -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch\sl276\slmult1\ql\nowidctlpar\hyphpar0\sb0\sa200\ltrpar{\hich\af6\loch\cf0\fs22\lang1033\i0\b0\kerning1\f6\loch -Pressing 'enter' with the search bar focused will open the "top" result, so typically you will do "type search thing, press enter, hope it got it right".} -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch\sl276\slmult1\ql\nowidctlpar\hyphpar0\sb0\sa200\ltrpar{\hich\af6\loch\cf0\fs22\lang1033\i0\b0\kerning1\f6\loch -If your search begins with !bp_ the rest of the search string will be treated as a blueprint guid} -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch\sl276\slmult1\ql\nowidctlpar\hyphpar0\sb0\sa200\ltrpar{\hich\af6\loch\cf0\fs22\lang1033\i0\b0\kerning1\f6\loch -Clicking an entry in the list of search results will open that blueprint.} -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch\sl276\slmult1\ql\nowidctlpar\hyphpar0\sb0\sa200\ltrpar{\hich\af6\loch\cf0\fs22\lang1033\i0\b0\kerning1\f6\loch -Middle-clicking an entry in the list of search results will open that blueprint in a new tab.} -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch\sl276\slmult1\ql\nowidctlpar\hyphpar0\sb0\sa200\ltrpar{\hich\af6\loch\cf0\fs22\lang1033\i0\b0\kerning1\f6\loch -You can also search by type/guid/namespace:} -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch{\listtext\pard\plain \hich\af6\loch\f6\fs22\b0 \u183\'b7\tab}\ilvl0\ls2 \li720\ri0\lin720\rin0\fi0\sl276\slmult1\ql\nowidctlpar\hyphpar0\li720\ri0\lin720\rin0\fi-360\sb0\sa200\ltrpar{\hich\af6\loch\cf0\fs22\lang1033\i0\b0\kerning1\f6\loch -t:Type} -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch{\listtext\pard\plain \hich\af6\loch\f6\fs22\b0 \u183\'b7\tab}\ilvl0\ls2 \li720\ri0\lin720\rin0\fi0\sl276\slmult1\ql\nowidctlpar\hyphpar0\li720\ri0\lin720\rin0\fi-360\sb0\sa200\ltrpar{\hich\af6\loch\cf0\fs22\lang1033\i0\b0\kerning1\f6\loch -g:Guid (g: Guid will ignore a leading !bp_, i.e. it is safe to do g:!bp_Guid)} -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch{\listtext\pard\plain \hich\af6\loch\f6\fs22\b0 \u183\'b7\tab}\ilvl0\ls2 \li720\ri0\lin720\rin0\fi0\sl276\slmult1\ql\nowidctlpar\hyphpar0\li720\ri0\lin720\rin0\fi-360\sb0\sa200\ltrpar{\hich\af6\loch\cf0\fs22\lang1033\i0\b0\kerning1\f6\loch -n:Namespace} -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch\sl276\slmult1\ql\nowidctlpar\hyphpar0\sb0\sa200\ltrpar{\hich\af6\loch\cf0\fs22\lang1033\i0\b0\kerning1\f6\loch -example:} -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch\sl276\slmult1\ql\nowidctlpar\hyphpar0\sb0\sa200\ltrpar{\hich\af7\loch\cf0\fs22\lang1033\i0\b0\kerning1\highlight16\f7\loch -glitter t:Buff}{\hich\af6\loch\cf0\fs22\lang1033\i0\b0\kerning1\f6\loch - will fuzzy match by name on glitter, and restrict the results to only blueprints whose type matches Buff} -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch\sl276\slmult1\ql\nowidctlpar\hyphpar0\sb0\sa200\ltrpar{\hich\af7\loch\cf0\fs22\lang1033\i0\b0\kerning1\highlight16\f7\loch -g:abcdef}{\hich\af6\loch\cf0\fs22\lang1033\i0\b0\kerning1\f6\loch - will find all results that have the exact substring abcdef in their guid.} -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch\sl276\slmult1\ql\nowidctlpar\hyphpar0\sb0\sa200\ltrpar{\hich\af7\loch\cf0\fs22\lang1033\i0\b0\kerning1\highlight16\f7\loch -?type}{\hich\af6\loch\cf0\fs22\lang1033\i0\b0\kerning1\f6\loch - }{\hich\af6\loch\cf0\fs22\lang1033\i0\b0\kerning1\f6\loch -will show limit }{\hich\af6\loch\cf0\fs22\lang1033\i0\b0\kerning1\f6\loch -results to only blueprints that contain a sub-component with that type, for example:} -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch\sl276\slmult1\ql\nowidctlpar\hyphpar0\sb0\sa200\ltrpar{\hich\af7\loch\cf0\fs22\lang1033\i0\b0\kerning1\highlight16\f7\loch -?}{\hich\af7\loch\cf0\fs22\lang1033\i0\b0\kerning1\highlight16\f7\loch -AreaEffect t:BlueprintAbility}{\hich\af6\loch\cf0\fs22\lang1033\i0\b0\kerning1\f6\loch - will search for all blueprints with type matching "BlueprintAblity" that contain a component with type matching "AreaEffect".} -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch\sl276\slmult1\ql\nowidctlpar\hyphpar0\sb0\sa200\ltrpar{\hich\af6\loch\cf0\fs22\lang1033\i0\b0\kerning1\f6\loch -Note: Type matching is not a substring, not fuzzy (yet?)} -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch\sl276\slmult1\ql\nowidctlpar\hyphpar0\sb0\sa200\ltrpar{\hich\af7\loch\cf0\fs22\lang1033\i0\b0\kerning1\highlight16\f7\loch -#this is a string}{\hich\af6\loch\cf0\fs22\lang1033\i0\b0\kerning1\f6\loch - will perform a full-text search through every blueprint, this will also search the (English) localised text. } -\par \pard\plain \s0\rtlch\af10\afs24\alang1081 \ltrch\lang2057\langfe2052\hich\af3\loch\nowidctlpar\hyphpar0\ltrpar\cf0\f3\fs24\lang2057\kerning1\dbch\af12\langfe2052\loch\sl276\slmult1\ql\nowidctlpar\hyphpar0\sb0\sa200\ltrpar\loch - -\par } \ No newline at end of file +{\rtf1\ansi\ansicpg1252\deff0\nouicompat{\fonttbl{\f0\froman\fprq2\fcharset0 Calibri;}{\f1\froman\fprq2\fcharset0 Liberation Serif;}{\f2\froman\fprq2\fcharset0 Lucida Console;}{\f3\froman\fprq2 Lucida Console;}{\f4\fnil\fcharset2 Symbol;}} +{\colortbl ;\red192\green192\blue192;\red0\green0\blue0;} +{\*\generator Riched20 10.0.22621}\viewkind4\uc1 +\pard\nowidctlpar\hyphpar0\sa200\sl276\slmult1\kerning1\b\f0\fs28\lang1033 SETTINGS\b0\f1\fs24\lang2057\par +\f0\fs22\lang1033 Some things are configurable, click the 'Settings' button at the top right of the main window, each setting has a description of what it does.\f1\fs24\lang2057\par +\b\f0\fs28\lang1033 COPYING\b0\f1\fs24\lang2057\par +\f0\fs22\lang1033 Right clicking on any row in the blueprints view will copy the value (with some special handling for stuff like links) to the clipboard.\f1\fs24\lang2057\par +\f0\fs22\lang1033 If you hold `shift` while right-clicking a guid (i.e. a link, or the "Blueprint ID" field) the value will be copied with `!bp_` prefixed, creating !bp_guid. This can be useful for OwlcatTemplate development.\f1\fs24\lang2057\par +\b\f0\fs28\lang1033 FILTERING\b0\f1\fs24\lang2057\par +\f0\fs22\lang1033 Typing text in the filter field of the blueprint view will restrict the view to only fields (keys or values) that have a substring match. The ancestry chain of any fields will also be shown.\f1\fs24\lang2057\par +\f0\fs22\lang1033 You can also focus the filter field by pressing \highlight1\f2 !\highlight0\f1\fs24\lang2057\par +\f0\fs22\lang1033 i.e. a filter of \highlight1\f2 m_Buff\highlight0\f1\fs24\lang2057\par +\f0\fs22\lang1033 will show a field such as \highlight1\f2 Root/Thing/m_Buff\highlight0\f1\fs24\lang2057\par +\f0\fs22\lang1033 it will also show the Root and Thing fields (even though they do not themselves match).\f1\fs24\lang2057\par +\f0\fs22\lang1033 You can use the filter: \lquote\highlight1\f2 Value/\highlight0\f0\rquote to show \highlight1\f2 Value\highlight0\f0 \b and\b0 all children of \cf2\highlight1\f2 Value\cf0\highlight0\f1\fs24\lang2057\par +\b\f0\fs28\lang1033 SEARCHING INSIDE A BLUEPRINT\b0\f1\fs24\lang2057\par +\f0\fs22\lang1033 In addition to filtering, you can also type \highlight1\f2 /term\highlight0\f0 (as in vim/less) to search within a blueprint. This feature is a bit funky but mostly works, you can also use \highlight1\f2 ?term\highlight0\f0 to begin searching backwards.\f1\fs24\lang2057\par +\f0\fs22\lang1033 After confirming a search with you can cycle through the (highlighted) matches:\f1\fs24\lang2057\par +\highlight1\f2\fs22\lang1033 n \f3\endash\f2 next match\highlight0\f1\fs24\lang2057\par +\highlight1\f2\fs22\lang1033 N \f3\endash\f2 previous match\highlight0\f1\fs24\lang2057\par +\b\f0\fs28\lang1033 KEYBOARD SHORTCUTS\b0\f1\fs24\lang2057\par +\f0\fs22\lang1033 You can use vim-ish keys within a blueprint to navigate around:\f1\fs24\lang2057\par +\highlight1\f2\fs22\lang1033 j \f3\endash\f2 next line\highlight0\f1\fs24\lang2057\par +\highlight1\f2\fs22\lang1033 k \f3\endash\f2 previous line\highlight0\f1\fs24\lang2057\par +\highlight1\f2\fs22\lang1033 Ctrl-U/page-up \f3\endash\f2 scroll up a bit\highlight0\f1\fs24\lang2057\par +\highlight1\f2\fs22\lang1033 Ctrl-D/page-down \f3\endash\f2 scroll down a bit\highlight0\f1\fs24\lang2057\par +\highlight1\f2\fs22\lang1033 \f3\endash\f2 toggle expansion\highlight0\f1\fs24\lang2057\par +\highlight1\f2\fs22\lang1033 - follow link\highlight0\f1\fs24\lang2057\par +\highlight1\f2\fs22\lang1033 Ctrl- - follow link in new tab\highlight0\f1\fs24\lang2057\par +\highlight1\f2\fs22\lang1033 Ctrl-o \f3\endash\f2 go back in history\highlight0\f1\fs24\lang2057\par +\highlight1\f2\fs22\lang1033 Ctrl-i \f3\endash\f2 go forward in history\highlight0\f1\fs24\lang2057\par +\b\f0\fs28\lang1033 EXPANDING\fs22 /\fs28 COLLAPSING\b0\f1\fs24\lang2057\par +\f0\fs22\lang1033 Clicking on the expand/collapse button will toggle the row and its children\rquote s visibility.\f1\fs24\lang2057\par +\f0\fs22\lang1033 Double click on a row to toggle its (and its children\rquote s) collapse state\f1\fs24\lang2057\par +\f0\fs22\lang1033 Hold 'Control' while toggling to toggle all the children of the node (instead of the node itself).\f1\fs24\lang2057\par +\b\f0\fs28\lang1033 FOLLOWING LINKS:\b0\f1\fs24\lang2057\par +\f0\fs22\lang1033 To follow links (denoted by the exclamation point prefixing them), click the link. \f1\fs24\lang2057\par +\b\f0\fs28\lang1033 TABS:\b0\f1\fs24\lang2057\par +\f0\fs22\lang1033 Bubbleprints supports multiple tabs, each of which can display a separate blueprint.\f1\fs24\lang2057\par +\f0\fs22\lang1033 To open a new tab you can ctrl + left-click or by middle-click on a link in a blueprint.\f1\fs24\lang2057\par +\f0\fs22\lang1033 You can also drag tabs to \ldblquote dock\rdblquote them side-by-side.\f1\fs24\lang2057\par +\b\f0\fs28\lang1033 NAVIGATING\fs22 :\b0\f1\fs24\lang2057\par +\f0\fs22\lang1033 Each tab has a "history" of which blueprints you have visited, similarly to a web browser. You can choose to navigate directly to a previously visited blueprint by clicking its entry at the history-bar at the bottom of the screen.\f1\fs24\lang2057\par +\f0\fs22\lang1033 The mouse-back and mouse-forward buttons will also navigate as expected.\f1\fs24\lang2057\par +\b\f0\fs28\lang1033 SEARCHING\fs22 :\b0\f1\fs24\lang2057\par +\f0\fs22\lang1033 Type in the big search bar at the top of the window.\f1\fs24\lang2057\par +\f0\fs22\lang1033 BubblePrints will search all blueprints by name and do a fuzzy match, then return the matches in the "best" order. It doesn't get it right 100% of the time, but what you're looking for should be in the top few results.\f1\fs24\lang2057\par +\f0\fs22\lang1033 Pressing 'enter' with the search bar focused will open the "top" result, so typically you will do "type search thing, press enter, hope it got it right".\f1\fs24\lang2057\par +\f0\fs22\lang1033 If your search begins with !bp_ the rest of the search string will be treated as a blueprint guid\f1\fs24\lang2057\par +\f0\fs22\lang1033 Clicking an entry in the list of search results will open that blueprint.\f1\fs24\lang2057\par +\f0\fs22\lang1033 Middle-clicking an entry in the list of search results will open that blueprint in a new tab.\f1\fs24\lang2057\par +\f0\fs22\lang1033 You can also search by type/guid/namespace:\f1\fs24\lang2057\par + +\pard{\pntext\f4\'B7\tab}{\*\pn\pnlvlblt\pnf4\pnindent0{\pntxtb\'B7}}\nowidctlpar\hyphpar0\fi-360\li720\sa200\sl276\slmult1\f0\fs22\lang1033 t:Type\f1\fs24\lang2057\par +{\pntext\f4\'B7\tab}\f0\fs22\lang1033 g:Guid (g: Guid will ignore a leading !bp_, i.e. it is safe to do g:!bp_Guid)\f1\fs24\lang2057\par +{\pntext\f4\'B7\tab}\f0\fs22\lang1033 n:Namespace\f1\fs24\lang2057\par + +\pard\nowidctlpar\hyphpar0\sa200\sl276\slmult1\f0\fs22\lang1033 example:\f1\fs24\lang2057\par +\highlight1\f2\fs22\lang1033 glitter t:Buff\highlight0\f0 will fuzzy match by name on glitter, and restrict the results to only blueprints whose type matches Buff\f1\fs24\lang2057\par +\highlight1\f2\fs22\lang1033 g:abcdef\highlight0\f0 will find all results that have the exact substring abcdef in their guid.\f1\fs24\lang2057\par +\highlight1\f2\fs22\lang1033 ?type\highlight0\f0 will show limit results to only blueprints that contain a sub-component with that type, for example:\f1\fs24\lang2057\par +\highlight1\f2\fs22\lang1033 ?AreaEffect t:BlueprintAbility\highlight0\f0 will search for all blueprints with type matching "BlueprintAblity" that contain a component with type matching "AreaEffect".\f1\fs24\lang2057\par +\f0\fs22\lang1033 Note: Type matching is not a substring, not fuzzy (yet?)\f1\fs24\lang2057\par +\highlight1\f2\fs22\lang1033 #this is a string\highlight0\f0 will perform a full-text search through every blueprint, this will also search the (English) localised text. \f1\fs24\lang2057\par +\highlight1\f2\fs22\lang1033 >fieldName\highlight0\f0 will group results by the value in field (if it exists)\f1\fs24\lang2057\par +} + \ No newline at end of file