Sealed space

From Galacticraft Wiki
(Redirected from Sealed Space)
Jump to: navigation, search

In Galacticraft, a sealed space means a room - or other space, it could be a dome for example - which has solid walls on all sides, with no gaps, so that it can hold in air.

The player can fill the sealed space with breathable air using an Oxygen Sealer. A sealed space with a working Oxygen Sealer and no leaks is called 'Sealed'.

If the space is correctly sealed:

  • the player can breath without needing an Oxygen Mask and tanks
  • any mobs which needs air to breath (for example, chickens, pigs) will be able to breath OK
  • torches will light normally
  • an Oxygen Detector will detect oxygen
  • fires can be lit and Flint & Steel will work

If the space is not correctly sealed:

  • the player will be unable to breath without an Oxygen Mask and tanks, if the player runs out of oxygen then the Oxygen Setup Invalid! warning will be shown
  • mobs which need air to breath will start to die
  • torches will go out - see Unlit Torch
  • an Oxygen Detector will fail to detect oxygen
  • fires will go out, and Flint & Steel will not work

Note: in Galacticraft 3 and Galacticraft 4, machines which require direct access to a planet's raw atmosphere - for example, the Gas Liquefier with an Atmospheric Valve in its input - will not work correctly in a sealed space.

Sealable and non-sealable blocks

To make a sealed space, every block in the wall (all the blocks you can see!) must be a solid (or "sealable") block. If even one block is not solid, the space will not be sealed.

