https://neverwintervault.org/project/nwn2/other/tool/yata
c# .NET 3.5
oh this looks good, since there is no release binary I will ask:
is this able to copy columns/rows?
is this able to finish incomplete collums/rows? (ie. I add a new column name into 2da, open it, what happens? - i expect editor to automaticall fill **** on all rows for this new column)
is this able to re-number rows? (ie. I copypaste hundrets of rows but wonât manually renumber them, I would like 2da editor to do that automatically when opened - judging your editor has column ID editable this is not happening as of yet, please consider it)
editing within the editor is only by cells or by rows â colheads need to be handled by an external (text) editor.
yep. in fact it will open a 2da that has only a version header, then a blank line, then the colheads â when colheads extend beyond the quantity of fields it fills them w/ â****â
note however that fields that extend beyond colheads are deleted silently, though. EDIT: with a simple warning during load
yes, but it does it with a command under â2da Opsâ on the menu. Editing the cell that contains the ID is not allowed from within the editor. When inserting or deleting rows, IDs are assigned automatically but this throws the other IDs off ⌠thatâs intended to allow a visual inspection of what happened ⌠before using either âorder row idsâ or âtest row orderâ. But note that the far left col â the rowheads â are static and should always show an accurate row-id.
Thereâs a bunch of goodies that arenât shown in the screenshot; browse the ReadMe.txt if you like:
One thing thatâs sort of odd/awkward and that could take a bit of getting used to, is that single-row editing is handled by the right-click contextmenu
(those are for single-row editing only) Multi-row inserting and deleting is handled under the Edit menu
(simple insertion and deletion of a single row can also be handled on the Edit menu, but anything more complicated requires using the context menu)
Itâs still beta due to lack of testing ⌠but iâll take the plunge and link to a build sooner or later,
very nice!
clarification for my first question, I would like to copy for example values in column A from 3 rows and copy them into next 3 rows, or all values in row 1 into row 2, that is what I meant. If your editor can do this, we have a winner here!
no, column/vertical editing doesnât happen ⌠at present it doesnât allow multi-cell copy/paste (apart from entire rows). Itâs strongly based on rows, or just single cells. Iâve thought about it but then am not sure i can deal with arrays of selected cells (that arenât the width of an entire row) plus the error-checking (of ensuring that Mr/Ms. user isnât trying to do something silly like paste cells off the right edge or bottom of the tableâŚ)
/maybe, but i canât say iâd have a use for âcopy values in column A from 3 rows and paste them into next 3 rowsâ
all values? yes
youâd have to make a case for the former ;)
@Shadooow et al.
Is there any difference between Nwn1 2das and Nwn2 2das, technically?
The version header in II is â2DA V2.0â on the first line
followed by a so-called valuetype on the second (which as far as iâm aware is always left as a blank line, ie. is never used)
then on the third line comes the actual column labels (preceeded by a space (or spaces), or less accurately a tab-char â from what little Iâve read, 2das arenât really supposed to have tab-chars⌠/shrug)
but mostly am wondering if the version header is the same between Nwn1 and 2 (if not i can put an option in Settings.Cfg, easily)
Â
ps. Note that Settings.Cfg is not automated; itâs strictly for the user to configure in a text-editor. (read: I donât want to deal with Windowsâ security âfeaturesâ been there  :|
Sounds like theyâre the same. Here is a small working custom NwN 2da I made recently -
2DA V2.0
X Y Z Face
0 60.00 24.62 0.0 65.0
1 51.09 26.92 0.0 65.0
2 52.06 29.21 0.0 65.0
3 53.01 31.50 0.0 65.0
4 53.98 33.82 0.0 65.0
5 54.70 36.99 0.20 90.0
6 54.93 39.53 0.20 90.0
TR
looks good Tr, thanks a bunch
Youâre welcome. Little hint though. In the UK âthanks a bunchâ is the same as âthanks for nothingâ
TR
it does in Canada too, but it depends on the tone of voice âŚ
it sorta means âThanks gotta go busyâ (hehe)
Example w/ TRâs 2da
step 1: copy header and labels into a new 2da file
step 2: open in Yata
step 3: copy row-data to clipboard within Yata
step 4: import clipboard contents and paste it
step 5: delete blank 1st row and recolor rows
step 6: save and view output
Looks great for multi row editing.
tbh that really was a test, to see if it did :)
Looking good so far. One thing to be aware of if youâre making this so it works with both NwN and NwN2 is that in my experience NwN does like tabs. It will throw the oddest error messages at you. I now use
Edit/Blank Operations/Tab
to Space in notepad++ whenever I save a 2da just to be on the safe side.
I see that you are writing this in C#. Had it been VB I might (if I could find the time) have offered to help. Iâve never touched that particular language. I also see that you are specifying .net framework 3.5. That puts it as VS 2008 if Iâm not mistaken. You are aware that MS now do a community edition of the latest version of VS, arenât you? That is what I currently use as I couldnât justify the cost of actually buying the pro version for the little use I make of it these days and there are a few things that work better in the latest version on win 10.
TR
Loads just fine, without any need to do an import old code routine, into VS 2017. Launched with no problems using the Debug/Debug Now. First impressions good. Just a thought. You might like to consider the âInput Fontâ for this application (Menus etc.). That is the font I used to illustrate code in my TRâs Basics tutorials.
TR
Lots of 2das have tabs, so it handles tabs on input but does not output tab-chars. Ironically, at least in my opinion, plenty of stock 2das in Nwn2 start with:
2DA V2.0
(i mean, come on guys.) I was sure scratching my head when error-checking for
2DA V2.0
shot back an error at me, since they look the same with 4-space tabs.
And many second lines will have a ~dozen tabs on it ⌠(ie. whitespace only)
Eventually i put in a user-option for âstrictâ (default false) to simply bypass such irregularities. But, y, it handles tabs, it just doesnât output them.
Additionally, from âBioware_Aurora_2DA_Format.pdfâ
and
So Iâm going with spaces on output. And they ainât gonna be aligned either, since Iâve seen ~2mb 2das become ~8mb 2das when aligned.
I went with .NET 3.5 because Nwn2 toolset uses .NET 2.0 and 3.5 is a compatible upgrade to 2.0 â so all modders in Nwn2 will likely already have 3.5 installed. Plus itâs more likely to be compatible with older Windowsâ OSs.
and in case anyoneâs wondering, I donât like .NET. I use it because itâs convenient and handy ⌠until it isnât
lol, youâre the third person who doesnât like Consolas. I changed it to ⌠Verdana! But it can be customized in the user-settings file. Set it and forget it.
WARNING: If I get anymore font comments iâm just going to set everything to Arial. /jk (or notâŚ) In any case iâll stick with fonts that ship with Windows (or a version of). I actually like Comic Sans ⌠anyway, like anything the fonts are subject to change i guess.
Ps. i donât use Visual Studio
am still fiddling with little things like this
but hope to upload a build to the Vault later today,
should be here there
As you are not writing this in visual studio you may not realise just how easy it is to add the common controls at run time. For example to let the user choose the font they want to use in your program -
FontDialog fontDlg = new FontDialog();
fontDlg.ShowColor = true;
fontDlg.ShowApply = false;
fontDlg.ShowEffects = false;
fontDlg.ShowHelp = false;
fontDlg.MaxSize = 40;
fontDlg.MinSize = 22;
if(fontDlg.ShowDialog(); != DialogResult.Cancel)
{
//put code here
}
To see what those various properties are here is the MS page on the font common control object.
TR
.NET (class)FontDialog is bugged.* It lists invalid TrueType fonts (ie, fonts that the font-creator, the person who made the font, didnât implement as TrueType properly). If such a font is selected it will crash the whole program â the exception cannot even be trapped.
So the font-dialog (ie, FontPicker) that Yata invokes is custom. It exploits the fact that iterating over FontFamilies on the userâs system will bypass those invalid TrueTypes.
Â
ps. The IDE Iâm using â SharpDevelop â is entirely capable of simply clicking in a .NET Control object ⌠but iâm comfortable instantiating objects in c# either way, Tr.
Â
*edit : It can be argued that itâs not a bug in FontDialog itself. If all TrueType fonts were implemented properly, FontDialog would not bug out. but they arenât and it does
edit2: iirc itâs not FontDialog itself that bugs â it obediently passes the font to the app, which then crashes.