[Tool] Superluminal 2.3 (Partial Hyperspace support)

Discuss and distribute tools and methods for modding. Moderator - Grognak
User avatar
mr_easy_money
Posts: 625
Joined: Fri May 29, 2015 9:05 pm

[Tool] Superluminal 2.3 (Partial Hyperspace support)

Postby mr_easy_money » Thu Sep 08, 2022 3:28 pm

About this version

Superluminal is a graphical interface that greatly helps in creating ships. This was created by kartoFlane, viewtopic.php?f=12&t=24901.

With the advent of Hyperspace, viewtopic.php?t=35095, AdmiralBilly added some features to kartoFlane's editor called Superluminal for Hyperspace, viewtopic.php?t=36060.

This is a response to Billy's call for a better version of that. I don't know why I waited until this year to take a crack at tweaking Superluminal, but yeah, the impetus for this project was to streamline Billy's version.

Download

Click here to download Superluminal 2.3 (Choose the one relevant to your platform, under Assets)

Requirements: The editor requires at least Java 6 in order to run. For 64-bit users, to run the 64-bit version of this program, you need to download the 64-bit version of Java.

You can find the source code at its github page. If you want to build the tool yourself, README_developers.md should tell what you need. If you're having trouble running Maven without an IDE, I got it working using this batch file (see bottom).

Credits 8-)
kartoFlane - the creator of Superluminal. It probably goes without saying, as the majority of the tool was made by karto, I could not possibly claim it as my own. But for me, and as I believe for many others, the first mod I made was a ship mod, a first step I could not have taken if not for the incredible resource that is Superluminal. :)

AdmiralBilly - for making Superluminal for Hyperspace. That is precisely what inspired this version, and if not for their efforts, I would probably still be contemplating if modifying Superluminal was even possible.

McFow1er - for their interest and numerous suggestions that not only helped craft some of the new features, but also motivated me to keep going.

Various others in the mv server - for suggestions and ideas for future features.

So what's new?

Streamlining
  • To add crew, you had to specify their title and blueprint name in an external file, Race list.txt.
    Now, you don't need that file anymore and the editor handles it all, getting all crew information direct from ftl.dat!
  • Crew and augments tab didn't fit the style of other sections.
    Now, changing the crew capacity dynamically adds more or less crew buttons.
    The crew dialog has been changed from a dropdown (fine for few races) to a selection dialog like the other sections.
    Augments and hidden augments have their own sections. 3 main augments, then a dynamic list of hidden augments.
{ Please note that I scaled down images showing the new features in order to match the rest of the text. There's an unavoidable loss of quality, but you can see the full-size images by clicking on them. }

ImageImage

Something else that helps greatly is that I got the original build process working! So we can have these features present in the original editor:
  • The log window and log file.
    Superluminal isn't perfect, and some errors come about.
    Recalling what you did that caused it helps, but unless you have reproducible steps, it's hard to find the source of the error.
    That's where the log comes in. In the case of a crash, the log window won't be there, but the editor-log.txt will be saved in that case. The error readout and stack trace tell me precisely where in the source code I can find the problematic code.
  • Compatibility with other platforms!
    Happy to announce that Linux 32 and 64 bit, Windows 32 bit and Mac versions are now once again available.

While streamlining changes was the main focus, I figured, why stop there? :)
So I've added some changes of my own, and hope to add more in the future. Some are bugfixes and others are features.
  • Loading mod via Mod Management now properly loads the Hyperspace information currently editable.
  • Blueprint lists can be selected from every selection dialog.
    This was meant to encompass the ability to select a blueprint list for crew, like RANDOM_FED. While you can't give it a name, you can see the contents, which I think is better anyways.
    Image
  • Layout slots are better defined.
    The buttons themselves are easier to see and pick.
    Image
    Layout slot selection also auto-corrects any problems that could arise from the blueprint name.
    For instance, layout slot B will fix blueprint name MYSHIP_3 to MYSHIP_2.
  • Some advanced slipstream tag logic that will not create ship duplication.
    This is a preventive measure that will prevent this ship from causing ship duplication, and does not fix such problems created by other mods.
    Please note, any mods that use ships findLike without using limit="1" are going to cause ship duplication if loaded after a mod created by this editor.
    So then why does this editor not just do that? Please read here for why this usual approach isn't good enough, https://imgur.com/a/iQV2gCQ
    Read further here for a detailed explanation of how the slipstream tags code works, https://imgur.com/a/AU1OT07
  • Other miscellaneous changes that help user experience.
  • The temporal system is now selectable and ships with it should properly load.
    ImageImage
Notice
Currently, the editor is geared towards ship customization with Hyperspace features. I imagine the vast majority of usage to be for Hyperspace, but while not currently the case, I intend for there to be a switch between vanilla and Hyperspace modes so the editor can be a definitive upgrade for all users.

Troubleshooting :geek:
kartoFlane wrote:If the editor has crashed, please attach the contents of editor-log.txt in the post, preferably between [ code ][ /code ] tags -- keep in mind that the log is wiped each time the editor starts -- as well as steps to reproduce the crash, if possible.
The editor-log.txt gives a stack trace that will let me pinpoint the source of the crash in the code. That, combined with a description of what happened should be all I need to fix the error.

