Thank you for the suggestions/requests, everyone! A reminder that this thread is for things that already exist but aren't exposed in the API, not new features. I don't particularly
mind if stuff crosses over into that territory, but given that I generally go through this thread late in the release cycle, anything that requires substantial effort is not likely to get done.
With that out of the way, did a bunch of these!
Added SettingsAPI.computeStringWidth(String in, String font)
Added TooltipMakerAPI.computeStringWidth(String in)
Added HullModSpecAPI.setManufacturer()
Added DamagingProjectileAPI.List<CombatEntityAPI> getDamagedAlready()
Returns null for everything other than explosions
Added getters and setters to BoostIndustryInstallableItemEffect
"no_autofit" tag now also works when applied to variants
Added "unboardable" tag to variants
Added TextFieldAPI
Added to TooltipMakerAPI:
TextFieldAPI addTextField(float width, float pad);
TextFieldAPI addTextField(float width, String font, float pad);
TextFieldAPI addTextField(float width, float height, String font, float pad);
ButtonAPI addCheckbox(float width, float height, String text, UICheckboxSize size, float pad);
ButtonAPI addCheckbox(float width, float height, String text, String font, Color checkColor, UICheckboxSize size, float pad);
Added to SettingsAPI:
TextFieldAPI createTextField(String text, String font);
ButtonAPI createCheckbox(String text, UICheckboxSize size);
ButtonAPI createCheckbox(String text, String font, Color checkColor, UICheckboxSize size);
Added to InteractionDialogAPI:
Version of showCargoPickerDialog() that takes a custom dialog size as a parameter
Added to WeaponSpecAPI:
void setOrdnancePointCost(float armamentCapacity);
3. While I am sharing my wishlist... Could we get cargo / fleet member pickers to work outside of dialogs? Might be affected by the one below...
4. ... And finally renewing my ask for the ability to create UI elements (custom panels) on top of an existing screen. Hope this is not a huge change though (functionality exists, but I get it if it's highly coupled with other code). Ideally I'd love to create a smaller (blocking) panel on top of intel UI (or campaign UI), with an X button and custom content (kinda like you can view commodity demand/availability on top of current market screen).
That's unfortunately a bit complicated, yeah. Sorry!
can we get removeSMod and addSMod, the same as add/removeMod and add/removePermaMod?
I'd like it for some faction-specific hullmod replacements, so they override autofitted smods properly (and it just kinda seems weird that it isnt a thing already)
It's a thing - addPermaMod() has a boolean parameter that sets whether it's an s-mod that's being added.
I'd like a ShipHullSpecAPI.getDeploymentPoints() or some equivalent. Currently I think the only way to obtain it is either loading the ship_data.csv or grabbing it from FleetMemberAPI.getStats().getSuppliesToRecover().getBaseValue() or something to that effect.
That already exists - ShipHullSpecAPI.getSuppliesToRecover()
The ship system WEAPON_BOOST AI only activates against fighters for frigates. Could we get a way to trigger this behavior for certain larger ships?
Hmm - Accelerated Ammo Feeder uses that AI, so I suspect this isn't actually the case?
Would it be possible to change the behavior of ShipAPI.getFleetMember() and MutableShipStatsAPI.getFleetMember() to more reliably return real fleet members instead of dummy fleet members?
Currently, the "stats" and "ship" arguments passed to the various BaseHullMod methods will return dummy fleet members if the hullmod is attached to a module, instead of returning the actual fleet member the module is attached to. Furthermore, modules in this context will present as if they're not modules for other reasons, returning false with isStationModule and null with getParentStation. This makes it very difficult to determine what fleet member the module is attached to.
I realize this might not be feasible if vanilla code relies on the existing behavior of getFleetMember, but I figured I might as well ask. Thanks for considering!
Ahh, this is... let's call it "code that's potentially very sensitive/error prone" and I don't want to touch it unless I absolutely have to. My apologies!