DUST 514 Technology Lab

 
^ Back to top

Topic is locked indefinitely.

 

[Tool] SDETool

Author
fatal absolution
Bleeding Sun Conglomerate
#1 Posted: 2015.05.05 09:54  |  Edited by: THUNDERGROOVE
Hello. Today I introduce to you guys my newest and hopefully last iteration of SDETool.

In the past, SDETool and SDETool2 were command-line programs with very specific sets of flags to extract data as quickly as possible out of the DUST514 SDE and both of them quickly deviated away from their original goals.

However, this version is more geared towards scripting your way to data. A typical SDETool script will look like this

The script linked will download and open the Warlords 1.0 SDE, lookup an Assault ak.0 dropsuit and tell you how many attributes it's type contains.

The scripting language that is embedded into SDETool by default is lua, however the backend of SDETool allows for additional scripting languages to be embedded. So if you know Go and want to embed Python, go ahead and contribute! Blink

I also understand that a lot of the community won't exactly understand how to use the command-line. In the windows builds I put a batch file that will open an interactive lua console to play with Smile

For now this is just an initial release. Just really one day's work. Expect more features and stuff later. If you have any feature requests or bug reports; either open an issue on Github or post here and I'll post an issue myself for you.

Links:
Lua API


Downloads:
You can find the latest releases from my Jenkins build server here
You can find SDE versions encoded into SDETool's internal format on my download server here
If you want builds for any specific platforms/processor architecture I can likely add it.

The enemies of God stand broken before us. The light of the Reclaiming shines over them!

12/13/14 Never forget

fatal absolution
Bleeding Sun Conglomerate
#2 Posted: 2015.05.12 04:59
New 0.3 release with binaries uploaded to Github.

The primary changes are that we now have an sde.applyType function.

You can give it two types that you've gotten from sde.getTypeByID and it'll return a new copy of the first types with all of the modifiers updated.

It doesn't keep track of stacking penalties; we will rather add other methods later to deal with this.

I've also tested the return values fairly well; but some other testing would be much appreciated.

The enemies of God stand broken before us. The light of the Reclaiming shines over them!

12/13/14 Never forget

fatal absolution
Bleeding Sun Conglomerate
#3 Posted: 2015.05.13 00:45
New dps.lua to show how to use the exposed functions.

The enemies of God stand broken before us. The light of the Reclaiming shines over them!

12/13/14 Never forget

fatal absolution
Bleeding Sun Conglomerate
#4 Posted: 2015.05.24 01:11  |  Edited by: THUNDERGROOVE
Currently working on removing SQLItte as a dependency.

In Go 1.5(coming soon) cross compiling will be 10x less of a pain in the ass but still doesn't allow Cgo which is required by the SQLite3 package I use.

Currently writing a tool that converts the entire SDE database into a set of data structures that will be loaded via the encoding/gob package.

This should mean that essentially every single portion of SDETool will be faster except for the startup which may take 1-5 seconds longer depending on your hardware.

This also means that I'm completely rewriting the SDETool/sde internal package. It will remain very much the same but a lot of old methods are going away.

I'll make a post when it's finished.

e: I would also like to boast the the entire dumping program uses only 40MB of memory in a garbage collected language not known for it's memory efficiency. A previous implementation that I wrote used upwards of 1.5GB because I had no idea what I was dong Lol

ee: Dump files also come out to being about 2MB less in size compared to SQLite files.
eee: I have a jenkins build server running too. Because we're 1337 and can cross compile stuff

The enemies of God stand broken before us. The light of the Reclaiming shines over them!

12/13/14 Never forget

fatal absolution
Bleeding Sun Conglomerate
#5 Posted: 2015.05.26 00:00
In the process of writing a command line parser from scratch for SDETool. It uses a lexical parser and is very expandable.

I chose a lexical parser mainly because it allows me to create special keywords for commands while still using traditional flags.

The enemies of God stand broken before us. The light of the Reclaiming shines over them!

12/13/14 Never forget

Forum Jump