Install Steam
login
|
language
简体中文 (Simplified Chinese)
繁體中文 (Traditional Chinese)
日本語 (Japanese)
한국어 (Korean)
ไทย (Thai)
Български (Bulgarian)
Čeština (Czech)
Dansk (Danish)
Deutsch (German)
Español - España (Spanish - Spain)
Español - Latinoamérica (Spanish - Latin America)
Ελληνικά (Greek)
Français (French)
Italiano (Italian)
Bahasa Indonesia (Indonesian)
Magyar (Hungarian)
Nederlands (Dutch)
Norsk (Norwegian)
Polski (Polish)
Português (Portuguese - Portugal)
Português - Brasil (Portuguese - Brazil)
Română (Romanian)
Русский (Russian)
Suomi (Finnish)
Svenska (Swedish)
Türkçe (Turkish)
Tiếng Việt (Vietnamese)
Українська (Ukrainian)
Report a translation problem
I'm currently working on a creative mode build and am using the conveyor air vents mod. I don't think the mod is doing anything strange, though admit it's possible... but definitely the air isn't behaving like you'd expect it to.
Unfinished rooms that vent out both directly and indirectly to space are registering high air levels where rooms that are well sealed are registering no air, even though they're all connected up to the conveyor system.
Also I can't figure out what's going on with the LED indicators... some show a single red bar, some show full green spread, some show a single bar or full spread of yellow... but the indicators don't seem to match the conditions in that room at that time.
Definitely something odd is happening here!
In one particular instance I have 2 rooms separated by a bulkhead, in which there's a single corridor block between 2 doors acting as a kind of emergency containment seal. Both rooms are sealed from space and there are vents right next to one another on opposite sides of the bulkhead. One room pressurises perfectly, the other doesn't pressurise at all. I open the door on the pressurised side & all seems fine but as soon as I enter the corridor block the HUD registers no air.
You'd think that by opening the other door, the corridor and the unpressurised room would eventually become pressurised. Nope. It's like corridor blocks don't conduct air at all!
On the other side of the unpressurised room is an airlock with its own air vents. That pressurises fine too but again, open the inner door and that middle room just doesn't pressurise. There's not even any corridor blocks in the way from that side. All very strange.
At the moment I'm putting it down to either an unfixed bug or just creative mode being weird & working differently. I've yet to build anything with an air system in survival mode, so can't say if it's that or not. Whatever it is it's confounding the hell out of me!
Basically, the best you can do is to use only primitive blocks right now that adhere to the most basic of shapes, nothing to complex.
I mostly use Light armor blocks, interrior walls, doors and so forth and keep doublechecking if they pressurize properly, Usually by depleting all pressure, opening all doors but the outer and then pressurize again, usually, if the Air Vent's LED's go yellow, I know I messed up somewhere.
Though, you said your LED's are messed up ? I havn't had that one before O_o They seem to work quite accurately for me. least so far.. Maybe there is something about the Modded air vent's your using ? Compare them with the Vanilla version and see if that fixes it.
The vents I'm having the biggest problem with are the modded slant ones, so it's highly likely they're screwing something up. The first time I used them they worked just fine but thinking about it, they were oriented differently. Now they're on their sides they want no part of anything. Hmm...!
The build I'm having problems with is mostly very simple but I guess I'm still being too ambitious at the moment. Reading what a few others have to say it seems the whole air thing is more like blowing smoke right now. Keen are pretty good listeners though, so I reckon it wont be long before we can really use the new stuff. Saying that I seem to remember it was several months after conveyors were introduced that they could actually be used for anything. We wait in hope I guess.
Til then I'm shelving anything to do with air. It's not working like it should in any event, so trying to work WITH it seems mostly pointless for now. The carrot is dangled and it's a good looking carrot, so I suppose that's enough!
Back in regard to the issue of doors & the loss of air... I'm thinking as a computer program now & wondering 2 things... Air is a local variable to each & every cube or "array element" in every grid right? Meaning a cube with a partial object in it (like a door or a catwalk panel or a corridor block) has its capacity reduced by the mass of that partial block. That would simulate displacement. So say a door object displaces X array elements of air when it's closed. You open it, it should still displace X array elements... but what if ithere's an omission in the code that causes an open door to displace no array elements? The closed door when opened would create a gap in the array that the "produce air" routine would then try to fill. Conversely, an opened door when closed would not ammend the array like it should, meaning the new array elements that were just created by opening the door were lost from memory completely once the now re-closed door was back displacing air. Repeat the cycle often enough and it'd empty an infinite number of air tanks because the air is never replaced when the door gets closed.
This is basically talking about the air vent as a "GetValue / ModValue" argument in a routine. No air vent in a room = no "Get / Mod" argument. The game doesn't even know to ask whether this is a room that can contain air, so it doesn't include it in any further checks and automatically sets Value to 0 as a failsafe.
I hope this is making sense!
The second thing I'm wondering is how exactly each room is quantified as its own sealed environment and at what point when a door is closed does it cease to be part of the next room for the purposes of sharing one air variable array. If the array is divided by a closing door, each half of it becomes its own separate array. The half that's not supported by its own "produce air" routine might by default have all its elements set to 0, meaning all the air in the room without the vent is lost because there's no calling statement in place to discern what it ShOULD be... IE, there's no vent in that room, so there's nothing to DETECT how much air was in there when the door was closed and the array divided.
Again, I hope I'm making sense.
I may be miles away with my thinking. My knowledge of modern programming is limited. What I know is old and methods have probably changed a lot since then. Arrays & variables are usually a pretty universal language though, so call it a semi-educated guess. Just throwing it out there really, trying to make sense of what's happening. It's fun to try even if it's wrong!
Essentially I am guessing that the Air is meassured per cube, the Vents don't fill a room, but each empty cube within the room, certain objects like the door, when opened, classyfy as empty or partialy empty. The Act of opening the Door has the Vent detect this empty space and will subsequently try to fill it up to maximum capacity.
Now here is where I am not sure, but I wager a guess that the maximum capacity can not be exeeded, as such, closing the door, the excess of air is deleted, and opening it again will cause two things, for one, the air in the surrounding blocks will fill the newly created empty space that classifies as Valid, and two, for the Vent to add the oxygen that misses then in each block.
Considering though I managed to completely drain a room of air by opening / closing a door, the game is unable to relocate the air within the Doors location, instead, it bluntly deletes it each time the door is closed, and when subsequently opened again, the surrounding blocks share an equal percentage with the oxygen lacking cube, and doing it repedently, you can effectively delete all available air, although you'll delete less each time you close the door since there is less to be shared in the surrounding cubes.
Now, that much I would have nearly expected though, and I am quite fine with it, but what confuses me is that not just the air in the Door's Location is being deleted, but also that of the cubes before and behind the Door.
Imagine a small halway, you have an outer door, one free Cube, and then another door, With one door open, you would be able to have the one cube pressurized, but as soon asyou close the door, the free cube is empty again, as though the Door's closing had deleted the air within this one block too, though, thinking about it right now, I did a second test a little bit ago, not standing within this single cube, but instead on the other side of the cube, and it took more toying with the door to drain the room of Oxygen, so, perhaps it is not the Door itself, but perhaps the Avatar as well ? As in, the Cube your Avatar stands in is devoit of air, although you are fine as long as the surrounding blocks carry oxygen that *could* support you if your helmet would be off, so your hud shows you oxygen is available in the case of a larger room.
With just one cube though, there is no Oxygen around you to *possibly* fill up the one your standing in, so It registers as *No oxygen* ..... I have to test that, see if I can fill a One cube segment and then open a door towards space, see if I have a Depressurisation effect then..
You're talking in images while I'm talking in numbers but I think what we're both saying amounts to the same(ish) thing... that a closed door does not have the same displacement as an open one... or if it does, that displacement can't be shifted dynamically within that cube, as in when the doors move. As for whether the avatar displaces anything, I wouldn't know where to start with that! My guess would be that he doesn't... just because it's such a new mechanic.
So instead of all empty cubes being filled directly from one source (the air vent) like I thought, you're saying they're filled on a piecemeal basis by their neighbouring blocks, whiich are fed by THEIR neighbours and so forth until the neighbouring block is the air vent itself. A kind of "take one & pass it on" system where each cube fills itself first, then distributes any excess evenly among all its neighbours. That's a nice clean model and more realistic than mine, as that's how pressure equalises in the real world. This also explains why there's a delay of a few seconds between each stage of pressurisation. I like it!
I also like the part about the maximum capacity not being exceeded and any excess being deleted. Whatever is happening, that air doesn't come back, so it's definitely being deleted by something.
Assuming then that it's correct... each cube has say 5 states (possibly more depending on how precise the simulation is or possibly on how many cubes comprise the room):
1)Full - can only give away air
2Nearly full - gives away air before it recieves air
3)Half full - gives away and recieves air equally
4)Nearly empty - recieves air before it gives away air
5)Empty - can only recieve air
So an empty cube next to a full cube would result in 2 half full cubes, as would a nearly full cube next to a nearly empty cube.
Still though, there must be some kind of system-wide check going on constantly to determine how many cubes make up the room... otherwise there's no defining the maximum capacity that mustn't be exceeded. I say constantly because as doors are opened & closed, rooms merge into one another and become smaller or larger... or do they?
Could it be that doors are unique in that they define a point at which 2 rooms can share resources without actually merging into one? Sounds like a stupid thing to say doesn't it... bear with me here.
Consider how rotors & pistons work... the 2 ends each form part of a separate grid. The grids can share power and functionality but they're never truly one because grid cells cannot move relative to their own grids. Perhaps in a similar way, each pressurised room is its own separate grid and the door between them acts like a rotor or piston would, sharing resources (air) to & fro without the need to recalculate the room capacity every time it's opened or closed.
A piston or rotor can't share resources to a grid that isn't there, nor can it accept resources into itself, since it has no integral capacity of its own. It can however share resources with a grid that has a means to quantify & use or store them.
Maybe rooms work in a similar way. So say that doors can't accept air because they have no capacity for it and neither can they share it with a room that isn't defined as a room because it has no air of its own. Maybe they CAN share air with another room that has it or is defined as being able to use or store it.
If that's anywhere near the mark, a 1 cube room on the other side of a door would still have to be pressurised before the door could share air between the 2 rooms.
Of course that does nothing to help explain where the lost air is going.
Lots of avenues of thought going on here but I'm going to have to sleep on them before they all get (more) confused!. I'll do some experiments tomorrow & see if I can figure out something we don't know.
It does do so to their own block, there is no question about that, but I do think the *Detection* of air has is a different one.
What I cooked up this morning is the Idea of an Air flow, not an actual one but, I think Cube's more or less have to be able to bounce Oxygen back and forth, meaning the minimal size of a Room has to be two Cube's in size, allowing these two Cubes to detect each others Oxygen and share it.
With one cube in size only there is no Available Cube to share it's air with, or to receive any from, so essentialy, it looses it's own air with no potential mate to supply it.
That could even explain how oxygen is shared amongs cubes, each cube relates only to it's neighbour, all other cubes have to wait till one of their neighbours has Oxygen to share with them.
So you reckon the cubes fill sequentially rather than dynamically amongst ALL their neighbours? I could buy that as a model for simplicity but I don't think it's realistic enough... you know KSH & their plausibility thing. I think they'd want to model airflow more dynamically.
Also, filling a room sequentially could get quite strange when it came to rooms that are more than 1 cube tall (are 3D, not 2D).
Every way I cut this in my head though I end up at the same place... that there must be something calculating the final number of cubes in a room. The room has to be definable by either a single number string or a system of 3D co-ordinates. At the very least, rooms have to be identifiable as having either 0 cubes, 1 cube or more than 1 cube.
You just know we're both completely overthinking this!
For fun though, how about a proper series of controlled experiments.
If you're up for it I'll build & publish a test world and name you on the authors list and we can both then try the exact same things at our leisure & see what conclusions we draw. We'll never truly know how Keen has made this work unless they tell us but I'm enjoying trying to puzzle it out.
And I think you have to imagine it as a sort of Ripple effect, a three dimensional one. the Air vent feets it's own and the adjecant Cube's with air, those fill their neighbours, above and besides them, and so forth, all the Air vent has to do then, is to refill the amount of air it's own and it's neigbouring Cubes have lost in the process, untill, if able, it has reeched maximum capacity, which it can achieve only if all blocks can do so.
And thats where I am wondering. A room of one cube has no neighbour to share Oxygen with, nor to receive any, so once the door is closed, the lacking ability to share or be shared with eradicates all air, soon as you add a second empty cube though, it *Should* enable the room to stay pressurized as the two cube's can share the Oxygen between each other.
PS: Meaning in short, the ability to share is the essential trigger for a cube to hold Oxygen, without least one more cube to share it with, Oxygen will not be supported and the Oxygen is *deleted*
PS: On a Sidenote, that makes Airlocks a simple build, unless your worried about the lost *Deleted* oxygen, building a room only One Cube in size does the trick. So, if they actually went for Explosive decompression and such, thats the most Cost effective way to do it ^^
http://steamcommunity.com/sharedfiles/filedetails/?id=415972964
It's only a start but I've covered what I think are the founding principals.
I noticed the natural airlock effect you mentioned while building it. I wonder if that was deliberate for exactly that reason! Either way it works quite nicely.
Feel free to add more to the world of course. I'm about to start looking at airlocks with more than 1 cube & see what they do.
For the first time I've also noticed a visible venting into space when a block is removed from a wall... leading me to think you're on the right track with the explosive decompression part. If that visible air could be given a force that can act on the players avatar then it looks likely that explosive decompression will become a feature. We'll be blowing things out of the ♥♥♥♥♥♥♥♥ airlock in no time! Sigourney Weaver eat your heart out!
A curious effect with series 3 that I noticed... when the outer door is closed and you open & close the middle one, only the vent in the inner chamber seems to blow additional air. Seems to be the case regardless of which side of the door you stand on. Not sure what that means yet.
I hope the world is useful to you anyway.
Considering that the cube the Door is in, and the only other holds the Vent, you have two half cubes, if at all that much, and Still the vent Detects a certain Air pressure that, within this small space, isnt there.
So, either it is detecting the Oxygen Filled space beyond that Door, or it is Detecting the pressure that it could build up, but can't since, as I assume, there is no Second cube that it can share Oxygen with.
PS: Ok, the Result differs depending on where your standing, Inside the room or the room besides it, the Vent goes from four to Two green Lights, Standing above to watch the magic happen from the outside, the Lights stay at 4 Green no matter what...
PPS: Loading the worl anew Forces the Vent to reevaluate, and turn Full on Red, Saying that it can't pressurice that Small room, and even waiting some time, the indicator wont change to green until I open and close the door.
So, I am guessing it simply can't handle the situation to well and probably means to turn red once the door is closed. ^^
Sounds like the vent has filled the 2 half cubes (or thinks it has) but that in terms of how the HUD registers air, 2 halves aren't making a whole.
So 2 half cubes on their own cannot be added to one another to form one whole cube but they can be added to another whole cube (although that's apparently not enough for them to be classed as a second whole cube for the purposes of sharing air between them, or we could have 1-cube rooms that didn't depressurise).
2 half cubes plus the two whole ones you need for a self-sustaining isolation room dont equal 2 cubes. I'm thinking that half-cubes are static and cannot share at all... more like they're placeholders for joining two whole cubes together & that's why they don't register any air on the HUD...
Something like I was saying about rotors & pistons being part of 2 separate grids. Maybe it's not the door itself that determines the junction but the half cube of air that's left on either side of it.
If that's true then you could in theory create 2 grids that were joined by a new type of block I'll call a "door rotor" (a rotor with a door in it insetead of a conveyor). The grids could be set to rotate relative to one another through the door rotor and even though the grids were separate, the sharing of air between them should be possible.
Not sure if there's a way we can test this. I think there may be a mod that puts a door inside a rotor so I'll see if I can find it. Hollow rotors I think it's called.... or something like that.
I'm going to test the half-cubes of air using the Conveyor Air Vents mod. Those blocks take up exactly one cube, so in theory that might mean they can allow for 1-cube airlocks that dont depressurise when the door is closed... I think!
Are you able to save the world with the new experiment added to it, then re-publish it over the top of the existing workshop world? Or am I the only one who can republish? I'm not sure how the contributors thing works. Sucks a bit if only one named author can have permission to update the world.
If you can do that, do it. I have to pop out for a bit so we're not likely to overlap on our updates for an hour or 2.