Jump to content

[1.7.x ~ 1.3.x] AirlockPlus: EVA to/from any part, using any airlock [ v.0.0.11 @ 2019-06-02 ]


cakepie

Recommended Posts

AirlockPlus
v.0.0.11 @ 2019-06-02

GitHub All Releases  KSP 1.3.x thru 1.7.x

Localizations available
中文 ・ 日本語 ・ español ・ русский ・ français ・ Deutsch ・ italiano ・ português (Brasil)

Functionality

AirlockPlus allows the use of any airlock on a vessel in conjunction with any crew part on the vessel:

  • A kerbal on EVA can use any airlock to board any part of the vessel, not just the part that the airlock is attached to.
  • A kerbal in any part of the vessel can go EVA using any airlock on the vessel, not just the airlock(s) on the part that they currently occupy.
  • All of this happens seamlessly -- no need to manually transfer kerbals between parts.
  • Works even if the airlock part is already full of other kerbals.

With this mod, it becomes possible to use crew cabins that don't have airlocks, and airlock parts that don't have any crew capacity of their own.

Boarding

When an EVA kerbal is at an airlock, in addition to the usual command of "[В] Board", you are also presented with these options:

  • Auto boarding: [Shift+B] Board into any available part -- even if the airlock part is full, the kerbal will be able get on board as long as there are seats available elsewhere on board the vessel. No guarantees on which seat s/he will end up in, though.
  • Manual boarding: [Ctrl+B] Select part to board into -- this emulates the stock crew transfer behavior: you get to click on the part you want the kerbal to go into, even if it is not the same as the airlock part. Use this if you want more control over specifically where the kerbal ends up.

board-s.gif

Alighting

Clicking on an airlock ("Crew Hatch") in stock KSP opens a dialog box that lists only the kerbals in the airlock part.

With AirlockPlus, you can hold down the modifier key while clicking on an airlock (i.e. Alt+Click on Windows; Opt+Click on Mac).
This will instead list all kerbals in the vessel, allowing you to take them on EVA from the selected airlock.

If you have Community Trait Icons installed, AirlockPlus will display an icon next to each kerbal's name to indicate their crew type (i.e. pilot, engineer, scientist or tourist). The stock crew hatch dialog box is also augmented with these icons.

traiticon.png

Notes

Boarding

  • Respects keyindings in your game settings if you've bound the "Board" command to a different key other than "B".
  • "Shift" and "Control" keys are bound by default to EVA RCS controls, so you should grab the airlock and turn off RCS first.
  • [Shift+B] / [Ctrl+B] may sometimes be possible even when [В] isn't. This means AirlockPlus trigger detection is more lenient than stock. I'm not complaining... =Þ
  • Just like stock crew transfer behavior, the manual boarding option will lock all other controls besides the camera, until you have selected a valid destination, or cancelled boarding by pressing [Escape].
  • Manual boarding mode will automatically terminate and return control to player if the kerbal drifts away from the airlock while waiting for the player to select a destination part.
  • Boarding works for the Inflatable Airlock from Making History DLC even when not deployed. This is not intended and may be fixed in a future version.

Alighting

  • There may be a split second delay before AirlockPlus replaces the stock airlock interface. This is normal, nothing to worry about.

Mod Compatibility

This is not an exhaustive list. It only covers mods that have been selected for testing due to concerns about potential interactions.

Interoperable mods

Tested and known to play well together with these mods without conflict.

Community Trait Icons
Optional dependency used by AirlockPlus to display crew type icons next to kerbal names.

Connected Living Space
Supported. If CLS is installed, instead of being able to board/alight to/from any part of the craft, you will be limited to those parts that are connected to the airlock according to CLS rules.

EasyBoard
Excellent synergy: EasyBoard can be used to assist in grabbing on to airlocks/ladders before using AirlockPlus to board the vessel.

Kerbal Crew Manifest
No conflicts.

Kerbal Inventory System
Crew inventories are correctly preserved when boarding/alighting using AirlockPlus features.

Ship Manifest
No conflicts.

Download

v0.0.11 for KSP 1.7.x - 1.3.x
Requires Harmony (v1.2.0.1 included in download)
Requires Module Manager (please obtain separately)
Community Trait Icons is strongly recommended

Localizations available: 中文 ・ 日本語 ・ español ・ русский ・ français ・ Deutsch ・ italiano ・ português (Brasil)

Installing

