Vhati wrote:Maven manages compiling but
also serves as a package manager of sorts. It automatically downloads libraries from repositories to meet project dependencies, so you don't have to scour the net.
I hadn't played with maven either before this project, but IIRC, all I had to do was install maven, open a prompt, cd to the project's dir, and run "mvn clean" then "mvn package". XML tells maven all it needs to know.
I assume Eclipse's maven plugin does something comparable, but I'm unfamiliar with that IDE.
Tip: After I got the source off github, I made a copy of the project directory to do all my tinkering and compiling in. When I was satisfied, I used
WinMerge to copy the important changes into the original github folder for committing.
Ah thank you! I figured Maven had something to do with packing, but had no idea it worked with compiling as well. As someone who has grown by just modding Skyrim with their dedicated tools, the 'real programming' world still seems rather magical and mysterious.
If you don't mind, what IDE is IIRC? I learned eclipse a while back while learning html/css/basics of cold fusion, and so it's the only IDE I'm familiar with. One of its release packages had maven installed and once I downloaded it it probably did what you did manually.
I'm also a github noob, but if/when I get that far along in the program, I'll delve into that as well and check out WinMerge.
Vhati wrote:Sure. Have fun.
I hadn't designed the classes to be usable as an independent library, but they
were intended to be a useful demonstration/documentation for other coders.
A lot of neat Java snippets in there, too. I guess if you lift entire class files, you can add a comment at the top about where you found them, but feel free to copy/port/paraphrase/mangle anything you want.
Dude, that's awesome! I'm so happy lol. I had the thought this morning as I was getting out of bed that I could make your jar a library mine would depend upon. The classes looked public, but I still don't know enough about Java to know that they weren't designed to be usable as independent libraries: If I can I'll use it as a library. Otherwise any classes I use I'll comment in the credits at the top, as well as credit you in the readme etc.
This is perfect. I've almost gone through all the java tutorials, so to have access to a java program/source that I can learn from and experiment with, that is on the subject that has me inspired, that has someone really knowledgeable that I
may be able to ask questions to*, with resources parallel to what I need to do... it's awesome. Thank you!
*I don't want to bug or exasperate you; I've had my fair share of newbs ask me for all sorts of my time answering their questions, only to watch them disappear after I do a bunch of work for them. I don't want to be that sort of noob...
Vhati wrote:This was the first time I'd used JAXB to map XML to custom java objects. Viewing XML processing as deserialization was a little weird after being used to
JDOM's tree of Elements.
I'll admit this bit went mostly over my head. I'm not familiar with JAXB, though I do understand that the save files are serialized (they are xml as well?) From your link I *think* I get what JDOM does. In the tutorial series on persistence we used
Xstream, but that was just to write to/get from xml, which it sounds like JDOM doesn't do so much as allow you to view the xml in your IDE as java objects?
Vhati wrote:I'm not sure what you mean by this.
The tool here modifies the state of a saved game, swapping out crew and such, and changing values, almost as if you'd legitimately played and lucked into a given situation. The game's resources aren't altered at all. So the Kestrel's hull has a fixed maxumim, for example, but this tool can add damage as if it had occurred in-game.
Have you seen kartoFlane's Superluminal ship editor?
The tool there ultimately edits the game's resources to create ship blueprints that didn't already exist. They will appear in the hangar for starting new games.
Yes! Superluminal's ship editor is awesome, and I've spent some time tinkering with it. However, that is used to make "New Ships" or "Custom Ships". My thought is that instead of the player starting each play through with a vanilla ship that they are just given, that they should have to "construct" that same premade ship. The hanger wouldn't let you add rooms or move systems. I wouldn't be adding anything new/modifying resources or layouts, but instead requiring the player to pay for that vanilla ship. Imagine your program, except you can't modify the crew or add that teleporter room (activate it/ turn the boolean from false to true) without paying resources gathered in your last playthrough (and stored at the hanger). The hanger would work like your program, changing values of a saved game. Basically: to make a save editor that wouldn't be 'cheating', but worked for. It sounds terribly unbalanced now, but I have an idea on how to balance it, but figure I need to do first things first.
Thanks again Vhati!
Ice