Known Issues :shock:
  • Because of the way animSheet can be reused for use in both anim and weaponAnim (e.g. LASER_FROST_1), sometimes a weapon image shows up as the projectile.
  • Build area is determined by window size or something? So when the editor's width is reduced, rooms and door links can collapse and overlap onto each other, and when that happens, frustratingly, undo does nothing.
  • Generated floor image sometimes does not line up with the rooms plan. For some reason, it seems to be aligning with the hull.
    Misaligned example: generate floor image for MT_BOSS_CLANSMEN_CHALLENGE
  • Changing gib image to one of different dimensions leaves artifact of new image as if it is the size of old image. Only goes away on mouseover.
  • A rather confusing bug specific to Linux, where suddenly rooms and doors are not able to be placed anymore, and the log reads out some cryptic stuff.
    This may have to do with minimization, but further investigation is needed.
Requested/Planned Features :idea:
  • Fix some annoying display issues with blueprint lists selection
    Currently it all works, but some longer items require resizing tabs and areas in order to see the full thing. It would be great if automatic resizing took place.
  • Enable the hyperspace feature which lets you assign a named crew to a specific room
    And maybe to somehow graphically show this?
  • When trying to load a ship with items that the editor cannot retrieve from the Database, the ship cannot be loaded.
    So, maybe a setting can be added that enables these ships to load. Then, a placeholder is made in the selection dialog for each item that doesn't exist. That placeholder should only be for that item, and so the item would be able to stay as-is. You wouldn't be able to select the placeholder and press Confirm, only Cancel.
  • Incorporate system max level into the same slider as system level
    Image {This is a mockup, not currently part of the editor}
    Instead of a separate system max level slider, it should be incorporated as a fraction, with the ability to change the max value up and down.
    This is meant for enemy ships, but should be added to player ships as well, although optional and default off via checkbox.
    There ought to be a warning if the player tries to increment the max level higher than the current system cap. It is plausible you could want that, if the player wants it to work in some other mod.
  • Fix disparity in crew selection dialog between description field height and stats
    Also need to add powers to stats view somehow. And of course would be great to also have, if applicable, hyperspace crew info.
  • Make enemy ships crew section just like player ships, except with a spinner (up and down thing) for each crew, and because of that, for every selected crew, remove that crew from the selection dialog.
  • For player ship where blueprint list can be used, right now I made it so the mount just shows nothing. What if instead, it put the first thing in the list, then you could cycle between the weapons in the list.
    That'd be cool right?
  • Warn or prevent player from selecting a weapon as artillery that cannot fire, such as missile or bomb artilleries that use up a missile resource.
  • Animate the weapon when viewing it in the weapon selection dialog? Not sure if the gui api can handle that, but maybe?

Changelog :?:
( You can also find this here, https://github.com/blizzarchon/superlum ... ngelog.txt )

Code: Select all

2.3:
(New Features)
- "Prefix list.txt" is no longer necessary and has thus been removed.
- Custom crew information is now loaded in from the .dat file. As such, "Race list.txt" is no longer needed and has been removed.
- Blueprint lists can now be chosen from Weapon, Drone and Crew selection dialogs. Sorted alphabetically.
- Exported ship mods now use slipstream tag logic that prevents ship duplication.
- Layout slot selected now determines the blueprint name suffix, correcting any possible discrepancies.
  * blueprint name chosen: MY_CUSTOM_SHIP_2, ship slot selected: C -> upon save, blueprint name is MY_CUSTOM_SHIP_3
- Added option for using ID system instead of direct text for saving of ship text data. Off by default.
- Hyperspace temporal system can now be assigned to a room under the Special menu
(Quality of Life)
- Picking crew now opens same kind of selection dialog as when picking weapons, drones and augments.
- Augments and hidden augments have separate sections. This also solves a bug where you could have more than 3 regular augments.
- Number of hidden augments and crew capacity update immediately when amount is changed.
- Layout slot buttons are bigger and easier to select.
- Opening 'Database' for ship images retrieves only the relevant images, though a button can be pressed to see all folders and images.
(Bug fixes)
- Fixed bug where hyperspace data of ships loaded via Mod Management was not being loaded.
- Fixed bug where loaded vanilla ships had zero crew.
- Fixed bug where new ship started with 99 crew capacity instead of 8.
- Fixed bug where new ship could not be saved with default values for name, class or description.

"Superluminal for Hyperspace":
- Added support for some FTL: Hyperspace features:
  * Custom ships can be selected from Load Ship menu. Selectable ships start with a prefix from external resource "Prefix list.txt".
  * Custom crew can be selected from crew menu. Custom crew names are loaded from external resource "Race list.txt".
  * Ship blueprint name is now a text field where the name can be freely edited, instead of choosing an existing ship blueprint.
  * Crew capacity is no longer limited to 8 and can be set higher or lower.
  * Augment section has been expanded to more entries. Augments can now be designated as hidden augments.
  * Layout slot choice of A, B or C determines which layout the ship represents.
- ID system for saving ship textual data turned off in favor of direct text.

{ For further changelog, see kartoFlane's Superluminal 2.2.1 post }

You can also see more detailed versions of the changes as I make them and thereby track my progress, by following the commit history of the github page, https://github.com/blizzarchon/superlum ... its/master
User avatar
mr_easy_money
Posts: 625
Joined: Fri May 29, 2015 9:05 pm

Re: [Tool] Superluminal 2.3 (Partial Hyperspace support)

Postby mr_easy_money » Fri Sep 09, 2022 4:09 am

[ Reserving this spot for future use, probably for FAQ. ]