Delete older version, if any. Keep your existing Settings.cfg to have your existing settings migrated to the new version.
Download and place contents of GameData into your installation's GameData folder.
(Optional) Download and place localization file(s) for additional languages(s) in AirlockPlus folder, if desired.
(Recommended) Obtain and install updated copy of Community Trait Icons if you want crew type icons next to kerbal names
Ensure you have appropriate version of Module Manager installed for your KSP version.

Support

All support requests must be accompanied by full logs.
CKAN users are requested to reproduce reported issues using a manual install.

License

AirlockPlus source code, compiled binaries, and configuration files are © cake>pie
Localizations are released under a Creative Commons CC-BY-SA 4.0 International license.

You may make and distribute media (e.g. screenshots, gameplay videos, etc.) that portray AirlockPlus in use.
You may monetize such media; if you do, a mention and link here would be much appreciated.

This software is provided "as-is", without warranty of any kind. The author/maintainer is under no obligation to provide maintenance, support, updates, enhancements, or modifications.

For mod updating in the absence of the author/maintainer: see here for details.

All other rights are reserved.

Acknowledgements

The following people contributed to localizations:

Changelog

v 0.0.11 2019-06-02
add Harmony dependency
replace many horrible ugly brittle hacks with safer patch-based approaches
spawning EVA now uses patches on FlightEVA to feed correct data to hatch obstruction tests instead of tampering with passed arguments
fix spurious results from FlightEVA.hatchInsideFairing being fed wrong information due to stock limitations
fix strange positioning/orientation behavior of spawned kerbal probably caused by tampered data in passed arguments
patch KerbalEVA to disable stock command hints during manual boarding instead of brute force removal at every frame
patch KerbalEVA to safely disable stock boarding when auto boarding encounters full vessel instead of outright disabling of KerbalEVA
patch CrewHatchDialog postfix to provide notifications when the dialog is ready/terminated
discard hacks for checking if CrewHatchDialog populated and ready for hijack/augment
rework timeout logic for matching airlock mod+click input handling to stock CrewHatchDialog spawning
better cleanup when hijacked CrewHatchDialog is closed instead of only when EVA button pressed
add crew type icons to stock crew hatch dialog when spawned via crew transfer PAW action rather than clicking airlock

v 0.0.10.9 2019-05-10
pre-release of v 0.0.11

v 0.0.10 2019-04-24
fix a bug related to input locking
fix issue caused by ExperienceTrait.TypeName being localized
fix kerbals in external seats being included in CrewHatchDialog
fix inactive/unconscious kerbals being listed in CrewHatchDialog
fix Connected Living Space AllowUnrestrictedTransfers setting not being respected
new approach for closing CrewHatchDialog on EVA button pressed
settings file: generated new if absent, migrate from old version if present
new setting: allow boarding screen messages to be turned off
new setting: allow Connected Living Space integration to be turned off
minor localization tweaks for: Russian, Spanish, Chinese 
new languages: French, German, Italian, Brazilian Portuguese
optimization, code gardening and updating for API changes

v 0.0.9 2017-06-25
new approach for checking if crew hatch dialog is ready for hijack
add support for Community Trait Icons
(CTI required) show crew type icons next to names when alighting
(CTI required) add crew type icons to stock crew hatch dialog
perfectionistic layout tweaking

v 0.0.8 2017-06-06
fix spurious results from FlightEVA.HatchIsObstructed
handle more corner cases when things go kaboom
optimization / code gardening
localization updates for: Japanese, Russian

v 0.0.7 2017-06-02
add support for Connected Living Space
handle corner cases when things go kaboom while waiting for player input
manual boarding copes with unexpected changes to vessel while awaiting part selection
alighting not possible if the vessel breaks apart while dialog box is open, causing the airlock part and the part containing the crew member to be separated
alighting not possible with kerbal who died or passed out
localization updates for: Chinese, Spanish

v 0.0.6 2017-05-26
localization support added
recompiled for KSP 1.3

v 0.0.5 2017-05-22
now checks for EVA prohibitions due to Astronaut Complex level / Tourist type
fix alighting features not being available when the active vessel lacks control
stock "command hint" messages (e.g. "[В] Board") no longer show when in manual boarding mode
pre-emptive changes to keyboard input handling for 1.3 compatibility
fix my shameful missing break statement

v 0.0.4 2017-05-17
new feature: kerbals from any part can exit to EVA using any airlock
green highlighting of parts on mouseover should now be properly disabled when manual boarding is used, and restored properly afterwards

