Added a timer API to common LUA scripts

Integrated status messages
- escape characters leaking from lang files
- cycle status message lines in LUA scripts
- any missing requirement should be red
- give explicit jump abort message
- reduce language message duplication
- short jump shouldn't be reporting a collision
- block-state leaking in collision guide message, use translated block name instead
- use same prefix for status and ship guide broadcasts
- preserve format on line breaks in ship guide broadcasts
- ship mass and volume displayed backward
This commit is contained in:
Unknown 2019-05-04 19:51:38 +02:00 committed by unknown
parent 13551fe9a6
commit 2dce824a1c
21 changed files with 860 additions and 671 deletions

View file

@ -153,6 +153,7 @@ public class Commons {
public static Style styleCommand = new Style().setColor(TextFormatting.AQUA);
public static Style styleHeader = new Style().setColor(TextFormatting.GOLD);
public static Style styleCorrect = new Style().setColor(TextFormatting.GREEN);
public static Style styleNormal = new Style().setColor(TextFormatting.WHITE);
public static Style styleWarning = new Style().setColor(TextFormatting.RED);
public static Style styleValue = new Style().setColor(TextFormatting.YELLOW);
public static Style styleVoltage = new Style().setColor(TextFormatting.DARK_GREEN);
@ -193,8 +194,24 @@ public class Commons {
}
final String[] lines = updateEscapeCodes(message).split("\n");
String formatNextLine = "";
for (final String line : lines) {
commandSender.sendMessage(new TextComponentString(line));
commandSender.sendMessage(new TextComponentString(formatNextLine + line));
// compute remaining format
int index = 0;
while (index < line.length()) {
if (line.charAt(index) == (char) 167 && index + 1 < line.length()) {
index++;
final char charFormat = line.charAt(index);
if (charFormat == 'r') {
formatNextLine = CHAR_FORMATTING + charFormat;
} else {
formatNextLine += CHAR_FORMATTING + charFormat;
}
}
index++;
}
}
// logger.info(message);
@ -392,7 +409,22 @@ public class Commons {
stringNBT);
}
public static String sanitizeFileName(final String name) {
public static String format(@Nonnull final IBlockState blockState, @Nonnull final World world, @Nonnull final BlockPos blockPos) {
final Block block = blockState.getBlock();
try {
final ItemStack itemStack = block.getPickBlock(blockState, null, world, blockPos, null);
return new WarpDriveText(null, itemStack.getTranslationKey() + ".name").getFormattedText();
} catch (final Exception exception1) {
try {
return new WarpDriveText(null, block.getTranslationKey() + ".name").getFormattedText();
} catch (final Exception exception2) {
return blockState.toString();
}
}
}
@Nonnull
public static String sanitizeFileName(@Nonnull final String name) {
return name.replace("/", "")
.replace(".", "")
.replace(":", "")
@ -857,17 +889,17 @@ public class Commons {
public static void messageToAllPlayersInArea(@Nonnull final IStarMapRegistryTileEntity tileEntity, @Nonnull final WarpDriveText textComponent) {
assert tileEntity instanceof TileEntity;
final AxisAlignedBB starMapArea = tileEntity.getStarMapArea();
final ITextComponent messageFormatted = Commons.getChatPrefix(tileEntity.getStarMapName())
final WarpDriveText messagePrefixed = Commons.getChatPrefix(tileEntity.getStarMapName())
.appendSibling(textComponent);
WarpDrive.logger.info(String.format("%s messageToAllPlayersOnShip: %s",
WarpDrive.logger.info(String.format("%s messageToAllPlayersInArea: %s",
tileEntity, textComponent.getFormattedText()));
for (final EntityPlayer entityPlayer : ((TileEntity) tileEntity).getWorld().playerEntities) {
if (!entityPlayer.getEntityBoundingBox().intersects(starMapArea)) {
continue;
}
Commons.addChatMessage(entityPlayer, messageFormatted);
Commons.addChatMessage(entityPlayer, messagePrefixed);
}
}

View file

@ -80,4 +80,8 @@ public class WarpDriveText extends TextComponentBase {
appendSibling(textComponent);
return this;
}
public WarpDriveText appendSibling(final WarpDriveText textComponent) {
return (WarpDriveText) super.appendSibling(textComponent);
}
}

View file

@ -674,7 +674,7 @@ public class TileEntityShipScanner extends TileEntityAbstractMachine implements
}
final WarpDriveText reason = new WarpDriveText();
final boolean success = scanShip(reason);
return new Object[] { success, 3, reason.getUnformattedText() };
return new Object[] { success, 3, Commons.removeFormatting( reason.getUnformattedText() ) };
}
private Object[] filename() {
@ -717,7 +717,7 @@ public class TileEntityShipScanner extends TileEntityAbstractMachine implements
playerName = "";
}
/**/
return new Object[] { result, reason.getUnformattedText() };
return new Object[] { result, Commons.removeFormatting( reason.getUnformattedText() ) };
}
private Object[] state() {
@ -823,7 +823,7 @@ public class TileEntityShipScanner extends TileEntityAbstractMachine implements
}
shipToken_countWarmup--;
if (shipToken_countWarmup > 0) {
Commons.addChatMessage(entityPlayer, new WarpDriveText(null, "warpdrive.builder.guide.ship_materialization_countdown",
Commons.addChatMessage(entityPlayer, new WarpDriveText(Commons.styleNormal, "warpdrive.builder.guide.ship_materialization_countdown",
shipToken_nameSchematic, shipToken_countWarmup));
return;
}

View file

@ -449,7 +449,7 @@ public class TileEntityCloakingCore extends TileEntityAbstractEnergyConsumer {
if (!isValid) {
textStatus = textValidityIssues;
} else if (!isEnabled) {
textStatus = new WarpDriveText(null, "warpdrive.cloaking_core.disabled",
textStatus = new WarpDriveText(Commons.styleNormal, "warpdrive.cloaking_core.disabled",
isFullyTransparent ? 2 : 1,
volume);
} else if (!isCloaking) {
@ -477,7 +477,7 @@ public class TileEntityCloakingCore extends TileEntityAbstractEnergyConsumer {
@Override
public Object[] isAssemblyValid() {
if (!isValid) {
return new Object[] { false, Commons.removeFormatting(textValidityIssues.getUnformattedText()) };
return new Object[] { false, Commons.removeFormatting( textValidityIssues.getUnformattedText() ) };
}
return super.isAssemblyValid();
}

View file

@ -997,7 +997,7 @@ public class TileEntityForceFieldProjector extends TileEntityAbstractForceField
final EnumForceFieldShape enumForceFieldShape = getShape();
final WarpDriveText displayName = new WarpDriveText(null, "warpdrive.force_field.shape.status_line." + enumForceFieldShape.getName());
if (enumForceFieldShape == EnumForceFieldShape.NONE) {
return new WarpDriveText(null, "warpdrive.force_field.shape.status_line.none",
return new WarpDriveText(Commons.styleWarning, "warpdrive.force_field.shape.status_line.none",
displayName);
} else if (isDoubleSided) {
return new WarpDriveText(null, "warpdrive.force_field.shape.status_line.double",

View file

@ -47,7 +47,7 @@ public class TileEntityForceFieldRelay extends TileEntityAbstractForceField impl
final EnumForceFieldUpgrade enumForceFieldUpgrade = getUpgrade();
final ITextComponent strDisplayName = new TextComponentTranslation("warpdrive.force_field.upgrade.status_line." + enumForceFieldUpgrade.getName());
if (enumForceFieldUpgrade == EnumForceFieldUpgrade.NONE) {
return new WarpDriveText(null,"warpdrive.upgrade.status_line.none",
return new WarpDriveText(Commons.styleWarning,"warpdrive.upgrade.status_line.none",
strDisplayName);
} else {
return new WarpDriveText(Commons.styleCorrect,"warpdrive.upgrade.status_line.valid",

View file

@ -165,8 +165,7 @@ public class TileEntityShipCore extends TileEntityAbstractShipController impleme
// report coo down time when a command is requested
if ( isEnabled
&& isCommandConfirmed
&& enumShipCommand != EnumShipCommand.IDLE
&& enumShipCommand != EnumShipCommand.MAINTENANCE ) {
&& enumShipCommand.isMovement() ) {
if (ticksCooldown % 20 == 0) {
final int seconds = ticksCooldown / 20;
if (!isCooldownReported || (seconds < 5) || ((seconds < 30) && (seconds % 5 == 0)) || (seconds % 10 == 0)) {
@ -316,8 +315,7 @@ public class TileEntityShipCore extends TileEntityAbstractShipController impleme
switch (stateCurrent) {
case IDLE:
if ( isCommandConfirmed
&& enumShipCommand != EnumShipCommand.IDLE
&& enumShipCommand != EnumShipCommand.MAINTENANCE ) {
&& enumShipCommand.isMovement() ) {
commandCurrent = enumShipCommand;
stateCurrent = EnumShipCoreState.ONLINE;
/*
@ -529,8 +527,15 @@ public class TileEntityShipCore extends TileEntityAbstractShipController impleme
}
@Override
protected void commandDone(final boolean success, @Nonnull final WarpDriveText reason) {
assert success || !reason.getUnformattedText().isEmpty();
protected void commandDone(final boolean success, @Nonnull final WarpDriveText reasonRaw) {
assert success || !reasonRaw.getUnformattedText().isEmpty();
final WarpDriveText reason;
if (success || !commandCurrent.isMovement()) {
reason = reasonRaw;
} else {
reason = new WarpDriveText(Commons.styleWarning, "warpdrive.ship.guide.movement_aborted")
.append(reasonRaw);
}
super.commandDone(success, reason);
if (!success) {
Commons.messageToAllPlayersInArea(this, reason);
@ -1233,7 +1238,7 @@ public class TileEntityShipCore extends TileEntityAbstractShipController impleme
@Override
public Object[] isAssemblyValid() {
if (!isValid) {
return new Object[] { false, reasonInvalid.getUnformattedText() };
return new Object[] { false, Commons.removeFormatting( reasonInvalid.getUnformattedText() ) };
}
return super.isAssemblyValid();
}

View file

@ -7,16 +7,17 @@ import net.minecraft.util.IStringSerializable;
public enum EnumShipCommand implements IStringSerializable {
OFFLINE ("offline"), // Offline allows to move sub-ships
IDLE ("idle"), //
MANUAL ("manual"), // Move ship around including take off and landing
// AUTOPILOT("autopilot"), // Move ship towards a far destination
// SUMMON ("summon"), // Summoning crew
HYPERDRIVE ("hyperdrive"), // Jump to/from Hyperspace
GATE ("gate"), // Jump via jumpgate
MAINTENANCE ("maintenance"); // Maintenance mode
OFFLINE ("offline" , false), // Offline allows to move overlapping ships
IDLE ("idle" , false), //
MANUAL ("manual" , true ), // Move ship around including take off and landing
// AUTOPILOT("autopilot" , true ), // Move ship towards a far destination
// SUMMON ("summon" , false), // Summoning crew
HYPERDRIVE ("hyperdrive" , true ), // Jump to/from Hyperspace
GATE ("gate" , true ), // Jump via jumpgate
MAINTENANCE ("maintenance" , false); // Maintenance mode
private final String name;
private final boolean isMovement;
// cached values
public static final int length;
@ -29,8 +30,9 @@ public enum EnumShipCommand implements IStringSerializable {
}
}
EnumShipCommand(final String name) {
EnumShipCommand(@Nonnull final String name, final boolean isMovement) {
this.name = name;
this.isMovement = isMovement;
}
public static EnumShipCommand get(final int damage) {
@ -42,4 +44,8 @@ public enum EnumShipCommand implements IStringSerializable {
public String getName() {
return name;
}
public boolean isMovement() {
return isMovement;
}
}

View file

@ -28,7 +28,6 @@ import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.BlockPos.MutableBlockPos;
import net.minecraft.util.text.ITextComponent;
import net.minecraft.util.text.TextComponentString;
import net.minecraft.world.World;
import net.minecraftforge.common.util.Constants;
@ -291,8 +290,8 @@ public class JumpShip {
}
public void messageToAllPlayersOnShip(final WarpDriveText textComponent) {
final ITextComponent messageFormatted = new TextComponentString((shipCore != null && !shipCore.name.isEmpty()) ? shipCore.name + " " : "ShipCore ").setStyle(Commons.styleHeader)
.appendSibling(textComponent);
final String name = (shipCore != null && !shipCore.name.isEmpty()) ? shipCore.name : "ShipCore";
final ITextComponent messageFormatted = Commons.getNamedPrefix(name).appendSibling(textComponent);
if (entitiesOnShip == null) {
// entities not saved yet, get them now
final WarpDriveText reason = new WarpDriveText();
@ -567,7 +566,7 @@ public class JumpShip {
actualMass = newMass;
} catch (final Exception exception) {
exception.printStackTrace();
final WarpDriveText textComponent = new WarpDriveText(Commons.styleWarning, "warpdrive.ship.guide.corrupted_block",
final WarpDriveText textComponent = new WarpDriveText(Commons.styleWarning, "warpdrive.ship.guide.save_exception",
Commons.format(world, blockPos));
WarpDrive.logger.error(textComponent.getUnformattedText());
reason.appendSibling(textComponent);

View file

@ -171,7 +171,14 @@ public class JumpSequencer extends AbstractSequencer {
register();
}
public void disableAndMessage(final boolean isSuccessful, final WarpDriveText reason) {
public void disableAndMessage(final boolean isSuccessful, final WarpDriveText reasonRaw) {
final WarpDriveText reason;
if (isSuccessful) {
reason = reasonRaw;
} else {
reason = new WarpDriveText(Commons.styleWarning, "warpdrive.ship.guide.movement_aborted")
.append(reasonRaw);
}
disable(isSuccessful, reason);
ship.messageToAllPlayersOnShip(reason);
}
@ -373,7 +380,7 @@ public class JumpSequencer extends AbstractSequencer {
for (int z = minZ; z <= maxZ; z++) {
chunkCount++;
if (chunkCount > sourceWorldTicket.getMaxChunkListDepth()) {
reason.append(Commons.styleWarning, "warpdrive.ship.guide.too_many_source_chunks_to_load",
reason.append(Commons.styleWarning, "warpdrive.ship.guide.too_many_chunks_to_load",
(maxX - minX + 1) * (maxZ - minZ + 1),
sourceWorldTicket.getMaxChunkListDepth());
reason.append(Commons.styleCommand, "warpdrive.ship.guide.max_chunkloading");
@ -409,7 +416,7 @@ public class JumpSequencer extends AbstractSequencer {
for (int z = minZ; z <= maxZ; z++) {
chunkCount++;
if (chunkCount > targetWorldTicket.getMaxChunkListDepth()) {
reason.append(Commons.styleWarning, "warpdrive.ship.guide.too_many_target_chunks_to_load",
reason.append(Commons.styleWarning, "warpdrive.ship.guide.too_many_chunks_to_load",
(maxX - minX + 1) * (maxZ - minZ + 1),
targetWorldTicket.getMaxChunkListDepth());
reason.append(Commons.styleCommand, "warpdrive.ship.guide.max_chunkloading");
@ -692,9 +699,12 @@ public class JumpSequencer extends AbstractSequencer {
doCollisionDamage(false);
// cancel jump
final WarpDriveText textOverlapping = new WarpDriveText(Commons.styleWarning, "warpdrive.ship.guide.overlapping_source_and_target");
final WarpDriveText textComponent;
if (firstAdjustmentReason.isEmpty()) {
textComponent = new WarpDriveText(Commons.styleWarning, "warpdrive.ship.guide.overlapping_source_and_target");
textComponent = textOverlapping;
} else if (firstAdjustmentReason.getUnformattedText().equals(textOverlapping.getUnformattedText())) {
textComponent = firstAdjustmentReason;
} else {
textComponent = firstAdjustmentReason.append(Commons.styleWarning, "warpdrive.ship.guide.not_enough_space_after_adjustment");
}
@ -728,7 +738,6 @@ public class JumpSequencer extends AbstractSequencer {
final CheckMovementResult checkMovementResult = checkCollisionAndProtection(transformation, true,
"target", new VectorI(0, 0, 0));
if (checkMovementResult != null) {
checkMovementResult.reason.append(Commons.styleWarning, "warpdrive.ship.guide.jump_aborted");
disableAndMessage(false, checkMovementResult.reason);
LocalProfiler.stop();
return;
@ -847,7 +856,7 @@ public class JumpSequencer extends AbstractSequencer {
final double distanceSquared = celestialObject.getSquareDistanceInParent(sourceWorld.provider.getDimension(), ship.core.getX(), ship.core.getZ());
if (distanceSquared > 0.0D) {
final AxisAlignedBB axisAlignedBB = celestialObject.getAreaInParent();
reason.append(Commons.styleWarning, "warpdrive.ship.guide.no_star_system_in_hyperspace",
reason.append(Commons.styleWarning, "warpdrive.ship.guide.no_star_system_in_range",
(int) Math.sqrt(distanceSquared),
(int) axisAlignedBB.minX, (int) axisAlignedBB.minY, (int) axisAlignedBB.minZ,
(int) axisAlignedBB.maxX, (int) axisAlignedBB.maxY, (int) axisAlignedBB.maxZ);
@ -862,7 +871,7 @@ public class JumpSequencer extends AbstractSequencer {
targetWorld = server.getWorld(dimensionIdSpace);
} catch (final Exception exception) {
exception.printStackTrace();
reason.append(Commons.styleWarning, "warpdrive.ship.guide.unable_to_load_space_dimension",
reason.append(Commons.styleWarning, "warpdrive.ship.guide.exception_loading_dimension",
dimensionIdSpace);
return false;
}
@ -891,7 +900,7 @@ public class JumpSequencer extends AbstractSequencer {
targetWorld = server.getWorld(dimensionIdHyperspace);
} catch (final Exception exception) {
exception.printStackTrace();
reason.append(Commons.styleWarning, "warpdrive.ship.guide.unable_to_load_hyperspace_dimension",
reason.append(Commons.styleWarning, "warpdrive.ship.guide.exception_loading_dimension",
dimensionIdHyperspace);
return false;
}
@ -930,7 +939,7 @@ public class JumpSequencer extends AbstractSequencer {
targetWorld = server.getWorld(dimensionIdSpace);
} catch (final Exception exception) {
exception.printStackTrace();
reason.append(Commons.styleWarning, "warpdrive.ship.guide.unable_to_load_space_dimension",
reason.append(Commons.styleWarning, "warpdrive.ship.guide.exception_loading_dimension",
dimensionIdSpace);
return false;
}
@ -976,7 +985,7 @@ public class JumpSequencer extends AbstractSequencer {
targetWorld = server.getWorld(celestialObject.dimensionId);
} catch (final Exception exception) {
exception.printStackTrace();
reason.append(Commons.styleWarning, "warpdrive.ship.guide.unable_to_land_invalid_id",
reason.append(Commons.styleWarning, "warpdrive.ship.guide.exception_loading_dimension",
celestialObject.getDisplayName(), celestialObject.dimensionId);
return false;
}
@ -1526,16 +1535,36 @@ public class JumpSequencer extends AbstractSequencer {
BlockPos blockPosTarget;
final BlockPos blockPosCoreAtTarget = transformation.apply(ship.core.getX(), ship.core.getY(), ship.core.getZ());
// post event allowing other mods to do their own checks
// validate positions aren't overlapping
final AxisAlignedBB aabbSource = new AxisAlignedBB(
ship.minX, ship.minY, ship.minZ,
ship.maxX, ship.maxY, ship.maxZ);
aabbSource.expand(1.0D, 1.0D, 1.0D);
final BlockPos blockPosMinAtTarget = transformation.apply(ship.minX, ship.minY, ship.minZ);
final BlockPos blockPosMaxAtTarget = transformation.apply(ship.maxX, ship.maxY, ship.maxZ);
final AxisAlignedBB targetAABB = new AxisAlignedBB(
final AxisAlignedBB aabbTarget = new AxisAlignedBB(
blockPosMinAtTarget.getX(), blockPosMinAtTarget.getY(), blockPosMinAtTarget.getZ(),
blockPosMaxAtTarget.getX(), blockPosMaxAtTarget.getY(), blockPosMaxAtTarget.getZ() );
if ( shipMovementType != EnumShipMovementType.INSTANTIATE
&& shipMovementType != EnumShipMovementType.RESTORE
&& !betweenWorlds
&& aabbSource.intersects(aabbTarget) ) {
result.add(ship.core.getX(), ship.core.getY(), ship.core.getZ(),
blockPosCoreAtTarget.getX(),
blockPosCoreAtTarget.getY(),
blockPosCoreAtTarget.getZ(),
false,
new WarpDriveText(Commons.styleWarning, "warpdrive.ship.guide.overlapping_source_and_target") );
return result;
}
// post event allowing other mods to do their own checks
final TargetCheck targetCheck = new TargetCheck(sourceWorld, ship.core,
ship.shipCore, shipMovementType.getName(),
vMovement.x, vMovement.y, vMovement.z,
targetWorld, targetAABB);
targetWorld, aabbTarget);
MinecraftForge.EVENT_BUS.post(targetCheck);
if (targetCheck.isCanceled()) {
result.add(ship.core.getX(), ship.core.getY(), ship.core.getZ(),
@ -1582,7 +1611,8 @@ public class JumpSequencer extends AbstractSequencer {
blockPosTarget.getZ() + 0.5D + offset.z * 0.1D,
true,
new WarpDriveText(Commons.styleWarning, "warpdrive.ship.guide.obstacle_block_detected",
blockStateTarget, blockPosTarget.getX(), blockPosTarget.getY(), blockPosTarget.getZ()) );
Commons.format(blockStateTarget, targetWorld, blockPosTarget),
blockPosTarget.getX(), blockPosTarget.getY(), blockPosTarget.getZ()) );
if (!fullCollisionDetails) {
return result;
} else if (WarpDriveConfig.LOGGING_JUMP) {

View file

@ -618,7 +618,7 @@ tile.warpdrive.hull.superior.stairs.black.name=Schwarze überlegene Treppe
warpdrive.guide.prefix=%1$s:
warpdrive.error.bad_tile_entity=§cDieser Block benötigt ein Update, durch zerstören und neu setzen.
warpdrive.error.bad_tile_entity=Dieser Block benötigt ein Update, durch zerstören und neu setzen.
warpdrive.error.internal_check_console=Internal error, check console for details
warpdrive.command.invalid_parameter=Invalid parameter %1$s
@ -652,15 +652,15 @@ warpdrive.beam_frequency.tooltip=Strahlfrequenz auf %1$d gestellt
warpdrive.beam_frequency.get=Strahlfrequenz %2$d wurde von %1$s abgerufen
warpdrive.beam_frequency.set=%1$s ist jetzt mit Strahlfrequenz %2$d verknüpft
warpdrive.beam_frequency.status_line.valid=Strahlfrequenz %1$d ist gültig.
warpdrive.beam_frequency.status_line.invalid=§cStrahlfrequenz %1$d ist ungültig.
warpdrive.beam_frequency.status_line.undefined=§7Undefinierte Strahlfrequenz.\n§bNutze eine Stimmgabel§f um die Strahlfrequenz festzulegen.
warpdrive.beam_frequency.status_line.invalid=Strahlfrequenz %1$d ist ungültig.
warpdrive.beam_frequency.status_line.undefined=Undefinierte Strahlfrequenz.\n§bNutze eine Stimmgabel§f um die Strahlfrequenz festzulegen.
warpdrive.control_channel.tooltip=Steuerungskanal auf %1$d gestellt
warpdrive.control_channel.get=Steuerungskanal %2$d wurde von %1$s abgerufen
warpdrive.control_channel.set=%1$s ist jetzt auf Steuerungskanal %2$d gestellt
warpdrive.control_channel.status_line.valid=Steuerungskanal %1$d ist gültig.
warpdrive.control_channel.status_line.invalid=§cSteuerungskanal %1$d ist ungültig.
warpdrive.control_channel.status_line.undefined=§7Nicht definierter Steuerungskanal.\n§bNutze eine Stimmgabel§r um ihn einzustellen.
warpdrive.control_channel.status_line.invalid=Steuerungskanal %1$d ist ungültig.
warpdrive.control_channel.status_line.undefined=Nicht definierter Steuerungskanal.\n§bNutze eine Stimmgabel§r um ihn einzustellen.
warpdrive.is_enabled.set.enabled=Switched ON!
warpdrive.is_enabled.set.disabled=Switched off!
@ -669,20 +669,20 @@ warpdrive.tooltip.item_tag.breathing_helmet=§bRaumatmung§r verbraucht Luftkani
warpdrive.tooltip.item_tag.fly_in_space=§bRaumtaugliches Jetpack§r.
warpdrive.tooltip.item_tag.no_fall_damage=§bAbsorbiert Fallschaden§r.
warpdrive.upgrade.result.no_upgrade_to_dismount=§cKein Upgrade zum deinstallieren vorhanden.
warpdrive.upgrade.result.not_enough_upgrades=§cDu brauchst mindestens 1 Item um diesen Block aufzuwerten.
warpdrive.upgrade.result.invalid_upgrade=§cDies ist kein gültiges Item, um diesen Block upzugraden.
warpdrive.upgrade.result.invalid_upgrade_for_projector=§cDieses Upgrade ist zu groß für einen Projektor. Nutze ein Relais.
warpdrive.upgrade.result.invalid_upgrade_for_relay=§cDieses Upgrade funktioniert nur bei Projektoren!
warpdrive.upgrade.result.no_upgrade_to_dismount=Kein Upgrade zum deinstallieren vorhanden.
warpdrive.upgrade.result.not_enough_upgrades=Du brauchst mindestens 1 Item um diesen Block aufzuwerten.
warpdrive.upgrade.result.invalid_upgrade=Dies ist kein gültiges Item, um diesen Block upzugraden.
warpdrive.upgrade.result.invalid_upgrade_for_projector=Dieses Upgrade ist zu groß für einen Projektor. Nutze ein Relais.
warpdrive.upgrade.result.invalid_upgrade_for_relay=Dieses Upgrade funktioniert nur bei Projektoren!
warpdrive.upgrade.result.valid_upgrades=Gültige Upgrades für diesen Block sind: %1$s. @TODO noch nicht implementiert
warpdrive.upgrade.result.too_many_upgrades=§cEs sind schon %1$d Upgrades installiert.
warpdrive.upgrade.result.too_many_upgrades=Es sind schon %1$d Upgrades installiert.
warpdrive.upgrade.result.dismounted=Upgrade %1$s erfolgreich deinstalliert.
warpdrive.upgrade.result.mounted=Upgrade %1$s erfolgreich installiert.
warpdrive.upgrade.result.wrong_shape_side=§cAuf dieser Seite gibt es keinen Elektromagnetischen Projektor.
warpdrive.upgrade.result.no_shape_to_dismount=§cKeine Form zum deinstallieren vorhanden.
warpdrive.upgrade.result.not_enough_shapes.double=§cDu brauchst mindestens 2 Items um einen doppelseitigen Projektor einzustellen.
warpdrive.upgrade.result.not_enough_shapes.single=§cDu brauchst mindestens 1 Item um einen einseitigen Projektor einzustellen.
warpdrive.upgrade.result.wrong_shape_side=Auf dieser Seite gibt es keinen Elektromagnetischen Projektor.
warpdrive.upgrade.result.no_shape_to_dismount=Keine Form zum deinstallieren vorhanden.
warpdrive.upgrade.result.not_enough_shapes.double=Du brauchst mindestens 2 Items um einen doppelseitigen Projektor einzustellen.
warpdrive.upgrade.result.not_enough_shapes.single=Du brauchst mindestens 1 Item um einen einseitigen Projektor einzustellen.
warpdrive.upgrade.result.shape_dismounted=Form erfolgreich deinstalliert.
warpdrive.upgrade.result.shape_mounted=Form erfolgreich installiert.
@ -694,9 +694,9 @@ warpdrive.video_channel.get=Videokanal %2$d wurde von %1$s abgerufen
warpdrive.video_channel.set=%1$s ist jetzt auf Videokanal %2$d gestellt
warpdrive.video_channel.status_line.valid_self=Videokanal %1$d ist gültig.
warpdrive.video_channel.status_line.valid_other=Videokanal %1$d ist gültig für die Kamera bei %2$s.
warpdrive.video_channel.status_line.invalid=§cVideokanal %1$d ist ungültig.
warpdrive.video_channel.status_line.not_loaded=§cVideokanal %1$d ist ungültig oder die Kamera ist zu weit weg!
warpdrive.video_channel.status_line.undefined=§7Nicht definierter Videokanal.\n§bNutze eine Stimmgabel§r um ihn einzustellen.
warpdrive.video_channel.status_line.invalid=Videokanal %1$d ist ungültig.
warpdrive.video_channel.status_line.not_loaded=Videokanal %1$d ist ungültig oder die Kamera ist zu weit weg!
warpdrive.video_channel.status_line.undefined=Nicht definierter Videokanal.\n§bNutze eine Stimmgabel§r um ihn einzustellen.
warpdrive.accelerator.guide.low_power.not_enough_storage=Energiespeicher zu klein; wir brauchen mindestens %1$d um den Betrieb fortzusetzen, können aber nur %2$d speichern.
@ -735,7 +735,7 @@ warpdrive.cloaking_core.missing_channeling_coils=Integrity down to %1$d%%: missi
warpdrive.cloaking_core.missing_projecting_coils=Integrity down to %1$d%%: missing projecting coil(s) towards %2$s !!!
warpdrive.cloaking_core.valid=System is valid !!!
warpdrive.cloaking_core.disabled=Tarnfeld ist deaktiviert!
warpdrive.cloaking_core.low_power=§cTarnfeld ist ausgefallen, wir brauchen mehr Energie, Captain!
warpdrive.cloaking_core.low_power=Tarnfeld ist ausgefallen, wir brauchen mehr Energie, Captain!
warpdrive.cloaking_core.cloaking=Ein Stufe %1$d Tarnfeld überdeckt jetzt %2$d Blöcke!
warpdrive.compat.guide.block_detected_on_board=%1$s detected on board!
@ -752,7 +752,7 @@ warpdrive.energy.side.changed_to_disabled=%1$s Seite auf Deaktiviert gestellt!
warpdrive.force_field.guide.low_power=Uns geht die Energie aus, Captain. Verringere unseren Energieverbrauch oder hol den schottischen Ingenieur!
warpdrive.force_field.shape.status_line.none=§cForm ist nicht definiert
warpdrive.force_field.shape.status_line.none=Form ist nicht definiert
warpdrive.force_field.shape.status_line.double=Die Form ist ein(e) volle(r) %1$s
warpdrive.force_field.shape.status_line.single=Die Form ist ein(e) halbe(r) %1$s
warpdrive.force_field.shape.status_line.sphere=Kugel
@ -827,27 +827,29 @@ warpdrive.security_station.guide.registered_players=Verbundene Spieler: %1$s
warpdrive.security_station.guide.player_registered=You're now registered on this security station.\nRegistered players are %1$s
warpdrive.security_station.guide.player_unregistered=You've been unregistered from this security station.\nAttached players are %1$s
# Note for translators: you want to keep each line shorter than 50 characters so that it fits on computer screens.
warpdrive.ship.guide.cooling_countdown=Ship core is cooling down... %1$d s to go...
warpdrive.ship.guide.pre_jumping=Running pre-jump checklist...
warpdrive.ship.guide.warming_up=Ship core is warming up... %1$d s to go...
warpdrive.ship.guide.insufficient_energy=Jump aborted! Insufficient energy in core.
warpdrive.ship.guide.warp_field_overlapping=Jump aborted! Own warp field contains another ship. Disable other core to continue.
warpdrive.ship.guide.cloaking_field_overlapping=Jump aborted! Core is cloaked, disable cloak to continue!
warpdrive.ship.guide.movement_aborted=Movement aborted!
warpdrive.ship.guide.insufficient_energy=Insufficient energy in core.
warpdrive.ship.guide.warp_field_overlapping=Own warp field contains another ship.\nDisable other core to continue.
warpdrive.ship.guide.cloaking_field_overlapping=Core is cloaked.\nDisable cloak to continue.
warpdrive.ship.guide.pre_jump_success=Ok
warpdrive.ship.guide.too_large_side_for_tier=Error: ship is too large (max is %1$d per side)\nUpgrade ship core or reduce span!
warpdrive.ship.guide.too_much_mass_for_planet=Ship is too big for a planet (max is %1$d blocks while ship mass is %2$d blocks).\nReduce your mass!
warpdrive.ship.guide.insufficient_mass_for_tier=Ship is too small for its category (%2$d < %1$d).\nDowngrade your ship core or increase your mass!
warpdrive.ship.guide.too_much_mass_for_tier=Ship is too big for its category (%2$d > %1$d).\nUpgrade your ship core or reduce your mass!
warpdrive.ship.guide.insufficient_mass_for_hyperspace=Ship is too small to engage Alcubierre drive (%1$d/%2$d).\nIncrease your mass to reach hyperspace.
warpdrive.ship.guide.jumpgate_is_too_far=Ship is not inside a jumpgate. Jump rejected.
warpdrive.ship.guide.jumpgate_partially_entered=Ship is only %.1f%% inside a jumpgate. Sorry, we'll loose too much crew as is, jump rejected.
warpdrive.ship.guide.jumpgate_not_defined=Destination jumpgate '%1$s' is unknown. Check jumpgate name.
warpdrive.ship.guide.jumpgate_blocked=Destination gate is blocked by obstacles. Aborting...
warpdrive.ship.guide.target_outside_planet_border=Target ship position is outside planet border, unable to jump!\nWorld borders are (%1$d %2$d %3$d) to (%4$d %5$d %6$d).
warpdrive.ship.guide.too_large_side_for_tier=Ship is too large, max is %1$d per side.\nUpgrade ship core or reduce span.
warpdrive.ship.guide.too_much_mass_for_planet=Ship is too big for a planet.\nReduce your mass below %1$d blocks.
warpdrive.ship.guide.insufficient_mass_for_tier=Ship is too small, min is %1$d block.\nDowngrade ship core or increase mass.
warpdrive.ship.guide.too_much_mass_for_tier=Ship is too big, max is %1$d blocks.\nUpgrade ship core or reduce your mass.
warpdrive.ship.guide.insufficient_mass_for_hyperspace=Ship is too small to engage Alcubierre drive.\nIncrease your mass to %2$d.
warpdrive.ship.guide.jumpgate_is_too_far=Ship is not inside a jumpgate.
warpdrive.ship.guide.jumpgate_partially_entered=Ship is only %.1f%% inside a jumpgate.\nSorry, we'll loose too much crew as is.
warpdrive.ship.guide.jumpgate_not_defined=Destination jumpgate '%1$s' is unknown.
warpdrive.ship.guide.jumpgate_blocked=Destination gate is blocked by obstacles.
warpdrive.ship.guide.target_outside_planet_border=Target position is outside planet border!\nWorld borders are (%1$d %2$d %3$d) to (%4$d %5$d %6$d).
warpdrive.ship.guide.invalid_y_coordinates=Invalid Y coordinate(s), check ship dimensions...
warpdrive.ship.guide.invalid_state=Invalid state, aborting jump...
warpdrive.ship.guide.overlapping_source_and_target=Jump aborted. Increase jump distance to continue.
warpdrive.ship.guide.not_enough_space_after_adjustment=\nNot enough space after adjustment, jump aborted!
warpdrive.ship.guide.overlapping_source_and_target=Target is too close. Increase jump distance to continue.
warpdrive.ship.guide.not_enough_space_after_adjustment=Not enough space after adjustment.
warpdrive.ship.guide.entering_hyperspace=Entering hyperspace...
warpdrive.ship.guide.leaving_hyperspace=Leaving hyperspace...
warpdrive.ship.guide.engaging_jumpgate_x=Engaging jumpgate towards %1$s!
@ -855,36 +857,32 @@ warpdrive.ship.guide.jumping_xyz=Jumping of %1$d blocks (XYZ %2$d %3$d %4$d)
warpdrive.ship.guide.turning_right=Turning to the right
warpdrive.ship.guide.turning_back=Turning back
warpdrive.ship.guide.turning_left=Turning to the left
warpdrive.ship.guide.anchor_block_detected=Jump aborted by on-board anchor block %1$s at (%2$d %3$d %4$d).
warpdrive.ship.guide.anchor_entity_detected=Anchor entity %1$s detected at (%2$d %3$d %4$d), aborting jump...
warpdrive.ship.guide.block_not_ready_for_jump=Jump aborted by on-board block %1$s at (%2$d %3$d %4$d).
warpdrive.ship.guide.anchor_block_detected=On-board anchor block %1$s detected at (%2$d %3$d %4$d).
warpdrive.ship.guide.anchor_entity_detected=Anchor entity %1$s detected at (%2$d %3$d %4$d).
warpdrive.ship.guide.block_not_ready_for_jump=On-board block %1$s at (%2$d %3$d %4$d) is not ready.
warpdrive.ship.guide.ship_snagged1=Ship snagged by %1$s at (%2$d %3$d %4$d).
warpdrive.ship.guide.ship_snagged2=Sneak right click the ship core to see your ship dimensions, then update your ship dimensions.
warpdrive.ship.guide.corrupted_block=Exception while saving ship, probably a corrupted block %1$s.
warpdrive.ship.guide.chunkloading_rejected_in_source_world=Chunkloading rejected in source world %1$s. Aborting.
warpdrive.ship.guide.too_many_source_chunks_to_load=Ship is extending over %1$d chunks in source world.
warpdrive.ship.guide.max_chunkloading=Max is currently set to %2$d in config/forgeChunkLoading.cfg. Aborting.\nClose the game, change your config/forgeChunkLoading.cfg configuration and try again.
warpdrive.ship.guide.save_exception=Exception while saving ship block %1$s.\nCheck console for details.
warpdrive.ship.guide.chunkloading_rejected_in_source_world=Chunkloading rejected in source world %1$s.
warpdrive.ship.guide.too_many_chunks_to_load=Ship extends over %1$d chunks.\nMax is set to %2$d in config/forgeChunkLoading.cfg.
warpdrive.ship.guide.max_chunkloading=Close the game, update config/forgeChunkLoading.cfg, then try again.
warpdrive.ship.guide.chunkloading_rejected_in_target_world=Chunkloading rejected in target world %s. Aborting.
warpdrive.ship.guide.too_many_target_chunks_to_load=Ship is extending over %1$d chunks in target world.
warpdrive.ship.guide.no_celestial_object_in_hyperspace=No star system exists in %1$s (%2$d), there's nowhere to exit hyperspace!
warpdrive.ship.guide.no_star_system_in_hyperspace=Ship is outside any star system, unable to exit hyperspace!\nClosest start system is ~%1$d m away (%2$d %3$d %4$d) to (%5$d %6$d %7$d).
warpdrive.ship.guide.unable_to_load_space_dimension=Unable to load Space dimension %1$d, aborting jump.
warpdrive.ship.guide.unable_to_reach_hyperspace_from_planet=Unable to reach hyperspace from a planet!
warpdrive.ship.guide.unable_to_reach_hyperspace_no_parent=Unable to reach hyperspace!\nThere's no parent defined for %1$s (%2$d).
warpdrive.ship.guide.unable_to_load_hyperspace_dimension=Unable to load Hyperspace dimension %1$d, aborting jump.
warpdrive.ship.guide.unable_to_reach_space_no_parent=There's no parent defined for %1$s (%2$d), unable to reach space!
warpdrive.ship.guide.unable_to_reach_space_outside_border=Ship is outside planet border, unable to reach space!\nClosest transition area is ~%1$d m away (%2$d %3$d %4$d) to (%5$d %6$d %7$d).
warpdrive.ship.guide.no_celestial_object_in_space=No planet exists in %1$s (%2$d), there's nowhere to land!
warpdrive.ship.guide.unable_to_land_outside_orbit=We're not in orbit of planet, unable to land!\nClosest planet is %1$d m away (%2$d %3$d %4$d) to (%5$d %6$d %7$d).
warpdrive.ship.guide.unable_to_land_virtual_planet=Sorry, we can't go to %1$s. This is a virtual celestial object. It's either a decorative planet or a server misconfiguration.
warpdrive.ship.guide.unable_to_land_invalid_id=Sorry, we can't land on %1$s because dimension %2$d isn't defined. It might be a missing mod or a server misconfiguration.
warpdrive.ship.guide.ship_collision=Ship collision detected around (%1$d %2$d %3$d). Damage report pending...
warpdrive.ship.guide.impassable_block_detected=Impassable %1$s detected at destination (%2$d %3$d %4$d).
warpdrive.ship.guide.no_star_system_in_range=Ship won't survive in deep space.\nClosest star system is ~%1$d m away (%2$d %3$d %4$d) to (%5$d %6$d %7$d).
warpdrive.ship.guide.exception_loading_dimension=Unable to load dimension %1$d.\nCheck console for a missing mod or configuration.
warpdrive.ship.guide.unable_to_reach_hyperspace_from_planet=Unable to engage Alcubierre drive on a planet.\nGet into orbit, then try again.
warpdrive.ship.guide.unable_to_reach_hyperspace_no_parent=Current location has no hyperspace connection.\nThere's no parent defined for %1$s (%2$d).
warpdrive.ship.guide.unable_to_reach_space_no_parent=Current location as no space connection.\nThere's no parent defined for %1$s (%2$d).
warpdrive.ship.guide.unable_to_reach_space_outside_border=Ship is outside planet border.\nClosest transition area is ~%1$d m away (%2$d %3$d %4$d) to (%5$d %6$d %7$d).
warpdrive.ship.guide.no_celestial_object_in_space=There's nowhere to land.\nNo planet exists in %1$s (%2$d).
warpdrive.ship.guide.unable_to_land_outside_orbit=Ship isn't orbiting of planet, unable to land!\nClosest planet is %1$d m away (%2$d %3$d %4$d) to (%5$d %6$d %7$d).
warpdrive.ship.guide.unable_to_land_virtual_planet=Celestial object %1$s is out of reach.\nIt's either a decorative planet or a server misconfiguration.
warpdrive.ship.guide.ship_collision=Collision detected around (%1$d %2$d %3$d).\nSend a maintenance team to check for damages!
warpdrive.ship.guide.impassable_block_detected=Impassable %1$s detected at (%2$d %3$d %4$d).
warpdrive.ship.guide.obstacle_block_detected=Obstacle %1$s detected at (%2$d %3$d %4$d).
warpdrive.ship.guide.entering_protected_area=Ship is entering a protected area at (%1$d %2$d %3$d).
warpdrive.ship.guide.entering_protected_area=Entering protected area at (%1$d %2$d %3$d).
warpdrive.ship.guide.moving_too_high=Ship core is moving too high.
warpdrive.ship.guide.moving_too_low=Ship core is moving too low.
warpdrive.ship.guide.jump_aborted=Jump aborted!
warpdrive.ship.guide.jump_done=Jump done
warpdrive.ship.guide.schematic_not_found=Schematic not found or unknown error reading it: '%1$s'.
warpdrive.ship.guide.schematic_invalid_format=Invalid schematic format: %1$s
@ -895,14 +893,14 @@ warpdrive.ship.status_line.isolation=%1$d aktive Isolations Blöcke bieten %2$s%
warpdrive.teleportation.guide.no_safe_spot=No safe spot found to summon player %1$s
warpdrive.transporter.status_line.from_to=Von (%1$.0f %2$.0f %3$.0f) zu (%4$.0f %5$.0f %6$.0f)
warpdrive.transporter_signature.status_line.invalid=§cNo transporter room linked
warpdrive.transporter_signature.status_line.invalid=No transporter room linked
warpdrive.transporter_signature.status_line.valid=Linked to transporter room %1$s\n§8%2$s
warpdrive.transporter_signature.get_missing=§cTransporter room has no signature yet!
warpdrive.transporter_signature.get_same=§cTransporter beacon is already linked to %1$s.
warpdrive.transporter_signature.get_missing=Transporter room has no signature yet!
warpdrive.transporter_signature.get_same=Transporter beacon is already linked to %1$s.
warpdrive.transporter_signature.get=Transporter beacon is now linked to %1$s.
warpdrive.transporter_signature.set_missing=§cTransporter beacon needs to be linked first!
warpdrive.transporter_signature.set_self=§cTransporter room can't target itself!
warpdrive.transporter_signature.set_same=§cTransporter room is already linked to %1$s.
warpdrive.transporter_signature.set_missing=Transporter beacon needs to be linked first!
warpdrive.transporter_signature.set_self=Transporter room can't target itself!
warpdrive.transporter_signature.set_same=Transporter room is already linked to %1$s.
warpdrive.transporter_signature.set=Transporter room is now linked to %1$s.
warpdrive.world_border.in_range=Proximity alert: world border is only %1$d m away!

View file

@ -230,6 +230,7 @@ tile.warpdrive.machines.laser.name=Laser
tile.warpdrive.machines.laser_medium.basic.name=Basic Laser Medium
tile.warpdrive.machines.laser_medium.advanced.name=Advanced Laser Medium
tile.warpdrive.machines.laser_medium.superior.name=Superior Laser Medium
tile.warpdrive.machines.security_station.name=Security Station
tile.warpdrive.atomic.accelerator_controller.name=Accelerator Controller
@ -614,7 +615,7 @@ tile.warpdrive.hull.superior.stairs.black.name=Black Stained Superior Hull Stair
warpdrive.guide.prefix=%1$s:
warpdrive.error.bad_tile_entity=§cThis block needs an update by breaking and placing it.
warpdrive.error.bad_tile_entity=This block needs an update by breaking and placing it.
warpdrive.error.internal_check_console=Internal error, check console for details
warpdrive.command.invalid_parameter=Invalid parameter %1$s
@ -648,15 +649,15 @@ warpdrive.beam_frequency.tooltip=Beam frequency is set to %1$d
warpdrive.beam_frequency.get=Beam frequency %2$d has been retrieved from %1$s.
warpdrive.beam_frequency.set=%1$s is now aligned with Beam frequency %2$d.
warpdrive.beam_frequency.status_line.valid=Beam frequency %1$d is valid.
warpdrive.beam_frequency.status_line.invalid=§cBeam frequency %1$d is invalid.
warpdrive.beam_frequency.status_line.undefined=§7Undefined beam frequency.\n§bUse a Tuning fork§r to set it.
warpdrive.beam_frequency.status_line.invalid=Beam frequency %1$d is invalid.
warpdrive.beam_frequency.status_line.undefined=Undefined beam frequency.\n§bUse a Tuning fork§r to set it.
warpdrive.control_channel.tooltip=Control channel is set to %1$d
warpdrive.control_channel.get=Control channel %2$d has been retrieved from %1$s.
warpdrive.control_channel.set=%1$s is now tuned with Control channel %2$d.
warpdrive.control_channel.status_line.valid=Control channel %1$d is valid.
warpdrive.control_channel.status_line.invalid=§cControl channel %1$d is invalid.
warpdrive.control_channel.status_line.undefined=§7Undefined Control channel.\n§bUse a Tuning fork§r to set it.
warpdrive.control_channel.status_line.invalid=Control channel %1$d is invalid.
warpdrive.control_channel.status_line.undefined=Undefined Control channel.\n§bUse a Tuning fork§r to set it.
warpdrive.is_enabled.set.enabled=Switched ON!
warpdrive.is_enabled.set.disabled=Switched off!
@ -665,20 +666,20 @@ warpdrive.tooltip.item_tag.breathing_helmet=§bSpace breathing§r consuming Air
warpdrive.tooltip.item_tag.fly_in_space=§bSpace compatible jetpack§r.
warpdrive.tooltip.item_tag.no_fall_damage=§bAbsorbs fall damage§r.
warpdrive.upgrade.result.no_upgrade_to_dismount=§cNo upgrade to dismount.
warpdrive.upgrade.result.not_enough_upgrades=§cYou need at least 1 item to upgrade this block.
warpdrive.upgrade.result.invalid_upgrade=§cThis is not a valid item to upgrade this block.
warpdrive.upgrade.result.invalid_upgrade_for_projector=§cThis upgrade is too big for a projector, use a relay instead.
warpdrive.upgrade.result.invalid_upgrade_for_relay=§cThis upgrade only applies to projectors.
warpdrive.upgrade.result.no_upgrade_to_dismount=No upgrade to dismount.
warpdrive.upgrade.result.not_enough_upgrades=You need at least 1 item to upgrade this block.
warpdrive.upgrade.result.invalid_upgrade=This is not a valid item to upgrade this block.
warpdrive.upgrade.result.invalid_upgrade_for_projector=This upgrade is too big for a projector, use a relay instead.
warpdrive.upgrade.result.invalid_upgrade_for_relay=This upgrade only applies to projectors.
warpdrive.upgrade.result.valid_upgrades=Valid upgrades for this block include: %1$s. @TODO not implemented yet
warpdrive.upgrade.result.too_many_upgrades=§cThere's already %1$d upgrades installed.
warpdrive.upgrade.result.too_many_upgrades=There's already %1$d upgrades installed.
warpdrive.upgrade.result.dismounted=Upgrade %1$s was dismounted successfully.
warpdrive.upgrade.result.mounted=Upgrade %1$s was mounted successfully.
warpdrive.upgrade.result.wrong_shape_side=§cThere's no Electromagnetic projector on this side.
warpdrive.upgrade.result.no_shape_to_dismount=§cNo shape to dismount.
warpdrive.upgrade.result.not_enough_shapes.double=§cYou need at least 2 items to set the shape of a double sided projector.
warpdrive.upgrade.result.not_enough_shapes.single=§cYou need at least 1 item to set the shape of a single sided projector.
warpdrive.upgrade.result.wrong_shape_side=There's no Electromagnetic projector on this side.
warpdrive.upgrade.result.no_shape_to_dismount=No shape to dismount.
warpdrive.upgrade.result.not_enough_shapes.double=You need at least 2 items to set the shape of a double sided projector.
warpdrive.upgrade.result.not_enough_shapes.single=You need at least 1 item to set the shape of a single sided projector.
warpdrive.upgrade.result.shape_dismounted=Shape dismounted successfully.
warpdrive.upgrade.result.shape_mounted=Shape mounted successfully.
@ -690,9 +691,9 @@ warpdrive.video_channel.get=Video channel %2$d has been retrieved from %1$s
warpdrive.video_channel.set=%1$s is now tuned to Video channel %2$d
warpdrive.video_channel.status_line.valid_self=Video channel %1$d is valid.
warpdrive.video_channel.status_line.valid_other=Video channel %1$d is valid for camera at %2$s.
warpdrive.video_channel.status_line.invalid=§cVideo channel %1$d is invalid.
warpdrive.video_channel.status_line.not_loaded=§cVideo channel %1$d is invalid or camera is too far away!
warpdrive.video_channel.status_line.undefined=§7Undefined Video channel.\n§bUse a Tuning fork§r to set it.
warpdrive.video_channel.status_line.invalid=Video channel %1$d is invalid.
warpdrive.video_channel.status_line.not_loaded=Video channel %1$d is invalid or camera is too far away!
warpdrive.video_channel.status_line.undefined=Undefined Video channel.\n§bUse a Tuning fork§r to set it.
warpdrive.accelerator.guide.low_power.not_enough_storage=Energy storage is too low; we need at least %1$d to continue operation but can only store %2$d
@ -731,7 +732,7 @@ warpdrive.cloaking_core.missing_channeling_coils=Integrity down to %1$d%%: missi
warpdrive.cloaking_core.missing_projecting_coils=Integrity down to %1$d%%: missing projecting coil(s) towards %2$s
warpdrive.cloaking_core.valid=System is valid
warpdrive.cloaking_core.disabled=Cloak is disabled
warpdrive.cloaking_core.low_power=§cCloak is down, we need more power Captain!
warpdrive.cloaking_core.low_power=Cloak is down, we need more power Captain!
warpdrive.cloaking_core.cloaking=A tier %1$d cloak is currently covering %2$d blocks!
warpdrive.compat.guide.block_detected_on_board=%1$s detected on board!
@ -748,7 +749,7 @@ warpdrive.energy.side.changed_to_disabled=%1$s side changed to Disabled mode!
warpdrive.force_field.guide.low_power=We're running out of power captain, reduce our consumption or get that scottish engineer to boost our power!
warpdrive.force_field.shape.status_line.none=§cShape isn't defined.
warpdrive.force_field.shape.status_line.none=Shape isn't defined.
warpdrive.force_field.shape.status_line.double=Shape is a full %1$s
warpdrive.force_field.shape.status_line.single=Shape is an half %1$s
warpdrive.force_field.shape.status_line.sphere=sphere
@ -823,27 +824,29 @@ warpdrive.security_station.guide.registered_players=Attached players: %1$s
warpdrive.security_station.guide.player_registered=You're now registered on this security station.\nRegistered players are %1$s
warpdrive.security_station.guide.player_unregistered=You've been unregistered from this security station.\nAttached players are %1$s
# Note for translators: you want to keep each line shorter than 50 characters so that it fits on computer screens.
warpdrive.ship.guide.cooling_countdown=Ship core is cooling down... %1$d s to go...
warpdrive.ship.guide.pre_jumping=Running pre-jump checklist...
warpdrive.ship.guide.warming_up=Ship core is warming up... %1$d s to go...
warpdrive.ship.guide.insufficient_energy=Jump aborted! Insufficient energy in core.
warpdrive.ship.guide.warp_field_overlapping=Jump aborted! Own warp field contains another ship. Disable other core to continue.
warpdrive.ship.guide.cloaking_field_overlapping=Jump aborted! Core is cloaked, disable cloak to continue!
warpdrive.ship.guide.movement_aborted=Movement aborted!
warpdrive.ship.guide.insufficient_energy=Insufficient energy in core.
warpdrive.ship.guide.warp_field_overlapping=Own warp field contains another ship.\nDisable other core to continue.
warpdrive.ship.guide.cloaking_field_overlapping=Core is cloaked.\nDisable cloak to continue.
warpdrive.ship.guide.pre_jump_success=Ok
warpdrive.ship.guide.too_large_side_for_tier=Error: ship is too large (max is %1$d per side)\nUpgrade ship core or reduce span!
warpdrive.ship.guide.too_much_mass_for_planet=Ship is too big for a planet (max is %1$d blocks while ship mass is %2$d blocks).\nReduce your mass!
warpdrive.ship.guide.insufficient_mass_for_tier=Ship is too small for its category (%2$d < %1$d).\nDowngrade your ship core or increase your mass!
warpdrive.ship.guide.too_much_mass_for_tier=Ship is too big for its category (%2$d > %1$d).\nUpgrade your ship core or reduce your mass!
warpdrive.ship.guide.insufficient_mass_for_hyperspace=Ship is too small to engage Alcubierre drive (%1$d/%2$d).\nIncrease your mass to reach hyperspace.
warpdrive.ship.guide.jumpgate_is_too_far=Ship is not inside a jumpgate. Jump rejected.
warpdrive.ship.guide.jumpgate_partially_entered=Ship is only %.1f%% inside a jumpgate. Sorry, we'll loose too much crew as is, jump rejected.
warpdrive.ship.guide.jumpgate_not_defined=Destination jumpgate '%1$s' is unknown. Check jumpgate name.
warpdrive.ship.guide.jumpgate_blocked=Destination gate is blocked by obstacles. Aborting...
warpdrive.ship.guide.target_outside_planet_border=Target ship position is outside planet border, unable to jump!\nWorld borders are (%1$d %2$d %3$d) to (%4$d %5$d %6$d).
warpdrive.ship.guide.too_large_side_for_tier=Ship is too large, max is %1$d per side.\nUpgrade ship core or reduce span.
warpdrive.ship.guide.too_much_mass_for_planet=Ship is too big for a planet.\nReduce your mass below %1$d blocks.
warpdrive.ship.guide.insufficient_mass_for_tier=Ship is too small, min is %1$d block.\nDowngrade ship core or increase mass.
warpdrive.ship.guide.too_much_mass_for_tier=Ship is too big, max is %1$d blocks.\nUpgrade ship core or reduce your mass.
warpdrive.ship.guide.insufficient_mass_for_hyperspace=Ship is too small to engage Alcubierre drive.\nIncrease your mass to %2$d.
warpdrive.ship.guide.jumpgate_is_too_far=Ship is not inside a jumpgate.
warpdrive.ship.guide.jumpgate_partially_entered=Ship is only %.1f%% inside a jumpgate.\nSorry, we'll loose too much crew as is.
warpdrive.ship.guide.jumpgate_not_defined=Destination jumpgate '%1$s' is unknown.
warpdrive.ship.guide.jumpgate_blocked=Destination gate is blocked by obstacles.
warpdrive.ship.guide.target_outside_planet_border=Target position is outside planet border!\nWorld borders are (%1$d %2$d %3$d) to (%4$d %5$d %6$d).
warpdrive.ship.guide.invalid_y_coordinates=Invalid Y coordinate(s), check ship dimensions...
warpdrive.ship.guide.invalid_state=Invalid state, aborting jump...
warpdrive.ship.guide.overlapping_source_and_target=Jump aborted. Increase jump distance to continue.
warpdrive.ship.guide.not_enough_space_after_adjustment=\nNot enough space after adjustment, jump aborted!
warpdrive.ship.guide.overlapping_source_and_target=Target is too close. Increase jump distance to continue.
warpdrive.ship.guide.not_enough_space_after_adjustment=Not enough space after adjustment.
warpdrive.ship.guide.entering_hyperspace=Entering hyperspace...
warpdrive.ship.guide.leaving_hyperspace=Leaving hyperspace...
warpdrive.ship.guide.engaging_jumpgate_x=Engaging jumpgate towards %1$s!
@ -851,38 +854,34 @@ warpdrive.ship.guide.jumping_xyz=Jumping of %1$d blocks (XYZ %2$d %3$d %4$d)
warpdrive.ship.guide.turning_right=Turning to the right
warpdrive.ship.guide.turning_back=Turning back
warpdrive.ship.guide.turning_left=Turning to the left
warpdrive.ship.guide.anchor_block_detected=Jump aborted by on-board anchor block %1$s at (%2$d %3$d %4$d).
warpdrive.ship.guide.anchor_entity_detected=Anchor entity %1$s detected at (%2$d %3$d %4$d), aborting jump...
warpdrive.ship.guide.block_not_ready_for_jump=Jump aborted by on-board block %1$s at (%2$d %3$d %4$d).
warpdrive.ship.guide.anchor_block_detected=On-board anchor block %1$s detected at (%2$d %3$d %4$d).
warpdrive.ship.guide.anchor_entity_detected=Anchor entity %1$s detected at (%2$d %3$d %4$d).
warpdrive.ship.guide.block_not_ready_for_jump=On-board block %1$s at (%2$d %3$d %4$d) is not ready.
warpdrive.ship.guide.ship_snagged1=Ship snagged by %1$s at (%2$d %3$d %4$d).
warpdrive.ship.guide.ship_snagged2=Sneak right click the ship core to see your ship dimensions, then update your ship dimensions.
warpdrive.ship.guide.corrupted_block=Exception while saving ship, probably a corrupted block %1$s.
warpdrive.ship.guide.chunkloading_rejected_in_source_world=Chunkloading rejected in source world %1$s. Aborting.
warpdrive.ship.guide.too_many_source_chunks_to_load=Ship is extending over %1$d chunks in source world.
warpdrive.ship.guide.max_chunkloading=Max is currently set to %2$d in config/forgeChunkLoading.cfg. Aborting.\nClose the game, change your config/forgeChunkLoading.cfg configuration and try again.
warpdrive.ship.guide.save_exception=Exception while saving ship block %1$s.\nCheck console for details.
warpdrive.ship.guide.chunkloading_rejected_in_source_world=Chunkloading rejected in source world %1$s.
warpdrive.ship.guide.too_many_chunks_to_load=Ship extends over %1$d chunks.\nMax is set to %2$d in config/forgeChunkLoading.cfg.
warpdrive.ship.guide.max_chunkloading=Close the game, update config/forgeChunkLoading.cfg, then try again.
warpdrive.ship.guide.chunkloading_rejected_in_target_world=Chunkloading rejected in target world %s. Aborting.
warpdrive.ship.guide.too_many_target_chunks_to_load=Ship is extending over %1$d chunks in target world.
warpdrive.ship.guide.no_celestial_object_in_hyperspace=No star system exists in %1$s (%2$d), there's nowhere to exit hyperspace!
warpdrive.ship.guide.no_star_system_in_hyperspace=Ship is outside any star system, unable to exit hyperspace!\nClosest start system is ~%1$d m away (%2$d %3$d %4$d) to (%5$d %6$d %7$d).
warpdrive.ship.guide.unable_to_load_space_dimension=Unable to load Space dimension %1$d, aborting jump.
warpdrive.ship.guide.unable_to_reach_hyperspace_from_planet=Unable to reach hyperspace from a planet!
warpdrive.ship.guide.unable_to_reach_hyperspace_no_parent=Unable to reach hyperspace!\nThere's no parent defined for %1$s (%2$d).
warpdrive.ship.guide.unable_to_load_hyperspace_dimension=Unable to load Hyperspace dimension %1$d, aborting jump.
warpdrive.ship.guide.unable_to_reach_space_no_parent=There's no parent defined for %1$s (%2$d), unable to reach space!
warpdrive.ship.guide.unable_to_reach_space_outside_border=Ship is outside planet border, unable to reach space!\nClosest transition area is ~%1$d m away (%2$d %3$d %4$d) to (%5$d %6$d %7$d).
warpdrive.ship.guide.no_celestial_object_in_space=No planet exists in %1$s (%2$d), there's nowhere to land!
warpdrive.ship.guide.unable_to_land_outside_orbit=We're not in orbit of planet, unable to land!\nClosest planet is %1$d m away (%2$d %3$d %4$d) to (%5$d %6$d %7$d).
warpdrive.ship.guide.unable_to_land_virtual_planet=Sorry, we can't go to %1$s. This is a virtual celestial object. It's either a decorative planet or a server misconfiguration.
warpdrive.ship.guide.unable_to_land_invalid_id=Sorry, we can't land on %1$s because dimension %2$d isn't defined. It might be a missing mod or a server misconfiguration.
warpdrive.ship.guide.ship_collision=Ship collision detected around (%1$d %2$d %3$d). Damage report pending...
warpdrive.ship.guide.impassable_block_detected=Impassable %1$s detected at destination (%2$d %3$d %4$d).
warpdrive.ship.guide.no_star_system_in_range=Ship won't survive in deep space.\nClosest star system is ~%1$d m away (%2$d %3$d %4$d) to (%5$d %6$d %7$d).
warpdrive.ship.guide.exception_loading_dimension=Unable to load dimension %1$d.\nCheck console for a missing mod or configuration.
warpdrive.ship.guide.unable_to_reach_hyperspace_from_planet=Unable to engage Alcubierre drive on a planet.\nGet into orbit, then try again.
warpdrive.ship.guide.unable_to_reach_hyperspace_no_parent=Current location has no hyperspace connection.\nThere's no parent defined for %1$s (%2$d).
warpdrive.ship.guide.unable_to_reach_space_no_parent=Current location as no space connection.\nThere's no parent defined for %1$s (%2$d).
warpdrive.ship.guide.unable_to_reach_space_outside_border=Ship is outside planet border.\nClosest transition area is ~%1$d m away (%2$d %3$d %4$d) to (%5$d %6$d %7$d).
warpdrive.ship.guide.no_celestial_object_in_space=There's nowhere to land.\nNo planet exists in %1$s (%2$d).
warpdrive.ship.guide.unable_to_land_outside_orbit=Ship isn't orbiting of planet, unable to land!\nClosest planet is %1$d m away (%2$d %3$d %4$d) to (%5$d %6$d %7$d).
warpdrive.ship.guide.unable_to_land_virtual_planet=Celestial object %1$s is out of reach.\nIt's either a decorative planet or a server misconfiguration.
warpdrive.ship.guide.ship_collision=Collision detected around (%1$d %2$d %3$d).\nSend a maintenance team to check for damages!
warpdrive.ship.guide.impassable_block_detected=Impassable %1$s detected at (%2$d %3$d %4$d).
warpdrive.ship.guide.obstacle_block_detected=Obstacle %1$s detected at (%2$d %3$d %4$d).
warpdrive.ship.guide.entering_protected_area=Ship is entering a protected area at (%1$d %2$d %3$d).
warpdrive.ship.guide.entering_protected_area=Entering protected area at (%1$d %2$d %3$d).
warpdrive.ship.guide.moving_too_high=Ship core is moving too high.
warpdrive.ship.guide.moving_too_low=Ship core is moving too low.
warpdrive.ship.guide.jump_aborted=Jump aborted!
warpdrive.ship.guide.jump_done=Jump done
warpdrive.ship.guide.schematic_not_found=Schematic not found or unknown error reading it: '%1$s'.
warpdrive.ship.guide.schematic_not_found=Schematic not found or unknown error reading '%1$s'.
warpdrive.ship.guide.schematic_invalid_format=Invalid schematic format: %1$s
warpdrive.ship.status_line.cooling=%1$d s left of cooldown.
@ -891,14 +890,14 @@ warpdrive.ship.status_line.isolation=%1$d active isolation blocks providing %2$s
warpdrive.teleportation.guide.no_safe_spot=No safe spot found to summon player %1$s
warpdrive.transporter.status_line.from_to=From (%1$.0f %2$.0f %3$.0f) to (%4$.0f %5$.0f %6$.0f)
warpdrive.transporter_signature.status_line.invalid=§cNo transporter room linked
warpdrive.transporter_signature.status_line.invalid=No transporter room linked
warpdrive.transporter_signature.status_line.valid=Linked to transporter room %1$s\n§8%2$s
warpdrive.transporter_signature.get_missing=§cTransporter room has no signature yet!
warpdrive.transporter_signature.get_same=§cTransporter beacon is already linked to %1$s.
warpdrive.transporter_signature.get_missing=Transporter room has no signature yet!
warpdrive.transporter_signature.get_same=Transporter beacon is already linked to %1$s.
warpdrive.transporter_signature.get=Transporter beacon is now linked to %1$s.
warpdrive.transporter_signature.set_missing=§cTransporter beacon needs to be linked first!
warpdrive.transporter_signature.set_self=§cTransporter room can't target itself!
warpdrive.transporter_signature.set_same=§cTransporter room is already linked to %1$s.
warpdrive.transporter_signature.set_missing=Transporter beacon needs to be linked first!
warpdrive.transporter_signature.set_self=Transporter room can't target itself!
warpdrive.transporter_signature.set_same=Transporter room is already linked to %1$s.
warpdrive.transporter_signature.set=Transporter room is now linked to %1$s.
warpdrive.world_border.in_range=Proximity alert: world border is only %1$d m away!

View file

@ -616,7 +616,7 @@ tile.warpdrive.hull.superior.stairs.black.name=Escalier de coque supérieure noi
warpdrive.guide.prefix=%1$s:
warpdrive.error.bad_tile_entity=§cCe bloc requiers une mise à jour par dépose puis repose.
warpdrive.error.bad_tile_entity=Ce bloc requiers une mise à jour par dépose puis repose.
warpdrive.error.internal_check_console=Internal error, check console for details
warpdrive.command.invalid_parameter=Invalid parameter %1$s
@ -650,15 +650,15 @@ warpdrive.beam_frequency.tooltip=Fréquence de faisceau ajustée à %1$d
warpdrive.beam_frequency.get=Beam frequency %2$d has been retrieved from %1$s
warpdrive.beam_frequency.set=%1$s est désormais accordé à la Fréquence de faisceau %2$d
warpdrive.beam_frequency.status_line.valid=La fréquence de faisceau %1$d est valide.
warpdrive.beam_frequency.status_line.invalid=§cLa fréquence de faisceau %1$d est invalide.
warpdrive.beam_frequency.status_line.undefined=§7La fréquence de faisceau est non définie.\n§bUtilises un Diapason§f pour l'ajuster.
warpdrive.beam_frequency.status_line.invalid=La fréquence de faisceau %1$d est invalide.
warpdrive.beam_frequency.status_line.undefined=La fréquence de faisceau est non définie.\n§bUtilises un Diapason§f pour l'ajuster.
warpdrive.control_channel.tooltip=Canal de contrôle ajusté à %1$d
warpdrive.control_channel.get=Le canal de contrôle %2$d a été récupéré de %1$s
warpdrive.control_channel.set=%1$s est désormais accordé au Canal de contrôle %2$d
warpdrive.control_channel.status_line.valid=Le canal de contrôle %1$d est valide.
warpdrive.control_channel.status_line.invalid=§cLe canal de contrôle %1$d est invalide.
warpdrive.control_channel.status_line.undefined=§7Le canal de contrôle est non défini.\n§bUtilises un Diapason§r pour l'ajuster.
warpdrive.control_channel.status_line.invalid=Le canal de contrôle %1$d est invalide.
warpdrive.control_channel.status_line.undefined=Le canal de contrôle est non défini.\n§bUtilises un Diapason§r pour l'ajuster.
warpdrive.is_enabled.set.enabled=Switched ON!
warpdrive.is_enabled.set.disabled=Switched off!
@ -667,20 +667,20 @@ warpdrive.tooltip.item_tag.breathing_helmet=Permet de §brespirer dans le vide§
warpdrive.tooltip.item_tag.fly_in_space=Jetpack compatible avec une utilisation §bspatiale§r.
warpdrive.tooltip.item_tag.no_fall_damage=§bAbsorbe les damages de chute§r.
warpdrive.upgrade.result.no_upgrade_to_dismount=§cAucune amélioration à démonter.
warpdrive.upgrade.result.not_enough_upgrades=§cIl faut au moins 1 object pour améliorer ce bloc.
warpdrive.upgrade.result.invalid_upgrade=§cThis is not a valid item to upgrade this block.
warpdrive.upgrade.result.invalid_upgrade_for_projector=§cCette amélioration est trop grosse pour un projecteur, utilises un relais à la place.
warpdrive.upgrade.result.invalid_upgrade_for_relay=§cCette amélioration s'applique uniquement sur un projecteur.
warpdrive.upgrade.result.no_upgrade_to_dismount=Aucune amélioration à démonter.
warpdrive.upgrade.result.not_enough_upgrades=Il faut au moins 1 object pour améliorer ce bloc.
warpdrive.upgrade.result.invalid_upgrade=This is not a valid item to upgrade this block.
warpdrive.upgrade.result.invalid_upgrade_for_projector=Cette amélioration est trop grosse pour un projecteur, utilises un relais à la place.
warpdrive.upgrade.result.invalid_upgrade_for_relay=Cette amélioration s'applique uniquement sur un projecteur.
warpdrive.upgrade.result.valid_upgrades=Valid upgrades for this block include: %1$s. @TODO not implemented yet
warpdrive.upgrade.result.too_many_upgrades=§cCette amélioration est déjà montée %1$s fois sur ce bloc, utilises un relais à la place.
warpdrive.upgrade.result.too_many_upgrades=Cette amélioration est déjà montée %1$s fois sur ce bloc, utilises un relais à la place.
warpdrive.upgrade.result.dismounted=Amélioration %1$s démontée correctement.
warpdrive.upgrade.result.mounted=Amélioration %1$s montée correctement.
warpdrive.upgrade.result.wrong_shape_side=§cIl n'y a pas de projecteur électromagnétique sur cette face.
warpdrive.upgrade.result.no_shape_to_dismount=§cAucune forme à démonter.
warpdrive.upgrade.result.not_enough_shapes.double=§cIl faut au moins 2 objets pour établir la forme d'un projecteur double face.
warpdrive.upgrade.result.not_enough_shapes.single=§cIl faut au moins 1 object pour établir la forme d'un projecteur simple face.
warpdrive.upgrade.result.wrong_shape_side=Il n'y a pas de projecteur électromagnétique sur cette face.
warpdrive.upgrade.result.no_shape_to_dismount=Aucune forme à démonter.
warpdrive.upgrade.result.not_enough_shapes.double=Il faut au moins 2 objets pour établir la forme d'un projecteur double face.
warpdrive.upgrade.result.not_enough_shapes.single=Il faut au moins 1 object pour établir la forme d'un projecteur simple face.
warpdrive.upgrade.result.shape_dismounted=Forme démontée correctement.
warpdrive.upgrade.result.shape_mounted=Forme montée correctement.
@ -692,9 +692,9 @@ warpdrive.video_channel.get=Le canal vidéo %2$d a été recupéré depuis %1$s
warpdrive.video_channel.set=%1$s est désormais accordé au Canal vidéo %2$d
warpdrive.video_channel.status_line.valid_self=Le canal vidéo %1$d est valide.
warpdrive.video_channel.status_line.valid_other=Le canal vidéo %1$d est valide pour la caméra à %2$s.
warpdrive.video_channel.status_line.invalid=§cLe canal vidéo %1$d est invalide.
warpdrive.video_channel.status_line.not_loaded=§cLe canal vidéo %1$d est invalide ou la caméra est trop loin!
warpdrive.video_channel.status_line.undefined=§7Le canal vidéo est non défini.\n§bUtilises un Diapason§r pour l'ajuster.
warpdrive.video_channel.status_line.invalid=Le canal vidéo %1$d est invalide.
warpdrive.video_channel.status_line.not_loaded=Le canal vidéo %1$d est invalide ou la caméra est trop loin!
warpdrive.video_channel.status_line.undefined=Le canal vidéo est non défini.\n§bUtilises un Diapason§r pour l'ajuster.
warpdrive.accelerator.guide.low_power.not_enough_storage=La capacité de stockage d'énergie est insuffisante; Nous avons besoin d'au moins %1$d pour continuer mais ne pouvons stocker que %2$d
@ -728,12 +728,12 @@ warpdrive.builder.guide.ship_materialization_countdown=Stand by for ship materia
warpdrive.builder.guide.ship_deployed=Ship deployed. Teleporting captain to the main deck
warpdrive.builder.guide.welcome_aboard=Welcome aboard captain. Use the computer to get moving...
warpdrive.cloaking_core.missing_channeling_and_projecting_coils=§cIntegrité réduite à %1$d%%: bobine(s) de canalisation manquante(nt) en direction de %2$s, et bobine(s) de projection manquante(nt) en direction de %3$s
warpdrive.cloaking_core.missing_channeling_coils=§cIntegrité réduite à %1$d%%: bobine(s) de canalisation manquante(nt) en direction de %2$s
warpdrive.cloaking_core.missing_projecting_coils=§cIntegrité réduite à %1$d%%: bobine(s) de projection manquante(nt) en direction de %2$s
warpdrive.cloaking_core.missing_channeling_and_projecting_coils=Integrité réduite à %1$d%%: bobine(s) de canalisation manquante(nt) en direction de %2$s, et bobine(s) de projection manquante(nt) en direction de %3$s
warpdrive.cloaking_core.missing_channeling_coils=Integrité réduite à %1$d%%: bobine(s) de canalisation manquante(nt) en direction de %2$s
warpdrive.cloaking_core.missing_projecting_coils=Integrité réduite à %1$d%%: bobine(s) de projection manquante(nt) en direction de %2$s
warpdrive.cloaking_core.valid=Le système est valide
warpdrive.cloaking_core.disabled=Le champ d'invisibilité est désactivé
warpdrive.cloaking_core.low_power=§cLe champ d'invisibilité est en panne. Il nous faut plus d'énergie, Capitaine!
warpdrive.cloaking_core.low_power=Le champ d'invisibilité est en panne. Il nous faut plus d'énergie, Capitaine!
warpdrive.cloaking_core.cloaking=Un champ de niveau %1$d couvre actuellement %2$d blocs!
warpdrive.compat.guide.block_detected_on_board=%1$s detected on board!
@ -750,7 +750,7 @@ warpdrive.energy.side.changed_to_disabled=Le coté %1$s side est en mode Inactif
warpdrive.force_field.guide.low_power=Nous sommes à court d'énergie Capitaine, réduissez la consommation ou appelez l'ingénieur écossais pour booster notre production!
warpdrive.force_field.shape.status_line.none=§cLa forme n'est pas définie.
warpdrive.force_field.shape.status_line.none=La forme n'est pas définie.
warpdrive.force_field.shape.status_line.double=La forme est %1$s plein(e)
warpdrive.force_field.shape.status_line.single=La forme est %1$s coupé(e)
warpdrive.force_field.shape.status_line.sphere=une sphère
@ -825,27 +825,29 @@ warpdrive.security_station.guide.registered_players=Joueurs attachés: %1$s
warpdrive.security_station.guide.player_registered=Tu es désormais attaché à cette station de sécurité.\nLes joueurs attachés sont %1$s
warpdrive.security_station.guide.player_unregistered=Tu es désormais détaché de cette station de sécurité.\nLes joueurs attachés sont %1$s
warpdrive.ship.guide.cooling_countdown=Ship core is cooling down... %1$d s to go...
warpdrive.ship.guide.pre_jumping=Running pre-jump checklist...
warpdrive.ship.guide.warming_up=Ship core is warming up... %1$d s to go...
warpdrive.ship.guide.insufficient_energy=Jump aborted! Insufficient energy in core.
warpdrive.ship.guide.warp_field_overlapping=Jump aborted! Own warp field contains another ship. Disable other core to continue.
warpdrive.ship.guide.cloaking_field_overlapping=Jump aborted! Core is cloaked, disable cloak to continue!
# Note for translators: you want to keep each line shorter than 50 characters so that it fits on computer screens.
warpdrive.ship.guide.cooling_countdown=Refroidissement en cours... Encore %1$d s...
warpdrive.ship.guide.pre_jumping=Exécution des contrôles préalable au saut...
warpdrive.ship.guide.warming_up=Echauffement du cœur de vaisseau... Encore %1$d s...
warpdrive.ship.guide.movement_aborted=Mouvement avorté!
warpdrive.ship.guide.insufficient_energy=Energie insuffisante dans le cœur.
warpdrive.ship.guide.warp_field_overlapping=Notre champ de warp contient un autre vaisseau.\nDésactive l'autre cœur pour continuer.
warpdrive.ship.guide.cloaking_field_overlapping=Le cœur est dans un champ d'invisiblité.\nDésactive l'invisibilité pour continuer.
warpdrive.ship.guide.pre_jump_success=Ok
warpdrive.ship.guide.too_large_side_for_tier=Error: ship is too large (max is %1$d per side)\nUpgrade ship core or reduce span!
warpdrive.ship.guide.too_much_mass_for_planet=Ship is too big for a planet (max is %1$d blocks while ship mass is %2$d blocks).\nReduce your mass!
warpdrive.ship.guide.insufficient_mass_for_tier=Ship is too small for its category (%2$d < %1$d).\nDowngrade your ship core or increase your mass!
warpdrive.ship.guide.too_much_mass_for_tier=Ship is too big for its category (%2$d > %1$d).\nUpgrade your ship core or reduce your mass!
warpdrive.ship.guide.insufficient_mass_for_hyperspace=Ship is too small to engage Alcubierre drive (%1$d/%2$d).\nIncrease your mass to reach hyperspace.
warpdrive.ship.guide.jumpgate_is_too_far=Ship is not inside a jumpgate. Jump rejected.
warpdrive.ship.guide.jumpgate_partially_entered=Ship is only %.1f%% inside a jumpgate. Sorry, we'll loose too much crew as is, jump rejected.
warpdrive.ship.guide.jumpgate_not_defined=Destination jumpgate '%1$s' is unknown. Check jumpgate name.
warpdrive.ship.guide.jumpgate_blocked=Destination gate is blocked by obstacles. Aborting...
warpdrive.ship.guide.target_outside_planet_border=Target ship position is outside planet border, unable to jump!\nWorld borders are (%1$d %2$d %3$d) to (%4$d %5$d %6$d).
warpdrive.ship.guide.too_large_side_for_tier=Vaisseau trop grand, le max est %1$d par côté.\nAméliorer le cœur de vaisseau ou réduit la masse.
warpdrive.ship.guide.too_much_mass_for_planet=Vaisseau trop lourd pour une planète.\nRéduit la masse en-dessous de %1$d blocks.
warpdrive.ship.guide.insufficient_mass_for_tier=Vaisseau trop léger, le min est %1$d blocks.\nDéclasse le cœur de vaisseau ou augmente la masse.
warpdrive.ship.guide.too_much_mass_for_tier=Ship is too big, max is %1$d blocks.\nUpgrade ship core or reduce your mass.
warpdrive.ship.guide.insufficient_mass_for_hyperspace=Ship is too small to engage Alcubierre drive.\nIncrease your mass to %2$d.
warpdrive.ship.guide.jumpgate_is_too_far=Ship is not inside a jumpgate.
warpdrive.ship.guide.jumpgate_partially_entered=Ship is only %.1f%% inside a jumpgate.\nSorry, we'll loose too much crew as is.
warpdrive.ship.guide.jumpgate_not_defined=Destination jumpgate '%1$s' is unknown.
warpdrive.ship.guide.jumpgate_blocked=Destination gate is blocked by obstacles.
warpdrive.ship.guide.target_outside_planet_border=Target position is outside planet border!\nWorld borders are (%1$d %2$d %3$d) to (%4$d %5$d %6$d).
warpdrive.ship.guide.invalid_y_coordinates=Invalid Y coordinate(s), check ship dimensions...
warpdrive.ship.guide.invalid_state=Invalid state, aborting jump...
warpdrive.ship.guide.overlapping_source_and_target=Jump aborted. Increase jump distance to continue.
warpdrive.ship.guide.not_enough_space_after_adjustment=\nNot enough space after adjustment, jump aborted!
warpdrive.ship.guide.overlapping_source_and_target=Target is too close. Increase jump distance to continue.
warpdrive.ship.guide.not_enough_space_after_adjustment=Not enough space after adjustment.
warpdrive.ship.guide.entering_hyperspace=Entering hyperspace...
warpdrive.ship.guide.leaving_hyperspace=Leaving hyperspace...
warpdrive.ship.guide.engaging_jumpgate_x=Engaging jumpgate towards %1$s!
@ -853,37 +855,33 @@ warpdrive.ship.guide.jumping_xyz=Jumping of %1$d blocks (XYZ %2$d %3$d %4$d)
warpdrive.ship.guide.turning_right=Turning to the right
warpdrive.ship.guide.turning_back=Turning back
warpdrive.ship.guide.turning_left=Turning to the left
warpdrive.ship.guide.anchor_block_detected=Jump aborted by on-board anchor block %1$s at (%2$d %3$d %4$d).
warpdrive.ship.guide.anchor_entity_detected=Anchor entity %1$s detected at (%2$d %3$d %4$d), aborting jump...
warpdrive.ship.guide.block_not_ready_for_jump=Jump aborted by on-board block %1$s at (%2$d %3$d %4$d).
warpdrive.ship.guide.anchor_block_detected=On-board anchor block %1$s detected at (%2$d %3$d %4$d).
warpdrive.ship.guide.anchor_entity_detected=Anchor entity %1$s detected at (%2$d %3$d %4$d).
warpdrive.ship.guide.block_not_ready_for_jump=On-board block %1$s at (%2$d %3$d %4$d) is not ready.
warpdrive.ship.guide.ship_snagged1=Ship snagged by %1$s at (%2$d %3$d %4$d).
warpdrive.ship.guide.ship_snagged2=Sneak right click the ship core to see your ship dimensions, then update your ship dimensions.
warpdrive.ship.guide.corrupted_block=Exception while saving ship, probably a corrupted block %1$s.
warpdrive.ship.guide.chunkloading_rejected_in_source_world=Chunkloading rejected in source world %1$s. Aborting.
warpdrive.ship.guide.too_many_source_chunks_to_load=Ship is extending over %1$d chunks in source world.
warpdrive.ship.guide.max_chunkloading=Max is currently set to %2$d in config/forgeChunkLoading.cfg. Aborting.\nClose the game, change your config/forgeChunkLoading.cfg configuration and try again.
warpdrive.ship.guide.save_exception=Exception while saving ship block %1$s.\nCheck console for details.
warpdrive.ship.guide.chunkloading_rejected_in_source_world=Chunkloading rejected in source world %1$s.
warpdrive.ship.guide.too_many_chunks_to_load=Ship extends over %1$d chunks.\nMax is set to %2$d in config/forgeChunkLoading.cfg.
warpdrive.ship.guide.max_chunkloading=Close the game, update config/forgeChunkLoading.cfg, then try again.
warpdrive.ship.guide.chunkloading_rejected_in_target_world=Chunkloading rejected in target world %s. Aborting.
warpdrive.ship.guide.too_many_target_chunks_to_load=Ship is extending over %1$d chunks in target world.
warpdrive.ship.guide.no_celestial_object_in_hyperspace=No star system exists in %1$s (%2$d), there's nowhere to exit hyperspace!
warpdrive.ship.guide.no_star_system_in_hyperspace=Ship is outside any star system, unable to exit hyperspace!\nClosest start system is ~%1$d m away (%2$d %3$d %4$d) to (%5$d %6$d %7$d).
warpdrive.ship.guide.unable_to_load_space_dimension=Unable to load Space dimension %1$d, aborting jump.
warpdrive.ship.guide.unable_to_reach_hyperspace_from_planet=Unable to reach hyperspace from a planet!
warpdrive.ship.guide.unable_to_reach_hyperspace_no_parent=Unable to reach hyperspace!\nThere's no parent defined for %1$s (%2$d).
warpdrive.ship.guide.unable_to_load_hyperspace_dimension=Unable to load Hyperspace dimension %1$d, aborting jump.
warpdrive.ship.guide.unable_to_reach_space_no_parent=There's no parent defined for %1$s (%2$d), unable to reach space!
warpdrive.ship.guide.unable_to_reach_space_outside_border=Ship is outside planet border, unable to reach space!\nClosest transition area is ~%1$d m away (%2$d %3$d %4$d) to (%5$d %6$d %7$d).
warpdrive.ship.guide.no_celestial_object_in_space=No planet exists in %1$s (%2$d), there's nowhere to land!
warpdrive.ship.guide.unable_to_land_outside_orbit=We're not in orbit of planet, unable to land!\nClosest planet is %1$d m away (%2$d %3$d %4$d) to (%5$d %6$d %7$d).
warpdrive.ship.guide.unable_to_land_virtual_planet=Sorry, we can't go to %1$s. This is a virtual celestial object. It's either a decorative planet or a server misconfiguration.
warpdrive.ship.guide.unable_to_land_invalid_id=Sorry, we can't land on %1$s because dimension %2$d isn't defined. It might be a missing mod or a server misconfiguration.
warpdrive.ship.guide.ship_collision=Ship collision detected around (%1$d %2$d %3$d). Damage report pending...
warpdrive.ship.guide.impassable_block_detected=Impassable %1$s detected at destination (%2$d %3$d %4$d).
warpdrive.ship.guide.no_star_system_in_range=Ship won't survive in deep space.\nClosest star system is ~%1$d m away (%2$d %3$d %4$d) to (%5$d %6$d %7$d).
warpdrive.ship.guide.exception_loading_dimension=Unable to load dimension %1$d.\nCheck console for a missing mod or configuration.
warpdrive.ship.guide.unable_to_reach_hyperspace_from_planet=Unable to engage Alcubierre drive on a planet.\nGet into orbit, then try again.
warpdrive.ship.guide.unable_to_reach_hyperspace_no_parent=Current location has no hyperspace connection.\nThere's no parent defined for %1$s (%2$d).
warpdrive.ship.guide.unable_to_reach_space_no_parent=Current location as no space connection.\nThere's no parent defined for %1$s (%2$d).
warpdrive.ship.guide.unable_to_reach_space_outside_border=Ship is outside planet border.\nClosest transition area is ~%1$d m away (%2$d %3$d %4$d) to (%5$d %6$d %7$d).
warpdrive.ship.guide.no_celestial_object_in_space=There's nowhere to land.\nNo planet exists in %1$s (%2$d).
warpdrive.ship.guide.unable_to_land_outside_orbit=Ship isn't orbiting of planet, unable to land!\nClosest planet is %1$d m away (%2$d %3$d %4$d) to (%5$d %6$d %7$d).
warpdrive.ship.guide.unable_to_land_virtual_planet=Celestial object %1$s is out of reach.\nIt's either a decorative planet or a server misconfiguration.
warpdrive.ship.guide.ship_collision=Collision detected around (%1$d %2$d %3$d).\nSend a maintenance team to check for damages!
warpdrive.ship.guide.impassable_block_detected=Impassable %1$s detected at (%2$d %3$d %4$d).
warpdrive.ship.guide.obstacle_block_detected=Obstacle %1$s detected at (%2$d %3$d %4$d).
warpdrive.ship.guide.entering_protected_area=Ship is entering a protected area at (%1$d %2$d %3$d).
warpdrive.ship.guide.moving_too_high=Ship core is moving too high.
warpdrive.ship.guide.moving_too_low=Ship core is moving too low.
warpdrive.ship.guide.jump_aborted=Jump aborted!
warpdrive.ship.guide.jump_done=Jump done
warpdrive.ship.guide.entering_protected_area=Entering protected area at (%1$d %2$d %3$d).
warpdrive.ship.guide.moving_too_high=Le cœur de vaisseau se déplace trop haut.
warpdrive.ship.guide.moving_too_low=Le cœur de vaisseau se déplace trop bas.
warpdrive.ship.guide.jump_done=Saut réussi
warpdrive.ship.guide.schematic_not_found=Schéma introuvable ou erreur de lecture: '%1$s'.
warpdrive.ship.guide.schematic_invalid_format=Format de schéma invalide: %1$s
@ -893,14 +891,14 @@ warpdrive.ship.status_line.isolation=Les %1$d blocs d'isolations actifs fourniss
warpdrive.teleportation.guide.no_safe_spot=No safe spot found to summon player %1$s
warpdrive.transporter.status_line.from_to=De (%1$.0f %2$.0f %3$.0f) à (%4$.0f %5$.0f %6$.0f)
warpdrive.transporter_signature.status_line.invalid=§cNo transporter room linked
warpdrive.transporter_signature.status_line.invalid=No transporter room linked
warpdrive.transporter_signature.status_line.valid=Linked to transporter room %1$s\n§8%2$s
warpdrive.transporter_signature.get_missing=§cTransporter room has no signature yet!
warpdrive.transporter_signature.get_same=§cTransporter beacon is already linked to %1$s.
warpdrive.transporter_signature.get_missing=Transporter room has no signature yet!
warpdrive.transporter_signature.get_same=Transporter beacon is already linked to %1$s.
warpdrive.transporter_signature.get=Transporter beacon is now linked to %1$s.
warpdrive.transporter_signature.set_missing=§cTransporter beacon needs to be linked first!
warpdrive.transporter_signature.set_self=§cTransporter room can't target itself!
warpdrive.transporter_signature.set_same=§cTransporter room is already linked to %1$s.
warpdrive.transporter_signature.set_missing=Transporter beacon needs to be linked first!
warpdrive.transporter_signature.set_self=Transporter room can't target itself!
warpdrive.transporter_signature.set_same=Transporter room is already linked to %1$s.
warpdrive.transporter_signature.set=Transporter room is now linked to %1$s.
warpdrive.world_border.in_range=Proximity alert: world border is only %1$d m away!

View file

@ -616,7 +616,7 @@ tile.warpdrive.hull.superior.stairs.black.name=Zwart Gekleurd Superieur Pantser
warpdrive.guide.prefix=%1$s:
warpdrive.error.bad_tile_entity=§cDit blok heeft een verversing nodig door het de breken en weer te plaatsen.
warpdrive.error.bad_tile_entity=Dit blok heeft een verversing nodig door het de breken en weer te plaatsen.
warpdrive.error.internal_check_console=Internal error, check console for details
warpdrive.command.invalid_parameter=Invalid parameter %1$s
@ -650,15 +650,15 @@ warpdrive.beam_frequency.tooltip=Straal-frequentie is gezet naar %1$d
warpdrive.beam_frequency.get=Straal-frequentie %2$d is opgehaald door %1$s
warpdrive.beam_frequency.set=%1$s is nu afgestemd op straal-frequentie %2$d
warpdrive.beam_frequency.status_line.valid=Straal-frueqentie %1$d is Geldig.
warpdrive.beam_frequency.status_line.invalid=§cStraal-frequentie %1$d is incorrect.
warpdrive.beam_frequency.status_line.undefined=§7Niet gedefinieerde straal-frequentie.\n§bGebruik een Affstemmingsvork§r om deze te zetten.
warpdrive.beam_frequency.status_line.invalid=Straal-frequentie %1$d is incorrect.
warpdrive.beam_frequency.status_line.undefined=Niet gedefinieerde straal-frequentie.\n§bGebruik een Affstemmingsvork§r om deze te zetten.
warpdrive.control_channel.tooltip=Controlekanaal is gezet op %1$d
warpdrive.control_channel.get=Controlekanaal %2$d is opgehaald door %1$s
warpdrive.control_channel.set=%1$s is nu afgestemd met een controlekanaal %2$d
warpdrive.control_channel.status_line.valid=Controlekanaal %1$d is Geldig.
warpdrive.control_channel.status_line.invalid=§cControlekanaal %1$d is incorrect.
warpdrive.control_channel.status_line.undefined=§7Niet gedefinieerde controlekanaal.\n§bGebruik een Afstemmingsvork§r om deze te zetten.
warpdrive.control_channel.status_line.invalid=Controlekanaal %1$d is incorrect.
warpdrive.control_channel.status_line.undefined=Niet gedefinieerde controlekanaal.\n§bGebruik een Afstemmingsvork§r om deze te zetten.
warpdrive.is_enabled.set.enabled=Switched ON!
warpdrive.is_enabled.set.disabled=Switched off!
@ -667,20 +667,20 @@ warpdrive.tooltip.item_tag.breathing_helmet=§Ademhalen in de ruimte§r consumee
warpdrive.tooltip.item_tag.fly_in_space=§bJetpack Die werkt in de ruimte§r.
warpdrive.tooltip.item_tag.no_fall_damage=§bAbsorbeert Schade van vallen§r.
warpdrive.upgrade.result.no_upgrade_to_dismount=§cGeen upgrade om uit te schakelen
warpdrive.upgrade.result.not_enough_upgrades=§cJe hebt tenminste 1 item nodig om dit blok te upgraden.
warpdrive.upgrade.result.invalid_upgrade=§cDid is niet het correcte item om dit blok te upgraden.
warpdrive.upgrade.result.invalid_upgrade_for_projector=§cDeze upgrade is te groot voor de projector, probeer een relais te gebruiken.
warpdrive.upgrade.result.invalid_upgrade_for_relay=§cDeze upgrade kan alleen op projectors.
warpdrive.upgrade.result.no_upgrade_to_dismount=Geen upgrade om uit te schakelen
warpdrive.upgrade.result.not_enough_upgrades=Je hebt tenminste 1 item nodig om dit blok te upgraden.
warpdrive.upgrade.result.invalid_upgrade=Did is niet het correcte item om dit blok te upgraden.
warpdrive.upgrade.result.invalid_upgrade_for_projector=Deze upgrade is te groot voor de projector, probeer een relais te gebruiken.
warpdrive.upgrade.result.invalid_upgrade_for_relay=Deze upgrade kan alleen op projectors.
warpdrive.upgrade.result.valid_upgrades=Geldige upgrades voor dit block zijn: %1$s. @TODO nog niet ingebouwd
warpdrive.upgrade.result.too_many_upgrades=§cEr zijn al %1$d upgrades geinstalleert.
warpdrive.upgrade.result.too_many_upgrades=Er zijn al %1$d upgrades geinstalleert.
warpdrive.upgrade.result.dismounted=Upgrade %1$s is succesvol uitgeschakeld.
warpdrive.upgrade.result.mounted=Upgrade %1$s is succesvol geplaatst.
warpdrive.upgrade.result.wrong_shape_side=§cEr is geen elektromagnetische-projector aan deze kant.
warpdrive.upgrade.result.no_shape_to_dismount=§cGeen vorm om uit te schakelen.
warpdrive.upgrade.result.not_enough_shapes.double=§cJe hebt tenminste 2 items nodig om de vorm van een dubbelzijdige-projector te zetten.
warpdrive.upgrade.result.not_enough_shapes.single=§cJe hebt tenminste 1 items nodig om de vorm van een eenzijdige-projector te zetten.
warpdrive.upgrade.result.wrong_shape_side=Er is geen elektromagnetische-projector aan deze kant.
warpdrive.upgrade.result.no_shape_to_dismount=Geen vorm om uit te schakelen.
warpdrive.upgrade.result.not_enough_shapes.double=Je hebt tenminste 2 items nodig om de vorm van een dubbelzijdige-projector te zetten.
warpdrive.upgrade.result.not_enough_shapes.single=Je hebt tenminste 1 items nodig om de vorm van een eenzijdige-projector te zetten.
warpdrive.upgrade.result.shape_dismounted=Vorm succesvol uitgeschakeld.
warpdrive.upgrade.result.shape_mounted=Vorm succesvol geplaatst.
@ -692,9 +692,9 @@ warpdrive.video_channel.get=Videokanaal %2$d is achterhaald door %1$s
warpdrive.video_channel.set=%1$s is nu afgestemd op videokanaal %2$d
warpdrive.video_channel.status_line.valid_self=Videokanaal %1$d is geldig.
warpdrive.video_channel.status_line.valid_other=Videokanaal %1$d is geldig voor camera op %2$s.
warpdrive.video_channel.status_line.invalid=§cVideokanaal %1$d is ongeldig.
warpdrive.video_channel.status_line.not_loaded=§cVideokanaal %1$d is ongeldig of camera is te ver weg!
warpdrive.video_channel.status_line.undefined=§7niet gedefinieerd videokanaal.\n§bGebruik een Afstemmingsvork§r om het te zetten.
warpdrive.video_channel.status_line.invalid=Videokanaal %1$d is ongeldig.
warpdrive.video_channel.status_line.not_loaded=Videokanaal %1$d is ongeldig of camera is te ver weg!
warpdrive.video_channel.status_line.undefined=niet gedefinieerd videokanaal.\n§bGebruik een Afstemmingsvork§r om het te zetten.
warpdrive.accelerator.guide.low_power.not_enough_storage=Energie-opslagcapaciteit is te weinig; we hebben tenminste %1$d om verder te opereren maar we kunnen alleen %2$d opslaan
@ -732,7 +732,7 @@ warpdrive.cloaking_core.missing_channeling_and_projecting_coils=Integrity down t
warpdrive.cloaking_core.missing_channeling_coils=Integrity down to %1$d%%: missing channeling coil(s) towards %2$s
warpdrive.cloaking_core.missing_projecting_coils=Integrity down to %1$d%%: missing projecting coil(s) towards %2$s
warpdrive.cloaking_core.disabled=Dekmantelveld is uitgeschakeld
warpdrive.cloaking_core.low_power=§cDekmantelveld is uit, We hebben meer stroom nodig kapitein!
warpdrive.cloaking_core.low_power=Dekmantelveld is uit, We hebben meer stroom nodig kapitein!
warpdrive.cloaking_core.cloaking=Een Niveau %1$d dekmantelveld bedekt huidig %2$d blokken!
warpdrive.compat.guide.block_detected_on_board=%1$s detected on board!
@ -749,7 +749,7 @@ warpdrive.energy.side.changed_to_disabled=%1$s kant verandert naar inactief modu
warpdrive.force_field.guide.low_power=we verliezen stroom kapitein, verminder onze consumptie of laat die schotse ingenieur onze stroomkracht vergroten!
warpdrive.force_field.shape.status_line.none=§cVorm is niet gedefinieerd.
warpdrive.force_field.shape.status_line.none=Vorm is niet gedefinieerd.
warpdrive.force_field.shape.status_line.double=Vorm is een volledig vorm %1$s
warpdrive.force_field.shape.status_line.single=Vorm is een halve vorm %1$s
warpdrive.force_field.shape.status_line.sphere=Ball
@ -824,27 +824,29 @@ warpdrive.security_station.guide.registered_players=Aangesloten Spelers: %1$s
warpdrive.security_station.guide.player_registered=You're now registered on this security station.\nRegistered players are %1$s
warpdrive.security_station.guide.player_unregistered=You've been unregistered from this security station.\nAttached players are %1$s
# Note for translators: you want to keep each line shorter than 50 characters so that it fits on computer screens.
warpdrive.ship.guide.cooling_countdown=Ship core is cooling down... %1$d s to go...
warpdrive.ship.guide.pre_jumping=Running pre-jump checklist...
warpdrive.ship.guide.warming_up=Ship core is warming up... %1$d s to go...
warpdrive.ship.guide.insufficient_energy=Jump aborted! Insufficient energy in core.
warpdrive.ship.guide.warp_field_overlapping=Jump aborted! Own warp field contains another ship. Disable other core to continue.
warpdrive.ship.guide.cloaking_field_overlapping=Jump aborted! Core is cloaked, disable cloak to continue!
warpdrive.ship.guide.movement_aborted=Movement aborted!
warpdrive.ship.guide.insufficient_energy=Insufficient energy in core.
warpdrive.ship.guide.warp_field_overlapping=Own warp field contains another ship.\nDisable other core to continue.
warpdrive.ship.guide.cloaking_field_overlapping=Core is cloaked.\nDisable cloak to continue.
warpdrive.ship.guide.pre_jump_success=Ok
warpdrive.ship.guide.too_large_side_for_tier=Error: ship is too large (max is %1$d per side)\nUpgrade ship core or reduce span!
warpdrive.ship.guide.too_much_mass_for_planet=Ship is too big for a planet (max is %1$d blocks while ship mass is %2$d blocks).\nReduce your mass!
warpdrive.ship.guide.insufficient_mass_for_tier=Ship is too small for its category (%2$d < %1$d).\nDowngrade your ship core or increase your mass!
warpdrive.ship.guide.too_much_mass_for_tier=Ship is too big for its category (%2$d > %1$d).\nUpgrade your ship core or reduce your mass!
warpdrive.ship.guide.insufficient_mass_for_hyperspace=Ship is too small to engage Alcubierre drive (%1$d/%2$d).\nIncrease your mass to reach hyperspace.
warpdrive.ship.guide.jumpgate_is_too_far=Ship is not inside a jumpgate. Jump rejected.
warpdrive.ship.guide.jumpgate_partially_entered=Ship is only %.1f%% inside a jumpgate. Sorry, we'll loose too much crew as is, jump rejected.
warpdrive.ship.guide.jumpgate_not_defined=Destination jumpgate '%1$s' is unknown. Check jumpgate name.
warpdrive.ship.guide.jumpgate_blocked=Destination gate is blocked by obstacles. Aborting...
warpdrive.ship.guide.target_outside_planet_border=Target ship position is outside planet border, unable to jump!\nWorld borders are (%1$d %2$d %3$d) to (%4$d %5$d %6$d).
warpdrive.ship.guide.too_large_side_for_tier=Ship is too large, max is %1$d per side.\nUpgrade ship core or reduce span.
warpdrive.ship.guide.too_much_mass_for_planet=Ship is too big for a planet.\nReduce your mass below %1$d blocks.
warpdrive.ship.guide.insufficient_mass_for_tier=Ship is too small, min is %1$d block.\nDowngrade ship core or increase mass.
warpdrive.ship.guide.too_much_mass_for_tier=Ship is too big, max is %1$d blocks.\nUpgrade ship core or reduce your mass.
warpdrive.ship.guide.insufficient_mass_for_hyperspace=Ship is too small to engage Alcubierre drive.\nIncrease your mass to %2$d.
warpdrive.ship.guide.jumpgate_is_too_far=Ship is not inside a jumpgate.
warpdrive.ship.guide.jumpgate_partially_entered=Ship is only %.1f%% inside a jumpgate.\nSorry, we'll loose too much crew as is.
warpdrive.ship.guide.jumpgate_not_defined=Destination jumpgate '%1$s' is unknown.
warpdrive.ship.guide.jumpgate_blocked=Destination gate is blocked by obstacles.
warpdrive.ship.guide.target_outside_planet_border=Target position is outside planet border!\nWorld borders are (%1$d %2$d %3$d) to (%4$d %5$d %6$d).
warpdrive.ship.guide.invalid_y_coordinates=Invalid Y coordinate(s), check ship dimensions...
warpdrive.ship.guide.invalid_state=Invalid state, aborting jump...
warpdrive.ship.guide.overlapping_source_and_target=Jump aborted. Increase jump distance to continue.
warpdrive.ship.guide.not_enough_space_after_adjustment=\nNot enough space after adjustment, jump aborted!
warpdrive.ship.guide.overlapping_source_and_target=Target is too close. Increase jump distance to continue.
warpdrive.ship.guide.not_enough_space_after_adjustment=Not enough space after adjustment.
warpdrive.ship.guide.entering_hyperspace=Entering hyperspace...
warpdrive.ship.guide.leaving_hyperspace=Leaving hyperspace...
warpdrive.ship.guide.engaging_jumpgate_x=Engaging jumpgate towards %1$s!
@ -852,36 +854,32 @@ warpdrive.ship.guide.jumping_xyz=Jumping of %1$d blocks (XYZ %2$d %3$d %4$d)
warpdrive.ship.guide.turning_right=Turning to the right
warpdrive.ship.guide.turning_back=Turning back
warpdrive.ship.guide.turning_left=Turning to the left
warpdrive.ship.guide.anchor_block_detected=Jump aborted by on-board anchor block %1$s at (%2$d %3$d %4$d).
warpdrive.ship.guide.anchor_entity_detected=Anchor entity %1$s detected at (%2$d %3$d %4$d), aborting jump...
warpdrive.ship.guide.block_not_ready_for_jump=Jump aborted by on-board block %1$s at (%2$d %3$d %4$d).
warpdrive.ship.guide.anchor_block_detected=On-board anchor block %1$s detected at (%2$d %3$d %4$d).
warpdrive.ship.guide.anchor_entity_detected=Anchor entity %1$s detected at (%2$d %3$d %4$d).
warpdrive.ship.guide.block_not_ready_for_jump=On-board block %1$s at (%2$d %3$d %4$d) is not ready.
warpdrive.ship.guide.ship_snagged1=Ship snagged by %1$s at (%2$d %3$d %4$d).
warpdrive.ship.guide.ship_snagged2=Sneak right click the ship core to see your ship dimensions, then update your ship dimensions.
warpdrive.ship.guide.corrupted_block=Exception while saving ship, probably a corrupted block %1$s.
warpdrive.ship.guide.chunkloading_rejected_in_source_world=Chunkloading rejected in source world %1$s. Aborting.
warpdrive.ship.guide.too_many_source_chunks_to_load=Ship is extending over %1$d chunks in source world.
warpdrive.ship.guide.max_chunkloading=Max is currently set to %2$d in config/forgeChunkLoading.cfg. Aborting.\nClose the game, change your config/forgeChunkLoading.cfg configuration and try again.
warpdrive.ship.guide.save_exception=Exception while saving ship block %1$s.\nCheck console for details.
warpdrive.ship.guide.chunkloading_rejected_in_source_world=Chunkloading rejected in source world %1$s.
warpdrive.ship.guide.too_many_chunks_to_load=Ship extends over %1$d chunks.\nMax is set to %2$d in config/forgeChunkLoading.cfg.
warpdrive.ship.guide.max_chunkloading=Close the game, update config/forgeChunkLoading.cfg, then try again.
warpdrive.ship.guide.chunkloading_rejected_in_target_world=Chunkloading rejected in target world %s. Aborting.
warpdrive.ship.guide.too_many_target_chunks_to_load=Ship is extending over %1$d chunks in target world.
warpdrive.ship.guide.no_celestial_object_in_hyperspace=No star system exists in %1$s (%2$d), there's nowhere to exit hyperspace!
warpdrive.ship.guide.no_star_system_in_hyperspace=Ship is outside any star system, unable to exit hyperspace!\nClosest start system is ~%1$d m away (%2$d %3$d %4$d) to (%5$d %6$d %7$d).
warpdrive.ship.guide.unable_to_load_space_dimension=Unable to load Space dimension %1$d, aborting jump.
warpdrive.ship.guide.unable_to_reach_hyperspace_from_planet=Unable to reach hyperspace from a planet!
warpdrive.ship.guide.unable_to_reach_hyperspace_no_parent=Unable to reach hyperspace!\nThere's no parent defined for %1$s (%2$d).
warpdrive.ship.guide.unable_to_load_hyperspace_dimension=Unable to load Hyperspace dimension %1$d, aborting jump.
warpdrive.ship.guide.unable_to_reach_space_no_parent=There's no parent defined for %1$s (%2$d), unable to reach space!
warpdrive.ship.guide.unable_to_reach_space_outside_border=Ship is outside planet border, unable to reach space!\nClosest transition area is ~%1$d m away (%2$d %3$d %4$d) to (%5$d %6$d %7$d).
warpdrive.ship.guide.no_celestial_object_in_space=No planet exists in %1$s (%2$d), there's nowhere to land!
warpdrive.ship.guide.unable_to_land_outside_orbit=We're not in orbit of planet, unable to land!\nClosest planet is %1$d m away (%2$d %3$d %4$d) to (%5$d %6$d %7$d).
warpdrive.ship.guide.unable_to_land_virtual_planet=Sorry, we can't go to %1$s. This is a virtual celestial object. It's either a decorative planet or a server misconfiguration.
warpdrive.ship.guide.unable_to_land_invalid_id=Sorry, we can't land on %1$s because dimension %2$d isn't defined. It might be a missing mod or a server misconfiguration.
warpdrive.ship.guide.ship_collision=Ship collision detected around (%1$d %2$d %3$d). Damage report pending...
warpdrive.ship.guide.impassable_block_detected=Impassable %1$s detected at destination (%2$d %3$d %4$d).
warpdrive.ship.guide.no_star_system_in_range=Ship won't survive in deep space.\nClosest star system is ~%1$d m away (%2$d %3$d %4$d) to (%5$d %6$d %7$d).
warpdrive.ship.guide.exception_loading_dimension=Unable to load dimension %1$d.\nCheck console for a missing mod or configuration.
warpdrive.ship.guide.unable_to_reach_hyperspace_from_planet=Unable to engage Alcubierre drive on a planet.\nGet into orbit, then try again.
warpdrive.ship.guide.unable_to_reach_hyperspace_no_parent=Current location has no hyperspace connection.\nThere's no parent defined for %1$s (%2$d).
warpdrive.ship.guide.unable_to_reach_space_no_parent=Current location as no space connection.\nThere's no parent defined for %1$s (%2$d).
warpdrive.ship.guide.unable_to_reach_space_outside_border=Ship is outside planet border.\nClosest transition area is ~%1$d m away (%2$d %3$d %4$d) to (%5$d %6$d %7$d).
warpdrive.ship.guide.no_celestial_object_in_space=There's nowhere to land.\nNo planet exists in %1$s (%2$d).
warpdrive.ship.guide.unable_to_land_outside_orbit=Ship isn't orbiting of planet, unable to land!\nClosest planet is %1$d m away (%2$d %3$d %4$d) to (%5$d %6$d %7$d).
warpdrive.ship.guide.unable_to_land_virtual_planet=Celestial object %1$s is out of reach.\nIt's either a decorative planet or a server misconfiguration.
warpdrive.ship.guide.ship_collision=Collision detected around (%1$d %2$d %3$d).\nSend a maintenance team to check for damages!
warpdrive.ship.guide.impassable_block_detected=Impassable %1$s detected at (%2$d %3$d %4$d).
warpdrive.ship.guide.obstacle_block_detected=Obstacle %1$s detected at (%2$d %3$d %4$d).
warpdrive.ship.guide.entering_protected_area=Ship is entering a protected area at (%1$d %2$d %3$d).
warpdrive.ship.guide.entering_protected_area=Entering protected area at (%1$d %2$d %3$d).
warpdrive.ship.guide.moving_too_high=Ship core is moving too high.
warpdrive.ship.guide.moving_too_low=Ship core is moving too low.
warpdrive.ship.guide.jump_aborted=Jump aborted!
warpdrive.ship.guide.jump_done=Jump done
warpdrive.ship.guide.schematic_not_found=Schematic not found or unknown error reading it: '%1$s'.
warpdrive.ship.guide.schematic_invalid_format=Invalid schematic format: %1$s
@ -892,14 +890,14 @@ warpdrive.ship.status_line.isolation=%1$d actieve isolatie-blokken geven %2$s%%
warpdrive.teleportation.guide.no_safe_spot=No safe spot found to summon player %1$s
warpdrive.transporter.status_line.from_to=Van (%1$.0f %2$.0f %3$.0f) naar (%4$.0f %5$.0f %6$.0f)
warpdrive.transporter_signature.status_line.invalid=§cNo transporter room linked
warpdrive.transporter_signature.status_line.invalid=No transporter room linked
warpdrive.transporter_signature.status_line.valid=Linked to transporter room %1$s\n§8%2$s
warpdrive.transporter_signature.get_missing=§cTransporter room has no signature yet!
warpdrive.transporter_signature.get_same=§cTransporter beacon is already linked to %1$s.
warpdrive.transporter_signature.get_missing=Transporter room has no signature yet!
warpdrive.transporter_signature.get_same=Transporter beacon is already linked to %1$s.
warpdrive.transporter_signature.get=Transporter beacon is now linked to %1$s.
warpdrive.transporter_signature.set_missing=§cTransporter beacon needs to be linked first!
warpdrive.transporter_signature.set_self=§cTransporter room can't target itself!
warpdrive.transporter_signature.set_same=§cTransporter room is already linked to %1$s.
warpdrive.transporter_signature.set_missing=Transporter beacon needs to be linked first!
warpdrive.transporter_signature.set_self=Transporter room can't target itself!
warpdrive.transporter_signature.set_same=Transporter room is already linked to %1$s.
warpdrive.transporter_signature.set=Transporter room is now linked to %1$s.
warpdrive.world_border.in_range=Proximity alert: world border is only %1$d m away!

View file

@ -616,7 +616,7 @@ tile.warpdrive.hull.superior.stairs.black.name=Black Stained Superior Hull Stair
warpdrive.guide.prefix=%1$s:
warpdrive.error.bad_tile_entity=§cэтот блок нужно сломать и поставить заново.
warpdrive.error.bad_tile_entity=этот блок нужно сломать и поставить заново.
warpdrive.error.internal_check_console=Internal error, check console for details
warpdrive.command.invalid_parameter=Invalid parameter %1$s
@ -650,15 +650,15 @@ warpdrive.beam_frequency.tooltip=Частота луча установлена
warpdrive.beam_frequency.get=Beam frequency %2$d has been retrieved from %1$s
warpdrive.beam_frequency.set=%1$s настроен на частоту луча %2$d
warpdrive.beam_frequency.status_line.valid=Частота луча %1$d действительна.
warpdrive.beam_frequency.status_line.invalid=§cЧастота луча %1$d недействительна.
warpdrive.beam_frequency.status_line.undefined=§7Undefined beam frequency.\n§bUse a Tuning fork§r to set Beam frequency.
warpdrive.beam_frequency.status_line.invalid=Частота луча %1$d недействительна.
warpdrive.beam_frequency.status_line.undefined=Undefined beam frequency.\n§bUse a Tuning fork§r to set Beam frequency.
warpdrive.control_channel.tooltip=Control channel is set to %1$d
warpdrive.control_channel.get=Control channel %2$d has been retrieved from %1$s
warpdrive.control_channel.set=%1$s is now tuned with Control channel %2$d
warpdrive.control_channel.status_line.valid=Control channel %1$d is valid.
warpdrive.control_channel.status_line.invalid=§cControl channel %1$d is invalid.
warpdrive.control_channel.status_line.undefined=§7Undefined Control channel.\n§bUse a Tuning fork§r to set it.
warpdrive.control_channel.status_line.invalid=Control channel %1$d is invalid.
warpdrive.control_channel.status_line.undefined=Undefined Control channel.\n§bUse a Tuning fork§r to set it.
warpdrive.is_enabled.set.enabled=Switched ON!
warpdrive.is_enabled.set.disabled=Switched off!
@ -667,20 +667,20 @@ warpdrive.tooltip.item_tag.breathing_helmet=§bSpace breathing§r consuming Air
warpdrive.tooltip.item_tag.fly_in_space=§bSpace compatible jetpack§r.
warpdrive.tooltip.item_tag.no_fall_damage=§bAbsorbs fall damage§r.
warpdrive.upgrade.result.no_upgrade_to_dismount=§cNo upgrade to dismount.
warpdrive.upgrade.result.not_enough_upgrades=§cYou need at least 1 item to upgrade this block.
warpdrive.upgrade.result.invalid_upgrade=§cThis is not a valid item to upgrade this block.
warpdrive.upgrade.result.invalid_upgrade_for_projector=§cThis upgrade is too big for a projector, use a relay instead.
warpdrive.upgrade.result.invalid_upgrade_for_relay=§cThis upgrade only applies to projectors.
warpdrive.upgrade.result.no_upgrade_to_dismount=No upgrade to dismount.
warpdrive.upgrade.result.not_enough_upgrades=You need at least 1 item to upgrade this block.
warpdrive.upgrade.result.invalid_upgrade=This is not a valid item to upgrade this block.
warpdrive.upgrade.result.invalid_upgrade_for_projector=This upgrade is too big for a projector, use a relay instead.
warpdrive.upgrade.result.invalid_upgrade_for_relay=This upgrade only applies to projectors.
warpdrive.upgrade.result.valid_upgrades=Valid upgrades for this block include: %1$s. @TODO not implemented yet
warpdrive.upgrade.result.too_many_upgrades=§cThere's already %1$d upgrades installed.
warpdrive.upgrade.result.too_many_upgrades=There's already %1$d upgrades installed.
warpdrive.upgrade.result.dismounted=Upgrade %1$s was dismounted successfully.
warpdrive.upgrade.result.mounted=Upgrade %1$s was mounted successfully.
warpdrive.upgrade.result.wrong_shape_side=§cThere's no Electromagnetic projector on this side.
warpdrive.upgrade.result.no_shape_to_dismount=§cNo shape to dismount.
warpdrive.upgrade.result.not_enough_shapes.double=§cYou need at least 2 items to set the shape of a double sided projector.
warpdrive.upgrade.result.not_enough_shapes.single=§cYou need at least 1 item to set the shape of a single sided projector.
warpdrive.upgrade.result.wrong_shape_side=There's no Electromagnetic projector on this side.
warpdrive.upgrade.result.no_shape_to_dismount=No shape to dismount.
warpdrive.upgrade.result.not_enough_shapes.double=You need at least 2 items to set the shape of a double sided projector.
warpdrive.upgrade.result.not_enough_shapes.single=You need at least 1 item to set the shape of a single sided projector.
warpdrive.upgrade.result.shape_dismounted=Shape dismounted successfully.
warpdrive.upgrade.result.shape_mounted=Shape mounted successfully.
@ -692,9 +692,9 @@ warpdrive.video_channel.get=Video channel %2$d has been retrieved from %1$s
warpdrive.video_channel.set=%1$s настроен на видеоканал %2$d
warpdrive.video_channel.status_line.valid_self=Видеоканал %1$d действителен.
warpdrive.video_channel.status_line.valid_other=Видеоканал %1$d действителен для камеры на %2$s.
warpdrive.video_channel.status_line.invalid=§cВидеоканал %1$d недействителен.
warpdrive.video_channel.status_line.not_loaded=§cВидеоканал %1$d недействителен или камера слишком далеко.
warpdrive.video_channel.status_line.undefined=§7Undefined Video channel.\n§bUse a Tuning fork§r to set it.
warpdrive.video_channel.status_line.invalid=Видеоканал %1$d недействителен.
warpdrive.video_channel.status_line.not_loaded=Видеоканал %1$d недействителен или камера слишком далеко.
warpdrive.video_channel.status_line.undefined=Undefined Video channel.\n§bUse a Tuning fork§r to set it.
warpdrive.accelerator.guide.low_power.not_enough_storage=Energy storage is too low; we need at least %1$d to continue operation but can only store %2$d
@ -733,7 +733,7 @@ warpdrive.cloaking_core.missing_channeling_coils=Integrity down to %1$d%%: missi
warpdrive.cloaking_core.missing_projecting_coils=Integrity down to %1$d%%: missing projecting coil(s) towards %2$s
warpdrive.cloaking_core.valid=System is valid
warpdrive.cloaking_core.disabled=Маскировка выключена
warpdrive.cloaking_core.low_power=§cМаскировка выключилась, нужно больше энергии, капитан!
warpdrive.cloaking_core.low_power=Маскировка выключилась, нужно больше энергии, капитан!
warpdrive.cloaking_core.cloaking=Маскировка %1$d уровня покрывает %2$d блоков.
warpdrive.compat.guide.block_detected_on_board=%1$s detected on board!
@ -750,7 +750,7 @@ warpdrive.energy.side.changed_to_disabled=%1$s side changed to Disabled mode!
warpdrive.force_field.guide.low_power=We're running out of power captain, reduce our consumption or get that scottish engineer to boost our power!
warpdrive.force_field.shape.status_line.none=§cShape isn't defined.
warpdrive.force_field.shape.status_line.none=Shape isn't defined.
warpdrive.force_field.shape.status_line.double=Shape is a full %1$s
warpdrive.force_field.shape.status_line.single=Shape is an half %1$s
warpdrive.force_field.shape.status_line.sphere=sphere
@ -825,27 +825,29 @@ warpdrive.security_station.guide.registered_players=Прирепленные и
warpdrive.security_station.guide.player_registered=You're now registered on this security station.\nRegistered players are %1$s
warpdrive.security_station.guide.player_unregistered=You've been unregistered from this security station.\nAttached players are %1$s
# Note for translators: you want to keep each line shorter than 50 characters so that it fits on computer screens.
warpdrive.ship.guide.cooling_countdown=Ship core is cooling down... %1$d s to go...
warpdrive.ship.guide.pre_jumping=Running pre-jump checklist...
warpdrive.ship.guide.warming_up=Ship core is warming up... %1$d s to go...
warpdrive.ship.guide.insufficient_energy=Jump aborted! Insufficient energy in core.
warpdrive.ship.guide.warp_field_overlapping=Jump aborted! Own warp field contains another ship. Disable other core to continue.
warpdrive.ship.guide.cloaking_field_overlapping=Jump aborted! Core is cloaked, disable cloak to continue!
warpdrive.ship.guide.movement_aborted=Movement aborted!
warpdrive.ship.guide.insufficient_energy=Insufficient energy in core.
warpdrive.ship.guide.warp_field_overlapping=Own warp field contains another ship.\nDisable other core to continue.
warpdrive.ship.guide.cloaking_field_overlapping=Core is cloaked.\nDisable cloak to continue.
warpdrive.ship.guide.pre_jump_success=Ok
warpdrive.ship.guide.too_large_side_for_tier=Error: ship is too large (max is %1$d per side)\nUpgrade ship core or reduce span!
warpdrive.ship.guide.too_much_mass_for_planet=Ship is too big for a planet (max is %1$d blocks while ship mass is %2$d blocks).\nReduce your mass!
warpdrive.ship.guide.insufficient_mass_for_tier=Ship is too small for its category (%2$d < %1$d).\nDowngrade your ship core or increase your mass!
warpdrive.ship.guide.too_much_mass_for_tier=Ship is too big for its category (%2$d > %1$d).\nUpgrade your ship core or reduce your mass!
warpdrive.ship.guide.insufficient_mass_for_hyperspace=Ship is too small to engage Alcubierre drive (%1$d/%2$d).\nIncrease your mass to reach hyperspace.
warpdrive.ship.guide.jumpgate_is_too_far=Ship is not inside a jumpgate. Jump rejected.
warpdrive.ship.guide.jumpgate_partially_entered=Ship is only %.1f%% inside a jumpgate. Sorry, we'll loose too much crew as is, jump rejected.
warpdrive.ship.guide.jumpgate_not_defined=Destination jumpgate '%1$s' is unknown. Check jumpgate name.
warpdrive.ship.guide.jumpgate_blocked=Destination gate is blocked by obstacles. Aborting...
warpdrive.ship.guide.target_outside_planet_border=Target ship position is outside planet border, unable to jump!\nWorld borders are (%1$d %2$d %3$d) to (%4$d %5$d %6$d).
warpdrive.ship.guide.too_large_side_for_tier=Ship is too large, max is %1$d per side.\nUpgrade ship core or reduce span.
warpdrive.ship.guide.too_much_mass_for_planet=Ship is too big for a planet.\nReduce your mass below %1$d blocks.
warpdrive.ship.guide.insufficient_mass_for_tier=Ship is too small, min is %1$d block.\nDowngrade ship core or increase mass.
warpdrive.ship.guide.too_much_mass_for_tier=Ship is too big, max is %1$d blocks.\nUpgrade ship core or reduce your mass.
warpdrive.ship.guide.insufficient_mass_for_hyperspace=Ship is too small to engage Alcubierre drive.\nIncrease your mass to %2$d.
warpdrive.ship.guide.jumpgate_is_too_far=Ship is not inside a jumpgate.
warpdrive.ship.guide.jumpgate_partially_entered=Ship is only %.1f%% inside a jumpgate.\nSorry, we'll loose too much crew as is.
warpdrive.ship.guide.jumpgate_not_defined=Destination jumpgate '%1$s' is unknown.
warpdrive.ship.guide.jumpgate_blocked=Destination gate is blocked by obstacles.
warpdrive.ship.guide.target_outside_planet_border=Target position is outside planet border!\nWorld borders are (%1$d %2$d %3$d) to (%4$d %5$d %6$d).
warpdrive.ship.guide.invalid_y_coordinates=Invalid Y coordinate(s), check ship dimensions...
warpdrive.ship.guide.invalid_state=Invalid state, aborting jump...
warpdrive.ship.guide.overlapping_source_and_target=Jump aborted. Increase jump distance to continue.
warpdrive.ship.guide.not_enough_space_after_adjustment=\nNot enough space after adjustment, jump aborted!
warpdrive.ship.guide.overlapping_source_and_target=Target is too close. Increase jump distance to continue.
warpdrive.ship.guide.not_enough_space_after_adjustment=Not enough space after adjustment.
warpdrive.ship.guide.entering_hyperspace=Entering hyperspace...
warpdrive.ship.guide.leaving_hyperspace=Leaving hyperspace...
warpdrive.ship.guide.engaging_jumpgate_x=Engaging jumpgate towards %1$s!
@ -853,36 +855,32 @@ warpdrive.ship.guide.jumping_xyz=Jumping of %1$d blocks (XYZ %2$d %3$d %4$d)
warpdrive.ship.guide.turning_right=Turning to the right
warpdrive.ship.guide.turning_back=Turning back
warpdrive.ship.guide.turning_left=Turning to the left
warpdrive.ship.guide.anchor_block_detected=Jump aborted by on-board anchor block %1$s at (%2$d %3$d %4$d).
warpdrive.ship.guide.anchor_entity_detected=Anchor entity %1$s detected at (%2$d %3$d %4$d), aborting jump...
warpdrive.ship.guide.block_not_ready_for_jump=Jump aborted by on-board block %1$s at (%2$d %3$d %4$d).
warpdrive.ship.guide.anchor_block_detected=On-board anchor block %1$s detected at (%2$d %3$d %4$d).
warpdrive.ship.guide.anchor_entity_detected=Anchor entity %1$s detected at (%2$d %3$d %4$d).
warpdrive.ship.guide.block_not_ready_for_jump=On-board block %1$s at (%2$d %3$d %4$d) is not ready.
warpdrive.ship.guide.ship_snagged1=Ship snagged by %1$s at (%2$d %3$d %4$d).
warpdrive.ship.guide.ship_snagged2=Sneak right click the ship core to see your ship dimensions, then update your ship dimensions.
warpdrive.ship.guide.corrupted_block=Exception while saving ship, probably a corrupted block %1$s.
warpdrive.ship.guide.chunkloading_rejected_in_source_world=Chunkloading rejected in source world %1$s. Aborting.
warpdrive.ship.guide.too_many_source_chunks_to_load=Ship is extending over %1$d chunks in source world.
warpdrive.ship.guide.max_chunkloading=Max is currently set to %2$d in config/forgeChunkLoading.cfg. Aborting.\nClose the game, change your config/forgeChunkLoading.cfg configuration and try again.
warpdrive.ship.guide.save_exception=Exception while saving ship block %1$s.\nCheck console for details.
warpdrive.ship.guide.chunkloading_rejected_in_source_world=Chunkloading rejected in source world %1$s.
warpdrive.ship.guide.too_many_chunks_to_load=Ship extends over %1$d chunks.\nMax is set to %2$d in config/forgeChunkLoading.cfg.
warpdrive.ship.guide.max_chunkloading=Close the game, update config/forgeChunkLoading.cfg, then try again.
warpdrive.ship.guide.chunkloading_rejected_in_target_world=Chunkloading rejected in target world %s. Aborting.
warpdrive.ship.guide.too_many_target_chunks_to_load=Ship is extending over %1$d chunks in target world.
warpdrive.ship.guide.no_celestial_object_in_hyperspace=No star system exists in %1$s (%2$d), there's nowhere to exit hyperspace!
warpdrive.ship.guide.no_star_system_in_hyperspace=Ship is outside any star system, unable to exit hyperspace!\nClosest start system is ~%1$d m away (%2$d %3$d %4$d) to (%5$d %6$d %7$d).
warpdrive.ship.guide.unable_to_load_space_dimension=Unable to load Space dimension %1$d, aborting jump.
warpdrive.ship.guide.unable_to_reach_hyperspace_from_planet=Unable to reach hyperspace from a planet!
warpdrive.ship.guide.unable_to_reach_hyperspace_no_parent=Unable to reach hyperspace!\nThere's no parent defined for %1$s (%2$d).
warpdrive.ship.guide.unable_to_load_hyperspace_dimension=Unable to load Hyperspace dimension %1$d, aborting jump.
warpdrive.ship.guide.unable_to_reach_space_no_parent=There's no parent defined for %1$s (%2$d), unable to reach space!
warpdrive.ship.guide.unable_to_reach_space_outside_border=Ship is outside planet border, unable to reach space!\nClosest transition area is ~%1$d m away (%2$d %3$d %4$d) to (%5$d %6$d %7$d).
warpdrive.ship.guide.no_celestial_object_in_space=No planet exists in %1$s (%2$d), there's nowhere to land!
warpdrive.ship.guide.unable_to_land_outside_orbit=We're not in orbit of planet, unable to land!\nClosest planet is %1$d m away (%2$d %3$d %4$d) to (%5$d %6$d %7$d).
warpdrive.ship.guide.unable_to_land_virtual_planet=Sorry, we can't go to %1$s. This is a virtual celestial object. It's either a decorative planet or a server misconfiguration.
warpdrive.ship.guide.unable_to_land_invalid_id=Sorry, we can't land on %1$s because dimension %2$d isn't defined. It might be a missing mod or a server misconfiguration.
warpdrive.ship.guide.ship_collision=Ship collision detected around (%1$d %2$d %3$d). Damage report pending...
warpdrive.ship.guide.impassable_block_detected=Impassable %1$s detected at destination (%2$d %3$d %4$d).
warpdrive.ship.guide.no_star_system_in_range=Ship won't survive in deep space.\nClosest star system is ~%1$d m away (%2$d %3$d %4$d) to (%5$d %6$d %7$d).
warpdrive.ship.guide.exception_loading_dimension=Unable to load dimension %1$d.\nCheck console for a missing mod or configuration.
warpdrive.ship.guide.unable_to_reach_hyperspace_from_planet=Unable to engage Alcubierre drive on a planet.\nGet into orbit, then try again.
warpdrive.ship.guide.unable_to_reach_hyperspace_no_parent=Current location has no hyperspace connection.\nThere's no parent defined for %1$s (%2$d).
warpdrive.ship.guide.unable_to_reach_space_no_parent=Current location as no space connection.\nThere's no parent defined for %1$s (%2$d).
warpdrive.ship.guide.unable_to_reach_space_outside_border=Ship is outside planet border.\nClosest transition area is ~%1$d m away (%2$d %3$d %4$d) to (%5$d %6$d %7$d).
warpdrive.ship.guide.no_celestial_object_in_space=There's nowhere to land.\nNo planet exists in %1$s (%2$d).
warpdrive.ship.guide.unable_to_land_outside_orbit=Ship isn't orbiting of planet, unable to land!\nClosest planet is %1$d m away (%2$d %3$d %4$d) to (%5$d %6$d %7$d).
warpdrive.ship.guide.unable_to_land_virtual_planet=Celestial object %1$s is out of reach.\nIt's either a decorative planet or a server misconfiguration.
warpdrive.ship.guide.ship_collision=Collision detected around (%1$d %2$d %3$d).\nSend a maintenance team to check for damages!
warpdrive.ship.guide.impassable_block_detected=Impassable %1$s detected at (%2$d %3$d %4$d).
warpdrive.ship.guide.obstacle_block_detected=Obstacle %1$s detected at (%2$d %3$d %4$d).
warpdrive.ship.guide.entering_protected_area=Ship is entering a protected area at (%1$d %2$d %3$d).
warpdrive.ship.guide.entering_protected_area=Entering protected area at (%1$d %2$d %3$d).
warpdrive.ship.guide.moving_too_high=Ship core is moving too high.
warpdrive.ship.guide.moving_too_low=Ship core is moving too low.
warpdrive.ship.guide.jump_aborted=Jump aborted!
warpdrive.ship.guide.jump_done=Jump done
warpdrive.ship.guide.schematic_not_found=Schematic not found or unknown error reading it: '%1$s'.
warpdrive.ship.guide.schematic_invalid_format=Invalid schematic format: %1$s
@ -893,14 +891,14 @@ warpdrive.ship.status_line.isolation=%1$d активных блоков изол
warpdrive.teleportation.guide.no_safe_spot=No safe spot found to summon player %1$s
warpdrive.transporter.status_line.from_to=Из (%1$.0f %2$.0f %3$.0f) в (%4$.0f %5$.0f %6$.0f)
warpdrive.transporter_signature.status_line.invalid=§cNo transporter room linked
warpdrive.transporter_signature.status_line.invalid=No transporter room linked
warpdrive.transporter_signature.status_line.valid=Linked to transporter room %1$s\n§8%2$s
warpdrive.transporter_signature.get_missing=§cTransporter room has no signature yet!
warpdrive.transporter_signature.get_same=§cTransporter beacon is already linked to %1$s.
warpdrive.transporter_signature.get_missing=Transporter room has no signature yet!
warpdrive.transporter_signature.get_same=Transporter beacon is already linked to %1$s.
warpdrive.transporter_signature.get=Transporter beacon is now linked to %1$s.
warpdrive.transporter_signature.set_missing=§cTransporter beacon needs to be linked first!
warpdrive.transporter_signature.set_self=§cTransporter room can't target itself!
warpdrive.transporter_signature.set_same=§cTransporter room is already linked to %1$s.
warpdrive.transporter_signature.set_missing=Transporter beacon needs to be linked first!
warpdrive.transporter_signature.set_self=Transporter room can't target itself!
warpdrive.transporter_signature.set_same=Transporter room is already linked to %1$s.
warpdrive.transporter_signature.set=Transporter room is now linked to %1$s.
warpdrive.world_border.in_range=Proximity alert: world border is only %1$d m away!

View file

@ -617,7 +617,7 @@ tile.warpdrive.hull.superior.stairs.black.name=黑色卓越船体楼梯
warpdrive.guide.prefix=%1$s:
warpdrive.error.bad_tile_entity=§c需要重放置以更新此方块.
warpdrive.error.bad_tile_entity=需要重放置以更新此方块.
warpdrive.error.internal_check_console=Internal error, check console for details
warpdrive.command.invalid_parameter=Invalid parameter %1$s
@ -651,15 +651,15 @@ warpdrive.beam_frequency.tooltip=设置光束频率为%1$d
warpdrive.beam_frequency.get=光束频率%2$d 已从 %1$s 断开
warpdrive.beam_frequency.set=光束%1$s 正与频率 %2$d进行匹配
warpdrive.beam_frequency.status_line.valid=光束频率%1$d有效
warpdrive.beam_frequency.status_line.invalid=§c光束频率%1$d无效
warpdrive.beam_frequency.status_line.undefined=§7未定义的光束频率.\n§b使用一个音叉§r进行设置
warpdrive.beam_frequency.status_line.invalid=光束频率%1$d无效
warpdrive.beam_frequency.status_line.undefined=未定义的光束频率.\n§b使用一个音叉§r进行设置
warpdrive.control_channel.tooltip=控制连接设置为 %1$d
warpdrive.control_channel.get=控制连接 %2$d 已从 %1$s 断开
warpdrive.control_channel.set=%1$s 正与控制连接 %2$d 进行匹配
warpdrive.control_channel.status_line.valid=控制连接 %1$d 有效.
warpdrive.control_channel.status_line.invalid=§c控制连接 %1$d 无效.
warpdrive.control_channel.status_line.undefined=§7未定义控制连接.\n§b使用音叉§r进行设置.
warpdrive.control_channel.status_line.invalid=控制连接 %1$d 无效.
warpdrive.control_channel.status_line.undefined=未定义控制连接.\n§b使用音叉§r进行设置.
warpdrive.is_enabled.set.enabled=Switched ON!
warpdrive.is_enabled.set.disabled=Switched off!
@ -668,20 +668,20 @@ warpdrive.tooltip.item_tag.breathing_helmet=§b太空中呼吸§r消耗背包中
warpdrive.tooltip.item_tag.fly_in_space=§b太空喷气背包§r.
warpdrive.tooltip.item_tag.no_fall_damage=§b减少摔落伤害§r.
warpdrive.upgrade.result.no_upgrade_to_dismount=§c没有可卸载的升级
warpdrive.upgrade.result.not_enough_upgrades=§c你需要至少一个物品去升级这个方块
warpdrive.upgrade.result.invalid_upgrade=§c这不是一个能够升级升级方块的有效物品
warpdrive.upgrade.result.invalid_upgrade_for_projector=§c这个升级对于一个投影仪来说过于巨大,需要用一个继电器来替代它.
warpdrive.upgrade.result.invalid_upgrade_for_relay=§c这个升级只适用于投影仪.
warpdrive.upgrade.result.no_upgrade_to_dismount=没有可卸载的升级
warpdrive.upgrade.result.not_enough_upgrades=你需要至少一个物品去升级这个方块
warpdrive.upgrade.result.invalid_upgrade=这不是一个能够升级升级方块的有效物品
warpdrive.upgrade.result.invalid_upgrade_for_projector=这个升级对于一个投影仪来说过于巨大,需要用一个继电器来替代它.
warpdrive.upgrade.result.invalid_upgrade_for_relay=这个升级只适用于投影仪.
warpdrive.upgrade.result.valid_upgrades=这个方块所能加载的有效升级包括: %1$s. @TODO 仍未加载
warpdrive.upgrade.result.too_many_upgrades=§c这个 %1$d升级已经安装.
warpdrive.upgrade.result.too_many_upgrades=这个 %1$d升级已经安装.
warpdrive.upgrade.result.dismounted=升级 %1$s 已经被成功卸载.
warpdrive.upgrade.result.mounted=升级 %1$s已被成功安装.
warpdrive.upgrade.result.wrong_shape_side=§c这一边没有电磁投影仪。
warpdrive.upgrade.result.no_shape_to_dismount=§c没有模型可供卸载
warpdrive.upgrade.result.not_enough_shapes.double=§c你需要至少两个物品去设定一个双面投影仪所投影的形状.
warpdrive.upgrade.result.not_enough_shapes.single=§c你需要至少一个物品去设定一个单面投影仪所投影的形状.
warpdrive.upgrade.result.wrong_shape_side=这一边没有电磁投影仪。
warpdrive.upgrade.result.no_shape_to_dismount=没有模型可供卸载
warpdrive.upgrade.result.not_enough_shapes.double=你需要至少两个物品去设定一个双面投影仪所投影的形状.
warpdrive.upgrade.result.not_enough_shapes.single=你需要至少一个物品去设定一个单面投影仪所投影的形状.
warpdrive.upgrade.result.shape_dismounted=模型卸载成功.
warpdrive.upgrade.result.shape_mounted=模型加载成功.
@ -693,9 +693,9 @@ warpdrive.video_channel.get=视频频道 %2$d 已从频道 %1$s 断开
warpdrive.video_channel.set=%1$s正在切换至频道%2$d
warpdrive.video_channel.status_line.valid_self=视频通道%1$d有效
warpdrive.video_channel.status_line.valid_other=相机的视频通道 %1$d有效位于%2$s.
warpdrive.video_channel.status_line.invalid=§c视频通道 %1$d 无效.
warpdrive.video_channel.status_line.not_loaded=§c视频通道 %1$d 无效或者是相机的距离太远!
warpdrive.video_channel.status_line.undefined=§7未定义的视频通道.\n§b使用一个音叉§r 去设置它.
warpdrive.video_channel.status_line.invalid=视频通道 %1$d 无效.
warpdrive.video_channel.status_line.not_loaded=视频通道 %1$d 无效或者是相机的距离太远!
warpdrive.video_channel.status_line.undefined=未定义的视频通道.\n§b使用一个音叉§r 去设置它.
warpdrive.accelerator.guide.low_power.not_enough_storage=能量不足;我们需要%1$d的能量储备维持运转 目前仅剩%2$d
@ -734,7 +734,7 @@ warpdrive.cloaking_core.missing_channeling_coils=完整度降低至 %1$d%%: %2$s
warpdrive.cloaking_core.missing_projecting_coils=完整度降低至 %1$d%%: 预计丢失 %2$s 线圈
warpdrive.cloaking_core.valid=系统认证
warpdrive.cloaking_core.disabled=伪装被禁用
warpdrive.cloaking_core.low_power=§c伪装失效,我们需要更多的能量.
warpdrive.cloaking_core.low_power=伪装失效,我们需要更多的能量.
warpdrive.cloaking_core.cloaking=一个层级 %1$d 伪装目前覆盖 %2$d方块!
warpdrive.compat.guide.block_detected_on_board=%1$s detected on board!
@ -751,7 +751,7 @@ warpdrive.energy.side.changed_to_disabled=%1$s侧面更改为禁用模式
warpdrive.force_field.guide.low_power=舰长,我们的能量已耗尽,请降低能耗或者找一个苏格兰工程师恢复能量!
warpdrive.force_field.shape.status_line.none=§c形状未定义.
warpdrive.force_field.shape.status_line.none=形状未定义.
warpdrive.force_field.shape.status_line.double=形状是完整的%1$s
warpdrive.force_field.shape.status_line.single=形状是半个%1$s
warpdrive.force_field.shape.status_line.sphere=球体
@ -826,27 +826,29 @@ warpdrive.security_station.guide.registered_players=所属的玩家: %1$s
warpdrive.security_station.guide.player_registered=You're now registered on this security station.\nRegistered players are %1$s
warpdrive.security_station.guide.player_unregistered=You've been unregistered from this security station.\nAttached players are %1$s
# Note for translators: you want to keep each line shorter than 50 characters so that it fits on computer screens.
warpdrive.ship.guide.cooling_countdown=Ship core is cooling down... %1$d s to go...
warpdrive.ship.guide.pre_jumping=Running pre-jump checklist...
warpdrive.ship.guide.warming_up=Ship core is warming up... %1$d s to go...
warpdrive.ship.guide.insufficient_energy=Jump aborted! Insufficient energy in core.
warpdrive.ship.guide.warp_field_overlapping=Jump aborted! Own warp field contains another ship. Disable other core to continue.
warpdrive.ship.guide.cloaking_field_overlapping=Jump aborted! Core is cloaked, disable cloak to continue!
warpdrive.ship.guide.movement_aborted=Movement aborted!
warpdrive.ship.guide.insufficient_energy=Insufficient energy in core.
warpdrive.ship.guide.warp_field_overlapping=Own warp field contains another ship.\nDisable other core to continue.
warpdrive.ship.guide.cloaking_field_overlapping=Core is cloaked.\nDisable cloak to continue.
warpdrive.ship.guide.pre_jump_success=Ok
warpdrive.ship.guide.too_large_side_for_tier=Error: ship is too large (max is %1$d per side)\nUpgrade ship core or reduce span!
warpdrive.ship.guide.too_much_mass_for_planet=Ship is too big for a planet (max is %1$d blocks while ship mass is %2$d blocks).\nReduce your mass!
warpdrive.ship.guide.insufficient_mass_for_tier=Ship is too small for its category (%2$d < %1$d).\nDowngrade your ship core or increase your mass!
warpdrive.ship.guide.too_much_mass_for_tier=Ship is too big for its category (%2$d > %1$d).\nUpgrade your ship core or reduce your mass!
warpdrive.ship.guide.insufficient_mass_for_hyperspace=Ship is too small to engage Alcubierre drive (%1$d/%2$d).\nIncrease your mass to reach hyperspace.
warpdrive.ship.guide.jumpgate_is_too_far=Ship is not inside a jumpgate. Jump rejected.
warpdrive.ship.guide.jumpgate_partially_entered=Ship is only %.1f%% inside a jumpgate. Sorry, we'll loose too much crew as is, jump rejected.
warpdrive.ship.guide.jumpgate_not_defined=Destination jumpgate '%1$s' is unknown. Check jumpgate name.
warpdrive.ship.guide.jumpgate_blocked=Destination gate is blocked by obstacles. Aborting...
warpdrive.ship.guide.target_outside_planet_border=Target ship position is outside planet border, unable to jump!\nWorld borders are (%1$d %2$d %3$d) to (%4$d %5$d %6$d).
warpdrive.ship.guide.too_large_side_for_tier=Ship is too large, max is %1$d per side.\nUpgrade ship core or reduce span.
warpdrive.ship.guide.too_much_mass_for_planet=Ship is too big for a planet.\nReduce your mass below %1$d blocks.
warpdrive.ship.guide.insufficient_mass_for_tier=Ship is too small, min is %1$d block.\nDowngrade ship core or increase mass.
warpdrive.ship.guide.too_much_mass_for_tier=Ship is too big, max is %1$d blocks.\nUpgrade ship core or reduce your mass.
warpdrive.ship.guide.insufficient_mass_for_hyperspace=Ship is too small to engage Alcubierre drive.\nIncrease your mass to %2$d.
warpdrive.ship.guide.jumpgate_is_too_far=Ship is not inside a jumpgate.
warpdrive.ship.guide.jumpgate_partially_entered=Ship is only %.1f%% inside a jumpgate.\nSorry, we'll loose too much crew as is.
warpdrive.ship.guide.jumpgate_not_defined=Destination jumpgate '%1$s' is unknown.
warpdrive.ship.guide.jumpgate_blocked=Destination gate is blocked by obstacles.
warpdrive.ship.guide.target_outside_planet_border=Target position is outside planet border!\nWorld borders are (%1$d %2$d %3$d) to (%4$d %5$d %6$d).
warpdrive.ship.guide.invalid_y_coordinates=Invalid Y coordinate(s), check ship dimensions...
warpdrive.ship.guide.invalid_state=Invalid state, aborting jump...
warpdrive.ship.guide.overlapping_source_and_target=Jump aborted. Increase jump distance to continue.
warpdrive.ship.guide.not_enough_space_after_adjustment=\nNot enough space after adjustment, jump aborted!
warpdrive.ship.guide.overlapping_source_and_target=Target is too close. Increase jump distance to continue.
warpdrive.ship.guide.not_enough_space_after_adjustment=Not enough space after adjustment.
warpdrive.ship.guide.entering_hyperspace=Entering hyperspace...
warpdrive.ship.guide.leaving_hyperspace=Leaving hyperspace...
warpdrive.ship.guide.engaging_jumpgate_x=Engaging jumpgate towards %1$s!
@ -854,36 +856,32 @@ warpdrive.ship.guide.jumping_xyz=Jumping of %1$d blocks (XYZ %2$d %3$d %4$d)
warpdrive.ship.guide.turning_right=Turning to the right
warpdrive.ship.guide.turning_back=Turning back
warpdrive.ship.guide.turning_left=Turning to the left
warpdrive.ship.guide.anchor_block_detected=Jump aborted by on-board anchor block %1$s at (%2$d %3$d %4$d).
warpdrive.ship.guide.anchor_entity_detected=Anchor entity %1$s detected at (%2$d %3$d %4$d), aborting jump...
warpdrive.ship.guide.block_not_ready_for_jump=Jump aborted by on-board block %1$s at (%2$d %3$d %4$d).
warpdrive.ship.guide.anchor_block_detected=On-board anchor block %1$s detected at (%2$d %3$d %4$d).
warpdrive.ship.guide.anchor_entity_detected=Anchor entity %1$s detected at (%2$d %3$d %4$d).
warpdrive.ship.guide.block_not_ready_for_jump=On-board block %1$s at (%2$d %3$d %4$d) is not ready.
warpdrive.ship.guide.ship_snagged1=Ship snagged by %1$s at (%2$d %3$d %4$d).
warpdrive.ship.guide.ship_snagged2=Sneak right click the ship core to see your ship dimensions, then update your ship dimensions.
warpdrive.ship.guide.corrupted_block=Exception while saving ship, probably a corrupted block %1$s.
warpdrive.ship.guide.chunkloading_rejected_in_source_world=Chunkloading rejected in source world %1$s. Aborting.
warpdrive.ship.guide.too_many_source_chunks_to_load=Ship is extending over %1$d chunks in source world.
warpdrive.ship.guide.max_chunkloading=Max is currently set to %2$d in config/forgeChunkLoading.cfg. Aborting.\nClose the game, change your config/forgeChunkLoading.cfg configuration and try again.
warpdrive.ship.guide.save_exception=Exception while saving ship block %1$s.\nCheck console for details.
warpdrive.ship.guide.chunkloading_rejected_in_source_world=Chunkloading rejected in source world %1$s.
warpdrive.ship.guide.too_many_chunks_to_load=Ship extends over %1$d chunks.\nMax is set to %2$d in config/forgeChunkLoading.cfg.
warpdrive.ship.guide.max_chunkloading=Close the game, update config/forgeChunkLoading.cfg, then try again.
warpdrive.ship.guide.chunkloading_rejected_in_target_world=Chunkloading rejected in target world %s. Aborting.
warpdrive.ship.guide.too_many_target_chunks_to_load=Ship is extending over %1$d chunks in target world.
warpdrive.ship.guide.no_celestial_object_in_hyperspace=No star system exists in %1$s (%2$d), there's nowhere to exit hyperspace!
warpdrive.ship.guide.no_star_system_in_hyperspace=Ship is outside any star system, unable to exit hyperspace!\nClosest start system is ~%1$d m away (%2$d %3$d %4$d) to (%5$d %6$d %7$d).
warpdrive.ship.guide.unable_to_load_space_dimension=Unable to load Space dimension %1$d, aborting jump.
warpdrive.ship.guide.unable_to_reach_hyperspace_from_planet=Unable to reach hyperspace from a planet!
warpdrive.ship.guide.unable_to_reach_hyperspace_no_parent=Unable to reach hyperspace!\nThere's no parent defined for %1$s (%2$d).
warpdrive.ship.guide.unable_to_load_hyperspace_dimension=Unable to load Hyperspace dimension %1$d, aborting jump.
warpdrive.ship.guide.unable_to_reach_space_no_parent=There's no parent defined for %1$s (%2$d), unable to reach space!
warpdrive.ship.guide.unable_to_reach_space_outside_border=Ship is outside planet border, unable to reach space!\nClosest transition area is ~%1$d m away (%2$d %3$d %4$d) to (%5$d %6$d %7$d).
warpdrive.ship.guide.no_celestial_object_in_space=No planet exists in %1$s (%2$d), there's nowhere to land!
warpdrive.ship.guide.unable_to_land_outside_orbit=We're not in orbit of planet, unable to land!\nClosest planet is %1$d m away (%2$d %3$d %4$d) to (%5$d %6$d %7$d).
warpdrive.ship.guide.unable_to_land_virtual_planet=Sorry, we can't go to %1$s. This is a virtual celestial object. It's either a decorative planet or a server misconfiguration.
warpdrive.ship.guide.unable_to_land_invalid_id=Sorry, we can't land on %1$s because dimension %2$d isn't defined. It might be a missing mod or a server misconfiguration.
warpdrive.ship.guide.ship_collision=Ship collision detected around (%1$d %2$d %3$d). Damage report pending...
warpdrive.ship.guide.impassable_block_detected=Impassable %1$s detected at destination (%2$d %3$d %4$d).
warpdrive.ship.guide.no_star_system_in_range=Ship won't survive in deep space.\nClosest star system is ~%1$d m away (%2$d %3$d %4$d) to (%5$d %6$d %7$d).
warpdrive.ship.guide.exception_loading_dimension=Unable to load dimension %1$d.\nCheck console for a missing mod or configuration.
warpdrive.ship.guide.unable_to_reach_hyperspace_from_planet=Unable to engage Alcubierre drive on a planet.\nGet into orbit, then try again.
warpdrive.ship.guide.unable_to_reach_hyperspace_no_parent=Current location has no hyperspace connection.\nThere's no parent defined for %1$s (%2$d).
warpdrive.ship.guide.unable_to_reach_space_no_parent=Current location as no space connection.\nThere's no parent defined for %1$s (%2$d).
warpdrive.ship.guide.unable_to_reach_space_outside_border=Ship is outside planet border.\nClosest transition area is ~%1$d m away (%2$d %3$d %4$d) to (%5$d %6$d %7$d).
warpdrive.ship.guide.no_celestial_object_in_space=There's nowhere to land.\nNo planet exists in %1$s (%2$d).
warpdrive.ship.guide.unable_to_land_outside_orbit=Ship isn't orbiting of planet, unable to land!\nClosest planet is %1$d m away (%2$d %3$d %4$d) to (%5$d %6$d %7$d).
warpdrive.ship.guide.unable_to_land_virtual_planet=Celestial object %1$s is out of reach.\nIt's either a decorative planet or a server misconfiguration.
warpdrive.ship.guide.ship_collision=Collision detected around (%1$d %2$d %3$d).\nSend a maintenance team to check for damages!
warpdrive.ship.guide.impassable_block_detected=Impassable %1$s detected at (%2$d %3$d %4$d).
warpdrive.ship.guide.obstacle_block_detected=Obstacle %1$s detected at (%2$d %3$d %4$d).
warpdrive.ship.guide.entering_protected_area=Ship is entering a protected area at (%1$d %2$d %3$d).
warpdrive.ship.guide.entering_protected_area=Entering protected area at (%1$d %2$d %3$d).
warpdrive.ship.guide.moving_too_high=Ship core is moving too high.
warpdrive.ship.guide.moving_too_low=Ship core is moving too low.
warpdrive.ship.guide.jump_aborted=Jump aborted!
warpdrive.ship.guide.jump_done=Jump done
warpdrive.ship.guide.schematic_not_found=Schematic not found or unknown error reading it: '%1$s'.
warpdrive.ship.guide.schematic_invalid_format=Invalid schematic format: %1$s
@ -894,14 +892,14 @@ warpdrive.ship.status_line.isolation=%1$d有效的隔离方块提供%2$s%%吸收
warpdrive.teleportation.guide.no_safe_spot=No safe spot found to summon player %1$s
warpdrive.transporter.status_line.from_to=从 (%1$.0f %2$.0f %3$.0f) 到 (%4$.0f %5$.0f %6$.0f)
warpdrive.transporter_signature.status_line.invalid=§cNo transporter room linked
warpdrive.transporter_signature.status_line.invalid=No transporter room linked
warpdrive.transporter_signature.status_line.valid=Linked to transporter room %1$s\n§8%2$s
warpdrive.transporter_signature.get_missing=§cTransporter room has no signature yet!
warpdrive.transporter_signature.get_same=§cTransporter beacon is already linked to %1$s.
warpdrive.transporter_signature.get_missing=Transporter room has no signature yet!
warpdrive.transporter_signature.get_same=Transporter beacon is already linked to %1$s.
warpdrive.transporter_signature.get=Transporter beacon is now linked to %1$s.
warpdrive.transporter_signature.set_missing=§cTransporter beacon needs to be linked first!
warpdrive.transporter_signature.set_self=§cTransporter room can't target itself!
warpdrive.transporter_signature.set_same=§cTransporter room is already linked to %1$s.
warpdrive.transporter_signature.set_missing=Transporter beacon needs to be linked first!
warpdrive.transporter_signature.set_self=Transporter room can't target itself!
warpdrive.transporter_signature.set_same=Transporter room is already linked to %1$s.
warpdrive.transporter_signature.set=Transporter room is now linked to %1$s.
warpdrive.world_border.in_range=Proximity alert: world border is only %1$d m away!

View file

@ -614,7 +614,7 @@ tile.warpdrive.hull.superior.stairs.black.name=黑色高階船體階梯
warpdrive.guide.prefix=%1$s:
warpdrive.error.bad_tile_entity=§c該塊需要重新放置。
warpdrive.error.bad_tile_entity=該塊需要重新放置。
warpdrive.error.internal_check_console=Internal error, check console for details
warpdrive.command.invalid_parameter=Invalid parameter %1$s
@ -648,15 +648,15 @@ warpdrive.beam_frequency.tooltip=光束頻率設置為 %1$d
warpdrive.beam_frequency.get=Beam frequency %2$d has been retrieved from %1$s
warpdrive.beam_frequency.set=%1$s 現在與波束頻率對準 %2$d
warpdrive.beam_frequency.status_line.valid=光束頻率 %1$d 已驗證。
warpdrive.beam_frequency.status_line.invalid=§c光束頻率 %1$d 是無效的。
warpdrive.beam_frequency.status_line.undefined=§7無效的光束頻率。\n§bUse 使用調音叉§r 來設置。
warpdrive.beam_frequency.status_line.invalid=光束頻率 %1$d 是無效的。
warpdrive.beam_frequency.status_line.undefined=無效的光束頻率。\n§bUse 使用調音叉§r 來設置。
warpdrive.control_channel.tooltip=Control channel is set to %1$d
warpdrive.control_channel.get=Control channel %2$d has been retrieved from %1$s
warpdrive.control_channel.set=%1$s is now tuned with Control channel %2$d
warpdrive.control_channel.status_line.valid=Control channel %1$d is valid.
warpdrive.control_channel.status_line.invalid=§cControl channel %1$d is invalid.
warpdrive.control_channel.status_line.undefined=§7Undefined Control channel.\n§bUse a Tuning fork§r to set it.
warpdrive.control_channel.status_line.invalid=Control channel %1$d is invalid.
warpdrive.control_channel.status_line.undefined=Undefined Control channel.\n§bUse a Tuning fork§r to set it.
warpdrive.is_enabled.set.enabled=Switched ON!
warpdrive.is_enabled.set.disabled=Switched off!
@ -666,20 +666,20 @@ warpdrive.tooltip.item_tag.breathing_helmet=§bSpace breathing§r consuming Air
warpdrive.tooltip.item_tag.fly_in_space=§b空間噴氣背包§r.
warpdrive.tooltip.item_tag.no_fall_damage=§b吸收跌落傷害§r.
warpdrive.upgrade.result.no_upgrade_to_dismount=§c無需升級即可卸載。
warpdrive.upgrade.result.not_enough_upgrades=§c您需要至少1個才能升級此塊。
warpdrive.upgrade.result.invalid_upgrade=§c這不是升級此方塊的有效項。
warpdrive.upgrade.result.invalid_upgrade_for_projector=§c此升級對於投射器而言太大,請改用繼電器。
warpdrive.upgrade.result.invalid_upgrade_for_relay=§c此升級僅適用於投射器。
warpdrive.upgrade.result.no_upgrade_to_dismount=無需升級即可卸載。
warpdrive.upgrade.result.not_enough_upgrades=您需要至少1個才能升級此塊。
warpdrive.upgrade.result.invalid_upgrade=這不是升級此方塊的有效項。
warpdrive.upgrade.result.invalid_upgrade_for_projector=此升級對於投射器而言太大,請改用繼電器。
warpdrive.upgrade.result.invalid_upgrade_for_relay=此升級僅適用於投射器。
warpdrive.upgrade.result.valid_upgrades=此方塊塊的有效升級包括: %1$s. @TODO 尚未執行。
warpdrive.upgrade.result.too_many_upgrades=§c已經有 %1$d 升級安裝。
warpdrive.upgrade.result.too_many_upgrades=已經有 %1$d 升級安裝。
warpdrive.upgrade.result.dismounted=升級 %1$s 成功卸下。
warpdrive.upgrade.result.mounted=升級 %1$s 已成功掛載。
warpdrive.upgrade.result.wrong_shape_side=§c這邊沒有電磁投射器。
warpdrive.upgrade.result.no_shape_to_dismount=§c沒有形狀來卸下。
warpdrive.upgrade.result.not_enough_shapes.double=§c您需要至少2個項目來設置雙面投射器的形狀。
warpdrive.upgrade.result.not_enough_shapes.single=§c至少需要1個項目來設置單面投射器的形狀。
warpdrive.upgrade.result.wrong_shape_side=這邊沒有電磁投射器。
warpdrive.upgrade.result.no_shape_to_dismount=沒有形狀來卸下。
warpdrive.upgrade.result.not_enough_shapes.double=您需要至少2個項目來設置雙面投射器的形狀。
warpdrive.upgrade.result.not_enough_shapes.single=至少需要1個項目來設置單面投射器的形狀。
warpdrive.upgrade.result.shape_dismounted=已成功卸載形狀。
warpdrive.upgrade.result.shape_mounted=形狀已成功安裝。
@ -691,9 +691,9 @@ warpdrive.video_channel.get=Video channel %2$d has been retrieved from %1$s
warpdrive.video_channel.set=%1$s 現在調整為視頻頻道 %2$d
warpdrive.video_channel.status_line.valid_self=視頻頻道 %1$d 有效。
warpdrive.video_channel.status_line.valid_other=視頻頻道 %1$d 對於攝像機 %2$s 有效
warpdrive.video_channel.status_line.invalid=§c視頻頻道 %1$d 是無效的。
warpdrive.video_channel.status_line.not_loaded=§c視頻頻道 %1$d 是無效的或者錄像機太過遙遠。
warpdrive.video_channel.status_line.undefined=§7未定義的視頻通道。\n§bUse 調音叉§r 來設定。
warpdrive.video_channel.status_line.invalid=視頻頻道 %1$d 是無效的。
warpdrive.video_channel.status_line.not_loaded=視頻頻道 %1$d 是無效的或者錄像機太過遙遠。
warpdrive.video_channel.status_line.undefined=未定義的視頻通道。\n§bUse 調音叉§r 來設定。
warpdrive.accelerator.guide.low_power.not_enough_storage=Energy storage is too low; we need at least %1$d to continue operation but can only store %2$d
@ -732,7 +732,7 @@ warpdrive.cloaking_core.missing_channeling_coils=Integrity down to %1$d%%: missi
warpdrive.cloaking_core.missing_projecting_coils=Integrity down to %1$d%%: missing projecting coil(s) towards %2$s
warpdrive.cloaking_core.valid=System is valid
warpdrive.cloaking_core.disabled=僞裝無效!
warpdrive.cloaking_core.low_power=§c僞裝失效了,我們需要更多的能量!艦長!
warpdrive.cloaking_core.low_power=僞裝失效了,我們需要更多的能量!艦長!
warpdrive.cloaking_core.cloaking=A 層 %1$d 僞裝目前正確覆蓋 %2$d 區域!
warpdrive.compat.guide.block_detected_on_board=%1$s detected on board!
@ -749,7 +749,7 @@ warpdrive.energy.side.changed_to_disabled=%1$s 側面變為能量禁用模式!
warpdrive.force_field.guide.low_power=我們的能量用完了,艦長!減少消耗,或讓引擎長提高我們的輸出!
warpdrive.force_field.shape.status_line.none=§c形狀未定義。
warpdrive.force_field.shape.status_line.none=形狀未定義。
warpdrive.force_field.shape.status_line.double=形狀是滿的 %1$s
warpdrive.force_field.shape.status_line.single=形狀是一半 %1$s
warpdrive.force_field.shape.status_line.sphere=領域
@ -824,27 +824,29 @@ warpdrive.security_station.guide.registered_players=屬於: %1$s
warpdrive.security_station.guide.player_registered=You're now registered on this security station.\nRegistered players are %1$s
warpdrive.security_station.guide.player_unregistered=You've been unregistered from this security station.\nAttached players are %1$s
# Note for translators: you want to keep each line shorter than 50 characters so that it fits on computer screens.
warpdrive.ship.guide.cooling_countdown=Ship core is cooling down... %1$d s to go...
warpdrive.ship.guide.pre_jumping=Running pre-jump checklist...
warpdrive.ship.guide.warming_up=Ship core is warming up... %1$d s to go...
warpdrive.ship.guide.insufficient_energy=Jump aborted! Insufficient energy in core.
warpdrive.ship.guide.warp_field_overlapping=Jump aborted! Own warp field contains another ship. Disable other core to continue.
warpdrive.ship.guide.cloaking_field_overlapping=Jump aborted! Core is cloaked, disable cloak to continue!
warpdrive.ship.guide.movement_aborted=Movement aborted!
warpdrive.ship.guide.insufficient_energy=Insufficient energy in core.
warpdrive.ship.guide.warp_field_overlapping=Own warp field contains another ship.\nDisable other core to continue.
warpdrive.ship.guide.cloaking_field_overlapping=Core is cloaked.\nDisable cloak to continue.
warpdrive.ship.guide.pre_jump_success=Ok
warpdrive.ship.guide.too_large_side_for_tier=Error: ship is too large (max is %1$d per side)\nUpgrade ship core or reduce span!
warpdrive.ship.guide.too_much_mass_for_planet=Ship is too big for a planet (max is %1$d blocks while ship mass is %2$d blocks).\nReduce your mass!
warpdrive.ship.guide.insufficient_mass_for_tier=Ship is too small for its category (%2$d < %1$d).\nDowngrade your ship core or increase your mass!
warpdrive.ship.guide.too_much_mass_for_tier=Ship is too big for its category (%2$d > %1$d).\nUpgrade your ship core or reduce your mass!
warpdrive.ship.guide.insufficient_mass_for_hyperspace=Ship is too small to engage Alcubierre drive (%1$d/%2$d).\nIncrease your mass to reach hyperspace.
warpdrive.ship.guide.jumpgate_is_too_far=Ship is not inside a jumpgate. Jump rejected.
warpdrive.ship.guide.jumpgate_partially_entered=Ship is only %.1f%% inside a jumpgate. Sorry, we'll loose too much crew as is, jump rejected.
warpdrive.ship.guide.jumpgate_not_defined=Destination jumpgate '%1$s' is unknown. Check jumpgate name.
warpdrive.ship.guide.jumpgate_blocked=Destination gate is blocked by obstacles. Aborting...
warpdrive.ship.guide.target_outside_planet_border=Target ship position is outside planet border, unable to jump!\nWorld borders are (%1$d %2$d %3$d) to (%4$d %5$d %6$d).
warpdrive.ship.guide.too_large_side_for_tier=Ship is too large, max is %1$d per side.\nUpgrade ship core or reduce span.
warpdrive.ship.guide.too_much_mass_for_planet=Ship is too big for a planet.\nReduce your mass below %1$d blocks.
warpdrive.ship.guide.insufficient_mass_for_tier=Ship is too small, min is %1$d block.\nDowngrade ship core or increase mass.
warpdrive.ship.guide.too_much_mass_for_tier=Ship is too big, max is %1$d blocks.\nUpgrade ship core or reduce your mass.
warpdrive.ship.guide.insufficient_mass_for_hyperspace=Ship is too small to engage Alcubierre drive.\nIncrease your mass to %2$d.
warpdrive.ship.guide.jumpgate_is_too_far=Ship is not inside a jumpgate.
warpdrive.ship.guide.jumpgate_partially_entered=Ship is only %.1f%% inside a jumpgate.\nSorry, we'll loose too much crew as is.
warpdrive.ship.guide.jumpgate_not_defined=Destination jumpgate '%1$s' is unknown.
warpdrive.ship.guide.jumpgate_blocked=Destination gate is blocked by obstacles.
warpdrive.ship.guide.target_outside_planet_border=Target position is outside planet border!\nWorld borders are (%1$d %2$d %3$d) to (%4$d %5$d %6$d).
warpdrive.ship.guide.invalid_y_coordinates=Invalid Y coordinate(s), check ship dimensions...
warpdrive.ship.guide.invalid_state=Invalid state, aborting jump...
warpdrive.ship.guide.overlapping_source_and_target=Jump aborted. Increase jump distance to continue.
warpdrive.ship.guide.not_enough_space_after_adjustment=\nNot enough space after adjustment, jump aborted!
warpdrive.ship.guide.overlapping_source_and_target=Target is too close. Increase jump distance to continue.
warpdrive.ship.guide.not_enough_space_after_adjustment=Not enough space after adjustment.
warpdrive.ship.guide.entering_hyperspace=Entering hyperspace...
warpdrive.ship.guide.leaving_hyperspace=Leaving hyperspace...
warpdrive.ship.guide.engaging_jumpgate_x=Engaging jumpgate towards %1$s!
@ -852,36 +854,32 @@ warpdrive.ship.guide.jumping_xyz=Jumping of %1$d blocks (XYZ %2$d %3$d %4$d)
warpdrive.ship.guide.turning_right=Turning to the right
warpdrive.ship.guide.turning_back=Turning back
warpdrive.ship.guide.turning_left=Turning to the left
warpdrive.ship.guide.anchor_block_detected=Jump aborted by on-board anchor block %1$s at (%2$d %3$d %4$d).
warpdrive.ship.guide.anchor_entity_detected=Anchor entity %1$s detected at (%2$d %3$d %4$d), aborting jump...
warpdrive.ship.guide.block_not_ready_for_jump=Jump aborted by on-board block %1$s at (%2$d %3$d %4$d).
warpdrive.ship.guide.anchor_block_detected=On-board anchor block %1$s detected at (%2$d %3$d %4$d).
warpdrive.ship.guide.anchor_entity_detected=Anchor entity %1$s detected at (%2$d %3$d %4$d).
warpdrive.ship.guide.block_not_ready_for_jump=On-board block %1$s at (%2$d %3$d %4$d) is not ready.
warpdrive.ship.guide.ship_snagged1=Ship snagged by %1$s at (%2$d %3$d %4$d).
warpdrive.ship.guide.ship_snagged2=Sneak right click the ship core to see your ship dimensions, then update your ship dimensions.
warpdrive.ship.guide.corrupted_block=Exception while saving ship, probably a corrupted block %1$s.
warpdrive.ship.guide.chunkloading_rejected_in_source_world=Chunkloading rejected in source world %1$s. Aborting.
warpdrive.ship.guide.too_many_source_chunks_to_load=Ship is extending over %1$d chunks in source world.
warpdrive.ship.guide.max_chunkloading=Max is currently set to %2$d in config/forgeChunkLoading.cfg. Aborting.\nClose the game, change your config/forgeChunkLoading.cfg configuration and try again.
warpdrive.ship.guide.save_exception=Exception while saving ship block %1$s.\nCheck console for details.
warpdrive.ship.guide.chunkloading_rejected_in_source_world=Chunkloading rejected in source world %1$s.
warpdrive.ship.guide.too_many_chunks_to_load=Ship extends over %1$d chunks.\nMax is set to %2$d in config/forgeChunkLoading.cfg.
warpdrive.ship.guide.max_chunkloading=Close the game, update config/forgeChunkLoading.cfg, then try again.
warpdrive.ship.guide.chunkloading_rejected_in_target_world=Chunkloading rejected in target world %s. Aborting.
warpdrive.ship.guide.too_many_target_chunks_to_load=Ship is extending over %1$d chunks in target world.
warpdrive.ship.guide.no_celestial_object_in_hyperspace=No star system exists in %1$s (%2$d), there's nowhere to exit hyperspace!
warpdrive.ship.guide.no_star_system_in_hyperspace=Ship is outside any star system, unable to exit hyperspace!\nClosest start system is ~%1$d m away (%2$d %3$d %4$d) to (%5$d %6$d %7$d).
warpdrive.ship.guide.unable_to_load_space_dimension=Unable to load Space dimension %1$d, aborting jump.
warpdrive.ship.guide.unable_to_reach_hyperspace_from_planet=Unable to reach hyperspace from a planet!
warpdrive.ship.guide.unable_to_reach_hyperspace_no_parent=Unable to reach hyperspace!\nThere's no parent defined for %1$s (%2$d).
warpdrive.ship.guide.unable_to_load_hyperspace_dimension=Unable to load Hyperspace dimension %1$d, aborting jump.
warpdrive.ship.guide.unable_to_reach_space_no_parent=There's no parent defined for %1$s (%2$d), unable to reach space!
warpdrive.ship.guide.unable_to_reach_space_outside_border=Ship is outside planet border, unable to reach space!\nClosest transition area is ~%1$d m away (%2$d %3$d %4$d) to (%5$d %6$d %7$d).
warpdrive.ship.guide.no_celestial_object_in_space=No planet exists in %1$s (%2$d), there's nowhere to land!
warpdrive.ship.guide.unable_to_land_outside_orbit=We're not in orbit of planet, unable to land!\nClosest planet is %1$d m away (%2$d %3$d %4$d) to (%5$d %6$d %7$d).
warpdrive.ship.guide.unable_to_land_virtual_planet=Sorry, we can't go to %1$s. This is a virtual celestial object. It's either a decorative planet or a server misconfiguration.
warpdrive.ship.guide.unable_to_land_invalid_id=Sorry, we can't land on %1$s because dimension %2$d isn't defined. It might be a missing mod or a server misconfiguration.
warpdrive.ship.guide.ship_collision=Ship collision detected around (%1$d %2$d %3$d). Damage report pending...
warpdrive.ship.guide.impassable_block_detected=Impassable %1$s detected at destination (%2$d %3$d %4$d).
warpdrive.ship.guide.no_star_system_in_range=Ship won't survive in deep space.\nClosest star system is ~%1$d m away (%2$d %3$d %4$d) to (%5$d %6$d %7$d).
warpdrive.ship.guide.exception_loading_dimension=Unable to load dimension %1$d.\nCheck console for a missing mod or configuration.
warpdrive.ship.guide.unable_to_reach_hyperspace_from_planet=Unable to engage Alcubierre drive on a planet.\nGet into orbit, then try again.
warpdrive.ship.guide.unable_to_reach_hyperspace_no_parent=Current location has no hyperspace connection.\nThere's no parent defined for %1$s (%2$d).
warpdrive.ship.guide.unable_to_reach_space_no_parent=Current location as no space connection.\nThere's no parent defined for %1$s (%2$d).
warpdrive.ship.guide.unable_to_reach_space_outside_border=Ship is outside planet border.\nClosest transition area is ~%1$d m away (%2$d %3$d %4$d) to (%5$d %6$d %7$d).
warpdrive.ship.guide.no_celestial_object_in_space=There's nowhere to land.\nNo planet exists in %1$s (%2$d).
warpdrive.ship.guide.unable_to_land_outside_orbit=Ship isn't orbiting of planet, unable to land!\nClosest planet is %1$d m away (%2$d %3$d %4$d) to (%5$d %6$d %7$d).
warpdrive.ship.guide.unable_to_land_virtual_planet=Celestial object %1$s is out of reach.\nIt's either a decorative planet or a server misconfiguration.
warpdrive.ship.guide.ship_collision=Collision detected around (%1$d %2$d %3$d).\nSend a maintenance team to check for damages!
warpdrive.ship.guide.impassable_block_detected=Impassable %1$s detected at (%2$d %3$d %4$d).
warpdrive.ship.guide.obstacle_block_detected=Obstacle %1$s detected at (%2$d %3$d %4$d).
warpdrive.ship.guide.entering_protected_area=Ship is entering a protected area at (%1$d %2$d %3$d).
warpdrive.ship.guide.entering_protected_area=Entering protected area at (%1$d %2$d %3$d).
warpdrive.ship.guide.moving_too_high=Ship core is moving too high.
warpdrive.ship.guide.moving_too_low=Ship core is moving too low.
warpdrive.ship.guide.jump_aborted=Jump aborted!
warpdrive.ship.guide.jump_done=Jump done
warpdrive.ship.guide.schematic_not_found=Schematic not found or unknown error reading it: '%1$s'.
warpdrive.ship.guide.schematic_invalid_format=Invalid schematic format: %1$s
@ -892,14 +890,14 @@ warpdrive.ship.status_line.isolation=%1$d 主動隔離塊由 %2$s%% 吸收。
warpdrive.teleportation.guide.no_safe_spot=No safe spot found to summon player %1$s
warpdrive.transporter.status_line.from_to=From (%1$.0f %2$.0f %3$.0f) to (%4$.0f %5$.0f %6$.0f)
warpdrive.transporter_signature.status_line.invalid=§cNo transporter room linked
warpdrive.transporter_signature.status_line.invalid=No transporter room linked
warpdrive.transporter_signature.status_line.valid=Linked to transporter room %1$s\n§8%2$s
warpdrive.transporter_signature.get_missing=§cTransporter room has no signature yet!
warpdrive.transporter_signature.get_same=§cTransporter beacon is already linked to %1$s.
warpdrive.transporter_signature.get_missing=Transporter room has no signature yet!
warpdrive.transporter_signature.get_same=Transporter beacon is already linked to %1$s.
warpdrive.transporter_signature.get=Transporter beacon is now linked to %1$s.
warpdrive.transporter_signature.set_missing=§cTransporter beacon needs to be linked first!
warpdrive.transporter_signature.set_self=§cTransporter room can't target itself!
warpdrive.transporter_signature.set_same=§cTransporter room is already linked to %1$s.
warpdrive.transporter_signature.set_missing=Transporter beacon needs to be linked first!
warpdrive.transporter_signature.set_self=Transporter room can't target itself!
warpdrive.transporter_signature.set_same=Transporter room is already linked to %1$s.
warpdrive.transporter_signature.set=Transporter room is now linked to %1$s.
warpdrive.world_border.in_range=Proximity alert: world border is only %1$d m away!

View file

@ -10,6 +10,7 @@ local data_handlers = { }
local device_handlers = {}
local event_handlers = {}
local event_timers = {}
local monitors = {}
local monitor_textScale = 0.5
@ -19,8 +20,8 @@ local page_endText = ""
local page_callbackDisplay
local page_callbackKey
local event_refreshPeriod_s = 3.0
local event_refreshTimerId = -1
local run_refreshPeriod_s = 3.0
local status_period_s = 1.0
local styles = {
normal = { front = colors.black , back = colors.lightGray },
@ -38,8 +39,8 @@ local styles = {
----------- Terminal & monitor support
local function setMonitorColorFrontBack(colorFront, colorBackground)
term.setBackgroundColor(colorBackground)
term.setTextColor(colorFront)
term.setBackgroundColor(colorBackground)
if monitors ~= nil then
for key, monitor in pairs(monitors) do
monitor.setTextColor(colorFront)
@ -265,10 +266,12 @@ end
local status_clockTarget = -1 -- < 0 when stopped, < clock when elapsed, > clock when ticking
local status_isWarning = false
local status_line = 0
local status_text = ""
local function status_clear()
if status_clockTarget > 0 then
status_clockTarget = -1
w.event_timer_stop("status")
local xSize, ySize = w.getResolution()
w.setCursorPos(1, ySize)
w.setColorNormal()
@ -280,38 +283,43 @@ local function status_isActive()
end
local function status_show(isWarning, text)
if isWarning or not w.status_isActive() then
if isWarning then
status_clockTarget = w.event_clock() + 1.0
else
status_clockTarget = w.event_clock() + 0.5
end
status_line = 1
status_isWarning = isWarning
if text ~= nil then
status_text = text
else
status_text = "???"
status_text = {}
local textToParse = text or "???"
for line in string.gmatch(textToParse, "[^\n]+") do
if line ~= "" then
table.insert(status_text, line)
end
end
w.status_refresh()
if isWarning then
status_clockTarget = w.event_clock() + 1.0 * #status_text
else
status_clockTarget = w.event_clock() + 0.5 * #status_text
end
w.event_timer_start("status", status_period_s, "timer_status")
end
-- always refresh as a visual clue
w.status_refresh()
end
local function status_refresh()
if status_clockTarget > 0 then
local xSize, ySize = w.getResolution()
w.setCursorPos(1, ySize)
w.setColorNormal()
w.clearLine()
if w.event_clock() < status_clockTarget then
if w.event_clock() > status_clockTarget and status_line == 1 then
w.status_clear()
else
local xSize, ySize = w.getResolution()
w.setCursorPos(1, ySize)
w.setColorNormal()
w.clearLine()
if status_isWarning then
w.setColorWarning()
else
w.setColorSuccess()
end
w.setCursorPos((xSize - status_text:len()) / 2, ySize)
w.write(" " .. status_text .. " ")
local text = status_text[status_line]
w.writeCentered(" " .. text .. " ")
w.setColorNormal()
else
status_clockTarget = -1
end
end
end
@ -322,12 +330,14 @@ local function status_showSuccess(text)
w.status_show(false, text)
end
local function status_tick()
if status_clockTarget > 0 and w.event_clock() > status_clockTarget then
local xSize, ySize = w.getResolution()
w.setCursorPos(1, ySize)
w.setColorNormal()
w.clearLine()
status_clockTarget = -1
if status_clockTarget > -1 then
local clockCurrent = w.event_clock()
if clockCurrent > status_clockTarget then
w.status_clear()
else
status_line = (status_line % #status_text) + 1
w.status_refresh()
end
end
end
@ -415,7 +425,6 @@ local function input_readInteger(currentValue)
term.setCursorBlink(true)
repeat
w.status_tick()
w.setCursorPos(x, y)
w.setColorNormal()
w.write(input .. " ")
@ -518,7 +527,6 @@ local function input_readText(currentValue)
term.setCursorBlink(true)
repeat
w.status_tick()
-- update display clearing extra characters
w.setCursorPos(x, y)
w.setColorNormal()
@ -637,7 +645,6 @@ local function input_readEnum(currentValue, list, toValue, toDescription, noValu
term.setCursorBlink(true)
repeat
w.status_tick()
w.setCursorPos(x, y)
w.setColorNormal()
if #list == 0 then
@ -752,22 +759,73 @@ local function event_clock()
return os.clock()
end
local function event_refresh_start()
if event_refreshTimerId == -1 then
event_refreshTimerId = os.startTimer(event_refreshPeriod_s)
local function event_timer_start(name, period_s, eventId)
local name = name or "-nameless-"
local eventId = eventId or "timer_" .. name
-- check for an already active timer
local countActives = 0
for id, entry in pairs(event_timers) do
if entry.name == name and entry.active then -- already one started
countActives = countActives + 1
end
end
if countActives > 0 then
if name ~= "status" then -- don't report status timer overlaps to prevent a stack overflow
w.status_showWarning("Timer already started for " .. name)
end
return
end
-- start a new timer
local period_s = period_s or 1.0
local id = os.startTimer(period_s)
event_timers[id] = {
active = true,
eventId = eventId,
name = name,
period_s = period_s
}
end
local function event_timer_stop(name)
local name = name or "-nameless-"
for id, entry in pairs(event_timers) do
if entry.name == name then
if entry.active then -- kill any active one
entry.active = false
os.cancelTimer(id)
else -- purge all legacy ones
event_timers[id] = nil
end
end
end
end
local function event_refresh_stop()
if event_refreshTimerId ~= -1 then
os.cancelTimer(event_refreshTimerId)
event_refreshTimerId = -1
local function event_timer_stopAll()
for id, entry in pairs(event_timers) do
if entry.active then
event_timers[id] = nil
os.cancelTimer(id)
end
end
end
local function event_refresh_tick()
event_refreshTimerId = -1
event_refresh_start()
local function event_timer_tick(id)
local entry = event_timers[id]
local isUnknown = entry == nil
if isUnknown then -- unknown id, report a warning
w.status_showWarning("Timer #" .. id .. " is unknown")
return
end
if not entry.active then -- dying timer, just ignore it
return
end
-- resolve the timer
os.queueEvent(entry.eventId, nil, nil, nil)
-- CC timers are one shot, so we start a new one, if still needed
if entry.active then
entry.active = false
w.event_timer_start(entry.name, entry.period_s)
end
end
local function event_register(eventName, callback)
@ -780,12 +838,7 @@ local function event_handler(eventName, param)
if eventName == "redstone" then
w.redstone_event(param)
elseif eventName == "timer" then
if param == event_refreshTimerId then
w.event_refresh_tick()
needRedraw = page_callbackDisplay ~= page_handlers['0'].display
else
w.status_showWarning("Timer #" .. param .. " is unknown")
end
w.event_timer_tick(param)
elseif eventName == "key_up" then
elseif eventName == "mouse_click" then
w.status_showSuccess("Use the keyboard, Luke!")
@ -1083,12 +1136,13 @@ local function run()
end
-- start refresh timer
w.event_refresh_start()
w.event_register("timer_refresh", function() return page_callbackDisplay ~= page_handlers['0'].display end )
w.event_register("timer_status" , function() w.status_tick() return false end )
w.event_timer_start("refresh", run_refreshPeriod_s, "timer_refresh")
-- main loop
selectPage('0')
repeat
w.status_tick()
if refresh then
w.clear()
page_callbackDisplay(false)
@ -1177,7 +1231,8 @@ local function run()
until abort
-- stop refresh timer
w.event_refresh_stop()
w.event_timer_stop("refresh")
w.event_timer_stopAll()
end
local function close()
@ -1242,9 +1297,10 @@ w = {
reboot = reboot,
sleep = sleep,
event_clock = event_clock,
event_refresh_start = event_refresh_start,
event_refresh_stop = event_refresh_stop,
event_refresh_tick = event_refresh_tick,
event_timer_start = event_timer_start,
event_timer_stop = event_timer_stop,
event_timer_stopAll = event_timer_stopAll,
event_timer_tick = event_timer_tick,
event_register = event_register,
event_handler = event_handler,
data_get = data_get,

View file

@ -417,38 +417,40 @@ function ship_page_controls()
ship.command("MANUAL", false)
ship_updateMovementStats()
end
-- w.writeLn("")
w.writeLn("Ship:")
w.writeLn(" Current position = " .. w.format_integer(ship_x) .. ", " .. w.format_integer(ship_y) .. ", " .. w.format_integer(ship_z))
local energyStored, energyMax, energyUnits = ship.getEnergyStatus()
if energyStored == nil then energyStored = 0 end
if energyMax == nil or energyMax == 0 then energyMax = 1 end
w.writeLn(" Energy = " .. math.floor(energyStored / energyMax * 100) .. " % (" .. w.format_integer(energyStored) .. " " .. energyUnits .. ")")
w.writeLn("")
-- w.writeLn("")
w.writeLn("Dimensions:")
w.writeLn(" Front, Right, Up = " .. w.format_integer(ship_front) .. ", " .. w.format_integer(ship_right) .. ", " .. w.format_integer(ship_up) .. " blocks")
w.writeLn(" Back, Left, Down = " .. w.format_integer(ship_back) .. ", " .. w.format_integer(ship_left) .. ", " .. w.format_integer(ship_down) .. " blocks")
local shipVolume, shipMass = ship.getShipSize()
if shipVolume == nil then
shipVolume = 0
shipMass = 0
end
w.write(" Volume, Mass = ")
if shipVolume == 0 then
w.write("?")
else
w.write(w.format_integer(shipVolume))
end
w.write(" blocks, ")
if shipMass == 0 then
w.write("?")
else
w.write(w.format_integer(shipMass))
end
w.writeLn(" tons")
end
w.setCursorPos(1, 2)
w.writeLn("Ship:")
w.writeLn(" Current position = " .. w.format_integer(ship_x) .. ", " .. w.format_integer(ship_y) .. ", " .. w.format_integer(ship_z))
local energyStored, energyMax, energyUnits = ship.getEnergyStatus()
if energyStored == nil then energyStored = 0 end
if energyMax == nil or energyMax == 0 then energyMax = 1 end
w.writeLn(" Energy = " .. math.floor(energyStored / energyMax * 100) .. " % (" .. w.format_integer(energyStored) .. " " .. energyUnits .. ")")
w.writeLn("")
w.writeLn("Dimensions:")
w.writeLn(" Front, Right, Up = " .. w.format_integer(ship_front) .. ", " .. w.format_integer(ship_right) .. ", " .. w.format_integer(ship_up) .. " blocks")
w.writeLn(" Back, Left, Down = " .. w.format_integer(ship_back) .. ", " .. w.format_integer(ship_left) .. ", " .. w.format_integer(ship_down) .. " blocks")
local shipMass, shipVolume = ship.getShipSize()
if shipMass == nil then
shipMass = 0
shipVolume = 0
end
w.write(" Mass, Volume = ")
if shipMass == 0 then
w.write("?")
else
w.write(w.format_integer(shipMass))
end
w.write(" tons, ")
if shipVolume == 0 then
w.write("?")
else
w.write(w.format_integer(shipVolume))
end
w.writeLn(" blocks")
if isValid == true then
w.writeLn("")
w.writeLn("Warp data:")
ship_writeMovement(" Movement = ")

View file

@ -34,6 +34,7 @@ local data_handlers = { }
local device_handlers = {}
local event_handlers = {}
local event_timers = {}
local monitors = {}
local monitor_textScale = 0.5
@ -47,8 +48,8 @@ local page_endText = ""
local page_callbackDisplay
local page_callbackKey
local event_refreshPeriod_s = 20.0
local event_refreshTimerId = -1
local run_refreshPeriod_s = 20.0
local status_period_s = 1.0
local styles = {
normal = { front = colors.black , back = colors.lightGray },
@ -271,10 +272,12 @@ end
local status_clockTarget = -1 -- < 0 when stopped, < clock when elapsed, > clock when ticking
local status_isWarning = false
local status_line = 0
local status_text = ""
local function status_clear()
if status_clockTarget > 0 then
status_clockTarget = -1
w.event_timer_stop("status")
local xSize, ySize = w.getResolution()
w.setCursorPos(1, ySize)
w.setColorNormal()
@ -286,38 +289,43 @@ local function status_isActive()
end
local function status_show(isWarning, text)
if isWarning or not w.status_isActive() then
if isWarning then
status_clockTarget = w.event_clock() + 1.0
else
status_clockTarget = w.event_clock() + 0.5
end
status_line = 1
status_isWarning = isWarning
if text ~= nil then
status_text = text
else
status_text = "???"
status_text = {}
local textToParse = text or "???"
for line in string.gmatch(textToParse, "[^\n]+") do
if line ~= "" then
table.insert(status_text, line)
end
end
w.status_refresh()
if isWarning then
status_clockTarget = w.event_clock() + 1.0 * #status_text
else
status_clockTarget = w.event_clock() + 0.5 * #status_text
end
w.event_timer_start("status", status_period_s, "timer_status")
end
-- always refresh as a visual clue
w.status_refresh()
end
local function status_refresh()
if status_clockTarget > 0 then
local xSize, ySize = w.getResolution()
w.setCursorPos(1, ySize)
w.setColorNormal()
w.clearLine()
if w.event_clock() < status_clockTarget then
if w.event_clock() > status_clockTarget and status_line == 1 then
w.status_clear()
else
local xSize, ySize = w.getResolution()
w.setCursorPos(1, ySize)
w.setColorNormal()
w.clearLine()
if status_isWarning then
w.setColorWarning()
else
w.setColorSuccess()
end
w.setCursorPos((xSize - status_text:len() - 2) / 2, ySize)
w.write(" " .. status_text .. " ")
local text = status_text[status_line]
w.writeCentered(" " .. text .. " ")
w.setColorNormal()
else
status_clockTarget = -1
end
end
end
@ -328,12 +336,14 @@ local function status_showSuccess(text)
w.status_show(false, text)
end
local function status_tick()
if status_clockTarget > 0 and w.event_clock() > status_clockTarget then
local xSize, ySize = w.getResolution()
w.setCursorPos(1, ySize)
w.setColorNormal()
w.clearLine()
status_clockTarget = -1
if status_clockTarget > -1 then
local clockCurrent = w.event_clock()
if clockCurrent > status_clockTarget then
w.status_clear()
else
status_line = (status_line % #status_text) + 1
w.status_refresh()
end
end
end
@ -421,7 +431,6 @@ local function input_readInteger(currentValue)
term.setCursorBlink(true)
repeat
w.status_tick()
w.setCursorPos(x, y)
w.setColorNormal()
w.write(input .. " ")
@ -525,7 +534,6 @@ local function input_readText(currentValue)
term.setCursorBlink(true)
repeat
w.status_tick()
-- update display clearing extra characters
w.setCursorPos(x, y)
w.setColorNormal()
@ -646,7 +654,6 @@ local function input_readEnum(currentValue, list, toValue, toDescription, noValu
term.setCursorBlink(true)
repeat
w.status_tick()
w.setCursorPos(x, y)
w.setColorNormal()
if #list == 0 then
@ -762,21 +769,79 @@ local function event_clock()
return computer.uptime()
end
local function event_refresh_start()
if event_refreshTimerId == -1 then
event_refreshTimerId = event.timer(event_refreshPeriod_s, function () w.event_refresh_tick() end, math.huge)
local function event_timer_start(name, period_s, eventId)
local name = name or "-nameless-"
local eventId = eventId or "timer_" .. name
-- check for an already active timer
local countActives = 0
for id, entry in pairs(event_timers) do
if entry.name == name and entry.active then -- already one started
countActives = countActives + 1
end
end
if countActives > 0 then
if name ~= "status" then -- don't report status timer overlaps to prevent a stack overflow
w.status_showWarning("Timer already started for " .. name)
end
return
end
-- start a new timer
local period_s = period_s or 1.0
local id = event.timer(period_s, function () w.event_timer_tick(name) end, math.huge)
event_timers[id] = {
active = true,
eventId = eventId,
name = name,
period_s = period_s
}
end
local function event_timer_stop(name)
local name = name or "-nameless-"
for id, entry in pairs(event_timers) do
if entry.name == name then
if entry.active then -- kill any active one
entry.active = false
event.cancel(id)
else -- purge all legacy ones
event_timers[id] = nil
end
end
end
end
local function event_refresh_stop()
if event_refreshTimerId ~= -1 then
event.cancel(event_refreshTimerId)
event_refreshTimerId = -1
local function event_timer_stopAll()
for id, entry in pairs(event_timers) do
if entry.active then
event_timers[id] = nil
event.cancel(id)
end
end
end
local function event_refresh_tick()
event.push("timer_refresh")
local function event_timer_tick(name)
local entry = nil
local isUnknown = true
for idLoop, entryLoop in pairs(event_timers) do
if entryLoop.name == name then
isUnknown = false
if entryLoop.active then
entry = entryLoop
end
end
end
if isUnknown then -- unknown id, report a warning
w.status_showWarning("Timer " .. name .. " is unknown")
return
end
if entry == nil then -- dying timer, just ignore it
return
end
if not entry.active then -- dying timer, just ignore it
return
end
-- resolve the timer
event.push(entry.eventId)
end
local function event_register(eventName, callback)
@ -788,8 +853,6 @@ local function event_handler(eventName, param)
local needRedraw = false
if eventName == "redstone" then
-- w.redstone_event(param)
elseif eventName == "timer_refresh" then
needRedraw = page_callbackDisplay ~= page_handlers['0'].display
elseif eventName == "key_up" then
elseif eventName == "touch" then
w.status_showSuccess("Use the keyboard, Luke!")
@ -1056,12 +1119,13 @@ local function run()
end
-- start refresh timer
w.event_refresh_start()
w.event_register("timer_refresh", function() return page_callbackDisplay ~= page_handlers['0'].display end )
w.event_register("timer_status" , function() w.status_tick() return false end )
w.event_timer_start("refresh", run_refreshPeriod_s, "timer_refresh")
-- main loop
selectPage('0')
repeat
w.status_tick()
if refresh then
w.clear()
page_callbackDisplay(false)
@ -1149,7 +1213,8 @@ local function run()
until abort
-- stop refresh timer
w.event_refresh_stop()
w.event_timer_stop("refresh")
w.event_timer_stopAll()
end
local function close()
@ -1213,9 +1278,10 @@ w = {
reboot = reboot,
sleep = sleep,
event_clock = event_clock,
event_refresh_start = event_refresh_start,
event_refresh_stop = event_refresh_stop,
event_refresh_tick = event_refresh_tick,
event_timer_start = event_timer_start,
event_timer_stop = event_timer_stop,
event_timer_stopAll = event_timer_stopAll,
event_timer_tick = event_timer_tick,
event_register = event_register,
event_handler = event_handler,
data_get = data_get,

View file

@ -421,38 +421,40 @@ function ship_page_controls()
ship.command("MANUAL", false)
ship_updateMovementStats()
end
-- w.writeLn("")
w.writeLn("Ship:")
w.writeLn(" Current position = " .. w.format_integer(ship_x) .. ", " .. w.format_integer(ship_y) .. ", " .. w.format_integer(ship_z))
local energyStored, energyMax, energyUnits = ship.getEnergyStatus()
if energyStored == nil then energyStored = 0 end
if energyMax == nil or energyMax == 0 then energyMax = 1 end
w.writeLn(" Energy = " .. math.floor(energyStored / energyMax * 100) .. " % (" .. w.format_integer(energyStored) .. " " .. energyUnits .. ")")
w.writeLn("")
-- w.writeLn("")
w.writeLn("Dimensions:")
w.writeLn(" Front, Right, Up = " .. w.format_integer(ship_front) .. ", " .. w.format_integer(ship_right) .. ", " .. w.format_integer(ship_up) .. " blocks")
w.writeLn(" Back, Left, Down = " .. w.format_integer(ship_back) .. ", " .. w.format_integer(ship_left) .. ", " .. w.format_integer(ship_down) .. " blocks")
local shipVolume, shipMass = ship.getShipSize()
if shipVolume == nil then
shipVolume = 0
shipMass = 0
end
w.write(" Volume, Mass = ")
if shipVolume == 0 then
w.write("?")
else
w.write(w.format_integer(shipVolume))
end
w.write(" blocks, ")
if shipMass == 0 then
w.write("?")
else
w.write(w.format_integer(shipMass))
end
w.writeLn(" tons")
end
w.setCursorPos(1, 2)
w.writeLn("Ship:")
w.writeLn(" Current position = " .. w.format_integer(ship_x) .. ", " .. w.format_integer(ship_y) .. ", " .. w.format_integer(ship_z))
local energyStored, energyMax, energyUnits = ship.getEnergyStatus()
if energyStored == nil then energyStored = 0 end
if energyMax == nil or energyMax == 0 then energyMax = 1 end
w.writeLn(" Energy = " .. math.floor(energyStored / energyMax * 100) .. " % (" .. w.format_integer(energyStored) .. " " .. energyUnits .. ")")
w.writeLn("")
w.writeLn("Dimensions:")
w.writeLn(" Front, Right, Up = " .. w.format_integer(ship_front) .. ", " .. w.format_integer(ship_right) .. ", " .. w.format_integer(ship_up) .. " blocks")
w.writeLn(" Back, Left, Down = " .. w.format_integer(ship_back) .. ", " .. w.format_integer(ship_left) .. ", " .. w.format_integer(ship_down) .. " blocks")
local shipMass, shipVolume = ship.getShipSize()
if shipMass == nil then
shipMass = 0
shipVolume = 0
end
w.write(" Mass, Volume = ")
if shipMass == 0 then
w.write("?")
else
w.write(w.format_integer(shipMass))
end
w.write(" tons, ")
if shipVolume == 0 then
w.write("?")
else
w.write(w.format_integer(shipVolume))
end
w.writeLn(" blocks")
if isValid == true then
w.writeLn("")
w.writeLn("Warp data:")
ship_writeMovement(" Movement = ")