Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a component that can make doors airtight, for player made docking ports & EVA access #2620

Open
wants to merge 9 commits into
base: master
Choose a base branch
from

Conversation

Alkheemist
Copy link
Contributor

About the PR

Added a new component & corresponding system, AdvDoorSeals. This component:

  • Checks if the door has power
  • Checks if the door is facing space (like a thruster)
  • If these two checks pass, makes the door airtight like a directional fan
  • If either of these conditions stops being true, lets air pass. Don't lose power while docked!

Why / Balance

So that constructs and other ship extensions no longer have to choose between being pressurised and having only 1 wide docks.
Checks are in place to ensure it's not abusable by atmos. It may be abusable by ship builders as it is effectively a buildable directional fan that can be placed only at the edge of a grid and needs power, but that can be balanced by upping power draw on any entities this gets added to.

How to test

Add the component to a door (currently not added to anything in yml)
Check that it blocks airflow when powered and the tile it's facing is space (either empty or lattice)
Check that it allows airflow when not powered or a solid tile is in it's facing direction (to prevent atmos shenanigans)

Media

dotnet_27_16-10-27.mp4

Requirements

Breaking changes

Some code was pulled out of thrusters and put into shuttles, this is to make the tileupdating work by making the spaced/not spaced check an event. This also inadvertently fixes the bug where pulling up plating doesn't update thruster nozzle space exposure checks. Not sure if that counts as a breaking change, but it does touch upstream code a decent amount.

Changelog

🆑

  • add: Added airtight seals that can be added to doors through admeme magic

@Alkheemist
Copy link
Contributor Author

the question of balance is not really my area, but if this gets approved then we've got a couple of ways forward

  • Letting people have airtightness at every docking (specifically docking as the direction is obvious) port is fine, add it to the docking airlock prototype
  • The luxury of having air inside your ship is only for those engineers deemed worthy (that is, they provide enough power), add a docking port variant that costs more, uses more power and has this component

@whatston3
Copy link
Contributor

The visual cue that there is a directional fan is useful, and if you want this to require power draw, okay, why not make directional fans require power? Also, docking airlocks by themselves are airtight facing south when docked as-is, no?

Don't see a great deal of value in this. If directional fans should be constructible, fair. If constructed ships should have "actual" airlocks, fair. This seems like an odd compromise.

@Alkheemist
Copy link
Contributor Author

hmm, maybe making a directional fan variant that is constructible but has thruster checks for validity would be the way to go instead.
The idea was that you would only need one flatpack to build an airtight docking port, instead of 2 (one for the docking airlock, one for the directional fan). A lot of people don't know that docking ports are airtight because they aren't if they're not docked, and people will build 3 wide docks, dock one, bump another and think "oh the ports aren't airtight since all my air is escaping"

yeah, on one hand, building full cycling airlocks is a fun exercise in signals and atmos
on the other hand, it shouldn't be mandatory knowledge for people who want to be creative with shuttle builds

if you want, I can add a parameter to this similar to the thruster's "requiresSpace" to disable the power requirement.

@GreaseMonk
Copy link
Contributor

The visual cue that there is a directional fan is useful, and if you want this to require power draw, okay, why not make directional fans require power? Also, docking airlocks by themselves are airtight facing south when docked as-is, no?

Don't see a great deal of value in this. If directional fans should be constructible, fair. If constructed ships should have "actual" airlocks, fair. This seems like an odd compromise.

I second this, i dont think we particularly need this to change, just my opinion though, we have directional fans for this and i personally always check for this cue since right clicking a tile specifically shows it under a door

@Alkheemist
Copy link
Contributor Author

OK, I'll rework this to make an alternative directional fan that has these checks but is player buildable. Mostly just have to strip out all the interactions with doors.

@GreaseMonk
Copy link
Contributor

OK, I'll rework this to make an alternative directional fan that has these checks but is player buildable. Mostly just have to strip out all the interactions with doors.

@Alkheemist If you are planning to make directional fans constructable you absolutely cannot make it easy to do because of game balance.
Directional fans are magical ways to prevent any gas from moving a direction- as you know - and you would need to think how you can counter any abuse to it; i

For example:

  • you may use these fans but will only work if a door or wall is next to it;
  • one of the construction materials is a rare drop on the VGRoid or found VERY rarely on regular salvage.

This makes the component marketable for people who need them.

I would personally approve it if these conditions are met, and i will need a second maintainer to share their thoughts on it as well but generally this is what I think is fine

@Alkheemist
Copy link
Contributor Author

@GreaseMonk Like I said before, balance is solidly out of my field, I'm just implementing the underlying mechanics. Someone else can then implement this component on an entity in a balanced way.

As for player constructible directional fans, this component (as it was designed for doors) requires the following 2 conditions to be met:

  • The tile has power
  • The airtight direction is considered space
    The second condition means that you cannot use it for atmos shenanigans since it can effectively only be placed at the edge of a ship. (I guess you could surround a spaced tile with them, but then it's the same as making directional windows)

The original idea was to integrate them into the docking airlocks themselves, but you do lose the visual cue that a door is protected from spacing. Maybe stealing a sprite overlay like from firelocks could solve this?

@Masterscape
Copy link

I would honestly be very against making it check for space tiles. Directional fans would also be awesome for Vox boxes on mixed species crew ships.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants