[Code Bounty] Make the Tram space-proof

How, what and why to code in BYOND.
Post Reply
User avatar
TheSmallBlue
Joined: Thu Oct 31, 2019 3:55 pm
Byond Username: SmallBlue

[Code Bounty] Make the Tram space-proof

Post by TheSmallBlue » #652927

This is a spiritual successor to Make the Tram faster.

Tram station gets a lot of flack nowadays, I think this will change if we make it cool. Hip with the kids. On with the times.
Making the tram space-proof was apparently the original plan for tramstation, having the tram go outside to space and back inside, but due to performance reasons this was scrapped. I would like more tram maps to be made, but I think having the tram be exclusively in-doors will limit mapper's creativity, thus this bounty. To be clear, I'm not looking for changes to tramstation itself.

What I am looking for is for changes to be made to the tram to make it retain atmosphere while moving outside into space, then back inside into the station. When in the station, it must eventually interact with the atmosphere inside the station.
It isn't necessary for the atmosphere to interact with the space void. By this I mean that if someone opens a tram door while traveling through space, there's no need for it to suck people out. The escape shuttle doesn't do this, so I think its not a big issue if the tram doesn't do this either.
If someone opens a can of plasma inside the shuttle while the shuttle is docked, then the shuttle starts moving, the plasma should stay spreaded inside the shuttle, possibly in a paused state, until the tram arrives and docks onto the next station, at which point the atmospheric simulation would continue.
Of course, real time atmospheric simulations while inside the shuttle would be cool, but this is BYOND we're talking about.

Caveats:
  • It should have minimal performance impact, otherwise the point of adding it would be null.
  • As said in the Tram Fastening bounty, interactions must be kept the same. See their caveats to have a more in-depth explanation.
  • Payment will happen if the PR gets as far as to get testmerged in any server. If this is too unreasonable I'm willing to tone it down a bit.
Think this is quite the undertaking so I'm starting with the same amount the other bounty started, 200 dollars. I can pay through either PayPal or Steam (And if on steam it might take a bit longer).

You can talk to me through discord (SmallBlue#9038), through this post or through forum DM's. I have it set up to only allow DM's from people in the same servers as me, so you can either join Coderbus, Manuel Hut, or the main tg discord and DM me, or message me through other means and send me a friend request.
User avatar
TheFinalPotato
Code Maintainer
Joined: Sun Oct 13, 2019 7:58 am
Byond Username: LemonInTheDark

Re: [Code Bounty] Make the Tram space-proof

Post by TheFinalPotato » #652936

First of all, gas actually does flow "out" of space shuttles
Second, would this mean that when a tram moves, the space it used to be in has no gas? Since it takes its mix with it
My ancestors are smiling at me, Imperials. Can you say the same?
Image
Image
Image
User avatar
TheSmallBlue
Joined: Thu Oct 31, 2019 3:55 pm
Byond Username: SmallBlue

Re: [Code Bounty] Make the Tram space-proof

Post by TheSmallBlue » #652937

TheFinalPotato wrote: Fri Sep 23, 2022 4:53 am First of all, gas actually does flow "out" of space shuttles
When mid travel yes, but in-game I've seen that when a shuttle arrives into a vented departures, there is no normal air coming out of it. There is no pressure in the airlocks, no breathable air coming in. That's what I'm referring to.
TheFinalPotato wrote: Fri Sep 23, 2022 4:53 am Second, would this mean that when a tram moves, the space it used to be in has no gas? Since it takes its mix with it

I assume by this that the current option the tram uses isn't good enough, though I'm not really aware of what that option is.

EDIT: I actually forgot I know that the tram doesn't hold any gas at all and uses the gas already in the existing tiles. Whoops
If so, then I'd say it depends. The alternatives would be:
  • The gas in the tram would both go away with the tram and stay behind in the station. Plasma that previously flooded the tram is now floating and spreading normally in the floor where the tram previously was, while what was inside the tram stays inside the tram. This would be weird and make no real sense. I call this Schrodinger's Gas. Fecal funny.
  • At the time of departure, check the state of the air around the tram. Whichever combination of gases on a tile is the most present is the one that replaces the tram's space. I.E. If normal air surrounds the tram before departure, normal air replaces the tram's space. If 70% of the tiles around the tram are flooded with plasma, and 30% with normal air, then plasma replaces the tram's space. This sounds like the more natural way of doing it, though it'll likely be a bit jarring.
    An alternative to this would be to instead do it in a more recursive way. (Instead of replacing the entire space the tram occupied with one air type, once the tram leaves and leaves empty tiles, make those tiles check the tiles besides them, then copy the gas inside that tile.) This would give the most realistic outcome, however I fear it'd be hard to code and optimize.
The first option would suck, while the second option or an iteration of it would be amazing. Leaving a vacuum however is also acceptable, since I believe this can be a nill issue in the mapper's side by simply making it so that the tram only docks in spaces with no air, with the only atmospheric link with the station being the tram's airlocks.
Post Reply

Who is online

Users browsing this forum: No registered users