Quick test: if you can see through the wall to the outside (and it isn't glass) then probably it is not sealed. Also, if a torch cannot be placed on the block, then it probably is not sealed.

Some types of blocks can never be sealed: any block of leaves, gravel, or anything made out of sponge, cloth or wool. These are not the best materials to build your space base out of!

Examples of sealable blocks:

Examples of blocks which are not sealable:

  • Gravel
  • Leaves
  • Block of Wool
  • Glowstone Block
  • Buffers in Archimedes Ships mod (they are made of wool)
  • Door
  • Stairs - sealed only on the solid side
  • Slab - sealed only on the solid side
  • Farmland - sealed only on the under side (the other sides all have an air gap)
  • Piston (open position)
  • Aluminum Wire
  • Oxygen Pipe

By default, the vanilla glass pane is included as a sealable block, even though it looks like it lets air through to the top and bottom sides. This is because its vanilla block ID (102) is included, by default, in the SealableIDs config. If you do not want this behaviour, simply remove the ID 102 (minecraft:glass_plane) from the SealableIDs config.

Working with other mods

In Galacticraft 3 and Galacticraft 4 (and the final releases of Galacticraft 2), blocks from other mods should mostly be automatically detected whether they are sealed or unsealed.

For some special types of block, Galacticraft may 'think' they are not sealed, when in fact you want them to be sealed. The most common example is new types of glass from other mods - for example, Clear Glass from Tinker's Construct. Unless set correctly as a sealable block in the config (see below) a base made out of Clear Glass will not be able to seal.

So if a space is not sealing and you think it should be, check whether you are using any special blocks from other mods. (Any block which you cannot place a torch onto, might be a 'special' block.)

Galacticraft's config allows you to add the block IDs of any special blocks - for example Clear Glass or Hardened Glass from other mods which should be sealed. Players (or server owners) with other mods will need to add the block IDs for these blocks to the config: here's how. But blocks from other mods which are made out of leaves, gravel, sponge or wool can never be sealed!

Tips

  • One Oxygen Sealer can normally seal around 1000-1400 blocks by volume - that's a 10 x 10 x 10 space, for example - so larger spaces will need more Oxygen Sealers
  • The walls that enclose the sealed area are counted as part of its volume
  • As long as the Oxygen Sealers are placed close enough to each other that their seals can merge, a large volume of space can be sealed - in testing, spaces of more than 100,000 blocks are easily sealed if you have enough sealers (that's a dome 50 blocks across! it needs 80 Oxygen Sealers to seal it!)
  • Position your sealers in a cluster, each one within a few blocks of the next one so that their seals can merge (exact spacing depends on the height and configuration of your build, see example below)
  • If you are having difficulty sealing a space, try building a smaller space at first - so build walls around your Oxygen Sealer to box it in - then move the walls outward until you find where the problem is. Also try bringing your sealers closer together, for example 5 to 8 blocks apart will always be reliable.
  • Think about chunk loading. It would be sensible to give your sealers power and oxygen connections in their own chunk, in case your power or oxygen systems or crucial wire or pipe links are in another chunk which is not loaded.
  • In Galacticraft 4, you can use Sensor Glasses to find any leaks easily, just watch the flow of oxygen escaping from the Oxygen Sealer.

Example of correct sealer spacing

Sealer spacing depends a lot on the exact geometry. In a wide open room, 8 blocks apart (7 blocks between them) should always work, or anything less than that. In a narrow, low, tunnel the sealers can be farther apart and still merge their seals. For an idea of how this works, think about a corridor and count all the blocks around a corridor segment, like this:

  • a 2-block high, 1-block wide mining tunnel has 6 blocks around its edges and 2 air blocks in the middle making 8 in total for the sealer to check for each block of length along the corridor; divide 8 into 1000, and it will give you the maximum sealer spacing of 125 for the sealers to be able to consistently merge their seals (if they are just at the limit of what can be merged, probably they will sometimes merge and sometimes not, so the space will flicker between being sealed and not sealed, which is not good because the flickering can make for a mild amount of lag)
  • a 5-block wide, 6-block high grand corridor in a large base or spawn area has 22 blocks around its edges and 30 air blocks, making 52 blocks for the sealer to check for each 1 block slice of corridor; divide 52 into 1000, and it will give you a maximum sealer spacing of 19 if you want the sealers to merge.

Chunk loading

If the player is moving around, travelling out of a base and coming back to it again, obviously chunks will be unloading and loading all the time.

If you want to ensure that two sealers can merge, you need to make sure both sealers are in loaded chunks - and you need to think about all possibilities for how the chunks can be loaded, for example if a player is far out from the centre of your base, maybe only half the base chunks will be loaded.

If you want to ensure that a sealer keeps working continuously (so that animals won't die, for example), you also need to make sure that its power and oxygen supplies (and the crucial wire and pipe connections) are chunk-loaded at any time when the sealer is loaded - otherwise the sealer will quickly use up its internal power and oxygen and will not be given any more. The best way to do that is to keep power and oxygen supplies, and their wires and pipes, all in the same chunk as the sealer.

An example may help explain this:

  • Imagine your chunk loading radius is 8 chunks
  • You build an Oxygen Sealer which depends on power generation systems and an Oxygen Collector with leaves, all 2 chunks north from the sealer
  • Now the player moves to a location 7 chunks south from the chunk where the Oxygen Sealer is and the player spends 5 minutes there
  • Because of Minecraft chunk loading, the power and oxygen systems (which are now 9 chunks away from the player's position) will not be chunk-loaded. But the Oxygen Sealer (which is 7 chunks away from the player's position) will be chunk-loaded.
  • In this scenario, the Oxygen Sealer will use up all the energy and oxygen in its own internal storage, in around 20-30 seconds. Then the Oxygen Sealer will switch to being unsealed, because it has no power or no oxygen.
  • When the player walks back to his base, once he gets to a point around 5 chunks south from the base, the power and oxygen systems chunk in his base will be chunk-loaded, the power and oxygen systems will start working again and - through wires and pipes - will re-fill the Oxygen Sealer. The Oxygen Sealer will switch to being sealed. So when the player comes home to his base, everything will look OK and the base will look sealed.
  • But there were 5 minutes (while the player was 7 blocks south) when the base was unsealed. So if there were animals in the sealed room, maybe they will all have died, even though it "looks" like the room stayed sealed all the time. :(

The takeaway:

  • If you want to keep a base permanently sealed (so that animals will not die) make sure that the Oxygen Sealer can be kept permanently supplied with power and oxygen from feeder systems inside its own same chunk - and think about how this can keep working even if the other nearby chunks are not loaded
  • Or else place chunk loaders in all the chunks which are critical for your power and oxygen generation (and also in all the chunks with essential wiring and pipes to connect your generation systems to your Oxygen Sealers)
  • Or else you could maybe place redundant power and oxygen setups in chunks around the Oxygen Sealer in all 4 compass directions. So whichever way e player walks away from the base, there will always be one of those 4 setups working.

There is really no other way to do it with 100% reliability, because if you are travelling in and out of your base and moving in different directions when outside in the world, the one thing you can be sure of is that it will not always be the same chunks in your base loading first.


Apart from the need to keep it supplied with power and oxygen, as detailed above, the Oxygen Sealer does not care if the room it is sealing becomes "chopped in half" by half of the room not being chunk loaded. If a room chunk becomes unloaded, to the Oxygen Sealer that unloaded chunk is presented as if it is a chunk completely filled with Bedrock in all block positions. Bedrock makes a solid wall. So the room will stay sealed if it becomes only partly chunk-loaded - actually that might be easier for the Oxygen Sealer to keep sealed when the room is only partly chunk-loaded, because the room just got smaller (less air, more Bedrock!)

If you need 2 or more sealers to make your room sealed, all the sealers should best be in the same chunk, otherwise you might have times when only half of those sealers are loaded, which might not be enough and so your whole room will unseal.

Also, chunk loading may not work exactly how you think. In single player, it depends on your viewing distance. If you're playing on a server, it's not connected with the viewing distance (each player can have his own viewing distance but the server only has one chunk-loading radius). It depends a lot on how the server is set up, there are several settings for this and also optimisations in Forge, Sponge / Bukkit / Cauldron, Spigot, FastCraft, and some server plugins. In many cases a server will have a "chunk loading radius" for visible map chunks around the player and also a smaller "active chunk radius" for activating machines and entities. For example, that active chunk radius can be 2 chunks less than the chunk loading radius. You can test it with a minecart on a long straight track, in a part of the server where there are no other players (put down some powered rails every 8 blocks to keep the minecart moving) - stand still, push the Minecart away from you, and watch how far the minecart moves along the track before it stops moving. Use F9 to see the chunk boundaries, or place down signs along the track. Depending on your server settings, the minecart will move maybe 3, 4, 5 or 6 chunks away from you before suddenly seeming to "freeze" although you can still see it OK. Move closer to it, crossing the chunk boundary, and the Minecart will start moving again, it will move 16 more blocks before "freezing" again. It's all because the minecart moves out of the active chunk radius, but it's still inside the view distance. Like everything else with actions in Minecraft, the sealers (and all the power and oxygen feeding them) need to be inside that "active chunk radius" to work correctly.

If you really need the chunks in your base to be loaded without an ymore hassle, as an alternative you could use a chunk loader mod that loads chunks automatically in an area. (eg. ChickenChunks)

Detecting Leaks with Sensor Glasses

In Galacticraft 4, Sensor Glasses now have the capability to detect oxygen leaks. To see where the leaks are coming from, put on some Sensor Glasses, go to your Oxygen Sealer(s), and you should see a stream of white particles going to the direction of the leak. If you don't have enough Oxygen Sealers for your space, you may see that the stream of particles abruptly end somewhere in the air. In that case, try adding more Oxygen Sealers.

Warning

Constant updates between sealing and unsealing

If your sealer setup has "only just" enough oxygen or "only just" enough power to keep the sealers running, then probably some of the time some of the sealers will run out of oxygen or power - in which case obviously they will stop working! If a sealer stops working, then maybe your space will become unsealed. When it becomes unsealed, the sealers stop using so much oxygen, which maybe gives your system enough for all the sealers to start working again and re-seal the space. This is not a good arrangement. It can make for LAG on a server because switching a large room between sealed and unsealed is a lot of work for a server.

It's up to players to make sure that any build with sealers has enough power and oxygen that it works properly. For the future, the developers are looking at ways to penalise builds which do not do this correctly, for example by having the sealers self-disable for a while.

Chunk loading issues

Sealers can only work properly if they, and the power and oxygen systems which feed them, are properly chunk-loaded - meaning inside the "active chunks" radius (see above: normally on servers the active chunks radius is 32 blocks less than the chunk loading view radius).

Some players route their oxygen and power for sealers around the edge of their bases, meaning that the crucial oxygen pipes or power conduits could be on the far side from the player (so maybe not chunk loaded all the time?).

Some other mods power systems are not as well-coded as Galacticraft and do not perform robustly and sensibly when chunks are loaded in a random order. Be especially wary if you are using sealers with power systems from other mods.

A great way to test whether chunk loading issues are affecting your build is to place Infinite Oxygen and Infinite Battery items in every Oxygen Sealer. Test whether the space stays sealed properly as you move around, and leave the area and return. If it does, then the sealers themselves are working properly and it is your power or oxygen delivery systems which need work.