v 0.0.3 2017-05-12
much better solution for keeping our command hints displayed
switch from Input.GetKey to Input.GetKeyUp to prevent spam-calling boarding functions when key is held down
prevent stock boarding from being registered alongside auto boarding, which causes "spurious" stock "Cannot board a full module" message appearing alongside our auto boarding "Cannot board a full vessel"

v 0.0.2 2017-05-07
respect EVA boarding keybinding from game settings
functionality will now be disabled when in map view
turn off stock CrewHatchController UI properly when in manual boarding mode
fix my stupid NRE caused by Mouse.HoveredPart being null upon mouseout in manual boarding mode

v 0.0.1 2017-05-06
initial dev release
compiled for KSP 1.2.2

 

Edited by cakepie
v.0.0.11
Link to comment
Share on other sites

1 hour ago, ssd21345 said:

So this is easy boarding with a different approach and Manual boarding (You can select what part you can hop on rather than the nearest).  Good Luck!

This mod and easy board are solve different problems.

Easy Board makes the "B" and "F" keys for "board" and "grab ladder" function as toggles, so that the kerbal on EVA will automatically board the airlock or grab the ladder once you maneuver into range. If you find it tricky to maneuver in EVA, and tend to go too fast and end up overshooting the airlock/ladder before you can manually press "B/F" in the stock game, then Easy Board helps you out so that you can concentrate on controlling the kerbal and not have to worry about pressing "B/F".

This mod deals with the problem when you are using the airlock on a part that is already full to its crew capacity. Even with Easy Board, you cannot board a full part.

The auto boarding feature of this mod allows you to use the airlock on a full part. As long as the vessel is not full, your kerbal will be able to get on board, and find an empty seat in another part of the vessel. You don't get to specify which part, though. To do that, you'd use the manual boarding option -- which you seem to have understood correctly.

Link to comment
Share on other sites

Got it. Does it work with both installed? I wonder if easy board would register the B key at the same time when we use shift/ctrl + B of "board into any vessel part from eva".  

Or the other solution is just changes the keymapping. Easy boarding doesn't respect keybinding I guess. (Nope it also respect your keymapping)

Edited by ssd21345
Link to comment
Share on other sites

On 5/14/2017 at 8:48 PM, ssd21345 said:

Got it. Does it work with both installed? I wonder if easy board would register the B key at the same time when we use shift/ctrl + B of "board into any vessel part from eva".  

Or the other solution is just changes the keymapping. Easy boarding doesn't respect keybinding I guess.

Edit: this mod interaction has been resolved. AirlockPlus and Easy Board 1.5+ will play nice with each other.
 

Spoiler

 

I haven't yet tried, but I think it should be possible to use both together in most situations. Edit1: tested and verified
You'd use easy board to grab the airlock (most airlocks have an invisible ladder) and then this mod for shift/ctrl+B.

If the part is already full, then easy board registering the B key does nothing other than showing a screen message about the part being full -- the kerbal can't board the part. So shift/ctrl+B should work without interference.

If the part isn't full, then shift+B will just board the part, same as just pressing B in stock. If easy board registers the B key, then it'd do the same thing anyway. No difference in outcome.

The only possible issue is if you are trying to use ctrl+B on a part that isn't full. If easy board registers that keypress, it will board your kerbal. That means you can't choose the destination, and will have to use a crew transfer to get the kerbal where you wanted. I don't think it'll cause any game breaking bugs, though -- this mod will recognize that the EVA kerbal is no longer the active vessel and gracefully handle the situation. So a minor inconvenience at worst.

 

If you try it, please report back on what you find out! If there is a conflict, we'll do what we can do to resolve.

 

 

Edited by cakepie
mod interaction resolved
Link to comment
Share on other sites

v 0.0.4 release.

New feature: now with alighting in addition to boarding.

With airlock access working both ways, we're now getting close to having a release candidate, that has bare minimal set of features that I'm satisfied with.

At this point I could really use some testing/feedback to help find and iron out any remaining bugs.
If you've taken this out for a spin, make sure to let me know how it went for you!

Link to comment
Share on other sites

v 0.0.5

Fully functional for all intents and purposes. Hopefully nearly bug free by now.

Almost ready for general release, only a couple more inconsequential nitpicks that I'd like to take care of.

Link to comment
Share on other sites

v 0.0.6 released for KSP 1.3.
Use MM 2.8.0 or later.

Localization support has been added.

For the time being, v 0.0.5 download remains available for KSP 1.2.2.
Use with MM 2.7.6 on KSP 1.2.2.

 

