Excellent progress! It is always nice to hear that these new editors are still getting some love!Hello everyone,
I just wanted to ping this so yall know it's still alive, as for the editor itself, a lot of things have changed.
When I started writing the importer for jBeam files, I noticed a big limitation in the editor's way of dealing with n/bs, and it required some heavy changes to the architecture etc...
So, I decided to do some researching and dive back into the code.
But since IMO the last release was kind of buggy, I'm taking a lot of steps back and removing some features to actually fix the 'base' once and for all, and then I'll be putting the other features back, that just means the next release would be pretty basic compared to the one already released, but it will be much faster.
An other thing I have to say, when I started writing nodeSnap, I was too consumed to implement as much features to make Truck files editing easier, that entangled the editor to the truck format and caused some problems later on, now the editor has it's own format in JSON at the cost of just editing nodes and beams only, nothing more, nothing less. (You will have to set_beam_default by yourself)
Some major points to note here:
If you have any issues to report or suggestions, it's about time!
- The way VueJS handled data and did things was a bottleneck and costed a lot of performance for this kind of application, so I switched to React JS, and gained a huge bump to performance and probably fixed the memory leak problem (not confirmed yet, but I've been using it, and I didn't notice this problem).
- Switching from Electron to Tauri also fixed an other major problem: application size. With this, I managed to get down from 163 MB (60ish MB compressed) to just 8 MB uncompressed!
- Tauri also provides native coding using Rust out of the box, I did not use this yet for performance gains, but I'm planning to profile the whole application and move some code from JS to Rust. (Rust is a language comparable to C++ in performance)
- I have implemented a simple plugin system with plugins written in JavaScript (not typescript) that will allow manipulation of the loaded n/b and do some other stuff... currently still brainstorming about what we could do this with.
- Implemented a selection box system that will allow you to select many nodes with the mouse and perform actions.. (move, delete, scale..?)
- nodes2 supported out of the box
- jBeam format will be supported of the box, conversion between truck format and jBeam possible in both ways (again, just n/b)
Things to note.
Since this editor is designed to work on both platforms, it may be a good idea to have any RoR export just export as nodes2 only. Even if the truck is imported as a classic nodes vehicle, it should probably still export as nodes2. The functionality is identical in every aspect except that nodes2 just uses strings for the node names rather than numbers... even if you decide to just leave the old numbers intact. So if you are modifying a truck (outside of the editor) and want to remove a node... there is no need to go back through the truck and rename EVERY node after that plus going through and updating every node name in every beam because they all got renumbered... with nodes2, just delete the node, then search the file for that node name and delete every beam that connected to it... done. No renaming anything, no digging through and spending hours basically just rebuilding the truck from the ground up... moding RoR before nodes2 was a royal pain if you made a mistake back in the day.
Honestly, I never understood why this change in functionality wasn't just added into the nodes section of the game rather than reinventing the wheel and making an entirely new section... but its too late now and we are far too deep to do anything about it, so while nodes and nodes2 could be made to be identical so solve that issue, neither can be removed due to how many mods use one or the other (or both as that is also an option).
This will also make your conversion system much easier as if you go from JBeam to RoR and the user for some reason wants to use nodes, you lose all the node names that were made to identify what on earth the thing was in Beam, and then your system would have to renumber every node and every beam... which isn't that big of a pain... but if you could just take the entire nodes section from the JBeam and change it to nodes2 for the .truck file and just export it (a little more than that but you know what I mean) it would make things much simpler.