Difference between revisions of "Sealed space"

From Galacticraft Wiki
Jump to: navigation, search
m (Ezer'Arch moved page Sealed Space to Sealed space: Unnecessary capitalization)
(No difference)

Revision as of 17:53, 14 February 2017

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, 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 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.

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, 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 (for example, Energy Storage Cluster + Oxygen Storage Module), and their wires and pipes, all in the same chunk as the sealer. If you need 2 or more sealers to make your base sealed, all the sealers should best be in the same chunk, otherwise you might have times when only half of them are loaded, which might not be enough and so your whole base will unseal. 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.

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 but it depends a lot on how the server is set up, there are several settings for this and also optimisations in Spigot, Bukkit, 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 need to be inside that "active chunk radius" to work correctly.

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.

Future possibilities

It has been suggested that Galacticraft should have an item to detect where the leak is, in a space which is not sealing correctly. That's a great idea, but it is hard for the developers to implement and will not be seen in the near future - perhaps in a future version of Galacticraft!