Edit: translations are now available.
- Chinese: available, proofreader wanted
- Japanese: available, proofreader wanted
- Spanish: partial, translator needed
- Russian: partial, translator needed

Edited by cakepie
translations now available
Link to comment
Share on other sites

Spanish Localization

Localization
{
es-es
{
	#autoLOC_AirlockPlus00000 = AirlockPlus
	#autoLOC_AirlockPlusBP001 = [Shift+<<1>>] Abordar alguna parte disponible\n[Ctrl+<<1>>] Selecciona parte a abordar
	#autoLOC_AirlockPlusBP002 = No se puede abordar una nave llena.
	#autoLOC_AirlockPlusBP003 = <color=<<1>>>Selecciona una parte para abordar\n[Esc]: Cancelar</color>
	#autoLOC_AirlockPlusAP001 = Nave de Tripulación: <<1>>/<<2>>
	#autoLOC_AirlockPlusAP002 = (Turista)
	#autoLOC_AirlockPlusAP003 = EVA
}
}

The first line, as the name of the mod, I think it should remain untranslated. But if you want to translate it anyways, I Think that "Esclusa Plus" it should work better than "Esclusa de aire aumentado".

Link to comment
Share on other sites

Thanks @GonDragon!

Localization files updated. Also fixed a minor mistake with the 0.0.6 download package.

 

10 hours ago, DStaal said:

Just spotted this, and like the idea.  I'll be waiting for CLS compatibility, but I’m looking forward to it. :wink:

You'd be pleased to know that CLS compatibility is a fairly high priority... since I do want it myself :wink:

Link to comment
Share on other sites

Thanks for the help @Summerfirefly! One more new line, though, since I'm adding compatibility for Connected Living Space. Would it be accurate to translate "living space" as “适居空间”? i.e. “无法进入满员适居空间。”

@GonDragon likewise for Spanish, would it be correct to say "No se puede abordar una espacio habitable lleno."?

 

Link to comment
Share on other sites

29 minutes ago, cakepie said:

Would it be accurate to translate "living space" as “适居空间”? i.e. “无法进入满员适居空间。”

@cakepie "载人舱室" may be better IMO. i.e. “无法进入满员载人舱室。”

Edited by Summerfirefly
add a Chinese full stop
Link to comment
Share on other sites

8 minutes ago, Summerfirefly said:

@cakepie "载人舱室" may be better IMO. i.e. “无法进入满员载人舱室。”

@Summerfirefly , are you familiar with CLS? It introduces the idea that each part is passable or not passable, i.e. whether it has a pressurized interior. You can only use crew transfer to go from pod/cabin A to pod/cabin B if there is a route between them that goes through only "passable" parts. E.g. A -> hubmax connector -> B is allowed, but A -> girder -> B isn't.

My concern here is that I need to draw a clear distinction between the notion of a crew cabin (a single part) vs CLS concept of "a collection of interconnected, habitable parts that you can travel through without having to go EVA".

Stock KSP uses "舱" in names of individual parts, e.g. 乘员舱,驾驶舱,指令舱 ... and when you try to board a part that is full (in stock behavior) you get 无法进入满员舱室。
What I need to convey here is "all the parts that are reachable from here, according to CLS rules" are already full. Hence "habitable space" -- because "cabin" is too ambiguous.

Does this make sense? Please let me know if you have better suggestions!

Link to comment
Share on other sites

@cakepie Yes I knew CLS before. In Chinese, “舱” or “舱室” can be used for all manned or unmanned parts which have "reachable space" in them, like “实验舱” is in which crews do experiments. “生活舱” is the space crews live in. “气密舱” means airlock. Even engine room can be called “轮机舱室” or “引擎舱室”.

And “载人舱室” means habitable space in the vessel. “适居空间” has the similar meaning with “载人舱室”, but it almost never be used in Chinese community. So I think “载人舱室” is better.

Link to comment
Share on other sites

@cakepie bugreport: sometimes kerbal cannot go to EVA through the hatch of another module.Message says "Hatch is obscured, can't exit." but he actually can, if do it a stock way...

Steps to replicate:

  1. make simple craft with mk2 cockpit and mk2 crew cabin
  2. make sure, that kerbal go on EVA from mk2 cockpit hatch when siting there 
  3. make sure, that kerbal go on EVA from mk2 cabin hatch when sitting in cockpit
  4. transfer kerbal to crew cabin
  5. Alt+click on cocpit hatch ant try go EVA with kerbal that now in cabin
  6. Hatch is obscured, can't exit.
Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...