From 0fe3230640a047dcb3e293ceaa047b7f3d83e17f Mon Sep 17 00:00:00 2001 From: zelophed Date: Sat, 31 Jul 2021 14:21:19 +0200 Subject: [PATCH 01/79] color me surprised - move functionality of ColorHelper into a new Color class - replace usage of java.awt.Color with our own color in most cases --- .../content/contraptions/KineticDebugger.java | 4 +- .../contraptions/base/KineticData.java | 28 +- .../base/KineticTileEntityRenderer.java | 11 +- .../train/CouplingRenderer.java | 4 +- .../fluids/particle/FluidStackParticle.java | 8 +- .../goggles/GoggleOverlayRenderer.java | 41 ++- .../itemAssembly/SequencedAssemblyItem.java | 4 +- .../particle/AirFlowParticle.java | 8 +- .../particle/RotationIndicatorParticle.java | 4 +- .../processing/InWorldProcessing.java | 4 +- .../burner/BlazeBurnerTileEntity.java | 52 ++- .../contraptions/relays/gauge/GaugeBlock.java | 8 +- .../relays/gauge/SpeedGaugeTileEntity.java | 4 +- .../relays/gauge/StressGaugeTileEntity.java | 6 +- .../curiosities/ChromaticCompoundColor.java | 12 +- .../curiosities/ChromaticCompoundItem.java | 4 +- .../armor/CopperBacktankArmorLayer.java | 4 +- .../block/depot/EjectorTargetHandler.java | 4 +- .../diodes/AdjustableRepeaterInstance.java | 6 +- .../diodes/AdjustableRepeaterRenderer.java | 4 +- .../block/mechanicalArm/ArmInstance.java | 6 +- .../block/mechanicalArm/ArmRenderer.java | 4 +- .../block/redstone/AnalogLeverInstance.java | 6 +- .../block/redstone/AnalogLeverRenderer.java | 4 +- .../block/redstone/NixieTubeRenderer.java | 6 +- .../content/palettes/ScoriaVertexColor.java | 17 +- .../config/ui/BaseConfigScreen.java | 2 +- .../foundation/config/ui/ConfigHelper.java | 2 +- .../config/ui/ConfigScreenList.java | 10 +- .../config/ui/SubMenuConfigScreen.java | 2 +- .../foundation/fluid/FluidRenderer.java | 4 +- .../create/foundation/gui/AllGuiTextures.java | 3 +- .../create/foundation/gui/AllIcons.java | 4 +- .../create/foundation/gui/BoxElement.java | 10 +- .../gui/DelegatedStencilElement.java | 4 +- .../create/foundation/gui/GuiGameElement.java | 4 +- .../simibubi/create/foundation/gui/Theme.java | 6 +- .../create/foundation/gui/UIRenderHelper.java | 68 ++-- .../gui/mainMenu/CreateMainMenuScreen.java | 5 +- .../foundation/gui/widgets/BoxWidget.java | 13 +- .../ponder/NavigatableSimiScreen.java | 3 +- .../ponder/PonderTooltipHandler.java | 6 +- .../create/foundation/ponder/PonderUI.java | 26 +- .../foundation/ponder/SceneBuilder.java | 20 +- .../ponder/content/PonderPalette.java | 20 +- .../ponder/elements/InputWindowElement.java | 5 +- .../ponder/elements/TextWindowElement.java | 6 +- .../foundation/ponder/ui/PonderButton.java | 20 +- .../foundation/render/SuperByteBuffer.java | 7 +- .../tileEntity/behaviour/ValueBox.java | 6 +- .../create/foundation/utility/Color.java | 322 ++++++++++++++++++ .../foundation/utility/ColorHelper.java | 135 -------- .../foundation/utility/outliner/Outline.java | 17 +- 53 files changed, 582 insertions(+), 411 deletions(-) create mode 100644 src/main/java/com/simibubi/create/foundation/utility/Color.java delete mode 100644 src/main/java/com/simibubi/create/foundation/utility/ColorHelper.java diff --git a/src/main/java/com/simibubi/create/content/contraptions/KineticDebugger.java b/src/main/java/com/simibubi/create/content/contraptions/KineticDebugger.java index 0a3fa7cbd..32ca513d9 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/KineticDebugger.java +++ b/src/main/java/com/simibubi/create/content/contraptions/KineticDebugger.java @@ -5,7 +5,7 @@ import com.simibubi.create.content.contraptions.base.IRotate; import com.simibubi.create.content.contraptions.base.KineticTileEntity; import com.simibubi.create.content.contraptions.base.KineticTileEntityRenderer; import com.simibubi.create.foundation.config.AllConfigs; -import com.simibubi.create.foundation.utility.ColorHelper; +import com.simibubi.create.foundation.utility.Color; import com.simibubi.create.foundation.utility.VecHelper; import net.minecraft.block.BlockState; @@ -47,7 +47,7 @@ public class KineticDebugger { CreateClient.OUTLINER.chaseAABB("kineticSource", shape.bounds() .move(toOutline)) .lineWidth(1 / 16f) - .colored(te.hasSource() ? ColorHelper.colorFromLong(te.network) : 0xffcc00); + .colored(te.hasSource() ? Color.generateFromLong(te.network).getRGB() : 0xffcc00); if (state.getBlock() instanceof IRotate) { Axis axis = ((IRotate) state.getBlock()).getRotationAxis(state); diff --git a/src/main/java/com/simibubi/create/content/contraptions/base/KineticData.java b/src/main/java/com/simibubi/create/content/contraptions/base/KineticData.java index 2976a4cfd..0b5b15595 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/base/KineticData.java +++ b/src/main/java/com/simibubi/create/content/contraptions/base/KineticData.java @@ -3,7 +3,7 @@ package com.simibubi.create.content.contraptions.base; import com.jozufozu.flywheel.backend.gl.buffer.MappedBuffer; import com.jozufozu.flywheel.backend.instancing.Instancer; import com.jozufozu.flywheel.core.materials.BasicData; -import com.simibubi.create.foundation.utility.ColorHelper; +import com.simibubi.create.foundation.utility.Color; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.vector.Vector3f; @@ -44,31 +44,17 @@ public class KineticData extends BasicData { } public KineticData setColor(KineticTileEntity te) { - if (te.hasSource()) { - setColor(te.network); + if (te.hasNetwork()) { + setColor(Color.generateFromLong(te.network)); }else { - setColor(0xFF, 0xFF, 0x00); - } - return this; - } - - public KineticData setColor(Long l) { - if (l != null) - return setColor(l.longValue()); - else { setColor(0xFF, 0xFF, 0xFF); - return this; } + return this; } - private KineticData setColor(long l) { - int color = ColorHelper.colorFromLong(l); - byte r = (byte) ((color >> 16) & 0xFF); - byte g = (byte) ((color >> 8) & 0xFF); - byte b = (byte) (color & 0xFF); - setColor(r, g, b); - - return this; + public KineticData setColor(Color c) { + setColor(c.getRed(), c.getGreen(), c.getBlue()); + return this; } public KineticData setRotationalSpeed(float rotationalSpeed) { diff --git a/src/main/java/com/simibubi/create/content/contraptions/base/KineticTileEntityRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/base/KineticTileEntityRenderer.java index 91dc9f7ee..5961777ca 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/base/KineticTileEntityRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/base/KineticTileEntityRenderer.java @@ -11,7 +11,7 @@ import com.simibubi.create.foundation.render.Compartment; import com.simibubi.create.foundation.render.SuperByteBuffer; import com.simibubi.create.foundation.tileEntity.renderer.SafeTileEntityRenderer; import com.simibubi.create.foundation.utility.AnimationTickHolder; -import com.simibubi.create.foundation.utility.ColorHelper; +import com.simibubi.create.foundation.utility.Color; import net.minecraft.block.BlockState; import net.minecraft.client.renderer.IRenderTypeBuffer; @@ -77,19 +77,18 @@ public class KineticTileEntityRenderer extends SafeTileEntityRenderer 0) - buffer.color(ColorHelper.mixColors(white, 0xFF0000, overStressedEffect)); + buffer.color(Color.WHITE.mixWith(Color.RED, overStressedEffect)); else - buffer.color(ColorHelper.mixColors(white, 0x00FFBB, -overStressedEffect)); + buffer.color(Color.WHITE.mixWith(Color.SPRING_GREEN, -overStressedEffect)); else - buffer.color(white); + buffer.color(Color.WHITE); } return buffer; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/train/CouplingRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/train/CouplingRenderer.java index 5183b2959..1b8cef08a 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/train/CouplingRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/train/CouplingRenderer.java @@ -12,7 +12,7 @@ import com.simibubi.create.content.contraptions.components.structureMovement.tra import com.simibubi.create.foundation.render.PartialBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; import com.simibubi.create.foundation.utility.AnimationTickHolder; -import com.simibubi.create.foundation.utility.ColorHelper; +import com.simibubi.create.foundation.utility.Color; import com.simibubi.create.foundation.utility.Couple; import com.simibubi.create.foundation.utility.VecHelper; @@ -225,7 +225,7 @@ public class CouplingRenderer { .position() .add(0, yOffset, 0); - int color = ColorHelper.mixColors(0xabf0e9, 0xee8572, (float) MathHelper + int color = Color.mixColors(0xabf0e9, 0xee8572, (float) MathHelper .clamp(Math.abs(first.getCouplingLength(true) - connectedCenter.distanceTo(mainCenter)) * 8, 0, 1)); CreateClient.OUTLINER.showLine(mainCart.getId() + "", mainCenter, connectedCenter) diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/particle/FluidStackParticle.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/particle/FluidStackParticle.java index 12a2eaacb..08927cb60 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/particle/FluidStackParticle.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/particle/FluidStackParticle.java @@ -2,7 +2,7 @@ package com.simibubi.create.content.contraptions.fluids.particle; import com.simibubi.create.AllParticleTypes; import com.simibubi.create.content.contraptions.fluids.potion.PotionFluid; -import com.simibubi.create.foundation.utility.ColorHelper; +import com.simibubi.create.foundation.utility.Color; import net.minecraft.client.Minecraft; import net.minecraft.client.particle.IParticleRenderType; @@ -43,7 +43,7 @@ public class FluidStackParticle extends SpriteTexturedParticle { this.multiplyColor(fluid.getFluid() .getAttributes() .getColor(fluid)); - + this.xd = vx; this.yd = vy; this.zd = vz; @@ -98,12 +98,12 @@ public class FluidStackParticle extends SpriteTexturedParticle { if (!onGround && level.random.nextFloat() < 1 / 8f) return; - Vector3d rgb = ColorHelper.getRGB(fluid.getFluid() + Vector3d rgb = Color.vectorFromRGB(fluid.getFluid() .getAttributes() .getColor(fluid)); level.addParticle(ParticleTypes.ENTITY_EFFECT, x, y, z, rgb.x, rgb.y, rgb.z); } - + protected boolean canEvaporate() { return fluid.getFluid() instanceof PotionFluid; } diff --git a/src/main/java/com/simibubi/create/content/contraptions/goggles/GoggleOverlayRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/goggles/GoggleOverlayRenderer.java index 20b67aa52..51a5575b1 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/goggles/GoggleOverlayRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/goggles/GoggleOverlayRenderer.java @@ -18,7 +18,7 @@ import com.simibubi.create.foundation.config.CClient; import com.simibubi.create.foundation.gui.GuiGameElement; import com.simibubi.create.foundation.gui.Theme; import com.simibubi.create.foundation.tileEntity.behaviour.ValueBox; -import com.simibubi.create.foundation.utility.ColorHelper; +import com.simibubi.create.foundation.utility.Color; import com.simibubi.create.foundation.utility.Iterate; import com.simibubi.create.foundation.utility.Lang; import com.simibubi.create.foundation.utility.outliner.Outline; @@ -46,7 +46,7 @@ public class GoggleOverlayRenderer { private static final List> customGogglePredicates = new LinkedList<>(); private static final Map outlines = CreateClient.OUTLINER.getOutlines(); - + public static int hoverTicks = 0; public static BlockPos lastHovered = null; @@ -74,15 +74,15 @@ public class GoggleOverlayRenderer { BlockPos pos = result.getBlockPos(); ItemStack headSlot = mc.player.getItemBySlot(EquipmentSlotType.HEAD); TileEntity te = world.getBlockEntity(pos); - - if (lastHovered == null || lastHovered.equals(pos)) + + if (lastHovered == null || lastHovered.equals(pos)) hoverTicks++; - else + else hoverTicks = 0; lastHovered = pos; boolean wearingGoggles = AllItems.GOGGLES.isIn(headSlot); - for (Supplier supplier : customGogglePredicates) + for (Supplier supplier : customGogglePredicates) wearingGoggles |= supplier.get(); boolean hasGoggleInformation = te instanceof IHaveGoggleInformation; @@ -179,26 +179,25 @@ public class GoggleOverlayRenderer { float fade = MathHelper.clamp((hoverTicks + partialTicks) / 12f, 0, 1); Boolean useCustom = cfg.overlayCustomColor.get(); - int colorBackground = useCustom ? cfg.overlayBackgroundColor.get() - : ColorHelper.applyAlpha(Theme.i(Theme.Key.VANILLA_TOOLTIP_BACKGROUND), .75f); - int colorBorderTop = - useCustom ? cfg.overlayBorderColorTop.get() : Theme.i(Theme.Key.VANILLA_TOOLTIP_BORDER, true); - int colorBorderBot = - useCustom ? cfg.overlayBorderColorBot.get() : Theme.i(Theme.Key.VANILLA_TOOLTIP_BORDER, false); + Color colorBackground = useCustom ? + new Color(cfg.overlayBackgroundColor.get()) : + Theme.c(Theme.Key.VANILLA_TOOLTIP_BACKGROUND).scaleAlpha(.75f); + Color colorBorderTop = useCustom ? + new Color(cfg.overlayBorderColorTop.get()) : + Theme.c(Theme.Key.VANILLA_TOOLTIP_BORDER, true).copy(); + Color colorBorderBot = useCustom ? + new Color(cfg.overlayBorderColorBot.get()) : + Theme.c(Theme.Key.VANILLA_TOOLTIP_BORDER, false).copy(); if (fade < 1) { ms.translate((1 - fade) * Math.signum(cfg.overlayOffsetX.get() + .5f) * 4, 0, 0); - int alphaMask = 0xFF000000; - if ((alphaMask & colorBackground) != 0) - colorBackground = ColorHelper.applyAlpha(colorBackground, fade); - if ((alphaMask & colorBorderTop) != 0) - colorBorderTop = ColorHelper.applyAlpha(colorBorderTop, fade); - if ((alphaMask & colorBorderBot) != 0) - colorBorderBot = ColorHelper.applyAlpha(colorBorderBot, fade); + colorBackground.scaleAlpha(fade); + colorBorderTop.scaleAlpha(fade); + colorBorderBot.scaleAlpha(fade); } - + GuiUtils.drawHoveringText(ms, tooltip, posX, posY, tooltipScreen.width, tooltipScreen.height, -1, - colorBackground, colorBorderTop, colorBorderBot, mc.font); + colorBackground.getRGB(), colorBorderTop.getRGB(), colorBorderBot.getRGB(), mc.font); ItemStack item = AllItems.GOGGLES.asStack(); GuiGameElement.of(item) diff --git a/src/main/java/com/simibubi/create/content/contraptions/itemAssembly/SequencedAssemblyItem.java b/src/main/java/com/simibubi/create/content/contraptions/itemAssembly/SequencedAssemblyItem.java index fa37002d0..36eead8d9 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/itemAssembly/SequencedAssemblyItem.java +++ b/src/main/java/com/simibubi/create/content/contraptions/itemAssembly/SequencedAssemblyItem.java @@ -1,6 +1,6 @@ package com.simibubi.create.content.contraptions.itemAssembly; -import com.simibubi.create.foundation.utility.ColorHelper; +import com.simibubi.create.foundation.utility.Color; import net.minecraft.item.Item; import net.minecraft.item.ItemGroup; @@ -36,7 +36,7 @@ public class SequencedAssemblyItem extends Item { @Override public int getRGBDurabilityForDisplay(ItemStack stack) { - return ColorHelper.mixColors(0xFF_46FFE0, 0xFF_FFC074, (float) getDurabilityForDisplay(stack)); + return Color.mixColors(0xFF_46FFE0, 0xFF_FFC074, (float) getDurabilityForDisplay(stack)); } } diff --git a/src/main/java/com/simibubi/create/content/contraptions/particle/AirFlowParticle.java b/src/main/java/com/simibubi/create/content/contraptions/particle/AirFlowParticle.java index 22b0bbe7f..62c88b26f 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/particle/AirFlowParticle.java +++ b/src/main/java/com/simibubi/create/content/contraptions/particle/AirFlowParticle.java @@ -5,7 +5,7 @@ import javax.annotation.Nonnull; import com.simibubi.create.Create; import com.simibubi.create.content.contraptions.components.fan.IAirCurrentSource; import com.simibubi.create.content.contraptions.processing.InWorldProcessing; -import com.simibubi.create.foundation.utility.ColorHelper; +import com.simibubi.create.foundation.utility.Color; import com.simibubi.create.foundation.utility.VecHelper; import net.minecraft.block.Blocks; @@ -102,7 +102,7 @@ public class AirFlowParticle extends SimpleAnimatedParticle { InWorldProcessing.Type type = source.getAirCurrent().getSegmentAt((float) distance); if (type == InWorldProcessing.Type.SPLASHING) { - setColor(ColorHelper.mixColors(0x4499FF, 0x2277FF, level.random.nextFloat())); + setColor(Color.mixColors(0x4499FF, 0x2277FF, level.random.nextFloat())); setAlpha(1f); selectSprite(level.random.nextInt(3)); if (level.random.nextFloat() < 1 / 32f) @@ -114,7 +114,7 @@ public class AirFlowParticle extends SimpleAnimatedParticle { } if (type == InWorldProcessing.Type.SMOKING) { - setColor(ColorHelper.mixColors(0x0, 0x555555, level.random.nextFloat())); + setColor(Color.mixColors(0x0, 0x555555, level.random.nextFloat())); setAlpha(1f); selectSprite(level.random.nextInt(3)); if (level.random.nextFloat() < 1 / 32f) @@ -126,7 +126,7 @@ public class AirFlowParticle extends SimpleAnimatedParticle { } if (type == InWorldProcessing.Type.BLASTING) { - setColor(ColorHelper.mixColors(0xFF4400, 0xFF8855, level.random.nextFloat())); + setColor(Color.mixColors(0xFF4400, 0xFF8855, level.random.nextFloat())); setAlpha(.5f); selectSprite(level.random.nextInt(3)); if (level.random.nextFloat() < 1 / 32f) diff --git a/src/main/java/com/simibubi/create/content/contraptions/particle/RotationIndicatorParticle.java b/src/main/java/com/simibubi/create/content/contraptions/particle/RotationIndicatorParticle.java index 28b6290b9..17480d203 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/particle/RotationIndicatorParticle.java +++ b/src/main/java/com/simibubi/create/content/contraptions/particle/RotationIndicatorParticle.java @@ -3,7 +3,7 @@ package com.simibubi.create.content.contraptions.particle; import com.mojang.blaze3d.vertex.IVertexBuilder; import com.simibubi.create.content.contraptions.goggles.GogglesItem; import com.simibubi.create.foundation.utility.AnimationTickHolder; -import com.simibubi.create.foundation.utility.ColorHelper; +import com.simibubi.create.foundation.utility.Color; import com.simibubi.create.foundation.utility.VecHelper; import net.minecraft.client.Minecraft; @@ -38,7 +38,7 @@ public class RotationIndicatorParticle extends SimpleAnimatedParticle { this.quadSize *= 0.75F; this.lifetime = lifeSpan + this.random.nextInt(32); this.setFadeColor(color); - this.setColor(ColorHelper.mixColors(color, 0xFFFFFF, .5f)); + this.setColor(Color.mixColors(color, 0xFFFFFF, .5f)); this.setSpriteFromAge(sprite); this.radius1 = radius1; this.radius = radius1; diff --git a/src/main/java/com/simibubi/create/content/contraptions/processing/InWorldProcessing.java b/src/main/java/com/simibubi/create/content/contraptions/processing/InWorldProcessing.java index 5f97cb6c1..1269ff7fc 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/processing/InWorldProcessing.java +++ b/src/main/java/com/simibubi/create/content/contraptions/processing/InWorldProcessing.java @@ -17,7 +17,7 @@ import com.simibubi.create.content.contraptions.relays.belt.transport.Transporte import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.item.ItemHelper; import com.simibubi.create.foundation.tileEntity.behaviour.belt.TransportedItemStackHandlerBehaviour.TransportedResult; -import com.simibubi.create.foundation.utility.ColorHelper; +import com.simibubi.create.foundation.utility.Color; import net.minecraft.block.Block; import net.minecraft.block.BlockState; @@ -307,7 +307,7 @@ public class InWorldProcessing { world.addParticle(ParticleTypes.POOF, vec.x, vec.y + .25f, vec.z, 0, 1 / 16f, 0); break; case SPLASHING: - Vector3d color = ColorHelper.getRGB(0x0055FF); + Vector3d color = Color.vectorFromRGB(0x0055FF); world.addParticle(new RedstoneParticleData((float) color.x, (float) color.y, (float) color.z, 1), vec.x + (world.random.nextFloat() - .5f) * .5f, vec.y + .5f, vec.z + (world.random.nextFloat() - .5f) * .5f, 0, 1 / 8f, 0); diff --git a/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerTileEntity.java index ceedacaf4..edd70defc 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerTileEntity.java @@ -9,7 +9,7 @@ import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlo import com.simibubi.create.foundation.tileEntity.SmartTileEntity; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.ColorHelper; +import com.simibubi.create.foundation.utility.Color; import com.simibubi.create.foundation.utility.animation.LerpedFloat; import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser; @@ -22,34 +22,25 @@ import net.minecraft.tileentity.TileEntityType; import net.minecraft.util.SoundCategory; import net.minecraft.util.SoundEvents; import net.minecraft.util.math.MathHelper; -import net.minecraft.util.math.vector.Vector3d; import net.minecraftforge.common.ForgeHooks; public class BlazeBurnerTileEntity extends SmartTileEntity { public static final int MAX_HEAT_CAPACITY = 10000; - private static final Vector3d EMPTY_COLOR = new Vector3d(0, 0, 0); - private final static Vector3d[][] PARTICLE_COLORS; - private final static Vector3d[] CREATIVE_PARTICLE_COLORS; - static { - int[][] colors = { + private final static Color[][] PARTICLE_COLORS = { { }, - { 0x3B141A, 0x47141A, 0x7A3B24, 0x854D26 }, - { 0x2A0103, 0x741B0A, 0xC38246, 0xCCBD78 }, - { 0x630B03, 0x8B3503, 0xBC8200, 0xCCC849 }, - { 0x1C6378, 0x4798B5, 0x4DA6C0, 0xBAC8CE } - }; - - int[] creativeColors = { 0x54295D, 0x6E3C76, 0xA5479F, 0x85157C }; - - PARTICLE_COLORS = new Vector3d[colors.length][]; - for (int i = 0; i < colors.length; i++) { - PARTICLE_COLORS[i] = ColorHelper.toVectors(colors[i]); - } - - CREATIVE_PARTICLE_COLORS = ColorHelper.toVectors(creativeColors); - } + { new Color(0x3B141A), new Color(0x47141A), new Color(0x7A3B24), new Color(0x854D26) }, + { new Color(0x2A0103), new Color(0x741B0A), new Color(0xC38246), new Color(0xCCBD78) }, + { new Color(0x630B03), new Color(0x8B3503), new Color(0xBC8200), new Color(0xCCC849) }, + { new Color(0x1C6378), new Color(0x4798B5), new Color(0x4DA6C0), new Color(0xBAC8CE) } + }; + private final static Color[] CREATIVE_PARTICLE_COLORS = { + new Color(0x54295D), + new Color(0x6E3C76), + new Color(0xA5479F), + new Color(0x85157C) + }; protected FuelType activeFuel; protected int remainingBurnTime; @@ -296,23 +287,20 @@ public class BlazeBurnerTileEntity extends SmartTileEntity { } } - protected void spawnParticle(Vector3d color, float scale, int avgAge, boolean hot, double speed, double spread) { + protected void spawnParticle(Color color, float scale, int avgAge, boolean hot, double speed, double spread) { Random random = level.getRandom(); level.addAlwaysVisibleParticle( - new CubeParticleData((float) color.x, (float) color.y, (float) color.z, scale, avgAge, hot), + new CubeParticleData(color.getRedAsFloat(), color.getGreenAsFloat(), color.getBlueAsFloat(), scale, avgAge, hot), (double) worldPosition.getX() + 0.5D + (random.nextDouble() * 2.0 - 1D) * spread, (double) worldPosition.getY() + 0.6D + (random.nextDouble() / 4.0), (double) worldPosition.getZ() + 0.5D + (random.nextDouble() * 2.0 - 1D) * spread, 0.0D, speed, 0.0D); } - protected void spawnParticle(Vector3d[] colors, float scale, int avgAge, boolean hot, double speed, double spread) { - Vector3d color; - if (colors.length == 0) { - color = EMPTY_COLOR; - } else { - color = colors[(int) (Math.random() * colors.length)]; - } - spawnParticle(color, scale, avgAge, hot, speed, spread); + protected void spawnParticle(Color[] colors, float scale, int avgAge, boolean hot, double speed, double spread) { + if (colors.length == 0) + return; + + spawnParticle(colors[(int) (Math.random() * colors.length)], scale, avgAge, hot, speed, spread); } protected void spawnParticle(HeatLevel heatLevel, float scale, int avgAge, boolean hot, double speed, double spread) { diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/GaugeBlock.java b/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/GaugeBlock.java index 57c489955..bc2b9b445 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/GaugeBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/GaugeBlock.java @@ -5,7 +5,7 @@ import java.util.Random; import com.simibubi.create.AllTileEntities; import com.simibubi.create.content.contraptions.base.DirectionalAxisKineticBlock; import com.simibubi.create.content.contraptions.base.IRotate; -import com.simibubi.create.foundation.utility.ColorHelper; +import com.simibubi.create.foundation.utility.Color; import com.simibubi.create.foundation.utility.Iterate; import com.simibubi.create.foundation.utility.Lang; import com.simibubi.create.foundation.utility.VecHelper; @@ -70,9 +70,9 @@ public class GaugeBlock extends DirectionalAxisKineticBlock { /* * FIXME: Is there a new way of doing this in 1.16? Or cn we just delete it? - * + * * @SuppressWarnings("deprecation") - * + * * @Override * public MaterialColor getMaterialColor(BlockState state, IBlockReader worldIn, BlockPos pos) { * return Blocks.SPRUCE_PLANKS.getMaterialColor(state, worldIn, pos); @@ -152,7 +152,7 @@ public class GaugeBlock extends DirectionalAxisKineticBlock { if (!shouldRenderHeadOnFace(worldIn, pos, stateIn, face)) continue; - Vector3d rgb = ColorHelper.getRGB(color); + Vector3d rgb = Color.vectorFromRGB(color); Vector3d faceVec = Vector3d.atLowerCornerOf(face.getNormal()); Direction positiveFacing = Direction.get(AxisDirection.POSITIVE, face.getAxis()); Vector3d positiveFaceVec = Vector3d.atLowerCornerOf(positiveFacing.getNormal()); diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/SpeedGaugeTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/SpeedGaugeTileEntity.java index 391949d6e..d0c152453 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/SpeedGaugeTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/SpeedGaugeTileEntity.java @@ -6,7 +6,7 @@ import com.simibubi.create.content.contraptions.base.IRotate.SpeedLevel; import com.simibubi.create.content.contraptions.goggles.GogglesItem; import com.simibubi.create.foundation.advancement.AllTriggers; import com.simibubi.create.foundation.config.AllConfigs; -import com.simibubi.create.foundation.utility.ColorHelper; +import com.simibubi.create.foundation.utility.Color; import com.simibubi.create.foundation.utility.Lang; import net.minecraft.tileentity.TileEntityType; @@ -26,7 +26,7 @@ public class SpeedGaugeTileEntity extends GaugeTileEntity { float speed = Math.abs(getSpeed()); color = speed == 0 ? 0x333333 - : ColorHelper.mixColors(SpeedLevel.of(speed) + : Color.mixColors(SpeedLevel.of(speed) .getColor(), 0xffffff, .25f); if (speed == 69) AllTriggers.triggerForNearbyPlayers(AllTriggers.SPEED_READ, level, worldPosition, 6, GogglesItem::canSeeParticles); diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/StressGaugeTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/StressGaugeTileEntity.java index 1ea44cb46..25cb21200 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/StressGaugeTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/StressGaugeTileEntity.java @@ -5,7 +5,7 @@ import java.util.List; import com.simibubi.create.content.contraptions.base.IRotate.StressImpact; import com.simibubi.create.content.contraptions.goggles.IHaveGoggleInformation; import com.simibubi.create.foundation.item.ItemDescription; -import com.simibubi.create.foundation.utility.ColorHelper; +import com.simibubi.create.foundation.utility.Color; import com.simibubi.create.foundation.utility.Lang; import net.minecraft.tileentity.TileEntityType; @@ -35,9 +35,9 @@ public class StressGaugeTileEntity extends GaugeTileEntity { if (dialTarget > 0) { if (dialTarget < .5f) - color = ColorHelper.mixColors(0x00FF00, 0xFFFF00, dialTarget * 2); + color = Color.mixColors(0x00FF00, 0xFFFF00, dialTarget * 2); else if (dialTarget < 1) - color = ColorHelper.mixColors(0xFFFF00, 0xFF0000, (dialTarget) * 2 - 1); + color = Color.mixColors(0xFFFF00, 0xFF0000, (dialTarget) * 2 - 1); else color = 0xFF0000; } diff --git a/src/main/java/com/simibubi/create/content/curiosities/ChromaticCompoundColor.java b/src/main/java/com/simibubi/create/content/curiosities/ChromaticCompoundColor.java index 92957ffc5..63b4d989f 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/ChromaticCompoundColor.java +++ b/src/main/java/com/simibubi/create/content/curiosities/ChromaticCompoundColor.java @@ -1,7 +1,7 @@ package com.simibubi.create.content.curiosities; import com.simibubi.create.foundation.utility.AnimationTickHolder; -import com.simibubi.create.foundation.utility.ColorHelper; +import com.simibubi.create.foundation.utility.Color; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.color.IItemColor; @@ -9,20 +9,20 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.math.MathHelper; public class ChromaticCompoundColor implements IItemColor { - + @Override public int getColor(ItemStack stack, int layer) { Minecraft mc = Minecraft.getInstance(); float pt = AnimationTickHolder.getPartialTicks(); float progress = (float) ((mc.player.getViewYRot(pt)) / 180 * Math.PI) + (AnimationTickHolder.getRenderTime() / 10f); if (layer == 0) - return ColorHelper.mixColors(0x6e5773, 0x6B3074, ((float) MathHelper.sin(progress) + 1) / 2); + return Color.mixColors(0x6e5773, 0x6B3074, ((float) MathHelper.sin(progress) + 1) / 2); if (layer == 1) - return ColorHelper.mixColors(0xd45d79, 0x6e5773, + return Color.mixColors(0xd45d79, 0x6e5773, ((float) MathHelper.sin((float) (progress + Math.PI)) + 1) / 2); if (layer == 2) - return ColorHelper.mixColors(0xea9085, 0xd45d79, + return Color.mixColors(0xea9085, 0xd45d79, ((float) MathHelper.sin((float) (progress * 1.5f + Math.PI)) + 1) / 2); return 0; } -} \ No newline at end of file +} diff --git a/src/main/java/com/simibubi/create/content/curiosities/ChromaticCompoundItem.java b/src/main/java/com/simibubi/create/content/curiosities/ChromaticCompoundItem.java index 9e0cb506f..ec6f0a26c 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/ChromaticCompoundItem.java +++ b/src/main/java/com/simibubi/create/content/curiosities/ChromaticCompoundItem.java @@ -5,7 +5,7 @@ import java.util.Random; import com.simibubi.create.AllItems; import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.config.CRecipes; -import com.simibubi.create.foundation.utility.ColorHelper; +import com.simibubi.create.foundation.utility.Color; import com.simibubi.create.foundation.utility.VecHelper; import net.minecraft.block.BlockState; @@ -54,7 +54,7 @@ public class ChromaticCompoundItem extends Item { @Override public int getRGBDurabilityForDisplay(ItemStack stack) { - return ColorHelper.mixColors(0x413c69, 0xFFFFFF, (float) (1 - getDurabilityForDisplay(stack))); + return Color.mixColors(0x413c69, 0xFFFFFF, (float) (1 - getDurabilityForDisplay(stack))); } @Override diff --git a/src/main/java/com/simibubi/create/content/curiosities/armor/CopperBacktankArmorLayer.java b/src/main/java/com/simibubi/create/content/curiosities/armor/CopperBacktankArmorLayer.java index a1852244b..d6a54c9dd 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/armor/CopperBacktankArmorLayer.java +++ b/src/main/java/com/simibubi/create/content/curiosities/armor/CopperBacktankArmorLayer.java @@ -9,7 +9,7 @@ import com.simibubi.create.foundation.gui.GuiGameElement; import com.simibubi.create.foundation.render.SuperByteBuffer; import com.simibubi.create.foundation.utility.AngleHelper; import com.simibubi.create.foundation.utility.AnimationTickHolder; -import com.simibubi.create.foundation.utility.ColorHelper; +import com.simibubi.create.foundation.utility.Color; import net.minecraft.block.BlockState; import net.minecraft.client.MainWindow; @@ -132,7 +132,7 @@ public class CopperBacktankArmorLayer implements ITickableInstance { @@ -53,6 +53,6 @@ public class AdjustableRepeaterInstance extends TileEntityInstance couple = DYE_TABLE.get(color); int brightColor = couple.getFirst(); int darkColor = couple.getSecond(); - int flickeringBrightColor = ColorHelper.mixColors(brightColor, darkColor, flicker / 4); + int flickeringBrightColor = Color.mixColors(brightColor, darkColor, flicker / 4); ms.pushPose(); ms.translate((charWidth - shadowOffset) / -2f, -height, 0); @@ -109,7 +109,7 @@ public class NixieTubeRenderer extends SafeTileEntityRenderer v | 0x0011ff); if (z2 % 2 == 0) - color |= 0x888888; - color = ColorHelper.mixColors(ColorHelper.rainbowColor((int) (x + y + z) * 170), color, .6f); + color.modifyValue(v -> v | 0x888888); + + color.mixWith(Color.rainbowColor((int) (x + y + z) * 170), .4f); + if ((x2 % 4 == 0) || (y2 % 4 == 0)) - color = ColorHelper.mixColors(0xffffff, color, .2f); - return color; + color.mixWith(Color.WHITE, .8f); + + return color.getRGB() & 0x00_ffffff; } } diff --git a/src/main/java/com/simibubi/create/foundation/config/ui/BaseConfigScreen.java b/src/main/java/com/simibubi/create/foundation/config/ui/BaseConfigScreen.java index eb551320e..1df945e6a 100644 --- a/src/main/java/com/simibubi/create/foundation/config/ui/BaseConfigScreen.java +++ b/src/main/java/com/simibubi/create/foundation/config/ui/BaseConfigScreen.java @@ -26,7 +26,7 @@ import net.minecraftforge.fml.config.ModConfig; public class BaseConfigScreen extends ConfigScreen { - private static final DelegatedStencilElement.ElementRenderer DISABLED_RENDERER = (ms, width, height, alpha) -> UIRenderHelper.angledGradient(ms, 0, 0, height / 2, height, width, Theme.i(Theme.Key.BUTTON_DISABLE, true), Theme.i(Theme.Key.BUTTON_DISABLE, false) | 0x40_000000); + private static final DelegatedStencilElement.ElementRenderer DISABLED_RENDERER = (ms, width, height, alpha) -> UIRenderHelper.angledGradient(ms, 0, 0, height / 2, height, width, Theme.p(Theme.Key.BUTTON_DISABLE)); public static BaseConfigScreen forCreate(Screen parent) { return new BaseConfigScreen(parent) diff --git a/src/main/java/com/simibubi/create/foundation/config/ui/ConfigHelper.java b/src/main/java/com/simibubi/create/foundation/config/ui/ConfigHelper.java index 57a52417f..fb3f4212b 100644 --- a/src/main/java/com/simibubi/create/foundation/config/ui/ConfigHelper.java +++ b/src/main/java/com/simibubi/create/foundation/config/ui/ConfigHelper.java @@ -23,7 +23,7 @@ import net.minecraftforge.fml.config.ModConfig; public class ConfigHelper { - private static final LoadingCache> configCache = CacheBuilder.newBuilder().expireAfterAccess(15, TimeUnit.SECONDS).build( + private static final LoadingCache> configCache = CacheBuilder.newBuilder().expireAfterAccess(5, TimeUnit.MINUTES).build( new CacheLoader>() { @Override public EnumMap load(@Nonnull String key) { diff --git a/src/main/java/com/simibubi/create/foundation/config/ui/ConfigScreenList.java b/src/main/java/com/simibubi/create/foundation/config/ui/ConfigScreenList.java index 1a7f4e105..9c4bedf6c 100644 --- a/src/main/java/com/simibubi/create/foundation/config/ui/ConfigScreenList.java +++ b/src/main/java/com/simibubi/create/foundation/config/ui/ConfigScreenList.java @@ -11,6 +11,7 @@ import com.simibubi.create.foundation.config.ui.entries.NumberEntry; import com.simibubi.create.foundation.gui.TextStencilElement; import com.simibubi.create.foundation.gui.Theme; import com.simibubi.create.foundation.gui.UIRenderHelper; +import com.simibubi.create.foundation.utility.Color; import net.minecraft.client.MainWindow; import net.minecraft.client.Minecraft; @@ -40,10 +41,11 @@ public class ConfigScreenList extends ExtendedList { @Override public void render(MatrixStack ms, int mouseX, int mouseY, float partialTicks) { - UIRenderHelper.angledGradient(ms, 90, x0 + width / 2, y0, width, 5, 0x60_000000, 0x0); - UIRenderHelper.angledGradient(ms, -90, x0 + width / 2, y1, width, 5, 0x60_000000, 0x0); - UIRenderHelper.angledGradient(ms, 0, x0, y0 + height / 2, height, 5, 0x60_000000, 0x0); - UIRenderHelper.angledGradient(ms, 180, x1, y0 + height / 2, height, 5, 0x60_000000, 0x0); + Color c = new Color(0x60_000000); + UIRenderHelper.angledGradient(ms, 90, x0 + width / 2, y0, width, 5, c, Color.TRANSPARENT_BLACK); + UIRenderHelper.angledGradient(ms, -90, x0 + width / 2, y1, width, 5, c, Color.TRANSPARENT_BLACK); + UIRenderHelper.angledGradient(ms, 0, x0, y0 + height / 2, height, 5, c, Color.TRANSPARENT_BLACK); + UIRenderHelper.angledGradient(ms, 180, x1, y0 + height / 2, height, 5, c, Color.TRANSPARENT_BLACK); super.render(ms, mouseX, mouseY, partialTicks); } diff --git a/src/main/java/com/simibubi/create/foundation/config/ui/SubMenuConfigScreen.java b/src/main/java/com/simibubi/create/foundation/config/ui/SubMenuConfigScreen.java index 639de55c8..e19540a2e 100644 --- a/src/main/java/com/simibubi/create/foundation/config/ui/SubMenuConfigScreen.java +++ b/src/main/java/com/simibubi/create/foundation/config/ui/SubMenuConfigScreen.java @@ -1,6 +1,5 @@ package com.simibubi.create.foundation.config.ui; -import java.awt.Color; import java.util.Collections; import java.util.List; import java.util.Locale; @@ -32,6 +31,7 @@ import com.simibubi.create.foundation.gui.UIRenderHelper; import com.simibubi.create.foundation.gui.widgets.BoxWidget; import com.simibubi.create.foundation.item.TooltipHelper; import com.simibubi.create.foundation.networking.AllPackets; +import com.simibubi.create.foundation.utility.Color; import com.simibubi.create.foundation.utility.Couple; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/simibubi/create/foundation/fluid/FluidRenderer.java b/src/main/java/com/simibubi/create/foundation/fluid/FluidRenderer.java index ec7bdbe82..d0f0d475f 100644 --- a/src/main/java/com/simibubi/create/foundation/fluid/FluidRenderer.java +++ b/src/main/java/com/simibubi/create/foundation/fluid/FluidRenderer.java @@ -8,7 +8,7 @@ import com.mojang.blaze3d.matrix.MatrixStack.Entry; import com.mojang.blaze3d.vertex.IVertexBuilder; import com.simibubi.create.foundation.renderState.RenderTypes; import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.ColorHelper; +import com.simibubi.create.foundation.utility.Color; import com.simibubi.create.foundation.utility.Iterate; import net.minecraft.client.Minecraft; @@ -131,7 +131,7 @@ public class FluidRenderer { .translateBack(center); boolean X = side.getAxis() == Axis.X; - int darkColor = ColorHelper.mixColors(color, 0xff000011, 1 / 4f); + int darkColor = Color.mixColors(color, 0xff000011, 1 / 4f); renderTiledHorizontalFace(X ? xMax : zMax, side, X ? zMin : xMin, yMin, X ? zMax : xMax, yMax, builder, ms, light, darkColor, fluidTexture); diff --git a/src/main/java/com/simibubi/create/foundation/gui/AllGuiTextures.java b/src/main/java/com/simibubi/create/foundation/gui/AllGuiTextures.java index 54e04197d..3998c7258 100644 --- a/src/main/java/com/simibubi/create/foundation/gui/AllGuiTextures.java +++ b/src/main/java/com/simibubi/create/foundation/gui/AllGuiTextures.java @@ -1,9 +1,8 @@ package com.simibubi.create.foundation.gui; -import java.awt.Color; - import com.mojang.blaze3d.matrix.MatrixStack; import com.simibubi.create.Create; +import com.simibubi.create.foundation.utility.Color; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.AbstractGui; diff --git a/src/main/java/com/simibubi/create/foundation/gui/AllIcons.java b/src/main/java/com/simibubi/create/foundation/gui/AllIcons.java index 23d28abe8..59799ab63 100644 --- a/src/main/java/com/simibubi/create/foundation/gui/AllIcons.java +++ b/src/main/java/com/simibubi/create/foundation/gui/AllIcons.java @@ -4,7 +4,7 @@ import com.mojang.blaze3d.matrix.MatrixStack; import com.mojang.blaze3d.matrix.MatrixStack.Entry; import com.mojang.blaze3d.vertex.IVertexBuilder; import com.simibubi.create.Create; -import com.simibubi.create.foundation.utility.ColorHelper; +import com.simibubi.create.foundation.utility.Color; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.AbstractGui; @@ -181,7 +181,7 @@ public class AllIcons implements IScreenRenderable { int j = i >> 16 & '\uffff'; int k = i & '\uffff'; Entry peek = ms.last(); - Vector3d rgb = ColorHelper.getRGB(color); + Vector3d rgb = Color.vectorFromRGB(color); Vector3d vec4 = new Vector3d(1, 1, 0); Vector3d vec3 = new Vector3d(0, 1, 0); diff --git a/src/main/java/com/simibubi/create/foundation/gui/BoxElement.java b/src/main/java/com/simibubi/create/foundation/gui/BoxElement.java index 405413920..61c46d231 100644 --- a/src/main/java/com/simibubi/create/foundation/gui/BoxElement.java +++ b/src/main/java/com/simibubi/create/foundation/gui/BoxElement.java @@ -1,12 +1,10 @@ package com.simibubi.create.foundation.gui; -import java.awt.Color; - import org.lwjgl.opengl.GL11; import com.mojang.blaze3d.matrix.MatrixStack; import com.mojang.blaze3d.systems.RenderSystem; -import com.simibubi.create.foundation.utility.ColorHelper; +import com.simibubi.create.foundation.utility.Color; import com.simibubi.create.foundation.utility.Couple; import net.minecraft.client.renderer.BufferBuilder; @@ -96,9 +94,9 @@ public class BoxElement extends RenderElement { RenderSystem.shadeModel(GL11.GL_SMOOTH); int f = borderOffset; - Color c1 = ColorHelper.applyAlpha(background, alpha); - Color c2 = ColorHelper.applyAlpha(borderTop, alpha); - Color c3 = ColorHelper.applyAlpha(borderBot, alpha); + Color c1 = background.copy().scaleAlpha(alpha); + Color c2 = borderTop.copy().scaleAlpha(alpha); + Color c3 = borderBot.copy().scaleAlpha(alpha); Tessellator tessellator = Tessellator.getInstance(); BufferBuilder b = tessellator.getBuilder(); Matrix4f model = ms.last().pose(); diff --git a/src/main/java/com/simibubi/create/foundation/gui/DelegatedStencilElement.java b/src/main/java/com/simibubi/create/foundation/gui/DelegatedStencilElement.java index 4b45ace4f..8093c9e7e 100644 --- a/src/main/java/com/simibubi/create/foundation/gui/DelegatedStencilElement.java +++ b/src/main/java/com/simibubi/create/foundation/gui/DelegatedStencilElement.java @@ -1,12 +1,12 @@ package com.simibubi.create.foundation.gui; import com.mojang.blaze3d.matrix.MatrixStack; -import com.simibubi.create.foundation.utility.ColorHelper; +import com.simibubi.create.foundation.utility.Color; public class DelegatedStencilElement extends StencilElement { protected static final ElementRenderer EMPTY_RENDERER = (ms, width, height, alpha) -> {}; - protected static final ElementRenderer DEFAULT_ELEMENT = (ms, width, height, alpha) -> UIRenderHelper.angledGradient(ms, 0, -3, 5, height+4, width+6, ColorHelper.applyAlpha(0xff_10dd10, alpha), ColorHelper.applyAlpha(0xff_1010dd, alpha)); + protected static final ElementRenderer DEFAULT_ELEMENT = (ms, width, height, alpha) -> UIRenderHelper.angledGradient(ms, 0, -3, 5, height+4, width+6, new Color(0xff_10dd10).scaleAlpha(alpha), new Color(0xff_1010dd).scaleAlpha(alpha)); protected ElementRenderer stencil; protected ElementRenderer element; diff --git a/src/main/java/com/simibubi/create/foundation/gui/GuiGameElement.java b/src/main/java/com/simibubi/create/foundation/gui/GuiGameElement.java index 9a7c2df7f..2f2563f97 100644 --- a/src/main/java/com/simibubi/create/foundation/gui/GuiGameElement.java +++ b/src/main/java/com/simibubi/create/foundation/gui/GuiGameElement.java @@ -11,7 +11,7 @@ import com.mojang.blaze3d.platform.GlStateManager.SourceFactor; import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.vertex.IVertexBuilder; import com.simibubi.create.foundation.fluid.FluidRenderer; -import com.simibubi.create.foundation.utility.ColorHelper; +import com.simibubi.create.foundation.utility.Color; import com.simibubi.create.foundation.utility.VecHelper; import net.minecraft.block.BlockState; @@ -192,7 +192,7 @@ public class GuiGameElement { int color = Minecraft.getInstance() .getBlockColors() .getColor(blockState, null, null, 0); - Vector3d rgb = ColorHelper.getRGB(color == -1 ? this.color : color); + Vector3d rgb = Color.vectorFromRGB(color == -1 ? this.color : color); blockRenderer.getModelRenderer() .renderModel(ms.last(), vb, blockState, blockModel, (float) rgb.x, (float) rgb.y, (float) rgb.z, 0xF000F0, OverlayTexture.NO_OVERLAY, VirtualEmptyModelData.INSTANCE); diff --git a/src/main/java/com/simibubi/create/foundation/gui/Theme.java b/src/main/java/com/simibubi/create/foundation/gui/Theme.java index c3f03e039..e61872984 100644 --- a/src/main/java/com/simibubi/create/foundation/gui/Theme.java +++ b/src/main/java/com/simibubi/create/foundation/gui/Theme.java @@ -1,6 +1,5 @@ package com.simibubi.create.foundation.gui; -import java.awt.Color; import java.util.ArrayList; import java.util.Comparator; import java.util.HashMap; @@ -11,6 +10,7 @@ import java.util.Objects; import javax.annotation.Nonnull; import javax.annotation.Nullable; +import com.simibubi.create.foundation.utility.Color; import com.simibubi.create.foundation.utility.Couple; public class Theme { @@ -205,13 +205,13 @@ public class Theme { private static ColorHolder single(Color c) { ColorHolder h = new ColorHolder(); - h.colors = Couple.create(c, c); + h.colors = Couple.create(c.setImmutable(), c.setImmutable()); return h; } private static ColorHolder pair(Color first, Color second) { ColorHolder h = new ColorHolder(); - h.colors = Couple.create(first, second); + h.colors = Couple.create(first.setImmutable(), second.setImmutable()); return h; } diff --git a/src/main/java/com/simibubi/create/foundation/gui/UIRenderHelper.java b/src/main/java/com/simibubi/create/foundation/gui/UIRenderHelper.java index 70def0c92..60514a793 100644 --- a/src/main/java/com/simibubi/create/foundation/gui/UIRenderHelper.java +++ b/src/main/java/com/simibubi/create/foundation/gui/UIRenderHelper.java @@ -1,14 +1,12 @@ package com.simibubi.create.foundation.gui; -import java.awt.Color; - import javax.annotation.Nonnull; import org.lwjgl.opengl.GL11; import com.mojang.blaze3d.matrix.MatrixStack; import com.mojang.blaze3d.systems.RenderSystem; -import com.simibubi.create.foundation.utility.ColorHelper; +import com.simibubi.create.foundation.utility.Color; import com.simibubi.create.foundation.utility.Couple; import net.minecraft.client.MainWindow; @@ -116,23 +114,23 @@ public class UIRenderHelper { } /** - * @see #angledGradient(MatrixStack, float, int, int, int, int, int, int, int) + * @see #angledGradient(MatrixStack, float, int, int, int, int, int, Color, Color) */ public static void angledGradient(@Nonnull MatrixStack ms, float angle, int x, int y, int breadth, int length, Couple c) { angledGradient(ms, angle, x, y, 0, breadth, length, c); } /** - * @see #angledGradient(MatrixStack, float, int, int, int, int, int, int, int) + * @see #angledGradient(MatrixStack, float, int, int, int, int, int, Color, Color) */ public static void angledGradient(@Nonnull MatrixStack ms, float angle, int x, int y, int z, int breadth, int length, Couple c) { - angledGradient(ms, angle, x, y, z, breadth, length, c.getFirst().getRGB(), c.getSecond().getRGB()); + angledGradient(ms, angle, x, y, z, breadth, length, c.getFirst(), c.getSecond()); } /** - * @see #angledGradient(MatrixStack, float, int, int, int, int, int, int, int) + * @see #angledGradient(MatrixStack, float, int, int, int, int, int, Color, Color) */ - public static void angledGradient(@Nonnull MatrixStack ms, float angle, int x, int y, int breadth, int length, int color1, int color2) { + public static void angledGradient(@Nonnull MatrixStack ms, float angle, int x, int y, int breadth, int length, Color color1, Color color2) { angledGradient(ms, angle, x, y, 0, breadth, length, color1, color2); } @@ -144,22 +142,22 @@ public class UIRenderHelper { * @param color2 the color at the ending edge * @param breadth the total width of the gradient */ - public static void angledGradient(@Nonnull MatrixStack ms, float angle, int x, int y, int z, int breadth, int length, int color1, int color2) { + public static void angledGradient(@Nonnull MatrixStack ms, float angle, int x, int y, int z, int breadth, int length, Color color1, Color color2) { ms.pushPose(); ms.translate(x, y, z); ms.mulPose(Vector3f.ZP.rotationDegrees(angle - 90)); Matrix4f model = ms.last().pose(); int w = breadth / 2; - GuiUtils.drawGradientRect(model, 0, -w, 0, w, length, color1, color2); + GuiUtils.drawGradientRect(model, 0, -w, 0, w, length, color1.getRGB(), color2.getRGB()); ms.popPose(); } - public static void breadcrumbArrow(MatrixStack matrixStack, int x, int y, int z, int width, int height, int indent, Couple colors) {breadcrumbArrow(matrixStack, x, y, z, width, height, indent, colors.getFirst().getRGB(), colors.getSecond().getRGB());} + public static void breadcrumbArrow(MatrixStack matrixStack, int x, int y, int z, int width, int height, int indent, Couple colors) {breadcrumbArrow(matrixStack, x, y, z, width, height, indent, colors.getFirst(), colors.getSecond());} // draws a wide chevron-style breadcrumb arrow pointing left - public static void breadcrumbArrow(MatrixStack matrixStack, int x, int y, int z, int width, int height, int indent, int startColor, int endColor) { + public static void breadcrumbArrow(MatrixStack matrixStack, int x, int y, int z, int width, int height, int indent, Color startColor, Color endColor) { matrixStack.pushPose(); matrixStack.translate(x - indent, y, z); @@ -168,7 +166,7 @@ public class UIRenderHelper { matrixStack.popPose(); } - private static void breadcrumbArrow(MatrixStack ms, int width, int height, int indent, int c1, int c2) { + private static void breadcrumbArrow(MatrixStack ms, int width, int height, int indent, Color c1, Color c2) { /* * 0,0 x1,y1 ********************* x4,y4 ***** x7,y7 @@ -193,10 +191,10 @@ public class UIRenderHelper { indent = Math.abs(indent); width = Math.abs(width); - int fc1 = ColorHelper.mixAlphaColors(c1, c2, 0); - int fc2 = ColorHelper.mixAlphaColors(c1, c2, (indent) / (width + 2f * indent)); - int fc3 = ColorHelper.mixAlphaColors(c1, c2, (indent + width) / (width + 2f * indent)); - int fc4 = ColorHelper.mixAlphaColors(c1, c2, 1); + Color fc1 = Color.mixColors(c1, c2, 0); + Color fc2 = Color.mixColors(c1, c2, (indent) / (width + 2f * indent)); + Color fc3 = Color.mixColors(c1, c2, (indent + width) / (width + 2f * indent)); + Color fc4 = Color.mixColors(c1, c2, 1); RenderSystem.disableTexture(); RenderSystem.enableBlend(); @@ -210,29 +208,29 @@ public class UIRenderHelper { Matrix4f model = ms.last().pose(); bufferbuilder.begin(GL11.GL_TRIANGLES, DefaultVertexFormats.POSITION_COLOR); - bufferbuilder.vertex(model, x0, y0, 0).color(fc1 >> 16 & 0xFF, fc1 >> 8 & 0xFF, fc1 & 0xFF, fc1 >> 24 & 0xFF).endVertex(); - bufferbuilder.vertex(model, x1, y1, 0).color(fc2 >> 16 & 0xFF, fc2 >> 8 & 0xFF, fc2 & 0xFF, fc2 >> 24 & 0xFF).endVertex(); - bufferbuilder.vertex(model, x2, y2, 0).color(fc2 >> 16 & 0xFF, fc2 >> 8 & 0xFF, fc2 & 0xFF, fc2 >> 24 & 0xFF).endVertex(); + bufferbuilder.vertex(model, x0, y0, 0).color(fc1.getRed(), fc1.getGreen(), fc1.getBlue(), fc1.getAlpha()).endVertex(); + bufferbuilder.vertex(model, x1, y1, 0).color(fc2.getRed(), fc2.getGreen(), fc2.getBlue(), fc2.getAlpha()).endVertex(); + bufferbuilder.vertex(model, x2, y2, 0).color(fc2.getRed(), fc2.getGreen(), fc2.getBlue(), fc2.getAlpha()).endVertex(); - bufferbuilder.vertex(model, x0, y0, 0).color(fc1 >> 16 & 0xFF, fc1 >> 8 & 0xFF, fc1 & 0xFF, fc1 >> 24 & 0xFF).endVertex(); - bufferbuilder.vertex(model, x2, y2, 0).color(fc2 >> 16 & 0xFF, fc2 >> 8 & 0xFF, fc2 & 0xFF, fc2 >> 24 & 0xFF).endVertex(); - bufferbuilder.vertex(model, x3, y3, 0).color(fc2 >> 16 & 0xFF, fc2 >> 8 & 0xFF, fc2 & 0xFF, fc2 >> 24 & 0xFF).endVertex(); + bufferbuilder.vertex(model, x0, y0, 0).color(fc1.getRed(), fc1.getGreen(), fc1.getBlue(), fc1.getAlpha()).endVertex(); + bufferbuilder.vertex(model, x2, y2, 0).color(fc2.getRed(), fc2.getGreen(), fc2.getBlue(), fc2.getAlpha()).endVertex(); + bufferbuilder.vertex(model, x3, y3, 0).color(fc2.getRed(), fc2.getGreen(), fc2.getBlue(), fc2.getAlpha()).endVertex(); - bufferbuilder.vertex(model, x3, y3, 0).color(fc2 >> 16 & 0xFF, fc2 >> 8 & 0xFF, fc2 & 0xFF, fc2 >> 24 & 0xFF).endVertex(); - bufferbuilder.vertex(model, x1, y1, 0).color(fc2 >> 16 & 0xFF, fc2 >> 8 & 0xFF, fc2 & 0xFF, fc2 >> 24 & 0xFF).endVertex(); - bufferbuilder.vertex(model, x4, y4, 0).color(fc3 >> 16 & 0xFF, fc3 >> 8 & 0xFF, fc3 & 0xFF, fc3 >> 24 & 0xFF).endVertex(); + bufferbuilder.vertex(model, x3, y3, 0).color(fc2.getRed(), fc2.getGreen(), fc2.getBlue(), fc2.getAlpha()).endVertex(); + bufferbuilder.vertex(model, x1, y1, 0).color(fc2.getRed(), fc2.getGreen(), fc2.getBlue(), fc2.getAlpha()).endVertex(); + bufferbuilder.vertex(model, x4, y4, 0).color(fc3.getRed(), fc3.getGreen(), fc3.getBlue(), fc3.getAlpha()).endVertex(); - bufferbuilder.vertex(model, x3, y3, 0).color(fc2 >> 16 & 0xFF, fc2 >> 8 & 0xFF, fc2 & 0xFF, fc2 >> 24 & 0xFF).endVertex(); - bufferbuilder.vertex(model, x4, y4, 0).color(fc3 >> 16 & 0xFF, fc3 >> 8 & 0xFF, fc3 & 0xFF, fc3 >> 24 & 0xFF).endVertex(); - bufferbuilder.vertex(model, x6, y6, 0).color(fc3 >> 16 & 0xFF, fc3 >> 8 & 0xFF, fc3 & 0xFF, fc3 >> 24 & 0xFF).endVertex(); + bufferbuilder.vertex(model, x3, y3, 0).color(fc2.getRed(), fc2.getGreen(), fc2.getBlue(), fc2.getAlpha()).endVertex(); + bufferbuilder.vertex(model, x4, y4, 0).color(fc3.getRed(), fc3.getGreen(), fc3.getBlue(), fc3.getAlpha()).endVertex(); + bufferbuilder.vertex(model, x6, y6, 0).color(fc3.getRed(), fc3.getGreen(), fc3.getBlue(), fc3.getAlpha()).endVertex(); - bufferbuilder.vertex(model, x5, y5, 0).color(fc3 >> 16 & 0xFF, fc3 >> 8 & 0xFF, fc3 & 0xFF, fc3 >> 24 & 0xFF).endVertex(); - bufferbuilder.vertex(model, x4, y4, 0).color(fc3 >> 16 & 0xFF, fc3 >> 8 & 0xFF, fc3 & 0xFF, fc3 >> 24 & 0xFF).endVertex(); - bufferbuilder.vertex(model, x7, y7, 0).color(fc4 >> 16 & 0xFF, fc4 >> 8 & 0xFF, fc4 & 0xFF, fc4 >> 24 & 0xFF).endVertex(); + bufferbuilder.vertex(model, x5, y5, 0).color(fc3.getRed(), fc3.getGreen(), fc3.getBlue(), fc3.getAlpha()).endVertex(); + bufferbuilder.vertex(model, x4, y4, 0).color(fc3.getRed(), fc3.getGreen(), fc3.getBlue(), fc3.getAlpha()).endVertex(); + bufferbuilder.vertex(model, x7, y7, 0).color(fc4.getRed(), fc4.getGreen(), fc4.getBlue(), fc4.getAlpha()).endVertex(); - bufferbuilder.vertex(model, x6, y6, 0).color(fc3 >> 16 & 0xFF, fc3 >> 8 & 0xFF, fc3 & 0xFF, fc3 >> 24 & 0xFF).endVertex(); - bufferbuilder.vertex(model, x5, y5, 0).color(fc3 >> 16 & 0xFF, fc3 >> 8 & 0xFF, fc3 & 0xFF, fc3 >> 24 & 0xFF).endVertex(); - bufferbuilder.vertex(model, x8, y8, 0).color(fc4 >> 16 & 0xFF, fc4 >> 8 & 0xFF, fc4 & 0xFF, fc4 >> 24 & 0xFF).endVertex(); + bufferbuilder.vertex(model, x6, y6, 0).color(fc3.getRed(), fc3.getGreen(), fc3.getBlue(), fc3.getAlpha()).endVertex(); + bufferbuilder.vertex(model, x5, y5, 0).color(fc3.getRed(), fc3.getGreen(), fc3.getBlue(), fc3.getAlpha()).endVertex(); + bufferbuilder.vertex(model, x8, y8, 0).color(fc4.getRed(), fc4.getGreen(), fc4.getBlue(), fc4.getAlpha()).endVertex(); tessellator.end(); RenderSystem.shadeModel(GL11.GL_FLAT); diff --git a/src/main/java/com/simibubi/create/foundation/gui/mainMenu/CreateMainMenuScreen.java b/src/main/java/com/simibubi/create/foundation/gui/mainMenu/CreateMainMenuScreen.java index a20cf9547..43c25db2a 100644 --- a/src/main/java/com/simibubi/create/foundation/gui/mainMenu/CreateMainMenuScreen.java +++ b/src/main/java/com/simibubi/create/foundation/gui/mainMenu/CreateMainMenuScreen.java @@ -1,7 +1,5 @@ package com.simibubi.create.foundation.gui.mainMenu; -import java.awt.Color; - import com.jozufozu.flywheel.util.transform.MatrixTransformStack; import com.mojang.blaze3d.matrix.MatrixStack; import com.mojang.blaze3d.platform.GlStateManager; @@ -16,6 +14,7 @@ import com.simibubi.create.foundation.gui.GuiGameElement; import com.simibubi.create.foundation.gui.ScreenOpener; import com.simibubi.create.foundation.item.TooltipHelper; import com.simibubi.create.foundation.ponder.content.PonderTagIndexScreen; +import com.simibubi.create.foundation.utility.Color; import com.simibubi.create.foundation.utility.Iterate; import com.simibubi.create.foundation.utility.Lang; @@ -106,7 +105,7 @@ public class CreateMainMenuScreen extends AbstractSimiScreen { AllGuiTextures.LOGO.draw(ms, 0, 0); ms.popPose(); new BoxElement().withBackground(0x88_000000) - .flatBorder(new Color(0x01_000000, true)) + .flatBorder(new Color(0x01_000000)) .at(-32, 56, 100) .withBounds(128, 11) .render(ms); diff --git a/src/main/java/com/simibubi/create/foundation/gui/widgets/BoxWidget.java b/src/main/java/com/simibubi/create/foundation/gui/widgets/BoxWidget.java index c74606d81..6c9a844f5 100644 --- a/src/main/java/com/simibubi/create/foundation/gui/widgets/BoxWidget.java +++ b/src/main/java/com/simibubi/create/foundation/gui/widgets/BoxWidget.java @@ -1,6 +1,5 @@ package com.simibubi.create.foundation.gui.widgets; -import java.awt.Color; import java.util.function.Function; import javax.annotation.Nonnull; @@ -11,13 +10,13 @@ import com.simibubi.create.foundation.gui.DelegatedStencilElement; import com.simibubi.create.foundation.gui.Theme; import com.simibubi.create.foundation.gui.Theme.Key; import com.simibubi.create.foundation.gui.UIRenderHelper; -import com.simibubi.create.foundation.utility.ColorHelper; +import com.simibubi.create.foundation.utility.Color; import com.simibubi.create.foundation.utility.Couple; import com.simibubi.create.foundation.utility.animation.LerpedFloat; public class BoxWidget extends ElementWidget { - public static final Function gradientFactory = (box) -> (ms, w, h, alpha) -> UIRenderHelper.angledGradient(ms, 90, w/2, -2, w + 4, h + 4, box.gradientColor1.getRGB(), box.gradientColor2.getRGB()); + public static final Function gradientFactory = (box) -> (ms, w, h, alpha) -> UIRenderHelper.angledGradient(ms, 90, w/2, -2, w + 4, h + 4, box.gradientColor1, box.gradientColor2); protected BoxElement box; @@ -29,8 +28,8 @@ public class BoxWidget extends ElementWidget { protected Color gradientColor1, gradientColor2; private Color previousColor1, previousColor2; - private Color colorTarget1 = Theme.c(getIdleTheme(), true); - private Color colorTarget2 = Theme.c(getIdleTheme(), false); + private Color colorTarget1 = Theme.c(getIdleTheme(), true).copy(); + private Color colorTarget2 = Theme.c(getIdleTheme(), false).copy(); public BoxWidget() { this(0, 0); @@ -116,8 +115,8 @@ public class BoxWidget extends ElementWidget { gradientColor2 = colorTarget2; } else { float animationValue = 1 - Math.abs(colorAnimation.getValue(partialTicks)); - gradientColor1 = ColorHelper.mixColors(previousColor1, colorTarget1, animationValue); - gradientColor2 = ColorHelper.mixColors(previousColor2, colorTarget2, animationValue); + gradientColor1 = Color.mixColors(previousColor1, colorTarget1, animationValue); + gradientColor2 = Color.mixColors(previousColor2, colorTarget2, animationValue); } } diff --git a/src/main/java/com/simibubi/create/foundation/ponder/NavigatableSimiScreen.java b/src/main/java/com/simibubi/create/foundation/ponder/NavigatableSimiScreen.java index 83291738a..0e334bed3 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/NavigatableSimiScreen.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/NavigatableSimiScreen.java @@ -19,6 +19,7 @@ import com.simibubi.create.foundation.gui.UIRenderHelper; import com.simibubi.create.foundation.ponder.content.PonderTagIndexScreen; import com.simibubi.create.foundation.ponder.content.PonderTagScreen; import com.simibubi.create.foundation.ponder.ui.PonderButton; +import com.simibubi.create.foundation.utility.Color; import com.simibubi.create.foundation.utility.Lang; import com.simibubi.create.foundation.utility.animation.LerpedFloat; @@ -242,7 +243,7 @@ public abstract class NavigatableSimiScreen extends AbstractSimiScreen { names.forEach(s -> { int sWidth = font.width(s); UIRenderHelper.breadcrumbArrow(ms, x.getValue(), y.getValue(), 0, sWidth + spacing, 14, spacing / 2, - 0xdd101010, 0x44101010); + new Color(0xdd101010), new Color(0x44101010)); font.draw(ms, s, x.getValue() + 5, y.getValue() + 3, first.getValue() ? 0xffeeffee : 0xffddeeff); first.setFalse(); diff --git a/src/main/java/com/simibubi/create/foundation/ponder/PonderTooltipHandler.java b/src/main/java/com/simibubi/create/foundation/ponder/PonderTooltipHandler.java index a04832908..1177ffdc9 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/PonderTooltipHandler.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/PonderTooltipHandler.java @@ -4,7 +4,7 @@ import java.util.List; import com.google.common.base.Strings; import com.simibubi.create.foundation.gui.ScreenOpener; -import com.simibubi.create.foundation.utility.ColorHelper; +import com.simibubi.create.foundation.utility.Color; import com.simibubi.create.foundation.utility.Lang; import com.simibubi.create.foundation.utility.animation.LerpedFloat; @@ -133,8 +133,8 @@ public class PonderTooltipHandler { private static int getSmoothColorForProgress(float progress) { if (progress < .5f) - return ColorHelper.mixColors(0x5000FF, 5592575, progress * 2); - return ColorHelper.mixColors(5592575, 0xffffff, (progress - .5f) * 2); + return Color.mixColors(0x5000FF, 5592575, progress * 2); + return Color.mixColors(5592575, 0xffffff, (progress - .5f) * 2); } private static ITextComponent makeProgressBar(float progress) { diff --git a/src/main/java/com/simibubi/create/foundation/ponder/PonderUI.java b/src/main/java/com/simibubi/create/foundation/ponder/PonderUI.java index ae5eb3bee..5c595c8cd 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/PonderUI.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/PonderUI.java @@ -2,7 +2,6 @@ package com.simibubi.create.foundation.ponder; import static com.simibubi.create.foundation.ponder.PonderLocalization.LANG_PREFIX; -import java.awt.Color; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -31,7 +30,7 @@ import com.simibubi.create.foundation.ponder.content.PonderTagScreen; import com.simibubi.create.foundation.ponder.elements.TextWindowElement; import com.simibubi.create.foundation.ponder.ui.PonderButton; import com.simibubi.create.foundation.renderState.SuperRenderTypeBuffer; -import com.simibubi.create.foundation.utility.ColorHelper; +import com.simibubi.create.foundation.utility.Color; import com.simibubi.create.foundation.utility.Couple; import com.simibubi.create.foundation.utility.FontHelper; import com.simibubi.create.foundation.utility.Iterate; @@ -469,7 +468,7 @@ public class PonderUI extends NavigatableSimiScreen { ms.scale(1, .5f + flash * .75f, 1); GuiUtils.drawGradientRect(ms.last() .pose(), 0, 0, -1, -story.basePlateSize, 0, 0x00_c6ffc9, - ColorHelper.applyAlpha(0xaa_c6ffc9, alpha)); + new Color(0xaa_c6ffc9).scaleAlpha(alpha).getRGB()); ms.popPose(); } ms.translate(0, 0, 2 / 1024f); @@ -538,7 +537,7 @@ public class PonderUI extends NavigatableSimiScreen { protected void renderWidgets(MatrixStack ms, int mouseX, int mouseY, float partialTicks) { RenderSystem.disableDepthTest(); - + float fade = fadeIn.getValue(partialTicks); float lazyIndexValue = lazyIndex.getValue(partialTicks); float indexDiff = Math.abs(lazyIndexValue - index); @@ -582,7 +581,7 @@ public class PonderUI extends NavigatableSimiScreen { ms.mulPose(Vector3f.XN.rotationDegrees(indexDiff * -75)); ms.translate(0, 0, 5); FontHelper.drawSplitString(ms, font, title, 0, 0, left.x - 51, - ColorHelper.applyAlpha(Theme.i(Theme.Key.TEXT), 1 - indexDiff)); + Theme.c(Theme.Key.TEXT).scaleAlpha(1 - indexDiff).getRGB()); ms.popPose(); if (chapter != null) { @@ -598,10 +597,13 @@ public class PonderUI extends NavigatableSimiScreen { ms.popPose(); } - UIRenderHelper.breadcrumbArrow(ms, width / 2 - 20, height - 51, 0, 20, 20, 5, 0x40aa9999, 0x20aa9999); - UIRenderHelper.breadcrumbArrow(ms, width / 2 + 20, height - 51, 0, -20, 20, -5, 0x40aa9999, 0x20aa9999); - UIRenderHelper.breadcrumbArrow(ms, width / 2 - 90, height - 51, 0, 70, 20, 5, 0x40aa9999, 0x10aa9999); - UIRenderHelper.breadcrumbArrow(ms, width / 2 + 90, height - 51, 0, -70, 20, -5, 0x40aa9999, 0x10aa9999); + Color c1 = Theme.c(Theme.Key.PONDER_BACK_ARROW).setAlpha(0x40); + Color c2 = Theme.c(Theme.Key.PONDER_BACK_ARROW).setAlpha(0x20); + Color c3 = Theme.c(Theme.Key.PONDER_BACK_ARROW).setAlpha(0x10); + UIRenderHelper.breadcrumbArrow(ms, width / 2 - 20, height - 51, 0, 20, 20, 5, c1, c2); + UIRenderHelper.breadcrumbArrow(ms, width / 2 + 20, height - 51, 0, -20, 20, -5, c1, c2); + UIRenderHelper.breadcrumbArrow(ms, width / 2 - 90, height - 51, 0, 70, 20, 5, c1, c3); + UIRenderHelper.breadcrumbArrow(ms, width / 2 + 90, height - 51, 0, -70, 20, -5, c1, c3); } if (identifyMode) { @@ -738,7 +740,7 @@ public class PonderUI extends NavigatableSimiScreen { if (PonderIndex.EDITOR_MODE && userMode.isHovered()) drawCenteredString(ms, font, "Editor View", userMode.x + 10, tooltipY, tooltipColor); ms.popPose(); - + RenderSystem.enableDepthTest(); } @@ -869,7 +871,7 @@ public class PonderUI extends NavigatableSimiScreen { boxY -= h / 2; divotX += distance; divotY -= divotRadius; - c = ColorHelper.mixColors(borderColors, 0.5f); + c = Color.mixColors(borderColors, 0.5f); break; case RIGHT: divotRotation = 270; @@ -877,7 +879,7 @@ public class PonderUI extends NavigatableSimiScreen { boxY -= h / 2; divotX -= divotSize + distance; divotY -= divotRadius; - c = ColorHelper.mixColors(borderColors, 0.5f); + c = Color.mixColors(borderColors, 0.5f); break; case UP: divotRotation = 180; diff --git a/src/main/java/com/simibubi/create/foundation/ponder/SceneBuilder.java b/src/main/java/com/simibubi/create/foundation/ponder/SceneBuilder.java index 108351609..a18bc8c4a 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/SceneBuilder.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/SceneBuilder.java @@ -59,7 +59,7 @@ import com.simibubi.create.foundation.tileEntity.SmartTileEntity; import com.simibubi.create.foundation.tileEntity.behaviour.belt.DirectBeltInputBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.belt.TransportedItemStackHandlerBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.belt.TransportedItemStackHandlerBehaviour.TransportedResult; -import com.simibubi.create.foundation.utility.ColorHelper; +import com.simibubi.create.foundation.utility.Color; import com.simibubi.create.foundation.utility.NBTHelper; import com.simibubi.create.foundation.utility.VecHelper; @@ -132,7 +132,7 @@ public class SceneBuilder { * Assign a unique translation key, as well as the standard english translation * for this scene's title using this method, anywhere inside the program * function. - * + * * @param sceneId * @param title */ @@ -147,7 +147,7 @@ public class SceneBuilder { * the the base plate.
* As a result, showBasePlate() will only show the configured size, and the * scene's scaling inside the UI will be consistent with its base size. - * + * * @param xOffset Block spaces between the base plate and the schematic * boundary on the Western side. * @param zOffset Block spaces between the base plate and the schematic @@ -164,7 +164,7 @@ public class SceneBuilder { /** * Use this in case you are not happy with the scale of the scene relative to * the overlay - * + * * @param factor >1 will make the scene appear larger, smaller otherwise */ public void scaleSceneView(float factor) { @@ -174,7 +174,7 @@ public class SceneBuilder { /** * Use this in case you are not happy with the vertical alignment of the scene * relative to the overlay - * + * * @param yOffset >0 moves the scene up, down otherwise */ public void setSceneOffsetY(float yOffset) { @@ -197,7 +197,7 @@ public class SceneBuilder { * actions play out.
* Idle does not stall any animations, only schedules a time gap between * instructions. - * + * * @param ticks Duration to wait for */ public void idle(int ticks) { @@ -209,7 +209,7 @@ public class SceneBuilder { * actions play out.
* Idle does not stall any animations, only schedules a time gap between * instructions. - * + * * @param seconds Duration to wait for */ public void idleSeconds(int seconds) { @@ -229,7 +229,7 @@ public class SceneBuilder { /** * Pans the scene's camera view around the vertical axis by the given amount - * + * * @param degrees */ public void rotateCameraY(float degrees) { @@ -309,7 +309,7 @@ public class SceneBuilder { } public void createRedstoneParticles(BlockPos pos, int color, int amount) { - Vector3d rgb = ColorHelper.getRGB(color); + Vector3d rgb = Color.vectorFromRGB(color); addInstruction(new EmitParticlesInstruction(VecHelper.getCenterOf(pos), Emitter.withinBlockSpace( new RedstoneParticleData((float) rgb.x, (float) rgb.y, (float) rgb.z, 1), Vector3d.ZERO), amount, 2)); } @@ -824,4 +824,4 @@ public class SceneBuilder { scene.schedule.add(PonderInstruction.simple(callback)); } -} \ No newline at end of file +} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/PonderPalette.java b/src/main/java/com/simibubi/create/foundation/ponder/content/PonderPalette.java index 5e5fbae39..d53685b18 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/PonderPalette.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/PonderPalette.java @@ -1,30 +1,36 @@ package com.simibubi.create.foundation.ponder.content; +import com.simibubi.create.foundation.utility.Color; + public enum PonderPalette { WHITE(0xFF_eeeeee), BLACK(0xFF_221111), - + RED(0xFF_ff5d6c), GREEN(0xFF_8cba51), BLUE(0xFF_5f6caf), - + SLOW(0xFF_22ff22), MEDIUM(0xFF_0084ff), FAST(0xFF_ff55ff), - + INPUT(0xFF_4f8a8b), OUTPUT(0xFF_ffcb74), - + ; - private int color; + private final Color color; - private PonderPalette(int color) { - this.color = color; + PonderPalette(int color) { + this.color = new Color(color); } public int getColor() { + return color.getRGB(); + } + + public Color getColorObject() { return color; } } diff --git a/src/main/java/com/simibubi/create/foundation/ponder/elements/InputWindowElement.java b/src/main/java/com/simibubi/create/foundation/ponder/elements/InputWindowElement.java index b99fb8b1b..efcfbeaab 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/elements/InputWindowElement.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/elements/InputWindowElement.java @@ -10,7 +10,6 @@ import com.simibubi.create.foundation.ponder.PonderLocalization; import com.simibubi.create.foundation.ponder.PonderScene; import com.simibubi.create.foundation.ponder.PonderUI; import com.simibubi.create.foundation.ponder.content.PonderPalette; -import com.simibubi.create.foundation.utility.ColorHelper; import com.simibubi.create.foundation.utility.Pointing; import net.minecraft.client.gui.FontRenderer; @@ -59,7 +58,7 @@ public class InputWindowElement extends AnimatedOverlayElement { icon = AllIcons.I_RMB; return this; } - + public InputWindowElement showing(AllIcons icon) { this.icon = icon; return this; @@ -126,7 +125,7 @@ public class InputWindowElement extends AnimatedOverlayElement { if (hasText) font.draw(ms, text, 2, (height - font.lineHeight) / 2f + 2, - ColorHelper.applyAlpha(PonderPalette.WHITE.getColor(), fade)); + PonderPalette.WHITE.getColorObject().scaleAlpha(fade).getRGB()); if (hasIcon) { ms.pushPose(); diff --git a/src/main/java/com/simibubi/create/foundation/ponder/elements/TextWindowElement.java b/src/main/java/com/simibubi/create/foundation/ponder/elements/TextWindowElement.java index aef8a7a25..cbfb14e7a 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/elements/TextWindowElement.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/elements/TextWindowElement.java @@ -10,7 +10,7 @@ import com.simibubi.create.foundation.ponder.PonderLocalization; import com.simibubi.create.foundation.ponder.PonderScene; import com.simibubi.create.foundation.ponder.PonderUI; import com.simibubi.create.foundation.ponder.content.PonderPalette; -import com.simibubi.create.foundation.utility.ColorHelper; +import com.simibubi.create.foundation.utility.Color; import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.MathHelper; @@ -126,7 +126,7 @@ public class TextWindowElement extends AnimatedOverlayElement { //PonderUI.renderBox(ms, targetX - 10, 3, boxWidth, boxHeight - 1, 0xaa000000, 0x30eebb00, 0x10eebb00); - int brighterColor = ColorHelper.mixAlphaColors(color, 0xFFffffdd, 1 / 2f); + int brighterColor = Color.mixColors(color, 0xFFffffdd, 1 / 2f); if (vec != null) { ms.pushPose(); ms.translate(sceneToScreen.x, 0, 0); @@ -142,7 +142,7 @@ public class TextWindowElement extends AnimatedOverlayElement { for (int i = 0; i < lines.size(); i++) { screen.getFontRenderer() .draw(ms, lines.get(i) - .getString(), targetX - 10, 3 + 9 * i, ColorHelper.applyAlpha(brighterColor, fade)); + .getString(), targetX - 10, 3 + 9 * i, new Color(brighterColor).scaleAlpha(fade).getRGB()); } ms.popPose(); } diff --git a/src/main/java/com/simibubi/create/foundation/ponder/ui/PonderButton.java b/src/main/java/com/simibubi/create/foundation/ponder/ui/PonderButton.java index b26c91ba6..b4cdd9f4c 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/ui/PonderButton.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/ui/PonderButton.java @@ -1,7 +1,5 @@ package com.simibubi.create.foundation.ponder.ui; -import java.awt.Color; - import javax.annotation.Nonnull; import com.mojang.blaze3d.matrix.MatrixStack; @@ -13,7 +11,7 @@ import com.simibubi.create.foundation.gui.widgets.BoxWidget; import com.simibubi.create.foundation.gui.widgets.ElementWidget; import com.simibubi.create.foundation.ponder.content.PonderTag; import com.simibubi.create.foundation.utility.AnimationTickHolder; -import com.simibubi.create.foundation.utility.ColorHelper; +import com.simibubi.create.foundation.utility.Color; import com.simibubi.create.foundation.utility.animation.LerpedFloat; import net.minecraft.client.Minecraft; @@ -48,7 +46,7 @@ public class PonderButton extends BoxWidget { public T showingTag(PonderTag tag) { return showing(this.tag = tag); } - + public T showing(ItemStack item) { this.item = item; return super.showingElement(GuiGameElement.of(item) @@ -83,12 +81,10 @@ public class PonderButton extends BoxWidget { if (flashValue > .1f) { float sin = 0.5f + 0.5f * MathHelper.sin((AnimationTickHolder.getTicks(true) + partialTicks) / 5f); sin *= flashValue; - Color c1 = gradientColor1; - Color c2 = gradientColor2; - Color nc1 = new Color(255, 255, 255, MathHelper.clamp(c1.getAlpha() + 150, 0, 255)); - Color nc2 = new Color(155, 155, 155, MathHelper.clamp(c2.getAlpha() + 150, 0, 255)); - gradientColor1 = ColorHelper.mixColors(c1, nc1, sin); - gradientColor2 = ColorHelper.mixColors(c2, nc2, sin); + Color nc1 = new Color(255, 255, 255, MathHelper.clamp(gradientColor1.getAlpha() + 150, 0, 255)); + Color nc2 = new Color(155, 155, 155, MathHelper.clamp(gradientColor2.getAlpha() + 150, 0, 255)); + gradientColor1.mixWith(nc1, sin); + gradientColor2.mixWith(nc2, sin); } } @@ -102,14 +98,14 @@ public class PonderButton extends BoxWidget { if (shortcut != null) { ms.translate(0, 0, z + 50); - drawCenteredString(ms, Minecraft.getInstance().font, shortcut.getTranslatedKeyMessage(), x + width / 2 + 8, y + height - 6, ColorHelper.applyAlpha(Theme.i(Theme.Key.TEXT_DARKER), fadeValue)); + drawCenteredString(ms, Minecraft.getInstance().font, shortcut.getTranslatedKeyMessage(), x + width / 2 + 8, y + height - 6, Theme.c(Theme.Key.TEXT_DARKER).scaleAlpha(fadeValue).getRGB()); } } public ItemStack getItem() { return item; } - + public PonderTag getTag() { return tag; } diff --git a/src/main/java/com/simibubi/create/foundation/render/SuperByteBuffer.java b/src/main/java/com/simibubi/create/foundation/render/SuperByteBuffer.java index de0de2981..98273c1d2 100644 --- a/src/main/java/com/simibubi/create/foundation/render/SuperByteBuffer.java +++ b/src/main/java/com/simibubi/create/foundation/render/SuperByteBuffer.java @@ -5,6 +5,7 @@ import com.jozufozu.flywheel.util.transform.MatrixTransformStack; import com.mojang.blaze3d.matrix.MatrixStack; import com.mojang.blaze3d.vertex.IVertexBuilder; import com.simibubi.create.foundation.block.render.SpriteShiftEntry; +import com.simibubi.create.foundation.utility.Color; import it.unimi.dsi.fastutil.longs.Long2IntMap; import it.unimi.dsi.fastutil.longs.Long2IntOpenHashMap; @@ -207,7 +208,7 @@ public class SuperByteBuffer { while (!transforms.clear()) transforms.popPose(); transforms.pushPose(); - + shouldColor = false; r = 0; g = 0; @@ -297,6 +298,10 @@ public class SuperByteBuffer { return this; } + public SuperByteBuffer color(Color c) { + return color(c.getRGB()); + } + /** * Prevents vertex colors from being divided by the diffuse value calculated from the raw untransformed normal vector. * Useful when passed vertex colors do not have diffuse baked in. diff --git a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/ValueBox.java b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/ValueBox.java index 92f7300f2..5913293b5 100644 --- a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/ValueBox.java +++ b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/ValueBox.java @@ -6,7 +6,7 @@ import com.simibubi.create.foundation.gui.AllIcons; import com.simibubi.create.foundation.renderState.SuperRenderTypeBuffer; import com.simibubi.create.foundation.tileEntity.behaviour.ValueBoxTransform.Sided; import com.simibubi.create.foundation.tileEntity.behaviour.scrollvalue.INamedIconOptions; -import com.simibubi.create.foundation.utility.ColorHelper; +import com.simibubi.create.foundation.utility.Color; import com.simibubi.create.foundation.utility.Lang; import com.simibubi.create.foundation.utility.outliner.ChasingAABBOutline; @@ -143,7 +143,7 @@ public class ValueBox extends ChasingAABBOutline { boolean isEmpty = stack.isEmpty(); float scale = 1.5f; ms.translate(-font.width(countString), 0, 0); - + if (isFilter) ms.translate(3, 8, 7.25f); else if (isEmpty) { @@ -215,7 +215,7 @@ public class ValueBox extends ChasingAABBOutline { // util protected void renderHoveringText(MatrixStack ms, IRenderTypeBuffer buffer, ITextComponent text) { - renderHoveringText(ms, buffer, text, highlightColor, ColorHelper.mixColors(passiveColor, 0, 0.75f)); + renderHoveringText(ms, buffer, text, highlightColor, Color.mixColors(passiveColor, 0, 0.75f)); } protected void renderHoveringText(MatrixStack ms, IRenderTypeBuffer buffer, ITextComponent text, int color, diff --git a/src/main/java/com/simibubi/create/foundation/utility/Color.java b/src/main/java/com/simibubi/create/foundation/utility/Color.java new file mode 100644 index 000000000..3525cb5c9 --- /dev/null +++ b/src/main/java/com/simibubi/create/foundation/utility/Color.java @@ -0,0 +1,322 @@ +package com.simibubi.create.foundation.utility; + +import java.util.function.UnaryOperator; + +import javax.annotation.Nonnull; + +import com.google.common.hash.Hashing; + +import net.minecraft.util.math.MathHelper; +import net.minecraft.util.math.vector.Vector3d; + +@SuppressWarnings("PointlessBitwiseExpression") +public class Color { + public final static Color TRANSPARENT_BLACK = new Color(0, 0, 0, 0).setImmutable(); + public final static Color BLACK = new Color(0, 0, 0).setImmutable(); + public final static Color WHITE = new Color(255, 255, 255).setImmutable(); + public final static Color RED = new Color(255, 0, 0).setImmutable(); + public final static Color GREEN = new Color(0, 255, 0).setImmutable(); + public final static Color SPRING_GREEN = new Color(0, 255, 187).setImmutable(); + + protected boolean mutable = true; + protected int value; + + public Color(int r, int g, int b) { + this(r, g, b, 0xff); + } + + public Color(int r, int g, int b, int a) { + value = ((a & 0xff) << 24) | + ((r & 0xff) << 16) | + ((g & 0xff) << 8) | + ((b & 0xff) << 0); + } + + public Color(float r, float g, float b, float a) { + this( + (int) (0.5 + 0xff * MathHelper.clamp(r, 0, 1)), + (int) (0.5 + 0xff * MathHelper.clamp(g, 0, 1)), + (int) (0.5 + 0xff * MathHelper.clamp(b, 0, 1)), + (int) (0.5 + 0xff * MathHelper.clamp(a, 0, 1)) + ); + } + + public Color(int rgba) { + value = rgba; + } + + public Color(int rgb, boolean hasAlpha) { + if (hasAlpha) { + value = rgb; + } else { + value = rgb | 0xff_000000; + } + } + + public Color copy() { + return copy(true); + } + + public Color copy(boolean mutable) { + if (mutable) + return new Color(value); + else + return new Color(value).setImmutable(); + } + + /** + * Mark this color as immutable. Attempting to mutate this color in the future + * will instead cause a copy to be created that can me modified. + */ + public Color setImmutable() { + this.mutable = false; + return this; + } + + /** + * @return the red component in the range 0-255. + * @see #getRGB + */ + public int getRed() { + return (getRGB() >> 16) & 0xff; + } + + /** + * @return the green component in the range 0-255. + * @see #getRGB + */ + public int getGreen() { + return (getRGB() >> 8) & 0xff; + } + + /** + * @return the blue component in the range 0-255. + * @see #getRGB + */ + public int getBlue() { + return (getRGB() >> 0) & 0xff; + } + + /** + * @return the alpha component in the range 0-255. + * @see #getRGB + */ + public int getAlpha() { + return (getRGB() >> 24) & 0xff; + } + + /** + * @return the red component in the range 0-1f. + */ + public float getRedAsFloat() { + return getRed() / 255f; + } + + /** + * @return the green component in the range 0-1f. + */ + public float getGreenAsFloat() { + return getGreen() / 255f; + } + + /** + * @return the blue component in the range 0-1f. + */ + public float getBlueAsFloat() { + return getBlue() / 255f; + } + + /** + * @return the alpha component in the range 0-1f. + */ + public float getAlphaAsFloat() { + return getAlpha() / 255f; + } + + /** + * Returns the RGB value representing this color + * (Bits 24-31 are alpha, 16-23 are red, 8-15 are green, 0-7 are blue). + * @return the RGB value of the color + */ + public int getRGB() { + return value; + } + + public Vector3d asVector() { + return new Vector3d(getRedAsFloat(), getGreenAsFloat(), getBlueAsFloat()); + } + + public Color setRed(int r) { + return ensureMutable().setRedUnchecked(r); + } + + public Color setGreen(int g) { + return ensureMutable().setGreenUnchecked(g); + } + + public Color setBlue(int b) { + return ensureMutable().setBlueUnchecked(b); + } + + public Color setAlpha(int a) { + return ensureMutable().setAlphaUnchecked(a); + } + + public Color setRed(float r) { + return ensureMutable().setRedUnchecked((int) (0xff * MathHelper.clamp(r, 0, 1))); + } + + public Color setGreen(float g) { + return ensureMutable().setGreenUnchecked((int) (0xff * MathHelper.clamp(g, 0, 1))); + } + + public Color setBlue(float b) { + return ensureMutable().setBlueUnchecked((int) (0xff * MathHelper.clamp(b, 0, 1))); + } + + public Color setAlpha(float a) { + return ensureMutable().setAlphaUnchecked((int) (0xff * MathHelper.clamp(a, 0, 1))); + } + + public Color scaleAlpha(float factor) { + return ensureMutable().setAlphaUnchecked((int) (getAlpha() * MathHelper.clamp(factor, 0, 1))); + } + + @Deprecated + public Color applyAlpha(float alpha) { + if (getAlpha() == 0) + return setAlpha(alpha); + else + return scaleAlpha(alpha); + } + + public Color mixWith(Color other, float weight) { + return ensureMutable() + .setRedUnchecked((int) (getRed() + (other.getRed() - getRed()) * weight)) + .setGreenUnchecked((int) (getGreen() + (other.getGreen() - getGreen()) * weight)) + .setBlueUnchecked((int) (getBlue() + (other.getBlue() - getBlue()) * weight)) + .setAlphaUnchecked((int) (getAlpha() + (other.getAlpha() - getAlpha()) * weight)); + } + + public Color darker() { + //todo + return ensureMutable(); + } + + public Color setValue(int value) { + return ensureMutable().setValueUnchecked(value); + } + + public Color modifyValue(UnaryOperator function) { + int newValue = function.apply(value); + if (newValue == value) + return this; + + return ensureMutable().setValueUnchecked(newValue); + } + + // ********* // + + protected Color ensureMutable() { + if (this.mutable) + return this; + + return new Color(this.value); + } + + protected Color setRedUnchecked(int r) { + this.value = (this.value & 0xff_00ffff) | ((r & 0xff) << 16); + return this; + } + + protected Color setGreenUnchecked(int g) { + this.value = (this.value & 0xff_ff00ff) | ((g & 0xff) << 8); + return this; + } + + protected Color setBlueUnchecked(int b) { + this.value = (this.value & 0xff_ffff00) | ((b & 0xff) << 0); + return this; + } + + protected Color setAlphaUnchecked(int a) { + this.value = (this.value & 0x00_ffffff) | ((a & 0xff) << 24); + return this; + } + + protected Color setValueUnchecked(int value) { + this.value = value; + return this; + } + + // ********* // + + public static Color mixColors(@Nonnull Color c1, @Nonnull Color c2, float w) { + return new Color( + (int) (c1.getRed() + (c2.getRed() - c1.getRed()) * w), + (int) (c1.getGreen() + (c2.getGreen() - c1.getGreen()) * w), + (int) (c1.getBlue() + (c2.getBlue() - c1.getBlue()) * w), + (int) (c1.getAlpha() + (c2.getAlpha() - c1.getAlpha()) * w) + ); + } + + public static Color mixColors(@Nonnull Couple colors, float w) { + return mixColors(colors.getFirst(), colors.getSecond(), w); + } + + public static int mixColors(int color1, int color2, float w) { + int a1 = (color1 >> 24); + int r1 = (color1 >> 16) & 0xFF; + int g1 = (color1 >> 8) & 0xFF; + int b1 = color1 & 0xFF; + int a2 = (color2 >> 24); + int r2 = (color2 >> 16) & 0xFF; + int g2 = (color2 >> 8) & 0xFF; + int b2 = color2 & 0xFF; + + return + ((int) (a1 + (a2 - a1) * w) << 24) + + ((int) (r1 + (r2 - r1) * w) << 16) + + ((int) (g1 + (g2 - g1) * w) << 8) + + ((int) (b1 + (b2 - b1) * w) << 0); + } + + public static Color rainbowColor(int timeStep) { + int localTimeStep = Math.abs(timeStep) % 1536; + int timeStepInPhase = localTimeStep % 256; + int phaseBlue = localTimeStep / 256; + int red = colorInPhase(phaseBlue + 4, timeStepInPhase); + int green = colorInPhase(phaseBlue + 2, timeStepInPhase); + int blue = colorInPhase(phaseBlue, timeStepInPhase); + return new Color(red, green, blue); + } + + private static int colorInPhase(int phase, int progress) { + phase = phase % 6; + if (phase <= 1) + return 0; + if (phase == 2) + return progress; + if (phase <= 4) + return 255; + else + return 255 - progress; + } + + public static Color generateFromLong(long l) { + return rainbowColor(Hashing.crc32().hashLong(l).asInt()) + .mixWith(WHITE, 0.5f); + } + + /** + * Try not to introduce new usages of this method and instead use Color instances directly + */ + @Deprecated + public static Vector3d vectorFromRGB(int color) { + int r = (color >> 16) & 0xFF; + int g = (color >> 8) & 0xFF; + int b = color & 0xFF; + return new Vector3d(r, g, b).scale(1 / 255d); + } + +} diff --git a/src/main/java/com/simibubi/create/foundation/utility/ColorHelper.java b/src/main/java/com/simibubi/create/foundation/utility/ColorHelper.java deleted file mode 100644 index 30337a080..000000000 --- a/src/main/java/com/simibubi/create/foundation/utility/ColorHelper.java +++ /dev/null @@ -1,135 +0,0 @@ -package com.simibubi.create.foundation.utility; - -import java.awt.Color; -import java.util.UUID; - -import javax.annotation.Nonnull; - -import com.mojang.blaze3d.systems.RenderSystem; - -import net.minecraft.util.math.MathHelper; -import net.minecraft.util.math.vector.Vector3d; - -public class ColorHelper { - - public static int rainbowColor(int timeStep) { - int localTimeStep = timeStep % 1536; - int timeStepInPhase = localTimeStep % 256; - int phaseBlue = localTimeStep / 256; - int red = colorInPhase(phaseBlue + 4, timeStepInPhase); - int green = colorInPhase(phaseBlue + 2, timeStepInPhase); - int blue = colorInPhase(phaseBlue, timeStepInPhase); - return (red << 16) + (green << 8) + (blue); - } - - private static int colorInPhase(int phase, int progress) { - phase = phase % 6; - if (phase <= 1) - return 0; - if (phase == 2) - return progress; - if (phase <= 4) - return 255; - else - return 255 - progress; - } - - public static int applyAlpha(int color, float alpha) { - int prevAlphaChannel = (color >> 24) & 0xFF; - if (prevAlphaChannel > 0) - alpha *= prevAlphaChannel / 255f; - int alphaChannel = (int) (0xFF * MathHelper.clamp(alpha, 0, 1)); - return (color & 0xFFFFFF) | alphaChannel << 24; - } - - public static Color applyAlpha(Color c, float alpha) { - return new Color(applyAlpha(c.getRGB(), alpha), true); - } - - public static int mixColors(int color1, int color2, float w) { - int r1 = (color1 >> 16); - int g1 = (color1 >> 8) & 0xFF; - int b1 = color1 & 0xFF; - int r2 = (color2 >> 16); - int g2 = (color2 >> 8) & 0xFF; - int b2 = color2 & 0xFF; - - int color = ((int) (r1 + (r2 - r1) * w) << 16) + ((int) (g1 + (g2 - g1) * w) << 8) + (int) (b1 + (b2 - b1) * w); - - return color; - } - - @Nonnull - public static Color mixColors(@Nonnull Color c1, @Nonnull Color c2, float w) { - float[] cmp1 = c1.getRGBComponents(null); - float[] cmp2 = c2.getRGBComponents(null); - return new Color( - cmp1[0] + (cmp2[0] - cmp1[0]) * w, - cmp1[1] + (cmp2[1] - cmp1[1]) * w, - cmp1[2] + (cmp2[2] - cmp1[2]) * w, - cmp1[3] + (cmp2[3] - cmp1[3]) * w - ); - } - - @Nonnull - public static Color mixColors(@Nonnull Couple colors, float w) { - return mixColors(colors.getFirst(), colors.getSecond(), w); - } - - public static int mixAlphaColors(int color1, int color2, float w) { - int a1 = (color1 >> 24); - int r1 = (color1 >> 16) & 0xFF; - int g1 = (color1 >> 8) & 0xFF; - int b1 = color1 & 0xFF; - int a2 = (color2 >> 24); - int r2 = (color2 >> 16) & 0xFF; - int g2 = (color2 >> 8) & 0xFF; - int b2 = color2 & 0xFF; - - int color = ((int) (a1 + (a2 - a1) * w) << 24) + ((int) (r1 + (r2 - r1) * w) << 16) - + ((int) (g1 + (g2 - g1) * w) << 8) + (int) (b1 + (b2 - b1) * w); - - return color; - } - - public static void glColor(int color) { - color = mixColors(color, 0xFFFFFF, .5f); - int r = (color >> 16) & 0xFF; - int g = (color >> 8) & 0xFF; - int b = color & 0xFF; - - RenderSystem.color4f(r / 255f, g / 255f, b / 255f, 1); - } - - public static void glResetColor() { - RenderSystem.color4f(1, 1, 1, 1); - } - - public static Vector3d getRGB(int color) { - int r = (color >> 16) & 0xFF; - int g = (color >> 8) & 0xFF; - int b = color & 0xFF; - return new Vector3d(r, g, b).scale(1 / 255d); - } - - public static Vector3d[] toVectors(int[] colors) { - Vector3d[] vectors = new Vector3d[colors.length]; - for (int i = 0; i < colors.length; i++) { - vectors[i] = ColorHelper.getRGB(colors[i]); - } - return vectors; - } - - public static int colorFromUUID(UUID uuid) { - if (uuid == null) - return 0x333333; - return colorFromLong(uuid.getLeastSignificantBits()); - } - - public static int colorFromLong(long l) { - int rainbowColor = ColorHelper.rainbowColor(String.valueOf(l) - .hashCode()); - return ColorHelper.mixColors(rainbowColor, 0xFFFFFF, .5f); - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/utility/outliner/Outline.java b/src/main/java/com/simibubi/create/foundation/utility/outliner/Outline.java index 08cff21bb..995e3766b 100644 --- a/src/main/java/com/simibubi/create/foundation/utility/outliner/Outline.java +++ b/src/main/java/com/simibubi/create/foundation/utility/outliner/Outline.java @@ -12,7 +12,7 @@ import com.simibubi.create.AllSpecialTextures; import com.simibubi.create.foundation.renderState.RenderTypes; import com.simibubi.create.foundation.renderState.SuperRenderTypeBuffer; import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.ColorHelper; +import com.simibubi.create.foundation.utility.Color; import com.simibubi.create.foundation.utility.VecHelper; import net.minecraft.client.renderer.texture.OverlayTexture; @@ -129,7 +129,7 @@ public abstract class Outline { int j = i >> 16 & '\uffff'; int k = i & '\uffff'; Entry peek = ms.last(); - Vector3d rgb = params.rgb; + Color rgb = params.rgb; if (transformNormals == null) transformNormals = peek.normal(); @@ -144,7 +144,7 @@ public abstract class Outline { } builder.vertex(peek.pose(), (float) pos.x, (float) pos.y, (float) pos.z) - .color((float) rgb.x, (float) rgb.y, (float) rgb.z, params.alpha) + .color(rgb.getRedAsFloat(), rgb.getGreenAsFloat(), rgb.getBlueAsFloat(), rgb.getAlphaAsFloat() * params.alpha) .uv(u, v) .overlayCoords(OverlayTexture.NO_OVERLAY) .uv2(j, k) @@ -169,7 +169,7 @@ public abstract class Outline { protected boolean disableNormals; protected float alpha; protected int lightMapU, lightMapV; - protected Vector3d rgb; + protected Color rgb; private float lineWidth; public OutlineParams() { @@ -177,7 +177,7 @@ public abstract class Outline { alpha = 1; lineWidth = 1 / 32f; fadeLineWidth = true; - rgb = ColorHelper.getRGB(0xFFFFFF); + rgb = Color.WHITE; int i = 15 << 20 | 15 << 4; lightMapU = i >> 16 & '\uffff'; @@ -187,7 +187,12 @@ public abstract class Outline { // builder public OutlineParams colored(int color) { - rgb = ColorHelper.getRGB(color); + rgb = new Color(color, false); + return this; + } + + public OutlineParams colored(Color c) { + rgb = c.copy(); return this; } From 183485e599c57a69f0ffc3537fa9a754e31aad44 Mon Sep 17 00:00:00 2001 From: Nekrodamus Date: Wed, 4 Aug 2021 13:29:46 -0300 Subject: [PATCH 02/79] Update es_es.json Fully translated to date. (With possible errors.) --- .../resources/assets/create/lang/es_es.json | 524 ++++++++++-------- 1 file changed, 285 insertions(+), 239 deletions(-) diff --git a/src/main/resources/assets/create/lang/es_es.json b/src/main/resources/assets/create/lang/es_es.json index a3d88329b..75fe32edc 100644 --- a/src/main/resources/assets/create/lang/es_es.json +++ b/src/main/resources/assets/create/lang/es_es.json @@ -27,10 +27,12 @@ "block.create.belt": "Cinta", "block.create.birch_window": "Ventana de abedul", "block.create.birch_window_pane": "Panel de ventana de abedul", + "block.create.black_nixie_tube": "Tubo Nixie negro", "block.create.black_sail": "Vela negra", "block.create.black_seat": "Asiento negro", "block.create.black_valve_handle": "Asa de válvula negra", "block.create.blaze_burner": "Quemador de Blaze", + "block.create.blue_nixie_tube": "Tubo Nixie azul", "block.create.blue_sail": "Vela azul", "block.create.blue_seat": "Asiento azul", "block.create.blue_valve_handle": "Asa de válvula azul", @@ -40,6 +42,7 @@ "block.create.brass_encased_shaft": "Eje revestido de latón", "block.create.brass_funnel": "Embudo de latón", "block.create.brass_tunnel": "Túnel de latón", + "block.create.brown_nixie_tube": "Tubo Nixie marrón", "block.create.brown_sail": "Vela marrón", "block.create.brown_seat": "Asiento marrón", "block.create.brown_valve_handle": "Asa de válvula marrón", @@ -57,7 +60,7 @@ "block.create.cogwheel": "Engranaje pequeño", "block.create.content_observer": "Observador de contenidos", "block.create.controller_rail": "Raíl de control", - "block.create.copper_backtank": "Depósito trasero de cobre", + "block.create.copper_backtank": "Depósito trasero de cobre", "block.create.copper_block": "Bloque de cobre", "block.create.copper_casing": "Revestidor de caliza", "block.create.copper_ore": "Mena de cobre", @@ -72,7 +75,7 @@ "block.create.crushing_wheel": "Rueda trituradora", "block.create.crushing_wheel_controller": "Controlador de Rueda trituradora", "block.create.cuckoo_clock": "Reloj de cuco", - "block.create.cursed_bell": "Cursed Bell", + "block.create.cyan_nixie_tube": "Tubo Nixie cian", "block.create.cyan_sail": "Vela cian", "block.create.cyan_seat": "Asiento cian", "block.create.cyan_valve_handle": "Asa de válvula cian", @@ -179,13 +182,16 @@ "block.create.granite_cobblestone_stairs": "Escaleras de adoquínes de granito", "block.create.granite_cobblestone_wall": "Muro de adoquínes de granito", "block.create.granite_pillar": "Pilar de granito", + "block.create.gray_nixie_tube": "Tubo Nixie gris", "block.create.gray_sail": "Vela gris", "block.create.gray_seat": "Asiento gris", "block.create.gray_valve_handle": "Asa de válvula gris", + "block.create.green_nixie_tube": "Tubo Nixie verde", "block.create.green_sail": "Vela verde", "block.create.green_seat": "Asiento verde", "block.create.green_valve_handle": "Asa de válvula verde", "block.create.hand_crank": "Manivela", + "block.create.haunted_bell": "Campana encantada", "block.create.honey": "Miel", "block.create.horizontal_framed_glass": "Cristal con marco horizontal", "block.create.horizontal_framed_glass_pane": "Panel de cristal con marco horizontal", @@ -203,13 +209,16 @@ "block.create.layered_limestone": "Piedra caliza estratificada", "block.create.layered_scoria": "Escoria estratificada", "block.create.layered_weathered_limestone": "Caliza erosionada estratificada", - "block.create.lectern_controller": "Lectern Controller", + "block.create.lectern_controller": "Controlador de atril", + "block.create.light_blue_nixie_tube": "Tubo Nixie azul claro", "block.create.light_blue_sail": "Vela azul claro", "block.create.light_blue_seat": "Asiento azul claro", "block.create.light_blue_valve_handle": "Asa de válvula azul claro", + "block.create.light_gray_nixie_tube": "Tubo Nixie gris claro", "block.create.light_gray_sail": "Vela gris claro", "block.create.light_gray_seat": "Asiento gris claro", "block.create.light_gray_valve_handle": "Asa de válvula gris claro", + "block.create.lime_nixie_tube": "Tubo Nixie lima", "block.create.lime_sail": "Vela lima", "block.create.lime_seat": "Asiento lima", "block.create.lime_valve_handle": "Asa de válvula lima", @@ -226,6 +235,7 @@ "block.create.limestone_pillar": "Pilar de piedra caliza", "block.create.linear_chassis": "Chasis lineal", "block.create.lit_blaze_burner": "Quemador de Blaze encendido", + "block.create.magenta_nixie_tube": "Tubo Nixie magenta", "block.create.magenta_sail": "Vela magenta", "block.create.magenta_seat": "Asiento magenta", "block.create.magenta_valve_handle": "Asa de válvula magenta", @@ -309,7 +319,8 @@ "block.create.paved_weathered_limestone_slab": "Losa de piedra caliza erosionada pavimentada", "block.create.paved_weathered_limestone_stairs": "Escaleras de piedra caliza erosionada pavimentada", "block.create.paved_weathered_limestone_wall": "Muro de piedra caliza erosionada pavimentada", - "block.create.peculiar_bell": "Peculiar Bell", + "block.create.peculiar_bell": "Campana peculiar", + "block.create.pink_nixie_tube": "Tubo Nixie rosa", "block.create.pink_sail": "Vela rosa", "block.create.pink_seat": "Asiento rosa", "block.create.pink_valve_handle": "Asa de válvula rosa", @@ -344,10 +355,12 @@ "block.create.powered_toggle_latch": "Palanca de cierre motorizada", "block.create.pulley_magnet": "Imán de la polea", "block.create.pulse_repeater": "Repetidor de pulsos de redstone", + "block.create.purple_nixie_tube": "Tubo Nixie morado", "block.create.purple_sail": "Vela morada", "block.create.purple_seat": "Asiento morado", "block.create.purple_valve_handle": "Asa de válvula morada", "block.create.radial_chassis": "Chasis radial", + "block.create.red_nixie_tube": "Tubo Nixie rojo", "block.create.red_sail": "Vela roja", "block.create.red_seat": "Asiento rojo", "block.create.red_valve_handle": "Asa de válvula roja", @@ -404,26 +417,30 @@ "block.create.weathered_limestone_cobblestone_wall": "Muro de adoquínes de piedra caliza erosionada", "block.create.weathered_limestone_pillar": "Pilar de piedra caliza erosionada", "block.create.weighted_ejector": "Eyector de peso", + "block.create.white_nixie_tube": "Tubo Nixie blanco", "block.create.white_sail": "Vela blanca", "block.create.white_seat": "Asiento blanco", "block.create.white_valve_handle": "Asa de válvula blanco", "block.create.windmill_bearing": "Rodamiento del molino de viento", "block.create.wooden_bracket": "Soporte de madera para ejes", + "block.create.yellow_nixie_tube": "Tubo Nixie amarillo", "block.create.yellow_sail": "Vela amarilla", "block.create.yellow_seat": "Asiento amarillo", "block.create.yellow_valve_handle": "Asa de válvula amarillo", "block.create.zinc_block": "Bloque de zinc", "block.create.zinc_ore": "Mena de zinc", + "enchantment.create.capacity": "Capacidad", + "enchantment.create.potato_recovery": "Recuperación de patatas", + "entity.create.contraption": "Artilugio", "entity.create.crafting_blueprint": "Plano de elaboración", "entity.create.gantry_contraption": "Artilugio de grúa", - "entity.create.potato_projectile": "Potato Projectile", + "entity.create.potato_projectile": "Proyectil de patata", "entity.create.seat": "Asiento", "entity.create.stationary_contraption": "Artilugio estacionario", "entity.create.super_glue": "Pegamento", - "fluid.create.milk": "Leche", "fluid.create.potion": "Poción", "fluid.create.tea": "Té del Constructor", @@ -443,13 +460,13 @@ "item.create.chocolate_glazed_berries": "Bayas glaseadas con chocolate", "item.create.chromatic_compound": "Compuesto cromático", "item.create.cinder_flour": "Harina del Nether", - "item.create.clockwork_component": "Clockwork Component", - "item.create.copper_backtank": "Depósito trasero de cobre", + "item.create.copper_backtank": "Depósito trasero de cobre", "item.create.copper_ingot": "Lingote de cobre", "item.create.copper_nugget": "Pepita de cobre", "item.create.copper_sheet": "Lámina de cobre", "item.create.crafter_slot_cover": "Tapa de ranura del ensamblador mecánico", "item.create.crafting_blueprint": "Plano de elaboración", + "item.create.creative_blaze_cake": "´Pastel de blaze creativo", "item.create.crushed_aluminum_ore": "Mineral de aluminio molido", "item.create.crushed_brass": "Latón molido", "item.create.crushed_copper_ore": "Mineral de cobre molido", @@ -464,7 +481,7 @@ "item.create.crushed_tin_ore": "Mineral de estaño molido", "item.create.crushed_uranium_ore": "Mineral de uranio molido", "item.create.crushed_zinc_ore": "Mineral de zinc molido", - "item.create.diving_boots": "Botas de buceo", + "item.create.diving_boots": "Botas de buceo", "item.create.diving_helmet": "Casco de buceo", "item.create.dough": "Masilla", "item.create.electron_tube": "Tubo de electrones", @@ -478,14 +495,17 @@ "item.create.handheld_worldshaper": "Worldshaper Creativo", "item.create.honey_bucket": "Cubo con miel", "item.create.honeyed_apple": "Manzana con miel", - "item.create.incomplete_clockwork_component": "Incomplete Clockwork Component", + "item.create.incomplete_cogwheel": "Engranaje pequeño incompleto", + "item.create.incomplete_large_cogwheel": "Engranaje grande incompleto", + "item.create.incomplete_precision_mechanism": "Mecanismo de precisión incompleto", "item.create.iron_sheet": "Lámina de hierro", - "item.create.linked_controller": "Controlador enlazado", + "item.create.linked_controller": "Controlador enlazado", "item.create.minecart_contraption": "Artilugio de vagoneta", "item.create.minecart_coupling": "Acoplamiento de vagoneta", "item.create.polished_rose_quartz": "Cuarzo rosado pulido", - "item.create.potato_cannon": "Potato Cannon", + "item.create.potato_cannon": "Cañón de patatas", "item.create.powdered_obsidian": "Polvo de obsidiana", + "item.create.precision_mechanism": "Mecanismo de precisión", "item.create.propeller": "Hélice", "item.create.red_sand_paper": "Papel de lija rojo", "item.create.refined_radiance": "Resplandor refinado", @@ -630,8 +650,8 @@ "advancement.create.flywheel.desc": "Conecta con éxito un motor a la rueda de inercia.", "advancement.create.overstress_flywheel": "Altos niveles de estrés", "advancement.create.overstress_flywheel.desc": "Sobrecarga un motor de horno.", - "advancement.create.clockwork_component": "Complex Curiosities", - "advancement.create.clockwork_component.desc": "Assemble a Clockwork Component.", + "advancement.create.precision_mechanism": "Curiosidades complejas", + "advancement.create.precision_mechanism.desc": "Monta un mecanismo de precisión.", "advancement.create.mechanical_arm": "¡Manos ocupadas!", "advancement.create.mechanical_arm.desc": "Crea un brazo mecánico, selecciona las entradas y salidas, colócalo en el suelo y dale energía; luego observa cómo hace todo el trabajo por ti.", "advancement.create.musical_arm": "¡Tócame la melodía!", @@ -646,7 +666,7 @@ "advancement.create.crushing_wheel.desc": "Crea algunas ruedas de trituración para descomponer más materiales de forma más eficaz.", "advancement.create.blaze_cake": "Fiebre del azúcar", "advancement.create.blaze_cake.desc": "Hornea en tu quemador de blaze un pastel especial.", - "advancement.create.chromatic_compound": "Mysterious Minerals", + "advancement.create.chromatic_compound": "Minerales misteriosos", "advancement.create.chromatic_compound.desc": "Crea una barra de compuesto cromático.", "advancement.create.shadow_steel": "Retorno del vacío", "advancement.create.shadow_steel.desc": "Crea acero sombrío, una barra de metal de la nada.", @@ -658,8 +678,8 @@ "advancement.create.wand_of_symmetry.desc": "Crear un bastón de simetría.", "advancement.create.extendo_grip": "¡Boioioing!", "advancement.create.extendo_grip.desc": "Hazte con un agarre extentido.", - "advancement.create.potato_cannon": "Fwoomp!", - "advancement.create.potato_cannon.desc": "Defeat an enemy with your Potato Cannon.", + "advancement.create.potato_cannon": "Fwoomp!", + "advancement.create.potato_cannon.desc": "Derrota a un enemigo con tu cañón de patatas.", "advancement.create.dual_extendo_grip": "La última edad del boing", "advancement.create.dual_extendo_grip.desc": "Doble empuñadura extendida para un alcance sobrehumano.", "advancement.create.eob": "Fin de la beta", @@ -672,21 +692,27 @@ "itemGroup.create.palettes": "Paletas", "death.attack.create.crush": "%1$s se procesó en las ruedas de trituración", + "death.attack.create.crush.player": "%1$s fue arrojado a las ruedas de trituración por %2$s", "death.attack.create.fan_fire": "%1$s murió quemado por el aire caliente", + "death.attack.create.fan_fire.player": "%1$s fue arrojado a un ahumador por %2$s", "death.attack.create.fan_lava": "%1$s murió quemado por un abanico de lava", + "death.attack.create.fan_lava.player": "%1$s fue arrojado a una fundición por %2$s", "death.attack.create.mechanical_drill": "%1$s fue empalado por un taladro mecánico", + "death.attack.create.mechanical_drill.player": "%1$s fue lanzado frente a un taladro por %2$s", "death.attack.create.mechanical_saw": "%1$s fue cortado por la mitad por una sierra mecánica", - "death.attack.create.potato_cannon": "%1$s was shot by %2$s's Potato Cannon", - "death.attack.create.potato_cannon.item": "%1$s was shot by %2$s using %3$s", + "death.attack.create.mechanical_saw.player": "%1$s fue arrojado a una sierra por %2$s", + "death.attack.create.potato_cannon": "%1$s fue disparado por el cañón de patatas de %2$s's", + "death.attack.create.potato_cannon.item": "%1$s fue disparado por %2$s utilizando %3$s", "death.attack.create.cuckoo_clock_explosion": "%1$s fue volado por los aires por un reloj de cuco manipulado", + "death.attack.create.cuckoo_clock_explosion.player": "%1$s fue volado por un reloj de cuco manipulado", - "create.block.deployer.damage_source_name": "un Desplegador rebelde", + "create.block.deployer.damage_source_name": "Un desplegador rebelde", "create.block.cart_assembler.invalid": "Coloque su Ensamblador de vagonetas en un bloque de Raíles", - "create.menu.return": "Regresar al menú", + "create.menu.return": "Regresar al menú", "create.menu.configure": "Configurar...", - "create.menu.ponder_index": "Ponder Index", - "create.menu.only_ingame": "Available in the Pause Menu", + "create.menu.ponder_index": "Índice", + "create.menu.only_ingame": "Disponible en el menú de pausa", "create.menu.project_page": "Página del proyecto", "create.menu.report_bugs": "Informar de problemas", "create.menu.support": "Apóyenos", @@ -701,7 +727,7 @@ "create.recipe.fan_blasting.fan": "Ventilador detrás de la lava", "create.recipe.pressing": "Prensando", "create.recipe.mixing": "Mezclando", - "create.recipe.deploying": "Desplegando", + "create.recipe.deploying": "Desplegando", "create.recipe.automatic_shapeless": "Elaboración automatizada de productos sin forma", "create.recipe.automatic_brewing": "Elaboración de cerveza automatizada", "create.recipe.packing": "Compactando", @@ -715,16 +741,16 @@ "create.recipe.mystery_conversion": "Conversión misteriosa", "create.recipe.spout_filling": "Llenar por el pico", "create.recipe.draining": "Drenador de objetos", - "create.recipe.sequenced_assembly": "Sequenced Assembly", - "create.recipe.assembly.next": "Next: %1$s", - "create.recipe.assembly.step": "Step %1$s:", - "create.recipe.assembly.progress": "Progress: %1$s/%2$s", - "create.recipe.assembly.pressing": "Process in Press", - "create.recipe.assembly.spout_filling_fluid": "Spout %1$s", - "create.recipe.assembly.deploying_item": "Deploy %1$s", - "create.recipe.assembly.cutting": "Cut with Saw", - "create.recipe.assembly.repeat": "Repeat Sequence %1$s Times", - "create.recipe.assembly.junk": "Random junk", + "create.recipe.sequenced_assembly": "Montaje secuenciado", + "create.recipe.assembly.next": "Siguiente: %1$s", + "create.recipe.assembly.step": "Paso %1$s:", + "create.recipe.assembly.progress": "Progreso: %1$s/%2$s", + "create.recipe.assembly.pressing": "Proceso en prensa", + "create.recipe.assembly.spout_filling_fluid": "Pico %1$s", + "create.recipe.assembly.deploying_item": "Despliegue %1$s", + "create.recipe.assembly.cutting": "Corte con sierra", + "create.recipe.assembly.repeat": "Repetir la secuencia %1$s veces", + "create.recipe.assembly.junk": "Basura aleatoria", "create.recipe.processing.chance": "%1$s%% Chance", "create.recipe.heat_requirement.none": "No es necesario calentar", "create.recipe.heat_requirement.heated": "Calentado", @@ -761,7 +787,7 @@ "create.gui.scrollInput.scrollToModify": "Usa la rueda del ratón para modificar", "create.gui.scrollInput.scrollToAdjustAmount": "Usa la rueda del ratón para ajustar la cantidad", "create.gui.scrollInput.scrollToSelect": "Usa la rueda del ratón para seleccionar", - "create.gui.scrollInput.shiftScrollsFaster": "[Mayús izdo.] para usar la rueda del ratón más rápido", + "create.gui.scrollInput.shiftScrollsFaster": "Mayús izdo para usar la rueda del ratón más rápido", "create.gui.toolmenu.focusKey": "Mantén [%1$s] para enfocar", "create.gui.toolmenu.cycle": "[RUEDA DEL RATÓN] para el ciclo", "create.gui.symmetryWand.mirrorType": "Espejado", @@ -774,12 +800,12 @@ "create.orientation.orthogonal": "Ortogonal", "create.orientation.diagonal": "Diagonal", "create.orientation.horizontal": "Horizontal", - "create.orientation.alongZ": "A lo largo de Z", "create.orientation.alongX": "A lo largo de X", + "create.gui.terrainzapper.title": "Blockzapper", - "create.gui.terrainzapper.searchDiagonal": "Seguir diagonales", - "create.gui.terrainzapper.searchFuzzy": "Ignorar los bordes del material", + "create.gui.terrainzapper.searchDiagonal": "Seguir diagonales", + "create.gui.terrainzapper.searchFuzzy": "Ignorar los bordes del material", "create.gui.terrainzapper.patternSection": "Patrón", "create.gui.terrainzapper.pattern.solid": "Sólido", "create.gui.terrainzapper.pattern.checkered": "Tablero de ajedrez", @@ -805,16 +831,16 @@ "create.gui.terrainzapper.tool.overlay": "Superponer", "create.gui.terrainzapper.tool.flatten": "Aplanar", - "create.terrainzapper.shiftRightClickToSet": "[Mayús izdo.] + clic derecho para seleccionar una forma", + "create.terrainzapper.shiftRightClickToSet": "Mayús izdo + clic derecho para seleccionar una forma", "create.terrainzapper.usingBlock": "Usando: %1$s", - "create.terrainzapper.leftClickToSet": "Clic izquierdo a un bloque para establecer el material", + "create.terrainzapper.leftClickToSet": "Clic izquierdo a un bloque para establecer el material", "create.minecart_coupling.two_couplings_max": "Las vagonetas no pueden tener más de dos enganches cada una", "create.minecart_coupling.unloaded": "Algunas partes de su tren parecen estar en chunks no cargados", "create.minecart_coupling.no_loops": "Los acoplamientos no pueden formar un bucle", "create.minecart_coupling.removed": "Se han retirado todos los acoplamientos de la vagoneta", "create.minecart_coupling.too_far": "Las vagonetas están demasiado separadas", - + "create.contraptions.movement_mode": "Modo de movimiento", "create.contraptions.movement_mode.move_place": "Colocar siempre al detenerse", "create.contraptions.movement_mode.move_place_returned": "Colocar sólo en la posición inicial", @@ -1038,6 +1064,11 @@ "create.item_attributes.in_item_group.inverted": "no está en el grupo '%1$s'", "create.item_attributes.added_by": "fue añadido por %1$s", "create.item_attributes.added_by.inverted": "no fue añadida por %1$s", + "create.item_attributes.shulker_level": "es shulker %1$s", + "create.item_attributes.shulker_level.inverted": "no es shulker %1$s", + "create.item_attributes.shulker_level.full": "lleno", + "create.item_attributes.shulker_level.empty": "vacío", + "create.item_attributes.shulker_level.partial": "parcialmente lleno", "create.item_attributes.has_enchant": "está encantado con %1$s", "create.item_attributes.has_enchant.inverted": "no está encantado con %1$s", "create.item_attributes.color": "Está teñido %1$s", @@ -1133,6 +1164,9 @@ "create.tooltip.chute.fans_pull_up": "Los ventiladores tiran desde arriba", "create.tooltip.chute.fans_pull_down": "Los ventiladores tiran desde abajo", "create.tooltip.chute.contains": "Contiene: %1$s x%2$s", + "create.tooltip.brass_tunnel.contains": "Actualmente distribuye:", + "create.tooltip.brass_tunnel.contains_entry": "> %1$s x%2$s", + "create.tooltip.brass_tunnel.retrieve": "Haga clic derecho para recuperar", "create.linked_controller.bind_mode": "Modo de enlace activo", "create.linked_controller.press_keybind": "Presiona %1$s, %2$s, %3$s, %4$s, %5$s o %6$s, para vincular esta frecuencia a la tecla correspondiente", @@ -1140,7 +1174,7 @@ "create.linked_controller.frequency_slot_1": "Enlace de teclas: %1$s, Freq. #1", "create.linked_controller.frequency_slot_2": "Enlace de teclas: %1$s, Freq. #2", - "create.crafting_blueprint.crafting_slot": "Ranura para ingredientes", + "create.crafting_blueprint.crafting_slot": "Ranura para ingredientes", "create.crafting_blueprint.filter_items_viable": "Los objetos del filtro avanzado son viables", "create.crafting_blueprint.display_slot": "Ranura de pantalla", "create.crafting_blueprint.inferred": "A partir de la receta", @@ -1148,7 +1182,11 @@ "create.crafting_blueprint.secondary_display_slot": "Ranura de pantalla secundaria", "create.crafting_blueprint.optional": "Opcional", - "create.hint.hose_pulley.title": "Suministro ilimitado", + "create.potato_cannon.ammo.attack_damage": "%1$s Daño de ataque", + "create.potato_cannon.ammo.reload_ticks": "%1$s Recarga por Ticks", + "create.potato_cannon.ammo.knockback": "%1$s Golpe de efecto", + + "create.hint.hose_pulley.title": "Suministro ilimitado", "create.hint.hose_pulley": "La masa de fluido objetivo se considera infinita.", "create.hint.mechanical_arm_no_targets.title": "Sin objetivos", "create.hint.mechanical_arm_no_targets": "Parece que a este _brazo mecánico_ no se le ha asignado ningún objetivo. Selecciona _correas_, _depósitos_, _embudos_ y otros bloques haciendo clic derecho sobre ellos mientras _sostienes_ el _brazo mecánico_ en tu mano..", @@ -1156,7 +1194,7 @@ "create.hint.empty_bearing": "Haz clic derecho sobre el rodamiento con la _mano vacía_ para _adjuntar_ la estructura que acabas de construir delante de él.", "create.hint.full_deployer.title": "Exceso de objetos en el desplegador", "create.hint.full_deployer": "Parece que este _desplegador_ contiene _exceso_ de objetos que necesitan ser _extraídos._ Usa una _tolva_, _embudo_ u otro medio para liberarlo de su excedente.", - + "create.gui.config.overlay1": "Hola :)", "create.gui.config.overlay2": "Esta es una muestra de la superposición", "create.gui.config.overlay3": "Haga clic o arrastre con el ratón", @@ -1186,14 +1224,16 @@ "create.subtitle.mechanical_press_activation_belt": "", "create.subtitle.fwoomp": "", "create.subtitle.worldshaper_place": "", + "create.subtitle.crushing_1": "", "create.subtitle.depot_slide": "", "create.subtitle.saw_activate_stone": "", "create.subtitle.blaze_munch": "", "create.subtitle.funnel_flap": "", "create.subtitle.schematicannon_finish": "", + "create.subtitle.haunted_bell_use": "", "create.subtitle.scroll_value": "", "create.subtitle.crafter_craft": "", - "create.subtitle.controller_put": "", + "create.subtitle.controller_put": "", "create.subtitle.cranking": "", "create.subtitle.wrench_remove": "", "create.subtitle.cogs": "", @@ -1201,14 +1241,13 @@ "create.subtitle.wrench_rotate": "", "create.subtitle.potato_hit": "", "create.subtitle.saw_activate_wood": "", + "create.subtitle.haunted_bell_convert": "", "create.subtitle.deployer_polish": "", "create.subtitle.deny": "", "create.subtitle.controller_click": "", "create.subtitle.schematicannon_launch_block": "", "create.subtitle.copper_armor_equip": "", - "create.subtitle.cursed_bell_use": "", - "create.subtitle.cursed_bell_convert": "", - "create.subtitle.controller_take": "Lectern empties", + "create.subtitle.controller_take": "Lectern empties", "create.subtitle.mechanical_press_activation": "", "create.subtitle.contraption_assemble": "", "create.subtitle.crafter_click": "", @@ -1236,7 +1275,7 @@ "block.create.seat.tooltip": "ASIENTO", "block.create.seat.tooltip.summary": "¡Siéntate y disfruta del viaje! Anclará a un jugador en un artilugio en movimiento. También es ideal para muebles estáticos. Viene en una variedad de colores.", "block.create.seat.tooltip.condition1": "Cuando se hace clic derecho en el asiento", - "block.create.seat.tooltip.behaviour1": "Sienta al jugador en el _asiento_. Pulsa [Mayús izdo.] para dejar el asiento.", + "block.create.seat.tooltip.behaviour1": "Sienta al jugador en el _asiento_. Pulsa Mayús izdo para dejar el asiento.", "item.create.blaze_cake.tooltip": "PASTEL DE BLAZE", "item.create.blaze_cake.tooltip.summary": "Un delicioso regalo para sus esforzados _quemadores de blaze_. ¡Los pone en marcha!.", @@ -1249,7 +1288,7 @@ "item.create.wand_of_symmetry.tooltip.action1": "_Crea_ o _mueve_ el espejo.", "item.create.wand_of_symmetry.tooltip.control2": "Cuando se hace clic derecho en el aire", "item.create.wand_of_symmetry.tooltip.action2": "_Quita_ el espejo activo.", - "item.create.wand_of_symmetry.tooltip.control3": "[Mayús izdo.] + clic derecho", + "item.create.wand_of_symmetry.tooltip.control3": "Mayús izdo + clic derecho", "item.create.wand_of_symmetry.tooltip.action3": "Abre la interfaz de configuración.", "item.create.handheld_worldshaper.tooltip": "WORLDSHAPER", @@ -1258,27 +1297,27 @@ "item.create.handheld_worldshaper.tooltip.action1": "Establece los bloques colocados por la herramienta en el bloque objetivo.", "item.create.handheld_worldshaper.tooltip.control2": "Cuando se hace clic derecho en un bloque", "item.create.handheld_worldshaper.tooltip.action2": "Aplica el _pincel_ y la _herramienta_ actualmente seleccionadas en el lugar deseado.", - "item.create.handheld_worldshaper.tooltip.control3": "[Mayús izdo.] + clic derecho", + "item.create.handheld_worldshaper.tooltip.control3": "Mayús izdo + clic derecho", "item.create.handheld_worldshaper.tooltip.action3": "Abre la interfaz de configuración.", "item.create.tree_fertilizer.tooltip": "FERTILIZANTE PARA ÁRBOLES", "item.create.tree_fertilizer.tooltip.summary": "Una potente combinación de minerales adecuada para acelerar el crecimiento de los tipos de árboles más comunes.", "item.create.tree_fertilizer.tooltip.condition1": "Cuando se utiliza en un árbol joven", "item.create.tree_fertilizer.tooltip.behaviour1": "Hace crecer los árboles _independientemente_ de sus condiciones de _espacio_.", - + "item.create.extendo_grip.tooltip": "AGARRE EXTENDIDO", - "item.create.extendo_grip.tooltip.summary": "¡Boioioing! Aumenta enormemente la _distancia de alcance_ del portador. Can be powered with Air Pressure from a _Copper_ _Backtank_", + "item.create.extendo_grip.tooltip.summary": "¡Boioioing! Aumenta enormemente la _distancia de alcance_ del portador. Se puede alimentar con la presión de aire de un _depósito trasero de cobre_", "item.create.extendo_grip.tooltip.condition1": "Cuando está fuera de la mano", "item.create.extendo_grip.tooltip.behaviour1": "Aumenta la _distancia de alcance_ de los objetos usados en la _mano principal_.", - "item.create.extendo_grip.tooltip.condition2": "While wearing Copper Backtank", - "item.create.extendo_grip.tooltip.behaviour2": "_No_ _Durability_ will be used. Instead, _Air_ _pressure_ is drained from the Tank", + "item.create.extendo_grip.tooltip.condition2": "Mientras se usa un depósito trasero de cobre", + "item.create.extendo_grip.tooltip.behaviour2": "No se utilizará _durabilidad_. En su lugar, la _presión del aire_ se drena desde el tanque", - "item.create.potato_cannon.tooltip": "POTATO CANNON", - "item.create.potato_cannon.tooltip.summary": "Fwoomp! Launch your home-grown vegetables at your Enemies. Can be powered with Air Pressure from a _Copper_ _Backtank_", - "item.create.potato_cannon.tooltip.condition1": "When R-Clicked", - "item.create.potato_cannon.tooltip.behaviour1": "_Shoots_ a suitable item from your _Inventory_.", - "item.create.potato_cannon.tooltip.condition2": "While wearing Copper Backtank", - "item.create.potato_cannon.tooltip.behaviour2": "_No_ _Durability_ will be used. Instead, _Air_ _pressure_ is drained from the Tank", + "item.create.potato_cannon.tooltip": "CANÓN DE PATATAS", + "item.create.potato_cannon.tooltip.summary": "Fwoomp! Lanza tus verduras caseras a tus enemigos. Se puede alimentar con la presión de aire de un _depósito trasero de cobre_", + "item.create.potato_cannon.tooltip.condition1": "Cuando se usa clic derecho", + "item.create.potato_cannon.tooltip.behaviour1": "_Dispara_ un objeto adecuado desde tu inventario_.", + "item.create.potato_cannon.tooltip.condition2": "Mientras se usa un depósito trasero de cobre", + "item.create.potato_cannon.tooltip.behaviour2": "No se utilizará _durabilidad_. En su lugar, la _presión del aire_ se drena desde el tanque", "item.create.filter.tooltip": "FILTRO", "item.create.filter.tooltip.summary": "Controla las _salidas_ y _entradas_ de los _dispositivos logísticos_ con más precisión, comparándolas con un _conjunto de objetos_ o varios _filtros anidados_.", @@ -1296,12 +1335,12 @@ "item.create.empty_schematic.tooltip": "ESQUEMA VACÍO", "item.create.empty_schematic.tooltip.summary": "Se utiliza como 'ingrediente' de las recetas y para escribir en la _tabla de esquemas_.", - + "item.create.schematic.tooltip": "ESQUEMA", "item.create.schematic.tooltip.summary": "Contiene una estructura para ser posicionada y colocada en el mundo. Posiciona el holograma como desees y utiliza un _cañón de esquemas_ para construirla.", "item.create.schematic.tooltip.condition1": "Cuando se sostiene en la mano", "item.create.schematic.tooltip.behaviour1": "Se puede posicionar utilizando las herramientas en pantalla.", - "item.create.schematic.tooltip.control1": "[Mayús izdo.] + clic derecho", + "item.create.schematic.tooltip.control1": "Mayús izdo + clic derecho", "item.create.schematic.tooltip.action1": "Abre una _interfaz_ para introducir las _coordenadas_ exactas.", "item.create.schematic_and_quill.tooltip": "ESQUEMA Y PLUMA", @@ -1314,14 +1353,14 @@ "item.create.schematic_and_quill.tooltip.action1": "Selecciona un punto de esquina / confirmar guardar.", "item.create.schematic_and_quill.tooltip.control2": "Cuando mantiene [Ctrl]", "item.create.schematic_and_quill.tooltip.action2": "Selecciona puntos en _medio del aire_. Rueda del ratón para ajustar la distancia.", - "item.create.schematic_and_quill.tooltip.control3": "[Mayús izdo.] + clic derecho", + "item.create.schematic_and_quill.tooltip.control3": "Mayús izdo + clic derecho", "item.create.schematic_and_quill.tooltip.action3": "_Reinicia_ y elimina la selección.", "block.create.schematicannon.tooltip": "CAÑÓN DE ESQUEMAS", "block.create.schematicannon.tooltip.summary": "Dispara bloques para recrear un _esquema_ desplegado en el mundo. Utiliza objetos de los inventarios adyacentes y _pólvora_ como combustible.", "block.create.schematicannon.tooltip.condition1": "Cuando se hace clic derecho", "block.create.schematicannon.tooltip.behaviour1": "Abre la interfaz.", - + "block.create.schematic_table.tooltip": "TABLA DE ESQUEMAS", "block.create.schematic_table.tooltip.summary": "Escribe los esquemas guardados en un _esquema vacío_.", "block.create.schematic_table.tooltip.condition1": "Cuando se da un esquema vacío", @@ -1340,7 +1379,7 @@ "item.create.wrench.tooltip.summary": "Una herramienta útil para trabajar en artilugios cinéticos. Se puede utilizar para _rotar_, _desmantelar_ y para _configurar_ componentes.", "item.create.wrench.tooltip.control1": "Cuando se hace clic derecho en un bloque cinético", "item.create.wrench.tooltip.action1": "Rota los componentes hacia o desde la cara con la que ha interactuado.", - "item.create.wrench.tooltip.control2": "[Mayús izdo.] + clic derecho", + "item.create.wrench.tooltip.control2": "Mayús izdo + clic derecho", "item.create.wrench.tooltip.action2": "Desmonta los _componentes cinéticos_ y los devuelve a tu inventario_.", "block.create.nozzle.tooltip": "BOQUILLA", @@ -1372,6 +1411,11 @@ "block.create.creative_crate.tooltip.condition1": "Cuando el elemento está en la ranura para filtros", "block.create.creative_crate.tooltip.behaviour1": "Todo lo que se _extraiga_ de este contenedor proporcionará un suministro _ilimitado_ del elemento especificado. Los objetos _insertados_ en esta caja serán _evitados_.", + "item.create.creative_blaze_cake.tooltip": "PASTEL CREATIVO", + "item.create.creative_blaze_cake.tooltip.summary": "Un regalo muy especial para los _Quemadores de Blaze_ que permite _controlar su nivel de calor_. Después de comer este pastel, los Quemadores de blaze _nunca se quedarán sin combustible_.", + "item.create.creative_blaze_cake.tooltip.condition1": "Click derecho en un Quemador de blaze", + "item.create.creative_blaze_cake.tooltip.behaviour1": "Bloquea el nivel de calor del Quemador de blaze. Si se utiliza de nuevo, _cicla_ el nivel de calor del Quemador de blaze.", + "block.create.controller_rail.tooltip": "RAÍL DE CONTROL", "block.create.controller_rail.tooltip.summary": "Un raíl energizado _unidireccional_ capaz de _controlar con precisión_ la _velocidad de movimiento_ de una vagoneta.", "block.create.controller_rail.tooltip.condition1": "Cuando es alimentado con redstone", @@ -1387,31 +1431,31 @@ "item.create.refined_radiance.tooltip": "RESPLANDOR REFINADO", "item.create.refined_radiance.tooltip.summary": "Un material cromático forjado a partir de la _luz absorbida_.", - "item.create.refined_radiance.tooltip.condition1": "Trabajo en progreso", + "item.create.refined_radiance.tooltip.condition1": "Trabajo en progreso", "item.create.refined_radiance.tooltip.behaviour1": "Los usos para este material estarán disponibles en un próximo lanzamiento.", "item.create.shadow_steel.tooltip": "ACERO SOMBRÍO", "item.create.shadow_steel.tooltip.summary": "Un material cromático forjado en el _vacío_.", - "item.create.shadow_steel.tooltip.condition1": "Work In Progress", - "item.create.shadow_steel.tooltip.behaviour1": "Usages for this material will be available in a future release.", + "item.create.shadow_steel.tooltip.condition1": "Trabajo en curso", + "item.create.shadow_steel.tooltip.behaviour1": "Los usos de este material estarán disponibles en una futura versión.", "item.create.linked_controller.tooltip": "CONTROLADOR ENLAZADO", "item.create.linked_controller.tooltip.summary": "Permite el control manual de las frecuencias de _enlaces de redstone_ asignadas a sus seis botones..", "item.create.linked_controller.tooltip.condition1": "Al hacer clic derecho", "item.create.linked_controller.tooltip.behaviour1": "Activa el _controlador_. Los _controles de movimiento_ se adquieren mientras está activo.", - "item.create.linked_controller.tooltip.condition2": "Al usar [Mayús izdo.] + clic derecho", + "item.create.linked_controller.tooltip.condition2": "Al usar Mayús izdo + clic derecho", "item.create.linked_controller.tooltip.behaviour2": "Abre la interfaz de configuración manual.", "item.create.linked_controller.tooltip.condition3": "Al usar clic derecho en un receptor de enlaces de redstone", "item.create.linked_controller.tooltip.behaviour3": "Activa el _modo de vinculación_, pulsa uno de los _seis controles_ para vincularlo a la _frecuencia de los enlaces_.", + "item.create.linked_controller.tooltip.condition4": "Clic derecho en un atril", + "item.create.linked_controller.tooltip.behaviour4": "Coloca el controlador en el atril para facilitar su activación. (Clic derecho + mayús izq. para recuperarlo)", "item.create.diving_helmet.tooltip": "CASCO DE BUCEO", "item.create.diving_helmet.tooltip.summary": "Junto con un _depósito trasero de cobre_, permite que el usuario pueda respirar bajo el agua durante un tiempo prolongado.", "item.create.diving_helmet.tooltip.condition1": "Cuando se lleva puesto", "item.create.diving_helmet.tooltip.behaviour1": "Proporciona el efecto de _respiración acuática_, drenando lentamente la presión de aire del _depósito trasero_.", - "item.create.copper_backtank.tooltip.condition2": "When placed, Powered by Kinetics", - "item.create.copper_backtank.tooltip.behaviour2": "_Collects_ _Pressurized_ _Air_ at a rate depending on the Rotational Speed.", - - "item.create.copper_backtank.tooltip": "DEPÓSITO TRASERO DE COBRE", + + "item.create.copper_backtank.tooltip": "DEPÓSITO TRASERO DE COBRE", "item.create.copper_backtank.tooltip.summary": "Un tanque portátil para transportar _aire presurizado_.", "item.create.copper_backtank.tooltip.condition1": "Cuando se lleva puesto", "item.create.copper_backtank.tooltip.behaviour1": "Proporciona _aire presurizado_ a los equipos que lo requieran.", @@ -1434,14 +1478,14 @@ "item.create.minecart_coupling.tooltip.summary": "_Encadena_ todas tus _vagonetas_ o _artilugios de vagoneta_ para formar un majestuoso _tren_.", "item.create.minecart_coupling.tooltip.condition1": "Cuando se utiliza en vagonetas", "item.create.minecart_coupling.tooltip.behaviour1": "_Acopla_ dos vagonetas, intentando mantenerlas a una _distancia constante_ mientras se mueven.", - - "block.create.peculiar_bell.tooltip": "PECULIAR BELL", - "block.create.peculiar_bell.tooltip.summary": "A decorative brass bell. Placing it above a _Soul Fire_ or _Soul Campfire_ may cause a spooky transformation to occur...", - "block.create.cursed_bell.tooltip": "CURSED BELL", - "block.create.cursed_bell.tooltip.summary": "A spooky brass bell haunted by lost souls of the Nether.", - "block.create.cursed_bell.tooltip.condition1": "When Held or Rang", - "block.create.cursed_bell.tooltip.behaviour1": "Highlights nearby dark spots on which Hostile Mobs could spawn.", + "block.create.peculiar_bell.tooltip": "CAMPANA PECULIAR", + "block.create.peculiar_bell.tooltip.summary": "Una campana decorativa de latón. Al colocarla sobre un _Fuego del alma_ o una _Fogata del alma_ puede producirse una transformación espeluznante...", + + "block.create.haunted_bell.tooltip": "CAMPANA ENCANTADA", + "block.create.haunted_bell.tooltip.summary": "Una _campana maldita_ perseguida por las almas perdidas del Nether", + "block.create.haunted_bell.tooltip.condition1": "Cuando se sostiene o suena", + "block.create.haunted_bell.tooltip.behaviour1": "Resalta los _puntos sin luz_ cercanos en los que pueden aparecer las _criaturas hostiles_.", "_": "->------------------------] Ponder Content [------------------------<-", @@ -1458,48 +1502,48 @@ "create.ponder.replay": "Repetición", "create.ponder.think_back": "Volver atrás", "create.ponder.slow_text": "Lectura cómoda", - "create.ponder.exit": "Exit", - "create.ponder.welcome": "Welcome to Ponder", - "create.ponder.categories": "Available Categories in Create", - "create.ponder.index_description": "Click one of the icons to learn about its associated Items and Blocks", - "create.ponder.index_title": "Ponder Index", - "create.ponder.shared.movement_anchors": "Con la ayuda de un chasis o pegamento, se pueden mover estructuras más grandes.", - "create.ponder.shared.rpm32": "32 RPM", - "create.ponder.shared.sneak_and": "Mayús izdo. +", - "create.ponder.shared.storage_on_contraption": "Los inventarios unidos al artilugio recogerán sus producciones automáticamente", + "create.ponder.exit": "Salir", + "create.ponder.welcome": "Bienvenido a Considerando", + "create.ponder.categories": "Categorías disponibles en Create", + "create.ponder.index_description": "Haga clic en uno de los iconos para conocer sus objetos y bloques asociados", + "create.ponder.index_title": "Índice", + "create.ponder.shared.rpm16": "16 RPM", "create.ponder.shared.behaviour_modify_wrench": "Este comportamiento puede modificarse mediante una llave inglesa", + "create.ponder.shared.storage_on_contraption": "Los inventarios unidos al artilugio recogerán sus producciones automáticamente", + "create.ponder.shared.sneak_and": "Mayús izdo. +", "create.ponder.shared.rpm8": "8 RPM", "create.ponder.shared.ctrl_and": "Ctrl +", + "create.ponder.shared.rpm32": "32 RPM", "create.ponder.shared.rpm16_source": "Fuente: 16 RPM", - "create.ponder.shared.rpm16": "16 RPM", - "create.ponder.tag.kinetic_sources": "Fuentes cinéticas", - "create.ponder.tag.kinetic_sources.description": "Componentes que generan fuerza rotacional", - "create.ponder.tag.contraption_actor": "Actores del artilugio", - "create.ponder.tag.contraption_actor.description": "Componentes que exponen un comportamiento especial cuando están unidos a un artilugio en movimiento", - "create.ponder.tag.arm_targets": "Objetivos para los brazos mecánicos", - "create.ponder.tag.arm_targets.description": "Componentes que pueden seleccionarse como entradas o salidas del brazo mecánico", - "create.ponder.tag.logistics": "Transporte de objetos", - "create.ponder.tag.logistics.description": "Componentes que ayudan a desplazar los objetos", - "create.ponder.tag.movement_anchor": "Anclas de movimiento", - "create.ponder.tag.movement_anchor.description": "Componentes que permiten crear artilugios en movimiento, animando una estructura anexa de diversas maneras", - "create.ponder.tag.creative": "Modo creativo", - "create.ponder.tag.creative.description": "Componentes que no suelen estar disponibles para el Modo Supervivencia", - "create.ponder.tag.kinetic_relays": "Transmisores cinéticos", - "create.ponder.tag.kinetic_relays.description": "Componentes que ayudan a transmitir la fuerza rotacional en otro lugar", - "create.ponder.tag.windmill_sails": "Velas para los rodamientos de los molinos de viento", - "create.ponder.tag.windmill_sails.description": "Bloques que cuentan para la fuerza de un artefacto de molino de viento cuando se ensamblan. Cada uno de ellos tiene la misma eficacia al hacerlo.", - "create.ponder.tag.contraption_assembly": "Utilidades para adjuntar bloques", - "create.ponder.tag.contraption_assembly.description": "Herramientas y componentes utilizados para montar estructuras con movimiento, como un artilugio animado", - "create.ponder.tag.decoration": "Estética", - "create.ponder.tag.decoration.description": "Componentes utilizados principalmente con fines decorativos", - "create.ponder.tag.kinetic_appliances": "Dispositivos cinéticos", - "create.ponder.tag.kinetic_appliances.description": "Componentes que utilizan la fuerza rotacional", + "create.ponder.shared.movement_anchors": "Con la ayuda de un chasis o pegamento, se pueden mover estructuras más grandes.", "create.ponder.tag.redstone": "Componentes lógicos", "create.ponder.tag.redstone.description": "Componentes que ayudan a la ingeniería de redstone", + "create.ponder.tag.contraption_assembly": "Utilidades para adjuntar bloques", + "create.ponder.tag.contraption_assembly.description": "Herramientas y componentes utilizados para montar estructuras con movimiento, como un artilugio animado", "create.ponder.tag.fluids": "Manipuladores de fluidos", "create.ponder.tag.fluids.description": "Componentes que ayudan a transportar y utilizar fluidos", + "create.ponder.tag.decoration": "Estética", + "create.ponder.tag.decoration.description": "Componentes utilizados principalmente con fines decorativos", + "create.ponder.tag.windmill_sails": "Velas para los rodamientos de los molinos de viento", + "create.ponder.tag.windmill_sails.description": "Bloques que cuentan para la fuerza de un artefacto de molino de viento cuando se ensamblan. Cada uno de ellos tiene la misma eficacia al hacerlo.", + "create.ponder.tag.arm_targets": "Objetivos para los brazos mecánicos", + "create.ponder.tag.arm_targets.description": "Componentes que pueden seleccionarse como entradas o salidas del brazo mecánico", + "create.ponder.tag.kinetic_appliances": "Dispositivos cinéticos", + "create.ponder.tag.kinetic_appliances.description": "Componentes que utilizan la fuerza rotacional", + "create.ponder.tag.kinetic_sources": "Fuentes cinéticas", + "create.ponder.tag.kinetic_sources.description": "Componentes que generan fuerza rotacional", + "create.ponder.tag.movement_anchor": "Anclas de movimiento", + "create.ponder.tag.movement_anchor.description": "Componentes que permiten crear artilugios en movimiento, animando una estructura anexa de diversas maneras", + "create.ponder.tag.kinetic_relays": "Transmisores cinéticos", + "create.ponder.tag.kinetic_relays.description": "Componentes que ayudan a transmitir la fuerza rotacional en otro lugar", + "create.ponder.tag.contraption_actor": "Actores del artilugio", + "create.ponder.tag.contraption_actor.description": "Componentes que exponen un comportamiento especial cuando están unidos a un artilugio en movimiento", + "create.ponder.tag.creative": "Modo creativo", + "create.ponder.tag.creative.description": "Componentes que no suelen estar disponibles para el Modo Supervivencia", + "create.ponder.tag.logistics": "Transporte de objetos", + "create.ponder.tag.logistics.description": "Componentes que ayudan a desplazar los objetos", - "create.ponder.adjustable_pulse_repeater.header": "Controlar señales mediante repetidores de pulsos ajustables", + "create.ponder.adjustable_pulse_repeater.header": "Controlar señales mediante repetidores de pulsos ajustables", "create.ponder.adjustable_pulse_repeater.text_1": "Los repetidores de pulsos ajustables emiten un pulso corto con un retardo", "create.ponder.adjustable_pulse_repeater.text_2": "Con la rueda del ratón se puede configurar el tiempo de carga", "create.ponder.adjustable_pulse_repeater.text_3": "Los retrasos configurados pueden ser de hasta 30 minutos", @@ -1514,14 +1558,14 @@ "create.ponder.analog_lever.header": "Controlar señales mediante la palanca analógica", "create.ponder.analog_lever.text_1": "Las palancas analógicas son una fuente compacta y precisa de energía de redstone", "create.ponder.analog_lever.text_2": "Haz clic derecho para aumentar su potencia analógica", - "create.ponder.analog_lever.text_3": "Usa [Mayús izdo.] + clic derecho para volver a disminuir su potencia", + "create.ponder.analog_lever.text_3": "Usa Mayús izdo + clic derecho para volver a disminuir su potencia", "create.ponder.andesite_tunnel.header": "Usar túneles de andesita", "create.ponder.andesite_tunnel.text_1": "Los túneles de andesita se pueden utilizar para tapar las correas", "create.ponder.andesite_tunnel.text_2": "Siempre que un túnel de andesita tenga conexiones a los lados...", "create.ponder.andesite_tunnel.text_3": "...dividirá exactamente un elemento de cualquier pila que pase", "create.ponder.andesite_tunnel.text_4": "El resto continuará su camino", - + "create.ponder.basin.header": "Procesar objetos en la cuenca", "create.ponder.basin.text_1": "Una cuenca puede contener objetos y fluidos para su procesamiento", "create.ponder.basin.text_2": "Después de un paso de procesamamiento, las cuencas intentan descargar por debajo a un lado de ellas", @@ -1540,10 +1584,10 @@ "create.ponder.belt_casing.header": "Correas revestidas", "create.ponder.belt_casing.text_1": "Se puede utilizar revestidor de latón o andesita para decorar las correas", "create.ponder.belt_casing.text_2": "Se puede utilizar una llave inglesa para quitar el revestimiento", - + "create.ponder.belt_connector.header": "El uso de las correas mecánicas", "create.ponder.belt_connector.text_1": "Al hacer clic derecho en dos ejes con una correa mecánica se conectarán entre sí", - "create.ponder.belt_connector.text_2": "Las selecciones accidentales pueden ser canceladas con [Mayús izdo.] + clic derecho", + "create.ponder.belt_connector.text_2": "Las selecciones accidentales pueden ser canceladas con Mayús izdo + clic derecho", "create.ponder.belt_connector.text_3": "Se pueden añadir ejes adicionales en toda la correa", "create.ponder.belt_connector.text_4": "Los ejes conectados a través de correas girarán con velocidad y dirección idénticas", "create.ponder.belt_connector.text_5": "Los ejes añadidos se pueden quitar con la llave inglesa", @@ -1572,7 +1616,7 @@ "create.ponder.brass_funnel.text_2": "Los embudos de latón pueden extraer hasta una pila completa", "create.ponder.brass_funnel.text_3": "Usar la rueda de desplazamiento del ratón en la ranura para filtros permite un control preciso del tamaño de la pila extraída.", "create.ponder.brass_funnel.text_4": "El uso de objetos en la ranura de filtrado restringirá el embudo para transferir sólo las pilas que coincidan.", - + "create.ponder.brass_tunnel.header": "Usar túneles de latón", "create.ponder.brass_tunnel.text_1": "Los túneles de latón pueden utilizarse para tapar las correas", "create.ponder.brass_tunnel.text_2": "Tienen ranuras de filtro en cada lado abierto", @@ -1609,9 +1653,9 @@ "create.ponder.cart_assembler_modes.header": "Configurar la orientación de los artilugios de vagonetas", "create.ponder.cart_assembler_modes.text_1": "Los artilugios de vagonetas girarán para orientarse hacia el movimiento de sus vagonetas", - "create.ponder.cart_assembler_modes.text_2": "This Arrow indicates which side of the Structure will be considered the front", - "create.ponder.cart_assembler_modes.text_3": "If the Assembler is set to Lock Rotation, the contraptions' orientation will never change", - + "create.ponder.cart_assembler_modes.text_2": "Esta flecha indica qué lado de la estructura se considerará la parte delantera", + "create.ponder.cart_assembler_modes.text_3": "Si el ensamblador está configurado para bloquear la rotación, la orientación de los artilugios nunca cambiará", + "create.ponder.cart_assembler_rails.header": "Otros tipos de vagonetas y raíles", "create.ponder.cart_assembler_rails.text_1": "Los ensambladores de vagonetas en raíles normales no afectarán el movimiento de las vagonetas que pasen", "create.ponder.cart_assembler_rails.text_2": "Cuando se encuentre en un raíl motorizado o en un raíl de control, las vagonetas se mantendrán en su sitio hasta que sea motorizado", @@ -1664,12 +1708,12 @@ "create.ponder.cogwheel.text_1": "Los engranajes transmitirán la rotación a otros engranajes adyacentes", "create.ponder.cogwheel.text_2": "Los ejes adyacentes conectados así, girarán en direcciones opuestas", - "create.ponder.creative_fluid_tank.header": "Tanque de fluídos creativo", - "create.ponder.creative_fluid_tank.text_1": "Creative Fluid Tanks can be used to provide a bottomless supply of fluid", - "create.ponder.creative_fluid_tank.text_2": "Right-Click with a fluid containing item to configure it", - "create.ponder.creative_fluid_tank.text_3": "Pipe Networks can now endlessly draw the assigned fluid from the tank", - "create.ponder.creative_fluid_tank.text_4": "Any Fluids pushed back into a Creative Fluid Tank will be voided", - + "create.ponder.creative_fluid_tank.header": "Tanque de fluídos creativo", + "create.ponder.creative_fluid_tank.text_1": "Los depósitos de fluidos creativos pueden utilizarse para proporcionar un suministro de fluidos sin fondo", + "create.ponder.creative_fluid_tank.text_2": "Haga clic con el botón derecho en un elemento que contenga fluido para configurarlo", + "create.ponder.creative_fluid_tank.text_3": "Las redes de tuberías pueden ahora extraer sin cesar el fluido asignado del depósito", + "create.ponder.creative_fluid_tank.text_4": "Cualquier fluido empujado de vuelta a un tanque de fluido creativo será anulado", + "create.ponder.creative_motor.header": "Generar fuerza rotacional con motores creativos", "create.ponder.creative_motor.text_1": "Los motores creativos son una fuente compacta y configurable de fuerza rotacional", "create.ponder.creative_motor.text_2": "Usar la rueda de desplazamiento del ratón en su parte trasera cambia las RPM de la salida rotacional", @@ -1706,7 +1750,7 @@ "create.ponder.deployer_modes.text_1": "Por defecto, un desplegador imita la interacción del clic derecho del ratón", "create.ponder.deployer_modes.text_2": "Usando una llave inglesa, se puede configurar para imitar un clic izquierdo en su lugar", - "create.ponder.deployer_processing.header": "Procesar objetos mediante desplegadores", + "create.ponder.deployer_processing.header": "Procesar objetos mediante desplegadores", "create.ponder.deployer_processing.text_1": "Con un objeto de sujeción ajustado, los desplegadores pueden procesar los objetos proporcionados por debajo de ellos", "create.ponder.deployer_processing.text_2": "Los objetos de entrada pueden soltarse o colocarse en un depósito bajo el desplegador", "create.ponder.deployer_processing.text_3": "Cuando los objetos se proporcionan en una 'cinta'...", @@ -1728,13 +1772,14 @@ "create.ponder.empty_blaze_burner.text_2": "Alternativamente, los blaze pueden ser recogidos de sus spawners directamente", "create.ponder.empty_blaze_burner.text_3": "Ahora tienes una fuente de calor ideal para varias máquinas", "create.ponder.empty_blaze_burner.text_4": "Por motivos estéticos, los quemadores de blaze vacíos también se pueden encender con pedernal y acero", + "create.ponder.empty_blaze_burner.text_5": "La llama puede transformarse utilizando un objeto con alma", "create.ponder.empty_blaze_burner.text_6": "Sin embargo, no son adecuados para la calefacción industrial", - "create.ponder.encased_fluid_pipe.header": "Revestir tuberías de fluídos", - "create.ponder.encased_fluid_pipe.text_1": "Copper Casing can be used to decorate Fluid Pipes", - "create.ponder.encased_fluid_pipe.text_2": "Aside from being conceiled, Encased Pipes are locked into their connectivity state", - "create.ponder.encased_fluid_pipe.text_3": "It will no longer react to any neighbouring blocks being added or removed", - + "create.ponder.encased_fluid_pipe.header": "Revestir tuberías de fluídos", + "create.ponder.encased_fluid_pipe.text_1": "El revestidor de cobre puede utilizarse para decorar las tuberías de fluidos", + "create.ponder.encased_fluid_pipe.text_2": "Además de estar ocultas, las tuberías revestidas están bloqueadas en su estado de conectividad", + "create.ponder.encased_fluid_pipe.text_3": "Ya no reaccionará a los bloques vecinos que se añadan o eliminen", + "create.ponder.fan_direction.header": "El flujo de aire de los ventiladores revestidos", "create.ponder.fan_direction.text_1": "Los ventiladores revestidos utilizan la fuerza rotacional para crear una corriente de aire", "create.ponder.fan_direction.text_2": "La fuerza y la dirección del flujo dependen de la fuerza rotacional suministrada", @@ -1752,36 +1797,36 @@ "create.ponder.fan_source.header": "Generar fuerza rotacional mediante ventiladores revestidos", "create.ponder.fan_source.text_1": "Los ventiladores orientados hacia una fuente de calor pueden proporcionar fuerza rotacional", "create.ponder.fan_source.text_2": "Cuando se les da una señal de redstone, los ventiladores comenzarán a proporcionar fuerza", - - "create.ponder.fluid_pipe_flow.header": "Transportar fluidos mediante tuberías de cobre", - "create.ponder.fluid_pipe_flow.text_1": "Fluid Pipes can connect two or more fluid sources and targets", - "create.ponder.fluid_pipe_flow.text_2": "Using a wrench, a straight pipe segment can be given a window", - "create.ponder.fluid_pipe_flow.text_3": "Windowed pipes will not connect to any other adjacent pipe segments", - "create.ponder.fluid_pipe_flow.text_4": "Powered by Mechanical Pumps, the Pipes can transport Fluids", - "create.ponder.fluid_pipe_flow.text_5": "No fluid is being extracted at first", - "create.ponder.fluid_pipe_flow.text_6": "Once the flow connects them, the endpoints gradually transfer their contents", - "create.ponder.fluid_pipe_flow.text_7": "Thus, the Pipe blocks themselves never 'physically' contain any fluid", + + "create.ponder.fluid_pipe_flow.header": "Transportar fluidos mediante tuberías de cobre", + "create.ponder.fluid_pipe_flow.text_1": "Las tuberías de fluidos pueden conectar dos o más fuentes y objetivos de fluidos", + "create.ponder.fluid_pipe_flow.text_2": "Utilizando una llave, se puede dar a un segmento de tubo recto una ventana", + "create.ponder.fluid_pipe_flow.text_3": "Las tuberías con ventanas no se conectarán a ningún otro segmento de tubería adyacente", + "create.ponder.fluid_pipe_flow.text_4": "Accionadas por bombas mecánicas, las tuberías pueden transportar fluidos", + "create.ponder.fluid_pipe_flow.text_5": "Al principio no se extrae ningún líquido", + "create.ponder.fluid_pipe_flow.text_6": "Una vez que el flujo los conecta, los puntos finales transfieren gradualmente su contenido", + "create.ponder.fluid_pipe_flow.text_7": "Así, los bloques de tuberías nunca contienen 'físicamente' ningún fluido", "create.ponder.fluid_pipe_interaction.header": "Drenaje y llenado de contenedores de fluidos", - "create.ponder.fluid_pipe_interaction.text_1": "Endpoints of a pipe network can interact with a variety of blocks", - "create.ponder.fluid_pipe_interaction.text_2": "Any block with fluid storage capabilities can be filled or drained", - "create.ponder.fluid_pipe_interaction.text_3": "Source blocks right in front of an open end can be picked up...", - "create.ponder.fluid_pipe_interaction.text_4": "...while spilling into empty spaces can create fluid sources", - "create.ponder.fluid_pipe_interaction.text_5": "Pipes can also extract fluids from a handful of other blocks directly", - + "create.ponder.fluid_pipe_interaction.text_1": "Los puntos finales de una red de tuberías pueden interactuar con una variedad de bloques", + "create.ponder.fluid_pipe_interaction.text_2": "Cualquier bloque con capacidad para almacenar fluidos puede ser llenado o vaciado", + "create.ponder.fluid_pipe_interaction.text_3": "Los bloques de origen justo delante de un extremo abierto pueden ser recogidos...", + "create.ponder.fluid_pipe_interaction.text_4": "...mientras que el derrame en espacios vacíos puede crear fuentes de fluidos", + "create.ponder.fluid_pipe_interaction.text_5": "Las tuberías también pueden extraer fluidos de un puñado de otros bloques directamente", + "create.ponder.fluid_tank_sizes.header": "Dimensiones de un depósito de fluidos", - "create.ponder.fluid_tank_sizes.text_1": "Fluid Tanks can be combined to increase the total capacity", - "create.ponder.fluid_tank_sizes.text_2": "Their base square can be up to 3 blocks wide...", - "create.ponder.fluid_tank_sizes.text_3": "...and grow in height by more than 30 additional layers", - "create.ponder.fluid_tank_sizes.text_4": "Using a Wrench, a tanks' window can be toggled", - + "create.ponder.fluid_tank_sizes.text_1": "Los depósitos de fluidos pueden combinarse para aumentar la capacidad total", + "create.ponder.fluid_tank_sizes.text_2": "Su cuadrado base puede tener hasta 3 bloques de ancho...", + "create.ponder.fluid_tank_sizes.text_3": "...y crecen en altura en más de 30 capas adicionales", + "create.ponder.fluid_tank_sizes.text_4": "Con una llave inglesa, se puede cambiar la ventana de un tanque", + "create.ponder.fluid_tank_storage.header": "Almacenar fluidos en depósitos de fluidos", - "create.ponder.fluid_tank_storage.text_1": "Fluid Tanks can be used to store large amounts of fluid", - "create.ponder.fluid_tank_storage.text_2": "Pipe networks can push and pull fluids from any side", - "create.ponder.fluid_tank_storage.text_3": "The contained fluid can be measured by a Comparator", - "create.ponder.fluid_tank_storage.text_4": "However, in Survival Mode Fluids cannot be added or taken manually", - "create.ponder.fluid_tank_storage.text_5": "You can use Basins, Item Drains and Spouts to drain or fill fluid containing items", - + "create.ponder.fluid_tank_storage.text_1": "Los depósitos de fluidos pueden utilizarse para almacenar grandes cantidades de fluidos", + "create.ponder.fluid_tank_storage.text_2": "Las redes de tuberías pueden empujar y arrastrar fluidos desde cualquier lado", + "create.ponder.fluid_tank_storage.text_3": "El fluido contenido puede ser medido por un Comparador", + "create.ponder.fluid_tank_storage.text_4": "Sin embargo, en el Modo Supervivencia no se pueden añadir o tomar fluidos manualmente", + "create.ponder.fluid_tank_storage.text_5": "Puede utilizar cuencas, drenadores de objetos y tuberías para vaciar o llenar objetos que contengan líquido", + "create.ponder.flywheel.header": "Generar fuerza rotacional con la rueda de inercia", "create.ponder.flywheel.text_1": "Las ruedas de inercia son necesarias para generar fuerza rotacional con el motor de horno", "create.ponder.flywheel.text_2": "La fuerza rotacional proporcionada tiene una capacidad de estrés muy grande", @@ -1795,7 +1840,7 @@ "create.ponder.funnel_direction.header": "Dirección de la transferencia", "create.ponder.funnel_direction.text_1": "Colocado normalmente, extrae objetos del inventario", - "create.ponder.funnel_direction.text_2": "Colocado mientras pulsa [Mayús izdo.], pone objetos en el inventario", + "create.ponder.funnel_direction.text_2": "Colocado mientras pulsa Mayús izdo, pone objetos en el inventario", "create.ponder.funnel_direction.text_3": "Usando una llave inglesa, el embudo puede ser volteado después de su colocación", "create.ponder.funnel_direction.text_4": "Se aplicarán las mismas reglas para la mayoría de las orientaciones", "create.ponder.funnel_direction.text_5": "Los embudos en las correas extraerán/insertarán dependiendo de su dirección de movimiento", @@ -1826,7 +1871,7 @@ "create.ponder.gantry_cascaded.text_3": "Así, un sistema de grúas puede estar en cascada para cubrir múltiples ejes de movimiento", "create.ponder.gantry_direction.header": "Dirección del movimiento de la grúa", - "create.ponder.gantry_direction.text_1": "Los ejes de grúa pueden tener orientaciones opuestas", + "create.ponder.gantry_direction.text_1": "Los ejes de grúa pueden tener orientaciones opuestas", "create.ponder.gantry_direction.text_2": "La dirección de movimiento de los carros de grúa depende de la orientación de sus ejes", "create.ponder.gantry_direction.text_3": "...así como de su sentido de rotación", "create.ponder.gantry_direction.text_4": "Se aplican las mismas reglas para la rotación propagada", @@ -1853,36 +1898,36 @@ "create.ponder.hand_crank.text_1": "Las manivelas pueden ser utilizadas para aplicar fuerza rotacional manualmente", "create.ponder.hand_crank.text_2": "Mantén pulsado clic derecho para girar en sentido antihorario", "create.ponder.hand_crank.text_3": "Su velocidad de transmisión es relativamente alta", - "create.ponder.hand_crank.text_4": "[Mayús izdo.] + clic derecho pulsado para girar en sentido horario", + "create.ponder.hand_crank.text_4": "Mayús izdo + clic derecho pulsado para girar en sentido horario", + + "create.ponder.hose_pulley.header": "Llenado y vaciado de fuentes mediante poleas de manguera", + "create.ponder.hose_pulley.text_1": "Las poleas para mangueras pueden utilizarse para llenar o drenar grandes masas de fluido", + "create.ponder.hose_pulley.text_2": "Con entrada cinética, se puede controlar la altura de la manguera de las poleas", + "create.ponder.hose_pulley.text_3": "La polea se retrae mientras la rotación de entrada se invierte", + "create.ponder.hose_pulley.text_4": "En el lado opuesto, se pueden conectar las tuberías", + "create.ponder.hose_pulley.text_5": "Las redes de tuberías conectadas pueden proporcionar fluido a la manguera...", + "create.ponder.hose_pulley.text_6": "...o tirar de él, vaciando la piscina en su lugar", + "create.ponder.hose_pulley.text_7": "La velocidad de llenado y vaciado de la polea depende totalmente del caudal de las redes de fluidos", - "create.ponder.hose_pulley.header": "Llenado y vaciado de fuentes mediante poleas de manguera", - "create.ponder.hose_pulley.text_1": "Hose Pulleys can be used to fill or drain large bodies of Fluid", - "create.ponder.hose_pulley.text_2": "With the Kinetic Input, the height of the pulleys' hose can be controlled", - "create.ponder.hose_pulley.text_3": "The Pulley retracts while the input rotation is inverted", - "create.ponder.hose_pulley.text_4": "On the opposite side, pipes can be connected", - "create.ponder.hose_pulley.text_5": "Attached pipe networks can either provide fluid to the hose...", - "create.ponder.hose_pulley.text_6": "...or pull from it, draining the pool instead", - "create.ponder.hose_pulley.text_7": "Fill and Drain speed of the pulley depends entirely on the fluid networks' throughput", - "create.ponder.hose_pulley_infinite.header": "Llenado y drenaje pasivo de grandes masas de fluido", - "create.ponder.hose_pulley_infinite.text_1": "When deploying the Hose Pulley into a large enough ocean...", - "create.ponder.hose_pulley_infinite.text_2": "It will provide/dispose fluids without affecting the source", - "create.ponder.hose_pulley_infinite.text_3": "Pipe networks can limitlessly take fluids from/to such pulleys", - + "create.ponder.hose_pulley_infinite.text_1": "Al desplegar la polea de manguera en un océano lo suficientemente grande...", + "create.ponder.hose_pulley_infinite.text_2": "Proporcionará/eliminará fluidos sin afectar a la fuente", + "create.ponder.hose_pulley_infinite.text_3": "Las redes de tuberías pueden llevar fluidos de forma ilimitada desde/hacia dichas poleas", + "create.ponder.hose_pulley_level.header": "Nivel de llenado y vaciado de las poleas de las mangueras", - "create.ponder.hose_pulley_level.text_1": "While fully retracted, the Hose Pulley cannot operate", - "create.ponder.hose_pulley_level.text_2": "Draining runs from top to bottom", - "create.ponder.hose_pulley_level.text_3": "The surface level will end up just below where the hose ends", - "create.ponder.hose_pulley_level.text_4": "Filling runs from bottom to top", - "create.ponder.hose_pulley_level.text_5": "The filled pool will not grow beyond the layer above the hose end", - + "create.ponder.hose_pulley_level.text_1": "Mientras esté totalmente retraída, la polea de la manguera no puede funcionar", + "create.ponder.hose_pulley_level.text_2": "El drenaje va de arriba a abajo", + "create.ponder.hose_pulley_level.text_3": "El nivel de la superficie terminará justo debajo de donde termina la manguera", + "create.ponder.hose_pulley_level.text_4": "El llenado va de abajo a arriba", + "create.ponder.hose_pulley_level.text_5": "La piscina llena no crecerá más allá de la capa por encima del extremo de la manguera", + "create.ponder.item_drain.header": "Vaciar contenedores de fluidos mediante drenajes de objetos", - "create.ponder.item_drain.text_1": "Item Drains can extract fluids from items", - "create.ponder.item_drain.text_2": "Right-click it to pour fluids from your held item into it", - "create.ponder.item_drain.text_3": "When items are inserted from the side...", - "create.ponder.item_drain.text_4": "...they roll across, emptying out their contained fluid", - "create.ponder.item_drain.text_5": "Pipe Networks can now pull the fluid from the drains' internal buffer", - + "create.ponder.item_drain.text_1": "Los drenajes de objetos pueden extraer los fluidos de los objetos", + "create.ponder.item_drain.text_2": "Haz clic derecho para verter los fluidos de tu objeto retenido en él", + "create.ponder.item_drain.text_3": "Cuando los artículos se insertan desde el lado...", + "create.ponder.item_drain.text_4": "...ruedan a través, vaciando su líquido contenido", + "create.ponder.item_drain.text_5": "Las redes de tuberías pueden ahora extraer el fluido del buffer interno de los desagües", + "create.ponder.large_cogwheel.header": "Transmitir fuerza rotacional mediante engranajes grandes", "create.ponder.large_cogwheel.text_1": "Los engranajes grandes pueden conectarse entre sí en ángulo recto", "create.ponder.large_cogwheel.text_2": "Ayudarán a transmitir la velocidad transportada a otros ejes de rotación.", @@ -1890,7 +1935,7 @@ "create.ponder.linear_chassis_attachment.header": "Fijar bloques mediante el chasis lineal", "create.ponder.linear_chassis_attachment.text_1": "Las caras abiertas de un chasis lineal pueden hacerse pegajosas", "create.ponder.linear_chassis_attachment.text_2": "Haz clic de nuevo para que se pegue el lado opuesto", - "create.ponder.linear_chassis_attachment.text_3": "[Mayús izdo.] + clic derecho con la mano vacía para eliminar el pegamento", + "create.ponder.linear_chassis_attachment.text_3": "Mayús izdo + clic derecho con la mano vacía para eliminar el pegamento", "create.ponder.linear_chassis_attachment.text_4": "Las caras pegadas del chasis lineal fijarán una línea de bloques delante de él", "create.ponder.linear_chassis_attachment.text_5": "Utilizando una llave inglesa, se puede especificar un rango preciso", "create.ponder.linear_chassis_attachment.text_6": "Manteniendo pulsada la tecla [Ctrl] y usando la rueda central del ratón, se ajusta el rango de todos los bloques de chasis adjuntos", @@ -2005,21 +2050,21 @@ "create.ponder.mechanical_press_compacting.text_3": "Algunas de esas recetas pueden requerir el calor de un quemador de blaze", "create.ponder.mechanical_press_compacting.text_4": "La ranura para filtros se puede utilizar en caso de que dos recetas sean conflictivas.", - "create.ponder.mechanical_pump_flow.header": "Transportar fluidos mediante bombas mecánicas", - "create.ponder.mechanical_pump_flow.text_1": "Mechanical Pumps govern the flow of their attached pipe networks", - "create.ponder.mechanical_pump_flow.text_2": "When powered, their arrow indicates the direction of flow", - "create.ponder.mechanical_pump_flow.text_3": "The network behind is now pulling fluids...", - "create.ponder.mechanical_pump_flow.text_4": "...while the network in front is transferring it outward", - "create.ponder.mechanical_pump_flow.text_5": "Reversing the input rotation reverses the direction of flow", - "create.ponder.mechanical_pump_flow.text_6": "Use a Wrench to reverse the orientation of pumps manually", - + "create.ponder.mechanical_pump_flow.header": "Transportar fluidos mediante bombas mecánicas", + "create.ponder.mechanical_pump_flow.text_1": "Las bombas mecánicas gobiernan el flujo de sus redes de tuberías anexas", + "create.ponder.mechanical_pump_flow.text_2": "Cuando están alimentadas, su flecha indica la dirección del flujo", + "create.ponder.mechanical_pump_flow.text_3": "La red de atrás está ahora tirando de fluidos...", + "create.ponder.mechanical_pump_flow.text_4": "...mientras la red de enfrente la transfiere hacia el exterior", + "create.ponder.mechanical_pump_flow.text_5": "Al invertir la rotación de la entrada se invierte el sentido del flujo", + "create.ponder.mechanical_pump_flow.text_6": "Utilice una llave inglesa para invertir la orientación de las bombas manualmente", + "create.ponder.mechanical_pump_speed.header": "Rendimiento de las bombas mecánicas", - "create.ponder.mechanical_pump_speed.text_1": "Regardless of speed, Mechanical Pumps affect pipes connected up to 16 blocks away", - "create.ponder.mechanical_pump_speed.text_2": "Speeding up the input rotation changes the speed of flow propagation...", - "create.ponder.mechanical_pump_speed.text_3": "...aswell as how quickly fluids are transferred", - "create.ponder.mechanical_pump_speed.text_4": "Pumps can combine their throughputs within shared pipe networks", - "create.ponder.mechanical_pump_speed.text_5": "Alternating their orientation can help align their flow directions", - + "create.ponder.mechanical_pump_speed.text_1": "Independientemente de la velocidad, las bombas mecánicas afectan a las tuberías conectadas hasta 16 bloques de distancia", + "create.ponder.mechanical_pump_speed.text_2": "Acelerar la rotación de entrada cambia la velocidad de propagación del flujo...", + "create.ponder.mechanical_pump_speed.text_3": "...así como la rapidez con la que se transfieren los fluidos", + "create.ponder.mechanical_pump_speed.text_4": "Las bombas pueden combinar sus rendimientos en redes de tuberías compartidas", + "create.ponder.mechanical_pump_speed.text_5": "Alternar su orientación puede ayudar a alinear sus direcciones de flujo", + "create.ponder.mechanical_saw_breaker.header": "Cortar árboles con la sierra mecánica", "create.ponder.mechanical_saw_breaker.text_1": "Cuando se le da una fuerza rotacional, la sierra mecánica cortará los árboles que estén directamente frente a ella", "create.ponder.mechanical_saw_breaker.text_2": "Para poder cortar el árbol por completo, la sierra tiene que romper el último bloque que lo une al suelo", @@ -2045,21 +2090,22 @@ "create.ponder.nixie_tube.header": "Usar los tubos Nixie", "create.ponder.nixie_tube.text_1": "Cuando son alimentados con redstone, los tubos nixie mostrarán la fuerza de las señales de redstone", "create.ponder.nixie_tube.text_2": "Con las etiquetas editadas en un yunque, pueden mostar un texto personalizado", + "create.ponder.nixie_tube.text_3": "Haga clic derecho con un tinte para cambiar su color de visualización", "create.ponder.piston_pole.header": "Pértigas de extensión de pistones", "create.ponder.piston_pole.text_1": "Sin las pértigas de extensión unidas, un pistón mecánico no puede moverse", "create.ponder.piston_pole.text_2": "La longitud de la pértiga añadida en su parte posterior determina el rango de alcance", - "create.ponder.portable_fluid_interface.header": "Interfaz de fluidos portátil", - "create.ponder.portable_fluid_interface.text_1": "Fluid Tanks on moving contraptions cannot be accessed by any pipes", - "create.ponder.portable_fluid_interface.text_2": "This component can interact with fluid tanks without the need to stop the contraption", - "create.ponder.portable_fluid_interface.text_3": "Place a second one with a gap of 1 or 2 blocks inbetween", - "create.ponder.portable_fluid_interface.text_4": "Whenever they pass by each other, they will engage in a connection", - "create.ponder.portable_fluid_interface.text_5": "While engaged, the stationary interface will represent ALL Tanks on the contraption", - "create.ponder.portable_fluid_interface.text_6": "Fluid can now be inserted...", - "create.ponder.portable_fluid_interface.text_7": "...or extracted from the contraption", - "create.ponder.portable_fluid_interface.text_8": "After no contents have been exchanged for a while, the contraption will continue on its way", - + "create.ponder.portable_fluid_interface.header": "Interfaz de fluidos portátil", + "create.ponder.portable_fluid_interface.text_1": "No se puede acceder a los depósitos de fluidos de los artilugios en movimiento por ninguna tubería", + "create.ponder.portable_fluid_interface.text_2": "Este componente puede interactuar con los depósitos de fluidos sin necesidad de detener el artilugio", + "create.ponder.portable_fluid_interface.text_3": "Coloca una segunda con un espacio de 1 o 2 bloques entre ellas", + "create.ponder.portable_fluid_interface.text_4": "Cada vez que pasen por delante de la otra, entablarán una conexión", + "create.ponder.portable_fluid_interface.text_5": "Mientras esté activada, la interfaz estacionaria representará TODOS los tanques del artilugio", + "create.ponder.portable_fluid_interface.text_6": "Ahora se puede introducir el fluido...", + "create.ponder.portable_fluid_interface.text_7": "...o extraerlo del artilugio", + "create.ponder.portable_fluid_interface.text_8": "Cuando no se intercambien contenidos durante un tiempo, el artilugio seguirá su camino", + "create.ponder.portable_storage_interface.header": "Interfaz de almacenamiento portátil", "create.ponder.portable_storage_interface.text_1": "Los jugadores no pueden acceder a los inventarios de los artilugios en movimiento.", "create.ponder.portable_storage_interface.text_2": "Este componente puede interactuar con el almacenamiento sin necesidad de detener el artilugio.", @@ -2093,7 +2139,7 @@ "create.ponder.radial_chassis.text_2": "Cuando uno es movido por un artilugio, los otros son arrastrados con él", "create.ponder.radial_chassis.text_3": "Las caras laterales de un chasis radial pueden hacerse adhesivas", "create.ponder.radial_chassis.text_4": "Haga clic de nuevo para que todos los demás lados sean pegajosos", - "create.ponder.radial_chassis.text_5": "[Mayús izdo.] + clic derecho con la mano vacía para eliminar el pegamento", + "create.ponder.radial_chassis.text_5": "Mayús izdo + clic derecho con la mano vacía para eliminar el pegamento", "create.ponder.radial_chassis.text_6": "Cada vez que un bloque está junto a una cara pegajosa...", "create.ponder.radial_chassis.text_7": "...adjuntará todos los bloques alcanzables dentro de un radio en esa capa", "create.ponder.radial_chassis.text_8": "Con una llave inglesa y usando la rueda de desplazamiento del ratón se puede especificar un radio preciso", @@ -2105,7 +2151,7 @@ "create.ponder.redstone_link.header": "Usar los enlaces de redstone", "create.ponder.redstone_link.text_1": "Los enlaces de redstone pueden transmitir señales redstone de forma inalámbrica", - "create.ponder.redstone_link.text_2": "[Mayús izdo.] + clic derecho para cambiar el modo de recepción", + "create.ponder.redstone_link.text_2": "Mayús izdo + clic derecho para cambiar el modo de recepción", "create.ponder.redstone_link.text_3": "Un simple clic derecho con una llave inglesa puede hacer lo mismo", "create.ponder.redstone_link.text_4": "Los receptores emiten la potencia de redstone de los transmisores en 128 bloques", "create.ponder.redstone_link.text_5": "Colocando objetos en las dos ranuras puede especificar una frecuencia", @@ -2157,25 +2203,25 @@ "create.ponder.smart_chute.text_3": "Usa la rueda del ratón para especificar el tamaño de la pila extraída", "create.ponder.smart_chute.text_4": "La energía de redstone impedirá que funcionen.", - "create.ponder.smart_pipe.header": "Controlar el flujo de fluidos mediante tuberías inteligentes", - "create.ponder.smart_pipe.text_1": "Smart pipes can help control flows by fluid type", - "create.ponder.smart_pipe.text_2": "When placed directly at the source, they can specify the type of fluid to extract", - "create.ponder.smart_pipe.text_3": "Simply Right-Click their filter slot with any item containing the desired fluid", - "create.ponder.smart_pipe.text_4": "When placed further down a pipe network, smart pipes will only let matching fluids continue", - + "create.ponder.smart_pipe.header": "Controlar el flujo de fluidos mediante tuberías inteligentes", + "create.ponder.smart_pipe.text_1": "Las tuberías inteligentes pueden ayudar a controlar los flujos por tipo de fluido", + "create.ponder.smart_pipe.text_2": "Cuando se colocan directamente en la fuente, pueden especificar el tipo de fluido a extraer", + "create.ponder.smart_pipe.text_3": "Simplemente haga clic derecho en su ranura de filtro con cualquier elemento que contenga el fluido deseado", + "create.ponder.smart_pipe.text_4": "Cuando se colocan debajo de una red de tuberías, las tuberías inteligentes sólo dejan que los fluidos coincidentes continúen", + "create.ponder.speedometer.header": "Controlar la información cinética mediante el velocímetro", "create.ponder.speedometer.text_1": "El velocímetro muestra la velocidad actual de los componentes conectados", "create.ponder.speedometer.text_2": "Cuando se usan las gafas del constructor, el jugador puede obtener información más detallada del medidor", "create.ponder.speedometer.text_3": "Los comparadores pueden emitir señales analógicas de redstone en relación con las mediciones del velocímetro", - + "create.ponder.spout_filling.header": "Llenar objetos con un surtidor", - "create.ponder.spout_filling.text_1": "The Spout can fill fluid holding items provided beneath it", - "create.ponder.spout_filling.text_2": "The content of a Spout cannot be accessed manually", - "create.ponder.spout_filling.text_3": "Instead, Pipes can be used to supply it with fluids", - "create.ponder.spout_filling.text_4": "The Input items can be placed on a Depot under the Spout", - "create.ponder.spout_filling.text_5": "When items are provided on a belt...", - "create.ponder.spout_filling.text_6": "The Spout will hold and process them automatically", - + "create.ponder.spout_filling.text_1": "El surtidor puede llenar los elementos de retención de fluidos que se encuentran debajo de él", + "create.ponder.spout_filling.text_2": "No se puede acceder manualmente al contenido de un surtidor", + "create.ponder.spout_filling.text_3": "En su lugar, se pueden utilizar tuberías para suministrarle fluidos", + "create.ponder.spout_filling.text_4": "Los objetos de entrada pueden colocarse en un depósito bajo el surtidor", + "create.ponder.spout_filling.text_5": "Cuando los artículos se proporcionan en una cinta...", + "create.ponder.spout_filling.text_6": "El surtidor los retendrá y procesará automáticamente", + "create.ponder.stabilized_bearings.header": "Estabilizar artilugios", "create.ponder.stabilized_bearings.text_1": "Siempre que los rodamientos mecánicos formen parte de una estructura móvil...", "create.ponder.stabilized_bearings.text_2": "...intentarán mantenerse derechos", @@ -2204,15 +2250,15 @@ "create.ponder.valve_handle.text_1": "Los jugadores pueden utilizar las asas de válvulas para aplicar fuerza rotacional manualmente", "create.ponder.valve_handle.text_2": "Mantén pulsado el clic derecho para rotar en sentido contrario a las agujas del reloj", "create.ponder.valve_handle.text_3": "Su velocidad de transmisión es lenta y precisa", - "create.ponder.valve_handle.text_4": "[Mayús izdo.] + clic derecho para rotar en el sentido de las agujas del reloj", + "create.ponder.valve_handle.text_4": "Mayús izdo + clic derecho para rotar en el sentido de las agujas del reloj", "create.ponder.valve_handle.text_5": "Las asas de las válvulas pueden teñirse con fines estéticos", - "create.ponder.valve_pipe.header": "Controlar el flujo de fluidos mediante válvulas", - "create.ponder.valve_pipe.text_1": "Valve pipes help control fluids propagating through pipe networks", - "create.ponder.valve_pipe.text_2": "Their shaft input controls whether fluid is currently allowed through", - "create.ponder.valve_pipe.text_3": "Given Rotational Force in the opening direction, the valve will open up", - "create.ponder.valve_pipe.text_4": "It can be closed again by reversing the input rotation", - + "create.ponder.valve_pipe.header": "Controlar el flujo de fluidos mediante válvulas", + "create.ponder.valve_pipe.text_1": "Las tuberías con válvulas ayudan a controlar los fluidos que se propagan por las redes de tuberías", + "create.ponder.valve_pipe.text_2": "Su entrada en el eje controla si el fluido puede pasar por", + "create.ponder.valve_pipe.text_3": "Dada la fuerza de rotación en la dirección de apertura, la válvula se abrirá", + "create.ponder.valve_pipe.text_4": "Se puede volver a cerrar invirtiendo el giro de entrada", + "create.ponder.water_wheel.header": "Generar fuerza rotacional mediante ruedas hidráulicas", "create.ponder.water_wheel.text_1": "Las ruedas hidráulicas extraen la fuerza de las corrientes de agua adyacentes", "create.ponder.water_wheel.text_2": "Cuantas más caras se alimenten, más rápido girará", @@ -2220,7 +2266,9 @@ "create.ponder.water_wheel.text_4": "Orientadas hacia el lado contrario, no serán tan eficaces", "create.ponder.weighted_ejector.header": "Usar eyectores de peso", - "create.ponder.weighted_ejector.text_1": "[Mayús izdo.] + clic derecho sosteniendo un eyector de peso para seleccionar la ubicación de destino", + "create.ponder.weighted_ejector.text_1": "Mayús izdo + clic derecho sosteniendo un eyector de peso para seleccionar la ubicación de destino", + "create.ponder.weighted_ejector.text_10": "Ahora estára limitado a este tamaño de pila, y sólo se activara cuando su pila retenida alcance esta cantidad", + "create.ponder.weighted_ejector.text_11": "Otras entidades activarán el eyector al pisarlos", "create.ponder.weighted_ejector.text_2": "El eyector colocado lanzará ahora los objetos al lugar marcado", "create.ponder.weighted_ejector.text_3": "Un objetivo válido puede estar a cualquier altura o distancia dentro del alcance", "create.ponder.weighted_ejector.text_4": "Sin embargo, no pueden estar a un costado", @@ -2229,8 +2277,6 @@ "create.ponder.weighted_ejector.text_7": "Los objetos colocados en el eyector hacen que se dispare", "create.ponder.weighted_ejector.text_8": "Si se dirigen a un inventario, el eyector esperará hasta que haya espacio", "create.ponder.weighted_ejector.text_9": "Con la llave inglesa se puede configurar el tamaño de pila requerido", - "create.ponder.weighted_ejector.text_10": "Ahora estára limitado a este tamaño de pila, y sólo se activara cuando su pila retenida alcance esta cantidad", - "create.ponder.weighted_ejector.text_11": "Otras entidades activarán el eyector al pisarlos", "create.ponder.weighted_ejector_redstone.header": "Controlar los eyectores de peso con redstone", "create.ponder.weighted_ejector_redstone.text_1": "Cuando se alimentan con redstone, los eyectores no se activan", From 8dd2f1dbf658f1e29bb67616c2d710717ec10dea Mon Sep 17 00:00:00 2001 From: simibubi <31564874+simibubi@users.noreply.github.com> Date: Thu, 5 Aug 2021 17:05:13 +0200 Subject: [PATCH 03/79] Schematic Problematic - Fixed ammo-specific fire damage not dropping cooked drops from killed entities - Fixed Schematicannons not visually aiming toward current block trajectory - Fixed placed Schematics using smaller boundaries than the original - Added the option to enable/disable placing air blocks with instant creative schematic printing - Added safety check for Missing/Migrated filter attributes #2065 - Added safety check for Crushing wheels near unloaded blocks - Added safety check for instant printing an invalid Schematic --- gradle.properties | 2 +- src/main/java/com/simibubi/create/Create.java | 2 +- .../crusher/CrushingWheelControllerBlock.java | 6 +++-- .../weapons/PotatoCannonProjectileTypes.java | 16 ++++++++++--- .../weapons/PotatoProjectileEntity.java | 2 ++ .../logistics/item/filter/FilterItem.java | 2 ++ .../content/schematics/SchematicPrinter.java | 23 +++++++++++++++---- .../packet/SchematicPlacePacket.java | 9 ++++++++ .../create/foundation/config/CSchematics.java | 3 +++ src/main/resources/META-INF/mods.toml | 2 +- 10 files changed, 54 insertions(+), 13 deletions(-) diff --git a/gradle.properties b/gradle.properties index 190398720..4da5ad71c 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,7 +4,7 @@ org.gradle.jvmargs = -Xmx3G org.gradle.daemon = false # mod version info -mod_version = 0.3.2c +mod_version = 0.3.2d minecraft_version = 1.16.5 forge_version = 36.2.0 diff --git a/src/main/java/com/simibubi/create/Create.java b/src/main/java/com/simibubi/create/Create.java index a5bc411e7..6ab5657a9 100644 --- a/src/main/java/com/simibubi/create/Create.java +++ b/src/main/java/com/simibubi/create/Create.java @@ -58,7 +58,7 @@ public class Create { public static final String ID = "create"; public static final String NAME = "Create"; - public static final String VERSION = "0.3.2c"; + public static final String VERSION = "0.3.2d"; public static final Logger LOGGER = LogManager.getLogger(); diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/crusher/CrushingWheelControllerBlock.java b/src/main/java/com/simibubi/create/content/contraptions/components/crusher/CrushingWheelControllerBlock.java index 3184f7f3b..b136458b1 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/crusher/CrushingWheelControllerBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/crusher/CrushingWheelControllerBlock.java @@ -156,8 +156,10 @@ public class CrushingWheelControllerBlock extends DirectionalBlock continue; if (neighbour.getValue(BlockStateProperties.AXIS) == d.getAxis()) continue; - KineticTileEntity wheelTe = (KineticTileEntity) world.getBlockEntity(pos.relative(d)); - te.crushingspeed = Math.abs(wheelTe.getSpeed() / 50f); + TileEntity adjTe = world.getBlockEntity(pos.relative(d)); + if (!(adjTe instanceof KineticTileEntity)) + continue; + te.crushingspeed = Math.abs(((KineticTileEntity) adjTe).getSpeed() / 50f); te.sendData(); break; } diff --git a/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoCannonProjectileTypes.java b/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoCannonProjectileTypes.java index 0d19ad0a9..cb1159fbe 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoCannonProjectileTypes.java +++ b/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoCannonProjectileTypes.java @@ -77,7 +77,7 @@ public class PotatoCannonProjectileTypes { .velocity(1.25f) .knockback(0.5f) .renderTumbling() - .onEntityHit(setFire(3)) + .preEntityHit(setFire(3)) .registerAndAssign(Items.BAKED_POTATO), CARROT = create("carrot").damage(4) @@ -247,7 +247,7 @@ public class PotatoCannonProjectileTypes { .velocity(1.1f) .renderTumbling() .sticky() - .onEntityHit(setFire(12)) + .preEntityHit(setFire(12)) .soundPitch(1.0f) .registerAndAssign(AllItems.BLAZE_CAKE.get()) ; @@ -286,7 +286,8 @@ public class PotatoCannonProjectileTypes { private float fwoompPitch = 1; private boolean sticky = false; private PotatoProjectileRenderMode renderMode = new PotatoProjectileRenderMode.Billboard(); - private Predicate onEntityHit = e -> false; + private Predicate preEntityHit = e -> false; // True if hit should be canceled + private Predicate onEntityHit = e -> false; // True if shouldn't recover projectile private BiPredicate onBlockHit = (w, ray) -> false; public float getGravityMultiplier() { @@ -327,6 +328,10 @@ public class PotatoCannonProjectileTypes { public boolean isSticky() { return sticky; } + public boolean preEntityHit(EntityRayTraceResult ray) { + return preEntityHit.test(ray); + } + public boolean onEntityHit(EntityRayTraceResult ray) { return onEntityHit.test(ray); } @@ -542,6 +547,11 @@ public class PotatoCannonProjectileTypes { return this; } + public Builder preEntityHit(Predicate callback) { + result.preEntityHit = callback; + return this; + } + public Builder onEntityHit(Predicate callback) { result.onEntityHit = callback; return this; diff --git a/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoProjectileEntity.java b/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoProjectileEntity.java index 6d7fd45db..0cd481f15 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoProjectileEntity.java +++ b/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoProjectileEntity.java @@ -190,6 +190,8 @@ public class PotatoProjectileEntity extends DamagingProjectileEntity implements if (target instanceof WitherEntity && ((WitherEntity) target).isPowered()) return; + if (projectileType.preEntityHit(ray)) + return; boolean targetIsEnderman = target.getType() == EntityType.ENDERMAN; int k = target.getRemainingFireTicks(); diff --git a/src/main/java/com/simibubi/create/content/logistics/item/filter/FilterItem.java b/src/main/java/com/simibubi/create/content/logistics/item/filter/FilterItem.java index b6685de89..b971d7cda 100644 --- a/src/main/java/com/simibubi/create/content/logistics/item/filter/FilterItem.java +++ b/src/main/java/com/simibubi/create/content/logistics/item/filter/FilterItem.java @@ -220,6 +220,8 @@ public class FilterItem extends Item implements INamedContainerProvider { for (INBT inbt : attributes) { CompoundNBT compound = (CompoundNBT) inbt; ItemAttribute attribute = ItemAttribute.fromNBT(compound); + if (attribute == null) + continue; boolean matches = attribute.appliesTo(stack, world) != compound.getBoolean("Inverted"); if (matches) { diff --git a/src/main/java/com/simibubi/create/content/schematics/SchematicPrinter.java b/src/main/java/com/simibubi/create/content/schematics/SchematicPrinter.java index 99dd33f7a..906a907fe 100644 --- a/src/main/java/com/simibubi/create/content/schematics/SchematicPrinter.java +++ b/src/main/java/com/simibubi/create/content/schematics/SchematicPrinter.java @@ -51,7 +51,14 @@ public class SchematicPrinter { public void fromTag(CompoundNBT compound, boolean clientPacket) { if (compound.contains("CurrentPos")) currentPos = NBTUtil.readBlockPos(compound.getCompound("CurrentPos")); - + if (clientPacket) { + schematicLoaded = false; + if (compound.contains("Anchor")) { + schematicAnchor = NBTUtil.readBlockPos(compound.getCompound("Anchor")); + schematicLoaded = true; + } + } + printingEntityIndex = compound.getInt("EntityProgress"); printStage = PrintStage.valueOf(compound.getString("PrintStage")); compound.getList("DeferredBlocks", 10).stream() @@ -62,7 +69,9 @@ public class SchematicPrinter { public void write(CompoundNBT compound) { if (currentPos != null) compound.put("CurrentPos", NBTUtil.writeBlockPos(currentPos)); - + if (schematicAnchor != null) + compound.put("Anchor", NBTUtil.writeBlockPos(schematicAnchor)); + compound.putInt("EntityProgress", printingEntityIndex); compound.putString("PrintStage", printStage.name()); ListNBT tagDeferredBlocks = new ListNBT(); @@ -78,15 +87,19 @@ public class SchematicPrinter { Template activeTemplate = SchematicItem.loadSchematic(blueprint); PlacementSettings settings = SchematicItem.getSettings(blueprint, processNBT); - schematicAnchor = NBTUtil.readBlockPos(blueprint.getTag().getCompound("Anchor")); + schematicAnchor = NBTUtil.readBlockPos(blueprint.getTag() + .getCompound("Anchor")); blockReader = new SchematicWorld(schematicAnchor, originalWorld); activeTemplate.placeInWorldChunk(blockReader, schematicAnchor, settings, blockReader.getRandom()); + BlockPos extraBounds = Template.calculateRelativePosition(settings, activeTemplate.getSize() + .offset(-1, -1, -1)); + blockReader.bounds.expand(new MutableBoundingBox(extraBounds, extraBounds)); + StructureTransform transform = new StructureTransform(settings.getRotationPivot(), Direction.Axis.Y, settings.getRotation(), settings.getMirror()); - for (TileEntity te : blockReader.tileEntities.values()) { + for (TileEntity te : blockReader.tileEntities.values()) transform.apply(te); - } printingEntityIndex = -1; printStage = PrintStage.BLOCKS; diff --git a/src/main/java/com/simibubi/create/content/schematics/packet/SchematicPlacePacket.java b/src/main/java/com/simibubi/create/content/schematics/packet/SchematicPlacePacket.java index 3f6eccd0f..3331040c2 100644 --- a/src/main/java/com/simibubi/create/content/schematics/packet/SchematicPlacePacket.java +++ b/src/main/java/com/simibubi/create/content/schematics/packet/SchematicPlacePacket.java @@ -3,6 +3,7 @@ package com.simibubi.create.content.schematics.packet; import java.util.function.Supplier; import com.simibubi.create.content.schematics.SchematicPrinter; +import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.networking.SimplePacketBase; import com.simibubi.create.foundation.utility.BlockHelper; @@ -38,12 +39,20 @@ public class SchematicPlacePacket extends SimplePacketBase { World world = player.getLevel(); SchematicPrinter printer = new SchematicPrinter(); printer.loadSchematic(stack, world, !player.canUseGameMasterBlocks()); + if (!printer.isLoaded()) + return; + + boolean includeAir = AllConfigs.SERVER.schematics.creativePrintIncludesAir.get(); while (printer.advanceCurrentPos()) { if (!printer.shouldPlaceCurrent(world)) continue; printer.handleCurrentTarget((pos, state, tile) -> { + boolean placingAir = state.getBlock().isAir(state, world, pos); + if (placingAir && !includeAir) + return; + CompoundNBT tileData = tile != null ? tile.save(new CompoundNBT()) : null; BlockHelper.placeSchematicBlock(world, state, pos, null, tileData); }, (pos, entity) -> { diff --git a/src/main/java/com/simibubi/create/foundation/config/CSchematics.java b/src/main/java/com/simibubi/create/foundation/config/CSchematics.java index 21a38ef34..9745a8b84 100644 --- a/src/main/java/com/simibubi/create/foundation/config/CSchematics.java +++ b/src/main/java/com/simibubi/create/foundation/config/CSchematics.java @@ -2,6 +2,7 @@ package com.simibubi.create.foundation.config; public class CSchematics extends ConfigBase { + public ConfigBool creativePrintIncludesAir = b(false, "creativePrintIncludesAir", Comments.creativePrintIncludesAir); public ConfigInt maxSchematics = i(10, 1, "maxSchematics", Comments.maxSchematics); public ConfigInt maxTotalSchematicSize = i(256, 16, "maxSchematics", Comments.kb, Comments.maxSize); public ConfigInt maxSchematicPacketSize = @@ -33,6 +34,8 @@ public class CSchematics extends ConfigBase { static String skips = "Amount of block positions per tick scanned by a running cannon. Higher => Faster"; static String gunpowderWorth = "% of Schematicannon's Fuel filled by 1 Gunpowder."; static String fuelUsage = "% of Schematicannon's Fuel used for each fired block."; + static String creativePrintIncludesAir = + "Whether placing a Schematic directly in Creative Mode should replace world blocks with Air"; } } diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/mods.toml index b3457e6a6..c932c8408 100644 --- a/src/main/resources/META-INF/mods.toml +++ b/src/main/resources/META-INF/mods.toml @@ -5,7 +5,7 @@ license="MIT" [[mods]] modId="create" -version="v0.3.2c for 1.16.5" +version="v0.3.2d" displayName="Create" #updateJSONURL="" displayURL="https://www.curseforge.com/minecraft/mc-mods/create" From 9f558cf419a4d8a272f3acd53b08f100f5448f1b Mon Sep 17 00:00:00 2001 From: simibubi <31564874+simibubi@users.noreply.github.com> Date: Thu, 5 Aug 2021 19:11:13 +0200 Subject: [PATCH 04/79] Not a magic mod - Fixed Auto-Compacting picking up special gated recipes from the mod Occultism #2070 --- .../simibubi/create/compat/jei/CreateJEI.java | 4 ++-- .../press/MechanicalPressTileEntity.java | 19 +++++++++++++++++-- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/simibubi/create/compat/jei/CreateJEI.java b/src/main/java/com/simibubi/create/compat/jei/CreateJEI.java index da8730eaa..2cf7dcf90 100644 --- a/src/main/java/com/simibubi/create/compat/jei/CreateJEI.java +++ b/src/main/java/com/simibubi/create/compat/jei/CreateJEI.java @@ -123,7 +123,7 @@ public class CreateJEI implements IModPlugin { autoShapeless = register("automatic_shapeless", MixingCategory::autoShapeless) .recipes(r -> r.getSerializer() == IRecipeSerializer.SHAPELESS_RECIPE && r.getIngredients() - .size() > 1 && !MechanicalPressTileEntity.canCompress(r.getIngredients()), + .size() > 1 && !MechanicalPressTileEntity.canCompress(r), BasinRecipe::convertShapeless) .catalyst(AllBlocks.MECHANICAL_MIXER::get) .catalyst(AllBlocks.BASIN::get) @@ -160,7 +160,7 @@ public class CreateJEI implements IModPlugin { .build(), autoSquare = register("automatic_packing", PackingCategory::autoSquare) - .recipes(r -> (r instanceof ICraftingRecipe) && MechanicalPressTileEntity.canCompress(r.getIngredients()), + .recipes(r -> (r instanceof ICraftingRecipe) && MechanicalPressTileEntity.canCompress(r), BasinRecipe::convertShapeless) .catalyst(AllBlocks.MECHANICAL_PRESS::get) .catalyst(AllBlocks.BASIN::get) diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/press/MechanicalPressTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/press/MechanicalPressTileEntity.java index 27ac4f416..059067cfd 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/press/MechanicalPressTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/press/MechanicalPressTileEntity.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Optional; +import com.google.common.collect.ImmutableList; import com.simibubi.create.AllBlocks; import com.simibubi.create.AllRecipeTypes; import com.simibubi.create.AllSoundEvents; @@ -31,12 +32,14 @@ import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.ICraftingRecipe; import net.minecraft.item.crafting.IRecipe; +import net.minecraft.item.crafting.IRecipeSerializer; import net.minecraft.item.crafting.Ingredient; import net.minecraft.nbt.CompoundNBT; import net.minecraft.particles.ItemParticleData; import net.minecraft.particles.ParticleTypes; import net.minecraft.tileentity.TileEntityType; import net.minecraft.util.NonNullList; +import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.MathHelper; import net.minecraft.util.math.vector.Vector3d; @@ -339,7 +342,19 @@ public class MechanicalPressTileEntity extends BasinOperatingTileEntity { return AllRecipeTypes.PRESSING.find(pressingInv, level); } - public static boolean canCompress(NonNullList ingredients) { + private static final List RECIPE_DENY_LIST = + ImmutableList.of(new ResourceLocation("occultism", "spirit_trade")); + + public static boolean canCompress(IRecipe recipe) { + NonNullList ingredients = recipe.getIngredients(); + if (!(recipe instanceof ICraftingRecipe)) + return false; + + IRecipeSerializer serializer = recipe.getSerializer(); + for (ResourceLocation denied : RECIPE_DENY_LIST) + if (serializer != null && denied.equals(serializer.getRegistryName())) + return false; + return AllConfigs.SERVER.recipes.allowShapedSquareInPress.get() && (ingredients.size() == 4 || ingredients.size() == 9) && ItemHelper.condenseIngredients(ingredients) .size() == 1; @@ -347,7 +362,7 @@ public class MechanicalPressTileEntity extends BasinOperatingTileEntity { @Override protected boolean matchStaticFilters(IRecipe recipe) { - return (recipe instanceof ICraftingRecipe && canCompress(recipe.getIngredients())) + return (recipe instanceof ICraftingRecipe && canCompress(recipe)) || recipe.getType() == AllRecipeTypes.COMPACTING.getType(); } From b81fc66145f031d4b6f3c1f60e663b2c26f7c249 Mon Sep 17 00:00:00 2001 From: PepperBell <44146161+PepperCode1@users.noreply.github.com> Date: Thu, 5 Aug 2021 10:23:59 -0700 Subject: [PATCH 05/79] Sandpaper tag improvements - Use already created sandpaper tag - Use previous recipe's namespace instead of Create's when converting sandpaper recipes to deployer recipes --- src/main/java/com/simibubi/create/AllItems.java | 2 +- src/main/java/com/simibubi/create/AllTags.java | 4 ++-- .../deployer/DeployerApplicationRecipe.java | 13 ++++++------- 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/simibubi/create/AllItems.java b/src/main/java/com/simibubi/create/AllItems.java index 728ac0894..36885956c 100644 --- a/src/main/java/com/simibubi/create/AllItems.java +++ b/src/main/java/com/simibubi/create/AllItems.java @@ -233,8 +233,8 @@ public class AllItems { public static final ItemEntry RED_SAND_PAPER = REGISTRATE.item("red_sand_paper", SandPaperItem::new) .transform(CreateRegistrate.customRenderedItem(() -> SandPaperModel::new)) - .onRegister(s -> TooltipHelper.referTo(s, SAND_PAPER)) .tag(AllTags.AllItemTags.SANDPAPER.tag) + .onRegister(s -> TooltipHelper.referTo(s, SAND_PAPER)) .register(); public static final ItemEntry WRENCH = REGISTRATE.item("wrench", WrenchItem::new) diff --git a/src/main/java/com/simibubi/create/AllTags.java b/src/main/java/com/simibubi/create/AllTags.java index 51269fc2c..f0328a5e6 100644 --- a/src/main/java/com/simibubi/create/AllTags.java +++ b/src/main/java/com/simibubi/create/AllTags.java @@ -79,13 +79,13 @@ public class AllTags { SEATS(MOD), VALVE_HANDLES(MOD), UPRIGHT_ON_BELT(MOD), + SANDPAPER(MOD), CREATE_INGOTS(MOD), BEACON_PAYMENT(FORGE), INGOTS(FORGE), NUGGETS(FORGE), PLATES(FORGE), - COBBLESTONE(FORGE), - SANDPAPER(MOD) + COBBLESTONE(FORGE) ; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerApplicationRecipe.java b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerApplicationRecipe.java index a698ebda3..3fb54e05f 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerApplicationRecipe.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerApplicationRecipe.java @@ -6,9 +6,8 @@ import java.util.function.Supplier; import java.util.stream.Collectors; import com.simibubi.create.AllBlocks; -import com.simibubi.create.AllItems; import com.simibubi.create.AllRecipeTypes; -import com.simibubi.create.Create; +import com.simibubi.create.AllTags.AllItemTags; import com.simibubi.create.compat.jei.category.sequencedAssembly.SequencedAssemblySubCategory; import com.simibubi.create.content.contraptions.itemAssembly.IAssemblyRecipe; import com.simibubi.create.content.contraptions.processing.ProcessingRecipe; @@ -19,8 +18,8 @@ import com.simibubi.create.foundation.utility.Lang; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.IRecipe; import net.minecraft.item.crafting.Ingredient; -import net.minecraft.tags.ItemTags; import net.minecraft.util.IItemProvider; +import net.minecraft.util.ResourceLocation; import net.minecraft.util.text.ITextComponent; import net.minecraft.util.text.StringTextComponent; import net.minecraft.util.text.TranslationTextComponent; @@ -67,10 +66,10 @@ public class DeployerApplicationRecipe extends ProcessingRecipe i public static List convert(List> sandpaperRecipes) { return sandpaperRecipes.stream() - .map(r -> new ProcessingRecipeBuilder<>(DeployerApplicationRecipe::new, Create.asResource(r.getId() + .map(r -> new ProcessingRecipeBuilder<>(DeployerApplicationRecipe::new, new ResourceLocation(r.getId().getNamespace(), r.getId() .getPath() + "_using_deployer")).require(r.getIngredients() .get(0)) - .require(ItemTags.createOptional(Create.asResource("sandpaper"))) + .require(AllItemTags.SANDPAPER.tag) .output(r.getResultItem()) .build()) .collect(Collectors.toList()); @@ -80,7 +79,7 @@ public class DeployerApplicationRecipe extends ProcessingRecipe i public void addAssemblyIngredients(List list) { list.add(ingredients.get(1)); } - + @Override @OnlyIn(Dist.CLIENT) public ITextComponent getDescriptionForAssembly() { @@ -96,7 +95,7 @@ public class DeployerApplicationRecipe extends ProcessingRecipe i public void addRequiredMachines(Set list) { list.add(AllBlocks.DEPLOYER.get()); } - + @Override public Supplier> getJEISubCategory() { return () -> SequencedAssemblySubCategory.AssemblyDeploying::new; From 867c359803cb4cc2f291a69b036dcbb28809ab5d Mon Sep 17 00:00:00 2001 From: Nekrodamus Date: Thu, 5 Aug 2021 16:46:57 -0300 Subject: [PATCH 06/79] Update es_es.json Some fixes --- src/main/resources/assets/create/lang/es_es.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/resources/assets/create/lang/es_es.json b/src/main/resources/assets/create/lang/es_es.json index 75fe32edc..d20b0eb8b 100644 --- a/src/main/resources/assets/create/lang/es_es.json +++ b/src/main/resources/assets/create/lang/es_es.json @@ -714,7 +714,7 @@ "create.menu.ponder_index": "Índice", "create.menu.only_ingame": "Disponible en el menú de pausa", "create.menu.project_page": "Página del proyecto", - "create.menu.report_bugs": "Informar de problemas", + "create.menu.report_bugs": "Reportar problemas", "create.menu.support": "Apóyenos", "create.recipe.crushing": "Trituración", @@ -743,7 +743,7 @@ "create.recipe.draining": "Drenador de objetos", "create.recipe.sequenced_assembly": "Montaje secuenciado", "create.recipe.assembly.next": "Siguiente: %1$s", - "create.recipe.assembly.step": "Paso %1$s:", + "create.recipe.assembly.step": "Fase %1$s:", "create.recipe.assembly.progress": "Progreso: %1$s/%2$s", "create.recipe.assembly.pressing": "Proceso en prensa", "create.recipe.assembly.spout_filling_fluid": "Pico %1$s", @@ -1503,8 +1503,8 @@ "create.ponder.think_back": "Volver atrás", "create.ponder.slow_text": "Lectura cómoda", "create.ponder.exit": "Salir", - "create.ponder.welcome": "Bienvenido a Considerando", - "create.ponder.categories": "Categorías disponibles en Create", + "create.ponder.welcome": "Bienvenido al instructivo de Create", + "create.ponder.categories": "Categorías disponibles", "create.ponder.index_description": "Haga clic en uno de los iconos para conocer sus objetos y bloques asociados", "create.ponder.index_title": "Índice", "create.ponder.shared.rpm16": "16 RPM", From 2e71b20ae7f98fe795c75023c786c065c716515d Mon Sep 17 00:00:00 2001 From: Nekrodamus Date: Thu, 5 Aug 2021 17:00:15 -0300 Subject: [PATCH 07/79] Updated spanish language Added spanish language variations for: - Argentina - Chile - Uruguay - Venezuela - Ecuador - Mexico --- .../resources/assets/create/lang/es_ar.json | 2305 +++++++++++++ .../resources/assets/create/lang/es_cl.json | 2305 +++++++++++++ .../resources/assets/create/lang/es_ec.json | 2305 +++++++++++++ .../resources/assets/create/lang/es_mx.json | 2971 +++++++++++++---- .../resources/assets/create/lang/es_uy.json | 2305 +++++++++++++ .../resources/assets/create/lang/es_ve.json | 2305 +++++++++++++ 6 files changed, 13761 insertions(+), 735 deletions(-) create mode 100644 src/main/resources/assets/create/lang/es_ar.json create mode 100644 src/main/resources/assets/create/lang/es_cl.json create mode 100644 src/main/resources/assets/create/lang/es_ec.json create mode 100644 src/main/resources/assets/create/lang/es_uy.json create mode 100644 src/main/resources/assets/create/lang/es_ve.json diff --git a/src/main/resources/assets/create/lang/es_ar.json b/src/main/resources/assets/create/lang/es_ar.json new file mode 100644 index 000000000..d20b0eb8b --- /dev/null +++ b/src/main/resources/assets/create/lang/es_ar.json @@ -0,0 +1,2305 @@ +{ + + "_": "->------------------------] Game Elements [------------------------<-", + + "block.create.acacia_window": "Ventana de acacia", + "block.create.acacia_window_pane": "Panel de ventana de acacia", + "block.create.adjustable_chain_gearshift": "Cadena de transmisión ajustable", + "block.create.adjustable_crate": "Caja ajustable", + "block.create.adjustable_pulse_repeater": "Repetidor de pulso ajustable", + "block.create.adjustable_repeater": "Repetidor ajustable", + "block.create.analog_lever": "Palanca analógica", + "block.create.andesite_belt_funnel": "Embudo de cinta de andesita", + "block.create.andesite_bricks": "Ladrillos de andesita", + "block.create.andesite_bricks_slab": "Losa de ladrillos de andesita", + "block.create.andesite_bricks_stairs": "Escaleras de ladrillos de andesita", + "block.create.andesite_bricks_wall": "Muro de ladrillos de andesita", + "block.create.andesite_casing": "Revestidor de andesita", + "block.create.andesite_cobblestone": "Adoquín de andesita", + "block.create.andesite_cobblestone_slab": "Losa de adoquín de andesita", + "block.create.andesite_cobblestone_stairs": "Escaleras de adoquines de andesita", + "block.create.andesite_cobblestone_wall": "Muro de adoquines de andesita", + "block.create.andesite_encased_shaft": "Eje revestido de andesita", + "block.create.andesite_funnel": "Embudo de andesita", + "block.create.andesite_pillar": "Poste de andesita", + "block.create.andesite_tunnel": "Túnel de Andesita", + "block.create.basin": "Cuenca", + "block.create.belt": "Cinta", + "block.create.birch_window": "Ventana de abedul", + "block.create.birch_window_pane": "Panel de ventana de abedul", + "block.create.black_nixie_tube": "Tubo Nixie negro", + "block.create.black_sail": "Vela negra", + "block.create.black_seat": "Asiento negro", + "block.create.black_valve_handle": "Asa de válvula negra", + "block.create.blaze_burner": "Quemador de Blaze", + "block.create.blue_nixie_tube": "Tubo Nixie azul", + "block.create.blue_sail": "Vela azul", + "block.create.blue_seat": "Asiento azul", + "block.create.blue_valve_handle": "Asa de válvula azul", + "block.create.brass_belt_funnel": "Embudo de cinta de latón", + "block.create.brass_block": "Bloque de latón", + "block.create.brass_casing": "Revestidor de latón", + "block.create.brass_encased_shaft": "Eje revestido de latón", + "block.create.brass_funnel": "Embudo de latón", + "block.create.brass_tunnel": "Túnel de latón", + "block.create.brown_nixie_tube": "Tubo Nixie marrón", + "block.create.brown_sail": "Vela marrón", + "block.create.brown_seat": "Asiento marrón", + "block.create.brown_valve_handle": "Asa de válvula marrón", + "block.create.cart_assembler": "Ensamblador de vagonetas", + "block.create.chiseled_dark_scoria": "Escoria oscura cincelada", + "block.create.chiseled_dolomite": "Dolomita cincelada", + "block.create.chiseled_gabbro": "Gabro cincelado", + "block.create.chiseled_limestone": "Caliza cincelada", + "block.create.chiseled_scoria": "Escoria cincelada", + "block.create.chiseled_weathered_limestone": "Piedra caliza erosionada cincelada", + "block.create.chocolate": "Chocolate", + "block.create.chute": "Ducto", + "block.create.clockwork_bearing": "Rodamiento tipo reloj", + "block.create.clutch": "Embrague", + "block.create.cogwheel": "Engranaje pequeño", + "block.create.content_observer": "Observador de contenidos", + "block.create.controller_rail": "Raíl de control", + "block.create.copper_backtank": "Depósito trasero de cobre", + "block.create.copper_block": "Bloque de cobre", + "block.create.copper_casing": "Revestidor de caliza", + "block.create.copper_ore": "Mena de cobre", + "block.create.copper_shingles": "Bloque de tejas de cobre", + "block.create.copper_tiles": "Bloque de baldosas de cobre", + "block.create.copper_valve_handle": "Asa de válvula de cobre", + "block.create.creative_crate": "Caja creativa", + "block.create.creative_fluid_tank": "Tanque de fluidos creativo", + "block.create.creative_motor": "Motor creativo", + "block.create.crimson_window": "Ventana carmesí", + "block.create.crimson_window_pane": "Panel de ventana carmesí", + "block.create.crushing_wheel": "Rueda trituradora", + "block.create.crushing_wheel_controller": "Controlador de Rueda trituradora", + "block.create.cuckoo_clock": "Reloj de cuco", + "block.create.cyan_nixie_tube": "Tubo Nixie cian", + "block.create.cyan_sail": "Vela cian", + "block.create.cyan_seat": "Asiento cian", + "block.create.cyan_valve_handle": "Asa de válvula cian", + "block.create.dark_oak_window": "Ventana de roble oscuro", + "block.create.dark_oak_window_pane": "Panel de ventana de roble oscuro", + "block.create.dark_scoria": "Escoria oscura", + "block.create.dark_scoria_bricks": "Ladrillos de escoria oscura", + "block.create.dark_scoria_bricks_slab": "Losa de ladrillos de escoria oscura", + "block.create.dark_scoria_bricks_stairs": "Escaleras de ladrillos de escoria oscura", + "block.create.dark_scoria_bricks_wall": "Muro de ladrillos de escoria oscura", + "block.create.dark_scoria_cobblestone": "Adoquines de escoria oscura", + "block.create.dark_scoria_cobblestone_slab": "Losa de adoquines de escoria oscura", + "block.create.dark_scoria_cobblestone_stairs": "Escaleras de adoquines de escoria oscura", + "block.create.dark_scoria_cobblestone_wall": "Muro de adoquines de escoria oscura", + "block.create.dark_scoria_pillar": "Pilar de escoria oscura", + "block.create.deployer": "Desplegador", + "block.create.depot": "Depósito", + "block.create.diorite_bricks": "Ladrillos de diorita", + "block.create.diorite_bricks_slab": "Losa de ladrillos de diorita", + "block.create.diorite_bricks_stairs": "Escaleras de ladrillos de diorita", + "block.create.diorite_bricks_wall": "Muro de ladrillos de diorita", + "block.create.diorite_cobblestone": "Adoquín de diorita", + "block.create.diorite_cobblestone_slab": "Losa de adoquínes de diorita", + "block.create.diorite_cobblestone_stairs": "Escaleras de adoquines de diorita", + "block.create.diorite_cobblestone_wall": "Muro de adoquines de diorita", + "block.create.diorite_pillar": "Pilar de diorita", + "block.create.dolomite": "Dolomita", + "block.create.dolomite_bricks": "Ladrillos de dolomita", + "block.create.dolomite_bricks_slab": "Losa de ladrillos de dolomita", + "block.create.dolomite_bricks_stairs": "Escaleras de ladrillos de dolomita", + "block.create.dolomite_bricks_wall": "Muro de ladrillos de dolomita", + "block.create.dolomite_cobblestone": "Adoquín de dolomita", + "block.create.dolomite_cobblestone_slab": "Losa de adoquín de dolomita", + "block.create.dolomite_cobblestone_stairs": "Escaleras de adoquines de dolomita", + "block.create.dolomite_cobblestone_wall": "Muro de adoquines de dolomita", + "block.create.dolomite_pillar": "Pilar de dolomita", + "block.create.encased_chain_drive": "Cadena de transmisión revestida", + "block.create.encased_fan": "Ventilador revestido", + "block.create.encased_fluid_pipe": "Tubería de fluidos de cobre reforzada", + "block.create.fancy_andesite_bricks": "Ladrillos de andesita elegantes", + "block.create.fancy_andesite_bricks_slab": "Ladrillos de andesita elegantes", + "block.create.fancy_andesite_bricks_stairs": "Escaleras de ladrillos de andesita elegantes", + "block.create.fancy_andesite_bricks_wall": "Muro de ladrillos de andesita elegantes", + "block.create.fancy_dark_scoria_bricks": "Ladrillos de escoria oscura elegantes", + "block.create.fancy_dark_scoria_bricks_slab": "Losa de ladrillos de escoria oscura elegantes", + "block.create.fancy_dark_scoria_bricks_stairs": "Escalera de ladrillos de escoria oscura elegantes", + "block.create.fancy_dark_scoria_bricks_wall": "Muro de ladrillos de escoria oscura elegantes", + "block.create.fancy_diorite_bricks": "Ladrillos de diorita elegantes", + "block.create.fancy_diorite_bricks_slab": "Losa de ladrillos de diorita elegantes", + "block.create.fancy_diorite_bricks_stairs": "Escaleras de ladrillos de diorita elegantes", + "block.create.fancy_diorite_bricks_wall": "Muro de ladrillos de diorita elegantes", + "block.create.fancy_dolomite_bricks": "Ladrillos de dolomita elegantes", + "block.create.fancy_dolomite_bricks_slab": "Losa de ladrillos de dolomita elegantes", + "block.create.fancy_dolomite_bricks_stairs": "Escaleras de ladrillos de dolomita elegantes", + "block.create.fancy_dolomite_bricks_wall": "Muro de ladrillos de dolomita elegantes", + "block.create.fancy_gabbro_bricks": "Ladrillos de gabro elegantes", + "block.create.fancy_gabbro_bricks_slab": "Losa de ladrillos de gabro elegantes", + "block.create.fancy_gabbro_bricks_stairs": "Escaleras de ladrillos de gabro elegantes", + "block.create.fancy_gabbro_bricks_wall": "Muro de ladrillos de gabro elegantes", + "block.create.fancy_granite_bricks": "Ladrillos de granito elegantes", + "block.create.fancy_granite_bricks_slab": "Losa de ladrillos de granito elegantes", + "block.create.fancy_granite_bricks_stairs": "Escaleras de ladrillos de granito elegantes", + "block.create.fancy_granite_bricks_wall": "Muro de ladrillos de granito elegantes", + "block.create.fancy_limestone_bricks": "Ladrillos de piedra caliza elegantes", + "block.create.fancy_limestone_bricks_slab": "Losa de ladrillos de piedra caliza elegantes", + "block.create.fancy_limestone_bricks_stairs": "Escaleras de ladrillos de piedra caliza elegantes", + "block.create.fancy_limestone_bricks_wall": "Muro de ladrillos de piedra caliza elegantes", + "block.create.fancy_scoria_bricks": "Ladrillos de escoria elegantes", + "block.create.fancy_scoria_bricks_slab": "Losa de ladrillos de escoria elegantes", + "block.create.fancy_scoria_bricks_stairs": "Escaleras de ladrillos de escoria elegantes", + "block.create.fancy_scoria_bricks_wall": "Muro de ladrillos de escoria elegantes", + "block.create.fancy_weathered_limestone_bricks": "Ladrillos de piedra de caliza erosionada elegantes", + "block.create.fancy_weathered_limestone_bricks_slab": "Losa de ladrillos de caliza erosionada elegantes", + "block.create.fancy_weathered_limestone_bricks_stairs": "Escaleras de ladrillos de caliza erosionada elegantes", + "block.create.fancy_weathered_limestone_bricks_wall": "Muro de ladrillos de caliza erosionada elegantes", + "block.create.fluid_pipe": "Tubería de fluidos de cobre", + "block.create.fluid_tank": "Depósito de fluidos", + "block.create.fluid_valve": "Válvula de fluidos", + "block.create.flywheel": "Rueda de inercia", + "block.create.framed_glass": "Cristal enmarcado", + "block.create.framed_glass_pane": "Panel de cristal enmarcado", + "block.create.furnace_engine": "Motor de horno", + "block.create.gabbro": "Gabro", + "block.create.gabbro_bricks": "Ladrillos de gabro", + "block.create.gabbro_bricks_slab": "Losa de ladrillos de gabro", + "block.create.gabbro_bricks_stairs": "Escaleras de ladrillos de gabro", + "block.create.gabbro_bricks_wall": "Muro de ladrillos de gabro", + "block.create.gabbro_cobblestone": "Adoquín de gabro", + "block.create.gabbro_cobblestone_slab": "Losa de adoquínes de gabro", + "block.create.gabbro_cobblestone_stairs": "Escaleras de adoquínes de gabro", + "block.create.gabbro_cobblestone_wall": "Muro de adoquínes de gabro", + "block.create.gabbro_pillar": "Pilar de gabro", + "block.create.gantry_carriage": "Carro de grúa", + "block.create.gantry_shaft": "Eje de grúa", + "block.create.gearbox": "Caja de transmisión", + "block.create.gearshift": "Caja de cambios", + "block.create.glass_fluid_pipe": "Tubería de fluidos de cristal", + "block.create.granite_bricks": "Ladrillos de granito", + "block.create.granite_bricks_slab": "Losa de ladrillos de granito", + "block.create.granite_bricks_stairs": "Escaleras de ladrillos de granito", + "block.create.granite_bricks_wall": "Muro de ladrillos de granito", + "block.create.granite_cobblestone": "Adoquín de granito", + "block.create.granite_cobblestone_slab": "Losa de adoquínes de granito", + "block.create.granite_cobblestone_stairs": "Escaleras de adoquínes de granito", + "block.create.granite_cobblestone_wall": "Muro de adoquínes de granito", + "block.create.granite_pillar": "Pilar de granito", + "block.create.gray_nixie_tube": "Tubo Nixie gris", + "block.create.gray_sail": "Vela gris", + "block.create.gray_seat": "Asiento gris", + "block.create.gray_valve_handle": "Asa de válvula gris", + "block.create.green_nixie_tube": "Tubo Nixie verde", + "block.create.green_sail": "Vela verde", + "block.create.green_seat": "Asiento verde", + "block.create.green_valve_handle": "Asa de válvula verde", + "block.create.hand_crank": "Manivela", + "block.create.haunted_bell": "Campana encantada", + "block.create.honey": "Miel", + "block.create.horizontal_framed_glass": "Cristal con marco horizontal", + "block.create.horizontal_framed_glass_pane": "Panel de cristal con marco horizontal", + "block.create.hose_pulley": "Polea de manguera", + "block.create.item_drain": "Drenador de objetos", + "block.create.jungle_window": "Ventana de jungla", + "block.create.jungle_window_pane": "Panel de ventana de jungla", + "block.create.large_cogwheel": "Engranaje grande", + "block.create.layered_andesite": "Andesita estratificada", + "block.create.layered_dark_scoria": "Escoria oscura estratificada", + "block.create.layered_diorite": "Diorita estratificada", + "block.create.layered_dolomite": "Dolomita estratificada", + "block.create.layered_gabbro": "Gabro estratificado", + "block.create.layered_granite": "Granito estratificado", + "block.create.layered_limestone": "Piedra caliza estratificada", + "block.create.layered_scoria": "Escoria estratificada", + "block.create.layered_weathered_limestone": "Caliza erosionada estratificada", + "block.create.lectern_controller": "Controlador de atril", + "block.create.light_blue_nixie_tube": "Tubo Nixie azul claro", + "block.create.light_blue_sail": "Vela azul claro", + "block.create.light_blue_seat": "Asiento azul claro", + "block.create.light_blue_valve_handle": "Asa de válvula azul claro", + "block.create.light_gray_nixie_tube": "Tubo Nixie gris claro", + "block.create.light_gray_sail": "Vela gris claro", + "block.create.light_gray_seat": "Asiento gris claro", + "block.create.light_gray_valve_handle": "Asa de válvula gris claro", + "block.create.lime_nixie_tube": "Tubo Nixie lima", + "block.create.lime_sail": "Vela lima", + "block.create.lime_seat": "Asiento lima", + "block.create.lime_valve_handle": "Asa de válvula lima", + "block.create.limesand": "Arena caliza", + "block.create.limestone": "Piedra caliza", + "block.create.limestone_bricks": "Ladrillos de piedra caliza", + "block.create.limestone_bricks_slab": "Losa de ladrillos de piedra caliza", + "block.create.limestone_bricks_stairs": "Escaleras de ladrillos de piedra caliza", + "block.create.limestone_bricks_wall": "Muro de ladrillos de piedra caliza", + "block.create.limestone_cobblestone": "Adoquínes de piedra caliza", + "block.create.limestone_cobblestone_slab": "Losa de adoquines de piedra caliza", + "block.create.limestone_cobblestone_stairs": "Escaleras de adoquines de piedra caliza", + "block.create.limestone_cobblestone_wall": "Muro de adoquines de piedra caliza", + "block.create.limestone_pillar": "Pilar de piedra caliza", + "block.create.linear_chassis": "Chasis lineal", + "block.create.lit_blaze_burner": "Quemador de Blaze encendido", + "block.create.magenta_nixie_tube": "Tubo Nixie magenta", + "block.create.magenta_sail": "Vela magenta", + "block.create.magenta_seat": "Asiento magenta", + "block.create.magenta_valve_handle": "Asa de válvula magenta", + "block.create.mechanical_arm": "Brazo mecánico", + "block.create.mechanical_bearing": "Rodamiento mecánico", + "block.create.mechanical_crafter": "Ensamblador mecánico", + "block.create.mechanical_drill": "Taladro mecánico", + "block.create.mechanical_harvester": "Cosechadora mecánica", + "block.create.mechanical_mixer": "Mezcladora mecánica", + "block.create.mechanical_piston": "Pistón mecánico", + "block.create.mechanical_piston_head": "Cabezal de pistón mecánico", + "block.create.mechanical_plough": "Arado mecánico", + "block.create.mechanical_press": "Prensa mecánica", + "block.create.mechanical_pump": "Bomba mecánica", + "block.create.mechanical_saw": "Sierra mecánica", + "block.create.metal_bracket": "Soporte de metal para ejes", + "block.create.millstone": "Piedra de molino", + "block.create.minecart_anchor": "Ancla de vagonetas", + "block.create.mossy_andesite": "Andesita musgosa", + "block.create.mossy_dark_scoria": "Escoria oscura musgosa", + "block.create.mossy_diorite": "Diorita musgosa", + "block.create.mossy_dolomite": "Dolomita musgosa", + "block.create.mossy_gabbro": "Gabro musgoso", + "block.create.mossy_granite": "Granito musgoso", + "block.create.mossy_limestone": "Caliza musgosa", + "block.create.mossy_scoria": "Escoria musgosa", + "block.create.mossy_weathered_limestone": "Caliza erosionada musgosa", + "block.create.mysterious_cuckoo_clock": "Reloj de cuco", + "block.create.natural_scoria": "Escoria natural", + "block.create.nixie_tube": "Tubo Nixie", + "block.create.nozzle": "Boquilla", + "block.create.oak_window": "Ventana de roble", + "block.create.oak_window_pane": "Panel de ventana de roble", + "block.create.orange_sail": "Vela naranja", + "block.create.orange_seat": "Asiento naranja", + "block.create.orange_valve_handle": "Asa de válvula naranja", + "block.create.ornate_iron_window": "Ventana de hierro ornamentada", + "block.create.ornate_iron_window_pane": "Panel de ventana de hierro ornamentada", + "block.create.overgrown_andesite": "Andesita sobredimensionada", + "block.create.overgrown_dark_scoria": "Escoria oscura sobredimensionada", + "block.create.overgrown_diorite": "Diorita sobredimensionada", + "block.create.overgrown_dolomite": "Dolomita sobredimensionada", + "block.create.overgrown_gabbro": "Gabro sobredimensionado", + "block.create.overgrown_granite": "Granito sobredimensionado", + "block.create.overgrown_limestone": "Caliza sobredimensionada", + "block.create.overgrown_scoria": "Escoria sobredimensionada", + "block.create.overgrown_weathered_limestone": "Caliza erosionada sobredimensionada", + "block.create.paved_andesite": "Andesita pavimentada", + "block.create.paved_andesite_slab": "Losa de andesita pavimentada", + "block.create.paved_andesite_stairs": "Escaleras de andesita pavimentada", + "block.create.paved_andesite_wall": "Muro de andesita pavimentada", + "block.create.paved_dark_scoria": "Escoria oscura pavimentada", + "block.create.paved_dark_scoria_slab": "Losa de escoria oscura pavimentada", + "block.create.paved_dark_scoria_stairs": "Escaleras de escoria oscura pavimentada", + "block.create.paved_dark_scoria_wall": "Muro de escoria oscura pavimentad", + "block.create.paved_diorite": "Diorita pavimentada", + "block.create.paved_diorite_slab": "Losa de diorita pavimentada", + "block.create.paved_diorite_stairs": "Escaleras de diorita pavimentada", + "block.create.paved_diorite_wall": "Muro de diorita pavimentad", + "block.create.paved_dolomite": "Dolomita pavimentada", + "block.create.paved_dolomite_slab": "Losa de dolomita pavimentada", + "block.create.paved_dolomite_stairs": "Escaleras de dolomita pavimentada", + "block.create.paved_dolomite_wall": "Muro de dolomita pavimentada", + "block.create.paved_gabbro": "Gabro pavimentado", + "block.create.paved_gabbro_slab": "Losa de gabro pavimentado", + "block.create.paved_gabbro_stairs": "Escaleras de gabro pavimentado", + "block.create.paved_gabbro_wall": "Muro de gabro pavimentado", + "block.create.paved_granite": "Granito pavimentado", + "block.create.paved_granite_slab": "Losa de granito pavimentado", + "block.create.paved_granite_stairs": "Escaleras de granito pavimentado", + "block.create.paved_granite_wall": "Muro de granito pavimentado", + "block.create.paved_limestone": "Piedra caliza pavimentada", + "block.create.paved_limestone_slab": "Losa de piedra caliza pavimentada", + "block.create.paved_limestone_stairs": "Escaleras de piedra caliza pavimentada", + "block.create.paved_limestone_wall": "Muro de piedra caliza pavimentada", + "block.create.paved_scoria": "Escoria pavimentada", + "block.create.paved_scoria_slab": "Losa de escoria pavimentada", + "block.create.paved_scoria_stairs": "Escaleras de escoria pavimentada", + "block.create.paved_scoria_wall": "Muro de escoria pavimentada", + "block.create.paved_weathered_limestone": "Piedra caliza erosionada pavimentada", + "block.create.paved_weathered_limestone_slab": "Losa de piedra caliza erosionada pavimentada", + "block.create.paved_weathered_limestone_stairs": "Escaleras de piedra caliza erosionada pavimentada", + "block.create.paved_weathered_limestone_wall": "Muro de piedra caliza erosionada pavimentada", + "block.create.peculiar_bell": "Campana peculiar", + "block.create.pink_nixie_tube": "Tubo Nixie rosa", + "block.create.pink_sail": "Vela rosa", + "block.create.pink_seat": "Asiento rosa", + "block.create.pink_valve_handle": "Asa de válvula rosa", + "block.create.piston_extension_pole": "Pértiga de extensión de pistón", + "block.create.polished_dark_scoria": "Escoria oscura pulida", + "block.create.polished_dark_scoria_slab": "Losa de escoria oscura pulida", + "block.create.polished_dark_scoria_stairs": "Escaleras de escoria oscura pulida", + "block.create.polished_dark_scoria_wall": "Muro de escoria oscura pulida", + "block.create.polished_dolomite": "Dolomita pulida", + "block.create.polished_dolomite_slab": "Losa de dolomita pulida", + "block.create.polished_dolomite_stairs": "Escaleras de dolomita pulidas", + "block.create.polished_dolomite_wall": "Muro de dolomita pulida", + "block.create.polished_gabbro": "Gabro pulido", + "block.create.polished_gabbro_slab": "Losa de gabro pulido", + "block.create.polished_gabbro_stairs": "Escaleras de gabro pulido", + "block.create.polished_gabbro_wall": "Muro de gabro pulido", + "block.create.polished_limestone": "Piedra caliza pulida", + "block.create.polished_limestone_slab": "Losa de piedra caliza pulida", + "block.create.polished_limestone_stairs": "Escaleras de piedra caliza pulidas", + "block.create.polished_limestone_wall": "Muro de piedra caliza pulida", + "block.create.polished_scoria": "Escoria pulida", + "block.create.polished_scoria_slab": "Losa de escoria pulida", + "block.create.polished_scoria_stairs": "Escaleras de losa pulida", + "block.create.polished_scoria_wall": "Muro de escoria pulida", + "block.create.polished_weathered_limestone": "Piedra caliza erosionada pulida", + "block.create.polished_weathered_limestone_slab": "Losa de piedra caliza erosionada pulida", + "block.create.polished_weathered_limestone_stairs": "Escaleras de piedra caliza erosionada pulida", + "block.create.polished_weathered_limestone_wall": "Muro de piedra caliza erosionada pulida", + "block.create.portable_fluid_interface": "Interfaz de fluidos portátil", + "block.create.portable_storage_interface": "Interfaz de almacenamiento portátil", + "block.create.powered_latch": "Palanca motorizada", + "block.create.powered_toggle_latch": "Palanca de cierre motorizada", + "block.create.pulley_magnet": "Imán de la polea", + "block.create.pulse_repeater": "Repetidor de pulsos de redstone", + "block.create.purple_nixie_tube": "Tubo Nixie morado", + "block.create.purple_sail": "Vela morada", + "block.create.purple_seat": "Asiento morado", + "block.create.purple_valve_handle": "Asa de válvula morada", + "block.create.radial_chassis": "Chasis radial", + "block.create.red_nixie_tube": "Tubo Nixie rojo", + "block.create.red_sail": "Vela roja", + "block.create.red_seat": "Asiento rojo", + "block.create.red_valve_handle": "Asa de válvula roja", + "block.create.redstone_contact": "Contacto de redstone", + "block.create.redstone_link": "Enlace de redstone", + "block.create.refined_radiance_casing": "Revestidor radiante", + "block.create.reinforced_rail": "Raíl reforzado", + "block.create.rope": "Cuerda", + "block.create.rope_pulley": "Polea de cuerda", + "block.create.rotation_speed_controller": "Controlador de velocidad rotacional", + "block.create.sail_frame": "Marco de vela", + "block.create.schematic_table": "Tabla de esquemas", + "block.create.schematicannon": "Cañón de esquemas", + "block.create.scoria": "Escoria", + "block.create.scoria_bricks": "Ladrillos de escoria", + "block.create.scoria_bricks_slab": "Losa de ladrillos de escoria", + "block.create.scoria_bricks_stairs": "Escaleras de ladrillos de escoria", + "block.create.scoria_bricks_wall": "Muro de ladrillos de escoria", + "block.create.scoria_cobblestone": "Adoquín de escoria", + "block.create.scoria_cobblestone_slab": "Losa de adoquínes de escoria", + "block.create.scoria_cobblestone_stairs": "Escaleras de adoquines de escoria", + "block.create.scoria_cobblestone_wall": "Muro de adoquines de escoria", + "block.create.scoria_pillar": "Pilar de escoria", + "block.create.secondary_linear_chassis": "Chasis lineal secundario", + "block.create.sequenced_gearshift": "Caja de cambios secuencial", + "block.create.shadow_steel_casing": "Revestidor sombrío", + "block.create.shaft": "Eje", + "block.create.smart_chute": "Ducto inteligente", + "block.create.smart_fluid_pipe": "Tubería de fluidos inteligente", + "block.create.speedometer": "Velocímetro", + "block.create.spout": "Surtidor", + "block.create.spruce_window": "Ventana de abeto", + "block.create.spruce_window_pane": "Panel de ventana de abeto", + "block.create.sticker": "Sticker", + "block.create.sticky_mechanical_piston": "Pistón mecánico pegajoso", + "block.create.stockpile_switch": "Interruptor de acopio", + "block.create.stressometer": "Estresómetro", + "block.create.tiled_glass": "Vidrio esmaltado", + "block.create.tiled_glass_pane": "Panel de vidrio esmaltado", + "block.create.turntable": "Plataforma giratoria mecánica", + "block.create.vertical_framed_glass": "Vidrio esmaltado vertical", + "block.create.vertical_framed_glass_pane": "Panel de vidrio esmaltado vertical", + "block.create.warped_window": "Ventana distorsionada", + "block.create.warped_window_pane": "Panel de ventana distorsionada", + "block.create.water_wheel": "Rueda hidráulica mecánica", + "block.create.weathered_limestone": "Piedra caliza erosionada", + "block.create.weathered_limestone_bricks": "Ladrillos de piedra caliza erosionada", + "block.create.weathered_limestone_bricks_slab": "Losa de piedra caliza erosionada", + "block.create.weathered_limestone_bricks_stairs": "Escaleras de ladrillos de piedra caliza erosionada", + "block.create.weathered_limestone_bricks_wall": "Muro de ladrillos de piedra caliza erosionada", + "block.create.weathered_limestone_cobblestone": "Adoquín de piedra caliza erosionada", + "block.create.weathered_limestone_cobblestone_slab": "Losa de adoquín de piedra caliza erosionada", + "block.create.weathered_limestone_cobblestone_stairs": "Escaleras de adoquín de piedra caliza erosionada", + "block.create.weathered_limestone_cobblestone_wall": "Muro de adoquínes de piedra caliza erosionada", + "block.create.weathered_limestone_pillar": "Pilar de piedra caliza erosionada", + "block.create.weighted_ejector": "Eyector de peso", + "block.create.white_nixie_tube": "Tubo Nixie blanco", + "block.create.white_sail": "Vela blanca", + "block.create.white_seat": "Asiento blanco", + "block.create.white_valve_handle": "Asa de válvula blanco", + "block.create.windmill_bearing": "Rodamiento del molino de viento", + "block.create.wooden_bracket": "Soporte de madera para ejes", + "block.create.yellow_nixie_tube": "Tubo Nixie amarillo", + "block.create.yellow_sail": "Vela amarilla", + "block.create.yellow_seat": "Asiento amarillo", + "block.create.yellow_valve_handle": "Asa de válvula amarillo", + "block.create.zinc_block": "Bloque de zinc", + "block.create.zinc_ore": "Mena de zinc", + + "enchantment.create.capacity": "Capacidad", + "enchantment.create.potato_recovery": "Recuperación de patatas", + + "entity.create.contraption": "Artilugio", + "entity.create.crafting_blueprint": "Plano de elaboración", + "entity.create.gantry_contraption": "Artilugio de grúa", + "entity.create.potato_projectile": "Proyectil de patata", + "entity.create.seat": "Asiento", + "entity.create.stationary_contraption": "Artilugio estacionario", + "entity.create.super_glue": "Pegamento", + + "fluid.create.potion": "Poción", + "fluid.create.tea": "Té del Constructor", + + "item.create.andesite_alloy": "Aleación de andesita", + "item.create.attribute_filter": "Filtro de atributos", + "item.create.bar_of_chocolate": "Barra de chocolate", + "item.create.belt_connector": "Correa mecánica", + "item.create.blaze_cake": "Pastel de blaze", + "item.create.blaze_cake_base": "Base de pastel de blaze", + "item.create.brass_hand": "Mano de latón", + "item.create.brass_ingot": "Lingote de latón", + "item.create.brass_nugget": "Pepita de latón", + "item.create.brass_sheet": "Lámina de latón", + "item.create.builders_tea": "Té del Constructor", + "item.create.chest_minecart_contraption": "Artilugio de vagoneta con cofre", + "item.create.chocolate_bucket": "Cubo con chocolate", + "item.create.chocolate_glazed_berries": "Bayas glaseadas con chocolate", + "item.create.chromatic_compound": "Compuesto cromático", + "item.create.cinder_flour": "Harina del Nether", + "item.create.copper_backtank": "Depósito trasero de cobre", + "item.create.copper_ingot": "Lingote de cobre", + "item.create.copper_nugget": "Pepita de cobre", + "item.create.copper_sheet": "Lámina de cobre", + "item.create.crafter_slot_cover": "Tapa de ranura del ensamblador mecánico", + "item.create.crafting_blueprint": "Plano de elaboración", + "item.create.creative_blaze_cake": "´Pastel de blaze creativo", + "item.create.crushed_aluminum_ore": "Mineral de aluminio molido", + "item.create.crushed_brass": "Latón molido", + "item.create.crushed_copper_ore": "Mineral de cobre molido", + "item.create.crushed_gold_ore": "Mineral de oro molido", + "item.create.crushed_iron_ore": "Mineral de hierro molido", + "item.create.crushed_lead_ore": "Mineral de plomo molido", + "item.create.crushed_nickel_ore": "Mineral de níquel molido", + "item.create.crushed_osmium_ore": "Mineral de osmio molido", + "item.create.crushed_platinum_ore": "Mineral de platino molido", + "item.create.crushed_quicksilver_ore": "Mineral de mercurio molido", + "item.create.crushed_silver_ore": "Mineral de plata molido", + "item.create.crushed_tin_ore": "Mineral de estaño molido", + "item.create.crushed_uranium_ore": "Mineral de uranio molido", + "item.create.crushed_zinc_ore": "Mineral de zinc molido", + "item.create.diving_boots": "Botas de buceo", + "item.create.diving_helmet": "Casco de buceo", + "item.create.dough": "Masilla", + "item.create.electron_tube": "Tubo de electrones", + "item.create.empty_blaze_burner": "Quemador de blaze vacío", + "item.create.empty_schematic": "Esquema vacío", + "item.create.extendo_grip": "Agarre extendido", + "item.create.filter": "Filtro", + "item.create.furnace_minecart_contraption": "Artilugio de vagoneta de horno", + "item.create.goggles": "Gafas del constructor", + "item.create.golden_sheet": "Lámina de oro", + "item.create.handheld_worldshaper": "Worldshaper Creativo", + "item.create.honey_bucket": "Cubo con miel", + "item.create.honeyed_apple": "Manzana con miel", + "item.create.incomplete_cogwheel": "Engranaje pequeño incompleto", + "item.create.incomplete_large_cogwheel": "Engranaje grande incompleto", + "item.create.incomplete_precision_mechanism": "Mecanismo de precisión incompleto", + "item.create.iron_sheet": "Lámina de hierro", + "item.create.linked_controller": "Controlador enlazado", + "item.create.minecart_contraption": "Artilugio de vagoneta", + "item.create.minecart_coupling": "Acoplamiento de vagoneta", + "item.create.polished_rose_quartz": "Cuarzo rosado pulido", + "item.create.potato_cannon": "Cañón de patatas", + "item.create.powdered_obsidian": "Polvo de obsidiana", + "item.create.precision_mechanism": "Mecanismo de precisión", + "item.create.propeller": "Hélice", + "item.create.red_sand_paper": "Papel de lija rojo", + "item.create.refined_radiance": "Resplandor refinado", + "item.create.rose_quartz": "Cuarzo rosado", + "item.create.sand_paper": "Papel de lija", + "item.create.schematic": "Esquema", + "item.create.schematic_and_quill": "Esquema y pluma", + "item.create.shadow_steel": "Acero sombrío", + "item.create.super_glue": "Pegamento", + "item.create.sweet_roll": "Pan dulce", + "item.create.tree_fertilizer": "Fertilizante para árboles", + "item.create.vertical_gearbox": "Caja de transmisión vertical", + "item.create.wand_of_symmetry": "Varita de simetría", + "item.create.wheat_flour": "Harina de trigo", + "item.create.whisk": "Batidora", + "item.create.wrench": "Llave inglesa", + "item.create.zinc_ingot": "Lingote de zinc", + "item.create.zinc_nugget": "Pepita de zinc", + + + "_": "->------------------------] Advancements [------------------------<-", + + "advancement.create.root": "Bienvenido a Create", + "advancement.create.root.desc": "¡Es hora de empezar a construir increíbles artilugios!", + "advancement.create.andesite_alloy": "Aleaciones en abundancia", + "advancement.create.andesite_alloy.desc": "Los materiales de Create tienen nombres extraños, la aleación de andesita es uno de ellos.", + "advancement.create.its_alive": "¡Está vivo!", + "advancement.create.its_alive.desc": "Mira cómo gira tu primer componente cinético.", + "advancement.create.shifting_gears": "Cambiando de marcha", + "advancement.create.shifting_gears.desc": "Conecta un engranaje grande a uno pequeño, lo que te permitirá cambiar la velocidad de tu artilugio.", + "advancement.create.overstressed": "Sobrecargado", + "advancement.create.overstressed.desc": "Experimenta los límites del estrés.", + "advancement.create.belt": "Paseo de algas", + "advancement.create.belt.desc": "Conectar dos ejes con una correa.", + "advancement.create.tunnel": "¡Cúbrete!", + "advancement.create.tunnel.desc": "Embellece tu correa con un túnel.", + "advancement.create.splitter_tunnel": "Divide y vencerás", + "advancement.create.splitter_tunnel.desc": "Crear un divisor con un grupo de túneles de latón.", + "advancement.create.chute": "Caída en picado", + "advancement.create.chute.desc": "Coloque un ducto, la contrapartida vertical de la cinta.", + "advancement.create.upward_chute": "Abducción aérea", + "advancement.create.upward_chute.desc": "Observe cómo un objeto lanzado vuela dentro de un ducto impulsado por un ventilador.", + "advancement.create.belt_funnel": "Colgantes con forma de embudo", + "advancement.create.belt_funnel.desc": "Coloca un embudo lateral encima de una cinta o depósito para crear un tipo especial.", + "advancement.create.belt_funnel_kiss": "Los loros y las aletas", + "advancement.create.belt_funnel_kiss.desc": "Haz besar dos embudos montados con una cinta.", + "advancement.create.fan": "Maestro mecánico del aire", + "advancement.create.fan.desc": "Monta la corriente de aire proporcionada por un ventilador revestido.", + "advancement.create.fan_lava": "Calentador geotérmico", + "advancement.create.fan_lava.desc": "Queda atrapado en una corriente de aire que funde las cosas.", + "advancement.create.fan_water": "Lavado de la ropa", + "advancement.create.fan_water.desc": "Queda atrapado en una corriente de aire que lava las cosas.", + "advancement.create.fan_smoke": "Fuelle mecánico", + "advancement.create.fan_smoke.desc": "Queda atrapado en una corriente de aire que humea los objetos.", + "advancement.create.wrench": "Configurar convenientemente", + "advancement.create.wrench.desc": "Crea una llave inglesa para ayudarte a construir tus artilugios.", + "advancement.create.goggles": "Estresóvisión", + "advancement.create.goggles.desc": "Crea unas gafas del constructor para ayudarte a obtener más información cinética de los componentes.", + "advancement.create.speedometer": "Pero, ¿con qué rapidez exactamente?", + "advancement.create.speedometer.desc": "Coloca y alimenta un velocímetro. Míralo a través de las gafas para leer su valor exacto.", + "advancement.create.stressometer": "Pero, ¿cuán estresado exactamente??", + "advancement.create.stressometer.desc": "Coloca y alimenta un estresómetro. Míralo a través de las gafas para leer su valor exacto.", + "advancement.create.aesthetics": "Boom, ¡Estética!", + "advancement.create.aesthetics.desc": "Coloca soportes en ejes, ductos y engranajes.", + "advancement.create.reinforced": "Boom, ¡Reforzado!", + "advancement.create.reinforced.desc": "Utiliza bloques de revestimiento en un eje, un ducto y una cinta.", + "advancement.create.water_wheel": "Aprovechar la hidráulica", + "advancement.create.water_wheel.desc": "Coloca una rueda hidráulica e intenta hacerla girar.", + "advancement.create.chocolate_wheel": "Potencia de buen gusto", + "advancement.create.chocolate_wheel.desc": "Haz funcionar una rueda de agua con chocolate fundido.", + "advancement.create.lava_wheel": "Rueda de magma", + "advancement.create.lava_wheel.desc": "Esto no debió haber funcionado.", + "advancement.create.cuckoo": "¿Es el momento?", + "advancement.create.cuckoo.desc": "Presencia cómo un reloj de cuco anuncia la hora de acostarse.", + "advancement.create.millstone": "Triturador de bolsillo", + "advancement.create.millstone.desc": "Coloca y alimenta una piedra de molino.", + "advancement.create.windmill": "Una suave brisa", + "advancement.create.windmill.desc": "Monta un molino de viento.", + "advancement.create.maxed_windmill": "Una fuerte brisa", + "advancement.create.maxed_windmill.desc": "Monta un molino de viento con máxima intensidad.", + "advancement.create.andesite_casing": "La edad de la andesita", + "advancement.create.andesite_casing.desc": "Utiliza un poco de aleación de andesita y madera para crear un revestimiento básico.", + "advancement.create.mechanical_drill": "Interruptores fijos", + "advancement.create.mechanical_drill.desc": "Coloca y alimenta un taladro mecánico.", + "advancement.create.press": "¡La prensa se pone en marcha!", + "advancement.create.press.desc": "Activa una prensa mecánica y utilízala para crear algunas láminas.", + "advancement.create.polished_rose_quartz": "Diamantes rosas", + "advancement.create.polished_rose_quartz.desc": "Utiliza un trozo de papel de lija para pulir el cuarzo rosa hasta que se vuelva transparente.", + "advancement.create.electron_tube": "Beep Boop", + "advancement.create.electron_tube.desc": "Haz algunos tubos de electrones, útiles en la fabricación de maquinaria menos primitiva.", + "advancement.create.mechanical_saw": "Picado estacionario", + "advancement.create.mechanical_saw.desc": "Coloca y alimenta una sierra mecánica.", + "advancement.create.basin": "Funcionamiento de la cuenca", + "advancement.create.basin.desc": "Coloca una cuenca e intenta arrojar objetos en ella.", + "advancement.create.mixer": "Mezcla de colores", + "advancement.create.mixer.desc": "Coloca una batidora mecánica sobre el lavabo, enciéndala y empiece a mezclar algunos ingredientes.", + "advancement.create.blaze_burner": "Una chimenea viva", + "advancement.create.blaze_burner.desc": "Obtiene un quemador de blaze.", + "advancement.create.compact": "Compactación automática", + "advancement.create.compact.desc": "Utiliza una prensa y una cuenca para compactar algunos objetos.", + "advancement.create.brass": "Aleaciones reales", + "advancement.create.brass.desc": "Utiliza cobre molido y zinc molido para crear algo de latón.", + "advancement.create.brass_casing": "La Edad de Latón", + "advancement.create.brass_casing.desc": "Utiliza el latón recién obtenido y algo de madera para crear un revestimiento más avanzado.", + "advancement.create.copper_casing": "La Edad de Cobre", + "advancement.create.copper_casing.desc": "Utiliza algunas láminas de cobre y madera para crear algunos revestimientos de cobre.", + "advancement.create.spout": "Sploosh", + "advancement.create.spout.desc": "Observa el llenado de un fluido usando una boquilla.", + "advancement.create.spout_potion": "Cervecera global", + "advancement.create.spout_potion.desc": "Mira cómo un pico llena una botella con líquido de poción.", + "advancement.create.chocolate": "Un mundo de imaginación", + "advancement.create.chocolate.desc": "Obtiene un cubo con chocolate fundido.", + "advancement.create.item_drain": "Drenaje de la ropa", + "advancement.create.item_drain.desc": "Ve cómo se vacía un fluido mediante un drenador de objetos.", + "advancement.create.chained_item_drain": "¡Déjalo rodar!", + "advancement.create.chained_item_drain.desc": "Observa cómo un objeto rueda por varios drenadores de objetos encadenados.", + "advancement.create.glass_pipe": "Espía del flujo", + "advancement.create.glass_pipe.desc": "Observa cómo se propaga el fluido a través de un tubo de fluidos con ventanas. Los tubos de fluido rectos se convierten en ventanas cuando se utiliza una llave inglesa en ellas.", + "advancement.create.pipe_collision": "No cruzar nunca los arroyos", + "advancement.create.pipe_collision.desc": "Vea cómo se unen dos fluidos en su red de tuberías.", + "advancement.create.pipe_spill": "¡Hay una fuga!", + "advancement.create.pipe_spill.desc": "Observe cómo un extremo abierto de una tubería toma o deposita fluidos en el mundo.", + "advancement.create.hose_pulley": "Vertidos industriales", + "advancement.create.hose_pulley.desc": "Baja una polea de manguera y ve cómo se vacía o se llena un cuerpo de líquido.", + "advancement.create.infinite_water": "Drenando el océano", + "advancement.create.infinite_water.desc": "Bombea de una masa de agua lo suficientemente grande como para ser considerada infinita.", + "advancement.create.infinite_lava": "Drenaje del núcleo de los planetas", + "advancement.create.infinite_lava.desc": "Bombea de una masa de lava lo suficientemente grande como para ser considerada infinita.", + "advancement.create.infinite_chocolate": "Ahogándose en la imaginación", + "advancement.create.infinite_chocolate.desc": "Bombea desde una masa de chocolate fundido lo suficientemente grande como para ser considerado infinito.", + "advancement.create.crafter": "Montaje automatizado", + "advancement.create.crafter.desc": "Coloca y alimenta algunos ensambladores.", + "advancement.create.clockwork_bearing": "Artilugio a la hora", + "advancement.create.clockwork_bearing.desc": "Ensamblar una estructura montada sobre un rodamiento tipo reloj.", + "advancement.create.nixie_tube": "Signos de estilo", + "advancement.create.nixie_tube.desc": "Obtener y colocar un par de tubos nixie.", + "advancement.create.deployer": "Picar, colocar y atacar", + "advancement.create.deployer.desc": "Coloca y potencia un desplegador, el reflejo perfecto de ti mismo.", + "advancement.create.speed_controller": "Los ingenieros lo odian!", + "advancement.create.speed_controller.desc": "Coloca un controlador de velocidad rotacional, el dispositivo definitivo para cambiar de marcha.", + "advancement.create.flywheel": "El corazón de la fábrica", + "advancement.create.flywheel.desc": "Conecta con éxito un motor a la rueda de inercia.", + "advancement.create.overstress_flywheel": "Altos niveles de estrés", + "advancement.create.overstress_flywheel.desc": "Sobrecarga un motor de horno.", + "advancement.create.precision_mechanism": "Curiosidades complejas", + "advancement.create.precision_mechanism.desc": "Monta un mecanismo de precisión.", + "advancement.create.mechanical_arm": "¡Manos ocupadas!", + "advancement.create.mechanical_arm.desc": "Crea un brazo mecánico, selecciona las entradas y salidas, colócalo en el suelo y dale energía; luego observa cómo hace todo el trabajo por ti.", + "advancement.create.musical_arm": "¡Tócame la melodía!", + "advancement.create.musical_arm.desc": "Vea cómo un brazo mecánico maneja su Jukebox.", + "advancement.create.arm_many_targets": "Organize-o-Tron", + "advancement.create.arm_many_targets.desc": "Programa un brazo mecánico con diez o más posiciones de salida.", + "advancement.create.arm_blaze_burner": "Combust-o-Tron", + "advancement.create.arm_blaze_burner.desc": "Instruya un brazo mecánico para alimentar su quemador de blaze.", + "advancement.create.fist_bump": "¡Pégale, hermano!", + "advancement.create.fist_bump.desc": "Haz que dos desplegadores se den un puñetazo.", + "advancement.create.crushing_wheel": "Un par de gigantes", + "advancement.create.crushing_wheel.desc": "Crea algunas ruedas de trituración para descomponer más materiales de forma más eficaz.", + "advancement.create.blaze_cake": "Fiebre del azúcar", + "advancement.create.blaze_cake.desc": "Hornea en tu quemador de blaze un pastel especial.", + "advancement.create.chromatic_compound": "Minerales misteriosos", + "advancement.create.chromatic_compound.desc": "Crea una barra de compuesto cromático.", + "advancement.create.shadow_steel": "Retorno del vacío", + "advancement.create.shadow_steel.desc": "Crea acero sombrío, una barra de metal de la nada.", + "advancement.create.refined_radiance": "Brillante e inspirador", + "advancement.create.refined_radiance.desc": "Crea un resplandor refinado, una poderosa sustancia cromática.", + "advancement.create.chromatic_age": "La edad cromática", + "advancement.create.chromatic_age.desc": "Crear bloques de revestimiento de la luz y la oscuridad.", + "advancement.create.wand_of_symmetry": "Espejos radiantes", + "advancement.create.wand_of_symmetry.desc": "Crear un bastón de simetría.", + "advancement.create.extendo_grip": "¡Boioioing!", + "advancement.create.extendo_grip.desc": "Hazte con un agarre extentido.", + "advancement.create.potato_cannon": "Fwoomp!", + "advancement.create.potato_cannon.desc": "Derrota a un enemigo con tu cañón de patatas.", + "advancement.create.dual_extendo_grip": "La última edad del boing", + "advancement.create.dual_extendo_grip.desc": "Doble empuñadura extendida para un alcance sobrehumano.", + "advancement.create.eob": "Fin de la beta", + "advancement.create.eob.desc": "Espere más contenido aquí en el futuro. <3", + + + "_": "->------------------------] UI & Messages [------------------------<-", + + "itemGroup.create.base": "Create", + "itemGroup.create.palettes": "Paletas", + + "death.attack.create.crush": "%1$s se procesó en las ruedas de trituración", + "death.attack.create.crush.player": "%1$s fue arrojado a las ruedas de trituración por %2$s", + "death.attack.create.fan_fire": "%1$s murió quemado por el aire caliente", + "death.attack.create.fan_fire.player": "%1$s fue arrojado a un ahumador por %2$s", + "death.attack.create.fan_lava": "%1$s murió quemado por un abanico de lava", + "death.attack.create.fan_lava.player": "%1$s fue arrojado a una fundición por %2$s", + "death.attack.create.mechanical_drill": "%1$s fue empalado por un taladro mecánico", + "death.attack.create.mechanical_drill.player": "%1$s fue lanzado frente a un taladro por %2$s", + "death.attack.create.mechanical_saw": "%1$s fue cortado por la mitad por una sierra mecánica", + "death.attack.create.mechanical_saw.player": "%1$s fue arrojado a una sierra por %2$s", + "death.attack.create.potato_cannon": "%1$s fue disparado por el cañón de patatas de %2$s's", + "death.attack.create.potato_cannon.item": "%1$s fue disparado por %2$s utilizando %3$s", + "death.attack.create.cuckoo_clock_explosion": "%1$s fue volado por los aires por un reloj de cuco manipulado", + "death.attack.create.cuckoo_clock_explosion.player": "%1$s fue volado por un reloj de cuco manipulado", + + "create.block.deployer.damage_source_name": "Un desplegador rebelde", + "create.block.cart_assembler.invalid": "Coloque su Ensamblador de vagonetas en un bloque de Raíles", + + "create.menu.return": "Regresar al menú", + "create.menu.configure": "Configurar...", + "create.menu.ponder_index": "Índice", + "create.menu.only_ingame": "Disponible en el menú de pausa", + "create.menu.project_page": "Página del proyecto", + "create.menu.report_bugs": "Reportar problemas", + "create.menu.support": "Apóyenos", + + "create.recipe.crushing": "Trituración", + "create.recipe.milling": "Fresado", + "create.recipe.fan_washing": "Lavado a granel", + "create.recipe.fan_washing.fan": "Ventilador detrás del agua fluyente", + "create.recipe.fan_smoking": "Ahumador a granel", + "create.recipe.fan_smoking.fan": "Ventilador detrás del fuego", + "create.recipe.fan_blasting": "Voladuras a granel", + "create.recipe.fan_blasting.fan": "Ventilador detrás de la lava", + "create.recipe.pressing": "Prensando", + "create.recipe.mixing": "Mezclando", + "create.recipe.deploying": "Desplegando", + "create.recipe.automatic_shapeless": "Elaboración automatizada de productos sin forma", + "create.recipe.automatic_brewing": "Elaboración de cerveza automatizada", + "create.recipe.packing": "Compactando", + "create.recipe.automatic_packing": "Embalaje automatizado", + "create.recipe.sawing": "Aserrando", + "create.recipe.mechanical_crafting": "Elaboración mecánica", + "create.recipe.automatic_shaped": "Elaboración automatizada de productos con forma", + "create.recipe.block_cutting": "Corte de bloques", + "create.recipe.wood_cutting": "Corte de maderas", + "create.recipe.sandpaper_polishing": "Pulido con papel de lija", + "create.recipe.mystery_conversion": "Conversión misteriosa", + "create.recipe.spout_filling": "Llenar por el pico", + "create.recipe.draining": "Drenador de objetos", + "create.recipe.sequenced_assembly": "Montaje secuenciado", + "create.recipe.assembly.next": "Siguiente: %1$s", + "create.recipe.assembly.step": "Fase %1$s:", + "create.recipe.assembly.progress": "Progreso: %1$s/%2$s", + "create.recipe.assembly.pressing": "Proceso en prensa", + "create.recipe.assembly.spout_filling_fluid": "Pico %1$s", + "create.recipe.assembly.deploying_item": "Despliegue %1$s", + "create.recipe.assembly.cutting": "Corte con sierra", + "create.recipe.assembly.repeat": "Repetir la secuencia %1$s veces", + "create.recipe.assembly.junk": "Basura aleatoria", + "create.recipe.processing.chance": "%1$s%% Chance", + "create.recipe.heat_requirement.none": "No es necesario calentar", + "create.recipe.heat_requirement.heated": "Calentado", + "create.recipe.heat_requirement.superheated": "Súper-Calentado", + + "create.generic.range": "Rango", + "create.generic.radius": "Radio", + "create.generic.width": "Ancho", + "create.generic.height": "Alto", + "create.generic.length": "Largo", + "create.generic.speed": "Velocidad", + "create.generic.delay": "Retraso", + "create.generic.unit.ticks": "Ticks", + "create.generic.unit.seconds": "Segundos", + "create.generic.unit.minutes": "Minutos", + "create.generic.unit.rpm": "RPM", + "create.generic.unit.stress": "SU(unidades de estrés)", + "create.generic.unit.degrees": "°", + "create.generic.unit.millibuckets": "%1$smB", + "create.generic.clockwise": "En el sentido de las agujas del reloj", + "create.generic.counter_clockwise": "En sentido contrario a las agujas del reloj", + + "create.action.scroll": "Desplazar", + "create.action.confirm": "Confirmar", + "create.action.abort": "Abortar", + "create.action.saveToFile": "Guardar", + "create.action.discard": "Descartar", + + "create.keyinfo.toolmenu": "Menú de la Herramienta de Enfoque", + "create.keyinfo.scrollup": "Simular usar la rueda del ratón hacia arriba (en el mundo)", + "create.keyinfo.scrolldown": "Simular usar la rueda del ratón hacia abajo (en el mundo)", + + "create.gui.scrollInput.defaultTitle": "Seleccione una opción:", + "create.gui.scrollInput.scrollToModify": "Usa la rueda del ratón para modificar", + "create.gui.scrollInput.scrollToAdjustAmount": "Usa la rueda del ratón para ajustar la cantidad", + "create.gui.scrollInput.scrollToSelect": "Usa la rueda del ratón para seleccionar", + "create.gui.scrollInput.shiftScrollsFaster": "Mayús izdo para usar la rueda del ratón más rápido", + "create.gui.toolmenu.focusKey": "Mantén [%1$s] para enfocar", + "create.gui.toolmenu.cycle": "[RUEDA DEL RATÓN] para el ciclo", + "create.gui.symmetryWand.mirrorType": "Espejado", + "create.gui.symmetryWand.orientation": "Orientación", + + "create.symmetry.mirror.plane": "Plano de espejo", + "create.symmetry.mirror.doublePlane": "Rectangular", + "create.symmetry.mirror.triplePlane": "Octogonal", + + "create.orientation.orthogonal": "Ortogonal", + "create.orientation.diagonal": "Diagonal", + "create.orientation.horizontal": "Horizontal", + "create.orientation.alongZ": "A lo largo de Z", + "create.orientation.alongX": "A lo largo de X", + + "create.gui.terrainzapper.title": "Blockzapper", + "create.gui.terrainzapper.searchDiagonal": "Seguir diagonales", + "create.gui.terrainzapper.searchFuzzy": "Ignorar los bordes del material", + "create.gui.terrainzapper.patternSection": "Patrón", + "create.gui.terrainzapper.pattern.solid": "Sólido", + "create.gui.terrainzapper.pattern.checkered": "Tablero de ajedrez", + "create.gui.terrainzapper.pattern.inversecheckered": "Tablero de ajedrez invertido", + "create.gui.terrainzapper.pattern.chance25": "25% Roll", + "create.gui.terrainzapper.pattern.chance50": "50% Roll", + "create.gui.terrainzapper.pattern.chance75": "75% Roll", + "create.gui.terrainzapper.placement": "Ubicación", + "create.gui.terrainzapper.placement.merged": "Fusionado", + "create.gui.terrainzapper.placement.attached": "Adjuntado", + "create.gui.terrainzapper.placement.inserted": "Insertado", + "create.gui.terrainzapper.brush": "Pincel", + "create.gui.terrainzapper.brush.cuboid": "Cuboide", + "create.gui.terrainzapper.brush.sphere": "Esfera", + "create.gui.terrainzapper.brush.cylinder": "Cilindro", + "create.gui.terrainzapper.brush.surface": "Superficie", + "create.gui.terrainzapper.brush.cluster": "Grupo", + "create.gui.terrainzapper.tool": "Herramienta", + "create.gui.terrainzapper.tool.fill": "Llenar", + "create.gui.terrainzapper.tool.place": "Ubicar", + "create.gui.terrainzapper.tool.replace": "Reemplazar", + "create.gui.terrainzapper.tool.clear": "Eliminar", + "create.gui.terrainzapper.tool.overlay": "Superponer", + "create.gui.terrainzapper.tool.flatten": "Aplanar", + + "create.terrainzapper.shiftRightClickToSet": "Mayús izdo + clic derecho para seleccionar una forma", + "create.terrainzapper.usingBlock": "Usando: %1$s", + "create.terrainzapper.leftClickToSet": "Clic izquierdo a un bloque para establecer el material", + + "create.minecart_coupling.two_couplings_max": "Las vagonetas no pueden tener más de dos enganches cada una", + "create.minecart_coupling.unloaded": "Algunas partes de su tren parecen estar en chunks no cargados", + "create.minecart_coupling.no_loops": "Los acoplamientos no pueden formar un bucle", + "create.minecart_coupling.removed": "Se han retirado todos los acoplamientos de la vagoneta", + "create.minecart_coupling.too_far": "Las vagonetas están demasiado separadas", + + "create.contraptions.movement_mode": "Modo de movimiento", + "create.contraptions.movement_mode.move_place": "Colocar siempre al detenerse", + "create.contraptions.movement_mode.move_place_returned": "Colocar sólo en la posición inicial", + "create.contraptions.movement_mode.move_never_place": "Colocar sólo cuando se destruye el ancla", + "create.contraptions.movement_mode.rotate_place": "Colocar siempre al detenerse", + "create.contraptions.movement_mode.rotate_place_returned": "Colocar sólo cerca del ángulo inicial", + "create.contraptions.movement_mode.rotate_never_place": "Colocar sólo cuando se destruye el ancla", + "create.contraptions.cart_movement_mode": "Modo de movimiento de la vagoneta", + "create.contraptions.cart_movement_mode.rotate": "Siempre de cara al movimiento", + "create.contraptions.cart_movement_mode.rotate_paused": "Pausar a los actores mientras giran", + "create.contraptions.cart_movement_mode.rotation_locked": "Bloquear rotación", + "create.contraptions.windmill.rotation_direction": "Dirección de rotación", + "create.contraptions.clockwork.clock_hands": "Manecillas de reloj", + "create.contraptions.clockwork.hour_first": "La manecilla de las horas primero", + "create.contraptions.clockwork.minute_first": "La manecilla de los minutos primero", + "create.contraptions.clockwork.hour_first_24": "La manecilla del día primero", + + "create.logistics.filter": "Filtro", + "create.logistics.recipe_filter": "Filtro para recetas", + "create.logistics.fluid_filter": "Filtro para fluidos", + "create.logistics.firstFrequency": "Freq. #1", + "create.logistics.secondFrequency": "Freq. #2", + "create.logistics.filter.apply": "Filtro aplicado a %1$s.", + "create.logistics.filter.apply_click_again": "Filtro aplicado a %1$s, haga clic de nuevo para copiar la cantidad.", + "create.logistics.filter.apply_count": "Aplicado recuento de extracciones al filtro.", + + "create.gui.goggles.generator_stats": "Estadísticas del generador:", + "create.gui.goggles.kinetic_stats": "Estadísticas cinéticas:", + "create.gui.goggles.at_current_speed": "con la velocidad actual", + "create.gui.goggles.pole_length": "Longitud del poste:", + "create.gui.goggles.fluid_container": "Información sobre el contenedor de fluidos:", + "create.gui.goggles.fluid_container.capacity": "Capacidad: ", + "create.gui.assembly.exception": "Este artilugio no se pudo montar:", + "create.gui.assembly.exception.unmovableBlock": "Bloque inamovible (%4$s) en [%1$s,%2$s,%3$s]", + "create.gui.assembly.exception.chunkNotLoaded": "El bloque en [%1$s,%2$s,%3$s] no estaba en un chunk cargado", + "create.gui.assembly.exception.structureTooLarge": "Hay demasiados bloques incluídos en el artilugio.\nEl máximo configurado es: %1$s", + "create.gui.assembly.exception.tooManyPistonPoles": "Hay demasiadas Pértigas de extensión conectadas a este Pistón.\nEl máximo configurado es: %1$s", + "create.gui.assembly.exception.noPistonPoles": "Faltan pértigas de extensión para el pistón", + "create.gui.assembly.exception.not_enough_sails": "La estructura adjunta no incluye suficientes bloques tipo vela: %1$s\nSe requiere un mínimo de %2$s", + "create.gui.gauge.info_header": "Información sobre el medidor:", + "create.gui.speedometer.title": "Velocidad de rotación", + "create.gui.stressometer.title": "Estrés de la red", + "create.gui.stressometer.capacity": "Capacidad restante", + "create.gui.stressometer.overstressed": "Sobrecargado", + "create.gui.stressometer.no_rotation": "Sin rotación", + "create.gui.contraptions.not_fast_enough": "Parece que este %1$s no está girando con _suficiente_ velocidad_.", + "create.gui.contraptions.network_overstressed": "Parece que este artilugio está _sobrecargado_. Añade más fuentes o _desacelera_ los componentes con un _impacto de estrés alto_.", + "create.gui.adjustable_crate.title": "Caja ajustable", + "create.gui.adjustable_crate.storageSpace": "Espacio de almacenamiento", + "create.gui.stockpile_switch.title": "Interruptor de acopio", + "create.gui.stockpile_switch.invert_signal": "Invertir señal", + "create.gui.stockpile_switch.move_to_lower_at": "Pasar al carril inferior en %1$s%%", + "create.gui.stockpile_switch.move_to_upper_at": "Pasar al carril superior en %1$s%%", + "create.gui.sequenced_gearshift.title": "Cambio de marchas secuenciado", + "create.gui.sequenced_gearshift.instruction": "Instrucción", + "create.gui.sequenced_gearshift.instruction.turn_angle.descriptive": "Giro por ángulo", + "create.gui.sequenced_gearshift.instruction.turn_angle": "Giro", + "create.gui.sequenced_gearshift.instruction.turn_angle.angle": "Ángulo", + "create.gui.sequenced_gearshift.instruction.turn_distance.descriptive": "Giro para mover el pistón/polea/grúa", + "create.gui.sequenced_gearshift.instruction.turn_distance": "Pistón", + "create.gui.sequenced_gearshift.instruction.turn_distance.distance": "Distancia", + "create.gui.sequenced_gearshift.instruction.delay.descriptive": "Tiempo de retraso", + "create.gui.sequenced_gearshift.instruction.delay": "Retraso", + "create.gui.sequenced_gearshift.instruction.delay.duration": "Duración", + "create.gui.sequenced_gearshift.instruction.end.descriptive": "Fin", + "create.gui.sequenced_gearshift.instruction.end": "Fin", + "create.gui.sequenced_gearshift.instruction.await.descriptive": "En espera de un pulso de redstone", + "create.gui.sequenced_gearshift.instruction.await": "En espera", + "create.gui.sequenced_gearshift.speed": "Velocidad, Dirección", + "create.gui.sequenced_gearshift.speed.forward": "Velocidad de entrada, hacia adelante", + "create.gui.sequenced_gearshift.speed.forward_fast": "Doble velocidad, hacia adelante", + "create.gui.sequenced_gearshift.speed.back": "Velocidad de entrada, Invertida", + "create.gui.sequenced_gearshift.speed.back_fast": "Doble velocidad, Invertida", + + "create.schematicAndQuill.dimensions": "Tamaño del esquema: %1$sx%2$sx%3$s", + "create.schematicAndQuill.firstPos": "Primera posición fijada.", + "create.schematicAndQuill.secondPos": "Segunda posición fijada.", + "create.schematicAndQuill.noTarget": "Mantén [Ctrl] para seleccionar los bloques del aire.", + "create.schematicAndQuill.abort": "Selección eliminada.", + "create.schematicAndQuill.title": "Nombre del esquema:", + "create.schematicAndQuill.convert": "Guardar y desplegar inmediatamente", + "create.schematicAndQuill.fallbackName": "Mi esquema", + "create.schematicAndQuill.saved": "Guardado como %1$s", + + "create.schematic.invalid": "[!] Elemento no válido - Utilice la tabla de esquemas en su lugar", + "create.schematic.position": "Posición", + "create.schematic.rotation": "Rotación", + "create.schematic.rotation.none": "Ninguno", + "create.schematic.rotation.cw90": "En el sentido de las agujas del reloj 90", + "create.schematic.rotation.cw180": "En el sentido de las agujas del reloj 180", + "create.schematic.rotation.cw270": "En el sentido de las agujas del reloj 270", + "create.schematic.mirror": "Espejado", + "create.schematic.mirror.none": "Ninguno", + "create.schematic.mirror.frontBack": "Delante-Detrás", + "create.schematic.mirror.leftRight": "Izquierda-Derecha", + "create.schematic.tool.deploy": "Despliegue", + "create.schematic.tool.move": "Mover XZ", + "create.schematic.tool.movey": "Mover Y", + "create.schematic.tool.rotate": "Rotar", + "create.schematic.tool.print": "Imprimir", + "create.schematic.tool.flip": "Voltear", + "create.schematic.tool.deploy.description.0": "Mueve la estructura a un lugar.", + "create.schematic.tool.deploy.description.1": "Haz clic con el botón derecho del ratón en el suelo para colocarla.", + "create.schematic.tool.deploy.description.2": "Mantén [Ctrl] para seleccionar a una distancia fija.", + "create.schematic.tool.deploy.description.3": "[Ctrl] + [RUEDA DEL RATÓN] para cambiar la distancia.", + "create.schematic.tool.move.description.0": "Desplaza el esquema horizontalmente.", + "create.schematic.tool.move.description.1": "Apunta al esquema y [Ctrl] + [RUEDA DEL RATÓN] para ponerlo.", + "create.schematic.tool.move.description.2": "", + "create.schematic.tool.move.description.3": "", + "create.schematic.tool.movey.description.0": "Desplaza el esquema verticalmente..", + "create.schematic.tool.movey.description.1": "[Ctrl] + [RUEDA DEL RATÓN] para moverlo hacia arriba/abajo.", + "create.schematic.tool.movey.description.2": "", + "create.schematic.tool.movey.description.3": "", + "create.schematic.tool.rotate.description.0": "Gira el esquema alrededor de su centro.", + "create.schematic.tool.rotate.description.1": "[Ctrl] + [RUEDA DEL RATÓN] para girar 90 grados.", + "create.schematic.tool.rotate.description.2": "", + "create.schematic.tool.rotate.description.3": "", + "create.schematic.tool.print.description.0": "Sitúa instantáneamente la estructura en el mundo.", + "create.schematic.tool.print.description.1": "[Clic derecho] para confirmar la colocación en el lugar actual.", + "create.schematic.tool.print.description.2": "Esta herramienta es sólo para el Modo Creativo.", + "create.schematic.tool.print.description.3": "", + "create.schematic.tool.flip.description.0": "Voltea el esquema a lo largo de la cara que seleccione.", + "create.schematic.tool.flip.description.1": "Apunta al esquema y [Ctrl] + [RUEDA DEL RATÓN] para voltearlo.", + "create.schematic.tool.flip.description.2": "", + "create.schematic.tool.flip.description.3": "", + + "create.schematics.synchronizing": "Sincronizando...", + "create.schematics.uploadTooLarge": "Tu esquema excede las limitaciones especificadas por el servidor.", + "create.schematics.maxAllowedSize": "El tamaño máximo permitido del archivo del esquema es:", + + "create.gui.schematicTable.refresh": "Refrescar archivos", + "create.gui.schematicTable.open_folder": "Abrir carpeta", + "create.gui.schematicTable.title": "Tabla de esquemas", + "create.gui.schematicTable.availableSchematics": "Esquemas disponibles", + "create.gui.schematicTable.noSchematics": "No hay esquemas guardados", + "create.gui.schematicTable.uploading": "Subiendo...", + "create.gui.schematicTable.finished": "¡Subida finalizada!", + "create.gui.schematicannon.title": "Cañón de esquemas", + "create.gui.schematicannon.listPrinter": "Lista de control de la impresora", + "create.gui.schematicannon.gunpowderLevel": "Pólvora %1$s%%", + "create.gui.schematicannon.shotsRemaining": "Disparos restantes: %1$s", + "create.gui.schematicannon.shotsRemainingWithBackup": "Con respaldo: %1$s", + "create.gui.schematicannon.optionEnabled": "Actualmente habilitado", + "create.gui.schematicannon.optionDisabled": "Actualmente deshabilitado", + "create.gui.schematicannon.showOptions": "Mostrar la configuración de la impresora", + "create.gui.schematicannon.option.dontReplaceSolid": "No sustituír los bloques sólidos", + "create.gui.schematicannon.option.replaceWithSolid": "Sustituir sólido por sólido", + "create.gui.schematicannon.option.replaceWithAny": "Sustituir sólido por cualquiera", + "create.gui.schematicannon.option.replaceWithEmpty": "Sustituir sólido por vacío", + "create.gui.schematicannon.option.skipMissing": "Omitir los bloques que faltan", + "create.gui.schematicannon.option.skipTileEntities": "Proteger a las entidades", + "create.gui.schematicannon.slot.gunpowder": "Añade pólvora para alimentar el cañón", + "create.gui.schematicannon.slot.listPrinter": "Coloque los libros aquí para imprimir una lista de comprobación para su esquema", + "create.gui.schematicannon.slot.schematic": "Añada su esquema aquí. Asegúrese de que se despliega en un lugar específico.", + "create.gui.schematicannon.option.skipMissing.description": "Si el cañón no encuentra un bloque necesario para su colocación, continuará en la siguiente ubicación.", + "create.gui.schematicannon.option.skipTileEntities.description": "El cañón evitará reemplazar los bloques que contienen datos, como los cofres.", + "create.gui.schematicannon.option.dontReplaceSolid.description": "El cañón nunca sustituirá ningún bloque sólido en su zona de trabajo, sólo los no sólidos y el aire.", + "create.gui.schematicannon.option.replaceWithSolid.description": "El cañón sólo reemplazará los bloques sólidos en su área de trabajo si el esquema contiene un bloque sólido en la ubicación.", + "create.gui.schematicannon.option.replaceWithAny.description": "El cañón reemplazará los bloques sólidos en su área de trabajo si el esquema contiene algún bloque en la ubicación.", + "create.gui.schematicannon.option.replaceWithEmpty.description": "El cañón eliminará todos los bloques de su zona de trabajo, incluidos los sustituidos por aire.", + + "create.schematicannon.status.idle": "Inactivo", + "create.schematicannon.status.ready": "Listo", + "create.schematicannon.status.running": "Funcionando", + "create.schematicannon.status.finished": "Finalizado", + "create.schematicannon.status.paused": "Pausado", + "create.schematicannon.status.stopped": "Detenido", + "create.schematicannon.status.noGunpowder": "Sin pólvora", + "create.schematicannon.status.targetNotLoaded": "El objetivo no está cargado", + "create.schematicannon.status.targetOutsideRange": "Objetivo demasiado lejano", + "create.schematicannon.status.searching": "Buscando", + "create.schematicannon.status.skipping": "Omitiendo", + "create.schematicannon.status.missingBlock": "Elementos perdidos:", + "create.schematicannon.status.placing": "Colocando", + "create.schematicannon.status.clearing": "Limpiando bloques", + "create.schematicannon.status.schematicInvalid": "Esquema inválido", + "create.schematicannon.status.schematicNotPlaced": "Esquema no desplegado", + "create.schematicannon.status.schematicExpired": "Archivo de esquemas caducado", + + "create.materialChecklist": "Lista de control del material", + "create.materialChecklist.blocksNotLoaded": "* Descargo de Responsabilidad *\n\nLa lista de materiales puede ser inexacta debido a que no se han cargado los chunks pertinentes.", + + "create.gui.filter.deny_list": "Lista de denegados", + "create.gui.filter.deny_list.description": "Los objetos pasan si NO coinciden con ninguno de los anteriores. Una lista de denegación vacía acepta todo.", + "create.gui.filter.allow_list": "Lista de permitidos", + "create.gui.filter.allow_list.description": "Los objetos pasan si coinciden con alguno de los anteriores. Una lista de permitidos vacía rechaza todo.", + "create.gui.filter.respect_data": "Respetar datos", + "create.gui.filter.respect_data.description": "Los objetos sólo coinciden si su durabilidad, encantos y otros atributos también coinciden.", + "create.gui.filter.ignore_data": "Ignorar datos", + "create.gui.filter.ignore_data.description": "Los artículos coinciden independientemente de sus atributos.", + + "create.item_attributes.placeable": "se puede colocar", + "create.item_attributes.placeable.inverted": "no se puede colocar", + "create.item_attributes.consumable": "se puede comer", + "create.item_attributes.consumable.inverted": "no se puede comer", + "create.item_attributes.smeltable": "se puede fundir", + "create.item_attributes.smeltable.inverted": "no se puede fundir", + "create.item_attributes.washable": "se puede lavar", + "create.item_attributes.washable.inverted": "no se puede lavar", + "create.item_attributes.smokable": "puede ser ahumado", + "create.item_attributes.smokable.inverted": "no puede ser ahumado", + "create.item_attributes.crushable": "puede ser molido", + "create.item_attributes.crushable.inverted": "no puede ser molido", + "create.item_attributes.blastable": "es fundible en el alto horno", + "create.item_attributes.blastable.inverted": "no es fundible en el alto horno", + "create.item_attributes.enchanted": "está encantado", + "create.item_attributes.enchanted.inverted": "no está encantado", + "create.item_attributes.damaged": "está dañado", + "create.item_attributes.damaged.inverted": "no está dañado", + "create.item_attributes.badly_damaged": "está muy dañado", + "create.item_attributes.badly_damaged.inverted": "no está muy dañado", + "create.item_attributes.not_stackable": "no se puede apilar", + "create.item_attributes.not_stackable.inverted": "se puede apilar", + "create.item_attributes.equipable": "se puede equipar", + "create.item_attributes.equipable.inverted": "no se puede equipar", + "create.item_attributes.furnace_fuel": "es combustible para hornos", + "create.item_attributes.furnace_fuel.inverted": "no es combustible para hornos", + "create.item_attributes.in_tag": "está etiquetado %1$s", + "create.item_attributes.in_tag.inverted": "no está etiquetado %1$s", + "create.item_attributes.in_item_group": "está en el grupo '%1$s'", + "create.item_attributes.in_item_group.inverted": "no está en el grupo '%1$s'", + "create.item_attributes.added_by": "fue añadido por %1$s", + "create.item_attributes.added_by.inverted": "no fue añadida por %1$s", + "create.item_attributes.shulker_level": "es shulker %1$s", + "create.item_attributes.shulker_level.inverted": "no es shulker %1$s", + "create.item_attributes.shulker_level.full": "lleno", + "create.item_attributes.shulker_level.empty": "vacío", + "create.item_attributes.shulker_level.partial": "parcialmente lleno", + "create.item_attributes.has_enchant": "está encantado con %1$s", + "create.item_attributes.has_enchant.inverted": "no está encantado con %1$s", + "create.item_attributes.color": "Está teñido %1$s", + "create.item_attributes.color.inverted": "No está teñido %1$s", + "create.item_attributes.max_enchanted": "está encantado en el nivel máximo", + "create.item_attributes.max_enchanted.inverted": "no está encantado en el nivel máximo", + "create.item_attributes.has_fluid": "contiene %1$s", + "create.item_attributes.has_fluid.inverted": "no contiene %1$s", + "create.item_attributes.has_name": "tiene el nombre personalizado %1$s", + "create.item_attributes.has_name.inverted": "no tiene el nombre personalizado %1$s", + "create.item_attributes.book_author": "es obra de %1$s", + "create.item_attributes.book_author.inverted": "no es es obra de %1$s", + "create.item_attributes.book_copy_original": "es un original", + "create.item_attributes.book_copy_original.inverted": "no es un original", + "create.item_attributes.book_copy_first": "es una copia de primera generación", + "create.item_attributes.book_copy_first.inverted": "no es una copia de primera generación", + "create.item_attributes.book_copy_second": "es una copia de segunda generación", + "create.item_attributes.book_copy_second.inverted": "no es una copia de segunda generación", + "create.item_attributes.book_copy_tattered": "es un desordenado desastre", + "create.item_attributes.book_copy_tattered.inverted": "no es un desordenado desastre", + "create.item_attributes.astralsorcery_crystal": "tiene el atributo de cristal %1$s", + "create.item_attributes.astralsorcery_crystal.inverted": "no tiene atributo de cristal %1$s", + "create.item_attributes.astralsorcery_constellation": "está en sintonía con %1$s", + "create.item_attributes.astralsorcery_constellation.inverted": "no está en sintonía con %1$s", + "create.item_attributes.astralsorcery_perk_gem": "tiene el atributo ventaja %1$s", + "create.item_attributes.astralsorcery_perk_gem.inverted": "no tiene el atributo ventaja %1$s", + "create.item_attributes.astralsorcery_amulet": "mejora %1$s", + "create.item_attributes.astralsorcery_amulet.inverted": "no mejora %1$s", + + "create.gui.attribute_filter.no_selected_attributes": "No hay atributos seleccionados", + "create.gui.attribute_filter.selected_attributes": "Atributos seleccionados:", + "create.gui.attribute_filter.add_attribute": "Añadir atributo a la lista", + "create.gui.attribute_filter.add_inverted_attribute": "Añadir atributo invertido a la Lista", + "create.gui.attribute_filter.allow_list_disjunctive": "Lista de permitidos (Cualquiera)", + "create.gui.attribute_filter.allow_list_disjunctive.description": "Los objetos pasan si tienen alguno de los atributos seleccionados", + "create.gui.attribute_filter.allow_list_conjunctive": "Lista de permitidos (Todos)", + "create.gui.attribute_filter.allow_list_conjunctive.description": "Los objetos pasan sólo si tienen TODOS los atributos seleccionados", + "create.gui.attribute_filter.deny_list": "Lista de denegados", + "create.gui.attribute_filter.deny_list.description": "Los objetos pasan si NO tienen ninguno de los atributos seleccionados", + "create.gui.attribute_filter.add_reference_item": "Añadir elemento de referencia", + + "create.tooltip.holdForDescription": "Mantén [%1$s] para mas información", + "create.tooltip.holdForControls": "Mantén [%1$s] para ver los controles", + "create.tooltip.keyShift": "Mayús izdo.", + "create.tooltip.keyCtrl": "Ctrl", + "create.tooltip.speedRequirement": "Requisitos de velocidad: %1$s", + "create.tooltip.speedRequirement.none": "Ninguno", + "create.tooltip.speedRequirement.medium": "Moderado", + "create.tooltip.speedRequirement.high": "Rápido", + "create.tooltip.stressImpact": "Impacto de estrés: %1$s", + "create.tooltip.stressImpact.low": "Bajo", + "create.tooltip.stressImpact.medium": "Moderado", + "create.tooltip.stressImpact.high": "Alto", + "create.tooltip.stressImpact.overstressed": "Sobrecargado", + "create.tooltip.capacityProvided": "Capacidad de estrés: %1$s", + "create.tooltip.capacityProvided.low": "Pequeña", + "create.tooltip.capacityProvided.medium": "Media", + "create.tooltip.capacityProvided.high": "Grande", + "create.tooltip.generationSpeed": "Generada en %1$s %2$s", + "create.tooltip.analogStrength": "Fuerza analógica: %1$s/15", + + "create.mechanical_arm.extract_from": "Extraer objetos de %1$s", + "create.mechanical_arm.deposit_to": "Depositar objetos en %1$s", + "create.mechanical_arm.summary": "El brazo mecánico tiene %1$s entrada(s) y %2$s salida(s)", + "create.mechanical_arm.points_outside_range": "%1$s punto(s) de interacción seleccionado(s) eliminado(s) debido a las limitaciones de rango", + + "create.weighted_ejector.target_set": "Objetivo seleccionado", + "create.weighted_ejector.target_not_valid": "Expulsión al bloque adyacente (el objetivo no era válido)", + "create.weighted_ejector.no_target": "Expulsión al bloque adyacente (no se ha seleccionado ningún objetivo)", + "create.weighted_ejector.targeting": "Expulsión a [%1$s,%2$s,%3$s]", + "create.weighted_ejector.stack_size": "Tamaño de la pila expulsada", + + "create.logistics.when_multiple_outputs_available": "Cuando hay múltiples salidas disponibles", + + "create.mechanical_arm.selection_mode.round_robin": "Round Robin", + "create.mechanical_arm.selection_mode.forced_round_robin": "Round Robin forzado", + "create.mechanical_arm.selection_mode.prefer_first": "Preferir el primero", + + "create.tunnel.selection_mode.split": "División", + "create.tunnel.selection_mode.forced_split": "División forzada", + "create.tunnel.selection_mode.round_robin": "Round Robin", + "create.tunnel.selection_mode.forced_round_robin": "Round Robin forzado", + "create.tunnel.selection_mode.prefer_nearest": "Preferir el más cercano", + "create.tunnel.selection_mode.randomize": "Aleatorizar", + "create.tunnel.selection_mode.synchronize": "Sincronizar entradas", + + "create.tooltip.chute.header": "Información del ducto", + "create.tooltip.chute.items_move_down": "Los objetos se mueven hacia abajo", + "create.tooltip.chute.items_move_up": "Los objetos se mueven hacia arriba", + "create.tooltip.chute.no_fans_attached": "No hay ventiladores adjuntos", + "create.tooltip.chute.fans_push_up": "Los ventiladores empujan desde abajo", + "create.tooltip.chute.fans_push_down": "Los ventiladores empujan desde arriba", + "create.tooltip.chute.fans_pull_up": "Los ventiladores tiran desde arriba", + "create.tooltip.chute.fans_pull_down": "Los ventiladores tiran desde abajo", + "create.tooltip.chute.contains": "Contiene: %1$s x%2$s", + "create.tooltip.brass_tunnel.contains": "Actualmente distribuye:", + "create.tooltip.brass_tunnel.contains_entry": "> %1$s x%2$s", + "create.tooltip.brass_tunnel.retrieve": "Haga clic derecho para recuperar", + + "create.linked_controller.bind_mode": "Modo de enlace activo", + "create.linked_controller.press_keybind": "Presiona %1$s, %2$s, %3$s, %4$s, %5$s o %6$s, para vincular esta frecuencia a la tecla correspondiente", + "create.linked_controller.key_bound": "Frecuencia ligada a %1$s", + "create.linked_controller.frequency_slot_1": "Enlace de teclas: %1$s, Freq. #1", + "create.linked_controller.frequency_slot_2": "Enlace de teclas: %1$s, Freq. #2", + + "create.crafting_blueprint.crafting_slot": "Ranura para ingredientes", + "create.crafting_blueprint.filter_items_viable": "Los objetos del filtro avanzado son viables", + "create.crafting_blueprint.display_slot": "Ranura de pantalla", + "create.crafting_blueprint.inferred": "A partir de la receta", + "create.crafting_blueprint.manually_assigned": "Asignado manualmente", + "create.crafting_blueprint.secondary_display_slot": "Ranura de pantalla secundaria", + "create.crafting_blueprint.optional": "Opcional", + + "create.potato_cannon.ammo.attack_damage": "%1$s Daño de ataque", + "create.potato_cannon.ammo.reload_ticks": "%1$s Recarga por Ticks", + "create.potato_cannon.ammo.knockback": "%1$s Golpe de efecto", + + "create.hint.hose_pulley.title": "Suministro ilimitado", + "create.hint.hose_pulley": "La masa de fluido objetivo se considera infinita.", + "create.hint.mechanical_arm_no_targets.title": "Sin objetivos", + "create.hint.mechanical_arm_no_targets": "Parece que a este _brazo mecánico_ no se le ha asignado ningún objetivo. Selecciona _correas_, _depósitos_, _embudos_ y otros bloques haciendo clic derecho sobre ellos mientras _sostienes_ el _brazo mecánico_ en tu mano..", + "create.hint.empty_bearing.title": "Actualización del rodamiento", + "create.hint.empty_bearing": "Haz clic derecho sobre el rodamiento con la _mano vacía_ para _adjuntar_ la estructura que acabas de construir delante de él.", + "create.hint.full_deployer.title": "Exceso de objetos en el desplegador", + "create.hint.full_deployer": "Parece que este _desplegador_ contiene _exceso_ de objetos que necesitan ser _extraídos._ Usa una _tolva_, _embudo_ u otro medio para liberarlo de su excedente.", + + "create.gui.config.overlay1": "Hola :)", + "create.gui.config.overlay2": "Esta es una muestra de la superposición", + "create.gui.config.overlay3": "Haga clic o arrastre con el ratón", + "create.gui.config.overlay4": "para mover esta vista previa", + "create.gui.config.overlay5": "Pulsar ESC para salir de esta pantalla", + "create.gui.config.overlay6": "y guardar la nueva posición", + "create.gui.config.overlay7": "Ejecute /create overlay reset", + "create.gui.config.overlay8": "para restablecer la posición por defecto", + + "create.command.killTPSCommand": "killtps", + "create.command.killTPSCommand.status.slowed_by.0": "[Crear]: El tick del servidor está actualmente ralentizado en %s ms :o", + "create.command.killTPSCommand.status.slowed_by.1": "[Crear]: El tick del servidor está ralentizado en %s ms ahora >:)", + "create.command.killTPSCommand.status.slowed_by.2": "[Create]: El tick del servidor ha vuelto a su velocidad normal :D", + "create.command.killTPSCommand.status.usage.0": "[Create]: usa /killtps stop para que el servidor vuelva a la velocidad normal", + "create.command.killTPSCommand.status.usage.1": "[Create]: usa /killtps start para ralentizar artificialmente el tick del servidor", + "create.command.killTPSCommand.argument.tickTime": "tickTime", + + "create.contraption.minecart_contraption_too_big": "Este artilugio de vagoneta parece demasiado grande para recogerlo", + "create.contraption.minecart_contraption_illegal_pickup": "Una fuerza mística está atando este artilugio de vagoneta al mundo", + + + "_": "->------------------------] Subtitles [------------------------<-", + + "create.subtitle.contraption_disassemble": "", + "create.subtitle.peculiar_bell_use": "", + "create.subtitle.mixing": "", + "create.subtitle.mechanical_press_activation_belt": "", + "create.subtitle.fwoomp": "", + "create.subtitle.worldshaper_place": "", + "create.subtitle.crushing_1": "", + "create.subtitle.depot_slide": "", + "create.subtitle.saw_activate_stone": "", + "create.subtitle.blaze_munch": "", + "create.subtitle.funnel_flap": "", + "create.subtitle.schematicannon_finish": "", + "create.subtitle.haunted_bell_use": "", + "create.subtitle.scroll_value": "", + "create.subtitle.crafter_craft": "", + "create.subtitle.controller_put": "", + "create.subtitle.cranking": "", + "create.subtitle.wrench_remove": "", + "create.subtitle.cogs": "", + "create.subtitle.slime_added": "", + "create.subtitle.wrench_rotate": "", + "create.subtitle.potato_hit": "", + "create.subtitle.saw_activate_wood": "", + "create.subtitle.haunted_bell_convert": "", + "create.subtitle.deployer_polish": "", + "create.subtitle.deny": "", + "create.subtitle.controller_click": "", + "create.subtitle.schematicannon_launch_block": "", + "create.subtitle.copper_armor_equip": "", + "create.subtitle.controller_take": "Lectern empties", + "create.subtitle.mechanical_press_activation": "", + "create.subtitle.contraption_assemble": "", + "create.subtitle.crafter_click": "", + "create.subtitle.depot_plop": "", + "create.subtitle.confirm": "", + + + "_": "->------------------------] Item Descriptions [------------------------<-", + + "item.create.example_item.tooltip": "EJEMPLO DE ITEM (sólo un marcador de que este tooltip existe)", + "item.create.example_item.tooltip.summary": "Una breve descripción del elemento. Los puntajes bajos resaltan un término", + "item.create.example_item.tooltip.condition1": "Cuando este", + "item.create.example_item.tooltip.behaviour1": "Entonces este elemento hace esto. (los comportamientos se muestran en el turno)", + "item.create.example_item.tooltip.condition2": "Y cuando esto", + "item.create.example_item.tooltip.behaviour2": "Puedes añadir tantos comportamientos como quieras", + "item.create.example_item.tooltip.control1": "Cuando se pulsa [Ctrl]", + "item.create.example_item.tooltip.action1": "Se muestran estos controles", + + "block.create.wooden_bracket.tooltip": "SOPORTE DE MADERA PARA EJES", + "block.create.wooden_bracket.tooltip.summary": "Decora tus _ejes_, _engranajes_ y _ductos_ con un acogedor refuerzo de madera.", + + "block.create.metal_bracket.tooltip": "SOPORTE DE METAL PARA EJES", + "block.create.metal_bracket.tooltip.summary": "Decora tus _ejes_, _engranajes_ y _ductos_ con un poco de refuerzo industrial robusto.", + + "block.create.seat.tooltip": "ASIENTO", + "block.create.seat.tooltip.summary": "¡Siéntate y disfruta del viaje! Anclará a un jugador en un artilugio en movimiento. También es ideal para muebles estáticos. Viene en una variedad de colores.", + "block.create.seat.tooltip.condition1": "Cuando se hace clic derecho en el asiento", + "block.create.seat.tooltip.behaviour1": "Sienta al jugador en el _asiento_. Pulsa Mayús izdo para dejar el asiento.", + + "item.create.blaze_cake.tooltip": "PASTEL DE BLAZE", + "item.create.blaze_cake.tooltip.summary": "Un delicioso regalo para sus esforzados _quemadores de blaze_. ¡Los pone en marcha!.", + + "item.create.wand_of_symmetry.tooltip": "VARITA DE SIMETRÍA", + "item.create.wand_of_symmetry.tooltip.summary": "Refleja perfectamente la colocación de bloques en los planos configurados.", + "item.create.wand_of_symmetry.tooltip.condition1": "Mientras está en el inventario rápido", + "item.create.wand_of_symmetry.tooltip.behaviour1": "Permanece activo.", + "item.create.wand_of_symmetry.tooltip.control1": "Cuando se hace clic derecho en el suelo", + "item.create.wand_of_symmetry.tooltip.action1": "_Crea_ o _mueve_ el espejo.", + "item.create.wand_of_symmetry.tooltip.control2": "Cuando se hace clic derecho en el aire", + "item.create.wand_of_symmetry.tooltip.action2": "_Quita_ el espejo activo.", + "item.create.wand_of_symmetry.tooltip.control3": "Mayús izdo + clic derecho", + "item.create.wand_of_symmetry.tooltip.action3": "Abre la interfaz de configuración.", + + "item.create.handheld_worldshaper.tooltip": "WORLDSHAPER", + "item.create.handheld_worldshaper.tooltip.summary": "Práctica herramienta para crear _paisajes_ y _características del terreno_.", + "item.create.handheld_worldshaper.tooltip.control1": "Cuando se hace clic izquierdo en un bloque", + "item.create.handheld_worldshaper.tooltip.action1": "Establece los bloques colocados por la herramienta en el bloque objetivo.", + "item.create.handheld_worldshaper.tooltip.control2": "Cuando se hace clic derecho en un bloque", + "item.create.handheld_worldshaper.tooltip.action2": "Aplica el _pincel_ y la _herramienta_ actualmente seleccionadas en el lugar deseado.", + "item.create.handheld_worldshaper.tooltip.control3": "Mayús izdo + clic derecho", + "item.create.handheld_worldshaper.tooltip.action3": "Abre la interfaz de configuración.", + + "item.create.tree_fertilizer.tooltip": "FERTILIZANTE PARA ÁRBOLES", + "item.create.tree_fertilizer.tooltip.summary": "Una potente combinación de minerales adecuada para acelerar el crecimiento de los tipos de árboles más comunes.", + "item.create.tree_fertilizer.tooltip.condition1": "Cuando se utiliza en un árbol joven", + "item.create.tree_fertilizer.tooltip.behaviour1": "Hace crecer los árboles _independientemente_ de sus condiciones de _espacio_.", + + "item.create.extendo_grip.tooltip": "AGARRE EXTENDIDO", + "item.create.extendo_grip.tooltip.summary": "¡Boioioing! Aumenta enormemente la _distancia de alcance_ del portador. Se puede alimentar con la presión de aire de un _depósito trasero de cobre_", + "item.create.extendo_grip.tooltip.condition1": "Cuando está fuera de la mano", + "item.create.extendo_grip.tooltip.behaviour1": "Aumenta la _distancia de alcance_ de los objetos usados en la _mano principal_.", + "item.create.extendo_grip.tooltip.condition2": "Mientras se usa un depósito trasero de cobre", + "item.create.extendo_grip.tooltip.behaviour2": "No se utilizará _durabilidad_. En su lugar, la _presión del aire_ se drena desde el tanque", + + "item.create.potato_cannon.tooltip": "CANÓN DE PATATAS", + "item.create.potato_cannon.tooltip.summary": "Fwoomp! Lanza tus verduras caseras a tus enemigos. Se puede alimentar con la presión de aire de un _depósito trasero de cobre_", + "item.create.potato_cannon.tooltip.condition1": "Cuando se usa clic derecho", + "item.create.potato_cannon.tooltip.behaviour1": "_Dispara_ un objeto adecuado desde tu inventario_.", + "item.create.potato_cannon.tooltip.condition2": "Mientras se usa un depósito trasero de cobre", + "item.create.potato_cannon.tooltip.behaviour2": "No se utilizará _durabilidad_. En su lugar, la _presión del aire_ se drena desde el tanque", + + "item.create.filter.tooltip": "FILTRO", + "item.create.filter.tooltip.summary": "Controla las _salidas_ y _entradas_ de los _dispositivos logísticos_ con más precisión, comparándolas con un _conjunto de objetos_ o varios _filtros anidados_.", + "item.create.filter.tooltip.condition1": "Cuando está en la ranura de filtros", + "item.create.filter.tooltip.behaviour1": "Controla el flujo de objetos según su _configuración_.", + "item.create.filter.tooltip.condition2": "Cuando se hace clic derecho", + "item.create.filter.tooltip.behaviour2": "Abre la interfaz de configuración.", + + "item.create.attribute_filter.tooltip": "FILTRO DE ATRIBUTOS", + "item.create.attribute_filter.tooltip.summary": "Controla las _salidas_ y las _entradas_ de los _dispositivos logísticos_ con más precisión, comparándolas con un _conjunto de atributos_ y _categorías_ de objetos.", + "item.create.attribute_filter.tooltip.condition1": "Cuando está en la ranura de filtros", + "item.create.attribute_filter.tooltip.behaviour1": "Controla el flujo de objetos según su _configuración_.", + "item.create.attribute_filter.tooltip.condition2": "Cuando se hace clic derecho", + "item.create.attribute_filter.tooltip.behaviour2": "Abre la interfaz de configuración.", + + "item.create.empty_schematic.tooltip": "ESQUEMA VACÍO", + "item.create.empty_schematic.tooltip.summary": "Se utiliza como 'ingrediente' de las recetas y para escribir en la _tabla de esquemas_.", + + "item.create.schematic.tooltip": "ESQUEMA", + "item.create.schematic.tooltip.summary": "Contiene una estructura para ser posicionada y colocada en el mundo. Posiciona el holograma como desees y utiliza un _cañón de esquemas_ para construirla.", + "item.create.schematic.tooltip.condition1": "Cuando se sostiene en la mano", + "item.create.schematic.tooltip.behaviour1": "Se puede posicionar utilizando las herramientas en pantalla.", + "item.create.schematic.tooltip.control1": "Mayús izdo + clic derecho", + "item.create.schematic.tooltip.action1": "Abre una _interfaz_ para introducir las _coordenadas_ exactas.", + + "item.create.schematic_and_quill.tooltip": "ESQUEMA Y PLUMA", + "item.create.schematic_and_quill.tooltip.summary": "Se utiliza para guardar una estructura de tu mundo en un archivo .nbt.", + "item.create.schematic_and_quill.tooltip.condition1": "Paso 1", + "item.create.schematic_and_quill.tooltip.behaviour1": "Selecciona dos puntos de esquina usando clic derecho.", + "item.create.schematic_and_quill.tooltip.condition2": "Paso 2", + "item.create.schematic_and_quill.tooltip.behaviour2": "[Ctrl] + [RUEDA DEL RATÓN] en las caras para ajustar el tamaño. Clic derecho de nuevo para guardar.", + "item.create.schematic_and_quill.tooltip.control1": "Cuando se hace clic derecho", + "item.create.schematic_and_quill.tooltip.action1": "Selecciona un punto de esquina / confirmar guardar.", + "item.create.schematic_and_quill.tooltip.control2": "Cuando mantiene [Ctrl]", + "item.create.schematic_and_quill.tooltip.action2": "Selecciona puntos en _medio del aire_. Rueda del ratón para ajustar la distancia.", + "item.create.schematic_and_quill.tooltip.control3": "Mayús izdo + clic derecho", + "item.create.schematic_and_quill.tooltip.action3": "_Reinicia_ y elimina la selección.", + + "block.create.schematicannon.tooltip": "CAÑÓN DE ESQUEMAS", + "block.create.schematicannon.tooltip.summary": "Dispara bloques para recrear un _esquema_ desplegado en el mundo. Utiliza objetos de los inventarios adyacentes y _pólvora_ como combustible.", + "block.create.schematicannon.tooltip.condition1": "Cuando se hace clic derecho", + "block.create.schematicannon.tooltip.behaviour1": "Abre la interfaz.", + + "block.create.schematic_table.tooltip": "TABLA DE ESQUEMAS", + "block.create.schematic_table.tooltip.summary": "Escribe los esquemas guardados en un _esquema vacío_.", + "block.create.schematic_table.tooltip.condition1": "Cuando se da un esquema vacío", + "block.create.schematic_table.tooltip.behaviour1": "Carga un archivo elegido de la carpeta de esquemas.", + + "item.create.goggles.tooltip": "GAFAS DEL CONSTRUCTOR", + "item.create.goggles.tooltip.summary": "Un par de gafas para aumentar tu visión con útil información _cinética_.", + "item.create.goggles.tooltip.condition1": "Cuando se llevan puestas", + "item.create.goggles.tooltip.behaviour1": "Muestra _indicadores de color_ correspondientes al _nivel de velocidad_ de un componente cinético colocado, así como el _impacto de estrés_ y la _carga_ de los componentes individuales.", + "item.create.goggles.tooltip.condition2": "Al mirar un medidor", + "item.create.goggles.tooltip.behaviour2": "Muestra información detallada sobre _velocidad_ o _estrés_ de la red a la que está conectado el medidor.", + "item.create.goggles.tooltip.condition3": "Al mirar un contenedor de fluidos", + "item.create.goggles.tooltip.behaviour3": "Muestra información detallada sobre la _carga_ del bloque y los _líquidos_ almacenados en su interior.", + + "item.create.wrench.tooltip": "LLAVE INGLESA", + "item.create.wrench.tooltip.summary": "Una herramienta útil para trabajar en artilugios cinéticos. Se puede utilizar para _rotar_, _desmantelar_ y para _configurar_ componentes.", + "item.create.wrench.tooltip.control1": "Cuando se hace clic derecho en un bloque cinético", + "item.create.wrench.tooltip.action1": "Rota los componentes hacia o desde la cara con la que ha interactuado.", + "item.create.wrench.tooltip.control2": "Mayús izdo + clic derecho", + "item.create.wrench.tooltip.action2": "Desmonta los _componentes cinéticos_ y los devuelve a tu inventario_.", + + "block.create.nozzle.tooltip": "BOQUILLA", + "block.create.nozzle.tooltip.summary": "Se acopla a la parte delantera de un _ventilador revestido_ para distribuir su efecto sobre las entidades en _todas las direcciones_.", + + "block.create.cuckoo_clock.tooltip": "RELOJ DE CUCO", + "block.create.cuckoo_clock.tooltip.summary": "Fina artesanía para decorar un espacio y contar el tiempo.", + "block.create.cuckoo_clock.tooltip.condition1": "Cuando es alimentado por cinética", + "block.create.cuckoo_clock.tooltip.behaviour1": "Muestra la _hora actual_ y toca una melodía dos veces al día. Se activa una vez al mediodía y al anochecer, _en cuanto los jugadores pueden dormir_.", + + "block.create.turntable.tooltip": "PLATAFORMA GIRATORIA", + "block.create.turntable.tooltip.summary": "Convierte la _fuerza rotacional_ en un refinado mareo.", + + "block.create.stockpile_switch.tooltip": "INTERRUPTOR DE ACOPIO", + "block.create.stockpile_switch.tooltip.summary": "Activa una señal de redstone en función de la cantidad de _objetos almacenados_ en el _contenedor_ adjunto. Viene con un práctico filtro. A diferencia de un _comparador, el _interruptor de acopio_ permite la configuración de _umbrales_, a partir de los cuales se invierten las señales.", + "block.create.stockpile_switch.tooltip.condition1": "Cuando se hace clic derecho", + "block.create.stockpile_switch.tooltip.behaviour1": "Abre la interfaz de configuración.", + + "block.create.content_observer.tooltip": "OBSERVADOR DE CONTENIDO", + "block.create.content_observer.tooltip.summary": "_Detecta objetos_ dentro de _contenedores_ y _transportadores_ que coincidan con un _filtro_ configurado. Mientras el _inventario_, la _cinta_ o la _canaleta_ observados _contengan_ un objeto que coincida, este componente emitirá una _señal de redstone_. Cuando un embudo observado _transfiere_ un objeto coincidente, este componente emitirá un _pulso de redstone_.", + + "block.create.adjustable_crate.tooltip": "CAJA AJUSTABLE", + "block.create.adjustable_crate.tooltip.summary": "Este _contenedor de objetos_ permite el control manual de su capacidad. Puede contener hasta _16 pilas_ de cualquier objeto. Soporta _comparadores de redstone_.", + "block.create.adjustable_crate.tooltip.condition1": "Cuando se hace clic derecho", + "block.create.adjustable_crate.tooltip.behaviour1": "Abre la interfaz.", + + "block.create.creative_crate.tooltip": "CAJA CREATIVA", + "block.create.creative_crate.tooltip.summary": "Este _contenedor de objetos_ permite la replicación infinita de cualquier elemento. Colócalo junto a un _cañón de esquemas_ para eliminar cualquier requisito de material.", + "block.create.creative_crate.tooltip.condition1": "Cuando el elemento está en la ranura para filtros", + "block.create.creative_crate.tooltip.behaviour1": "Todo lo que se _extraiga_ de este contenedor proporcionará un suministro _ilimitado_ del elemento especificado. Los objetos _insertados_ en esta caja serán _evitados_.", + + "item.create.creative_blaze_cake.tooltip": "PASTEL CREATIVO", + "item.create.creative_blaze_cake.tooltip.summary": "Un regalo muy especial para los _Quemadores de Blaze_ que permite _controlar su nivel de calor_. Después de comer este pastel, los Quemadores de blaze _nunca se quedarán sin combustible_.", + "item.create.creative_blaze_cake.tooltip.condition1": "Click derecho en un Quemador de blaze", + "item.create.creative_blaze_cake.tooltip.behaviour1": "Bloquea el nivel de calor del Quemador de blaze. Si se utiliza de nuevo, _cicla_ el nivel de calor del Quemador de blaze.", + + "block.create.controller_rail.tooltip": "RAÍL DE CONTROL", + "block.create.controller_rail.tooltip.summary": "Un raíl energizado _unidireccional_ capaz de _controlar con precisión_ la _velocidad de movimiento_ de una vagoneta.", + "block.create.controller_rail.tooltip.condition1": "Cuando es alimentado con redstone", + "block.create.controller_rail.tooltip.behaviour1": "_Acelera_ o _desacelera_ pasando _vagonetas_ correspondientes a la _fuerza de la señal_. Propaga la energía de redstone a los raíles de control adyacentes. Al alimentar dos raíles de control con diferentes intensidades, los carriles entre ellos interpolarán su señal.", + + "item.create.sand_paper.tooltip": "PAPEL DE LIJA", + "item.create.sand_paper.tooltip.summary": "Un papel rugoso que se puede utilizar para _pulir materiales_. Se puede aplicar automáticamente con el _desplegador_.", + "item.create.sand_paper.tooltip.condition1": "Cuando se usa", + "item.create.sand_paper.tooltip.behaviour1": "Aplica un pulido a los objetos sostenidos en la _mano libre_ o tirados en el _suelo_ cuando se _miran_.", + + "item.create.builders_tea.tooltip": "TÉ DEL CONSTRUCTOR", + "item.create.builders_tea.tooltip.summary": "La bebida perfecta para empezar el día. Motivante y saturante.", + + "item.create.refined_radiance.tooltip": "RESPLANDOR REFINADO", + "item.create.refined_radiance.tooltip.summary": "Un material cromático forjado a partir de la _luz absorbida_.", + "item.create.refined_radiance.tooltip.condition1": "Trabajo en progreso", + "item.create.refined_radiance.tooltip.behaviour1": "Los usos para este material estarán disponibles en un próximo lanzamiento.", + + "item.create.shadow_steel.tooltip": "ACERO SOMBRÍO", + "item.create.shadow_steel.tooltip.summary": "Un material cromático forjado en el _vacío_.", + "item.create.shadow_steel.tooltip.condition1": "Trabajo en curso", + "item.create.shadow_steel.tooltip.behaviour1": "Los usos de este material estarán disponibles en una futura versión.", + + "item.create.linked_controller.tooltip": "CONTROLADOR ENLAZADO", + "item.create.linked_controller.tooltip.summary": "Permite el control manual de las frecuencias de _enlaces de redstone_ asignadas a sus seis botones..", + "item.create.linked_controller.tooltip.condition1": "Al hacer clic derecho", + "item.create.linked_controller.tooltip.behaviour1": "Activa el _controlador_. Los _controles de movimiento_ se adquieren mientras está activo.", + "item.create.linked_controller.tooltip.condition2": "Al usar Mayús izdo + clic derecho", + "item.create.linked_controller.tooltip.behaviour2": "Abre la interfaz de configuración manual.", + "item.create.linked_controller.tooltip.condition3": "Al usar clic derecho en un receptor de enlaces de redstone", + "item.create.linked_controller.tooltip.behaviour3": "Activa el _modo de vinculación_, pulsa uno de los _seis controles_ para vincularlo a la _frecuencia de los enlaces_.", + "item.create.linked_controller.tooltip.condition4": "Clic derecho en un atril", + "item.create.linked_controller.tooltip.behaviour4": "Coloca el controlador en el atril para facilitar su activación. (Clic derecho + mayús izq. para recuperarlo)", + + "item.create.diving_helmet.tooltip": "CASCO DE BUCEO", + "item.create.diving_helmet.tooltip.summary": "Junto con un _depósito trasero de cobre_, permite que el usuario pueda respirar bajo el agua durante un tiempo prolongado.", + "item.create.diving_helmet.tooltip.condition1": "Cuando se lleva puesto", + "item.create.diving_helmet.tooltip.behaviour1": "Proporciona el efecto de _respiración acuática_, drenando lentamente la presión de aire del _depósito trasero_.", + + "item.create.copper_backtank.tooltip": "DEPÓSITO TRASERO DE COBRE", + "item.create.copper_backtank.tooltip.summary": "Un tanque portátil para transportar _aire presurizado_.", + "item.create.copper_backtank.tooltip.condition1": "Cuando se lleva puesto", + "item.create.copper_backtank.tooltip.behaviour1": "Proporciona _aire presurizado_ a los equipos que lo requieran.", + "item.create.copper_backtank.tooltip.condition2": "Cuando se coloca y es alimentado por cinética", + "item.create.copper_backtank.tooltip.behaviour2": "Recoge _aire presurizado_ a un ritmo que depende de la velocidad rotacional.", + + "item.create.diving_boots.tooltip": "BOTAS DE BUCEO", + "item.create.diving_boots.tooltip.summary": "Un par de _botas_ pesadas, que permiten atravesar mejor el suelo del océano.", + "item.create.diving_boots.tooltip.condition1": "Cuando se llevan puestas", + "item.create.diving_boots.tooltip.behaviour1": "El portador se hunde rápido y no puede nadar. Concede la capacidad de caminar y saltar bajo el agua. Al portador no le afectarán las _correas mecánicas.", + + "item.create.crafting_blueprint.tooltip": "PLANO DE ELABORACIÓN", + "item.create.crafting_blueprint.tooltip.summary": "Colocado en una pared, puede utilizarse para especificar la disposición de los ingredientes para facilitar la elaboración manual. Cada ranura representa una receta", + "item.create.crafting_blueprint.condition1": "Al hacer clic derecho en una ranura vacía", + "item.create.crafting_blueprint.behaviour1": "Abre un menú que permite configurar una receta y los objetos a mostrar.", + "item.create.crafting_blueprint.condition2": "Al hacer clic derecho en una ranura configurada", + "item.create.crafting_blueprint.behaviour2": "Aplica la receta configurada con los ingredientes que se encuentran en tu inventario. Se puede utilizar para fabricar hasta una pila de objetos.", + + "item.create.minecart_coupling.tooltip": "ENSAMBLADOR DE VAGONETAS", + "item.create.minecart_coupling.tooltip.summary": "_Encadena_ todas tus _vagonetas_ o _artilugios de vagoneta_ para formar un majestuoso _tren_.", + "item.create.minecart_coupling.tooltip.condition1": "Cuando se utiliza en vagonetas", + "item.create.minecart_coupling.tooltip.behaviour1": "_Acopla_ dos vagonetas, intentando mantenerlas a una _distancia constante_ mientras se mueven.", + + "block.create.peculiar_bell.tooltip": "CAMPANA PECULIAR", + "block.create.peculiar_bell.tooltip.summary": "Una campana decorativa de latón. Al colocarla sobre un _Fuego del alma_ o una _Fogata del alma_ puede producirse una transformación espeluznante...", + + "block.create.haunted_bell.tooltip": "CAMPANA ENCANTADA", + "block.create.haunted_bell.tooltip.summary": "Una _campana maldita_ perseguida por las almas perdidas del Nether", + "block.create.haunted_bell.tooltip.condition1": "Cuando se sostiene o suena", + "block.create.haunted_bell.tooltip.behaviour1": "Resalta los _puntos sin luz_ cercanos en los que pueden aparecer las _criaturas hostiles_.", + + + "_": "->------------------------] Ponder Content [------------------------<-", + + "create.ponder.hold_to_ponder": "Mantén [%1$s] para considerar", + "create.ponder.subject": "Tema de esta escena", + "create.ponder.pondering": "Considerando sobre...", + "create.ponder.identify_mode": "Identificando modo activo.\nDespausea con [%1$s]", + "create.ponder.associated": "Entradas asociadas", + "create.ponder.close": "Cerrar", + "create.ponder.identify": "Identificar", + "create.ponder.next": "Escena siguiente", + "create.ponder.previous": "Escena previa", + "create.ponder.replay": "Repetición", + "create.ponder.think_back": "Volver atrás", + "create.ponder.slow_text": "Lectura cómoda", + "create.ponder.exit": "Salir", + "create.ponder.welcome": "Bienvenido al instructivo de Create", + "create.ponder.categories": "Categorías disponibles", + "create.ponder.index_description": "Haga clic en uno de los iconos para conocer sus objetos y bloques asociados", + "create.ponder.index_title": "Índice", + "create.ponder.shared.rpm16": "16 RPM", + "create.ponder.shared.behaviour_modify_wrench": "Este comportamiento puede modificarse mediante una llave inglesa", + "create.ponder.shared.storage_on_contraption": "Los inventarios unidos al artilugio recogerán sus producciones automáticamente", + "create.ponder.shared.sneak_and": "Mayús izdo. +", + "create.ponder.shared.rpm8": "8 RPM", + "create.ponder.shared.ctrl_and": "Ctrl +", + "create.ponder.shared.rpm32": "32 RPM", + "create.ponder.shared.rpm16_source": "Fuente: 16 RPM", + "create.ponder.shared.movement_anchors": "Con la ayuda de un chasis o pegamento, se pueden mover estructuras más grandes.", + "create.ponder.tag.redstone": "Componentes lógicos", + "create.ponder.tag.redstone.description": "Componentes que ayudan a la ingeniería de redstone", + "create.ponder.tag.contraption_assembly": "Utilidades para adjuntar bloques", + "create.ponder.tag.contraption_assembly.description": "Herramientas y componentes utilizados para montar estructuras con movimiento, como un artilugio animado", + "create.ponder.tag.fluids": "Manipuladores de fluidos", + "create.ponder.tag.fluids.description": "Componentes que ayudan a transportar y utilizar fluidos", + "create.ponder.tag.decoration": "Estética", + "create.ponder.tag.decoration.description": "Componentes utilizados principalmente con fines decorativos", + "create.ponder.tag.windmill_sails": "Velas para los rodamientos de los molinos de viento", + "create.ponder.tag.windmill_sails.description": "Bloques que cuentan para la fuerza de un artefacto de molino de viento cuando se ensamblan. Cada uno de ellos tiene la misma eficacia al hacerlo.", + "create.ponder.tag.arm_targets": "Objetivos para los brazos mecánicos", + "create.ponder.tag.arm_targets.description": "Componentes que pueden seleccionarse como entradas o salidas del brazo mecánico", + "create.ponder.tag.kinetic_appliances": "Dispositivos cinéticos", + "create.ponder.tag.kinetic_appliances.description": "Componentes que utilizan la fuerza rotacional", + "create.ponder.tag.kinetic_sources": "Fuentes cinéticas", + "create.ponder.tag.kinetic_sources.description": "Componentes que generan fuerza rotacional", + "create.ponder.tag.movement_anchor": "Anclas de movimiento", + "create.ponder.tag.movement_anchor.description": "Componentes que permiten crear artilugios en movimiento, animando una estructura anexa de diversas maneras", + "create.ponder.tag.kinetic_relays": "Transmisores cinéticos", + "create.ponder.tag.kinetic_relays.description": "Componentes que ayudan a transmitir la fuerza rotacional en otro lugar", + "create.ponder.tag.contraption_actor": "Actores del artilugio", + "create.ponder.tag.contraption_actor.description": "Componentes que exponen un comportamiento especial cuando están unidos a un artilugio en movimiento", + "create.ponder.tag.creative": "Modo creativo", + "create.ponder.tag.creative.description": "Componentes que no suelen estar disponibles para el Modo Supervivencia", + "create.ponder.tag.logistics": "Transporte de objetos", + "create.ponder.tag.logistics.description": "Componentes que ayudan a desplazar los objetos", + + "create.ponder.adjustable_pulse_repeater.header": "Controlar señales mediante repetidores de pulsos ajustables", + "create.ponder.adjustable_pulse_repeater.text_1": "Los repetidores de pulsos ajustables emiten un pulso corto con un retardo", + "create.ponder.adjustable_pulse_repeater.text_2": "Con la rueda del ratón se puede configurar el tiempo de carga", + "create.ponder.adjustable_pulse_repeater.text_3": "Los retrasos configurados pueden ser de hasta 30 minutos", + + "create.ponder.adjustable_repeater.header": "Controlar señales mediante repetidores ajustables", + "create.ponder.adjustable_repeater.text_1": "Los repetidores ajustables se comportan de forma similar a los repetidores normales", + "create.ponder.adjustable_repeater.text_2": "Se cargan durante un tiempo determinado...", + "create.ponder.adjustable_repeater.text_3": "...y se enfrían durante el mismo tiempo", + "create.ponder.adjustable_repeater.text_4": "Con la rueda del ratón se puede configurar el tiempo de carga", + "create.ponder.adjustable_repeater.text_5": "Los retrasos configurados pueden variar hasta 30 minutos", + + "create.ponder.analog_lever.header": "Controlar señales mediante la palanca analógica", + "create.ponder.analog_lever.text_1": "Las palancas analógicas son una fuente compacta y precisa de energía de redstone", + "create.ponder.analog_lever.text_2": "Haz clic derecho para aumentar su potencia analógica", + "create.ponder.analog_lever.text_3": "Usa Mayús izdo + clic derecho para volver a disminuir su potencia", + + "create.ponder.andesite_tunnel.header": "Usar túneles de andesita", + "create.ponder.andesite_tunnel.text_1": "Los túneles de andesita se pueden utilizar para tapar las correas", + "create.ponder.andesite_tunnel.text_2": "Siempre que un túnel de andesita tenga conexiones a los lados...", + "create.ponder.andesite_tunnel.text_3": "...dividirá exactamente un elemento de cualquier pila que pase", + "create.ponder.andesite_tunnel.text_4": "El resto continuará su camino", + + "create.ponder.basin.header": "Procesar objetos en la cuenca", + "create.ponder.basin.text_1": "Una cuenca puede contener objetos y fluidos para su procesamiento", + "create.ponder.basin.text_2": "Después de un paso de procesamamiento, las cuencas intentan descargar por debajo a un lado de ellas", + "create.ponder.basin.text_3": "Cuando un ingrediente válido está presente, la cuenca mostrará un conducto de salida", + "create.ponder.basin.text_4": "Aquí se pueden aplicar varias opciones", + "create.ponder.basin.text_5": "Las salidas serán capturadas por el inventario que está por debajo", + "create.ponder.basin.text_6": "Sin conducto de salida, la cuenca retendrá los objetos creados en su procesamiento", + "create.ponder.basin.text_7": "Esto puede ser útil si las salidas deben ser reutilizadas como ingredientes", + "create.ponder.basin.text_8": "Las salidas deseadas tendrán que ser extraídas de la cuenca", + "create.ponder.basin.text_9": "Podría ser necesario un filtro para evitar sacar los objetos no procesados", + + "create.ponder.bearing_modes.header": "Modos de movimiento del rodamiento mecánico", + "create.ponder.bearing_modes.text_1": "Cuando se detenga, el rodamiento mecánico colocará la estructura en el ángulo más cercano alineado con la cuadrícula", + "create.ponder.bearing_modes.text_2": "Se puede configurar para que nunca vuelva a los bloques sólidos, o sólo cerca del ángulo en el que comenzó", + + "create.ponder.belt_casing.header": "Correas revestidas", + "create.ponder.belt_casing.text_1": "Se puede utilizar revestidor de latón o andesita para decorar las correas", + "create.ponder.belt_casing.text_2": "Se puede utilizar una llave inglesa para quitar el revestimiento", + + "create.ponder.belt_connector.header": "El uso de las correas mecánicas", + "create.ponder.belt_connector.text_1": "Al hacer clic derecho en dos ejes con una correa mecánica se conectarán entre sí", + "create.ponder.belt_connector.text_2": "Las selecciones accidentales pueden ser canceladas con Mayús izdo + clic derecho", + "create.ponder.belt_connector.text_3": "Se pueden añadir ejes adicionales en toda la correa", + "create.ponder.belt_connector.text_4": "Los ejes conectados a través de correas girarán con velocidad y dirección idénticas", + "create.ponder.belt_connector.text_5": "Los ejes añadidos se pueden quitar con la llave inglesa", + "create.ponder.belt_connector.text_6": "Las correas mecánicas se pueden teñir con fines estéticos", + + "create.ponder.belt_directions.header": "Orientaciones válidas para las correas mecánicas", + "create.ponder.belt_directions.text_1": "Las correas mecánicas no pueden conectarse en direcciones arbitrarias", + "create.ponder.belt_directions.text_2": "1. Pueden conectarse horizontalmente", + "create.ponder.belt_directions.text_3": "2. Pueden conectarse en diagonal", + "create.ponder.belt_directions.text_4": "3. Pueden conectarse verticalmente", + "create.ponder.belt_directions.text_5": "4. Y pueden conectar ejes verticales horizontalmente", + "create.ponder.belt_directions.text_6": "Estas son todas las direcciones posibles. Pueden abarcar cualquier longitud entre 2 y 20 bloques", + + "create.ponder.belt_transport.header": "El uso de las correas mecánicas para la logística", + "create.ponder.belt_transport.text_1": "Las correas mecánicas transportan objetos y otras entidades", + "create.ponder.belt_transport.text_2": "Haz clic derecho con la mano vacía para sacar objetos de una 'cinta'", + + "create.ponder.blaze_burner.header": "Alimentar quemadores de blaze", + "create.ponder.blaze_burner.text_1": "Los quemadores de blaze pueden proporcionar calor a los objetos procesados en una cuenca", + "create.ponder.blaze_burner.text_2": "Para ello, el blaze tiene que ser alimentado con objetos inflamables", + "create.ponder.blaze_burner.text_3": "Con un pastel de blaze, el quemador puede alcanzar un mayor nivel de calor", + "create.ponder.blaze_burner.text_4": "El proceso de alimentación puede automatizarse utilizando desplegadores o brazos mecánicos", + + "create.ponder.brass_funnel.header": "El embudo de latón", + "create.ponder.brass_funnel.text_1": "Los embudos de andesita sólo pueden extraer objetos individuales", + "create.ponder.brass_funnel.text_2": "Los embudos de latón pueden extraer hasta una pila completa", + "create.ponder.brass_funnel.text_3": "Usar la rueda de desplazamiento del ratón en la ranura para filtros permite un control preciso del tamaño de la pila extraída.", + "create.ponder.brass_funnel.text_4": "El uso de objetos en la ranura de filtrado restringirá el embudo para transferir sólo las pilas que coincidan.", + + "create.ponder.brass_tunnel.header": "Usar túneles de latón", + "create.ponder.brass_tunnel.text_1": "Los túneles de latón pueden utilizarse para tapar las correas", + "create.ponder.brass_tunnel.text_2": "Tienen ranuras de filtro en cada lado abierto", + "create.ponder.brass_tunnel.text_3": "Los filtros en las conexiones de entrada simplemente bloquean los objetos que no coincidan", + "create.ponder.brass_tunnel.text_4": "Los filtros en las conexiones de salida pueden utilizarse para ordenar los objetos por tipo", + "create.ponder.brass_tunnel.text_5": "Siempre que un objeto de paso tenga múltiples salidas válidas, el modo de distribución decidirá cómo manejarlo", + "create.ponder.brass_tunnel.text_6": "Los túneles de latón en bandas paralelas formarán un grupo", + "create.ponder.brass_tunnel.text_7": "Los objetos entrantes se distribuirán ahora por todas las salidas conectadas", + "create.ponder.brass_tunnel.text_8": "Para ello, los objetos también pueden insertarse en el bloque del túnel directamente", + + "create.ponder.brass_tunnel_modes.header": "Modos de distribución del túnel de latón", + "create.ponder.brass_tunnel_modes.text_1": "Mediante una llave inglesa se puede configurar el comportamiento de distribución de los túneles de latón", + "create.ponder.brass_tunnel_modes.text_10": "'Sincronizar entradas' es una configuración única de los túneles de latón", + "create.ponder.brass_tunnel_modes.text_11": "Las entradas sólo pueden pasar si cada túnel del grupo tiene una en espera", + "create.ponder.brass_tunnel_modes.text_12": "Esto asegura que todas las correas afectadas suministren objetos al mismo tiempo", + "create.ponder.brass_tunnel_modes.text_2": "El modo División intentará distribuir la pila uniformemente entre las salidas disponibles", + "create.ponder.brass_tunnel_modes.text_3": "Si una salida no puede tomar más objetos, se saltará", + "create.ponder.brass_tunnel_modes.text_4": "El modo División forzada nunca saltará las salidas, y en su lugar esperará hasta que estén libres", + "create.ponder.brass_tunnel_modes.text_5": "El modo Round Robin mantiene las pilas enteras, y recorre las salidas de forma iterativa", + "create.ponder.brass_tunnel_modes.text_6": "Una vez más, si una salida no puede aceptar más objetos, se saltará", + "create.ponder.brass_tunnel_modes.text_7": "El modo Round Robin forzado nunca omite salidas", + "create.ponder.brass_tunnel_modes.text_8": "El modo Preferir el más cercano prioriza las salidas más cercanas a la ubicación de entrada de los objetos", + "create.ponder.brass_tunnel_modes.text_9": "El modo Aleatorizar distribuirá pilas enteras a salidas elegidas al azar", + + "create.ponder.cart_assembler.header": "Mover estructuras usando ensambladores de vagonetas", + "create.ponder.cart_assembler.text_1": "Los ensambladores de vagonetas montan estructuras adjuntas a las vagonetas que pasan", + "create.ponder.cart_assembler.text_2": "Sin una señal de redstone, desmonta los artilugios de vagoneta que pasan de nuevo en bloques", + "create.ponder.cart_assembler.text_3": "El uso de una llave inglesa en una vagoneta te permitirá llevar el artilugio a otro lugar", + + "create.ponder.cart_assembler_dual.header": "Ensamblajes de artilugios de vagoneta", + "create.ponder.cart_assembler_dual.text_1": "Siempre que dos ensambladores de vagoneta compartan una estructura adjunta...", + "create.ponder.cart_assembler_dual.text_2": "...al alimentar a cualquiera de ellos se creará un artilugio de vagoneta", + "create.ponder.cart_assembler_dual.text_3": "Las vagonetas se comportarán como las conectadas a través del acoplamiento de vagoneta", + + "create.ponder.cart_assembler_modes.header": "Configurar la orientación de los artilugios de vagonetas", + "create.ponder.cart_assembler_modes.text_1": "Los artilugios de vagonetas girarán para orientarse hacia el movimiento de sus vagonetas", + "create.ponder.cart_assembler_modes.text_2": "Esta flecha indica qué lado de la estructura se considerará la parte delantera", + "create.ponder.cart_assembler_modes.text_3": "Si el ensamblador está configurado para bloquear la rotación, la orientación de los artilugios nunca cambiará", + + "create.ponder.cart_assembler_rails.header": "Otros tipos de vagonetas y raíles", + "create.ponder.cart_assembler_rails.text_1": "Los ensambladores de vagonetas en raíles normales no afectarán el movimiento de las vagonetas que pasen", + "create.ponder.cart_assembler_rails.text_2": "Cuando se encuentre en un raíl motorizado o en un raíl de control, las vagonetas se mantendrán en su sitio hasta que sea motorizado", + "create.ponder.cart_assembler_rails.text_3": "Se pueden utilizar otros tipos de vagonetas como anclaje", + "create.ponder.cart_assembler_rails.text_4": "Los artilugios de vagonetas de horno se mantendrán alimentados a sí mismos, sacando combustible de cualquier inventario adjunto", + + "create.ponder.chain_drive.header": "Transmitir fuerza rotacional con las cadenas de transmisión", + "create.ponder.chain_drive.text_1": "Las cadenas de transmisión transmiten la rotación entre sí en fila", + "create.ponder.chain_drive.text_2": "Todos los ejes conectados así girarán en la misma dirección", + "create.ponder.chain_drive.text_3": "Cualquier parte de la fila puede girar 90 grados usando una llave inglesa", + + "create.ponder.chain_gearshift.header": "Controlar la velocidad de rotación con la cadena de transmisión ajustable", + "create.ponder.chain_gearshift.text_1": "Las cadenas de transmisión ajustables sin alimentación se comportan exactamente como las cadenas de transmisión", + "create.ponder.chain_gearshift.text_2": "Cuando están alimentadas, la velocidad transmitida a las demás cadenas de transmisión de la fila se duplica", + "create.ponder.chain_gearshift.text_3": "Siempre que la cadena de transmisión alimentada no esté en el origen, su velocidad se reducirá a la mitad", + "create.ponder.chain_gearshift.text_4": "En ambos casos, las cadenas de transmisión de la fila siempre funcionan a 2 veces la velocidad de la cadena de transmisión alimentada", + "create.ponder.chain_gearshift.text_5": "Utilizando señales analógicas, la relación puede ajustarse con mayor precisión, entre 1 y 2", + "create.ponder.chain_gearshift.text_6": "12 RPM", + + "create.ponder.chute.header": "Transportar objetos hacia abajo a través de ductos", + "create.ponder.chute.text_1": "Los ductos pueden transportar objetos verticalmente desde y hacia los inventarios", + "create.ponder.chute.text_2": "Usando la llave inglesa, se puede crear una ventana", + "create.ponder.chute.text_3": "Colocar ductos apuntando a las caras laterales de otro lo hará en diagonal", + + "create.ponder.chute_upward.header": "Transportar objetos hacia arriba mediante ductos", + "create.ponder.chute_upward.text_1": "Usando ventiladores revestidos en la parte superior o inferior, un ducto puede transportar objetos hacia arriba", + "create.ponder.chute_upward.text_2": "Al inspeccionar los ductos con las gafas del constructor, se revela información sobre la dirección del movimiento", + "create.ponder.chute_upward.text_3": "En el extremo 'bloqueado', los objetos tendrán que ser insertados/tomados de los lados", + + "create.ponder.clockwork_bearing.header": "Animar estructuras con rodamientos tipo reloj", + "create.ponder.clockwork_bearing.text_1": "Los rodamientos tipo reloj se fijan a los bloques que tienen delante", + "create.ponder.clockwork_bearing.text_2": "Al recibir fuerza rotacional, la estructura girará según la hora del día", + "create.ponder.clockwork_bearing.text_3": "3:00", + "create.ponder.clockwork_bearing.text_4": "4:00", + "create.ponder.clockwork_bearing.text_5": "Haz clic derecho en el rodamiento para iniciar o detener la animación de la estructura", + "create.ponder.clockwork_bearing.text_6": "Delante de la manecilla de las horas se puede añadir una segunda estructura", + "create.ponder.clockwork_bearing.text_7": "Asegúrese de que las dos estructuras no están unidas entre sí con pegamento o algo similar", + "create.ponder.clockwork_bearing.text_8": "La segunda estructura ahora girará como el minutero", + + "create.ponder.clutch.header": "Controlar la fuerza rotacional mediante un embrague", + "create.ponder.clutch.text_1": "Los embragues transmitirán la rotación en línea recta", + "create.ponder.clutch.text_2": "Cuando se alimentan con redstone, rompen la conexión", + + "create.ponder.cog_speedup.header": "Cambiar de marchas con engranajes", + "create.ponder.cog_speedup.text_1": "Los engranajes grandes y pequeños pueden conectarse en diagonal", + "create.ponder.cog_speedup.text_2": "Al cambiar de engranajes grandes a pequeños, la velocidad rotacional se duplicará", + "create.ponder.cog_speedup.text_3": "Inversamente, la velocidad rotacional se reducirá a la mitad", + + "create.ponder.cogwheel.header": "Transmitir fuerza rotacional mediante engranajes", + "create.ponder.cogwheel.text_1": "Los engranajes transmitirán la rotación a otros engranajes adyacentes", + "create.ponder.cogwheel.text_2": "Los ejes adyacentes conectados así, girarán en direcciones opuestas", + + "create.ponder.creative_fluid_tank.header": "Tanque de fluídos creativo", + "create.ponder.creative_fluid_tank.text_1": "Los depósitos de fluidos creativos pueden utilizarse para proporcionar un suministro de fluidos sin fondo", + "create.ponder.creative_fluid_tank.text_2": "Haga clic con el botón derecho en un elemento que contenga fluido para configurarlo", + "create.ponder.creative_fluid_tank.text_3": "Las redes de tuberías pueden ahora extraer sin cesar el fluido asignado del depósito", + "create.ponder.creative_fluid_tank.text_4": "Cualquier fluido empujado de vuelta a un tanque de fluido creativo será anulado", + + "create.ponder.creative_motor.header": "Generar fuerza rotacional con motores creativos", + "create.ponder.creative_motor.text_1": "Los motores creativos son una fuente compacta y configurable de fuerza rotacional", + "create.ponder.creative_motor.text_2": "Usar la rueda de desplazamiento del ratón en su parte trasera cambia las RPM de la salida rotacional", + + "create.ponder.crushing_wheels.header": "Procesar objetos con las ruedas trituradoras", + "create.ponder.crushing_wheels.text_1": "Un par de ruedas trituradoras pueden moler objetos de forma muy eficaz", + "create.ponder.crushing_wheels.text_2": "Su fuerza rotacional tiene que hacerlas girar una contra otra", + "create.ponder.crushing_wheels.text_3": "Los objetos lanzados o insertados en la parte superior serán procesados", + "create.ponder.crushing_wheels.text_4": "Los objetos también pueden ser insertados y recogidos a través de medios automatizados", + + "create.ponder.deployer.header": "Usar el desplegador", + "create.ponder.deployer.text_1": "Dada la fuerza rotacional, un desplegador puede imitar las interacciones de los jugadores", + "create.ponder.deployer.text_10": "Haz clic derecho en el frente para darle un objeto a utilizar", + "create.ponder.deployer.text_11": "Los objetos también pueden ser insertados automáticamente", + "create.ponder.deployer.text_12": "Los desplegadores llevan una ranura de filtro", + "create.ponder.deployer.text_13": "Cuando se establece un filtro, sólo se activa mientras se mantiene un elemento coincidente", + "create.ponder.deployer.text_14": "Ahora sólo se pueden insertar los objetos que coincidan con el filtro...", + "create.ponder.deployer.text_15": "...y sólo se extraerán los objetos que no coincidan", + "create.ponder.deployer.text_2": "Siempre interactuará con la posición 2 bloques delante de sí mismo", + "create.ponder.deployer.text_3": "Los bloques situados directamente delante no lo obstruirán", + "create.ponder.deployer.text_4": "Los desplegadores pueden:", + "create.ponder.deployer.text_5": "Colocar bloques,", + "create.ponder.deployer.text_6": "Usar objetos,", + "create.ponder.deployer.text_7": "Activar bloques,", + "create.ponder.deployer.text_8": "Cosechar bloques", + "create.ponder.deployer.text_9": "Y atacar criaturas", + + "create.ponder.deployer_contraption.header": "Usar desplegadores en artilugios", + "create.ponder.deployer_contraption.text_1": "Siempre que los desplegadores se muevan como parte de un artilugio animado...", + "create.ponder.deployer_contraption.text_2": "Se activan en cada ubicación visitada, utilizando objetos de los inventarios de cualquier parte del artilugio", + "create.ponder.deployer_contraption.text_3": "La ranura para filtros se puede utilizar para especificar qué objetos tirar", + + "create.ponder.deployer_modes.header": "Modos del desplegador", + "create.ponder.deployer_modes.text_1": "Por defecto, un desplegador imita la interacción del clic derecho del ratón", + "create.ponder.deployer_modes.text_2": "Usando una llave inglesa, se puede configurar para imitar un clic izquierdo en su lugar", + + "create.ponder.deployer_processing.header": "Procesar objetos mediante desplegadores", + "create.ponder.deployer_processing.text_1": "Con un objeto de sujeción ajustado, los desplegadores pueden procesar los objetos proporcionados por debajo de ellos", + "create.ponder.deployer_processing.text_2": "Los objetos de entrada pueden soltarse o colocarse en un depósito bajo el desplegador", + "create.ponder.deployer_processing.text_3": "Cuando los objetos se proporcionan en una 'cinta'...", + "create.ponder.deployer_processing.text_4": "El desplegador los retendrá y procesará automáticamente", + + "create.ponder.deployer_redstone.header": "Controlar desplegadores con redstone", + "create.ponder.deployer_redstone.text_1": "Al controlar los desplegadores con redstone, éstos no se activarán", + "create.ponder.deployer_redstone.text_2": "Antes de detenerse, el desplegador terminará cualquier ciclo iniciado", + "create.ponder.deployer_redstone.text_3": "Por lo tanto, un pulso negativo puede ser utilizado para desencadenar exactamente un ciclo de activación", + + "create.ponder.depot.header": "Usar depósitos", + "create.ponder.depot.text_1": "Los depósitos pueden servir como objetos 'fijos' de la correa", + "create.ponder.depot.text_2": "Haz clic derecho para colocar o eliminar manualmente objetos del mismo", + "create.ponder.depot.text_3": "Al igual que las correas mecánicas, pueden proporcionar objetos para su procesamiento", + "create.ponder.depot.text_4": "...así como proporcionar objetos a los brazos mecánicos", + + "create.ponder.empty_blaze_burner.header": "Usar quemadores de blaze vacíos", + "create.ponder.empty_blaze_burner.text_1": "Haz clic derecho en un blaze con el quemador vacío para capturarlo", + "create.ponder.empty_blaze_burner.text_2": "Alternativamente, los blaze pueden ser recogidos de sus spawners directamente", + "create.ponder.empty_blaze_burner.text_3": "Ahora tienes una fuente de calor ideal para varias máquinas", + "create.ponder.empty_blaze_burner.text_4": "Por motivos estéticos, los quemadores de blaze vacíos también se pueden encender con pedernal y acero", + "create.ponder.empty_blaze_burner.text_5": "La llama puede transformarse utilizando un objeto con alma", + "create.ponder.empty_blaze_burner.text_6": "Sin embargo, no son adecuados para la calefacción industrial", + + "create.ponder.encased_fluid_pipe.header": "Revestir tuberías de fluídos", + "create.ponder.encased_fluid_pipe.text_1": "El revestidor de cobre puede utilizarse para decorar las tuberías de fluidos", + "create.ponder.encased_fluid_pipe.text_2": "Además de estar ocultas, las tuberías revestidas están bloqueadas en su estado de conectividad", + "create.ponder.encased_fluid_pipe.text_3": "Ya no reaccionará a los bloques vecinos que se añadan o eliminen", + + "create.ponder.fan_direction.header": "El flujo de aire de los ventiladores revestidos", + "create.ponder.fan_direction.text_1": "Los ventiladores revestidos utilizan la fuerza rotacional para crear una corriente de aire", + "create.ponder.fan_direction.text_2": "La fuerza y la dirección del flujo dependen de la fuerza rotacional suministrada", + + "create.ponder.fan_processing.header": "Procesar objetos mediante ventiladores revestidos", + "create.ponder.fan_processing.text_1": "Al pasar por lava, el flujo de aire se calienta", + "create.ponder.fan_processing.text_2": "Los objetos capturados en la zona serán fundidos", + "create.ponder.fan_processing.text_3": "Los artículos de comida arrojados aquí serán incinerados", + "create.ponder.fan_processing.text_4": "En su lugar, se debería utilizar una instalación de ahumado, usando fuego", + "create.ponder.fan_processing.text_5": "Los flujos de aire que pasan por el agua crean una instalación de lavado", + "create.ponder.fan_processing.text_6": "Se puede hacer un nuevo e interesante procesamiento con él", + "create.ponder.fan_processing.text_7": "La velocidad del ventilador NO afecta a la velocidad de procesamiento, sólo a su rango", + "create.ponder.fan_processing.text_8": "El procesamiento del ventilador también puede aplicarse a los objetos de los depósitos y las correas", + + "create.ponder.fan_source.header": "Generar fuerza rotacional mediante ventiladores revestidos", + "create.ponder.fan_source.text_1": "Los ventiladores orientados hacia una fuente de calor pueden proporcionar fuerza rotacional", + "create.ponder.fan_source.text_2": "Cuando se les da una señal de redstone, los ventiladores comenzarán a proporcionar fuerza", + + "create.ponder.fluid_pipe_flow.header": "Transportar fluidos mediante tuberías de cobre", + "create.ponder.fluid_pipe_flow.text_1": "Las tuberías de fluidos pueden conectar dos o más fuentes y objetivos de fluidos", + "create.ponder.fluid_pipe_flow.text_2": "Utilizando una llave, se puede dar a un segmento de tubo recto una ventana", + "create.ponder.fluid_pipe_flow.text_3": "Las tuberías con ventanas no se conectarán a ningún otro segmento de tubería adyacente", + "create.ponder.fluid_pipe_flow.text_4": "Accionadas por bombas mecánicas, las tuberías pueden transportar fluidos", + "create.ponder.fluid_pipe_flow.text_5": "Al principio no se extrae ningún líquido", + "create.ponder.fluid_pipe_flow.text_6": "Una vez que el flujo los conecta, los puntos finales transfieren gradualmente su contenido", + "create.ponder.fluid_pipe_flow.text_7": "Así, los bloques de tuberías nunca contienen 'físicamente' ningún fluido", + + "create.ponder.fluid_pipe_interaction.header": "Drenaje y llenado de contenedores de fluidos", + "create.ponder.fluid_pipe_interaction.text_1": "Los puntos finales de una red de tuberías pueden interactuar con una variedad de bloques", + "create.ponder.fluid_pipe_interaction.text_2": "Cualquier bloque con capacidad para almacenar fluidos puede ser llenado o vaciado", + "create.ponder.fluid_pipe_interaction.text_3": "Los bloques de origen justo delante de un extremo abierto pueden ser recogidos...", + "create.ponder.fluid_pipe_interaction.text_4": "...mientras que el derrame en espacios vacíos puede crear fuentes de fluidos", + "create.ponder.fluid_pipe_interaction.text_5": "Las tuberías también pueden extraer fluidos de un puñado de otros bloques directamente", + + "create.ponder.fluid_tank_sizes.header": "Dimensiones de un depósito de fluidos", + "create.ponder.fluid_tank_sizes.text_1": "Los depósitos de fluidos pueden combinarse para aumentar la capacidad total", + "create.ponder.fluid_tank_sizes.text_2": "Su cuadrado base puede tener hasta 3 bloques de ancho...", + "create.ponder.fluid_tank_sizes.text_3": "...y crecen en altura en más de 30 capas adicionales", + "create.ponder.fluid_tank_sizes.text_4": "Con una llave inglesa, se puede cambiar la ventana de un tanque", + + "create.ponder.fluid_tank_storage.header": "Almacenar fluidos en depósitos de fluidos", + "create.ponder.fluid_tank_storage.text_1": "Los depósitos de fluidos pueden utilizarse para almacenar grandes cantidades de fluidos", + "create.ponder.fluid_tank_storage.text_2": "Las redes de tuberías pueden empujar y arrastrar fluidos desde cualquier lado", + "create.ponder.fluid_tank_storage.text_3": "El fluido contenido puede ser medido por un Comparador", + "create.ponder.fluid_tank_storage.text_4": "Sin embargo, en el Modo Supervivencia no se pueden añadir o tomar fluidos manualmente", + "create.ponder.fluid_tank_storage.text_5": "Puede utilizar cuencas, drenadores de objetos y tuberías para vaciar o llenar objetos que contengan líquido", + + "create.ponder.flywheel.header": "Generar fuerza rotacional con la rueda de inercia", + "create.ponder.flywheel.text_1": "Las ruedas de inercia son necesarias para generar fuerza rotacional con el motor de horno", + "create.ponder.flywheel.text_2": "La fuerza rotacional proporcionada tiene una capacidad de estrés muy grande", + "create.ponder.flywheel.text_3": "El uso de un alto horno duplicará la eficiencia del motor", + + "create.ponder.funnel_compat.header": "Compatibilidades con el embudo", + "create.ponder.funnel_compat.text_1": "Los embudos deberían interactuar bien con un puñado de otros componentes", + "create.ponder.funnel_compat.text_2": "Sierras verticales", + "create.ponder.funnel_compat.text_3": "Depósitos", + "create.ponder.funnel_compat.text_4": "Drenadores de objetos", + + "create.ponder.funnel_direction.header": "Dirección de la transferencia", + "create.ponder.funnel_direction.text_1": "Colocado normalmente, extrae objetos del inventario", + "create.ponder.funnel_direction.text_2": "Colocado mientras pulsa Mayús izdo, pone objetos en el inventario", + "create.ponder.funnel_direction.text_3": "Usando una llave inglesa, el embudo puede ser volteado después de su colocación", + "create.ponder.funnel_direction.text_4": "Se aplicarán las mismas reglas para la mayoría de las orientaciones", + "create.ponder.funnel_direction.text_5": "Los embudos en las correas extraerán/insertarán dependiendo de su dirección de movimiento", + + "create.ponder.funnel_intro.header": "Usar embudos", + "create.ponder.funnel_intro.text_1": "Los embudos son ideales para transferir objetos desde y hacia los inventarios", + + "create.ponder.funnel_redstone.header": "Embudos alimentados con redstone", + "create.ponder.funnel_redstone.text_1": "La energía de redstone impedirá la actuación de cualquier embudo", + + "create.ponder.funnel_transfer.header": "Transferencia directa", + "create.ponder.funnel_transfer.text_1": "Los embudos no pueden transferir nunca entre inventarios cerrados directamente", + "create.ponder.funnel_transfer.text_2": "Los ductos o los ductos inteligentes podrían ser más adecuados para estos fines", + "create.ponder.funnel_transfer.text_3": "Lo mismo se aplica para el movimiento horizontal. Una correa mecánica debería ayudar aquí", + + "create.ponder.furnace_engine.header": "Generar fuerza rotacional con el motor de horno", + "create.ponder.furnace_engine.text_1": "Los motores de horno generan fuerza rotacional mientras su horno adjunto está funcionando", + "create.ponder.furnace_engine.text_2": "La fuerza rotacional proporcionada tiene una capacidad de estrés muy grande", + "create.ponder.furnace_engine.text_3": "El uso de un alto horno duplicará la eficiencia del motor", + + "create.ponder.gantry_carriage.header": "Usar carros de grúa", + "create.ponder.gantry_carriage.text_1": "Los carros de grúa pueden montarse y deslizarse a lo largo de un eje de grúa", + "create.ponder.gantry_carriage.text_2": "Las instalaciones de grúa pueden mover bloques adjuntos", + + "create.ponder.gantry_cascaded.header": "Grúas en cascada", + "create.ponder.gantry_cascaded.text_1": "Los ejes de grúas se unen a un carro de grúa sin necesidad de pegamento", + "create.ponder.gantry_cascaded.text_2": "Lo mismo se aplica a los carros de grúa en los ejes de grúas desplazados", + "create.ponder.gantry_cascaded.text_3": "Así, un sistema de grúas puede estar en cascada para cubrir múltiples ejes de movimiento", + + "create.ponder.gantry_direction.header": "Dirección del movimiento de la grúa", + "create.ponder.gantry_direction.text_1": "Los ejes de grúa pueden tener orientaciones opuestas", + "create.ponder.gantry_direction.text_2": "La dirección de movimiento de los carros de grúa depende de la orientación de sus ejes", + "create.ponder.gantry_direction.text_3": "...así como de su sentido de rotación", + "create.ponder.gantry_direction.text_4": "Se aplican las mismas reglas para la rotación propagada", + + "create.ponder.gantry_redstone.header": "Propagación de la potencia de la grúa", + "create.ponder.gantry_redstone.text_1": "Los ejes de grúa alimentados con redstone dejan de mover sus carros", + "create.ponder.gantry_redstone.text_2": "En su lugar, su fuerza rotacional se transmite al eje de salida de los carros", + + "create.ponder.gantry_shaft.header": "Usar ejes de grúa", + "create.ponder.gantry_shaft.text_1": "Los ejes de grúa forman la base de una instalación de grúas. Los carros adjuntos se moverán a lo largo de ellos", + "create.ponder.gantry_shaft.text_2": "Las instalaciones de grúas pueden mover los bloques adjuntos", + + "create.ponder.gearbox.header": "Transmitir fuerza rotacional mediante cajas de transmisión", + "create.ponder.gearbox.text_1": "Saltar entre ejes de rotación puede volverse voluminoso rápidamente", + "create.ponder.gearbox.text_2": "Una caja de transmisión es el equivalente más compacto de esta configuración", + "create.ponder.gearbox.text_3": "Los ejes giran en las direcciones reflejadas...", + "create.ponder.gearbox.text_4": "...esto quiere decir que las conexiones rectas se invierten", + + "create.ponder.gearshift.header": "Controlar la dirección rotacional mediante una caja de cambios", + "create.ponder.gearshift.text_1": "La caja de cambios transmitirá la rotación en línea recta", + "create.ponder.gearshift.text_2": "Cuando es alimentada con redstone, invierte la transmisión", + + "create.ponder.hand_crank.header": "Generar fuerza rotacional mediante manivelas", + "create.ponder.hand_crank.text_1": "Las manivelas pueden ser utilizadas para aplicar fuerza rotacional manualmente", + "create.ponder.hand_crank.text_2": "Mantén pulsado clic derecho para girar en sentido antihorario", + "create.ponder.hand_crank.text_3": "Su velocidad de transmisión es relativamente alta", + "create.ponder.hand_crank.text_4": "Mayús izdo + clic derecho pulsado para girar en sentido horario", + + "create.ponder.hose_pulley.header": "Llenado y vaciado de fuentes mediante poleas de manguera", + "create.ponder.hose_pulley.text_1": "Las poleas para mangueras pueden utilizarse para llenar o drenar grandes masas de fluido", + "create.ponder.hose_pulley.text_2": "Con entrada cinética, se puede controlar la altura de la manguera de las poleas", + "create.ponder.hose_pulley.text_3": "La polea se retrae mientras la rotación de entrada se invierte", + "create.ponder.hose_pulley.text_4": "En el lado opuesto, se pueden conectar las tuberías", + "create.ponder.hose_pulley.text_5": "Las redes de tuberías conectadas pueden proporcionar fluido a la manguera...", + "create.ponder.hose_pulley.text_6": "...o tirar de él, vaciando la piscina en su lugar", + "create.ponder.hose_pulley.text_7": "La velocidad de llenado y vaciado de la polea depende totalmente del caudal de las redes de fluidos", + + "create.ponder.hose_pulley_infinite.header": "Llenado y drenaje pasivo de grandes masas de fluido", + "create.ponder.hose_pulley_infinite.text_1": "Al desplegar la polea de manguera en un océano lo suficientemente grande...", + "create.ponder.hose_pulley_infinite.text_2": "Proporcionará/eliminará fluidos sin afectar a la fuente", + "create.ponder.hose_pulley_infinite.text_3": "Las redes de tuberías pueden llevar fluidos de forma ilimitada desde/hacia dichas poleas", + + "create.ponder.hose_pulley_level.header": "Nivel de llenado y vaciado de las poleas de las mangueras", + "create.ponder.hose_pulley_level.text_1": "Mientras esté totalmente retraída, la polea de la manguera no puede funcionar", + "create.ponder.hose_pulley_level.text_2": "El drenaje va de arriba a abajo", + "create.ponder.hose_pulley_level.text_3": "El nivel de la superficie terminará justo debajo de donde termina la manguera", + "create.ponder.hose_pulley_level.text_4": "El llenado va de abajo a arriba", + "create.ponder.hose_pulley_level.text_5": "La piscina llena no crecerá más allá de la capa por encima del extremo de la manguera", + + "create.ponder.item_drain.header": "Vaciar contenedores de fluidos mediante drenajes de objetos", + "create.ponder.item_drain.text_1": "Los drenajes de objetos pueden extraer los fluidos de los objetos", + "create.ponder.item_drain.text_2": "Haz clic derecho para verter los fluidos de tu objeto retenido en él", + "create.ponder.item_drain.text_3": "Cuando los artículos se insertan desde el lado...", + "create.ponder.item_drain.text_4": "...ruedan a través, vaciando su líquido contenido", + "create.ponder.item_drain.text_5": "Las redes de tuberías pueden ahora extraer el fluido del buffer interno de los desagües", + + "create.ponder.large_cogwheel.header": "Transmitir fuerza rotacional mediante engranajes grandes", + "create.ponder.large_cogwheel.text_1": "Los engranajes grandes pueden conectarse entre sí en ángulo recto", + "create.ponder.large_cogwheel.text_2": "Ayudarán a transmitir la velocidad transportada a otros ejes de rotación.", + + "create.ponder.linear_chassis_attachment.header": "Fijar bloques mediante el chasis lineal", + "create.ponder.linear_chassis_attachment.text_1": "Las caras abiertas de un chasis lineal pueden hacerse pegajosas", + "create.ponder.linear_chassis_attachment.text_2": "Haz clic de nuevo para que se pegue el lado opuesto", + "create.ponder.linear_chassis_attachment.text_3": "Mayús izdo + clic derecho con la mano vacía para eliminar el pegamento", + "create.ponder.linear_chassis_attachment.text_4": "Las caras pegadas del chasis lineal fijarán una línea de bloques delante de él", + "create.ponder.linear_chassis_attachment.text_5": "Utilizando una llave inglesa, se puede especificar un rango preciso", + "create.ponder.linear_chassis_attachment.text_6": "Manteniendo pulsada la tecla [Ctrl] y usando la rueda central del ratón, se ajusta el rango de todos los bloques de chasis adjuntos", + "create.ponder.linear_chassis_attachment.text_7": "Para fijar los bloques a cualquier otro lado es necesario utilizar pegamento", + "create.ponder.linear_chassis_attachment.text_8": "Utilizando esta mecánica, las estructuras de cualquier forma pueden moverse como un artilugio", + + "create.ponder.linear_chassis_group.header": "Mover chasis lineales en grupos", + "create.ponder.linear_chassis_group.text_1": "Los chasis lineales se conectan a los bloques de chasis idénticos que se encuentren a su lado", + "create.ponder.linear_chassis_group.text_2": "Cuando uno es movido por un artilugio, los otros son arrastrados con él", + "create.ponder.linear_chassis_group.text_3": "Los chasis de otro tipo u orientados en otra dirección no se fijan", + + "create.ponder.mechanical_arm.header": "Configurar los brazos mecánicos", + "create.ponder.mechanical_arm.text_1": "A los brazos mecánicos hay que asignarles sus entradas y salidas antes de colocarlos", + "create.ponder.mechanical_arm.text_2": "Clic derecho en los inventarios mientras mantiene el brazo mecánico para asignarlos como objetivos", + "create.ponder.mechanical_arm.text_3": "Clic derecho denuevo para alternar entre la entrada (azul) y la salida (naranja)", + "create.ponder.mechanical_arm.text_4": "Clic izquierdo en los componentes para eliminar su selección", + "create.ponder.mechanical_arm.text_5": "Una vez colocado, el brazo mecánico apuntará a los bloques seleccionados previamente", + "create.ponder.mechanical_arm.text_6": "Pueden tener cualquier cantidad de entradas y salidas dentro de su rango", + "create.ponder.mechanical_arm.text_7": "Sin embargo, no se puede interactuar directamente con todos los tipos de inventario", + "create.ponder.mechanical_arm.text_8": "Los embudos y depósitos pueden ayudar a salvar esa distancia", + + "create.ponder.mechanical_arm_filtering.header": "Filtrar salidas del brazo mecánico", + "create.ponder.mechanical_arm_filtering.text_1": "Entradas", + "create.ponder.mechanical_arm_filtering.text_2": "Salidas", + "create.ponder.mechanical_arm_filtering.text_3": "A veces es conveniente restringir los objetivos del brazo mecánico haciendo coincidir un filtro", + "create.ponder.mechanical_arm_filtering.text_4": "Por sí mismos no ofrecen ninguna opción de filtrado", + "create.ponder.mechanical_arm_filtering.text_5": "Sin embargo, los embudos de latón como objetivos comunican su propio filtro al brazo", + "create.ponder.mechanical_arm_filtering.text_6": "El brazo mecánico es lo suficientemente inteligente como para no recoger objetos que no podría distribuir", + + "create.ponder.mechanical_arm_modes.header": "Modos de distribución del brazo mecánico", + "create.ponder.mechanical_arm_modes.text_1": "Entradas", + "create.ponder.mechanical_arm_modes.text_2": "Salidas", + "create.ponder.mechanical_arm_modes.text_3": "Siempre que un brazo tenga que elegir entre varias salidas válidas...", + "create.ponder.mechanical_arm_modes.text_4": "...funcionará según su configuración", + "create.ponder.mechanical_arm_modes.text_5": "Usando la rueda del ratón con una llave inglesa te permitirá configurarlo", + "create.ponder.mechanical_arm_modes.text_6": "El modo Round Robin simplemente hace un ciclo a través de todas las salidas que están disponibles", + "create.ponder.mechanical_arm_modes.text_7": "Si una salida no puede admitir más objetos, se omitirá", + "create.ponder.mechanical_arm_modes.text_8": "El modo Round Robin forzado nunca omitirá las salidas, sino que esperará a que estén libres", + "create.ponder.mechanical_arm_modes.text_9": "Preferir el primero da prioridad a las salidas seleccionadas anteriormente al configurar este brazo", + + "create.ponder.mechanical_arm_redstone.header": "Controlar brazos mecánicos con redstone", + "create.ponder.mechanical_arm_redstone.text_1": "Cuando se alimentan con redstone, los brazos mecánicos no se activan", + "create.ponder.mechanical_arm_redstone.text_2": "Antes de detenerse, terminará los ciclos iniciados", + "create.ponder.mechanical_arm_redstone.text_3": "Así, un pulso negativo puede utilizarse para activar exactamente un ciclo de activación", + + "create.ponder.mechanical_bearing.header": "Mover estructuras mediante el rodamiento mecánico", + "create.ponder.mechanical_bearing.text_1": "Los rodamientos mecánicos se fijan al bloque que tienen delante", + "create.ponder.mechanical_bearing.text_2": "Al recibir fuerza rotacional, la ensamblará en un artilugio giratorio", + + "create.ponder.mechanical_crafter.header": "Configurar ensambladores mecánicos", + "create.ponder.mechanical_crafter.text_1": "Se puede utilizar una serie de ensambladores mecánicos para automatizar cualquier receta de elaboración.", + "create.ponder.mechanical_crafter.text_2": "Usando una llave inglesa, puedes establecer los caminos de los ensambladores ", + "create.ponder.mechanical_crafter.text_3": "Para que la configuración sea válida, todos los caminos tienen que converger en una salida, en cualquiera de los lados", + "create.ponder.mechanical_crafter.text_4": "Los puertos de salida de objetos se colocarán en un inventario a la salida", + "create.ponder.mechanical_crafter.text_5": "Los ensambladores mecánicos requieren fuerza rotacional para funcionar", + "create.ponder.mechanical_crafter.text_6": "Haga clic derecho en la parte delantera para insertar objetos manualmente", + "create.ponder.mechanical_crafter.text_7": "Una vez que cada ranura de una ruta contenga un objeto, comenzará el proceso de elaboración", + "create.ponder.mechanical_crafter.text_8": "Para las recetas que no ocupen totalmente la instalación del ensamblador, se puede forzar el arranque utilizando un pulso de redstone", + + "create.ponder.mechanical_crafter_connect.header": "Conectar inventarios a los ensambladores mecánicos", + "create.ponder.mechanical_crafter_connect.text_1": "Los objetos pueden ser insertados a los ensambladores mecánicos automáticamente", + "create.ponder.mechanical_crafter_connect.text_2": "Utilizando la llave inglesa a sus espaldas, las entradas pueden combinarse", + "create.ponder.mechanical_crafter_connect.text_3": "Ahora se puede acceder a todos los ensambladores mecánicos conectados por la misma ubicación de entrada", + + "create.ponder.mechanical_crafter_covers.header": "Cubrir las ranuras de los ensambladores mecánicos", + "create.ponder.mechanical_crafter_covers.text_1": "Algunas recetas requerirán ensambladores mecánicos adicionales para salvar las brechas en el camino", + "create.ponder.mechanical_crafter_covers.text_2": "Utilizando las tapas de ranuras del ensamblador mecánico, pueden actuar como una ranura vacía a su disposición", + "create.ponder.mechanical_crafter_covers.text_3": "Las entradas compartidas creadas con la llave inglesa en la parte posterior también pueden llegar a través de los ensambladores revestidos", + + "create.ponder.mechanical_drill.header": "Romper bloques con el taladro mecánico", + "create.ponder.mechanical_drill.text_1": "Cuando se le aplica fuerza rotacional, el taladro mecánico rompe los bloques que tiene delante.", + "create.ponder.mechanical_drill.text_2": "Su velocidad de trabajo depende de la fuerza rotacional suministrada", + + "create.ponder.mechanical_drill_contraption.header": "Usar taladros mecánicos en artilugios", + "create.ponder.mechanical_drill_contraption.text_1": "Siempre que los taladros mecánicos se muevan como parte de un artilugio animado...", + "create.ponder.mechanical_drill_contraption.text_2": "...romperán los bloques por los que artilugio los hace pasar", + + "create.ponder.mechanical_harvester.header": "Utilizar cosechadoras mecánicas en artilugios", + "create.ponder.mechanical_harvester.text_1": "Siempre que las cosechadoras mecánicas se muevan como parte de un artilugio animado...", + "create.ponder.mechanical_harvester.text_2": "...recogerán y repondrán los cultivos maduros en su camino", + + "create.ponder.mechanical_mixer.header": "Procesar objetos con la mezcladora mecánica", + "create.ponder.mechanical_mixer.text_1": "Con una mezcladora mecánica y una cuenca, se pueden automatizar algunas recetas", + "create.ponder.mechanical_mixer.text_2": "Las recetas disponibles incluyen cualquier receta de elaboración amorfa, además de un par de recetas adicionales", + "create.ponder.mechanical_mixer.text_3": "Algunas de esas recetas pueden requerir el calor de un quemador de blaze", + "create.ponder.mechanical_mixer.text_4": "La ranura para filtros se puede utilizar en caso de que dos recetas sean conflictivas.", + + "create.ponder.mechanical_piston.header": "Mover estructuras mediante pistones mecánicos", + "create.ponder.mechanical_piston.text_1": "Los pistones mecánicos pueden mover los bloques que tienen delante", + "create.ponder.mechanical_piston.text_2": "La velocidad y la dirección del movimiento dependen de la fuerza rotacional suministrada", + "create.ponder.mechanical_piston.text_3": "Los pistones mecánicos pegajosos pueden tirar de los bloques unidos hacia atrás", + + "create.ponder.mechanical_piston_modes.header": "Modos de movimiento del pistón mecánico", + "create.ponder.mechanical_piston_modes.text_1": "Cuando los pistones mecánicos dejan de moverse, la estructura movida vuelve a los bloques", + "create.ponder.mechanical_piston_modes.text_2": "Puede configurarse para que no vuelva nunca a los bloques sólidos, o sólo en la ubicación en la que comenzó", + + "create.ponder.mechanical_plough.header": "Utilizar arados mecánicos en los artilugios", + "create.ponder.mechanical_plough.text_1": "Cuando los arados mecánicos se mueven como parte de un artilugio animado...", + "create.ponder.mechanical_plough.text_2": "...romperán los bloques sin un hitbox de colisión sólido", + "create.ponder.mechanical_plough.text_3": "Además, pueden crear tierras de cultivo", + "create.ponder.mechanical_plough.text_4": "...también pueden lanzar entidades sin dañarlas", + + "create.ponder.mechanical_press.header": "Procesar objetos con la prensa mecánica", + "create.ponder.mechanical_press.text_1": "La prensa mecánica puede procesar los objetos proporcionados por debajo de ella", + "create.ponder.mechanical_press.text_2": "Los objetos de entrada pueden soltarse o colocarse en un depósito bajo la prensa", + "create.ponder.mechanical_press.text_3": "Cuando los objetos se proporcionan en una 'cinta'...", + "create.ponder.mechanical_press.text_4": "...la prensa mecánica los retendrá y procesará automáticamente", + + "create.ponder.mechanical_press_compacting.header": "Compactar objetos con la prensa mecánica", + "create.ponder.mechanical_press_compacting.text_1": "Al presionar los objetos que se encuentran en una cuenca, éstos se compactan.", + "create.ponder.mechanical_press_compacting.text_2": "La compactación incluye cualquier receta de elaboración de 2x2 o 3x3 rellena, además de un par extra", + "create.ponder.mechanical_press_compacting.text_3": "Algunas de esas recetas pueden requerir el calor de un quemador de blaze", + "create.ponder.mechanical_press_compacting.text_4": "La ranura para filtros se puede utilizar en caso de que dos recetas sean conflictivas.", + + "create.ponder.mechanical_pump_flow.header": "Transportar fluidos mediante bombas mecánicas", + "create.ponder.mechanical_pump_flow.text_1": "Las bombas mecánicas gobiernan el flujo de sus redes de tuberías anexas", + "create.ponder.mechanical_pump_flow.text_2": "Cuando están alimentadas, su flecha indica la dirección del flujo", + "create.ponder.mechanical_pump_flow.text_3": "La red de atrás está ahora tirando de fluidos...", + "create.ponder.mechanical_pump_flow.text_4": "...mientras la red de enfrente la transfiere hacia el exterior", + "create.ponder.mechanical_pump_flow.text_5": "Al invertir la rotación de la entrada se invierte el sentido del flujo", + "create.ponder.mechanical_pump_flow.text_6": "Utilice una llave inglesa para invertir la orientación de las bombas manualmente", + + "create.ponder.mechanical_pump_speed.header": "Rendimiento de las bombas mecánicas", + "create.ponder.mechanical_pump_speed.text_1": "Independientemente de la velocidad, las bombas mecánicas afectan a las tuberías conectadas hasta 16 bloques de distancia", + "create.ponder.mechanical_pump_speed.text_2": "Acelerar la rotación de entrada cambia la velocidad de propagación del flujo...", + "create.ponder.mechanical_pump_speed.text_3": "...así como la rapidez con la que se transfieren los fluidos", + "create.ponder.mechanical_pump_speed.text_4": "Las bombas pueden combinar sus rendimientos en redes de tuberías compartidas", + "create.ponder.mechanical_pump_speed.text_5": "Alternar su orientación puede ayudar a alinear sus direcciones de flujo", + + "create.ponder.mechanical_saw_breaker.header": "Cortar árboles con la sierra mecánica", + "create.ponder.mechanical_saw_breaker.text_1": "Cuando se le da una fuerza rotacional, la sierra mecánica cortará los árboles que estén directamente frente a ella", + "create.ponder.mechanical_saw_breaker.text_2": "Para poder cortar el árbol por completo, la sierra tiene que romper el último bloque que lo une al suelo", + + "create.ponder.mechanical_saw_contraption.header": "Utilizar sierras mecánicas en artilugios", + "create.ponder.mechanical_saw_contraption.text_1": "Cuando las sierras mecánicas se mueven como parte de un artilugio animado...", + "create.ponder.mechanical_saw_contraption.text_2": "...cortarán cualquier árbol con el que el artilugio se tope", + + "create.ponder.mechanical_saw_processing.header": "Procesar objetos en la sierra mecánica", + "create.ponder.mechanical_saw_processing.text_1": "Las sierras mecánicas orientadas hacia arriba pueden procesar una variedad de objetos", + "create.ponder.mechanical_saw_processing.text_2": "El objeto procesado siempre se mueve en contra de la fuerza rotacional de la sierra", + "create.ponder.mechanical_saw_processing.text_3": "Las sierras mecánicas pueden trabajar en línea con las correas mecánicas", + "create.ponder.mechanical_saw_processing.text_4": "Cuando un ingrediente tiene varios resultados posibles, la ranura para filtros puede especificarlo", + "create.ponder.mechanical_saw_processing.text_5": "Sin filtro, al contrario, la sierra mecánica pasaría por todos los resultados", + + "create.ponder.millstone.header": "Procesar objetos en la piedra de molino", + "create.ponder.millstone.text_1": "Las piedras de molino procesan los objetos mediante la molienda", + "create.ponder.millstone.text_2": "Se pueden accionar lateralmente mediante engranajes...", + "create.ponder.millstone.text_3": "... y tirar o insertar objetos en la parte superior", + "create.ponder.millstone.text_4": "Después de un tiempo, el resultado se puede obtener usando el clic derecho del ratón", + "create.ponder.millstone.text_5": "Las salidas también pueden extraerse mediante la automatización", + + "create.ponder.nixie_tube.header": "Usar los tubos Nixie", + "create.ponder.nixie_tube.text_1": "Cuando son alimentados con redstone, los tubos nixie mostrarán la fuerza de las señales de redstone", + "create.ponder.nixie_tube.text_2": "Con las etiquetas editadas en un yunque, pueden mostar un texto personalizado", + "create.ponder.nixie_tube.text_3": "Haga clic derecho con un tinte para cambiar su color de visualización", + + "create.ponder.piston_pole.header": "Pértigas de extensión de pistones", + "create.ponder.piston_pole.text_1": "Sin las pértigas de extensión unidas, un pistón mecánico no puede moverse", + "create.ponder.piston_pole.text_2": "La longitud de la pértiga añadida en su parte posterior determina el rango de alcance", + + "create.ponder.portable_fluid_interface.header": "Interfaz de fluidos portátil", + "create.ponder.portable_fluid_interface.text_1": "No se puede acceder a los depósitos de fluidos de los artilugios en movimiento por ninguna tubería", + "create.ponder.portable_fluid_interface.text_2": "Este componente puede interactuar con los depósitos de fluidos sin necesidad de detener el artilugio", + "create.ponder.portable_fluid_interface.text_3": "Coloca una segunda con un espacio de 1 o 2 bloques entre ellas", + "create.ponder.portable_fluid_interface.text_4": "Cada vez que pasen por delante de la otra, entablarán una conexión", + "create.ponder.portable_fluid_interface.text_5": "Mientras esté activada, la interfaz estacionaria representará TODOS los tanques del artilugio", + "create.ponder.portable_fluid_interface.text_6": "Ahora se puede introducir el fluido...", + "create.ponder.portable_fluid_interface.text_7": "...o extraerlo del artilugio", + "create.ponder.portable_fluid_interface.text_8": "Cuando no se intercambien contenidos durante un tiempo, el artilugio seguirá su camino", + + "create.ponder.portable_storage_interface.header": "Interfaz de almacenamiento portátil", + "create.ponder.portable_storage_interface.text_1": "Los jugadores no pueden acceder a los inventarios de los artilugios en movimiento.", + "create.ponder.portable_storage_interface.text_2": "Este componente puede interactuar con el almacenamiento sin necesidad de detener el artilugio.", + "create.ponder.portable_storage_interface.text_3": "Coloca una segunda unidad con un espacio de 1 o 2 bloques entre ellas", + "create.ponder.portable_storage_interface.text_4": "Cada vez que pasen por delante del otro, entablarán una conexión", + "create.ponder.portable_storage_interface.text_5": "Mientras esté conectada, la interfaz fija representará TODOS los inventarios del artilugio", + "create.ponder.portable_storage_interface.text_6": "Ahora pueden insertarse objetos...", + "create.ponder.portable_storage_interface.text_7": "...o extraerse", + "create.ponder.portable_storage_interface.text_8": "Cuando no se hayan intercambiado objetos durante un tiempo, el artilugio seguirá su camino", + + "create.ponder.portable_storage_interface_redstone.header": "Interfaz de almacenamiento portátil controlada por redstone", + "create.ponder.portable_storage_interface_redstone.text_1": "La energía de redstone impedirá que las interfaces de almacenamiento portátil se conecten", + + "create.ponder.powered_latch.header": "Controlar señales mediante la palanca motorizada", + "create.ponder.powered_latch.text_1": "Las palancas motorizadas son palancas controlables por redstone", + "create.ponder.powered_latch.text_2": "Las señales en la parte trasera la encienden", + "create.ponder.powered_latch.text_3": "Las señales sobre un lateral la vuelven a apagar", + "create.ponder.powered_latch.text_4": "Las palancas motorizadas también se pueden accionar manualmente", + + "create.ponder.powered_toggle_latch.header": "Controlar señales mediante la palanca de cierre motorizada", + "create.ponder.powered_toggle_latch.text_1": "Las palancas de cierre motorizadas son palancas controlables por redstone", + "create.ponder.powered_toggle_latch.text_2": "Las señales en la parte trasera cambiarán su estado...", + "create.ponder.powered_toggle_latch.text_3": "...encender y apagar", + "create.ponder.powered_toggle_latch.text_4": "Las palancas de cierre motorizadas también se pueden accionar manualmente", + + "create.ponder.pulse_repeater.header": "Controlar señales mediante repetidores de pulsos", + "create.ponder.pulse_repeater.text_1": "Los repetidores de pulsos acortan cualquier señal de redstone a un solo pulso", + + "create.ponder.radial_chassis.header": "Fijar bloques mediante chasis radiales", + "create.ponder.radial_chassis.text_1": "Los chasis radiales se conectan a bloques de chasis idénticos en una fila", + "create.ponder.radial_chassis.text_2": "Cuando uno es movido por un artilugio, los otros son arrastrados con él", + "create.ponder.radial_chassis.text_3": "Las caras laterales de un chasis radial pueden hacerse adhesivas", + "create.ponder.radial_chassis.text_4": "Haga clic de nuevo para que todos los demás lados sean pegajosos", + "create.ponder.radial_chassis.text_5": "Mayús izdo + clic derecho con la mano vacía para eliminar el pegamento", + "create.ponder.radial_chassis.text_6": "Cada vez que un bloque está junto a una cara pegajosa...", + "create.ponder.radial_chassis.text_7": "...adjuntará todos los bloques alcanzables dentro de un radio en esa capa", + "create.ponder.radial_chassis.text_8": "Con una llave inglesa y usando la rueda de desplazamiento del ratón se puede especificar un radio preciso", + "create.ponder.radial_chassis.text_9": "Los bloques no alcanzables por ninguna cara adhesiva no se fijarán", + + "create.ponder.redstone_contact.header": "Contactos de redstone", + "create.ponder.redstone_contact.text_1": "Los contactos de redstone enfrentados emitirán una señal de redstone", + "create.ponder.redstone_contact.text_2": "Esto sigue siendo válido cuando uno de ellos forma parte de un artilugio en movimiento", + + "create.ponder.redstone_link.header": "Usar los enlaces de redstone", + "create.ponder.redstone_link.text_1": "Los enlaces de redstone pueden transmitir señales redstone de forma inalámbrica", + "create.ponder.redstone_link.text_2": "Mayús izdo + clic derecho para cambiar el modo de recepción", + "create.ponder.redstone_link.text_3": "Un simple clic derecho con una llave inglesa puede hacer lo mismo", + "create.ponder.redstone_link.text_4": "Los receptores emiten la potencia de redstone de los transmisores en 128 bloques", + "create.ponder.redstone_link.text_5": "Colocando objetos en las dos ranuras puede especificar una frecuencia", + "create.ponder.redstone_link.text_6": "Sólo se comunicarán los enlaces con frecuencias coincidentes", + + "create.ponder.rope_pulley.header": "Mover estructuras con poleas de cuerda", + "create.ponder.rope_pulley.text_1": "Las poleas de cuerda pueden mover los bloques verticalmente cuando se les aplica una fuerza rotacional", + "create.ponder.rope_pulley.text_2": "La dirección y la velocidad del movimiento dependen de la fuerza rotacional suministrada", + + "create.ponder.rope_pulley_attachment.header": "Mover poleas como parte de un artilugio", + "create.ponder.rope_pulley_attachment.text_1": "Siempre que las poleas de cuerda sean movidas por un artilugio...", + "create.ponder.rope_pulley_attachment.text_2": "...su estructura adjunta será arrastrada con ella", + "create.ponder.rope_pulley_attachment.text_3": "Tenga en cuenta que las poleas de cuerda sólo se mueven cuando están paradas", + + "create.ponder.rope_pulley_modes.header": "Modos de movimiento de la polea de cuerda", + "create.ponder.rope_pulley_modes.text_1": "Cuando las poleas de cuerda dejan de moverse, la estructura movida vuelve a los bloques", + "create.ponder.rope_pulley_modes.text_2": "Puede configurarse para que no vuelva nunca a los bloques sólidos, o sólo en la ubicación en la que comenzó", + + "create.ponder.rotation_speed_controller.header": "Usar el controlador de velocidad rotacional", + "create.ponder.rotation_speed_controller.text_1": "Los controladores de velocidad rotacional transmiten la rotación de su eje a un engranaje grande situado encima.", + "create.ponder.rotation_speed_controller.text_2": "Utilizando la rueda de desplazamiento del ratón, puede configurarse la velocidad rotacional", + + "create.ponder.sail.header": "Montar molinos de viento usando velas", + "create.ponder.sail.text_1": "Las velas son bloques muy útiles para crear molinos de viento", + "create.ponder.sail.text_2": "Se fijarán a los bloques y entre sí sin necesidad de pegamento o bloques de chasis", + "create.ponder.sail.text_3": "Clic derecho con un tinte para pintarlas", + "create.ponder.sail.text_4": "Clic derecho con una tijera para volver a convertirlas en marcos", + + "create.ponder.sail_frame.header": "Montar molinos de viento con marcos de vela", + "create.ponder.sail_frame.text_1": "Los marcos de vela son prácticos bloques para crear molinos de viento", + "create.ponder.sail_frame.text_2": "Se fijarán a los bloques y entre sí sin necesidad de pegamento o bloques de chasis", + + "create.ponder.sequenced_gearshift.header": "Controlar la velocidad de rotación mediante la caja de cambios secuenciales", + "create.ponder.sequenced_gearshift.text_1": "La caja de cambios secuencial retransmite la rotación siguiendo una lista cronometrada de instrucciones", + "create.ponder.sequenced_gearshift.text_2": "Haga clic con el botón derecho para abrir la interfaz de configuración", + "create.ponder.sequenced_gearshift.text_3": "Al recibir una señal de redstone, comenzará a ejecutar su secuencia configurada", + "create.ponder.sequenced_gearshift.text_4": "Una vez terminado, espera la siguiente señal de redstone y vuelve a empezar", + "create.ponder.sequenced_gearshift.text_5": "Se puede utilizar un comparador de redstone para leer el progreso actual", + + "create.ponder.shaft.header": "Transmitir fuerza rotacional mediante ejes", + "create.ponder.shaft.text_1": "Los ejes transmiten la rotación en línea recta.", + + "create.ponder.shaft_casing.header": "Ejes revestidos", + "create.ponder.shaft_casing.text_1": "Puedes utilizar el revestidor de latón o de andesita para decorar tus ejes", + + "create.ponder.smart_chute.header": "Filtrar objetos mediante ductos inteligentes", + "create.ponder.smart_chute.text_1": "Los ductos inteligentes son ductos verticales con control adicional", + "create.ponder.smart_chute.text_2": "Los objetos en la ranura para filtros especifican lo que pueden extraer y transferir exactamente", + "create.ponder.smart_chute.text_3": "Usa la rueda del ratón para especificar el tamaño de la pila extraída", + "create.ponder.smart_chute.text_4": "La energía de redstone impedirá que funcionen.", + + "create.ponder.smart_pipe.header": "Controlar el flujo de fluidos mediante tuberías inteligentes", + "create.ponder.smart_pipe.text_1": "Las tuberías inteligentes pueden ayudar a controlar los flujos por tipo de fluido", + "create.ponder.smart_pipe.text_2": "Cuando se colocan directamente en la fuente, pueden especificar el tipo de fluido a extraer", + "create.ponder.smart_pipe.text_3": "Simplemente haga clic derecho en su ranura de filtro con cualquier elemento que contenga el fluido deseado", + "create.ponder.smart_pipe.text_4": "Cuando se colocan debajo de una red de tuberías, las tuberías inteligentes sólo dejan que los fluidos coincidentes continúen", + + "create.ponder.speedometer.header": "Controlar la información cinética mediante el velocímetro", + "create.ponder.speedometer.text_1": "El velocímetro muestra la velocidad actual de los componentes conectados", + "create.ponder.speedometer.text_2": "Cuando se usan las gafas del constructor, el jugador puede obtener información más detallada del medidor", + "create.ponder.speedometer.text_3": "Los comparadores pueden emitir señales analógicas de redstone en relación con las mediciones del velocímetro", + + "create.ponder.spout_filling.header": "Llenar objetos con un surtidor", + "create.ponder.spout_filling.text_1": "El surtidor puede llenar los elementos de retención de fluidos que se encuentran debajo de él", + "create.ponder.spout_filling.text_2": "No se puede acceder manualmente al contenido de un surtidor", + "create.ponder.spout_filling.text_3": "En su lugar, se pueden utilizar tuberías para suministrarle fluidos", + "create.ponder.spout_filling.text_4": "Los objetos de entrada pueden colocarse en un depósito bajo el surtidor", + "create.ponder.spout_filling.text_5": "Cuando los artículos se proporcionan en una cinta...", + "create.ponder.spout_filling.text_6": "El surtidor los retendrá y procesará automáticamente", + + "create.ponder.stabilized_bearings.header": "Estabilizar artilugios", + "create.ponder.stabilized_bearings.text_1": "Siempre que los rodamientos mecánicos formen parte de una estructura móvil...", + "create.ponder.stabilized_bearings.text_2": "...intentarán mantenerse derechos", + "create.ponder.stabilized_bearings.text_3": "Una vez más, el rodamiento se unirá al bloque de enfrente", + "create.ponder.stabilized_bearings.text_4": "Como resultado, todo el sub-artilugio se mantendrá en posición vertical", + + "create.ponder.sticker.header": "Fijar bloques con stickers", + "create.ponder.sticker.text_1": "Los stickers son ideales para la fijación de bloques controlados por redstone", + "create.ponder.sticker.text_2": "Al recibir una señal, cambiarán su estado", + "create.ponder.sticker.text_3": "Si ahora se mueve en un artilugio, el bloque se moverá con él", + "create.ponder.sticker.text_4": "Si se vuelve a activar, el bloque dejará de estar fijado", + + "create.ponder.stressometer.header": "Supervisar la información cinética con el estresómetro", + "create.ponder.stressometer.text_1": "El estresómetro muestra la capacidad de estrés actual de la red cinética conectada", + "create.ponder.stressometer.text_2": "Cuando se usan las gafas del constructor, el jugador puede obtener información más detallada del medidor", + "create.ponder.stressometer.text_3": "Los comparadores pueden emitir señales analógicas de redstone en relación con las mediciones del estresómetro", + + "create.ponder.super_glue.header": "Fijar bloques con pegamento", + "create.ponder.super_glue.text_1": "Se puede utilizar pegamento entre dos bloques cualquiera", + "create.ponder.super_glue.text_2": "Los bloques fijados se moverán juntos cuando se ensamblen en un artilugio", + "create.ponder.super_glue.text_3": "Cada vez que el pegamento es sostenido en la mano...", + "create.ponder.super_glue.text_4": "...los bloques añadidos se pegarán a la cara en la que fueron colocados automáticamente", + "create.ponder.super_glue.text_5": "El pegamento se puede quitar con un clic izquierdo", + + "create.ponder.valve_handle.header": "Generar fuerza rotacional mediante asas de válvula", + "create.ponder.valve_handle.text_1": "Los jugadores pueden utilizar las asas de válvulas para aplicar fuerza rotacional manualmente", + "create.ponder.valve_handle.text_2": "Mantén pulsado el clic derecho para rotar en sentido contrario a las agujas del reloj", + "create.ponder.valve_handle.text_3": "Su velocidad de transmisión es lenta y precisa", + "create.ponder.valve_handle.text_4": "Mayús izdo + clic derecho para rotar en el sentido de las agujas del reloj", + "create.ponder.valve_handle.text_5": "Las asas de las válvulas pueden teñirse con fines estéticos", + + "create.ponder.valve_pipe.header": "Controlar el flujo de fluidos mediante válvulas", + "create.ponder.valve_pipe.text_1": "Las tuberías con válvulas ayudan a controlar los fluidos que se propagan por las redes de tuberías", + "create.ponder.valve_pipe.text_2": "Su entrada en el eje controla si el fluido puede pasar por", + "create.ponder.valve_pipe.text_3": "Dada la fuerza de rotación en la dirección de apertura, la válvula se abrirá", + "create.ponder.valve_pipe.text_4": "Se puede volver a cerrar invirtiendo el giro de entrada", + + "create.ponder.water_wheel.header": "Generar fuerza rotacional mediante ruedas hidráulicas", + "create.ponder.water_wheel.text_1": "Las ruedas hidráulicas extraen la fuerza de las corrientes de agua adyacentes", + "create.ponder.water_wheel.text_2": "Cuantas más caras se alimenten, más rápido girará", + "create.ponder.water_wheel.text_3": "Las paletas de las ruedas deben estar orientadas en contra del flujo", + "create.ponder.water_wheel.text_4": "Orientadas hacia el lado contrario, no serán tan eficaces", + + "create.ponder.weighted_ejector.header": "Usar eyectores de peso", + "create.ponder.weighted_ejector.text_1": "Mayús izdo + clic derecho sosteniendo un eyector de peso para seleccionar la ubicación de destino", + "create.ponder.weighted_ejector.text_10": "Ahora estára limitado a este tamaño de pila, y sólo se activara cuando su pila retenida alcance esta cantidad", + "create.ponder.weighted_ejector.text_11": "Otras entidades activarán el eyector al pisarlos", + "create.ponder.weighted_ejector.text_2": "El eyector colocado lanzará ahora los objetos al lugar marcado", + "create.ponder.weighted_ejector.text_3": "Un objetivo válido puede estar a cualquier altura o distancia dentro del alcance", + "create.ponder.weighted_ejector.text_4": "Sin embargo, no pueden estar a un costado", + "create.ponder.weighted_ejector.text_5": "Si no se ha seleccionado ningún objetivo válido, simplemente se dirigirá al bloque que se encuentra justo delante", + "create.ponder.weighted_ejector.text_6": "Suministrale fuerza rotacional para cargarlo", + "create.ponder.weighted_ejector.text_7": "Los objetos colocados en el eyector hacen que se dispare", + "create.ponder.weighted_ejector.text_8": "Si se dirigen a un inventario, el eyector esperará hasta que haya espacio", + "create.ponder.weighted_ejector.text_9": "Con la llave inglesa se puede configurar el tamaño de pila requerido", + + "create.ponder.weighted_ejector_redstone.header": "Controlar los eyectores de peso con redstone", + "create.ponder.weighted_ejector_redstone.text_1": "Cuando se alimentan con redstone, los eyectores no se activan", + "create.ponder.weighted_ejector_redstone.text_2": "Además, los observadores de contenido pueden detectar cuando los eyectores se activan", + + "create.ponder.weighted_ejector_tunnel.header": "Dividir pilas de objetos mediante eyectores de peso", + "create.ponder.weighted_ejector_tunnel.text_1": "En combinación con los túneles de latón, los eyectores de peso pueden dividir las pilas de objetos en cantidades específicas", + "create.ponder.weighted_ejector_tunnel.text_2": "En primer lugar, configure el túnel de latón en 'Preferir lo más cercano', para dar prioridad a su salida lateral", + "create.ponder.weighted_ejector_tunnel.text_3": "El tamaño de la pila fijado en el eyector determina ahora la cantidad que se va a dividir", + "create.ponder.weighted_ejector_tunnel.text_4": "Mientras una nueva pila del tamaño configurado se expulse por la salida lateral...", + "create.ponder.weighted_ejector_tunnel.text_5": "...el resto seguirá su camino", + + "create.ponder.windmill_source.header": "Generar fuerza rotacional mediante rodamientos del molino de viento", + "create.ponder.windmill_source.text_1": "Los rodamientos del molino de viento se fijan al bloque que tienen delante", + "create.ponder.windmill_source.text_2": "Si se unen suficientes bloques tipo vela al bloque, éste puede actuar como un molino de viento", + "create.ponder.windmill_source.text_3": "Activado con un clic derecho, el rodamiento del molino de viento comenzará a proporcionar fuerza rotacional", + "create.ponder.windmill_source.text_4": "La cantidad de bloques de vela determina su velocidad de rotación", + "create.ponder.windmill_source.text_5": "Utiliza una llave inglesa para configurar su sentido de rotación", + "create.ponder.windmill_source.text_6": "Haga clic derecho sobre el rodamiento del molino en cualquier momento para detener y editar la estructura de nuevo", + + "create.ponder.windmill_structure.header": "Artilugios para molinos de viento", + "create.ponder.windmill_structure.text_1": "Cualquier estructura puede contar como un molino de viento válido, siempre que contenga al menos 8 bloques tipo vela.", + + "_": "Thank you for translating Create!" + +} diff --git a/src/main/resources/assets/create/lang/es_cl.json b/src/main/resources/assets/create/lang/es_cl.json new file mode 100644 index 000000000..d20b0eb8b --- /dev/null +++ b/src/main/resources/assets/create/lang/es_cl.json @@ -0,0 +1,2305 @@ +{ + + "_": "->------------------------] Game Elements [------------------------<-", + + "block.create.acacia_window": "Ventana de acacia", + "block.create.acacia_window_pane": "Panel de ventana de acacia", + "block.create.adjustable_chain_gearshift": "Cadena de transmisión ajustable", + "block.create.adjustable_crate": "Caja ajustable", + "block.create.adjustable_pulse_repeater": "Repetidor de pulso ajustable", + "block.create.adjustable_repeater": "Repetidor ajustable", + "block.create.analog_lever": "Palanca analógica", + "block.create.andesite_belt_funnel": "Embudo de cinta de andesita", + "block.create.andesite_bricks": "Ladrillos de andesita", + "block.create.andesite_bricks_slab": "Losa de ladrillos de andesita", + "block.create.andesite_bricks_stairs": "Escaleras de ladrillos de andesita", + "block.create.andesite_bricks_wall": "Muro de ladrillos de andesita", + "block.create.andesite_casing": "Revestidor de andesita", + "block.create.andesite_cobblestone": "Adoquín de andesita", + "block.create.andesite_cobblestone_slab": "Losa de adoquín de andesita", + "block.create.andesite_cobblestone_stairs": "Escaleras de adoquines de andesita", + "block.create.andesite_cobblestone_wall": "Muro de adoquines de andesita", + "block.create.andesite_encased_shaft": "Eje revestido de andesita", + "block.create.andesite_funnel": "Embudo de andesita", + "block.create.andesite_pillar": "Poste de andesita", + "block.create.andesite_tunnel": "Túnel de Andesita", + "block.create.basin": "Cuenca", + "block.create.belt": "Cinta", + "block.create.birch_window": "Ventana de abedul", + "block.create.birch_window_pane": "Panel de ventana de abedul", + "block.create.black_nixie_tube": "Tubo Nixie negro", + "block.create.black_sail": "Vela negra", + "block.create.black_seat": "Asiento negro", + "block.create.black_valve_handle": "Asa de válvula negra", + "block.create.blaze_burner": "Quemador de Blaze", + "block.create.blue_nixie_tube": "Tubo Nixie azul", + "block.create.blue_sail": "Vela azul", + "block.create.blue_seat": "Asiento azul", + "block.create.blue_valve_handle": "Asa de válvula azul", + "block.create.brass_belt_funnel": "Embudo de cinta de latón", + "block.create.brass_block": "Bloque de latón", + "block.create.brass_casing": "Revestidor de latón", + "block.create.brass_encased_shaft": "Eje revestido de latón", + "block.create.brass_funnel": "Embudo de latón", + "block.create.brass_tunnel": "Túnel de latón", + "block.create.brown_nixie_tube": "Tubo Nixie marrón", + "block.create.brown_sail": "Vela marrón", + "block.create.brown_seat": "Asiento marrón", + "block.create.brown_valve_handle": "Asa de válvula marrón", + "block.create.cart_assembler": "Ensamblador de vagonetas", + "block.create.chiseled_dark_scoria": "Escoria oscura cincelada", + "block.create.chiseled_dolomite": "Dolomita cincelada", + "block.create.chiseled_gabbro": "Gabro cincelado", + "block.create.chiseled_limestone": "Caliza cincelada", + "block.create.chiseled_scoria": "Escoria cincelada", + "block.create.chiseled_weathered_limestone": "Piedra caliza erosionada cincelada", + "block.create.chocolate": "Chocolate", + "block.create.chute": "Ducto", + "block.create.clockwork_bearing": "Rodamiento tipo reloj", + "block.create.clutch": "Embrague", + "block.create.cogwheel": "Engranaje pequeño", + "block.create.content_observer": "Observador de contenidos", + "block.create.controller_rail": "Raíl de control", + "block.create.copper_backtank": "Depósito trasero de cobre", + "block.create.copper_block": "Bloque de cobre", + "block.create.copper_casing": "Revestidor de caliza", + "block.create.copper_ore": "Mena de cobre", + "block.create.copper_shingles": "Bloque de tejas de cobre", + "block.create.copper_tiles": "Bloque de baldosas de cobre", + "block.create.copper_valve_handle": "Asa de válvula de cobre", + "block.create.creative_crate": "Caja creativa", + "block.create.creative_fluid_tank": "Tanque de fluidos creativo", + "block.create.creative_motor": "Motor creativo", + "block.create.crimson_window": "Ventana carmesí", + "block.create.crimson_window_pane": "Panel de ventana carmesí", + "block.create.crushing_wheel": "Rueda trituradora", + "block.create.crushing_wheel_controller": "Controlador de Rueda trituradora", + "block.create.cuckoo_clock": "Reloj de cuco", + "block.create.cyan_nixie_tube": "Tubo Nixie cian", + "block.create.cyan_sail": "Vela cian", + "block.create.cyan_seat": "Asiento cian", + "block.create.cyan_valve_handle": "Asa de válvula cian", + "block.create.dark_oak_window": "Ventana de roble oscuro", + "block.create.dark_oak_window_pane": "Panel de ventana de roble oscuro", + "block.create.dark_scoria": "Escoria oscura", + "block.create.dark_scoria_bricks": "Ladrillos de escoria oscura", + "block.create.dark_scoria_bricks_slab": "Losa de ladrillos de escoria oscura", + "block.create.dark_scoria_bricks_stairs": "Escaleras de ladrillos de escoria oscura", + "block.create.dark_scoria_bricks_wall": "Muro de ladrillos de escoria oscura", + "block.create.dark_scoria_cobblestone": "Adoquines de escoria oscura", + "block.create.dark_scoria_cobblestone_slab": "Losa de adoquines de escoria oscura", + "block.create.dark_scoria_cobblestone_stairs": "Escaleras de adoquines de escoria oscura", + "block.create.dark_scoria_cobblestone_wall": "Muro de adoquines de escoria oscura", + "block.create.dark_scoria_pillar": "Pilar de escoria oscura", + "block.create.deployer": "Desplegador", + "block.create.depot": "Depósito", + "block.create.diorite_bricks": "Ladrillos de diorita", + "block.create.diorite_bricks_slab": "Losa de ladrillos de diorita", + "block.create.diorite_bricks_stairs": "Escaleras de ladrillos de diorita", + "block.create.diorite_bricks_wall": "Muro de ladrillos de diorita", + "block.create.diorite_cobblestone": "Adoquín de diorita", + "block.create.diorite_cobblestone_slab": "Losa de adoquínes de diorita", + "block.create.diorite_cobblestone_stairs": "Escaleras de adoquines de diorita", + "block.create.diorite_cobblestone_wall": "Muro de adoquines de diorita", + "block.create.diorite_pillar": "Pilar de diorita", + "block.create.dolomite": "Dolomita", + "block.create.dolomite_bricks": "Ladrillos de dolomita", + "block.create.dolomite_bricks_slab": "Losa de ladrillos de dolomita", + "block.create.dolomite_bricks_stairs": "Escaleras de ladrillos de dolomita", + "block.create.dolomite_bricks_wall": "Muro de ladrillos de dolomita", + "block.create.dolomite_cobblestone": "Adoquín de dolomita", + "block.create.dolomite_cobblestone_slab": "Losa de adoquín de dolomita", + "block.create.dolomite_cobblestone_stairs": "Escaleras de adoquines de dolomita", + "block.create.dolomite_cobblestone_wall": "Muro de adoquines de dolomita", + "block.create.dolomite_pillar": "Pilar de dolomita", + "block.create.encased_chain_drive": "Cadena de transmisión revestida", + "block.create.encased_fan": "Ventilador revestido", + "block.create.encased_fluid_pipe": "Tubería de fluidos de cobre reforzada", + "block.create.fancy_andesite_bricks": "Ladrillos de andesita elegantes", + "block.create.fancy_andesite_bricks_slab": "Ladrillos de andesita elegantes", + "block.create.fancy_andesite_bricks_stairs": "Escaleras de ladrillos de andesita elegantes", + "block.create.fancy_andesite_bricks_wall": "Muro de ladrillos de andesita elegantes", + "block.create.fancy_dark_scoria_bricks": "Ladrillos de escoria oscura elegantes", + "block.create.fancy_dark_scoria_bricks_slab": "Losa de ladrillos de escoria oscura elegantes", + "block.create.fancy_dark_scoria_bricks_stairs": "Escalera de ladrillos de escoria oscura elegantes", + "block.create.fancy_dark_scoria_bricks_wall": "Muro de ladrillos de escoria oscura elegantes", + "block.create.fancy_diorite_bricks": "Ladrillos de diorita elegantes", + "block.create.fancy_diorite_bricks_slab": "Losa de ladrillos de diorita elegantes", + "block.create.fancy_diorite_bricks_stairs": "Escaleras de ladrillos de diorita elegantes", + "block.create.fancy_diorite_bricks_wall": "Muro de ladrillos de diorita elegantes", + "block.create.fancy_dolomite_bricks": "Ladrillos de dolomita elegantes", + "block.create.fancy_dolomite_bricks_slab": "Losa de ladrillos de dolomita elegantes", + "block.create.fancy_dolomite_bricks_stairs": "Escaleras de ladrillos de dolomita elegantes", + "block.create.fancy_dolomite_bricks_wall": "Muro de ladrillos de dolomita elegantes", + "block.create.fancy_gabbro_bricks": "Ladrillos de gabro elegantes", + "block.create.fancy_gabbro_bricks_slab": "Losa de ladrillos de gabro elegantes", + "block.create.fancy_gabbro_bricks_stairs": "Escaleras de ladrillos de gabro elegantes", + "block.create.fancy_gabbro_bricks_wall": "Muro de ladrillos de gabro elegantes", + "block.create.fancy_granite_bricks": "Ladrillos de granito elegantes", + "block.create.fancy_granite_bricks_slab": "Losa de ladrillos de granito elegantes", + "block.create.fancy_granite_bricks_stairs": "Escaleras de ladrillos de granito elegantes", + "block.create.fancy_granite_bricks_wall": "Muro de ladrillos de granito elegantes", + "block.create.fancy_limestone_bricks": "Ladrillos de piedra caliza elegantes", + "block.create.fancy_limestone_bricks_slab": "Losa de ladrillos de piedra caliza elegantes", + "block.create.fancy_limestone_bricks_stairs": "Escaleras de ladrillos de piedra caliza elegantes", + "block.create.fancy_limestone_bricks_wall": "Muro de ladrillos de piedra caliza elegantes", + "block.create.fancy_scoria_bricks": "Ladrillos de escoria elegantes", + "block.create.fancy_scoria_bricks_slab": "Losa de ladrillos de escoria elegantes", + "block.create.fancy_scoria_bricks_stairs": "Escaleras de ladrillos de escoria elegantes", + "block.create.fancy_scoria_bricks_wall": "Muro de ladrillos de escoria elegantes", + "block.create.fancy_weathered_limestone_bricks": "Ladrillos de piedra de caliza erosionada elegantes", + "block.create.fancy_weathered_limestone_bricks_slab": "Losa de ladrillos de caliza erosionada elegantes", + "block.create.fancy_weathered_limestone_bricks_stairs": "Escaleras de ladrillos de caliza erosionada elegantes", + "block.create.fancy_weathered_limestone_bricks_wall": "Muro de ladrillos de caliza erosionada elegantes", + "block.create.fluid_pipe": "Tubería de fluidos de cobre", + "block.create.fluid_tank": "Depósito de fluidos", + "block.create.fluid_valve": "Válvula de fluidos", + "block.create.flywheel": "Rueda de inercia", + "block.create.framed_glass": "Cristal enmarcado", + "block.create.framed_glass_pane": "Panel de cristal enmarcado", + "block.create.furnace_engine": "Motor de horno", + "block.create.gabbro": "Gabro", + "block.create.gabbro_bricks": "Ladrillos de gabro", + "block.create.gabbro_bricks_slab": "Losa de ladrillos de gabro", + "block.create.gabbro_bricks_stairs": "Escaleras de ladrillos de gabro", + "block.create.gabbro_bricks_wall": "Muro de ladrillos de gabro", + "block.create.gabbro_cobblestone": "Adoquín de gabro", + "block.create.gabbro_cobblestone_slab": "Losa de adoquínes de gabro", + "block.create.gabbro_cobblestone_stairs": "Escaleras de adoquínes de gabro", + "block.create.gabbro_cobblestone_wall": "Muro de adoquínes de gabro", + "block.create.gabbro_pillar": "Pilar de gabro", + "block.create.gantry_carriage": "Carro de grúa", + "block.create.gantry_shaft": "Eje de grúa", + "block.create.gearbox": "Caja de transmisión", + "block.create.gearshift": "Caja de cambios", + "block.create.glass_fluid_pipe": "Tubería de fluidos de cristal", + "block.create.granite_bricks": "Ladrillos de granito", + "block.create.granite_bricks_slab": "Losa de ladrillos de granito", + "block.create.granite_bricks_stairs": "Escaleras de ladrillos de granito", + "block.create.granite_bricks_wall": "Muro de ladrillos de granito", + "block.create.granite_cobblestone": "Adoquín de granito", + "block.create.granite_cobblestone_slab": "Losa de adoquínes de granito", + "block.create.granite_cobblestone_stairs": "Escaleras de adoquínes de granito", + "block.create.granite_cobblestone_wall": "Muro de adoquínes de granito", + "block.create.granite_pillar": "Pilar de granito", + "block.create.gray_nixie_tube": "Tubo Nixie gris", + "block.create.gray_sail": "Vela gris", + "block.create.gray_seat": "Asiento gris", + "block.create.gray_valve_handle": "Asa de válvula gris", + "block.create.green_nixie_tube": "Tubo Nixie verde", + "block.create.green_sail": "Vela verde", + "block.create.green_seat": "Asiento verde", + "block.create.green_valve_handle": "Asa de válvula verde", + "block.create.hand_crank": "Manivela", + "block.create.haunted_bell": "Campana encantada", + "block.create.honey": "Miel", + "block.create.horizontal_framed_glass": "Cristal con marco horizontal", + "block.create.horizontal_framed_glass_pane": "Panel de cristal con marco horizontal", + "block.create.hose_pulley": "Polea de manguera", + "block.create.item_drain": "Drenador de objetos", + "block.create.jungle_window": "Ventana de jungla", + "block.create.jungle_window_pane": "Panel de ventana de jungla", + "block.create.large_cogwheel": "Engranaje grande", + "block.create.layered_andesite": "Andesita estratificada", + "block.create.layered_dark_scoria": "Escoria oscura estratificada", + "block.create.layered_diorite": "Diorita estratificada", + "block.create.layered_dolomite": "Dolomita estratificada", + "block.create.layered_gabbro": "Gabro estratificado", + "block.create.layered_granite": "Granito estratificado", + "block.create.layered_limestone": "Piedra caliza estratificada", + "block.create.layered_scoria": "Escoria estratificada", + "block.create.layered_weathered_limestone": "Caliza erosionada estratificada", + "block.create.lectern_controller": "Controlador de atril", + "block.create.light_blue_nixie_tube": "Tubo Nixie azul claro", + "block.create.light_blue_sail": "Vela azul claro", + "block.create.light_blue_seat": "Asiento azul claro", + "block.create.light_blue_valve_handle": "Asa de válvula azul claro", + "block.create.light_gray_nixie_tube": "Tubo Nixie gris claro", + "block.create.light_gray_sail": "Vela gris claro", + "block.create.light_gray_seat": "Asiento gris claro", + "block.create.light_gray_valve_handle": "Asa de válvula gris claro", + "block.create.lime_nixie_tube": "Tubo Nixie lima", + "block.create.lime_sail": "Vela lima", + "block.create.lime_seat": "Asiento lima", + "block.create.lime_valve_handle": "Asa de válvula lima", + "block.create.limesand": "Arena caliza", + "block.create.limestone": "Piedra caliza", + "block.create.limestone_bricks": "Ladrillos de piedra caliza", + "block.create.limestone_bricks_slab": "Losa de ladrillos de piedra caliza", + "block.create.limestone_bricks_stairs": "Escaleras de ladrillos de piedra caliza", + "block.create.limestone_bricks_wall": "Muro de ladrillos de piedra caliza", + "block.create.limestone_cobblestone": "Adoquínes de piedra caliza", + "block.create.limestone_cobblestone_slab": "Losa de adoquines de piedra caliza", + "block.create.limestone_cobblestone_stairs": "Escaleras de adoquines de piedra caliza", + "block.create.limestone_cobblestone_wall": "Muro de adoquines de piedra caliza", + "block.create.limestone_pillar": "Pilar de piedra caliza", + "block.create.linear_chassis": "Chasis lineal", + "block.create.lit_blaze_burner": "Quemador de Blaze encendido", + "block.create.magenta_nixie_tube": "Tubo Nixie magenta", + "block.create.magenta_sail": "Vela magenta", + "block.create.magenta_seat": "Asiento magenta", + "block.create.magenta_valve_handle": "Asa de válvula magenta", + "block.create.mechanical_arm": "Brazo mecánico", + "block.create.mechanical_bearing": "Rodamiento mecánico", + "block.create.mechanical_crafter": "Ensamblador mecánico", + "block.create.mechanical_drill": "Taladro mecánico", + "block.create.mechanical_harvester": "Cosechadora mecánica", + "block.create.mechanical_mixer": "Mezcladora mecánica", + "block.create.mechanical_piston": "Pistón mecánico", + "block.create.mechanical_piston_head": "Cabezal de pistón mecánico", + "block.create.mechanical_plough": "Arado mecánico", + "block.create.mechanical_press": "Prensa mecánica", + "block.create.mechanical_pump": "Bomba mecánica", + "block.create.mechanical_saw": "Sierra mecánica", + "block.create.metal_bracket": "Soporte de metal para ejes", + "block.create.millstone": "Piedra de molino", + "block.create.minecart_anchor": "Ancla de vagonetas", + "block.create.mossy_andesite": "Andesita musgosa", + "block.create.mossy_dark_scoria": "Escoria oscura musgosa", + "block.create.mossy_diorite": "Diorita musgosa", + "block.create.mossy_dolomite": "Dolomita musgosa", + "block.create.mossy_gabbro": "Gabro musgoso", + "block.create.mossy_granite": "Granito musgoso", + "block.create.mossy_limestone": "Caliza musgosa", + "block.create.mossy_scoria": "Escoria musgosa", + "block.create.mossy_weathered_limestone": "Caliza erosionada musgosa", + "block.create.mysterious_cuckoo_clock": "Reloj de cuco", + "block.create.natural_scoria": "Escoria natural", + "block.create.nixie_tube": "Tubo Nixie", + "block.create.nozzle": "Boquilla", + "block.create.oak_window": "Ventana de roble", + "block.create.oak_window_pane": "Panel de ventana de roble", + "block.create.orange_sail": "Vela naranja", + "block.create.orange_seat": "Asiento naranja", + "block.create.orange_valve_handle": "Asa de válvula naranja", + "block.create.ornate_iron_window": "Ventana de hierro ornamentada", + "block.create.ornate_iron_window_pane": "Panel de ventana de hierro ornamentada", + "block.create.overgrown_andesite": "Andesita sobredimensionada", + "block.create.overgrown_dark_scoria": "Escoria oscura sobredimensionada", + "block.create.overgrown_diorite": "Diorita sobredimensionada", + "block.create.overgrown_dolomite": "Dolomita sobredimensionada", + "block.create.overgrown_gabbro": "Gabro sobredimensionado", + "block.create.overgrown_granite": "Granito sobredimensionado", + "block.create.overgrown_limestone": "Caliza sobredimensionada", + "block.create.overgrown_scoria": "Escoria sobredimensionada", + "block.create.overgrown_weathered_limestone": "Caliza erosionada sobredimensionada", + "block.create.paved_andesite": "Andesita pavimentada", + "block.create.paved_andesite_slab": "Losa de andesita pavimentada", + "block.create.paved_andesite_stairs": "Escaleras de andesita pavimentada", + "block.create.paved_andesite_wall": "Muro de andesita pavimentada", + "block.create.paved_dark_scoria": "Escoria oscura pavimentada", + "block.create.paved_dark_scoria_slab": "Losa de escoria oscura pavimentada", + "block.create.paved_dark_scoria_stairs": "Escaleras de escoria oscura pavimentada", + "block.create.paved_dark_scoria_wall": "Muro de escoria oscura pavimentad", + "block.create.paved_diorite": "Diorita pavimentada", + "block.create.paved_diorite_slab": "Losa de diorita pavimentada", + "block.create.paved_diorite_stairs": "Escaleras de diorita pavimentada", + "block.create.paved_diorite_wall": "Muro de diorita pavimentad", + "block.create.paved_dolomite": "Dolomita pavimentada", + "block.create.paved_dolomite_slab": "Losa de dolomita pavimentada", + "block.create.paved_dolomite_stairs": "Escaleras de dolomita pavimentada", + "block.create.paved_dolomite_wall": "Muro de dolomita pavimentada", + "block.create.paved_gabbro": "Gabro pavimentado", + "block.create.paved_gabbro_slab": "Losa de gabro pavimentado", + "block.create.paved_gabbro_stairs": "Escaleras de gabro pavimentado", + "block.create.paved_gabbro_wall": "Muro de gabro pavimentado", + "block.create.paved_granite": "Granito pavimentado", + "block.create.paved_granite_slab": "Losa de granito pavimentado", + "block.create.paved_granite_stairs": "Escaleras de granito pavimentado", + "block.create.paved_granite_wall": "Muro de granito pavimentado", + "block.create.paved_limestone": "Piedra caliza pavimentada", + "block.create.paved_limestone_slab": "Losa de piedra caliza pavimentada", + "block.create.paved_limestone_stairs": "Escaleras de piedra caliza pavimentada", + "block.create.paved_limestone_wall": "Muro de piedra caliza pavimentada", + "block.create.paved_scoria": "Escoria pavimentada", + "block.create.paved_scoria_slab": "Losa de escoria pavimentada", + "block.create.paved_scoria_stairs": "Escaleras de escoria pavimentada", + "block.create.paved_scoria_wall": "Muro de escoria pavimentada", + "block.create.paved_weathered_limestone": "Piedra caliza erosionada pavimentada", + "block.create.paved_weathered_limestone_slab": "Losa de piedra caliza erosionada pavimentada", + "block.create.paved_weathered_limestone_stairs": "Escaleras de piedra caliza erosionada pavimentada", + "block.create.paved_weathered_limestone_wall": "Muro de piedra caliza erosionada pavimentada", + "block.create.peculiar_bell": "Campana peculiar", + "block.create.pink_nixie_tube": "Tubo Nixie rosa", + "block.create.pink_sail": "Vela rosa", + "block.create.pink_seat": "Asiento rosa", + "block.create.pink_valve_handle": "Asa de válvula rosa", + "block.create.piston_extension_pole": "Pértiga de extensión de pistón", + "block.create.polished_dark_scoria": "Escoria oscura pulida", + "block.create.polished_dark_scoria_slab": "Losa de escoria oscura pulida", + "block.create.polished_dark_scoria_stairs": "Escaleras de escoria oscura pulida", + "block.create.polished_dark_scoria_wall": "Muro de escoria oscura pulida", + "block.create.polished_dolomite": "Dolomita pulida", + "block.create.polished_dolomite_slab": "Losa de dolomita pulida", + "block.create.polished_dolomite_stairs": "Escaleras de dolomita pulidas", + "block.create.polished_dolomite_wall": "Muro de dolomita pulida", + "block.create.polished_gabbro": "Gabro pulido", + "block.create.polished_gabbro_slab": "Losa de gabro pulido", + "block.create.polished_gabbro_stairs": "Escaleras de gabro pulido", + "block.create.polished_gabbro_wall": "Muro de gabro pulido", + "block.create.polished_limestone": "Piedra caliza pulida", + "block.create.polished_limestone_slab": "Losa de piedra caliza pulida", + "block.create.polished_limestone_stairs": "Escaleras de piedra caliza pulidas", + "block.create.polished_limestone_wall": "Muro de piedra caliza pulida", + "block.create.polished_scoria": "Escoria pulida", + "block.create.polished_scoria_slab": "Losa de escoria pulida", + "block.create.polished_scoria_stairs": "Escaleras de losa pulida", + "block.create.polished_scoria_wall": "Muro de escoria pulida", + "block.create.polished_weathered_limestone": "Piedra caliza erosionada pulida", + "block.create.polished_weathered_limestone_slab": "Losa de piedra caliza erosionada pulida", + "block.create.polished_weathered_limestone_stairs": "Escaleras de piedra caliza erosionada pulida", + "block.create.polished_weathered_limestone_wall": "Muro de piedra caliza erosionada pulida", + "block.create.portable_fluid_interface": "Interfaz de fluidos portátil", + "block.create.portable_storage_interface": "Interfaz de almacenamiento portátil", + "block.create.powered_latch": "Palanca motorizada", + "block.create.powered_toggle_latch": "Palanca de cierre motorizada", + "block.create.pulley_magnet": "Imán de la polea", + "block.create.pulse_repeater": "Repetidor de pulsos de redstone", + "block.create.purple_nixie_tube": "Tubo Nixie morado", + "block.create.purple_sail": "Vela morada", + "block.create.purple_seat": "Asiento morado", + "block.create.purple_valve_handle": "Asa de válvula morada", + "block.create.radial_chassis": "Chasis radial", + "block.create.red_nixie_tube": "Tubo Nixie rojo", + "block.create.red_sail": "Vela roja", + "block.create.red_seat": "Asiento rojo", + "block.create.red_valve_handle": "Asa de válvula roja", + "block.create.redstone_contact": "Contacto de redstone", + "block.create.redstone_link": "Enlace de redstone", + "block.create.refined_radiance_casing": "Revestidor radiante", + "block.create.reinforced_rail": "Raíl reforzado", + "block.create.rope": "Cuerda", + "block.create.rope_pulley": "Polea de cuerda", + "block.create.rotation_speed_controller": "Controlador de velocidad rotacional", + "block.create.sail_frame": "Marco de vela", + "block.create.schematic_table": "Tabla de esquemas", + "block.create.schematicannon": "Cañón de esquemas", + "block.create.scoria": "Escoria", + "block.create.scoria_bricks": "Ladrillos de escoria", + "block.create.scoria_bricks_slab": "Losa de ladrillos de escoria", + "block.create.scoria_bricks_stairs": "Escaleras de ladrillos de escoria", + "block.create.scoria_bricks_wall": "Muro de ladrillos de escoria", + "block.create.scoria_cobblestone": "Adoquín de escoria", + "block.create.scoria_cobblestone_slab": "Losa de adoquínes de escoria", + "block.create.scoria_cobblestone_stairs": "Escaleras de adoquines de escoria", + "block.create.scoria_cobblestone_wall": "Muro de adoquines de escoria", + "block.create.scoria_pillar": "Pilar de escoria", + "block.create.secondary_linear_chassis": "Chasis lineal secundario", + "block.create.sequenced_gearshift": "Caja de cambios secuencial", + "block.create.shadow_steel_casing": "Revestidor sombrío", + "block.create.shaft": "Eje", + "block.create.smart_chute": "Ducto inteligente", + "block.create.smart_fluid_pipe": "Tubería de fluidos inteligente", + "block.create.speedometer": "Velocímetro", + "block.create.spout": "Surtidor", + "block.create.spruce_window": "Ventana de abeto", + "block.create.spruce_window_pane": "Panel de ventana de abeto", + "block.create.sticker": "Sticker", + "block.create.sticky_mechanical_piston": "Pistón mecánico pegajoso", + "block.create.stockpile_switch": "Interruptor de acopio", + "block.create.stressometer": "Estresómetro", + "block.create.tiled_glass": "Vidrio esmaltado", + "block.create.tiled_glass_pane": "Panel de vidrio esmaltado", + "block.create.turntable": "Plataforma giratoria mecánica", + "block.create.vertical_framed_glass": "Vidrio esmaltado vertical", + "block.create.vertical_framed_glass_pane": "Panel de vidrio esmaltado vertical", + "block.create.warped_window": "Ventana distorsionada", + "block.create.warped_window_pane": "Panel de ventana distorsionada", + "block.create.water_wheel": "Rueda hidráulica mecánica", + "block.create.weathered_limestone": "Piedra caliza erosionada", + "block.create.weathered_limestone_bricks": "Ladrillos de piedra caliza erosionada", + "block.create.weathered_limestone_bricks_slab": "Losa de piedra caliza erosionada", + "block.create.weathered_limestone_bricks_stairs": "Escaleras de ladrillos de piedra caliza erosionada", + "block.create.weathered_limestone_bricks_wall": "Muro de ladrillos de piedra caliza erosionada", + "block.create.weathered_limestone_cobblestone": "Adoquín de piedra caliza erosionada", + "block.create.weathered_limestone_cobblestone_slab": "Losa de adoquín de piedra caliza erosionada", + "block.create.weathered_limestone_cobblestone_stairs": "Escaleras de adoquín de piedra caliza erosionada", + "block.create.weathered_limestone_cobblestone_wall": "Muro de adoquínes de piedra caliza erosionada", + "block.create.weathered_limestone_pillar": "Pilar de piedra caliza erosionada", + "block.create.weighted_ejector": "Eyector de peso", + "block.create.white_nixie_tube": "Tubo Nixie blanco", + "block.create.white_sail": "Vela blanca", + "block.create.white_seat": "Asiento blanco", + "block.create.white_valve_handle": "Asa de válvula blanco", + "block.create.windmill_bearing": "Rodamiento del molino de viento", + "block.create.wooden_bracket": "Soporte de madera para ejes", + "block.create.yellow_nixie_tube": "Tubo Nixie amarillo", + "block.create.yellow_sail": "Vela amarilla", + "block.create.yellow_seat": "Asiento amarillo", + "block.create.yellow_valve_handle": "Asa de válvula amarillo", + "block.create.zinc_block": "Bloque de zinc", + "block.create.zinc_ore": "Mena de zinc", + + "enchantment.create.capacity": "Capacidad", + "enchantment.create.potato_recovery": "Recuperación de patatas", + + "entity.create.contraption": "Artilugio", + "entity.create.crafting_blueprint": "Plano de elaboración", + "entity.create.gantry_contraption": "Artilugio de grúa", + "entity.create.potato_projectile": "Proyectil de patata", + "entity.create.seat": "Asiento", + "entity.create.stationary_contraption": "Artilugio estacionario", + "entity.create.super_glue": "Pegamento", + + "fluid.create.potion": "Poción", + "fluid.create.tea": "Té del Constructor", + + "item.create.andesite_alloy": "Aleación de andesita", + "item.create.attribute_filter": "Filtro de atributos", + "item.create.bar_of_chocolate": "Barra de chocolate", + "item.create.belt_connector": "Correa mecánica", + "item.create.blaze_cake": "Pastel de blaze", + "item.create.blaze_cake_base": "Base de pastel de blaze", + "item.create.brass_hand": "Mano de latón", + "item.create.brass_ingot": "Lingote de latón", + "item.create.brass_nugget": "Pepita de latón", + "item.create.brass_sheet": "Lámina de latón", + "item.create.builders_tea": "Té del Constructor", + "item.create.chest_minecart_contraption": "Artilugio de vagoneta con cofre", + "item.create.chocolate_bucket": "Cubo con chocolate", + "item.create.chocolate_glazed_berries": "Bayas glaseadas con chocolate", + "item.create.chromatic_compound": "Compuesto cromático", + "item.create.cinder_flour": "Harina del Nether", + "item.create.copper_backtank": "Depósito trasero de cobre", + "item.create.copper_ingot": "Lingote de cobre", + "item.create.copper_nugget": "Pepita de cobre", + "item.create.copper_sheet": "Lámina de cobre", + "item.create.crafter_slot_cover": "Tapa de ranura del ensamblador mecánico", + "item.create.crafting_blueprint": "Plano de elaboración", + "item.create.creative_blaze_cake": "´Pastel de blaze creativo", + "item.create.crushed_aluminum_ore": "Mineral de aluminio molido", + "item.create.crushed_brass": "Latón molido", + "item.create.crushed_copper_ore": "Mineral de cobre molido", + "item.create.crushed_gold_ore": "Mineral de oro molido", + "item.create.crushed_iron_ore": "Mineral de hierro molido", + "item.create.crushed_lead_ore": "Mineral de plomo molido", + "item.create.crushed_nickel_ore": "Mineral de níquel molido", + "item.create.crushed_osmium_ore": "Mineral de osmio molido", + "item.create.crushed_platinum_ore": "Mineral de platino molido", + "item.create.crushed_quicksilver_ore": "Mineral de mercurio molido", + "item.create.crushed_silver_ore": "Mineral de plata molido", + "item.create.crushed_tin_ore": "Mineral de estaño molido", + "item.create.crushed_uranium_ore": "Mineral de uranio molido", + "item.create.crushed_zinc_ore": "Mineral de zinc molido", + "item.create.diving_boots": "Botas de buceo", + "item.create.diving_helmet": "Casco de buceo", + "item.create.dough": "Masilla", + "item.create.electron_tube": "Tubo de electrones", + "item.create.empty_blaze_burner": "Quemador de blaze vacío", + "item.create.empty_schematic": "Esquema vacío", + "item.create.extendo_grip": "Agarre extendido", + "item.create.filter": "Filtro", + "item.create.furnace_minecart_contraption": "Artilugio de vagoneta de horno", + "item.create.goggles": "Gafas del constructor", + "item.create.golden_sheet": "Lámina de oro", + "item.create.handheld_worldshaper": "Worldshaper Creativo", + "item.create.honey_bucket": "Cubo con miel", + "item.create.honeyed_apple": "Manzana con miel", + "item.create.incomplete_cogwheel": "Engranaje pequeño incompleto", + "item.create.incomplete_large_cogwheel": "Engranaje grande incompleto", + "item.create.incomplete_precision_mechanism": "Mecanismo de precisión incompleto", + "item.create.iron_sheet": "Lámina de hierro", + "item.create.linked_controller": "Controlador enlazado", + "item.create.minecart_contraption": "Artilugio de vagoneta", + "item.create.minecart_coupling": "Acoplamiento de vagoneta", + "item.create.polished_rose_quartz": "Cuarzo rosado pulido", + "item.create.potato_cannon": "Cañón de patatas", + "item.create.powdered_obsidian": "Polvo de obsidiana", + "item.create.precision_mechanism": "Mecanismo de precisión", + "item.create.propeller": "Hélice", + "item.create.red_sand_paper": "Papel de lija rojo", + "item.create.refined_radiance": "Resplandor refinado", + "item.create.rose_quartz": "Cuarzo rosado", + "item.create.sand_paper": "Papel de lija", + "item.create.schematic": "Esquema", + "item.create.schematic_and_quill": "Esquema y pluma", + "item.create.shadow_steel": "Acero sombrío", + "item.create.super_glue": "Pegamento", + "item.create.sweet_roll": "Pan dulce", + "item.create.tree_fertilizer": "Fertilizante para árboles", + "item.create.vertical_gearbox": "Caja de transmisión vertical", + "item.create.wand_of_symmetry": "Varita de simetría", + "item.create.wheat_flour": "Harina de trigo", + "item.create.whisk": "Batidora", + "item.create.wrench": "Llave inglesa", + "item.create.zinc_ingot": "Lingote de zinc", + "item.create.zinc_nugget": "Pepita de zinc", + + + "_": "->------------------------] Advancements [------------------------<-", + + "advancement.create.root": "Bienvenido a Create", + "advancement.create.root.desc": "¡Es hora de empezar a construir increíbles artilugios!", + "advancement.create.andesite_alloy": "Aleaciones en abundancia", + "advancement.create.andesite_alloy.desc": "Los materiales de Create tienen nombres extraños, la aleación de andesita es uno de ellos.", + "advancement.create.its_alive": "¡Está vivo!", + "advancement.create.its_alive.desc": "Mira cómo gira tu primer componente cinético.", + "advancement.create.shifting_gears": "Cambiando de marcha", + "advancement.create.shifting_gears.desc": "Conecta un engranaje grande a uno pequeño, lo que te permitirá cambiar la velocidad de tu artilugio.", + "advancement.create.overstressed": "Sobrecargado", + "advancement.create.overstressed.desc": "Experimenta los límites del estrés.", + "advancement.create.belt": "Paseo de algas", + "advancement.create.belt.desc": "Conectar dos ejes con una correa.", + "advancement.create.tunnel": "¡Cúbrete!", + "advancement.create.tunnel.desc": "Embellece tu correa con un túnel.", + "advancement.create.splitter_tunnel": "Divide y vencerás", + "advancement.create.splitter_tunnel.desc": "Crear un divisor con un grupo de túneles de latón.", + "advancement.create.chute": "Caída en picado", + "advancement.create.chute.desc": "Coloque un ducto, la contrapartida vertical de la cinta.", + "advancement.create.upward_chute": "Abducción aérea", + "advancement.create.upward_chute.desc": "Observe cómo un objeto lanzado vuela dentro de un ducto impulsado por un ventilador.", + "advancement.create.belt_funnel": "Colgantes con forma de embudo", + "advancement.create.belt_funnel.desc": "Coloca un embudo lateral encima de una cinta o depósito para crear un tipo especial.", + "advancement.create.belt_funnel_kiss": "Los loros y las aletas", + "advancement.create.belt_funnel_kiss.desc": "Haz besar dos embudos montados con una cinta.", + "advancement.create.fan": "Maestro mecánico del aire", + "advancement.create.fan.desc": "Monta la corriente de aire proporcionada por un ventilador revestido.", + "advancement.create.fan_lava": "Calentador geotérmico", + "advancement.create.fan_lava.desc": "Queda atrapado en una corriente de aire que funde las cosas.", + "advancement.create.fan_water": "Lavado de la ropa", + "advancement.create.fan_water.desc": "Queda atrapado en una corriente de aire que lava las cosas.", + "advancement.create.fan_smoke": "Fuelle mecánico", + "advancement.create.fan_smoke.desc": "Queda atrapado en una corriente de aire que humea los objetos.", + "advancement.create.wrench": "Configurar convenientemente", + "advancement.create.wrench.desc": "Crea una llave inglesa para ayudarte a construir tus artilugios.", + "advancement.create.goggles": "Estresóvisión", + "advancement.create.goggles.desc": "Crea unas gafas del constructor para ayudarte a obtener más información cinética de los componentes.", + "advancement.create.speedometer": "Pero, ¿con qué rapidez exactamente?", + "advancement.create.speedometer.desc": "Coloca y alimenta un velocímetro. Míralo a través de las gafas para leer su valor exacto.", + "advancement.create.stressometer": "Pero, ¿cuán estresado exactamente??", + "advancement.create.stressometer.desc": "Coloca y alimenta un estresómetro. Míralo a través de las gafas para leer su valor exacto.", + "advancement.create.aesthetics": "Boom, ¡Estética!", + "advancement.create.aesthetics.desc": "Coloca soportes en ejes, ductos y engranajes.", + "advancement.create.reinforced": "Boom, ¡Reforzado!", + "advancement.create.reinforced.desc": "Utiliza bloques de revestimiento en un eje, un ducto y una cinta.", + "advancement.create.water_wheel": "Aprovechar la hidráulica", + "advancement.create.water_wheel.desc": "Coloca una rueda hidráulica e intenta hacerla girar.", + "advancement.create.chocolate_wheel": "Potencia de buen gusto", + "advancement.create.chocolate_wheel.desc": "Haz funcionar una rueda de agua con chocolate fundido.", + "advancement.create.lava_wheel": "Rueda de magma", + "advancement.create.lava_wheel.desc": "Esto no debió haber funcionado.", + "advancement.create.cuckoo": "¿Es el momento?", + "advancement.create.cuckoo.desc": "Presencia cómo un reloj de cuco anuncia la hora de acostarse.", + "advancement.create.millstone": "Triturador de bolsillo", + "advancement.create.millstone.desc": "Coloca y alimenta una piedra de molino.", + "advancement.create.windmill": "Una suave brisa", + "advancement.create.windmill.desc": "Monta un molino de viento.", + "advancement.create.maxed_windmill": "Una fuerte brisa", + "advancement.create.maxed_windmill.desc": "Monta un molino de viento con máxima intensidad.", + "advancement.create.andesite_casing": "La edad de la andesita", + "advancement.create.andesite_casing.desc": "Utiliza un poco de aleación de andesita y madera para crear un revestimiento básico.", + "advancement.create.mechanical_drill": "Interruptores fijos", + "advancement.create.mechanical_drill.desc": "Coloca y alimenta un taladro mecánico.", + "advancement.create.press": "¡La prensa se pone en marcha!", + "advancement.create.press.desc": "Activa una prensa mecánica y utilízala para crear algunas láminas.", + "advancement.create.polished_rose_quartz": "Diamantes rosas", + "advancement.create.polished_rose_quartz.desc": "Utiliza un trozo de papel de lija para pulir el cuarzo rosa hasta que se vuelva transparente.", + "advancement.create.electron_tube": "Beep Boop", + "advancement.create.electron_tube.desc": "Haz algunos tubos de electrones, útiles en la fabricación de maquinaria menos primitiva.", + "advancement.create.mechanical_saw": "Picado estacionario", + "advancement.create.mechanical_saw.desc": "Coloca y alimenta una sierra mecánica.", + "advancement.create.basin": "Funcionamiento de la cuenca", + "advancement.create.basin.desc": "Coloca una cuenca e intenta arrojar objetos en ella.", + "advancement.create.mixer": "Mezcla de colores", + "advancement.create.mixer.desc": "Coloca una batidora mecánica sobre el lavabo, enciéndala y empiece a mezclar algunos ingredientes.", + "advancement.create.blaze_burner": "Una chimenea viva", + "advancement.create.blaze_burner.desc": "Obtiene un quemador de blaze.", + "advancement.create.compact": "Compactación automática", + "advancement.create.compact.desc": "Utiliza una prensa y una cuenca para compactar algunos objetos.", + "advancement.create.brass": "Aleaciones reales", + "advancement.create.brass.desc": "Utiliza cobre molido y zinc molido para crear algo de latón.", + "advancement.create.brass_casing": "La Edad de Latón", + "advancement.create.brass_casing.desc": "Utiliza el latón recién obtenido y algo de madera para crear un revestimiento más avanzado.", + "advancement.create.copper_casing": "La Edad de Cobre", + "advancement.create.copper_casing.desc": "Utiliza algunas láminas de cobre y madera para crear algunos revestimientos de cobre.", + "advancement.create.spout": "Sploosh", + "advancement.create.spout.desc": "Observa el llenado de un fluido usando una boquilla.", + "advancement.create.spout_potion": "Cervecera global", + "advancement.create.spout_potion.desc": "Mira cómo un pico llena una botella con líquido de poción.", + "advancement.create.chocolate": "Un mundo de imaginación", + "advancement.create.chocolate.desc": "Obtiene un cubo con chocolate fundido.", + "advancement.create.item_drain": "Drenaje de la ropa", + "advancement.create.item_drain.desc": "Ve cómo se vacía un fluido mediante un drenador de objetos.", + "advancement.create.chained_item_drain": "¡Déjalo rodar!", + "advancement.create.chained_item_drain.desc": "Observa cómo un objeto rueda por varios drenadores de objetos encadenados.", + "advancement.create.glass_pipe": "Espía del flujo", + "advancement.create.glass_pipe.desc": "Observa cómo se propaga el fluido a través de un tubo de fluidos con ventanas. Los tubos de fluido rectos se convierten en ventanas cuando se utiliza una llave inglesa en ellas.", + "advancement.create.pipe_collision": "No cruzar nunca los arroyos", + "advancement.create.pipe_collision.desc": "Vea cómo se unen dos fluidos en su red de tuberías.", + "advancement.create.pipe_spill": "¡Hay una fuga!", + "advancement.create.pipe_spill.desc": "Observe cómo un extremo abierto de una tubería toma o deposita fluidos en el mundo.", + "advancement.create.hose_pulley": "Vertidos industriales", + "advancement.create.hose_pulley.desc": "Baja una polea de manguera y ve cómo se vacía o se llena un cuerpo de líquido.", + "advancement.create.infinite_water": "Drenando el océano", + "advancement.create.infinite_water.desc": "Bombea de una masa de agua lo suficientemente grande como para ser considerada infinita.", + "advancement.create.infinite_lava": "Drenaje del núcleo de los planetas", + "advancement.create.infinite_lava.desc": "Bombea de una masa de lava lo suficientemente grande como para ser considerada infinita.", + "advancement.create.infinite_chocolate": "Ahogándose en la imaginación", + "advancement.create.infinite_chocolate.desc": "Bombea desde una masa de chocolate fundido lo suficientemente grande como para ser considerado infinito.", + "advancement.create.crafter": "Montaje automatizado", + "advancement.create.crafter.desc": "Coloca y alimenta algunos ensambladores.", + "advancement.create.clockwork_bearing": "Artilugio a la hora", + "advancement.create.clockwork_bearing.desc": "Ensamblar una estructura montada sobre un rodamiento tipo reloj.", + "advancement.create.nixie_tube": "Signos de estilo", + "advancement.create.nixie_tube.desc": "Obtener y colocar un par de tubos nixie.", + "advancement.create.deployer": "Picar, colocar y atacar", + "advancement.create.deployer.desc": "Coloca y potencia un desplegador, el reflejo perfecto de ti mismo.", + "advancement.create.speed_controller": "Los ingenieros lo odian!", + "advancement.create.speed_controller.desc": "Coloca un controlador de velocidad rotacional, el dispositivo definitivo para cambiar de marcha.", + "advancement.create.flywheel": "El corazón de la fábrica", + "advancement.create.flywheel.desc": "Conecta con éxito un motor a la rueda de inercia.", + "advancement.create.overstress_flywheel": "Altos niveles de estrés", + "advancement.create.overstress_flywheel.desc": "Sobrecarga un motor de horno.", + "advancement.create.precision_mechanism": "Curiosidades complejas", + "advancement.create.precision_mechanism.desc": "Monta un mecanismo de precisión.", + "advancement.create.mechanical_arm": "¡Manos ocupadas!", + "advancement.create.mechanical_arm.desc": "Crea un brazo mecánico, selecciona las entradas y salidas, colócalo en el suelo y dale energía; luego observa cómo hace todo el trabajo por ti.", + "advancement.create.musical_arm": "¡Tócame la melodía!", + "advancement.create.musical_arm.desc": "Vea cómo un brazo mecánico maneja su Jukebox.", + "advancement.create.arm_many_targets": "Organize-o-Tron", + "advancement.create.arm_many_targets.desc": "Programa un brazo mecánico con diez o más posiciones de salida.", + "advancement.create.arm_blaze_burner": "Combust-o-Tron", + "advancement.create.arm_blaze_burner.desc": "Instruya un brazo mecánico para alimentar su quemador de blaze.", + "advancement.create.fist_bump": "¡Pégale, hermano!", + "advancement.create.fist_bump.desc": "Haz que dos desplegadores se den un puñetazo.", + "advancement.create.crushing_wheel": "Un par de gigantes", + "advancement.create.crushing_wheel.desc": "Crea algunas ruedas de trituración para descomponer más materiales de forma más eficaz.", + "advancement.create.blaze_cake": "Fiebre del azúcar", + "advancement.create.blaze_cake.desc": "Hornea en tu quemador de blaze un pastel especial.", + "advancement.create.chromatic_compound": "Minerales misteriosos", + "advancement.create.chromatic_compound.desc": "Crea una barra de compuesto cromático.", + "advancement.create.shadow_steel": "Retorno del vacío", + "advancement.create.shadow_steel.desc": "Crea acero sombrío, una barra de metal de la nada.", + "advancement.create.refined_radiance": "Brillante e inspirador", + "advancement.create.refined_radiance.desc": "Crea un resplandor refinado, una poderosa sustancia cromática.", + "advancement.create.chromatic_age": "La edad cromática", + "advancement.create.chromatic_age.desc": "Crear bloques de revestimiento de la luz y la oscuridad.", + "advancement.create.wand_of_symmetry": "Espejos radiantes", + "advancement.create.wand_of_symmetry.desc": "Crear un bastón de simetría.", + "advancement.create.extendo_grip": "¡Boioioing!", + "advancement.create.extendo_grip.desc": "Hazte con un agarre extentido.", + "advancement.create.potato_cannon": "Fwoomp!", + "advancement.create.potato_cannon.desc": "Derrota a un enemigo con tu cañón de patatas.", + "advancement.create.dual_extendo_grip": "La última edad del boing", + "advancement.create.dual_extendo_grip.desc": "Doble empuñadura extendida para un alcance sobrehumano.", + "advancement.create.eob": "Fin de la beta", + "advancement.create.eob.desc": "Espere más contenido aquí en el futuro. <3", + + + "_": "->------------------------] UI & Messages [------------------------<-", + + "itemGroup.create.base": "Create", + "itemGroup.create.palettes": "Paletas", + + "death.attack.create.crush": "%1$s se procesó en las ruedas de trituración", + "death.attack.create.crush.player": "%1$s fue arrojado a las ruedas de trituración por %2$s", + "death.attack.create.fan_fire": "%1$s murió quemado por el aire caliente", + "death.attack.create.fan_fire.player": "%1$s fue arrojado a un ahumador por %2$s", + "death.attack.create.fan_lava": "%1$s murió quemado por un abanico de lava", + "death.attack.create.fan_lava.player": "%1$s fue arrojado a una fundición por %2$s", + "death.attack.create.mechanical_drill": "%1$s fue empalado por un taladro mecánico", + "death.attack.create.mechanical_drill.player": "%1$s fue lanzado frente a un taladro por %2$s", + "death.attack.create.mechanical_saw": "%1$s fue cortado por la mitad por una sierra mecánica", + "death.attack.create.mechanical_saw.player": "%1$s fue arrojado a una sierra por %2$s", + "death.attack.create.potato_cannon": "%1$s fue disparado por el cañón de patatas de %2$s's", + "death.attack.create.potato_cannon.item": "%1$s fue disparado por %2$s utilizando %3$s", + "death.attack.create.cuckoo_clock_explosion": "%1$s fue volado por los aires por un reloj de cuco manipulado", + "death.attack.create.cuckoo_clock_explosion.player": "%1$s fue volado por un reloj de cuco manipulado", + + "create.block.deployer.damage_source_name": "Un desplegador rebelde", + "create.block.cart_assembler.invalid": "Coloque su Ensamblador de vagonetas en un bloque de Raíles", + + "create.menu.return": "Regresar al menú", + "create.menu.configure": "Configurar...", + "create.menu.ponder_index": "Índice", + "create.menu.only_ingame": "Disponible en el menú de pausa", + "create.menu.project_page": "Página del proyecto", + "create.menu.report_bugs": "Reportar problemas", + "create.menu.support": "Apóyenos", + + "create.recipe.crushing": "Trituración", + "create.recipe.milling": "Fresado", + "create.recipe.fan_washing": "Lavado a granel", + "create.recipe.fan_washing.fan": "Ventilador detrás del agua fluyente", + "create.recipe.fan_smoking": "Ahumador a granel", + "create.recipe.fan_smoking.fan": "Ventilador detrás del fuego", + "create.recipe.fan_blasting": "Voladuras a granel", + "create.recipe.fan_blasting.fan": "Ventilador detrás de la lava", + "create.recipe.pressing": "Prensando", + "create.recipe.mixing": "Mezclando", + "create.recipe.deploying": "Desplegando", + "create.recipe.automatic_shapeless": "Elaboración automatizada de productos sin forma", + "create.recipe.automatic_brewing": "Elaboración de cerveza automatizada", + "create.recipe.packing": "Compactando", + "create.recipe.automatic_packing": "Embalaje automatizado", + "create.recipe.sawing": "Aserrando", + "create.recipe.mechanical_crafting": "Elaboración mecánica", + "create.recipe.automatic_shaped": "Elaboración automatizada de productos con forma", + "create.recipe.block_cutting": "Corte de bloques", + "create.recipe.wood_cutting": "Corte de maderas", + "create.recipe.sandpaper_polishing": "Pulido con papel de lija", + "create.recipe.mystery_conversion": "Conversión misteriosa", + "create.recipe.spout_filling": "Llenar por el pico", + "create.recipe.draining": "Drenador de objetos", + "create.recipe.sequenced_assembly": "Montaje secuenciado", + "create.recipe.assembly.next": "Siguiente: %1$s", + "create.recipe.assembly.step": "Fase %1$s:", + "create.recipe.assembly.progress": "Progreso: %1$s/%2$s", + "create.recipe.assembly.pressing": "Proceso en prensa", + "create.recipe.assembly.spout_filling_fluid": "Pico %1$s", + "create.recipe.assembly.deploying_item": "Despliegue %1$s", + "create.recipe.assembly.cutting": "Corte con sierra", + "create.recipe.assembly.repeat": "Repetir la secuencia %1$s veces", + "create.recipe.assembly.junk": "Basura aleatoria", + "create.recipe.processing.chance": "%1$s%% Chance", + "create.recipe.heat_requirement.none": "No es necesario calentar", + "create.recipe.heat_requirement.heated": "Calentado", + "create.recipe.heat_requirement.superheated": "Súper-Calentado", + + "create.generic.range": "Rango", + "create.generic.radius": "Radio", + "create.generic.width": "Ancho", + "create.generic.height": "Alto", + "create.generic.length": "Largo", + "create.generic.speed": "Velocidad", + "create.generic.delay": "Retraso", + "create.generic.unit.ticks": "Ticks", + "create.generic.unit.seconds": "Segundos", + "create.generic.unit.minutes": "Minutos", + "create.generic.unit.rpm": "RPM", + "create.generic.unit.stress": "SU(unidades de estrés)", + "create.generic.unit.degrees": "°", + "create.generic.unit.millibuckets": "%1$smB", + "create.generic.clockwise": "En el sentido de las agujas del reloj", + "create.generic.counter_clockwise": "En sentido contrario a las agujas del reloj", + + "create.action.scroll": "Desplazar", + "create.action.confirm": "Confirmar", + "create.action.abort": "Abortar", + "create.action.saveToFile": "Guardar", + "create.action.discard": "Descartar", + + "create.keyinfo.toolmenu": "Menú de la Herramienta de Enfoque", + "create.keyinfo.scrollup": "Simular usar la rueda del ratón hacia arriba (en el mundo)", + "create.keyinfo.scrolldown": "Simular usar la rueda del ratón hacia abajo (en el mundo)", + + "create.gui.scrollInput.defaultTitle": "Seleccione una opción:", + "create.gui.scrollInput.scrollToModify": "Usa la rueda del ratón para modificar", + "create.gui.scrollInput.scrollToAdjustAmount": "Usa la rueda del ratón para ajustar la cantidad", + "create.gui.scrollInput.scrollToSelect": "Usa la rueda del ratón para seleccionar", + "create.gui.scrollInput.shiftScrollsFaster": "Mayús izdo para usar la rueda del ratón más rápido", + "create.gui.toolmenu.focusKey": "Mantén [%1$s] para enfocar", + "create.gui.toolmenu.cycle": "[RUEDA DEL RATÓN] para el ciclo", + "create.gui.symmetryWand.mirrorType": "Espejado", + "create.gui.symmetryWand.orientation": "Orientación", + + "create.symmetry.mirror.plane": "Plano de espejo", + "create.symmetry.mirror.doublePlane": "Rectangular", + "create.symmetry.mirror.triplePlane": "Octogonal", + + "create.orientation.orthogonal": "Ortogonal", + "create.orientation.diagonal": "Diagonal", + "create.orientation.horizontal": "Horizontal", + "create.orientation.alongZ": "A lo largo de Z", + "create.orientation.alongX": "A lo largo de X", + + "create.gui.terrainzapper.title": "Blockzapper", + "create.gui.terrainzapper.searchDiagonal": "Seguir diagonales", + "create.gui.terrainzapper.searchFuzzy": "Ignorar los bordes del material", + "create.gui.terrainzapper.patternSection": "Patrón", + "create.gui.terrainzapper.pattern.solid": "Sólido", + "create.gui.terrainzapper.pattern.checkered": "Tablero de ajedrez", + "create.gui.terrainzapper.pattern.inversecheckered": "Tablero de ajedrez invertido", + "create.gui.terrainzapper.pattern.chance25": "25% Roll", + "create.gui.terrainzapper.pattern.chance50": "50% Roll", + "create.gui.terrainzapper.pattern.chance75": "75% Roll", + "create.gui.terrainzapper.placement": "Ubicación", + "create.gui.terrainzapper.placement.merged": "Fusionado", + "create.gui.terrainzapper.placement.attached": "Adjuntado", + "create.gui.terrainzapper.placement.inserted": "Insertado", + "create.gui.terrainzapper.brush": "Pincel", + "create.gui.terrainzapper.brush.cuboid": "Cuboide", + "create.gui.terrainzapper.brush.sphere": "Esfera", + "create.gui.terrainzapper.brush.cylinder": "Cilindro", + "create.gui.terrainzapper.brush.surface": "Superficie", + "create.gui.terrainzapper.brush.cluster": "Grupo", + "create.gui.terrainzapper.tool": "Herramienta", + "create.gui.terrainzapper.tool.fill": "Llenar", + "create.gui.terrainzapper.tool.place": "Ubicar", + "create.gui.terrainzapper.tool.replace": "Reemplazar", + "create.gui.terrainzapper.tool.clear": "Eliminar", + "create.gui.terrainzapper.tool.overlay": "Superponer", + "create.gui.terrainzapper.tool.flatten": "Aplanar", + + "create.terrainzapper.shiftRightClickToSet": "Mayús izdo + clic derecho para seleccionar una forma", + "create.terrainzapper.usingBlock": "Usando: %1$s", + "create.terrainzapper.leftClickToSet": "Clic izquierdo a un bloque para establecer el material", + + "create.minecart_coupling.two_couplings_max": "Las vagonetas no pueden tener más de dos enganches cada una", + "create.minecart_coupling.unloaded": "Algunas partes de su tren parecen estar en chunks no cargados", + "create.minecart_coupling.no_loops": "Los acoplamientos no pueden formar un bucle", + "create.minecart_coupling.removed": "Se han retirado todos los acoplamientos de la vagoneta", + "create.minecart_coupling.too_far": "Las vagonetas están demasiado separadas", + + "create.contraptions.movement_mode": "Modo de movimiento", + "create.contraptions.movement_mode.move_place": "Colocar siempre al detenerse", + "create.contraptions.movement_mode.move_place_returned": "Colocar sólo en la posición inicial", + "create.contraptions.movement_mode.move_never_place": "Colocar sólo cuando se destruye el ancla", + "create.contraptions.movement_mode.rotate_place": "Colocar siempre al detenerse", + "create.contraptions.movement_mode.rotate_place_returned": "Colocar sólo cerca del ángulo inicial", + "create.contraptions.movement_mode.rotate_never_place": "Colocar sólo cuando se destruye el ancla", + "create.contraptions.cart_movement_mode": "Modo de movimiento de la vagoneta", + "create.contraptions.cart_movement_mode.rotate": "Siempre de cara al movimiento", + "create.contraptions.cart_movement_mode.rotate_paused": "Pausar a los actores mientras giran", + "create.contraptions.cart_movement_mode.rotation_locked": "Bloquear rotación", + "create.contraptions.windmill.rotation_direction": "Dirección de rotación", + "create.contraptions.clockwork.clock_hands": "Manecillas de reloj", + "create.contraptions.clockwork.hour_first": "La manecilla de las horas primero", + "create.contraptions.clockwork.minute_first": "La manecilla de los minutos primero", + "create.contraptions.clockwork.hour_first_24": "La manecilla del día primero", + + "create.logistics.filter": "Filtro", + "create.logistics.recipe_filter": "Filtro para recetas", + "create.logistics.fluid_filter": "Filtro para fluidos", + "create.logistics.firstFrequency": "Freq. #1", + "create.logistics.secondFrequency": "Freq. #2", + "create.logistics.filter.apply": "Filtro aplicado a %1$s.", + "create.logistics.filter.apply_click_again": "Filtro aplicado a %1$s, haga clic de nuevo para copiar la cantidad.", + "create.logistics.filter.apply_count": "Aplicado recuento de extracciones al filtro.", + + "create.gui.goggles.generator_stats": "Estadísticas del generador:", + "create.gui.goggles.kinetic_stats": "Estadísticas cinéticas:", + "create.gui.goggles.at_current_speed": "con la velocidad actual", + "create.gui.goggles.pole_length": "Longitud del poste:", + "create.gui.goggles.fluid_container": "Información sobre el contenedor de fluidos:", + "create.gui.goggles.fluid_container.capacity": "Capacidad: ", + "create.gui.assembly.exception": "Este artilugio no se pudo montar:", + "create.gui.assembly.exception.unmovableBlock": "Bloque inamovible (%4$s) en [%1$s,%2$s,%3$s]", + "create.gui.assembly.exception.chunkNotLoaded": "El bloque en [%1$s,%2$s,%3$s] no estaba en un chunk cargado", + "create.gui.assembly.exception.structureTooLarge": "Hay demasiados bloques incluídos en el artilugio.\nEl máximo configurado es: %1$s", + "create.gui.assembly.exception.tooManyPistonPoles": "Hay demasiadas Pértigas de extensión conectadas a este Pistón.\nEl máximo configurado es: %1$s", + "create.gui.assembly.exception.noPistonPoles": "Faltan pértigas de extensión para el pistón", + "create.gui.assembly.exception.not_enough_sails": "La estructura adjunta no incluye suficientes bloques tipo vela: %1$s\nSe requiere un mínimo de %2$s", + "create.gui.gauge.info_header": "Información sobre el medidor:", + "create.gui.speedometer.title": "Velocidad de rotación", + "create.gui.stressometer.title": "Estrés de la red", + "create.gui.stressometer.capacity": "Capacidad restante", + "create.gui.stressometer.overstressed": "Sobrecargado", + "create.gui.stressometer.no_rotation": "Sin rotación", + "create.gui.contraptions.not_fast_enough": "Parece que este %1$s no está girando con _suficiente_ velocidad_.", + "create.gui.contraptions.network_overstressed": "Parece que este artilugio está _sobrecargado_. Añade más fuentes o _desacelera_ los componentes con un _impacto de estrés alto_.", + "create.gui.adjustable_crate.title": "Caja ajustable", + "create.gui.adjustable_crate.storageSpace": "Espacio de almacenamiento", + "create.gui.stockpile_switch.title": "Interruptor de acopio", + "create.gui.stockpile_switch.invert_signal": "Invertir señal", + "create.gui.stockpile_switch.move_to_lower_at": "Pasar al carril inferior en %1$s%%", + "create.gui.stockpile_switch.move_to_upper_at": "Pasar al carril superior en %1$s%%", + "create.gui.sequenced_gearshift.title": "Cambio de marchas secuenciado", + "create.gui.sequenced_gearshift.instruction": "Instrucción", + "create.gui.sequenced_gearshift.instruction.turn_angle.descriptive": "Giro por ángulo", + "create.gui.sequenced_gearshift.instruction.turn_angle": "Giro", + "create.gui.sequenced_gearshift.instruction.turn_angle.angle": "Ángulo", + "create.gui.sequenced_gearshift.instruction.turn_distance.descriptive": "Giro para mover el pistón/polea/grúa", + "create.gui.sequenced_gearshift.instruction.turn_distance": "Pistón", + "create.gui.sequenced_gearshift.instruction.turn_distance.distance": "Distancia", + "create.gui.sequenced_gearshift.instruction.delay.descriptive": "Tiempo de retraso", + "create.gui.sequenced_gearshift.instruction.delay": "Retraso", + "create.gui.sequenced_gearshift.instruction.delay.duration": "Duración", + "create.gui.sequenced_gearshift.instruction.end.descriptive": "Fin", + "create.gui.sequenced_gearshift.instruction.end": "Fin", + "create.gui.sequenced_gearshift.instruction.await.descriptive": "En espera de un pulso de redstone", + "create.gui.sequenced_gearshift.instruction.await": "En espera", + "create.gui.sequenced_gearshift.speed": "Velocidad, Dirección", + "create.gui.sequenced_gearshift.speed.forward": "Velocidad de entrada, hacia adelante", + "create.gui.sequenced_gearshift.speed.forward_fast": "Doble velocidad, hacia adelante", + "create.gui.sequenced_gearshift.speed.back": "Velocidad de entrada, Invertida", + "create.gui.sequenced_gearshift.speed.back_fast": "Doble velocidad, Invertida", + + "create.schematicAndQuill.dimensions": "Tamaño del esquema: %1$sx%2$sx%3$s", + "create.schematicAndQuill.firstPos": "Primera posición fijada.", + "create.schematicAndQuill.secondPos": "Segunda posición fijada.", + "create.schematicAndQuill.noTarget": "Mantén [Ctrl] para seleccionar los bloques del aire.", + "create.schematicAndQuill.abort": "Selección eliminada.", + "create.schematicAndQuill.title": "Nombre del esquema:", + "create.schematicAndQuill.convert": "Guardar y desplegar inmediatamente", + "create.schematicAndQuill.fallbackName": "Mi esquema", + "create.schematicAndQuill.saved": "Guardado como %1$s", + + "create.schematic.invalid": "[!] Elemento no válido - Utilice la tabla de esquemas en su lugar", + "create.schematic.position": "Posición", + "create.schematic.rotation": "Rotación", + "create.schematic.rotation.none": "Ninguno", + "create.schematic.rotation.cw90": "En el sentido de las agujas del reloj 90", + "create.schematic.rotation.cw180": "En el sentido de las agujas del reloj 180", + "create.schematic.rotation.cw270": "En el sentido de las agujas del reloj 270", + "create.schematic.mirror": "Espejado", + "create.schematic.mirror.none": "Ninguno", + "create.schematic.mirror.frontBack": "Delante-Detrás", + "create.schematic.mirror.leftRight": "Izquierda-Derecha", + "create.schematic.tool.deploy": "Despliegue", + "create.schematic.tool.move": "Mover XZ", + "create.schematic.tool.movey": "Mover Y", + "create.schematic.tool.rotate": "Rotar", + "create.schematic.tool.print": "Imprimir", + "create.schematic.tool.flip": "Voltear", + "create.schematic.tool.deploy.description.0": "Mueve la estructura a un lugar.", + "create.schematic.tool.deploy.description.1": "Haz clic con el botón derecho del ratón en el suelo para colocarla.", + "create.schematic.tool.deploy.description.2": "Mantén [Ctrl] para seleccionar a una distancia fija.", + "create.schematic.tool.deploy.description.3": "[Ctrl] + [RUEDA DEL RATÓN] para cambiar la distancia.", + "create.schematic.tool.move.description.0": "Desplaza el esquema horizontalmente.", + "create.schematic.tool.move.description.1": "Apunta al esquema y [Ctrl] + [RUEDA DEL RATÓN] para ponerlo.", + "create.schematic.tool.move.description.2": "", + "create.schematic.tool.move.description.3": "", + "create.schematic.tool.movey.description.0": "Desplaza el esquema verticalmente..", + "create.schematic.tool.movey.description.1": "[Ctrl] + [RUEDA DEL RATÓN] para moverlo hacia arriba/abajo.", + "create.schematic.tool.movey.description.2": "", + "create.schematic.tool.movey.description.3": "", + "create.schematic.tool.rotate.description.0": "Gira el esquema alrededor de su centro.", + "create.schematic.tool.rotate.description.1": "[Ctrl] + [RUEDA DEL RATÓN] para girar 90 grados.", + "create.schematic.tool.rotate.description.2": "", + "create.schematic.tool.rotate.description.3": "", + "create.schematic.tool.print.description.0": "Sitúa instantáneamente la estructura en el mundo.", + "create.schematic.tool.print.description.1": "[Clic derecho] para confirmar la colocación en el lugar actual.", + "create.schematic.tool.print.description.2": "Esta herramienta es sólo para el Modo Creativo.", + "create.schematic.tool.print.description.3": "", + "create.schematic.tool.flip.description.0": "Voltea el esquema a lo largo de la cara que seleccione.", + "create.schematic.tool.flip.description.1": "Apunta al esquema y [Ctrl] + [RUEDA DEL RATÓN] para voltearlo.", + "create.schematic.tool.flip.description.2": "", + "create.schematic.tool.flip.description.3": "", + + "create.schematics.synchronizing": "Sincronizando...", + "create.schematics.uploadTooLarge": "Tu esquema excede las limitaciones especificadas por el servidor.", + "create.schematics.maxAllowedSize": "El tamaño máximo permitido del archivo del esquema es:", + + "create.gui.schematicTable.refresh": "Refrescar archivos", + "create.gui.schematicTable.open_folder": "Abrir carpeta", + "create.gui.schematicTable.title": "Tabla de esquemas", + "create.gui.schematicTable.availableSchematics": "Esquemas disponibles", + "create.gui.schematicTable.noSchematics": "No hay esquemas guardados", + "create.gui.schematicTable.uploading": "Subiendo...", + "create.gui.schematicTable.finished": "¡Subida finalizada!", + "create.gui.schematicannon.title": "Cañón de esquemas", + "create.gui.schematicannon.listPrinter": "Lista de control de la impresora", + "create.gui.schematicannon.gunpowderLevel": "Pólvora %1$s%%", + "create.gui.schematicannon.shotsRemaining": "Disparos restantes: %1$s", + "create.gui.schematicannon.shotsRemainingWithBackup": "Con respaldo: %1$s", + "create.gui.schematicannon.optionEnabled": "Actualmente habilitado", + "create.gui.schematicannon.optionDisabled": "Actualmente deshabilitado", + "create.gui.schematicannon.showOptions": "Mostrar la configuración de la impresora", + "create.gui.schematicannon.option.dontReplaceSolid": "No sustituír los bloques sólidos", + "create.gui.schematicannon.option.replaceWithSolid": "Sustituir sólido por sólido", + "create.gui.schematicannon.option.replaceWithAny": "Sustituir sólido por cualquiera", + "create.gui.schematicannon.option.replaceWithEmpty": "Sustituir sólido por vacío", + "create.gui.schematicannon.option.skipMissing": "Omitir los bloques que faltan", + "create.gui.schematicannon.option.skipTileEntities": "Proteger a las entidades", + "create.gui.schematicannon.slot.gunpowder": "Añade pólvora para alimentar el cañón", + "create.gui.schematicannon.slot.listPrinter": "Coloque los libros aquí para imprimir una lista de comprobación para su esquema", + "create.gui.schematicannon.slot.schematic": "Añada su esquema aquí. Asegúrese de que se despliega en un lugar específico.", + "create.gui.schematicannon.option.skipMissing.description": "Si el cañón no encuentra un bloque necesario para su colocación, continuará en la siguiente ubicación.", + "create.gui.schematicannon.option.skipTileEntities.description": "El cañón evitará reemplazar los bloques que contienen datos, como los cofres.", + "create.gui.schematicannon.option.dontReplaceSolid.description": "El cañón nunca sustituirá ningún bloque sólido en su zona de trabajo, sólo los no sólidos y el aire.", + "create.gui.schematicannon.option.replaceWithSolid.description": "El cañón sólo reemplazará los bloques sólidos en su área de trabajo si el esquema contiene un bloque sólido en la ubicación.", + "create.gui.schematicannon.option.replaceWithAny.description": "El cañón reemplazará los bloques sólidos en su área de trabajo si el esquema contiene algún bloque en la ubicación.", + "create.gui.schematicannon.option.replaceWithEmpty.description": "El cañón eliminará todos los bloques de su zona de trabajo, incluidos los sustituidos por aire.", + + "create.schematicannon.status.idle": "Inactivo", + "create.schematicannon.status.ready": "Listo", + "create.schematicannon.status.running": "Funcionando", + "create.schematicannon.status.finished": "Finalizado", + "create.schematicannon.status.paused": "Pausado", + "create.schematicannon.status.stopped": "Detenido", + "create.schematicannon.status.noGunpowder": "Sin pólvora", + "create.schematicannon.status.targetNotLoaded": "El objetivo no está cargado", + "create.schematicannon.status.targetOutsideRange": "Objetivo demasiado lejano", + "create.schematicannon.status.searching": "Buscando", + "create.schematicannon.status.skipping": "Omitiendo", + "create.schematicannon.status.missingBlock": "Elementos perdidos:", + "create.schematicannon.status.placing": "Colocando", + "create.schematicannon.status.clearing": "Limpiando bloques", + "create.schematicannon.status.schematicInvalid": "Esquema inválido", + "create.schematicannon.status.schematicNotPlaced": "Esquema no desplegado", + "create.schematicannon.status.schematicExpired": "Archivo de esquemas caducado", + + "create.materialChecklist": "Lista de control del material", + "create.materialChecklist.blocksNotLoaded": "* Descargo de Responsabilidad *\n\nLa lista de materiales puede ser inexacta debido a que no se han cargado los chunks pertinentes.", + + "create.gui.filter.deny_list": "Lista de denegados", + "create.gui.filter.deny_list.description": "Los objetos pasan si NO coinciden con ninguno de los anteriores. Una lista de denegación vacía acepta todo.", + "create.gui.filter.allow_list": "Lista de permitidos", + "create.gui.filter.allow_list.description": "Los objetos pasan si coinciden con alguno de los anteriores. Una lista de permitidos vacía rechaza todo.", + "create.gui.filter.respect_data": "Respetar datos", + "create.gui.filter.respect_data.description": "Los objetos sólo coinciden si su durabilidad, encantos y otros atributos también coinciden.", + "create.gui.filter.ignore_data": "Ignorar datos", + "create.gui.filter.ignore_data.description": "Los artículos coinciden independientemente de sus atributos.", + + "create.item_attributes.placeable": "se puede colocar", + "create.item_attributes.placeable.inverted": "no se puede colocar", + "create.item_attributes.consumable": "se puede comer", + "create.item_attributes.consumable.inverted": "no se puede comer", + "create.item_attributes.smeltable": "se puede fundir", + "create.item_attributes.smeltable.inverted": "no se puede fundir", + "create.item_attributes.washable": "se puede lavar", + "create.item_attributes.washable.inverted": "no se puede lavar", + "create.item_attributes.smokable": "puede ser ahumado", + "create.item_attributes.smokable.inverted": "no puede ser ahumado", + "create.item_attributes.crushable": "puede ser molido", + "create.item_attributes.crushable.inverted": "no puede ser molido", + "create.item_attributes.blastable": "es fundible en el alto horno", + "create.item_attributes.blastable.inverted": "no es fundible en el alto horno", + "create.item_attributes.enchanted": "está encantado", + "create.item_attributes.enchanted.inverted": "no está encantado", + "create.item_attributes.damaged": "está dañado", + "create.item_attributes.damaged.inverted": "no está dañado", + "create.item_attributes.badly_damaged": "está muy dañado", + "create.item_attributes.badly_damaged.inverted": "no está muy dañado", + "create.item_attributes.not_stackable": "no se puede apilar", + "create.item_attributes.not_stackable.inverted": "se puede apilar", + "create.item_attributes.equipable": "se puede equipar", + "create.item_attributes.equipable.inverted": "no se puede equipar", + "create.item_attributes.furnace_fuel": "es combustible para hornos", + "create.item_attributes.furnace_fuel.inverted": "no es combustible para hornos", + "create.item_attributes.in_tag": "está etiquetado %1$s", + "create.item_attributes.in_tag.inverted": "no está etiquetado %1$s", + "create.item_attributes.in_item_group": "está en el grupo '%1$s'", + "create.item_attributes.in_item_group.inverted": "no está en el grupo '%1$s'", + "create.item_attributes.added_by": "fue añadido por %1$s", + "create.item_attributes.added_by.inverted": "no fue añadida por %1$s", + "create.item_attributes.shulker_level": "es shulker %1$s", + "create.item_attributes.shulker_level.inverted": "no es shulker %1$s", + "create.item_attributes.shulker_level.full": "lleno", + "create.item_attributes.shulker_level.empty": "vacío", + "create.item_attributes.shulker_level.partial": "parcialmente lleno", + "create.item_attributes.has_enchant": "está encantado con %1$s", + "create.item_attributes.has_enchant.inverted": "no está encantado con %1$s", + "create.item_attributes.color": "Está teñido %1$s", + "create.item_attributes.color.inverted": "No está teñido %1$s", + "create.item_attributes.max_enchanted": "está encantado en el nivel máximo", + "create.item_attributes.max_enchanted.inverted": "no está encantado en el nivel máximo", + "create.item_attributes.has_fluid": "contiene %1$s", + "create.item_attributes.has_fluid.inverted": "no contiene %1$s", + "create.item_attributes.has_name": "tiene el nombre personalizado %1$s", + "create.item_attributes.has_name.inverted": "no tiene el nombre personalizado %1$s", + "create.item_attributes.book_author": "es obra de %1$s", + "create.item_attributes.book_author.inverted": "no es es obra de %1$s", + "create.item_attributes.book_copy_original": "es un original", + "create.item_attributes.book_copy_original.inverted": "no es un original", + "create.item_attributes.book_copy_first": "es una copia de primera generación", + "create.item_attributes.book_copy_first.inverted": "no es una copia de primera generación", + "create.item_attributes.book_copy_second": "es una copia de segunda generación", + "create.item_attributes.book_copy_second.inverted": "no es una copia de segunda generación", + "create.item_attributes.book_copy_tattered": "es un desordenado desastre", + "create.item_attributes.book_copy_tattered.inverted": "no es un desordenado desastre", + "create.item_attributes.astralsorcery_crystal": "tiene el atributo de cristal %1$s", + "create.item_attributes.astralsorcery_crystal.inverted": "no tiene atributo de cristal %1$s", + "create.item_attributes.astralsorcery_constellation": "está en sintonía con %1$s", + "create.item_attributes.astralsorcery_constellation.inverted": "no está en sintonía con %1$s", + "create.item_attributes.astralsorcery_perk_gem": "tiene el atributo ventaja %1$s", + "create.item_attributes.astralsorcery_perk_gem.inverted": "no tiene el atributo ventaja %1$s", + "create.item_attributes.astralsorcery_amulet": "mejora %1$s", + "create.item_attributes.astralsorcery_amulet.inverted": "no mejora %1$s", + + "create.gui.attribute_filter.no_selected_attributes": "No hay atributos seleccionados", + "create.gui.attribute_filter.selected_attributes": "Atributos seleccionados:", + "create.gui.attribute_filter.add_attribute": "Añadir atributo a la lista", + "create.gui.attribute_filter.add_inverted_attribute": "Añadir atributo invertido a la Lista", + "create.gui.attribute_filter.allow_list_disjunctive": "Lista de permitidos (Cualquiera)", + "create.gui.attribute_filter.allow_list_disjunctive.description": "Los objetos pasan si tienen alguno de los atributos seleccionados", + "create.gui.attribute_filter.allow_list_conjunctive": "Lista de permitidos (Todos)", + "create.gui.attribute_filter.allow_list_conjunctive.description": "Los objetos pasan sólo si tienen TODOS los atributos seleccionados", + "create.gui.attribute_filter.deny_list": "Lista de denegados", + "create.gui.attribute_filter.deny_list.description": "Los objetos pasan si NO tienen ninguno de los atributos seleccionados", + "create.gui.attribute_filter.add_reference_item": "Añadir elemento de referencia", + + "create.tooltip.holdForDescription": "Mantén [%1$s] para mas información", + "create.tooltip.holdForControls": "Mantén [%1$s] para ver los controles", + "create.tooltip.keyShift": "Mayús izdo.", + "create.tooltip.keyCtrl": "Ctrl", + "create.tooltip.speedRequirement": "Requisitos de velocidad: %1$s", + "create.tooltip.speedRequirement.none": "Ninguno", + "create.tooltip.speedRequirement.medium": "Moderado", + "create.tooltip.speedRequirement.high": "Rápido", + "create.tooltip.stressImpact": "Impacto de estrés: %1$s", + "create.tooltip.stressImpact.low": "Bajo", + "create.tooltip.stressImpact.medium": "Moderado", + "create.tooltip.stressImpact.high": "Alto", + "create.tooltip.stressImpact.overstressed": "Sobrecargado", + "create.tooltip.capacityProvided": "Capacidad de estrés: %1$s", + "create.tooltip.capacityProvided.low": "Pequeña", + "create.tooltip.capacityProvided.medium": "Media", + "create.tooltip.capacityProvided.high": "Grande", + "create.tooltip.generationSpeed": "Generada en %1$s %2$s", + "create.tooltip.analogStrength": "Fuerza analógica: %1$s/15", + + "create.mechanical_arm.extract_from": "Extraer objetos de %1$s", + "create.mechanical_arm.deposit_to": "Depositar objetos en %1$s", + "create.mechanical_arm.summary": "El brazo mecánico tiene %1$s entrada(s) y %2$s salida(s)", + "create.mechanical_arm.points_outside_range": "%1$s punto(s) de interacción seleccionado(s) eliminado(s) debido a las limitaciones de rango", + + "create.weighted_ejector.target_set": "Objetivo seleccionado", + "create.weighted_ejector.target_not_valid": "Expulsión al bloque adyacente (el objetivo no era válido)", + "create.weighted_ejector.no_target": "Expulsión al bloque adyacente (no se ha seleccionado ningún objetivo)", + "create.weighted_ejector.targeting": "Expulsión a [%1$s,%2$s,%3$s]", + "create.weighted_ejector.stack_size": "Tamaño de la pila expulsada", + + "create.logistics.when_multiple_outputs_available": "Cuando hay múltiples salidas disponibles", + + "create.mechanical_arm.selection_mode.round_robin": "Round Robin", + "create.mechanical_arm.selection_mode.forced_round_robin": "Round Robin forzado", + "create.mechanical_arm.selection_mode.prefer_first": "Preferir el primero", + + "create.tunnel.selection_mode.split": "División", + "create.tunnel.selection_mode.forced_split": "División forzada", + "create.tunnel.selection_mode.round_robin": "Round Robin", + "create.tunnel.selection_mode.forced_round_robin": "Round Robin forzado", + "create.tunnel.selection_mode.prefer_nearest": "Preferir el más cercano", + "create.tunnel.selection_mode.randomize": "Aleatorizar", + "create.tunnel.selection_mode.synchronize": "Sincronizar entradas", + + "create.tooltip.chute.header": "Información del ducto", + "create.tooltip.chute.items_move_down": "Los objetos se mueven hacia abajo", + "create.tooltip.chute.items_move_up": "Los objetos se mueven hacia arriba", + "create.tooltip.chute.no_fans_attached": "No hay ventiladores adjuntos", + "create.tooltip.chute.fans_push_up": "Los ventiladores empujan desde abajo", + "create.tooltip.chute.fans_push_down": "Los ventiladores empujan desde arriba", + "create.tooltip.chute.fans_pull_up": "Los ventiladores tiran desde arriba", + "create.tooltip.chute.fans_pull_down": "Los ventiladores tiran desde abajo", + "create.tooltip.chute.contains": "Contiene: %1$s x%2$s", + "create.tooltip.brass_tunnel.contains": "Actualmente distribuye:", + "create.tooltip.brass_tunnel.contains_entry": "> %1$s x%2$s", + "create.tooltip.brass_tunnel.retrieve": "Haga clic derecho para recuperar", + + "create.linked_controller.bind_mode": "Modo de enlace activo", + "create.linked_controller.press_keybind": "Presiona %1$s, %2$s, %3$s, %4$s, %5$s o %6$s, para vincular esta frecuencia a la tecla correspondiente", + "create.linked_controller.key_bound": "Frecuencia ligada a %1$s", + "create.linked_controller.frequency_slot_1": "Enlace de teclas: %1$s, Freq. #1", + "create.linked_controller.frequency_slot_2": "Enlace de teclas: %1$s, Freq. #2", + + "create.crafting_blueprint.crafting_slot": "Ranura para ingredientes", + "create.crafting_blueprint.filter_items_viable": "Los objetos del filtro avanzado son viables", + "create.crafting_blueprint.display_slot": "Ranura de pantalla", + "create.crafting_blueprint.inferred": "A partir de la receta", + "create.crafting_blueprint.manually_assigned": "Asignado manualmente", + "create.crafting_blueprint.secondary_display_slot": "Ranura de pantalla secundaria", + "create.crafting_blueprint.optional": "Opcional", + + "create.potato_cannon.ammo.attack_damage": "%1$s Daño de ataque", + "create.potato_cannon.ammo.reload_ticks": "%1$s Recarga por Ticks", + "create.potato_cannon.ammo.knockback": "%1$s Golpe de efecto", + + "create.hint.hose_pulley.title": "Suministro ilimitado", + "create.hint.hose_pulley": "La masa de fluido objetivo se considera infinita.", + "create.hint.mechanical_arm_no_targets.title": "Sin objetivos", + "create.hint.mechanical_arm_no_targets": "Parece que a este _brazo mecánico_ no se le ha asignado ningún objetivo. Selecciona _correas_, _depósitos_, _embudos_ y otros bloques haciendo clic derecho sobre ellos mientras _sostienes_ el _brazo mecánico_ en tu mano..", + "create.hint.empty_bearing.title": "Actualización del rodamiento", + "create.hint.empty_bearing": "Haz clic derecho sobre el rodamiento con la _mano vacía_ para _adjuntar_ la estructura que acabas de construir delante de él.", + "create.hint.full_deployer.title": "Exceso de objetos en el desplegador", + "create.hint.full_deployer": "Parece que este _desplegador_ contiene _exceso_ de objetos que necesitan ser _extraídos._ Usa una _tolva_, _embudo_ u otro medio para liberarlo de su excedente.", + + "create.gui.config.overlay1": "Hola :)", + "create.gui.config.overlay2": "Esta es una muestra de la superposición", + "create.gui.config.overlay3": "Haga clic o arrastre con el ratón", + "create.gui.config.overlay4": "para mover esta vista previa", + "create.gui.config.overlay5": "Pulsar ESC para salir de esta pantalla", + "create.gui.config.overlay6": "y guardar la nueva posición", + "create.gui.config.overlay7": "Ejecute /create overlay reset", + "create.gui.config.overlay8": "para restablecer la posición por defecto", + + "create.command.killTPSCommand": "killtps", + "create.command.killTPSCommand.status.slowed_by.0": "[Crear]: El tick del servidor está actualmente ralentizado en %s ms :o", + "create.command.killTPSCommand.status.slowed_by.1": "[Crear]: El tick del servidor está ralentizado en %s ms ahora >:)", + "create.command.killTPSCommand.status.slowed_by.2": "[Create]: El tick del servidor ha vuelto a su velocidad normal :D", + "create.command.killTPSCommand.status.usage.0": "[Create]: usa /killtps stop para que el servidor vuelva a la velocidad normal", + "create.command.killTPSCommand.status.usage.1": "[Create]: usa /killtps start para ralentizar artificialmente el tick del servidor", + "create.command.killTPSCommand.argument.tickTime": "tickTime", + + "create.contraption.minecart_contraption_too_big": "Este artilugio de vagoneta parece demasiado grande para recogerlo", + "create.contraption.minecart_contraption_illegal_pickup": "Una fuerza mística está atando este artilugio de vagoneta al mundo", + + + "_": "->------------------------] Subtitles [------------------------<-", + + "create.subtitle.contraption_disassemble": "", + "create.subtitle.peculiar_bell_use": "", + "create.subtitle.mixing": "", + "create.subtitle.mechanical_press_activation_belt": "", + "create.subtitle.fwoomp": "", + "create.subtitle.worldshaper_place": "", + "create.subtitle.crushing_1": "", + "create.subtitle.depot_slide": "", + "create.subtitle.saw_activate_stone": "", + "create.subtitle.blaze_munch": "", + "create.subtitle.funnel_flap": "", + "create.subtitle.schematicannon_finish": "", + "create.subtitle.haunted_bell_use": "", + "create.subtitle.scroll_value": "", + "create.subtitle.crafter_craft": "", + "create.subtitle.controller_put": "", + "create.subtitle.cranking": "", + "create.subtitle.wrench_remove": "", + "create.subtitle.cogs": "", + "create.subtitle.slime_added": "", + "create.subtitle.wrench_rotate": "", + "create.subtitle.potato_hit": "", + "create.subtitle.saw_activate_wood": "", + "create.subtitle.haunted_bell_convert": "", + "create.subtitle.deployer_polish": "", + "create.subtitle.deny": "", + "create.subtitle.controller_click": "", + "create.subtitle.schematicannon_launch_block": "", + "create.subtitle.copper_armor_equip": "", + "create.subtitle.controller_take": "Lectern empties", + "create.subtitle.mechanical_press_activation": "", + "create.subtitle.contraption_assemble": "", + "create.subtitle.crafter_click": "", + "create.subtitle.depot_plop": "", + "create.subtitle.confirm": "", + + + "_": "->------------------------] Item Descriptions [------------------------<-", + + "item.create.example_item.tooltip": "EJEMPLO DE ITEM (sólo un marcador de que este tooltip existe)", + "item.create.example_item.tooltip.summary": "Una breve descripción del elemento. Los puntajes bajos resaltan un término", + "item.create.example_item.tooltip.condition1": "Cuando este", + "item.create.example_item.tooltip.behaviour1": "Entonces este elemento hace esto. (los comportamientos se muestran en el turno)", + "item.create.example_item.tooltip.condition2": "Y cuando esto", + "item.create.example_item.tooltip.behaviour2": "Puedes añadir tantos comportamientos como quieras", + "item.create.example_item.tooltip.control1": "Cuando se pulsa [Ctrl]", + "item.create.example_item.tooltip.action1": "Se muestran estos controles", + + "block.create.wooden_bracket.tooltip": "SOPORTE DE MADERA PARA EJES", + "block.create.wooden_bracket.tooltip.summary": "Decora tus _ejes_, _engranajes_ y _ductos_ con un acogedor refuerzo de madera.", + + "block.create.metal_bracket.tooltip": "SOPORTE DE METAL PARA EJES", + "block.create.metal_bracket.tooltip.summary": "Decora tus _ejes_, _engranajes_ y _ductos_ con un poco de refuerzo industrial robusto.", + + "block.create.seat.tooltip": "ASIENTO", + "block.create.seat.tooltip.summary": "¡Siéntate y disfruta del viaje! Anclará a un jugador en un artilugio en movimiento. También es ideal para muebles estáticos. Viene en una variedad de colores.", + "block.create.seat.tooltip.condition1": "Cuando se hace clic derecho en el asiento", + "block.create.seat.tooltip.behaviour1": "Sienta al jugador en el _asiento_. Pulsa Mayús izdo para dejar el asiento.", + + "item.create.blaze_cake.tooltip": "PASTEL DE BLAZE", + "item.create.blaze_cake.tooltip.summary": "Un delicioso regalo para sus esforzados _quemadores de blaze_. ¡Los pone en marcha!.", + + "item.create.wand_of_symmetry.tooltip": "VARITA DE SIMETRÍA", + "item.create.wand_of_symmetry.tooltip.summary": "Refleja perfectamente la colocación de bloques en los planos configurados.", + "item.create.wand_of_symmetry.tooltip.condition1": "Mientras está en el inventario rápido", + "item.create.wand_of_symmetry.tooltip.behaviour1": "Permanece activo.", + "item.create.wand_of_symmetry.tooltip.control1": "Cuando se hace clic derecho en el suelo", + "item.create.wand_of_symmetry.tooltip.action1": "_Crea_ o _mueve_ el espejo.", + "item.create.wand_of_symmetry.tooltip.control2": "Cuando se hace clic derecho en el aire", + "item.create.wand_of_symmetry.tooltip.action2": "_Quita_ el espejo activo.", + "item.create.wand_of_symmetry.tooltip.control3": "Mayús izdo + clic derecho", + "item.create.wand_of_symmetry.tooltip.action3": "Abre la interfaz de configuración.", + + "item.create.handheld_worldshaper.tooltip": "WORLDSHAPER", + "item.create.handheld_worldshaper.tooltip.summary": "Práctica herramienta para crear _paisajes_ y _características del terreno_.", + "item.create.handheld_worldshaper.tooltip.control1": "Cuando se hace clic izquierdo en un bloque", + "item.create.handheld_worldshaper.tooltip.action1": "Establece los bloques colocados por la herramienta en el bloque objetivo.", + "item.create.handheld_worldshaper.tooltip.control2": "Cuando se hace clic derecho en un bloque", + "item.create.handheld_worldshaper.tooltip.action2": "Aplica el _pincel_ y la _herramienta_ actualmente seleccionadas en el lugar deseado.", + "item.create.handheld_worldshaper.tooltip.control3": "Mayús izdo + clic derecho", + "item.create.handheld_worldshaper.tooltip.action3": "Abre la interfaz de configuración.", + + "item.create.tree_fertilizer.tooltip": "FERTILIZANTE PARA ÁRBOLES", + "item.create.tree_fertilizer.tooltip.summary": "Una potente combinación de minerales adecuada para acelerar el crecimiento de los tipos de árboles más comunes.", + "item.create.tree_fertilizer.tooltip.condition1": "Cuando se utiliza en un árbol joven", + "item.create.tree_fertilizer.tooltip.behaviour1": "Hace crecer los árboles _independientemente_ de sus condiciones de _espacio_.", + + "item.create.extendo_grip.tooltip": "AGARRE EXTENDIDO", + "item.create.extendo_grip.tooltip.summary": "¡Boioioing! Aumenta enormemente la _distancia de alcance_ del portador. Se puede alimentar con la presión de aire de un _depósito trasero de cobre_", + "item.create.extendo_grip.tooltip.condition1": "Cuando está fuera de la mano", + "item.create.extendo_grip.tooltip.behaviour1": "Aumenta la _distancia de alcance_ de los objetos usados en la _mano principal_.", + "item.create.extendo_grip.tooltip.condition2": "Mientras se usa un depósito trasero de cobre", + "item.create.extendo_grip.tooltip.behaviour2": "No se utilizará _durabilidad_. En su lugar, la _presión del aire_ se drena desde el tanque", + + "item.create.potato_cannon.tooltip": "CANÓN DE PATATAS", + "item.create.potato_cannon.tooltip.summary": "Fwoomp! Lanza tus verduras caseras a tus enemigos. Se puede alimentar con la presión de aire de un _depósito trasero de cobre_", + "item.create.potato_cannon.tooltip.condition1": "Cuando se usa clic derecho", + "item.create.potato_cannon.tooltip.behaviour1": "_Dispara_ un objeto adecuado desde tu inventario_.", + "item.create.potato_cannon.tooltip.condition2": "Mientras se usa un depósito trasero de cobre", + "item.create.potato_cannon.tooltip.behaviour2": "No se utilizará _durabilidad_. En su lugar, la _presión del aire_ se drena desde el tanque", + + "item.create.filter.tooltip": "FILTRO", + "item.create.filter.tooltip.summary": "Controla las _salidas_ y _entradas_ de los _dispositivos logísticos_ con más precisión, comparándolas con un _conjunto de objetos_ o varios _filtros anidados_.", + "item.create.filter.tooltip.condition1": "Cuando está en la ranura de filtros", + "item.create.filter.tooltip.behaviour1": "Controla el flujo de objetos según su _configuración_.", + "item.create.filter.tooltip.condition2": "Cuando se hace clic derecho", + "item.create.filter.tooltip.behaviour2": "Abre la interfaz de configuración.", + + "item.create.attribute_filter.tooltip": "FILTRO DE ATRIBUTOS", + "item.create.attribute_filter.tooltip.summary": "Controla las _salidas_ y las _entradas_ de los _dispositivos logísticos_ con más precisión, comparándolas con un _conjunto de atributos_ y _categorías_ de objetos.", + "item.create.attribute_filter.tooltip.condition1": "Cuando está en la ranura de filtros", + "item.create.attribute_filter.tooltip.behaviour1": "Controla el flujo de objetos según su _configuración_.", + "item.create.attribute_filter.tooltip.condition2": "Cuando se hace clic derecho", + "item.create.attribute_filter.tooltip.behaviour2": "Abre la interfaz de configuración.", + + "item.create.empty_schematic.tooltip": "ESQUEMA VACÍO", + "item.create.empty_schematic.tooltip.summary": "Se utiliza como 'ingrediente' de las recetas y para escribir en la _tabla de esquemas_.", + + "item.create.schematic.tooltip": "ESQUEMA", + "item.create.schematic.tooltip.summary": "Contiene una estructura para ser posicionada y colocada en el mundo. Posiciona el holograma como desees y utiliza un _cañón de esquemas_ para construirla.", + "item.create.schematic.tooltip.condition1": "Cuando se sostiene en la mano", + "item.create.schematic.tooltip.behaviour1": "Se puede posicionar utilizando las herramientas en pantalla.", + "item.create.schematic.tooltip.control1": "Mayús izdo + clic derecho", + "item.create.schematic.tooltip.action1": "Abre una _interfaz_ para introducir las _coordenadas_ exactas.", + + "item.create.schematic_and_quill.tooltip": "ESQUEMA Y PLUMA", + "item.create.schematic_and_quill.tooltip.summary": "Se utiliza para guardar una estructura de tu mundo en un archivo .nbt.", + "item.create.schematic_and_quill.tooltip.condition1": "Paso 1", + "item.create.schematic_and_quill.tooltip.behaviour1": "Selecciona dos puntos de esquina usando clic derecho.", + "item.create.schematic_and_quill.tooltip.condition2": "Paso 2", + "item.create.schematic_and_quill.tooltip.behaviour2": "[Ctrl] + [RUEDA DEL RATÓN] en las caras para ajustar el tamaño. Clic derecho de nuevo para guardar.", + "item.create.schematic_and_quill.tooltip.control1": "Cuando se hace clic derecho", + "item.create.schematic_and_quill.tooltip.action1": "Selecciona un punto de esquina / confirmar guardar.", + "item.create.schematic_and_quill.tooltip.control2": "Cuando mantiene [Ctrl]", + "item.create.schematic_and_quill.tooltip.action2": "Selecciona puntos en _medio del aire_. Rueda del ratón para ajustar la distancia.", + "item.create.schematic_and_quill.tooltip.control3": "Mayús izdo + clic derecho", + "item.create.schematic_and_quill.tooltip.action3": "_Reinicia_ y elimina la selección.", + + "block.create.schematicannon.tooltip": "CAÑÓN DE ESQUEMAS", + "block.create.schematicannon.tooltip.summary": "Dispara bloques para recrear un _esquema_ desplegado en el mundo. Utiliza objetos de los inventarios adyacentes y _pólvora_ como combustible.", + "block.create.schematicannon.tooltip.condition1": "Cuando se hace clic derecho", + "block.create.schematicannon.tooltip.behaviour1": "Abre la interfaz.", + + "block.create.schematic_table.tooltip": "TABLA DE ESQUEMAS", + "block.create.schematic_table.tooltip.summary": "Escribe los esquemas guardados en un _esquema vacío_.", + "block.create.schematic_table.tooltip.condition1": "Cuando se da un esquema vacío", + "block.create.schematic_table.tooltip.behaviour1": "Carga un archivo elegido de la carpeta de esquemas.", + + "item.create.goggles.tooltip": "GAFAS DEL CONSTRUCTOR", + "item.create.goggles.tooltip.summary": "Un par de gafas para aumentar tu visión con útil información _cinética_.", + "item.create.goggles.tooltip.condition1": "Cuando se llevan puestas", + "item.create.goggles.tooltip.behaviour1": "Muestra _indicadores de color_ correspondientes al _nivel de velocidad_ de un componente cinético colocado, así como el _impacto de estrés_ y la _carga_ de los componentes individuales.", + "item.create.goggles.tooltip.condition2": "Al mirar un medidor", + "item.create.goggles.tooltip.behaviour2": "Muestra información detallada sobre _velocidad_ o _estrés_ de la red a la que está conectado el medidor.", + "item.create.goggles.tooltip.condition3": "Al mirar un contenedor de fluidos", + "item.create.goggles.tooltip.behaviour3": "Muestra información detallada sobre la _carga_ del bloque y los _líquidos_ almacenados en su interior.", + + "item.create.wrench.tooltip": "LLAVE INGLESA", + "item.create.wrench.tooltip.summary": "Una herramienta útil para trabajar en artilugios cinéticos. Se puede utilizar para _rotar_, _desmantelar_ y para _configurar_ componentes.", + "item.create.wrench.tooltip.control1": "Cuando se hace clic derecho en un bloque cinético", + "item.create.wrench.tooltip.action1": "Rota los componentes hacia o desde la cara con la que ha interactuado.", + "item.create.wrench.tooltip.control2": "Mayús izdo + clic derecho", + "item.create.wrench.tooltip.action2": "Desmonta los _componentes cinéticos_ y los devuelve a tu inventario_.", + + "block.create.nozzle.tooltip": "BOQUILLA", + "block.create.nozzle.tooltip.summary": "Se acopla a la parte delantera de un _ventilador revestido_ para distribuir su efecto sobre las entidades en _todas las direcciones_.", + + "block.create.cuckoo_clock.tooltip": "RELOJ DE CUCO", + "block.create.cuckoo_clock.tooltip.summary": "Fina artesanía para decorar un espacio y contar el tiempo.", + "block.create.cuckoo_clock.tooltip.condition1": "Cuando es alimentado por cinética", + "block.create.cuckoo_clock.tooltip.behaviour1": "Muestra la _hora actual_ y toca una melodía dos veces al día. Se activa una vez al mediodía y al anochecer, _en cuanto los jugadores pueden dormir_.", + + "block.create.turntable.tooltip": "PLATAFORMA GIRATORIA", + "block.create.turntable.tooltip.summary": "Convierte la _fuerza rotacional_ en un refinado mareo.", + + "block.create.stockpile_switch.tooltip": "INTERRUPTOR DE ACOPIO", + "block.create.stockpile_switch.tooltip.summary": "Activa una señal de redstone en función de la cantidad de _objetos almacenados_ en el _contenedor_ adjunto. Viene con un práctico filtro. A diferencia de un _comparador, el _interruptor de acopio_ permite la configuración de _umbrales_, a partir de los cuales se invierten las señales.", + "block.create.stockpile_switch.tooltip.condition1": "Cuando se hace clic derecho", + "block.create.stockpile_switch.tooltip.behaviour1": "Abre la interfaz de configuración.", + + "block.create.content_observer.tooltip": "OBSERVADOR DE CONTENIDO", + "block.create.content_observer.tooltip.summary": "_Detecta objetos_ dentro de _contenedores_ y _transportadores_ que coincidan con un _filtro_ configurado. Mientras el _inventario_, la _cinta_ o la _canaleta_ observados _contengan_ un objeto que coincida, este componente emitirá una _señal de redstone_. Cuando un embudo observado _transfiere_ un objeto coincidente, este componente emitirá un _pulso de redstone_.", + + "block.create.adjustable_crate.tooltip": "CAJA AJUSTABLE", + "block.create.adjustable_crate.tooltip.summary": "Este _contenedor de objetos_ permite el control manual de su capacidad. Puede contener hasta _16 pilas_ de cualquier objeto. Soporta _comparadores de redstone_.", + "block.create.adjustable_crate.tooltip.condition1": "Cuando se hace clic derecho", + "block.create.adjustable_crate.tooltip.behaviour1": "Abre la interfaz.", + + "block.create.creative_crate.tooltip": "CAJA CREATIVA", + "block.create.creative_crate.tooltip.summary": "Este _contenedor de objetos_ permite la replicación infinita de cualquier elemento. Colócalo junto a un _cañón de esquemas_ para eliminar cualquier requisito de material.", + "block.create.creative_crate.tooltip.condition1": "Cuando el elemento está en la ranura para filtros", + "block.create.creative_crate.tooltip.behaviour1": "Todo lo que se _extraiga_ de este contenedor proporcionará un suministro _ilimitado_ del elemento especificado. Los objetos _insertados_ en esta caja serán _evitados_.", + + "item.create.creative_blaze_cake.tooltip": "PASTEL CREATIVO", + "item.create.creative_blaze_cake.tooltip.summary": "Un regalo muy especial para los _Quemadores de Blaze_ que permite _controlar su nivel de calor_. Después de comer este pastel, los Quemadores de blaze _nunca se quedarán sin combustible_.", + "item.create.creative_blaze_cake.tooltip.condition1": "Click derecho en un Quemador de blaze", + "item.create.creative_blaze_cake.tooltip.behaviour1": "Bloquea el nivel de calor del Quemador de blaze. Si se utiliza de nuevo, _cicla_ el nivel de calor del Quemador de blaze.", + + "block.create.controller_rail.tooltip": "RAÍL DE CONTROL", + "block.create.controller_rail.tooltip.summary": "Un raíl energizado _unidireccional_ capaz de _controlar con precisión_ la _velocidad de movimiento_ de una vagoneta.", + "block.create.controller_rail.tooltip.condition1": "Cuando es alimentado con redstone", + "block.create.controller_rail.tooltip.behaviour1": "_Acelera_ o _desacelera_ pasando _vagonetas_ correspondientes a la _fuerza de la señal_. Propaga la energía de redstone a los raíles de control adyacentes. Al alimentar dos raíles de control con diferentes intensidades, los carriles entre ellos interpolarán su señal.", + + "item.create.sand_paper.tooltip": "PAPEL DE LIJA", + "item.create.sand_paper.tooltip.summary": "Un papel rugoso que se puede utilizar para _pulir materiales_. Se puede aplicar automáticamente con el _desplegador_.", + "item.create.sand_paper.tooltip.condition1": "Cuando se usa", + "item.create.sand_paper.tooltip.behaviour1": "Aplica un pulido a los objetos sostenidos en la _mano libre_ o tirados en el _suelo_ cuando se _miran_.", + + "item.create.builders_tea.tooltip": "TÉ DEL CONSTRUCTOR", + "item.create.builders_tea.tooltip.summary": "La bebida perfecta para empezar el día. Motivante y saturante.", + + "item.create.refined_radiance.tooltip": "RESPLANDOR REFINADO", + "item.create.refined_radiance.tooltip.summary": "Un material cromático forjado a partir de la _luz absorbida_.", + "item.create.refined_radiance.tooltip.condition1": "Trabajo en progreso", + "item.create.refined_radiance.tooltip.behaviour1": "Los usos para este material estarán disponibles en un próximo lanzamiento.", + + "item.create.shadow_steel.tooltip": "ACERO SOMBRÍO", + "item.create.shadow_steel.tooltip.summary": "Un material cromático forjado en el _vacío_.", + "item.create.shadow_steel.tooltip.condition1": "Trabajo en curso", + "item.create.shadow_steel.tooltip.behaviour1": "Los usos de este material estarán disponibles en una futura versión.", + + "item.create.linked_controller.tooltip": "CONTROLADOR ENLAZADO", + "item.create.linked_controller.tooltip.summary": "Permite el control manual de las frecuencias de _enlaces de redstone_ asignadas a sus seis botones..", + "item.create.linked_controller.tooltip.condition1": "Al hacer clic derecho", + "item.create.linked_controller.tooltip.behaviour1": "Activa el _controlador_. Los _controles de movimiento_ se adquieren mientras está activo.", + "item.create.linked_controller.tooltip.condition2": "Al usar Mayús izdo + clic derecho", + "item.create.linked_controller.tooltip.behaviour2": "Abre la interfaz de configuración manual.", + "item.create.linked_controller.tooltip.condition3": "Al usar clic derecho en un receptor de enlaces de redstone", + "item.create.linked_controller.tooltip.behaviour3": "Activa el _modo de vinculación_, pulsa uno de los _seis controles_ para vincularlo a la _frecuencia de los enlaces_.", + "item.create.linked_controller.tooltip.condition4": "Clic derecho en un atril", + "item.create.linked_controller.tooltip.behaviour4": "Coloca el controlador en el atril para facilitar su activación. (Clic derecho + mayús izq. para recuperarlo)", + + "item.create.diving_helmet.tooltip": "CASCO DE BUCEO", + "item.create.diving_helmet.tooltip.summary": "Junto con un _depósito trasero de cobre_, permite que el usuario pueda respirar bajo el agua durante un tiempo prolongado.", + "item.create.diving_helmet.tooltip.condition1": "Cuando se lleva puesto", + "item.create.diving_helmet.tooltip.behaviour1": "Proporciona el efecto de _respiración acuática_, drenando lentamente la presión de aire del _depósito trasero_.", + + "item.create.copper_backtank.tooltip": "DEPÓSITO TRASERO DE COBRE", + "item.create.copper_backtank.tooltip.summary": "Un tanque portátil para transportar _aire presurizado_.", + "item.create.copper_backtank.tooltip.condition1": "Cuando se lleva puesto", + "item.create.copper_backtank.tooltip.behaviour1": "Proporciona _aire presurizado_ a los equipos que lo requieran.", + "item.create.copper_backtank.tooltip.condition2": "Cuando se coloca y es alimentado por cinética", + "item.create.copper_backtank.tooltip.behaviour2": "Recoge _aire presurizado_ a un ritmo que depende de la velocidad rotacional.", + + "item.create.diving_boots.tooltip": "BOTAS DE BUCEO", + "item.create.diving_boots.tooltip.summary": "Un par de _botas_ pesadas, que permiten atravesar mejor el suelo del océano.", + "item.create.diving_boots.tooltip.condition1": "Cuando se llevan puestas", + "item.create.diving_boots.tooltip.behaviour1": "El portador se hunde rápido y no puede nadar. Concede la capacidad de caminar y saltar bajo el agua. Al portador no le afectarán las _correas mecánicas.", + + "item.create.crafting_blueprint.tooltip": "PLANO DE ELABORACIÓN", + "item.create.crafting_blueprint.tooltip.summary": "Colocado en una pared, puede utilizarse para especificar la disposición de los ingredientes para facilitar la elaboración manual. Cada ranura representa una receta", + "item.create.crafting_blueprint.condition1": "Al hacer clic derecho en una ranura vacía", + "item.create.crafting_blueprint.behaviour1": "Abre un menú que permite configurar una receta y los objetos a mostrar.", + "item.create.crafting_blueprint.condition2": "Al hacer clic derecho en una ranura configurada", + "item.create.crafting_blueprint.behaviour2": "Aplica la receta configurada con los ingredientes que se encuentran en tu inventario. Se puede utilizar para fabricar hasta una pila de objetos.", + + "item.create.minecart_coupling.tooltip": "ENSAMBLADOR DE VAGONETAS", + "item.create.minecart_coupling.tooltip.summary": "_Encadena_ todas tus _vagonetas_ o _artilugios de vagoneta_ para formar un majestuoso _tren_.", + "item.create.minecart_coupling.tooltip.condition1": "Cuando se utiliza en vagonetas", + "item.create.minecart_coupling.tooltip.behaviour1": "_Acopla_ dos vagonetas, intentando mantenerlas a una _distancia constante_ mientras se mueven.", + + "block.create.peculiar_bell.tooltip": "CAMPANA PECULIAR", + "block.create.peculiar_bell.tooltip.summary": "Una campana decorativa de latón. Al colocarla sobre un _Fuego del alma_ o una _Fogata del alma_ puede producirse una transformación espeluznante...", + + "block.create.haunted_bell.tooltip": "CAMPANA ENCANTADA", + "block.create.haunted_bell.tooltip.summary": "Una _campana maldita_ perseguida por las almas perdidas del Nether", + "block.create.haunted_bell.tooltip.condition1": "Cuando se sostiene o suena", + "block.create.haunted_bell.tooltip.behaviour1": "Resalta los _puntos sin luz_ cercanos en los que pueden aparecer las _criaturas hostiles_.", + + + "_": "->------------------------] Ponder Content [------------------------<-", + + "create.ponder.hold_to_ponder": "Mantén [%1$s] para considerar", + "create.ponder.subject": "Tema de esta escena", + "create.ponder.pondering": "Considerando sobre...", + "create.ponder.identify_mode": "Identificando modo activo.\nDespausea con [%1$s]", + "create.ponder.associated": "Entradas asociadas", + "create.ponder.close": "Cerrar", + "create.ponder.identify": "Identificar", + "create.ponder.next": "Escena siguiente", + "create.ponder.previous": "Escena previa", + "create.ponder.replay": "Repetición", + "create.ponder.think_back": "Volver atrás", + "create.ponder.slow_text": "Lectura cómoda", + "create.ponder.exit": "Salir", + "create.ponder.welcome": "Bienvenido al instructivo de Create", + "create.ponder.categories": "Categorías disponibles", + "create.ponder.index_description": "Haga clic en uno de los iconos para conocer sus objetos y bloques asociados", + "create.ponder.index_title": "Índice", + "create.ponder.shared.rpm16": "16 RPM", + "create.ponder.shared.behaviour_modify_wrench": "Este comportamiento puede modificarse mediante una llave inglesa", + "create.ponder.shared.storage_on_contraption": "Los inventarios unidos al artilugio recogerán sus producciones automáticamente", + "create.ponder.shared.sneak_and": "Mayús izdo. +", + "create.ponder.shared.rpm8": "8 RPM", + "create.ponder.shared.ctrl_and": "Ctrl +", + "create.ponder.shared.rpm32": "32 RPM", + "create.ponder.shared.rpm16_source": "Fuente: 16 RPM", + "create.ponder.shared.movement_anchors": "Con la ayuda de un chasis o pegamento, se pueden mover estructuras más grandes.", + "create.ponder.tag.redstone": "Componentes lógicos", + "create.ponder.tag.redstone.description": "Componentes que ayudan a la ingeniería de redstone", + "create.ponder.tag.contraption_assembly": "Utilidades para adjuntar bloques", + "create.ponder.tag.contraption_assembly.description": "Herramientas y componentes utilizados para montar estructuras con movimiento, como un artilugio animado", + "create.ponder.tag.fluids": "Manipuladores de fluidos", + "create.ponder.tag.fluids.description": "Componentes que ayudan a transportar y utilizar fluidos", + "create.ponder.tag.decoration": "Estética", + "create.ponder.tag.decoration.description": "Componentes utilizados principalmente con fines decorativos", + "create.ponder.tag.windmill_sails": "Velas para los rodamientos de los molinos de viento", + "create.ponder.tag.windmill_sails.description": "Bloques que cuentan para la fuerza de un artefacto de molino de viento cuando se ensamblan. Cada uno de ellos tiene la misma eficacia al hacerlo.", + "create.ponder.tag.arm_targets": "Objetivos para los brazos mecánicos", + "create.ponder.tag.arm_targets.description": "Componentes que pueden seleccionarse como entradas o salidas del brazo mecánico", + "create.ponder.tag.kinetic_appliances": "Dispositivos cinéticos", + "create.ponder.tag.kinetic_appliances.description": "Componentes que utilizan la fuerza rotacional", + "create.ponder.tag.kinetic_sources": "Fuentes cinéticas", + "create.ponder.tag.kinetic_sources.description": "Componentes que generan fuerza rotacional", + "create.ponder.tag.movement_anchor": "Anclas de movimiento", + "create.ponder.tag.movement_anchor.description": "Componentes que permiten crear artilugios en movimiento, animando una estructura anexa de diversas maneras", + "create.ponder.tag.kinetic_relays": "Transmisores cinéticos", + "create.ponder.tag.kinetic_relays.description": "Componentes que ayudan a transmitir la fuerza rotacional en otro lugar", + "create.ponder.tag.contraption_actor": "Actores del artilugio", + "create.ponder.tag.contraption_actor.description": "Componentes que exponen un comportamiento especial cuando están unidos a un artilugio en movimiento", + "create.ponder.tag.creative": "Modo creativo", + "create.ponder.tag.creative.description": "Componentes que no suelen estar disponibles para el Modo Supervivencia", + "create.ponder.tag.logistics": "Transporte de objetos", + "create.ponder.tag.logistics.description": "Componentes que ayudan a desplazar los objetos", + + "create.ponder.adjustable_pulse_repeater.header": "Controlar señales mediante repetidores de pulsos ajustables", + "create.ponder.adjustable_pulse_repeater.text_1": "Los repetidores de pulsos ajustables emiten un pulso corto con un retardo", + "create.ponder.adjustable_pulse_repeater.text_2": "Con la rueda del ratón se puede configurar el tiempo de carga", + "create.ponder.adjustable_pulse_repeater.text_3": "Los retrasos configurados pueden ser de hasta 30 minutos", + + "create.ponder.adjustable_repeater.header": "Controlar señales mediante repetidores ajustables", + "create.ponder.adjustable_repeater.text_1": "Los repetidores ajustables se comportan de forma similar a los repetidores normales", + "create.ponder.adjustable_repeater.text_2": "Se cargan durante un tiempo determinado...", + "create.ponder.adjustable_repeater.text_3": "...y se enfrían durante el mismo tiempo", + "create.ponder.adjustable_repeater.text_4": "Con la rueda del ratón se puede configurar el tiempo de carga", + "create.ponder.adjustable_repeater.text_5": "Los retrasos configurados pueden variar hasta 30 minutos", + + "create.ponder.analog_lever.header": "Controlar señales mediante la palanca analógica", + "create.ponder.analog_lever.text_1": "Las palancas analógicas son una fuente compacta y precisa de energía de redstone", + "create.ponder.analog_lever.text_2": "Haz clic derecho para aumentar su potencia analógica", + "create.ponder.analog_lever.text_3": "Usa Mayús izdo + clic derecho para volver a disminuir su potencia", + + "create.ponder.andesite_tunnel.header": "Usar túneles de andesita", + "create.ponder.andesite_tunnel.text_1": "Los túneles de andesita se pueden utilizar para tapar las correas", + "create.ponder.andesite_tunnel.text_2": "Siempre que un túnel de andesita tenga conexiones a los lados...", + "create.ponder.andesite_tunnel.text_3": "...dividirá exactamente un elemento de cualquier pila que pase", + "create.ponder.andesite_tunnel.text_4": "El resto continuará su camino", + + "create.ponder.basin.header": "Procesar objetos en la cuenca", + "create.ponder.basin.text_1": "Una cuenca puede contener objetos y fluidos para su procesamiento", + "create.ponder.basin.text_2": "Después de un paso de procesamamiento, las cuencas intentan descargar por debajo a un lado de ellas", + "create.ponder.basin.text_3": "Cuando un ingrediente válido está presente, la cuenca mostrará un conducto de salida", + "create.ponder.basin.text_4": "Aquí se pueden aplicar varias opciones", + "create.ponder.basin.text_5": "Las salidas serán capturadas por el inventario que está por debajo", + "create.ponder.basin.text_6": "Sin conducto de salida, la cuenca retendrá los objetos creados en su procesamiento", + "create.ponder.basin.text_7": "Esto puede ser útil si las salidas deben ser reutilizadas como ingredientes", + "create.ponder.basin.text_8": "Las salidas deseadas tendrán que ser extraídas de la cuenca", + "create.ponder.basin.text_9": "Podría ser necesario un filtro para evitar sacar los objetos no procesados", + + "create.ponder.bearing_modes.header": "Modos de movimiento del rodamiento mecánico", + "create.ponder.bearing_modes.text_1": "Cuando se detenga, el rodamiento mecánico colocará la estructura en el ángulo más cercano alineado con la cuadrícula", + "create.ponder.bearing_modes.text_2": "Se puede configurar para que nunca vuelva a los bloques sólidos, o sólo cerca del ángulo en el que comenzó", + + "create.ponder.belt_casing.header": "Correas revestidas", + "create.ponder.belt_casing.text_1": "Se puede utilizar revestidor de latón o andesita para decorar las correas", + "create.ponder.belt_casing.text_2": "Se puede utilizar una llave inglesa para quitar el revestimiento", + + "create.ponder.belt_connector.header": "El uso de las correas mecánicas", + "create.ponder.belt_connector.text_1": "Al hacer clic derecho en dos ejes con una correa mecánica se conectarán entre sí", + "create.ponder.belt_connector.text_2": "Las selecciones accidentales pueden ser canceladas con Mayús izdo + clic derecho", + "create.ponder.belt_connector.text_3": "Se pueden añadir ejes adicionales en toda la correa", + "create.ponder.belt_connector.text_4": "Los ejes conectados a través de correas girarán con velocidad y dirección idénticas", + "create.ponder.belt_connector.text_5": "Los ejes añadidos se pueden quitar con la llave inglesa", + "create.ponder.belt_connector.text_6": "Las correas mecánicas se pueden teñir con fines estéticos", + + "create.ponder.belt_directions.header": "Orientaciones válidas para las correas mecánicas", + "create.ponder.belt_directions.text_1": "Las correas mecánicas no pueden conectarse en direcciones arbitrarias", + "create.ponder.belt_directions.text_2": "1. Pueden conectarse horizontalmente", + "create.ponder.belt_directions.text_3": "2. Pueden conectarse en diagonal", + "create.ponder.belt_directions.text_4": "3. Pueden conectarse verticalmente", + "create.ponder.belt_directions.text_5": "4. Y pueden conectar ejes verticales horizontalmente", + "create.ponder.belt_directions.text_6": "Estas son todas las direcciones posibles. Pueden abarcar cualquier longitud entre 2 y 20 bloques", + + "create.ponder.belt_transport.header": "El uso de las correas mecánicas para la logística", + "create.ponder.belt_transport.text_1": "Las correas mecánicas transportan objetos y otras entidades", + "create.ponder.belt_transport.text_2": "Haz clic derecho con la mano vacía para sacar objetos de una 'cinta'", + + "create.ponder.blaze_burner.header": "Alimentar quemadores de blaze", + "create.ponder.blaze_burner.text_1": "Los quemadores de blaze pueden proporcionar calor a los objetos procesados en una cuenca", + "create.ponder.blaze_burner.text_2": "Para ello, el blaze tiene que ser alimentado con objetos inflamables", + "create.ponder.blaze_burner.text_3": "Con un pastel de blaze, el quemador puede alcanzar un mayor nivel de calor", + "create.ponder.blaze_burner.text_4": "El proceso de alimentación puede automatizarse utilizando desplegadores o brazos mecánicos", + + "create.ponder.brass_funnel.header": "El embudo de latón", + "create.ponder.brass_funnel.text_1": "Los embudos de andesita sólo pueden extraer objetos individuales", + "create.ponder.brass_funnel.text_2": "Los embudos de latón pueden extraer hasta una pila completa", + "create.ponder.brass_funnel.text_3": "Usar la rueda de desplazamiento del ratón en la ranura para filtros permite un control preciso del tamaño de la pila extraída.", + "create.ponder.brass_funnel.text_4": "El uso de objetos en la ranura de filtrado restringirá el embudo para transferir sólo las pilas que coincidan.", + + "create.ponder.brass_tunnel.header": "Usar túneles de latón", + "create.ponder.brass_tunnel.text_1": "Los túneles de latón pueden utilizarse para tapar las correas", + "create.ponder.brass_tunnel.text_2": "Tienen ranuras de filtro en cada lado abierto", + "create.ponder.brass_tunnel.text_3": "Los filtros en las conexiones de entrada simplemente bloquean los objetos que no coincidan", + "create.ponder.brass_tunnel.text_4": "Los filtros en las conexiones de salida pueden utilizarse para ordenar los objetos por tipo", + "create.ponder.brass_tunnel.text_5": "Siempre que un objeto de paso tenga múltiples salidas válidas, el modo de distribución decidirá cómo manejarlo", + "create.ponder.brass_tunnel.text_6": "Los túneles de latón en bandas paralelas formarán un grupo", + "create.ponder.brass_tunnel.text_7": "Los objetos entrantes se distribuirán ahora por todas las salidas conectadas", + "create.ponder.brass_tunnel.text_8": "Para ello, los objetos también pueden insertarse en el bloque del túnel directamente", + + "create.ponder.brass_tunnel_modes.header": "Modos de distribución del túnel de latón", + "create.ponder.brass_tunnel_modes.text_1": "Mediante una llave inglesa se puede configurar el comportamiento de distribución de los túneles de latón", + "create.ponder.brass_tunnel_modes.text_10": "'Sincronizar entradas' es una configuración única de los túneles de latón", + "create.ponder.brass_tunnel_modes.text_11": "Las entradas sólo pueden pasar si cada túnel del grupo tiene una en espera", + "create.ponder.brass_tunnel_modes.text_12": "Esto asegura que todas las correas afectadas suministren objetos al mismo tiempo", + "create.ponder.brass_tunnel_modes.text_2": "El modo División intentará distribuir la pila uniformemente entre las salidas disponibles", + "create.ponder.brass_tunnel_modes.text_3": "Si una salida no puede tomar más objetos, se saltará", + "create.ponder.brass_tunnel_modes.text_4": "El modo División forzada nunca saltará las salidas, y en su lugar esperará hasta que estén libres", + "create.ponder.brass_tunnel_modes.text_5": "El modo Round Robin mantiene las pilas enteras, y recorre las salidas de forma iterativa", + "create.ponder.brass_tunnel_modes.text_6": "Una vez más, si una salida no puede aceptar más objetos, se saltará", + "create.ponder.brass_tunnel_modes.text_7": "El modo Round Robin forzado nunca omite salidas", + "create.ponder.brass_tunnel_modes.text_8": "El modo Preferir el más cercano prioriza las salidas más cercanas a la ubicación de entrada de los objetos", + "create.ponder.brass_tunnel_modes.text_9": "El modo Aleatorizar distribuirá pilas enteras a salidas elegidas al azar", + + "create.ponder.cart_assembler.header": "Mover estructuras usando ensambladores de vagonetas", + "create.ponder.cart_assembler.text_1": "Los ensambladores de vagonetas montan estructuras adjuntas a las vagonetas que pasan", + "create.ponder.cart_assembler.text_2": "Sin una señal de redstone, desmonta los artilugios de vagoneta que pasan de nuevo en bloques", + "create.ponder.cart_assembler.text_3": "El uso de una llave inglesa en una vagoneta te permitirá llevar el artilugio a otro lugar", + + "create.ponder.cart_assembler_dual.header": "Ensamblajes de artilugios de vagoneta", + "create.ponder.cart_assembler_dual.text_1": "Siempre que dos ensambladores de vagoneta compartan una estructura adjunta...", + "create.ponder.cart_assembler_dual.text_2": "...al alimentar a cualquiera de ellos se creará un artilugio de vagoneta", + "create.ponder.cart_assembler_dual.text_3": "Las vagonetas se comportarán como las conectadas a través del acoplamiento de vagoneta", + + "create.ponder.cart_assembler_modes.header": "Configurar la orientación de los artilugios de vagonetas", + "create.ponder.cart_assembler_modes.text_1": "Los artilugios de vagonetas girarán para orientarse hacia el movimiento de sus vagonetas", + "create.ponder.cart_assembler_modes.text_2": "Esta flecha indica qué lado de la estructura se considerará la parte delantera", + "create.ponder.cart_assembler_modes.text_3": "Si el ensamblador está configurado para bloquear la rotación, la orientación de los artilugios nunca cambiará", + + "create.ponder.cart_assembler_rails.header": "Otros tipos de vagonetas y raíles", + "create.ponder.cart_assembler_rails.text_1": "Los ensambladores de vagonetas en raíles normales no afectarán el movimiento de las vagonetas que pasen", + "create.ponder.cart_assembler_rails.text_2": "Cuando se encuentre en un raíl motorizado o en un raíl de control, las vagonetas se mantendrán en su sitio hasta que sea motorizado", + "create.ponder.cart_assembler_rails.text_3": "Se pueden utilizar otros tipos de vagonetas como anclaje", + "create.ponder.cart_assembler_rails.text_4": "Los artilugios de vagonetas de horno se mantendrán alimentados a sí mismos, sacando combustible de cualquier inventario adjunto", + + "create.ponder.chain_drive.header": "Transmitir fuerza rotacional con las cadenas de transmisión", + "create.ponder.chain_drive.text_1": "Las cadenas de transmisión transmiten la rotación entre sí en fila", + "create.ponder.chain_drive.text_2": "Todos los ejes conectados así girarán en la misma dirección", + "create.ponder.chain_drive.text_3": "Cualquier parte de la fila puede girar 90 grados usando una llave inglesa", + + "create.ponder.chain_gearshift.header": "Controlar la velocidad de rotación con la cadena de transmisión ajustable", + "create.ponder.chain_gearshift.text_1": "Las cadenas de transmisión ajustables sin alimentación se comportan exactamente como las cadenas de transmisión", + "create.ponder.chain_gearshift.text_2": "Cuando están alimentadas, la velocidad transmitida a las demás cadenas de transmisión de la fila se duplica", + "create.ponder.chain_gearshift.text_3": "Siempre que la cadena de transmisión alimentada no esté en el origen, su velocidad se reducirá a la mitad", + "create.ponder.chain_gearshift.text_4": "En ambos casos, las cadenas de transmisión de la fila siempre funcionan a 2 veces la velocidad de la cadena de transmisión alimentada", + "create.ponder.chain_gearshift.text_5": "Utilizando señales analógicas, la relación puede ajustarse con mayor precisión, entre 1 y 2", + "create.ponder.chain_gearshift.text_6": "12 RPM", + + "create.ponder.chute.header": "Transportar objetos hacia abajo a través de ductos", + "create.ponder.chute.text_1": "Los ductos pueden transportar objetos verticalmente desde y hacia los inventarios", + "create.ponder.chute.text_2": "Usando la llave inglesa, se puede crear una ventana", + "create.ponder.chute.text_3": "Colocar ductos apuntando a las caras laterales de otro lo hará en diagonal", + + "create.ponder.chute_upward.header": "Transportar objetos hacia arriba mediante ductos", + "create.ponder.chute_upward.text_1": "Usando ventiladores revestidos en la parte superior o inferior, un ducto puede transportar objetos hacia arriba", + "create.ponder.chute_upward.text_2": "Al inspeccionar los ductos con las gafas del constructor, se revela información sobre la dirección del movimiento", + "create.ponder.chute_upward.text_3": "En el extremo 'bloqueado', los objetos tendrán que ser insertados/tomados de los lados", + + "create.ponder.clockwork_bearing.header": "Animar estructuras con rodamientos tipo reloj", + "create.ponder.clockwork_bearing.text_1": "Los rodamientos tipo reloj se fijan a los bloques que tienen delante", + "create.ponder.clockwork_bearing.text_2": "Al recibir fuerza rotacional, la estructura girará según la hora del día", + "create.ponder.clockwork_bearing.text_3": "3:00", + "create.ponder.clockwork_bearing.text_4": "4:00", + "create.ponder.clockwork_bearing.text_5": "Haz clic derecho en el rodamiento para iniciar o detener la animación de la estructura", + "create.ponder.clockwork_bearing.text_6": "Delante de la manecilla de las horas se puede añadir una segunda estructura", + "create.ponder.clockwork_bearing.text_7": "Asegúrese de que las dos estructuras no están unidas entre sí con pegamento o algo similar", + "create.ponder.clockwork_bearing.text_8": "La segunda estructura ahora girará como el minutero", + + "create.ponder.clutch.header": "Controlar la fuerza rotacional mediante un embrague", + "create.ponder.clutch.text_1": "Los embragues transmitirán la rotación en línea recta", + "create.ponder.clutch.text_2": "Cuando se alimentan con redstone, rompen la conexión", + + "create.ponder.cog_speedup.header": "Cambiar de marchas con engranajes", + "create.ponder.cog_speedup.text_1": "Los engranajes grandes y pequeños pueden conectarse en diagonal", + "create.ponder.cog_speedup.text_2": "Al cambiar de engranajes grandes a pequeños, la velocidad rotacional se duplicará", + "create.ponder.cog_speedup.text_3": "Inversamente, la velocidad rotacional se reducirá a la mitad", + + "create.ponder.cogwheel.header": "Transmitir fuerza rotacional mediante engranajes", + "create.ponder.cogwheel.text_1": "Los engranajes transmitirán la rotación a otros engranajes adyacentes", + "create.ponder.cogwheel.text_2": "Los ejes adyacentes conectados así, girarán en direcciones opuestas", + + "create.ponder.creative_fluid_tank.header": "Tanque de fluídos creativo", + "create.ponder.creative_fluid_tank.text_1": "Los depósitos de fluidos creativos pueden utilizarse para proporcionar un suministro de fluidos sin fondo", + "create.ponder.creative_fluid_tank.text_2": "Haga clic con el botón derecho en un elemento que contenga fluido para configurarlo", + "create.ponder.creative_fluid_tank.text_3": "Las redes de tuberías pueden ahora extraer sin cesar el fluido asignado del depósito", + "create.ponder.creative_fluid_tank.text_4": "Cualquier fluido empujado de vuelta a un tanque de fluido creativo será anulado", + + "create.ponder.creative_motor.header": "Generar fuerza rotacional con motores creativos", + "create.ponder.creative_motor.text_1": "Los motores creativos son una fuente compacta y configurable de fuerza rotacional", + "create.ponder.creative_motor.text_2": "Usar la rueda de desplazamiento del ratón en su parte trasera cambia las RPM de la salida rotacional", + + "create.ponder.crushing_wheels.header": "Procesar objetos con las ruedas trituradoras", + "create.ponder.crushing_wheels.text_1": "Un par de ruedas trituradoras pueden moler objetos de forma muy eficaz", + "create.ponder.crushing_wheels.text_2": "Su fuerza rotacional tiene que hacerlas girar una contra otra", + "create.ponder.crushing_wheels.text_3": "Los objetos lanzados o insertados en la parte superior serán procesados", + "create.ponder.crushing_wheels.text_4": "Los objetos también pueden ser insertados y recogidos a través de medios automatizados", + + "create.ponder.deployer.header": "Usar el desplegador", + "create.ponder.deployer.text_1": "Dada la fuerza rotacional, un desplegador puede imitar las interacciones de los jugadores", + "create.ponder.deployer.text_10": "Haz clic derecho en el frente para darle un objeto a utilizar", + "create.ponder.deployer.text_11": "Los objetos también pueden ser insertados automáticamente", + "create.ponder.deployer.text_12": "Los desplegadores llevan una ranura de filtro", + "create.ponder.deployer.text_13": "Cuando se establece un filtro, sólo se activa mientras se mantiene un elemento coincidente", + "create.ponder.deployer.text_14": "Ahora sólo se pueden insertar los objetos que coincidan con el filtro...", + "create.ponder.deployer.text_15": "...y sólo se extraerán los objetos que no coincidan", + "create.ponder.deployer.text_2": "Siempre interactuará con la posición 2 bloques delante de sí mismo", + "create.ponder.deployer.text_3": "Los bloques situados directamente delante no lo obstruirán", + "create.ponder.deployer.text_4": "Los desplegadores pueden:", + "create.ponder.deployer.text_5": "Colocar bloques,", + "create.ponder.deployer.text_6": "Usar objetos,", + "create.ponder.deployer.text_7": "Activar bloques,", + "create.ponder.deployer.text_8": "Cosechar bloques", + "create.ponder.deployer.text_9": "Y atacar criaturas", + + "create.ponder.deployer_contraption.header": "Usar desplegadores en artilugios", + "create.ponder.deployer_contraption.text_1": "Siempre que los desplegadores se muevan como parte de un artilugio animado...", + "create.ponder.deployer_contraption.text_2": "Se activan en cada ubicación visitada, utilizando objetos de los inventarios de cualquier parte del artilugio", + "create.ponder.deployer_contraption.text_3": "La ranura para filtros se puede utilizar para especificar qué objetos tirar", + + "create.ponder.deployer_modes.header": "Modos del desplegador", + "create.ponder.deployer_modes.text_1": "Por defecto, un desplegador imita la interacción del clic derecho del ratón", + "create.ponder.deployer_modes.text_2": "Usando una llave inglesa, se puede configurar para imitar un clic izquierdo en su lugar", + + "create.ponder.deployer_processing.header": "Procesar objetos mediante desplegadores", + "create.ponder.deployer_processing.text_1": "Con un objeto de sujeción ajustado, los desplegadores pueden procesar los objetos proporcionados por debajo de ellos", + "create.ponder.deployer_processing.text_2": "Los objetos de entrada pueden soltarse o colocarse en un depósito bajo el desplegador", + "create.ponder.deployer_processing.text_3": "Cuando los objetos se proporcionan en una 'cinta'...", + "create.ponder.deployer_processing.text_4": "El desplegador los retendrá y procesará automáticamente", + + "create.ponder.deployer_redstone.header": "Controlar desplegadores con redstone", + "create.ponder.deployer_redstone.text_1": "Al controlar los desplegadores con redstone, éstos no se activarán", + "create.ponder.deployer_redstone.text_2": "Antes de detenerse, el desplegador terminará cualquier ciclo iniciado", + "create.ponder.deployer_redstone.text_3": "Por lo tanto, un pulso negativo puede ser utilizado para desencadenar exactamente un ciclo de activación", + + "create.ponder.depot.header": "Usar depósitos", + "create.ponder.depot.text_1": "Los depósitos pueden servir como objetos 'fijos' de la correa", + "create.ponder.depot.text_2": "Haz clic derecho para colocar o eliminar manualmente objetos del mismo", + "create.ponder.depot.text_3": "Al igual que las correas mecánicas, pueden proporcionar objetos para su procesamiento", + "create.ponder.depot.text_4": "...así como proporcionar objetos a los brazos mecánicos", + + "create.ponder.empty_blaze_burner.header": "Usar quemadores de blaze vacíos", + "create.ponder.empty_blaze_burner.text_1": "Haz clic derecho en un blaze con el quemador vacío para capturarlo", + "create.ponder.empty_blaze_burner.text_2": "Alternativamente, los blaze pueden ser recogidos de sus spawners directamente", + "create.ponder.empty_blaze_burner.text_3": "Ahora tienes una fuente de calor ideal para varias máquinas", + "create.ponder.empty_blaze_burner.text_4": "Por motivos estéticos, los quemadores de blaze vacíos también se pueden encender con pedernal y acero", + "create.ponder.empty_blaze_burner.text_5": "La llama puede transformarse utilizando un objeto con alma", + "create.ponder.empty_blaze_burner.text_6": "Sin embargo, no son adecuados para la calefacción industrial", + + "create.ponder.encased_fluid_pipe.header": "Revestir tuberías de fluídos", + "create.ponder.encased_fluid_pipe.text_1": "El revestidor de cobre puede utilizarse para decorar las tuberías de fluidos", + "create.ponder.encased_fluid_pipe.text_2": "Además de estar ocultas, las tuberías revestidas están bloqueadas en su estado de conectividad", + "create.ponder.encased_fluid_pipe.text_3": "Ya no reaccionará a los bloques vecinos que se añadan o eliminen", + + "create.ponder.fan_direction.header": "El flujo de aire de los ventiladores revestidos", + "create.ponder.fan_direction.text_1": "Los ventiladores revestidos utilizan la fuerza rotacional para crear una corriente de aire", + "create.ponder.fan_direction.text_2": "La fuerza y la dirección del flujo dependen de la fuerza rotacional suministrada", + + "create.ponder.fan_processing.header": "Procesar objetos mediante ventiladores revestidos", + "create.ponder.fan_processing.text_1": "Al pasar por lava, el flujo de aire se calienta", + "create.ponder.fan_processing.text_2": "Los objetos capturados en la zona serán fundidos", + "create.ponder.fan_processing.text_3": "Los artículos de comida arrojados aquí serán incinerados", + "create.ponder.fan_processing.text_4": "En su lugar, se debería utilizar una instalación de ahumado, usando fuego", + "create.ponder.fan_processing.text_5": "Los flujos de aire que pasan por el agua crean una instalación de lavado", + "create.ponder.fan_processing.text_6": "Se puede hacer un nuevo e interesante procesamiento con él", + "create.ponder.fan_processing.text_7": "La velocidad del ventilador NO afecta a la velocidad de procesamiento, sólo a su rango", + "create.ponder.fan_processing.text_8": "El procesamiento del ventilador también puede aplicarse a los objetos de los depósitos y las correas", + + "create.ponder.fan_source.header": "Generar fuerza rotacional mediante ventiladores revestidos", + "create.ponder.fan_source.text_1": "Los ventiladores orientados hacia una fuente de calor pueden proporcionar fuerza rotacional", + "create.ponder.fan_source.text_2": "Cuando se les da una señal de redstone, los ventiladores comenzarán a proporcionar fuerza", + + "create.ponder.fluid_pipe_flow.header": "Transportar fluidos mediante tuberías de cobre", + "create.ponder.fluid_pipe_flow.text_1": "Las tuberías de fluidos pueden conectar dos o más fuentes y objetivos de fluidos", + "create.ponder.fluid_pipe_flow.text_2": "Utilizando una llave, se puede dar a un segmento de tubo recto una ventana", + "create.ponder.fluid_pipe_flow.text_3": "Las tuberías con ventanas no se conectarán a ningún otro segmento de tubería adyacente", + "create.ponder.fluid_pipe_flow.text_4": "Accionadas por bombas mecánicas, las tuberías pueden transportar fluidos", + "create.ponder.fluid_pipe_flow.text_5": "Al principio no se extrae ningún líquido", + "create.ponder.fluid_pipe_flow.text_6": "Una vez que el flujo los conecta, los puntos finales transfieren gradualmente su contenido", + "create.ponder.fluid_pipe_flow.text_7": "Así, los bloques de tuberías nunca contienen 'físicamente' ningún fluido", + + "create.ponder.fluid_pipe_interaction.header": "Drenaje y llenado de contenedores de fluidos", + "create.ponder.fluid_pipe_interaction.text_1": "Los puntos finales de una red de tuberías pueden interactuar con una variedad de bloques", + "create.ponder.fluid_pipe_interaction.text_2": "Cualquier bloque con capacidad para almacenar fluidos puede ser llenado o vaciado", + "create.ponder.fluid_pipe_interaction.text_3": "Los bloques de origen justo delante de un extremo abierto pueden ser recogidos...", + "create.ponder.fluid_pipe_interaction.text_4": "...mientras que el derrame en espacios vacíos puede crear fuentes de fluidos", + "create.ponder.fluid_pipe_interaction.text_5": "Las tuberías también pueden extraer fluidos de un puñado de otros bloques directamente", + + "create.ponder.fluid_tank_sizes.header": "Dimensiones de un depósito de fluidos", + "create.ponder.fluid_tank_sizes.text_1": "Los depósitos de fluidos pueden combinarse para aumentar la capacidad total", + "create.ponder.fluid_tank_sizes.text_2": "Su cuadrado base puede tener hasta 3 bloques de ancho...", + "create.ponder.fluid_tank_sizes.text_3": "...y crecen en altura en más de 30 capas adicionales", + "create.ponder.fluid_tank_sizes.text_4": "Con una llave inglesa, se puede cambiar la ventana de un tanque", + + "create.ponder.fluid_tank_storage.header": "Almacenar fluidos en depósitos de fluidos", + "create.ponder.fluid_tank_storage.text_1": "Los depósitos de fluidos pueden utilizarse para almacenar grandes cantidades de fluidos", + "create.ponder.fluid_tank_storage.text_2": "Las redes de tuberías pueden empujar y arrastrar fluidos desde cualquier lado", + "create.ponder.fluid_tank_storage.text_3": "El fluido contenido puede ser medido por un Comparador", + "create.ponder.fluid_tank_storage.text_4": "Sin embargo, en el Modo Supervivencia no se pueden añadir o tomar fluidos manualmente", + "create.ponder.fluid_tank_storage.text_5": "Puede utilizar cuencas, drenadores de objetos y tuberías para vaciar o llenar objetos que contengan líquido", + + "create.ponder.flywheel.header": "Generar fuerza rotacional con la rueda de inercia", + "create.ponder.flywheel.text_1": "Las ruedas de inercia son necesarias para generar fuerza rotacional con el motor de horno", + "create.ponder.flywheel.text_2": "La fuerza rotacional proporcionada tiene una capacidad de estrés muy grande", + "create.ponder.flywheel.text_3": "El uso de un alto horno duplicará la eficiencia del motor", + + "create.ponder.funnel_compat.header": "Compatibilidades con el embudo", + "create.ponder.funnel_compat.text_1": "Los embudos deberían interactuar bien con un puñado de otros componentes", + "create.ponder.funnel_compat.text_2": "Sierras verticales", + "create.ponder.funnel_compat.text_3": "Depósitos", + "create.ponder.funnel_compat.text_4": "Drenadores de objetos", + + "create.ponder.funnel_direction.header": "Dirección de la transferencia", + "create.ponder.funnel_direction.text_1": "Colocado normalmente, extrae objetos del inventario", + "create.ponder.funnel_direction.text_2": "Colocado mientras pulsa Mayús izdo, pone objetos en el inventario", + "create.ponder.funnel_direction.text_3": "Usando una llave inglesa, el embudo puede ser volteado después de su colocación", + "create.ponder.funnel_direction.text_4": "Se aplicarán las mismas reglas para la mayoría de las orientaciones", + "create.ponder.funnel_direction.text_5": "Los embudos en las correas extraerán/insertarán dependiendo de su dirección de movimiento", + + "create.ponder.funnel_intro.header": "Usar embudos", + "create.ponder.funnel_intro.text_1": "Los embudos son ideales para transferir objetos desde y hacia los inventarios", + + "create.ponder.funnel_redstone.header": "Embudos alimentados con redstone", + "create.ponder.funnel_redstone.text_1": "La energía de redstone impedirá la actuación de cualquier embudo", + + "create.ponder.funnel_transfer.header": "Transferencia directa", + "create.ponder.funnel_transfer.text_1": "Los embudos no pueden transferir nunca entre inventarios cerrados directamente", + "create.ponder.funnel_transfer.text_2": "Los ductos o los ductos inteligentes podrían ser más adecuados para estos fines", + "create.ponder.funnel_transfer.text_3": "Lo mismo se aplica para el movimiento horizontal. Una correa mecánica debería ayudar aquí", + + "create.ponder.furnace_engine.header": "Generar fuerza rotacional con el motor de horno", + "create.ponder.furnace_engine.text_1": "Los motores de horno generan fuerza rotacional mientras su horno adjunto está funcionando", + "create.ponder.furnace_engine.text_2": "La fuerza rotacional proporcionada tiene una capacidad de estrés muy grande", + "create.ponder.furnace_engine.text_3": "El uso de un alto horno duplicará la eficiencia del motor", + + "create.ponder.gantry_carriage.header": "Usar carros de grúa", + "create.ponder.gantry_carriage.text_1": "Los carros de grúa pueden montarse y deslizarse a lo largo de un eje de grúa", + "create.ponder.gantry_carriage.text_2": "Las instalaciones de grúa pueden mover bloques adjuntos", + + "create.ponder.gantry_cascaded.header": "Grúas en cascada", + "create.ponder.gantry_cascaded.text_1": "Los ejes de grúas se unen a un carro de grúa sin necesidad de pegamento", + "create.ponder.gantry_cascaded.text_2": "Lo mismo se aplica a los carros de grúa en los ejes de grúas desplazados", + "create.ponder.gantry_cascaded.text_3": "Así, un sistema de grúas puede estar en cascada para cubrir múltiples ejes de movimiento", + + "create.ponder.gantry_direction.header": "Dirección del movimiento de la grúa", + "create.ponder.gantry_direction.text_1": "Los ejes de grúa pueden tener orientaciones opuestas", + "create.ponder.gantry_direction.text_2": "La dirección de movimiento de los carros de grúa depende de la orientación de sus ejes", + "create.ponder.gantry_direction.text_3": "...así como de su sentido de rotación", + "create.ponder.gantry_direction.text_4": "Se aplican las mismas reglas para la rotación propagada", + + "create.ponder.gantry_redstone.header": "Propagación de la potencia de la grúa", + "create.ponder.gantry_redstone.text_1": "Los ejes de grúa alimentados con redstone dejan de mover sus carros", + "create.ponder.gantry_redstone.text_2": "En su lugar, su fuerza rotacional se transmite al eje de salida de los carros", + + "create.ponder.gantry_shaft.header": "Usar ejes de grúa", + "create.ponder.gantry_shaft.text_1": "Los ejes de grúa forman la base de una instalación de grúas. Los carros adjuntos se moverán a lo largo de ellos", + "create.ponder.gantry_shaft.text_2": "Las instalaciones de grúas pueden mover los bloques adjuntos", + + "create.ponder.gearbox.header": "Transmitir fuerza rotacional mediante cajas de transmisión", + "create.ponder.gearbox.text_1": "Saltar entre ejes de rotación puede volverse voluminoso rápidamente", + "create.ponder.gearbox.text_2": "Una caja de transmisión es el equivalente más compacto de esta configuración", + "create.ponder.gearbox.text_3": "Los ejes giran en las direcciones reflejadas...", + "create.ponder.gearbox.text_4": "...esto quiere decir que las conexiones rectas se invierten", + + "create.ponder.gearshift.header": "Controlar la dirección rotacional mediante una caja de cambios", + "create.ponder.gearshift.text_1": "La caja de cambios transmitirá la rotación en línea recta", + "create.ponder.gearshift.text_2": "Cuando es alimentada con redstone, invierte la transmisión", + + "create.ponder.hand_crank.header": "Generar fuerza rotacional mediante manivelas", + "create.ponder.hand_crank.text_1": "Las manivelas pueden ser utilizadas para aplicar fuerza rotacional manualmente", + "create.ponder.hand_crank.text_2": "Mantén pulsado clic derecho para girar en sentido antihorario", + "create.ponder.hand_crank.text_3": "Su velocidad de transmisión es relativamente alta", + "create.ponder.hand_crank.text_4": "Mayús izdo + clic derecho pulsado para girar en sentido horario", + + "create.ponder.hose_pulley.header": "Llenado y vaciado de fuentes mediante poleas de manguera", + "create.ponder.hose_pulley.text_1": "Las poleas para mangueras pueden utilizarse para llenar o drenar grandes masas de fluido", + "create.ponder.hose_pulley.text_2": "Con entrada cinética, se puede controlar la altura de la manguera de las poleas", + "create.ponder.hose_pulley.text_3": "La polea se retrae mientras la rotación de entrada se invierte", + "create.ponder.hose_pulley.text_4": "En el lado opuesto, se pueden conectar las tuberías", + "create.ponder.hose_pulley.text_5": "Las redes de tuberías conectadas pueden proporcionar fluido a la manguera...", + "create.ponder.hose_pulley.text_6": "...o tirar de él, vaciando la piscina en su lugar", + "create.ponder.hose_pulley.text_7": "La velocidad de llenado y vaciado de la polea depende totalmente del caudal de las redes de fluidos", + + "create.ponder.hose_pulley_infinite.header": "Llenado y drenaje pasivo de grandes masas de fluido", + "create.ponder.hose_pulley_infinite.text_1": "Al desplegar la polea de manguera en un océano lo suficientemente grande...", + "create.ponder.hose_pulley_infinite.text_2": "Proporcionará/eliminará fluidos sin afectar a la fuente", + "create.ponder.hose_pulley_infinite.text_3": "Las redes de tuberías pueden llevar fluidos de forma ilimitada desde/hacia dichas poleas", + + "create.ponder.hose_pulley_level.header": "Nivel de llenado y vaciado de las poleas de las mangueras", + "create.ponder.hose_pulley_level.text_1": "Mientras esté totalmente retraída, la polea de la manguera no puede funcionar", + "create.ponder.hose_pulley_level.text_2": "El drenaje va de arriba a abajo", + "create.ponder.hose_pulley_level.text_3": "El nivel de la superficie terminará justo debajo de donde termina la manguera", + "create.ponder.hose_pulley_level.text_4": "El llenado va de abajo a arriba", + "create.ponder.hose_pulley_level.text_5": "La piscina llena no crecerá más allá de la capa por encima del extremo de la manguera", + + "create.ponder.item_drain.header": "Vaciar contenedores de fluidos mediante drenajes de objetos", + "create.ponder.item_drain.text_1": "Los drenajes de objetos pueden extraer los fluidos de los objetos", + "create.ponder.item_drain.text_2": "Haz clic derecho para verter los fluidos de tu objeto retenido en él", + "create.ponder.item_drain.text_3": "Cuando los artículos se insertan desde el lado...", + "create.ponder.item_drain.text_4": "...ruedan a través, vaciando su líquido contenido", + "create.ponder.item_drain.text_5": "Las redes de tuberías pueden ahora extraer el fluido del buffer interno de los desagües", + + "create.ponder.large_cogwheel.header": "Transmitir fuerza rotacional mediante engranajes grandes", + "create.ponder.large_cogwheel.text_1": "Los engranajes grandes pueden conectarse entre sí en ángulo recto", + "create.ponder.large_cogwheel.text_2": "Ayudarán a transmitir la velocidad transportada a otros ejes de rotación.", + + "create.ponder.linear_chassis_attachment.header": "Fijar bloques mediante el chasis lineal", + "create.ponder.linear_chassis_attachment.text_1": "Las caras abiertas de un chasis lineal pueden hacerse pegajosas", + "create.ponder.linear_chassis_attachment.text_2": "Haz clic de nuevo para que se pegue el lado opuesto", + "create.ponder.linear_chassis_attachment.text_3": "Mayús izdo + clic derecho con la mano vacía para eliminar el pegamento", + "create.ponder.linear_chassis_attachment.text_4": "Las caras pegadas del chasis lineal fijarán una línea de bloques delante de él", + "create.ponder.linear_chassis_attachment.text_5": "Utilizando una llave inglesa, se puede especificar un rango preciso", + "create.ponder.linear_chassis_attachment.text_6": "Manteniendo pulsada la tecla [Ctrl] y usando la rueda central del ratón, se ajusta el rango de todos los bloques de chasis adjuntos", + "create.ponder.linear_chassis_attachment.text_7": "Para fijar los bloques a cualquier otro lado es necesario utilizar pegamento", + "create.ponder.linear_chassis_attachment.text_8": "Utilizando esta mecánica, las estructuras de cualquier forma pueden moverse como un artilugio", + + "create.ponder.linear_chassis_group.header": "Mover chasis lineales en grupos", + "create.ponder.linear_chassis_group.text_1": "Los chasis lineales se conectan a los bloques de chasis idénticos que se encuentren a su lado", + "create.ponder.linear_chassis_group.text_2": "Cuando uno es movido por un artilugio, los otros son arrastrados con él", + "create.ponder.linear_chassis_group.text_3": "Los chasis de otro tipo u orientados en otra dirección no se fijan", + + "create.ponder.mechanical_arm.header": "Configurar los brazos mecánicos", + "create.ponder.mechanical_arm.text_1": "A los brazos mecánicos hay que asignarles sus entradas y salidas antes de colocarlos", + "create.ponder.mechanical_arm.text_2": "Clic derecho en los inventarios mientras mantiene el brazo mecánico para asignarlos como objetivos", + "create.ponder.mechanical_arm.text_3": "Clic derecho denuevo para alternar entre la entrada (azul) y la salida (naranja)", + "create.ponder.mechanical_arm.text_4": "Clic izquierdo en los componentes para eliminar su selección", + "create.ponder.mechanical_arm.text_5": "Una vez colocado, el brazo mecánico apuntará a los bloques seleccionados previamente", + "create.ponder.mechanical_arm.text_6": "Pueden tener cualquier cantidad de entradas y salidas dentro de su rango", + "create.ponder.mechanical_arm.text_7": "Sin embargo, no se puede interactuar directamente con todos los tipos de inventario", + "create.ponder.mechanical_arm.text_8": "Los embudos y depósitos pueden ayudar a salvar esa distancia", + + "create.ponder.mechanical_arm_filtering.header": "Filtrar salidas del brazo mecánico", + "create.ponder.mechanical_arm_filtering.text_1": "Entradas", + "create.ponder.mechanical_arm_filtering.text_2": "Salidas", + "create.ponder.mechanical_arm_filtering.text_3": "A veces es conveniente restringir los objetivos del brazo mecánico haciendo coincidir un filtro", + "create.ponder.mechanical_arm_filtering.text_4": "Por sí mismos no ofrecen ninguna opción de filtrado", + "create.ponder.mechanical_arm_filtering.text_5": "Sin embargo, los embudos de latón como objetivos comunican su propio filtro al brazo", + "create.ponder.mechanical_arm_filtering.text_6": "El brazo mecánico es lo suficientemente inteligente como para no recoger objetos que no podría distribuir", + + "create.ponder.mechanical_arm_modes.header": "Modos de distribución del brazo mecánico", + "create.ponder.mechanical_arm_modes.text_1": "Entradas", + "create.ponder.mechanical_arm_modes.text_2": "Salidas", + "create.ponder.mechanical_arm_modes.text_3": "Siempre que un brazo tenga que elegir entre varias salidas válidas...", + "create.ponder.mechanical_arm_modes.text_4": "...funcionará según su configuración", + "create.ponder.mechanical_arm_modes.text_5": "Usando la rueda del ratón con una llave inglesa te permitirá configurarlo", + "create.ponder.mechanical_arm_modes.text_6": "El modo Round Robin simplemente hace un ciclo a través de todas las salidas que están disponibles", + "create.ponder.mechanical_arm_modes.text_7": "Si una salida no puede admitir más objetos, se omitirá", + "create.ponder.mechanical_arm_modes.text_8": "El modo Round Robin forzado nunca omitirá las salidas, sino que esperará a que estén libres", + "create.ponder.mechanical_arm_modes.text_9": "Preferir el primero da prioridad a las salidas seleccionadas anteriormente al configurar este brazo", + + "create.ponder.mechanical_arm_redstone.header": "Controlar brazos mecánicos con redstone", + "create.ponder.mechanical_arm_redstone.text_1": "Cuando se alimentan con redstone, los brazos mecánicos no se activan", + "create.ponder.mechanical_arm_redstone.text_2": "Antes de detenerse, terminará los ciclos iniciados", + "create.ponder.mechanical_arm_redstone.text_3": "Así, un pulso negativo puede utilizarse para activar exactamente un ciclo de activación", + + "create.ponder.mechanical_bearing.header": "Mover estructuras mediante el rodamiento mecánico", + "create.ponder.mechanical_bearing.text_1": "Los rodamientos mecánicos se fijan al bloque que tienen delante", + "create.ponder.mechanical_bearing.text_2": "Al recibir fuerza rotacional, la ensamblará en un artilugio giratorio", + + "create.ponder.mechanical_crafter.header": "Configurar ensambladores mecánicos", + "create.ponder.mechanical_crafter.text_1": "Se puede utilizar una serie de ensambladores mecánicos para automatizar cualquier receta de elaboración.", + "create.ponder.mechanical_crafter.text_2": "Usando una llave inglesa, puedes establecer los caminos de los ensambladores ", + "create.ponder.mechanical_crafter.text_3": "Para que la configuración sea válida, todos los caminos tienen que converger en una salida, en cualquiera de los lados", + "create.ponder.mechanical_crafter.text_4": "Los puertos de salida de objetos se colocarán en un inventario a la salida", + "create.ponder.mechanical_crafter.text_5": "Los ensambladores mecánicos requieren fuerza rotacional para funcionar", + "create.ponder.mechanical_crafter.text_6": "Haga clic derecho en la parte delantera para insertar objetos manualmente", + "create.ponder.mechanical_crafter.text_7": "Una vez que cada ranura de una ruta contenga un objeto, comenzará el proceso de elaboración", + "create.ponder.mechanical_crafter.text_8": "Para las recetas que no ocupen totalmente la instalación del ensamblador, se puede forzar el arranque utilizando un pulso de redstone", + + "create.ponder.mechanical_crafter_connect.header": "Conectar inventarios a los ensambladores mecánicos", + "create.ponder.mechanical_crafter_connect.text_1": "Los objetos pueden ser insertados a los ensambladores mecánicos automáticamente", + "create.ponder.mechanical_crafter_connect.text_2": "Utilizando la llave inglesa a sus espaldas, las entradas pueden combinarse", + "create.ponder.mechanical_crafter_connect.text_3": "Ahora se puede acceder a todos los ensambladores mecánicos conectados por la misma ubicación de entrada", + + "create.ponder.mechanical_crafter_covers.header": "Cubrir las ranuras de los ensambladores mecánicos", + "create.ponder.mechanical_crafter_covers.text_1": "Algunas recetas requerirán ensambladores mecánicos adicionales para salvar las brechas en el camino", + "create.ponder.mechanical_crafter_covers.text_2": "Utilizando las tapas de ranuras del ensamblador mecánico, pueden actuar como una ranura vacía a su disposición", + "create.ponder.mechanical_crafter_covers.text_3": "Las entradas compartidas creadas con la llave inglesa en la parte posterior también pueden llegar a través de los ensambladores revestidos", + + "create.ponder.mechanical_drill.header": "Romper bloques con el taladro mecánico", + "create.ponder.mechanical_drill.text_1": "Cuando se le aplica fuerza rotacional, el taladro mecánico rompe los bloques que tiene delante.", + "create.ponder.mechanical_drill.text_2": "Su velocidad de trabajo depende de la fuerza rotacional suministrada", + + "create.ponder.mechanical_drill_contraption.header": "Usar taladros mecánicos en artilugios", + "create.ponder.mechanical_drill_contraption.text_1": "Siempre que los taladros mecánicos se muevan como parte de un artilugio animado...", + "create.ponder.mechanical_drill_contraption.text_2": "...romperán los bloques por los que artilugio los hace pasar", + + "create.ponder.mechanical_harvester.header": "Utilizar cosechadoras mecánicas en artilugios", + "create.ponder.mechanical_harvester.text_1": "Siempre que las cosechadoras mecánicas se muevan como parte de un artilugio animado...", + "create.ponder.mechanical_harvester.text_2": "...recogerán y repondrán los cultivos maduros en su camino", + + "create.ponder.mechanical_mixer.header": "Procesar objetos con la mezcladora mecánica", + "create.ponder.mechanical_mixer.text_1": "Con una mezcladora mecánica y una cuenca, se pueden automatizar algunas recetas", + "create.ponder.mechanical_mixer.text_2": "Las recetas disponibles incluyen cualquier receta de elaboración amorfa, además de un par de recetas adicionales", + "create.ponder.mechanical_mixer.text_3": "Algunas de esas recetas pueden requerir el calor de un quemador de blaze", + "create.ponder.mechanical_mixer.text_4": "La ranura para filtros se puede utilizar en caso de que dos recetas sean conflictivas.", + + "create.ponder.mechanical_piston.header": "Mover estructuras mediante pistones mecánicos", + "create.ponder.mechanical_piston.text_1": "Los pistones mecánicos pueden mover los bloques que tienen delante", + "create.ponder.mechanical_piston.text_2": "La velocidad y la dirección del movimiento dependen de la fuerza rotacional suministrada", + "create.ponder.mechanical_piston.text_3": "Los pistones mecánicos pegajosos pueden tirar de los bloques unidos hacia atrás", + + "create.ponder.mechanical_piston_modes.header": "Modos de movimiento del pistón mecánico", + "create.ponder.mechanical_piston_modes.text_1": "Cuando los pistones mecánicos dejan de moverse, la estructura movida vuelve a los bloques", + "create.ponder.mechanical_piston_modes.text_2": "Puede configurarse para que no vuelva nunca a los bloques sólidos, o sólo en la ubicación en la que comenzó", + + "create.ponder.mechanical_plough.header": "Utilizar arados mecánicos en los artilugios", + "create.ponder.mechanical_plough.text_1": "Cuando los arados mecánicos se mueven como parte de un artilugio animado...", + "create.ponder.mechanical_plough.text_2": "...romperán los bloques sin un hitbox de colisión sólido", + "create.ponder.mechanical_plough.text_3": "Además, pueden crear tierras de cultivo", + "create.ponder.mechanical_plough.text_4": "...también pueden lanzar entidades sin dañarlas", + + "create.ponder.mechanical_press.header": "Procesar objetos con la prensa mecánica", + "create.ponder.mechanical_press.text_1": "La prensa mecánica puede procesar los objetos proporcionados por debajo de ella", + "create.ponder.mechanical_press.text_2": "Los objetos de entrada pueden soltarse o colocarse en un depósito bajo la prensa", + "create.ponder.mechanical_press.text_3": "Cuando los objetos se proporcionan en una 'cinta'...", + "create.ponder.mechanical_press.text_4": "...la prensa mecánica los retendrá y procesará automáticamente", + + "create.ponder.mechanical_press_compacting.header": "Compactar objetos con la prensa mecánica", + "create.ponder.mechanical_press_compacting.text_1": "Al presionar los objetos que se encuentran en una cuenca, éstos se compactan.", + "create.ponder.mechanical_press_compacting.text_2": "La compactación incluye cualquier receta de elaboración de 2x2 o 3x3 rellena, además de un par extra", + "create.ponder.mechanical_press_compacting.text_3": "Algunas de esas recetas pueden requerir el calor de un quemador de blaze", + "create.ponder.mechanical_press_compacting.text_4": "La ranura para filtros se puede utilizar en caso de que dos recetas sean conflictivas.", + + "create.ponder.mechanical_pump_flow.header": "Transportar fluidos mediante bombas mecánicas", + "create.ponder.mechanical_pump_flow.text_1": "Las bombas mecánicas gobiernan el flujo de sus redes de tuberías anexas", + "create.ponder.mechanical_pump_flow.text_2": "Cuando están alimentadas, su flecha indica la dirección del flujo", + "create.ponder.mechanical_pump_flow.text_3": "La red de atrás está ahora tirando de fluidos...", + "create.ponder.mechanical_pump_flow.text_4": "...mientras la red de enfrente la transfiere hacia el exterior", + "create.ponder.mechanical_pump_flow.text_5": "Al invertir la rotación de la entrada se invierte el sentido del flujo", + "create.ponder.mechanical_pump_flow.text_6": "Utilice una llave inglesa para invertir la orientación de las bombas manualmente", + + "create.ponder.mechanical_pump_speed.header": "Rendimiento de las bombas mecánicas", + "create.ponder.mechanical_pump_speed.text_1": "Independientemente de la velocidad, las bombas mecánicas afectan a las tuberías conectadas hasta 16 bloques de distancia", + "create.ponder.mechanical_pump_speed.text_2": "Acelerar la rotación de entrada cambia la velocidad de propagación del flujo...", + "create.ponder.mechanical_pump_speed.text_3": "...así como la rapidez con la que se transfieren los fluidos", + "create.ponder.mechanical_pump_speed.text_4": "Las bombas pueden combinar sus rendimientos en redes de tuberías compartidas", + "create.ponder.mechanical_pump_speed.text_5": "Alternar su orientación puede ayudar a alinear sus direcciones de flujo", + + "create.ponder.mechanical_saw_breaker.header": "Cortar árboles con la sierra mecánica", + "create.ponder.mechanical_saw_breaker.text_1": "Cuando se le da una fuerza rotacional, la sierra mecánica cortará los árboles que estén directamente frente a ella", + "create.ponder.mechanical_saw_breaker.text_2": "Para poder cortar el árbol por completo, la sierra tiene que romper el último bloque que lo une al suelo", + + "create.ponder.mechanical_saw_contraption.header": "Utilizar sierras mecánicas en artilugios", + "create.ponder.mechanical_saw_contraption.text_1": "Cuando las sierras mecánicas se mueven como parte de un artilugio animado...", + "create.ponder.mechanical_saw_contraption.text_2": "...cortarán cualquier árbol con el que el artilugio se tope", + + "create.ponder.mechanical_saw_processing.header": "Procesar objetos en la sierra mecánica", + "create.ponder.mechanical_saw_processing.text_1": "Las sierras mecánicas orientadas hacia arriba pueden procesar una variedad de objetos", + "create.ponder.mechanical_saw_processing.text_2": "El objeto procesado siempre se mueve en contra de la fuerza rotacional de la sierra", + "create.ponder.mechanical_saw_processing.text_3": "Las sierras mecánicas pueden trabajar en línea con las correas mecánicas", + "create.ponder.mechanical_saw_processing.text_4": "Cuando un ingrediente tiene varios resultados posibles, la ranura para filtros puede especificarlo", + "create.ponder.mechanical_saw_processing.text_5": "Sin filtro, al contrario, la sierra mecánica pasaría por todos los resultados", + + "create.ponder.millstone.header": "Procesar objetos en la piedra de molino", + "create.ponder.millstone.text_1": "Las piedras de molino procesan los objetos mediante la molienda", + "create.ponder.millstone.text_2": "Se pueden accionar lateralmente mediante engranajes...", + "create.ponder.millstone.text_3": "... y tirar o insertar objetos en la parte superior", + "create.ponder.millstone.text_4": "Después de un tiempo, el resultado se puede obtener usando el clic derecho del ratón", + "create.ponder.millstone.text_5": "Las salidas también pueden extraerse mediante la automatización", + + "create.ponder.nixie_tube.header": "Usar los tubos Nixie", + "create.ponder.nixie_tube.text_1": "Cuando son alimentados con redstone, los tubos nixie mostrarán la fuerza de las señales de redstone", + "create.ponder.nixie_tube.text_2": "Con las etiquetas editadas en un yunque, pueden mostar un texto personalizado", + "create.ponder.nixie_tube.text_3": "Haga clic derecho con un tinte para cambiar su color de visualización", + + "create.ponder.piston_pole.header": "Pértigas de extensión de pistones", + "create.ponder.piston_pole.text_1": "Sin las pértigas de extensión unidas, un pistón mecánico no puede moverse", + "create.ponder.piston_pole.text_2": "La longitud de la pértiga añadida en su parte posterior determina el rango de alcance", + + "create.ponder.portable_fluid_interface.header": "Interfaz de fluidos portátil", + "create.ponder.portable_fluid_interface.text_1": "No se puede acceder a los depósitos de fluidos de los artilugios en movimiento por ninguna tubería", + "create.ponder.portable_fluid_interface.text_2": "Este componente puede interactuar con los depósitos de fluidos sin necesidad de detener el artilugio", + "create.ponder.portable_fluid_interface.text_3": "Coloca una segunda con un espacio de 1 o 2 bloques entre ellas", + "create.ponder.portable_fluid_interface.text_4": "Cada vez que pasen por delante de la otra, entablarán una conexión", + "create.ponder.portable_fluid_interface.text_5": "Mientras esté activada, la interfaz estacionaria representará TODOS los tanques del artilugio", + "create.ponder.portable_fluid_interface.text_6": "Ahora se puede introducir el fluido...", + "create.ponder.portable_fluid_interface.text_7": "...o extraerlo del artilugio", + "create.ponder.portable_fluid_interface.text_8": "Cuando no se intercambien contenidos durante un tiempo, el artilugio seguirá su camino", + + "create.ponder.portable_storage_interface.header": "Interfaz de almacenamiento portátil", + "create.ponder.portable_storage_interface.text_1": "Los jugadores no pueden acceder a los inventarios de los artilugios en movimiento.", + "create.ponder.portable_storage_interface.text_2": "Este componente puede interactuar con el almacenamiento sin necesidad de detener el artilugio.", + "create.ponder.portable_storage_interface.text_3": "Coloca una segunda unidad con un espacio de 1 o 2 bloques entre ellas", + "create.ponder.portable_storage_interface.text_4": "Cada vez que pasen por delante del otro, entablarán una conexión", + "create.ponder.portable_storage_interface.text_5": "Mientras esté conectada, la interfaz fija representará TODOS los inventarios del artilugio", + "create.ponder.portable_storage_interface.text_6": "Ahora pueden insertarse objetos...", + "create.ponder.portable_storage_interface.text_7": "...o extraerse", + "create.ponder.portable_storage_interface.text_8": "Cuando no se hayan intercambiado objetos durante un tiempo, el artilugio seguirá su camino", + + "create.ponder.portable_storage_interface_redstone.header": "Interfaz de almacenamiento portátil controlada por redstone", + "create.ponder.portable_storage_interface_redstone.text_1": "La energía de redstone impedirá que las interfaces de almacenamiento portátil se conecten", + + "create.ponder.powered_latch.header": "Controlar señales mediante la palanca motorizada", + "create.ponder.powered_latch.text_1": "Las palancas motorizadas son palancas controlables por redstone", + "create.ponder.powered_latch.text_2": "Las señales en la parte trasera la encienden", + "create.ponder.powered_latch.text_3": "Las señales sobre un lateral la vuelven a apagar", + "create.ponder.powered_latch.text_4": "Las palancas motorizadas también se pueden accionar manualmente", + + "create.ponder.powered_toggle_latch.header": "Controlar señales mediante la palanca de cierre motorizada", + "create.ponder.powered_toggle_latch.text_1": "Las palancas de cierre motorizadas son palancas controlables por redstone", + "create.ponder.powered_toggle_latch.text_2": "Las señales en la parte trasera cambiarán su estado...", + "create.ponder.powered_toggle_latch.text_3": "...encender y apagar", + "create.ponder.powered_toggle_latch.text_4": "Las palancas de cierre motorizadas también se pueden accionar manualmente", + + "create.ponder.pulse_repeater.header": "Controlar señales mediante repetidores de pulsos", + "create.ponder.pulse_repeater.text_1": "Los repetidores de pulsos acortan cualquier señal de redstone a un solo pulso", + + "create.ponder.radial_chassis.header": "Fijar bloques mediante chasis radiales", + "create.ponder.radial_chassis.text_1": "Los chasis radiales se conectan a bloques de chasis idénticos en una fila", + "create.ponder.radial_chassis.text_2": "Cuando uno es movido por un artilugio, los otros son arrastrados con él", + "create.ponder.radial_chassis.text_3": "Las caras laterales de un chasis radial pueden hacerse adhesivas", + "create.ponder.radial_chassis.text_4": "Haga clic de nuevo para que todos los demás lados sean pegajosos", + "create.ponder.radial_chassis.text_5": "Mayús izdo + clic derecho con la mano vacía para eliminar el pegamento", + "create.ponder.radial_chassis.text_6": "Cada vez que un bloque está junto a una cara pegajosa...", + "create.ponder.radial_chassis.text_7": "...adjuntará todos los bloques alcanzables dentro de un radio en esa capa", + "create.ponder.radial_chassis.text_8": "Con una llave inglesa y usando la rueda de desplazamiento del ratón se puede especificar un radio preciso", + "create.ponder.radial_chassis.text_9": "Los bloques no alcanzables por ninguna cara adhesiva no se fijarán", + + "create.ponder.redstone_contact.header": "Contactos de redstone", + "create.ponder.redstone_contact.text_1": "Los contactos de redstone enfrentados emitirán una señal de redstone", + "create.ponder.redstone_contact.text_2": "Esto sigue siendo válido cuando uno de ellos forma parte de un artilugio en movimiento", + + "create.ponder.redstone_link.header": "Usar los enlaces de redstone", + "create.ponder.redstone_link.text_1": "Los enlaces de redstone pueden transmitir señales redstone de forma inalámbrica", + "create.ponder.redstone_link.text_2": "Mayús izdo + clic derecho para cambiar el modo de recepción", + "create.ponder.redstone_link.text_3": "Un simple clic derecho con una llave inglesa puede hacer lo mismo", + "create.ponder.redstone_link.text_4": "Los receptores emiten la potencia de redstone de los transmisores en 128 bloques", + "create.ponder.redstone_link.text_5": "Colocando objetos en las dos ranuras puede especificar una frecuencia", + "create.ponder.redstone_link.text_6": "Sólo se comunicarán los enlaces con frecuencias coincidentes", + + "create.ponder.rope_pulley.header": "Mover estructuras con poleas de cuerda", + "create.ponder.rope_pulley.text_1": "Las poleas de cuerda pueden mover los bloques verticalmente cuando se les aplica una fuerza rotacional", + "create.ponder.rope_pulley.text_2": "La dirección y la velocidad del movimiento dependen de la fuerza rotacional suministrada", + + "create.ponder.rope_pulley_attachment.header": "Mover poleas como parte de un artilugio", + "create.ponder.rope_pulley_attachment.text_1": "Siempre que las poleas de cuerda sean movidas por un artilugio...", + "create.ponder.rope_pulley_attachment.text_2": "...su estructura adjunta será arrastrada con ella", + "create.ponder.rope_pulley_attachment.text_3": "Tenga en cuenta que las poleas de cuerda sólo se mueven cuando están paradas", + + "create.ponder.rope_pulley_modes.header": "Modos de movimiento de la polea de cuerda", + "create.ponder.rope_pulley_modes.text_1": "Cuando las poleas de cuerda dejan de moverse, la estructura movida vuelve a los bloques", + "create.ponder.rope_pulley_modes.text_2": "Puede configurarse para que no vuelva nunca a los bloques sólidos, o sólo en la ubicación en la que comenzó", + + "create.ponder.rotation_speed_controller.header": "Usar el controlador de velocidad rotacional", + "create.ponder.rotation_speed_controller.text_1": "Los controladores de velocidad rotacional transmiten la rotación de su eje a un engranaje grande situado encima.", + "create.ponder.rotation_speed_controller.text_2": "Utilizando la rueda de desplazamiento del ratón, puede configurarse la velocidad rotacional", + + "create.ponder.sail.header": "Montar molinos de viento usando velas", + "create.ponder.sail.text_1": "Las velas son bloques muy útiles para crear molinos de viento", + "create.ponder.sail.text_2": "Se fijarán a los bloques y entre sí sin necesidad de pegamento o bloques de chasis", + "create.ponder.sail.text_3": "Clic derecho con un tinte para pintarlas", + "create.ponder.sail.text_4": "Clic derecho con una tijera para volver a convertirlas en marcos", + + "create.ponder.sail_frame.header": "Montar molinos de viento con marcos de vela", + "create.ponder.sail_frame.text_1": "Los marcos de vela son prácticos bloques para crear molinos de viento", + "create.ponder.sail_frame.text_2": "Se fijarán a los bloques y entre sí sin necesidad de pegamento o bloques de chasis", + + "create.ponder.sequenced_gearshift.header": "Controlar la velocidad de rotación mediante la caja de cambios secuenciales", + "create.ponder.sequenced_gearshift.text_1": "La caja de cambios secuencial retransmite la rotación siguiendo una lista cronometrada de instrucciones", + "create.ponder.sequenced_gearshift.text_2": "Haga clic con el botón derecho para abrir la interfaz de configuración", + "create.ponder.sequenced_gearshift.text_3": "Al recibir una señal de redstone, comenzará a ejecutar su secuencia configurada", + "create.ponder.sequenced_gearshift.text_4": "Una vez terminado, espera la siguiente señal de redstone y vuelve a empezar", + "create.ponder.sequenced_gearshift.text_5": "Se puede utilizar un comparador de redstone para leer el progreso actual", + + "create.ponder.shaft.header": "Transmitir fuerza rotacional mediante ejes", + "create.ponder.shaft.text_1": "Los ejes transmiten la rotación en línea recta.", + + "create.ponder.shaft_casing.header": "Ejes revestidos", + "create.ponder.shaft_casing.text_1": "Puedes utilizar el revestidor de latón o de andesita para decorar tus ejes", + + "create.ponder.smart_chute.header": "Filtrar objetos mediante ductos inteligentes", + "create.ponder.smart_chute.text_1": "Los ductos inteligentes son ductos verticales con control adicional", + "create.ponder.smart_chute.text_2": "Los objetos en la ranura para filtros especifican lo que pueden extraer y transferir exactamente", + "create.ponder.smart_chute.text_3": "Usa la rueda del ratón para especificar el tamaño de la pila extraída", + "create.ponder.smart_chute.text_4": "La energía de redstone impedirá que funcionen.", + + "create.ponder.smart_pipe.header": "Controlar el flujo de fluidos mediante tuberías inteligentes", + "create.ponder.smart_pipe.text_1": "Las tuberías inteligentes pueden ayudar a controlar los flujos por tipo de fluido", + "create.ponder.smart_pipe.text_2": "Cuando se colocan directamente en la fuente, pueden especificar el tipo de fluido a extraer", + "create.ponder.smart_pipe.text_3": "Simplemente haga clic derecho en su ranura de filtro con cualquier elemento que contenga el fluido deseado", + "create.ponder.smart_pipe.text_4": "Cuando se colocan debajo de una red de tuberías, las tuberías inteligentes sólo dejan que los fluidos coincidentes continúen", + + "create.ponder.speedometer.header": "Controlar la información cinética mediante el velocímetro", + "create.ponder.speedometer.text_1": "El velocímetro muestra la velocidad actual de los componentes conectados", + "create.ponder.speedometer.text_2": "Cuando se usan las gafas del constructor, el jugador puede obtener información más detallada del medidor", + "create.ponder.speedometer.text_3": "Los comparadores pueden emitir señales analógicas de redstone en relación con las mediciones del velocímetro", + + "create.ponder.spout_filling.header": "Llenar objetos con un surtidor", + "create.ponder.spout_filling.text_1": "El surtidor puede llenar los elementos de retención de fluidos que se encuentran debajo de él", + "create.ponder.spout_filling.text_2": "No se puede acceder manualmente al contenido de un surtidor", + "create.ponder.spout_filling.text_3": "En su lugar, se pueden utilizar tuberías para suministrarle fluidos", + "create.ponder.spout_filling.text_4": "Los objetos de entrada pueden colocarse en un depósito bajo el surtidor", + "create.ponder.spout_filling.text_5": "Cuando los artículos se proporcionan en una cinta...", + "create.ponder.spout_filling.text_6": "El surtidor los retendrá y procesará automáticamente", + + "create.ponder.stabilized_bearings.header": "Estabilizar artilugios", + "create.ponder.stabilized_bearings.text_1": "Siempre que los rodamientos mecánicos formen parte de una estructura móvil...", + "create.ponder.stabilized_bearings.text_2": "...intentarán mantenerse derechos", + "create.ponder.stabilized_bearings.text_3": "Una vez más, el rodamiento se unirá al bloque de enfrente", + "create.ponder.stabilized_bearings.text_4": "Como resultado, todo el sub-artilugio se mantendrá en posición vertical", + + "create.ponder.sticker.header": "Fijar bloques con stickers", + "create.ponder.sticker.text_1": "Los stickers son ideales para la fijación de bloques controlados por redstone", + "create.ponder.sticker.text_2": "Al recibir una señal, cambiarán su estado", + "create.ponder.sticker.text_3": "Si ahora se mueve en un artilugio, el bloque se moverá con él", + "create.ponder.sticker.text_4": "Si se vuelve a activar, el bloque dejará de estar fijado", + + "create.ponder.stressometer.header": "Supervisar la información cinética con el estresómetro", + "create.ponder.stressometer.text_1": "El estresómetro muestra la capacidad de estrés actual de la red cinética conectada", + "create.ponder.stressometer.text_2": "Cuando se usan las gafas del constructor, el jugador puede obtener información más detallada del medidor", + "create.ponder.stressometer.text_3": "Los comparadores pueden emitir señales analógicas de redstone en relación con las mediciones del estresómetro", + + "create.ponder.super_glue.header": "Fijar bloques con pegamento", + "create.ponder.super_glue.text_1": "Se puede utilizar pegamento entre dos bloques cualquiera", + "create.ponder.super_glue.text_2": "Los bloques fijados se moverán juntos cuando se ensamblen en un artilugio", + "create.ponder.super_glue.text_3": "Cada vez que el pegamento es sostenido en la mano...", + "create.ponder.super_glue.text_4": "...los bloques añadidos se pegarán a la cara en la que fueron colocados automáticamente", + "create.ponder.super_glue.text_5": "El pegamento se puede quitar con un clic izquierdo", + + "create.ponder.valve_handle.header": "Generar fuerza rotacional mediante asas de válvula", + "create.ponder.valve_handle.text_1": "Los jugadores pueden utilizar las asas de válvulas para aplicar fuerza rotacional manualmente", + "create.ponder.valve_handle.text_2": "Mantén pulsado el clic derecho para rotar en sentido contrario a las agujas del reloj", + "create.ponder.valve_handle.text_3": "Su velocidad de transmisión es lenta y precisa", + "create.ponder.valve_handle.text_4": "Mayús izdo + clic derecho para rotar en el sentido de las agujas del reloj", + "create.ponder.valve_handle.text_5": "Las asas de las válvulas pueden teñirse con fines estéticos", + + "create.ponder.valve_pipe.header": "Controlar el flujo de fluidos mediante válvulas", + "create.ponder.valve_pipe.text_1": "Las tuberías con válvulas ayudan a controlar los fluidos que se propagan por las redes de tuberías", + "create.ponder.valve_pipe.text_2": "Su entrada en el eje controla si el fluido puede pasar por", + "create.ponder.valve_pipe.text_3": "Dada la fuerza de rotación en la dirección de apertura, la válvula se abrirá", + "create.ponder.valve_pipe.text_4": "Se puede volver a cerrar invirtiendo el giro de entrada", + + "create.ponder.water_wheel.header": "Generar fuerza rotacional mediante ruedas hidráulicas", + "create.ponder.water_wheel.text_1": "Las ruedas hidráulicas extraen la fuerza de las corrientes de agua adyacentes", + "create.ponder.water_wheel.text_2": "Cuantas más caras se alimenten, más rápido girará", + "create.ponder.water_wheel.text_3": "Las paletas de las ruedas deben estar orientadas en contra del flujo", + "create.ponder.water_wheel.text_4": "Orientadas hacia el lado contrario, no serán tan eficaces", + + "create.ponder.weighted_ejector.header": "Usar eyectores de peso", + "create.ponder.weighted_ejector.text_1": "Mayús izdo + clic derecho sosteniendo un eyector de peso para seleccionar la ubicación de destino", + "create.ponder.weighted_ejector.text_10": "Ahora estára limitado a este tamaño de pila, y sólo se activara cuando su pila retenida alcance esta cantidad", + "create.ponder.weighted_ejector.text_11": "Otras entidades activarán el eyector al pisarlos", + "create.ponder.weighted_ejector.text_2": "El eyector colocado lanzará ahora los objetos al lugar marcado", + "create.ponder.weighted_ejector.text_3": "Un objetivo válido puede estar a cualquier altura o distancia dentro del alcance", + "create.ponder.weighted_ejector.text_4": "Sin embargo, no pueden estar a un costado", + "create.ponder.weighted_ejector.text_5": "Si no se ha seleccionado ningún objetivo válido, simplemente se dirigirá al bloque que se encuentra justo delante", + "create.ponder.weighted_ejector.text_6": "Suministrale fuerza rotacional para cargarlo", + "create.ponder.weighted_ejector.text_7": "Los objetos colocados en el eyector hacen que se dispare", + "create.ponder.weighted_ejector.text_8": "Si se dirigen a un inventario, el eyector esperará hasta que haya espacio", + "create.ponder.weighted_ejector.text_9": "Con la llave inglesa se puede configurar el tamaño de pila requerido", + + "create.ponder.weighted_ejector_redstone.header": "Controlar los eyectores de peso con redstone", + "create.ponder.weighted_ejector_redstone.text_1": "Cuando se alimentan con redstone, los eyectores no se activan", + "create.ponder.weighted_ejector_redstone.text_2": "Además, los observadores de contenido pueden detectar cuando los eyectores se activan", + + "create.ponder.weighted_ejector_tunnel.header": "Dividir pilas de objetos mediante eyectores de peso", + "create.ponder.weighted_ejector_tunnel.text_1": "En combinación con los túneles de latón, los eyectores de peso pueden dividir las pilas de objetos en cantidades específicas", + "create.ponder.weighted_ejector_tunnel.text_2": "En primer lugar, configure el túnel de latón en 'Preferir lo más cercano', para dar prioridad a su salida lateral", + "create.ponder.weighted_ejector_tunnel.text_3": "El tamaño de la pila fijado en el eyector determina ahora la cantidad que se va a dividir", + "create.ponder.weighted_ejector_tunnel.text_4": "Mientras una nueva pila del tamaño configurado se expulse por la salida lateral...", + "create.ponder.weighted_ejector_tunnel.text_5": "...el resto seguirá su camino", + + "create.ponder.windmill_source.header": "Generar fuerza rotacional mediante rodamientos del molino de viento", + "create.ponder.windmill_source.text_1": "Los rodamientos del molino de viento se fijan al bloque que tienen delante", + "create.ponder.windmill_source.text_2": "Si se unen suficientes bloques tipo vela al bloque, éste puede actuar como un molino de viento", + "create.ponder.windmill_source.text_3": "Activado con un clic derecho, el rodamiento del molino de viento comenzará a proporcionar fuerza rotacional", + "create.ponder.windmill_source.text_4": "La cantidad de bloques de vela determina su velocidad de rotación", + "create.ponder.windmill_source.text_5": "Utiliza una llave inglesa para configurar su sentido de rotación", + "create.ponder.windmill_source.text_6": "Haga clic derecho sobre el rodamiento del molino en cualquier momento para detener y editar la estructura de nuevo", + + "create.ponder.windmill_structure.header": "Artilugios para molinos de viento", + "create.ponder.windmill_structure.text_1": "Cualquier estructura puede contar como un molino de viento válido, siempre que contenga al menos 8 bloques tipo vela.", + + "_": "Thank you for translating Create!" + +} diff --git a/src/main/resources/assets/create/lang/es_ec.json b/src/main/resources/assets/create/lang/es_ec.json new file mode 100644 index 000000000..d20b0eb8b --- /dev/null +++ b/src/main/resources/assets/create/lang/es_ec.json @@ -0,0 +1,2305 @@ +{ + + "_": "->------------------------] Game Elements [------------------------<-", + + "block.create.acacia_window": "Ventana de acacia", + "block.create.acacia_window_pane": "Panel de ventana de acacia", + "block.create.adjustable_chain_gearshift": "Cadena de transmisión ajustable", + "block.create.adjustable_crate": "Caja ajustable", + "block.create.adjustable_pulse_repeater": "Repetidor de pulso ajustable", + "block.create.adjustable_repeater": "Repetidor ajustable", + "block.create.analog_lever": "Palanca analógica", + "block.create.andesite_belt_funnel": "Embudo de cinta de andesita", + "block.create.andesite_bricks": "Ladrillos de andesita", + "block.create.andesite_bricks_slab": "Losa de ladrillos de andesita", + "block.create.andesite_bricks_stairs": "Escaleras de ladrillos de andesita", + "block.create.andesite_bricks_wall": "Muro de ladrillos de andesita", + "block.create.andesite_casing": "Revestidor de andesita", + "block.create.andesite_cobblestone": "Adoquín de andesita", + "block.create.andesite_cobblestone_slab": "Losa de adoquín de andesita", + "block.create.andesite_cobblestone_stairs": "Escaleras de adoquines de andesita", + "block.create.andesite_cobblestone_wall": "Muro de adoquines de andesita", + "block.create.andesite_encased_shaft": "Eje revestido de andesita", + "block.create.andesite_funnel": "Embudo de andesita", + "block.create.andesite_pillar": "Poste de andesita", + "block.create.andesite_tunnel": "Túnel de Andesita", + "block.create.basin": "Cuenca", + "block.create.belt": "Cinta", + "block.create.birch_window": "Ventana de abedul", + "block.create.birch_window_pane": "Panel de ventana de abedul", + "block.create.black_nixie_tube": "Tubo Nixie negro", + "block.create.black_sail": "Vela negra", + "block.create.black_seat": "Asiento negro", + "block.create.black_valve_handle": "Asa de válvula negra", + "block.create.blaze_burner": "Quemador de Blaze", + "block.create.blue_nixie_tube": "Tubo Nixie azul", + "block.create.blue_sail": "Vela azul", + "block.create.blue_seat": "Asiento azul", + "block.create.blue_valve_handle": "Asa de válvula azul", + "block.create.brass_belt_funnel": "Embudo de cinta de latón", + "block.create.brass_block": "Bloque de latón", + "block.create.brass_casing": "Revestidor de latón", + "block.create.brass_encased_shaft": "Eje revestido de latón", + "block.create.brass_funnel": "Embudo de latón", + "block.create.brass_tunnel": "Túnel de latón", + "block.create.brown_nixie_tube": "Tubo Nixie marrón", + "block.create.brown_sail": "Vela marrón", + "block.create.brown_seat": "Asiento marrón", + "block.create.brown_valve_handle": "Asa de válvula marrón", + "block.create.cart_assembler": "Ensamblador de vagonetas", + "block.create.chiseled_dark_scoria": "Escoria oscura cincelada", + "block.create.chiseled_dolomite": "Dolomita cincelada", + "block.create.chiseled_gabbro": "Gabro cincelado", + "block.create.chiseled_limestone": "Caliza cincelada", + "block.create.chiseled_scoria": "Escoria cincelada", + "block.create.chiseled_weathered_limestone": "Piedra caliza erosionada cincelada", + "block.create.chocolate": "Chocolate", + "block.create.chute": "Ducto", + "block.create.clockwork_bearing": "Rodamiento tipo reloj", + "block.create.clutch": "Embrague", + "block.create.cogwheel": "Engranaje pequeño", + "block.create.content_observer": "Observador de contenidos", + "block.create.controller_rail": "Raíl de control", + "block.create.copper_backtank": "Depósito trasero de cobre", + "block.create.copper_block": "Bloque de cobre", + "block.create.copper_casing": "Revestidor de caliza", + "block.create.copper_ore": "Mena de cobre", + "block.create.copper_shingles": "Bloque de tejas de cobre", + "block.create.copper_tiles": "Bloque de baldosas de cobre", + "block.create.copper_valve_handle": "Asa de válvula de cobre", + "block.create.creative_crate": "Caja creativa", + "block.create.creative_fluid_tank": "Tanque de fluidos creativo", + "block.create.creative_motor": "Motor creativo", + "block.create.crimson_window": "Ventana carmesí", + "block.create.crimson_window_pane": "Panel de ventana carmesí", + "block.create.crushing_wheel": "Rueda trituradora", + "block.create.crushing_wheel_controller": "Controlador de Rueda trituradora", + "block.create.cuckoo_clock": "Reloj de cuco", + "block.create.cyan_nixie_tube": "Tubo Nixie cian", + "block.create.cyan_sail": "Vela cian", + "block.create.cyan_seat": "Asiento cian", + "block.create.cyan_valve_handle": "Asa de válvula cian", + "block.create.dark_oak_window": "Ventana de roble oscuro", + "block.create.dark_oak_window_pane": "Panel de ventana de roble oscuro", + "block.create.dark_scoria": "Escoria oscura", + "block.create.dark_scoria_bricks": "Ladrillos de escoria oscura", + "block.create.dark_scoria_bricks_slab": "Losa de ladrillos de escoria oscura", + "block.create.dark_scoria_bricks_stairs": "Escaleras de ladrillos de escoria oscura", + "block.create.dark_scoria_bricks_wall": "Muro de ladrillos de escoria oscura", + "block.create.dark_scoria_cobblestone": "Adoquines de escoria oscura", + "block.create.dark_scoria_cobblestone_slab": "Losa de adoquines de escoria oscura", + "block.create.dark_scoria_cobblestone_stairs": "Escaleras de adoquines de escoria oscura", + "block.create.dark_scoria_cobblestone_wall": "Muro de adoquines de escoria oscura", + "block.create.dark_scoria_pillar": "Pilar de escoria oscura", + "block.create.deployer": "Desplegador", + "block.create.depot": "Depósito", + "block.create.diorite_bricks": "Ladrillos de diorita", + "block.create.diorite_bricks_slab": "Losa de ladrillos de diorita", + "block.create.diorite_bricks_stairs": "Escaleras de ladrillos de diorita", + "block.create.diorite_bricks_wall": "Muro de ladrillos de diorita", + "block.create.diorite_cobblestone": "Adoquín de diorita", + "block.create.diorite_cobblestone_slab": "Losa de adoquínes de diorita", + "block.create.diorite_cobblestone_stairs": "Escaleras de adoquines de diorita", + "block.create.diorite_cobblestone_wall": "Muro de adoquines de diorita", + "block.create.diorite_pillar": "Pilar de diorita", + "block.create.dolomite": "Dolomita", + "block.create.dolomite_bricks": "Ladrillos de dolomita", + "block.create.dolomite_bricks_slab": "Losa de ladrillos de dolomita", + "block.create.dolomite_bricks_stairs": "Escaleras de ladrillos de dolomita", + "block.create.dolomite_bricks_wall": "Muro de ladrillos de dolomita", + "block.create.dolomite_cobblestone": "Adoquín de dolomita", + "block.create.dolomite_cobblestone_slab": "Losa de adoquín de dolomita", + "block.create.dolomite_cobblestone_stairs": "Escaleras de adoquines de dolomita", + "block.create.dolomite_cobblestone_wall": "Muro de adoquines de dolomita", + "block.create.dolomite_pillar": "Pilar de dolomita", + "block.create.encased_chain_drive": "Cadena de transmisión revestida", + "block.create.encased_fan": "Ventilador revestido", + "block.create.encased_fluid_pipe": "Tubería de fluidos de cobre reforzada", + "block.create.fancy_andesite_bricks": "Ladrillos de andesita elegantes", + "block.create.fancy_andesite_bricks_slab": "Ladrillos de andesita elegantes", + "block.create.fancy_andesite_bricks_stairs": "Escaleras de ladrillos de andesita elegantes", + "block.create.fancy_andesite_bricks_wall": "Muro de ladrillos de andesita elegantes", + "block.create.fancy_dark_scoria_bricks": "Ladrillos de escoria oscura elegantes", + "block.create.fancy_dark_scoria_bricks_slab": "Losa de ladrillos de escoria oscura elegantes", + "block.create.fancy_dark_scoria_bricks_stairs": "Escalera de ladrillos de escoria oscura elegantes", + "block.create.fancy_dark_scoria_bricks_wall": "Muro de ladrillos de escoria oscura elegantes", + "block.create.fancy_diorite_bricks": "Ladrillos de diorita elegantes", + "block.create.fancy_diorite_bricks_slab": "Losa de ladrillos de diorita elegantes", + "block.create.fancy_diorite_bricks_stairs": "Escaleras de ladrillos de diorita elegantes", + "block.create.fancy_diorite_bricks_wall": "Muro de ladrillos de diorita elegantes", + "block.create.fancy_dolomite_bricks": "Ladrillos de dolomita elegantes", + "block.create.fancy_dolomite_bricks_slab": "Losa de ladrillos de dolomita elegantes", + "block.create.fancy_dolomite_bricks_stairs": "Escaleras de ladrillos de dolomita elegantes", + "block.create.fancy_dolomite_bricks_wall": "Muro de ladrillos de dolomita elegantes", + "block.create.fancy_gabbro_bricks": "Ladrillos de gabro elegantes", + "block.create.fancy_gabbro_bricks_slab": "Losa de ladrillos de gabro elegantes", + "block.create.fancy_gabbro_bricks_stairs": "Escaleras de ladrillos de gabro elegantes", + "block.create.fancy_gabbro_bricks_wall": "Muro de ladrillos de gabro elegantes", + "block.create.fancy_granite_bricks": "Ladrillos de granito elegantes", + "block.create.fancy_granite_bricks_slab": "Losa de ladrillos de granito elegantes", + "block.create.fancy_granite_bricks_stairs": "Escaleras de ladrillos de granito elegantes", + "block.create.fancy_granite_bricks_wall": "Muro de ladrillos de granito elegantes", + "block.create.fancy_limestone_bricks": "Ladrillos de piedra caliza elegantes", + "block.create.fancy_limestone_bricks_slab": "Losa de ladrillos de piedra caliza elegantes", + "block.create.fancy_limestone_bricks_stairs": "Escaleras de ladrillos de piedra caliza elegantes", + "block.create.fancy_limestone_bricks_wall": "Muro de ladrillos de piedra caliza elegantes", + "block.create.fancy_scoria_bricks": "Ladrillos de escoria elegantes", + "block.create.fancy_scoria_bricks_slab": "Losa de ladrillos de escoria elegantes", + "block.create.fancy_scoria_bricks_stairs": "Escaleras de ladrillos de escoria elegantes", + "block.create.fancy_scoria_bricks_wall": "Muro de ladrillos de escoria elegantes", + "block.create.fancy_weathered_limestone_bricks": "Ladrillos de piedra de caliza erosionada elegantes", + "block.create.fancy_weathered_limestone_bricks_slab": "Losa de ladrillos de caliza erosionada elegantes", + "block.create.fancy_weathered_limestone_bricks_stairs": "Escaleras de ladrillos de caliza erosionada elegantes", + "block.create.fancy_weathered_limestone_bricks_wall": "Muro de ladrillos de caliza erosionada elegantes", + "block.create.fluid_pipe": "Tubería de fluidos de cobre", + "block.create.fluid_tank": "Depósito de fluidos", + "block.create.fluid_valve": "Válvula de fluidos", + "block.create.flywheel": "Rueda de inercia", + "block.create.framed_glass": "Cristal enmarcado", + "block.create.framed_glass_pane": "Panel de cristal enmarcado", + "block.create.furnace_engine": "Motor de horno", + "block.create.gabbro": "Gabro", + "block.create.gabbro_bricks": "Ladrillos de gabro", + "block.create.gabbro_bricks_slab": "Losa de ladrillos de gabro", + "block.create.gabbro_bricks_stairs": "Escaleras de ladrillos de gabro", + "block.create.gabbro_bricks_wall": "Muro de ladrillos de gabro", + "block.create.gabbro_cobblestone": "Adoquín de gabro", + "block.create.gabbro_cobblestone_slab": "Losa de adoquínes de gabro", + "block.create.gabbro_cobblestone_stairs": "Escaleras de adoquínes de gabro", + "block.create.gabbro_cobblestone_wall": "Muro de adoquínes de gabro", + "block.create.gabbro_pillar": "Pilar de gabro", + "block.create.gantry_carriage": "Carro de grúa", + "block.create.gantry_shaft": "Eje de grúa", + "block.create.gearbox": "Caja de transmisión", + "block.create.gearshift": "Caja de cambios", + "block.create.glass_fluid_pipe": "Tubería de fluidos de cristal", + "block.create.granite_bricks": "Ladrillos de granito", + "block.create.granite_bricks_slab": "Losa de ladrillos de granito", + "block.create.granite_bricks_stairs": "Escaleras de ladrillos de granito", + "block.create.granite_bricks_wall": "Muro de ladrillos de granito", + "block.create.granite_cobblestone": "Adoquín de granito", + "block.create.granite_cobblestone_slab": "Losa de adoquínes de granito", + "block.create.granite_cobblestone_stairs": "Escaleras de adoquínes de granito", + "block.create.granite_cobblestone_wall": "Muro de adoquínes de granito", + "block.create.granite_pillar": "Pilar de granito", + "block.create.gray_nixie_tube": "Tubo Nixie gris", + "block.create.gray_sail": "Vela gris", + "block.create.gray_seat": "Asiento gris", + "block.create.gray_valve_handle": "Asa de válvula gris", + "block.create.green_nixie_tube": "Tubo Nixie verde", + "block.create.green_sail": "Vela verde", + "block.create.green_seat": "Asiento verde", + "block.create.green_valve_handle": "Asa de válvula verde", + "block.create.hand_crank": "Manivela", + "block.create.haunted_bell": "Campana encantada", + "block.create.honey": "Miel", + "block.create.horizontal_framed_glass": "Cristal con marco horizontal", + "block.create.horizontal_framed_glass_pane": "Panel de cristal con marco horizontal", + "block.create.hose_pulley": "Polea de manguera", + "block.create.item_drain": "Drenador de objetos", + "block.create.jungle_window": "Ventana de jungla", + "block.create.jungle_window_pane": "Panel de ventana de jungla", + "block.create.large_cogwheel": "Engranaje grande", + "block.create.layered_andesite": "Andesita estratificada", + "block.create.layered_dark_scoria": "Escoria oscura estratificada", + "block.create.layered_diorite": "Diorita estratificada", + "block.create.layered_dolomite": "Dolomita estratificada", + "block.create.layered_gabbro": "Gabro estratificado", + "block.create.layered_granite": "Granito estratificado", + "block.create.layered_limestone": "Piedra caliza estratificada", + "block.create.layered_scoria": "Escoria estratificada", + "block.create.layered_weathered_limestone": "Caliza erosionada estratificada", + "block.create.lectern_controller": "Controlador de atril", + "block.create.light_blue_nixie_tube": "Tubo Nixie azul claro", + "block.create.light_blue_sail": "Vela azul claro", + "block.create.light_blue_seat": "Asiento azul claro", + "block.create.light_blue_valve_handle": "Asa de válvula azul claro", + "block.create.light_gray_nixie_tube": "Tubo Nixie gris claro", + "block.create.light_gray_sail": "Vela gris claro", + "block.create.light_gray_seat": "Asiento gris claro", + "block.create.light_gray_valve_handle": "Asa de válvula gris claro", + "block.create.lime_nixie_tube": "Tubo Nixie lima", + "block.create.lime_sail": "Vela lima", + "block.create.lime_seat": "Asiento lima", + "block.create.lime_valve_handle": "Asa de válvula lima", + "block.create.limesand": "Arena caliza", + "block.create.limestone": "Piedra caliza", + "block.create.limestone_bricks": "Ladrillos de piedra caliza", + "block.create.limestone_bricks_slab": "Losa de ladrillos de piedra caliza", + "block.create.limestone_bricks_stairs": "Escaleras de ladrillos de piedra caliza", + "block.create.limestone_bricks_wall": "Muro de ladrillos de piedra caliza", + "block.create.limestone_cobblestone": "Adoquínes de piedra caliza", + "block.create.limestone_cobblestone_slab": "Losa de adoquines de piedra caliza", + "block.create.limestone_cobblestone_stairs": "Escaleras de adoquines de piedra caliza", + "block.create.limestone_cobblestone_wall": "Muro de adoquines de piedra caliza", + "block.create.limestone_pillar": "Pilar de piedra caliza", + "block.create.linear_chassis": "Chasis lineal", + "block.create.lit_blaze_burner": "Quemador de Blaze encendido", + "block.create.magenta_nixie_tube": "Tubo Nixie magenta", + "block.create.magenta_sail": "Vela magenta", + "block.create.magenta_seat": "Asiento magenta", + "block.create.magenta_valve_handle": "Asa de válvula magenta", + "block.create.mechanical_arm": "Brazo mecánico", + "block.create.mechanical_bearing": "Rodamiento mecánico", + "block.create.mechanical_crafter": "Ensamblador mecánico", + "block.create.mechanical_drill": "Taladro mecánico", + "block.create.mechanical_harvester": "Cosechadora mecánica", + "block.create.mechanical_mixer": "Mezcladora mecánica", + "block.create.mechanical_piston": "Pistón mecánico", + "block.create.mechanical_piston_head": "Cabezal de pistón mecánico", + "block.create.mechanical_plough": "Arado mecánico", + "block.create.mechanical_press": "Prensa mecánica", + "block.create.mechanical_pump": "Bomba mecánica", + "block.create.mechanical_saw": "Sierra mecánica", + "block.create.metal_bracket": "Soporte de metal para ejes", + "block.create.millstone": "Piedra de molino", + "block.create.minecart_anchor": "Ancla de vagonetas", + "block.create.mossy_andesite": "Andesita musgosa", + "block.create.mossy_dark_scoria": "Escoria oscura musgosa", + "block.create.mossy_diorite": "Diorita musgosa", + "block.create.mossy_dolomite": "Dolomita musgosa", + "block.create.mossy_gabbro": "Gabro musgoso", + "block.create.mossy_granite": "Granito musgoso", + "block.create.mossy_limestone": "Caliza musgosa", + "block.create.mossy_scoria": "Escoria musgosa", + "block.create.mossy_weathered_limestone": "Caliza erosionada musgosa", + "block.create.mysterious_cuckoo_clock": "Reloj de cuco", + "block.create.natural_scoria": "Escoria natural", + "block.create.nixie_tube": "Tubo Nixie", + "block.create.nozzle": "Boquilla", + "block.create.oak_window": "Ventana de roble", + "block.create.oak_window_pane": "Panel de ventana de roble", + "block.create.orange_sail": "Vela naranja", + "block.create.orange_seat": "Asiento naranja", + "block.create.orange_valve_handle": "Asa de válvula naranja", + "block.create.ornate_iron_window": "Ventana de hierro ornamentada", + "block.create.ornate_iron_window_pane": "Panel de ventana de hierro ornamentada", + "block.create.overgrown_andesite": "Andesita sobredimensionada", + "block.create.overgrown_dark_scoria": "Escoria oscura sobredimensionada", + "block.create.overgrown_diorite": "Diorita sobredimensionada", + "block.create.overgrown_dolomite": "Dolomita sobredimensionada", + "block.create.overgrown_gabbro": "Gabro sobredimensionado", + "block.create.overgrown_granite": "Granito sobredimensionado", + "block.create.overgrown_limestone": "Caliza sobredimensionada", + "block.create.overgrown_scoria": "Escoria sobredimensionada", + "block.create.overgrown_weathered_limestone": "Caliza erosionada sobredimensionada", + "block.create.paved_andesite": "Andesita pavimentada", + "block.create.paved_andesite_slab": "Losa de andesita pavimentada", + "block.create.paved_andesite_stairs": "Escaleras de andesita pavimentada", + "block.create.paved_andesite_wall": "Muro de andesita pavimentada", + "block.create.paved_dark_scoria": "Escoria oscura pavimentada", + "block.create.paved_dark_scoria_slab": "Losa de escoria oscura pavimentada", + "block.create.paved_dark_scoria_stairs": "Escaleras de escoria oscura pavimentada", + "block.create.paved_dark_scoria_wall": "Muro de escoria oscura pavimentad", + "block.create.paved_diorite": "Diorita pavimentada", + "block.create.paved_diorite_slab": "Losa de diorita pavimentada", + "block.create.paved_diorite_stairs": "Escaleras de diorita pavimentada", + "block.create.paved_diorite_wall": "Muro de diorita pavimentad", + "block.create.paved_dolomite": "Dolomita pavimentada", + "block.create.paved_dolomite_slab": "Losa de dolomita pavimentada", + "block.create.paved_dolomite_stairs": "Escaleras de dolomita pavimentada", + "block.create.paved_dolomite_wall": "Muro de dolomita pavimentada", + "block.create.paved_gabbro": "Gabro pavimentado", + "block.create.paved_gabbro_slab": "Losa de gabro pavimentado", + "block.create.paved_gabbro_stairs": "Escaleras de gabro pavimentado", + "block.create.paved_gabbro_wall": "Muro de gabro pavimentado", + "block.create.paved_granite": "Granito pavimentado", + "block.create.paved_granite_slab": "Losa de granito pavimentado", + "block.create.paved_granite_stairs": "Escaleras de granito pavimentado", + "block.create.paved_granite_wall": "Muro de granito pavimentado", + "block.create.paved_limestone": "Piedra caliza pavimentada", + "block.create.paved_limestone_slab": "Losa de piedra caliza pavimentada", + "block.create.paved_limestone_stairs": "Escaleras de piedra caliza pavimentada", + "block.create.paved_limestone_wall": "Muro de piedra caliza pavimentada", + "block.create.paved_scoria": "Escoria pavimentada", + "block.create.paved_scoria_slab": "Losa de escoria pavimentada", + "block.create.paved_scoria_stairs": "Escaleras de escoria pavimentada", + "block.create.paved_scoria_wall": "Muro de escoria pavimentada", + "block.create.paved_weathered_limestone": "Piedra caliza erosionada pavimentada", + "block.create.paved_weathered_limestone_slab": "Losa de piedra caliza erosionada pavimentada", + "block.create.paved_weathered_limestone_stairs": "Escaleras de piedra caliza erosionada pavimentada", + "block.create.paved_weathered_limestone_wall": "Muro de piedra caliza erosionada pavimentada", + "block.create.peculiar_bell": "Campana peculiar", + "block.create.pink_nixie_tube": "Tubo Nixie rosa", + "block.create.pink_sail": "Vela rosa", + "block.create.pink_seat": "Asiento rosa", + "block.create.pink_valve_handle": "Asa de válvula rosa", + "block.create.piston_extension_pole": "Pértiga de extensión de pistón", + "block.create.polished_dark_scoria": "Escoria oscura pulida", + "block.create.polished_dark_scoria_slab": "Losa de escoria oscura pulida", + "block.create.polished_dark_scoria_stairs": "Escaleras de escoria oscura pulida", + "block.create.polished_dark_scoria_wall": "Muro de escoria oscura pulida", + "block.create.polished_dolomite": "Dolomita pulida", + "block.create.polished_dolomite_slab": "Losa de dolomita pulida", + "block.create.polished_dolomite_stairs": "Escaleras de dolomita pulidas", + "block.create.polished_dolomite_wall": "Muro de dolomita pulida", + "block.create.polished_gabbro": "Gabro pulido", + "block.create.polished_gabbro_slab": "Losa de gabro pulido", + "block.create.polished_gabbro_stairs": "Escaleras de gabro pulido", + "block.create.polished_gabbro_wall": "Muro de gabro pulido", + "block.create.polished_limestone": "Piedra caliza pulida", + "block.create.polished_limestone_slab": "Losa de piedra caliza pulida", + "block.create.polished_limestone_stairs": "Escaleras de piedra caliza pulidas", + "block.create.polished_limestone_wall": "Muro de piedra caliza pulida", + "block.create.polished_scoria": "Escoria pulida", + "block.create.polished_scoria_slab": "Losa de escoria pulida", + "block.create.polished_scoria_stairs": "Escaleras de losa pulida", + "block.create.polished_scoria_wall": "Muro de escoria pulida", + "block.create.polished_weathered_limestone": "Piedra caliza erosionada pulida", + "block.create.polished_weathered_limestone_slab": "Losa de piedra caliza erosionada pulida", + "block.create.polished_weathered_limestone_stairs": "Escaleras de piedra caliza erosionada pulida", + "block.create.polished_weathered_limestone_wall": "Muro de piedra caliza erosionada pulida", + "block.create.portable_fluid_interface": "Interfaz de fluidos portátil", + "block.create.portable_storage_interface": "Interfaz de almacenamiento portátil", + "block.create.powered_latch": "Palanca motorizada", + "block.create.powered_toggle_latch": "Palanca de cierre motorizada", + "block.create.pulley_magnet": "Imán de la polea", + "block.create.pulse_repeater": "Repetidor de pulsos de redstone", + "block.create.purple_nixie_tube": "Tubo Nixie morado", + "block.create.purple_sail": "Vela morada", + "block.create.purple_seat": "Asiento morado", + "block.create.purple_valve_handle": "Asa de válvula morada", + "block.create.radial_chassis": "Chasis radial", + "block.create.red_nixie_tube": "Tubo Nixie rojo", + "block.create.red_sail": "Vela roja", + "block.create.red_seat": "Asiento rojo", + "block.create.red_valve_handle": "Asa de válvula roja", + "block.create.redstone_contact": "Contacto de redstone", + "block.create.redstone_link": "Enlace de redstone", + "block.create.refined_radiance_casing": "Revestidor radiante", + "block.create.reinforced_rail": "Raíl reforzado", + "block.create.rope": "Cuerda", + "block.create.rope_pulley": "Polea de cuerda", + "block.create.rotation_speed_controller": "Controlador de velocidad rotacional", + "block.create.sail_frame": "Marco de vela", + "block.create.schematic_table": "Tabla de esquemas", + "block.create.schematicannon": "Cañón de esquemas", + "block.create.scoria": "Escoria", + "block.create.scoria_bricks": "Ladrillos de escoria", + "block.create.scoria_bricks_slab": "Losa de ladrillos de escoria", + "block.create.scoria_bricks_stairs": "Escaleras de ladrillos de escoria", + "block.create.scoria_bricks_wall": "Muro de ladrillos de escoria", + "block.create.scoria_cobblestone": "Adoquín de escoria", + "block.create.scoria_cobblestone_slab": "Losa de adoquínes de escoria", + "block.create.scoria_cobblestone_stairs": "Escaleras de adoquines de escoria", + "block.create.scoria_cobblestone_wall": "Muro de adoquines de escoria", + "block.create.scoria_pillar": "Pilar de escoria", + "block.create.secondary_linear_chassis": "Chasis lineal secundario", + "block.create.sequenced_gearshift": "Caja de cambios secuencial", + "block.create.shadow_steel_casing": "Revestidor sombrío", + "block.create.shaft": "Eje", + "block.create.smart_chute": "Ducto inteligente", + "block.create.smart_fluid_pipe": "Tubería de fluidos inteligente", + "block.create.speedometer": "Velocímetro", + "block.create.spout": "Surtidor", + "block.create.spruce_window": "Ventana de abeto", + "block.create.spruce_window_pane": "Panel de ventana de abeto", + "block.create.sticker": "Sticker", + "block.create.sticky_mechanical_piston": "Pistón mecánico pegajoso", + "block.create.stockpile_switch": "Interruptor de acopio", + "block.create.stressometer": "Estresómetro", + "block.create.tiled_glass": "Vidrio esmaltado", + "block.create.tiled_glass_pane": "Panel de vidrio esmaltado", + "block.create.turntable": "Plataforma giratoria mecánica", + "block.create.vertical_framed_glass": "Vidrio esmaltado vertical", + "block.create.vertical_framed_glass_pane": "Panel de vidrio esmaltado vertical", + "block.create.warped_window": "Ventana distorsionada", + "block.create.warped_window_pane": "Panel de ventana distorsionada", + "block.create.water_wheel": "Rueda hidráulica mecánica", + "block.create.weathered_limestone": "Piedra caliza erosionada", + "block.create.weathered_limestone_bricks": "Ladrillos de piedra caliza erosionada", + "block.create.weathered_limestone_bricks_slab": "Losa de piedra caliza erosionada", + "block.create.weathered_limestone_bricks_stairs": "Escaleras de ladrillos de piedra caliza erosionada", + "block.create.weathered_limestone_bricks_wall": "Muro de ladrillos de piedra caliza erosionada", + "block.create.weathered_limestone_cobblestone": "Adoquín de piedra caliza erosionada", + "block.create.weathered_limestone_cobblestone_slab": "Losa de adoquín de piedra caliza erosionada", + "block.create.weathered_limestone_cobblestone_stairs": "Escaleras de adoquín de piedra caliza erosionada", + "block.create.weathered_limestone_cobblestone_wall": "Muro de adoquínes de piedra caliza erosionada", + "block.create.weathered_limestone_pillar": "Pilar de piedra caliza erosionada", + "block.create.weighted_ejector": "Eyector de peso", + "block.create.white_nixie_tube": "Tubo Nixie blanco", + "block.create.white_sail": "Vela blanca", + "block.create.white_seat": "Asiento blanco", + "block.create.white_valve_handle": "Asa de válvula blanco", + "block.create.windmill_bearing": "Rodamiento del molino de viento", + "block.create.wooden_bracket": "Soporte de madera para ejes", + "block.create.yellow_nixie_tube": "Tubo Nixie amarillo", + "block.create.yellow_sail": "Vela amarilla", + "block.create.yellow_seat": "Asiento amarillo", + "block.create.yellow_valve_handle": "Asa de válvula amarillo", + "block.create.zinc_block": "Bloque de zinc", + "block.create.zinc_ore": "Mena de zinc", + + "enchantment.create.capacity": "Capacidad", + "enchantment.create.potato_recovery": "Recuperación de patatas", + + "entity.create.contraption": "Artilugio", + "entity.create.crafting_blueprint": "Plano de elaboración", + "entity.create.gantry_contraption": "Artilugio de grúa", + "entity.create.potato_projectile": "Proyectil de patata", + "entity.create.seat": "Asiento", + "entity.create.stationary_contraption": "Artilugio estacionario", + "entity.create.super_glue": "Pegamento", + + "fluid.create.potion": "Poción", + "fluid.create.tea": "Té del Constructor", + + "item.create.andesite_alloy": "Aleación de andesita", + "item.create.attribute_filter": "Filtro de atributos", + "item.create.bar_of_chocolate": "Barra de chocolate", + "item.create.belt_connector": "Correa mecánica", + "item.create.blaze_cake": "Pastel de blaze", + "item.create.blaze_cake_base": "Base de pastel de blaze", + "item.create.brass_hand": "Mano de latón", + "item.create.brass_ingot": "Lingote de latón", + "item.create.brass_nugget": "Pepita de latón", + "item.create.brass_sheet": "Lámina de latón", + "item.create.builders_tea": "Té del Constructor", + "item.create.chest_minecart_contraption": "Artilugio de vagoneta con cofre", + "item.create.chocolate_bucket": "Cubo con chocolate", + "item.create.chocolate_glazed_berries": "Bayas glaseadas con chocolate", + "item.create.chromatic_compound": "Compuesto cromático", + "item.create.cinder_flour": "Harina del Nether", + "item.create.copper_backtank": "Depósito trasero de cobre", + "item.create.copper_ingot": "Lingote de cobre", + "item.create.copper_nugget": "Pepita de cobre", + "item.create.copper_sheet": "Lámina de cobre", + "item.create.crafter_slot_cover": "Tapa de ranura del ensamblador mecánico", + "item.create.crafting_blueprint": "Plano de elaboración", + "item.create.creative_blaze_cake": "´Pastel de blaze creativo", + "item.create.crushed_aluminum_ore": "Mineral de aluminio molido", + "item.create.crushed_brass": "Latón molido", + "item.create.crushed_copper_ore": "Mineral de cobre molido", + "item.create.crushed_gold_ore": "Mineral de oro molido", + "item.create.crushed_iron_ore": "Mineral de hierro molido", + "item.create.crushed_lead_ore": "Mineral de plomo molido", + "item.create.crushed_nickel_ore": "Mineral de níquel molido", + "item.create.crushed_osmium_ore": "Mineral de osmio molido", + "item.create.crushed_platinum_ore": "Mineral de platino molido", + "item.create.crushed_quicksilver_ore": "Mineral de mercurio molido", + "item.create.crushed_silver_ore": "Mineral de plata molido", + "item.create.crushed_tin_ore": "Mineral de estaño molido", + "item.create.crushed_uranium_ore": "Mineral de uranio molido", + "item.create.crushed_zinc_ore": "Mineral de zinc molido", + "item.create.diving_boots": "Botas de buceo", + "item.create.diving_helmet": "Casco de buceo", + "item.create.dough": "Masilla", + "item.create.electron_tube": "Tubo de electrones", + "item.create.empty_blaze_burner": "Quemador de blaze vacío", + "item.create.empty_schematic": "Esquema vacío", + "item.create.extendo_grip": "Agarre extendido", + "item.create.filter": "Filtro", + "item.create.furnace_minecart_contraption": "Artilugio de vagoneta de horno", + "item.create.goggles": "Gafas del constructor", + "item.create.golden_sheet": "Lámina de oro", + "item.create.handheld_worldshaper": "Worldshaper Creativo", + "item.create.honey_bucket": "Cubo con miel", + "item.create.honeyed_apple": "Manzana con miel", + "item.create.incomplete_cogwheel": "Engranaje pequeño incompleto", + "item.create.incomplete_large_cogwheel": "Engranaje grande incompleto", + "item.create.incomplete_precision_mechanism": "Mecanismo de precisión incompleto", + "item.create.iron_sheet": "Lámina de hierro", + "item.create.linked_controller": "Controlador enlazado", + "item.create.minecart_contraption": "Artilugio de vagoneta", + "item.create.minecart_coupling": "Acoplamiento de vagoneta", + "item.create.polished_rose_quartz": "Cuarzo rosado pulido", + "item.create.potato_cannon": "Cañón de patatas", + "item.create.powdered_obsidian": "Polvo de obsidiana", + "item.create.precision_mechanism": "Mecanismo de precisión", + "item.create.propeller": "Hélice", + "item.create.red_sand_paper": "Papel de lija rojo", + "item.create.refined_radiance": "Resplandor refinado", + "item.create.rose_quartz": "Cuarzo rosado", + "item.create.sand_paper": "Papel de lija", + "item.create.schematic": "Esquema", + "item.create.schematic_and_quill": "Esquema y pluma", + "item.create.shadow_steel": "Acero sombrío", + "item.create.super_glue": "Pegamento", + "item.create.sweet_roll": "Pan dulce", + "item.create.tree_fertilizer": "Fertilizante para árboles", + "item.create.vertical_gearbox": "Caja de transmisión vertical", + "item.create.wand_of_symmetry": "Varita de simetría", + "item.create.wheat_flour": "Harina de trigo", + "item.create.whisk": "Batidora", + "item.create.wrench": "Llave inglesa", + "item.create.zinc_ingot": "Lingote de zinc", + "item.create.zinc_nugget": "Pepita de zinc", + + + "_": "->------------------------] Advancements [------------------------<-", + + "advancement.create.root": "Bienvenido a Create", + "advancement.create.root.desc": "¡Es hora de empezar a construir increíbles artilugios!", + "advancement.create.andesite_alloy": "Aleaciones en abundancia", + "advancement.create.andesite_alloy.desc": "Los materiales de Create tienen nombres extraños, la aleación de andesita es uno de ellos.", + "advancement.create.its_alive": "¡Está vivo!", + "advancement.create.its_alive.desc": "Mira cómo gira tu primer componente cinético.", + "advancement.create.shifting_gears": "Cambiando de marcha", + "advancement.create.shifting_gears.desc": "Conecta un engranaje grande a uno pequeño, lo que te permitirá cambiar la velocidad de tu artilugio.", + "advancement.create.overstressed": "Sobrecargado", + "advancement.create.overstressed.desc": "Experimenta los límites del estrés.", + "advancement.create.belt": "Paseo de algas", + "advancement.create.belt.desc": "Conectar dos ejes con una correa.", + "advancement.create.tunnel": "¡Cúbrete!", + "advancement.create.tunnel.desc": "Embellece tu correa con un túnel.", + "advancement.create.splitter_tunnel": "Divide y vencerás", + "advancement.create.splitter_tunnel.desc": "Crear un divisor con un grupo de túneles de latón.", + "advancement.create.chute": "Caída en picado", + "advancement.create.chute.desc": "Coloque un ducto, la contrapartida vertical de la cinta.", + "advancement.create.upward_chute": "Abducción aérea", + "advancement.create.upward_chute.desc": "Observe cómo un objeto lanzado vuela dentro de un ducto impulsado por un ventilador.", + "advancement.create.belt_funnel": "Colgantes con forma de embudo", + "advancement.create.belt_funnel.desc": "Coloca un embudo lateral encima de una cinta o depósito para crear un tipo especial.", + "advancement.create.belt_funnel_kiss": "Los loros y las aletas", + "advancement.create.belt_funnel_kiss.desc": "Haz besar dos embudos montados con una cinta.", + "advancement.create.fan": "Maestro mecánico del aire", + "advancement.create.fan.desc": "Monta la corriente de aire proporcionada por un ventilador revestido.", + "advancement.create.fan_lava": "Calentador geotérmico", + "advancement.create.fan_lava.desc": "Queda atrapado en una corriente de aire que funde las cosas.", + "advancement.create.fan_water": "Lavado de la ropa", + "advancement.create.fan_water.desc": "Queda atrapado en una corriente de aire que lava las cosas.", + "advancement.create.fan_smoke": "Fuelle mecánico", + "advancement.create.fan_smoke.desc": "Queda atrapado en una corriente de aire que humea los objetos.", + "advancement.create.wrench": "Configurar convenientemente", + "advancement.create.wrench.desc": "Crea una llave inglesa para ayudarte a construir tus artilugios.", + "advancement.create.goggles": "Estresóvisión", + "advancement.create.goggles.desc": "Crea unas gafas del constructor para ayudarte a obtener más información cinética de los componentes.", + "advancement.create.speedometer": "Pero, ¿con qué rapidez exactamente?", + "advancement.create.speedometer.desc": "Coloca y alimenta un velocímetro. Míralo a través de las gafas para leer su valor exacto.", + "advancement.create.stressometer": "Pero, ¿cuán estresado exactamente??", + "advancement.create.stressometer.desc": "Coloca y alimenta un estresómetro. Míralo a través de las gafas para leer su valor exacto.", + "advancement.create.aesthetics": "Boom, ¡Estética!", + "advancement.create.aesthetics.desc": "Coloca soportes en ejes, ductos y engranajes.", + "advancement.create.reinforced": "Boom, ¡Reforzado!", + "advancement.create.reinforced.desc": "Utiliza bloques de revestimiento en un eje, un ducto y una cinta.", + "advancement.create.water_wheel": "Aprovechar la hidráulica", + "advancement.create.water_wheel.desc": "Coloca una rueda hidráulica e intenta hacerla girar.", + "advancement.create.chocolate_wheel": "Potencia de buen gusto", + "advancement.create.chocolate_wheel.desc": "Haz funcionar una rueda de agua con chocolate fundido.", + "advancement.create.lava_wheel": "Rueda de magma", + "advancement.create.lava_wheel.desc": "Esto no debió haber funcionado.", + "advancement.create.cuckoo": "¿Es el momento?", + "advancement.create.cuckoo.desc": "Presencia cómo un reloj de cuco anuncia la hora de acostarse.", + "advancement.create.millstone": "Triturador de bolsillo", + "advancement.create.millstone.desc": "Coloca y alimenta una piedra de molino.", + "advancement.create.windmill": "Una suave brisa", + "advancement.create.windmill.desc": "Monta un molino de viento.", + "advancement.create.maxed_windmill": "Una fuerte brisa", + "advancement.create.maxed_windmill.desc": "Monta un molino de viento con máxima intensidad.", + "advancement.create.andesite_casing": "La edad de la andesita", + "advancement.create.andesite_casing.desc": "Utiliza un poco de aleación de andesita y madera para crear un revestimiento básico.", + "advancement.create.mechanical_drill": "Interruptores fijos", + "advancement.create.mechanical_drill.desc": "Coloca y alimenta un taladro mecánico.", + "advancement.create.press": "¡La prensa se pone en marcha!", + "advancement.create.press.desc": "Activa una prensa mecánica y utilízala para crear algunas láminas.", + "advancement.create.polished_rose_quartz": "Diamantes rosas", + "advancement.create.polished_rose_quartz.desc": "Utiliza un trozo de papel de lija para pulir el cuarzo rosa hasta que se vuelva transparente.", + "advancement.create.electron_tube": "Beep Boop", + "advancement.create.electron_tube.desc": "Haz algunos tubos de electrones, útiles en la fabricación de maquinaria menos primitiva.", + "advancement.create.mechanical_saw": "Picado estacionario", + "advancement.create.mechanical_saw.desc": "Coloca y alimenta una sierra mecánica.", + "advancement.create.basin": "Funcionamiento de la cuenca", + "advancement.create.basin.desc": "Coloca una cuenca e intenta arrojar objetos en ella.", + "advancement.create.mixer": "Mezcla de colores", + "advancement.create.mixer.desc": "Coloca una batidora mecánica sobre el lavabo, enciéndala y empiece a mezclar algunos ingredientes.", + "advancement.create.blaze_burner": "Una chimenea viva", + "advancement.create.blaze_burner.desc": "Obtiene un quemador de blaze.", + "advancement.create.compact": "Compactación automática", + "advancement.create.compact.desc": "Utiliza una prensa y una cuenca para compactar algunos objetos.", + "advancement.create.brass": "Aleaciones reales", + "advancement.create.brass.desc": "Utiliza cobre molido y zinc molido para crear algo de latón.", + "advancement.create.brass_casing": "La Edad de Latón", + "advancement.create.brass_casing.desc": "Utiliza el latón recién obtenido y algo de madera para crear un revestimiento más avanzado.", + "advancement.create.copper_casing": "La Edad de Cobre", + "advancement.create.copper_casing.desc": "Utiliza algunas láminas de cobre y madera para crear algunos revestimientos de cobre.", + "advancement.create.spout": "Sploosh", + "advancement.create.spout.desc": "Observa el llenado de un fluido usando una boquilla.", + "advancement.create.spout_potion": "Cervecera global", + "advancement.create.spout_potion.desc": "Mira cómo un pico llena una botella con líquido de poción.", + "advancement.create.chocolate": "Un mundo de imaginación", + "advancement.create.chocolate.desc": "Obtiene un cubo con chocolate fundido.", + "advancement.create.item_drain": "Drenaje de la ropa", + "advancement.create.item_drain.desc": "Ve cómo se vacía un fluido mediante un drenador de objetos.", + "advancement.create.chained_item_drain": "¡Déjalo rodar!", + "advancement.create.chained_item_drain.desc": "Observa cómo un objeto rueda por varios drenadores de objetos encadenados.", + "advancement.create.glass_pipe": "Espía del flujo", + "advancement.create.glass_pipe.desc": "Observa cómo se propaga el fluido a través de un tubo de fluidos con ventanas. Los tubos de fluido rectos se convierten en ventanas cuando se utiliza una llave inglesa en ellas.", + "advancement.create.pipe_collision": "No cruzar nunca los arroyos", + "advancement.create.pipe_collision.desc": "Vea cómo se unen dos fluidos en su red de tuberías.", + "advancement.create.pipe_spill": "¡Hay una fuga!", + "advancement.create.pipe_spill.desc": "Observe cómo un extremo abierto de una tubería toma o deposita fluidos en el mundo.", + "advancement.create.hose_pulley": "Vertidos industriales", + "advancement.create.hose_pulley.desc": "Baja una polea de manguera y ve cómo se vacía o se llena un cuerpo de líquido.", + "advancement.create.infinite_water": "Drenando el océano", + "advancement.create.infinite_water.desc": "Bombea de una masa de agua lo suficientemente grande como para ser considerada infinita.", + "advancement.create.infinite_lava": "Drenaje del núcleo de los planetas", + "advancement.create.infinite_lava.desc": "Bombea de una masa de lava lo suficientemente grande como para ser considerada infinita.", + "advancement.create.infinite_chocolate": "Ahogándose en la imaginación", + "advancement.create.infinite_chocolate.desc": "Bombea desde una masa de chocolate fundido lo suficientemente grande como para ser considerado infinito.", + "advancement.create.crafter": "Montaje automatizado", + "advancement.create.crafter.desc": "Coloca y alimenta algunos ensambladores.", + "advancement.create.clockwork_bearing": "Artilugio a la hora", + "advancement.create.clockwork_bearing.desc": "Ensamblar una estructura montada sobre un rodamiento tipo reloj.", + "advancement.create.nixie_tube": "Signos de estilo", + "advancement.create.nixie_tube.desc": "Obtener y colocar un par de tubos nixie.", + "advancement.create.deployer": "Picar, colocar y atacar", + "advancement.create.deployer.desc": "Coloca y potencia un desplegador, el reflejo perfecto de ti mismo.", + "advancement.create.speed_controller": "Los ingenieros lo odian!", + "advancement.create.speed_controller.desc": "Coloca un controlador de velocidad rotacional, el dispositivo definitivo para cambiar de marcha.", + "advancement.create.flywheel": "El corazón de la fábrica", + "advancement.create.flywheel.desc": "Conecta con éxito un motor a la rueda de inercia.", + "advancement.create.overstress_flywheel": "Altos niveles de estrés", + "advancement.create.overstress_flywheel.desc": "Sobrecarga un motor de horno.", + "advancement.create.precision_mechanism": "Curiosidades complejas", + "advancement.create.precision_mechanism.desc": "Monta un mecanismo de precisión.", + "advancement.create.mechanical_arm": "¡Manos ocupadas!", + "advancement.create.mechanical_arm.desc": "Crea un brazo mecánico, selecciona las entradas y salidas, colócalo en el suelo y dale energía; luego observa cómo hace todo el trabajo por ti.", + "advancement.create.musical_arm": "¡Tócame la melodía!", + "advancement.create.musical_arm.desc": "Vea cómo un brazo mecánico maneja su Jukebox.", + "advancement.create.arm_many_targets": "Organize-o-Tron", + "advancement.create.arm_many_targets.desc": "Programa un brazo mecánico con diez o más posiciones de salida.", + "advancement.create.arm_blaze_burner": "Combust-o-Tron", + "advancement.create.arm_blaze_burner.desc": "Instruya un brazo mecánico para alimentar su quemador de blaze.", + "advancement.create.fist_bump": "¡Pégale, hermano!", + "advancement.create.fist_bump.desc": "Haz que dos desplegadores se den un puñetazo.", + "advancement.create.crushing_wheel": "Un par de gigantes", + "advancement.create.crushing_wheel.desc": "Crea algunas ruedas de trituración para descomponer más materiales de forma más eficaz.", + "advancement.create.blaze_cake": "Fiebre del azúcar", + "advancement.create.blaze_cake.desc": "Hornea en tu quemador de blaze un pastel especial.", + "advancement.create.chromatic_compound": "Minerales misteriosos", + "advancement.create.chromatic_compound.desc": "Crea una barra de compuesto cromático.", + "advancement.create.shadow_steel": "Retorno del vacío", + "advancement.create.shadow_steel.desc": "Crea acero sombrío, una barra de metal de la nada.", + "advancement.create.refined_radiance": "Brillante e inspirador", + "advancement.create.refined_radiance.desc": "Crea un resplandor refinado, una poderosa sustancia cromática.", + "advancement.create.chromatic_age": "La edad cromática", + "advancement.create.chromatic_age.desc": "Crear bloques de revestimiento de la luz y la oscuridad.", + "advancement.create.wand_of_symmetry": "Espejos radiantes", + "advancement.create.wand_of_symmetry.desc": "Crear un bastón de simetría.", + "advancement.create.extendo_grip": "¡Boioioing!", + "advancement.create.extendo_grip.desc": "Hazte con un agarre extentido.", + "advancement.create.potato_cannon": "Fwoomp!", + "advancement.create.potato_cannon.desc": "Derrota a un enemigo con tu cañón de patatas.", + "advancement.create.dual_extendo_grip": "La última edad del boing", + "advancement.create.dual_extendo_grip.desc": "Doble empuñadura extendida para un alcance sobrehumano.", + "advancement.create.eob": "Fin de la beta", + "advancement.create.eob.desc": "Espere más contenido aquí en el futuro. <3", + + + "_": "->------------------------] UI & Messages [------------------------<-", + + "itemGroup.create.base": "Create", + "itemGroup.create.palettes": "Paletas", + + "death.attack.create.crush": "%1$s se procesó en las ruedas de trituración", + "death.attack.create.crush.player": "%1$s fue arrojado a las ruedas de trituración por %2$s", + "death.attack.create.fan_fire": "%1$s murió quemado por el aire caliente", + "death.attack.create.fan_fire.player": "%1$s fue arrojado a un ahumador por %2$s", + "death.attack.create.fan_lava": "%1$s murió quemado por un abanico de lava", + "death.attack.create.fan_lava.player": "%1$s fue arrojado a una fundición por %2$s", + "death.attack.create.mechanical_drill": "%1$s fue empalado por un taladro mecánico", + "death.attack.create.mechanical_drill.player": "%1$s fue lanzado frente a un taladro por %2$s", + "death.attack.create.mechanical_saw": "%1$s fue cortado por la mitad por una sierra mecánica", + "death.attack.create.mechanical_saw.player": "%1$s fue arrojado a una sierra por %2$s", + "death.attack.create.potato_cannon": "%1$s fue disparado por el cañón de patatas de %2$s's", + "death.attack.create.potato_cannon.item": "%1$s fue disparado por %2$s utilizando %3$s", + "death.attack.create.cuckoo_clock_explosion": "%1$s fue volado por los aires por un reloj de cuco manipulado", + "death.attack.create.cuckoo_clock_explosion.player": "%1$s fue volado por un reloj de cuco manipulado", + + "create.block.deployer.damage_source_name": "Un desplegador rebelde", + "create.block.cart_assembler.invalid": "Coloque su Ensamblador de vagonetas en un bloque de Raíles", + + "create.menu.return": "Regresar al menú", + "create.menu.configure": "Configurar...", + "create.menu.ponder_index": "Índice", + "create.menu.only_ingame": "Disponible en el menú de pausa", + "create.menu.project_page": "Página del proyecto", + "create.menu.report_bugs": "Reportar problemas", + "create.menu.support": "Apóyenos", + + "create.recipe.crushing": "Trituración", + "create.recipe.milling": "Fresado", + "create.recipe.fan_washing": "Lavado a granel", + "create.recipe.fan_washing.fan": "Ventilador detrás del agua fluyente", + "create.recipe.fan_smoking": "Ahumador a granel", + "create.recipe.fan_smoking.fan": "Ventilador detrás del fuego", + "create.recipe.fan_blasting": "Voladuras a granel", + "create.recipe.fan_blasting.fan": "Ventilador detrás de la lava", + "create.recipe.pressing": "Prensando", + "create.recipe.mixing": "Mezclando", + "create.recipe.deploying": "Desplegando", + "create.recipe.automatic_shapeless": "Elaboración automatizada de productos sin forma", + "create.recipe.automatic_brewing": "Elaboración de cerveza automatizada", + "create.recipe.packing": "Compactando", + "create.recipe.automatic_packing": "Embalaje automatizado", + "create.recipe.sawing": "Aserrando", + "create.recipe.mechanical_crafting": "Elaboración mecánica", + "create.recipe.automatic_shaped": "Elaboración automatizada de productos con forma", + "create.recipe.block_cutting": "Corte de bloques", + "create.recipe.wood_cutting": "Corte de maderas", + "create.recipe.sandpaper_polishing": "Pulido con papel de lija", + "create.recipe.mystery_conversion": "Conversión misteriosa", + "create.recipe.spout_filling": "Llenar por el pico", + "create.recipe.draining": "Drenador de objetos", + "create.recipe.sequenced_assembly": "Montaje secuenciado", + "create.recipe.assembly.next": "Siguiente: %1$s", + "create.recipe.assembly.step": "Fase %1$s:", + "create.recipe.assembly.progress": "Progreso: %1$s/%2$s", + "create.recipe.assembly.pressing": "Proceso en prensa", + "create.recipe.assembly.spout_filling_fluid": "Pico %1$s", + "create.recipe.assembly.deploying_item": "Despliegue %1$s", + "create.recipe.assembly.cutting": "Corte con sierra", + "create.recipe.assembly.repeat": "Repetir la secuencia %1$s veces", + "create.recipe.assembly.junk": "Basura aleatoria", + "create.recipe.processing.chance": "%1$s%% Chance", + "create.recipe.heat_requirement.none": "No es necesario calentar", + "create.recipe.heat_requirement.heated": "Calentado", + "create.recipe.heat_requirement.superheated": "Súper-Calentado", + + "create.generic.range": "Rango", + "create.generic.radius": "Radio", + "create.generic.width": "Ancho", + "create.generic.height": "Alto", + "create.generic.length": "Largo", + "create.generic.speed": "Velocidad", + "create.generic.delay": "Retraso", + "create.generic.unit.ticks": "Ticks", + "create.generic.unit.seconds": "Segundos", + "create.generic.unit.minutes": "Minutos", + "create.generic.unit.rpm": "RPM", + "create.generic.unit.stress": "SU(unidades de estrés)", + "create.generic.unit.degrees": "°", + "create.generic.unit.millibuckets": "%1$smB", + "create.generic.clockwise": "En el sentido de las agujas del reloj", + "create.generic.counter_clockwise": "En sentido contrario a las agujas del reloj", + + "create.action.scroll": "Desplazar", + "create.action.confirm": "Confirmar", + "create.action.abort": "Abortar", + "create.action.saveToFile": "Guardar", + "create.action.discard": "Descartar", + + "create.keyinfo.toolmenu": "Menú de la Herramienta de Enfoque", + "create.keyinfo.scrollup": "Simular usar la rueda del ratón hacia arriba (en el mundo)", + "create.keyinfo.scrolldown": "Simular usar la rueda del ratón hacia abajo (en el mundo)", + + "create.gui.scrollInput.defaultTitle": "Seleccione una opción:", + "create.gui.scrollInput.scrollToModify": "Usa la rueda del ratón para modificar", + "create.gui.scrollInput.scrollToAdjustAmount": "Usa la rueda del ratón para ajustar la cantidad", + "create.gui.scrollInput.scrollToSelect": "Usa la rueda del ratón para seleccionar", + "create.gui.scrollInput.shiftScrollsFaster": "Mayús izdo para usar la rueda del ratón más rápido", + "create.gui.toolmenu.focusKey": "Mantén [%1$s] para enfocar", + "create.gui.toolmenu.cycle": "[RUEDA DEL RATÓN] para el ciclo", + "create.gui.symmetryWand.mirrorType": "Espejado", + "create.gui.symmetryWand.orientation": "Orientación", + + "create.symmetry.mirror.plane": "Plano de espejo", + "create.symmetry.mirror.doublePlane": "Rectangular", + "create.symmetry.mirror.triplePlane": "Octogonal", + + "create.orientation.orthogonal": "Ortogonal", + "create.orientation.diagonal": "Diagonal", + "create.orientation.horizontal": "Horizontal", + "create.orientation.alongZ": "A lo largo de Z", + "create.orientation.alongX": "A lo largo de X", + + "create.gui.terrainzapper.title": "Blockzapper", + "create.gui.terrainzapper.searchDiagonal": "Seguir diagonales", + "create.gui.terrainzapper.searchFuzzy": "Ignorar los bordes del material", + "create.gui.terrainzapper.patternSection": "Patrón", + "create.gui.terrainzapper.pattern.solid": "Sólido", + "create.gui.terrainzapper.pattern.checkered": "Tablero de ajedrez", + "create.gui.terrainzapper.pattern.inversecheckered": "Tablero de ajedrez invertido", + "create.gui.terrainzapper.pattern.chance25": "25% Roll", + "create.gui.terrainzapper.pattern.chance50": "50% Roll", + "create.gui.terrainzapper.pattern.chance75": "75% Roll", + "create.gui.terrainzapper.placement": "Ubicación", + "create.gui.terrainzapper.placement.merged": "Fusionado", + "create.gui.terrainzapper.placement.attached": "Adjuntado", + "create.gui.terrainzapper.placement.inserted": "Insertado", + "create.gui.terrainzapper.brush": "Pincel", + "create.gui.terrainzapper.brush.cuboid": "Cuboide", + "create.gui.terrainzapper.brush.sphere": "Esfera", + "create.gui.terrainzapper.brush.cylinder": "Cilindro", + "create.gui.terrainzapper.brush.surface": "Superficie", + "create.gui.terrainzapper.brush.cluster": "Grupo", + "create.gui.terrainzapper.tool": "Herramienta", + "create.gui.terrainzapper.tool.fill": "Llenar", + "create.gui.terrainzapper.tool.place": "Ubicar", + "create.gui.terrainzapper.tool.replace": "Reemplazar", + "create.gui.terrainzapper.tool.clear": "Eliminar", + "create.gui.terrainzapper.tool.overlay": "Superponer", + "create.gui.terrainzapper.tool.flatten": "Aplanar", + + "create.terrainzapper.shiftRightClickToSet": "Mayús izdo + clic derecho para seleccionar una forma", + "create.terrainzapper.usingBlock": "Usando: %1$s", + "create.terrainzapper.leftClickToSet": "Clic izquierdo a un bloque para establecer el material", + + "create.minecart_coupling.two_couplings_max": "Las vagonetas no pueden tener más de dos enganches cada una", + "create.minecart_coupling.unloaded": "Algunas partes de su tren parecen estar en chunks no cargados", + "create.minecart_coupling.no_loops": "Los acoplamientos no pueden formar un bucle", + "create.minecart_coupling.removed": "Se han retirado todos los acoplamientos de la vagoneta", + "create.minecart_coupling.too_far": "Las vagonetas están demasiado separadas", + + "create.contraptions.movement_mode": "Modo de movimiento", + "create.contraptions.movement_mode.move_place": "Colocar siempre al detenerse", + "create.contraptions.movement_mode.move_place_returned": "Colocar sólo en la posición inicial", + "create.contraptions.movement_mode.move_never_place": "Colocar sólo cuando se destruye el ancla", + "create.contraptions.movement_mode.rotate_place": "Colocar siempre al detenerse", + "create.contraptions.movement_mode.rotate_place_returned": "Colocar sólo cerca del ángulo inicial", + "create.contraptions.movement_mode.rotate_never_place": "Colocar sólo cuando se destruye el ancla", + "create.contraptions.cart_movement_mode": "Modo de movimiento de la vagoneta", + "create.contraptions.cart_movement_mode.rotate": "Siempre de cara al movimiento", + "create.contraptions.cart_movement_mode.rotate_paused": "Pausar a los actores mientras giran", + "create.contraptions.cart_movement_mode.rotation_locked": "Bloquear rotación", + "create.contraptions.windmill.rotation_direction": "Dirección de rotación", + "create.contraptions.clockwork.clock_hands": "Manecillas de reloj", + "create.contraptions.clockwork.hour_first": "La manecilla de las horas primero", + "create.contraptions.clockwork.minute_first": "La manecilla de los minutos primero", + "create.contraptions.clockwork.hour_first_24": "La manecilla del día primero", + + "create.logistics.filter": "Filtro", + "create.logistics.recipe_filter": "Filtro para recetas", + "create.logistics.fluid_filter": "Filtro para fluidos", + "create.logistics.firstFrequency": "Freq. #1", + "create.logistics.secondFrequency": "Freq. #2", + "create.logistics.filter.apply": "Filtro aplicado a %1$s.", + "create.logistics.filter.apply_click_again": "Filtro aplicado a %1$s, haga clic de nuevo para copiar la cantidad.", + "create.logistics.filter.apply_count": "Aplicado recuento de extracciones al filtro.", + + "create.gui.goggles.generator_stats": "Estadísticas del generador:", + "create.gui.goggles.kinetic_stats": "Estadísticas cinéticas:", + "create.gui.goggles.at_current_speed": "con la velocidad actual", + "create.gui.goggles.pole_length": "Longitud del poste:", + "create.gui.goggles.fluid_container": "Información sobre el contenedor de fluidos:", + "create.gui.goggles.fluid_container.capacity": "Capacidad: ", + "create.gui.assembly.exception": "Este artilugio no se pudo montar:", + "create.gui.assembly.exception.unmovableBlock": "Bloque inamovible (%4$s) en [%1$s,%2$s,%3$s]", + "create.gui.assembly.exception.chunkNotLoaded": "El bloque en [%1$s,%2$s,%3$s] no estaba en un chunk cargado", + "create.gui.assembly.exception.structureTooLarge": "Hay demasiados bloques incluídos en el artilugio.\nEl máximo configurado es: %1$s", + "create.gui.assembly.exception.tooManyPistonPoles": "Hay demasiadas Pértigas de extensión conectadas a este Pistón.\nEl máximo configurado es: %1$s", + "create.gui.assembly.exception.noPistonPoles": "Faltan pértigas de extensión para el pistón", + "create.gui.assembly.exception.not_enough_sails": "La estructura adjunta no incluye suficientes bloques tipo vela: %1$s\nSe requiere un mínimo de %2$s", + "create.gui.gauge.info_header": "Información sobre el medidor:", + "create.gui.speedometer.title": "Velocidad de rotación", + "create.gui.stressometer.title": "Estrés de la red", + "create.gui.stressometer.capacity": "Capacidad restante", + "create.gui.stressometer.overstressed": "Sobrecargado", + "create.gui.stressometer.no_rotation": "Sin rotación", + "create.gui.contraptions.not_fast_enough": "Parece que este %1$s no está girando con _suficiente_ velocidad_.", + "create.gui.contraptions.network_overstressed": "Parece que este artilugio está _sobrecargado_. Añade más fuentes o _desacelera_ los componentes con un _impacto de estrés alto_.", + "create.gui.adjustable_crate.title": "Caja ajustable", + "create.gui.adjustable_crate.storageSpace": "Espacio de almacenamiento", + "create.gui.stockpile_switch.title": "Interruptor de acopio", + "create.gui.stockpile_switch.invert_signal": "Invertir señal", + "create.gui.stockpile_switch.move_to_lower_at": "Pasar al carril inferior en %1$s%%", + "create.gui.stockpile_switch.move_to_upper_at": "Pasar al carril superior en %1$s%%", + "create.gui.sequenced_gearshift.title": "Cambio de marchas secuenciado", + "create.gui.sequenced_gearshift.instruction": "Instrucción", + "create.gui.sequenced_gearshift.instruction.turn_angle.descriptive": "Giro por ángulo", + "create.gui.sequenced_gearshift.instruction.turn_angle": "Giro", + "create.gui.sequenced_gearshift.instruction.turn_angle.angle": "Ángulo", + "create.gui.sequenced_gearshift.instruction.turn_distance.descriptive": "Giro para mover el pistón/polea/grúa", + "create.gui.sequenced_gearshift.instruction.turn_distance": "Pistón", + "create.gui.sequenced_gearshift.instruction.turn_distance.distance": "Distancia", + "create.gui.sequenced_gearshift.instruction.delay.descriptive": "Tiempo de retraso", + "create.gui.sequenced_gearshift.instruction.delay": "Retraso", + "create.gui.sequenced_gearshift.instruction.delay.duration": "Duración", + "create.gui.sequenced_gearshift.instruction.end.descriptive": "Fin", + "create.gui.sequenced_gearshift.instruction.end": "Fin", + "create.gui.sequenced_gearshift.instruction.await.descriptive": "En espera de un pulso de redstone", + "create.gui.sequenced_gearshift.instruction.await": "En espera", + "create.gui.sequenced_gearshift.speed": "Velocidad, Dirección", + "create.gui.sequenced_gearshift.speed.forward": "Velocidad de entrada, hacia adelante", + "create.gui.sequenced_gearshift.speed.forward_fast": "Doble velocidad, hacia adelante", + "create.gui.sequenced_gearshift.speed.back": "Velocidad de entrada, Invertida", + "create.gui.sequenced_gearshift.speed.back_fast": "Doble velocidad, Invertida", + + "create.schematicAndQuill.dimensions": "Tamaño del esquema: %1$sx%2$sx%3$s", + "create.schematicAndQuill.firstPos": "Primera posición fijada.", + "create.schematicAndQuill.secondPos": "Segunda posición fijada.", + "create.schematicAndQuill.noTarget": "Mantén [Ctrl] para seleccionar los bloques del aire.", + "create.schematicAndQuill.abort": "Selección eliminada.", + "create.schematicAndQuill.title": "Nombre del esquema:", + "create.schematicAndQuill.convert": "Guardar y desplegar inmediatamente", + "create.schematicAndQuill.fallbackName": "Mi esquema", + "create.schematicAndQuill.saved": "Guardado como %1$s", + + "create.schematic.invalid": "[!] Elemento no válido - Utilice la tabla de esquemas en su lugar", + "create.schematic.position": "Posición", + "create.schematic.rotation": "Rotación", + "create.schematic.rotation.none": "Ninguno", + "create.schematic.rotation.cw90": "En el sentido de las agujas del reloj 90", + "create.schematic.rotation.cw180": "En el sentido de las agujas del reloj 180", + "create.schematic.rotation.cw270": "En el sentido de las agujas del reloj 270", + "create.schematic.mirror": "Espejado", + "create.schematic.mirror.none": "Ninguno", + "create.schematic.mirror.frontBack": "Delante-Detrás", + "create.schematic.mirror.leftRight": "Izquierda-Derecha", + "create.schematic.tool.deploy": "Despliegue", + "create.schematic.tool.move": "Mover XZ", + "create.schematic.tool.movey": "Mover Y", + "create.schematic.tool.rotate": "Rotar", + "create.schematic.tool.print": "Imprimir", + "create.schematic.tool.flip": "Voltear", + "create.schematic.tool.deploy.description.0": "Mueve la estructura a un lugar.", + "create.schematic.tool.deploy.description.1": "Haz clic con el botón derecho del ratón en el suelo para colocarla.", + "create.schematic.tool.deploy.description.2": "Mantén [Ctrl] para seleccionar a una distancia fija.", + "create.schematic.tool.deploy.description.3": "[Ctrl] + [RUEDA DEL RATÓN] para cambiar la distancia.", + "create.schematic.tool.move.description.0": "Desplaza el esquema horizontalmente.", + "create.schematic.tool.move.description.1": "Apunta al esquema y [Ctrl] + [RUEDA DEL RATÓN] para ponerlo.", + "create.schematic.tool.move.description.2": "", + "create.schematic.tool.move.description.3": "", + "create.schematic.tool.movey.description.0": "Desplaza el esquema verticalmente..", + "create.schematic.tool.movey.description.1": "[Ctrl] + [RUEDA DEL RATÓN] para moverlo hacia arriba/abajo.", + "create.schematic.tool.movey.description.2": "", + "create.schematic.tool.movey.description.3": "", + "create.schematic.tool.rotate.description.0": "Gira el esquema alrededor de su centro.", + "create.schematic.tool.rotate.description.1": "[Ctrl] + [RUEDA DEL RATÓN] para girar 90 grados.", + "create.schematic.tool.rotate.description.2": "", + "create.schematic.tool.rotate.description.3": "", + "create.schematic.tool.print.description.0": "Sitúa instantáneamente la estructura en el mundo.", + "create.schematic.tool.print.description.1": "[Clic derecho] para confirmar la colocación en el lugar actual.", + "create.schematic.tool.print.description.2": "Esta herramienta es sólo para el Modo Creativo.", + "create.schematic.tool.print.description.3": "", + "create.schematic.tool.flip.description.0": "Voltea el esquema a lo largo de la cara que seleccione.", + "create.schematic.tool.flip.description.1": "Apunta al esquema y [Ctrl] + [RUEDA DEL RATÓN] para voltearlo.", + "create.schematic.tool.flip.description.2": "", + "create.schematic.tool.flip.description.3": "", + + "create.schematics.synchronizing": "Sincronizando...", + "create.schematics.uploadTooLarge": "Tu esquema excede las limitaciones especificadas por el servidor.", + "create.schematics.maxAllowedSize": "El tamaño máximo permitido del archivo del esquema es:", + + "create.gui.schematicTable.refresh": "Refrescar archivos", + "create.gui.schematicTable.open_folder": "Abrir carpeta", + "create.gui.schematicTable.title": "Tabla de esquemas", + "create.gui.schematicTable.availableSchematics": "Esquemas disponibles", + "create.gui.schematicTable.noSchematics": "No hay esquemas guardados", + "create.gui.schematicTable.uploading": "Subiendo...", + "create.gui.schematicTable.finished": "¡Subida finalizada!", + "create.gui.schematicannon.title": "Cañón de esquemas", + "create.gui.schematicannon.listPrinter": "Lista de control de la impresora", + "create.gui.schematicannon.gunpowderLevel": "Pólvora %1$s%%", + "create.gui.schematicannon.shotsRemaining": "Disparos restantes: %1$s", + "create.gui.schematicannon.shotsRemainingWithBackup": "Con respaldo: %1$s", + "create.gui.schematicannon.optionEnabled": "Actualmente habilitado", + "create.gui.schematicannon.optionDisabled": "Actualmente deshabilitado", + "create.gui.schematicannon.showOptions": "Mostrar la configuración de la impresora", + "create.gui.schematicannon.option.dontReplaceSolid": "No sustituír los bloques sólidos", + "create.gui.schematicannon.option.replaceWithSolid": "Sustituir sólido por sólido", + "create.gui.schematicannon.option.replaceWithAny": "Sustituir sólido por cualquiera", + "create.gui.schematicannon.option.replaceWithEmpty": "Sustituir sólido por vacío", + "create.gui.schematicannon.option.skipMissing": "Omitir los bloques que faltan", + "create.gui.schematicannon.option.skipTileEntities": "Proteger a las entidades", + "create.gui.schematicannon.slot.gunpowder": "Añade pólvora para alimentar el cañón", + "create.gui.schematicannon.slot.listPrinter": "Coloque los libros aquí para imprimir una lista de comprobación para su esquema", + "create.gui.schematicannon.slot.schematic": "Añada su esquema aquí. Asegúrese de que se despliega en un lugar específico.", + "create.gui.schematicannon.option.skipMissing.description": "Si el cañón no encuentra un bloque necesario para su colocación, continuará en la siguiente ubicación.", + "create.gui.schematicannon.option.skipTileEntities.description": "El cañón evitará reemplazar los bloques que contienen datos, como los cofres.", + "create.gui.schematicannon.option.dontReplaceSolid.description": "El cañón nunca sustituirá ningún bloque sólido en su zona de trabajo, sólo los no sólidos y el aire.", + "create.gui.schematicannon.option.replaceWithSolid.description": "El cañón sólo reemplazará los bloques sólidos en su área de trabajo si el esquema contiene un bloque sólido en la ubicación.", + "create.gui.schematicannon.option.replaceWithAny.description": "El cañón reemplazará los bloques sólidos en su área de trabajo si el esquema contiene algún bloque en la ubicación.", + "create.gui.schematicannon.option.replaceWithEmpty.description": "El cañón eliminará todos los bloques de su zona de trabajo, incluidos los sustituidos por aire.", + + "create.schematicannon.status.idle": "Inactivo", + "create.schematicannon.status.ready": "Listo", + "create.schematicannon.status.running": "Funcionando", + "create.schematicannon.status.finished": "Finalizado", + "create.schematicannon.status.paused": "Pausado", + "create.schematicannon.status.stopped": "Detenido", + "create.schematicannon.status.noGunpowder": "Sin pólvora", + "create.schematicannon.status.targetNotLoaded": "El objetivo no está cargado", + "create.schematicannon.status.targetOutsideRange": "Objetivo demasiado lejano", + "create.schematicannon.status.searching": "Buscando", + "create.schematicannon.status.skipping": "Omitiendo", + "create.schematicannon.status.missingBlock": "Elementos perdidos:", + "create.schematicannon.status.placing": "Colocando", + "create.schematicannon.status.clearing": "Limpiando bloques", + "create.schematicannon.status.schematicInvalid": "Esquema inválido", + "create.schematicannon.status.schematicNotPlaced": "Esquema no desplegado", + "create.schematicannon.status.schematicExpired": "Archivo de esquemas caducado", + + "create.materialChecklist": "Lista de control del material", + "create.materialChecklist.blocksNotLoaded": "* Descargo de Responsabilidad *\n\nLa lista de materiales puede ser inexacta debido a que no se han cargado los chunks pertinentes.", + + "create.gui.filter.deny_list": "Lista de denegados", + "create.gui.filter.deny_list.description": "Los objetos pasan si NO coinciden con ninguno de los anteriores. Una lista de denegación vacía acepta todo.", + "create.gui.filter.allow_list": "Lista de permitidos", + "create.gui.filter.allow_list.description": "Los objetos pasan si coinciden con alguno de los anteriores. Una lista de permitidos vacía rechaza todo.", + "create.gui.filter.respect_data": "Respetar datos", + "create.gui.filter.respect_data.description": "Los objetos sólo coinciden si su durabilidad, encantos y otros atributos también coinciden.", + "create.gui.filter.ignore_data": "Ignorar datos", + "create.gui.filter.ignore_data.description": "Los artículos coinciden independientemente de sus atributos.", + + "create.item_attributes.placeable": "se puede colocar", + "create.item_attributes.placeable.inverted": "no se puede colocar", + "create.item_attributes.consumable": "se puede comer", + "create.item_attributes.consumable.inverted": "no se puede comer", + "create.item_attributes.smeltable": "se puede fundir", + "create.item_attributes.smeltable.inverted": "no se puede fundir", + "create.item_attributes.washable": "se puede lavar", + "create.item_attributes.washable.inverted": "no se puede lavar", + "create.item_attributes.smokable": "puede ser ahumado", + "create.item_attributes.smokable.inverted": "no puede ser ahumado", + "create.item_attributes.crushable": "puede ser molido", + "create.item_attributes.crushable.inverted": "no puede ser molido", + "create.item_attributes.blastable": "es fundible en el alto horno", + "create.item_attributes.blastable.inverted": "no es fundible en el alto horno", + "create.item_attributes.enchanted": "está encantado", + "create.item_attributes.enchanted.inverted": "no está encantado", + "create.item_attributes.damaged": "está dañado", + "create.item_attributes.damaged.inverted": "no está dañado", + "create.item_attributes.badly_damaged": "está muy dañado", + "create.item_attributes.badly_damaged.inverted": "no está muy dañado", + "create.item_attributes.not_stackable": "no se puede apilar", + "create.item_attributes.not_stackable.inverted": "se puede apilar", + "create.item_attributes.equipable": "se puede equipar", + "create.item_attributes.equipable.inverted": "no se puede equipar", + "create.item_attributes.furnace_fuel": "es combustible para hornos", + "create.item_attributes.furnace_fuel.inverted": "no es combustible para hornos", + "create.item_attributes.in_tag": "está etiquetado %1$s", + "create.item_attributes.in_tag.inverted": "no está etiquetado %1$s", + "create.item_attributes.in_item_group": "está en el grupo '%1$s'", + "create.item_attributes.in_item_group.inverted": "no está en el grupo '%1$s'", + "create.item_attributes.added_by": "fue añadido por %1$s", + "create.item_attributes.added_by.inverted": "no fue añadida por %1$s", + "create.item_attributes.shulker_level": "es shulker %1$s", + "create.item_attributes.shulker_level.inverted": "no es shulker %1$s", + "create.item_attributes.shulker_level.full": "lleno", + "create.item_attributes.shulker_level.empty": "vacío", + "create.item_attributes.shulker_level.partial": "parcialmente lleno", + "create.item_attributes.has_enchant": "está encantado con %1$s", + "create.item_attributes.has_enchant.inverted": "no está encantado con %1$s", + "create.item_attributes.color": "Está teñido %1$s", + "create.item_attributes.color.inverted": "No está teñido %1$s", + "create.item_attributes.max_enchanted": "está encantado en el nivel máximo", + "create.item_attributes.max_enchanted.inverted": "no está encantado en el nivel máximo", + "create.item_attributes.has_fluid": "contiene %1$s", + "create.item_attributes.has_fluid.inverted": "no contiene %1$s", + "create.item_attributes.has_name": "tiene el nombre personalizado %1$s", + "create.item_attributes.has_name.inverted": "no tiene el nombre personalizado %1$s", + "create.item_attributes.book_author": "es obra de %1$s", + "create.item_attributes.book_author.inverted": "no es es obra de %1$s", + "create.item_attributes.book_copy_original": "es un original", + "create.item_attributes.book_copy_original.inverted": "no es un original", + "create.item_attributes.book_copy_first": "es una copia de primera generación", + "create.item_attributes.book_copy_first.inverted": "no es una copia de primera generación", + "create.item_attributes.book_copy_second": "es una copia de segunda generación", + "create.item_attributes.book_copy_second.inverted": "no es una copia de segunda generación", + "create.item_attributes.book_copy_tattered": "es un desordenado desastre", + "create.item_attributes.book_copy_tattered.inverted": "no es un desordenado desastre", + "create.item_attributes.astralsorcery_crystal": "tiene el atributo de cristal %1$s", + "create.item_attributes.astralsorcery_crystal.inverted": "no tiene atributo de cristal %1$s", + "create.item_attributes.astralsorcery_constellation": "está en sintonía con %1$s", + "create.item_attributes.astralsorcery_constellation.inverted": "no está en sintonía con %1$s", + "create.item_attributes.astralsorcery_perk_gem": "tiene el atributo ventaja %1$s", + "create.item_attributes.astralsorcery_perk_gem.inverted": "no tiene el atributo ventaja %1$s", + "create.item_attributes.astralsorcery_amulet": "mejora %1$s", + "create.item_attributes.astralsorcery_amulet.inverted": "no mejora %1$s", + + "create.gui.attribute_filter.no_selected_attributes": "No hay atributos seleccionados", + "create.gui.attribute_filter.selected_attributes": "Atributos seleccionados:", + "create.gui.attribute_filter.add_attribute": "Añadir atributo a la lista", + "create.gui.attribute_filter.add_inverted_attribute": "Añadir atributo invertido a la Lista", + "create.gui.attribute_filter.allow_list_disjunctive": "Lista de permitidos (Cualquiera)", + "create.gui.attribute_filter.allow_list_disjunctive.description": "Los objetos pasan si tienen alguno de los atributos seleccionados", + "create.gui.attribute_filter.allow_list_conjunctive": "Lista de permitidos (Todos)", + "create.gui.attribute_filter.allow_list_conjunctive.description": "Los objetos pasan sólo si tienen TODOS los atributos seleccionados", + "create.gui.attribute_filter.deny_list": "Lista de denegados", + "create.gui.attribute_filter.deny_list.description": "Los objetos pasan si NO tienen ninguno de los atributos seleccionados", + "create.gui.attribute_filter.add_reference_item": "Añadir elemento de referencia", + + "create.tooltip.holdForDescription": "Mantén [%1$s] para mas información", + "create.tooltip.holdForControls": "Mantén [%1$s] para ver los controles", + "create.tooltip.keyShift": "Mayús izdo.", + "create.tooltip.keyCtrl": "Ctrl", + "create.tooltip.speedRequirement": "Requisitos de velocidad: %1$s", + "create.tooltip.speedRequirement.none": "Ninguno", + "create.tooltip.speedRequirement.medium": "Moderado", + "create.tooltip.speedRequirement.high": "Rápido", + "create.tooltip.stressImpact": "Impacto de estrés: %1$s", + "create.tooltip.stressImpact.low": "Bajo", + "create.tooltip.stressImpact.medium": "Moderado", + "create.tooltip.stressImpact.high": "Alto", + "create.tooltip.stressImpact.overstressed": "Sobrecargado", + "create.tooltip.capacityProvided": "Capacidad de estrés: %1$s", + "create.tooltip.capacityProvided.low": "Pequeña", + "create.tooltip.capacityProvided.medium": "Media", + "create.tooltip.capacityProvided.high": "Grande", + "create.tooltip.generationSpeed": "Generada en %1$s %2$s", + "create.tooltip.analogStrength": "Fuerza analógica: %1$s/15", + + "create.mechanical_arm.extract_from": "Extraer objetos de %1$s", + "create.mechanical_arm.deposit_to": "Depositar objetos en %1$s", + "create.mechanical_arm.summary": "El brazo mecánico tiene %1$s entrada(s) y %2$s salida(s)", + "create.mechanical_arm.points_outside_range": "%1$s punto(s) de interacción seleccionado(s) eliminado(s) debido a las limitaciones de rango", + + "create.weighted_ejector.target_set": "Objetivo seleccionado", + "create.weighted_ejector.target_not_valid": "Expulsión al bloque adyacente (el objetivo no era válido)", + "create.weighted_ejector.no_target": "Expulsión al bloque adyacente (no se ha seleccionado ningún objetivo)", + "create.weighted_ejector.targeting": "Expulsión a [%1$s,%2$s,%3$s]", + "create.weighted_ejector.stack_size": "Tamaño de la pila expulsada", + + "create.logistics.when_multiple_outputs_available": "Cuando hay múltiples salidas disponibles", + + "create.mechanical_arm.selection_mode.round_robin": "Round Robin", + "create.mechanical_arm.selection_mode.forced_round_robin": "Round Robin forzado", + "create.mechanical_arm.selection_mode.prefer_first": "Preferir el primero", + + "create.tunnel.selection_mode.split": "División", + "create.tunnel.selection_mode.forced_split": "División forzada", + "create.tunnel.selection_mode.round_robin": "Round Robin", + "create.tunnel.selection_mode.forced_round_robin": "Round Robin forzado", + "create.tunnel.selection_mode.prefer_nearest": "Preferir el más cercano", + "create.tunnel.selection_mode.randomize": "Aleatorizar", + "create.tunnel.selection_mode.synchronize": "Sincronizar entradas", + + "create.tooltip.chute.header": "Información del ducto", + "create.tooltip.chute.items_move_down": "Los objetos se mueven hacia abajo", + "create.tooltip.chute.items_move_up": "Los objetos se mueven hacia arriba", + "create.tooltip.chute.no_fans_attached": "No hay ventiladores adjuntos", + "create.tooltip.chute.fans_push_up": "Los ventiladores empujan desde abajo", + "create.tooltip.chute.fans_push_down": "Los ventiladores empujan desde arriba", + "create.tooltip.chute.fans_pull_up": "Los ventiladores tiran desde arriba", + "create.tooltip.chute.fans_pull_down": "Los ventiladores tiran desde abajo", + "create.tooltip.chute.contains": "Contiene: %1$s x%2$s", + "create.tooltip.brass_tunnel.contains": "Actualmente distribuye:", + "create.tooltip.brass_tunnel.contains_entry": "> %1$s x%2$s", + "create.tooltip.brass_tunnel.retrieve": "Haga clic derecho para recuperar", + + "create.linked_controller.bind_mode": "Modo de enlace activo", + "create.linked_controller.press_keybind": "Presiona %1$s, %2$s, %3$s, %4$s, %5$s o %6$s, para vincular esta frecuencia a la tecla correspondiente", + "create.linked_controller.key_bound": "Frecuencia ligada a %1$s", + "create.linked_controller.frequency_slot_1": "Enlace de teclas: %1$s, Freq. #1", + "create.linked_controller.frequency_slot_2": "Enlace de teclas: %1$s, Freq. #2", + + "create.crafting_blueprint.crafting_slot": "Ranura para ingredientes", + "create.crafting_blueprint.filter_items_viable": "Los objetos del filtro avanzado son viables", + "create.crafting_blueprint.display_slot": "Ranura de pantalla", + "create.crafting_blueprint.inferred": "A partir de la receta", + "create.crafting_blueprint.manually_assigned": "Asignado manualmente", + "create.crafting_blueprint.secondary_display_slot": "Ranura de pantalla secundaria", + "create.crafting_blueprint.optional": "Opcional", + + "create.potato_cannon.ammo.attack_damage": "%1$s Daño de ataque", + "create.potato_cannon.ammo.reload_ticks": "%1$s Recarga por Ticks", + "create.potato_cannon.ammo.knockback": "%1$s Golpe de efecto", + + "create.hint.hose_pulley.title": "Suministro ilimitado", + "create.hint.hose_pulley": "La masa de fluido objetivo se considera infinita.", + "create.hint.mechanical_arm_no_targets.title": "Sin objetivos", + "create.hint.mechanical_arm_no_targets": "Parece que a este _brazo mecánico_ no se le ha asignado ningún objetivo. Selecciona _correas_, _depósitos_, _embudos_ y otros bloques haciendo clic derecho sobre ellos mientras _sostienes_ el _brazo mecánico_ en tu mano..", + "create.hint.empty_bearing.title": "Actualización del rodamiento", + "create.hint.empty_bearing": "Haz clic derecho sobre el rodamiento con la _mano vacía_ para _adjuntar_ la estructura que acabas de construir delante de él.", + "create.hint.full_deployer.title": "Exceso de objetos en el desplegador", + "create.hint.full_deployer": "Parece que este _desplegador_ contiene _exceso_ de objetos que necesitan ser _extraídos._ Usa una _tolva_, _embudo_ u otro medio para liberarlo de su excedente.", + + "create.gui.config.overlay1": "Hola :)", + "create.gui.config.overlay2": "Esta es una muestra de la superposición", + "create.gui.config.overlay3": "Haga clic o arrastre con el ratón", + "create.gui.config.overlay4": "para mover esta vista previa", + "create.gui.config.overlay5": "Pulsar ESC para salir de esta pantalla", + "create.gui.config.overlay6": "y guardar la nueva posición", + "create.gui.config.overlay7": "Ejecute /create overlay reset", + "create.gui.config.overlay8": "para restablecer la posición por defecto", + + "create.command.killTPSCommand": "killtps", + "create.command.killTPSCommand.status.slowed_by.0": "[Crear]: El tick del servidor está actualmente ralentizado en %s ms :o", + "create.command.killTPSCommand.status.slowed_by.1": "[Crear]: El tick del servidor está ralentizado en %s ms ahora >:)", + "create.command.killTPSCommand.status.slowed_by.2": "[Create]: El tick del servidor ha vuelto a su velocidad normal :D", + "create.command.killTPSCommand.status.usage.0": "[Create]: usa /killtps stop para que el servidor vuelva a la velocidad normal", + "create.command.killTPSCommand.status.usage.1": "[Create]: usa /killtps start para ralentizar artificialmente el tick del servidor", + "create.command.killTPSCommand.argument.tickTime": "tickTime", + + "create.contraption.minecart_contraption_too_big": "Este artilugio de vagoneta parece demasiado grande para recogerlo", + "create.contraption.minecart_contraption_illegal_pickup": "Una fuerza mística está atando este artilugio de vagoneta al mundo", + + + "_": "->------------------------] Subtitles [------------------------<-", + + "create.subtitle.contraption_disassemble": "", + "create.subtitle.peculiar_bell_use": "", + "create.subtitle.mixing": "", + "create.subtitle.mechanical_press_activation_belt": "", + "create.subtitle.fwoomp": "", + "create.subtitle.worldshaper_place": "", + "create.subtitle.crushing_1": "", + "create.subtitle.depot_slide": "", + "create.subtitle.saw_activate_stone": "", + "create.subtitle.blaze_munch": "", + "create.subtitle.funnel_flap": "", + "create.subtitle.schematicannon_finish": "", + "create.subtitle.haunted_bell_use": "", + "create.subtitle.scroll_value": "", + "create.subtitle.crafter_craft": "", + "create.subtitle.controller_put": "", + "create.subtitle.cranking": "", + "create.subtitle.wrench_remove": "", + "create.subtitle.cogs": "", + "create.subtitle.slime_added": "", + "create.subtitle.wrench_rotate": "", + "create.subtitle.potato_hit": "", + "create.subtitle.saw_activate_wood": "", + "create.subtitle.haunted_bell_convert": "", + "create.subtitle.deployer_polish": "", + "create.subtitle.deny": "", + "create.subtitle.controller_click": "", + "create.subtitle.schematicannon_launch_block": "", + "create.subtitle.copper_armor_equip": "", + "create.subtitle.controller_take": "Lectern empties", + "create.subtitle.mechanical_press_activation": "", + "create.subtitle.contraption_assemble": "", + "create.subtitle.crafter_click": "", + "create.subtitle.depot_plop": "", + "create.subtitle.confirm": "", + + + "_": "->------------------------] Item Descriptions [------------------------<-", + + "item.create.example_item.tooltip": "EJEMPLO DE ITEM (sólo un marcador de que este tooltip existe)", + "item.create.example_item.tooltip.summary": "Una breve descripción del elemento. Los puntajes bajos resaltan un término", + "item.create.example_item.tooltip.condition1": "Cuando este", + "item.create.example_item.tooltip.behaviour1": "Entonces este elemento hace esto. (los comportamientos se muestran en el turno)", + "item.create.example_item.tooltip.condition2": "Y cuando esto", + "item.create.example_item.tooltip.behaviour2": "Puedes añadir tantos comportamientos como quieras", + "item.create.example_item.tooltip.control1": "Cuando se pulsa [Ctrl]", + "item.create.example_item.tooltip.action1": "Se muestran estos controles", + + "block.create.wooden_bracket.tooltip": "SOPORTE DE MADERA PARA EJES", + "block.create.wooden_bracket.tooltip.summary": "Decora tus _ejes_, _engranajes_ y _ductos_ con un acogedor refuerzo de madera.", + + "block.create.metal_bracket.tooltip": "SOPORTE DE METAL PARA EJES", + "block.create.metal_bracket.tooltip.summary": "Decora tus _ejes_, _engranajes_ y _ductos_ con un poco de refuerzo industrial robusto.", + + "block.create.seat.tooltip": "ASIENTO", + "block.create.seat.tooltip.summary": "¡Siéntate y disfruta del viaje! Anclará a un jugador en un artilugio en movimiento. También es ideal para muebles estáticos. Viene en una variedad de colores.", + "block.create.seat.tooltip.condition1": "Cuando se hace clic derecho en el asiento", + "block.create.seat.tooltip.behaviour1": "Sienta al jugador en el _asiento_. Pulsa Mayús izdo para dejar el asiento.", + + "item.create.blaze_cake.tooltip": "PASTEL DE BLAZE", + "item.create.blaze_cake.tooltip.summary": "Un delicioso regalo para sus esforzados _quemadores de blaze_. ¡Los pone en marcha!.", + + "item.create.wand_of_symmetry.tooltip": "VARITA DE SIMETRÍA", + "item.create.wand_of_symmetry.tooltip.summary": "Refleja perfectamente la colocación de bloques en los planos configurados.", + "item.create.wand_of_symmetry.tooltip.condition1": "Mientras está en el inventario rápido", + "item.create.wand_of_symmetry.tooltip.behaviour1": "Permanece activo.", + "item.create.wand_of_symmetry.tooltip.control1": "Cuando se hace clic derecho en el suelo", + "item.create.wand_of_symmetry.tooltip.action1": "_Crea_ o _mueve_ el espejo.", + "item.create.wand_of_symmetry.tooltip.control2": "Cuando se hace clic derecho en el aire", + "item.create.wand_of_symmetry.tooltip.action2": "_Quita_ el espejo activo.", + "item.create.wand_of_symmetry.tooltip.control3": "Mayús izdo + clic derecho", + "item.create.wand_of_symmetry.tooltip.action3": "Abre la interfaz de configuración.", + + "item.create.handheld_worldshaper.tooltip": "WORLDSHAPER", + "item.create.handheld_worldshaper.tooltip.summary": "Práctica herramienta para crear _paisajes_ y _características del terreno_.", + "item.create.handheld_worldshaper.tooltip.control1": "Cuando se hace clic izquierdo en un bloque", + "item.create.handheld_worldshaper.tooltip.action1": "Establece los bloques colocados por la herramienta en el bloque objetivo.", + "item.create.handheld_worldshaper.tooltip.control2": "Cuando se hace clic derecho en un bloque", + "item.create.handheld_worldshaper.tooltip.action2": "Aplica el _pincel_ y la _herramienta_ actualmente seleccionadas en el lugar deseado.", + "item.create.handheld_worldshaper.tooltip.control3": "Mayús izdo + clic derecho", + "item.create.handheld_worldshaper.tooltip.action3": "Abre la interfaz de configuración.", + + "item.create.tree_fertilizer.tooltip": "FERTILIZANTE PARA ÁRBOLES", + "item.create.tree_fertilizer.tooltip.summary": "Una potente combinación de minerales adecuada para acelerar el crecimiento de los tipos de árboles más comunes.", + "item.create.tree_fertilizer.tooltip.condition1": "Cuando se utiliza en un árbol joven", + "item.create.tree_fertilizer.tooltip.behaviour1": "Hace crecer los árboles _independientemente_ de sus condiciones de _espacio_.", + + "item.create.extendo_grip.tooltip": "AGARRE EXTENDIDO", + "item.create.extendo_grip.tooltip.summary": "¡Boioioing! Aumenta enormemente la _distancia de alcance_ del portador. Se puede alimentar con la presión de aire de un _depósito trasero de cobre_", + "item.create.extendo_grip.tooltip.condition1": "Cuando está fuera de la mano", + "item.create.extendo_grip.tooltip.behaviour1": "Aumenta la _distancia de alcance_ de los objetos usados en la _mano principal_.", + "item.create.extendo_grip.tooltip.condition2": "Mientras se usa un depósito trasero de cobre", + "item.create.extendo_grip.tooltip.behaviour2": "No se utilizará _durabilidad_. En su lugar, la _presión del aire_ se drena desde el tanque", + + "item.create.potato_cannon.tooltip": "CANÓN DE PATATAS", + "item.create.potato_cannon.tooltip.summary": "Fwoomp! Lanza tus verduras caseras a tus enemigos. Se puede alimentar con la presión de aire de un _depósito trasero de cobre_", + "item.create.potato_cannon.tooltip.condition1": "Cuando se usa clic derecho", + "item.create.potato_cannon.tooltip.behaviour1": "_Dispara_ un objeto adecuado desde tu inventario_.", + "item.create.potato_cannon.tooltip.condition2": "Mientras se usa un depósito trasero de cobre", + "item.create.potato_cannon.tooltip.behaviour2": "No se utilizará _durabilidad_. En su lugar, la _presión del aire_ se drena desde el tanque", + + "item.create.filter.tooltip": "FILTRO", + "item.create.filter.tooltip.summary": "Controla las _salidas_ y _entradas_ de los _dispositivos logísticos_ con más precisión, comparándolas con un _conjunto de objetos_ o varios _filtros anidados_.", + "item.create.filter.tooltip.condition1": "Cuando está en la ranura de filtros", + "item.create.filter.tooltip.behaviour1": "Controla el flujo de objetos según su _configuración_.", + "item.create.filter.tooltip.condition2": "Cuando se hace clic derecho", + "item.create.filter.tooltip.behaviour2": "Abre la interfaz de configuración.", + + "item.create.attribute_filter.tooltip": "FILTRO DE ATRIBUTOS", + "item.create.attribute_filter.tooltip.summary": "Controla las _salidas_ y las _entradas_ de los _dispositivos logísticos_ con más precisión, comparándolas con un _conjunto de atributos_ y _categorías_ de objetos.", + "item.create.attribute_filter.tooltip.condition1": "Cuando está en la ranura de filtros", + "item.create.attribute_filter.tooltip.behaviour1": "Controla el flujo de objetos según su _configuración_.", + "item.create.attribute_filter.tooltip.condition2": "Cuando se hace clic derecho", + "item.create.attribute_filter.tooltip.behaviour2": "Abre la interfaz de configuración.", + + "item.create.empty_schematic.tooltip": "ESQUEMA VACÍO", + "item.create.empty_schematic.tooltip.summary": "Se utiliza como 'ingrediente' de las recetas y para escribir en la _tabla de esquemas_.", + + "item.create.schematic.tooltip": "ESQUEMA", + "item.create.schematic.tooltip.summary": "Contiene una estructura para ser posicionada y colocada en el mundo. Posiciona el holograma como desees y utiliza un _cañón de esquemas_ para construirla.", + "item.create.schematic.tooltip.condition1": "Cuando se sostiene en la mano", + "item.create.schematic.tooltip.behaviour1": "Se puede posicionar utilizando las herramientas en pantalla.", + "item.create.schematic.tooltip.control1": "Mayús izdo + clic derecho", + "item.create.schematic.tooltip.action1": "Abre una _interfaz_ para introducir las _coordenadas_ exactas.", + + "item.create.schematic_and_quill.tooltip": "ESQUEMA Y PLUMA", + "item.create.schematic_and_quill.tooltip.summary": "Se utiliza para guardar una estructura de tu mundo en un archivo .nbt.", + "item.create.schematic_and_quill.tooltip.condition1": "Paso 1", + "item.create.schematic_and_quill.tooltip.behaviour1": "Selecciona dos puntos de esquina usando clic derecho.", + "item.create.schematic_and_quill.tooltip.condition2": "Paso 2", + "item.create.schematic_and_quill.tooltip.behaviour2": "[Ctrl] + [RUEDA DEL RATÓN] en las caras para ajustar el tamaño. Clic derecho de nuevo para guardar.", + "item.create.schematic_and_quill.tooltip.control1": "Cuando se hace clic derecho", + "item.create.schematic_and_quill.tooltip.action1": "Selecciona un punto de esquina / confirmar guardar.", + "item.create.schematic_and_quill.tooltip.control2": "Cuando mantiene [Ctrl]", + "item.create.schematic_and_quill.tooltip.action2": "Selecciona puntos en _medio del aire_. Rueda del ratón para ajustar la distancia.", + "item.create.schematic_and_quill.tooltip.control3": "Mayús izdo + clic derecho", + "item.create.schematic_and_quill.tooltip.action3": "_Reinicia_ y elimina la selección.", + + "block.create.schematicannon.tooltip": "CAÑÓN DE ESQUEMAS", + "block.create.schematicannon.tooltip.summary": "Dispara bloques para recrear un _esquema_ desplegado en el mundo. Utiliza objetos de los inventarios adyacentes y _pólvora_ como combustible.", + "block.create.schematicannon.tooltip.condition1": "Cuando se hace clic derecho", + "block.create.schematicannon.tooltip.behaviour1": "Abre la interfaz.", + + "block.create.schematic_table.tooltip": "TABLA DE ESQUEMAS", + "block.create.schematic_table.tooltip.summary": "Escribe los esquemas guardados en un _esquema vacío_.", + "block.create.schematic_table.tooltip.condition1": "Cuando se da un esquema vacío", + "block.create.schematic_table.tooltip.behaviour1": "Carga un archivo elegido de la carpeta de esquemas.", + + "item.create.goggles.tooltip": "GAFAS DEL CONSTRUCTOR", + "item.create.goggles.tooltip.summary": "Un par de gafas para aumentar tu visión con útil información _cinética_.", + "item.create.goggles.tooltip.condition1": "Cuando se llevan puestas", + "item.create.goggles.tooltip.behaviour1": "Muestra _indicadores de color_ correspondientes al _nivel de velocidad_ de un componente cinético colocado, así como el _impacto de estrés_ y la _carga_ de los componentes individuales.", + "item.create.goggles.tooltip.condition2": "Al mirar un medidor", + "item.create.goggles.tooltip.behaviour2": "Muestra información detallada sobre _velocidad_ o _estrés_ de la red a la que está conectado el medidor.", + "item.create.goggles.tooltip.condition3": "Al mirar un contenedor de fluidos", + "item.create.goggles.tooltip.behaviour3": "Muestra información detallada sobre la _carga_ del bloque y los _líquidos_ almacenados en su interior.", + + "item.create.wrench.tooltip": "LLAVE INGLESA", + "item.create.wrench.tooltip.summary": "Una herramienta útil para trabajar en artilugios cinéticos. Se puede utilizar para _rotar_, _desmantelar_ y para _configurar_ componentes.", + "item.create.wrench.tooltip.control1": "Cuando se hace clic derecho en un bloque cinético", + "item.create.wrench.tooltip.action1": "Rota los componentes hacia o desde la cara con la que ha interactuado.", + "item.create.wrench.tooltip.control2": "Mayús izdo + clic derecho", + "item.create.wrench.tooltip.action2": "Desmonta los _componentes cinéticos_ y los devuelve a tu inventario_.", + + "block.create.nozzle.tooltip": "BOQUILLA", + "block.create.nozzle.tooltip.summary": "Se acopla a la parte delantera de un _ventilador revestido_ para distribuir su efecto sobre las entidades en _todas las direcciones_.", + + "block.create.cuckoo_clock.tooltip": "RELOJ DE CUCO", + "block.create.cuckoo_clock.tooltip.summary": "Fina artesanía para decorar un espacio y contar el tiempo.", + "block.create.cuckoo_clock.tooltip.condition1": "Cuando es alimentado por cinética", + "block.create.cuckoo_clock.tooltip.behaviour1": "Muestra la _hora actual_ y toca una melodía dos veces al día. Se activa una vez al mediodía y al anochecer, _en cuanto los jugadores pueden dormir_.", + + "block.create.turntable.tooltip": "PLATAFORMA GIRATORIA", + "block.create.turntable.tooltip.summary": "Convierte la _fuerza rotacional_ en un refinado mareo.", + + "block.create.stockpile_switch.tooltip": "INTERRUPTOR DE ACOPIO", + "block.create.stockpile_switch.tooltip.summary": "Activa una señal de redstone en función de la cantidad de _objetos almacenados_ en el _contenedor_ adjunto. Viene con un práctico filtro. A diferencia de un _comparador, el _interruptor de acopio_ permite la configuración de _umbrales_, a partir de los cuales se invierten las señales.", + "block.create.stockpile_switch.tooltip.condition1": "Cuando se hace clic derecho", + "block.create.stockpile_switch.tooltip.behaviour1": "Abre la interfaz de configuración.", + + "block.create.content_observer.tooltip": "OBSERVADOR DE CONTENIDO", + "block.create.content_observer.tooltip.summary": "_Detecta objetos_ dentro de _contenedores_ y _transportadores_ que coincidan con un _filtro_ configurado. Mientras el _inventario_, la _cinta_ o la _canaleta_ observados _contengan_ un objeto que coincida, este componente emitirá una _señal de redstone_. Cuando un embudo observado _transfiere_ un objeto coincidente, este componente emitirá un _pulso de redstone_.", + + "block.create.adjustable_crate.tooltip": "CAJA AJUSTABLE", + "block.create.adjustable_crate.tooltip.summary": "Este _contenedor de objetos_ permite el control manual de su capacidad. Puede contener hasta _16 pilas_ de cualquier objeto. Soporta _comparadores de redstone_.", + "block.create.adjustable_crate.tooltip.condition1": "Cuando se hace clic derecho", + "block.create.adjustable_crate.tooltip.behaviour1": "Abre la interfaz.", + + "block.create.creative_crate.tooltip": "CAJA CREATIVA", + "block.create.creative_crate.tooltip.summary": "Este _contenedor de objetos_ permite la replicación infinita de cualquier elemento. Colócalo junto a un _cañón de esquemas_ para eliminar cualquier requisito de material.", + "block.create.creative_crate.tooltip.condition1": "Cuando el elemento está en la ranura para filtros", + "block.create.creative_crate.tooltip.behaviour1": "Todo lo que se _extraiga_ de este contenedor proporcionará un suministro _ilimitado_ del elemento especificado. Los objetos _insertados_ en esta caja serán _evitados_.", + + "item.create.creative_blaze_cake.tooltip": "PASTEL CREATIVO", + "item.create.creative_blaze_cake.tooltip.summary": "Un regalo muy especial para los _Quemadores de Blaze_ que permite _controlar su nivel de calor_. Después de comer este pastel, los Quemadores de blaze _nunca se quedarán sin combustible_.", + "item.create.creative_blaze_cake.tooltip.condition1": "Click derecho en un Quemador de blaze", + "item.create.creative_blaze_cake.tooltip.behaviour1": "Bloquea el nivel de calor del Quemador de blaze. Si se utiliza de nuevo, _cicla_ el nivel de calor del Quemador de blaze.", + + "block.create.controller_rail.tooltip": "RAÍL DE CONTROL", + "block.create.controller_rail.tooltip.summary": "Un raíl energizado _unidireccional_ capaz de _controlar con precisión_ la _velocidad de movimiento_ de una vagoneta.", + "block.create.controller_rail.tooltip.condition1": "Cuando es alimentado con redstone", + "block.create.controller_rail.tooltip.behaviour1": "_Acelera_ o _desacelera_ pasando _vagonetas_ correspondientes a la _fuerza de la señal_. Propaga la energía de redstone a los raíles de control adyacentes. Al alimentar dos raíles de control con diferentes intensidades, los carriles entre ellos interpolarán su señal.", + + "item.create.sand_paper.tooltip": "PAPEL DE LIJA", + "item.create.sand_paper.tooltip.summary": "Un papel rugoso que se puede utilizar para _pulir materiales_. Se puede aplicar automáticamente con el _desplegador_.", + "item.create.sand_paper.tooltip.condition1": "Cuando se usa", + "item.create.sand_paper.tooltip.behaviour1": "Aplica un pulido a los objetos sostenidos en la _mano libre_ o tirados en el _suelo_ cuando se _miran_.", + + "item.create.builders_tea.tooltip": "TÉ DEL CONSTRUCTOR", + "item.create.builders_tea.tooltip.summary": "La bebida perfecta para empezar el día. Motivante y saturante.", + + "item.create.refined_radiance.tooltip": "RESPLANDOR REFINADO", + "item.create.refined_radiance.tooltip.summary": "Un material cromático forjado a partir de la _luz absorbida_.", + "item.create.refined_radiance.tooltip.condition1": "Trabajo en progreso", + "item.create.refined_radiance.tooltip.behaviour1": "Los usos para este material estarán disponibles en un próximo lanzamiento.", + + "item.create.shadow_steel.tooltip": "ACERO SOMBRÍO", + "item.create.shadow_steel.tooltip.summary": "Un material cromático forjado en el _vacío_.", + "item.create.shadow_steel.tooltip.condition1": "Trabajo en curso", + "item.create.shadow_steel.tooltip.behaviour1": "Los usos de este material estarán disponibles en una futura versión.", + + "item.create.linked_controller.tooltip": "CONTROLADOR ENLAZADO", + "item.create.linked_controller.tooltip.summary": "Permite el control manual de las frecuencias de _enlaces de redstone_ asignadas a sus seis botones..", + "item.create.linked_controller.tooltip.condition1": "Al hacer clic derecho", + "item.create.linked_controller.tooltip.behaviour1": "Activa el _controlador_. Los _controles de movimiento_ se adquieren mientras está activo.", + "item.create.linked_controller.tooltip.condition2": "Al usar Mayús izdo + clic derecho", + "item.create.linked_controller.tooltip.behaviour2": "Abre la interfaz de configuración manual.", + "item.create.linked_controller.tooltip.condition3": "Al usar clic derecho en un receptor de enlaces de redstone", + "item.create.linked_controller.tooltip.behaviour3": "Activa el _modo de vinculación_, pulsa uno de los _seis controles_ para vincularlo a la _frecuencia de los enlaces_.", + "item.create.linked_controller.tooltip.condition4": "Clic derecho en un atril", + "item.create.linked_controller.tooltip.behaviour4": "Coloca el controlador en el atril para facilitar su activación. (Clic derecho + mayús izq. para recuperarlo)", + + "item.create.diving_helmet.tooltip": "CASCO DE BUCEO", + "item.create.diving_helmet.tooltip.summary": "Junto con un _depósito trasero de cobre_, permite que el usuario pueda respirar bajo el agua durante un tiempo prolongado.", + "item.create.diving_helmet.tooltip.condition1": "Cuando se lleva puesto", + "item.create.diving_helmet.tooltip.behaviour1": "Proporciona el efecto de _respiración acuática_, drenando lentamente la presión de aire del _depósito trasero_.", + + "item.create.copper_backtank.tooltip": "DEPÓSITO TRASERO DE COBRE", + "item.create.copper_backtank.tooltip.summary": "Un tanque portátil para transportar _aire presurizado_.", + "item.create.copper_backtank.tooltip.condition1": "Cuando se lleva puesto", + "item.create.copper_backtank.tooltip.behaviour1": "Proporciona _aire presurizado_ a los equipos que lo requieran.", + "item.create.copper_backtank.tooltip.condition2": "Cuando se coloca y es alimentado por cinética", + "item.create.copper_backtank.tooltip.behaviour2": "Recoge _aire presurizado_ a un ritmo que depende de la velocidad rotacional.", + + "item.create.diving_boots.tooltip": "BOTAS DE BUCEO", + "item.create.diving_boots.tooltip.summary": "Un par de _botas_ pesadas, que permiten atravesar mejor el suelo del océano.", + "item.create.diving_boots.tooltip.condition1": "Cuando se llevan puestas", + "item.create.diving_boots.tooltip.behaviour1": "El portador se hunde rápido y no puede nadar. Concede la capacidad de caminar y saltar bajo el agua. Al portador no le afectarán las _correas mecánicas.", + + "item.create.crafting_blueprint.tooltip": "PLANO DE ELABORACIÓN", + "item.create.crafting_blueprint.tooltip.summary": "Colocado en una pared, puede utilizarse para especificar la disposición de los ingredientes para facilitar la elaboración manual. Cada ranura representa una receta", + "item.create.crafting_blueprint.condition1": "Al hacer clic derecho en una ranura vacía", + "item.create.crafting_blueprint.behaviour1": "Abre un menú que permite configurar una receta y los objetos a mostrar.", + "item.create.crafting_blueprint.condition2": "Al hacer clic derecho en una ranura configurada", + "item.create.crafting_blueprint.behaviour2": "Aplica la receta configurada con los ingredientes que se encuentran en tu inventario. Se puede utilizar para fabricar hasta una pila de objetos.", + + "item.create.minecart_coupling.tooltip": "ENSAMBLADOR DE VAGONETAS", + "item.create.minecart_coupling.tooltip.summary": "_Encadena_ todas tus _vagonetas_ o _artilugios de vagoneta_ para formar un majestuoso _tren_.", + "item.create.minecart_coupling.tooltip.condition1": "Cuando se utiliza en vagonetas", + "item.create.minecart_coupling.tooltip.behaviour1": "_Acopla_ dos vagonetas, intentando mantenerlas a una _distancia constante_ mientras se mueven.", + + "block.create.peculiar_bell.tooltip": "CAMPANA PECULIAR", + "block.create.peculiar_bell.tooltip.summary": "Una campana decorativa de latón. Al colocarla sobre un _Fuego del alma_ o una _Fogata del alma_ puede producirse una transformación espeluznante...", + + "block.create.haunted_bell.tooltip": "CAMPANA ENCANTADA", + "block.create.haunted_bell.tooltip.summary": "Una _campana maldita_ perseguida por las almas perdidas del Nether", + "block.create.haunted_bell.tooltip.condition1": "Cuando se sostiene o suena", + "block.create.haunted_bell.tooltip.behaviour1": "Resalta los _puntos sin luz_ cercanos en los que pueden aparecer las _criaturas hostiles_.", + + + "_": "->------------------------] Ponder Content [------------------------<-", + + "create.ponder.hold_to_ponder": "Mantén [%1$s] para considerar", + "create.ponder.subject": "Tema de esta escena", + "create.ponder.pondering": "Considerando sobre...", + "create.ponder.identify_mode": "Identificando modo activo.\nDespausea con [%1$s]", + "create.ponder.associated": "Entradas asociadas", + "create.ponder.close": "Cerrar", + "create.ponder.identify": "Identificar", + "create.ponder.next": "Escena siguiente", + "create.ponder.previous": "Escena previa", + "create.ponder.replay": "Repetición", + "create.ponder.think_back": "Volver atrás", + "create.ponder.slow_text": "Lectura cómoda", + "create.ponder.exit": "Salir", + "create.ponder.welcome": "Bienvenido al instructivo de Create", + "create.ponder.categories": "Categorías disponibles", + "create.ponder.index_description": "Haga clic en uno de los iconos para conocer sus objetos y bloques asociados", + "create.ponder.index_title": "Índice", + "create.ponder.shared.rpm16": "16 RPM", + "create.ponder.shared.behaviour_modify_wrench": "Este comportamiento puede modificarse mediante una llave inglesa", + "create.ponder.shared.storage_on_contraption": "Los inventarios unidos al artilugio recogerán sus producciones automáticamente", + "create.ponder.shared.sneak_and": "Mayús izdo. +", + "create.ponder.shared.rpm8": "8 RPM", + "create.ponder.shared.ctrl_and": "Ctrl +", + "create.ponder.shared.rpm32": "32 RPM", + "create.ponder.shared.rpm16_source": "Fuente: 16 RPM", + "create.ponder.shared.movement_anchors": "Con la ayuda de un chasis o pegamento, se pueden mover estructuras más grandes.", + "create.ponder.tag.redstone": "Componentes lógicos", + "create.ponder.tag.redstone.description": "Componentes que ayudan a la ingeniería de redstone", + "create.ponder.tag.contraption_assembly": "Utilidades para adjuntar bloques", + "create.ponder.tag.contraption_assembly.description": "Herramientas y componentes utilizados para montar estructuras con movimiento, como un artilugio animado", + "create.ponder.tag.fluids": "Manipuladores de fluidos", + "create.ponder.tag.fluids.description": "Componentes que ayudan a transportar y utilizar fluidos", + "create.ponder.tag.decoration": "Estética", + "create.ponder.tag.decoration.description": "Componentes utilizados principalmente con fines decorativos", + "create.ponder.tag.windmill_sails": "Velas para los rodamientos de los molinos de viento", + "create.ponder.tag.windmill_sails.description": "Bloques que cuentan para la fuerza de un artefacto de molino de viento cuando se ensamblan. Cada uno de ellos tiene la misma eficacia al hacerlo.", + "create.ponder.tag.arm_targets": "Objetivos para los brazos mecánicos", + "create.ponder.tag.arm_targets.description": "Componentes que pueden seleccionarse como entradas o salidas del brazo mecánico", + "create.ponder.tag.kinetic_appliances": "Dispositivos cinéticos", + "create.ponder.tag.kinetic_appliances.description": "Componentes que utilizan la fuerza rotacional", + "create.ponder.tag.kinetic_sources": "Fuentes cinéticas", + "create.ponder.tag.kinetic_sources.description": "Componentes que generan fuerza rotacional", + "create.ponder.tag.movement_anchor": "Anclas de movimiento", + "create.ponder.tag.movement_anchor.description": "Componentes que permiten crear artilugios en movimiento, animando una estructura anexa de diversas maneras", + "create.ponder.tag.kinetic_relays": "Transmisores cinéticos", + "create.ponder.tag.kinetic_relays.description": "Componentes que ayudan a transmitir la fuerza rotacional en otro lugar", + "create.ponder.tag.contraption_actor": "Actores del artilugio", + "create.ponder.tag.contraption_actor.description": "Componentes que exponen un comportamiento especial cuando están unidos a un artilugio en movimiento", + "create.ponder.tag.creative": "Modo creativo", + "create.ponder.tag.creative.description": "Componentes que no suelen estar disponibles para el Modo Supervivencia", + "create.ponder.tag.logistics": "Transporte de objetos", + "create.ponder.tag.logistics.description": "Componentes que ayudan a desplazar los objetos", + + "create.ponder.adjustable_pulse_repeater.header": "Controlar señales mediante repetidores de pulsos ajustables", + "create.ponder.adjustable_pulse_repeater.text_1": "Los repetidores de pulsos ajustables emiten un pulso corto con un retardo", + "create.ponder.adjustable_pulse_repeater.text_2": "Con la rueda del ratón se puede configurar el tiempo de carga", + "create.ponder.adjustable_pulse_repeater.text_3": "Los retrasos configurados pueden ser de hasta 30 minutos", + + "create.ponder.adjustable_repeater.header": "Controlar señales mediante repetidores ajustables", + "create.ponder.adjustable_repeater.text_1": "Los repetidores ajustables se comportan de forma similar a los repetidores normales", + "create.ponder.adjustable_repeater.text_2": "Se cargan durante un tiempo determinado...", + "create.ponder.adjustable_repeater.text_3": "...y se enfrían durante el mismo tiempo", + "create.ponder.adjustable_repeater.text_4": "Con la rueda del ratón se puede configurar el tiempo de carga", + "create.ponder.adjustable_repeater.text_5": "Los retrasos configurados pueden variar hasta 30 minutos", + + "create.ponder.analog_lever.header": "Controlar señales mediante la palanca analógica", + "create.ponder.analog_lever.text_1": "Las palancas analógicas son una fuente compacta y precisa de energía de redstone", + "create.ponder.analog_lever.text_2": "Haz clic derecho para aumentar su potencia analógica", + "create.ponder.analog_lever.text_3": "Usa Mayús izdo + clic derecho para volver a disminuir su potencia", + + "create.ponder.andesite_tunnel.header": "Usar túneles de andesita", + "create.ponder.andesite_tunnel.text_1": "Los túneles de andesita se pueden utilizar para tapar las correas", + "create.ponder.andesite_tunnel.text_2": "Siempre que un túnel de andesita tenga conexiones a los lados...", + "create.ponder.andesite_tunnel.text_3": "...dividirá exactamente un elemento de cualquier pila que pase", + "create.ponder.andesite_tunnel.text_4": "El resto continuará su camino", + + "create.ponder.basin.header": "Procesar objetos en la cuenca", + "create.ponder.basin.text_1": "Una cuenca puede contener objetos y fluidos para su procesamiento", + "create.ponder.basin.text_2": "Después de un paso de procesamamiento, las cuencas intentan descargar por debajo a un lado de ellas", + "create.ponder.basin.text_3": "Cuando un ingrediente válido está presente, la cuenca mostrará un conducto de salida", + "create.ponder.basin.text_4": "Aquí se pueden aplicar varias opciones", + "create.ponder.basin.text_5": "Las salidas serán capturadas por el inventario que está por debajo", + "create.ponder.basin.text_6": "Sin conducto de salida, la cuenca retendrá los objetos creados en su procesamiento", + "create.ponder.basin.text_7": "Esto puede ser útil si las salidas deben ser reutilizadas como ingredientes", + "create.ponder.basin.text_8": "Las salidas deseadas tendrán que ser extraídas de la cuenca", + "create.ponder.basin.text_9": "Podría ser necesario un filtro para evitar sacar los objetos no procesados", + + "create.ponder.bearing_modes.header": "Modos de movimiento del rodamiento mecánico", + "create.ponder.bearing_modes.text_1": "Cuando se detenga, el rodamiento mecánico colocará la estructura en el ángulo más cercano alineado con la cuadrícula", + "create.ponder.bearing_modes.text_2": "Se puede configurar para que nunca vuelva a los bloques sólidos, o sólo cerca del ángulo en el que comenzó", + + "create.ponder.belt_casing.header": "Correas revestidas", + "create.ponder.belt_casing.text_1": "Se puede utilizar revestidor de latón o andesita para decorar las correas", + "create.ponder.belt_casing.text_2": "Se puede utilizar una llave inglesa para quitar el revestimiento", + + "create.ponder.belt_connector.header": "El uso de las correas mecánicas", + "create.ponder.belt_connector.text_1": "Al hacer clic derecho en dos ejes con una correa mecánica se conectarán entre sí", + "create.ponder.belt_connector.text_2": "Las selecciones accidentales pueden ser canceladas con Mayús izdo + clic derecho", + "create.ponder.belt_connector.text_3": "Se pueden añadir ejes adicionales en toda la correa", + "create.ponder.belt_connector.text_4": "Los ejes conectados a través de correas girarán con velocidad y dirección idénticas", + "create.ponder.belt_connector.text_5": "Los ejes añadidos se pueden quitar con la llave inglesa", + "create.ponder.belt_connector.text_6": "Las correas mecánicas se pueden teñir con fines estéticos", + + "create.ponder.belt_directions.header": "Orientaciones válidas para las correas mecánicas", + "create.ponder.belt_directions.text_1": "Las correas mecánicas no pueden conectarse en direcciones arbitrarias", + "create.ponder.belt_directions.text_2": "1. Pueden conectarse horizontalmente", + "create.ponder.belt_directions.text_3": "2. Pueden conectarse en diagonal", + "create.ponder.belt_directions.text_4": "3. Pueden conectarse verticalmente", + "create.ponder.belt_directions.text_5": "4. Y pueden conectar ejes verticales horizontalmente", + "create.ponder.belt_directions.text_6": "Estas son todas las direcciones posibles. Pueden abarcar cualquier longitud entre 2 y 20 bloques", + + "create.ponder.belt_transport.header": "El uso de las correas mecánicas para la logística", + "create.ponder.belt_transport.text_1": "Las correas mecánicas transportan objetos y otras entidades", + "create.ponder.belt_transport.text_2": "Haz clic derecho con la mano vacía para sacar objetos de una 'cinta'", + + "create.ponder.blaze_burner.header": "Alimentar quemadores de blaze", + "create.ponder.blaze_burner.text_1": "Los quemadores de blaze pueden proporcionar calor a los objetos procesados en una cuenca", + "create.ponder.blaze_burner.text_2": "Para ello, el blaze tiene que ser alimentado con objetos inflamables", + "create.ponder.blaze_burner.text_3": "Con un pastel de blaze, el quemador puede alcanzar un mayor nivel de calor", + "create.ponder.blaze_burner.text_4": "El proceso de alimentación puede automatizarse utilizando desplegadores o brazos mecánicos", + + "create.ponder.brass_funnel.header": "El embudo de latón", + "create.ponder.brass_funnel.text_1": "Los embudos de andesita sólo pueden extraer objetos individuales", + "create.ponder.brass_funnel.text_2": "Los embudos de latón pueden extraer hasta una pila completa", + "create.ponder.brass_funnel.text_3": "Usar la rueda de desplazamiento del ratón en la ranura para filtros permite un control preciso del tamaño de la pila extraída.", + "create.ponder.brass_funnel.text_4": "El uso de objetos en la ranura de filtrado restringirá el embudo para transferir sólo las pilas que coincidan.", + + "create.ponder.brass_tunnel.header": "Usar túneles de latón", + "create.ponder.brass_tunnel.text_1": "Los túneles de latón pueden utilizarse para tapar las correas", + "create.ponder.brass_tunnel.text_2": "Tienen ranuras de filtro en cada lado abierto", + "create.ponder.brass_tunnel.text_3": "Los filtros en las conexiones de entrada simplemente bloquean los objetos que no coincidan", + "create.ponder.brass_tunnel.text_4": "Los filtros en las conexiones de salida pueden utilizarse para ordenar los objetos por tipo", + "create.ponder.brass_tunnel.text_5": "Siempre que un objeto de paso tenga múltiples salidas válidas, el modo de distribución decidirá cómo manejarlo", + "create.ponder.brass_tunnel.text_6": "Los túneles de latón en bandas paralelas formarán un grupo", + "create.ponder.brass_tunnel.text_7": "Los objetos entrantes se distribuirán ahora por todas las salidas conectadas", + "create.ponder.brass_tunnel.text_8": "Para ello, los objetos también pueden insertarse en el bloque del túnel directamente", + + "create.ponder.brass_tunnel_modes.header": "Modos de distribución del túnel de latón", + "create.ponder.brass_tunnel_modes.text_1": "Mediante una llave inglesa se puede configurar el comportamiento de distribución de los túneles de latón", + "create.ponder.brass_tunnel_modes.text_10": "'Sincronizar entradas' es una configuración única de los túneles de latón", + "create.ponder.brass_tunnel_modes.text_11": "Las entradas sólo pueden pasar si cada túnel del grupo tiene una en espera", + "create.ponder.brass_tunnel_modes.text_12": "Esto asegura que todas las correas afectadas suministren objetos al mismo tiempo", + "create.ponder.brass_tunnel_modes.text_2": "El modo División intentará distribuir la pila uniformemente entre las salidas disponibles", + "create.ponder.brass_tunnel_modes.text_3": "Si una salida no puede tomar más objetos, se saltará", + "create.ponder.brass_tunnel_modes.text_4": "El modo División forzada nunca saltará las salidas, y en su lugar esperará hasta que estén libres", + "create.ponder.brass_tunnel_modes.text_5": "El modo Round Robin mantiene las pilas enteras, y recorre las salidas de forma iterativa", + "create.ponder.brass_tunnel_modes.text_6": "Una vez más, si una salida no puede aceptar más objetos, se saltará", + "create.ponder.brass_tunnel_modes.text_7": "El modo Round Robin forzado nunca omite salidas", + "create.ponder.brass_tunnel_modes.text_8": "El modo Preferir el más cercano prioriza las salidas más cercanas a la ubicación de entrada de los objetos", + "create.ponder.brass_tunnel_modes.text_9": "El modo Aleatorizar distribuirá pilas enteras a salidas elegidas al azar", + + "create.ponder.cart_assembler.header": "Mover estructuras usando ensambladores de vagonetas", + "create.ponder.cart_assembler.text_1": "Los ensambladores de vagonetas montan estructuras adjuntas a las vagonetas que pasan", + "create.ponder.cart_assembler.text_2": "Sin una señal de redstone, desmonta los artilugios de vagoneta que pasan de nuevo en bloques", + "create.ponder.cart_assembler.text_3": "El uso de una llave inglesa en una vagoneta te permitirá llevar el artilugio a otro lugar", + + "create.ponder.cart_assembler_dual.header": "Ensamblajes de artilugios de vagoneta", + "create.ponder.cart_assembler_dual.text_1": "Siempre que dos ensambladores de vagoneta compartan una estructura adjunta...", + "create.ponder.cart_assembler_dual.text_2": "...al alimentar a cualquiera de ellos se creará un artilugio de vagoneta", + "create.ponder.cart_assembler_dual.text_3": "Las vagonetas se comportarán como las conectadas a través del acoplamiento de vagoneta", + + "create.ponder.cart_assembler_modes.header": "Configurar la orientación de los artilugios de vagonetas", + "create.ponder.cart_assembler_modes.text_1": "Los artilugios de vagonetas girarán para orientarse hacia el movimiento de sus vagonetas", + "create.ponder.cart_assembler_modes.text_2": "Esta flecha indica qué lado de la estructura se considerará la parte delantera", + "create.ponder.cart_assembler_modes.text_3": "Si el ensamblador está configurado para bloquear la rotación, la orientación de los artilugios nunca cambiará", + + "create.ponder.cart_assembler_rails.header": "Otros tipos de vagonetas y raíles", + "create.ponder.cart_assembler_rails.text_1": "Los ensambladores de vagonetas en raíles normales no afectarán el movimiento de las vagonetas que pasen", + "create.ponder.cart_assembler_rails.text_2": "Cuando se encuentre en un raíl motorizado o en un raíl de control, las vagonetas se mantendrán en su sitio hasta que sea motorizado", + "create.ponder.cart_assembler_rails.text_3": "Se pueden utilizar otros tipos de vagonetas como anclaje", + "create.ponder.cart_assembler_rails.text_4": "Los artilugios de vagonetas de horno se mantendrán alimentados a sí mismos, sacando combustible de cualquier inventario adjunto", + + "create.ponder.chain_drive.header": "Transmitir fuerza rotacional con las cadenas de transmisión", + "create.ponder.chain_drive.text_1": "Las cadenas de transmisión transmiten la rotación entre sí en fila", + "create.ponder.chain_drive.text_2": "Todos los ejes conectados así girarán en la misma dirección", + "create.ponder.chain_drive.text_3": "Cualquier parte de la fila puede girar 90 grados usando una llave inglesa", + + "create.ponder.chain_gearshift.header": "Controlar la velocidad de rotación con la cadena de transmisión ajustable", + "create.ponder.chain_gearshift.text_1": "Las cadenas de transmisión ajustables sin alimentación se comportan exactamente como las cadenas de transmisión", + "create.ponder.chain_gearshift.text_2": "Cuando están alimentadas, la velocidad transmitida a las demás cadenas de transmisión de la fila se duplica", + "create.ponder.chain_gearshift.text_3": "Siempre que la cadena de transmisión alimentada no esté en el origen, su velocidad se reducirá a la mitad", + "create.ponder.chain_gearshift.text_4": "En ambos casos, las cadenas de transmisión de la fila siempre funcionan a 2 veces la velocidad de la cadena de transmisión alimentada", + "create.ponder.chain_gearshift.text_5": "Utilizando señales analógicas, la relación puede ajustarse con mayor precisión, entre 1 y 2", + "create.ponder.chain_gearshift.text_6": "12 RPM", + + "create.ponder.chute.header": "Transportar objetos hacia abajo a través de ductos", + "create.ponder.chute.text_1": "Los ductos pueden transportar objetos verticalmente desde y hacia los inventarios", + "create.ponder.chute.text_2": "Usando la llave inglesa, se puede crear una ventana", + "create.ponder.chute.text_3": "Colocar ductos apuntando a las caras laterales de otro lo hará en diagonal", + + "create.ponder.chute_upward.header": "Transportar objetos hacia arriba mediante ductos", + "create.ponder.chute_upward.text_1": "Usando ventiladores revestidos en la parte superior o inferior, un ducto puede transportar objetos hacia arriba", + "create.ponder.chute_upward.text_2": "Al inspeccionar los ductos con las gafas del constructor, se revela información sobre la dirección del movimiento", + "create.ponder.chute_upward.text_3": "En el extremo 'bloqueado', los objetos tendrán que ser insertados/tomados de los lados", + + "create.ponder.clockwork_bearing.header": "Animar estructuras con rodamientos tipo reloj", + "create.ponder.clockwork_bearing.text_1": "Los rodamientos tipo reloj se fijan a los bloques que tienen delante", + "create.ponder.clockwork_bearing.text_2": "Al recibir fuerza rotacional, la estructura girará según la hora del día", + "create.ponder.clockwork_bearing.text_3": "3:00", + "create.ponder.clockwork_bearing.text_4": "4:00", + "create.ponder.clockwork_bearing.text_5": "Haz clic derecho en el rodamiento para iniciar o detener la animación de la estructura", + "create.ponder.clockwork_bearing.text_6": "Delante de la manecilla de las horas se puede añadir una segunda estructura", + "create.ponder.clockwork_bearing.text_7": "Asegúrese de que las dos estructuras no están unidas entre sí con pegamento o algo similar", + "create.ponder.clockwork_bearing.text_8": "La segunda estructura ahora girará como el minutero", + + "create.ponder.clutch.header": "Controlar la fuerza rotacional mediante un embrague", + "create.ponder.clutch.text_1": "Los embragues transmitirán la rotación en línea recta", + "create.ponder.clutch.text_2": "Cuando se alimentan con redstone, rompen la conexión", + + "create.ponder.cog_speedup.header": "Cambiar de marchas con engranajes", + "create.ponder.cog_speedup.text_1": "Los engranajes grandes y pequeños pueden conectarse en diagonal", + "create.ponder.cog_speedup.text_2": "Al cambiar de engranajes grandes a pequeños, la velocidad rotacional se duplicará", + "create.ponder.cog_speedup.text_3": "Inversamente, la velocidad rotacional se reducirá a la mitad", + + "create.ponder.cogwheel.header": "Transmitir fuerza rotacional mediante engranajes", + "create.ponder.cogwheel.text_1": "Los engranajes transmitirán la rotación a otros engranajes adyacentes", + "create.ponder.cogwheel.text_2": "Los ejes adyacentes conectados así, girarán en direcciones opuestas", + + "create.ponder.creative_fluid_tank.header": "Tanque de fluídos creativo", + "create.ponder.creative_fluid_tank.text_1": "Los depósitos de fluidos creativos pueden utilizarse para proporcionar un suministro de fluidos sin fondo", + "create.ponder.creative_fluid_tank.text_2": "Haga clic con el botón derecho en un elemento que contenga fluido para configurarlo", + "create.ponder.creative_fluid_tank.text_3": "Las redes de tuberías pueden ahora extraer sin cesar el fluido asignado del depósito", + "create.ponder.creative_fluid_tank.text_4": "Cualquier fluido empujado de vuelta a un tanque de fluido creativo será anulado", + + "create.ponder.creative_motor.header": "Generar fuerza rotacional con motores creativos", + "create.ponder.creative_motor.text_1": "Los motores creativos son una fuente compacta y configurable de fuerza rotacional", + "create.ponder.creative_motor.text_2": "Usar la rueda de desplazamiento del ratón en su parte trasera cambia las RPM de la salida rotacional", + + "create.ponder.crushing_wheels.header": "Procesar objetos con las ruedas trituradoras", + "create.ponder.crushing_wheels.text_1": "Un par de ruedas trituradoras pueden moler objetos de forma muy eficaz", + "create.ponder.crushing_wheels.text_2": "Su fuerza rotacional tiene que hacerlas girar una contra otra", + "create.ponder.crushing_wheels.text_3": "Los objetos lanzados o insertados en la parte superior serán procesados", + "create.ponder.crushing_wheels.text_4": "Los objetos también pueden ser insertados y recogidos a través de medios automatizados", + + "create.ponder.deployer.header": "Usar el desplegador", + "create.ponder.deployer.text_1": "Dada la fuerza rotacional, un desplegador puede imitar las interacciones de los jugadores", + "create.ponder.deployer.text_10": "Haz clic derecho en el frente para darle un objeto a utilizar", + "create.ponder.deployer.text_11": "Los objetos también pueden ser insertados automáticamente", + "create.ponder.deployer.text_12": "Los desplegadores llevan una ranura de filtro", + "create.ponder.deployer.text_13": "Cuando se establece un filtro, sólo se activa mientras se mantiene un elemento coincidente", + "create.ponder.deployer.text_14": "Ahora sólo se pueden insertar los objetos que coincidan con el filtro...", + "create.ponder.deployer.text_15": "...y sólo se extraerán los objetos que no coincidan", + "create.ponder.deployer.text_2": "Siempre interactuará con la posición 2 bloques delante de sí mismo", + "create.ponder.deployer.text_3": "Los bloques situados directamente delante no lo obstruirán", + "create.ponder.deployer.text_4": "Los desplegadores pueden:", + "create.ponder.deployer.text_5": "Colocar bloques,", + "create.ponder.deployer.text_6": "Usar objetos,", + "create.ponder.deployer.text_7": "Activar bloques,", + "create.ponder.deployer.text_8": "Cosechar bloques", + "create.ponder.deployer.text_9": "Y atacar criaturas", + + "create.ponder.deployer_contraption.header": "Usar desplegadores en artilugios", + "create.ponder.deployer_contraption.text_1": "Siempre que los desplegadores se muevan como parte de un artilugio animado...", + "create.ponder.deployer_contraption.text_2": "Se activan en cada ubicación visitada, utilizando objetos de los inventarios de cualquier parte del artilugio", + "create.ponder.deployer_contraption.text_3": "La ranura para filtros se puede utilizar para especificar qué objetos tirar", + + "create.ponder.deployer_modes.header": "Modos del desplegador", + "create.ponder.deployer_modes.text_1": "Por defecto, un desplegador imita la interacción del clic derecho del ratón", + "create.ponder.deployer_modes.text_2": "Usando una llave inglesa, se puede configurar para imitar un clic izquierdo en su lugar", + + "create.ponder.deployer_processing.header": "Procesar objetos mediante desplegadores", + "create.ponder.deployer_processing.text_1": "Con un objeto de sujeción ajustado, los desplegadores pueden procesar los objetos proporcionados por debajo de ellos", + "create.ponder.deployer_processing.text_2": "Los objetos de entrada pueden soltarse o colocarse en un depósito bajo el desplegador", + "create.ponder.deployer_processing.text_3": "Cuando los objetos se proporcionan en una 'cinta'...", + "create.ponder.deployer_processing.text_4": "El desplegador los retendrá y procesará automáticamente", + + "create.ponder.deployer_redstone.header": "Controlar desplegadores con redstone", + "create.ponder.deployer_redstone.text_1": "Al controlar los desplegadores con redstone, éstos no se activarán", + "create.ponder.deployer_redstone.text_2": "Antes de detenerse, el desplegador terminará cualquier ciclo iniciado", + "create.ponder.deployer_redstone.text_3": "Por lo tanto, un pulso negativo puede ser utilizado para desencadenar exactamente un ciclo de activación", + + "create.ponder.depot.header": "Usar depósitos", + "create.ponder.depot.text_1": "Los depósitos pueden servir como objetos 'fijos' de la correa", + "create.ponder.depot.text_2": "Haz clic derecho para colocar o eliminar manualmente objetos del mismo", + "create.ponder.depot.text_3": "Al igual que las correas mecánicas, pueden proporcionar objetos para su procesamiento", + "create.ponder.depot.text_4": "...así como proporcionar objetos a los brazos mecánicos", + + "create.ponder.empty_blaze_burner.header": "Usar quemadores de blaze vacíos", + "create.ponder.empty_blaze_burner.text_1": "Haz clic derecho en un blaze con el quemador vacío para capturarlo", + "create.ponder.empty_blaze_burner.text_2": "Alternativamente, los blaze pueden ser recogidos de sus spawners directamente", + "create.ponder.empty_blaze_burner.text_3": "Ahora tienes una fuente de calor ideal para varias máquinas", + "create.ponder.empty_blaze_burner.text_4": "Por motivos estéticos, los quemadores de blaze vacíos también se pueden encender con pedernal y acero", + "create.ponder.empty_blaze_burner.text_5": "La llama puede transformarse utilizando un objeto con alma", + "create.ponder.empty_blaze_burner.text_6": "Sin embargo, no son adecuados para la calefacción industrial", + + "create.ponder.encased_fluid_pipe.header": "Revestir tuberías de fluídos", + "create.ponder.encased_fluid_pipe.text_1": "El revestidor de cobre puede utilizarse para decorar las tuberías de fluidos", + "create.ponder.encased_fluid_pipe.text_2": "Además de estar ocultas, las tuberías revestidas están bloqueadas en su estado de conectividad", + "create.ponder.encased_fluid_pipe.text_3": "Ya no reaccionará a los bloques vecinos que se añadan o eliminen", + + "create.ponder.fan_direction.header": "El flujo de aire de los ventiladores revestidos", + "create.ponder.fan_direction.text_1": "Los ventiladores revestidos utilizan la fuerza rotacional para crear una corriente de aire", + "create.ponder.fan_direction.text_2": "La fuerza y la dirección del flujo dependen de la fuerza rotacional suministrada", + + "create.ponder.fan_processing.header": "Procesar objetos mediante ventiladores revestidos", + "create.ponder.fan_processing.text_1": "Al pasar por lava, el flujo de aire se calienta", + "create.ponder.fan_processing.text_2": "Los objetos capturados en la zona serán fundidos", + "create.ponder.fan_processing.text_3": "Los artículos de comida arrojados aquí serán incinerados", + "create.ponder.fan_processing.text_4": "En su lugar, se debería utilizar una instalación de ahumado, usando fuego", + "create.ponder.fan_processing.text_5": "Los flujos de aire que pasan por el agua crean una instalación de lavado", + "create.ponder.fan_processing.text_6": "Se puede hacer un nuevo e interesante procesamiento con él", + "create.ponder.fan_processing.text_7": "La velocidad del ventilador NO afecta a la velocidad de procesamiento, sólo a su rango", + "create.ponder.fan_processing.text_8": "El procesamiento del ventilador también puede aplicarse a los objetos de los depósitos y las correas", + + "create.ponder.fan_source.header": "Generar fuerza rotacional mediante ventiladores revestidos", + "create.ponder.fan_source.text_1": "Los ventiladores orientados hacia una fuente de calor pueden proporcionar fuerza rotacional", + "create.ponder.fan_source.text_2": "Cuando se les da una señal de redstone, los ventiladores comenzarán a proporcionar fuerza", + + "create.ponder.fluid_pipe_flow.header": "Transportar fluidos mediante tuberías de cobre", + "create.ponder.fluid_pipe_flow.text_1": "Las tuberías de fluidos pueden conectar dos o más fuentes y objetivos de fluidos", + "create.ponder.fluid_pipe_flow.text_2": "Utilizando una llave, se puede dar a un segmento de tubo recto una ventana", + "create.ponder.fluid_pipe_flow.text_3": "Las tuberías con ventanas no se conectarán a ningún otro segmento de tubería adyacente", + "create.ponder.fluid_pipe_flow.text_4": "Accionadas por bombas mecánicas, las tuberías pueden transportar fluidos", + "create.ponder.fluid_pipe_flow.text_5": "Al principio no se extrae ningún líquido", + "create.ponder.fluid_pipe_flow.text_6": "Una vez que el flujo los conecta, los puntos finales transfieren gradualmente su contenido", + "create.ponder.fluid_pipe_flow.text_7": "Así, los bloques de tuberías nunca contienen 'físicamente' ningún fluido", + + "create.ponder.fluid_pipe_interaction.header": "Drenaje y llenado de contenedores de fluidos", + "create.ponder.fluid_pipe_interaction.text_1": "Los puntos finales de una red de tuberías pueden interactuar con una variedad de bloques", + "create.ponder.fluid_pipe_interaction.text_2": "Cualquier bloque con capacidad para almacenar fluidos puede ser llenado o vaciado", + "create.ponder.fluid_pipe_interaction.text_3": "Los bloques de origen justo delante de un extremo abierto pueden ser recogidos...", + "create.ponder.fluid_pipe_interaction.text_4": "...mientras que el derrame en espacios vacíos puede crear fuentes de fluidos", + "create.ponder.fluid_pipe_interaction.text_5": "Las tuberías también pueden extraer fluidos de un puñado de otros bloques directamente", + + "create.ponder.fluid_tank_sizes.header": "Dimensiones de un depósito de fluidos", + "create.ponder.fluid_tank_sizes.text_1": "Los depósitos de fluidos pueden combinarse para aumentar la capacidad total", + "create.ponder.fluid_tank_sizes.text_2": "Su cuadrado base puede tener hasta 3 bloques de ancho...", + "create.ponder.fluid_tank_sizes.text_3": "...y crecen en altura en más de 30 capas adicionales", + "create.ponder.fluid_tank_sizes.text_4": "Con una llave inglesa, se puede cambiar la ventana de un tanque", + + "create.ponder.fluid_tank_storage.header": "Almacenar fluidos en depósitos de fluidos", + "create.ponder.fluid_tank_storage.text_1": "Los depósitos de fluidos pueden utilizarse para almacenar grandes cantidades de fluidos", + "create.ponder.fluid_tank_storage.text_2": "Las redes de tuberías pueden empujar y arrastrar fluidos desde cualquier lado", + "create.ponder.fluid_tank_storage.text_3": "El fluido contenido puede ser medido por un Comparador", + "create.ponder.fluid_tank_storage.text_4": "Sin embargo, en el Modo Supervivencia no se pueden añadir o tomar fluidos manualmente", + "create.ponder.fluid_tank_storage.text_5": "Puede utilizar cuencas, drenadores de objetos y tuberías para vaciar o llenar objetos que contengan líquido", + + "create.ponder.flywheel.header": "Generar fuerza rotacional con la rueda de inercia", + "create.ponder.flywheel.text_1": "Las ruedas de inercia son necesarias para generar fuerza rotacional con el motor de horno", + "create.ponder.flywheel.text_2": "La fuerza rotacional proporcionada tiene una capacidad de estrés muy grande", + "create.ponder.flywheel.text_3": "El uso de un alto horno duplicará la eficiencia del motor", + + "create.ponder.funnel_compat.header": "Compatibilidades con el embudo", + "create.ponder.funnel_compat.text_1": "Los embudos deberían interactuar bien con un puñado de otros componentes", + "create.ponder.funnel_compat.text_2": "Sierras verticales", + "create.ponder.funnel_compat.text_3": "Depósitos", + "create.ponder.funnel_compat.text_4": "Drenadores de objetos", + + "create.ponder.funnel_direction.header": "Dirección de la transferencia", + "create.ponder.funnel_direction.text_1": "Colocado normalmente, extrae objetos del inventario", + "create.ponder.funnel_direction.text_2": "Colocado mientras pulsa Mayús izdo, pone objetos en el inventario", + "create.ponder.funnel_direction.text_3": "Usando una llave inglesa, el embudo puede ser volteado después de su colocación", + "create.ponder.funnel_direction.text_4": "Se aplicarán las mismas reglas para la mayoría de las orientaciones", + "create.ponder.funnel_direction.text_5": "Los embudos en las correas extraerán/insertarán dependiendo de su dirección de movimiento", + + "create.ponder.funnel_intro.header": "Usar embudos", + "create.ponder.funnel_intro.text_1": "Los embudos son ideales para transferir objetos desde y hacia los inventarios", + + "create.ponder.funnel_redstone.header": "Embudos alimentados con redstone", + "create.ponder.funnel_redstone.text_1": "La energía de redstone impedirá la actuación de cualquier embudo", + + "create.ponder.funnel_transfer.header": "Transferencia directa", + "create.ponder.funnel_transfer.text_1": "Los embudos no pueden transferir nunca entre inventarios cerrados directamente", + "create.ponder.funnel_transfer.text_2": "Los ductos o los ductos inteligentes podrían ser más adecuados para estos fines", + "create.ponder.funnel_transfer.text_3": "Lo mismo se aplica para el movimiento horizontal. Una correa mecánica debería ayudar aquí", + + "create.ponder.furnace_engine.header": "Generar fuerza rotacional con el motor de horno", + "create.ponder.furnace_engine.text_1": "Los motores de horno generan fuerza rotacional mientras su horno adjunto está funcionando", + "create.ponder.furnace_engine.text_2": "La fuerza rotacional proporcionada tiene una capacidad de estrés muy grande", + "create.ponder.furnace_engine.text_3": "El uso de un alto horno duplicará la eficiencia del motor", + + "create.ponder.gantry_carriage.header": "Usar carros de grúa", + "create.ponder.gantry_carriage.text_1": "Los carros de grúa pueden montarse y deslizarse a lo largo de un eje de grúa", + "create.ponder.gantry_carriage.text_2": "Las instalaciones de grúa pueden mover bloques adjuntos", + + "create.ponder.gantry_cascaded.header": "Grúas en cascada", + "create.ponder.gantry_cascaded.text_1": "Los ejes de grúas se unen a un carro de grúa sin necesidad de pegamento", + "create.ponder.gantry_cascaded.text_2": "Lo mismo se aplica a los carros de grúa en los ejes de grúas desplazados", + "create.ponder.gantry_cascaded.text_3": "Así, un sistema de grúas puede estar en cascada para cubrir múltiples ejes de movimiento", + + "create.ponder.gantry_direction.header": "Dirección del movimiento de la grúa", + "create.ponder.gantry_direction.text_1": "Los ejes de grúa pueden tener orientaciones opuestas", + "create.ponder.gantry_direction.text_2": "La dirección de movimiento de los carros de grúa depende de la orientación de sus ejes", + "create.ponder.gantry_direction.text_3": "...así como de su sentido de rotación", + "create.ponder.gantry_direction.text_4": "Se aplican las mismas reglas para la rotación propagada", + + "create.ponder.gantry_redstone.header": "Propagación de la potencia de la grúa", + "create.ponder.gantry_redstone.text_1": "Los ejes de grúa alimentados con redstone dejan de mover sus carros", + "create.ponder.gantry_redstone.text_2": "En su lugar, su fuerza rotacional se transmite al eje de salida de los carros", + + "create.ponder.gantry_shaft.header": "Usar ejes de grúa", + "create.ponder.gantry_shaft.text_1": "Los ejes de grúa forman la base de una instalación de grúas. Los carros adjuntos se moverán a lo largo de ellos", + "create.ponder.gantry_shaft.text_2": "Las instalaciones de grúas pueden mover los bloques adjuntos", + + "create.ponder.gearbox.header": "Transmitir fuerza rotacional mediante cajas de transmisión", + "create.ponder.gearbox.text_1": "Saltar entre ejes de rotación puede volverse voluminoso rápidamente", + "create.ponder.gearbox.text_2": "Una caja de transmisión es el equivalente más compacto de esta configuración", + "create.ponder.gearbox.text_3": "Los ejes giran en las direcciones reflejadas...", + "create.ponder.gearbox.text_4": "...esto quiere decir que las conexiones rectas se invierten", + + "create.ponder.gearshift.header": "Controlar la dirección rotacional mediante una caja de cambios", + "create.ponder.gearshift.text_1": "La caja de cambios transmitirá la rotación en línea recta", + "create.ponder.gearshift.text_2": "Cuando es alimentada con redstone, invierte la transmisión", + + "create.ponder.hand_crank.header": "Generar fuerza rotacional mediante manivelas", + "create.ponder.hand_crank.text_1": "Las manivelas pueden ser utilizadas para aplicar fuerza rotacional manualmente", + "create.ponder.hand_crank.text_2": "Mantén pulsado clic derecho para girar en sentido antihorario", + "create.ponder.hand_crank.text_3": "Su velocidad de transmisión es relativamente alta", + "create.ponder.hand_crank.text_4": "Mayús izdo + clic derecho pulsado para girar en sentido horario", + + "create.ponder.hose_pulley.header": "Llenado y vaciado de fuentes mediante poleas de manguera", + "create.ponder.hose_pulley.text_1": "Las poleas para mangueras pueden utilizarse para llenar o drenar grandes masas de fluido", + "create.ponder.hose_pulley.text_2": "Con entrada cinética, se puede controlar la altura de la manguera de las poleas", + "create.ponder.hose_pulley.text_3": "La polea se retrae mientras la rotación de entrada se invierte", + "create.ponder.hose_pulley.text_4": "En el lado opuesto, se pueden conectar las tuberías", + "create.ponder.hose_pulley.text_5": "Las redes de tuberías conectadas pueden proporcionar fluido a la manguera...", + "create.ponder.hose_pulley.text_6": "...o tirar de él, vaciando la piscina en su lugar", + "create.ponder.hose_pulley.text_7": "La velocidad de llenado y vaciado de la polea depende totalmente del caudal de las redes de fluidos", + + "create.ponder.hose_pulley_infinite.header": "Llenado y drenaje pasivo de grandes masas de fluido", + "create.ponder.hose_pulley_infinite.text_1": "Al desplegar la polea de manguera en un océano lo suficientemente grande...", + "create.ponder.hose_pulley_infinite.text_2": "Proporcionará/eliminará fluidos sin afectar a la fuente", + "create.ponder.hose_pulley_infinite.text_3": "Las redes de tuberías pueden llevar fluidos de forma ilimitada desde/hacia dichas poleas", + + "create.ponder.hose_pulley_level.header": "Nivel de llenado y vaciado de las poleas de las mangueras", + "create.ponder.hose_pulley_level.text_1": "Mientras esté totalmente retraída, la polea de la manguera no puede funcionar", + "create.ponder.hose_pulley_level.text_2": "El drenaje va de arriba a abajo", + "create.ponder.hose_pulley_level.text_3": "El nivel de la superficie terminará justo debajo de donde termina la manguera", + "create.ponder.hose_pulley_level.text_4": "El llenado va de abajo a arriba", + "create.ponder.hose_pulley_level.text_5": "La piscina llena no crecerá más allá de la capa por encima del extremo de la manguera", + + "create.ponder.item_drain.header": "Vaciar contenedores de fluidos mediante drenajes de objetos", + "create.ponder.item_drain.text_1": "Los drenajes de objetos pueden extraer los fluidos de los objetos", + "create.ponder.item_drain.text_2": "Haz clic derecho para verter los fluidos de tu objeto retenido en él", + "create.ponder.item_drain.text_3": "Cuando los artículos se insertan desde el lado...", + "create.ponder.item_drain.text_4": "...ruedan a través, vaciando su líquido contenido", + "create.ponder.item_drain.text_5": "Las redes de tuberías pueden ahora extraer el fluido del buffer interno de los desagües", + + "create.ponder.large_cogwheel.header": "Transmitir fuerza rotacional mediante engranajes grandes", + "create.ponder.large_cogwheel.text_1": "Los engranajes grandes pueden conectarse entre sí en ángulo recto", + "create.ponder.large_cogwheel.text_2": "Ayudarán a transmitir la velocidad transportada a otros ejes de rotación.", + + "create.ponder.linear_chassis_attachment.header": "Fijar bloques mediante el chasis lineal", + "create.ponder.linear_chassis_attachment.text_1": "Las caras abiertas de un chasis lineal pueden hacerse pegajosas", + "create.ponder.linear_chassis_attachment.text_2": "Haz clic de nuevo para que se pegue el lado opuesto", + "create.ponder.linear_chassis_attachment.text_3": "Mayús izdo + clic derecho con la mano vacía para eliminar el pegamento", + "create.ponder.linear_chassis_attachment.text_4": "Las caras pegadas del chasis lineal fijarán una línea de bloques delante de él", + "create.ponder.linear_chassis_attachment.text_5": "Utilizando una llave inglesa, se puede especificar un rango preciso", + "create.ponder.linear_chassis_attachment.text_6": "Manteniendo pulsada la tecla [Ctrl] y usando la rueda central del ratón, se ajusta el rango de todos los bloques de chasis adjuntos", + "create.ponder.linear_chassis_attachment.text_7": "Para fijar los bloques a cualquier otro lado es necesario utilizar pegamento", + "create.ponder.linear_chassis_attachment.text_8": "Utilizando esta mecánica, las estructuras de cualquier forma pueden moverse como un artilugio", + + "create.ponder.linear_chassis_group.header": "Mover chasis lineales en grupos", + "create.ponder.linear_chassis_group.text_1": "Los chasis lineales se conectan a los bloques de chasis idénticos que se encuentren a su lado", + "create.ponder.linear_chassis_group.text_2": "Cuando uno es movido por un artilugio, los otros son arrastrados con él", + "create.ponder.linear_chassis_group.text_3": "Los chasis de otro tipo u orientados en otra dirección no se fijan", + + "create.ponder.mechanical_arm.header": "Configurar los brazos mecánicos", + "create.ponder.mechanical_arm.text_1": "A los brazos mecánicos hay que asignarles sus entradas y salidas antes de colocarlos", + "create.ponder.mechanical_arm.text_2": "Clic derecho en los inventarios mientras mantiene el brazo mecánico para asignarlos como objetivos", + "create.ponder.mechanical_arm.text_3": "Clic derecho denuevo para alternar entre la entrada (azul) y la salida (naranja)", + "create.ponder.mechanical_arm.text_4": "Clic izquierdo en los componentes para eliminar su selección", + "create.ponder.mechanical_arm.text_5": "Una vez colocado, el brazo mecánico apuntará a los bloques seleccionados previamente", + "create.ponder.mechanical_arm.text_6": "Pueden tener cualquier cantidad de entradas y salidas dentro de su rango", + "create.ponder.mechanical_arm.text_7": "Sin embargo, no se puede interactuar directamente con todos los tipos de inventario", + "create.ponder.mechanical_arm.text_8": "Los embudos y depósitos pueden ayudar a salvar esa distancia", + + "create.ponder.mechanical_arm_filtering.header": "Filtrar salidas del brazo mecánico", + "create.ponder.mechanical_arm_filtering.text_1": "Entradas", + "create.ponder.mechanical_arm_filtering.text_2": "Salidas", + "create.ponder.mechanical_arm_filtering.text_3": "A veces es conveniente restringir los objetivos del brazo mecánico haciendo coincidir un filtro", + "create.ponder.mechanical_arm_filtering.text_4": "Por sí mismos no ofrecen ninguna opción de filtrado", + "create.ponder.mechanical_arm_filtering.text_5": "Sin embargo, los embudos de latón como objetivos comunican su propio filtro al brazo", + "create.ponder.mechanical_arm_filtering.text_6": "El brazo mecánico es lo suficientemente inteligente como para no recoger objetos que no podría distribuir", + + "create.ponder.mechanical_arm_modes.header": "Modos de distribución del brazo mecánico", + "create.ponder.mechanical_arm_modes.text_1": "Entradas", + "create.ponder.mechanical_arm_modes.text_2": "Salidas", + "create.ponder.mechanical_arm_modes.text_3": "Siempre que un brazo tenga que elegir entre varias salidas válidas...", + "create.ponder.mechanical_arm_modes.text_4": "...funcionará según su configuración", + "create.ponder.mechanical_arm_modes.text_5": "Usando la rueda del ratón con una llave inglesa te permitirá configurarlo", + "create.ponder.mechanical_arm_modes.text_6": "El modo Round Robin simplemente hace un ciclo a través de todas las salidas que están disponibles", + "create.ponder.mechanical_arm_modes.text_7": "Si una salida no puede admitir más objetos, se omitirá", + "create.ponder.mechanical_arm_modes.text_8": "El modo Round Robin forzado nunca omitirá las salidas, sino que esperará a que estén libres", + "create.ponder.mechanical_arm_modes.text_9": "Preferir el primero da prioridad a las salidas seleccionadas anteriormente al configurar este brazo", + + "create.ponder.mechanical_arm_redstone.header": "Controlar brazos mecánicos con redstone", + "create.ponder.mechanical_arm_redstone.text_1": "Cuando se alimentan con redstone, los brazos mecánicos no se activan", + "create.ponder.mechanical_arm_redstone.text_2": "Antes de detenerse, terminará los ciclos iniciados", + "create.ponder.mechanical_arm_redstone.text_3": "Así, un pulso negativo puede utilizarse para activar exactamente un ciclo de activación", + + "create.ponder.mechanical_bearing.header": "Mover estructuras mediante el rodamiento mecánico", + "create.ponder.mechanical_bearing.text_1": "Los rodamientos mecánicos se fijan al bloque que tienen delante", + "create.ponder.mechanical_bearing.text_2": "Al recibir fuerza rotacional, la ensamblará en un artilugio giratorio", + + "create.ponder.mechanical_crafter.header": "Configurar ensambladores mecánicos", + "create.ponder.mechanical_crafter.text_1": "Se puede utilizar una serie de ensambladores mecánicos para automatizar cualquier receta de elaboración.", + "create.ponder.mechanical_crafter.text_2": "Usando una llave inglesa, puedes establecer los caminos de los ensambladores ", + "create.ponder.mechanical_crafter.text_3": "Para que la configuración sea válida, todos los caminos tienen que converger en una salida, en cualquiera de los lados", + "create.ponder.mechanical_crafter.text_4": "Los puertos de salida de objetos se colocarán en un inventario a la salida", + "create.ponder.mechanical_crafter.text_5": "Los ensambladores mecánicos requieren fuerza rotacional para funcionar", + "create.ponder.mechanical_crafter.text_6": "Haga clic derecho en la parte delantera para insertar objetos manualmente", + "create.ponder.mechanical_crafter.text_7": "Una vez que cada ranura de una ruta contenga un objeto, comenzará el proceso de elaboración", + "create.ponder.mechanical_crafter.text_8": "Para las recetas que no ocupen totalmente la instalación del ensamblador, se puede forzar el arranque utilizando un pulso de redstone", + + "create.ponder.mechanical_crafter_connect.header": "Conectar inventarios a los ensambladores mecánicos", + "create.ponder.mechanical_crafter_connect.text_1": "Los objetos pueden ser insertados a los ensambladores mecánicos automáticamente", + "create.ponder.mechanical_crafter_connect.text_2": "Utilizando la llave inglesa a sus espaldas, las entradas pueden combinarse", + "create.ponder.mechanical_crafter_connect.text_3": "Ahora se puede acceder a todos los ensambladores mecánicos conectados por la misma ubicación de entrada", + + "create.ponder.mechanical_crafter_covers.header": "Cubrir las ranuras de los ensambladores mecánicos", + "create.ponder.mechanical_crafter_covers.text_1": "Algunas recetas requerirán ensambladores mecánicos adicionales para salvar las brechas en el camino", + "create.ponder.mechanical_crafter_covers.text_2": "Utilizando las tapas de ranuras del ensamblador mecánico, pueden actuar como una ranura vacía a su disposición", + "create.ponder.mechanical_crafter_covers.text_3": "Las entradas compartidas creadas con la llave inglesa en la parte posterior también pueden llegar a través de los ensambladores revestidos", + + "create.ponder.mechanical_drill.header": "Romper bloques con el taladro mecánico", + "create.ponder.mechanical_drill.text_1": "Cuando se le aplica fuerza rotacional, el taladro mecánico rompe los bloques que tiene delante.", + "create.ponder.mechanical_drill.text_2": "Su velocidad de trabajo depende de la fuerza rotacional suministrada", + + "create.ponder.mechanical_drill_contraption.header": "Usar taladros mecánicos en artilugios", + "create.ponder.mechanical_drill_contraption.text_1": "Siempre que los taladros mecánicos se muevan como parte de un artilugio animado...", + "create.ponder.mechanical_drill_contraption.text_2": "...romperán los bloques por los que artilugio los hace pasar", + + "create.ponder.mechanical_harvester.header": "Utilizar cosechadoras mecánicas en artilugios", + "create.ponder.mechanical_harvester.text_1": "Siempre que las cosechadoras mecánicas se muevan como parte de un artilugio animado...", + "create.ponder.mechanical_harvester.text_2": "...recogerán y repondrán los cultivos maduros en su camino", + + "create.ponder.mechanical_mixer.header": "Procesar objetos con la mezcladora mecánica", + "create.ponder.mechanical_mixer.text_1": "Con una mezcladora mecánica y una cuenca, se pueden automatizar algunas recetas", + "create.ponder.mechanical_mixer.text_2": "Las recetas disponibles incluyen cualquier receta de elaboración amorfa, además de un par de recetas adicionales", + "create.ponder.mechanical_mixer.text_3": "Algunas de esas recetas pueden requerir el calor de un quemador de blaze", + "create.ponder.mechanical_mixer.text_4": "La ranura para filtros se puede utilizar en caso de que dos recetas sean conflictivas.", + + "create.ponder.mechanical_piston.header": "Mover estructuras mediante pistones mecánicos", + "create.ponder.mechanical_piston.text_1": "Los pistones mecánicos pueden mover los bloques que tienen delante", + "create.ponder.mechanical_piston.text_2": "La velocidad y la dirección del movimiento dependen de la fuerza rotacional suministrada", + "create.ponder.mechanical_piston.text_3": "Los pistones mecánicos pegajosos pueden tirar de los bloques unidos hacia atrás", + + "create.ponder.mechanical_piston_modes.header": "Modos de movimiento del pistón mecánico", + "create.ponder.mechanical_piston_modes.text_1": "Cuando los pistones mecánicos dejan de moverse, la estructura movida vuelve a los bloques", + "create.ponder.mechanical_piston_modes.text_2": "Puede configurarse para que no vuelva nunca a los bloques sólidos, o sólo en la ubicación en la que comenzó", + + "create.ponder.mechanical_plough.header": "Utilizar arados mecánicos en los artilugios", + "create.ponder.mechanical_plough.text_1": "Cuando los arados mecánicos se mueven como parte de un artilugio animado...", + "create.ponder.mechanical_plough.text_2": "...romperán los bloques sin un hitbox de colisión sólido", + "create.ponder.mechanical_plough.text_3": "Además, pueden crear tierras de cultivo", + "create.ponder.mechanical_plough.text_4": "...también pueden lanzar entidades sin dañarlas", + + "create.ponder.mechanical_press.header": "Procesar objetos con la prensa mecánica", + "create.ponder.mechanical_press.text_1": "La prensa mecánica puede procesar los objetos proporcionados por debajo de ella", + "create.ponder.mechanical_press.text_2": "Los objetos de entrada pueden soltarse o colocarse en un depósito bajo la prensa", + "create.ponder.mechanical_press.text_3": "Cuando los objetos se proporcionan en una 'cinta'...", + "create.ponder.mechanical_press.text_4": "...la prensa mecánica los retendrá y procesará automáticamente", + + "create.ponder.mechanical_press_compacting.header": "Compactar objetos con la prensa mecánica", + "create.ponder.mechanical_press_compacting.text_1": "Al presionar los objetos que se encuentran en una cuenca, éstos se compactan.", + "create.ponder.mechanical_press_compacting.text_2": "La compactación incluye cualquier receta de elaboración de 2x2 o 3x3 rellena, además de un par extra", + "create.ponder.mechanical_press_compacting.text_3": "Algunas de esas recetas pueden requerir el calor de un quemador de blaze", + "create.ponder.mechanical_press_compacting.text_4": "La ranura para filtros se puede utilizar en caso de que dos recetas sean conflictivas.", + + "create.ponder.mechanical_pump_flow.header": "Transportar fluidos mediante bombas mecánicas", + "create.ponder.mechanical_pump_flow.text_1": "Las bombas mecánicas gobiernan el flujo de sus redes de tuberías anexas", + "create.ponder.mechanical_pump_flow.text_2": "Cuando están alimentadas, su flecha indica la dirección del flujo", + "create.ponder.mechanical_pump_flow.text_3": "La red de atrás está ahora tirando de fluidos...", + "create.ponder.mechanical_pump_flow.text_4": "...mientras la red de enfrente la transfiere hacia el exterior", + "create.ponder.mechanical_pump_flow.text_5": "Al invertir la rotación de la entrada se invierte el sentido del flujo", + "create.ponder.mechanical_pump_flow.text_6": "Utilice una llave inglesa para invertir la orientación de las bombas manualmente", + + "create.ponder.mechanical_pump_speed.header": "Rendimiento de las bombas mecánicas", + "create.ponder.mechanical_pump_speed.text_1": "Independientemente de la velocidad, las bombas mecánicas afectan a las tuberías conectadas hasta 16 bloques de distancia", + "create.ponder.mechanical_pump_speed.text_2": "Acelerar la rotación de entrada cambia la velocidad de propagación del flujo...", + "create.ponder.mechanical_pump_speed.text_3": "...así como la rapidez con la que se transfieren los fluidos", + "create.ponder.mechanical_pump_speed.text_4": "Las bombas pueden combinar sus rendimientos en redes de tuberías compartidas", + "create.ponder.mechanical_pump_speed.text_5": "Alternar su orientación puede ayudar a alinear sus direcciones de flujo", + + "create.ponder.mechanical_saw_breaker.header": "Cortar árboles con la sierra mecánica", + "create.ponder.mechanical_saw_breaker.text_1": "Cuando se le da una fuerza rotacional, la sierra mecánica cortará los árboles que estén directamente frente a ella", + "create.ponder.mechanical_saw_breaker.text_2": "Para poder cortar el árbol por completo, la sierra tiene que romper el último bloque que lo une al suelo", + + "create.ponder.mechanical_saw_contraption.header": "Utilizar sierras mecánicas en artilugios", + "create.ponder.mechanical_saw_contraption.text_1": "Cuando las sierras mecánicas se mueven como parte de un artilugio animado...", + "create.ponder.mechanical_saw_contraption.text_2": "...cortarán cualquier árbol con el que el artilugio se tope", + + "create.ponder.mechanical_saw_processing.header": "Procesar objetos en la sierra mecánica", + "create.ponder.mechanical_saw_processing.text_1": "Las sierras mecánicas orientadas hacia arriba pueden procesar una variedad de objetos", + "create.ponder.mechanical_saw_processing.text_2": "El objeto procesado siempre se mueve en contra de la fuerza rotacional de la sierra", + "create.ponder.mechanical_saw_processing.text_3": "Las sierras mecánicas pueden trabajar en línea con las correas mecánicas", + "create.ponder.mechanical_saw_processing.text_4": "Cuando un ingrediente tiene varios resultados posibles, la ranura para filtros puede especificarlo", + "create.ponder.mechanical_saw_processing.text_5": "Sin filtro, al contrario, la sierra mecánica pasaría por todos los resultados", + + "create.ponder.millstone.header": "Procesar objetos en la piedra de molino", + "create.ponder.millstone.text_1": "Las piedras de molino procesan los objetos mediante la molienda", + "create.ponder.millstone.text_2": "Se pueden accionar lateralmente mediante engranajes...", + "create.ponder.millstone.text_3": "... y tirar o insertar objetos en la parte superior", + "create.ponder.millstone.text_4": "Después de un tiempo, el resultado se puede obtener usando el clic derecho del ratón", + "create.ponder.millstone.text_5": "Las salidas también pueden extraerse mediante la automatización", + + "create.ponder.nixie_tube.header": "Usar los tubos Nixie", + "create.ponder.nixie_tube.text_1": "Cuando son alimentados con redstone, los tubos nixie mostrarán la fuerza de las señales de redstone", + "create.ponder.nixie_tube.text_2": "Con las etiquetas editadas en un yunque, pueden mostar un texto personalizado", + "create.ponder.nixie_tube.text_3": "Haga clic derecho con un tinte para cambiar su color de visualización", + + "create.ponder.piston_pole.header": "Pértigas de extensión de pistones", + "create.ponder.piston_pole.text_1": "Sin las pértigas de extensión unidas, un pistón mecánico no puede moverse", + "create.ponder.piston_pole.text_2": "La longitud de la pértiga añadida en su parte posterior determina el rango de alcance", + + "create.ponder.portable_fluid_interface.header": "Interfaz de fluidos portátil", + "create.ponder.portable_fluid_interface.text_1": "No se puede acceder a los depósitos de fluidos de los artilugios en movimiento por ninguna tubería", + "create.ponder.portable_fluid_interface.text_2": "Este componente puede interactuar con los depósitos de fluidos sin necesidad de detener el artilugio", + "create.ponder.portable_fluid_interface.text_3": "Coloca una segunda con un espacio de 1 o 2 bloques entre ellas", + "create.ponder.portable_fluid_interface.text_4": "Cada vez que pasen por delante de la otra, entablarán una conexión", + "create.ponder.portable_fluid_interface.text_5": "Mientras esté activada, la interfaz estacionaria representará TODOS los tanques del artilugio", + "create.ponder.portable_fluid_interface.text_6": "Ahora se puede introducir el fluido...", + "create.ponder.portable_fluid_interface.text_7": "...o extraerlo del artilugio", + "create.ponder.portable_fluid_interface.text_8": "Cuando no se intercambien contenidos durante un tiempo, el artilugio seguirá su camino", + + "create.ponder.portable_storage_interface.header": "Interfaz de almacenamiento portátil", + "create.ponder.portable_storage_interface.text_1": "Los jugadores no pueden acceder a los inventarios de los artilugios en movimiento.", + "create.ponder.portable_storage_interface.text_2": "Este componente puede interactuar con el almacenamiento sin necesidad de detener el artilugio.", + "create.ponder.portable_storage_interface.text_3": "Coloca una segunda unidad con un espacio de 1 o 2 bloques entre ellas", + "create.ponder.portable_storage_interface.text_4": "Cada vez que pasen por delante del otro, entablarán una conexión", + "create.ponder.portable_storage_interface.text_5": "Mientras esté conectada, la interfaz fija representará TODOS los inventarios del artilugio", + "create.ponder.portable_storage_interface.text_6": "Ahora pueden insertarse objetos...", + "create.ponder.portable_storage_interface.text_7": "...o extraerse", + "create.ponder.portable_storage_interface.text_8": "Cuando no se hayan intercambiado objetos durante un tiempo, el artilugio seguirá su camino", + + "create.ponder.portable_storage_interface_redstone.header": "Interfaz de almacenamiento portátil controlada por redstone", + "create.ponder.portable_storage_interface_redstone.text_1": "La energía de redstone impedirá que las interfaces de almacenamiento portátil se conecten", + + "create.ponder.powered_latch.header": "Controlar señales mediante la palanca motorizada", + "create.ponder.powered_latch.text_1": "Las palancas motorizadas son palancas controlables por redstone", + "create.ponder.powered_latch.text_2": "Las señales en la parte trasera la encienden", + "create.ponder.powered_latch.text_3": "Las señales sobre un lateral la vuelven a apagar", + "create.ponder.powered_latch.text_4": "Las palancas motorizadas también se pueden accionar manualmente", + + "create.ponder.powered_toggle_latch.header": "Controlar señales mediante la palanca de cierre motorizada", + "create.ponder.powered_toggle_latch.text_1": "Las palancas de cierre motorizadas son palancas controlables por redstone", + "create.ponder.powered_toggle_latch.text_2": "Las señales en la parte trasera cambiarán su estado...", + "create.ponder.powered_toggle_latch.text_3": "...encender y apagar", + "create.ponder.powered_toggle_latch.text_4": "Las palancas de cierre motorizadas también se pueden accionar manualmente", + + "create.ponder.pulse_repeater.header": "Controlar señales mediante repetidores de pulsos", + "create.ponder.pulse_repeater.text_1": "Los repetidores de pulsos acortan cualquier señal de redstone a un solo pulso", + + "create.ponder.radial_chassis.header": "Fijar bloques mediante chasis radiales", + "create.ponder.radial_chassis.text_1": "Los chasis radiales se conectan a bloques de chasis idénticos en una fila", + "create.ponder.radial_chassis.text_2": "Cuando uno es movido por un artilugio, los otros son arrastrados con él", + "create.ponder.radial_chassis.text_3": "Las caras laterales de un chasis radial pueden hacerse adhesivas", + "create.ponder.radial_chassis.text_4": "Haga clic de nuevo para que todos los demás lados sean pegajosos", + "create.ponder.radial_chassis.text_5": "Mayús izdo + clic derecho con la mano vacía para eliminar el pegamento", + "create.ponder.radial_chassis.text_6": "Cada vez que un bloque está junto a una cara pegajosa...", + "create.ponder.radial_chassis.text_7": "...adjuntará todos los bloques alcanzables dentro de un radio en esa capa", + "create.ponder.radial_chassis.text_8": "Con una llave inglesa y usando la rueda de desplazamiento del ratón se puede especificar un radio preciso", + "create.ponder.radial_chassis.text_9": "Los bloques no alcanzables por ninguna cara adhesiva no se fijarán", + + "create.ponder.redstone_contact.header": "Contactos de redstone", + "create.ponder.redstone_contact.text_1": "Los contactos de redstone enfrentados emitirán una señal de redstone", + "create.ponder.redstone_contact.text_2": "Esto sigue siendo válido cuando uno de ellos forma parte de un artilugio en movimiento", + + "create.ponder.redstone_link.header": "Usar los enlaces de redstone", + "create.ponder.redstone_link.text_1": "Los enlaces de redstone pueden transmitir señales redstone de forma inalámbrica", + "create.ponder.redstone_link.text_2": "Mayús izdo + clic derecho para cambiar el modo de recepción", + "create.ponder.redstone_link.text_3": "Un simple clic derecho con una llave inglesa puede hacer lo mismo", + "create.ponder.redstone_link.text_4": "Los receptores emiten la potencia de redstone de los transmisores en 128 bloques", + "create.ponder.redstone_link.text_5": "Colocando objetos en las dos ranuras puede especificar una frecuencia", + "create.ponder.redstone_link.text_6": "Sólo se comunicarán los enlaces con frecuencias coincidentes", + + "create.ponder.rope_pulley.header": "Mover estructuras con poleas de cuerda", + "create.ponder.rope_pulley.text_1": "Las poleas de cuerda pueden mover los bloques verticalmente cuando se les aplica una fuerza rotacional", + "create.ponder.rope_pulley.text_2": "La dirección y la velocidad del movimiento dependen de la fuerza rotacional suministrada", + + "create.ponder.rope_pulley_attachment.header": "Mover poleas como parte de un artilugio", + "create.ponder.rope_pulley_attachment.text_1": "Siempre que las poleas de cuerda sean movidas por un artilugio...", + "create.ponder.rope_pulley_attachment.text_2": "...su estructura adjunta será arrastrada con ella", + "create.ponder.rope_pulley_attachment.text_3": "Tenga en cuenta que las poleas de cuerda sólo se mueven cuando están paradas", + + "create.ponder.rope_pulley_modes.header": "Modos de movimiento de la polea de cuerda", + "create.ponder.rope_pulley_modes.text_1": "Cuando las poleas de cuerda dejan de moverse, la estructura movida vuelve a los bloques", + "create.ponder.rope_pulley_modes.text_2": "Puede configurarse para que no vuelva nunca a los bloques sólidos, o sólo en la ubicación en la que comenzó", + + "create.ponder.rotation_speed_controller.header": "Usar el controlador de velocidad rotacional", + "create.ponder.rotation_speed_controller.text_1": "Los controladores de velocidad rotacional transmiten la rotación de su eje a un engranaje grande situado encima.", + "create.ponder.rotation_speed_controller.text_2": "Utilizando la rueda de desplazamiento del ratón, puede configurarse la velocidad rotacional", + + "create.ponder.sail.header": "Montar molinos de viento usando velas", + "create.ponder.sail.text_1": "Las velas son bloques muy útiles para crear molinos de viento", + "create.ponder.sail.text_2": "Se fijarán a los bloques y entre sí sin necesidad de pegamento o bloques de chasis", + "create.ponder.sail.text_3": "Clic derecho con un tinte para pintarlas", + "create.ponder.sail.text_4": "Clic derecho con una tijera para volver a convertirlas en marcos", + + "create.ponder.sail_frame.header": "Montar molinos de viento con marcos de vela", + "create.ponder.sail_frame.text_1": "Los marcos de vela son prácticos bloques para crear molinos de viento", + "create.ponder.sail_frame.text_2": "Se fijarán a los bloques y entre sí sin necesidad de pegamento o bloques de chasis", + + "create.ponder.sequenced_gearshift.header": "Controlar la velocidad de rotación mediante la caja de cambios secuenciales", + "create.ponder.sequenced_gearshift.text_1": "La caja de cambios secuencial retransmite la rotación siguiendo una lista cronometrada de instrucciones", + "create.ponder.sequenced_gearshift.text_2": "Haga clic con el botón derecho para abrir la interfaz de configuración", + "create.ponder.sequenced_gearshift.text_3": "Al recibir una señal de redstone, comenzará a ejecutar su secuencia configurada", + "create.ponder.sequenced_gearshift.text_4": "Una vez terminado, espera la siguiente señal de redstone y vuelve a empezar", + "create.ponder.sequenced_gearshift.text_5": "Se puede utilizar un comparador de redstone para leer el progreso actual", + + "create.ponder.shaft.header": "Transmitir fuerza rotacional mediante ejes", + "create.ponder.shaft.text_1": "Los ejes transmiten la rotación en línea recta.", + + "create.ponder.shaft_casing.header": "Ejes revestidos", + "create.ponder.shaft_casing.text_1": "Puedes utilizar el revestidor de latón o de andesita para decorar tus ejes", + + "create.ponder.smart_chute.header": "Filtrar objetos mediante ductos inteligentes", + "create.ponder.smart_chute.text_1": "Los ductos inteligentes son ductos verticales con control adicional", + "create.ponder.smart_chute.text_2": "Los objetos en la ranura para filtros especifican lo que pueden extraer y transferir exactamente", + "create.ponder.smart_chute.text_3": "Usa la rueda del ratón para especificar el tamaño de la pila extraída", + "create.ponder.smart_chute.text_4": "La energía de redstone impedirá que funcionen.", + + "create.ponder.smart_pipe.header": "Controlar el flujo de fluidos mediante tuberías inteligentes", + "create.ponder.smart_pipe.text_1": "Las tuberías inteligentes pueden ayudar a controlar los flujos por tipo de fluido", + "create.ponder.smart_pipe.text_2": "Cuando se colocan directamente en la fuente, pueden especificar el tipo de fluido a extraer", + "create.ponder.smart_pipe.text_3": "Simplemente haga clic derecho en su ranura de filtro con cualquier elemento que contenga el fluido deseado", + "create.ponder.smart_pipe.text_4": "Cuando se colocan debajo de una red de tuberías, las tuberías inteligentes sólo dejan que los fluidos coincidentes continúen", + + "create.ponder.speedometer.header": "Controlar la información cinética mediante el velocímetro", + "create.ponder.speedometer.text_1": "El velocímetro muestra la velocidad actual de los componentes conectados", + "create.ponder.speedometer.text_2": "Cuando se usan las gafas del constructor, el jugador puede obtener información más detallada del medidor", + "create.ponder.speedometer.text_3": "Los comparadores pueden emitir señales analógicas de redstone en relación con las mediciones del velocímetro", + + "create.ponder.spout_filling.header": "Llenar objetos con un surtidor", + "create.ponder.spout_filling.text_1": "El surtidor puede llenar los elementos de retención de fluidos que se encuentran debajo de él", + "create.ponder.spout_filling.text_2": "No se puede acceder manualmente al contenido de un surtidor", + "create.ponder.spout_filling.text_3": "En su lugar, se pueden utilizar tuberías para suministrarle fluidos", + "create.ponder.spout_filling.text_4": "Los objetos de entrada pueden colocarse en un depósito bajo el surtidor", + "create.ponder.spout_filling.text_5": "Cuando los artículos se proporcionan en una cinta...", + "create.ponder.spout_filling.text_6": "El surtidor los retendrá y procesará automáticamente", + + "create.ponder.stabilized_bearings.header": "Estabilizar artilugios", + "create.ponder.stabilized_bearings.text_1": "Siempre que los rodamientos mecánicos formen parte de una estructura móvil...", + "create.ponder.stabilized_bearings.text_2": "...intentarán mantenerse derechos", + "create.ponder.stabilized_bearings.text_3": "Una vez más, el rodamiento se unirá al bloque de enfrente", + "create.ponder.stabilized_bearings.text_4": "Como resultado, todo el sub-artilugio se mantendrá en posición vertical", + + "create.ponder.sticker.header": "Fijar bloques con stickers", + "create.ponder.sticker.text_1": "Los stickers son ideales para la fijación de bloques controlados por redstone", + "create.ponder.sticker.text_2": "Al recibir una señal, cambiarán su estado", + "create.ponder.sticker.text_3": "Si ahora se mueve en un artilugio, el bloque se moverá con él", + "create.ponder.sticker.text_4": "Si se vuelve a activar, el bloque dejará de estar fijado", + + "create.ponder.stressometer.header": "Supervisar la información cinética con el estresómetro", + "create.ponder.stressometer.text_1": "El estresómetro muestra la capacidad de estrés actual de la red cinética conectada", + "create.ponder.stressometer.text_2": "Cuando se usan las gafas del constructor, el jugador puede obtener información más detallada del medidor", + "create.ponder.stressometer.text_3": "Los comparadores pueden emitir señales analógicas de redstone en relación con las mediciones del estresómetro", + + "create.ponder.super_glue.header": "Fijar bloques con pegamento", + "create.ponder.super_glue.text_1": "Se puede utilizar pegamento entre dos bloques cualquiera", + "create.ponder.super_glue.text_2": "Los bloques fijados se moverán juntos cuando se ensamblen en un artilugio", + "create.ponder.super_glue.text_3": "Cada vez que el pegamento es sostenido en la mano...", + "create.ponder.super_glue.text_4": "...los bloques añadidos se pegarán a la cara en la que fueron colocados automáticamente", + "create.ponder.super_glue.text_5": "El pegamento se puede quitar con un clic izquierdo", + + "create.ponder.valve_handle.header": "Generar fuerza rotacional mediante asas de válvula", + "create.ponder.valve_handle.text_1": "Los jugadores pueden utilizar las asas de válvulas para aplicar fuerza rotacional manualmente", + "create.ponder.valve_handle.text_2": "Mantén pulsado el clic derecho para rotar en sentido contrario a las agujas del reloj", + "create.ponder.valve_handle.text_3": "Su velocidad de transmisión es lenta y precisa", + "create.ponder.valve_handle.text_4": "Mayús izdo + clic derecho para rotar en el sentido de las agujas del reloj", + "create.ponder.valve_handle.text_5": "Las asas de las válvulas pueden teñirse con fines estéticos", + + "create.ponder.valve_pipe.header": "Controlar el flujo de fluidos mediante válvulas", + "create.ponder.valve_pipe.text_1": "Las tuberías con válvulas ayudan a controlar los fluidos que se propagan por las redes de tuberías", + "create.ponder.valve_pipe.text_2": "Su entrada en el eje controla si el fluido puede pasar por", + "create.ponder.valve_pipe.text_3": "Dada la fuerza de rotación en la dirección de apertura, la válvula se abrirá", + "create.ponder.valve_pipe.text_4": "Se puede volver a cerrar invirtiendo el giro de entrada", + + "create.ponder.water_wheel.header": "Generar fuerza rotacional mediante ruedas hidráulicas", + "create.ponder.water_wheel.text_1": "Las ruedas hidráulicas extraen la fuerza de las corrientes de agua adyacentes", + "create.ponder.water_wheel.text_2": "Cuantas más caras se alimenten, más rápido girará", + "create.ponder.water_wheel.text_3": "Las paletas de las ruedas deben estar orientadas en contra del flujo", + "create.ponder.water_wheel.text_4": "Orientadas hacia el lado contrario, no serán tan eficaces", + + "create.ponder.weighted_ejector.header": "Usar eyectores de peso", + "create.ponder.weighted_ejector.text_1": "Mayús izdo + clic derecho sosteniendo un eyector de peso para seleccionar la ubicación de destino", + "create.ponder.weighted_ejector.text_10": "Ahora estára limitado a este tamaño de pila, y sólo se activara cuando su pila retenida alcance esta cantidad", + "create.ponder.weighted_ejector.text_11": "Otras entidades activarán el eyector al pisarlos", + "create.ponder.weighted_ejector.text_2": "El eyector colocado lanzará ahora los objetos al lugar marcado", + "create.ponder.weighted_ejector.text_3": "Un objetivo válido puede estar a cualquier altura o distancia dentro del alcance", + "create.ponder.weighted_ejector.text_4": "Sin embargo, no pueden estar a un costado", + "create.ponder.weighted_ejector.text_5": "Si no se ha seleccionado ningún objetivo válido, simplemente se dirigirá al bloque que se encuentra justo delante", + "create.ponder.weighted_ejector.text_6": "Suministrale fuerza rotacional para cargarlo", + "create.ponder.weighted_ejector.text_7": "Los objetos colocados en el eyector hacen que se dispare", + "create.ponder.weighted_ejector.text_8": "Si se dirigen a un inventario, el eyector esperará hasta que haya espacio", + "create.ponder.weighted_ejector.text_9": "Con la llave inglesa se puede configurar el tamaño de pila requerido", + + "create.ponder.weighted_ejector_redstone.header": "Controlar los eyectores de peso con redstone", + "create.ponder.weighted_ejector_redstone.text_1": "Cuando se alimentan con redstone, los eyectores no se activan", + "create.ponder.weighted_ejector_redstone.text_2": "Además, los observadores de contenido pueden detectar cuando los eyectores se activan", + + "create.ponder.weighted_ejector_tunnel.header": "Dividir pilas de objetos mediante eyectores de peso", + "create.ponder.weighted_ejector_tunnel.text_1": "En combinación con los túneles de latón, los eyectores de peso pueden dividir las pilas de objetos en cantidades específicas", + "create.ponder.weighted_ejector_tunnel.text_2": "En primer lugar, configure el túnel de latón en 'Preferir lo más cercano', para dar prioridad a su salida lateral", + "create.ponder.weighted_ejector_tunnel.text_3": "El tamaño de la pila fijado en el eyector determina ahora la cantidad que se va a dividir", + "create.ponder.weighted_ejector_tunnel.text_4": "Mientras una nueva pila del tamaño configurado se expulse por la salida lateral...", + "create.ponder.weighted_ejector_tunnel.text_5": "...el resto seguirá su camino", + + "create.ponder.windmill_source.header": "Generar fuerza rotacional mediante rodamientos del molino de viento", + "create.ponder.windmill_source.text_1": "Los rodamientos del molino de viento se fijan al bloque que tienen delante", + "create.ponder.windmill_source.text_2": "Si se unen suficientes bloques tipo vela al bloque, éste puede actuar como un molino de viento", + "create.ponder.windmill_source.text_3": "Activado con un clic derecho, el rodamiento del molino de viento comenzará a proporcionar fuerza rotacional", + "create.ponder.windmill_source.text_4": "La cantidad de bloques de vela determina su velocidad de rotación", + "create.ponder.windmill_source.text_5": "Utiliza una llave inglesa para configurar su sentido de rotación", + "create.ponder.windmill_source.text_6": "Haga clic derecho sobre el rodamiento del molino en cualquier momento para detener y editar la estructura de nuevo", + + "create.ponder.windmill_structure.header": "Artilugios para molinos de viento", + "create.ponder.windmill_structure.text_1": "Cualquier estructura puede contar como un molino de viento válido, siempre que contenga al menos 8 bloques tipo vela.", + + "_": "Thank you for translating Create!" + +} diff --git a/src/main/resources/assets/create/lang/es_mx.json b/src/main/resources/assets/create/lang/es_mx.json index 5264b5a87..d20b0eb8b 100644 --- a/src/main/resources/assets/create/lang/es_mx.json +++ b/src/main/resources/assets/create/lang/es_mx.json @@ -2,803 +2,2304 @@ "_": "->------------------------] Game Elements [------------------------<-", - "block.create.acacia_window": "Ventana de Acacia", - "block.create.acacia_window_pane": "Panel de Ventana de Acacia", - "block.create.adjustable_chain_gearshift": "Cambio Ajustable de Velocidad de Cadena", - "block.create.adjustable_crate": "Caja Ajustable", - "block.create.adjustable_pulse_repeater": "Repetidor de Pulso Ajustable", - "block.create.adjustable_repeater": "Repetidor Ajustable", - "block.create.analog_lever": "Palanca Analogica", - "block.create.andesite_belt_funnel": "UNLOCALIZED: Andesite Belt Funnel", - "block.create.andesite_bricks": "Ladrillos de Andesita", - "block.create.andesite_bricks_slab": "Losa de Ladrillos de Andesita", - "block.create.andesite_bricks_stairs": "Escaleras de Ladrillos de Andesita", - "block.create.andesite_bricks_wall": "Pared de Ladrillos de Andesita", - "block.create.andesite_casing": "Carcasa de Andesita", - "block.create.andesite_cobblestone": "Piedra Labrada de Andesita", - "block.create.andesite_cobblestone_slab": "Losa de Piedra Labrada de Andesita", - "block.create.andesite_cobblestone_stairs": "Escaleras de Piedra Labrada de Andesita", - "block.create.andesite_cobblestone_wall": "Pared de Piedra Labrada de Andesita", - "block.create.andesite_encased_shaft": "Eje empotrado de Andesita", - "block.create.andesite_funnel": "Embudo de Andesita", - "block.create.andesite_pillar": "Pilar de Andesita", + "block.create.acacia_window": "Ventana de acacia", + "block.create.acacia_window_pane": "Panel de ventana de acacia", + "block.create.adjustable_chain_gearshift": "Cadena de transmisión ajustable", + "block.create.adjustable_crate": "Caja ajustable", + "block.create.adjustable_pulse_repeater": "Repetidor de pulso ajustable", + "block.create.adjustable_repeater": "Repetidor ajustable", + "block.create.analog_lever": "Palanca analógica", + "block.create.andesite_belt_funnel": "Embudo de cinta de andesita", + "block.create.andesite_bricks": "Ladrillos de andesita", + "block.create.andesite_bricks_slab": "Losa de ladrillos de andesita", + "block.create.andesite_bricks_stairs": "Escaleras de ladrillos de andesita", + "block.create.andesite_bricks_wall": "Muro de ladrillos de andesita", + "block.create.andesite_casing": "Revestidor de andesita", + "block.create.andesite_cobblestone": "Adoquín de andesita", + "block.create.andesite_cobblestone_slab": "Losa de adoquín de andesita", + "block.create.andesite_cobblestone_stairs": "Escaleras de adoquines de andesita", + "block.create.andesite_cobblestone_wall": "Muro de adoquines de andesita", + "block.create.andesite_encased_shaft": "Eje revestido de andesita", + "block.create.andesite_funnel": "Embudo de andesita", + "block.create.andesite_pillar": "Poste de andesita", "block.create.andesite_tunnel": "Túnel de Andesita", - "block.create.basin": "Cuenco", - "block.create.belt": "Correa", - "block.create.birch_window": "Ventana de Abedul", - "block.create.birch_window_pane": "Panel de Ventana de Abedul", - "block.create.black_sail": "Vela Negra", - "block.create.black_seat": "Asiento Negro", - "block.create.black_valve_handle": "Manija de Válvula Negra", + "block.create.basin": "Cuenca", + "block.create.belt": "Cinta", + "block.create.birch_window": "Ventana de abedul", + "block.create.birch_window_pane": "Panel de ventana de abedul", + "block.create.black_nixie_tube": "Tubo Nixie negro", + "block.create.black_sail": "Vela negra", + "block.create.black_seat": "Asiento negro", + "block.create.black_valve_handle": "Asa de válvula negra", "block.create.blaze_burner": "Quemador de Blaze", - "block.create.blue_sail": "Vela Azul", - "block.create.blue_seat": "Asiento Azul", - "block.create.blue_valve_handle": "Manija de Válvula Azul", - "block.create.brass_belt_funnel": "UNLOCALIZED:Brass Belt Funnel", - "block.create.brass_block": "Bloque de Latón", - "block.create.brass_casing": "Carcasa de Latón", - "block.create.brass_encased_shaft": "Eje empotrado de Latón", - "block.create.brass_funnel": "Embudo de Latón", - "block.create.brass_tunnel": "Túnel de Latón", - "block.create.brown_sail": "Vela Café", - "block.create.brown_seat": "Asiento Café ", - "block.create.brown_valve_handle": "Manija de Válvula Café", - "block.create.cart_assembler": "Ensamblador de Vagonetas", - "block.create.chiseled_dark_scoria": "Escoria Oscura Grabada", - "block.create.chiseled_dolomite": "Dolomita Grabada", - "block.create.chiseled_gabbro": "Gabro Grabado", - "block.create.chiseled_limestone": "Caliza Grabada", - "block.create.chiseled_scoria": "Escoria Grabada", - "block.create.chiseled_weathered_limestone": "Caliza Meteorizada Grabada", + "block.create.blue_nixie_tube": "Tubo Nixie azul", + "block.create.blue_sail": "Vela azul", + "block.create.blue_seat": "Asiento azul", + "block.create.blue_valve_handle": "Asa de válvula azul", + "block.create.brass_belt_funnel": "Embudo de cinta de latón", + "block.create.brass_block": "Bloque de latón", + "block.create.brass_casing": "Revestidor de latón", + "block.create.brass_encased_shaft": "Eje revestido de latón", + "block.create.brass_funnel": "Embudo de latón", + "block.create.brass_tunnel": "Túnel de latón", + "block.create.brown_nixie_tube": "Tubo Nixie marrón", + "block.create.brown_sail": "Vela marrón", + "block.create.brown_seat": "Asiento marrón", + "block.create.brown_valve_handle": "Asa de válvula marrón", + "block.create.cart_assembler": "Ensamblador de vagonetas", + "block.create.chiseled_dark_scoria": "Escoria oscura cincelada", + "block.create.chiseled_dolomite": "Dolomita cincelada", + "block.create.chiseled_gabbro": "Gabro cincelado", + "block.create.chiseled_limestone": "Caliza cincelada", + "block.create.chiseled_scoria": "Escoria cincelada", + "block.create.chiseled_weathered_limestone": "Piedra caliza erosionada cincelada", "block.create.chocolate": "Chocolate", - "block.create.chute": "Vertedor", - "block.create.clockwork_bearing": "Rodamiento de Reloj", + "block.create.chute": "Ducto", + "block.create.clockwork_bearing": "Rodamiento tipo reloj", "block.create.clutch": "Embrague", - "block.create.cogwheel": "Rueda Dentada", - "block.create.content_observer": "Observador de Contenido", - "block.create.controller_rail": "Vía de Control", - "block.create.copper_block": "Bloque de Cobre", - "block.create.copper_casing": "Carcasa de Cobre", - "block.create.copper_ore": "Mineral de Cobre", - "block.create.copper_shingles": "Techado de Cobre", - "block.create.copper_tiles": "Baldosas de Cobre", - "block.create.copper_valve_handle": "Manija de Válvula de Cobre", - "block.create.creative_crate": "Caja del Creativo", - "block.create.creative_fluid_tank": "Tanque de Fluido del Creativo", - "block.create.creative_motor": "Motor del Creativo", - "block.create.crimson_window": "Ventana Carmesí", - "block.create.crimson_window_pane": "Panel de Ventana Carmesí", - "block.create.crushing_wheel": "Rueda Trituradora", - "block.create.crushing_wheel_controller": "UNLOCALIZED:Crushing Wheel Controller", - "block.create.cuckoo_clock": "Reloj Cuco", - "block.create.cyan_sail": "Vela Cian", - "block.create.cyan_seat": "Asiento Cian", - "block.create.cyan_valve_handle": "Manija de Válvula Cian", - "block.create.dark_oak_window": "Ventana de Roble Oscuro", - "block.create.dark_oak_window_pane": "Panel de Ventana de Roble Oscuro", - "block.create.dark_scoria": "Escoria Oscura", - "block.create.dark_scoria_bricks": "Ladrillos de Escoria Oscura", - "block.create.dark_scoria_bricks_slab": "Losa de Ladrillos de Escoria Oscura", - "block.create.dark_scoria_bricks_stairs": "Escaleras de Ladrillos de Escoria Oscura", - "block.create.dark_scoria_bricks_wall": "Pared de Ladrillos de Escoria Oscura", - "block.create.dark_scoria_cobblestone": "Piedra Labrada de Escoria Oscura", - "block.create.dark_scoria_cobblestone_slab": "Losa de Piedra Labrada de Escoria Oscura", - "block.create.dark_scoria_cobblestone_stairs": "Escaleras de Piedra Labrada de Escoria Oscura", - "block.create.dark_scoria_cobblestone_wall": "Pared de Piedra Labrada de Escoria Oscura", - "block.create.dark_scoria_pillar": "Pilar de Escoria Oscura", + "block.create.cogwheel": "Engranaje pequeño", + "block.create.content_observer": "Observador de contenidos", + "block.create.controller_rail": "Raíl de control", + "block.create.copper_backtank": "Depósito trasero de cobre", + "block.create.copper_block": "Bloque de cobre", + "block.create.copper_casing": "Revestidor de caliza", + "block.create.copper_ore": "Mena de cobre", + "block.create.copper_shingles": "Bloque de tejas de cobre", + "block.create.copper_tiles": "Bloque de baldosas de cobre", + "block.create.copper_valve_handle": "Asa de válvula de cobre", + "block.create.creative_crate": "Caja creativa", + "block.create.creative_fluid_tank": "Tanque de fluidos creativo", + "block.create.creative_motor": "Motor creativo", + "block.create.crimson_window": "Ventana carmesí", + "block.create.crimson_window_pane": "Panel de ventana carmesí", + "block.create.crushing_wheel": "Rueda trituradora", + "block.create.crushing_wheel_controller": "Controlador de Rueda trituradora", + "block.create.cuckoo_clock": "Reloj de cuco", + "block.create.cyan_nixie_tube": "Tubo Nixie cian", + "block.create.cyan_sail": "Vela cian", + "block.create.cyan_seat": "Asiento cian", + "block.create.cyan_valve_handle": "Asa de válvula cian", + "block.create.dark_oak_window": "Ventana de roble oscuro", + "block.create.dark_oak_window_pane": "Panel de ventana de roble oscuro", + "block.create.dark_scoria": "Escoria oscura", + "block.create.dark_scoria_bricks": "Ladrillos de escoria oscura", + "block.create.dark_scoria_bricks_slab": "Losa de ladrillos de escoria oscura", + "block.create.dark_scoria_bricks_stairs": "Escaleras de ladrillos de escoria oscura", + "block.create.dark_scoria_bricks_wall": "Muro de ladrillos de escoria oscura", + "block.create.dark_scoria_cobblestone": "Adoquines de escoria oscura", + "block.create.dark_scoria_cobblestone_slab": "Losa de adoquines de escoria oscura", + "block.create.dark_scoria_cobblestone_stairs": "Escaleras de adoquines de escoria oscura", + "block.create.dark_scoria_cobblestone_wall": "Muro de adoquines de escoria oscura", + "block.create.dark_scoria_pillar": "Pilar de escoria oscura", "block.create.deployer": "Desplegador", "block.create.depot": "Depósito", - "block.create.diorite_bricks": "Ladrillos de Diorita", - "block.create.diorite_bricks_slab": "Losa de Ladrillos de Diorita", - "block.create.diorite_bricks_stairs": "Escaleras de Ladrillos de Diorita", - "block.create.diorite_bricks_wall": "Pared de Ladrillos de Diorita", - "block.create.diorite_cobblestone": "Piedra Labrada de Diorita", - "block.create.diorite_cobblestone_slab": "Losa de Piedra Labrada de Diorita", - "block.create.diorite_cobblestone_stairs": "Escaleras de Piedra Labrada de Diorita", - "block.create.diorite_cobblestone_wall": "Pared de Piedra Labrada de Diorita", - "block.create.diorite_pillar": "Pared de Diorita", + "block.create.diorite_bricks": "Ladrillos de diorita", + "block.create.diorite_bricks_slab": "Losa de ladrillos de diorita", + "block.create.diorite_bricks_stairs": "Escaleras de ladrillos de diorita", + "block.create.diorite_bricks_wall": "Muro de ladrillos de diorita", + "block.create.diorite_cobblestone": "Adoquín de diorita", + "block.create.diorite_cobblestone_slab": "Losa de adoquínes de diorita", + "block.create.diorite_cobblestone_stairs": "Escaleras de adoquines de diorita", + "block.create.diorite_cobblestone_wall": "Muro de adoquines de diorita", + "block.create.diorite_pillar": "Pilar de diorita", "block.create.dolomite": "Dolomita", - "block.create.dolomite_bricks": "Ladrillos de Dolomita", - "block.create.dolomite_bricks_slab": "Losa de Ladrillos de Dolomita", - "block.create.dolomite_bricks_stairs": "Escaleras de Ladrillos de Dolomita", - "block.create.dolomite_bricks_wall": "Pared de Ladrillos de Dolomita", - "block.create.dolomite_cobblestone": "Piedra Labrada de Dolomita", - "block.create.dolomite_cobblestone_slab": "Losa de Piedra Labrada de Dolomita", - "block.create.dolomite_cobblestone_stairs": "Escaleras de Piedra Labrada de Dolomita", - "block.create.dolomite_cobblestone_wall": "Pared de Piedra Labrada de Dolomita", - "block.create.dolomite_pillar": "Pilar de Dolomita", - "block.create.encased_chain_drive": "Transmisión de Cadena Empotrada", - "block.create.encased_fan": "Ventilador Acoplado", - "block.create.encased_fluid_pipe": "Tubería de Fluidos Recubierta", - "block.create.fancy_andesite_bricks": "Ladrillos de Andesita Elegantes", - "block.create.fancy_andesite_bricks_slab": "Losa de Ladrillos de Andesita Elegantes", - "block.create.fancy_andesite_bricks_stairs": "Escaleras de Ladrillos de Andesita Elegantes", - "block.create.fancy_andesite_bricks_wall": "Pared de Ladrillos de Andesita Elegantes", - "block.create.fancy_dark_scoria_bricks": "Ladrillos de Escoria Oscura Elegantes", - "block.create.fancy_dark_scoria_bricks_slab": "Losa de Ladrillos de Escoria Oscura Elegantes", - "block.create.fancy_dark_scoria_bricks_stairs": "Escaleras de Ladrillos de Escoria Oscura Elegantes", - "block.create.fancy_dark_scoria_bricks_wall": "Pared de Ladrillos de Escoria Oscura Elegantes", - "block.create.fancy_diorite_bricks": "Ladrillos de Diorita Elegantes", - "block.create.fancy_diorite_bricks_slab": "Losa de Ladrillos de Diorita Elegantes", - "block.create.fancy_diorite_bricks_stairs": "Escaleras de Ladrillos de Diorita Elegantes", - "block.create.fancy_diorite_bricks_wall": "Pared de Ladrillos de Diorita Elegantes", - "block.create.fancy_dolomite_bricks": "Ladrillos de Dolomita Elegantes", - "block.create.fancy_dolomite_bricks_slab": "Losa de Ladrillos de Dolomita Elegantes", - "block.create.fancy_dolomite_bricks_stairs": "Escaleras de Ladrillos de Dolomita Elegantes", - "block.create.fancy_dolomite_bricks_wall": "Pared de Ladrillos de Dolomita Elegantes", - "block.create.fancy_gabbro_bricks": "Ladrillos de Gabro Elegantes", - "block.create.fancy_gabbro_bricks_slab": "Losa Ladrillos de Gabro Elegantes", - "block.create.fancy_gabbro_bricks_stairs": "Escaleras Ladrillos de Gabro Elegantes", - "block.create.fancy_gabbro_bricks_wall": "Pared de Ladrillos de Gabro Elegantes", - "block.create.fancy_granite_bricks": "Ladrillos de Granito Elegantes", - "block.create.fancy_granite_bricks_slab": "Losa de Ladrillos de Granito Elegantes", - "block.create.fancy_granite_bricks_stairs": "Escaleras de Ladrillos de Granito Elegantes", - "block.create.fancy_granite_bricks_wall": "Pared de Ladrillos de Granito Elegantes", - "block.create.fancy_limestone_bricks": "Ladrillos de Caliza Elegantes", - "block.create.fancy_limestone_bricks_slab": "Losa de Ladrillos de Caliza Elegantes", - "block.create.fancy_limestone_bricks_stairs": "Escaleras de Ladrillos de Caliza Elegantes", - "block.create.fancy_limestone_bricks_wall": "Pared de Ladrillos de Caliza Elegantes", - "block.create.fancy_scoria_bricks": "Ladrillos de Escoria Elegantes", - "block.create.fancy_scoria_bricks_slab": "Losa de Ladrillos de Escoria Elegantes", - "block.create.fancy_scoria_bricks_stairs": "Escaleras de Ladrillos de Escoria Elegantes", - "block.create.fancy_scoria_bricks_wall": "Pared de Ladrillos de Escoria Elegantes", - "block.create.fancy_weathered_limestone_bricks": "Ladrillos de Caliza Meteorizada Elegantes", - "block.create.fancy_weathered_limestone_bricks_slab": "Losa de Ladrillos de Caliza Meteorizada Elegantes", - "block.create.fancy_weathered_limestone_bricks_stairs": "Escaleras de Ladrillos de Caliza Meteorizada Elegantes", - "block.create.fancy_weathered_limestone_bricks_wall": "Pared de Ladrillos de Caliza Meteorizada Elegantes", - "block.create.fluid_pipe": "Tubería de Fluidos", - "block.create.fluid_tank": "Tanque de Fluidos", - "block.create.fluid_valve": "Válvula de Fluidos", - "block.create.flywheel": "Rueda de Inercia", - "block.create.framed_glass": "Vidrio Enmarcado", - "block.create.framed_glass_pane": "Panel de Vidrio Enmarcado", - "block.create.furnace_engine": "Motor de Horno", + "block.create.dolomite_bricks": "Ladrillos de dolomita", + "block.create.dolomite_bricks_slab": "Losa de ladrillos de dolomita", + "block.create.dolomite_bricks_stairs": "Escaleras de ladrillos de dolomita", + "block.create.dolomite_bricks_wall": "Muro de ladrillos de dolomita", + "block.create.dolomite_cobblestone": "Adoquín de dolomita", + "block.create.dolomite_cobblestone_slab": "Losa de adoquín de dolomita", + "block.create.dolomite_cobblestone_stairs": "Escaleras de adoquines de dolomita", + "block.create.dolomite_cobblestone_wall": "Muro de adoquines de dolomita", + "block.create.dolomite_pillar": "Pilar de dolomita", + "block.create.encased_chain_drive": "Cadena de transmisión revestida", + "block.create.encased_fan": "Ventilador revestido", + "block.create.encased_fluid_pipe": "Tubería de fluidos de cobre reforzada", + "block.create.fancy_andesite_bricks": "Ladrillos de andesita elegantes", + "block.create.fancy_andesite_bricks_slab": "Ladrillos de andesita elegantes", + "block.create.fancy_andesite_bricks_stairs": "Escaleras de ladrillos de andesita elegantes", + "block.create.fancy_andesite_bricks_wall": "Muro de ladrillos de andesita elegantes", + "block.create.fancy_dark_scoria_bricks": "Ladrillos de escoria oscura elegantes", + "block.create.fancy_dark_scoria_bricks_slab": "Losa de ladrillos de escoria oscura elegantes", + "block.create.fancy_dark_scoria_bricks_stairs": "Escalera de ladrillos de escoria oscura elegantes", + "block.create.fancy_dark_scoria_bricks_wall": "Muro de ladrillos de escoria oscura elegantes", + "block.create.fancy_diorite_bricks": "Ladrillos de diorita elegantes", + "block.create.fancy_diorite_bricks_slab": "Losa de ladrillos de diorita elegantes", + "block.create.fancy_diorite_bricks_stairs": "Escaleras de ladrillos de diorita elegantes", + "block.create.fancy_diorite_bricks_wall": "Muro de ladrillos de diorita elegantes", + "block.create.fancy_dolomite_bricks": "Ladrillos de dolomita elegantes", + "block.create.fancy_dolomite_bricks_slab": "Losa de ladrillos de dolomita elegantes", + "block.create.fancy_dolomite_bricks_stairs": "Escaleras de ladrillos de dolomita elegantes", + "block.create.fancy_dolomite_bricks_wall": "Muro de ladrillos de dolomita elegantes", + "block.create.fancy_gabbro_bricks": "Ladrillos de gabro elegantes", + "block.create.fancy_gabbro_bricks_slab": "Losa de ladrillos de gabro elegantes", + "block.create.fancy_gabbro_bricks_stairs": "Escaleras de ladrillos de gabro elegantes", + "block.create.fancy_gabbro_bricks_wall": "Muro de ladrillos de gabro elegantes", + "block.create.fancy_granite_bricks": "Ladrillos de granito elegantes", + "block.create.fancy_granite_bricks_slab": "Losa de ladrillos de granito elegantes", + "block.create.fancy_granite_bricks_stairs": "Escaleras de ladrillos de granito elegantes", + "block.create.fancy_granite_bricks_wall": "Muro de ladrillos de granito elegantes", + "block.create.fancy_limestone_bricks": "Ladrillos de piedra caliza elegantes", + "block.create.fancy_limestone_bricks_slab": "Losa de ladrillos de piedra caliza elegantes", + "block.create.fancy_limestone_bricks_stairs": "Escaleras de ladrillos de piedra caliza elegantes", + "block.create.fancy_limestone_bricks_wall": "Muro de ladrillos de piedra caliza elegantes", + "block.create.fancy_scoria_bricks": "Ladrillos de escoria elegantes", + "block.create.fancy_scoria_bricks_slab": "Losa de ladrillos de escoria elegantes", + "block.create.fancy_scoria_bricks_stairs": "Escaleras de ladrillos de escoria elegantes", + "block.create.fancy_scoria_bricks_wall": "Muro de ladrillos de escoria elegantes", + "block.create.fancy_weathered_limestone_bricks": "Ladrillos de piedra de caliza erosionada elegantes", + "block.create.fancy_weathered_limestone_bricks_slab": "Losa de ladrillos de caliza erosionada elegantes", + "block.create.fancy_weathered_limestone_bricks_stairs": "Escaleras de ladrillos de caliza erosionada elegantes", + "block.create.fancy_weathered_limestone_bricks_wall": "Muro de ladrillos de caliza erosionada elegantes", + "block.create.fluid_pipe": "Tubería de fluidos de cobre", + "block.create.fluid_tank": "Depósito de fluidos", + "block.create.fluid_valve": "Válvula de fluidos", + "block.create.flywheel": "Rueda de inercia", + "block.create.framed_glass": "Cristal enmarcado", + "block.create.framed_glass_pane": "Panel de cristal enmarcado", + "block.create.furnace_engine": "Motor de horno", "block.create.gabbro": "Gabro", - "block.create.gabbro_bricks": "Ladrillos de Gabro", - "block.create.gabbro_bricks_slab": "Losa de Ladrillos de Gabro", - "block.create.gabbro_bricks_stairs": "Escaleras de Ladrillos de Gabro", - "block.create.gabbro_bricks_wall": "Pared de Ladrillos de Gabro", - "block.create.gabbro_cobblestone": "Piedra Labrada de Gabro", - "block.create.gabbro_cobblestone_slab": "Losa de Piedra Labrada de Gabro", - "block.create.gabbro_cobblestone_stairs": "Escaleras de Piedra Labrada de Gabro", - "block.create.gabbro_cobblestone_wall": "Pared de Piedra Labrada de Gabro", - "block.create.gabbro_pillar": "Pilar de Gabro", - "block.create.gearbox": "Transmisión", - "block.create.gearshift": "Cambio de Marcha", - "block.create.glass_fluid_pipe": "Tubería de Fluidos de Vidrio", - "block.create.granite_bricks": "Ladrillos de Granito", - "block.create.granite_bricks_slab": "Losa de Ladrillos de Granito", - "block.create.granite_bricks_stairs": "Escaleras de Ladrillos de Granito", - "block.create.granite_bricks_wall": "Pared de Ladrillos de Granito", - "block.create.granite_cobblestone": "Piedra Labrada de Granito", - "block.create.granite_cobblestone_slab": "Losa de Piedra Labrada de Granito", - "block.create.granite_cobblestone_stairs": "Escaleras de Piedra Labrada de Granito", - "block.create.granite_cobblestone_wall": "Pared de Piedra Labrada de Granito", - "block.create.granite_pillar": "Pilar de Granito", - "block.create.gray_sail": "Vela Gris", - "block.create.gray_seat": "Asiento Gris", - "block.create.gray_valve_handle": "Manija de Válvula Gris", - "block.create.green_sail": "Vela Verde", - "block.create.green_seat": "Asiento Verde", - "block.create.green_valve_handle": "Manija de Válvula Verde", + "block.create.gabbro_bricks": "Ladrillos de gabro", + "block.create.gabbro_bricks_slab": "Losa de ladrillos de gabro", + "block.create.gabbro_bricks_stairs": "Escaleras de ladrillos de gabro", + "block.create.gabbro_bricks_wall": "Muro de ladrillos de gabro", + "block.create.gabbro_cobblestone": "Adoquín de gabro", + "block.create.gabbro_cobblestone_slab": "Losa de adoquínes de gabro", + "block.create.gabbro_cobblestone_stairs": "Escaleras de adoquínes de gabro", + "block.create.gabbro_cobblestone_wall": "Muro de adoquínes de gabro", + "block.create.gabbro_pillar": "Pilar de gabro", + "block.create.gantry_carriage": "Carro de grúa", + "block.create.gantry_shaft": "Eje de grúa", + "block.create.gearbox": "Caja de transmisión", + "block.create.gearshift": "Caja de cambios", + "block.create.glass_fluid_pipe": "Tubería de fluidos de cristal", + "block.create.granite_bricks": "Ladrillos de granito", + "block.create.granite_bricks_slab": "Losa de ladrillos de granito", + "block.create.granite_bricks_stairs": "Escaleras de ladrillos de granito", + "block.create.granite_bricks_wall": "Muro de ladrillos de granito", + "block.create.granite_cobblestone": "Adoquín de granito", + "block.create.granite_cobblestone_slab": "Losa de adoquínes de granito", + "block.create.granite_cobblestone_stairs": "Escaleras de adoquínes de granito", + "block.create.granite_cobblestone_wall": "Muro de adoquínes de granito", + "block.create.granite_pillar": "Pilar de granito", + "block.create.gray_nixie_tube": "Tubo Nixie gris", + "block.create.gray_sail": "Vela gris", + "block.create.gray_seat": "Asiento gris", + "block.create.gray_valve_handle": "Asa de válvula gris", + "block.create.green_nixie_tube": "Tubo Nixie verde", + "block.create.green_sail": "Vela verde", + "block.create.green_seat": "Asiento verde", + "block.create.green_valve_handle": "Asa de válvula verde", "block.create.hand_crank": "Manivela", + "block.create.haunted_bell": "Campana encantada", "block.create.honey": "Miel", - "block.create.horizontal_framed_glass": "Vidrio Enmarcado Horizontal", - "block.create.horizontal_framed_glass_pane": "Panel de Vidrio Enmarcado Horizontal", - "block.create.hose_pulley": "Polea con Manguera", - "block.create.item_drain": "Extractor de Fluidos", - "block.create.jungle_window": "Ventana de Jungla", - "block.create.jungle_window_pane": "Panel de Ventana de Jungla", - "block.create.large_cogwheel": "Rueda Dentada Grande", - "block.create.layered_andesite": "Andesita en Capas", - "block.create.layered_dark_scoria": "Escoria Oscura en Capas", - "block.create.layered_diorite": "Diorita en Capas", - "block.create.layered_dolomite": "Dolomita en Capas", - "block.create.layered_gabbro": "Gabro en Capas", - "block.create.layered_granite": "Granito en Capas", - "block.create.layered_limestone": "Caliza en Capas", - "block.create.layered_scoria": "Escoria en Capas", - "block.create.layered_weathered_limestone": "Caliza Meteorizada en Capas", - "block.create.light_blue_sail": "Vela Azul Claro", - "block.create.light_blue_seat": "Asiento Azul Claro", - "block.create.light_blue_valve_handle": "Manija de Válvula Azul Claro", - "block.create.light_gray_sail": "Vela Gris Claro", - "block.create.light_gray_seat": "Asiento Gris Claro", - "block.create.light_gray_valve_handle": "Manija de Válvula Gris Claro", - "block.create.lime_sail": "Vela Verde Lima", - "block.create.lime_seat": "Asiento Verde Lima", - "block.create.lime_valve_handle": "Manija de Válvula Verde Lima", - "block.create.limesand": "Arena de Caliza", - "block.create.limestone": "Caliza", - "block.create.limestone_bricks": "Ladrillos de Caliza", - "block.create.limestone_bricks_slab": "Losa de Ladrillos de Caliza", - "block.create.limestone_bricks_stairs": "Escaleras de Ladrillos de Caliza", - "block.create.limestone_bricks_wall": "Pared de Ladrillos de Caliza", - "block.create.limestone_cobblestone": "Piedra Labrada de Caliza", - "block.create.limestone_cobblestone_slab": "Losa de Piedra Labrada de Caliza", - "block.create.limestone_cobblestone_stairs": "Escaleras de Piedra Labrada de Caliza", - "block.create.limestone_cobblestone_wall": "Pared de Piedra Labrada de Caliza", - "block.create.limestone_pillar": "Pilar de Caliza", - "block.create.linear_chassis": "Chasis Lineal", - "block.create.lit_blaze_burner": "Quemador de Blaze Iluminado", - "block.create.magenta_sail": "Vela Magenta", - "block.create.magenta_seat": "Asiento Magenta", - "block.create.magenta_valve_handle": "Manija de Válvula Magenta", - "block.create.mechanical_arm": "Brazo Mecánico", - "block.create.mechanical_bearing": "Rodamiento Mecánico", - "block.create.mechanical_crafter": "Crafter Mecánico", - "block.create.mechanical_drill": "Taladro Mecánico", - "block.create.mechanical_harvester": "Cosechador Mecánico", - "block.create.mechanical_mixer": "Mezcladora Mecánica", - "block.create.mechanical_piston": "Pistón Mecánico", - "block.create.mechanical_piston_head": "Cabeza de Pistón Mecánico", - "block.create.mechanical_plough": "Arado Mecánico", - "block.create.mechanical_press": "Prensa Mecánica", - "block.create.mechanical_pump": "Bomba Mecánica", - "block.create.mechanical_saw": "Sierra Mecánica", - "block.create.metal_bracket": "Soporte de Metal", - "block.create.millstone": "Molino", - "block.create.minecart_anchor": "Ancla de Vagonetas", - "block.create.mossy_andesite": "Andesita Musgosa", - "block.create.mossy_dark_scoria": "Escoria Oscura Musgosa", - "block.create.mossy_diorite": "Diorita Musgosa", - "block.create.mossy_dolomite": "Dolomita Musgosa", - "block.create.mossy_gabbro": "Gabro Musgoso", - "block.create.mossy_granite": "Granito Musgoso", - "block.create.mossy_limestone": "Caliza Musgosa", - "block.create.mossy_scoria": "Escoria Musgosa", - "block.create.mossy_weathered_limestone": "Caliza Meteorizada Musgosa", - "block.create.mysterious_cuckoo_clock": "Reloj Cuco", - "block.create.natural_scoria": "Escoria Natural", + "block.create.horizontal_framed_glass": "Cristal con marco horizontal", + "block.create.horizontal_framed_glass_pane": "Panel de cristal con marco horizontal", + "block.create.hose_pulley": "Polea de manguera", + "block.create.item_drain": "Drenador de objetos", + "block.create.jungle_window": "Ventana de jungla", + "block.create.jungle_window_pane": "Panel de ventana de jungla", + "block.create.large_cogwheel": "Engranaje grande", + "block.create.layered_andesite": "Andesita estratificada", + "block.create.layered_dark_scoria": "Escoria oscura estratificada", + "block.create.layered_diorite": "Diorita estratificada", + "block.create.layered_dolomite": "Dolomita estratificada", + "block.create.layered_gabbro": "Gabro estratificado", + "block.create.layered_granite": "Granito estratificado", + "block.create.layered_limestone": "Piedra caliza estratificada", + "block.create.layered_scoria": "Escoria estratificada", + "block.create.layered_weathered_limestone": "Caliza erosionada estratificada", + "block.create.lectern_controller": "Controlador de atril", + "block.create.light_blue_nixie_tube": "Tubo Nixie azul claro", + "block.create.light_blue_sail": "Vela azul claro", + "block.create.light_blue_seat": "Asiento azul claro", + "block.create.light_blue_valve_handle": "Asa de válvula azul claro", + "block.create.light_gray_nixie_tube": "Tubo Nixie gris claro", + "block.create.light_gray_sail": "Vela gris claro", + "block.create.light_gray_seat": "Asiento gris claro", + "block.create.light_gray_valve_handle": "Asa de válvula gris claro", + "block.create.lime_nixie_tube": "Tubo Nixie lima", + "block.create.lime_sail": "Vela lima", + "block.create.lime_seat": "Asiento lima", + "block.create.lime_valve_handle": "Asa de válvula lima", + "block.create.limesand": "Arena caliza", + "block.create.limestone": "Piedra caliza", + "block.create.limestone_bricks": "Ladrillos de piedra caliza", + "block.create.limestone_bricks_slab": "Losa de ladrillos de piedra caliza", + "block.create.limestone_bricks_stairs": "Escaleras de ladrillos de piedra caliza", + "block.create.limestone_bricks_wall": "Muro de ladrillos de piedra caliza", + "block.create.limestone_cobblestone": "Adoquínes de piedra caliza", + "block.create.limestone_cobblestone_slab": "Losa de adoquines de piedra caliza", + "block.create.limestone_cobblestone_stairs": "Escaleras de adoquines de piedra caliza", + "block.create.limestone_cobblestone_wall": "Muro de adoquines de piedra caliza", + "block.create.limestone_pillar": "Pilar de piedra caliza", + "block.create.linear_chassis": "Chasis lineal", + "block.create.lit_blaze_burner": "Quemador de Blaze encendido", + "block.create.magenta_nixie_tube": "Tubo Nixie magenta", + "block.create.magenta_sail": "Vela magenta", + "block.create.magenta_seat": "Asiento magenta", + "block.create.magenta_valve_handle": "Asa de válvula magenta", + "block.create.mechanical_arm": "Brazo mecánico", + "block.create.mechanical_bearing": "Rodamiento mecánico", + "block.create.mechanical_crafter": "Ensamblador mecánico", + "block.create.mechanical_drill": "Taladro mecánico", + "block.create.mechanical_harvester": "Cosechadora mecánica", + "block.create.mechanical_mixer": "Mezcladora mecánica", + "block.create.mechanical_piston": "Pistón mecánico", + "block.create.mechanical_piston_head": "Cabezal de pistón mecánico", + "block.create.mechanical_plough": "Arado mecánico", + "block.create.mechanical_press": "Prensa mecánica", + "block.create.mechanical_pump": "Bomba mecánica", + "block.create.mechanical_saw": "Sierra mecánica", + "block.create.metal_bracket": "Soporte de metal para ejes", + "block.create.millstone": "Piedra de molino", + "block.create.minecart_anchor": "Ancla de vagonetas", + "block.create.mossy_andesite": "Andesita musgosa", + "block.create.mossy_dark_scoria": "Escoria oscura musgosa", + "block.create.mossy_diorite": "Diorita musgosa", + "block.create.mossy_dolomite": "Dolomita musgosa", + "block.create.mossy_gabbro": "Gabro musgoso", + "block.create.mossy_granite": "Granito musgoso", + "block.create.mossy_limestone": "Caliza musgosa", + "block.create.mossy_scoria": "Escoria musgosa", + "block.create.mossy_weathered_limestone": "Caliza erosionada musgosa", + "block.create.mysterious_cuckoo_clock": "Reloj de cuco", + "block.create.natural_scoria": "Escoria natural", "block.create.nixie_tube": "Tubo Nixie", "block.create.nozzle": "Boquilla", - "block.create.oak_window": "Ventana de Roble", - "block.create.oak_window_pane": "Panel de Ventana de Roble", - "block.create.orange_sail": "Vela Naranja", - "block.create.orange_seat": "Asiento Naranja", - "block.create.orange_valve_handle": "Manija de Válvula Naranja", - "block.create.ornate_iron_window": "Ventana Ornamentada", - "block.create.ornate_iron_window_pane": "Panel de Ventana Ornamentada", - "block.create.overgrown_andesite": "Andesita Descuidada", - "block.create.overgrown_dark_scoria": "Escoria Oscura Descuidada", - "block.create.overgrown_diorite": "Diorita Descuidada", - "block.create.overgrown_dolomite": "Dolomita Descuidada", - "block.create.overgrown_gabbro": "Gabro Descuidado", - "block.create.overgrown_granite": "Granito Descuidado", - "block.create.overgrown_limestone": "Caliza Descuidada", - "block.create.overgrown_scoria": "Escoria Descuidada", - "block.create.overgrown_weathered_limestone": "Caliza Meteorizada Descuidada", - "block.create.paved_andesite": "Andesita Pavimentada", - "block.create.paved_andesite_slab": "Losa de Andesita Pavimentada", - "block.create.paved_andesite_stairs": "Escaleras de Andesita Pavimentada", - "block.create.paved_andesite_wall": "Pared de Andesita Pavimentada", - "block.create.paved_dark_scoria": "Escoria Oscura Pavimentada", - "block.create.paved_dark_scoria_slab": "Losa de Escoria Oscura Pavimentada", - "block.create.paved_dark_scoria_stairs": "Escaleras de Escoria Oscura Pavimentada", - "block.create.paved_dark_scoria_wall": "Pared de Escoria Oscura Pavimentada", - "block.create.paved_diorite": "Diorita Pavimentada", - "block.create.paved_diorite_slab": "Losa de Diorita Pavimentada", - "block.create.paved_diorite_stairs": "Escaleras de Diorita Pavimentada", - "block.create.paved_diorite_wall": "Pared de Diorita Pavimentada", - "block.create.paved_dolomite": "Dolomita Pavimentada", - "block.create.paved_dolomite_slab": "Losa de Dolomita Pavimentada", - "block.create.paved_dolomite_stairs": "Escaleras de Dolomita Pavimentada", - "block.create.paved_dolomite_wall": "Pared de Dolomita Pavimentada", - "block.create.paved_gabbro": "Gabro Pavimentado", - "block.create.paved_gabbro_slab": "Losa de Gabro Pavimentado", - "block.create.paved_gabbro_stairs": "Escaleras de Gabro Pavimentado", - "block.create.paved_gabbro_wall": "Pared de Gabro Pavimentado", - "block.create.paved_granite": "Granito Pavimentado", - "block.create.paved_granite_slab": "Losa de Granito Pavimentado", - "block.create.paved_granite_stairs": "Escaleras de Granito Pavimentado", - "block.create.paved_granite_wall": "Pared de Granito Pavimentado", - "block.create.paved_limestone": "Caliza Pavimentada", - "block.create.paved_limestone_slab": "Losa de Caliza Pavimentada", - "block.create.paved_limestone_stairs": "Escaleras de Caliza Pavimentada", - "block.create.paved_limestone_wall": "Pared de Caliza Pavimentada", - "block.create.paved_scoria": "Escoria Pavimentada", - "block.create.paved_scoria_slab": "Losa de Escoria Pavimentada", - "block.create.paved_scoria_stairs": "Escaleras de Escoria Pavimentada", - "block.create.paved_scoria_wall": "Pared de Escoria Pavimentada", - "block.create.paved_weathered_limestone": "Caliza Meteorizada Pavimentada", - "block.create.paved_weathered_limestone_slab": "Losa de Caliza Meteorizada Pavimentada", - "block.create.paved_weathered_limestone_stairs": "Escaleras de Caliza Meteorizada Pavimentada", - "block.create.paved_weathered_limestone_wall": "Pared de Caliza Meteorizada Pavimentada", - "block.create.pink_sail": "Vela Rosa", - "block.create.pink_seat": "Asiento Rosa", - "block.create.pink_valve_handle": "Manija de Válvula Rosa", - "block.create.piston_extension_pole": "Poste de Extensión de Pistón", - "block.create.polished_dark_scoria": "Escoria Oscura Pulida", - "block.create.polished_dark_scoria_slab": "Losa de Escoria Oscura Pulida", - "block.create.polished_dark_scoria_stairs": "Escaleras de Escoria Oscura Pulida", - "block.create.polished_dark_scoria_wall": "Pared de Escoria Oscura Pulida", - "block.create.polished_dolomite": "Dolomita Pulida", - "block.create.polished_dolomite_slab": "Losa de Dolomita Pulida", - "block.create.polished_dolomite_stairs": "Escaleras de Dolomita Pulida", - "block.create.polished_dolomite_wall": "Pared de Dolomita Pulida", - "block.create.polished_gabbro": "Gabro Pulido", - "block.create.polished_gabbro_slab": "Losa de Gabro Pulido", - "block.create.polished_gabbro_stairs": "Escaleras de Gabro Pulido", - "block.create.polished_gabbro_wall": "Pared de Gabro Pulido", - "block.create.polished_limestone": "Caliza Pulida", - "block.create.polished_limestone_slab": "Losa de Caliza Pulida", - "block.create.polished_limestone_stairs": "Escaleras de Caliza Pulida", - "block.create.polished_limestone_wall": "Pared de Caliza Pulida", - "block.create.polished_scoria": "Escoria Pulida", - "block.create.polished_scoria_slab": "Losa de Escoria Pulida", - "block.create.polished_scoria_stairs": "Escaleras de Escoria Pulida", - "block.create.polished_scoria_wall": "Pared de Escoria Pulida", - "block.create.polished_weathered_limestone": "Caliza Meteorizada Pulida", - "block.create.polished_weathered_limestone_slab": "Losa de Escoria Pulida", - "block.create.polished_weathered_limestone_stairs": "Escaleras de Escoria Pulida", - "block.create.polished_weathered_limestone_wall": "Pared de Escoria Pulida", - "block.create.portable_fluid_interface": "Interfaz de Fluidos Portable", - "block.create.portable_storage_interface": "Interfaz de Almacenamiento Portable", - "block.create.powered_latch": "Cerradura Electrica", - "block.create.powered_toggle_latch": "Cerradura Electrica de Palanca", - "block.create.pulley_magnet": "Polea con Imán", - "block.create.pulse_repeater": "Repetidor de Pulso", - "block.create.purple_sail": "Vela Morada", - "block.create.purple_seat": "Asiento Morado", - "block.create.purple_valve_handle": "Manija de Válvula Morada", - "block.create.radial_chassis": "Chasis Radial", - "block.create.red_sail": "Vela Roja", - "block.create.red_seat": "Asiento Rojo", - "block.create.red_valve_handle": "Manija de Válvula Roja", - "block.create.redstone_contact": "Contacto de Redstone", - "block.create.redstone_link": "Enlace de Redstone", - "block.create.refined_radiance_casing": "Carcasa Radiante", - "block.create.reinforced_rail": "Vía Reforzada", + "block.create.oak_window": "Ventana de roble", + "block.create.oak_window_pane": "Panel de ventana de roble", + "block.create.orange_sail": "Vela naranja", + "block.create.orange_seat": "Asiento naranja", + "block.create.orange_valve_handle": "Asa de válvula naranja", + "block.create.ornate_iron_window": "Ventana de hierro ornamentada", + "block.create.ornate_iron_window_pane": "Panel de ventana de hierro ornamentada", + "block.create.overgrown_andesite": "Andesita sobredimensionada", + "block.create.overgrown_dark_scoria": "Escoria oscura sobredimensionada", + "block.create.overgrown_diorite": "Diorita sobredimensionada", + "block.create.overgrown_dolomite": "Dolomita sobredimensionada", + "block.create.overgrown_gabbro": "Gabro sobredimensionado", + "block.create.overgrown_granite": "Granito sobredimensionado", + "block.create.overgrown_limestone": "Caliza sobredimensionada", + "block.create.overgrown_scoria": "Escoria sobredimensionada", + "block.create.overgrown_weathered_limestone": "Caliza erosionada sobredimensionada", + "block.create.paved_andesite": "Andesita pavimentada", + "block.create.paved_andesite_slab": "Losa de andesita pavimentada", + "block.create.paved_andesite_stairs": "Escaleras de andesita pavimentada", + "block.create.paved_andesite_wall": "Muro de andesita pavimentada", + "block.create.paved_dark_scoria": "Escoria oscura pavimentada", + "block.create.paved_dark_scoria_slab": "Losa de escoria oscura pavimentada", + "block.create.paved_dark_scoria_stairs": "Escaleras de escoria oscura pavimentada", + "block.create.paved_dark_scoria_wall": "Muro de escoria oscura pavimentad", + "block.create.paved_diorite": "Diorita pavimentada", + "block.create.paved_diorite_slab": "Losa de diorita pavimentada", + "block.create.paved_diorite_stairs": "Escaleras de diorita pavimentada", + "block.create.paved_diorite_wall": "Muro de diorita pavimentad", + "block.create.paved_dolomite": "Dolomita pavimentada", + "block.create.paved_dolomite_slab": "Losa de dolomita pavimentada", + "block.create.paved_dolomite_stairs": "Escaleras de dolomita pavimentada", + "block.create.paved_dolomite_wall": "Muro de dolomita pavimentada", + "block.create.paved_gabbro": "Gabro pavimentado", + "block.create.paved_gabbro_slab": "Losa de gabro pavimentado", + "block.create.paved_gabbro_stairs": "Escaleras de gabro pavimentado", + "block.create.paved_gabbro_wall": "Muro de gabro pavimentado", + "block.create.paved_granite": "Granito pavimentado", + "block.create.paved_granite_slab": "Losa de granito pavimentado", + "block.create.paved_granite_stairs": "Escaleras de granito pavimentado", + "block.create.paved_granite_wall": "Muro de granito pavimentado", + "block.create.paved_limestone": "Piedra caliza pavimentada", + "block.create.paved_limestone_slab": "Losa de piedra caliza pavimentada", + "block.create.paved_limestone_stairs": "Escaleras de piedra caliza pavimentada", + "block.create.paved_limestone_wall": "Muro de piedra caliza pavimentada", + "block.create.paved_scoria": "Escoria pavimentada", + "block.create.paved_scoria_slab": "Losa de escoria pavimentada", + "block.create.paved_scoria_stairs": "Escaleras de escoria pavimentada", + "block.create.paved_scoria_wall": "Muro de escoria pavimentada", + "block.create.paved_weathered_limestone": "Piedra caliza erosionada pavimentada", + "block.create.paved_weathered_limestone_slab": "Losa de piedra caliza erosionada pavimentada", + "block.create.paved_weathered_limestone_stairs": "Escaleras de piedra caliza erosionada pavimentada", + "block.create.paved_weathered_limestone_wall": "Muro de piedra caliza erosionada pavimentada", + "block.create.peculiar_bell": "Campana peculiar", + "block.create.pink_nixie_tube": "Tubo Nixie rosa", + "block.create.pink_sail": "Vela rosa", + "block.create.pink_seat": "Asiento rosa", + "block.create.pink_valve_handle": "Asa de válvula rosa", + "block.create.piston_extension_pole": "Pértiga de extensión de pistón", + "block.create.polished_dark_scoria": "Escoria oscura pulida", + "block.create.polished_dark_scoria_slab": "Losa de escoria oscura pulida", + "block.create.polished_dark_scoria_stairs": "Escaleras de escoria oscura pulida", + "block.create.polished_dark_scoria_wall": "Muro de escoria oscura pulida", + "block.create.polished_dolomite": "Dolomita pulida", + "block.create.polished_dolomite_slab": "Losa de dolomita pulida", + "block.create.polished_dolomite_stairs": "Escaleras de dolomita pulidas", + "block.create.polished_dolomite_wall": "Muro de dolomita pulida", + "block.create.polished_gabbro": "Gabro pulido", + "block.create.polished_gabbro_slab": "Losa de gabro pulido", + "block.create.polished_gabbro_stairs": "Escaleras de gabro pulido", + "block.create.polished_gabbro_wall": "Muro de gabro pulido", + "block.create.polished_limestone": "Piedra caliza pulida", + "block.create.polished_limestone_slab": "Losa de piedra caliza pulida", + "block.create.polished_limestone_stairs": "Escaleras de piedra caliza pulidas", + "block.create.polished_limestone_wall": "Muro de piedra caliza pulida", + "block.create.polished_scoria": "Escoria pulida", + "block.create.polished_scoria_slab": "Losa de escoria pulida", + "block.create.polished_scoria_stairs": "Escaleras de losa pulida", + "block.create.polished_scoria_wall": "Muro de escoria pulida", + "block.create.polished_weathered_limestone": "Piedra caliza erosionada pulida", + "block.create.polished_weathered_limestone_slab": "Losa de piedra caliza erosionada pulida", + "block.create.polished_weathered_limestone_stairs": "Escaleras de piedra caliza erosionada pulida", + "block.create.polished_weathered_limestone_wall": "Muro de piedra caliza erosionada pulida", + "block.create.portable_fluid_interface": "Interfaz de fluidos portátil", + "block.create.portable_storage_interface": "Interfaz de almacenamiento portátil", + "block.create.powered_latch": "Palanca motorizada", + "block.create.powered_toggle_latch": "Palanca de cierre motorizada", + "block.create.pulley_magnet": "Imán de la polea", + "block.create.pulse_repeater": "Repetidor de pulsos de redstone", + "block.create.purple_nixie_tube": "Tubo Nixie morado", + "block.create.purple_sail": "Vela morada", + "block.create.purple_seat": "Asiento morado", + "block.create.purple_valve_handle": "Asa de válvula morada", + "block.create.radial_chassis": "Chasis radial", + "block.create.red_nixie_tube": "Tubo Nixie rojo", + "block.create.red_sail": "Vela roja", + "block.create.red_seat": "Asiento rojo", + "block.create.red_valve_handle": "Asa de válvula roja", + "block.create.redstone_contact": "Contacto de redstone", + "block.create.redstone_link": "Enlace de redstone", + "block.create.refined_radiance_casing": "Revestidor radiante", + "block.create.reinforced_rail": "Raíl reforzado", "block.create.rope": "Cuerda", - "block.create.rope_pulley": "Polea con Cuerda", - "block.create.rotation_speed_controller": "Controlador de Velocidad de Rotación", - "block.create.sail_frame": "Marco de Vela", - "block.create.schematic_table": "Mesa de Esquemas", - "block.create.schematicannon": "Esquemacañon", + "block.create.rope_pulley": "Polea de cuerda", + "block.create.rotation_speed_controller": "Controlador de velocidad rotacional", + "block.create.sail_frame": "Marco de vela", + "block.create.schematic_table": "Tabla de esquemas", + "block.create.schematicannon": "Cañón de esquemas", "block.create.scoria": "Escoria", - "block.create.scoria_bricks": "Ladrillos de Escoria", - "block.create.scoria_bricks_slab": "Losa de Ladrillos de Escoria", - "block.create.scoria_bricks_stairs": "Escaleras de Ladrillos de Escoria", - "block.create.scoria_bricks_wall": "Pared de Ladrillos de Escoria", - "block.create.scoria_cobblestone": "Piedra Labrada de Escoria", - "block.create.scoria_cobblestone_slab": "Losa de Piedra Labrada de Escoria", - "block.create.scoria_cobblestone_stairs": "Escaleras de Piedra Labrada de Escoria", - "block.create.scoria_cobblestone_wall": "Pared de Piedra Labrada de Escoria", - "block.create.scoria_pillar": "Pilar de Escoria", - "block.create.secondary_linear_chassis": "Chasis Lineal Secundario", - "block.create.sequenced_gearshift": "Cambio de Marcha Secuenciado", - "block.create.shadow_steel_casing": "Carcasa Sombría", + "block.create.scoria_bricks": "Ladrillos de escoria", + "block.create.scoria_bricks_slab": "Losa de ladrillos de escoria", + "block.create.scoria_bricks_stairs": "Escaleras de ladrillos de escoria", + "block.create.scoria_bricks_wall": "Muro de ladrillos de escoria", + "block.create.scoria_cobblestone": "Adoquín de escoria", + "block.create.scoria_cobblestone_slab": "Losa de adoquínes de escoria", + "block.create.scoria_cobblestone_stairs": "Escaleras de adoquines de escoria", + "block.create.scoria_cobblestone_wall": "Muro de adoquines de escoria", + "block.create.scoria_pillar": "Pilar de escoria", + "block.create.secondary_linear_chassis": "Chasis lineal secundario", + "block.create.sequenced_gearshift": "Caja de cambios secuencial", + "block.create.shadow_steel_casing": "Revestidor sombrío", "block.create.shaft": "Eje", - "block.create.smart_fluid_pipe": "Tubería de Fluidos Inteligente", + "block.create.smart_chute": "Ducto inteligente", + "block.create.smart_fluid_pipe": "Tubería de fluidos inteligente", "block.create.speedometer": "Velocímetro", - "block.create.spout": "Canaleta", - "block.create.spruce_window": "Ventana de Abeto", - "block.create.spruce_window_pane": "Panel de Ventana de Abeto", - "block.create.sticky_mechanical_piston": "Pistón Mecánico Pegajoso", - "block.create.stockpile_switch": "Interruptor de Pila", + "block.create.spout": "Surtidor", + "block.create.spruce_window": "Ventana de abeto", + "block.create.spruce_window_pane": "Panel de ventana de abeto", + "block.create.sticker": "Sticker", + "block.create.sticky_mechanical_piston": "Pistón mecánico pegajoso", + "block.create.stockpile_switch": "Interruptor de acopio", "block.create.stressometer": "Estresómetro", - "block.create.tiled_glass": "Vidrio de Azulejos", - "block.create.tiled_glass_pane": "Panel de Vidrio de Azulejos", - "block.create.turntable": "Mesa Giratoria", - "block.create.vertical_framed_glass": "Vidrio Enmarcado Vertical", - "block.create.vertical_framed_glass_pane": "Panel de Vidrio Enmarcado Vertical", - "block.create.warped_window": "Ventana Distorsionada", - "block.create.warped_window_pane": "Panel de ventana Distorsionada", - "block.create.water_wheel": "Rueda Hidráulica", - "block.create.weathered_limestone": "Caliza Meteorizada", - "block.create.weathered_limestone_bricks": "Ladrillos de Caliza Meteorizada", - "block.create.weathered_limestone_bricks_slab": "Losa de Caliza Meteorizada", - "block.create.weathered_limestone_bricks_stairs": "Escaleras de Caliza Meteorizada", - "block.create.weathered_limestone_bricks_wall": "Pared de Caliza Meteorizada", - "block.create.weathered_limestone_cobblestone": "Piedra Labrada de Caliza Meteorizada", - "block.create.weathered_limestone_cobblestone_slab": "Losa de Piedra Labrada de Caliza Meteorizada", - "block.create.weathered_limestone_cobblestone_stairs": "Escaleras de Piedra Labrada de Caliza Meteorizada", - "block.create.weathered_limestone_cobblestone_wall": "Pared de Piedra Labrada de Caliza Meteorizada", - "block.create.weathered_limestone_pillar": "Pilar de Caliza Meteorizada", - "block.create.white_sail": "Vela Blanca", - "block.create.white_seat": "Asiento Blanco", - "block.create.white_valve_handle": "Manija de Válvula Blanca", - "block.create.windmill_bearing": "Rodamiento de Molino de Viento", - "block.create.wooden_bracket": "Soporte de Madera", - "block.create.yellow_sail": "Vela Amarilla", - "block.create.yellow_seat": "Asiento Amarillo", - "block.create.yellow_valve_handle": "Manija de Válvula Amarilla", - "block.create.zinc_block": "Bloque de Zinc", - "block.create.zinc_ore": "Mineral de Zinc", + "block.create.tiled_glass": "Vidrio esmaltado", + "block.create.tiled_glass_pane": "Panel de vidrio esmaltado", + "block.create.turntable": "Plataforma giratoria mecánica", + "block.create.vertical_framed_glass": "Vidrio esmaltado vertical", + "block.create.vertical_framed_glass_pane": "Panel de vidrio esmaltado vertical", + "block.create.warped_window": "Ventana distorsionada", + "block.create.warped_window_pane": "Panel de ventana distorsionada", + "block.create.water_wheel": "Rueda hidráulica mecánica", + "block.create.weathered_limestone": "Piedra caliza erosionada", + "block.create.weathered_limestone_bricks": "Ladrillos de piedra caliza erosionada", + "block.create.weathered_limestone_bricks_slab": "Losa de piedra caliza erosionada", + "block.create.weathered_limestone_bricks_stairs": "Escaleras de ladrillos de piedra caliza erosionada", + "block.create.weathered_limestone_bricks_wall": "Muro de ladrillos de piedra caliza erosionada", + "block.create.weathered_limestone_cobblestone": "Adoquín de piedra caliza erosionada", + "block.create.weathered_limestone_cobblestone_slab": "Losa de adoquín de piedra caliza erosionada", + "block.create.weathered_limestone_cobblestone_stairs": "Escaleras de adoquín de piedra caliza erosionada", + "block.create.weathered_limestone_cobblestone_wall": "Muro de adoquínes de piedra caliza erosionada", + "block.create.weathered_limestone_pillar": "Pilar de piedra caliza erosionada", + "block.create.weighted_ejector": "Eyector de peso", + "block.create.white_nixie_tube": "Tubo Nixie blanco", + "block.create.white_sail": "Vela blanca", + "block.create.white_seat": "Asiento blanco", + "block.create.white_valve_handle": "Asa de válvula blanco", + "block.create.windmill_bearing": "Rodamiento del molino de viento", + "block.create.wooden_bracket": "Soporte de madera para ejes", + "block.create.yellow_nixie_tube": "Tubo Nixie amarillo", + "block.create.yellow_sail": "Vela amarilla", + "block.create.yellow_seat": "Asiento amarillo", + "block.create.yellow_valve_handle": "Asa de válvula amarillo", + "block.create.zinc_block": "Bloque de zinc", + "block.create.zinc_ore": "Mena de zinc", - "entity.create.contraption": "Artefacto", + "enchantment.create.capacity": "Capacidad", + "enchantment.create.potato_recovery": "Recuperación de patatas", + + "entity.create.contraption": "Artilugio", + "entity.create.crafting_blueprint": "Plano de elaboración", + "entity.create.gantry_contraption": "Artilugio de grúa", + "entity.create.potato_projectile": "Proyectil de patata", "entity.create.seat": "Asiento", - "entity.create.stationary_contraption": "Artefacto Estacionario", - "entity.create.super_glue": "Super Pegamento", + "entity.create.stationary_contraption": "Artilugio estacionario", + "entity.create.super_glue": "Pegamento", - "fluid.create.chocolate": "Chocolate", - "fluid.create.honey": "Miel", - "fluid.create.milk": "Leche", "fluid.create.potion": "Poción", "fluid.create.tea": "Té del Constructor", - "item.create.andesite_alloy": "Aleación de Andesita", - "item.create.attribute_filter": "Filtro por Atributos", - "item.create.bar_of_chocolate": "Barra de Chocolate", - "item.create.belt_connector": "Conector de Correa", - "item.create.blaze_cake": "Pastel de Blaze", - "item.create.blaze_cake_base": "Base de Pastel de Blaze", - "item.create.brass_hand": "Mano de Latón", - "item.create.brass_ingot": "Lingote de Latón", - "item.create.brass_nugget": "Pepita de Latón", - "item.create.brass_sheet": "Lámina de Latón", + "item.create.andesite_alloy": "Aleación de andesita", + "item.create.attribute_filter": "Filtro de atributos", + "item.create.bar_of_chocolate": "Barra de chocolate", + "item.create.belt_connector": "Correa mecánica", + "item.create.blaze_cake": "Pastel de blaze", + "item.create.blaze_cake_base": "Base de pastel de blaze", + "item.create.brass_hand": "Mano de latón", + "item.create.brass_ingot": "Lingote de latón", + "item.create.brass_nugget": "Pepita de latón", + "item.create.brass_sheet": "Lámina de latón", "item.create.builders_tea": "Té del Constructor", - "item.create.chest_minecart_contraption": "Artefacto de Vagón con Cofre", - "item.create.chocolate_bucket": "Cubeta de Chocolate", - "item.create.chromatic_compound": "Compuesto Cromático", - "item.create.cinder_flour": "Ceniza Molida", - "item.create.copper_ingot": "Lingote de Cobre", - "item.create.copper_nugget": "Pepita de Cobre", - "item.create.copper_sheet": "Lámina de Cobre", - "item.create.crafter_slot_cover": "Cubierta de Ranura del Crafter", - "item.create.crushed_aluminum_ore": "Mineral de Aluminio Molido", - "item.create.crushed_brass": "Latón Molido", - "item.create.crushed_copper_ore": "Mineral de Cobre Molido", - "item.create.crushed_gold_ore": "Mineral de Oro Molido", - "item.create.crushed_iron_ore": "Mineral de Hierro Molido", - "item.create.crushed_lead_ore": "Mineral de Plomo Molido", - "item.create.crushed_nickel_ore": "Mineral de Nickel Molido", - "item.create.crushed_osmium_ore": "Mineral de Osmio Molido", - "item.create.crushed_platinum_ore": "Mineral de Platino Molido", - "item.create.crushed_quicksilver_ore": "Mineral de Mercurio Molido", - "item.create.crushed_silver_ore": "Mineral de Plata Molido", - "item.create.crushed_tin_ore": "Mineral de Estaño Molido", - "item.create.crushed_uranium_ore": "Mineral de Uranio Molido", - "item.create.crushed_zinc_ore": "Mineral de Zinc Molido", - "item.create.deforester": "Deforestador", - "item.create.dough": "Masa", - "item.create.electron_tube": "Válvula Electrónica", - "item.create.empty_blaze_burner": "Quemador de Blaze Vacío", - "item.create.empty_schematic": "Esquema Vacío", - "item.create.extendo_grip": "Brazo Extensor", - "item.create.extendo_grip": "Brazo Extensor", + "item.create.chest_minecart_contraption": "Artilugio de vagoneta con cofre", + "item.create.chocolate_bucket": "Cubo con chocolate", + "item.create.chocolate_glazed_berries": "Bayas glaseadas con chocolate", + "item.create.chromatic_compound": "Compuesto cromático", + "item.create.cinder_flour": "Harina del Nether", + "item.create.copper_backtank": "Depósito trasero de cobre", + "item.create.copper_ingot": "Lingote de cobre", + "item.create.copper_nugget": "Pepita de cobre", + "item.create.copper_sheet": "Lámina de cobre", + "item.create.crafter_slot_cover": "Tapa de ranura del ensamblador mecánico", + "item.create.crafting_blueprint": "Plano de elaboración", + "item.create.creative_blaze_cake": "´Pastel de blaze creativo", + "item.create.crushed_aluminum_ore": "Mineral de aluminio molido", + "item.create.crushed_brass": "Latón molido", + "item.create.crushed_copper_ore": "Mineral de cobre molido", + "item.create.crushed_gold_ore": "Mineral de oro molido", + "item.create.crushed_iron_ore": "Mineral de hierro molido", + "item.create.crushed_lead_ore": "Mineral de plomo molido", + "item.create.crushed_nickel_ore": "Mineral de níquel molido", + "item.create.crushed_osmium_ore": "Mineral de osmio molido", + "item.create.crushed_platinum_ore": "Mineral de platino molido", + "item.create.crushed_quicksilver_ore": "Mineral de mercurio molido", + "item.create.crushed_silver_ore": "Mineral de plata molido", + "item.create.crushed_tin_ore": "Mineral de estaño molido", + "item.create.crushed_uranium_ore": "Mineral de uranio molido", + "item.create.crushed_zinc_ore": "Mineral de zinc molido", + "item.create.diving_boots": "Botas de buceo", + "item.create.diving_helmet": "Casco de buceo", + "item.create.dough": "Masilla", + "item.create.electron_tube": "Tubo de electrones", + "item.create.empty_blaze_burner": "Quemador de blaze vacío", + "item.create.empty_schematic": "Esquema vacío", + "item.create.extendo_grip": "Agarre extendido", "item.create.filter": "Filtro", - "item.create.furnace_minecart_contraption": "Artefacto de Vagón con Horno", - "item.create.goggles": "Gafas de Protección para Ingenieros", - "item.create.golden_sheet": "Lámina de Oro", - "item.create.handheld_blockzapper": "Pistola de Manipulación de Bloques", - "item.create.handheld_worldshaper": "Pistola de Manipulación de Mundo", - "item.create.honey_bucket": "Cubeta de Miel", - "item.create.integrated_circuit": "Circuito Integrado", - "item.create.iron_sheet": "Lámina de Hierro", - "item.create.lapis_sheet": "Lámina de Lapislázuli", - "item.create.minecart_contraption": "Artefacto de Vagón", - "item.create.minecart_coupling": "Acoplamiento de Vagonetas", - "item.create.polished_rose_quartz": "Cuarzo Rosa Pulido", - "item.create.powdered_obsidian": "Polvo de Obsidiana", + "item.create.furnace_minecart_contraption": "Artilugio de vagoneta de horno", + "item.create.goggles": "Gafas del constructor", + "item.create.golden_sheet": "Lámina de oro", + "item.create.handheld_worldshaper": "Worldshaper Creativo", + "item.create.honey_bucket": "Cubo con miel", + "item.create.honeyed_apple": "Manzana con miel", + "item.create.incomplete_cogwheel": "Engranaje pequeño incompleto", + "item.create.incomplete_large_cogwheel": "Engranaje grande incompleto", + "item.create.incomplete_precision_mechanism": "Mecanismo de precisión incompleto", + "item.create.iron_sheet": "Lámina de hierro", + "item.create.linked_controller": "Controlador enlazado", + "item.create.minecart_contraption": "Artilugio de vagoneta", + "item.create.minecart_coupling": "Acoplamiento de vagoneta", + "item.create.polished_rose_quartz": "Cuarzo rosado pulido", + "item.create.potato_cannon": "Cañón de patatas", + "item.create.powdered_obsidian": "Polvo de obsidiana", + "item.create.precision_mechanism": "Mecanismo de precisión", "item.create.propeller": "Hélice", - "item.create.red_sand_paper": "Papel de Arena Roja", - "item.create.refined_radiance": "Radiancia Refinada", - "item.create.rose_quartz": "Cuarzo Rosa", - "item.create.sand_paper": "Papel de Arena", + "item.create.red_sand_paper": "Papel de lija rojo", + "item.create.refined_radiance": "Resplandor refinado", + "item.create.rose_quartz": "Cuarzo rosado", + "item.create.sand_paper": "Papel de lija", "item.create.schematic": "Esquema", - "item.create.schematic_and_quill": "Esquema y Pluma", - "item.create.shadow_steel": "Acero Sombrío", - "item.create.super_glue": "Super Pegamento", - "item.create.tree_fertilizer": "Fertilizador de Árboles", - "item.create.vertical_gearbox": "Transmisión Vertical", - "item.create.wand_of_symmetry": "Vara de la Simetria", - "item.create.wheat_flour": "Harina de Trigo", - "item.create.whisk": "Batidor", - "item.create.wrench": "Llave Inglesa", - "item.create.zinc_ingot": "Lingote de Zinc", - "item.create.zinc_nugget": "Pepita de Zinc", + "item.create.schematic_and_quill": "Esquema y pluma", + "item.create.shadow_steel": "Acero sombrío", + "item.create.super_glue": "Pegamento", + "item.create.sweet_roll": "Pan dulce", + "item.create.tree_fertilizer": "Fertilizante para árboles", + "item.create.vertical_gearbox": "Caja de transmisión vertical", + "item.create.wand_of_symmetry": "Varita de simetría", + "item.create.wheat_flour": "Harina de trigo", + "item.create.whisk": "Batidora", + "item.create.wrench": "Llave inglesa", + "item.create.zinc_ingot": "Lingote de zinc", + "item.create.zinc_nugget": "Pepita de zinc", + + + "_": "->------------------------] Advancements [------------------------<-", + + "advancement.create.root": "Bienvenido a Create", + "advancement.create.root.desc": "¡Es hora de empezar a construir increíbles artilugios!", + "advancement.create.andesite_alloy": "Aleaciones en abundancia", + "advancement.create.andesite_alloy.desc": "Los materiales de Create tienen nombres extraños, la aleación de andesita es uno de ellos.", + "advancement.create.its_alive": "¡Está vivo!", + "advancement.create.its_alive.desc": "Mira cómo gira tu primer componente cinético.", + "advancement.create.shifting_gears": "Cambiando de marcha", + "advancement.create.shifting_gears.desc": "Conecta un engranaje grande a uno pequeño, lo que te permitirá cambiar la velocidad de tu artilugio.", + "advancement.create.overstressed": "Sobrecargado", + "advancement.create.overstressed.desc": "Experimenta los límites del estrés.", + "advancement.create.belt": "Paseo de algas", + "advancement.create.belt.desc": "Conectar dos ejes con una correa.", + "advancement.create.tunnel": "¡Cúbrete!", + "advancement.create.tunnel.desc": "Embellece tu correa con un túnel.", + "advancement.create.splitter_tunnel": "Divide y vencerás", + "advancement.create.splitter_tunnel.desc": "Crear un divisor con un grupo de túneles de latón.", + "advancement.create.chute": "Caída en picado", + "advancement.create.chute.desc": "Coloque un ducto, la contrapartida vertical de la cinta.", + "advancement.create.upward_chute": "Abducción aérea", + "advancement.create.upward_chute.desc": "Observe cómo un objeto lanzado vuela dentro de un ducto impulsado por un ventilador.", + "advancement.create.belt_funnel": "Colgantes con forma de embudo", + "advancement.create.belt_funnel.desc": "Coloca un embudo lateral encima de una cinta o depósito para crear un tipo especial.", + "advancement.create.belt_funnel_kiss": "Los loros y las aletas", + "advancement.create.belt_funnel_kiss.desc": "Haz besar dos embudos montados con una cinta.", + "advancement.create.fan": "Maestro mecánico del aire", + "advancement.create.fan.desc": "Monta la corriente de aire proporcionada por un ventilador revestido.", + "advancement.create.fan_lava": "Calentador geotérmico", + "advancement.create.fan_lava.desc": "Queda atrapado en una corriente de aire que funde las cosas.", + "advancement.create.fan_water": "Lavado de la ropa", + "advancement.create.fan_water.desc": "Queda atrapado en una corriente de aire que lava las cosas.", + "advancement.create.fan_smoke": "Fuelle mecánico", + "advancement.create.fan_smoke.desc": "Queda atrapado en una corriente de aire que humea los objetos.", + "advancement.create.wrench": "Configurar convenientemente", + "advancement.create.wrench.desc": "Crea una llave inglesa para ayudarte a construir tus artilugios.", + "advancement.create.goggles": "Estresóvisión", + "advancement.create.goggles.desc": "Crea unas gafas del constructor para ayudarte a obtener más información cinética de los componentes.", + "advancement.create.speedometer": "Pero, ¿con qué rapidez exactamente?", + "advancement.create.speedometer.desc": "Coloca y alimenta un velocímetro. Míralo a través de las gafas para leer su valor exacto.", + "advancement.create.stressometer": "Pero, ¿cuán estresado exactamente??", + "advancement.create.stressometer.desc": "Coloca y alimenta un estresómetro. Míralo a través de las gafas para leer su valor exacto.", + "advancement.create.aesthetics": "Boom, ¡Estética!", + "advancement.create.aesthetics.desc": "Coloca soportes en ejes, ductos y engranajes.", + "advancement.create.reinforced": "Boom, ¡Reforzado!", + "advancement.create.reinforced.desc": "Utiliza bloques de revestimiento en un eje, un ducto y una cinta.", + "advancement.create.water_wheel": "Aprovechar la hidráulica", + "advancement.create.water_wheel.desc": "Coloca una rueda hidráulica e intenta hacerla girar.", + "advancement.create.chocolate_wheel": "Potencia de buen gusto", + "advancement.create.chocolate_wheel.desc": "Haz funcionar una rueda de agua con chocolate fundido.", + "advancement.create.lava_wheel": "Rueda de magma", + "advancement.create.lava_wheel.desc": "Esto no debió haber funcionado.", + "advancement.create.cuckoo": "¿Es el momento?", + "advancement.create.cuckoo.desc": "Presencia cómo un reloj de cuco anuncia la hora de acostarse.", + "advancement.create.millstone": "Triturador de bolsillo", + "advancement.create.millstone.desc": "Coloca y alimenta una piedra de molino.", + "advancement.create.windmill": "Una suave brisa", + "advancement.create.windmill.desc": "Monta un molino de viento.", + "advancement.create.maxed_windmill": "Una fuerte brisa", + "advancement.create.maxed_windmill.desc": "Monta un molino de viento con máxima intensidad.", + "advancement.create.andesite_casing": "La edad de la andesita", + "advancement.create.andesite_casing.desc": "Utiliza un poco de aleación de andesita y madera para crear un revestimiento básico.", + "advancement.create.mechanical_drill": "Interruptores fijos", + "advancement.create.mechanical_drill.desc": "Coloca y alimenta un taladro mecánico.", + "advancement.create.press": "¡La prensa se pone en marcha!", + "advancement.create.press.desc": "Activa una prensa mecánica y utilízala para crear algunas láminas.", + "advancement.create.polished_rose_quartz": "Diamantes rosas", + "advancement.create.polished_rose_quartz.desc": "Utiliza un trozo de papel de lija para pulir el cuarzo rosa hasta que se vuelva transparente.", + "advancement.create.electron_tube": "Beep Boop", + "advancement.create.electron_tube.desc": "Haz algunos tubos de electrones, útiles en la fabricación de maquinaria menos primitiva.", + "advancement.create.mechanical_saw": "Picado estacionario", + "advancement.create.mechanical_saw.desc": "Coloca y alimenta una sierra mecánica.", + "advancement.create.basin": "Funcionamiento de la cuenca", + "advancement.create.basin.desc": "Coloca una cuenca e intenta arrojar objetos en ella.", + "advancement.create.mixer": "Mezcla de colores", + "advancement.create.mixer.desc": "Coloca una batidora mecánica sobre el lavabo, enciéndala y empiece a mezclar algunos ingredientes.", + "advancement.create.blaze_burner": "Una chimenea viva", + "advancement.create.blaze_burner.desc": "Obtiene un quemador de blaze.", + "advancement.create.compact": "Compactación automática", + "advancement.create.compact.desc": "Utiliza una prensa y una cuenca para compactar algunos objetos.", + "advancement.create.brass": "Aleaciones reales", + "advancement.create.brass.desc": "Utiliza cobre molido y zinc molido para crear algo de latón.", + "advancement.create.brass_casing": "La Edad de Latón", + "advancement.create.brass_casing.desc": "Utiliza el latón recién obtenido y algo de madera para crear un revestimiento más avanzado.", + "advancement.create.copper_casing": "La Edad de Cobre", + "advancement.create.copper_casing.desc": "Utiliza algunas láminas de cobre y madera para crear algunos revestimientos de cobre.", + "advancement.create.spout": "Sploosh", + "advancement.create.spout.desc": "Observa el llenado de un fluido usando una boquilla.", + "advancement.create.spout_potion": "Cervecera global", + "advancement.create.spout_potion.desc": "Mira cómo un pico llena una botella con líquido de poción.", + "advancement.create.chocolate": "Un mundo de imaginación", + "advancement.create.chocolate.desc": "Obtiene un cubo con chocolate fundido.", + "advancement.create.item_drain": "Drenaje de la ropa", + "advancement.create.item_drain.desc": "Ve cómo se vacía un fluido mediante un drenador de objetos.", + "advancement.create.chained_item_drain": "¡Déjalo rodar!", + "advancement.create.chained_item_drain.desc": "Observa cómo un objeto rueda por varios drenadores de objetos encadenados.", + "advancement.create.glass_pipe": "Espía del flujo", + "advancement.create.glass_pipe.desc": "Observa cómo se propaga el fluido a través de un tubo de fluidos con ventanas. Los tubos de fluido rectos se convierten en ventanas cuando se utiliza una llave inglesa en ellas.", + "advancement.create.pipe_collision": "No cruzar nunca los arroyos", + "advancement.create.pipe_collision.desc": "Vea cómo se unen dos fluidos en su red de tuberías.", + "advancement.create.pipe_spill": "¡Hay una fuga!", + "advancement.create.pipe_spill.desc": "Observe cómo un extremo abierto de una tubería toma o deposita fluidos en el mundo.", + "advancement.create.hose_pulley": "Vertidos industriales", + "advancement.create.hose_pulley.desc": "Baja una polea de manguera y ve cómo se vacía o se llena un cuerpo de líquido.", + "advancement.create.infinite_water": "Drenando el océano", + "advancement.create.infinite_water.desc": "Bombea de una masa de agua lo suficientemente grande como para ser considerada infinita.", + "advancement.create.infinite_lava": "Drenaje del núcleo de los planetas", + "advancement.create.infinite_lava.desc": "Bombea de una masa de lava lo suficientemente grande como para ser considerada infinita.", + "advancement.create.infinite_chocolate": "Ahogándose en la imaginación", + "advancement.create.infinite_chocolate.desc": "Bombea desde una masa de chocolate fundido lo suficientemente grande como para ser considerado infinito.", + "advancement.create.crafter": "Montaje automatizado", + "advancement.create.crafter.desc": "Coloca y alimenta algunos ensambladores.", + "advancement.create.clockwork_bearing": "Artilugio a la hora", + "advancement.create.clockwork_bearing.desc": "Ensamblar una estructura montada sobre un rodamiento tipo reloj.", + "advancement.create.nixie_tube": "Signos de estilo", + "advancement.create.nixie_tube.desc": "Obtener y colocar un par de tubos nixie.", + "advancement.create.deployer": "Picar, colocar y atacar", + "advancement.create.deployer.desc": "Coloca y potencia un desplegador, el reflejo perfecto de ti mismo.", + "advancement.create.speed_controller": "Los ingenieros lo odian!", + "advancement.create.speed_controller.desc": "Coloca un controlador de velocidad rotacional, el dispositivo definitivo para cambiar de marcha.", + "advancement.create.flywheel": "El corazón de la fábrica", + "advancement.create.flywheel.desc": "Conecta con éxito un motor a la rueda de inercia.", + "advancement.create.overstress_flywheel": "Altos niveles de estrés", + "advancement.create.overstress_flywheel.desc": "Sobrecarga un motor de horno.", + "advancement.create.precision_mechanism": "Curiosidades complejas", + "advancement.create.precision_mechanism.desc": "Monta un mecanismo de precisión.", + "advancement.create.mechanical_arm": "¡Manos ocupadas!", + "advancement.create.mechanical_arm.desc": "Crea un brazo mecánico, selecciona las entradas y salidas, colócalo en el suelo y dale energía; luego observa cómo hace todo el trabajo por ti.", + "advancement.create.musical_arm": "¡Tócame la melodía!", + "advancement.create.musical_arm.desc": "Vea cómo un brazo mecánico maneja su Jukebox.", + "advancement.create.arm_many_targets": "Organize-o-Tron", + "advancement.create.arm_many_targets.desc": "Programa un brazo mecánico con diez o más posiciones de salida.", + "advancement.create.arm_blaze_burner": "Combust-o-Tron", + "advancement.create.arm_blaze_burner.desc": "Instruya un brazo mecánico para alimentar su quemador de blaze.", + "advancement.create.fist_bump": "¡Pégale, hermano!", + "advancement.create.fist_bump.desc": "Haz que dos desplegadores se den un puñetazo.", + "advancement.create.crushing_wheel": "Un par de gigantes", + "advancement.create.crushing_wheel.desc": "Crea algunas ruedas de trituración para descomponer más materiales de forma más eficaz.", + "advancement.create.blaze_cake": "Fiebre del azúcar", + "advancement.create.blaze_cake.desc": "Hornea en tu quemador de blaze un pastel especial.", + "advancement.create.chromatic_compound": "Minerales misteriosos", + "advancement.create.chromatic_compound.desc": "Crea una barra de compuesto cromático.", + "advancement.create.shadow_steel": "Retorno del vacío", + "advancement.create.shadow_steel.desc": "Crea acero sombrío, una barra de metal de la nada.", + "advancement.create.refined_radiance": "Brillante e inspirador", + "advancement.create.refined_radiance.desc": "Crea un resplandor refinado, una poderosa sustancia cromática.", + "advancement.create.chromatic_age": "La edad cromática", + "advancement.create.chromatic_age.desc": "Crear bloques de revestimiento de la luz y la oscuridad.", + "advancement.create.wand_of_symmetry": "Espejos radiantes", + "advancement.create.wand_of_symmetry.desc": "Crear un bastón de simetría.", + "advancement.create.extendo_grip": "¡Boioioing!", + "advancement.create.extendo_grip.desc": "Hazte con un agarre extentido.", + "advancement.create.potato_cannon": "Fwoomp!", + "advancement.create.potato_cannon.desc": "Derrota a un enemigo con tu cañón de patatas.", + "advancement.create.dual_extendo_grip": "La última edad del boing", + "advancement.create.dual_extendo_grip.desc": "Doble empuñadura extendida para un alcance sobrehumano.", + "advancement.create.eob": "Fin de la beta", + "advancement.create.eob.desc": "Espere más contenido aquí en el futuro. <3", + + + "_": "->------------------------] UI & Messages [------------------------<-", + + "itemGroup.create.base": "Create", + "itemGroup.create.palettes": "Paletas", + + "death.attack.create.crush": "%1$s se procesó en las ruedas de trituración", + "death.attack.create.crush.player": "%1$s fue arrojado a las ruedas de trituración por %2$s", + "death.attack.create.fan_fire": "%1$s murió quemado por el aire caliente", + "death.attack.create.fan_fire.player": "%1$s fue arrojado a un ahumador por %2$s", + "death.attack.create.fan_lava": "%1$s murió quemado por un abanico de lava", + "death.attack.create.fan_lava.player": "%1$s fue arrojado a una fundición por %2$s", + "death.attack.create.mechanical_drill": "%1$s fue empalado por un taladro mecánico", + "death.attack.create.mechanical_drill.player": "%1$s fue lanzado frente a un taladro por %2$s", + "death.attack.create.mechanical_saw": "%1$s fue cortado por la mitad por una sierra mecánica", + "death.attack.create.mechanical_saw.player": "%1$s fue arrojado a una sierra por %2$s", + "death.attack.create.potato_cannon": "%1$s fue disparado por el cañón de patatas de %2$s's", + "death.attack.create.potato_cannon.item": "%1$s fue disparado por %2$s utilizando %3$s", + "death.attack.create.cuckoo_clock_explosion": "%1$s fue volado por los aires por un reloj de cuco manipulado", + "death.attack.create.cuckoo_clock_explosion.player": "%1$s fue volado por un reloj de cuco manipulado", + + "create.block.deployer.damage_source_name": "Un desplegador rebelde", + "create.block.cart_assembler.invalid": "Coloque su Ensamblador de vagonetas en un bloque de Raíles", + + "create.menu.return": "Regresar al menú", + "create.menu.configure": "Configurar...", + "create.menu.ponder_index": "Índice", + "create.menu.only_ingame": "Disponible en el menú de pausa", + "create.menu.project_page": "Página del proyecto", + "create.menu.report_bugs": "Reportar problemas", + "create.menu.support": "Apóyenos", + + "create.recipe.crushing": "Trituración", + "create.recipe.milling": "Fresado", + "create.recipe.fan_washing": "Lavado a granel", + "create.recipe.fan_washing.fan": "Ventilador detrás del agua fluyente", + "create.recipe.fan_smoking": "Ahumador a granel", + "create.recipe.fan_smoking.fan": "Ventilador detrás del fuego", + "create.recipe.fan_blasting": "Voladuras a granel", + "create.recipe.fan_blasting.fan": "Ventilador detrás de la lava", + "create.recipe.pressing": "Prensando", + "create.recipe.mixing": "Mezclando", + "create.recipe.deploying": "Desplegando", + "create.recipe.automatic_shapeless": "Elaboración automatizada de productos sin forma", + "create.recipe.automatic_brewing": "Elaboración de cerveza automatizada", + "create.recipe.packing": "Compactando", + "create.recipe.automatic_packing": "Embalaje automatizado", + "create.recipe.sawing": "Aserrando", + "create.recipe.mechanical_crafting": "Elaboración mecánica", + "create.recipe.automatic_shaped": "Elaboración automatizada de productos con forma", + "create.recipe.block_cutting": "Corte de bloques", + "create.recipe.wood_cutting": "Corte de maderas", + "create.recipe.sandpaper_polishing": "Pulido con papel de lija", + "create.recipe.mystery_conversion": "Conversión misteriosa", + "create.recipe.spout_filling": "Llenar por el pico", + "create.recipe.draining": "Drenador de objetos", + "create.recipe.sequenced_assembly": "Montaje secuenciado", + "create.recipe.assembly.next": "Siguiente: %1$s", + "create.recipe.assembly.step": "Fase %1$s:", + "create.recipe.assembly.progress": "Progreso: %1$s/%2$s", + "create.recipe.assembly.pressing": "Proceso en prensa", + "create.recipe.assembly.spout_filling_fluid": "Pico %1$s", + "create.recipe.assembly.deploying_item": "Despliegue %1$s", + "create.recipe.assembly.cutting": "Corte con sierra", + "create.recipe.assembly.repeat": "Repetir la secuencia %1$s veces", + "create.recipe.assembly.junk": "Basura aleatoria", + "create.recipe.processing.chance": "%1$s%% Chance", + "create.recipe.heat_requirement.none": "No es necesario calentar", + "create.recipe.heat_requirement.heated": "Calentado", + "create.recipe.heat_requirement.superheated": "Súper-Calentado", + + "create.generic.range": "Rango", + "create.generic.radius": "Radio", + "create.generic.width": "Ancho", + "create.generic.height": "Alto", + "create.generic.length": "Largo", + "create.generic.speed": "Velocidad", + "create.generic.delay": "Retraso", + "create.generic.unit.ticks": "Ticks", + "create.generic.unit.seconds": "Segundos", + "create.generic.unit.minutes": "Minutos", + "create.generic.unit.rpm": "RPM", + "create.generic.unit.stress": "SU(unidades de estrés)", + "create.generic.unit.degrees": "°", + "create.generic.unit.millibuckets": "%1$smB", + "create.generic.clockwise": "En el sentido de las agujas del reloj", + "create.generic.counter_clockwise": "En sentido contrario a las agujas del reloj", + + "create.action.scroll": "Desplazar", + "create.action.confirm": "Confirmar", + "create.action.abort": "Abortar", + "create.action.saveToFile": "Guardar", + "create.action.discard": "Descartar", + + "create.keyinfo.toolmenu": "Menú de la Herramienta de Enfoque", + "create.keyinfo.scrollup": "Simular usar la rueda del ratón hacia arriba (en el mundo)", + "create.keyinfo.scrolldown": "Simular usar la rueda del ratón hacia abajo (en el mundo)", + + "create.gui.scrollInput.defaultTitle": "Seleccione una opción:", + "create.gui.scrollInput.scrollToModify": "Usa la rueda del ratón para modificar", + "create.gui.scrollInput.scrollToAdjustAmount": "Usa la rueda del ratón para ajustar la cantidad", + "create.gui.scrollInput.scrollToSelect": "Usa la rueda del ratón para seleccionar", + "create.gui.scrollInput.shiftScrollsFaster": "Mayús izdo para usar la rueda del ratón más rápido", + "create.gui.toolmenu.focusKey": "Mantén [%1$s] para enfocar", + "create.gui.toolmenu.cycle": "[RUEDA DEL RATÓN] para el ciclo", + "create.gui.symmetryWand.mirrorType": "Espejado", + "create.gui.symmetryWand.orientation": "Orientación", + + "create.symmetry.mirror.plane": "Plano de espejo", + "create.symmetry.mirror.doublePlane": "Rectangular", + "create.symmetry.mirror.triplePlane": "Octogonal", + + "create.orientation.orthogonal": "Ortogonal", + "create.orientation.diagonal": "Diagonal", + "create.orientation.horizontal": "Horizontal", + "create.orientation.alongZ": "A lo largo de Z", + "create.orientation.alongX": "A lo largo de X", + + "create.gui.terrainzapper.title": "Blockzapper", + "create.gui.terrainzapper.searchDiagonal": "Seguir diagonales", + "create.gui.terrainzapper.searchFuzzy": "Ignorar los bordes del material", + "create.gui.terrainzapper.patternSection": "Patrón", + "create.gui.terrainzapper.pattern.solid": "Sólido", + "create.gui.terrainzapper.pattern.checkered": "Tablero de ajedrez", + "create.gui.terrainzapper.pattern.inversecheckered": "Tablero de ajedrez invertido", + "create.gui.terrainzapper.pattern.chance25": "25% Roll", + "create.gui.terrainzapper.pattern.chance50": "50% Roll", + "create.gui.terrainzapper.pattern.chance75": "75% Roll", + "create.gui.terrainzapper.placement": "Ubicación", + "create.gui.terrainzapper.placement.merged": "Fusionado", + "create.gui.terrainzapper.placement.attached": "Adjuntado", + "create.gui.terrainzapper.placement.inserted": "Insertado", + "create.gui.terrainzapper.brush": "Pincel", + "create.gui.terrainzapper.brush.cuboid": "Cuboide", + "create.gui.terrainzapper.brush.sphere": "Esfera", + "create.gui.terrainzapper.brush.cylinder": "Cilindro", + "create.gui.terrainzapper.brush.surface": "Superficie", + "create.gui.terrainzapper.brush.cluster": "Grupo", + "create.gui.terrainzapper.tool": "Herramienta", + "create.gui.terrainzapper.tool.fill": "Llenar", + "create.gui.terrainzapper.tool.place": "Ubicar", + "create.gui.terrainzapper.tool.replace": "Reemplazar", + "create.gui.terrainzapper.tool.clear": "Eliminar", + "create.gui.terrainzapper.tool.overlay": "Superponer", + "create.gui.terrainzapper.tool.flatten": "Aplanar", + + "create.terrainzapper.shiftRightClickToSet": "Mayús izdo + clic derecho para seleccionar una forma", + "create.terrainzapper.usingBlock": "Usando: %1$s", + "create.terrainzapper.leftClickToSet": "Clic izquierdo a un bloque para establecer el material", + + "create.minecart_coupling.two_couplings_max": "Las vagonetas no pueden tener más de dos enganches cada una", + "create.minecart_coupling.unloaded": "Algunas partes de su tren parecen estar en chunks no cargados", + "create.minecart_coupling.no_loops": "Los acoplamientos no pueden formar un bucle", + "create.minecart_coupling.removed": "Se han retirado todos los acoplamientos de la vagoneta", + "create.minecart_coupling.too_far": "Las vagonetas están demasiado separadas", + + "create.contraptions.movement_mode": "Modo de movimiento", + "create.contraptions.movement_mode.move_place": "Colocar siempre al detenerse", + "create.contraptions.movement_mode.move_place_returned": "Colocar sólo en la posición inicial", + "create.contraptions.movement_mode.move_never_place": "Colocar sólo cuando se destruye el ancla", + "create.contraptions.movement_mode.rotate_place": "Colocar siempre al detenerse", + "create.contraptions.movement_mode.rotate_place_returned": "Colocar sólo cerca del ángulo inicial", + "create.contraptions.movement_mode.rotate_never_place": "Colocar sólo cuando se destruye el ancla", + "create.contraptions.cart_movement_mode": "Modo de movimiento de la vagoneta", + "create.contraptions.cart_movement_mode.rotate": "Siempre de cara al movimiento", + "create.contraptions.cart_movement_mode.rotate_paused": "Pausar a los actores mientras giran", + "create.contraptions.cart_movement_mode.rotation_locked": "Bloquear rotación", + "create.contraptions.windmill.rotation_direction": "Dirección de rotación", + "create.contraptions.clockwork.clock_hands": "Manecillas de reloj", + "create.contraptions.clockwork.hour_first": "La manecilla de las horas primero", + "create.contraptions.clockwork.minute_first": "La manecilla de los minutos primero", + "create.contraptions.clockwork.hour_first_24": "La manecilla del día primero", + + "create.logistics.filter": "Filtro", + "create.logistics.recipe_filter": "Filtro para recetas", + "create.logistics.fluid_filter": "Filtro para fluidos", + "create.logistics.firstFrequency": "Freq. #1", + "create.logistics.secondFrequency": "Freq. #2", + "create.logistics.filter.apply": "Filtro aplicado a %1$s.", + "create.logistics.filter.apply_click_again": "Filtro aplicado a %1$s, haga clic de nuevo para copiar la cantidad.", + "create.logistics.filter.apply_count": "Aplicado recuento de extracciones al filtro.", + + "create.gui.goggles.generator_stats": "Estadísticas del generador:", + "create.gui.goggles.kinetic_stats": "Estadísticas cinéticas:", + "create.gui.goggles.at_current_speed": "con la velocidad actual", + "create.gui.goggles.pole_length": "Longitud del poste:", + "create.gui.goggles.fluid_container": "Información sobre el contenedor de fluidos:", + "create.gui.goggles.fluid_container.capacity": "Capacidad: ", + "create.gui.assembly.exception": "Este artilugio no se pudo montar:", + "create.gui.assembly.exception.unmovableBlock": "Bloque inamovible (%4$s) en [%1$s,%2$s,%3$s]", + "create.gui.assembly.exception.chunkNotLoaded": "El bloque en [%1$s,%2$s,%3$s] no estaba en un chunk cargado", + "create.gui.assembly.exception.structureTooLarge": "Hay demasiados bloques incluídos en el artilugio.\nEl máximo configurado es: %1$s", + "create.gui.assembly.exception.tooManyPistonPoles": "Hay demasiadas Pértigas de extensión conectadas a este Pistón.\nEl máximo configurado es: %1$s", + "create.gui.assembly.exception.noPistonPoles": "Faltan pértigas de extensión para el pistón", + "create.gui.assembly.exception.not_enough_sails": "La estructura adjunta no incluye suficientes bloques tipo vela: %1$s\nSe requiere un mínimo de %2$s", + "create.gui.gauge.info_header": "Información sobre el medidor:", + "create.gui.speedometer.title": "Velocidad de rotación", + "create.gui.stressometer.title": "Estrés de la red", + "create.gui.stressometer.capacity": "Capacidad restante", + "create.gui.stressometer.overstressed": "Sobrecargado", + "create.gui.stressometer.no_rotation": "Sin rotación", + "create.gui.contraptions.not_fast_enough": "Parece que este %1$s no está girando con _suficiente_ velocidad_.", + "create.gui.contraptions.network_overstressed": "Parece que este artilugio está _sobrecargado_. Añade más fuentes o _desacelera_ los componentes con un _impacto de estrés alto_.", + "create.gui.adjustable_crate.title": "Caja ajustable", + "create.gui.adjustable_crate.storageSpace": "Espacio de almacenamiento", + "create.gui.stockpile_switch.title": "Interruptor de acopio", + "create.gui.stockpile_switch.invert_signal": "Invertir señal", + "create.gui.stockpile_switch.move_to_lower_at": "Pasar al carril inferior en %1$s%%", + "create.gui.stockpile_switch.move_to_upper_at": "Pasar al carril superior en %1$s%%", + "create.gui.sequenced_gearshift.title": "Cambio de marchas secuenciado", + "create.gui.sequenced_gearshift.instruction": "Instrucción", + "create.gui.sequenced_gearshift.instruction.turn_angle.descriptive": "Giro por ángulo", + "create.gui.sequenced_gearshift.instruction.turn_angle": "Giro", + "create.gui.sequenced_gearshift.instruction.turn_angle.angle": "Ángulo", + "create.gui.sequenced_gearshift.instruction.turn_distance.descriptive": "Giro para mover el pistón/polea/grúa", + "create.gui.sequenced_gearshift.instruction.turn_distance": "Pistón", + "create.gui.sequenced_gearshift.instruction.turn_distance.distance": "Distancia", + "create.gui.sequenced_gearshift.instruction.delay.descriptive": "Tiempo de retraso", + "create.gui.sequenced_gearshift.instruction.delay": "Retraso", + "create.gui.sequenced_gearshift.instruction.delay.duration": "Duración", + "create.gui.sequenced_gearshift.instruction.end.descriptive": "Fin", + "create.gui.sequenced_gearshift.instruction.end": "Fin", + "create.gui.sequenced_gearshift.instruction.await.descriptive": "En espera de un pulso de redstone", + "create.gui.sequenced_gearshift.instruction.await": "En espera", + "create.gui.sequenced_gearshift.speed": "Velocidad, Dirección", + "create.gui.sequenced_gearshift.speed.forward": "Velocidad de entrada, hacia adelante", + "create.gui.sequenced_gearshift.speed.forward_fast": "Doble velocidad, hacia adelante", + "create.gui.sequenced_gearshift.speed.back": "Velocidad de entrada, Invertida", + "create.gui.sequenced_gearshift.speed.back_fast": "Doble velocidad, Invertida", + + "create.schematicAndQuill.dimensions": "Tamaño del esquema: %1$sx%2$sx%3$s", + "create.schematicAndQuill.firstPos": "Primera posición fijada.", + "create.schematicAndQuill.secondPos": "Segunda posición fijada.", + "create.schematicAndQuill.noTarget": "Mantén [Ctrl] para seleccionar los bloques del aire.", + "create.schematicAndQuill.abort": "Selección eliminada.", + "create.schematicAndQuill.title": "Nombre del esquema:", + "create.schematicAndQuill.convert": "Guardar y desplegar inmediatamente", + "create.schematicAndQuill.fallbackName": "Mi esquema", + "create.schematicAndQuill.saved": "Guardado como %1$s", + + "create.schematic.invalid": "[!] Elemento no válido - Utilice la tabla de esquemas en su lugar", + "create.schematic.position": "Posición", + "create.schematic.rotation": "Rotación", + "create.schematic.rotation.none": "Ninguno", + "create.schematic.rotation.cw90": "En el sentido de las agujas del reloj 90", + "create.schematic.rotation.cw180": "En el sentido de las agujas del reloj 180", + "create.schematic.rotation.cw270": "En el sentido de las agujas del reloj 270", + "create.schematic.mirror": "Espejado", + "create.schematic.mirror.none": "Ninguno", + "create.schematic.mirror.frontBack": "Delante-Detrás", + "create.schematic.mirror.leftRight": "Izquierda-Derecha", + "create.schematic.tool.deploy": "Despliegue", + "create.schematic.tool.move": "Mover XZ", + "create.schematic.tool.movey": "Mover Y", + "create.schematic.tool.rotate": "Rotar", + "create.schematic.tool.print": "Imprimir", + "create.schematic.tool.flip": "Voltear", + "create.schematic.tool.deploy.description.0": "Mueve la estructura a un lugar.", + "create.schematic.tool.deploy.description.1": "Haz clic con el botón derecho del ratón en el suelo para colocarla.", + "create.schematic.tool.deploy.description.2": "Mantén [Ctrl] para seleccionar a una distancia fija.", + "create.schematic.tool.deploy.description.3": "[Ctrl] + [RUEDA DEL RATÓN] para cambiar la distancia.", + "create.schematic.tool.move.description.0": "Desplaza el esquema horizontalmente.", + "create.schematic.tool.move.description.1": "Apunta al esquema y [Ctrl] + [RUEDA DEL RATÓN] para ponerlo.", + "create.schematic.tool.move.description.2": "", + "create.schematic.tool.move.description.3": "", + "create.schematic.tool.movey.description.0": "Desplaza el esquema verticalmente..", + "create.schematic.tool.movey.description.1": "[Ctrl] + [RUEDA DEL RATÓN] para moverlo hacia arriba/abajo.", + "create.schematic.tool.movey.description.2": "", + "create.schematic.tool.movey.description.3": "", + "create.schematic.tool.rotate.description.0": "Gira el esquema alrededor de su centro.", + "create.schematic.tool.rotate.description.1": "[Ctrl] + [RUEDA DEL RATÓN] para girar 90 grados.", + "create.schematic.tool.rotate.description.2": "", + "create.schematic.tool.rotate.description.3": "", + "create.schematic.tool.print.description.0": "Sitúa instantáneamente la estructura en el mundo.", + "create.schematic.tool.print.description.1": "[Clic derecho] para confirmar la colocación en el lugar actual.", + "create.schematic.tool.print.description.2": "Esta herramienta es sólo para el Modo Creativo.", + "create.schematic.tool.print.description.3": "", + "create.schematic.tool.flip.description.0": "Voltea el esquema a lo largo de la cara que seleccione.", + "create.schematic.tool.flip.description.1": "Apunta al esquema y [Ctrl] + [RUEDA DEL RATÓN] para voltearlo.", + "create.schematic.tool.flip.description.2": "", + "create.schematic.tool.flip.description.3": "", + + "create.schematics.synchronizing": "Sincronizando...", + "create.schematics.uploadTooLarge": "Tu esquema excede las limitaciones especificadas por el servidor.", + "create.schematics.maxAllowedSize": "El tamaño máximo permitido del archivo del esquema es:", + + "create.gui.schematicTable.refresh": "Refrescar archivos", + "create.gui.schematicTable.open_folder": "Abrir carpeta", + "create.gui.schematicTable.title": "Tabla de esquemas", + "create.gui.schematicTable.availableSchematics": "Esquemas disponibles", + "create.gui.schematicTable.noSchematics": "No hay esquemas guardados", + "create.gui.schematicTable.uploading": "Subiendo...", + "create.gui.schematicTable.finished": "¡Subida finalizada!", + "create.gui.schematicannon.title": "Cañón de esquemas", + "create.gui.schematicannon.listPrinter": "Lista de control de la impresora", + "create.gui.schematicannon.gunpowderLevel": "Pólvora %1$s%%", + "create.gui.schematicannon.shotsRemaining": "Disparos restantes: %1$s", + "create.gui.schematicannon.shotsRemainingWithBackup": "Con respaldo: %1$s", + "create.gui.schematicannon.optionEnabled": "Actualmente habilitado", + "create.gui.schematicannon.optionDisabled": "Actualmente deshabilitado", + "create.gui.schematicannon.showOptions": "Mostrar la configuración de la impresora", + "create.gui.schematicannon.option.dontReplaceSolid": "No sustituír los bloques sólidos", + "create.gui.schematicannon.option.replaceWithSolid": "Sustituir sólido por sólido", + "create.gui.schematicannon.option.replaceWithAny": "Sustituir sólido por cualquiera", + "create.gui.schematicannon.option.replaceWithEmpty": "Sustituir sólido por vacío", + "create.gui.schematicannon.option.skipMissing": "Omitir los bloques que faltan", + "create.gui.schematicannon.option.skipTileEntities": "Proteger a las entidades", + "create.gui.schematicannon.slot.gunpowder": "Añade pólvora para alimentar el cañón", + "create.gui.schematicannon.slot.listPrinter": "Coloque los libros aquí para imprimir una lista de comprobación para su esquema", + "create.gui.schematicannon.slot.schematic": "Añada su esquema aquí. Asegúrese de que se despliega en un lugar específico.", + "create.gui.schematicannon.option.skipMissing.description": "Si el cañón no encuentra un bloque necesario para su colocación, continuará en la siguiente ubicación.", + "create.gui.schematicannon.option.skipTileEntities.description": "El cañón evitará reemplazar los bloques que contienen datos, como los cofres.", + "create.gui.schematicannon.option.dontReplaceSolid.description": "El cañón nunca sustituirá ningún bloque sólido en su zona de trabajo, sólo los no sólidos y el aire.", + "create.gui.schematicannon.option.replaceWithSolid.description": "El cañón sólo reemplazará los bloques sólidos en su área de trabajo si el esquema contiene un bloque sólido en la ubicación.", + "create.gui.schematicannon.option.replaceWithAny.description": "El cañón reemplazará los bloques sólidos en su área de trabajo si el esquema contiene algún bloque en la ubicación.", + "create.gui.schematicannon.option.replaceWithEmpty.description": "El cañón eliminará todos los bloques de su zona de trabajo, incluidos los sustituidos por aire.", + + "create.schematicannon.status.idle": "Inactivo", + "create.schematicannon.status.ready": "Listo", + "create.schematicannon.status.running": "Funcionando", + "create.schematicannon.status.finished": "Finalizado", + "create.schematicannon.status.paused": "Pausado", + "create.schematicannon.status.stopped": "Detenido", + "create.schematicannon.status.noGunpowder": "Sin pólvora", + "create.schematicannon.status.targetNotLoaded": "El objetivo no está cargado", + "create.schematicannon.status.targetOutsideRange": "Objetivo demasiado lejano", + "create.schematicannon.status.searching": "Buscando", + "create.schematicannon.status.skipping": "Omitiendo", + "create.schematicannon.status.missingBlock": "Elementos perdidos:", + "create.schematicannon.status.placing": "Colocando", + "create.schematicannon.status.clearing": "Limpiando bloques", + "create.schematicannon.status.schematicInvalid": "Esquema inválido", + "create.schematicannon.status.schematicNotPlaced": "Esquema no desplegado", + "create.schematicannon.status.schematicExpired": "Archivo de esquemas caducado", + + "create.materialChecklist": "Lista de control del material", + "create.materialChecklist.blocksNotLoaded": "* Descargo de Responsabilidad *\n\nLa lista de materiales puede ser inexacta debido a que no se han cargado los chunks pertinentes.", + + "create.gui.filter.deny_list": "Lista de denegados", + "create.gui.filter.deny_list.description": "Los objetos pasan si NO coinciden con ninguno de los anteriores. Una lista de denegación vacía acepta todo.", + "create.gui.filter.allow_list": "Lista de permitidos", + "create.gui.filter.allow_list.description": "Los objetos pasan si coinciden con alguno de los anteriores. Una lista de permitidos vacía rechaza todo.", + "create.gui.filter.respect_data": "Respetar datos", + "create.gui.filter.respect_data.description": "Los objetos sólo coinciden si su durabilidad, encantos y otros atributos también coinciden.", + "create.gui.filter.ignore_data": "Ignorar datos", + "create.gui.filter.ignore_data.description": "Los artículos coinciden independientemente de sus atributos.", + + "create.item_attributes.placeable": "se puede colocar", + "create.item_attributes.placeable.inverted": "no se puede colocar", + "create.item_attributes.consumable": "se puede comer", + "create.item_attributes.consumable.inverted": "no se puede comer", + "create.item_attributes.smeltable": "se puede fundir", + "create.item_attributes.smeltable.inverted": "no se puede fundir", + "create.item_attributes.washable": "se puede lavar", + "create.item_attributes.washable.inverted": "no se puede lavar", + "create.item_attributes.smokable": "puede ser ahumado", + "create.item_attributes.smokable.inverted": "no puede ser ahumado", + "create.item_attributes.crushable": "puede ser molido", + "create.item_attributes.crushable.inverted": "no puede ser molido", + "create.item_attributes.blastable": "es fundible en el alto horno", + "create.item_attributes.blastable.inverted": "no es fundible en el alto horno", + "create.item_attributes.enchanted": "está encantado", + "create.item_attributes.enchanted.inverted": "no está encantado", + "create.item_attributes.damaged": "está dañado", + "create.item_attributes.damaged.inverted": "no está dañado", + "create.item_attributes.badly_damaged": "está muy dañado", + "create.item_attributes.badly_damaged.inverted": "no está muy dañado", + "create.item_attributes.not_stackable": "no se puede apilar", + "create.item_attributes.not_stackable.inverted": "se puede apilar", + "create.item_attributes.equipable": "se puede equipar", + "create.item_attributes.equipable.inverted": "no se puede equipar", + "create.item_attributes.furnace_fuel": "es combustible para hornos", + "create.item_attributes.furnace_fuel.inverted": "no es combustible para hornos", + "create.item_attributes.in_tag": "está etiquetado %1$s", + "create.item_attributes.in_tag.inverted": "no está etiquetado %1$s", + "create.item_attributes.in_item_group": "está en el grupo '%1$s'", + "create.item_attributes.in_item_group.inverted": "no está en el grupo '%1$s'", + "create.item_attributes.added_by": "fue añadido por %1$s", + "create.item_attributes.added_by.inverted": "no fue añadida por %1$s", + "create.item_attributes.shulker_level": "es shulker %1$s", + "create.item_attributes.shulker_level.inverted": "no es shulker %1$s", + "create.item_attributes.shulker_level.full": "lleno", + "create.item_attributes.shulker_level.empty": "vacío", + "create.item_attributes.shulker_level.partial": "parcialmente lleno", + "create.item_attributes.has_enchant": "está encantado con %1$s", + "create.item_attributes.has_enchant.inverted": "no está encantado con %1$s", + "create.item_attributes.color": "Está teñido %1$s", + "create.item_attributes.color.inverted": "No está teñido %1$s", + "create.item_attributes.max_enchanted": "está encantado en el nivel máximo", + "create.item_attributes.max_enchanted.inverted": "no está encantado en el nivel máximo", + "create.item_attributes.has_fluid": "contiene %1$s", + "create.item_attributes.has_fluid.inverted": "no contiene %1$s", + "create.item_attributes.has_name": "tiene el nombre personalizado %1$s", + "create.item_attributes.has_name.inverted": "no tiene el nombre personalizado %1$s", + "create.item_attributes.book_author": "es obra de %1$s", + "create.item_attributes.book_author.inverted": "no es es obra de %1$s", + "create.item_attributes.book_copy_original": "es un original", + "create.item_attributes.book_copy_original.inverted": "no es un original", + "create.item_attributes.book_copy_first": "es una copia de primera generación", + "create.item_attributes.book_copy_first.inverted": "no es una copia de primera generación", + "create.item_attributes.book_copy_second": "es una copia de segunda generación", + "create.item_attributes.book_copy_second.inverted": "no es una copia de segunda generación", + "create.item_attributes.book_copy_tattered": "es un desordenado desastre", + "create.item_attributes.book_copy_tattered.inverted": "no es un desordenado desastre", + "create.item_attributes.astralsorcery_crystal": "tiene el atributo de cristal %1$s", + "create.item_attributes.astralsorcery_crystal.inverted": "no tiene atributo de cristal %1$s", + "create.item_attributes.astralsorcery_constellation": "está en sintonía con %1$s", + "create.item_attributes.astralsorcery_constellation.inverted": "no está en sintonía con %1$s", + "create.item_attributes.astralsorcery_perk_gem": "tiene el atributo ventaja %1$s", + "create.item_attributes.astralsorcery_perk_gem.inverted": "no tiene el atributo ventaja %1$s", + "create.item_attributes.astralsorcery_amulet": "mejora %1$s", + "create.item_attributes.astralsorcery_amulet.inverted": "no mejora %1$s", + + "create.gui.attribute_filter.no_selected_attributes": "No hay atributos seleccionados", + "create.gui.attribute_filter.selected_attributes": "Atributos seleccionados:", + "create.gui.attribute_filter.add_attribute": "Añadir atributo a la lista", + "create.gui.attribute_filter.add_inverted_attribute": "Añadir atributo invertido a la Lista", + "create.gui.attribute_filter.allow_list_disjunctive": "Lista de permitidos (Cualquiera)", + "create.gui.attribute_filter.allow_list_disjunctive.description": "Los objetos pasan si tienen alguno de los atributos seleccionados", + "create.gui.attribute_filter.allow_list_conjunctive": "Lista de permitidos (Todos)", + "create.gui.attribute_filter.allow_list_conjunctive.description": "Los objetos pasan sólo si tienen TODOS los atributos seleccionados", + "create.gui.attribute_filter.deny_list": "Lista de denegados", + "create.gui.attribute_filter.deny_list.description": "Los objetos pasan si NO tienen ninguno de los atributos seleccionados", + "create.gui.attribute_filter.add_reference_item": "Añadir elemento de referencia", + + "create.tooltip.holdForDescription": "Mantén [%1$s] para mas información", + "create.tooltip.holdForControls": "Mantén [%1$s] para ver los controles", + "create.tooltip.keyShift": "Mayús izdo.", + "create.tooltip.keyCtrl": "Ctrl", + "create.tooltip.speedRequirement": "Requisitos de velocidad: %1$s", + "create.tooltip.speedRequirement.none": "Ninguno", + "create.tooltip.speedRequirement.medium": "Moderado", + "create.tooltip.speedRequirement.high": "Rápido", + "create.tooltip.stressImpact": "Impacto de estrés: %1$s", + "create.tooltip.stressImpact.low": "Bajo", + "create.tooltip.stressImpact.medium": "Moderado", + "create.tooltip.stressImpact.high": "Alto", + "create.tooltip.stressImpact.overstressed": "Sobrecargado", + "create.tooltip.capacityProvided": "Capacidad de estrés: %1$s", + "create.tooltip.capacityProvided.low": "Pequeña", + "create.tooltip.capacityProvided.medium": "Media", + "create.tooltip.capacityProvided.high": "Grande", + "create.tooltip.generationSpeed": "Generada en %1$s %2$s", + "create.tooltip.analogStrength": "Fuerza analógica: %1$s/15", + + "create.mechanical_arm.extract_from": "Extraer objetos de %1$s", + "create.mechanical_arm.deposit_to": "Depositar objetos en %1$s", + "create.mechanical_arm.summary": "El brazo mecánico tiene %1$s entrada(s) y %2$s salida(s)", + "create.mechanical_arm.points_outside_range": "%1$s punto(s) de interacción seleccionado(s) eliminado(s) debido a las limitaciones de rango", + + "create.weighted_ejector.target_set": "Objetivo seleccionado", + "create.weighted_ejector.target_not_valid": "Expulsión al bloque adyacente (el objetivo no era válido)", + "create.weighted_ejector.no_target": "Expulsión al bloque adyacente (no se ha seleccionado ningún objetivo)", + "create.weighted_ejector.targeting": "Expulsión a [%1$s,%2$s,%3$s]", + "create.weighted_ejector.stack_size": "Tamaño de la pila expulsada", + + "create.logistics.when_multiple_outputs_available": "Cuando hay múltiples salidas disponibles", + + "create.mechanical_arm.selection_mode.round_robin": "Round Robin", + "create.mechanical_arm.selection_mode.forced_round_robin": "Round Robin forzado", + "create.mechanical_arm.selection_mode.prefer_first": "Preferir el primero", + + "create.tunnel.selection_mode.split": "División", + "create.tunnel.selection_mode.forced_split": "División forzada", + "create.tunnel.selection_mode.round_robin": "Round Robin", + "create.tunnel.selection_mode.forced_round_robin": "Round Robin forzado", + "create.tunnel.selection_mode.prefer_nearest": "Preferir el más cercano", + "create.tunnel.selection_mode.randomize": "Aleatorizar", + "create.tunnel.selection_mode.synchronize": "Sincronizar entradas", + + "create.tooltip.chute.header": "Información del ducto", + "create.tooltip.chute.items_move_down": "Los objetos se mueven hacia abajo", + "create.tooltip.chute.items_move_up": "Los objetos se mueven hacia arriba", + "create.tooltip.chute.no_fans_attached": "No hay ventiladores adjuntos", + "create.tooltip.chute.fans_push_up": "Los ventiladores empujan desde abajo", + "create.tooltip.chute.fans_push_down": "Los ventiladores empujan desde arriba", + "create.tooltip.chute.fans_pull_up": "Los ventiladores tiran desde arriba", + "create.tooltip.chute.fans_pull_down": "Los ventiladores tiran desde abajo", + "create.tooltip.chute.contains": "Contiene: %1$s x%2$s", + "create.tooltip.brass_tunnel.contains": "Actualmente distribuye:", + "create.tooltip.brass_tunnel.contains_entry": "> %1$s x%2$s", + "create.tooltip.brass_tunnel.retrieve": "Haga clic derecho para recuperar", + + "create.linked_controller.bind_mode": "Modo de enlace activo", + "create.linked_controller.press_keybind": "Presiona %1$s, %2$s, %3$s, %4$s, %5$s o %6$s, para vincular esta frecuencia a la tecla correspondiente", + "create.linked_controller.key_bound": "Frecuencia ligada a %1$s", + "create.linked_controller.frequency_slot_1": "Enlace de teclas: %1$s, Freq. #1", + "create.linked_controller.frequency_slot_2": "Enlace de teclas: %1$s, Freq. #2", + + "create.crafting_blueprint.crafting_slot": "Ranura para ingredientes", + "create.crafting_blueprint.filter_items_viable": "Los objetos del filtro avanzado son viables", + "create.crafting_blueprint.display_slot": "Ranura de pantalla", + "create.crafting_blueprint.inferred": "A partir de la receta", + "create.crafting_blueprint.manually_assigned": "Asignado manualmente", + "create.crafting_blueprint.secondary_display_slot": "Ranura de pantalla secundaria", + "create.crafting_blueprint.optional": "Opcional", + + "create.potato_cannon.ammo.attack_damage": "%1$s Daño de ataque", + "create.potato_cannon.ammo.reload_ticks": "%1$s Recarga por Ticks", + "create.potato_cannon.ammo.knockback": "%1$s Golpe de efecto", + + "create.hint.hose_pulley.title": "Suministro ilimitado", + "create.hint.hose_pulley": "La masa de fluido objetivo se considera infinita.", + "create.hint.mechanical_arm_no_targets.title": "Sin objetivos", + "create.hint.mechanical_arm_no_targets": "Parece que a este _brazo mecánico_ no se le ha asignado ningún objetivo. Selecciona _correas_, _depósitos_, _embudos_ y otros bloques haciendo clic derecho sobre ellos mientras _sostienes_ el _brazo mecánico_ en tu mano..", + "create.hint.empty_bearing.title": "Actualización del rodamiento", + "create.hint.empty_bearing": "Haz clic derecho sobre el rodamiento con la _mano vacía_ para _adjuntar_ la estructura que acabas de construir delante de él.", + "create.hint.full_deployer.title": "Exceso de objetos en el desplegador", + "create.hint.full_deployer": "Parece que este _desplegador_ contiene _exceso_ de objetos que necesitan ser _extraídos._ Usa una _tolva_, _embudo_ u otro medio para liberarlo de su excedente.", + + "create.gui.config.overlay1": "Hola :)", + "create.gui.config.overlay2": "Esta es una muestra de la superposición", + "create.gui.config.overlay3": "Haga clic o arrastre con el ratón", + "create.gui.config.overlay4": "para mover esta vista previa", + "create.gui.config.overlay5": "Pulsar ESC para salir de esta pantalla", + "create.gui.config.overlay6": "y guardar la nueva posición", + "create.gui.config.overlay7": "Ejecute /create overlay reset", + "create.gui.config.overlay8": "para restablecer la posición por defecto", + + "create.command.killTPSCommand": "killtps", + "create.command.killTPSCommand.status.slowed_by.0": "[Crear]: El tick del servidor está actualmente ralentizado en %s ms :o", + "create.command.killTPSCommand.status.slowed_by.1": "[Crear]: El tick del servidor está ralentizado en %s ms ahora >:)", + "create.command.killTPSCommand.status.slowed_by.2": "[Create]: El tick del servidor ha vuelto a su velocidad normal :D", + "create.command.killTPSCommand.status.usage.0": "[Create]: usa /killtps stop para que el servidor vuelva a la velocidad normal", + "create.command.killTPSCommand.status.usage.1": "[Create]: usa /killtps start para ralentizar artificialmente el tick del servidor", + "create.command.killTPSCommand.argument.tickTime": "tickTime", + + "create.contraption.minecart_contraption_too_big": "Este artilugio de vagoneta parece demasiado grande para recogerlo", + "create.contraption.minecart_contraption_illegal_pickup": "Una fuerza mística está atando este artilugio de vagoneta al mundo", + + + "_": "->------------------------] Subtitles [------------------------<-", + + "create.subtitle.contraption_disassemble": "", + "create.subtitle.peculiar_bell_use": "", + "create.subtitle.mixing": "", + "create.subtitle.mechanical_press_activation_belt": "", + "create.subtitle.fwoomp": "", + "create.subtitle.worldshaper_place": "", + "create.subtitle.crushing_1": "", + "create.subtitle.depot_slide": "", + "create.subtitle.saw_activate_stone": "", + "create.subtitle.blaze_munch": "", + "create.subtitle.funnel_flap": "", + "create.subtitle.schematicannon_finish": "", + "create.subtitle.haunted_bell_use": "", + "create.subtitle.scroll_value": "", + "create.subtitle.crafter_craft": "", + "create.subtitle.controller_put": "", + "create.subtitle.cranking": "", + "create.subtitle.wrench_remove": "", + "create.subtitle.cogs": "", + "create.subtitle.slime_added": "", + "create.subtitle.wrench_rotate": "", + "create.subtitle.potato_hit": "", + "create.subtitle.saw_activate_wood": "", + "create.subtitle.haunted_bell_convert": "", + "create.subtitle.deployer_polish": "", + "create.subtitle.deny": "", + "create.subtitle.controller_click": "", + "create.subtitle.schematicannon_launch_block": "", + "create.subtitle.copper_armor_equip": "", + "create.subtitle.controller_take": "Lectern empties", + "create.subtitle.mechanical_press_activation": "", + "create.subtitle.contraption_assemble": "", + "create.subtitle.crafter_click": "", + "create.subtitle.depot_plop": "", + "create.subtitle.confirm": "", "_": "->------------------------] Item Descriptions [------------------------<-", - "item.create.example_item.tooltip": "EXAMPLE ITEM (just a marker that this tooltip exists)", - "item.create.example_item.tooltip.summary": "A brief description of the item. _Underscores_ highlight a term.", - "item.create.example_item.tooltip.condition1": "When this", - "item.create.example_item.tooltip.behaviour1": "Then this item does this. (behaviours show on shift)", - "item.create.example_item.tooltip.condition2": "And When this", - "item.create.example_item.tooltip.behaviour2": "You can add as many behaviours as you like", - "item.create.example_item.tooltip.control1": "When Ctrl pressed", - "item.create.example_item.tooltip.action1": "These controls are displayed.", + "item.create.example_item.tooltip": "EJEMPLO DE ITEM (sólo un marcador de que este tooltip existe)", + "item.create.example_item.tooltip.summary": "Una breve descripción del elemento. Los puntajes bajos resaltan un término", + "item.create.example_item.tooltip.condition1": "Cuando este", + "item.create.example_item.tooltip.behaviour1": "Entonces este elemento hace esto. (los comportamientos se muestran en el turno)", + "item.create.example_item.tooltip.condition2": "Y cuando esto", + "item.create.example_item.tooltip.behaviour2": "Puedes añadir tantos comportamientos como quieras", + "item.create.example_item.tooltip.control1": "Cuando se pulsa [Ctrl]", + "item.create.example_item.tooltip.action1": "Se muestran estos controles", - "block.create.andesite_encased_shaft.tooltip": "EJE EMPOTRADO DE ANDESITA", - "block.create.andesite_encased_shaft.tooltip.summary": "Objeto _exclusivo_ _del_ _Creativo_ .Cubre los ejes _en_ _el_ _mundo_ usando Carcasa de _Andesita_ . Los bloques de carcasa no se consumirán.", + "block.create.wooden_bracket.tooltip": "SOPORTE DE MADERA PARA EJES", + "block.create.wooden_bracket.tooltip.summary": "Decora tus _ejes_, _engranajes_ y _ductos_ con un acogedor refuerzo de madera.", - "block.create.brass_encased_shaft.tooltip": "EJE EMPOTRADO DE LATÓN", - "block.create.brass_encased_shaft.tooltip.summary": "Objeto _exclusivo_ _del_ _Creativo_ .Cubre los ejes _en_ _el_ _mundo_ usando Carcasa de _Latón_ . Los bloques de carcasa no se consumirán.", - - "block.create.wooden_bracket.tooltip": "SOPORTE DE MADERA", - "block.create.wooden_bracket.tooltip.summary": "_Decora_ tus _ejes,_ _ruedas_ _dentadas_ y _tuberías_ con un pequeño y acogedor refuerzo de madera", - - "block.create.metal_bracket.tooltip": "SOPORTE DE METAL", - "block.create.metal_bracket.tooltip.summary": "_Decora_ tus _ejes,_ _ruedas_ _dentadas_ y _tuberías_ con un robusto refuerzo industrial de metal", - - "block.create.andesite_casing.tooltip": "CARCASA DE ANDESITA", - "block.create.andesite_casing.tooltip.summary": "Una simple carcasa para máquinas con una variedad de usos. Segura para la decoración. Se puede usar para cubrir _ejes_ y _correas_ _mecánicas_ .", - - "block.create.andesite_funnel.tooltip": "EMBUDO DE ANDESITA", - "block.create.andesite_funnel.tooltip.summary": "Un componente de transferencia de objetos generales, que hace la transición entre los medios de transporte. Puede ser controlado con una _señal_ _de_ _redstone_ .", - "block.create.andesite_funnel.tooltip.condition1": "Comportamiento General", - "block.create.andesite_funnel.tooltip.behaviour1": "La _cara_ _abierta_ recogerá los _objetos_ en el bloque que tiene delante y los _introducirá_ en cualquier contenedor en el lado opuesto del embudo.", - "block.create.andesite_funnel.tooltip.condition2": "Cuando se monta en correas, depósitos y similares", - "block.create.andesite_funnel.tooltip.behaviour2": "_Recoge_ o _Coloca_ artículos en el componente montado, desde o hacia el _inventario_ _detrás_ de sí mismo. Siempre que el embudo tenga una direccionalidad específica, esta puede ser invertida usando una llave inglesa.", - "block.create.andesite_funnel.tooltip.condition3": "Cuando esta vertical entre dos inventarios", - "block.create.andesite_funnel.tooltip.behaviour3": "_Transferirá_ los objetos _hacia abajo_ , como si fuera una tolva sin buffer.", - - "block.create.andesite_tunnel.tooltip": "TÚNEL DE ANDESITA", - "block.create.andesite_tunnel.tooltip.summary": "Una cubierta protectora para sus _Correas_ y una gran manera de cubrir los agujeros dejados en su pared por ellas.", - "block.create.andesite_tunnel.tooltip.control1": "Click derecho a un lado con la llave inglesa", - "block.create.andesite_tunnel.tooltip.action1": "Ajusta las percianas de la ventana si el túnel tiene una en esa cara.", - - "block.create.brass_funnel.tooltip": "EMBUDO DE LATÓN", - "block.create.brass_funnel.tooltip.summary": "Un componente de transferencia de objetos generales, que hace la transición entre los medios de transporte. Puede ser controlado con una _señal_ _de_ _redstone_ . Viene con un practico _filtro_ .", - "block.create.brass_funnel.tooltip.condition1": "Comportamiento General", - "block.create.brass_funnel.tooltip.behaviour1": "La _cara_ _abierta_ recogerá los _objetos_ en el bloque que tiene delante y los _introducirá_ en cualquier contenedor en el lado opuesto del embudo.", - "block.create.brass_funnel.tooltip.condition2": "Cuando se monta en correas, depósitos y similares", - "block.create.brass_funnel.tooltip.behaviour2": "_Recoge_ o _Coloca_ artículos en el componente montado, desde o hacia el _inventario_ _detrás_ de sí mismo. Siempre que el embudo tenga una direccionalidad específica, esta puede ser invertida usando una llave inglesa.", - "block.create.brass_funnel.tooltip.condition3": "Cuando esta vertical entre dos inventarios", - "block.create.brass_funnel.tooltip.behaviour3": "_Transferirá_ los objetos _hacia abajo_ , como si fuera una tolva sin buffer.", - - "block.create.brass_tunnel.tooltip": "TÚNEL DE LATÓN", - "block.create.brass_tunnel.tooltip.summary": "El _Túnel_ _de_ _Latón_ vienen con un número de opciones de _filtrado_ y _separación_ de objetos para sus _correas_ .", - "block.create.brass_tunnel.tooltip.condition1": "Cuando se colocan uno al lado del otro", - "block.create.brass_tunnel.tooltip.behaviour1": "Los _Túneles_ _de_ _Latón_ se conectan entre sí permitiendo que el contenido de una _correa_ sea redirigido a otra.", - "block.create.brass_tunnel.tooltip.condition2": "Filtraje", - "block.create.brass_tunnel.tooltip.behaviour2": "Los _Túneles_ _de_ _ Latón_ vienen con filtros tanto para la entrada como para la salida. Si un _objeto_ no está permitido desde el filtro de salida de un _Túnel_ será transferido a la salida de otro _Túnel_ conectado.", - "block.create.brass_tunnel.tooltip.condition3": "Dividiendo", - "block.create.brass_tunnel.tooltip.behaviour3": "Los _Túneles_ _de_ _Latón_ de pueden ser configurados para cambiar el método en el que se ordenan los _objetos_ en las _correas_ conectadas.", - "block.create.brass_tunnel.tooltip.control1": "Click derecho a un lado con la llave inglesa", - "block.create.brass_tunnel.tooltip.action1": "Ajusta las percianas de la ventana si el túnel tiene una en esa cara.", - "block.create.brass_tunnel.tooltip.control2": "Girar la rueda del ratón con la llave inglesa en la parte superior", - "block.create.brass_tunnel.tooltip.action2": "Cambia el método de división de los _túneles_ conectados.", - - "block.create.copper_casing.tooltip": "CARCASA DE COBRE", - "block.create.copper_casing.tooltip.summary": "Una simple carcasa para máquinas con una variedad de usos. Segura para la decoración.", - "block.create.copper_casing.tooltip.condition1": "Cuando se usa en una Tubería de Fluidos", - "block.create.copper_casing.tooltip.behaviour1": "Recubre la _Tubería_ _de_ _Fluidos_ con la _Carcasa_ _de_ _Cobre._ Las tuberías recubiertas _bloquearán_ _sus_ _conexiones_ en su lugar, ya no reaccionarán a los cambios de las tuberías vecinas.", - - "block.create.encased_fluid_pipe.tooltip": "TUBERÍA DE FLUIDOS RECUBIERTA", - "block.create.encased_fluid_pipe.tooltip.summary": "Una _Tubería_ _de_ _Fluidos_ recubierta con una _Carcasa_ _de_ _Cobre_", - - "block.create.copper_valve_handle.tooltip": "MANIJA DE VÁLVULA DE COBRE", - "block.create.copper_valve_handle.tooltip.summary": "Una precisa _fuente_ de _Fuerza_ _Rotacional_ que requiere la interacción de los jugadores. ¡Ten cuidado de no desgastarte!", - "block.create.copper_valve_handle.tooltip.condition1": "Cuando se usa", - "block.create.copper_valve_handle.tooltip.behaviour1": "Proporciona _fuerza_ _rotacional_ a un artefacto adjunto. _agáchate_ _para_ _revertir_ la rotación.", + "block.create.metal_bracket.tooltip": "SOPORTE DE METAL PARA EJES", + "block.create.metal_bracket.tooltip.summary": "Decora tus _ejes_, _engranajes_ y _ductos_ con un poco de refuerzo industrial robusto.", "block.create.seat.tooltip": "ASIENTO", - "block.create.seat.tooltip.summary": "¡Siéntese y disfrute del paseo! Anclará a un jugador en una _artefacto_ en movimiento. ¡También es Grandioso para las construcciones estáticas! Viene en una variedad de colores.", - "block.create.seat.tooltip.condition1": "Click Derecho en el asiento", - "block.create.seat.tooltip.behaviour1": "Sienta al jugador en el _asiento_ . Presiona el shift izquierdo para salir del _asiento._", - - "block.create.chute.tooltip": "VERTEDOR", - "block.create.chute.tooltip.summary": "_Recoge_ y transporta objetos en vertical o en diagonal. Puede llevar y colocar los objetos en _contenedores._ También puede interactuar con los vertedores desde el lado usando _tolvas_ o _embudos_ _montados._", - "block.create.chute.tooltip.condition1": "Cuando es usado con un ventilador", - "block.create.chute.tooltip.behaviour1": "Los vertedores usados con _ventiladores_ pueden transportar _objetos_ hacia arriba y succionar _objetos_ de _depósitos_ y _correas._", - - "block.create.depot.tooltip": "DEPÓSITO", - "block.create.depot.tooltip.summary": "Un lugar práctico para colocar sus _Objetos._ Proporciona un punto de interacción para varias máquinas", - "block.create.depot.tooltip.condition1": "Click Derecho en un Depósito", - "block.create.depot.tooltip.behaviour1": "Coloca o toma un _objeto_ del _depósito._ Los _bloques_ y _artefactos_ que interactúan con una _correa_ también funcionan en un _depósito._", + "block.create.seat.tooltip.summary": "¡Siéntate y disfruta del viaje! Anclará a un jugador en un artilugio en movimiento. También es ideal para muebles estáticos. Viene en una variedad de colores.", + "block.create.seat.tooltip.condition1": "Cuando se hace clic derecho en el asiento", + "block.create.seat.tooltip.behaviour1": "Sienta al jugador en el _asiento_. Pulsa Mayús izdo para dejar el asiento.", "item.create.blaze_cake.tooltip": "PASTEL DE BLAZE", - "item.create.blaze_cake.tooltip.summary": "Un delicioso regalo para tus grandiosos _quemadores_ _de_ _blaze._ ¡Los enciende a todos!", + "item.create.blaze_cake.tooltip.summary": "Un delicioso regalo para sus esforzados _quemadores de blaze_. ¡Los pone en marcha!.", - "item.create.empty_blaze_burner.tooltip": "QUEMADOR DE BLAZE VACIO", - "item.create.empty_blaze_burner.tooltip.summary": "Un pequeño hogar de hierro para tus ardientes amigos. Estoy seguro de que podrías darles un buen uso.", - "item.create.empty_blaze_burner.tooltip.condition1": "Cuando es usado en un generador de blaze", - "item.create.empty_blaze_burner.tooltip.behaviour1": "_Captura_ un blaze en el objeto", + "item.create.wand_of_symmetry.tooltip": "VARITA DE SIMETRÍA", + "item.create.wand_of_symmetry.tooltip.summary": "Refleja perfectamente la colocación de bloques en los planos configurados.", + "item.create.wand_of_symmetry.tooltip.condition1": "Mientras está en el inventario rápido", + "item.create.wand_of_symmetry.tooltip.behaviour1": "Permanece activo.", + "item.create.wand_of_symmetry.tooltip.control1": "Cuando se hace clic derecho en el suelo", + "item.create.wand_of_symmetry.tooltip.action1": "_Crea_ o _mueve_ el espejo.", + "item.create.wand_of_symmetry.tooltip.control2": "Cuando se hace clic derecho en el aire", + "item.create.wand_of_symmetry.tooltip.action2": "_Quita_ el espejo activo.", + "item.create.wand_of_symmetry.tooltip.control3": "Mayús izdo + clic derecho", + "item.create.wand_of_symmetry.tooltip.action3": "Abre la interfaz de configuración.", - "block.create.fluid_pipe.tooltip": "TUBERÍA DE FLUIDOS", - "block.create.fluid_pipe.tooltip.summary": "Se usa para mover _fluidos._ Necesita una _bomba_ _mecánica_ para mover el fluido.", - "block.create.fluid_pipe.tooltip.condition1": "Transferencia de fluidos", - "block.create.fluid_pipe.tooltip.behaviour1": "Puede conectarse a _contenedores_ _de_ _fluidos_ como _tanques_ o _cuencas._ Los extremos expuestos de las _tuberías_ también pueden drenar o colocar bloques de fluido. ¡Ten cuidado con las fugas!", - "block.create.fluid_pipe.tooltip.control1": "Click Derecho con una Llave Inglesa", - "block.create.fluid_pipe.tooltip.action1": "Coloca una ventana en la tubería si está disponible", + "item.create.handheld_worldshaper.tooltip": "WORLDSHAPER", + "item.create.handheld_worldshaper.tooltip.summary": "Práctica herramienta para crear _paisajes_ y _características del terreno_.", + "item.create.handheld_worldshaper.tooltip.control1": "Cuando se hace clic izquierdo en un bloque", + "item.create.handheld_worldshaper.tooltip.action1": "Establece los bloques colocados por la herramienta en el bloque objetivo.", + "item.create.handheld_worldshaper.tooltip.control2": "Cuando se hace clic derecho en un bloque", + "item.create.handheld_worldshaper.tooltip.action2": "Aplica el _pincel_ y la _herramienta_ actualmente seleccionadas en el lugar deseado.", + "item.create.handheld_worldshaper.tooltip.control3": "Mayús izdo + clic derecho", + "item.create.handheld_worldshaper.tooltip.action3": "Abre la interfaz de configuración.", - "block.create.hose_pulley.tooltip": "POLEA CON MANGUERA", - "block.create.hose_pulley.tooltip.summary": "Se utiliza para _colocar_ o _drenar_ grandes _cuerpos_ _de_ _fluido_ en el mundo.", - "block.create.hose_pulley.tooltip.condition1": "Cuando es impulsado por la cinética", - "block.create.hose_pulley.tooltip.behaviour1": "_Sube_ o _baja_ la manguera, La ubicación de la manguera determina hasta qué _altura_ actuará la _extracción_ o el _llenado_ .", - "block.create.hose_pulley.tooltip.condition2": "Cuando los fluidos son extraídos de la polea", - "block.create.hose_pulley.tooltip.behaviour2": "Empieza a _extraer_ bloques de _líquido_ del cuerpo en el que se bajó la punta de la manguera. Los cuerpos de fluido _muy_ _grandes_ serán _considerados_ _infinitos_ .", - "block.create.hose_pulley.tooltip.condition3": "Cuando los fluidos son empujados a la polea", - "block.create.hose_pulley.tooltip.behaviour3": "Comienza a _llenar_ con _fluido_ en el mundo _hasta_ _arriba_ a la _altura_ de la _punta_ _de_ _la_ _manguera_ .", + "item.create.tree_fertilizer.tooltip": "FERTILIZANTE PARA ÁRBOLES", + "item.create.tree_fertilizer.tooltip.summary": "Una potente combinación de minerales adecuada para acelerar el crecimiento de los tipos de árboles más comunes.", + "item.create.tree_fertilizer.tooltip.condition1": "Cuando se utiliza en un árbol joven", + "item.create.tree_fertilizer.tooltip.behaviour1": "Hace crecer los árboles _independientemente_ de sus condiciones de _espacio_.", - "block.create.fluid_tank.tooltip": "TANQUE DE FLUIDOS", - "block.create.fluid_tank.tooltip.summary": "Almacena todos tus _fluidos_ favoritos. Escala en anchura y altura.", - "block.create.fluid_tank.tooltip.condition1": "Click Derecho con una Llave Inglesa", - "block.create.fluid_tank.tooltip.behaviour1": "Cambia la ventana opcional", + "item.create.extendo_grip.tooltip": "AGARRE EXTENDIDO", + "item.create.extendo_grip.tooltip.summary": "¡Boioioing! Aumenta enormemente la _distancia de alcance_ del portador. Se puede alimentar con la presión de aire de un _depósito trasero de cobre_", + "item.create.extendo_grip.tooltip.condition1": "Cuando está fuera de la mano", + "item.create.extendo_grip.tooltip.behaviour1": "Aumenta la _distancia de alcance_ de los objetos usados en la _mano principal_.", + "item.create.extendo_grip.tooltip.condition2": "Mientras se usa un depósito trasero de cobre", + "item.create.extendo_grip.tooltip.behaviour2": "No se utilizará _durabilidad_. En su lugar, la _presión del aire_ se drena desde el tanque", - "block.create.creative_fluid_tank.tooltip": "TANQUE DE FLUIDOS DEL CREATIVO", - "block.create.creative_fluid_tank.tooltip.summary": "Este _Tanque_ _de_ _Fluidos_ permite la replicación infinita de cualquier Fluido. Escala en anchura y altura.", - "block.create.creative_fluid_tank.tooltip.condition1": "Cuando hay fluido en el tanque", - "block.create.creative_fluid_tank.tooltip.behaviour1": "Cualquier cosa que _extraiga_ de este tanque proporcionará un _suministro_ _ilimitado_ del fluido especificado. Los fluidos _insertados_ en este tanque serán _eliminados._", - "block.create.creative_fluid_tank.tooltip.condition2": "Click Derecho con una Llave Inglesa", - "block.create.creative_fluid_tank.tooltip.behaviour2": "Cambia la ventana opcional", + "item.create.potato_cannon.tooltip": "CANÓN DE PATATAS", + "item.create.potato_cannon.tooltip.summary": "Fwoomp! Lanza tus verduras caseras a tus enemigos. Se puede alimentar con la presión de aire de un _depósito trasero de cobre_", + "item.create.potato_cannon.tooltip.condition1": "Cuando se usa clic derecho", + "item.create.potato_cannon.tooltip.behaviour1": "_Dispara_ un objeto adecuado desde tu inventario_.", + "item.create.potato_cannon.tooltip.condition2": "Mientras se usa un depósito trasero de cobre", + "item.create.potato_cannon.tooltip.behaviour2": "No se utilizará _durabilidad_. En su lugar, la _presión del aire_ se drena desde el tanque", - "block.create.fluid_valve.tooltip": "VÁLVULAL DE FLUIDOS", - "block.create.fluid_valve.tooltip.summary": "Detiene el flujo de fluido por una tubería.", - "block.create.fluid_valve.tooltip.condition1": "Flujo controlable", - "block.create.fluid_valve.tooltip.behaviour1": "Aplicando una _fuerza_ _de_ _rotación_ forzará a la _válvula_ a cerrarse, cesando el flujo de _fluidos._ Invierte la dirección de la _fuerza_ _de_ _rotación_ para reabrir la válvula.", + "item.create.filter.tooltip": "FILTRO", + "item.create.filter.tooltip.summary": "Controla las _salidas_ y _entradas_ de los _dispositivos logísticos_ con más precisión, comparándolas con un _conjunto de objetos_ o varios _filtros anidados_.", + "item.create.filter.tooltip.condition1": "Cuando está en la ranura de filtros", + "item.create.filter.tooltip.behaviour1": "Controla el flujo de objetos según su _configuración_.", + "item.create.filter.tooltip.condition2": "Cuando se hace clic derecho", + "item.create.filter.tooltip.behaviour2": "Abre la interfaz de configuración.", - "block.create.mechanical_pump.tooltip": "BOMBA MECÁNICA", - "block.create.mechanical_pump.tooltip.summary": "Toma la _fuerza_ _de_ _rotación_ y la usa para mover el _fluido_ a lo largo de un _tubo._ Tiene un rango de efecto máximo en ambas direcciones. (16 bloques por defecto)", - "block.create.mechanical_pump.tooltip.condition1": "Flujo de fluidos", - "block.create.mechanical_pump.tooltip.behaviour1": "La _fuerza_ _de_ _rotación_ aplicada crea una presión que fuerza el _fluido_ a través de la red de _tuberías._ Invierte la dirección de la fuerza de rotación para cambiar la dirección en la que fluye el _fluido._", - "block.create.mechanical_pump.tooltip.control1": "Click Derecho con una Llave Inglesa", - "block.create.mechanical_pump.tooltip.action1": "Invierte la dirección de la _bomba,_ cambiando la dirección por defecto del flujo", + "item.create.attribute_filter.tooltip": "FILTRO DE ATRIBUTOS", + "item.create.attribute_filter.tooltip.summary": "Controla las _salidas_ y las _entradas_ de los _dispositivos logísticos_ con más precisión, comparándolas con un _conjunto de atributos_ y _categorías_ de objetos.", + "item.create.attribute_filter.tooltip.condition1": "Cuando está en la ranura de filtros", + "item.create.attribute_filter.tooltip.behaviour1": "Controla el flujo de objetos según su _configuración_.", + "item.create.attribute_filter.tooltip.condition2": "Cuando se hace clic derecho", + "item.create.attribute_filter.tooltip.behaviour2": "Abre la interfaz de configuración.", - "block.create.smart_fluid_pipe.tooltip": "TUBERÍA DE FLUIDOS INTELIGENTE", - "block.create.smart_fluid_pipe.tooltip.summary": "Una _tubería_ _de_ _fluidos_ con un filtro. Puede especificar que _fluidos_ pasan por ella.", - "block.create.smart_fluid_pipe.tooltip.condition1": "Cuando los fluidos son empujados hacia ella", - "block.create.smart_fluid_pipe.tooltip.behaviour1": "Las tuberías inteligentes que reciben un fluido que no coincide con su filtro bloquearán el flujo.", - "block.create.smart_fluid_pipe.tooltip.condition2": "Cuando está adyacente a un recipiente de fluido", - "block.create.smart_fluid_pipe.tooltip.behaviour2": "Las tuberías inteligentes que _inicien_ un _flujo_ desde cualquier contenedor sólo extraerán los fluidos que _coincidan_ con su _filtro._", + "item.create.empty_schematic.tooltip": "ESQUEMA VACÍO", + "item.create.empty_schematic.tooltip.summary": "Se utiliza como 'ingrediente' de las recetas y para escribir en la _tabla de esquemas_.", - "block.create.spout.tooltip": "CANALETA", - "block.create.spout.tooltip.summary": "Un inyector para rellenar sus _objetos_ con _fluidos._", - "block.create.spout.tooltip.condition1": "Transferencia de fluidos", - "block.create.spout.tooltip.behaviour1": "Cuando se coloca un _objeto_ que puede _contener_ _fluidos_ como una _cubeta_ o _botella_ debajo, la canaleta intentará rellenarlo con su propio _fluido_ almacenado.", - "block.create.spout.tooltip.condition2": "Automatización de fluidos", - "block.create.spout.tooltip.behaviour2": "La canaleta colocada sobre una _correa_ o _depósito_ reaccionará automáticamente con un _contenedor_ _de_ _líquido_ que pase por debajo de él.", - - "block.create.item_drain.tooltip": "ITEM DRAIN", - "block.create.item_drain.tooltip.summary": "Un depósito con rejilla para vaciar sus _objetos_ _con_ _fluidos._", - "block.create.item_drain.tooltip.condition1": "Transferencia de fluidos", - "block.create.item_drain.tooltip.behaviour1": "Cuando se inserta un _contenedor_ _de_ _fluidos_ como una _cubeta_ o _botella_ desde el lado, el extractor intentará vaciarlo en su propio _contenedor_ de _fluidos._ El objeto será entonces expulsado por el lado opuesto.", - - "block.create.mechanical_arm.tooltip": "MECHANICAL ARM", - "block.create.mechanical_arm.tooltip.summary": "Un artefacto avanzado para reubicar _objetos._", - "block.create.mechanical_arm.tooltip.condition1": "Transferencia de objetos", - "block.create.mechanical_arm.tooltip.behaviour1": "Puede tomar o colocar artículos en cualquier _inventario_ _accesible,_ como _Correas,_ _Depósitos,_ _Embudos_ y _Crafters_ _Mecánicos._", - "block.create.mechanical_arm.tooltip.control1": "Mientras que este en la mano", - "block.create.mechanical_arm.tooltip.action1": "Click Derecho en un _inventario_ _de_ _objetos_ _accesible_ para establecerlo como _fuente_ del _Brazo_ _Mecánico._ Haga clic derecho dos veces para establecerlo como el _destino._", - "block.create.mechanical_arm.tooltip.control2": "Girar la rueda del ratón con la llave inglesa", - "block.create.mechanical_arm.tooltip.action2": "Establece el criterio de comportamiento para la salida de los _objetos_ por el _Brazo_ _Mecánico._", - - "item.create.wand_of_symmetry.tooltip": "SYMMETRY WAND", - "item.create.wand_of_symmetry.tooltip.summary": "Crea un 'espejo' que refleja perfectamente la colocación de bloques a través de los planos configurados.", - "item.create.wand_of_symmetry.tooltip.condition1": "Cuando esta en la barra de ítems", - "item.create.wand_of_symmetry.tooltip.behaviour1": "Se mantiene activo", - "item.create.wand_of_symmetry.tooltip.control1": "Click Derecho en el suelo", - "item.create.wand_of_symmetry.tooltip.action1": "_Crea_ o _mueve_ el 'espejo'.", - "item.create.wand_of_symmetry.tooltip.control2": "Click Derecho en el aire", - "item.create.wand_of_symmetry.tooltip.action2": "_Remueve_ el 'espejo' activo", - "item.create.wand_of_symmetry.tooltip.control3": "Click Derecho cuando se esta agachado", - "item.create.wand_of_symmetry.tooltip.action3": "Abre la _Interfaz_ _de_ _Configuración_", - - "item.create.handheld_blockzapper.tooltip": "BLOCKZAPPER", - "item.create.handheld_blockzapper.tooltip.summary": "Novedoso artilugio para colocar o intercambiar bloques a distancia.", - "item.create.handheld_blockzapper.tooltip.control1": "Click Izquierdo a un bloque", - "item.create.handheld_blockzapper.tooltip.action1": "Establece los bloques que serán colocados por la herramienta en el bloque objetivo.", - "item.create.handheld_blockzapper.tooltip.control2": "Click Derecho en un bloque", - "item.create.handheld_blockzapper.tooltip.action2": "_Coloca_ o _reemplaza_ el bloque objetivo.", - "item.create.handheld_blockzapper.tooltip.control3": "Click Derecho mientras se está agachado", - "item.create.handheld_blockzapper.tooltip.action3": "Abre la _Interfaz_ _de_ _Configuración._", - - "item.create.handheld_worldshaper.tooltip": "HANDHELD WORLDSHAPER", - "item.create.handheld_worldshaper.tooltip.summary": "Una herramienta útil para crear _paisajes_ y _características_ en el _terreno._", - "item.create.handheld_worldshaper.tooltip.control1": "Click Izquierdo a un bloque", - "item.create.handheld_worldshaper.tooltip.action1": "Establece los bloques que serán colocados por la herramienta en el bloque objetivo.", - "item.create.handheld_worldshaper.tooltip.control2": "Click Derecho en un bloque", - "item.create.handheld_worldshaper.tooltip.action2": "Aplica el _Pincel_ y la _Herramienta_ actualmente seleccionados en el lugar objetivo.", - "item.create.handheld_worldshaper.tooltip.control3": "Click Derecho mientras se está agachado", - "item.create.handheld_worldshaper.tooltip.action3": "Abre la _Interfaz_ _de_ _Configuración._", - - "item.create.tree_fertilizer.tooltip": "TREE FERTILIZER", - "item.create.tree_fertilizer.tooltip.summary": "Una poderosa combinación de minerales adecuados para acelerar el crecimiento de los tipos de árboles comunes.", - "item.create.tree_fertilizer.tooltip.condition1": "Cuando se usa en un retoño de árbol", - "item.create.tree_fertilizer.tooltip.behaviour1": "Hace crecer los árboles, sin importar el espacio entre ellos.", - - "item.create.deforester.tooltip": "DEFORESTER", - "item.create.deforester.tooltip.summary": "Un _hacha_ _radiante_ capaz de cortar árboles en una fracción de segundo.", - - "item.create.extendo_grip.tooltip": "EXTENDO GRIP", - "item.create.extendo_grip.tooltip.summary": "Boioioing! En gran medida, _aumenta_ _la_ _distancia_ _de_ _alcance_ del portador.", - "item.create.extendo_grip.tooltip.condition1": "Cuando está en la mano secundaria", - "item.create.extendo_grip.tooltip.behaviour1": "Aumenta el rango de alcance de los objetos usados en la _mano_ _principal._", - - "item.create.filter.tooltip": "FILTER", - "item.create.filter.tooltip.summary": "_Controla_ las _salidas_ y _entradas_ de los dispositivos logísticos con más _precisión,_ comparándolas con un _conjunto_ _de_ _objetos_ o varios _filtros_ _anidados._", - "item.create.filter.tooltip.condition1": "Cuando está en la ranura del filtro", - "item.create.filter.tooltip.behaviour1": "_Controla_ el flujo de objetos según su _configuración._", - "item.create.filter.tooltip.condition2": "Con Click Derecho", - "item.create.filter.tooltip.behaviour2": "Abre la _Interfaz_ _de_ _Configuración._", - - "item.create.attribute_filter.tooltip": "ATTRIBUTE FILTER", - "item.create.attribute_filter.tooltip.summary": "_Controla_ las _salidas_ y _entradas_ de los dispositivos logísticos con más _precisión,_ comparándolas con un _conjunto_ _de_ _atributos_ _de_ _objetos_ y _categorias._", - "item.create.attribute_filter.tooltip.condition1": "Cuando está en la ranura del filtro", - "item.create.attribute_filter.tooltip.behaviour1": "_Controla_ el flujo de objetos según su _configuración._", - "item.create.attribute_filter.tooltip.condition2": "Con Click Derecho", - "item.create.attribute_filter.tooltip.behaviour2": "Abre la _Interfaz_ _de_ _Configuración._", - - "item.create.empty_schematic.tooltip": "EMPTY SCHEMATIC", - "item.create.empty_schematic.tooltip.summary": "Se usa como ingrediente en una receta y para escribir en la _Mesa_ _de_ _Esquemas._", - - "item.create.schematic.tooltip": "SCHEMATIC", - "item.create.schematic.tooltip.summary": "Sostiene una estructura para ser posicionada y colocada en el mundo. Posiciona el Holograma como se desee y usa un _Esquemacañon_ para construirlo.", - "item.create.schematic.tooltip.condition1": "Cuando es sostenido", - "item.create.schematic.tooltip.behaviour1": "Se puede posicionar usando las Herramientas en Pantalla.", - "item.create.schematic.tooltip.control1": "Click Derecho mientras se está agachado", + "item.create.schematic.tooltip": "ESQUEMA", + "item.create.schematic.tooltip.summary": "Contiene una estructura para ser posicionada y colocada en el mundo. Posiciona el holograma como desees y utiliza un _cañón de esquemas_ para construirla.", + "item.create.schematic.tooltip.condition1": "Cuando se sostiene en la mano", + "item.create.schematic.tooltip.behaviour1": "Se puede posicionar utilizando las herramientas en pantalla.", + "item.create.schematic.tooltip.control1": "Mayús izdo + clic derecho", "item.create.schematic.tooltip.action1": "Abre una _interfaz_ para introducir las _coordenadas_ exactas.", - "item.create.schematic_and_quill.tooltip": "SCHEMATIC AND QUILL", - "item.create.schematic_and_quill.tooltip.summary": "Se usa para guardar una estructura de tu mundo en un archivo .nbt", + "item.create.schematic_and_quill.tooltip": "ESQUEMA Y PLUMA", + "item.create.schematic_and_quill.tooltip.summary": "Se utiliza para guardar una estructura de tu mundo en un archivo .nbt.", "item.create.schematic_and_quill.tooltip.condition1": "Paso 1", - "item.create.schematic_and_quill.tooltip.behaviour1": "Selecciona dos esquinas con Click Derecho.", + "item.create.schematic_and_quill.tooltip.behaviour1": "Selecciona dos puntos de esquina usando clic derecho.", "item.create.schematic_and_quill.tooltip.condition2": "Paso 2", - "item.create.schematic_and_quill.tooltip.behaviour2": "_Ctrl_ _+_ _girar_ _rueda_ _del_ _ratón_ en las caras para ajustar el tamaño. Click Derecho de nuevo para Guardar.", - "item.create.schematic_and_quill.tooltip.control1": "Click Derecho", - "item.create.schematic_and_quill.tooltip.action1": "Selecciona una esquina / confirma el guardado.", - "item.create.schematic_and_quill.tooltip.control2": "Manteniendo la tecla Ctrl", - "item.create.schematic_and_quill.tooltip.action2": "Selecciona los puntos en _medio_ _del_ _aire._ _Girar_ _rueda_ _del_ _ratón_ para ajustar la distancia.", - "item.create.schematic_and_quill.tooltip.control3": "Click Derecho mientras se está agachado", - "item.create.schematic_and_quill.tooltip.action3": "_Reinicia_ y quita la selección.", + "item.create.schematic_and_quill.tooltip.behaviour2": "[Ctrl] + [RUEDA DEL RATÓN] en las caras para ajustar el tamaño. Clic derecho de nuevo para guardar.", + "item.create.schematic_and_quill.tooltip.control1": "Cuando se hace clic derecho", + "item.create.schematic_and_quill.tooltip.action1": "Selecciona un punto de esquina / confirmar guardar.", + "item.create.schematic_and_quill.tooltip.control2": "Cuando mantiene [Ctrl]", + "item.create.schematic_and_quill.tooltip.action2": "Selecciona puntos en _medio del aire_. Rueda del ratón para ajustar la distancia.", + "item.create.schematic_and_quill.tooltip.control3": "Mayús izdo + clic derecho", + "item.create.schematic_and_quill.tooltip.action3": "_Reinicia_ y elimina la selección.", - "block.create.schematicannon.tooltip": "SCHEMATICANNON", - "block.create.schematicannon.tooltip.summary": "Dispara bloques para recrear un _esquema_ ya desplegado en el mundo. Utiliza objetos de los inventarios adyacentes y _Pólvora_ como combustible.", - "block.create.schematicannon.tooltip.control1": "Click Derecho sobre él", - "block.create.schematicannon.tooltip.action1": "Abre la interfaz", + "block.create.schematicannon.tooltip": "CAÑÓN DE ESQUEMAS", + "block.create.schematicannon.tooltip.summary": "Dispara bloques para recrear un _esquema_ desplegado en el mundo. Utiliza objetos de los inventarios adyacentes y _pólvora_ como combustible.", + "block.create.schematicannon.tooltip.condition1": "Cuando se hace clic derecho", + "block.create.schematicannon.tooltip.behaviour1": "Abre la interfaz.", - "block.create.schematic_table.tooltip": "SCHEMATIC TABLE", - "block.create.schematic_table.tooltip.summary": "Escribe los esquemas guardados en un _Esquema_ _Vacío._", - "block.create.schematic_table.tooltip.condition1": "Cuando se le da un esquema vacío", - "block.create.schematic_table.tooltip.behaviour1": "Carga un archivo elegido de su carpeta de esquemas.", + "block.create.schematic_table.tooltip": "TABLA DE ESQUEMAS", + "block.create.schematic_table.tooltip.summary": "Escribe los esquemas guardados en un _esquema vacío_.", + "block.create.schematic_table.tooltip.condition1": "Cuando se da un esquema vacío", + "block.create.schematic_table.tooltip.behaviour1": "Carga un archivo elegido de la carpeta de esquemas.", - "block.create.shaft.tooltip": "SHAFT", - "block.create.shaft.tooltip.summary": "_Transmite_ la _rotación_ en una línea recta.", + "item.create.goggles.tooltip": "GAFAS DEL CONSTRUCTOR", + "item.create.goggles.tooltip.summary": "Un par de gafas para aumentar tu visión con útil información _cinética_.", + "item.create.goggles.tooltip.condition1": "Cuando se llevan puestas", + "item.create.goggles.tooltip.behaviour1": "Muestra _indicadores de color_ correspondientes al _nivel de velocidad_ de un componente cinético colocado, así como el _impacto de estrés_ y la _carga_ de los componentes individuales.", + "item.create.goggles.tooltip.condition2": "Al mirar un medidor", + "item.create.goggles.tooltip.behaviour2": "Muestra información detallada sobre _velocidad_ o _estrés_ de la red a la que está conectado el medidor.", + "item.create.goggles.tooltip.condition3": "Al mirar un contenedor de fluidos", + "item.create.goggles.tooltip.behaviour3": "Muestra información detallada sobre la _carga_ del bloque y los _líquidos_ almacenados en su interior.", - "block.create.cogwheel.tooltip": "COGWHEEL", - "block.create.cogwheel.tooltip.summary": "_Transmite_ la _rotación_ en una línea recta, y a las _Ruedas_ _Dentadas_ adyacentes.", + "item.create.wrench.tooltip": "LLAVE INGLESA", + "item.create.wrench.tooltip.summary": "Una herramienta útil para trabajar en artilugios cinéticos. Se puede utilizar para _rotar_, _desmantelar_ y para _configurar_ componentes.", + "item.create.wrench.tooltip.control1": "Cuando se hace clic derecho en un bloque cinético", + "item.create.wrench.tooltip.action1": "Rota los componentes hacia o desde la cara con la que ha interactuado.", + "item.create.wrench.tooltip.control2": "Mayús izdo + clic derecho", + "item.create.wrench.tooltip.action2": "Desmonta los _componentes cinéticos_ y los devuelve a tu inventario_.", - "block.create.large_cogwheel.tooltip": "LARGE COGWHEEL", - "block.create.large_cogwheel.tooltip.summary": "Una versión más grande de la _Rueda_ _Dentada,_ que permite _cambiar_ _la_ _Velocidad_ _de_ _Rotación_ cuando se conecta a su Contraparte más pequeña.", + "block.create.nozzle.tooltip": "BOQUILLA", + "block.create.nozzle.tooltip.summary": "Se acopla a la parte delantera de un _ventilador revestido_ para distribuir su efecto sobre las entidades en _todas las direcciones_.", - "block.create.encased_shaft.tooltip": "ENCASED SHAFT", - "block.create.encased_shaft.tooltip.summary": "_Transmite_ la _rotación_ en una línea recta. Adecuado para transmitir la rotación a través de las paredes.", + "block.create.cuckoo_clock.tooltip": "RELOJ DE CUCO", + "block.create.cuckoo_clock.tooltip.summary": "Fina artesanía para decorar un espacio y contar el tiempo.", + "block.create.cuckoo_clock.tooltip.condition1": "Cuando es alimentado por cinética", + "block.create.cuckoo_clock.tooltip.behaviour1": "Muestra la _hora actual_ y toca una melodía dos veces al día. Se activa una vez al mediodía y al anochecer, _en cuanto los jugadores pueden dormir_.", - "block.create.gearbox.tooltip": "GEARBOX", - "block.create.gearbox.tooltip.summary": "_Transmite_ la _rotación_ en _cuatro_ _direcciones._ Invierte las conexiones rectas.", + "block.create.turntable.tooltip": "PLATAFORMA GIRATORIA", + "block.create.turntable.tooltip.summary": "Convierte la _fuerza rotacional_ en un refinado mareo.", - "block.create.gearshift.tooltip": "GEARSHIFT", - "block.create.gearshift.tooltip.summary": "Un control para cambiar la dirección de rotación de los ejes conectados.", - "block.create.gearshift.tooltip.condition1": "Cuando tiene una señal de Redstone", - "block.create.gearshift.tooltip.behaviour1": "_Invierte_ la rotación de salida.", + "block.create.stockpile_switch.tooltip": "INTERRUPTOR DE ACOPIO", + "block.create.stockpile_switch.tooltip.summary": "Activa una señal de redstone en función de la cantidad de _objetos almacenados_ en el _contenedor_ adjunto. Viene con un práctico filtro. A diferencia de un _comparador, el _interruptor de acopio_ permite la configuración de _umbrales_, a partir de los cuales se invierten las señales.", + "block.create.stockpile_switch.tooltip.condition1": "Cuando se hace clic derecho", + "block.create.stockpile_switch.tooltip.behaviour1": "Abre la interfaz de configuración.", - "block.create.clutch.tooltip": "CLUTCH", - "block.create.clutch.tooltip.summary": "Un control para activar/desactivar la rotación de los ejes conectados.", - "block.create.clutch.tooltip.condition1": "Cuando tiene una señal de Redstone", - "block.create.clutch.tooltip.behaviour1": "_Deja_ de transmitir la rotación hacia el otro lado.", + "block.create.content_observer.tooltip": "OBSERVADOR DE CONTENIDO", + "block.create.content_observer.tooltip.summary": "_Detecta objetos_ dentro de _contenedores_ y _transportadores_ que coincidan con un _filtro_ configurado. Mientras el _inventario_, la _cinta_ o la _canaleta_ observados _contengan_ un objeto que coincida, este componente emitirá una _señal de redstone_. Cuando un embudo observado _transfiere_ un objeto coincidente, este componente emitirá un _pulso de redstone_.", - "block.create.encased_chain_drive.tooltip": "ENCASED_CHAIN_DRIVE", - "block.create.encased_chain_drive.tooltip.summary": "_Transmite_ la _rotación_ en una línea recta y a las _Transmisiones_ _de_ _Cadena_ _Empotrada_ adyacentes. Las transmisiones de cadena se conectan en un grupo cuando se colocan juntas por cualquier cara sin un eje. Su orientación no tiene por qué coincidir.", - "block.create.encased_chain_drive.tooltip.condition1": "Cuando se conectan", - "block.create.encased_chain_drive.tooltip.behaviour1": "Los bloques adjuntos transmitirán la _velocidad_ _de_ _rotación_ y el sentido de este componente.", + "block.create.adjustable_crate.tooltip": "CAJA AJUSTABLE", + "block.create.adjustable_crate.tooltip.summary": "Este _contenedor de objetos_ permite el control manual de su capacidad. Puede contener hasta _16 pilas_ de cualquier objeto. Soporta _comparadores de redstone_.", + "block.create.adjustable_crate.tooltip.condition1": "Cuando se hace clic derecho", + "block.create.adjustable_crate.tooltip.behaviour1": "Abre la interfaz.", - "block.create.adjustable_chain_gearshift.tooltip": "ADJUSTABLE CHAIN GEARSHIFT", - "block.create.adjustable_chain_gearshift.tooltip.summary": "_Transmite_ la _rotación_ en una línea recta y a las _Transmisiones_ _de_ _Cadena_ _Empotrada_ adyacentes. Una _señal_ _de_ _redstone_ proporcionada a este bloque controlará el tamaño de la rueda motriz que se acopla a las cadenas de transmisión.", - "block.create.adjustable_chain_gearshift.tooltip.condition1": "Control por Redstone", - "block.create.adjustable_chain_gearshift.tooltip.behaviour1": "_Sin_ una señal, las cadenas adyacentes transmitirán la _misma_ _velocidad._ Con una señal a _máxima_ _potencia,_ las cadenas adyacentes transmitirán exactamente el _doble_ _de_ _su_ _velocidad._ Cualquier cosa intermedia dará resultados entre 1-2x su velocidad.", + "block.create.creative_crate.tooltip": "CAJA CREATIVA", + "block.create.creative_crate.tooltip.summary": "Este _contenedor de objetos_ permite la replicación infinita de cualquier elemento. Colócalo junto a un _cañón de esquemas_ para eliminar cualquier requisito de material.", + "block.create.creative_crate.tooltip.condition1": "Cuando el elemento está en la ranura para filtros", + "block.create.creative_crate.tooltip.behaviour1": "Todo lo que se _extraiga_ de este contenedor proporcionará un suministro _ilimitado_ del elemento especificado. Los objetos _insertados_ en esta caja serán _evitados_.", - "item.create.belt_connector.tooltip": "BELT CONNECTOR", - "item.create.belt_connector.tooltip.summary": "Conecta dos o más _ejes_ con una _Correa_ _Mecánica._ Los ejes conectados tendrán exactamente la misma velocidad y dirección de rotación. La cinta puede actuar como un _transportador_ para _Objetos_ y _Entidades._", - "item.create.belt_connector.tooltip.control1": "Click Derecho en un eje", - "item.create.belt_connector.tooltip.action1": "Selecciona el eje como una polea del cinturón. Ambos ejes seleccionados tienen que _alinearse_ ya sea _Verticalmente,_ _Horizontalmente,_ o _Diagonalmente_ hacia la dirección de la Correa.", - "item.create.belt_connector.tooltip.control2": "Click Derecho mientras se está agachado", - "item.create.belt_connector.tooltip.action2": "_Reinicia_ la primera posición seleccionada para la correa.", + "item.create.creative_blaze_cake.tooltip": "PASTEL CREATIVO", + "item.create.creative_blaze_cake.tooltip.summary": "Un regalo muy especial para los _Quemadores de Blaze_ que permite _controlar su nivel de calor_. Después de comer este pastel, los Quemadores de blaze _nunca se quedarán sin combustible_.", + "item.create.creative_blaze_cake.tooltip.condition1": "Click derecho en un Quemador de blaze", + "item.create.creative_blaze_cake.tooltip.behaviour1": "Bloquea el nivel de calor del Quemador de blaze. Si se utiliza de nuevo, _cicla_ el nivel de calor del Quemador de blaze.", - "item.create.goggles.tooltip": "GOGGLES", - "item.create.goggles.tooltip.summary": "Un par de gafas para aumentar la visión con _información_ _cinética_ útil.", - "item.create.goggles.tooltip.condition1": "Cuando se usan", - "item.create.goggles.tooltip.behaviour1": "Muestra _indicadores_ _con_ _colores_ correspondientes al _Nivel_ _de_ _Velocidad_ de un componente cinético colocado, así como _Impacto_ _de_ _Estrés_ y _Capacidad_ de los componentes individuales.", - "item.create.goggles.tooltip.condition2": "Al mirar el medidor", - "item.create.goggles.tooltip.behaviour2": "Muestra información detallada sobre la _velocidad_ o el _estrés_ de la red a la que está conectado el medidor.", + "block.create.controller_rail.tooltip": "RAÍL DE CONTROL", + "block.create.controller_rail.tooltip.summary": "Un raíl energizado _unidireccional_ capaz de _controlar con precisión_ la _velocidad de movimiento_ de una vagoneta.", + "block.create.controller_rail.tooltip.condition1": "Cuando es alimentado con redstone", + "block.create.controller_rail.tooltip.behaviour1": "_Acelera_ o _desacelera_ pasando _vagonetas_ correspondientes a la _fuerza de la señal_. Propaga la energía de redstone a los raíles de control adyacentes. Al alimentar dos raíles de control con diferentes intensidades, los carriles entre ellos interpolarán su señal.", - "item.create.wrench.tooltip": "WRENCH", - "item.create.wrench.tooltip.summary": "Una herramienta útil para trabajar en artefactos cinéticos. Se puede utilizar para _Rotar,_ _Desmantelar_ y _Configurar_ componentes.", - "item.create.wrench.tooltip.control1": "Click Derecho en un bloqueo cinético", - "item.create.wrench.tooltip.action1": "_Gira_ los componentes hacia o en contra de la cara con la que interactuó.", - "item.create.wrench.tooltip.control2": "Click Derecho mientras se está agachado", - "item.create.wrench.tooltip.action2": "_Desmonta_ los _componentes_ _cinéticos_ y los coloca de nuevo en _tú_ _inventario._" + "item.create.sand_paper.tooltip": "PAPEL DE LIJA", + "item.create.sand_paper.tooltip.summary": "Un papel rugoso que se puede utilizar para _pulir materiales_. Se puede aplicar automáticamente con el _desplegador_.", + "item.create.sand_paper.tooltip.condition1": "Cuando se usa", + "item.create.sand_paper.tooltip.behaviour1": "Aplica un pulido a los objetos sostenidos en la _mano libre_ o tirados en el _suelo_ cuando se _miran_.", -} \ No newline at end of file + "item.create.builders_tea.tooltip": "TÉ DEL CONSTRUCTOR", + "item.create.builders_tea.tooltip.summary": "La bebida perfecta para empezar el día. Motivante y saturante.", + + "item.create.refined_radiance.tooltip": "RESPLANDOR REFINADO", + "item.create.refined_radiance.tooltip.summary": "Un material cromático forjado a partir de la _luz absorbida_.", + "item.create.refined_radiance.tooltip.condition1": "Trabajo en progreso", + "item.create.refined_radiance.tooltip.behaviour1": "Los usos para este material estarán disponibles en un próximo lanzamiento.", + + "item.create.shadow_steel.tooltip": "ACERO SOMBRÍO", + "item.create.shadow_steel.tooltip.summary": "Un material cromático forjado en el _vacío_.", + "item.create.shadow_steel.tooltip.condition1": "Trabajo en curso", + "item.create.shadow_steel.tooltip.behaviour1": "Los usos de este material estarán disponibles en una futura versión.", + + "item.create.linked_controller.tooltip": "CONTROLADOR ENLAZADO", + "item.create.linked_controller.tooltip.summary": "Permite el control manual de las frecuencias de _enlaces de redstone_ asignadas a sus seis botones..", + "item.create.linked_controller.tooltip.condition1": "Al hacer clic derecho", + "item.create.linked_controller.tooltip.behaviour1": "Activa el _controlador_. Los _controles de movimiento_ se adquieren mientras está activo.", + "item.create.linked_controller.tooltip.condition2": "Al usar Mayús izdo + clic derecho", + "item.create.linked_controller.tooltip.behaviour2": "Abre la interfaz de configuración manual.", + "item.create.linked_controller.tooltip.condition3": "Al usar clic derecho en un receptor de enlaces de redstone", + "item.create.linked_controller.tooltip.behaviour3": "Activa el _modo de vinculación_, pulsa uno de los _seis controles_ para vincularlo a la _frecuencia de los enlaces_.", + "item.create.linked_controller.tooltip.condition4": "Clic derecho en un atril", + "item.create.linked_controller.tooltip.behaviour4": "Coloca el controlador en el atril para facilitar su activación. (Clic derecho + mayús izq. para recuperarlo)", + + "item.create.diving_helmet.tooltip": "CASCO DE BUCEO", + "item.create.diving_helmet.tooltip.summary": "Junto con un _depósito trasero de cobre_, permite que el usuario pueda respirar bajo el agua durante un tiempo prolongado.", + "item.create.diving_helmet.tooltip.condition1": "Cuando se lleva puesto", + "item.create.diving_helmet.tooltip.behaviour1": "Proporciona el efecto de _respiración acuática_, drenando lentamente la presión de aire del _depósito trasero_.", + + "item.create.copper_backtank.tooltip": "DEPÓSITO TRASERO DE COBRE", + "item.create.copper_backtank.tooltip.summary": "Un tanque portátil para transportar _aire presurizado_.", + "item.create.copper_backtank.tooltip.condition1": "Cuando se lleva puesto", + "item.create.copper_backtank.tooltip.behaviour1": "Proporciona _aire presurizado_ a los equipos que lo requieran.", + "item.create.copper_backtank.tooltip.condition2": "Cuando se coloca y es alimentado por cinética", + "item.create.copper_backtank.tooltip.behaviour2": "Recoge _aire presurizado_ a un ritmo que depende de la velocidad rotacional.", + + "item.create.diving_boots.tooltip": "BOTAS DE BUCEO", + "item.create.diving_boots.tooltip.summary": "Un par de _botas_ pesadas, que permiten atravesar mejor el suelo del océano.", + "item.create.diving_boots.tooltip.condition1": "Cuando se llevan puestas", + "item.create.diving_boots.tooltip.behaviour1": "El portador se hunde rápido y no puede nadar. Concede la capacidad de caminar y saltar bajo el agua. Al portador no le afectarán las _correas mecánicas.", + + "item.create.crafting_blueprint.tooltip": "PLANO DE ELABORACIÓN", + "item.create.crafting_blueprint.tooltip.summary": "Colocado en una pared, puede utilizarse para especificar la disposición de los ingredientes para facilitar la elaboración manual. Cada ranura representa una receta", + "item.create.crafting_blueprint.condition1": "Al hacer clic derecho en una ranura vacía", + "item.create.crafting_blueprint.behaviour1": "Abre un menú que permite configurar una receta y los objetos a mostrar.", + "item.create.crafting_blueprint.condition2": "Al hacer clic derecho en una ranura configurada", + "item.create.crafting_blueprint.behaviour2": "Aplica la receta configurada con los ingredientes que se encuentran en tu inventario. Se puede utilizar para fabricar hasta una pila de objetos.", + + "item.create.minecart_coupling.tooltip": "ENSAMBLADOR DE VAGONETAS", + "item.create.minecart_coupling.tooltip.summary": "_Encadena_ todas tus _vagonetas_ o _artilugios de vagoneta_ para formar un majestuoso _tren_.", + "item.create.minecart_coupling.tooltip.condition1": "Cuando se utiliza en vagonetas", + "item.create.minecart_coupling.tooltip.behaviour1": "_Acopla_ dos vagonetas, intentando mantenerlas a una _distancia constante_ mientras se mueven.", + + "block.create.peculiar_bell.tooltip": "CAMPANA PECULIAR", + "block.create.peculiar_bell.tooltip.summary": "Una campana decorativa de latón. Al colocarla sobre un _Fuego del alma_ o una _Fogata del alma_ puede producirse una transformación espeluznante...", + + "block.create.haunted_bell.tooltip": "CAMPANA ENCANTADA", + "block.create.haunted_bell.tooltip.summary": "Una _campana maldita_ perseguida por las almas perdidas del Nether", + "block.create.haunted_bell.tooltip.condition1": "Cuando se sostiene o suena", + "block.create.haunted_bell.tooltip.behaviour1": "Resalta los _puntos sin luz_ cercanos en los que pueden aparecer las _criaturas hostiles_.", + + + "_": "->------------------------] Ponder Content [------------------------<-", + + "create.ponder.hold_to_ponder": "Mantén [%1$s] para considerar", + "create.ponder.subject": "Tema de esta escena", + "create.ponder.pondering": "Considerando sobre...", + "create.ponder.identify_mode": "Identificando modo activo.\nDespausea con [%1$s]", + "create.ponder.associated": "Entradas asociadas", + "create.ponder.close": "Cerrar", + "create.ponder.identify": "Identificar", + "create.ponder.next": "Escena siguiente", + "create.ponder.previous": "Escena previa", + "create.ponder.replay": "Repetición", + "create.ponder.think_back": "Volver atrás", + "create.ponder.slow_text": "Lectura cómoda", + "create.ponder.exit": "Salir", + "create.ponder.welcome": "Bienvenido al instructivo de Create", + "create.ponder.categories": "Categorías disponibles", + "create.ponder.index_description": "Haga clic en uno de los iconos para conocer sus objetos y bloques asociados", + "create.ponder.index_title": "Índice", + "create.ponder.shared.rpm16": "16 RPM", + "create.ponder.shared.behaviour_modify_wrench": "Este comportamiento puede modificarse mediante una llave inglesa", + "create.ponder.shared.storage_on_contraption": "Los inventarios unidos al artilugio recogerán sus producciones automáticamente", + "create.ponder.shared.sneak_and": "Mayús izdo. +", + "create.ponder.shared.rpm8": "8 RPM", + "create.ponder.shared.ctrl_and": "Ctrl +", + "create.ponder.shared.rpm32": "32 RPM", + "create.ponder.shared.rpm16_source": "Fuente: 16 RPM", + "create.ponder.shared.movement_anchors": "Con la ayuda de un chasis o pegamento, se pueden mover estructuras más grandes.", + "create.ponder.tag.redstone": "Componentes lógicos", + "create.ponder.tag.redstone.description": "Componentes que ayudan a la ingeniería de redstone", + "create.ponder.tag.contraption_assembly": "Utilidades para adjuntar bloques", + "create.ponder.tag.contraption_assembly.description": "Herramientas y componentes utilizados para montar estructuras con movimiento, como un artilugio animado", + "create.ponder.tag.fluids": "Manipuladores de fluidos", + "create.ponder.tag.fluids.description": "Componentes que ayudan a transportar y utilizar fluidos", + "create.ponder.tag.decoration": "Estética", + "create.ponder.tag.decoration.description": "Componentes utilizados principalmente con fines decorativos", + "create.ponder.tag.windmill_sails": "Velas para los rodamientos de los molinos de viento", + "create.ponder.tag.windmill_sails.description": "Bloques que cuentan para la fuerza de un artefacto de molino de viento cuando se ensamblan. Cada uno de ellos tiene la misma eficacia al hacerlo.", + "create.ponder.tag.arm_targets": "Objetivos para los brazos mecánicos", + "create.ponder.tag.arm_targets.description": "Componentes que pueden seleccionarse como entradas o salidas del brazo mecánico", + "create.ponder.tag.kinetic_appliances": "Dispositivos cinéticos", + "create.ponder.tag.kinetic_appliances.description": "Componentes que utilizan la fuerza rotacional", + "create.ponder.tag.kinetic_sources": "Fuentes cinéticas", + "create.ponder.tag.kinetic_sources.description": "Componentes que generan fuerza rotacional", + "create.ponder.tag.movement_anchor": "Anclas de movimiento", + "create.ponder.tag.movement_anchor.description": "Componentes que permiten crear artilugios en movimiento, animando una estructura anexa de diversas maneras", + "create.ponder.tag.kinetic_relays": "Transmisores cinéticos", + "create.ponder.tag.kinetic_relays.description": "Componentes que ayudan a transmitir la fuerza rotacional en otro lugar", + "create.ponder.tag.contraption_actor": "Actores del artilugio", + "create.ponder.tag.contraption_actor.description": "Componentes que exponen un comportamiento especial cuando están unidos a un artilugio en movimiento", + "create.ponder.tag.creative": "Modo creativo", + "create.ponder.tag.creative.description": "Componentes que no suelen estar disponibles para el Modo Supervivencia", + "create.ponder.tag.logistics": "Transporte de objetos", + "create.ponder.tag.logistics.description": "Componentes que ayudan a desplazar los objetos", + + "create.ponder.adjustable_pulse_repeater.header": "Controlar señales mediante repetidores de pulsos ajustables", + "create.ponder.adjustable_pulse_repeater.text_1": "Los repetidores de pulsos ajustables emiten un pulso corto con un retardo", + "create.ponder.adjustable_pulse_repeater.text_2": "Con la rueda del ratón se puede configurar el tiempo de carga", + "create.ponder.adjustable_pulse_repeater.text_3": "Los retrasos configurados pueden ser de hasta 30 minutos", + + "create.ponder.adjustable_repeater.header": "Controlar señales mediante repetidores ajustables", + "create.ponder.adjustable_repeater.text_1": "Los repetidores ajustables se comportan de forma similar a los repetidores normales", + "create.ponder.adjustable_repeater.text_2": "Se cargan durante un tiempo determinado...", + "create.ponder.adjustable_repeater.text_3": "...y se enfrían durante el mismo tiempo", + "create.ponder.adjustable_repeater.text_4": "Con la rueda del ratón se puede configurar el tiempo de carga", + "create.ponder.adjustable_repeater.text_5": "Los retrasos configurados pueden variar hasta 30 minutos", + + "create.ponder.analog_lever.header": "Controlar señales mediante la palanca analógica", + "create.ponder.analog_lever.text_1": "Las palancas analógicas son una fuente compacta y precisa de energía de redstone", + "create.ponder.analog_lever.text_2": "Haz clic derecho para aumentar su potencia analógica", + "create.ponder.analog_lever.text_3": "Usa Mayús izdo + clic derecho para volver a disminuir su potencia", + + "create.ponder.andesite_tunnel.header": "Usar túneles de andesita", + "create.ponder.andesite_tunnel.text_1": "Los túneles de andesita se pueden utilizar para tapar las correas", + "create.ponder.andesite_tunnel.text_2": "Siempre que un túnel de andesita tenga conexiones a los lados...", + "create.ponder.andesite_tunnel.text_3": "...dividirá exactamente un elemento de cualquier pila que pase", + "create.ponder.andesite_tunnel.text_4": "El resto continuará su camino", + + "create.ponder.basin.header": "Procesar objetos en la cuenca", + "create.ponder.basin.text_1": "Una cuenca puede contener objetos y fluidos para su procesamiento", + "create.ponder.basin.text_2": "Después de un paso de procesamamiento, las cuencas intentan descargar por debajo a un lado de ellas", + "create.ponder.basin.text_3": "Cuando un ingrediente válido está presente, la cuenca mostrará un conducto de salida", + "create.ponder.basin.text_4": "Aquí se pueden aplicar varias opciones", + "create.ponder.basin.text_5": "Las salidas serán capturadas por el inventario que está por debajo", + "create.ponder.basin.text_6": "Sin conducto de salida, la cuenca retendrá los objetos creados en su procesamiento", + "create.ponder.basin.text_7": "Esto puede ser útil si las salidas deben ser reutilizadas como ingredientes", + "create.ponder.basin.text_8": "Las salidas deseadas tendrán que ser extraídas de la cuenca", + "create.ponder.basin.text_9": "Podría ser necesario un filtro para evitar sacar los objetos no procesados", + + "create.ponder.bearing_modes.header": "Modos de movimiento del rodamiento mecánico", + "create.ponder.bearing_modes.text_1": "Cuando se detenga, el rodamiento mecánico colocará la estructura en el ángulo más cercano alineado con la cuadrícula", + "create.ponder.bearing_modes.text_2": "Se puede configurar para que nunca vuelva a los bloques sólidos, o sólo cerca del ángulo en el que comenzó", + + "create.ponder.belt_casing.header": "Correas revestidas", + "create.ponder.belt_casing.text_1": "Se puede utilizar revestidor de latón o andesita para decorar las correas", + "create.ponder.belt_casing.text_2": "Se puede utilizar una llave inglesa para quitar el revestimiento", + + "create.ponder.belt_connector.header": "El uso de las correas mecánicas", + "create.ponder.belt_connector.text_1": "Al hacer clic derecho en dos ejes con una correa mecánica se conectarán entre sí", + "create.ponder.belt_connector.text_2": "Las selecciones accidentales pueden ser canceladas con Mayús izdo + clic derecho", + "create.ponder.belt_connector.text_3": "Se pueden añadir ejes adicionales en toda la correa", + "create.ponder.belt_connector.text_4": "Los ejes conectados a través de correas girarán con velocidad y dirección idénticas", + "create.ponder.belt_connector.text_5": "Los ejes añadidos se pueden quitar con la llave inglesa", + "create.ponder.belt_connector.text_6": "Las correas mecánicas se pueden teñir con fines estéticos", + + "create.ponder.belt_directions.header": "Orientaciones válidas para las correas mecánicas", + "create.ponder.belt_directions.text_1": "Las correas mecánicas no pueden conectarse en direcciones arbitrarias", + "create.ponder.belt_directions.text_2": "1. Pueden conectarse horizontalmente", + "create.ponder.belt_directions.text_3": "2. Pueden conectarse en diagonal", + "create.ponder.belt_directions.text_4": "3. Pueden conectarse verticalmente", + "create.ponder.belt_directions.text_5": "4. Y pueden conectar ejes verticales horizontalmente", + "create.ponder.belt_directions.text_6": "Estas son todas las direcciones posibles. Pueden abarcar cualquier longitud entre 2 y 20 bloques", + + "create.ponder.belt_transport.header": "El uso de las correas mecánicas para la logística", + "create.ponder.belt_transport.text_1": "Las correas mecánicas transportan objetos y otras entidades", + "create.ponder.belt_transport.text_2": "Haz clic derecho con la mano vacía para sacar objetos de una 'cinta'", + + "create.ponder.blaze_burner.header": "Alimentar quemadores de blaze", + "create.ponder.blaze_burner.text_1": "Los quemadores de blaze pueden proporcionar calor a los objetos procesados en una cuenca", + "create.ponder.blaze_burner.text_2": "Para ello, el blaze tiene que ser alimentado con objetos inflamables", + "create.ponder.blaze_burner.text_3": "Con un pastel de blaze, el quemador puede alcanzar un mayor nivel de calor", + "create.ponder.blaze_burner.text_4": "El proceso de alimentación puede automatizarse utilizando desplegadores o brazos mecánicos", + + "create.ponder.brass_funnel.header": "El embudo de latón", + "create.ponder.brass_funnel.text_1": "Los embudos de andesita sólo pueden extraer objetos individuales", + "create.ponder.brass_funnel.text_2": "Los embudos de latón pueden extraer hasta una pila completa", + "create.ponder.brass_funnel.text_3": "Usar la rueda de desplazamiento del ratón en la ranura para filtros permite un control preciso del tamaño de la pila extraída.", + "create.ponder.brass_funnel.text_4": "El uso de objetos en la ranura de filtrado restringirá el embudo para transferir sólo las pilas que coincidan.", + + "create.ponder.brass_tunnel.header": "Usar túneles de latón", + "create.ponder.brass_tunnel.text_1": "Los túneles de latón pueden utilizarse para tapar las correas", + "create.ponder.brass_tunnel.text_2": "Tienen ranuras de filtro en cada lado abierto", + "create.ponder.brass_tunnel.text_3": "Los filtros en las conexiones de entrada simplemente bloquean los objetos que no coincidan", + "create.ponder.brass_tunnel.text_4": "Los filtros en las conexiones de salida pueden utilizarse para ordenar los objetos por tipo", + "create.ponder.brass_tunnel.text_5": "Siempre que un objeto de paso tenga múltiples salidas válidas, el modo de distribución decidirá cómo manejarlo", + "create.ponder.brass_tunnel.text_6": "Los túneles de latón en bandas paralelas formarán un grupo", + "create.ponder.brass_tunnel.text_7": "Los objetos entrantes se distribuirán ahora por todas las salidas conectadas", + "create.ponder.brass_tunnel.text_8": "Para ello, los objetos también pueden insertarse en el bloque del túnel directamente", + + "create.ponder.brass_tunnel_modes.header": "Modos de distribución del túnel de latón", + "create.ponder.brass_tunnel_modes.text_1": "Mediante una llave inglesa se puede configurar el comportamiento de distribución de los túneles de latón", + "create.ponder.brass_tunnel_modes.text_10": "'Sincronizar entradas' es una configuración única de los túneles de latón", + "create.ponder.brass_tunnel_modes.text_11": "Las entradas sólo pueden pasar si cada túnel del grupo tiene una en espera", + "create.ponder.brass_tunnel_modes.text_12": "Esto asegura que todas las correas afectadas suministren objetos al mismo tiempo", + "create.ponder.brass_tunnel_modes.text_2": "El modo División intentará distribuir la pila uniformemente entre las salidas disponibles", + "create.ponder.brass_tunnel_modes.text_3": "Si una salida no puede tomar más objetos, se saltará", + "create.ponder.brass_tunnel_modes.text_4": "El modo División forzada nunca saltará las salidas, y en su lugar esperará hasta que estén libres", + "create.ponder.brass_tunnel_modes.text_5": "El modo Round Robin mantiene las pilas enteras, y recorre las salidas de forma iterativa", + "create.ponder.brass_tunnel_modes.text_6": "Una vez más, si una salida no puede aceptar más objetos, se saltará", + "create.ponder.brass_tunnel_modes.text_7": "El modo Round Robin forzado nunca omite salidas", + "create.ponder.brass_tunnel_modes.text_8": "El modo Preferir el más cercano prioriza las salidas más cercanas a la ubicación de entrada de los objetos", + "create.ponder.brass_tunnel_modes.text_9": "El modo Aleatorizar distribuirá pilas enteras a salidas elegidas al azar", + + "create.ponder.cart_assembler.header": "Mover estructuras usando ensambladores de vagonetas", + "create.ponder.cart_assembler.text_1": "Los ensambladores de vagonetas montan estructuras adjuntas a las vagonetas que pasan", + "create.ponder.cart_assembler.text_2": "Sin una señal de redstone, desmonta los artilugios de vagoneta que pasan de nuevo en bloques", + "create.ponder.cart_assembler.text_3": "El uso de una llave inglesa en una vagoneta te permitirá llevar el artilugio a otro lugar", + + "create.ponder.cart_assembler_dual.header": "Ensamblajes de artilugios de vagoneta", + "create.ponder.cart_assembler_dual.text_1": "Siempre que dos ensambladores de vagoneta compartan una estructura adjunta...", + "create.ponder.cart_assembler_dual.text_2": "...al alimentar a cualquiera de ellos se creará un artilugio de vagoneta", + "create.ponder.cart_assembler_dual.text_3": "Las vagonetas se comportarán como las conectadas a través del acoplamiento de vagoneta", + + "create.ponder.cart_assembler_modes.header": "Configurar la orientación de los artilugios de vagonetas", + "create.ponder.cart_assembler_modes.text_1": "Los artilugios de vagonetas girarán para orientarse hacia el movimiento de sus vagonetas", + "create.ponder.cart_assembler_modes.text_2": "Esta flecha indica qué lado de la estructura se considerará la parte delantera", + "create.ponder.cart_assembler_modes.text_3": "Si el ensamblador está configurado para bloquear la rotación, la orientación de los artilugios nunca cambiará", + + "create.ponder.cart_assembler_rails.header": "Otros tipos de vagonetas y raíles", + "create.ponder.cart_assembler_rails.text_1": "Los ensambladores de vagonetas en raíles normales no afectarán el movimiento de las vagonetas que pasen", + "create.ponder.cart_assembler_rails.text_2": "Cuando se encuentre en un raíl motorizado o en un raíl de control, las vagonetas se mantendrán en su sitio hasta que sea motorizado", + "create.ponder.cart_assembler_rails.text_3": "Se pueden utilizar otros tipos de vagonetas como anclaje", + "create.ponder.cart_assembler_rails.text_4": "Los artilugios de vagonetas de horno se mantendrán alimentados a sí mismos, sacando combustible de cualquier inventario adjunto", + + "create.ponder.chain_drive.header": "Transmitir fuerza rotacional con las cadenas de transmisión", + "create.ponder.chain_drive.text_1": "Las cadenas de transmisión transmiten la rotación entre sí en fila", + "create.ponder.chain_drive.text_2": "Todos los ejes conectados así girarán en la misma dirección", + "create.ponder.chain_drive.text_3": "Cualquier parte de la fila puede girar 90 grados usando una llave inglesa", + + "create.ponder.chain_gearshift.header": "Controlar la velocidad de rotación con la cadena de transmisión ajustable", + "create.ponder.chain_gearshift.text_1": "Las cadenas de transmisión ajustables sin alimentación se comportan exactamente como las cadenas de transmisión", + "create.ponder.chain_gearshift.text_2": "Cuando están alimentadas, la velocidad transmitida a las demás cadenas de transmisión de la fila se duplica", + "create.ponder.chain_gearshift.text_3": "Siempre que la cadena de transmisión alimentada no esté en el origen, su velocidad se reducirá a la mitad", + "create.ponder.chain_gearshift.text_4": "En ambos casos, las cadenas de transmisión de la fila siempre funcionan a 2 veces la velocidad de la cadena de transmisión alimentada", + "create.ponder.chain_gearshift.text_5": "Utilizando señales analógicas, la relación puede ajustarse con mayor precisión, entre 1 y 2", + "create.ponder.chain_gearshift.text_6": "12 RPM", + + "create.ponder.chute.header": "Transportar objetos hacia abajo a través de ductos", + "create.ponder.chute.text_1": "Los ductos pueden transportar objetos verticalmente desde y hacia los inventarios", + "create.ponder.chute.text_2": "Usando la llave inglesa, se puede crear una ventana", + "create.ponder.chute.text_3": "Colocar ductos apuntando a las caras laterales de otro lo hará en diagonal", + + "create.ponder.chute_upward.header": "Transportar objetos hacia arriba mediante ductos", + "create.ponder.chute_upward.text_1": "Usando ventiladores revestidos en la parte superior o inferior, un ducto puede transportar objetos hacia arriba", + "create.ponder.chute_upward.text_2": "Al inspeccionar los ductos con las gafas del constructor, se revela información sobre la dirección del movimiento", + "create.ponder.chute_upward.text_3": "En el extremo 'bloqueado', los objetos tendrán que ser insertados/tomados de los lados", + + "create.ponder.clockwork_bearing.header": "Animar estructuras con rodamientos tipo reloj", + "create.ponder.clockwork_bearing.text_1": "Los rodamientos tipo reloj se fijan a los bloques que tienen delante", + "create.ponder.clockwork_bearing.text_2": "Al recibir fuerza rotacional, la estructura girará según la hora del día", + "create.ponder.clockwork_bearing.text_3": "3:00", + "create.ponder.clockwork_bearing.text_4": "4:00", + "create.ponder.clockwork_bearing.text_5": "Haz clic derecho en el rodamiento para iniciar o detener la animación de la estructura", + "create.ponder.clockwork_bearing.text_6": "Delante de la manecilla de las horas se puede añadir una segunda estructura", + "create.ponder.clockwork_bearing.text_7": "Asegúrese de que las dos estructuras no están unidas entre sí con pegamento o algo similar", + "create.ponder.clockwork_bearing.text_8": "La segunda estructura ahora girará como el minutero", + + "create.ponder.clutch.header": "Controlar la fuerza rotacional mediante un embrague", + "create.ponder.clutch.text_1": "Los embragues transmitirán la rotación en línea recta", + "create.ponder.clutch.text_2": "Cuando se alimentan con redstone, rompen la conexión", + + "create.ponder.cog_speedup.header": "Cambiar de marchas con engranajes", + "create.ponder.cog_speedup.text_1": "Los engranajes grandes y pequeños pueden conectarse en diagonal", + "create.ponder.cog_speedup.text_2": "Al cambiar de engranajes grandes a pequeños, la velocidad rotacional se duplicará", + "create.ponder.cog_speedup.text_3": "Inversamente, la velocidad rotacional se reducirá a la mitad", + + "create.ponder.cogwheel.header": "Transmitir fuerza rotacional mediante engranajes", + "create.ponder.cogwheel.text_1": "Los engranajes transmitirán la rotación a otros engranajes adyacentes", + "create.ponder.cogwheel.text_2": "Los ejes adyacentes conectados así, girarán en direcciones opuestas", + + "create.ponder.creative_fluid_tank.header": "Tanque de fluídos creativo", + "create.ponder.creative_fluid_tank.text_1": "Los depósitos de fluidos creativos pueden utilizarse para proporcionar un suministro de fluidos sin fondo", + "create.ponder.creative_fluid_tank.text_2": "Haga clic con el botón derecho en un elemento que contenga fluido para configurarlo", + "create.ponder.creative_fluid_tank.text_3": "Las redes de tuberías pueden ahora extraer sin cesar el fluido asignado del depósito", + "create.ponder.creative_fluid_tank.text_4": "Cualquier fluido empujado de vuelta a un tanque de fluido creativo será anulado", + + "create.ponder.creative_motor.header": "Generar fuerza rotacional con motores creativos", + "create.ponder.creative_motor.text_1": "Los motores creativos son una fuente compacta y configurable de fuerza rotacional", + "create.ponder.creative_motor.text_2": "Usar la rueda de desplazamiento del ratón en su parte trasera cambia las RPM de la salida rotacional", + + "create.ponder.crushing_wheels.header": "Procesar objetos con las ruedas trituradoras", + "create.ponder.crushing_wheels.text_1": "Un par de ruedas trituradoras pueden moler objetos de forma muy eficaz", + "create.ponder.crushing_wheels.text_2": "Su fuerza rotacional tiene que hacerlas girar una contra otra", + "create.ponder.crushing_wheels.text_3": "Los objetos lanzados o insertados en la parte superior serán procesados", + "create.ponder.crushing_wheels.text_4": "Los objetos también pueden ser insertados y recogidos a través de medios automatizados", + + "create.ponder.deployer.header": "Usar el desplegador", + "create.ponder.deployer.text_1": "Dada la fuerza rotacional, un desplegador puede imitar las interacciones de los jugadores", + "create.ponder.deployer.text_10": "Haz clic derecho en el frente para darle un objeto a utilizar", + "create.ponder.deployer.text_11": "Los objetos también pueden ser insertados automáticamente", + "create.ponder.deployer.text_12": "Los desplegadores llevan una ranura de filtro", + "create.ponder.deployer.text_13": "Cuando se establece un filtro, sólo se activa mientras se mantiene un elemento coincidente", + "create.ponder.deployer.text_14": "Ahora sólo se pueden insertar los objetos que coincidan con el filtro...", + "create.ponder.deployer.text_15": "...y sólo se extraerán los objetos que no coincidan", + "create.ponder.deployer.text_2": "Siempre interactuará con la posición 2 bloques delante de sí mismo", + "create.ponder.deployer.text_3": "Los bloques situados directamente delante no lo obstruirán", + "create.ponder.deployer.text_4": "Los desplegadores pueden:", + "create.ponder.deployer.text_5": "Colocar bloques,", + "create.ponder.deployer.text_6": "Usar objetos,", + "create.ponder.deployer.text_7": "Activar bloques,", + "create.ponder.deployer.text_8": "Cosechar bloques", + "create.ponder.deployer.text_9": "Y atacar criaturas", + + "create.ponder.deployer_contraption.header": "Usar desplegadores en artilugios", + "create.ponder.deployer_contraption.text_1": "Siempre que los desplegadores se muevan como parte de un artilugio animado...", + "create.ponder.deployer_contraption.text_2": "Se activan en cada ubicación visitada, utilizando objetos de los inventarios de cualquier parte del artilugio", + "create.ponder.deployer_contraption.text_3": "La ranura para filtros se puede utilizar para especificar qué objetos tirar", + + "create.ponder.deployer_modes.header": "Modos del desplegador", + "create.ponder.deployer_modes.text_1": "Por defecto, un desplegador imita la interacción del clic derecho del ratón", + "create.ponder.deployer_modes.text_2": "Usando una llave inglesa, se puede configurar para imitar un clic izquierdo en su lugar", + + "create.ponder.deployer_processing.header": "Procesar objetos mediante desplegadores", + "create.ponder.deployer_processing.text_1": "Con un objeto de sujeción ajustado, los desplegadores pueden procesar los objetos proporcionados por debajo de ellos", + "create.ponder.deployer_processing.text_2": "Los objetos de entrada pueden soltarse o colocarse en un depósito bajo el desplegador", + "create.ponder.deployer_processing.text_3": "Cuando los objetos se proporcionan en una 'cinta'...", + "create.ponder.deployer_processing.text_4": "El desplegador los retendrá y procesará automáticamente", + + "create.ponder.deployer_redstone.header": "Controlar desplegadores con redstone", + "create.ponder.deployer_redstone.text_1": "Al controlar los desplegadores con redstone, éstos no se activarán", + "create.ponder.deployer_redstone.text_2": "Antes de detenerse, el desplegador terminará cualquier ciclo iniciado", + "create.ponder.deployer_redstone.text_3": "Por lo tanto, un pulso negativo puede ser utilizado para desencadenar exactamente un ciclo de activación", + + "create.ponder.depot.header": "Usar depósitos", + "create.ponder.depot.text_1": "Los depósitos pueden servir como objetos 'fijos' de la correa", + "create.ponder.depot.text_2": "Haz clic derecho para colocar o eliminar manualmente objetos del mismo", + "create.ponder.depot.text_3": "Al igual que las correas mecánicas, pueden proporcionar objetos para su procesamiento", + "create.ponder.depot.text_4": "...así como proporcionar objetos a los brazos mecánicos", + + "create.ponder.empty_blaze_burner.header": "Usar quemadores de blaze vacíos", + "create.ponder.empty_blaze_burner.text_1": "Haz clic derecho en un blaze con el quemador vacío para capturarlo", + "create.ponder.empty_blaze_burner.text_2": "Alternativamente, los blaze pueden ser recogidos de sus spawners directamente", + "create.ponder.empty_blaze_burner.text_3": "Ahora tienes una fuente de calor ideal para varias máquinas", + "create.ponder.empty_blaze_burner.text_4": "Por motivos estéticos, los quemadores de blaze vacíos también se pueden encender con pedernal y acero", + "create.ponder.empty_blaze_burner.text_5": "La llama puede transformarse utilizando un objeto con alma", + "create.ponder.empty_blaze_burner.text_6": "Sin embargo, no son adecuados para la calefacción industrial", + + "create.ponder.encased_fluid_pipe.header": "Revestir tuberías de fluídos", + "create.ponder.encased_fluid_pipe.text_1": "El revestidor de cobre puede utilizarse para decorar las tuberías de fluidos", + "create.ponder.encased_fluid_pipe.text_2": "Además de estar ocultas, las tuberías revestidas están bloqueadas en su estado de conectividad", + "create.ponder.encased_fluid_pipe.text_3": "Ya no reaccionará a los bloques vecinos que se añadan o eliminen", + + "create.ponder.fan_direction.header": "El flujo de aire de los ventiladores revestidos", + "create.ponder.fan_direction.text_1": "Los ventiladores revestidos utilizan la fuerza rotacional para crear una corriente de aire", + "create.ponder.fan_direction.text_2": "La fuerza y la dirección del flujo dependen de la fuerza rotacional suministrada", + + "create.ponder.fan_processing.header": "Procesar objetos mediante ventiladores revestidos", + "create.ponder.fan_processing.text_1": "Al pasar por lava, el flujo de aire se calienta", + "create.ponder.fan_processing.text_2": "Los objetos capturados en la zona serán fundidos", + "create.ponder.fan_processing.text_3": "Los artículos de comida arrojados aquí serán incinerados", + "create.ponder.fan_processing.text_4": "En su lugar, se debería utilizar una instalación de ahumado, usando fuego", + "create.ponder.fan_processing.text_5": "Los flujos de aire que pasan por el agua crean una instalación de lavado", + "create.ponder.fan_processing.text_6": "Se puede hacer un nuevo e interesante procesamiento con él", + "create.ponder.fan_processing.text_7": "La velocidad del ventilador NO afecta a la velocidad de procesamiento, sólo a su rango", + "create.ponder.fan_processing.text_8": "El procesamiento del ventilador también puede aplicarse a los objetos de los depósitos y las correas", + + "create.ponder.fan_source.header": "Generar fuerza rotacional mediante ventiladores revestidos", + "create.ponder.fan_source.text_1": "Los ventiladores orientados hacia una fuente de calor pueden proporcionar fuerza rotacional", + "create.ponder.fan_source.text_2": "Cuando se les da una señal de redstone, los ventiladores comenzarán a proporcionar fuerza", + + "create.ponder.fluid_pipe_flow.header": "Transportar fluidos mediante tuberías de cobre", + "create.ponder.fluid_pipe_flow.text_1": "Las tuberías de fluidos pueden conectar dos o más fuentes y objetivos de fluidos", + "create.ponder.fluid_pipe_flow.text_2": "Utilizando una llave, se puede dar a un segmento de tubo recto una ventana", + "create.ponder.fluid_pipe_flow.text_3": "Las tuberías con ventanas no se conectarán a ningún otro segmento de tubería adyacente", + "create.ponder.fluid_pipe_flow.text_4": "Accionadas por bombas mecánicas, las tuberías pueden transportar fluidos", + "create.ponder.fluid_pipe_flow.text_5": "Al principio no se extrae ningún líquido", + "create.ponder.fluid_pipe_flow.text_6": "Una vez que el flujo los conecta, los puntos finales transfieren gradualmente su contenido", + "create.ponder.fluid_pipe_flow.text_7": "Así, los bloques de tuberías nunca contienen 'físicamente' ningún fluido", + + "create.ponder.fluid_pipe_interaction.header": "Drenaje y llenado de contenedores de fluidos", + "create.ponder.fluid_pipe_interaction.text_1": "Los puntos finales de una red de tuberías pueden interactuar con una variedad de bloques", + "create.ponder.fluid_pipe_interaction.text_2": "Cualquier bloque con capacidad para almacenar fluidos puede ser llenado o vaciado", + "create.ponder.fluid_pipe_interaction.text_3": "Los bloques de origen justo delante de un extremo abierto pueden ser recogidos...", + "create.ponder.fluid_pipe_interaction.text_4": "...mientras que el derrame en espacios vacíos puede crear fuentes de fluidos", + "create.ponder.fluid_pipe_interaction.text_5": "Las tuberías también pueden extraer fluidos de un puñado de otros bloques directamente", + + "create.ponder.fluid_tank_sizes.header": "Dimensiones de un depósito de fluidos", + "create.ponder.fluid_tank_sizes.text_1": "Los depósitos de fluidos pueden combinarse para aumentar la capacidad total", + "create.ponder.fluid_tank_sizes.text_2": "Su cuadrado base puede tener hasta 3 bloques de ancho...", + "create.ponder.fluid_tank_sizes.text_3": "...y crecen en altura en más de 30 capas adicionales", + "create.ponder.fluid_tank_sizes.text_4": "Con una llave inglesa, se puede cambiar la ventana de un tanque", + + "create.ponder.fluid_tank_storage.header": "Almacenar fluidos en depósitos de fluidos", + "create.ponder.fluid_tank_storage.text_1": "Los depósitos de fluidos pueden utilizarse para almacenar grandes cantidades de fluidos", + "create.ponder.fluid_tank_storage.text_2": "Las redes de tuberías pueden empujar y arrastrar fluidos desde cualquier lado", + "create.ponder.fluid_tank_storage.text_3": "El fluido contenido puede ser medido por un Comparador", + "create.ponder.fluid_tank_storage.text_4": "Sin embargo, en el Modo Supervivencia no se pueden añadir o tomar fluidos manualmente", + "create.ponder.fluid_tank_storage.text_5": "Puede utilizar cuencas, drenadores de objetos y tuberías para vaciar o llenar objetos que contengan líquido", + + "create.ponder.flywheel.header": "Generar fuerza rotacional con la rueda de inercia", + "create.ponder.flywheel.text_1": "Las ruedas de inercia son necesarias para generar fuerza rotacional con el motor de horno", + "create.ponder.flywheel.text_2": "La fuerza rotacional proporcionada tiene una capacidad de estrés muy grande", + "create.ponder.flywheel.text_3": "El uso de un alto horno duplicará la eficiencia del motor", + + "create.ponder.funnel_compat.header": "Compatibilidades con el embudo", + "create.ponder.funnel_compat.text_1": "Los embudos deberían interactuar bien con un puñado de otros componentes", + "create.ponder.funnel_compat.text_2": "Sierras verticales", + "create.ponder.funnel_compat.text_3": "Depósitos", + "create.ponder.funnel_compat.text_4": "Drenadores de objetos", + + "create.ponder.funnel_direction.header": "Dirección de la transferencia", + "create.ponder.funnel_direction.text_1": "Colocado normalmente, extrae objetos del inventario", + "create.ponder.funnel_direction.text_2": "Colocado mientras pulsa Mayús izdo, pone objetos en el inventario", + "create.ponder.funnel_direction.text_3": "Usando una llave inglesa, el embudo puede ser volteado después de su colocación", + "create.ponder.funnel_direction.text_4": "Se aplicarán las mismas reglas para la mayoría de las orientaciones", + "create.ponder.funnel_direction.text_5": "Los embudos en las correas extraerán/insertarán dependiendo de su dirección de movimiento", + + "create.ponder.funnel_intro.header": "Usar embudos", + "create.ponder.funnel_intro.text_1": "Los embudos son ideales para transferir objetos desde y hacia los inventarios", + + "create.ponder.funnel_redstone.header": "Embudos alimentados con redstone", + "create.ponder.funnel_redstone.text_1": "La energía de redstone impedirá la actuación de cualquier embudo", + + "create.ponder.funnel_transfer.header": "Transferencia directa", + "create.ponder.funnel_transfer.text_1": "Los embudos no pueden transferir nunca entre inventarios cerrados directamente", + "create.ponder.funnel_transfer.text_2": "Los ductos o los ductos inteligentes podrían ser más adecuados para estos fines", + "create.ponder.funnel_transfer.text_3": "Lo mismo se aplica para el movimiento horizontal. Una correa mecánica debería ayudar aquí", + + "create.ponder.furnace_engine.header": "Generar fuerza rotacional con el motor de horno", + "create.ponder.furnace_engine.text_1": "Los motores de horno generan fuerza rotacional mientras su horno adjunto está funcionando", + "create.ponder.furnace_engine.text_2": "La fuerza rotacional proporcionada tiene una capacidad de estrés muy grande", + "create.ponder.furnace_engine.text_3": "El uso de un alto horno duplicará la eficiencia del motor", + + "create.ponder.gantry_carriage.header": "Usar carros de grúa", + "create.ponder.gantry_carriage.text_1": "Los carros de grúa pueden montarse y deslizarse a lo largo de un eje de grúa", + "create.ponder.gantry_carriage.text_2": "Las instalaciones de grúa pueden mover bloques adjuntos", + + "create.ponder.gantry_cascaded.header": "Grúas en cascada", + "create.ponder.gantry_cascaded.text_1": "Los ejes de grúas se unen a un carro de grúa sin necesidad de pegamento", + "create.ponder.gantry_cascaded.text_2": "Lo mismo se aplica a los carros de grúa en los ejes de grúas desplazados", + "create.ponder.gantry_cascaded.text_3": "Así, un sistema de grúas puede estar en cascada para cubrir múltiples ejes de movimiento", + + "create.ponder.gantry_direction.header": "Dirección del movimiento de la grúa", + "create.ponder.gantry_direction.text_1": "Los ejes de grúa pueden tener orientaciones opuestas", + "create.ponder.gantry_direction.text_2": "La dirección de movimiento de los carros de grúa depende de la orientación de sus ejes", + "create.ponder.gantry_direction.text_3": "...así como de su sentido de rotación", + "create.ponder.gantry_direction.text_4": "Se aplican las mismas reglas para la rotación propagada", + + "create.ponder.gantry_redstone.header": "Propagación de la potencia de la grúa", + "create.ponder.gantry_redstone.text_1": "Los ejes de grúa alimentados con redstone dejan de mover sus carros", + "create.ponder.gantry_redstone.text_2": "En su lugar, su fuerza rotacional se transmite al eje de salida de los carros", + + "create.ponder.gantry_shaft.header": "Usar ejes de grúa", + "create.ponder.gantry_shaft.text_1": "Los ejes de grúa forman la base de una instalación de grúas. Los carros adjuntos se moverán a lo largo de ellos", + "create.ponder.gantry_shaft.text_2": "Las instalaciones de grúas pueden mover los bloques adjuntos", + + "create.ponder.gearbox.header": "Transmitir fuerza rotacional mediante cajas de transmisión", + "create.ponder.gearbox.text_1": "Saltar entre ejes de rotación puede volverse voluminoso rápidamente", + "create.ponder.gearbox.text_2": "Una caja de transmisión es el equivalente más compacto de esta configuración", + "create.ponder.gearbox.text_3": "Los ejes giran en las direcciones reflejadas...", + "create.ponder.gearbox.text_4": "...esto quiere decir que las conexiones rectas se invierten", + + "create.ponder.gearshift.header": "Controlar la dirección rotacional mediante una caja de cambios", + "create.ponder.gearshift.text_1": "La caja de cambios transmitirá la rotación en línea recta", + "create.ponder.gearshift.text_2": "Cuando es alimentada con redstone, invierte la transmisión", + + "create.ponder.hand_crank.header": "Generar fuerza rotacional mediante manivelas", + "create.ponder.hand_crank.text_1": "Las manivelas pueden ser utilizadas para aplicar fuerza rotacional manualmente", + "create.ponder.hand_crank.text_2": "Mantén pulsado clic derecho para girar en sentido antihorario", + "create.ponder.hand_crank.text_3": "Su velocidad de transmisión es relativamente alta", + "create.ponder.hand_crank.text_4": "Mayús izdo + clic derecho pulsado para girar en sentido horario", + + "create.ponder.hose_pulley.header": "Llenado y vaciado de fuentes mediante poleas de manguera", + "create.ponder.hose_pulley.text_1": "Las poleas para mangueras pueden utilizarse para llenar o drenar grandes masas de fluido", + "create.ponder.hose_pulley.text_2": "Con entrada cinética, se puede controlar la altura de la manguera de las poleas", + "create.ponder.hose_pulley.text_3": "La polea se retrae mientras la rotación de entrada se invierte", + "create.ponder.hose_pulley.text_4": "En el lado opuesto, se pueden conectar las tuberías", + "create.ponder.hose_pulley.text_5": "Las redes de tuberías conectadas pueden proporcionar fluido a la manguera...", + "create.ponder.hose_pulley.text_6": "...o tirar de él, vaciando la piscina en su lugar", + "create.ponder.hose_pulley.text_7": "La velocidad de llenado y vaciado de la polea depende totalmente del caudal de las redes de fluidos", + + "create.ponder.hose_pulley_infinite.header": "Llenado y drenaje pasivo de grandes masas de fluido", + "create.ponder.hose_pulley_infinite.text_1": "Al desplegar la polea de manguera en un océano lo suficientemente grande...", + "create.ponder.hose_pulley_infinite.text_2": "Proporcionará/eliminará fluidos sin afectar a la fuente", + "create.ponder.hose_pulley_infinite.text_3": "Las redes de tuberías pueden llevar fluidos de forma ilimitada desde/hacia dichas poleas", + + "create.ponder.hose_pulley_level.header": "Nivel de llenado y vaciado de las poleas de las mangueras", + "create.ponder.hose_pulley_level.text_1": "Mientras esté totalmente retraída, la polea de la manguera no puede funcionar", + "create.ponder.hose_pulley_level.text_2": "El drenaje va de arriba a abajo", + "create.ponder.hose_pulley_level.text_3": "El nivel de la superficie terminará justo debajo de donde termina la manguera", + "create.ponder.hose_pulley_level.text_4": "El llenado va de abajo a arriba", + "create.ponder.hose_pulley_level.text_5": "La piscina llena no crecerá más allá de la capa por encima del extremo de la manguera", + + "create.ponder.item_drain.header": "Vaciar contenedores de fluidos mediante drenajes de objetos", + "create.ponder.item_drain.text_1": "Los drenajes de objetos pueden extraer los fluidos de los objetos", + "create.ponder.item_drain.text_2": "Haz clic derecho para verter los fluidos de tu objeto retenido en él", + "create.ponder.item_drain.text_3": "Cuando los artículos se insertan desde el lado...", + "create.ponder.item_drain.text_4": "...ruedan a través, vaciando su líquido contenido", + "create.ponder.item_drain.text_5": "Las redes de tuberías pueden ahora extraer el fluido del buffer interno de los desagües", + + "create.ponder.large_cogwheel.header": "Transmitir fuerza rotacional mediante engranajes grandes", + "create.ponder.large_cogwheel.text_1": "Los engranajes grandes pueden conectarse entre sí en ángulo recto", + "create.ponder.large_cogwheel.text_2": "Ayudarán a transmitir la velocidad transportada a otros ejes de rotación.", + + "create.ponder.linear_chassis_attachment.header": "Fijar bloques mediante el chasis lineal", + "create.ponder.linear_chassis_attachment.text_1": "Las caras abiertas de un chasis lineal pueden hacerse pegajosas", + "create.ponder.linear_chassis_attachment.text_2": "Haz clic de nuevo para que se pegue el lado opuesto", + "create.ponder.linear_chassis_attachment.text_3": "Mayús izdo + clic derecho con la mano vacía para eliminar el pegamento", + "create.ponder.linear_chassis_attachment.text_4": "Las caras pegadas del chasis lineal fijarán una línea de bloques delante de él", + "create.ponder.linear_chassis_attachment.text_5": "Utilizando una llave inglesa, se puede especificar un rango preciso", + "create.ponder.linear_chassis_attachment.text_6": "Manteniendo pulsada la tecla [Ctrl] y usando la rueda central del ratón, se ajusta el rango de todos los bloques de chasis adjuntos", + "create.ponder.linear_chassis_attachment.text_7": "Para fijar los bloques a cualquier otro lado es necesario utilizar pegamento", + "create.ponder.linear_chassis_attachment.text_8": "Utilizando esta mecánica, las estructuras de cualquier forma pueden moverse como un artilugio", + + "create.ponder.linear_chassis_group.header": "Mover chasis lineales en grupos", + "create.ponder.linear_chassis_group.text_1": "Los chasis lineales se conectan a los bloques de chasis idénticos que se encuentren a su lado", + "create.ponder.linear_chassis_group.text_2": "Cuando uno es movido por un artilugio, los otros son arrastrados con él", + "create.ponder.linear_chassis_group.text_3": "Los chasis de otro tipo u orientados en otra dirección no se fijan", + + "create.ponder.mechanical_arm.header": "Configurar los brazos mecánicos", + "create.ponder.mechanical_arm.text_1": "A los brazos mecánicos hay que asignarles sus entradas y salidas antes de colocarlos", + "create.ponder.mechanical_arm.text_2": "Clic derecho en los inventarios mientras mantiene el brazo mecánico para asignarlos como objetivos", + "create.ponder.mechanical_arm.text_3": "Clic derecho denuevo para alternar entre la entrada (azul) y la salida (naranja)", + "create.ponder.mechanical_arm.text_4": "Clic izquierdo en los componentes para eliminar su selección", + "create.ponder.mechanical_arm.text_5": "Una vez colocado, el brazo mecánico apuntará a los bloques seleccionados previamente", + "create.ponder.mechanical_arm.text_6": "Pueden tener cualquier cantidad de entradas y salidas dentro de su rango", + "create.ponder.mechanical_arm.text_7": "Sin embargo, no se puede interactuar directamente con todos los tipos de inventario", + "create.ponder.mechanical_arm.text_8": "Los embudos y depósitos pueden ayudar a salvar esa distancia", + + "create.ponder.mechanical_arm_filtering.header": "Filtrar salidas del brazo mecánico", + "create.ponder.mechanical_arm_filtering.text_1": "Entradas", + "create.ponder.mechanical_arm_filtering.text_2": "Salidas", + "create.ponder.mechanical_arm_filtering.text_3": "A veces es conveniente restringir los objetivos del brazo mecánico haciendo coincidir un filtro", + "create.ponder.mechanical_arm_filtering.text_4": "Por sí mismos no ofrecen ninguna opción de filtrado", + "create.ponder.mechanical_arm_filtering.text_5": "Sin embargo, los embudos de latón como objetivos comunican su propio filtro al brazo", + "create.ponder.mechanical_arm_filtering.text_6": "El brazo mecánico es lo suficientemente inteligente como para no recoger objetos que no podría distribuir", + + "create.ponder.mechanical_arm_modes.header": "Modos de distribución del brazo mecánico", + "create.ponder.mechanical_arm_modes.text_1": "Entradas", + "create.ponder.mechanical_arm_modes.text_2": "Salidas", + "create.ponder.mechanical_arm_modes.text_3": "Siempre que un brazo tenga que elegir entre varias salidas válidas...", + "create.ponder.mechanical_arm_modes.text_4": "...funcionará según su configuración", + "create.ponder.mechanical_arm_modes.text_5": "Usando la rueda del ratón con una llave inglesa te permitirá configurarlo", + "create.ponder.mechanical_arm_modes.text_6": "El modo Round Robin simplemente hace un ciclo a través de todas las salidas que están disponibles", + "create.ponder.mechanical_arm_modes.text_7": "Si una salida no puede admitir más objetos, se omitirá", + "create.ponder.mechanical_arm_modes.text_8": "El modo Round Robin forzado nunca omitirá las salidas, sino que esperará a que estén libres", + "create.ponder.mechanical_arm_modes.text_9": "Preferir el primero da prioridad a las salidas seleccionadas anteriormente al configurar este brazo", + + "create.ponder.mechanical_arm_redstone.header": "Controlar brazos mecánicos con redstone", + "create.ponder.mechanical_arm_redstone.text_1": "Cuando se alimentan con redstone, los brazos mecánicos no se activan", + "create.ponder.mechanical_arm_redstone.text_2": "Antes de detenerse, terminará los ciclos iniciados", + "create.ponder.mechanical_arm_redstone.text_3": "Así, un pulso negativo puede utilizarse para activar exactamente un ciclo de activación", + + "create.ponder.mechanical_bearing.header": "Mover estructuras mediante el rodamiento mecánico", + "create.ponder.mechanical_bearing.text_1": "Los rodamientos mecánicos se fijan al bloque que tienen delante", + "create.ponder.mechanical_bearing.text_2": "Al recibir fuerza rotacional, la ensamblará en un artilugio giratorio", + + "create.ponder.mechanical_crafter.header": "Configurar ensambladores mecánicos", + "create.ponder.mechanical_crafter.text_1": "Se puede utilizar una serie de ensambladores mecánicos para automatizar cualquier receta de elaboración.", + "create.ponder.mechanical_crafter.text_2": "Usando una llave inglesa, puedes establecer los caminos de los ensambladores ", + "create.ponder.mechanical_crafter.text_3": "Para que la configuración sea válida, todos los caminos tienen que converger en una salida, en cualquiera de los lados", + "create.ponder.mechanical_crafter.text_4": "Los puertos de salida de objetos se colocarán en un inventario a la salida", + "create.ponder.mechanical_crafter.text_5": "Los ensambladores mecánicos requieren fuerza rotacional para funcionar", + "create.ponder.mechanical_crafter.text_6": "Haga clic derecho en la parte delantera para insertar objetos manualmente", + "create.ponder.mechanical_crafter.text_7": "Una vez que cada ranura de una ruta contenga un objeto, comenzará el proceso de elaboración", + "create.ponder.mechanical_crafter.text_8": "Para las recetas que no ocupen totalmente la instalación del ensamblador, se puede forzar el arranque utilizando un pulso de redstone", + + "create.ponder.mechanical_crafter_connect.header": "Conectar inventarios a los ensambladores mecánicos", + "create.ponder.mechanical_crafter_connect.text_1": "Los objetos pueden ser insertados a los ensambladores mecánicos automáticamente", + "create.ponder.mechanical_crafter_connect.text_2": "Utilizando la llave inglesa a sus espaldas, las entradas pueden combinarse", + "create.ponder.mechanical_crafter_connect.text_3": "Ahora se puede acceder a todos los ensambladores mecánicos conectados por la misma ubicación de entrada", + + "create.ponder.mechanical_crafter_covers.header": "Cubrir las ranuras de los ensambladores mecánicos", + "create.ponder.mechanical_crafter_covers.text_1": "Algunas recetas requerirán ensambladores mecánicos adicionales para salvar las brechas en el camino", + "create.ponder.mechanical_crafter_covers.text_2": "Utilizando las tapas de ranuras del ensamblador mecánico, pueden actuar como una ranura vacía a su disposición", + "create.ponder.mechanical_crafter_covers.text_3": "Las entradas compartidas creadas con la llave inglesa en la parte posterior también pueden llegar a través de los ensambladores revestidos", + + "create.ponder.mechanical_drill.header": "Romper bloques con el taladro mecánico", + "create.ponder.mechanical_drill.text_1": "Cuando se le aplica fuerza rotacional, el taladro mecánico rompe los bloques que tiene delante.", + "create.ponder.mechanical_drill.text_2": "Su velocidad de trabajo depende de la fuerza rotacional suministrada", + + "create.ponder.mechanical_drill_contraption.header": "Usar taladros mecánicos en artilugios", + "create.ponder.mechanical_drill_contraption.text_1": "Siempre que los taladros mecánicos se muevan como parte de un artilugio animado...", + "create.ponder.mechanical_drill_contraption.text_2": "...romperán los bloques por los que artilugio los hace pasar", + + "create.ponder.mechanical_harvester.header": "Utilizar cosechadoras mecánicas en artilugios", + "create.ponder.mechanical_harvester.text_1": "Siempre que las cosechadoras mecánicas se muevan como parte de un artilugio animado...", + "create.ponder.mechanical_harvester.text_2": "...recogerán y repondrán los cultivos maduros en su camino", + + "create.ponder.mechanical_mixer.header": "Procesar objetos con la mezcladora mecánica", + "create.ponder.mechanical_mixer.text_1": "Con una mezcladora mecánica y una cuenca, se pueden automatizar algunas recetas", + "create.ponder.mechanical_mixer.text_2": "Las recetas disponibles incluyen cualquier receta de elaboración amorfa, además de un par de recetas adicionales", + "create.ponder.mechanical_mixer.text_3": "Algunas de esas recetas pueden requerir el calor de un quemador de blaze", + "create.ponder.mechanical_mixer.text_4": "La ranura para filtros se puede utilizar en caso de que dos recetas sean conflictivas.", + + "create.ponder.mechanical_piston.header": "Mover estructuras mediante pistones mecánicos", + "create.ponder.mechanical_piston.text_1": "Los pistones mecánicos pueden mover los bloques que tienen delante", + "create.ponder.mechanical_piston.text_2": "La velocidad y la dirección del movimiento dependen de la fuerza rotacional suministrada", + "create.ponder.mechanical_piston.text_3": "Los pistones mecánicos pegajosos pueden tirar de los bloques unidos hacia atrás", + + "create.ponder.mechanical_piston_modes.header": "Modos de movimiento del pistón mecánico", + "create.ponder.mechanical_piston_modes.text_1": "Cuando los pistones mecánicos dejan de moverse, la estructura movida vuelve a los bloques", + "create.ponder.mechanical_piston_modes.text_2": "Puede configurarse para que no vuelva nunca a los bloques sólidos, o sólo en la ubicación en la que comenzó", + + "create.ponder.mechanical_plough.header": "Utilizar arados mecánicos en los artilugios", + "create.ponder.mechanical_plough.text_1": "Cuando los arados mecánicos se mueven como parte de un artilugio animado...", + "create.ponder.mechanical_plough.text_2": "...romperán los bloques sin un hitbox de colisión sólido", + "create.ponder.mechanical_plough.text_3": "Además, pueden crear tierras de cultivo", + "create.ponder.mechanical_plough.text_4": "...también pueden lanzar entidades sin dañarlas", + + "create.ponder.mechanical_press.header": "Procesar objetos con la prensa mecánica", + "create.ponder.mechanical_press.text_1": "La prensa mecánica puede procesar los objetos proporcionados por debajo de ella", + "create.ponder.mechanical_press.text_2": "Los objetos de entrada pueden soltarse o colocarse en un depósito bajo la prensa", + "create.ponder.mechanical_press.text_3": "Cuando los objetos se proporcionan en una 'cinta'...", + "create.ponder.mechanical_press.text_4": "...la prensa mecánica los retendrá y procesará automáticamente", + + "create.ponder.mechanical_press_compacting.header": "Compactar objetos con la prensa mecánica", + "create.ponder.mechanical_press_compacting.text_1": "Al presionar los objetos que se encuentran en una cuenca, éstos se compactan.", + "create.ponder.mechanical_press_compacting.text_2": "La compactación incluye cualquier receta de elaboración de 2x2 o 3x3 rellena, además de un par extra", + "create.ponder.mechanical_press_compacting.text_3": "Algunas de esas recetas pueden requerir el calor de un quemador de blaze", + "create.ponder.mechanical_press_compacting.text_4": "La ranura para filtros se puede utilizar en caso de que dos recetas sean conflictivas.", + + "create.ponder.mechanical_pump_flow.header": "Transportar fluidos mediante bombas mecánicas", + "create.ponder.mechanical_pump_flow.text_1": "Las bombas mecánicas gobiernan el flujo de sus redes de tuberías anexas", + "create.ponder.mechanical_pump_flow.text_2": "Cuando están alimentadas, su flecha indica la dirección del flujo", + "create.ponder.mechanical_pump_flow.text_3": "La red de atrás está ahora tirando de fluidos...", + "create.ponder.mechanical_pump_flow.text_4": "...mientras la red de enfrente la transfiere hacia el exterior", + "create.ponder.mechanical_pump_flow.text_5": "Al invertir la rotación de la entrada se invierte el sentido del flujo", + "create.ponder.mechanical_pump_flow.text_6": "Utilice una llave inglesa para invertir la orientación de las bombas manualmente", + + "create.ponder.mechanical_pump_speed.header": "Rendimiento de las bombas mecánicas", + "create.ponder.mechanical_pump_speed.text_1": "Independientemente de la velocidad, las bombas mecánicas afectan a las tuberías conectadas hasta 16 bloques de distancia", + "create.ponder.mechanical_pump_speed.text_2": "Acelerar la rotación de entrada cambia la velocidad de propagación del flujo...", + "create.ponder.mechanical_pump_speed.text_3": "...así como la rapidez con la que se transfieren los fluidos", + "create.ponder.mechanical_pump_speed.text_4": "Las bombas pueden combinar sus rendimientos en redes de tuberías compartidas", + "create.ponder.mechanical_pump_speed.text_5": "Alternar su orientación puede ayudar a alinear sus direcciones de flujo", + + "create.ponder.mechanical_saw_breaker.header": "Cortar árboles con la sierra mecánica", + "create.ponder.mechanical_saw_breaker.text_1": "Cuando se le da una fuerza rotacional, la sierra mecánica cortará los árboles que estén directamente frente a ella", + "create.ponder.mechanical_saw_breaker.text_2": "Para poder cortar el árbol por completo, la sierra tiene que romper el último bloque que lo une al suelo", + + "create.ponder.mechanical_saw_contraption.header": "Utilizar sierras mecánicas en artilugios", + "create.ponder.mechanical_saw_contraption.text_1": "Cuando las sierras mecánicas se mueven como parte de un artilugio animado...", + "create.ponder.mechanical_saw_contraption.text_2": "...cortarán cualquier árbol con el que el artilugio se tope", + + "create.ponder.mechanical_saw_processing.header": "Procesar objetos en la sierra mecánica", + "create.ponder.mechanical_saw_processing.text_1": "Las sierras mecánicas orientadas hacia arriba pueden procesar una variedad de objetos", + "create.ponder.mechanical_saw_processing.text_2": "El objeto procesado siempre se mueve en contra de la fuerza rotacional de la sierra", + "create.ponder.mechanical_saw_processing.text_3": "Las sierras mecánicas pueden trabajar en línea con las correas mecánicas", + "create.ponder.mechanical_saw_processing.text_4": "Cuando un ingrediente tiene varios resultados posibles, la ranura para filtros puede especificarlo", + "create.ponder.mechanical_saw_processing.text_5": "Sin filtro, al contrario, la sierra mecánica pasaría por todos los resultados", + + "create.ponder.millstone.header": "Procesar objetos en la piedra de molino", + "create.ponder.millstone.text_1": "Las piedras de molino procesan los objetos mediante la molienda", + "create.ponder.millstone.text_2": "Se pueden accionar lateralmente mediante engranajes...", + "create.ponder.millstone.text_3": "... y tirar o insertar objetos en la parte superior", + "create.ponder.millstone.text_4": "Después de un tiempo, el resultado se puede obtener usando el clic derecho del ratón", + "create.ponder.millstone.text_5": "Las salidas también pueden extraerse mediante la automatización", + + "create.ponder.nixie_tube.header": "Usar los tubos Nixie", + "create.ponder.nixie_tube.text_1": "Cuando son alimentados con redstone, los tubos nixie mostrarán la fuerza de las señales de redstone", + "create.ponder.nixie_tube.text_2": "Con las etiquetas editadas en un yunque, pueden mostar un texto personalizado", + "create.ponder.nixie_tube.text_3": "Haga clic derecho con un tinte para cambiar su color de visualización", + + "create.ponder.piston_pole.header": "Pértigas de extensión de pistones", + "create.ponder.piston_pole.text_1": "Sin las pértigas de extensión unidas, un pistón mecánico no puede moverse", + "create.ponder.piston_pole.text_2": "La longitud de la pértiga añadida en su parte posterior determina el rango de alcance", + + "create.ponder.portable_fluid_interface.header": "Interfaz de fluidos portátil", + "create.ponder.portable_fluid_interface.text_1": "No se puede acceder a los depósitos de fluidos de los artilugios en movimiento por ninguna tubería", + "create.ponder.portable_fluid_interface.text_2": "Este componente puede interactuar con los depósitos de fluidos sin necesidad de detener el artilugio", + "create.ponder.portable_fluid_interface.text_3": "Coloca una segunda con un espacio de 1 o 2 bloques entre ellas", + "create.ponder.portable_fluid_interface.text_4": "Cada vez que pasen por delante de la otra, entablarán una conexión", + "create.ponder.portable_fluid_interface.text_5": "Mientras esté activada, la interfaz estacionaria representará TODOS los tanques del artilugio", + "create.ponder.portable_fluid_interface.text_6": "Ahora se puede introducir el fluido...", + "create.ponder.portable_fluid_interface.text_7": "...o extraerlo del artilugio", + "create.ponder.portable_fluid_interface.text_8": "Cuando no se intercambien contenidos durante un tiempo, el artilugio seguirá su camino", + + "create.ponder.portable_storage_interface.header": "Interfaz de almacenamiento portátil", + "create.ponder.portable_storage_interface.text_1": "Los jugadores no pueden acceder a los inventarios de los artilugios en movimiento.", + "create.ponder.portable_storage_interface.text_2": "Este componente puede interactuar con el almacenamiento sin necesidad de detener el artilugio.", + "create.ponder.portable_storage_interface.text_3": "Coloca una segunda unidad con un espacio de 1 o 2 bloques entre ellas", + "create.ponder.portable_storage_interface.text_4": "Cada vez que pasen por delante del otro, entablarán una conexión", + "create.ponder.portable_storage_interface.text_5": "Mientras esté conectada, la interfaz fija representará TODOS los inventarios del artilugio", + "create.ponder.portable_storage_interface.text_6": "Ahora pueden insertarse objetos...", + "create.ponder.portable_storage_interface.text_7": "...o extraerse", + "create.ponder.portable_storage_interface.text_8": "Cuando no se hayan intercambiado objetos durante un tiempo, el artilugio seguirá su camino", + + "create.ponder.portable_storage_interface_redstone.header": "Interfaz de almacenamiento portátil controlada por redstone", + "create.ponder.portable_storage_interface_redstone.text_1": "La energía de redstone impedirá que las interfaces de almacenamiento portátil se conecten", + + "create.ponder.powered_latch.header": "Controlar señales mediante la palanca motorizada", + "create.ponder.powered_latch.text_1": "Las palancas motorizadas son palancas controlables por redstone", + "create.ponder.powered_latch.text_2": "Las señales en la parte trasera la encienden", + "create.ponder.powered_latch.text_3": "Las señales sobre un lateral la vuelven a apagar", + "create.ponder.powered_latch.text_4": "Las palancas motorizadas también se pueden accionar manualmente", + + "create.ponder.powered_toggle_latch.header": "Controlar señales mediante la palanca de cierre motorizada", + "create.ponder.powered_toggle_latch.text_1": "Las palancas de cierre motorizadas son palancas controlables por redstone", + "create.ponder.powered_toggle_latch.text_2": "Las señales en la parte trasera cambiarán su estado...", + "create.ponder.powered_toggle_latch.text_3": "...encender y apagar", + "create.ponder.powered_toggle_latch.text_4": "Las palancas de cierre motorizadas también se pueden accionar manualmente", + + "create.ponder.pulse_repeater.header": "Controlar señales mediante repetidores de pulsos", + "create.ponder.pulse_repeater.text_1": "Los repetidores de pulsos acortan cualquier señal de redstone a un solo pulso", + + "create.ponder.radial_chassis.header": "Fijar bloques mediante chasis radiales", + "create.ponder.radial_chassis.text_1": "Los chasis radiales se conectan a bloques de chasis idénticos en una fila", + "create.ponder.radial_chassis.text_2": "Cuando uno es movido por un artilugio, los otros son arrastrados con él", + "create.ponder.radial_chassis.text_3": "Las caras laterales de un chasis radial pueden hacerse adhesivas", + "create.ponder.radial_chassis.text_4": "Haga clic de nuevo para que todos los demás lados sean pegajosos", + "create.ponder.radial_chassis.text_5": "Mayús izdo + clic derecho con la mano vacía para eliminar el pegamento", + "create.ponder.radial_chassis.text_6": "Cada vez que un bloque está junto a una cara pegajosa...", + "create.ponder.radial_chassis.text_7": "...adjuntará todos los bloques alcanzables dentro de un radio en esa capa", + "create.ponder.radial_chassis.text_8": "Con una llave inglesa y usando la rueda de desplazamiento del ratón se puede especificar un radio preciso", + "create.ponder.radial_chassis.text_9": "Los bloques no alcanzables por ninguna cara adhesiva no se fijarán", + + "create.ponder.redstone_contact.header": "Contactos de redstone", + "create.ponder.redstone_contact.text_1": "Los contactos de redstone enfrentados emitirán una señal de redstone", + "create.ponder.redstone_contact.text_2": "Esto sigue siendo válido cuando uno de ellos forma parte de un artilugio en movimiento", + + "create.ponder.redstone_link.header": "Usar los enlaces de redstone", + "create.ponder.redstone_link.text_1": "Los enlaces de redstone pueden transmitir señales redstone de forma inalámbrica", + "create.ponder.redstone_link.text_2": "Mayús izdo + clic derecho para cambiar el modo de recepción", + "create.ponder.redstone_link.text_3": "Un simple clic derecho con una llave inglesa puede hacer lo mismo", + "create.ponder.redstone_link.text_4": "Los receptores emiten la potencia de redstone de los transmisores en 128 bloques", + "create.ponder.redstone_link.text_5": "Colocando objetos en las dos ranuras puede especificar una frecuencia", + "create.ponder.redstone_link.text_6": "Sólo se comunicarán los enlaces con frecuencias coincidentes", + + "create.ponder.rope_pulley.header": "Mover estructuras con poleas de cuerda", + "create.ponder.rope_pulley.text_1": "Las poleas de cuerda pueden mover los bloques verticalmente cuando se les aplica una fuerza rotacional", + "create.ponder.rope_pulley.text_2": "La dirección y la velocidad del movimiento dependen de la fuerza rotacional suministrada", + + "create.ponder.rope_pulley_attachment.header": "Mover poleas como parte de un artilugio", + "create.ponder.rope_pulley_attachment.text_1": "Siempre que las poleas de cuerda sean movidas por un artilugio...", + "create.ponder.rope_pulley_attachment.text_2": "...su estructura adjunta será arrastrada con ella", + "create.ponder.rope_pulley_attachment.text_3": "Tenga en cuenta que las poleas de cuerda sólo se mueven cuando están paradas", + + "create.ponder.rope_pulley_modes.header": "Modos de movimiento de la polea de cuerda", + "create.ponder.rope_pulley_modes.text_1": "Cuando las poleas de cuerda dejan de moverse, la estructura movida vuelve a los bloques", + "create.ponder.rope_pulley_modes.text_2": "Puede configurarse para que no vuelva nunca a los bloques sólidos, o sólo en la ubicación en la que comenzó", + + "create.ponder.rotation_speed_controller.header": "Usar el controlador de velocidad rotacional", + "create.ponder.rotation_speed_controller.text_1": "Los controladores de velocidad rotacional transmiten la rotación de su eje a un engranaje grande situado encima.", + "create.ponder.rotation_speed_controller.text_2": "Utilizando la rueda de desplazamiento del ratón, puede configurarse la velocidad rotacional", + + "create.ponder.sail.header": "Montar molinos de viento usando velas", + "create.ponder.sail.text_1": "Las velas son bloques muy útiles para crear molinos de viento", + "create.ponder.sail.text_2": "Se fijarán a los bloques y entre sí sin necesidad de pegamento o bloques de chasis", + "create.ponder.sail.text_3": "Clic derecho con un tinte para pintarlas", + "create.ponder.sail.text_4": "Clic derecho con una tijera para volver a convertirlas en marcos", + + "create.ponder.sail_frame.header": "Montar molinos de viento con marcos de vela", + "create.ponder.sail_frame.text_1": "Los marcos de vela son prácticos bloques para crear molinos de viento", + "create.ponder.sail_frame.text_2": "Se fijarán a los bloques y entre sí sin necesidad de pegamento o bloques de chasis", + + "create.ponder.sequenced_gearshift.header": "Controlar la velocidad de rotación mediante la caja de cambios secuenciales", + "create.ponder.sequenced_gearshift.text_1": "La caja de cambios secuencial retransmite la rotación siguiendo una lista cronometrada de instrucciones", + "create.ponder.sequenced_gearshift.text_2": "Haga clic con el botón derecho para abrir la interfaz de configuración", + "create.ponder.sequenced_gearshift.text_3": "Al recibir una señal de redstone, comenzará a ejecutar su secuencia configurada", + "create.ponder.sequenced_gearshift.text_4": "Una vez terminado, espera la siguiente señal de redstone y vuelve a empezar", + "create.ponder.sequenced_gearshift.text_5": "Se puede utilizar un comparador de redstone para leer el progreso actual", + + "create.ponder.shaft.header": "Transmitir fuerza rotacional mediante ejes", + "create.ponder.shaft.text_1": "Los ejes transmiten la rotación en línea recta.", + + "create.ponder.shaft_casing.header": "Ejes revestidos", + "create.ponder.shaft_casing.text_1": "Puedes utilizar el revestidor de latón o de andesita para decorar tus ejes", + + "create.ponder.smart_chute.header": "Filtrar objetos mediante ductos inteligentes", + "create.ponder.smart_chute.text_1": "Los ductos inteligentes son ductos verticales con control adicional", + "create.ponder.smart_chute.text_2": "Los objetos en la ranura para filtros especifican lo que pueden extraer y transferir exactamente", + "create.ponder.smart_chute.text_3": "Usa la rueda del ratón para especificar el tamaño de la pila extraída", + "create.ponder.smart_chute.text_4": "La energía de redstone impedirá que funcionen.", + + "create.ponder.smart_pipe.header": "Controlar el flujo de fluidos mediante tuberías inteligentes", + "create.ponder.smart_pipe.text_1": "Las tuberías inteligentes pueden ayudar a controlar los flujos por tipo de fluido", + "create.ponder.smart_pipe.text_2": "Cuando se colocan directamente en la fuente, pueden especificar el tipo de fluido a extraer", + "create.ponder.smart_pipe.text_3": "Simplemente haga clic derecho en su ranura de filtro con cualquier elemento que contenga el fluido deseado", + "create.ponder.smart_pipe.text_4": "Cuando se colocan debajo de una red de tuberías, las tuberías inteligentes sólo dejan que los fluidos coincidentes continúen", + + "create.ponder.speedometer.header": "Controlar la información cinética mediante el velocímetro", + "create.ponder.speedometer.text_1": "El velocímetro muestra la velocidad actual de los componentes conectados", + "create.ponder.speedometer.text_2": "Cuando se usan las gafas del constructor, el jugador puede obtener información más detallada del medidor", + "create.ponder.speedometer.text_3": "Los comparadores pueden emitir señales analógicas de redstone en relación con las mediciones del velocímetro", + + "create.ponder.spout_filling.header": "Llenar objetos con un surtidor", + "create.ponder.spout_filling.text_1": "El surtidor puede llenar los elementos de retención de fluidos que se encuentran debajo de él", + "create.ponder.spout_filling.text_2": "No se puede acceder manualmente al contenido de un surtidor", + "create.ponder.spout_filling.text_3": "En su lugar, se pueden utilizar tuberías para suministrarle fluidos", + "create.ponder.spout_filling.text_4": "Los objetos de entrada pueden colocarse en un depósito bajo el surtidor", + "create.ponder.spout_filling.text_5": "Cuando los artículos se proporcionan en una cinta...", + "create.ponder.spout_filling.text_6": "El surtidor los retendrá y procesará automáticamente", + + "create.ponder.stabilized_bearings.header": "Estabilizar artilugios", + "create.ponder.stabilized_bearings.text_1": "Siempre que los rodamientos mecánicos formen parte de una estructura móvil...", + "create.ponder.stabilized_bearings.text_2": "...intentarán mantenerse derechos", + "create.ponder.stabilized_bearings.text_3": "Una vez más, el rodamiento se unirá al bloque de enfrente", + "create.ponder.stabilized_bearings.text_4": "Como resultado, todo el sub-artilugio se mantendrá en posición vertical", + + "create.ponder.sticker.header": "Fijar bloques con stickers", + "create.ponder.sticker.text_1": "Los stickers son ideales para la fijación de bloques controlados por redstone", + "create.ponder.sticker.text_2": "Al recibir una señal, cambiarán su estado", + "create.ponder.sticker.text_3": "Si ahora se mueve en un artilugio, el bloque se moverá con él", + "create.ponder.sticker.text_4": "Si se vuelve a activar, el bloque dejará de estar fijado", + + "create.ponder.stressometer.header": "Supervisar la información cinética con el estresómetro", + "create.ponder.stressometer.text_1": "El estresómetro muestra la capacidad de estrés actual de la red cinética conectada", + "create.ponder.stressometer.text_2": "Cuando se usan las gafas del constructor, el jugador puede obtener información más detallada del medidor", + "create.ponder.stressometer.text_3": "Los comparadores pueden emitir señales analógicas de redstone en relación con las mediciones del estresómetro", + + "create.ponder.super_glue.header": "Fijar bloques con pegamento", + "create.ponder.super_glue.text_1": "Se puede utilizar pegamento entre dos bloques cualquiera", + "create.ponder.super_glue.text_2": "Los bloques fijados se moverán juntos cuando se ensamblen en un artilugio", + "create.ponder.super_glue.text_3": "Cada vez que el pegamento es sostenido en la mano...", + "create.ponder.super_glue.text_4": "...los bloques añadidos se pegarán a la cara en la que fueron colocados automáticamente", + "create.ponder.super_glue.text_5": "El pegamento se puede quitar con un clic izquierdo", + + "create.ponder.valve_handle.header": "Generar fuerza rotacional mediante asas de válvula", + "create.ponder.valve_handle.text_1": "Los jugadores pueden utilizar las asas de válvulas para aplicar fuerza rotacional manualmente", + "create.ponder.valve_handle.text_2": "Mantén pulsado el clic derecho para rotar en sentido contrario a las agujas del reloj", + "create.ponder.valve_handle.text_3": "Su velocidad de transmisión es lenta y precisa", + "create.ponder.valve_handle.text_4": "Mayús izdo + clic derecho para rotar en el sentido de las agujas del reloj", + "create.ponder.valve_handle.text_5": "Las asas de las válvulas pueden teñirse con fines estéticos", + + "create.ponder.valve_pipe.header": "Controlar el flujo de fluidos mediante válvulas", + "create.ponder.valve_pipe.text_1": "Las tuberías con válvulas ayudan a controlar los fluidos que se propagan por las redes de tuberías", + "create.ponder.valve_pipe.text_2": "Su entrada en el eje controla si el fluido puede pasar por", + "create.ponder.valve_pipe.text_3": "Dada la fuerza de rotación en la dirección de apertura, la válvula se abrirá", + "create.ponder.valve_pipe.text_4": "Se puede volver a cerrar invirtiendo el giro de entrada", + + "create.ponder.water_wheel.header": "Generar fuerza rotacional mediante ruedas hidráulicas", + "create.ponder.water_wheel.text_1": "Las ruedas hidráulicas extraen la fuerza de las corrientes de agua adyacentes", + "create.ponder.water_wheel.text_2": "Cuantas más caras se alimenten, más rápido girará", + "create.ponder.water_wheel.text_3": "Las paletas de las ruedas deben estar orientadas en contra del flujo", + "create.ponder.water_wheel.text_4": "Orientadas hacia el lado contrario, no serán tan eficaces", + + "create.ponder.weighted_ejector.header": "Usar eyectores de peso", + "create.ponder.weighted_ejector.text_1": "Mayús izdo + clic derecho sosteniendo un eyector de peso para seleccionar la ubicación de destino", + "create.ponder.weighted_ejector.text_10": "Ahora estára limitado a este tamaño de pila, y sólo se activara cuando su pila retenida alcance esta cantidad", + "create.ponder.weighted_ejector.text_11": "Otras entidades activarán el eyector al pisarlos", + "create.ponder.weighted_ejector.text_2": "El eyector colocado lanzará ahora los objetos al lugar marcado", + "create.ponder.weighted_ejector.text_3": "Un objetivo válido puede estar a cualquier altura o distancia dentro del alcance", + "create.ponder.weighted_ejector.text_4": "Sin embargo, no pueden estar a un costado", + "create.ponder.weighted_ejector.text_5": "Si no se ha seleccionado ningún objetivo válido, simplemente se dirigirá al bloque que se encuentra justo delante", + "create.ponder.weighted_ejector.text_6": "Suministrale fuerza rotacional para cargarlo", + "create.ponder.weighted_ejector.text_7": "Los objetos colocados en el eyector hacen que se dispare", + "create.ponder.weighted_ejector.text_8": "Si se dirigen a un inventario, el eyector esperará hasta que haya espacio", + "create.ponder.weighted_ejector.text_9": "Con la llave inglesa se puede configurar el tamaño de pila requerido", + + "create.ponder.weighted_ejector_redstone.header": "Controlar los eyectores de peso con redstone", + "create.ponder.weighted_ejector_redstone.text_1": "Cuando se alimentan con redstone, los eyectores no se activan", + "create.ponder.weighted_ejector_redstone.text_2": "Además, los observadores de contenido pueden detectar cuando los eyectores se activan", + + "create.ponder.weighted_ejector_tunnel.header": "Dividir pilas de objetos mediante eyectores de peso", + "create.ponder.weighted_ejector_tunnel.text_1": "En combinación con los túneles de latón, los eyectores de peso pueden dividir las pilas de objetos en cantidades específicas", + "create.ponder.weighted_ejector_tunnel.text_2": "En primer lugar, configure el túnel de latón en 'Preferir lo más cercano', para dar prioridad a su salida lateral", + "create.ponder.weighted_ejector_tunnel.text_3": "El tamaño de la pila fijado en el eyector determina ahora la cantidad que se va a dividir", + "create.ponder.weighted_ejector_tunnel.text_4": "Mientras una nueva pila del tamaño configurado se expulse por la salida lateral...", + "create.ponder.weighted_ejector_tunnel.text_5": "...el resto seguirá su camino", + + "create.ponder.windmill_source.header": "Generar fuerza rotacional mediante rodamientos del molino de viento", + "create.ponder.windmill_source.text_1": "Los rodamientos del molino de viento se fijan al bloque que tienen delante", + "create.ponder.windmill_source.text_2": "Si se unen suficientes bloques tipo vela al bloque, éste puede actuar como un molino de viento", + "create.ponder.windmill_source.text_3": "Activado con un clic derecho, el rodamiento del molino de viento comenzará a proporcionar fuerza rotacional", + "create.ponder.windmill_source.text_4": "La cantidad de bloques de vela determina su velocidad de rotación", + "create.ponder.windmill_source.text_5": "Utiliza una llave inglesa para configurar su sentido de rotación", + "create.ponder.windmill_source.text_6": "Haga clic derecho sobre el rodamiento del molino en cualquier momento para detener y editar la estructura de nuevo", + + "create.ponder.windmill_structure.header": "Artilugios para molinos de viento", + "create.ponder.windmill_structure.text_1": "Cualquier estructura puede contar como un molino de viento válido, siempre que contenga al menos 8 bloques tipo vela.", + + "_": "Thank you for translating Create!" + +} diff --git a/src/main/resources/assets/create/lang/es_uy.json b/src/main/resources/assets/create/lang/es_uy.json new file mode 100644 index 000000000..d20b0eb8b --- /dev/null +++ b/src/main/resources/assets/create/lang/es_uy.json @@ -0,0 +1,2305 @@ +{ + + "_": "->------------------------] Game Elements [------------------------<-", + + "block.create.acacia_window": "Ventana de acacia", + "block.create.acacia_window_pane": "Panel de ventana de acacia", + "block.create.adjustable_chain_gearshift": "Cadena de transmisión ajustable", + "block.create.adjustable_crate": "Caja ajustable", + "block.create.adjustable_pulse_repeater": "Repetidor de pulso ajustable", + "block.create.adjustable_repeater": "Repetidor ajustable", + "block.create.analog_lever": "Palanca analógica", + "block.create.andesite_belt_funnel": "Embudo de cinta de andesita", + "block.create.andesite_bricks": "Ladrillos de andesita", + "block.create.andesite_bricks_slab": "Losa de ladrillos de andesita", + "block.create.andesite_bricks_stairs": "Escaleras de ladrillos de andesita", + "block.create.andesite_bricks_wall": "Muro de ladrillos de andesita", + "block.create.andesite_casing": "Revestidor de andesita", + "block.create.andesite_cobblestone": "Adoquín de andesita", + "block.create.andesite_cobblestone_slab": "Losa de adoquín de andesita", + "block.create.andesite_cobblestone_stairs": "Escaleras de adoquines de andesita", + "block.create.andesite_cobblestone_wall": "Muro de adoquines de andesita", + "block.create.andesite_encased_shaft": "Eje revestido de andesita", + "block.create.andesite_funnel": "Embudo de andesita", + "block.create.andesite_pillar": "Poste de andesita", + "block.create.andesite_tunnel": "Túnel de Andesita", + "block.create.basin": "Cuenca", + "block.create.belt": "Cinta", + "block.create.birch_window": "Ventana de abedul", + "block.create.birch_window_pane": "Panel de ventana de abedul", + "block.create.black_nixie_tube": "Tubo Nixie negro", + "block.create.black_sail": "Vela negra", + "block.create.black_seat": "Asiento negro", + "block.create.black_valve_handle": "Asa de válvula negra", + "block.create.blaze_burner": "Quemador de Blaze", + "block.create.blue_nixie_tube": "Tubo Nixie azul", + "block.create.blue_sail": "Vela azul", + "block.create.blue_seat": "Asiento azul", + "block.create.blue_valve_handle": "Asa de válvula azul", + "block.create.brass_belt_funnel": "Embudo de cinta de latón", + "block.create.brass_block": "Bloque de latón", + "block.create.brass_casing": "Revestidor de latón", + "block.create.brass_encased_shaft": "Eje revestido de latón", + "block.create.brass_funnel": "Embudo de latón", + "block.create.brass_tunnel": "Túnel de latón", + "block.create.brown_nixie_tube": "Tubo Nixie marrón", + "block.create.brown_sail": "Vela marrón", + "block.create.brown_seat": "Asiento marrón", + "block.create.brown_valve_handle": "Asa de válvula marrón", + "block.create.cart_assembler": "Ensamblador de vagonetas", + "block.create.chiseled_dark_scoria": "Escoria oscura cincelada", + "block.create.chiseled_dolomite": "Dolomita cincelada", + "block.create.chiseled_gabbro": "Gabro cincelado", + "block.create.chiseled_limestone": "Caliza cincelada", + "block.create.chiseled_scoria": "Escoria cincelada", + "block.create.chiseled_weathered_limestone": "Piedra caliza erosionada cincelada", + "block.create.chocolate": "Chocolate", + "block.create.chute": "Ducto", + "block.create.clockwork_bearing": "Rodamiento tipo reloj", + "block.create.clutch": "Embrague", + "block.create.cogwheel": "Engranaje pequeño", + "block.create.content_observer": "Observador de contenidos", + "block.create.controller_rail": "Raíl de control", + "block.create.copper_backtank": "Depósito trasero de cobre", + "block.create.copper_block": "Bloque de cobre", + "block.create.copper_casing": "Revestidor de caliza", + "block.create.copper_ore": "Mena de cobre", + "block.create.copper_shingles": "Bloque de tejas de cobre", + "block.create.copper_tiles": "Bloque de baldosas de cobre", + "block.create.copper_valve_handle": "Asa de válvula de cobre", + "block.create.creative_crate": "Caja creativa", + "block.create.creative_fluid_tank": "Tanque de fluidos creativo", + "block.create.creative_motor": "Motor creativo", + "block.create.crimson_window": "Ventana carmesí", + "block.create.crimson_window_pane": "Panel de ventana carmesí", + "block.create.crushing_wheel": "Rueda trituradora", + "block.create.crushing_wheel_controller": "Controlador de Rueda trituradora", + "block.create.cuckoo_clock": "Reloj de cuco", + "block.create.cyan_nixie_tube": "Tubo Nixie cian", + "block.create.cyan_sail": "Vela cian", + "block.create.cyan_seat": "Asiento cian", + "block.create.cyan_valve_handle": "Asa de válvula cian", + "block.create.dark_oak_window": "Ventana de roble oscuro", + "block.create.dark_oak_window_pane": "Panel de ventana de roble oscuro", + "block.create.dark_scoria": "Escoria oscura", + "block.create.dark_scoria_bricks": "Ladrillos de escoria oscura", + "block.create.dark_scoria_bricks_slab": "Losa de ladrillos de escoria oscura", + "block.create.dark_scoria_bricks_stairs": "Escaleras de ladrillos de escoria oscura", + "block.create.dark_scoria_bricks_wall": "Muro de ladrillos de escoria oscura", + "block.create.dark_scoria_cobblestone": "Adoquines de escoria oscura", + "block.create.dark_scoria_cobblestone_slab": "Losa de adoquines de escoria oscura", + "block.create.dark_scoria_cobblestone_stairs": "Escaleras de adoquines de escoria oscura", + "block.create.dark_scoria_cobblestone_wall": "Muro de adoquines de escoria oscura", + "block.create.dark_scoria_pillar": "Pilar de escoria oscura", + "block.create.deployer": "Desplegador", + "block.create.depot": "Depósito", + "block.create.diorite_bricks": "Ladrillos de diorita", + "block.create.diorite_bricks_slab": "Losa de ladrillos de diorita", + "block.create.diorite_bricks_stairs": "Escaleras de ladrillos de diorita", + "block.create.diorite_bricks_wall": "Muro de ladrillos de diorita", + "block.create.diorite_cobblestone": "Adoquín de diorita", + "block.create.diorite_cobblestone_slab": "Losa de adoquínes de diorita", + "block.create.diorite_cobblestone_stairs": "Escaleras de adoquines de diorita", + "block.create.diorite_cobblestone_wall": "Muro de adoquines de diorita", + "block.create.diorite_pillar": "Pilar de diorita", + "block.create.dolomite": "Dolomita", + "block.create.dolomite_bricks": "Ladrillos de dolomita", + "block.create.dolomite_bricks_slab": "Losa de ladrillos de dolomita", + "block.create.dolomite_bricks_stairs": "Escaleras de ladrillos de dolomita", + "block.create.dolomite_bricks_wall": "Muro de ladrillos de dolomita", + "block.create.dolomite_cobblestone": "Adoquín de dolomita", + "block.create.dolomite_cobblestone_slab": "Losa de adoquín de dolomita", + "block.create.dolomite_cobblestone_stairs": "Escaleras de adoquines de dolomita", + "block.create.dolomite_cobblestone_wall": "Muro de adoquines de dolomita", + "block.create.dolomite_pillar": "Pilar de dolomita", + "block.create.encased_chain_drive": "Cadena de transmisión revestida", + "block.create.encased_fan": "Ventilador revestido", + "block.create.encased_fluid_pipe": "Tubería de fluidos de cobre reforzada", + "block.create.fancy_andesite_bricks": "Ladrillos de andesita elegantes", + "block.create.fancy_andesite_bricks_slab": "Ladrillos de andesita elegantes", + "block.create.fancy_andesite_bricks_stairs": "Escaleras de ladrillos de andesita elegantes", + "block.create.fancy_andesite_bricks_wall": "Muro de ladrillos de andesita elegantes", + "block.create.fancy_dark_scoria_bricks": "Ladrillos de escoria oscura elegantes", + "block.create.fancy_dark_scoria_bricks_slab": "Losa de ladrillos de escoria oscura elegantes", + "block.create.fancy_dark_scoria_bricks_stairs": "Escalera de ladrillos de escoria oscura elegantes", + "block.create.fancy_dark_scoria_bricks_wall": "Muro de ladrillos de escoria oscura elegantes", + "block.create.fancy_diorite_bricks": "Ladrillos de diorita elegantes", + "block.create.fancy_diorite_bricks_slab": "Losa de ladrillos de diorita elegantes", + "block.create.fancy_diorite_bricks_stairs": "Escaleras de ladrillos de diorita elegantes", + "block.create.fancy_diorite_bricks_wall": "Muro de ladrillos de diorita elegantes", + "block.create.fancy_dolomite_bricks": "Ladrillos de dolomita elegantes", + "block.create.fancy_dolomite_bricks_slab": "Losa de ladrillos de dolomita elegantes", + "block.create.fancy_dolomite_bricks_stairs": "Escaleras de ladrillos de dolomita elegantes", + "block.create.fancy_dolomite_bricks_wall": "Muro de ladrillos de dolomita elegantes", + "block.create.fancy_gabbro_bricks": "Ladrillos de gabro elegantes", + "block.create.fancy_gabbro_bricks_slab": "Losa de ladrillos de gabro elegantes", + "block.create.fancy_gabbro_bricks_stairs": "Escaleras de ladrillos de gabro elegantes", + "block.create.fancy_gabbro_bricks_wall": "Muro de ladrillos de gabro elegantes", + "block.create.fancy_granite_bricks": "Ladrillos de granito elegantes", + "block.create.fancy_granite_bricks_slab": "Losa de ladrillos de granito elegantes", + "block.create.fancy_granite_bricks_stairs": "Escaleras de ladrillos de granito elegantes", + "block.create.fancy_granite_bricks_wall": "Muro de ladrillos de granito elegantes", + "block.create.fancy_limestone_bricks": "Ladrillos de piedra caliza elegantes", + "block.create.fancy_limestone_bricks_slab": "Losa de ladrillos de piedra caliza elegantes", + "block.create.fancy_limestone_bricks_stairs": "Escaleras de ladrillos de piedra caliza elegantes", + "block.create.fancy_limestone_bricks_wall": "Muro de ladrillos de piedra caliza elegantes", + "block.create.fancy_scoria_bricks": "Ladrillos de escoria elegantes", + "block.create.fancy_scoria_bricks_slab": "Losa de ladrillos de escoria elegantes", + "block.create.fancy_scoria_bricks_stairs": "Escaleras de ladrillos de escoria elegantes", + "block.create.fancy_scoria_bricks_wall": "Muro de ladrillos de escoria elegantes", + "block.create.fancy_weathered_limestone_bricks": "Ladrillos de piedra de caliza erosionada elegantes", + "block.create.fancy_weathered_limestone_bricks_slab": "Losa de ladrillos de caliza erosionada elegantes", + "block.create.fancy_weathered_limestone_bricks_stairs": "Escaleras de ladrillos de caliza erosionada elegantes", + "block.create.fancy_weathered_limestone_bricks_wall": "Muro de ladrillos de caliza erosionada elegantes", + "block.create.fluid_pipe": "Tubería de fluidos de cobre", + "block.create.fluid_tank": "Depósito de fluidos", + "block.create.fluid_valve": "Válvula de fluidos", + "block.create.flywheel": "Rueda de inercia", + "block.create.framed_glass": "Cristal enmarcado", + "block.create.framed_glass_pane": "Panel de cristal enmarcado", + "block.create.furnace_engine": "Motor de horno", + "block.create.gabbro": "Gabro", + "block.create.gabbro_bricks": "Ladrillos de gabro", + "block.create.gabbro_bricks_slab": "Losa de ladrillos de gabro", + "block.create.gabbro_bricks_stairs": "Escaleras de ladrillos de gabro", + "block.create.gabbro_bricks_wall": "Muro de ladrillos de gabro", + "block.create.gabbro_cobblestone": "Adoquín de gabro", + "block.create.gabbro_cobblestone_slab": "Losa de adoquínes de gabro", + "block.create.gabbro_cobblestone_stairs": "Escaleras de adoquínes de gabro", + "block.create.gabbro_cobblestone_wall": "Muro de adoquínes de gabro", + "block.create.gabbro_pillar": "Pilar de gabro", + "block.create.gantry_carriage": "Carro de grúa", + "block.create.gantry_shaft": "Eje de grúa", + "block.create.gearbox": "Caja de transmisión", + "block.create.gearshift": "Caja de cambios", + "block.create.glass_fluid_pipe": "Tubería de fluidos de cristal", + "block.create.granite_bricks": "Ladrillos de granito", + "block.create.granite_bricks_slab": "Losa de ladrillos de granito", + "block.create.granite_bricks_stairs": "Escaleras de ladrillos de granito", + "block.create.granite_bricks_wall": "Muro de ladrillos de granito", + "block.create.granite_cobblestone": "Adoquín de granito", + "block.create.granite_cobblestone_slab": "Losa de adoquínes de granito", + "block.create.granite_cobblestone_stairs": "Escaleras de adoquínes de granito", + "block.create.granite_cobblestone_wall": "Muro de adoquínes de granito", + "block.create.granite_pillar": "Pilar de granito", + "block.create.gray_nixie_tube": "Tubo Nixie gris", + "block.create.gray_sail": "Vela gris", + "block.create.gray_seat": "Asiento gris", + "block.create.gray_valve_handle": "Asa de válvula gris", + "block.create.green_nixie_tube": "Tubo Nixie verde", + "block.create.green_sail": "Vela verde", + "block.create.green_seat": "Asiento verde", + "block.create.green_valve_handle": "Asa de válvula verde", + "block.create.hand_crank": "Manivela", + "block.create.haunted_bell": "Campana encantada", + "block.create.honey": "Miel", + "block.create.horizontal_framed_glass": "Cristal con marco horizontal", + "block.create.horizontal_framed_glass_pane": "Panel de cristal con marco horizontal", + "block.create.hose_pulley": "Polea de manguera", + "block.create.item_drain": "Drenador de objetos", + "block.create.jungle_window": "Ventana de jungla", + "block.create.jungle_window_pane": "Panel de ventana de jungla", + "block.create.large_cogwheel": "Engranaje grande", + "block.create.layered_andesite": "Andesita estratificada", + "block.create.layered_dark_scoria": "Escoria oscura estratificada", + "block.create.layered_diorite": "Diorita estratificada", + "block.create.layered_dolomite": "Dolomita estratificada", + "block.create.layered_gabbro": "Gabro estratificado", + "block.create.layered_granite": "Granito estratificado", + "block.create.layered_limestone": "Piedra caliza estratificada", + "block.create.layered_scoria": "Escoria estratificada", + "block.create.layered_weathered_limestone": "Caliza erosionada estratificada", + "block.create.lectern_controller": "Controlador de atril", + "block.create.light_blue_nixie_tube": "Tubo Nixie azul claro", + "block.create.light_blue_sail": "Vela azul claro", + "block.create.light_blue_seat": "Asiento azul claro", + "block.create.light_blue_valve_handle": "Asa de válvula azul claro", + "block.create.light_gray_nixie_tube": "Tubo Nixie gris claro", + "block.create.light_gray_sail": "Vela gris claro", + "block.create.light_gray_seat": "Asiento gris claro", + "block.create.light_gray_valve_handle": "Asa de válvula gris claro", + "block.create.lime_nixie_tube": "Tubo Nixie lima", + "block.create.lime_sail": "Vela lima", + "block.create.lime_seat": "Asiento lima", + "block.create.lime_valve_handle": "Asa de válvula lima", + "block.create.limesand": "Arena caliza", + "block.create.limestone": "Piedra caliza", + "block.create.limestone_bricks": "Ladrillos de piedra caliza", + "block.create.limestone_bricks_slab": "Losa de ladrillos de piedra caliza", + "block.create.limestone_bricks_stairs": "Escaleras de ladrillos de piedra caliza", + "block.create.limestone_bricks_wall": "Muro de ladrillos de piedra caliza", + "block.create.limestone_cobblestone": "Adoquínes de piedra caliza", + "block.create.limestone_cobblestone_slab": "Losa de adoquines de piedra caliza", + "block.create.limestone_cobblestone_stairs": "Escaleras de adoquines de piedra caliza", + "block.create.limestone_cobblestone_wall": "Muro de adoquines de piedra caliza", + "block.create.limestone_pillar": "Pilar de piedra caliza", + "block.create.linear_chassis": "Chasis lineal", + "block.create.lit_blaze_burner": "Quemador de Blaze encendido", + "block.create.magenta_nixie_tube": "Tubo Nixie magenta", + "block.create.magenta_sail": "Vela magenta", + "block.create.magenta_seat": "Asiento magenta", + "block.create.magenta_valve_handle": "Asa de válvula magenta", + "block.create.mechanical_arm": "Brazo mecánico", + "block.create.mechanical_bearing": "Rodamiento mecánico", + "block.create.mechanical_crafter": "Ensamblador mecánico", + "block.create.mechanical_drill": "Taladro mecánico", + "block.create.mechanical_harvester": "Cosechadora mecánica", + "block.create.mechanical_mixer": "Mezcladora mecánica", + "block.create.mechanical_piston": "Pistón mecánico", + "block.create.mechanical_piston_head": "Cabezal de pistón mecánico", + "block.create.mechanical_plough": "Arado mecánico", + "block.create.mechanical_press": "Prensa mecánica", + "block.create.mechanical_pump": "Bomba mecánica", + "block.create.mechanical_saw": "Sierra mecánica", + "block.create.metal_bracket": "Soporte de metal para ejes", + "block.create.millstone": "Piedra de molino", + "block.create.minecart_anchor": "Ancla de vagonetas", + "block.create.mossy_andesite": "Andesita musgosa", + "block.create.mossy_dark_scoria": "Escoria oscura musgosa", + "block.create.mossy_diorite": "Diorita musgosa", + "block.create.mossy_dolomite": "Dolomita musgosa", + "block.create.mossy_gabbro": "Gabro musgoso", + "block.create.mossy_granite": "Granito musgoso", + "block.create.mossy_limestone": "Caliza musgosa", + "block.create.mossy_scoria": "Escoria musgosa", + "block.create.mossy_weathered_limestone": "Caliza erosionada musgosa", + "block.create.mysterious_cuckoo_clock": "Reloj de cuco", + "block.create.natural_scoria": "Escoria natural", + "block.create.nixie_tube": "Tubo Nixie", + "block.create.nozzle": "Boquilla", + "block.create.oak_window": "Ventana de roble", + "block.create.oak_window_pane": "Panel de ventana de roble", + "block.create.orange_sail": "Vela naranja", + "block.create.orange_seat": "Asiento naranja", + "block.create.orange_valve_handle": "Asa de válvula naranja", + "block.create.ornate_iron_window": "Ventana de hierro ornamentada", + "block.create.ornate_iron_window_pane": "Panel de ventana de hierro ornamentada", + "block.create.overgrown_andesite": "Andesita sobredimensionada", + "block.create.overgrown_dark_scoria": "Escoria oscura sobredimensionada", + "block.create.overgrown_diorite": "Diorita sobredimensionada", + "block.create.overgrown_dolomite": "Dolomita sobredimensionada", + "block.create.overgrown_gabbro": "Gabro sobredimensionado", + "block.create.overgrown_granite": "Granito sobredimensionado", + "block.create.overgrown_limestone": "Caliza sobredimensionada", + "block.create.overgrown_scoria": "Escoria sobredimensionada", + "block.create.overgrown_weathered_limestone": "Caliza erosionada sobredimensionada", + "block.create.paved_andesite": "Andesita pavimentada", + "block.create.paved_andesite_slab": "Losa de andesita pavimentada", + "block.create.paved_andesite_stairs": "Escaleras de andesita pavimentada", + "block.create.paved_andesite_wall": "Muro de andesita pavimentada", + "block.create.paved_dark_scoria": "Escoria oscura pavimentada", + "block.create.paved_dark_scoria_slab": "Losa de escoria oscura pavimentada", + "block.create.paved_dark_scoria_stairs": "Escaleras de escoria oscura pavimentada", + "block.create.paved_dark_scoria_wall": "Muro de escoria oscura pavimentad", + "block.create.paved_diorite": "Diorita pavimentada", + "block.create.paved_diorite_slab": "Losa de diorita pavimentada", + "block.create.paved_diorite_stairs": "Escaleras de diorita pavimentada", + "block.create.paved_diorite_wall": "Muro de diorita pavimentad", + "block.create.paved_dolomite": "Dolomita pavimentada", + "block.create.paved_dolomite_slab": "Losa de dolomita pavimentada", + "block.create.paved_dolomite_stairs": "Escaleras de dolomita pavimentada", + "block.create.paved_dolomite_wall": "Muro de dolomita pavimentada", + "block.create.paved_gabbro": "Gabro pavimentado", + "block.create.paved_gabbro_slab": "Losa de gabro pavimentado", + "block.create.paved_gabbro_stairs": "Escaleras de gabro pavimentado", + "block.create.paved_gabbro_wall": "Muro de gabro pavimentado", + "block.create.paved_granite": "Granito pavimentado", + "block.create.paved_granite_slab": "Losa de granito pavimentado", + "block.create.paved_granite_stairs": "Escaleras de granito pavimentado", + "block.create.paved_granite_wall": "Muro de granito pavimentado", + "block.create.paved_limestone": "Piedra caliza pavimentada", + "block.create.paved_limestone_slab": "Losa de piedra caliza pavimentada", + "block.create.paved_limestone_stairs": "Escaleras de piedra caliza pavimentada", + "block.create.paved_limestone_wall": "Muro de piedra caliza pavimentada", + "block.create.paved_scoria": "Escoria pavimentada", + "block.create.paved_scoria_slab": "Losa de escoria pavimentada", + "block.create.paved_scoria_stairs": "Escaleras de escoria pavimentada", + "block.create.paved_scoria_wall": "Muro de escoria pavimentada", + "block.create.paved_weathered_limestone": "Piedra caliza erosionada pavimentada", + "block.create.paved_weathered_limestone_slab": "Losa de piedra caliza erosionada pavimentada", + "block.create.paved_weathered_limestone_stairs": "Escaleras de piedra caliza erosionada pavimentada", + "block.create.paved_weathered_limestone_wall": "Muro de piedra caliza erosionada pavimentada", + "block.create.peculiar_bell": "Campana peculiar", + "block.create.pink_nixie_tube": "Tubo Nixie rosa", + "block.create.pink_sail": "Vela rosa", + "block.create.pink_seat": "Asiento rosa", + "block.create.pink_valve_handle": "Asa de válvula rosa", + "block.create.piston_extension_pole": "Pértiga de extensión de pistón", + "block.create.polished_dark_scoria": "Escoria oscura pulida", + "block.create.polished_dark_scoria_slab": "Losa de escoria oscura pulida", + "block.create.polished_dark_scoria_stairs": "Escaleras de escoria oscura pulida", + "block.create.polished_dark_scoria_wall": "Muro de escoria oscura pulida", + "block.create.polished_dolomite": "Dolomita pulida", + "block.create.polished_dolomite_slab": "Losa de dolomita pulida", + "block.create.polished_dolomite_stairs": "Escaleras de dolomita pulidas", + "block.create.polished_dolomite_wall": "Muro de dolomita pulida", + "block.create.polished_gabbro": "Gabro pulido", + "block.create.polished_gabbro_slab": "Losa de gabro pulido", + "block.create.polished_gabbro_stairs": "Escaleras de gabro pulido", + "block.create.polished_gabbro_wall": "Muro de gabro pulido", + "block.create.polished_limestone": "Piedra caliza pulida", + "block.create.polished_limestone_slab": "Losa de piedra caliza pulida", + "block.create.polished_limestone_stairs": "Escaleras de piedra caliza pulidas", + "block.create.polished_limestone_wall": "Muro de piedra caliza pulida", + "block.create.polished_scoria": "Escoria pulida", + "block.create.polished_scoria_slab": "Losa de escoria pulida", + "block.create.polished_scoria_stairs": "Escaleras de losa pulida", + "block.create.polished_scoria_wall": "Muro de escoria pulida", + "block.create.polished_weathered_limestone": "Piedra caliza erosionada pulida", + "block.create.polished_weathered_limestone_slab": "Losa de piedra caliza erosionada pulida", + "block.create.polished_weathered_limestone_stairs": "Escaleras de piedra caliza erosionada pulida", + "block.create.polished_weathered_limestone_wall": "Muro de piedra caliza erosionada pulida", + "block.create.portable_fluid_interface": "Interfaz de fluidos portátil", + "block.create.portable_storage_interface": "Interfaz de almacenamiento portátil", + "block.create.powered_latch": "Palanca motorizada", + "block.create.powered_toggle_latch": "Palanca de cierre motorizada", + "block.create.pulley_magnet": "Imán de la polea", + "block.create.pulse_repeater": "Repetidor de pulsos de redstone", + "block.create.purple_nixie_tube": "Tubo Nixie morado", + "block.create.purple_sail": "Vela morada", + "block.create.purple_seat": "Asiento morado", + "block.create.purple_valve_handle": "Asa de válvula morada", + "block.create.radial_chassis": "Chasis radial", + "block.create.red_nixie_tube": "Tubo Nixie rojo", + "block.create.red_sail": "Vela roja", + "block.create.red_seat": "Asiento rojo", + "block.create.red_valve_handle": "Asa de válvula roja", + "block.create.redstone_contact": "Contacto de redstone", + "block.create.redstone_link": "Enlace de redstone", + "block.create.refined_radiance_casing": "Revestidor radiante", + "block.create.reinforced_rail": "Raíl reforzado", + "block.create.rope": "Cuerda", + "block.create.rope_pulley": "Polea de cuerda", + "block.create.rotation_speed_controller": "Controlador de velocidad rotacional", + "block.create.sail_frame": "Marco de vela", + "block.create.schematic_table": "Tabla de esquemas", + "block.create.schematicannon": "Cañón de esquemas", + "block.create.scoria": "Escoria", + "block.create.scoria_bricks": "Ladrillos de escoria", + "block.create.scoria_bricks_slab": "Losa de ladrillos de escoria", + "block.create.scoria_bricks_stairs": "Escaleras de ladrillos de escoria", + "block.create.scoria_bricks_wall": "Muro de ladrillos de escoria", + "block.create.scoria_cobblestone": "Adoquín de escoria", + "block.create.scoria_cobblestone_slab": "Losa de adoquínes de escoria", + "block.create.scoria_cobblestone_stairs": "Escaleras de adoquines de escoria", + "block.create.scoria_cobblestone_wall": "Muro de adoquines de escoria", + "block.create.scoria_pillar": "Pilar de escoria", + "block.create.secondary_linear_chassis": "Chasis lineal secundario", + "block.create.sequenced_gearshift": "Caja de cambios secuencial", + "block.create.shadow_steel_casing": "Revestidor sombrío", + "block.create.shaft": "Eje", + "block.create.smart_chute": "Ducto inteligente", + "block.create.smart_fluid_pipe": "Tubería de fluidos inteligente", + "block.create.speedometer": "Velocímetro", + "block.create.spout": "Surtidor", + "block.create.spruce_window": "Ventana de abeto", + "block.create.spruce_window_pane": "Panel de ventana de abeto", + "block.create.sticker": "Sticker", + "block.create.sticky_mechanical_piston": "Pistón mecánico pegajoso", + "block.create.stockpile_switch": "Interruptor de acopio", + "block.create.stressometer": "Estresómetro", + "block.create.tiled_glass": "Vidrio esmaltado", + "block.create.tiled_glass_pane": "Panel de vidrio esmaltado", + "block.create.turntable": "Plataforma giratoria mecánica", + "block.create.vertical_framed_glass": "Vidrio esmaltado vertical", + "block.create.vertical_framed_glass_pane": "Panel de vidrio esmaltado vertical", + "block.create.warped_window": "Ventana distorsionada", + "block.create.warped_window_pane": "Panel de ventana distorsionada", + "block.create.water_wheel": "Rueda hidráulica mecánica", + "block.create.weathered_limestone": "Piedra caliza erosionada", + "block.create.weathered_limestone_bricks": "Ladrillos de piedra caliza erosionada", + "block.create.weathered_limestone_bricks_slab": "Losa de piedra caliza erosionada", + "block.create.weathered_limestone_bricks_stairs": "Escaleras de ladrillos de piedra caliza erosionada", + "block.create.weathered_limestone_bricks_wall": "Muro de ladrillos de piedra caliza erosionada", + "block.create.weathered_limestone_cobblestone": "Adoquín de piedra caliza erosionada", + "block.create.weathered_limestone_cobblestone_slab": "Losa de adoquín de piedra caliza erosionada", + "block.create.weathered_limestone_cobblestone_stairs": "Escaleras de adoquín de piedra caliza erosionada", + "block.create.weathered_limestone_cobblestone_wall": "Muro de adoquínes de piedra caliza erosionada", + "block.create.weathered_limestone_pillar": "Pilar de piedra caliza erosionada", + "block.create.weighted_ejector": "Eyector de peso", + "block.create.white_nixie_tube": "Tubo Nixie blanco", + "block.create.white_sail": "Vela blanca", + "block.create.white_seat": "Asiento blanco", + "block.create.white_valve_handle": "Asa de válvula blanco", + "block.create.windmill_bearing": "Rodamiento del molino de viento", + "block.create.wooden_bracket": "Soporte de madera para ejes", + "block.create.yellow_nixie_tube": "Tubo Nixie amarillo", + "block.create.yellow_sail": "Vela amarilla", + "block.create.yellow_seat": "Asiento amarillo", + "block.create.yellow_valve_handle": "Asa de válvula amarillo", + "block.create.zinc_block": "Bloque de zinc", + "block.create.zinc_ore": "Mena de zinc", + + "enchantment.create.capacity": "Capacidad", + "enchantment.create.potato_recovery": "Recuperación de patatas", + + "entity.create.contraption": "Artilugio", + "entity.create.crafting_blueprint": "Plano de elaboración", + "entity.create.gantry_contraption": "Artilugio de grúa", + "entity.create.potato_projectile": "Proyectil de patata", + "entity.create.seat": "Asiento", + "entity.create.stationary_contraption": "Artilugio estacionario", + "entity.create.super_glue": "Pegamento", + + "fluid.create.potion": "Poción", + "fluid.create.tea": "Té del Constructor", + + "item.create.andesite_alloy": "Aleación de andesita", + "item.create.attribute_filter": "Filtro de atributos", + "item.create.bar_of_chocolate": "Barra de chocolate", + "item.create.belt_connector": "Correa mecánica", + "item.create.blaze_cake": "Pastel de blaze", + "item.create.blaze_cake_base": "Base de pastel de blaze", + "item.create.brass_hand": "Mano de latón", + "item.create.brass_ingot": "Lingote de latón", + "item.create.brass_nugget": "Pepita de latón", + "item.create.brass_sheet": "Lámina de latón", + "item.create.builders_tea": "Té del Constructor", + "item.create.chest_minecart_contraption": "Artilugio de vagoneta con cofre", + "item.create.chocolate_bucket": "Cubo con chocolate", + "item.create.chocolate_glazed_berries": "Bayas glaseadas con chocolate", + "item.create.chromatic_compound": "Compuesto cromático", + "item.create.cinder_flour": "Harina del Nether", + "item.create.copper_backtank": "Depósito trasero de cobre", + "item.create.copper_ingot": "Lingote de cobre", + "item.create.copper_nugget": "Pepita de cobre", + "item.create.copper_sheet": "Lámina de cobre", + "item.create.crafter_slot_cover": "Tapa de ranura del ensamblador mecánico", + "item.create.crafting_blueprint": "Plano de elaboración", + "item.create.creative_blaze_cake": "´Pastel de blaze creativo", + "item.create.crushed_aluminum_ore": "Mineral de aluminio molido", + "item.create.crushed_brass": "Latón molido", + "item.create.crushed_copper_ore": "Mineral de cobre molido", + "item.create.crushed_gold_ore": "Mineral de oro molido", + "item.create.crushed_iron_ore": "Mineral de hierro molido", + "item.create.crushed_lead_ore": "Mineral de plomo molido", + "item.create.crushed_nickel_ore": "Mineral de níquel molido", + "item.create.crushed_osmium_ore": "Mineral de osmio molido", + "item.create.crushed_platinum_ore": "Mineral de platino molido", + "item.create.crushed_quicksilver_ore": "Mineral de mercurio molido", + "item.create.crushed_silver_ore": "Mineral de plata molido", + "item.create.crushed_tin_ore": "Mineral de estaño molido", + "item.create.crushed_uranium_ore": "Mineral de uranio molido", + "item.create.crushed_zinc_ore": "Mineral de zinc molido", + "item.create.diving_boots": "Botas de buceo", + "item.create.diving_helmet": "Casco de buceo", + "item.create.dough": "Masilla", + "item.create.electron_tube": "Tubo de electrones", + "item.create.empty_blaze_burner": "Quemador de blaze vacío", + "item.create.empty_schematic": "Esquema vacío", + "item.create.extendo_grip": "Agarre extendido", + "item.create.filter": "Filtro", + "item.create.furnace_minecart_contraption": "Artilugio de vagoneta de horno", + "item.create.goggles": "Gafas del constructor", + "item.create.golden_sheet": "Lámina de oro", + "item.create.handheld_worldshaper": "Worldshaper Creativo", + "item.create.honey_bucket": "Cubo con miel", + "item.create.honeyed_apple": "Manzana con miel", + "item.create.incomplete_cogwheel": "Engranaje pequeño incompleto", + "item.create.incomplete_large_cogwheel": "Engranaje grande incompleto", + "item.create.incomplete_precision_mechanism": "Mecanismo de precisión incompleto", + "item.create.iron_sheet": "Lámina de hierro", + "item.create.linked_controller": "Controlador enlazado", + "item.create.minecart_contraption": "Artilugio de vagoneta", + "item.create.minecart_coupling": "Acoplamiento de vagoneta", + "item.create.polished_rose_quartz": "Cuarzo rosado pulido", + "item.create.potato_cannon": "Cañón de patatas", + "item.create.powdered_obsidian": "Polvo de obsidiana", + "item.create.precision_mechanism": "Mecanismo de precisión", + "item.create.propeller": "Hélice", + "item.create.red_sand_paper": "Papel de lija rojo", + "item.create.refined_radiance": "Resplandor refinado", + "item.create.rose_quartz": "Cuarzo rosado", + "item.create.sand_paper": "Papel de lija", + "item.create.schematic": "Esquema", + "item.create.schematic_and_quill": "Esquema y pluma", + "item.create.shadow_steel": "Acero sombrío", + "item.create.super_glue": "Pegamento", + "item.create.sweet_roll": "Pan dulce", + "item.create.tree_fertilizer": "Fertilizante para árboles", + "item.create.vertical_gearbox": "Caja de transmisión vertical", + "item.create.wand_of_symmetry": "Varita de simetría", + "item.create.wheat_flour": "Harina de trigo", + "item.create.whisk": "Batidora", + "item.create.wrench": "Llave inglesa", + "item.create.zinc_ingot": "Lingote de zinc", + "item.create.zinc_nugget": "Pepita de zinc", + + + "_": "->------------------------] Advancements [------------------------<-", + + "advancement.create.root": "Bienvenido a Create", + "advancement.create.root.desc": "¡Es hora de empezar a construir increíbles artilugios!", + "advancement.create.andesite_alloy": "Aleaciones en abundancia", + "advancement.create.andesite_alloy.desc": "Los materiales de Create tienen nombres extraños, la aleación de andesita es uno de ellos.", + "advancement.create.its_alive": "¡Está vivo!", + "advancement.create.its_alive.desc": "Mira cómo gira tu primer componente cinético.", + "advancement.create.shifting_gears": "Cambiando de marcha", + "advancement.create.shifting_gears.desc": "Conecta un engranaje grande a uno pequeño, lo que te permitirá cambiar la velocidad de tu artilugio.", + "advancement.create.overstressed": "Sobrecargado", + "advancement.create.overstressed.desc": "Experimenta los límites del estrés.", + "advancement.create.belt": "Paseo de algas", + "advancement.create.belt.desc": "Conectar dos ejes con una correa.", + "advancement.create.tunnel": "¡Cúbrete!", + "advancement.create.tunnel.desc": "Embellece tu correa con un túnel.", + "advancement.create.splitter_tunnel": "Divide y vencerás", + "advancement.create.splitter_tunnel.desc": "Crear un divisor con un grupo de túneles de latón.", + "advancement.create.chute": "Caída en picado", + "advancement.create.chute.desc": "Coloque un ducto, la contrapartida vertical de la cinta.", + "advancement.create.upward_chute": "Abducción aérea", + "advancement.create.upward_chute.desc": "Observe cómo un objeto lanzado vuela dentro de un ducto impulsado por un ventilador.", + "advancement.create.belt_funnel": "Colgantes con forma de embudo", + "advancement.create.belt_funnel.desc": "Coloca un embudo lateral encima de una cinta o depósito para crear un tipo especial.", + "advancement.create.belt_funnel_kiss": "Los loros y las aletas", + "advancement.create.belt_funnel_kiss.desc": "Haz besar dos embudos montados con una cinta.", + "advancement.create.fan": "Maestro mecánico del aire", + "advancement.create.fan.desc": "Monta la corriente de aire proporcionada por un ventilador revestido.", + "advancement.create.fan_lava": "Calentador geotérmico", + "advancement.create.fan_lava.desc": "Queda atrapado en una corriente de aire que funde las cosas.", + "advancement.create.fan_water": "Lavado de la ropa", + "advancement.create.fan_water.desc": "Queda atrapado en una corriente de aire que lava las cosas.", + "advancement.create.fan_smoke": "Fuelle mecánico", + "advancement.create.fan_smoke.desc": "Queda atrapado en una corriente de aire que humea los objetos.", + "advancement.create.wrench": "Configurar convenientemente", + "advancement.create.wrench.desc": "Crea una llave inglesa para ayudarte a construir tus artilugios.", + "advancement.create.goggles": "Estresóvisión", + "advancement.create.goggles.desc": "Crea unas gafas del constructor para ayudarte a obtener más información cinética de los componentes.", + "advancement.create.speedometer": "Pero, ¿con qué rapidez exactamente?", + "advancement.create.speedometer.desc": "Coloca y alimenta un velocímetro. Míralo a través de las gafas para leer su valor exacto.", + "advancement.create.stressometer": "Pero, ¿cuán estresado exactamente??", + "advancement.create.stressometer.desc": "Coloca y alimenta un estresómetro. Míralo a través de las gafas para leer su valor exacto.", + "advancement.create.aesthetics": "Boom, ¡Estética!", + "advancement.create.aesthetics.desc": "Coloca soportes en ejes, ductos y engranajes.", + "advancement.create.reinforced": "Boom, ¡Reforzado!", + "advancement.create.reinforced.desc": "Utiliza bloques de revestimiento en un eje, un ducto y una cinta.", + "advancement.create.water_wheel": "Aprovechar la hidráulica", + "advancement.create.water_wheel.desc": "Coloca una rueda hidráulica e intenta hacerla girar.", + "advancement.create.chocolate_wheel": "Potencia de buen gusto", + "advancement.create.chocolate_wheel.desc": "Haz funcionar una rueda de agua con chocolate fundido.", + "advancement.create.lava_wheel": "Rueda de magma", + "advancement.create.lava_wheel.desc": "Esto no debió haber funcionado.", + "advancement.create.cuckoo": "¿Es el momento?", + "advancement.create.cuckoo.desc": "Presencia cómo un reloj de cuco anuncia la hora de acostarse.", + "advancement.create.millstone": "Triturador de bolsillo", + "advancement.create.millstone.desc": "Coloca y alimenta una piedra de molino.", + "advancement.create.windmill": "Una suave brisa", + "advancement.create.windmill.desc": "Monta un molino de viento.", + "advancement.create.maxed_windmill": "Una fuerte brisa", + "advancement.create.maxed_windmill.desc": "Monta un molino de viento con máxima intensidad.", + "advancement.create.andesite_casing": "La edad de la andesita", + "advancement.create.andesite_casing.desc": "Utiliza un poco de aleación de andesita y madera para crear un revestimiento básico.", + "advancement.create.mechanical_drill": "Interruptores fijos", + "advancement.create.mechanical_drill.desc": "Coloca y alimenta un taladro mecánico.", + "advancement.create.press": "¡La prensa se pone en marcha!", + "advancement.create.press.desc": "Activa una prensa mecánica y utilízala para crear algunas láminas.", + "advancement.create.polished_rose_quartz": "Diamantes rosas", + "advancement.create.polished_rose_quartz.desc": "Utiliza un trozo de papel de lija para pulir el cuarzo rosa hasta que se vuelva transparente.", + "advancement.create.electron_tube": "Beep Boop", + "advancement.create.electron_tube.desc": "Haz algunos tubos de electrones, útiles en la fabricación de maquinaria menos primitiva.", + "advancement.create.mechanical_saw": "Picado estacionario", + "advancement.create.mechanical_saw.desc": "Coloca y alimenta una sierra mecánica.", + "advancement.create.basin": "Funcionamiento de la cuenca", + "advancement.create.basin.desc": "Coloca una cuenca e intenta arrojar objetos en ella.", + "advancement.create.mixer": "Mezcla de colores", + "advancement.create.mixer.desc": "Coloca una batidora mecánica sobre el lavabo, enciéndala y empiece a mezclar algunos ingredientes.", + "advancement.create.blaze_burner": "Una chimenea viva", + "advancement.create.blaze_burner.desc": "Obtiene un quemador de blaze.", + "advancement.create.compact": "Compactación automática", + "advancement.create.compact.desc": "Utiliza una prensa y una cuenca para compactar algunos objetos.", + "advancement.create.brass": "Aleaciones reales", + "advancement.create.brass.desc": "Utiliza cobre molido y zinc molido para crear algo de latón.", + "advancement.create.brass_casing": "La Edad de Latón", + "advancement.create.brass_casing.desc": "Utiliza el latón recién obtenido y algo de madera para crear un revestimiento más avanzado.", + "advancement.create.copper_casing": "La Edad de Cobre", + "advancement.create.copper_casing.desc": "Utiliza algunas láminas de cobre y madera para crear algunos revestimientos de cobre.", + "advancement.create.spout": "Sploosh", + "advancement.create.spout.desc": "Observa el llenado de un fluido usando una boquilla.", + "advancement.create.spout_potion": "Cervecera global", + "advancement.create.spout_potion.desc": "Mira cómo un pico llena una botella con líquido de poción.", + "advancement.create.chocolate": "Un mundo de imaginación", + "advancement.create.chocolate.desc": "Obtiene un cubo con chocolate fundido.", + "advancement.create.item_drain": "Drenaje de la ropa", + "advancement.create.item_drain.desc": "Ve cómo se vacía un fluido mediante un drenador de objetos.", + "advancement.create.chained_item_drain": "¡Déjalo rodar!", + "advancement.create.chained_item_drain.desc": "Observa cómo un objeto rueda por varios drenadores de objetos encadenados.", + "advancement.create.glass_pipe": "Espía del flujo", + "advancement.create.glass_pipe.desc": "Observa cómo se propaga el fluido a través de un tubo de fluidos con ventanas. Los tubos de fluido rectos se convierten en ventanas cuando se utiliza una llave inglesa en ellas.", + "advancement.create.pipe_collision": "No cruzar nunca los arroyos", + "advancement.create.pipe_collision.desc": "Vea cómo se unen dos fluidos en su red de tuberías.", + "advancement.create.pipe_spill": "¡Hay una fuga!", + "advancement.create.pipe_spill.desc": "Observe cómo un extremo abierto de una tubería toma o deposita fluidos en el mundo.", + "advancement.create.hose_pulley": "Vertidos industriales", + "advancement.create.hose_pulley.desc": "Baja una polea de manguera y ve cómo se vacía o se llena un cuerpo de líquido.", + "advancement.create.infinite_water": "Drenando el océano", + "advancement.create.infinite_water.desc": "Bombea de una masa de agua lo suficientemente grande como para ser considerada infinita.", + "advancement.create.infinite_lava": "Drenaje del núcleo de los planetas", + "advancement.create.infinite_lava.desc": "Bombea de una masa de lava lo suficientemente grande como para ser considerada infinita.", + "advancement.create.infinite_chocolate": "Ahogándose en la imaginación", + "advancement.create.infinite_chocolate.desc": "Bombea desde una masa de chocolate fundido lo suficientemente grande como para ser considerado infinito.", + "advancement.create.crafter": "Montaje automatizado", + "advancement.create.crafter.desc": "Coloca y alimenta algunos ensambladores.", + "advancement.create.clockwork_bearing": "Artilugio a la hora", + "advancement.create.clockwork_bearing.desc": "Ensamblar una estructura montada sobre un rodamiento tipo reloj.", + "advancement.create.nixie_tube": "Signos de estilo", + "advancement.create.nixie_tube.desc": "Obtener y colocar un par de tubos nixie.", + "advancement.create.deployer": "Picar, colocar y atacar", + "advancement.create.deployer.desc": "Coloca y potencia un desplegador, el reflejo perfecto de ti mismo.", + "advancement.create.speed_controller": "Los ingenieros lo odian!", + "advancement.create.speed_controller.desc": "Coloca un controlador de velocidad rotacional, el dispositivo definitivo para cambiar de marcha.", + "advancement.create.flywheel": "El corazón de la fábrica", + "advancement.create.flywheel.desc": "Conecta con éxito un motor a la rueda de inercia.", + "advancement.create.overstress_flywheel": "Altos niveles de estrés", + "advancement.create.overstress_flywheel.desc": "Sobrecarga un motor de horno.", + "advancement.create.precision_mechanism": "Curiosidades complejas", + "advancement.create.precision_mechanism.desc": "Monta un mecanismo de precisión.", + "advancement.create.mechanical_arm": "¡Manos ocupadas!", + "advancement.create.mechanical_arm.desc": "Crea un brazo mecánico, selecciona las entradas y salidas, colócalo en el suelo y dale energía; luego observa cómo hace todo el trabajo por ti.", + "advancement.create.musical_arm": "¡Tócame la melodía!", + "advancement.create.musical_arm.desc": "Vea cómo un brazo mecánico maneja su Jukebox.", + "advancement.create.arm_many_targets": "Organize-o-Tron", + "advancement.create.arm_many_targets.desc": "Programa un brazo mecánico con diez o más posiciones de salida.", + "advancement.create.arm_blaze_burner": "Combust-o-Tron", + "advancement.create.arm_blaze_burner.desc": "Instruya un brazo mecánico para alimentar su quemador de blaze.", + "advancement.create.fist_bump": "¡Pégale, hermano!", + "advancement.create.fist_bump.desc": "Haz que dos desplegadores se den un puñetazo.", + "advancement.create.crushing_wheel": "Un par de gigantes", + "advancement.create.crushing_wheel.desc": "Crea algunas ruedas de trituración para descomponer más materiales de forma más eficaz.", + "advancement.create.blaze_cake": "Fiebre del azúcar", + "advancement.create.blaze_cake.desc": "Hornea en tu quemador de blaze un pastel especial.", + "advancement.create.chromatic_compound": "Minerales misteriosos", + "advancement.create.chromatic_compound.desc": "Crea una barra de compuesto cromático.", + "advancement.create.shadow_steel": "Retorno del vacío", + "advancement.create.shadow_steel.desc": "Crea acero sombrío, una barra de metal de la nada.", + "advancement.create.refined_radiance": "Brillante e inspirador", + "advancement.create.refined_radiance.desc": "Crea un resplandor refinado, una poderosa sustancia cromática.", + "advancement.create.chromatic_age": "La edad cromática", + "advancement.create.chromatic_age.desc": "Crear bloques de revestimiento de la luz y la oscuridad.", + "advancement.create.wand_of_symmetry": "Espejos radiantes", + "advancement.create.wand_of_symmetry.desc": "Crear un bastón de simetría.", + "advancement.create.extendo_grip": "¡Boioioing!", + "advancement.create.extendo_grip.desc": "Hazte con un agarre extentido.", + "advancement.create.potato_cannon": "Fwoomp!", + "advancement.create.potato_cannon.desc": "Derrota a un enemigo con tu cañón de patatas.", + "advancement.create.dual_extendo_grip": "La última edad del boing", + "advancement.create.dual_extendo_grip.desc": "Doble empuñadura extendida para un alcance sobrehumano.", + "advancement.create.eob": "Fin de la beta", + "advancement.create.eob.desc": "Espere más contenido aquí en el futuro. <3", + + + "_": "->------------------------] UI & Messages [------------------------<-", + + "itemGroup.create.base": "Create", + "itemGroup.create.palettes": "Paletas", + + "death.attack.create.crush": "%1$s se procesó en las ruedas de trituración", + "death.attack.create.crush.player": "%1$s fue arrojado a las ruedas de trituración por %2$s", + "death.attack.create.fan_fire": "%1$s murió quemado por el aire caliente", + "death.attack.create.fan_fire.player": "%1$s fue arrojado a un ahumador por %2$s", + "death.attack.create.fan_lava": "%1$s murió quemado por un abanico de lava", + "death.attack.create.fan_lava.player": "%1$s fue arrojado a una fundición por %2$s", + "death.attack.create.mechanical_drill": "%1$s fue empalado por un taladro mecánico", + "death.attack.create.mechanical_drill.player": "%1$s fue lanzado frente a un taladro por %2$s", + "death.attack.create.mechanical_saw": "%1$s fue cortado por la mitad por una sierra mecánica", + "death.attack.create.mechanical_saw.player": "%1$s fue arrojado a una sierra por %2$s", + "death.attack.create.potato_cannon": "%1$s fue disparado por el cañón de patatas de %2$s's", + "death.attack.create.potato_cannon.item": "%1$s fue disparado por %2$s utilizando %3$s", + "death.attack.create.cuckoo_clock_explosion": "%1$s fue volado por los aires por un reloj de cuco manipulado", + "death.attack.create.cuckoo_clock_explosion.player": "%1$s fue volado por un reloj de cuco manipulado", + + "create.block.deployer.damage_source_name": "Un desplegador rebelde", + "create.block.cart_assembler.invalid": "Coloque su Ensamblador de vagonetas en un bloque de Raíles", + + "create.menu.return": "Regresar al menú", + "create.menu.configure": "Configurar...", + "create.menu.ponder_index": "Índice", + "create.menu.only_ingame": "Disponible en el menú de pausa", + "create.menu.project_page": "Página del proyecto", + "create.menu.report_bugs": "Reportar problemas", + "create.menu.support": "Apóyenos", + + "create.recipe.crushing": "Trituración", + "create.recipe.milling": "Fresado", + "create.recipe.fan_washing": "Lavado a granel", + "create.recipe.fan_washing.fan": "Ventilador detrás del agua fluyente", + "create.recipe.fan_smoking": "Ahumador a granel", + "create.recipe.fan_smoking.fan": "Ventilador detrás del fuego", + "create.recipe.fan_blasting": "Voladuras a granel", + "create.recipe.fan_blasting.fan": "Ventilador detrás de la lava", + "create.recipe.pressing": "Prensando", + "create.recipe.mixing": "Mezclando", + "create.recipe.deploying": "Desplegando", + "create.recipe.automatic_shapeless": "Elaboración automatizada de productos sin forma", + "create.recipe.automatic_brewing": "Elaboración de cerveza automatizada", + "create.recipe.packing": "Compactando", + "create.recipe.automatic_packing": "Embalaje automatizado", + "create.recipe.sawing": "Aserrando", + "create.recipe.mechanical_crafting": "Elaboración mecánica", + "create.recipe.automatic_shaped": "Elaboración automatizada de productos con forma", + "create.recipe.block_cutting": "Corte de bloques", + "create.recipe.wood_cutting": "Corte de maderas", + "create.recipe.sandpaper_polishing": "Pulido con papel de lija", + "create.recipe.mystery_conversion": "Conversión misteriosa", + "create.recipe.spout_filling": "Llenar por el pico", + "create.recipe.draining": "Drenador de objetos", + "create.recipe.sequenced_assembly": "Montaje secuenciado", + "create.recipe.assembly.next": "Siguiente: %1$s", + "create.recipe.assembly.step": "Fase %1$s:", + "create.recipe.assembly.progress": "Progreso: %1$s/%2$s", + "create.recipe.assembly.pressing": "Proceso en prensa", + "create.recipe.assembly.spout_filling_fluid": "Pico %1$s", + "create.recipe.assembly.deploying_item": "Despliegue %1$s", + "create.recipe.assembly.cutting": "Corte con sierra", + "create.recipe.assembly.repeat": "Repetir la secuencia %1$s veces", + "create.recipe.assembly.junk": "Basura aleatoria", + "create.recipe.processing.chance": "%1$s%% Chance", + "create.recipe.heat_requirement.none": "No es necesario calentar", + "create.recipe.heat_requirement.heated": "Calentado", + "create.recipe.heat_requirement.superheated": "Súper-Calentado", + + "create.generic.range": "Rango", + "create.generic.radius": "Radio", + "create.generic.width": "Ancho", + "create.generic.height": "Alto", + "create.generic.length": "Largo", + "create.generic.speed": "Velocidad", + "create.generic.delay": "Retraso", + "create.generic.unit.ticks": "Ticks", + "create.generic.unit.seconds": "Segundos", + "create.generic.unit.minutes": "Minutos", + "create.generic.unit.rpm": "RPM", + "create.generic.unit.stress": "SU(unidades de estrés)", + "create.generic.unit.degrees": "°", + "create.generic.unit.millibuckets": "%1$smB", + "create.generic.clockwise": "En el sentido de las agujas del reloj", + "create.generic.counter_clockwise": "En sentido contrario a las agujas del reloj", + + "create.action.scroll": "Desplazar", + "create.action.confirm": "Confirmar", + "create.action.abort": "Abortar", + "create.action.saveToFile": "Guardar", + "create.action.discard": "Descartar", + + "create.keyinfo.toolmenu": "Menú de la Herramienta de Enfoque", + "create.keyinfo.scrollup": "Simular usar la rueda del ratón hacia arriba (en el mundo)", + "create.keyinfo.scrolldown": "Simular usar la rueda del ratón hacia abajo (en el mundo)", + + "create.gui.scrollInput.defaultTitle": "Seleccione una opción:", + "create.gui.scrollInput.scrollToModify": "Usa la rueda del ratón para modificar", + "create.gui.scrollInput.scrollToAdjustAmount": "Usa la rueda del ratón para ajustar la cantidad", + "create.gui.scrollInput.scrollToSelect": "Usa la rueda del ratón para seleccionar", + "create.gui.scrollInput.shiftScrollsFaster": "Mayús izdo para usar la rueda del ratón más rápido", + "create.gui.toolmenu.focusKey": "Mantén [%1$s] para enfocar", + "create.gui.toolmenu.cycle": "[RUEDA DEL RATÓN] para el ciclo", + "create.gui.symmetryWand.mirrorType": "Espejado", + "create.gui.symmetryWand.orientation": "Orientación", + + "create.symmetry.mirror.plane": "Plano de espejo", + "create.symmetry.mirror.doublePlane": "Rectangular", + "create.symmetry.mirror.triplePlane": "Octogonal", + + "create.orientation.orthogonal": "Ortogonal", + "create.orientation.diagonal": "Diagonal", + "create.orientation.horizontal": "Horizontal", + "create.orientation.alongZ": "A lo largo de Z", + "create.orientation.alongX": "A lo largo de X", + + "create.gui.terrainzapper.title": "Blockzapper", + "create.gui.terrainzapper.searchDiagonal": "Seguir diagonales", + "create.gui.terrainzapper.searchFuzzy": "Ignorar los bordes del material", + "create.gui.terrainzapper.patternSection": "Patrón", + "create.gui.terrainzapper.pattern.solid": "Sólido", + "create.gui.terrainzapper.pattern.checkered": "Tablero de ajedrez", + "create.gui.terrainzapper.pattern.inversecheckered": "Tablero de ajedrez invertido", + "create.gui.terrainzapper.pattern.chance25": "25% Roll", + "create.gui.terrainzapper.pattern.chance50": "50% Roll", + "create.gui.terrainzapper.pattern.chance75": "75% Roll", + "create.gui.terrainzapper.placement": "Ubicación", + "create.gui.terrainzapper.placement.merged": "Fusionado", + "create.gui.terrainzapper.placement.attached": "Adjuntado", + "create.gui.terrainzapper.placement.inserted": "Insertado", + "create.gui.terrainzapper.brush": "Pincel", + "create.gui.terrainzapper.brush.cuboid": "Cuboide", + "create.gui.terrainzapper.brush.sphere": "Esfera", + "create.gui.terrainzapper.brush.cylinder": "Cilindro", + "create.gui.terrainzapper.brush.surface": "Superficie", + "create.gui.terrainzapper.brush.cluster": "Grupo", + "create.gui.terrainzapper.tool": "Herramienta", + "create.gui.terrainzapper.tool.fill": "Llenar", + "create.gui.terrainzapper.tool.place": "Ubicar", + "create.gui.terrainzapper.tool.replace": "Reemplazar", + "create.gui.terrainzapper.tool.clear": "Eliminar", + "create.gui.terrainzapper.tool.overlay": "Superponer", + "create.gui.terrainzapper.tool.flatten": "Aplanar", + + "create.terrainzapper.shiftRightClickToSet": "Mayús izdo + clic derecho para seleccionar una forma", + "create.terrainzapper.usingBlock": "Usando: %1$s", + "create.terrainzapper.leftClickToSet": "Clic izquierdo a un bloque para establecer el material", + + "create.minecart_coupling.two_couplings_max": "Las vagonetas no pueden tener más de dos enganches cada una", + "create.minecart_coupling.unloaded": "Algunas partes de su tren parecen estar en chunks no cargados", + "create.minecart_coupling.no_loops": "Los acoplamientos no pueden formar un bucle", + "create.minecart_coupling.removed": "Se han retirado todos los acoplamientos de la vagoneta", + "create.minecart_coupling.too_far": "Las vagonetas están demasiado separadas", + + "create.contraptions.movement_mode": "Modo de movimiento", + "create.contraptions.movement_mode.move_place": "Colocar siempre al detenerse", + "create.contraptions.movement_mode.move_place_returned": "Colocar sólo en la posición inicial", + "create.contraptions.movement_mode.move_never_place": "Colocar sólo cuando se destruye el ancla", + "create.contraptions.movement_mode.rotate_place": "Colocar siempre al detenerse", + "create.contraptions.movement_mode.rotate_place_returned": "Colocar sólo cerca del ángulo inicial", + "create.contraptions.movement_mode.rotate_never_place": "Colocar sólo cuando se destruye el ancla", + "create.contraptions.cart_movement_mode": "Modo de movimiento de la vagoneta", + "create.contraptions.cart_movement_mode.rotate": "Siempre de cara al movimiento", + "create.contraptions.cart_movement_mode.rotate_paused": "Pausar a los actores mientras giran", + "create.contraptions.cart_movement_mode.rotation_locked": "Bloquear rotación", + "create.contraptions.windmill.rotation_direction": "Dirección de rotación", + "create.contraptions.clockwork.clock_hands": "Manecillas de reloj", + "create.contraptions.clockwork.hour_first": "La manecilla de las horas primero", + "create.contraptions.clockwork.minute_first": "La manecilla de los minutos primero", + "create.contraptions.clockwork.hour_first_24": "La manecilla del día primero", + + "create.logistics.filter": "Filtro", + "create.logistics.recipe_filter": "Filtro para recetas", + "create.logistics.fluid_filter": "Filtro para fluidos", + "create.logistics.firstFrequency": "Freq. #1", + "create.logistics.secondFrequency": "Freq. #2", + "create.logistics.filter.apply": "Filtro aplicado a %1$s.", + "create.logistics.filter.apply_click_again": "Filtro aplicado a %1$s, haga clic de nuevo para copiar la cantidad.", + "create.logistics.filter.apply_count": "Aplicado recuento de extracciones al filtro.", + + "create.gui.goggles.generator_stats": "Estadísticas del generador:", + "create.gui.goggles.kinetic_stats": "Estadísticas cinéticas:", + "create.gui.goggles.at_current_speed": "con la velocidad actual", + "create.gui.goggles.pole_length": "Longitud del poste:", + "create.gui.goggles.fluid_container": "Información sobre el contenedor de fluidos:", + "create.gui.goggles.fluid_container.capacity": "Capacidad: ", + "create.gui.assembly.exception": "Este artilugio no se pudo montar:", + "create.gui.assembly.exception.unmovableBlock": "Bloque inamovible (%4$s) en [%1$s,%2$s,%3$s]", + "create.gui.assembly.exception.chunkNotLoaded": "El bloque en [%1$s,%2$s,%3$s] no estaba en un chunk cargado", + "create.gui.assembly.exception.structureTooLarge": "Hay demasiados bloques incluídos en el artilugio.\nEl máximo configurado es: %1$s", + "create.gui.assembly.exception.tooManyPistonPoles": "Hay demasiadas Pértigas de extensión conectadas a este Pistón.\nEl máximo configurado es: %1$s", + "create.gui.assembly.exception.noPistonPoles": "Faltan pértigas de extensión para el pistón", + "create.gui.assembly.exception.not_enough_sails": "La estructura adjunta no incluye suficientes bloques tipo vela: %1$s\nSe requiere un mínimo de %2$s", + "create.gui.gauge.info_header": "Información sobre el medidor:", + "create.gui.speedometer.title": "Velocidad de rotación", + "create.gui.stressometer.title": "Estrés de la red", + "create.gui.stressometer.capacity": "Capacidad restante", + "create.gui.stressometer.overstressed": "Sobrecargado", + "create.gui.stressometer.no_rotation": "Sin rotación", + "create.gui.contraptions.not_fast_enough": "Parece que este %1$s no está girando con _suficiente_ velocidad_.", + "create.gui.contraptions.network_overstressed": "Parece que este artilugio está _sobrecargado_. Añade más fuentes o _desacelera_ los componentes con un _impacto de estrés alto_.", + "create.gui.adjustable_crate.title": "Caja ajustable", + "create.gui.adjustable_crate.storageSpace": "Espacio de almacenamiento", + "create.gui.stockpile_switch.title": "Interruptor de acopio", + "create.gui.stockpile_switch.invert_signal": "Invertir señal", + "create.gui.stockpile_switch.move_to_lower_at": "Pasar al carril inferior en %1$s%%", + "create.gui.stockpile_switch.move_to_upper_at": "Pasar al carril superior en %1$s%%", + "create.gui.sequenced_gearshift.title": "Cambio de marchas secuenciado", + "create.gui.sequenced_gearshift.instruction": "Instrucción", + "create.gui.sequenced_gearshift.instruction.turn_angle.descriptive": "Giro por ángulo", + "create.gui.sequenced_gearshift.instruction.turn_angle": "Giro", + "create.gui.sequenced_gearshift.instruction.turn_angle.angle": "Ángulo", + "create.gui.sequenced_gearshift.instruction.turn_distance.descriptive": "Giro para mover el pistón/polea/grúa", + "create.gui.sequenced_gearshift.instruction.turn_distance": "Pistón", + "create.gui.sequenced_gearshift.instruction.turn_distance.distance": "Distancia", + "create.gui.sequenced_gearshift.instruction.delay.descriptive": "Tiempo de retraso", + "create.gui.sequenced_gearshift.instruction.delay": "Retraso", + "create.gui.sequenced_gearshift.instruction.delay.duration": "Duración", + "create.gui.sequenced_gearshift.instruction.end.descriptive": "Fin", + "create.gui.sequenced_gearshift.instruction.end": "Fin", + "create.gui.sequenced_gearshift.instruction.await.descriptive": "En espera de un pulso de redstone", + "create.gui.sequenced_gearshift.instruction.await": "En espera", + "create.gui.sequenced_gearshift.speed": "Velocidad, Dirección", + "create.gui.sequenced_gearshift.speed.forward": "Velocidad de entrada, hacia adelante", + "create.gui.sequenced_gearshift.speed.forward_fast": "Doble velocidad, hacia adelante", + "create.gui.sequenced_gearshift.speed.back": "Velocidad de entrada, Invertida", + "create.gui.sequenced_gearshift.speed.back_fast": "Doble velocidad, Invertida", + + "create.schematicAndQuill.dimensions": "Tamaño del esquema: %1$sx%2$sx%3$s", + "create.schematicAndQuill.firstPos": "Primera posición fijada.", + "create.schematicAndQuill.secondPos": "Segunda posición fijada.", + "create.schematicAndQuill.noTarget": "Mantén [Ctrl] para seleccionar los bloques del aire.", + "create.schematicAndQuill.abort": "Selección eliminada.", + "create.schematicAndQuill.title": "Nombre del esquema:", + "create.schematicAndQuill.convert": "Guardar y desplegar inmediatamente", + "create.schematicAndQuill.fallbackName": "Mi esquema", + "create.schematicAndQuill.saved": "Guardado como %1$s", + + "create.schematic.invalid": "[!] Elemento no válido - Utilice la tabla de esquemas en su lugar", + "create.schematic.position": "Posición", + "create.schematic.rotation": "Rotación", + "create.schematic.rotation.none": "Ninguno", + "create.schematic.rotation.cw90": "En el sentido de las agujas del reloj 90", + "create.schematic.rotation.cw180": "En el sentido de las agujas del reloj 180", + "create.schematic.rotation.cw270": "En el sentido de las agujas del reloj 270", + "create.schematic.mirror": "Espejado", + "create.schematic.mirror.none": "Ninguno", + "create.schematic.mirror.frontBack": "Delante-Detrás", + "create.schematic.mirror.leftRight": "Izquierda-Derecha", + "create.schematic.tool.deploy": "Despliegue", + "create.schematic.tool.move": "Mover XZ", + "create.schematic.tool.movey": "Mover Y", + "create.schematic.tool.rotate": "Rotar", + "create.schematic.tool.print": "Imprimir", + "create.schematic.tool.flip": "Voltear", + "create.schematic.tool.deploy.description.0": "Mueve la estructura a un lugar.", + "create.schematic.tool.deploy.description.1": "Haz clic con el botón derecho del ratón en el suelo para colocarla.", + "create.schematic.tool.deploy.description.2": "Mantén [Ctrl] para seleccionar a una distancia fija.", + "create.schematic.tool.deploy.description.3": "[Ctrl] + [RUEDA DEL RATÓN] para cambiar la distancia.", + "create.schematic.tool.move.description.0": "Desplaza el esquema horizontalmente.", + "create.schematic.tool.move.description.1": "Apunta al esquema y [Ctrl] + [RUEDA DEL RATÓN] para ponerlo.", + "create.schematic.tool.move.description.2": "", + "create.schematic.tool.move.description.3": "", + "create.schematic.tool.movey.description.0": "Desplaza el esquema verticalmente..", + "create.schematic.tool.movey.description.1": "[Ctrl] + [RUEDA DEL RATÓN] para moverlo hacia arriba/abajo.", + "create.schematic.tool.movey.description.2": "", + "create.schematic.tool.movey.description.3": "", + "create.schematic.tool.rotate.description.0": "Gira el esquema alrededor de su centro.", + "create.schematic.tool.rotate.description.1": "[Ctrl] + [RUEDA DEL RATÓN] para girar 90 grados.", + "create.schematic.tool.rotate.description.2": "", + "create.schematic.tool.rotate.description.3": "", + "create.schematic.tool.print.description.0": "Sitúa instantáneamente la estructura en el mundo.", + "create.schematic.tool.print.description.1": "[Clic derecho] para confirmar la colocación en el lugar actual.", + "create.schematic.tool.print.description.2": "Esta herramienta es sólo para el Modo Creativo.", + "create.schematic.tool.print.description.3": "", + "create.schematic.tool.flip.description.0": "Voltea el esquema a lo largo de la cara que seleccione.", + "create.schematic.tool.flip.description.1": "Apunta al esquema y [Ctrl] + [RUEDA DEL RATÓN] para voltearlo.", + "create.schematic.tool.flip.description.2": "", + "create.schematic.tool.flip.description.3": "", + + "create.schematics.synchronizing": "Sincronizando...", + "create.schematics.uploadTooLarge": "Tu esquema excede las limitaciones especificadas por el servidor.", + "create.schematics.maxAllowedSize": "El tamaño máximo permitido del archivo del esquema es:", + + "create.gui.schematicTable.refresh": "Refrescar archivos", + "create.gui.schematicTable.open_folder": "Abrir carpeta", + "create.gui.schematicTable.title": "Tabla de esquemas", + "create.gui.schematicTable.availableSchematics": "Esquemas disponibles", + "create.gui.schematicTable.noSchematics": "No hay esquemas guardados", + "create.gui.schematicTable.uploading": "Subiendo...", + "create.gui.schematicTable.finished": "¡Subida finalizada!", + "create.gui.schematicannon.title": "Cañón de esquemas", + "create.gui.schematicannon.listPrinter": "Lista de control de la impresora", + "create.gui.schematicannon.gunpowderLevel": "Pólvora %1$s%%", + "create.gui.schematicannon.shotsRemaining": "Disparos restantes: %1$s", + "create.gui.schematicannon.shotsRemainingWithBackup": "Con respaldo: %1$s", + "create.gui.schematicannon.optionEnabled": "Actualmente habilitado", + "create.gui.schematicannon.optionDisabled": "Actualmente deshabilitado", + "create.gui.schematicannon.showOptions": "Mostrar la configuración de la impresora", + "create.gui.schematicannon.option.dontReplaceSolid": "No sustituír los bloques sólidos", + "create.gui.schematicannon.option.replaceWithSolid": "Sustituir sólido por sólido", + "create.gui.schematicannon.option.replaceWithAny": "Sustituir sólido por cualquiera", + "create.gui.schematicannon.option.replaceWithEmpty": "Sustituir sólido por vacío", + "create.gui.schematicannon.option.skipMissing": "Omitir los bloques que faltan", + "create.gui.schematicannon.option.skipTileEntities": "Proteger a las entidades", + "create.gui.schematicannon.slot.gunpowder": "Añade pólvora para alimentar el cañón", + "create.gui.schematicannon.slot.listPrinter": "Coloque los libros aquí para imprimir una lista de comprobación para su esquema", + "create.gui.schematicannon.slot.schematic": "Añada su esquema aquí. Asegúrese de que se despliega en un lugar específico.", + "create.gui.schematicannon.option.skipMissing.description": "Si el cañón no encuentra un bloque necesario para su colocación, continuará en la siguiente ubicación.", + "create.gui.schematicannon.option.skipTileEntities.description": "El cañón evitará reemplazar los bloques que contienen datos, como los cofres.", + "create.gui.schematicannon.option.dontReplaceSolid.description": "El cañón nunca sustituirá ningún bloque sólido en su zona de trabajo, sólo los no sólidos y el aire.", + "create.gui.schematicannon.option.replaceWithSolid.description": "El cañón sólo reemplazará los bloques sólidos en su área de trabajo si el esquema contiene un bloque sólido en la ubicación.", + "create.gui.schematicannon.option.replaceWithAny.description": "El cañón reemplazará los bloques sólidos en su área de trabajo si el esquema contiene algún bloque en la ubicación.", + "create.gui.schematicannon.option.replaceWithEmpty.description": "El cañón eliminará todos los bloques de su zona de trabajo, incluidos los sustituidos por aire.", + + "create.schematicannon.status.idle": "Inactivo", + "create.schematicannon.status.ready": "Listo", + "create.schematicannon.status.running": "Funcionando", + "create.schematicannon.status.finished": "Finalizado", + "create.schematicannon.status.paused": "Pausado", + "create.schematicannon.status.stopped": "Detenido", + "create.schematicannon.status.noGunpowder": "Sin pólvora", + "create.schematicannon.status.targetNotLoaded": "El objetivo no está cargado", + "create.schematicannon.status.targetOutsideRange": "Objetivo demasiado lejano", + "create.schematicannon.status.searching": "Buscando", + "create.schematicannon.status.skipping": "Omitiendo", + "create.schematicannon.status.missingBlock": "Elementos perdidos:", + "create.schematicannon.status.placing": "Colocando", + "create.schematicannon.status.clearing": "Limpiando bloques", + "create.schematicannon.status.schematicInvalid": "Esquema inválido", + "create.schematicannon.status.schematicNotPlaced": "Esquema no desplegado", + "create.schematicannon.status.schematicExpired": "Archivo de esquemas caducado", + + "create.materialChecklist": "Lista de control del material", + "create.materialChecklist.blocksNotLoaded": "* Descargo de Responsabilidad *\n\nLa lista de materiales puede ser inexacta debido a que no se han cargado los chunks pertinentes.", + + "create.gui.filter.deny_list": "Lista de denegados", + "create.gui.filter.deny_list.description": "Los objetos pasan si NO coinciden con ninguno de los anteriores. Una lista de denegación vacía acepta todo.", + "create.gui.filter.allow_list": "Lista de permitidos", + "create.gui.filter.allow_list.description": "Los objetos pasan si coinciden con alguno de los anteriores. Una lista de permitidos vacía rechaza todo.", + "create.gui.filter.respect_data": "Respetar datos", + "create.gui.filter.respect_data.description": "Los objetos sólo coinciden si su durabilidad, encantos y otros atributos también coinciden.", + "create.gui.filter.ignore_data": "Ignorar datos", + "create.gui.filter.ignore_data.description": "Los artículos coinciden independientemente de sus atributos.", + + "create.item_attributes.placeable": "se puede colocar", + "create.item_attributes.placeable.inverted": "no se puede colocar", + "create.item_attributes.consumable": "se puede comer", + "create.item_attributes.consumable.inverted": "no se puede comer", + "create.item_attributes.smeltable": "se puede fundir", + "create.item_attributes.smeltable.inverted": "no se puede fundir", + "create.item_attributes.washable": "se puede lavar", + "create.item_attributes.washable.inverted": "no se puede lavar", + "create.item_attributes.smokable": "puede ser ahumado", + "create.item_attributes.smokable.inverted": "no puede ser ahumado", + "create.item_attributes.crushable": "puede ser molido", + "create.item_attributes.crushable.inverted": "no puede ser molido", + "create.item_attributes.blastable": "es fundible en el alto horno", + "create.item_attributes.blastable.inverted": "no es fundible en el alto horno", + "create.item_attributes.enchanted": "está encantado", + "create.item_attributes.enchanted.inverted": "no está encantado", + "create.item_attributes.damaged": "está dañado", + "create.item_attributes.damaged.inverted": "no está dañado", + "create.item_attributes.badly_damaged": "está muy dañado", + "create.item_attributes.badly_damaged.inverted": "no está muy dañado", + "create.item_attributes.not_stackable": "no se puede apilar", + "create.item_attributes.not_stackable.inverted": "se puede apilar", + "create.item_attributes.equipable": "se puede equipar", + "create.item_attributes.equipable.inverted": "no se puede equipar", + "create.item_attributes.furnace_fuel": "es combustible para hornos", + "create.item_attributes.furnace_fuel.inverted": "no es combustible para hornos", + "create.item_attributes.in_tag": "está etiquetado %1$s", + "create.item_attributes.in_tag.inverted": "no está etiquetado %1$s", + "create.item_attributes.in_item_group": "está en el grupo '%1$s'", + "create.item_attributes.in_item_group.inverted": "no está en el grupo '%1$s'", + "create.item_attributes.added_by": "fue añadido por %1$s", + "create.item_attributes.added_by.inverted": "no fue añadida por %1$s", + "create.item_attributes.shulker_level": "es shulker %1$s", + "create.item_attributes.shulker_level.inverted": "no es shulker %1$s", + "create.item_attributes.shulker_level.full": "lleno", + "create.item_attributes.shulker_level.empty": "vacío", + "create.item_attributes.shulker_level.partial": "parcialmente lleno", + "create.item_attributes.has_enchant": "está encantado con %1$s", + "create.item_attributes.has_enchant.inverted": "no está encantado con %1$s", + "create.item_attributes.color": "Está teñido %1$s", + "create.item_attributes.color.inverted": "No está teñido %1$s", + "create.item_attributes.max_enchanted": "está encantado en el nivel máximo", + "create.item_attributes.max_enchanted.inverted": "no está encantado en el nivel máximo", + "create.item_attributes.has_fluid": "contiene %1$s", + "create.item_attributes.has_fluid.inverted": "no contiene %1$s", + "create.item_attributes.has_name": "tiene el nombre personalizado %1$s", + "create.item_attributes.has_name.inverted": "no tiene el nombre personalizado %1$s", + "create.item_attributes.book_author": "es obra de %1$s", + "create.item_attributes.book_author.inverted": "no es es obra de %1$s", + "create.item_attributes.book_copy_original": "es un original", + "create.item_attributes.book_copy_original.inverted": "no es un original", + "create.item_attributes.book_copy_first": "es una copia de primera generación", + "create.item_attributes.book_copy_first.inverted": "no es una copia de primera generación", + "create.item_attributes.book_copy_second": "es una copia de segunda generación", + "create.item_attributes.book_copy_second.inverted": "no es una copia de segunda generación", + "create.item_attributes.book_copy_tattered": "es un desordenado desastre", + "create.item_attributes.book_copy_tattered.inverted": "no es un desordenado desastre", + "create.item_attributes.astralsorcery_crystal": "tiene el atributo de cristal %1$s", + "create.item_attributes.astralsorcery_crystal.inverted": "no tiene atributo de cristal %1$s", + "create.item_attributes.astralsorcery_constellation": "está en sintonía con %1$s", + "create.item_attributes.astralsorcery_constellation.inverted": "no está en sintonía con %1$s", + "create.item_attributes.astralsorcery_perk_gem": "tiene el atributo ventaja %1$s", + "create.item_attributes.astralsorcery_perk_gem.inverted": "no tiene el atributo ventaja %1$s", + "create.item_attributes.astralsorcery_amulet": "mejora %1$s", + "create.item_attributes.astralsorcery_amulet.inverted": "no mejora %1$s", + + "create.gui.attribute_filter.no_selected_attributes": "No hay atributos seleccionados", + "create.gui.attribute_filter.selected_attributes": "Atributos seleccionados:", + "create.gui.attribute_filter.add_attribute": "Añadir atributo a la lista", + "create.gui.attribute_filter.add_inverted_attribute": "Añadir atributo invertido a la Lista", + "create.gui.attribute_filter.allow_list_disjunctive": "Lista de permitidos (Cualquiera)", + "create.gui.attribute_filter.allow_list_disjunctive.description": "Los objetos pasan si tienen alguno de los atributos seleccionados", + "create.gui.attribute_filter.allow_list_conjunctive": "Lista de permitidos (Todos)", + "create.gui.attribute_filter.allow_list_conjunctive.description": "Los objetos pasan sólo si tienen TODOS los atributos seleccionados", + "create.gui.attribute_filter.deny_list": "Lista de denegados", + "create.gui.attribute_filter.deny_list.description": "Los objetos pasan si NO tienen ninguno de los atributos seleccionados", + "create.gui.attribute_filter.add_reference_item": "Añadir elemento de referencia", + + "create.tooltip.holdForDescription": "Mantén [%1$s] para mas información", + "create.tooltip.holdForControls": "Mantén [%1$s] para ver los controles", + "create.tooltip.keyShift": "Mayús izdo.", + "create.tooltip.keyCtrl": "Ctrl", + "create.tooltip.speedRequirement": "Requisitos de velocidad: %1$s", + "create.tooltip.speedRequirement.none": "Ninguno", + "create.tooltip.speedRequirement.medium": "Moderado", + "create.tooltip.speedRequirement.high": "Rápido", + "create.tooltip.stressImpact": "Impacto de estrés: %1$s", + "create.tooltip.stressImpact.low": "Bajo", + "create.tooltip.stressImpact.medium": "Moderado", + "create.tooltip.stressImpact.high": "Alto", + "create.tooltip.stressImpact.overstressed": "Sobrecargado", + "create.tooltip.capacityProvided": "Capacidad de estrés: %1$s", + "create.tooltip.capacityProvided.low": "Pequeña", + "create.tooltip.capacityProvided.medium": "Media", + "create.tooltip.capacityProvided.high": "Grande", + "create.tooltip.generationSpeed": "Generada en %1$s %2$s", + "create.tooltip.analogStrength": "Fuerza analógica: %1$s/15", + + "create.mechanical_arm.extract_from": "Extraer objetos de %1$s", + "create.mechanical_arm.deposit_to": "Depositar objetos en %1$s", + "create.mechanical_arm.summary": "El brazo mecánico tiene %1$s entrada(s) y %2$s salida(s)", + "create.mechanical_arm.points_outside_range": "%1$s punto(s) de interacción seleccionado(s) eliminado(s) debido a las limitaciones de rango", + + "create.weighted_ejector.target_set": "Objetivo seleccionado", + "create.weighted_ejector.target_not_valid": "Expulsión al bloque adyacente (el objetivo no era válido)", + "create.weighted_ejector.no_target": "Expulsión al bloque adyacente (no se ha seleccionado ningún objetivo)", + "create.weighted_ejector.targeting": "Expulsión a [%1$s,%2$s,%3$s]", + "create.weighted_ejector.stack_size": "Tamaño de la pila expulsada", + + "create.logistics.when_multiple_outputs_available": "Cuando hay múltiples salidas disponibles", + + "create.mechanical_arm.selection_mode.round_robin": "Round Robin", + "create.mechanical_arm.selection_mode.forced_round_robin": "Round Robin forzado", + "create.mechanical_arm.selection_mode.prefer_first": "Preferir el primero", + + "create.tunnel.selection_mode.split": "División", + "create.tunnel.selection_mode.forced_split": "División forzada", + "create.tunnel.selection_mode.round_robin": "Round Robin", + "create.tunnel.selection_mode.forced_round_robin": "Round Robin forzado", + "create.tunnel.selection_mode.prefer_nearest": "Preferir el más cercano", + "create.tunnel.selection_mode.randomize": "Aleatorizar", + "create.tunnel.selection_mode.synchronize": "Sincronizar entradas", + + "create.tooltip.chute.header": "Información del ducto", + "create.tooltip.chute.items_move_down": "Los objetos se mueven hacia abajo", + "create.tooltip.chute.items_move_up": "Los objetos se mueven hacia arriba", + "create.tooltip.chute.no_fans_attached": "No hay ventiladores adjuntos", + "create.tooltip.chute.fans_push_up": "Los ventiladores empujan desde abajo", + "create.tooltip.chute.fans_push_down": "Los ventiladores empujan desde arriba", + "create.tooltip.chute.fans_pull_up": "Los ventiladores tiran desde arriba", + "create.tooltip.chute.fans_pull_down": "Los ventiladores tiran desde abajo", + "create.tooltip.chute.contains": "Contiene: %1$s x%2$s", + "create.tooltip.brass_tunnel.contains": "Actualmente distribuye:", + "create.tooltip.brass_tunnel.contains_entry": "> %1$s x%2$s", + "create.tooltip.brass_tunnel.retrieve": "Haga clic derecho para recuperar", + + "create.linked_controller.bind_mode": "Modo de enlace activo", + "create.linked_controller.press_keybind": "Presiona %1$s, %2$s, %3$s, %4$s, %5$s o %6$s, para vincular esta frecuencia a la tecla correspondiente", + "create.linked_controller.key_bound": "Frecuencia ligada a %1$s", + "create.linked_controller.frequency_slot_1": "Enlace de teclas: %1$s, Freq. #1", + "create.linked_controller.frequency_slot_2": "Enlace de teclas: %1$s, Freq. #2", + + "create.crafting_blueprint.crafting_slot": "Ranura para ingredientes", + "create.crafting_blueprint.filter_items_viable": "Los objetos del filtro avanzado son viables", + "create.crafting_blueprint.display_slot": "Ranura de pantalla", + "create.crafting_blueprint.inferred": "A partir de la receta", + "create.crafting_blueprint.manually_assigned": "Asignado manualmente", + "create.crafting_blueprint.secondary_display_slot": "Ranura de pantalla secundaria", + "create.crafting_blueprint.optional": "Opcional", + + "create.potato_cannon.ammo.attack_damage": "%1$s Daño de ataque", + "create.potato_cannon.ammo.reload_ticks": "%1$s Recarga por Ticks", + "create.potato_cannon.ammo.knockback": "%1$s Golpe de efecto", + + "create.hint.hose_pulley.title": "Suministro ilimitado", + "create.hint.hose_pulley": "La masa de fluido objetivo se considera infinita.", + "create.hint.mechanical_arm_no_targets.title": "Sin objetivos", + "create.hint.mechanical_arm_no_targets": "Parece que a este _brazo mecánico_ no se le ha asignado ningún objetivo. Selecciona _correas_, _depósitos_, _embudos_ y otros bloques haciendo clic derecho sobre ellos mientras _sostienes_ el _brazo mecánico_ en tu mano..", + "create.hint.empty_bearing.title": "Actualización del rodamiento", + "create.hint.empty_bearing": "Haz clic derecho sobre el rodamiento con la _mano vacía_ para _adjuntar_ la estructura que acabas de construir delante de él.", + "create.hint.full_deployer.title": "Exceso de objetos en el desplegador", + "create.hint.full_deployer": "Parece que este _desplegador_ contiene _exceso_ de objetos que necesitan ser _extraídos._ Usa una _tolva_, _embudo_ u otro medio para liberarlo de su excedente.", + + "create.gui.config.overlay1": "Hola :)", + "create.gui.config.overlay2": "Esta es una muestra de la superposición", + "create.gui.config.overlay3": "Haga clic o arrastre con el ratón", + "create.gui.config.overlay4": "para mover esta vista previa", + "create.gui.config.overlay5": "Pulsar ESC para salir de esta pantalla", + "create.gui.config.overlay6": "y guardar la nueva posición", + "create.gui.config.overlay7": "Ejecute /create overlay reset", + "create.gui.config.overlay8": "para restablecer la posición por defecto", + + "create.command.killTPSCommand": "killtps", + "create.command.killTPSCommand.status.slowed_by.0": "[Crear]: El tick del servidor está actualmente ralentizado en %s ms :o", + "create.command.killTPSCommand.status.slowed_by.1": "[Crear]: El tick del servidor está ralentizado en %s ms ahora >:)", + "create.command.killTPSCommand.status.slowed_by.2": "[Create]: El tick del servidor ha vuelto a su velocidad normal :D", + "create.command.killTPSCommand.status.usage.0": "[Create]: usa /killtps stop para que el servidor vuelva a la velocidad normal", + "create.command.killTPSCommand.status.usage.1": "[Create]: usa /killtps start para ralentizar artificialmente el tick del servidor", + "create.command.killTPSCommand.argument.tickTime": "tickTime", + + "create.contraption.minecart_contraption_too_big": "Este artilugio de vagoneta parece demasiado grande para recogerlo", + "create.contraption.minecart_contraption_illegal_pickup": "Una fuerza mística está atando este artilugio de vagoneta al mundo", + + + "_": "->------------------------] Subtitles [------------------------<-", + + "create.subtitle.contraption_disassemble": "", + "create.subtitle.peculiar_bell_use": "", + "create.subtitle.mixing": "", + "create.subtitle.mechanical_press_activation_belt": "", + "create.subtitle.fwoomp": "", + "create.subtitle.worldshaper_place": "", + "create.subtitle.crushing_1": "", + "create.subtitle.depot_slide": "", + "create.subtitle.saw_activate_stone": "", + "create.subtitle.blaze_munch": "", + "create.subtitle.funnel_flap": "", + "create.subtitle.schematicannon_finish": "", + "create.subtitle.haunted_bell_use": "", + "create.subtitle.scroll_value": "", + "create.subtitle.crafter_craft": "", + "create.subtitle.controller_put": "", + "create.subtitle.cranking": "", + "create.subtitle.wrench_remove": "", + "create.subtitle.cogs": "", + "create.subtitle.slime_added": "", + "create.subtitle.wrench_rotate": "", + "create.subtitle.potato_hit": "", + "create.subtitle.saw_activate_wood": "", + "create.subtitle.haunted_bell_convert": "", + "create.subtitle.deployer_polish": "", + "create.subtitle.deny": "", + "create.subtitle.controller_click": "", + "create.subtitle.schematicannon_launch_block": "", + "create.subtitle.copper_armor_equip": "", + "create.subtitle.controller_take": "Lectern empties", + "create.subtitle.mechanical_press_activation": "", + "create.subtitle.contraption_assemble": "", + "create.subtitle.crafter_click": "", + "create.subtitle.depot_plop": "", + "create.subtitle.confirm": "", + + + "_": "->------------------------] Item Descriptions [------------------------<-", + + "item.create.example_item.tooltip": "EJEMPLO DE ITEM (sólo un marcador de que este tooltip existe)", + "item.create.example_item.tooltip.summary": "Una breve descripción del elemento. Los puntajes bajos resaltan un término", + "item.create.example_item.tooltip.condition1": "Cuando este", + "item.create.example_item.tooltip.behaviour1": "Entonces este elemento hace esto. (los comportamientos se muestran en el turno)", + "item.create.example_item.tooltip.condition2": "Y cuando esto", + "item.create.example_item.tooltip.behaviour2": "Puedes añadir tantos comportamientos como quieras", + "item.create.example_item.tooltip.control1": "Cuando se pulsa [Ctrl]", + "item.create.example_item.tooltip.action1": "Se muestran estos controles", + + "block.create.wooden_bracket.tooltip": "SOPORTE DE MADERA PARA EJES", + "block.create.wooden_bracket.tooltip.summary": "Decora tus _ejes_, _engranajes_ y _ductos_ con un acogedor refuerzo de madera.", + + "block.create.metal_bracket.tooltip": "SOPORTE DE METAL PARA EJES", + "block.create.metal_bracket.tooltip.summary": "Decora tus _ejes_, _engranajes_ y _ductos_ con un poco de refuerzo industrial robusto.", + + "block.create.seat.tooltip": "ASIENTO", + "block.create.seat.tooltip.summary": "¡Siéntate y disfruta del viaje! Anclará a un jugador en un artilugio en movimiento. También es ideal para muebles estáticos. Viene en una variedad de colores.", + "block.create.seat.tooltip.condition1": "Cuando se hace clic derecho en el asiento", + "block.create.seat.tooltip.behaviour1": "Sienta al jugador en el _asiento_. Pulsa Mayús izdo para dejar el asiento.", + + "item.create.blaze_cake.tooltip": "PASTEL DE BLAZE", + "item.create.blaze_cake.tooltip.summary": "Un delicioso regalo para sus esforzados _quemadores de blaze_. ¡Los pone en marcha!.", + + "item.create.wand_of_symmetry.tooltip": "VARITA DE SIMETRÍA", + "item.create.wand_of_symmetry.tooltip.summary": "Refleja perfectamente la colocación de bloques en los planos configurados.", + "item.create.wand_of_symmetry.tooltip.condition1": "Mientras está en el inventario rápido", + "item.create.wand_of_symmetry.tooltip.behaviour1": "Permanece activo.", + "item.create.wand_of_symmetry.tooltip.control1": "Cuando se hace clic derecho en el suelo", + "item.create.wand_of_symmetry.tooltip.action1": "_Crea_ o _mueve_ el espejo.", + "item.create.wand_of_symmetry.tooltip.control2": "Cuando se hace clic derecho en el aire", + "item.create.wand_of_symmetry.tooltip.action2": "_Quita_ el espejo activo.", + "item.create.wand_of_symmetry.tooltip.control3": "Mayús izdo + clic derecho", + "item.create.wand_of_symmetry.tooltip.action3": "Abre la interfaz de configuración.", + + "item.create.handheld_worldshaper.tooltip": "WORLDSHAPER", + "item.create.handheld_worldshaper.tooltip.summary": "Práctica herramienta para crear _paisajes_ y _características del terreno_.", + "item.create.handheld_worldshaper.tooltip.control1": "Cuando se hace clic izquierdo en un bloque", + "item.create.handheld_worldshaper.tooltip.action1": "Establece los bloques colocados por la herramienta en el bloque objetivo.", + "item.create.handheld_worldshaper.tooltip.control2": "Cuando se hace clic derecho en un bloque", + "item.create.handheld_worldshaper.tooltip.action2": "Aplica el _pincel_ y la _herramienta_ actualmente seleccionadas en el lugar deseado.", + "item.create.handheld_worldshaper.tooltip.control3": "Mayús izdo + clic derecho", + "item.create.handheld_worldshaper.tooltip.action3": "Abre la interfaz de configuración.", + + "item.create.tree_fertilizer.tooltip": "FERTILIZANTE PARA ÁRBOLES", + "item.create.tree_fertilizer.tooltip.summary": "Una potente combinación de minerales adecuada para acelerar el crecimiento de los tipos de árboles más comunes.", + "item.create.tree_fertilizer.tooltip.condition1": "Cuando se utiliza en un árbol joven", + "item.create.tree_fertilizer.tooltip.behaviour1": "Hace crecer los árboles _independientemente_ de sus condiciones de _espacio_.", + + "item.create.extendo_grip.tooltip": "AGARRE EXTENDIDO", + "item.create.extendo_grip.tooltip.summary": "¡Boioioing! Aumenta enormemente la _distancia de alcance_ del portador. Se puede alimentar con la presión de aire de un _depósito trasero de cobre_", + "item.create.extendo_grip.tooltip.condition1": "Cuando está fuera de la mano", + "item.create.extendo_grip.tooltip.behaviour1": "Aumenta la _distancia de alcance_ de los objetos usados en la _mano principal_.", + "item.create.extendo_grip.tooltip.condition2": "Mientras se usa un depósito trasero de cobre", + "item.create.extendo_grip.tooltip.behaviour2": "No se utilizará _durabilidad_. En su lugar, la _presión del aire_ se drena desde el tanque", + + "item.create.potato_cannon.tooltip": "CANÓN DE PATATAS", + "item.create.potato_cannon.tooltip.summary": "Fwoomp! Lanza tus verduras caseras a tus enemigos. Se puede alimentar con la presión de aire de un _depósito trasero de cobre_", + "item.create.potato_cannon.tooltip.condition1": "Cuando se usa clic derecho", + "item.create.potato_cannon.tooltip.behaviour1": "_Dispara_ un objeto adecuado desde tu inventario_.", + "item.create.potato_cannon.tooltip.condition2": "Mientras se usa un depósito trasero de cobre", + "item.create.potato_cannon.tooltip.behaviour2": "No se utilizará _durabilidad_. En su lugar, la _presión del aire_ se drena desde el tanque", + + "item.create.filter.tooltip": "FILTRO", + "item.create.filter.tooltip.summary": "Controla las _salidas_ y _entradas_ de los _dispositivos logísticos_ con más precisión, comparándolas con un _conjunto de objetos_ o varios _filtros anidados_.", + "item.create.filter.tooltip.condition1": "Cuando está en la ranura de filtros", + "item.create.filter.tooltip.behaviour1": "Controla el flujo de objetos según su _configuración_.", + "item.create.filter.tooltip.condition2": "Cuando se hace clic derecho", + "item.create.filter.tooltip.behaviour2": "Abre la interfaz de configuración.", + + "item.create.attribute_filter.tooltip": "FILTRO DE ATRIBUTOS", + "item.create.attribute_filter.tooltip.summary": "Controla las _salidas_ y las _entradas_ de los _dispositivos logísticos_ con más precisión, comparándolas con un _conjunto de atributos_ y _categorías_ de objetos.", + "item.create.attribute_filter.tooltip.condition1": "Cuando está en la ranura de filtros", + "item.create.attribute_filter.tooltip.behaviour1": "Controla el flujo de objetos según su _configuración_.", + "item.create.attribute_filter.tooltip.condition2": "Cuando se hace clic derecho", + "item.create.attribute_filter.tooltip.behaviour2": "Abre la interfaz de configuración.", + + "item.create.empty_schematic.tooltip": "ESQUEMA VACÍO", + "item.create.empty_schematic.tooltip.summary": "Se utiliza como 'ingrediente' de las recetas y para escribir en la _tabla de esquemas_.", + + "item.create.schematic.tooltip": "ESQUEMA", + "item.create.schematic.tooltip.summary": "Contiene una estructura para ser posicionada y colocada en el mundo. Posiciona el holograma como desees y utiliza un _cañón de esquemas_ para construirla.", + "item.create.schematic.tooltip.condition1": "Cuando se sostiene en la mano", + "item.create.schematic.tooltip.behaviour1": "Se puede posicionar utilizando las herramientas en pantalla.", + "item.create.schematic.tooltip.control1": "Mayús izdo + clic derecho", + "item.create.schematic.tooltip.action1": "Abre una _interfaz_ para introducir las _coordenadas_ exactas.", + + "item.create.schematic_and_quill.tooltip": "ESQUEMA Y PLUMA", + "item.create.schematic_and_quill.tooltip.summary": "Se utiliza para guardar una estructura de tu mundo en un archivo .nbt.", + "item.create.schematic_and_quill.tooltip.condition1": "Paso 1", + "item.create.schematic_and_quill.tooltip.behaviour1": "Selecciona dos puntos de esquina usando clic derecho.", + "item.create.schematic_and_quill.tooltip.condition2": "Paso 2", + "item.create.schematic_and_quill.tooltip.behaviour2": "[Ctrl] + [RUEDA DEL RATÓN] en las caras para ajustar el tamaño. Clic derecho de nuevo para guardar.", + "item.create.schematic_and_quill.tooltip.control1": "Cuando se hace clic derecho", + "item.create.schematic_and_quill.tooltip.action1": "Selecciona un punto de esquina / confirmar guardar.", + "item.create.schematic_and_quill.tooltip.control2": "Cuando mantiene [Ctrl]", + "item.create.schematic_and_quill.tooltip.action2": "Selecciona puntos en _medio del aire_. Rueda del ratón para ajustar la distancia.", + "item.create.schematic_and_quill.tooltip.control3": "Mayús izdo + clic derecho", + "item.create.schematic_and_quill.tooltip.action3": "_Reinicia_ y elimina la selección.", + + "block.create.schematicannon.tooltip": "CAÑÓN DE ESQUEMAS", + "block.create.schematicannon.tooltip.summary": "Dispara bloques para recrear un _esquema_ desplegado en el mundo. Utiliza objetos de los inventarios adyacentes y _pólvora_ como combustible.", + "block.create.schematicannon.tooltip.condition1": "Cuando se hace clic derecho", + "block.create.schematicannon.tooltip.behaviour1": "Abre la interfaz.", + + "block.create.schematic_table.tooltip": "TABLA DE ESQUEMAS", + "block.create.schematic_table.tooltip.summary": "Escribe los esquemas guardados en un _esquema vacío_.", + "block.create.schematic_table.tooltip.condition1": "Cuando se da un esquema vacío", + "block.create.schematic_table.tooltip.behaviour1": "Carga un archivo elegido de la carpeta de esquemas.", + + "item.create.goggles.tooltip": "GAFAS DEL CONSTRUCTOR", + "item.create.goggles.tooltip.summary": "Un par de gafas para aumentar tu visión con útil información _cinética_.", + "item.create.goggles.tooltip.condition1": "Cuando se llevan puestas", + "item.create.goggles.tooltip.behaviour1": "Muestra _indicadores de color_ correspondientes al _nivel de velocidad_ de un componente cinético colocado, así como el _impacto de estrés_ y la _carga_ de los componentes individuales.", + "item.create.goggles.tooltip.condition2": "Al mirar un medidor", + "item.create.goggles.tooltip.behaviour2": "Muestra información detallada sobre _velocidad_ o _estrés_ de la red a la que está conectado el medidor.", + "item.create.goggles.tooltip.condition3": "Al mirar un contenedor de fluidos", + "item.create.goggles.tooltip.behaviour3": "Muestra información detallada sobre la _carga_ del bloque y los _líquidos_ almacenados en su interior.", + + "item.create.wrench.tooltip": "LLAVE INGLESA", + "item.create.wrench.tooltip.summary": "Una herramienta útil para trabajar en artilugios cinéticos. Se puede utilizar para _rotar_, _desmantelar_ y para _configurar_ componentes.", + "item.create.wrench.tooltip.control1": "Cuando se hace clic derecho en un bloque cinético", + "item.create.wrench.tooltip.action1": "Rota los componentes hacia o desde la cara con la que ha interactuado.", + "item.create.wrench.tooltip.control2": "Mayús izdo + clic derecho", + "item.create.wrench.tooltip.action2": "Desmonta los _componentes cinéticos_ y los devuelve a tu inventario_.", + + "block.create.nozzle.tooltip": "BOQUILLA", + "block.create.nozzle.tooltip.summary": "Se acopla a la parte delantera de un _ventilador revestido_ para distribuir su efecto sobre las entidades en _todas las direcciones_.", + + "block.create.cuckoo_clock.tooltip": "RELOJ DE CUCO", + "block.create.cuckoo_clock.tooltip.summary": "Fina artesanía para decorar un espacio y contar el tiempo.", + "block.create.cuckoo_clock.tooltip.condition1": "Cuando es alimentado por cinética", + "block.create.cuckoo_clock.tooltip.behaviour1": "Muestra la _hora actual_ y toca una melodía dos veces al día. Se activa una vez al mediodía y al anochecer, _en cuanto los jugadores pueden dormir_.", + + "block.create.turntable.tooltip": "PLATAFORMA GIRATORIA", + "block.create.turntable.tooltip.summary": "Convierte la _fuerza rotacional_ en un refinado mareo.", + + "block.create.stockpile_switch.tooltip": "INTERRUPTOR DE ACOPIO", + "block.create.stockpile_switch.tooltip.summary": "Activa una señal de redstone en función de la cantidad de _objetos almacenados_ en el _contenedor_ adjunto. Viene con un práctico filtro. A diferencia de un _comparador, el _interruptor de acopio_ permite la configuración de _umbrales_, a partir de los cuales se invierten las señales.", + "block.create.stockpile_switch.tooltip.condition1": "Cuando se hace clic derecho", + "block.create.stockpile_switch.tooltip.behaviour1": "Abre la interfaz de configuración.", + + "block.create.content_observer.tooltip": "OBSERVADOR DE CONTENIDO", + "block.create.content_observer.tooltip.summary": "_Detecta objetos_ dentro de _contenedores_ y _transportadores_ que coincidan con un _filtro_ configurado. Mientras el _inventario_, la _cinta_ o la _canaleta_ observados _contengan_ un objeto que coincida, este componente emitirá una _señal de redstone_. Cuando un embudo observado _transfiere_ un objeto coincidente, este componente emitirá un _pulso de redstone_.", + + "block.create.adjustable_crate.tooltip": "CAJA AJUSTABLE", + "block.create.adjustable_crate.tooltip.summary": "Este _contenedor de objetos_ permite el control manual de su capacidad. Puede contener hasta _16 pilas_ de cualquier objeto. Soporta _comparadores de redstone_.", + "block.create.adjustable_crate.tooltip.condition1": "Cuando se hace clic derecho", + "block.create.adjustable_crate.tooltip.behaviour1": "Abre la interfaz.", + + "block.create.creative_crate.tooltip": "CAJA CREATIVA", + "block.create.creative_crate.tooltip.summary": "Este _contenedor de objetos_ permite la replicación infinita de cualquier elemento. Colócalo junto a un _cañón de esquemas_ para eliminar cualquier requisito de material.", + "block.create.creative_crate.tooltip.condition1": "Cuando el elemento está en la ranura para filtros", + "block.create.creative_crate.tooltip.behaviour1": "Todo lo que se _extraiga_ de este contenedor proporcionará un suministro _ilimitado_ del elemento especificado. Los objetos _insertados_ en esta caja serán _evitados_.", + + "item.create.creative_blaze_cake.tooltip": "PASTEL CREATIVO", + "item.create.creative_blaze_cake.tooltip.summary": "Un regalo muy especial para los _Quemadores de Blaze_ que permite _controlar su nivel de calor_. Después de comer este pastel, los Quemadores de blaze _nunca se quedarán sin combustible_.", + "item.create.creative_blaze_cake.tooltip.condition1": "Click derecho en un Quemador de blaze", + "item.create.creative_blaze_cake.tooltip.behaviour1": "Bloquea el nivel de calor del Quemador de blaze. Si se utiliza de nuevo, _cicla_ el nivel de calor del Quemador de blaze.", + + "block.create.controller_rail.tooltip": "RAÍL DE CONTROL", + "block.create.controller_rail.tooltip.summary": "Un raíl energizado _unidireccional_ capaz de _controlar con precisión_ la _velocidad de movimiento_ de una vagoneta.", + "block.create.controller_rail.tooltip.condition1": "Cuando es alimentado con redstone", + "block.create.controller_rail.tooltip.behaviour1": "_Acelera_ o _desacelera_ pasando _vagonetas_ correspondientes a la _fuerza de la señal_. Propaga la energía de redstone a los raíles de control adyacentes. Al alimentar dos raíles de control con diferentes intensidades, los carriles entre ellos interpolarán su señal.", + + "item.create.sand_paper.tooltip": "PAPEL DE LIJA", + "item.create.sand_paper.tooltip.summary": "Un papel rugoso que se puede utilizar para _pulir materiales_. Se puede aplicar automáticamente con el _desplegador_.", + "item.create.sand_paper.tooltip.condition1": "Cuando se usa", + "item.create.sand_paper.tooltip.behaviour1": "Aplica un pulido a los objetos sostenidos en la _mano libre_ o tirados en el _suelo_ cuando se _miran_.", + + "item.create.builders_tea.tooltip": "TÉ DEL CONSTRUCTOR", + "item.create.builders_tea.tooltip.summary": "La bebida perfecta para empezar el día. Motivante y saturante.", + + "item.create.refined_radiance.tooltip": "RESPLANDOR REFINADO", + "item.create.refined_radiance.tooltip.summary": "Un material cromático forjado a partir de la _luz absorbida_.", + "item.create.refined_radiance.tooltip.condition1": "Trabajo en progreso", + "item.create.refined_radiance.tooltip.behaviour1": "Los usos para este material estarán disponibles en un próximo lanzamiento.", + + "item.create.shadow_steel.tooltip": "ACERO SOMBRÍO", + "item.create.shadow_steel.tooltip.summary": "Un material cromático forjado en el _vacío_.", + "item.create.shadow_steel.tooltip.condition1": "Trabajo en curso", + "item.create.shadow_steel.tooltip.behaviour1": "Los usos de este material estarán disponibles en una futura versión.", + + "item.create.linked_controller.tooltip": "CONTROLADOR ENLAZADO", + "item.create.linked_controller.tooltip.summary": "Permite el control manual de las frecuencias de _enlaces de redstone_ asignadas a sus seis botones..", + "item.create.linked_controller.tooltip.condition1": "Al hacer clic derecho", + "item.create.linked_controller.tooltip.behaviour1": "Activa el _controlador_. Los _controles de movimiento_ se adquieren mientras está activo.", + "item.create.linked_controller.tooltip.condition2": "Al usar Mayús izdo + clic derecho", + "item.create.linked_controller.tooltip.behaviour2": "Abre la interfaz de configuración manual.", + "item.create.linked_controller.tooltip.condition3": "Al usar clic derecho en un receptor de enlaces de redstone", + "item.create.linked_controller.tooltip.behaviour3": "Activa el _modo de vinculación_, pulsa uno de los _seis controles_ para vincularlo a la _frecuencia de los enlaces_.", + "item.create.linked_controller.tooltip.condition4": "Clic derecho en un atril", + "item.create.linked_controller.tooltip.behaviour4": "Coloca el controlador en el atril para facilitar su activación. (Clic derecho + mayús izq. para recuperarlo)", + + "item.create.diving_helmet.tooltip": "CASCO DE BUCEO", + "item.create.diving_helmet.tooltip.summary": "Junto con un _depósito trasero de cobre_, permite que el usuario pueda respirar bajo el agua durante un tiempo prolongado.", + "item.create.diving_helmet.tooltip.condition1": "Cuando se lleva puesto", + "item.create.diving_helmet.tooltip.behaviour1": "Proporciona el efecto de _respiración acuática_, drenando lentamente la presión de aire del _depósito trasero_.", + + "item.create.copper_backtank.tooltip": "DEPÓSITO TRASERO DE COBRE", + "item.create.copper_backtank.tooltip.summary": "Un tanque portátil para transportar _aire presurizado_.", + "item.create.copper_backtank.tooltip.condition1": "Cuando se lleva puesto", + "item.create.copper_backtank.tooltip.behaviour1": "Proporciona _aire presurizado_ a los equipos que lo requieran.", + "item.create.copper_backtank.tooltip.condition2": "Cuando se coloca y es alimentado por cinética", + "item.create.copper_backtank.tooltip.behaviour2": "Recoge _aire presurizado_ a un ritmo que depende de la velocidad rotacional.", + + "item.create.diving_boots.tooltip": "BOTAS DE BUCEO", + "item.create.diving_boots.tooltip.summary": "Un par de _botas_ pesadas, que permiten atravesar mejor el suelo del océano.", + "item.create.diving_boots.tooltip.condition1": "Cuando se llevan puestas", + "item.create.diving_boots.tooltip.behaviour1": "El portador se hunde rápido y no puede nadar. Concede la capacidad de caminar y saltar bajo el agua. Al portador no le afectarán las _correas mecánicas.", + + "item.create.crafting_blueprint.tooltip": "PLANO DE ELABORACIÓN", + "item.create.crafting_blueprint.tooltip.summary": "Colocado en una pared, puede utilizarse para especificar la disposición de los ingredientes para facilitar la elaboración manual. Cada ranura representa una receta", + "item.create.crafting_blueprint.condition1": "Al hacer clic derecho en una ranura vacía", + "item.create.crafting_blueprint.behaviour1": "Abre un menú que permite configurar una receta y los objetos a mostrar.", + "item.create.crafting_blueprint.condition2": "Al hacer clic derecho en una ranura configurada", + "item.create.crafting_blueprint.behaviour2": "Aplica la receta configurada con los ingredientes que se encuentran en tu inventario. Se puede utilizar para fabricar hasta una pila de objetos.", + + "item.create.minecart_coupling.tooltip": "ENSAMBLADOR DE VAGONETAS", + "item.create.minecart_coupling.tooltip.summary": "_Encadena_ todas tus _vagonetas_ o _artilugios de vagoneta_ para formar un majestuoso _tren_.", + "item.create.minecart_coupling.tooltip.condition1": "Cuando se utiliza en vagonetas", + "item.create.minecart_coupling.tooltip.behaviour1": "_Acopla_ dos vagonetas, intentando mantenerlas a una _distancia constante_ mientras se mueven.", + + "block.create.peculiar_bell.tooltip": "CAMPANA PECULIAR", + "block.create.peculiar_bell.tooltip.summary": "Una campana decorativa de latón. Al colocarla sobre un _Fuego del alma_ o una _Fogata del alma_ puede producirse una transformación espeluznante...", + + "block.create.haunted_bell.tooltip": "CAMPANA ENCANTADA", + "block.create.haunted_bell.tooltip.summary": "Una _campana maldita_ perseguida por las almas perdidas del Nether", + "block.create.haunted_bell.tooltip.condition1": "Cuando se sostiene o suena", + "block.create.haunted_bell.tooltip.behaviour1": "Resalta los _puntos sin luz_ cercanos en los que pueden aparecer las _criaturas hostiles_.", + + + "_": "->------------------------] Ponder Content [------------------------<-", + + "create.ponder.hold_to_ponder": "Mantén [%1$s] para considerar", + "create.ponder.subject": "Tema de esta escena", + "create.ponder.pondering": "Considerando sobre...", + "create.ponder.identify_mode": "Identificando modo activo.\nDespausea con [%1$s]", + "create.ponder.associated": "Entradas asociadas", + "create.ponder.close": "Cerrar", + "create.ponder.identify": "Identificar", + "create.ponder.next": "Escena siguiente", + "create.ponder.previous": "Escena previa", + "create.ponder.replay": "Repetición", + "create.ponder.think_back": "Volver atrás", + "create.ponder.slow_text": "Lectura cómoda", + "create.ponder.exit": "Salir", + "create.ponder.welcome": "Bienvenido al instructivo de Create", + "create.ponder.categories": "Categorías disponibles", + "create.ponder.index_description": "Haga clic en uno de los iconos para conocer sus objetos y bloques asociados", + "create.ponder.index_title": "Índice", + "create.ponder.shared.rpm16": "16 RPM", + "create.ponder.shared.behaviour_modify_wrench": "Este comportamiento puede modificarse mediante una llave inglesa", + "create.ponder.shared.storage_on_contraption": "Los inventarios unidos al artilugio recogerán sus producciones automáticamente", + "create.ponder.shared.sneak_and": "Mayús izdo. +", + "create.ponder.shared.rpm8": "8 RPM", + "create.ponder.shared.ctrl_and": "Ctrl +", + "create.ponder.shared.rpm32": "32 RPM", + "create.ponder.shared.rpm16_source": "Fuente: 16 RPM", + "create.ponder.shared.movement_anchors": "Con la ayuda de un chasis o pegamento, se pueden mover estructuras más grandes.", + "create.ponder.tag.redstone": "Componentes lógicos", + "create.ponder.tag.redstone.description": "Componentes que ayudan a la ingeniería de redstone", + "create.ponder.tag.contraption_assembly": "Utilidades para adjuntar bloques", + "create.ponder.tag.contraption_assembly.description": "Herramientas y componentes utilizados para montar estructuras con movimiento, como un artilugio animado", + "create.ponder.tag.fluids": "Manipuladores de fluidos", + "create.ponder.tag.fluids.description": "Componentes que ayudan a transportar y utilizar fluidos", + "create.ponder.tag.decoration": "Estética", + "create.ponder.tag.decoration.description": "Componentes utilizados principalmente con fines decorativos", + "create.ponder.tag.windmill_sails": "Velas para los rodamientos de los molinos de viento", + "create.ponder.tag.windmill_sails.description": "Bloques que cuentan para la fuerza de un artefacto de molino de viento cuando se ensamblan. Cada uno de ellos tiene la misma eficacia al hacerlo.", + "create.ponder.tag.arm_targets": "Objetivos para los brazos mecánicos", + "create.ponder.tag.arm_targets.description": "Componentes que pueden seleccionarse como entradas o salidas del brazo mecánico", + "create.ponder.tag.kinetic_appliances": "Dispositivos cinéticos", + "create.ponder.tag.kinetic_appliances.description": "Componentes que utilizan la fuerza rotacional", + "create.ponder.tag.kinetic_sources": "Fuentes cinéticas", + "create.ponder.tag.kinetic_sources.description": "Componentes que generan fuerza rotacional", + "create.ponder.tag.movement_anchor": "Anclas de movimiento", + "create.ponder.tag.movement_anchor.description": "Componentes que permiten crear artilugios en movimiento, animando una estructura anexa de diversas maneras", + "create.ponder.tag.kinetic_relays": "Transmisores cinéticos", + "create.ponder.tag.kinetic_relays.description": "Componentes que ayudan a transmitir la fuerza rotacional en otro lugar", + "create.ponder.tag.contraption_actor": "Actores del artilugio", + "create.ponder.tag.contraption_actor.description": "Componentes que exponen un comportamiento especial cuando están unidos a un artilugio en movimiento", + "create.ponder.tag.creative": "Modo creativo", + "create.ponder.tag.creative.description": "Componentes que no suelen estar disponibles para el Modo Supervivencia", + "create.ponder.tag.logistics": "Transporte de objetos", + "create.ponder.tag.logistics.description": "Componentes que ayudan a desplazar los objetos", + + "create.ponder.adjustable_pulse_repeater.header": "Controlar señales mediante repetidores de pulsos ajustables", + "create.ponder.adjustable_pulse_repeater.text_1": "Los repetidores de pulsos ajustables emiten un pulso corto con un retardo", + "create.ponder.adjustable_pulse_repeater.text_2": "Con la rueda del ratón se puede configurar el tiempo de carga", + "create.ponder.adjustable_pulse_repeater.text_3": "Los retrasos configurados pueden ser de hasta 30 minutos", + + "create.ponder.adjustable_repeater.header": "Controlar señales mediante repetidores ajustables", + "create.ponder.adjustable_repeater.text_1": "Los repetidores ajustables se comportan de forma similar a los repetidores normales", + "create.ponder.adjustable_repeater.text_2": "Se cargan durante un tiempo determinado...", + "create.ponder.adjustable_repeater.text_3": "...y se enfrían durante el mismo tiempo", + "create.ponder.adjustable_repeater.text_4": "Con la rueda del ratón se puede configurar el tiempo de carga", + "create.ponder.adjustable_repeater.text_5": "Los retrasos configurados pueden variar hasta 30 minutos", + + "create.ponder.analog_lever.header": "Controlar señales mediante la palanca analógica", + "create.ponder.analog_lever.text_1": "Las palancas analógicas son una fuente compacta y precisa de energía de redstone", + "create.ponder.analog_lever.text_2": "Haz clic derecho para aumentar su potencia analógica", + "create.ponder.analog_lever.text_3": "Usa Mayús izdo + clic derecho para volver a disminuir su potencia", + + "create.ponder.andesite_tunnel.header": "Usar túneles de andesita", + "create.ponder.andesite_tunnel.text_1": "Los túneles de andesita se pueden utilizar para tapar las correas", + "create.ponder.andesite_tunnel.text_2": "Siempre que un túnel de andesita tenga conexiones a los lados...", + "create.ponder.andesite_tunnel.text_3": "...dividirá exactamente un elemento de cualquier pila que pase", + "create.ponder.andesite_tunnel.text_4": "El resto continuará su camino", + + "create.ponder.basin.header": "Procesar objetos en la cuenca", + "create.ponder.basin.text_1": "Una cuenca puede contener objetos y fluidos para su procesamiento", + "create.ponder.basin.text_2": "Después de un paso de procesamamiento, las cuencas intentan descargar por debajo a un lado de ellas", + "create.ponder.basin.text_3": "Cuando un ingrediente válido está presente, la cuenca mostrará un conducto de salida", + "create.ponder.basin.text_4": "Aquí se pueden aplicar varias opciones", + "create.ponder.basin.text_5": "Las salidas serán capturadas por el inventario que está por debajo", + "create.ponder.basin.text_6": "Sin conducto de salida, la cuenca retendrá los objetos creados en su procesamiento", + "create.ponder.basin.text_7": "Esto puede ser útil si las salidas deben ser reutilizadas como ingredientes", + "create.ponder.basin.text_8": "Las salidas deseadas tendrán que ser extraídas de la cuenca", + "create.ponder.basin.text_9": "Podría ser necesario un filtro para evitar sacar los objetos no procesados", + + "create.ponder.bearing_modes.header": "Modos de movimiento del rodamiento mecánico", + "create.ponder.bearing_modes.text_1": "Cuando se detenga, el rodamiento mecánico colocará la estructura en el ángulo más cercano alineado con la cuadrícula", + "create.ponder.bearing_modes.text_2": "Se puede configurar para que nunca vuelva a los bloques sólidos, o sólo cerca del ángulo en el que comenzó", + + "create.ponder.belt_casing.header": "Correas revestidas", + "create.ponder.belt_casing.text_1": "Se puede utilizar revestidor de latón o andesita para decorar las correas", + "create.ponder.belt_casing.text_2": "Se puede utilizar una llave inglesa para quitar el revestimiento", + + "create.ponder.belt_connector.header": "El uso de las correas mecánicas", + "create.ponder.belt_connector.text_1": "Al hacer clic derecho en dos ejes con una correa mecánica se conectarán entre sí", + "create.ponder.belt_connector.text_2": "Las selecciones accidentales pueden ser canceladas con Mayús izdo + clic derecho", + "create.ponder.belt_connector.text_3": "Se pueden añadir ejes adicionales en toda la correa", + "create.ponder.belt_connector.text_4": "Los ejes conectados a través de correas girarán con velocidad y dirección idénticas", + "create.ponder.belt_connector.text_5": "Los ejes añadidos se pueden quitar con la llave inglesa", + "create.ponder.belt_connector.text_6": "Las correas mecánicas se pueden teñir con fines estéticos", + + "create.ponder.belt_directions.header": "Orientaciones válidas para las correas mecánicas", + "create.ponder.belt_directions.text_1": "Las correas mecánicas no pueden conectarse en direcciones arbitrarias", + "create.ponder.belt_directions.text_2": "1. Pueden conectarse horizontalmente", + "create.ponder.belt_directions.text_3": "2. Pueden conectarse en diagonal", + "create.ponder.belt_directions.text_4": "3. Pueden conectarse verticalmente", + "create.ponder.belt_directions.text_5": "4. Y pueden conectar ejes verticales horizontalmente", + "create.ponder.belt_directions.text_6": "Estas son todas las direcciones posibles. Pueden abarcar cualquier longitud entre 2 y 20 bloques", + + "create.ponder.belt_transport.header": "El uso de las correas mecánicas para la logística", + "create.ponder.belt_transport.text_1": "Las correas mecánicas transportan objetos y otras entidades", + "create.ponder.belt_transport.text_2": "Haz clic derecho con la mano vacía para sacar objetos de una 'cinta'", + + "create.ponder.blaze_burner.header": "Alimentar quemadores de blaze", + "create.ponder.blaze_burner.text_1": "Los quemadores de blaze pueden proporcionar calor a los objetos procesados en una cuenca", + "create.ponder.blaze_burner.text_2": "Para ello, el blaze tiene que ser alimentado con objetos inflamables", + "create.ponder.blaze_burner.text_3": "Con un pastel de blaze, el quemador puede alcanzar un mayor nivel de calor", + "create.ponder.blaze_burner.text_4": "El proceso de alimentación puede automatizarse utilizando desplegadores o brazos mecánicos", + + "create.ponder.brass_funnel.header": "El embudo de latón", + "create.ponder.brass_funnel.text_1": "Los embudos de andesita sólo pueden extraer objetos individuales", + "create.ponder.brass_funnel.text_2": "Los embudos de latón pueden extraer hasta una pila completa", + "create.ponder.brass_funnel.text_3": "Usar la rueda de desplazamiento del ratón en la ranura para filtros permite un control preciso del tamaño de la pila extraída.", + "create.ponder.brass_funnel.text_4": "El uso de objetos en la ranura de filtrado restringirá el embudo para transferir sólo las pilas que coincidan.", + + "create.ponder.brass_tunnel.header": "Usar túneles de latón", + "create.ponder.brass_tunnel.text_1": "Los túneles de latón pueden utilizarse para tapar las correas", + "create.ponder.brass_tunnel.text_2": "Tienen ranuras de filtro en cada lado abierto", + "create.ponder.brass_tunnel.text_3": "Los filtros en las conexiones de entrada simplemente bloquean los objetos que no coincidan", + "create.ponder.brass_tunnel.text_4": "Los filtros en las conexiones de salida pueden utilizarse para ordenar los objetos por tipo", + "create.ponder.brass_tunnel.text_5": "Siempre que un objeto de paso tenga múltiples salidas válidas, el modo de distribución decidirá cómo manejarlo", + "create.ponder.brass_tunnel.text_6": "Los túneles de latón en bandas paralelas formarán un grupo", + "create.ponder.brass_tunnel.text_7": "Los objetos entrantes se distribuirán ahora por todas las salidas conectadas", + "create.ponder.brass_tunnel.text_8": "Para ello, los objetos también pueden insertarse en el bloque del túnel directamente", + + "create.ponder.brass_tunnel_modes.header": "Modos de distribución del túnel de latón", + "create.ponder.brass_tunnel_modes.text_1": "Mediante una llave inglesa se puede configurar el comportamiento de distribución de los túneles de latón", + "create.ponder.brass_tunnel_modes.text_10": "'Sincronizar entradas' es una configuración única de los túneles de latón", + "create.ponder.brass_tunnel_modes.text_11": "Las entradas sólo pueden pasar si cada túnel del grupo tiene una en espera", + "create.ponder.brass_tunnel_modes.text_12": "Esto asegura que todas las correas afectadas suministren objetos al mismo tiempo", + "create.ponder.brass_tunnel_modes.text_2": "El modo División intentará distribuir la pila uniformemente entre las salidas disponibles", + "create.ponder.brass_tunnel_modes.text_3": "Si una salida no puede tomar más objetos, se saltará", + "create.ponder.brass_tunnel_modes.text_4": "El modo División forzada nunca saltará las salidas, y en su lugar esperará hasta que estén libres", + "create.ponder.brass_tunnel_modes.text_5": "El modo Round Robin mantiene las pilas enteras, y recorre las salidas de forma iterativa", + "create.ponder.brass_tunnel_modes.text_6": "Una vez más, si una salida no puede aceptar más objetos, se saltará", + "create.ponder.brass_tunnel_modes.text_7": "El modo Round Robin forzado nunca omite salidas", + "create.ponder.brass_tunnel_modes.text_8": "El modo Preferir el más cercano prioriza las salidas más cercanas a la ubicación de entrada de los objetos", + "create.ponder.brass_tunnel_modes.text_9": "El modo Aleatorizar distribuirá pilas enteras a salidas elegidas al azar", + + "create.ponder.cart_assembler.header": "Mover estructuras usando ensambladores de vagonetas", + "create.ponder.cart_assembler.text_1": "Los ensambladores de vagonetas montan estructuras adjuntas a las vagonetas que pasan", + "create.ponder.cart_assembler.text_2": "Sin una señal de redstone, desmonta los artilugios de vagoneta que pasan de nuevo en bloques", + "create.ponder.cart_assembler.text_3": "El uso de una llave inglesa en una vagoneta te permitirá llevar el artilugio a otro lugar", + + "create.ponder.cart_assembler_dual.header": "Ensamblajes de artilugios de vagoneta", + "create.ponder.cart_assembler_dual.text_1": "Siempre que dos ensambladores de vagoneta compartan una estructura adjunta...", + "create.ponder.cart_assembler_dual.text_2": "...al alimentar a cualquiera de ellos se creará un artilugio de vagoneta", + "create.ponder.cart_assembler_dual.text_3": "Las vagonetas se comportarán como las conectadas a través del acoplamiento de vagoneta", + + "create.ponder.cart_assembler_modes.header": "Configurar la orientación de los artilugios de vagonetas", + "create.ponder.cart_assembler_modes.text_1": "Los artilugios de vagonetas girarán para orientarse hacia el movimiento de sus vagonetas", + "create.ponder.cart_assembler_modes.text_2": "Esta flecha indica qué lado de la estructura se considerará la parte delantera", + "create.ponder.cart_assembler_modes.text_3": "Si el ensamblador está configurado para bloquear la rotación, la orientación de los artilugios nunca cambiará", + + "create.ponder.cart_assembler_rails.header": "Otros tipos de vagonetas y raíles", + "create.ponder.cart_assembler_rails.text_1": "Los ensambladores de vagonetas en raíles normales no afectarán el movimiento de las vagonetas que pasen", + "create.ponder.cart_assembler_rails.text_2": "Cuando se encuentre en un raíl motorizado o en un raíl de control, las vagonetas se mantendrán en su sitio hasta que sea motorizado", + "create.ponder.cart_assembler_rails.text_3": "Se pueden utilizar otros tipos de vagonetas como anclaje", + "create.ponder.cart_assembler_rails.text_4": "Los artilugios de vagonetas de horno se mantendrán alimentados a sí mismos, sacando combustible de cualquier inventario adjunto", + + "create.ponder.chain_drive.header": "Transmitir fuerza rotacional con las cadenas de transmisión", + "create.ponder.chain_drive.text_1": "Las cadenas de transmisión transmiten la rotación entre sí en fila", + "create.ponder.chain_drive.text_2": "Todos los ejes conectados así girarán en la misma dirección", + "create.ponder.chain_drive.text_3": "Cualquier parte de la fila puede girar 90 grados usando una llave inglesa", + + "create.ponder.chain_gearshift.header": "Controlar la velocidad de rotación con la cadena de transmisión ajustable", + "create.ponder.chain_gearshift.text_1": "Las cadenas de transmisión ajustables sin alimentación se comportan exactamente como las cadenas de transmisión", + "create.ponder.chain_gearshift.text_2": "Cuando están alimentadas, la velocidad transmitida a las demás cadenas de transmisión de la fila se duplica", + "create.ponder.chain_gearshift.text_3": "Siempre que la cadena de transmisión alimentada no esté en el origen, su velocidad se reducirá a la mitad", + "create.ponder.chain_gearshift.text_4": "En ambos casos, las cadenas de transmisión de la fila siempre funcionan a 2 veces la velocidad de la cadena de transmisión alimentada", + "create.ponder.chain_gearshift.text_5": "Utilizando señales analógicas, la relación puede ajustarse con mayor precisión, entre 1 y 2", + "create.ponder.chain_gearshift.text_6": "12 RPM", + + "create.ponder.chute.header": "Transportar objetos hacia abajo a través de ductos", + "create.ponder.chute.text_1": "Los ductos pueden transportar objetos verticalmente desde y hacia los inventarios", + "create.ponder.chute.text_2": "Usando la llave inglesa, se puede crear una ventana", + "create.ponder.chute.text_3": "Colocar ductos apuntando a las caras laterales de otro lo hará en diagonal", + + "create.ponder.chute_upward.header": "Transportar objetos hacia arriba mediante ductos", + "create.ponder.chute_upward.text_1": "Usando ventiladores revestidos en la parte superior o inferior, un ducto puede transportar objetos hacia arriba", + "create.ponder.chute_upward.text_2": "Al inspeccionar los ductos con las gafas del constructor, se revela información sobre la dirección del movimiento", + "create.ponder.chute_upward.text_3": "En el extremo 'bloqueado', los objetos tendrán que ser insertados/tomados de los lados", + + "create.ponder.clockwork_bearing.header": "Animar estructuras con rodamientos tipo reloj", + "create.ponder.clockwork_bearing.text_1": "Los rodamientos tipo reloj se fijan a los bloques que tienen delante", + "create.ponder.clockwork_bearing.text_2": "Al recibir fuerza rotacional, la estructura girará según la hora del día", + "create.ponder.clockwork_bearing.text_3": "3:00", + "create.ponder.clockwork_bearing.text_4": "4:00", + "create.ponder.clockwork_bearing.text_5": "Haz clic derecho en el rodamiento para iniciar o detener la animación de la estructura", + "create.ponder.clockwork_bearing.text_6": "Delante de la manecilla de las horas se puede añadir una segunda estructura", + "create.ponder.clockwork_bearing.text_7": "Asegúrese de que las dos estructuras no están unidas entre sí con pegamento o algo similar", + "create.ponder.clockwork_bearing.text_8": "La segunda estructura ahora girará como el minutero", + + "create.ponder.clutch.header": "Controlar la fuerza rotacional mediante un embrague", + "create.ponder.clutch.text_1": "Los embragues transmitirán la rotación en línea recta", + "create.ponder.clutch.text_2": "Cuando se alimentan con redstone, rompen la conexión", + + "create.ponder.cog_speedup.header": "Cambiar de marchas con engranajes", + "create.ponder.cog_speedup.text_1": "Los engranajes grandes y pequeños pueden conectarse en diagonal", + "create.ponder.cog_speedup.text_2": "Al cambiar de engranajes grandes a pequeños, la velocidad rotacional se duplicará", + "create.ponder.cog_speedup.text_3": "Inversamente, la velocidad rotacional se reducirá a la mitad", + + "create.ponder.cogwheel.header": "Transmitir fuerza rotacional mediante engranajes", + "create.ponder.cogwheel.text_1": "Los engranajes transmitirán la rotación a otros engranajes adyacentes", + "create.ponder.cogwheel.text_2": "Los ejes adyacentes conectados así, girarán en direcciones opuestas", + + "create.ponder.creative_fluid_tank.header": "Tanque de fluídos creativo", + "create.ponder.creative_fluid_tank.text_1": "Los depósitos de fluidos creativos pueden utilizarse para proporcionar un suministro de fluidos sin fondo", + "create.ponder.creative_fluid_tank.text_2": "Haga clic con el botón derecho en un elemento que contenga fluido para configurarlo", + "create.ponder.creative_fluid_tank.text_3": "Las redes de tuberías pueden ahora extraer sin cesar el fluido asignado del depósito", + "create.ponder.creative_fluid_tank.text_4": "Cualquier fluido empujado de vuelta a un tanque de fluido creativo será anulado", + + "create.ponder.creative_motor.header": "Generar fuerza rotacional con motores creativos", + "create.ponder.creative_motor.text_1": "Los motores creativos son una fuente compacta y configurable de fuerza rotacional", + "create.ponder.creative_motor.text_2": "Usar la rueda de desplazamiento del ratón en su parte trasera cambia las RPM de la salida rotacional", + + "create.ponder.crushing_wheels.header": "Procesar objetos con las ruedas trituradoras", + "create.ponder.crushing_wheels.text_1": "Un par de ruedas trituradoras pueden moler objetos de forma muy eficaz", + "create.ponder.crushing_wheels.text_2": "Su fuerza rotacional tiene que hacerlas girar una contra otra", + "create.ponder.crushing_wheels.text_3": "Los objetos lanzados o insertados en la parte superior serán procesados", + "create.ponder.crushing_wheels.text_4": "Los objetos también pueden ser insertados y recogidos a través de medios automatizados", + + "create.ponder.deployer.header": "Usar el desplegador", + "create.ponder.deployer.text_1": "Dada la fuerza rotacional, un desplegador puede imitar las interacciones de los jugadores", + "create.ponder.deployer.text_10": "Haz clic derecho en el frente para darle un objeto a utilizar", + "create.ponder.deployer.text_11": "Los objetos también pueden ser insertados automáticamente", + "create.ponder.deployer.text_12": "Los desplegadores llevan una ranura de filtro", + "create.ponder.deployer.text_13": "Cuando se establece un filtro, sólo se activa mientras se mantiene un elemento coincidente", + "create.ponder.deployer.text_14": "Ahora sólo se pueden insertar los objetos que coincidan con el filtro...", + "create.ponder.deployer.text_15": "...y sólo se extraerán los objetos que no coincidan", + "create.ponder.deployer.text_2": "Siempre interactuará con la posición 2 bloques delante de sí mismo", + "create.ponder.deployer.text_3": "Los bloques situados directamente delante no lo obstruirán", + "create.ponder.deployer.text_4": "Los desplegadores pueden:", + "create.ponder.deployer.text_5": "Colocar bloques,", + "create.ponder.deployer.text_6": "Usar objetos,", + "create.ponder.deployer.text_7": "Activar bloques,", + "create.ponder.deployer.text_8": "Cosechar bloques", + "create.ponder.deployer.text_9": "Y atacar criaturas", + + "create.ponder.deployer_contraption.header": "Usar desplegadores en artilugios", + "create.ponder.deployer_contraption.text_1": "Siempre que los desplegadores se muevan como parte de un artilugio animado...", + "create.ponder.deployer_contraption.text_2": "Se activan en cada ubicación visitada, utilizando objetos de los inventarios de cualquier parte del artilugio", + "create.ponder.deployer_contraption.text_3": "La ranura para filtros se puede utilizar para especificar qué objetos tirar", + + "create.ponder.deployer_modes.header": "Modos del desplegador", + "create.ponder.deployer_modes.text_1": "Por defecto, un desplegador imita la interacción del clic derecho del ratón", + "create.ponder.deployer_modes.text_2": "Usando una llave inglesa, se puede configurar para imitar un clic izquierdo en su lugar", + + "create.ponder.deployer_processing.header": "Procesar objetos mediante desplegadores", + "create.ponder.deployer_processing.text_1": "Con un objeto de sujeción ajustado, los desplegadores pueden procesar los objetos proporcionados por debajo de ellos", + "create.ponder.deployer_processing.text_2": "Los objetos de entrada pueden soltarse o colocarse en un depósito bajo el desplegador", + "create.ponder.deployer_processing.text_3": "Cuando los objetos se proporcionan en una 'cinta'...", + "create.ponder.deployer_processing.text_4": "El desplegador los retendrá y procesará automáticamente", + + "create.ponder.deployer_redstone.header": "Controlar desplegadores con redstone", + "create.ponder.deployer_redstone.text_1": "Al controlar los desplegadores con redstone, éstos no se activarán", + "create.ponder.deployer_redstone.text_2": "Antes de detenerse, el desplegador terminará cualquier ciclo iniciado", + "create.ponder.deployer_redstone.text_3": "Por lo tanto, un pulso negativo puede ser utilizado para desencadenar exactamente un ciclo de activación", + + "create.ponder.depot.header": "Usar depósitos", + "create.ponder.depot.text_1": "Los depósitos pueden servir como objetos 'fijos' de la correa", + "create.ponder.depot.text_2": "Haz clic derecho para colocar o eliminar manualmente objetos del mismo", + "create.ponder.depot.text_3": "Al igual que las correas mecánicas, pueden proporcionar objetos para su procesamiento", + "create.ponder.depot.text_4": "...así como proporcionar objetos a los brazos mecánicos", + + "create.ponder.empty_blaze_burner.header": "Usar quemadores de blaze vacíos", + "create.ponder.empty_blaze_burner.text_1": "Haz clic derecho en un blaze con el quemador vacío para capturarlo", + "create.ponder.empty_blaze_burner.text_2": "Alternativamente, los blaze pueden ser recogidos de sus spawners directamente", + "create.ponder.empty_blaze_burner.text_3": "Ahora tienes una fuente de calor ideal para varias máquinas", + "create.ponder.empty_blaze_burner.text_4": "Por motivos estéticos, los quemadores de blaze vacíos también se pueden encender con pedernal y acero", + "create.ponder.empty_blaze_burner.text_5": "La llama puede transformarse utilizando un objeto con alma", + "create.ponder.empty_blaze_burner.text_6": "Sin embargo, no son adecuados para la calefacción industrial", + + "create.ponder.encased_fluid_pipe.header": "Revestir tuberías de fluídos", + "create.ponder.encased_fluid_pipe.text_1": "El revestidor de cobre puede utilizarse para decorar las tuberías de fluidos", + "create.ponder.encased_fluid_pipe.text_2": "Además de estar ocultas, las tuberías revestidas están bloqueadas en su estado de conectividad", + "create.ponder.encased_fluid_pipe.text_3": "Ya no reaccionará a los bloques vecinos que se añadan o eliminen", + + "create.ponder.fan_direction.header": "El flujo de aire de los ventiladores revestidos", + "create.ponder.fan_direction.text_1": "Los ventiladores revestidos utilizan la fuerza rotacional para crear una corriente de aire", + "create.ponder.fan_direction.text_2": "La fuerza y la dirección del flujo dependen de la fuerza rotacional suministrada", + + "create.ponder.fan_processing.header": "Procesar objetos mediante ventiladores revestidos", + "create.ponder.fan_processing.text_1": "Al pasar por lava, el flujo de aire se calienta", + "create.ponder.fan_processing.text_2": "Los objetos capturados en la zona serán fundidos", + "create.ponder.fan_processing.text_3": "Los artículos de comida arrojados aquí serán incinerados", + "create.ponder.fan_processing.text_4": "En su lugar, se debería utilizar una instalación de ahumado, usando fuego", + "create.ponder.fan_processing.text_5": "Los flujos de aire que pasan por el agua crean una instalación de lavado", + "create.ponder.fan_processing.text_6": "Se puede hacer un nuevo e interesante procesamiento con él", + "create.ponder.fan_processing.text_7": "La velocidad del ventilador NO afecta a la velocidad de procesamiento, sólo a su rango", + "create.ponder.fan_processing.text_8": "El procesamiento del ventilador también puede aplicarse a los objetos de los depósitos y las correas", + + "create.ponder.fan_source.header": "Generar fuerza rotacional mediante ventiladores revestidos", + "create.ponder.fan_source.text_1": "Los ventiladores orientados hacia una fuente de calor pueden proporcionar fuerza rotacional", + "create.ponder.fan_source.text_2": "Cuando se les da una señal de redstone, los ventiladores comenzarán a proporcionar fuerza", + + "create.ponder.fluid_pipe_flow.header": "Transportar fluidos mediante tuberías de cobre", + "create.ponder.fluid_pipe_flow.text_1": "Las tuberías de fluidos pueden conectar dos o más fuentes y objetivos de fluidos", + "create.ponder.fluid_pipe_flow.text_2": "Utilizando una llave, se puede dar a un segmento de tubo recto una ventana", + "create.ponder.fluid_pipe_flow.text_3": "Las tuberías con ventanas no se conectarán a ningún otro segmento de tubería adyacente", + "create.ponder.fluid_pipe_flow.text_4": "Accionadas por bombas mecánicas, las tuberías pueden transportar fluidos", + "create.ponder.fluid_pipe_flow.text_5": "Al principio no se extrae ningún líquido", + "create.ponder.fluid_pipe_flow.text_6": "Una vez que el flujo los conecta, los puntos finales transfieren gradualmente su contenido", + "create.ponder.fluid_pipe_flow.text_7": "Así, los bloques de tuberías nunca contienen 'físicamente' ningún fluido", + + "create.ponder.fluid_pipe_interaction.header": "Drenaje y llenado de contenedores de fluidos", + "create.ponder.fluid_pipe_interaction.text_1": "Los puntos finales de una red de tuberías pueden interactuar con una variedad de bloques", + "create.ponder.fluid_pipe_interaction.text_2": "Cualquier bloque con capacidad para almacenar fluidos puede ser llenado o vaciado", + "create.ponder.fluid_pipe_interaction.text_3": "Los bloques de origen justo delante de un extremo abierto pueden ser recogidos...", + "create.ponder.fluid_pipe_interaction.text_4": "...mientras que el derrame en espacios vacíos puede crear fuentes de fluidos", + "create.ponder.fluid_pipe_interaction.text_5": "Las tuberías también pueden extraer fluidos de un puñado de otros bloques directamente", + + "create.ponder.fluid_tank_sizes.header": "Dimensiones de un depósito de fluidos", + "create.ponder.fluid_tank_sizes.text_1": "Los depósitos de fluidos pueden combinarse para aumentar la capacidad total", + "create.ponder.fluid_tank_sizes.text_2": "Su cuadrado base puede tener hasta 3 bloques de ancho...", + "create.ponder.fluid_tank_sizes.text_3": "...y crecen en altura en más de 30 capas adicionales", + "create.ponder.fluid_tank_sizes.text_4": "Con una llave inglesa, se puede cambiar la ventana de un tanque", + + "create.ponder.fluid_tank_storage.header": "Almacenar fluidos en depósitos de fluidos", + "create.ponder.fluid_tank_storage.text_1": "Los depósitos de fluidos pueden utilizarse para almacenar grandes cantidades de fluidos", + "create.ponder.fluid_tank_storage.text_2": "Las redes de tuberías pueden empujar y arrastrar fluidos desde cualquier lado", + "create.ponder.fluid_tank_storage.text_3": "El fluido contenido puede ser medido por un Comparador", + "create.ponder.fluid_tank_storage.text_4": "Sin embargo, en el Modo Supervivencia no se pueden añadir o tomar fluidos manualmente", + "create.ponder.fluid_tank_storage.text_5": "Puede utilizar cuencas, drenadores de objetos y tuberías para vaciar o llenar objetos que contengan líquido", + + "create.ponder.flywheel.header": "Generar fuerza rotacional con la rueda de inercia", + "create.ponder.flywheel.text_1": "Las ruedas de inercia son necesarias para generar fuerza rotacional con el motor de horno", + "create.ponder.flywheel.text_2": "La fuerza rotacional proporcionada tiene una capacidad de estrés muy grande", + "create.ponder.flywheel.text_3": "El uso de un alto horno duplicará la eficiencia del motor", + + "create.ponder.funnel_compat.header": "Compatibilidades con el embudo", + "create.ponder.funnel_compat.text_1": "Los embudos deberían interactuar bien con un puñado de otros componentes", + "create.ponder.funnel_compat.text_2": "Sierras verticales", + "create.ponder.funnel_compat.text_3": "Depósitos", + "create.ponder.funnel_compat.text_4": "Drenadores de objetos", + + "create.ponder.funnel_direction.header": "Dirección de la transferencia", + "create.ponder.funnel_direction.text_1": "Colocado normalmente, extrae objetos del inventario", + "create.ponder.funnel_direction.text_2": "Colocado mientras pulsa Mayús izdo, pone objetos en el inventario", + "create.ponder.funnel_direction.text_3": "Usando una llave inglesa, el embudo puede ser volteado después de su colocación", + "create.ponder.funnel_direction.text_4": "Se aplicarán las mismas reglas para la mayoría de las orientaciones", + "create.ponder.funnel_direction.text_5": "Los embudos en las correas extraerán/insertarán dependiendo de su dirección de movimiento", + + "create.ponder.funnel_intro.header": "Usar embudos", + "create.ponder.funnel_intro.text_1": "Los embudos son ideales para transferir objetos desde y hacia los inventarios", + + "create.ponder.funnel_redstone.header": "Embudos alimentados con redstone", + "create.ponder.funnel_redstone.text_1": "La energía de redstone impedirá la actuación de cualquier embudo", + + "create.ponder.funnel_transfer.header": "Transferencia directa", + "create.ponder.funnel_transfer.text_1": "Los embudos no pueden transferir nunca entre inventarios cerrados directamente", + "create.ponder.funnel_transfer.text_2": "Los ductos o los ductos inteligentes podrían ser más adecuados para estos fines", + "create.ponder.funnel_transfer.text_3": "Lo mismo se aplica para el movimiento horizontal. Una correa mecánica debería ayudar aquí", + + "create.ponder.furnace_engine.header": "Generar fuerza rotacional con el motor de horno", + "create.ponder.furnace_engine.text_1": "Los motores de horno generan fuerza rotacional mientras su horno adjunto está funcionando", + "create.ponder.furnace_engine.text_2": "La fuerza rotacional proporcionada tiene una capacidad de estrés muy grande", + "create.ponder.furnace_engine.text_3": "El uso de un alto horno duplicará la eficiencia del motor", + + "create.ponder.gantry_carriage.header": "Usar carros de grúa", + "create.ponder.gantry_carriage.text_1": "Los carros de grúa pueden montarse y deslizarse a lo largo de un eje de grúa", + "create.ponder.gantry_carriage.text_2": "Las instalaciones de grúa pueden mover bloques adjuntos", + + "create.ponder.gantry_cascaded.header": "Grúas en cascada", + "create.ponder.gantry_cascaded.text_1": "Los ejes de grúas se unen a un carro de grúa sin necesidad de pegamento", + "create.ponder.gantry_cascaded.text_2": "Lo mismo se aplica a los carros de grúa en los ejes de grúas desplazados", + "create.ponder.gantry_cascaded.text_3": "Así, un sistema de grúas puede estar en cascada para cubrir múltiples ejes de movimiento", + + "create.ponder.gantry_direction.header": "Dirección del movimiento de la grúa", + "create.ponder.gantry_direction.text_1": "Los ejes de grúa pueden tener orientaciones opuestas", + "create.ponder.gantry_direction.text_2": "La dirección de movimiento de los carros de grúa depende de la orientación de sus ejes", + "create.ponder.gantry_direction.text_3": "...así como de su sentido de rotación", + "create.ponder.gantry_direction.text_4": "Se aplican las mismas reglas para la rotación propagada", + + "create.ponder.gantry_redstone.header": "Propagación de la potencia de la grúa", + "create.ponder.gantry_redstone.text_1": "Los ejes de grúa alimentados con redstone dejan de mover sus carros", + "create.ponder.gantry_redstone.text_2": "En su lugar, su fuerza rotacional se transmite al eje de salida de los carros", + + "create.ponder.gantry_shaft.header": "Usar ejes de grúa", + "create.ponder.gantry_shaft.text_1": "Los ejes de grúa forman la base de una instalación de grúas. Los carros adjuntos se moverán a lo largo de ellos", + "create.ponder.gantry_shaft.text_2": "Las instalaciones de grúas pueden mover los bloques adjuntos", + + "create.ponder.gearbox.header": "Transmitir fuerza rotacional mediante cajas de transmisión", + "create.ponder.gearbox.text_1": "Saltar entre ejes de rotación puede volverse voluminoso rápidamente", + "create.ponder.gearbox.text_2": "Una caja de transmisión es el equivalente más compacto de esta configuración", + "create.ponder.gearbox.text_3": "Los ejes giran en las direcciones reflejadas...", + "create.ponder.gearbox.text_4": "...esto quiere decir que las conexiones rectas se invierten", + + "create.ponder.gearshift.header": "Controlar la dirección rotacional mediante una caja de cambios", + "create.ponder.gearshift.text_1": "La caja de cambios transmitirá la rotación en línea recta", + "create.ponder.gearshift.text_2": "Cuando es alimentada con redstone, invierte la transmisión", + + "create.ponder.hand_crank.header": "Generar fuerza rotacional mediante manivelas", + "create.ponder.hand_crank.text_1": "Las manivelas pueden ser utilizadas para aplicar fuerza rotacional manualmente", + "create.ponder.hand_crank.text_2": "Mantén pulsado clic derecho para girar en sentido antihorario", + "create.ponder.hand_crank.text_3": "Su velocidad de transmisión es relativamente alta", + "create.ponder.hand_crank.text_4": "Mayús izdo + clic derecho pulsado para girar en sentido horario", + + "create.ponder.hose_pulley.header": "Llenado y vaciado de fuentes mediante poleas de manguera", + "create.ponder.hose_pulley.text_1": "Las poleas para mangueras pueden utilizarse para llenar o drenar grandes masas de fluido", + "create.ponder.hose_pulley.text_2": "Con entrada cinética, se puede controlar la altura de la manguera de las poleas", + "create.ponder.hose_pulley.text_3": "La polea se retrae mientras la rotación de entrada se invierte", + "create.ponder.hose_pulley.text_4": "En el lado opuesto, se pueden conectar las tuberías", + "create.ponder.hose_pulley.text_5": "Las redes de tuberías conectadas pueden proporcionar fluido a la manguera...", + "create.ponder.hose_pulley.text_6": "...o tirar de él, vaciando la piscina en su lugar", + "create.ponder.hose_pulley.text_7": "La velocidad de llenado y vaciado de la polea depende totalmente del caudal de las redes de fluidos", + + "create.ponder.hose_pulley_infinite.header": "Llenado y drenaje pasivo de grandes masas de fluido", + "create.ponder.hose_pulley_infinite.text_1": "Al desplegar la polea de manguera en un océano lo suficientemente grande...", + "create.ponder.hose_pulley_infinite.text_2": "Proporcionará/eliminará fluidos sin afectar a la fuente", + "create.ponder.hose_pulley_infinite.text_3": "Las redes de tuberías pueden llevar fluidos de forma ilimitada desde/hacia dichas poleas", + + "create.ponder.hose_pulley_level.header": "Nivel de llenado y vaciado de las poleas de las mangueras", + "create.ponder.hose_pulley_level.text_1": "Mientras esté totalmente retraída, la polea de la manguera no puede funcionar", + "create.ponder.hose_pulley_level.text_2": "El drenaje va de arriba a abajo", + "create.ponder.hose_pulley_level.text_3": "El nivel de la superficie terminará justo debajo de donde termina la manguera", + "create.ponder.hose_pulley_level.text_4": "El llenado va de abajo a arriba", + "create.ponder.hose_pulley_level.text_5": "La piscina llena no crecerá más allá de la capa por encima del extremo de la manguera", + + "create.ponder.item_drain.header": "Vaciar contenedores de fluidos mediante drenajes de objetos", + "create.ponder.item_drain.text_1": "Los drenajes de objetos pueden extraer los fluidos de los objetos", + "create.ponder.item_drain.text_2": "Haz clic derecho para verter los fluidos de tu objeto retenido en él", + "create.ponder.item_drain.text_3": "Cuando los artículos se insertan desde el lado...", + "create.ponder.item_drain.text_4": "...ruedan a través, vaciando su líquido contenido", + "create.ponder.item_drain.text_5": "Las redes de tuberías pueden ahora extraer el fluido del buffer interno de los desagües", + + "create.ponder.large_cogwheel.header": "Transmitir fuerza rotacional mediante engranajes grandes", + "create.ponder.large_cogwheel.text_1": "Los engranajes grandes pueden conectarse entre sí en ángulo recto", + "create.ponder.large_cogwheel.text_2": "Ayudarán a transmitir la velocidad transportada a otros ejes de rotación.", + + "create.ponder.linear_chassis_attachment.header": "Fijar bloques mediante el chasis lineal", + "create.ponder.linear_chassis_attachment.text_1": "Las caras abiertas de un chasis lineal pueden hacerse pegajosas", + "create.ponder.linear_chassis_attachment.text_2": "Haz clic de nuevo para que se pegue el lado opuesto", + "create.ponder.linear_chassis_attachment.text_3": "Mayús izdo + clic derecho con la mano vacía para eliminar el pegamento", + "create.ponder.linear_chassis_attachment.text_4": "Las caras pegadas del chasis lineal fijarán una línea de bloques delante de él", + "create.ponder.linear_chassis_attachment.text_5": "Utilizando una llave inglesa, se puede especificar un rango preciso", + "create.ponder.linear_chassis_attachment.text_6": "Manteniendo pulsada la tecla [Ctrl] y usando la rueda central del ratón, se ajusta el rango de todos los bloques de chasis adjuntos", + "create.ponder.linear_chassis_attachment.text_7": "Para fijar los bloques a cualquier otro lado es necesario utilizar pegamento", + "create.ponder.linear_chassis_attachment.text_8": "Utilizando esta mecánica, las estructuras de cualquier forma pueden moverse como un artilugio", + + "create.ponder.linear_chassis_group.header": "Mover chasis lineales en grupos", + "create.ponder.linear_chassis_group.text_1": "Los chasis lineales se conectan a los bloques de chasis idénticos que se encuentren a su lado", + "create.ponder.linear_chassis_group.text_2": "Cuando uno es movido por un artilugio, los otros son arrastrados con él", + "create.ponder.linear_chassis_group.text_3": "Los chasis de otro tipo u orientados en otra dirección no se fijan", + + "create.ponder.mechanical_arm.header": "Configurar los brazos mecánicos", + "create.ponder.mechanical_arm.text_1": "A los brazos mecánicos hay que asignarles sus entradas y salidas antes de colocarlos", + "create.ponder.mechanical_arm.text_2": "Clic derecho en los inventarios mientras mantiene el brazo mecánico para asignarlos como objetivos", + "create.ponder.mechanical_arm.text_3": "Clic derecho denuevo para alternar entre la entrada (azul) y la salida (naranja)", + "create.ponder.mechanical_arm.text_4": "Clic izquierdo en los componentes para eliminar su selección", + "create.ponder.mechanical_arm.text_5": "Una vez colocado, el brazo mecánico apuntará a los bloques seleccionados previamente", + "create.ponder.mechanical_arm.text_6": "Pueden tener cualquier cantidad de entradas y salidas dentro de su rango", + "create.ponder.mechanical_arm.text_7": "Sin embargo, no se puede interactuar directamente con todos los tipos de inventario", + "create.ponder.mechanical_arm.text_8": "Los embudos y depósitos pueden ayudar a salvar esa distancia", + + "create.ponder.mechanical_arm_filtering.header": "Filtrar salidas del brazo mecánico", + "create.ponder.mechanical_arm_filtering.text_1": "Entradas", + "create.ponder.mechanical_arm_filtering.text_2": "Salidas", + "create.ponder.mechanical_arm_filtering.text_3": "A veces es conveniente restringir los objetivos del brazo mecánico haciendo coincidir un filtro", + "create.ponder.mechanical_arm_filtering.text_4": "Por sí mismos no ofrecen ninguna opción de filtrado", + "create.ponder.mechanical_arm_filtering.text_5": "Sin embargo, los embudos de latón como objetivos comunican su propio filtro al brazo", + "create.ponder.mechanical_arm_filtering.text_6": "El brazo mecánico es lo suficientemente inteligente como para no recoger objetos que no podría distribuir", + + "create.ponder.mechanical_arm_modes.header": "Modos de distribución del brazo mecánico", + "create.ponder.mechanical_arm_modes.text_1": "Entradas", + "create.ponder.mechanical_arm_modes.text_2": "Salidas", + "create.ponder.mechanical_arm_modes.text_3": "Siempre que un brazo tenga que elegir entre varias salidas válidas...", + "create.ponder.mechanical_arm_modes.text_4": "...funcionará según su configuración", + "create.ponder.mechanical_arm_modes.text_5": "Usando la rueda del ratón con una llave inglesa te permitirá configurarlo", + "create.ponder.mechanical_arm_modes.text_6": "El modo Round Robin simplemente hace un ciclo a través de todas las salidas que están disponibles", + "create.ponder.mechanical_arm_modes.text_7": "Si una salida no puede admitir más objetos, se omitirá", + "create.ponder.mechanical_arm_modes.text_8": "El modo Round Robin forzado nunca omitirá las salidas, sino que esperará a que estén libres", + "create.ponder.mechanical_arm_modes.text_9": "Preferir el primero da prioridad a las salidas seleccionadas anteriormente al configurar este brazo", + + "create.ponder.mechanical_arm_redstone.header": "Controlar brazos mecánicos con redstone", + "create.ponder.mechanical_arm_redstone.text_1": "Cuando se alimentan con redstone, los brazos mecánicos no se activan", + "create.ponder.mechanical_arm_redstone.text_2": "Antes de detenerse, terminará los ciclos iniciados", + "create.ponder.mechanical_arm_redstone.text_3": "Así, un pulso negativo puede utilizarse para activar exactamente un ciclo de activación", + + "create.ponder.mechanical_bearing.header": "Mover estructuras mediante el rodamiento mecánico", + "create.ponder.mechanical_bearing.text_1": "Los rodamientos mecánicos se fijan al bloque que tienen delante", + "create.ponder.mechanical_bearing.text_2": "Al recibir fuerza rotacional, la ensamblará en un artilugio giratorio", + + "create.ponder.mechanical_crafter.header": "Configurar ensambladores mecánicos", + "create.ponder.mechanical_crafter.text_1": "Se puede utilizar una serie de ensambladores mecánicos para automatizar cualquier receta de elaboración.", + "create.ponder.mechanical_crafter.text_2": "Usando una llave inglesa, puedes establecer los caminos de los ensambladores ", + "create.ponder.mechanical_crafter.text_3": "Para que la configuración sea válida, todos los caminos tienen que converger en una salida, en cualquiera de los lados", + "create.ponder.mechanical_crafter.text_4": "Los puertos de salida de objetos se colocarán en un inventario a la salida", + "create.ponder.mechanical_crafter.text_5": "Los ensambladores mecánicos requieren fuerza rotacional para funcionar", + "create.ponder.mechanical_crafter.text_6": "Haga clic derecho en la parte delantera para insertar objetos manualmente", + "create.ponder.mechanical_crafter.text_7": "Una vez que cada ranura de una ruta contenga un objeto, comenzará el proceso de elaboración", + "create.ponder.mechanical_crafter.text_8": "Para las recetas que no ocupen totalmente la instalación del ensamblador, se puede forzar el arranque utilizando un pulso de redstone", + + "create.ponder.mechanical_crafter_connect.header": "Conectar inventarios a los ensambladores mecánicos", + "create.ponder.mechanical_crafter_connect.text_1": "Los objetos pueden ser insertados a los ensambladores mecánicos automáticamente", + "create.ponder.mechanical_crafter_connect.text_2": "Utilizando la llave inglesa a sus espaldas, las entradas pueden combinarse", + "create.ponder.mechanical_crafter_connect.text_3": "Ahora se puede acceder a todos los ensambladores mecánicos conectados por la misma ubicación de entrada", + + "create.ponder.mechanical_crafter_covers.header": "Cubrir las ranuras de los ensambladores mecánicos", + "create.ponder.mechanical_crafter_covers.text_1": "Algunas recetas requerirán ensambladores mecánicos adicionales para salvar las brechas en el camino", + "create.ponder.mechanical_crafter_covers.text_2": "Utilizando las tapas de ranuras del ensamblador mecánico, pueden actuar como una ranura vacía a su disposición", + "create.ponder.mechanical_crafter_covers.text_3": "Las entradas compartidas creadas con la llave inglesa en la parte posterior también pueden llegar a través de los ensambladores revestidos", + + "create.ponder.mechanical_drill.header": "Romper bloques con el taladro mecánico", + "create.ponder.mechanical_drill.text_1": "Cuando se le aplica fuerza rotacional, el taladro mecánico rompe los bloques que tiene delante.", + "create.ponder.mechanical_drill.text_2": "Su velocidad de trabajo depende de la fuerza rotacional suministrada", + + "create.ponder.mechanical_drill_contraption.header": "Usar taladros mecánicos en artilugios", + "create.ponder.mechanical_drill_contraption.text_1": "Siempre que los taladros mecánicos se muevan como parte de un artilugio animado...", + "create.ponder.mechanical_drill_contraption.text_2": "...romperán los bloques por los que artilugio los hace pasar", + + "create.ponder.mechanical_harvester.header": "Utilizar cosechadoras mecánicas en artilugios", + "create.ponder.mechanical_harvester.text_1": "Siempre que las cosechadoras mecánicas se muevan como parte de un artilugio animado...", + "create.ponder.mechanical_harvester.text_2": "...recogerán y repondrán los cultivos maduros en su camino", + + "create.ponder.mechanical_mixer.header": "Procesar objetos con la mezcladora mecánica", + "create.ponder.mechanical_mixer.text_1": "Con una mezcladora mecánica y una cuenca, se pueden automatizar algunas recetas", + "create.ponder.mechanical_mixer.text_2": "Las recetas disponibles incluyen cualquier receta de elaboración amorfa, además de un par de recetas adicionales", + "create.ponder.mechanical_mixer.text_3": "Algunas de esas recetas pueden requerir el calor de un quemador de blaze", + "create.ponder.mechanical_mixer.text_4": "La ranura para filtros se puede utilizar en caso de que dos recetas sean conflictivas.", + + "create.ponder.mechanical_piston.header": "Mover estructuras mediante pistones mecánicos", + "create.ponder.mechanical_piston.text_1": "Los pistones mecánicos pueden mover los bloques que tienen delante", + "create.ponder.mechanical_piston.text_2": "La velocidad y la dirección del movimiento dependen de la fuerza rotacional suministrada", + "create.ponder.mechanical_piston.text_3": "Los pistones mecánicos pegajosos pueden tirar de los bloques unidos hacia atrás", + + "create.ponder.mechanical_piston_modes.header": "Modos de movimiento del pistón mecánico", + "create.ponder.mechanical_piston_modes.text_1": "Cuando los pistones mecánicos dejan de moverse, la estructura movida vuelve a los bloques", + "create.ponder.mechanical_piston_modes.text_2": "Puede configurarse para que no vuelva nunca a los bloques sólidos, o sólo en la ubicación en la que comenzó", + + "create.ponder.mechanical_plough.header": "Utilizar arados mecánicos en los artilugios", + "create.ponder.mechanical_plough.text_1": "Cuando los arados mecánicos se mueven como parte de un artilugio animado...", + "create.ponder.mechanical_plough.text_2": "...romperán los bloques sin un hitbox de colisión sólido", + "create.ponder.mechanical_plough.text_3": "Además, pueden crear tierras de cultivo", + "create.ponder.mechanical_plough.text_4": "...también pueden lanzar entidades sin dañarlas", + + "create.ponder.mechanical_press.header": "Procesar objetos con la prensa mecánica", + "create.ponder.mechanical_press.text_1": "La prensa mecánica puede procesar los objetos proporcionados por debajo de ella", + "create.ponder.mechanical_press.text_2": "Los objetos de entrada pueden soltarse o colocarse en un depósito bajo la prensa", + "create.ponder.mechanical_press.text_3": "Cuando los objetos se proporcionan en una 'cinta'...", + "create.ponder.mechanical_press.text_4": "...la prensa mecánica los retendrá y procesará automáticamente", + + "create.ponder.mechanical_press_compacting.header": "Compactar objetos con la prensa mecánica", + "create.ponder.mechanical_press_compacting.text_1": "Al presionar los objetos que se encuentran en una cuenca, éstos se compactan.", + "create.ponder.mechanical_press_compacting.text_2": "La compactación incluye cualquier receta de elaboración de 2x2 o 3x3 rellena, además de un par extra", + "create.ponder.mechanical_press_compacting.text_3": "Algunas de esas recetas pueden requerir el calor de un quemador de blaze", + "create.ponder.mechanical_press_compacting.text_4": "La ranura para filtros se puede utilizar en caso de que dos recetas sean conflictivas.", + + "create.ponder.mechanical_pump_flow.header": "Transportar fluidos mediante bombas mecánicas", + "create.ponder.mechanical_pump_flow.text_1": "Las bombas mecánicas gobiernan el flujo de sus redes de tuberías anexas", + "create.ponder.mechanical_pump_flow.text_2": "Cuando están alimentadas, su flecha indica la dirección del flujo", + "create.ponder.mechanical_pump_flow.text_3": "La red de atrás está ahora tirando de fluidos...", + "create.ponder.mechanical_pump_flow.text_4": "...mientras la red de enfrente la transfiere hacia el exterior", + "create.ponder.mechanical_pump_flow.text_5": "Al invertir la rotación de la entrada se invierte el sentido del flujo", + "create.ponder.mechanical_pump_flow.text_6": "Utilice una llave inglesa para invertir la orientación de las bombas manualmente", + + "create.ponder.mechanical_pump_speed.header": "Rendimiento de las bombas mecánicas", + "create.ponder.mechanical_pump_speed.text_1": "Independientemente de la velocidad, las bombas mecánicas afectan a las tuberías conectadas hasta 16 bloques de distancia", + "create.ponder.mechanical_pump_speed.text_2": "Acelerar la rotación de entrada cambia la velocidad de propagación del flujo...", + "create.ponder.mechanical_pump_speed.text_3": "...así como la rapidez con la que se transfieren los fluidos", + "create.ponder.mechanical_pump_speed.text_4": "Las bombas pueden combinar sus rendimientos en redes de tuberías compartidas", + "create.ponder.mechanical_pump_speed.text_5": "Alternar su orientación puede ayudar a alinear sus direcciones de flujo", + + "create.ponder.mechanical_saw_breaker.header": "Cortar árboles con la sierra mecánica", + "create.ponder.mechanical_saw_breaker.text_1": "Cuando se le da una fuerza rotacional, la sierra mecánica cortará los árboles que estén directamente frente a ella", + "create.ponder.mechanical_saw_breaker.text_2": "Para poder cortar el árbol por completo, la sierra tiene que romper el último bloque que lo une al suelo", + + "create.ponder.mechanical_saw_contraption.header": "Utilizar sierras mecánicas en artilugios", + "create.ponder.mechanical_saw_contraption.text_1": "Cuando las sierras mecánicas se mueven como parte de un artilugio animado...", + "create.ponder.mechanical_saw_contraption.text_2": "...cortarán cualquier árbol con el que el artilugio se tope", + + "create.ponder.mechanical_saw_processing.header": "Procesar objetos en la sierra mecánica", + "create.ponder.mechanical_saw_processing.text_1": "Las sierras mecánicas orientadas hacia arriba pueden procesar una variedad de objetos", + "create.ponder.mechanical_saw_processing.text_2": "El objeto procesado siempre se mueve en contra de la fuerza rotacional de la sierra", + "create.ponder.mechanical_saw_processing.text_3": "Las sierras mecánicas pueden trabajar en línea con las correas mecánicas", + "create.ponder.mechanical_saw_processing.text_4": "Cuando un ingrediente tiene varios resultados posibles, la ranura para filtros puede especificarlo", + "create.ponder.mechanical_saw_processing.text_5": "Sin filtro, al contrario, la sierra mecánica pasaría por todos los resultados", + + "create.ponder.millstone.header": "Procesar objetos en la piedra de molino", + "create.ponder.millstone.text_1": "Las piedras de molino procesan los objetos mediante la molienda", + "create.ponder.millstone.text_2": "Se pueden accionar lateralmente mediante engranajes...", + "create.ponder.millstone.text_3": "... y tirar o insertar objetos en la parte superior", + "create.ponder.millstone.text_4": "Después de un tiempo, el resultado se puede obtener usando el clic derecho del ratón", + "create.ponder.millstone.text_5": "Las salidas también pueden extraerse mediante la automatización", + + "create.ponder.nixie_tube.header": "Usar los tubos Nixie", + "create.ponder.nixie_tube.text_1": "Cuando son alimentados con redstone, los tubos nixie mostrarán la fuerza de las señales de redstone", + "create.ponder.nixie_tube.text_2": "Con las etiquetas editadas en un yunque, pueden mostar un texto personalizado", + "create.ponder.nixie_tube.text_3": "Haga clic derecho con un tinte para cambiar su color de visualización", + + "create.ponder.piston_pole.header": "Pértigas de extensión de pistones", + "create.ponder.piston_pole.text_1": "Sin las pértigas de extensión unidas, un pistón mecánico no puede moverse", + "create.ponder.piston_pole.text_2": "La longitud de la pértiga añadida en su parte posterior determina el rango de alcance", + + "create.ponder.portable_fluid_interface.header": "Interfaz de fluidos portátil", + "create.ponder.portable_fluid_interface.text_1": "No se puede acceder a los depósitos de fluidos de los artilugios en movimiento por ninguna tubería", + "create.ponder.portable_fluid_interface.text_2": "Este componente puede interactuar con los depósitos de fluidos sin necesidad de detener el artilugio", + "create.ponder.portable_fluid_interface.text_3": "Coloca una segunda con un espacio de 1 o 2 bloques entre ellas", + "create.ponder.portable_fluid_interface.text_4": "Cada vez que pasen por delante de la otra, entablarán una conexión", + "create.ponder.portable_fluid_interface.text_5": "Mientras esté activada, la interfaz estacionaria representará TODOS los tanques del artilugio", + "create.ponder.portable_fluid_interface.text_6": "Ahora se puede introducir el fluido...", + "create.ponder.portable_fluid_interface.text_7": "...o extraerlo del artilugio", + "create.ponder.portable_fluid_interface.text_8": "Cuando no se intercambien contenidos durante un tiempo, el artilugio seguirá su camino", + + "create.ponder.portable_storage_interface.header": "Interfaz de almacenamiento portátil", + "create.ponder.portable_storage_interface.text_1": "Los jugadores no pueden acceder a los inventarios de los artilugios en movimiento.", + "create.ponder.portable_storage_interface.text_2": "Este componente puede interactuar con el almacenamiento sin necesidad de detener el artilugio.", + "create.ponder.portable_storage_interface.text_3": "Coloca una segunda unidad con un espacio de 1 o 2 bloques entre ellas", + "create.ponder.portable_storage_interface.text_4": "Cada vez que pasen por delante del otro, entablarán una conexión", + "create.ponder.portable_storage_interface.text_5": "Mientras esté conectada, la interfaz fija representará TODOS los inventarios del artilugio", + "create.ponder.portable_storage_interface.text_6": "Ahora pueden insertarse objetos...", + "create.ponder.portable_storage_interface.text_7": "...o extraerse", + "create.ponder.portable_storage_interface.text_8": "Cuando no se hayan intercambiado objetos durante un tiempo, el artilugio seguirá su camino", + + "create.ponder.portable_storage_interface_redstone.header": "Interfaz de almacenamiento portátil controlada por redstone", + "create.ponder.portable_storage_interface_redstone.text_1": "La energía de redstone impedirá que las interfaces de almacenamiento portátil se conecten", + + "create.ponder.powered_latch.header": "Controlar señales mediante la palanca motorizada", + "create.ponder.powered_latch.text_1": "Las palancas motorizadas son palancas controlables por redstone", + "create.ponder.powered_latch.text_2": "Las señales en la parte trasera la encienden", + "create.ponder.powered_latch.text_3": "Las señales sobre un lateral la vuelven a apagar", + "create.ponder.powered_latch.text_4": "Las palancas motorizadas también se pueden accionar manualmente", + + "create.ponder.powered_toggle_latch.header": "Controlar señales mediante la palanca de cierre motorizada", + "create.ponder.powered_toggle_latch.text_1": "Las palancas de cierre motorizadas son palancas controlables por redstone", + "create.ponder.powered_toggle_latch.text_2": "Las señales en la parte trasera cambiarán su estado...", + "create.ponder.powered_toggle_latch.text_3": "...encender y apagar", + "create.ponder.powered_toggle_latch.text_4": "Las palancas de cierre motorizadas también se pueden accionar manualmente", + + "create.ponder.pulse_repeater.header": "Controlar señales mediante repetidores de pulsos", + "create.ponder.pulse_repeater.text_1": "Los repetidores de pulsos acortan cualquier señal de redstone a un solo pulso", + + "create.ponder.radial_chassis.header": "Fijar bloques mediante chasis radiales", + "create.ponder.radial_chassis.text_1": "Los chasis radiales se conectan a bloques de chasis idénticos en una fila", + "create.ponder.radial_chassis.text_2": "Cuando uno es movido por un artilugio, los otros son arrastrados con él", + "create.ponder.radial_chassis.text_3": "Las caras laterales de un chasis radial pueden hacerse adhesivas", + "create.ponder.radial_chassis.text_4": "Haga clic de nuevo para que todos los demás lados sean pegajosos", + "create.ponder.radial_chassis.text_5": "Mayús izdo + clic derecho con la mano vacía para eliminar el pegamento", + "create.ponder.radial_chassis.text_6": "Cada vez que un bloque está junto a una cara pegajosa...", + "create.ponder.radial_chassis.text_7": "...adjuntará todos los bloques alcanzables dentro de un radio en esa capa", + "create.ponder.radial_chassis.text_8": "Con una llave inglesa y usando la rueda de desplazamiento del ratón se puede especificar un radio preciso", + "create.ponder.radial_chassis.text_9": "Los bloques no alcanzables por ninguna cara adhesiva no se fijarán", + + "create.ponder.redstone_contact.header": "Contactos de redstone", + "create.ponder.redstone_contact.text_1": "Los contactos de redstone enfrentados emitirán una señal de redstone", + "create.ponder.redstone_contact.text_2": "Esto sigue siendo válido cuando uno de ellos forma parte de un artilugio en movimiento", + + "create.ponder.redstone_link.header": "Usar los enlaces de redstone", + "create.ponder.redstone_link.text_1": "Los enlaces de redstone pueden transmitir señales redstone de forma inalámbrica", + "create.ponder.redstone_link.text_2": "Mayús izdo + clic derecho para cambiar el modo de recepción", + "create.ponder.redstone_link.text_3": "Un simple clic derecho con una llave inglesa puede hacer lo mismo", + "create.ponder.redstone_link.text_4": "Los receptores emiten la potencia de redstone de los transmisores en 128 bloques", + "create.ponder.redstone_link.text_5": "Colocando objetos en las dos ranuras puede especificar una frecuencia", + "create.ponder.redstone_link.text_6": "Sólo se comunicarán los enlaces con frecuencias coincidentes", + + "create.ponder.rope_pulley.header": "Mover estructuras con poleas de cuerda", + "create.ponder.rope_pulley.text_1": "Las poleas de cuerda pueden mover los bloques verticalmente cuando se les aplica una fuerza rotacional", + "create.ponder.rope_pulley.text_2": "La dirección y la velocidad del movimiento dependen de la fuerza rotacional suministrada", + + "create.ponder.rope_pulley_attachment.header": "Mover poleas como parte de un artilugio", + "create.ponder.rope_pulley_attachment.text_1": "Siempre que las poleas de cuerda sean movidas por un artilugio...", + "create.ponder.rope_pulley_attachment.text_2": "...su estructura adjunta será arrastrada con ella", + "create.ponder.rope_pulley_attachment.text_3": "Tenga en cuenta que las poleas de cuerda sólo se mueven cuando están paradas", + + "create.ponder.rope_pulley_modes.header": "Modos de movimiento de la polea de cuerda", + "create.ponder.rope_pulley_modes.text_1": "Cuando las poleas de cuerda dejan de moverse, la estructura movida vuelve a los bloques", + "create.ponder.rope_pulley_modes.text_2": "Puede configurarse para que no vuelva nunca a los bloques sólidos, o sólo en la ubicación en la que comenzó", + + "create.ponder.rotation_speed_controller.header": "Usar el controlador de velocidad rotacional", + "create.ponder.rotation_speed_controller.text_1": "Los controladores de velocidad rotacional transmiten la rotación de su eje a un engranaje grande situado encima.", + "create.ponder.rotation_speed_controller.text_2": "Utilizando la rueda de desplazamiento del ratón, puede configurarse la velocidad rotacional", + + "create.ponder.sail.header": "Montar molinos de viento usando velas", + "create.ponder.sail.text_1": "Las velas son bloques muy útiles para crear molinos de viento", + "create.ponder.sail.text_2": "Se fijarán a los bloques y entre sí sin necesidad de pegamento o bloques de chasis", + "create.ponder.sail.text_3": "Clic derecho con un tinte para pintarlas", + "create.ponder.sail.text_4": "Clic derecho con una tijera para volver a convertirlas en marcos", + + "create.ponder.sail_frame.header": "Montar molinos de viento con marcos de vela", + "create.ponder.sail_frame.text_1": "Los marcos de vela son prácticos bloques para crear molinos de viento", + "create.ponder.sail_frame.text_2": "Se fijarán a los bloques y entre sí sin necesidad de pegamento o bloques de chasis", + + "create.ponder.sequenced_gearshift.header": "Controlar la velocidad de rotación mediante la caja de cambios secuenciales", + "create.ponder.sequenced_gearshift.text_1": "La caja de cambios secuencial retransmite la rotación siguiendo una lista cronometrada de instrucciones", + "create.ponder.sequenced_gearshift.text_2": "Haga clic con el botón derecho para abrir la interfaz de configuración", + "create.ponder.sequenced_gearshift.text_3": "Al recibir una señal de redstone, comenzará a ejecutar su secuencia configurada", + "create.ponder.sequenced_gearshift.text_4": "Una vez terminado, espera la siguiente señal de redstone y vuelve a empezar", + "create.ponder.sequenced_gearshift.text_5": "Se puede utilizar un comparador de redstone para leer el progreso actual", + + "create.ponder.shaft.header": "Transmitir fuerza rotacional mediante ejes", + "create.ponder.shaft.text_1": "Los ejes transmiten la rotación en línea recta.", + + "create.ponder.shaft_casing.header": "Ejes revestidos", + "create.ponder.shaft_casing.text_1": "Puedes utilizar el revestidor de latón o de andesita para decorar tus ejes", + + "create.ponder.smart_chute.header": "Filtrar objetos mediante ductos inteligentes", + "create.ponder.smart_chute.text_1": "Los ductos inteligentes son ductos verticales con control adicional", + "create.ponder.smart_chute.text_2": "Los objetos en la ranura para filtros especifican lo que pueden extraer y transferir exactamente", + "create.ponder.smart_chute.text_3": "Usa la rueda del ratón para especificar el tamaño de la pila extraída", + "create.ponder.smart_chute.text_4": "La energía de redstone impedirá que funcionen.", + + "create.ponder.smart_pipe.header": "Controlar el flujo de fluidos mediante tuberías inteligentes", + "create.ponder.smart_pipe.text_1": "Las tuberías inteligentes pueden ayudar a controlar los flujos por tipo de fluido", + "create.ponder.smart_pipe.text_2": "Cuando se colocan directamente en la fuente, pueden especificar el tipo de fluido a extraer", + "create.ponder.smart_pipe.text_3": "Simplemente haga clic derecho en su ranura de filtro con cualquier elemento que contenga el fluido deseado", + "create.ponder.smart_pipe.text_4": "Cuando se colocan debajo de una red de tuberías, las tuberías inteligentes sólo dejan que los fluidos coincidentes continúen", + + "create.ponder.speedometer.header": "Controlar la información cinética mediante el velocímetro", + "create.ponder.speedometer.text_1": "El velocímetro muestra la velocidad actual de los componentes conectados", + "create.ponder.speedometer.text_2": "Cuando se usan las gafas del constructor, el jugador puede obtener información más detallada del medidor", + "create.ponder.speedometer.text_3": "Los comparadores pueden emitir señales analógicas de redstone en relación con las mediciones del velocímetro", + + "create.ponder.spout_filling.header": "Llenar objetos con un surtidor", + "create.ponder.spout_filling.text_1": "El surtidor puede llenar los elementos de retención de fluidos que se encuentran debajo de él", + "create.ponder.spout_filling.text_2": "No se puede acceder manualmente al contenido de un surtidor", + "create.ponder.spout_filling.text_3": "En su lugar, se pueden utilizar tuberías para suministrarle fluidos", + "create.ponder.spout_filling.text_4": "Los objetos de entrada pueden colocarse en un depósito bajo el surtidor", + "create.ponder.spout_filling.text_5": "Cuando los artículos se proporcionan en una cinta...", + "create.ponder.spout_filling.text_6": "El surtidor los retendrá y procesará automáticamente", + + "create.ponder.stabilized_bearings.header": "Estabilizar artilugios", + "create.ponder.stabilized_bearings.text_1": "Siempre que los rodamientos mecánicos formen parte de una estructura móvil...", + "create.ponder.stabilized_bearings.text_2": "...intentarán mantenerse derechos", + "create.ponder.stabilized_bearings.text_3": "Una vez más, el rodamiento se unirá al bloque de enfrente", + "create.ponder.stabilized_bearings.text_4": "Como resultado, todo el sub-artilugio se mantendrá en posición vertical", + + "create.ponder.sticker.header": "Fijar bloques con stickers", + "create.ponder.sticker.text_1": "Los stickers son ideales para la fijación de bloques controlados por redstone", + "create.ponder.sticker.text_2": "Al recibir una señal, cambiarán su estado", + "create.ponder.sticker.text_3": "Si ahora se mueve en un artilugio, el bloque se moverá con él", + "create.ponder.sticker.text_4": "Si se vuelve a activar, el bloque dejará de estar fijado", + + "create.ponder.stressometer.header": "Supervisar la información cinética con el estresómetro", + "create.ponder.stressometer.text_1": "El estresómetro muestra la capacidad de estrés actual de la red cinética conectada", + "create.ponder.stressometer.text_2": "Cuando se usan las gafas del constructor, el jugador puede obtener información más detallada del medidor", + "create.ponder.stressometer.text_3": "Los comparadores pueden emitir señales analógicas de redstone en relación con las mediciones del estresómetro", + + "create.ponder.super_glue.header": "Fijar bloques con pegamento", + "create.ponder.super_glue.text_1": "Se puede utilizar pegamento entre dos bloques cualquiera", + "create.ponder.super_glue.text_2": "Los bloques fijados se moverán juntos cuando se ensamblen en un artilugio", + "create.ponder.super_glue.text_3": "Cada vez que el pegamento es sostenido en la mano...", + "create.ponder.super_glue.text_4": "...los bloques añadidos se pegarán a la cara en la que fueron colocados automáticamente", + "create.ponder.super_glue.text_5": "El pegamento se puede quitar con un clic izquierdo", + + "create.ponder.valve_handle.header": "Generar fuerza rotacional mediante asas de válvula", + "create.ponder.valve_handle.text_1": "Los jugadores pueden utilizar las asas de válvulas para aplicar fuerza rotacional manualmente", + "create.ponder.valve_handle.text_2": "Mantén pulsado el clic derecho para rotar en sentido contrario a las agujas del reloj", + "create.ponder.valve_handle.text_3": "Su velocidad de transmisión es lenta y precisa", + "create.ponder.valve_handle.text_4": "Mayús izdo + clic derecho para rotar en el sentido de las agujas del reloj", + "create.ponder.valve_handle.text_5": "Las asas de las válvulas pueden teñirse con fines estéticos", + + "create.ponder.valve_pipe.header": "Controlar el flujo de fluidos mediante válvulas", + "create.ponder.valve_pipe.text_1": "Las tuberías con válvulas ayudan a controlar los fluidos que se propagan por las redes de tuberías", + "create.ponder.valve_pipe.text_2": "Su entrada en el eje controla si el fluido puede pasar por", + "create.ponder.valve_pipe.text_3": "Dada la fuerza de rotación en la dirección de apertura, la válvula se abrirá", + "create.ponder.valve_pipe.text_4": "Se puede volver a cerrar invirtiendo el giro de entrada", + + "create.ponder.water_wheel.header": "Generar fuerza rotacional mediante ruedas hidráulicas", + "create.ponder.water_wheel.text_1": "Las ruedas hidráulicas extraen la fuerza de las corrientes de agua adyacentes", + "create.ponder.water_wheel.text_2": "Cuantas más caras se alimenten, más rápido girará", + "create.ponder.water_wheel.text_3": "Las paletas de las ruedas deben estar orientadas en contra del flujo", + "create.ponder.water_wheel.text_4": "Orientadas hacia el lado contrario, no serán tan eficaces", + + "create.ponder.weighted_ejector.header": "Usar eyectores de peso", + "create.ponder.weighted_ejector.text_1": "Mayús izdo + clic derecho sosteniendo un eyector de peso para seleccionar la ubicación de destino", + "create.ponder.weighted_ejector.text_10": "Ahora estára limitado a este tamaño de pila, y sólo se activara cuando su pila retenida alcance esta cantidad", + "create.ponder.weighted_ejector.text_11": "Otras entidades activarán el eyector al pisarlos", + "create.ponder.weighted_ejector.text_2": "El eyector colocado lanzará ahora los objetos al lugar marcado", + "create.ponder.weighted_ejector.text_3": "Un objetivo válido puede estar a cualquier altura o distancia dentro del alcance", + "create.ponder.weighted_ejector.text_4": "Sin embargo, no pueden estar a un costado", + "create.ponder.weighted_ejector.text_5": "Si no se ha seleccionado ningún objetivo válido, simplemente se dirigirá al bloque que se encuentra justo delante", + "create.ponder.weighted_ejector.text_6": "Suministrale fuerza rotacional para cargarlo", + "create.ponder.weighted_ejector.text_7": "Los objetos colocados en el eyector hacen que se dispare", + "create.ponder.weighted_ejector.text_8": "Si se dirigen a un inventario, el eyector esperará hasta que haya espacio", + "create.ponder.weighted_ejector.text_9": "Con la llave inglesa se puede configurar el tamaño de pila requerido", + + "create.ponder.weighted_ejector_redstone.header": "Controlar los eyectores de peso con redstone", + "create.ponder.weighted_ejector_redstone.text_1": "Cuando se alimentan con redstone, los eyectores no se activan", + "create.ponder.weighted_ejector_redstone.text_2": "Además, los observadores de contenido pueden detectar cuando los eyectores se activan", + + "create.ponder.weighted_ejector_tunnel.header": "Dividir pilas de objetos mediante eyectores de peso", + "create.ponder.weighted_ejector_tunnel.text_1": "En combinación con los túneles de latón, los eyectores de peso pueden dividir las pilas de objetos en cantidades específicas", + "create.ponder.weighted_ejector_tunnel.text_2": "En primer lugar, configure el túnel de latón en 'Preferir lo más cercano', para dar prioridad a su salida lateral", + "create.ponder.weighted_ejector_tunnel.text_3": "El tamaño de la pila fijado en el eyector determina ahora la cantidad que se va a dividir", + "create.ponder.weighted_ejector_tunnel.text_4": "Mientras una nueva pila del tamaño configurado se expulse por la salida lateral...", + "create.ponder.weighted_ejector_tunnel.text_5": "...el resto seguirá su camino", + + "create.ponder.windmill_source.header": "Generar fuerza rotacional mediante rodamientos del molino de viento", + "create.ponder.windmill_source.text_1": "Los rodamientos del molino de viento se fijan al bloque que tienen delante", + "create.ponder.windmill_source.text_2": "Si se unen suficientes bloques tipo vela al bloque, éste puede actuar como un molino de viento", + "create.ponder.windmill_source.text_3": "Activado con un clic derecho, el rodamiento del molino de viento comenzará a proporcionar fuerza rotacional", + "create.ponder.windmill_source.text_4": "La cantidad de bloques de vela determina su velocidad de rotación", + "create.ponder.windmill_source.text_5": "Utiliza una llave inglesa para configurar su sentido de rotación", + "create.ponder.windmill_source.text_6": "Haga clic derecho sobre el rodamiento del molino en cualquier momento para detener y editar la estructura de nuevo", + + "create.ponder.windmill_structure.header": "Artilugios para molinos de viento", + "create.ponder.windmill_structure.text_1": "Cualquier estructura puede contar como un molino de viento válido, siempre que contenga al menos 8 bloques tipo vela.", + + "_": "Thank you for translating Create!" + +} diff --git a/src/main/resources/assets/create/lang/es_ve.json b/src/main/resources/assets/create/lang/es_ve.json new file mode 100644 index 000000000..d20b0eb8b --- /dev/null +++ b/src/main/resources/assets/create/lang/es_ve.json @@ -0,0 +1,2305 @@ +{ + + "_": "->------------------------] Game Elements [------------------------<-", + + "block.create.acacia_window": "Ventana de acacia", + "block.create.acacia_window_pane": "Panel de ventana de acacia", + "block.create.adjustable_chain_gearshift": "Cadena de transmisión ajustable", + "block.create.adjustable_crate": "Caja ajustable", + "block.create.adjustable_pulse_repeater": "Repetidor de pulso ajustable", + "block.create.adjustable_repeater": "Repetidor ajustable", + "block.create.analog_lever": "Palanca analógica", + "block.create.andesite_belt_funnel": "Embudo de cinta de andesita", + "block.create.andesite_bricks": "Ladrillos de andesita", + "block.create.andesite_bricks_slab": "Losa de ladrillos de andesita", + "block.create.andesite_bricks_stairs": "Escaleras de ladrillos de andesita", + "block.create.andesite_bricks_wall": "Muro de ladrillos de andesita", + "block.create.andesite_casing": "Revestidor de andesita", + "block.create.andesite_cobblestone": "Adoquín de andesita", + "block.create.andesite_cobblestone_slab": "Losa de adoquín de andesita", + "block.create.andesite_cobblestone_stairs": "Escaleras de adoquines de andesita", + "block.create.andesite_cobblestone_wall": "Muro de adoquines de andesita", + "block.create.andesite_encased_shaft": "Eje revestido de andesita", + "block.create.andesite_funnel": "Embudo de andesita", + "block.create.andesite_pillar": "Poste de andesita", + "block.create.andesite_tunnel": "Túnel de Andesita", + "block.create.basin": "Cuenca", + "block.create.belt": "Cinta", + "block.create.birch_window": "Ventana de abedul", + "block.create.birch_window_pane": "Panel de ventana de abedul", + "block.create.black_nixie_tube": "Tubo Nixie negro", + "block.create.black_sail": "Vela negra", + "block.create.black_seat": "Asiento negro", + "block.create.black_valve_handle": "Asa de válvula negra", + "block.create.blaze_burner": "Quemador de Blaze", + "block.create.blue_nixie_tube": "Tubo Nixie azul", + "block.create.blue_sail": "Vela azul", + "block.create.blue_seat": "Asiento azul", + "block.create.blue_valve_handle": "Asa de válvula azul", + "block.create.brass_belt_funnel": "Embudo de cinta de latón", + "block.create.brass_block": "Bloque de latón", + "block.create.brass_casing": "Revestidor de latón", + "block.create.brass_encased_shaft": "Eje revestido de latón", + "block.create.brass_funnel": "Embudo de latón", + "block.create.brass_tunnel": "Túnel de latón", + "block.create.brown_nixie_tube": "Tubo Nixie marrón", + "block.create.brown_sail": "Vela marrón", + "block.create.brown_seat": "Asiento marrón", + "block.create.brown_valve_handle": "Asa de válvula marrón", + "block.create.cart_assembler": "Ensamblador de vagonetas", + "block.create.chiseled_dark_scoria": "Escoria oscura cincelada", + "block.create.chiseled_dolomite": "Dolomita cincelada", + "block.create.chiseled_gabbro": "Gabro cincelado", + "block.create.chiseled_limestone": "Caliza cincelada", + "block.create.chiseled_scoria": "Escoria cincelada", + "block.create.chiseled_weathered_limestone": "Piedra caliza erosionada cincelada", + "block.create.chocolate": "Chocolate", + "block.create.chute": "Ducto", + "block.create.clockwork_bearing": "Rodamiento tipo reloj", + "block.create.clutch": "Embrague", + "block.create.cogwheel": "Engranaje pequeño", + "block.create.content_observer": "Observador de contenidos", + "block.create.controller_rail": "Raíl de control", + "block.create.copper_backtank": "Depósito trasero de cobre", + "block.create.copper_block": "Bloque de cobre", + "block.create.copper_casing": "Revestidor de caliza", + "block.create.copper_ore": "Mena de cobre", + "block.create.copper_shingles": "Bloque de tejas de cobre", + "block.create.copper_tiles": "Bloque de baldosas de cobre", + "block.create.copper_valve_handle": "Asa de válvula de cobre", + "block.create.creative_crate": "Caja creativa", + "block.create.creative_fluid_tank": "Tanque de fluidos creativo", + "block.create.creative_motor": "Motor creativo", + "block.create.crimson_window": "Ventana carmesí", + "block.create.crimson_window_pane": "Panel de ventana carmesí", + "block.create.crushing_wheel": "Rueda trituradora", + "block.create.crushing_wheel_controller": "Controlador de Rueda trituradora", + "block.create.cuckoo_clock": "Reloj de cuco", + "block.create.cyan_nixie_tube": "Tubo Nixie cian", + "block.create.cyan_sail": "Vela cian", + "block.create.cyan_seat": "Asiento cian", + "block.create.cyan_valve_handle": "Asa de válvula cian", + "block.create.dark_oak_window": "Ventana de roble oscuro", + "block.create.dark_oak_window_pane": "Panel de ventana de roble oscuro", + "block.create.dark_scoria": "Escoria oscura", + "block.create.dark_scoria_bricks": "Ladrillos de escoria oscura", + "block.create.dark_scoria_bricks_slab": "Losa de ladrillos de escoria oscura", + "block.create.dark_scoria_bricks_stairs": "Escaleras de ladrillos de escoria oscura", + "block.create.dark_scoria_bricks_wall": "Muro de ladrillos de escoria oscura", + "block.create.dark_scoria_cobblestone": "Adoquines de escoria oscura", + "block.create.dark_scoria_cobblestone_slab": "Losa de adoquines de escoria oscura", + "block.create.dark_scoria_cobblestone_stairs": "Escaleras de adoquines de escoria oscura", + "block.create.dark_scoria_cobblestone_wall": "Muro de adoquines de escoria oscura", + "block.create.dark_scoria_pillar": "Pilar de escoria oscura", + "block.create.deployer": "Desplegador", + "block.create.depot": "Depósito", + "block.create.diorite_bricks": "Ladrillos de diorita", + "block.create.diorite_bricks_slab": "Losa de ladrillos de diorita", + "block.create.diorite_bricks_stairs": "Escaleras de ladrillos de diorita", + "block.create.diorite_bricks_wall": "Muro de ladrillos de diorita", + "block.create.diorite_cobblestone": "Adoquín de diorita", + "block.create.diorite_cobblestone_slab": "Losa de adoquínes de diorita", + "block.create.diorite_cobblestone_stairs": "Escaleras de adoquines de diorita", + "block.create.diorite_cobblestone_wall": "Muro de adoquines de diorita", + "block.create.diorite_pillar": "Pilar de diorita", + "block.create.dolomite": "Dolomita", + "block.create.dolomite_bricks": "Ladrillos de dolomita", + "block.create.dolomite_bricks_slab": "Losa de ladrillos de dolomita", + "block.create.dolomite_bricks_stairs": "Escaleras de ladrillos de dolomita", + "block.create.dolomite_bricks_wall": "Muro de ladrillos de dolomita", + "block.create.dolomite_cobblestone": "Adoquín de dolomita", + "block.create.dolomite_cobblestone_slab": "Losa de adoquín de dolomita", + "block.create.dolomite_cobblestone_stairs": "Escaleras de adoquines de dolomita", + "block.create.dolomite_cobblestone_wall": "Muro de adoquines de dolomita", + "block.create.dolomite_pillar": "Pilar de dolomita", + "block.create.encased_chain_drive": "Cadena de transmisión revestida", + "block.create.encased_fan": "Ventilador revestido", + "block.create.encased_fluid_pipe": "Tubería de fluidos de cobre reforzada", + "block.create.fancy_andesite_bricks": "Ladrillos de andesita elegantes", + "block.create.fancy_andesite_bricks_slab": "Ladrillos de andesita elegantes", + "block.create.fancy_andesite_bricks_stairs": "Escaleras de ladrillos de andesita elegantes", + "block.create.fancy_andesite_bricks_wall": "Muro de ladrillos de andesita elegantes", + "block.create.fancy_dark_scoria_bricks": "Ladrillos de escoria oscura elegantes", + "block.create.fancy_dark_scoria_bricks_slab": "Losa de ladrillos de escoria oscura elegantes", + "block.create.fancy_dark_scoria_bricks_stairs": "Escalera de ladrillos de escoria oscura elegantes", + "block.create.fancy_dark_scoria_bricks_wall": "Muro de ladrillos de escoria oscura elegantes", + "block.create.fancy_diorite_bricks": "Ladrillos de diorita elegantes", + "block.create.fancy_diorite_bricks_slab": "Losa de ladrillos de diorita elegantes", + "block.create.fancy_diorite_bricks_stairs": "Escaleras de ladrillos de diorita elegantes", + "block.create.fancy_diorite_bricks_wall": "Muro de ladrillos de diorita elegantes", + "block.create.fancy_dolomite_bricks": "Ladrillos de dolomita elegantes", + "block.create.fancy_dolomite_bricks_slab": "Losa de ladrillos de dolomita elegantes", + "block.create.fancy_dolomite_bricks_stairs": "Escaleras de ladrillos de dolomita elegantes", + "block.create.fancy_dolomite_bricks_wall": "Muro de ladrillos de dolomita elegantes", + "block.create.fancy_gabbro_bricks": "Ladrillos de gabro elegantes", + "block.create.fancy_gabbro_bricks_slab": "Losa de ladrillos de gabro elegantes", + "block.create.fancy_gabbro_bricks_stairs": "Escaleras de ladrillos de gabro elegantes", + "block.create.fancy_gabbro_bricks_wall": "Muro de ladrillos de gabro elegantes", + "block.create.fancy_granite_bricks": "Ladrillos de granito elegantes", + "block.create.fancy_granite_bricks_slab": "Losa de ladrillos de granito elegantes", + "block.create.fancy_granite_bricks_stairs": "Escaleras de ladrillos de granito elegantes", + "block.create.fancy_granite_bricks_wall": "Muro de ladrillos de granito elegantes", + "block.create.fancy_limestone_bricks": "Ladrillos de piedra caliza elegantes", + "block.create.fancy_limestone_bricks_slab": "Losa de ladrillos de piedra caliza elegantes", + "block.create.fancy_limestone_bricks_stairs": "Escaleras de ladrillos de piedra caliza elegantes", + "block.create.fancy_limestone_bricks_wall": "Muro de ladrillos de piedra caliza elegantes", + "block.create.fancy_scoria_bricks": "Ladrillos de escoria elegantes", + "block.create.fancy_scoria_bricks_slab": "Losa de ladrillos de escoria elegantes", + "block.create.fancy_scoria_bricks_stairs": "Escaleras de ladrillos de escoria elegantes", + "block.create.fancy_scoria_bricks_wall": "Muro de ladrillos de escoria elegantes", + "block.create.fancy_weathered_limestone_bricks": "Ladrillos de piedra de caliza erosionada elegantes", + "block.create.fancy_weathered_limestone_bricks_slab": "Losa de ladrillos de caliza erosionada elegantes", + "block.create.fancy_weathered_limestone_bricks_stairs": "Escaleras de ladrillos de caliza erosionada elegantes", + "block.create.fancy_weathered_limestone_bricks_wall": "Muro de ladrillos de caliza erosionada elegantes", + "block.create.fluid_pipe": "Tubería de fluidos de cobre", + "block.create.fluid_tank": "Depósito de fluidos", + "block.create.fluid_valve": "Válvula de fluidos", + "block.create.flywheel": "Rueda de inercia", + "block.create.framed_glass": "Cristal enmarcado", + "block.create.framed_glass_pane": "Panel de cristal enmarcado", + "block.create.furnace_engine": "Motor de horno", + "block.create.gabbro": "Gabro", + "block.create.gabbro_bricks": "Ladrillos de gabro", + "block.create.gabbro_bricks_slab": "Losa de ladrillos de gabro", + "block.create.gabbro_bricks_stairs": "Escaleras de ladrillos de gabro", + "block.create.gabbro_bricks_wall": "Muro de ladrillos de gabro", + "block.create.gabbro_cobblestone": "Adoquín de gabro", + "block.create.gabbro_cobblestone_slab": "Losa de adoquínes de gabro", + "block.create.gabbro_cobblestone_stairs": "Escaleras de adoquínes de gabro", + "block.create.gabbro_cobblestone_wall": "Muro de adoquínes de gabro", + "block.create.gabbro_pillar": "Pilar de gabro", + "block.create.gantry_carriage": "Carro de grúa", + "block.create.gantry_shaft": "Eje de grúa", + "block.create.gearbox": "Caja de transmisión", + "block.create.gearshift": "Caja de cambios", + "block.create.glass_fluid_pipe": "Tubería de fluidos de cristal", + "block.create.granite_bricks": "Ladrillos de granito", + "block.create.granite_bricks_slab": "Losa de ladrillos de granito", + "block.create.granite_bricks_stairs": "Escaleras de ladrillos de granito", + "block.create.granite_bricks_wall": "Muro de ladrillos de granito", + "block.create.granite_cobblestone": "Adoquín de granito", + "block.create.granite_cobblestone_slab": "Losa de adoquínes de granito", + "block.create.granite_cobblestone_stairs": "Escaleras de adoquínes de granito", + "block.create.granite_cobblestone_wall": "Muro de adoquínes de granito", + "block.create.granite_pillar": "Pilar de granito", + "block.create.gray_nixie_tube": "Tubo Nixie gris", + "block.create.gray_sail": "Vela gris", + "block.create.gray_seat": "Asiento gris", + "block.create.gray_valve_handle": "Asa de válvula gris", + "block.create.green_nixie_tube": "Tubo Nixie verde", + "block.create.green_sail": "Vela verde", + "block.create.green_seat": "Asiento verde", + "block.create.green_valve_handle": "Asa de válvula verde", + "block.create.hand_crank": "Manivela", + "block.create.haunted_bell": "Campana encantada", + "block.create.honey": "Miel", + "block.create.horizontal_framed_glass": "Cristal con marco horizontal", + "block.create.horizontal_framed_glass_pane": "Panel de cristal con marco horizontal", + "block.create.hose_pulley": "Polea de manguera", + "block.create.item_drain": "Drenador de objetos", + "block.create.jungle_window": "Ventana de jungla", + "block.create.jungle_window_pane": "Panel de ventana de jungla", + "block.create.large_cogwheel": "Engranaje grande", + "block.create.layered_andesite": "Andesita estratificada", + "block.create.layered_dark_scoria": "Escoria oscura estratificada", + "block.create.layered_diorite": "Diorita estratificada", + "block.create.layered_dolomite": "Dolomita estratificada", + "block.create.layered_gabbro": "Gabro estratificado", + "block.create.layered_granite": "Granito estratificado", + "block.create.layered_limestone": "Piedra caliza estratificada", + "block.create.layered_scoria": "Escoria estratificada", + "block.create.layered_weathered_limestone": "Caliza erosionada estratificada", + "block.create.lectern_controller": "Controlador de atril", + "block.create.light_blue_nixie_tube": "Tubo Nixie azul claro", + "block.create.light_blue_sail": "Vela azul claro", + "block.create.light_blue_seat": "Asiento azul claro", + "block.create.light_blue_valve_handle": "Asa de válvula azul claro", + "block.create.light_gray_nixie_tube": "Tubo Nixie gris claro", + "block.create.light_gray_sail": "Vela gris claro", + "block.create.light_gray_seat": "Asiento gris claro", + "block.create.light_gray_valve_handle": "Asa de válvula gris claro", + "block.create.lime_nixie_tube": "Tubo Nixie lima", + "block.create.lime_sail": "Vela lima", + "block.create.lime_seat": "Asiento lima", + "block.create.lime_valve_handle": "Asa de válvula lima", + "block.create.limesand": "Arena caliza", + "block.create.limestone": "Piedra caliza", + "block.create.limestone_bricks": "Ladrillos de piedra caliza", + "block.create.limestone_bricks_slab": "Losa de ladrillos de piedra caliza", + "block.create.limestone_bricks_stairs": "Escaleras de ladrillos de piedra caliza", + "block.create.limestone_bricks_wall": "Muro de ladrillos de piedra caliza", + "block.create.limestone_cobblestone": "Adoquínes de piedra caliza", + "block.create.limestone_cobblestone_slab": "Losa de adoquines de piedra caliza", + "block.create.limestone_cobblestone_stairs": "Escaleras de adoquines de piedra caliza", + "block.create.limestone_cobblestone_wall": "Muro de adoquines de piedra caliza", + "block.create.limestone_pillar": "Pilar de piedra caliza", + "block.create.linear_chassis": "Chasis lineal", + "block.create.lit_blaze_burner": "Quemador de Blaze encendido", + "block.create.magenta_nixie_tube": "Tubo Nixie magenta", + "block.create.magenta_sail": "Vela magenta", + "block.create.magenta_seat": "Asiento magenta", + "block.create.magenta_valve_handle": "Asa de válvula magenta", + "block.create.mechanical_arm": "Brazo mecánico", + "block.create.mechanical_bearing": "Rodamiento mecánico", + "block.create.mechanical_crafter": "Ensamblador mecánico", + "block.create.mechanical_drill": "Taladro mecánico", + "block.create.mechanical_harvester": "Cosechadora mecánica", + "block.create.mechanical_mixer": "Mezcladora mecánica", + "block.create.mechanical_piston": "Pistón mecánico", + "block.create.mechanical_piston_head": "Cabezal de pistón mecánico", + "block.create.mechanical_plough": "Arado mecánico", + "block.create.mechanical_press": "Prensa mecánica", + "block.create.mechanical_pump": "Bomba mecánica", + "block.create.mechanical_saw": "Sierra mecánica", + "block.create.metal_bracket": "Soporte de metal para ejes", + "block.create.millstone": "Piedra de molino", + "block.create.minecart_anchor": "Ancla de vagonetas", + "block.create.mossy_andesite": "Andesita musgosa", + "block.create.mossy_dark_scoria": "Escoria oscura musgosa", + "block.create.mossy_diorite": "Diorita musgosa", + "block.create.mossy_dolomite": "Dolomita musgosa", + "block.create.mossy_gabbro": "Gabro musgoso", + "block.create.mossy_granite": "Granito musgoso", + "block.create.mossy_limestone": "Caliza musgosa", + "block.create.mossy_scoria": "Escoria musgosa", + "block.create.mossy_weathered_limestone": "Caliza erosionada musgosa", + "block.create.mysterious_cuckoo_clock": "Reloj de cuco", + "block.create.natural_scoria": "Escoria natural", + "block.create.nixie_tube": "Tubo Nixie", + "block.create.nozzle": "Boquilla", + "block.create.oak_window": "Ventana de roble", + "block.create.oak_window_pane": "Panel de ventana de roble", + "block.create.orange_sail": "Vela naranja", + "block.create.orange_seat": "Asiento naranja", + "block.create.orange_valve_handle": "Asa de válvula naranja", + "block.create.ornate_iron_window": "Ventana de hierro ornamentada", + "block.create.ornate_iron_window_pane": "Panel de ventana de hierro ornamentada", + "block.create.overgrown_andesite": "Andesita sobredimensionada", + "block.create.overgrown_dark_scoria": "Escoria oscura sobredimensionada", + "block.create.overgrown_diorite": "Diorita sobredimensionada", + "block.create.overgrown_dolomite": "Dolomita sobredimensionada", + "block.create.overgrown_gabbro": "Gabro sobredimensionado", + "block.create.overgrown_granite": "Granito sobredimensionado", + "block.create.overgrown_limestone": "Caliza sobredimensionada", + "block.create.overgrown_scoria": "Escoria sobredimensionada", + "block.create.overgrown_weathered_limestone": "Caliza erosionada sobredimensionada", + "block.create.paved_andesite": "Andesita pavimentada", + "block.create.paved_andesite_slab": "Losa de andesita pavimentada", + "block.create.paved_andesite_stairs": "Escaleras de andesita pavimentada", + "block.create.paved_andesite_wall": "Muro de andesita pavimentada", + "block.create.paved_dark_scoria": "Escoria oscura pavimentada", + "block.create.paved_dark_scoria_slab": "Losa de escoria oscura pavimentada", + "block.create.paved_dark_scoria_stairs": "Escaleras de escoria oscura pavimentada", + "block.create.paved_dark_scoria_wall": "Muro de escoria oscura pavimentad", + "block.create.paved_diorite": "Diorita pavimentada", + "block.create.paved_diorite_slab": "Losa de diorita pavimentada", + "block.create.paved_diorite_stairs": "Escaleras de diorita pavimentada", + "block.create.paved_diorite_wall": "Muro de diorita pavimentad", + "block.create.paved_dolomite": "Dolomita pavimentada", + "block.create.paved_dolomite_slab": "Losa de dolomita pavimentada", + "block.create.paved_dolomite_stairs": "Escaleras de dolomita pavimentada", + "block.create.paved_dolomite_wall": "Muro de dolomita pavimentada", + "block.create.paved_gabbro": "Gabro pavimentado", + "block.create.paved_gabbro_slab": "Losa de gabro pavimentado", + "block.create.paved_gabbro_stairs": "Escaleras de gabro pavimentado", + "block.create.paved_gabbro_wall": "Muro de gabro pavimentado", + "block.create.paved_granite": "Granito pavimentado", + "block.create.paved_granite_slab": "Losa de granito pavimentado", + "block.create.paved_granite_stairs": "Escaleras de granito pavimentado", + "block.create.paved_granite_wall": "Muro de granito pavimentado", + "block.create.paved_limestone": "Piedra caliza pavimentada", + "block.create.paved_limestone_slab": "Losa de piedra caliza pavimentada", + "block.create.paved_limestone_stairs": "Escaleras de piedra caliza pavimentada", + "block.create.paved_limestone_wall": "Muro de piedra caliza pavimentada", + "block.create.paved_scoria": "Escoria pavimentada", + "block.create.paved_scoria_slab": "Losa de escoria pavimentada", + "block.create.paved_scoria_stairs": "Escaleras de escoria pavimentada", + "block.create.paved_scoria_wall": "Muro de escoria pavimentada", + "block.create.paved_weathered_limestone": "Piedra caliza erosionada pavimentada", + "block.create.paved_weathered_limestone_slab": "Losa de piedra caliza erosionada pavimentada", + "block.create.paved_weathered_limestone_stairs": "Escaleras de piedra caliza erosionada pavimentada", + "block.create.paved_weathered_limestone_wall": "Muro de piedra caliza erosionada pavimentada", + "block.create.peculiar_bell": "Campana peculiar", + "block.create.pink_nixie_tube": "Tubo Nixie rosa", + "block.create.pink_sail": "Vela rosa", + "block.create.pink_seat": "Asiento rosa", + "block.create.pink_valve_handle": "Asa de válvula rosa", + "block.create.piston_extension_pole": "Pértiga de extensión de pistón", + "block.create.polished_dark_scoria": "Escoria oscura pulida", + "block.create.polished_dark_scoria_slab": "Losa de escoria oscura pulida", + "block.create.polished_dark_scoria_stairs": "Escaleras de escoria oscura pulida", + "block.create.polished_dark_scoria_wall": "Muro de escoria oscura pulida", + "block.create.polished_dolomite": "Dolomita pulida", + "block.create.polished_dolomite_slab": "Losa de dolomita pulida", + "block.create.polished_dolomite_stairs": "Escaleras de dolomita pulidas", + "block.create.polished_dolomite_wall": "Muro de dolomita pulida", + "block.create.polished_gabbro": "Gabro pulido", + "block.create.polished_gabbro_slab": "Losa de gabro pulido", + "block.create.polished_gabbro_stairs": "Escaleras de gabro pulido", + "block.create.polished_gabbro_wall": "Muro de gabro pulido", + "block.create.polished_limestone": "Piedra caliza pulida", + "block.create.polished_limestone_slab": "Losa de piedra caliza pulida", + "block.create.polished_limestone_stairs": "Escaleras de piedra caliza pulidas", + "block.create.polished_limestone_wall": "Muro de piedra caliza pulida", + "block.create.polished_scoria": "Escoria pulida", + "block.create.polished_scoria_slab": "Losa de escoria pulida", + "block.create.polished_scoria_stairs": "Escaleras de losa pulida", + "block.create.polished_scoria_wall": "Muro de escoria pulida", + "block.create.polished_weathered_limestone": "Piedra caliza erosionada pulida", + "block.create.polished_weathered_limestone_slab": "Losa de piedra caliza erosionada pulida", + "block.create.polished_weathered_limestone_stairs": "Escaleras de piedra caliza erosionada pulida", + "block.create.polished_weathered_limestone_wall": "Muro de piedra caliza erosionada pulida", + "block.create.portable_fluid_interface": "Interfaz de fluidos portátil", + "block.create.portable_storage_interface": "Interfaz de almacenamiento portátil", + "block.create.powered_latch": "Palanca motorizada", + "block.create.powered_toggle_latch": "Palanca de cierre motorizada", + "block.create.pulley_magnet": "Imán de la polea", + "block.create.pulse_repeater": "Repetidor de pulsos de redstone", + "block.create.purple_nixie_tube": "Tubo Nixie morado", + "block.create.purple_sail": "Vela morada", + "block.create.purple_seat": "Asiento morado", + "block.create.purple_valve_handle": "Asa de válvula morada", + "block.create.radial_chassis": "Chasis radial", + "block.create.red_nixie_tube": "Tubo Nixie rojo", + "block.create.red_sail": "Vela roja", + "block.create.red_seat": "Asiento rojo", + "block.create.red_valve_handle": "Asa de válvula roja", + "block.create.redstone_contact": "Contacto de redstone", + "block.create.redstone_link": "Enlace de redstone", + "block.create.refined_radiance_casing": "Revestidor radiante", + "block.create.reinforced_rail": "Raíl reforzado", + "block.create.rope": "Cuerda", + "block.create.rope_pulley": "Polea de cuerda", + "block.create.rotation_speed_controller": "Controlador de velocidad rotacional", + "block.create.sail_frame": "Marco de vela", + "block.create.schematic_table": "Tabla de esquemas", + "block.create.schematicannon": "Cañón de esquemas", + "block.create.scoria": "Escoria", + "block.create.scoria_bricks": "Ladrillos de escoria", + "block.create.scoria_bricks_slab": "Losa de ladrillos de escoria", + "block.create.scoria_bricks_stairs": "Escaleras de ladrillos de escoria", + "block.create.scoria_bricks_wall": "Muro de ladrillos de escoria", + "block.create.scoria_cobblestone": "Adoquín de escoria", + "block.create.scoria_cobblestone_slab": "Losa de adoquínes de escoria", + "block.create.scoria_cobblestone_stairs": "Escaleras de adoquines de escoria", + "block.create.scoria_cobblestone_wall": "Muro de adoquines de escoria", + "block.create.scoria_pillar": "Pilar de escoria", + "block.create.secondary_linear_chassis": "Chasis lineal secundario", + "block.create.sequenced_gearshift": "Caja de cambios secuencial", + "block.create.shadow_steel_casing": "Revestidor sombrío", + "block.create.shaft": "Eje", + "block.create.smart_chute": "Ducto inteligente", + "block.create.smart_fluid_pipe": "Tubería de fluidos inteligente", + "block.create.speedometer": "Velocímetro", + "block.create.spout": "Surtidor", + "block.create.spruce_window": "Ventana de abeto", + "block.create.spruce_window_pane": "Panel de ventana de abeto", + "block.create.sticker": "Sticker", + "block.create.sticky_mechanical_piston": "Pistón mecánico pegajoso", + "block.create.stockpile_switch": "Interruptor de acopio", + "block.create.stressometer": "Estresómetro", + "block.create.tiled_glass": "Vidrio esmaltado", + "block.create.tiled_glass_pane": "Panel de vidrio esmaltado", + "block.create.turntable": "Plataforma giratoria mecánica", + "block.create.vertical_framed_glass": "Vidrio esmaltado vertical", + "block.create.vertical_framed_glass_pane": "Panel de vidrio esmaltado vertical", + "block.create.warped_window": "Ventana distorsionada", + "block.create.warped_window_pane": "Panel de ventana distorsionada", + "block.create.water_wheel": "Rueda hidráulica mecánica", + "block.create.weathered_limestone": "Piedra caliza erosionada", + "block.create.weathered_limestone_bricks": "Ladrillos de piedra caliza erosionada", + "block.create.weathered_limestone_bricks_slab": "Losa de piedra caliza erosionada", + "block.create.weathered_limestone_bricks_stairs": "Escaleras de ladrillos de piedra caliza erosionada", + "block.create.weathered_limestone_bricks_wall": "Muro de ladrillos de piedra caliza erosionada", + "block.create.weathered_limestone_cobblestone": "Adoquín de piedra caliza erosionada", + "block.create.weathered_limestone_cobblestone_slab": "Losa de adoquín de piedra caliza erosionada", + "block.create.weathered_limestone_cobblestone_stairs": "Escaleras de adoquín de piedra caliza erosionada", + "block.create.weathered_limestone_cobblestone_wall": "Muro de adoquínes de piedra caliza erosionada", + "block.create.weathered_limestone_pillar": "Pilar de piedra caliza erosionada", + "block.create.weighted_ejector": "Eyector de peso", + "block.create.white_nixie_tube": "Tubo Nixie blanco", + "block.create.white_sail": "Vela blanca", + "block.create.white_seat": "Asiento blanco", + "block.create.white_valve_handle": "Asa de válvula blanco", + "block.create.windmill_bearing": "Rodamiento del molino de viento", + "block.create.wooden_bracket": "Soporte de madera para ejes", + "block.create.yellow_nixie_tube": "Tubo Nixie amarillo", + "block.create.yellow_sail": "Vela amarilla", + "block.create.yellow_seat": "Asiento amarillo", + "block.create.yellow_valve_handle": "Asa de válvula amarillo", + "block.create.zinc_block": "Bloque de zinc", + "block.create.zinc_ore": "Mena de zinc", + + "enchantment.create.capacity": "Capacidad", + "enchantment.create.potato_recovery": "Recuperación de patatas", + + "entity.create.contraption": "Artilugio", + "entity.create.crafting_blueprint": "Plano de elaboración", + "entity.create.gantry_contraption": "Artilugio de grúa", + "entity.create.potato_projectile": "Proyectil de patata", + "entity.create.seat": "Asiento", + "entity.create.stationary_contraption": "Artilugio estacionario", + "entity.create.super_glue": "Pegamento", + + "fluid.create.potion": "Poción", + "fluid.create.tea": "Té del Constructor", + + "item.create.andesite_alloy": "Aleación de andesita", + "item.create.attribute_filter": "Filtro de atributos", + "item.create.bar_of_chocolate": "Barra de chocolate", + "item.create.belt_connector": "Correa mecánica", + "item.create.blaze_cake": "Pastel de blaze", + "item.create.blaze_cake_base": "Base de pastel de blaze", + "item.create.brass_hand": "Mano de latón", + "item.create.brass_ingot": "Lingote de latón", + "item.create.brass_nugget": "Pepita de latón", + "item.create.brass_sheet": "Lámina de latón", + "item.create.builders_tea": "Té del Constructor", + "item.create.chest_minecart_contraption": "Artilugio de vagoneta con cofre", + "item.create.chocolate_bucket": "Cubo con chocolate", + "item.create.chocolate_glazed_berries": "Bayas glaseadas con chocolate", + "item.create.chromatic_compound": "Compuesto cromático", + "item.create.cinder_flour": "Harina del Nether", + "item.create.copper_backtank": "Depósito trasero de cobre", + "item.create.copper_ingot": "Lingote de cobre", + "item.create.copper_nugget": "Pepita de cobre", + "item.create.copper_sheet": "Lámina de cobre", + "item.create.crafter_slot_cover": "Tapa de ranura del ensamblador mecánico", + "item.create.crafting_blueprint": "Plano de elaboración", + "item.create.creative_blaze_cake": "´Pastel de blaze creativo", + "item.create.crushed_aluminum_ore": "Mineral de aluminio molido", + "item.create.crushed_brass": "Latón molido", + "item.create.crushed_copper_ore": "Mineral de cobre molido", + "item.create.crushed_gold_ore": "Mineral de oro molido", + "item.create.crushed_iron_ore": "Mineral de hierro molido", + "item.create.crushed_lead_ore": "Mineral de plomo molido", + "item.create.crushed_nickel_ore": "Mineral de níquel molido", + "item.create.crushed_osmium_ore": "Mineral de osmio molido", + "item.create.crushed_platinum_ore": "Mineral de platino molido", + "item.create.crushed_quicksilver_ore": "Mineral de mercurio molido", + "item.create.crushed_silver_ore": "Mineral de plata molido", + "item.create.crushed_tin_ore": "Mineral de estaño molido", + "item.create.crushed_uranium_ore": "Mineral de uranio molido", + "item.create.crushed_zinc_ore": "Mineral de zinc molido", + "item.create.diving_boots": "Botas de buceo", + "item.create.diving_helmet": "Casco de buceo", + "item.create.dough": "Masilla", + "item.create.electron_tube": "Tubo de electrones", + "item.create.empty_blaze_burner": "Quemador de blaze vacío", + "item.create.empty_schematic": "Esquema vacío", + "item.create.extendo_grip": "Agarre extendido", + "item.create.filter": "Filtro", + "item.create.furnace_minecart_contraption": "Artilugio de vagoneta de horno", + "item.create.goggles": "Gafas del constructor", + "item.create.golden_sheet": "Lámina de oro", + "item.create.handheld_worldshaper": "Worldshaper Creativo", + "item.create.honey_bucket": "Cubo con miel", + "item.create.honeyed_apple": "Manzana con miel", + "item.create.incomplete_cogwheel": "Engranaje pequeño incompleto", + "item.create.incomplete_large_cogwheel": "Engranaje grande incompleto", + "item.create.incomplete_precision_mechanism": "Mecanismo de precisión incompleto", + "item.create.iron_sheet": "Lámina de hierro", + "item.create.linked_controller": "Controlador enlazado", + "item.create.minecart_contraption": "Artilugio de vagoneta", + "item.create.minecart_coupling": "Acoplamiento de vagoneta", + "item.create.polished_rose_quartz": "Cuarzo rosado pulido", + "item.create.potato_cannon": "Cañón de patatas", + "item.create.powdered_obsidian": "Polvo de obsidiana", + "item.create.precision_mechanism": "Mecanismo de precisión", + "item.create.propeller": "Hélice", + "item.create.red_sand_paper": "Papel de lija rojo", + "item.create.refined_radiance": "Resplandor refinado", + "item.create.rose_quartz": "Cuarzo rosado", + "item.create.sand_paper": "Papel de lija", + "item.create.schematic": "Esquema", + "item.create.schematic_and_quill": "Esquema y pluma", + "item.create.shadow_steel": "Acero sombrío", + "item.create.super_glue": "Pegamento", + "item.create.sweet_roll": "Pan dulce", + "item.create.tree_fertilizer": "Fertilizante para árboles", + "item.create.vertical_gearbox": "Caja de transmisión vertical", + "item.create.wand_of_symmetry": "Varita de simetría", + "item.create.wheat_flour": "Harina de trigo", + "item.create.whisk": "Batidora", + "item.create.wrench": "Llave inglesa", + "item.create.zinc_ingot": "Lingote de zinc", + "item.create.zinc_nugget": "Pepita de zinc", + + + "_": "->------------------------] Advancements [------------------------<-", + + "advancement.create.root": "Bienvenido a Create", + "advancement.create.root.desc": "¡Es hora de empezar a construir increíbles artilugios!", + "advancement.create.andesite_alloy": "Aleaciones en abundancia", + "advancement.create.andesite_alloy.desc": "Los materiales de Create tienen nombres extraños, la aleación de andesita es uno de ellos.", + "advancement.create.its_alive": "¡Está vivo!", + "advancement.create.its_alive.desc": "Mira cómo gira tu primer componente cinético.", + "advancement.create.shifting_gears": "Cambiando de marcha", + "advancement.create.shifting_gears.desc": "Conecta un engranaje grande a uno pequeño, lo que te permitirá cambiar la velocidad de tu artilugio.", + "advancement.create.overstressed": "Sobrecargado", + "advancement.create.overstressed.desc": "Experimenta los límites del estrés.", + "advancement.create.belt": "Paseo de algas", + "advancement.create.belt.desc": "Conectar dos ejes con una correa.", + "advancement.create.tunnel": "¡Cúbrete!", + "advancement.create.tunnel.desc": "Embellece tu correa con un túnel.", + "advancement.create.splitter_tunnel": "Divide y vencerás", + "advancement.create.splitter_tunnel.desc": "Crear un divisor con un grupo de túneles de latón.", + "advancement.create.chute": "Caída en picado", + "advancement.create.chute.desc": "Coloque un ducto, la contrapartida vertical de la cinta.", + "advancement.create.upward_chute": "Abducción aérea", + "advancement.create.upward_chute.desc": "Observe cómo un objeto lanzado vuela dentro de un ducto impulsado por un ventilador.", + "advancement.create.belt_funnel": "Colgantes con forma de embudo", + "advancement.create.belt_funnel.desc": "Coloca un embudo lateral encima de una cinta o depósito para crear un tipo especial.", + "advancement.create.belt_funnel_kiss": "Los loros y las aletas", + "advancement.create.belt_funnel_kiss.desc": "Haz besar dos embudos montados con una cinta.", + "advancement.create.fan": "Maestro mecánico del aire", + "advancement.create.fan.desc": "Monta la corriente de aire proporcionada por un ventilador revestido.", + "advancement.create.fan_lava": "Calentador geotérmico", + "advancement.create.fan_lava.desc": "Queda atrapado en una corriente de aire que funde las cosas.", + "advancement.create.fan_water": "Lavado de la ropa", + "advancement.create.fan_water.desc": "Queda atrapado en una corriente de aire que lava las cosas.", + "advancement.create.fan_smoke": "Fuelle mecánico", + "advancement.create.fan_smoke.desc": "Queda atrapado en una corriente de aire que humea los objetos.", + "advancement.create.wrench": "Configurar convenientemente", + "advancement.create.wrench.desc": "Crea una llave inglesa para ayudarte a construir tus artilugios.", + "advancement.create.goggles": "Estresóvisión", + "advancement.create.goggles.desc": "Crea unas gafas del constructor para ayudarte a obtener más información cinética de los componentes.", + "advancement.create.speedometer": "Pero, ¿con qué rapidez exactamente?", + "advancement.create.speedometer.desc": "Coloca y alimenta un velocímetro. Míralo a través de las gafas para leer su valor exacto.", + "advancement.create.stressometer": "Pero, ¿cuán estresado exactamente??", + "advancement.create.stressometer.desc": "Coloca y alimenta un estresómetro. Míralo a través de las gafas para leer su valor exacto.", + "advancement.create.aesthetics": "Boom, ¡Estética!", + "advancement.create.aesthetics.desc": "Coloca soportes en ejes, ductos y engranajes.", + "advancement.create.reinforced": "Boom, ¡Reforzado!", + "advancement.create.reinforced.desc": "Utiliza bloques de revestimiento en un eje, un ducto y una cinta.", + "advancement.create.water_wheel": "Aprovechar la hidráulica", + "advancement.create.water_wheel.desc": "Coloca una rueda hidráulica e intenta hacerla girar.", + "advancement.create.chocolate_wheel": "Potencia de buen gusto", + "advancement.create.chocolate_wheel.desc": "Haz funcionar una rueda de agua con chocolate fundido.", + "advancement.create.lava_wheel": "Rueda de magma", + "advancement.create.lava_wheel.desc": "Esto no debió haber funcionado.", + "advancement.create.cuckoo": "¿Es el momento?", + "advancement.create.cuckoo.desc": "Presencia cómo un reloj de cuco anuncia la hora de acostarse.", + "advancement.create.millstone": "Triturador de bolsillo", + "advancement.create.millstone.desc": "Coloca y alimenta una piedra de molino.", + "advancement.create.windmill": "Una suave brisa", + "advancement.create.windmill.desc": "Monta un molino de viento.", + "advancement.create.maxed_windmill": "Una fuerte brisa", + "advancement.create.maxed_windmill.desc": "Monta un molino de viento con máxima intensidad.", + "advancement.create.andesite_casing": "La edad de la andesita", + "advancement.create.andesite_casing.desc": "Utiliza un poco de aleación de andesita y madera para crear un revestimiento básico.", + "advancement.create.mechanical_drill": "Interruptores fijos", + "advancement.create.mechanical_drill.desc": "Coloca y alimenta un taladro mecánico.", + "advancement.create.press": "¡La prensa se pone en marcha!", + "advancement.create.press.desc": "Activa una prensa mecánica y utilízala para crear algunas láminas.", + "advancement.create.polished_rose_quartz": "Diamantes rosas", + "advancement.create.polished_rose_quartz.desc": "Utiliza un trozo de papel de lija para pulir el cuarzo rosa hasta que se vuelva transparente.", + "advancement.create.electron_tube": "Beep Boop", + "advancement.create.electron_tube.desc": "Haz algunos tubos de electrones, útiles en la fabricación de maquinaria menos primitiva.", + "advancement.create.mechanical_saw": "Picado estacionario", + "advancement.create.mechanical_saw.desc": "Coloca y alimenta una sierra mecánica.", + "advancement.create.basin": "Funcionamiento de la cuenca", + "advancement.create.basin.desc": "Coloca una cuenca e intenta arrojar objetos en ella.", + "advancement.create.mixer": "Mezcla de colores", + "advancement.create.mixer.desc": "Coloca una batidora mecánica sobre el lavabo, enciéndala y empiece a mezclar algunos ingredientes.", + "advancement.create.blaze_burner": "Una chimenea viva", + "advancement.create.blaze_burner.desc": "Obtiene un quemador de blaze.", + "advancement.create.compact": "Compactación automática", + "advancement.create.compact.desc": "Utiliza una prensa y una cuenca para compactar algunos objetos.", + "advancement.create.brass": "Aleaciones reales", + "advancement.create.brass.desc": "Utiliza cobre molido y zinc molido para crear algo de latón.", + "advancement.create.brass_casing": "La Edad de Latón", + "advancement.create.brass_casing.desc": "Utiliza el latón recién obtenido y algo de madera para crear un revestimiento más avanzado.", + "advancement.create.copper_casing": "La Edad de Cobre", + "advancement.create.copper_casing.desc": "Utiliza algunas láminas de cobre y madera para crear algunos revestimientos de cobre.", + "advancement.create.spout": "Sploosh", + "advancement.create.spout.desc": "Observa el llenado de un fluido usando una boquilla.", + "advancement.create.spout_potion": "Cervecera global", + "advancement.create.spout_potion.desc": "Mira cómo un pico llena una botella con líquido de poción.", + "advancement.create.chocolate": "Un mundo de imaginación", + "advancement.create.chocolate.desc": "Obtiene un cubo con chocolate fundido.", + "advancement.create.item_drain": "Drenaje de la ropa", + "advancement.create.item_drain.desc": "Ve cómo se vacía un fluido mediante un drenador de objetos.", + "advancement.create.chained_item_drain": "¡Déjalo rodar!", + "advancement.create.chained_item_drain.desc": "Observa cómo un objeto rueda por varios drenadores de objetos encadenados.", + "advancement.create.glass_pipe": "Espía del flujo", + "advancement.create.glass_pipe.desc": "Observa cómo se propaga el fluido a través de un tubo de fluidos con ventanas. Los tubos de fluido rectos se convierten en ventanas cuando se utiliza una llave inglesa en ellas.", + "advancement.create.pipe_collision": "No cruzar nunca los arroyos", + "advancement.create.pipe_collision.desc": "Vea cómo se unen dos fluidos en su red de tuberías.", + "advancement.create.pipe_spill": "¡Hay una fuga!", + "advancement.create.pipe_spill.desc": "Observe cómo un extremo abierto de una tubería toma o deposita fluidos en el mundo.", + "advancement.create.hose_pulley": "Vertidos industriales", + "advancement.create.hose_pulley.desc": "Baja una polea de manguera y ve cómo se vacía o se llena un cuerpo de líquido.", + "advancement.create.infinite_water": "Drenando el océano", + "advancement.create.infinite_water.desc": "Bombea de una masa de agua lo suficientemente grande como para ser considerada infinita.", + "advancement.create.infinite_lava": "Drenaje del núcleo de los planetas", + "advancement.create.infinite_lava.desc": "Bombea de una masa de lava lo suficientemente grande como para ser considerada infinita.", + "advancement.create.infinite_chocolate": "Ahogándose en la imaginación", + "advancement.create.infinite_chocolate.desc": "Bombea desde una masa de chocolate fundido lo suficientemente grande como para ser considerado infinito.", + "advancement.create.crafter": "Montaje automatizado", + "advancement.create.crafter.desc": "Coloca y alimenta algunos ensambladores.", + "advancement.create.clockwork_bearing": "Artilugio a la hora", + "advancement.create.clockwork_bearing.desc": "Ensamblar una estructura montada sobre un rodamiento tipo reloj.", + "advancement.create.nixie_tube": "Signos de estilo", + "advancement.create.nixie_tube.desc": "Obtener y colocar un par de tubos nixie.", + "advancement.create.deployer": "Picar, colocar y atacar", + "advancement.create.deployer.desc": "Coloca y potencia un desplegador, el reflejo perfecto de ti mismo.", + "advancement.create.speed_controller": "Los ingenieros lo odian!", + "advancement.create.speed_controller.desc": "Coloca un controlador de velocidad rotacional, el dispositivo definitivo para cambiar de marcha.", + "advancement.create.flywheel": "El corazón de la fábrica", + "advancement.create.flywheel.desc": "Conecta con éxito un motor a la rueda de inercia.", + "advancement.create.overstress_flywheel": "Altos niveles de estrés", + "advancement.create.overstress_flywheel.desc": "Sobrecarga un motor de horno.", + "advancement.create.precision_mechanism": "Curiosidades complejas", + "advancement.create.precision_mechanism.desc": "Monta un mecanismo de precisión.", + "advancement.create.mechanical_arm": "¡Manos ocupadas!", + "advancement.create.mechanical_arm.desc": "Crea un brazo mecánico, selecciona las entradas y salidas, colócalo en el suelo y dale energía; luego observa cómo hace todo el trabajo por ti.", + "advancement.create.musical_arm": "¡Tócame la melodía!", + "advancement.create.musical_arm.desc": "Vea cómo un brazo mecánico maneja su Jukebox.", + "advancement.create.arm_many_targets": "Organize-o-Tron", + "advancement.create.arm_many_targets.desc": "Programa un brazo mecánico con diez o más posiciones de salida.", + "advancement.create.arm_blaze_burner": "Combust-o-Tron", + "advancement.create.arm_blaze_burner.desc": "Instruya un brazo mecánico para alimentar su quemador de blaze.", + "advancement.create.fist_bump": "¡Pégale, hermano!", + "advancement.create.fist_bump.desc": "Haz que dos desplegadores se den un puñetazo.", + "advancement.create.crushing_wheel": "Un par de gigantes", + "advancement.create.crushing_wheel.desc": "Crea algunas ruedas de trituración para descomponer más materiales de forma más eficaz.", + "advancement.create.blaze_cake": "Fiebre del azúcar", + "advancement.create.blaze_cake.desc": "Hornea en tu quemador de blaze un pastel especial.", + "advancement.create.chromatic_compound": "Minerales misteriosos", + "advancement.create.chromatic_compound.desc": "Crea una barra de compuesto cromático.", + "advancement.create.shadow_steel": "Retorno del vacío", + "advancement.create.shadow_steel.desc": "Crea acero sombrío, una barra de metal de la nada.", + "advancement.create.refined_radiance": "Brillante e inspirador", + "advancement.create.refined_radiance.desc": "Crea un resplandor refinado, una poderosa sustancia cromática.", + "advancement.create.chromatic_age": "La edad cromática", + "advancement.create.chromatic_age.desc": "Crear bloques de revestimiento de la luz y la oscuridad.", + "advancement.create.wand_of_symmetry": "Espejos radiantes", + "advancement.create.wand_of_symmetry.desc": "Crear un bastón de simetría.", + "advancement.create.extendo_grip": "¡Boioioing!", + "advancement.create.extendo_grip.desc": "Hazte con un agarre extentido.", + "advancement.create.potato_cannon": "Fwoomp!", + "advancement.create.potato_cannon.desc": "Derrota a un enemigo con tu cañón de patatas.", + "advancement.create.dual_extendo_grip": "La última edad del boing", + "advancement.create.dual_extendo_grip.desc": "Doble empuñadura extendida para un alcance sobrehumano.", + "advancement.create.eob": "Fin de la beta", + "advancement.create.eob.desc": "Espere más contenido aquí en el futuro. <3", + + + "_": "->------------------------] UI & Messages [------------------------<-", + + "itemGroup.create.base": "Create", + "itemGroup.create.palettes": "Paletas", + + "death.attack.create.crush": "%1$s se procesó en las ruedas de trituración", + "death.attack.create.crush.player": "%1$s fue arrojado a las ruedas de trituración por %2$s", + "death.attack.create.fan_fire": "%1$s murió quemado por el aire caliente", + "death.attack.create.fan_fire.player": "%1$s fue arrojado a un ahumador por %2$s", + "death.attack.create.fan_lava": "%1$s murió quemado por un abanico de lava", + "death.attack.create.fan_lava.player": "%1$s fue arrojado a una fundición por %2$s", + "death.attack.create.mechanical_drill": "%1$s fue empalado por un taladro mecánico", + "death.attack.create.mechanical_drill.player": "%1$s fue lanzado frente a un taladro por %2$s", + "death.attack.create.mechanical_saw": "%1$s fue cortado por la mitad por una sierra mecánica", + "death.attack.create.mechanical_saw.player": "%1$s fue arrojado a una sierra por %2$s", + "death.attack.create.potato_cannon": "%1$s fue disparado por el cañón de patatas de %2$s's", + "death.attack.create.potato_cannon.item": "%1$s fue disparado por %2$s utilizando %3$s", + "death.attack.create.cuckoo_clock_explosion": "%1$s fue volado por los aires por un reloj de cuco manipulado", + "death.attack.create.cuckoo_clock_explosion.player": "%1$s fue volado por un reloj de cuco manipulado", + + "create.block.deployer.damage_source_name": "Un desplegador rebelde", + "create.block.cart_assembler.invalid": "Coloque su Ensamblador de vagonetas en un bloque de Raíles", + + "create.menu.return": "Regresar al menú", + "create.menu.configure": "Configurar...", + "create.menu.ponder_index": "Índice", + "create.menu.only_ingame": "Disponible en el menú de pausa", + "create.menu.project_page": "Página del proyecto", + "create.menu.report_bugs": "Reportar problemas", + "create.menu.support": "Apóyenos", + + "create.recipe.crushing": "Trituración", + "create.recipe.milling": "Fresado", + "create.recipe.fan_washing": "Lavado a granel", + "create.recipe.fan_washing.fan": "Ventilador detrás del agua fluyente", + "create.recipe.fan_smoking": "Ahumador a granel", + "create.recipe.fan_smoking.fan": "Ventilador detrás del fuego", + "create.recipe.fan_blasting": "Voladuras a granel", + "create.recipe.fan_blasting.fan": "Ventilador detrás de la lava", + "create.recipe.pressing": "Prensando", + "create.recipe.mixing": "Mezclando", + "create.recipe.deploying": "Desplegando", + "create.recipe.automatic_shapeless": "Elaboración automatizada de productos sin forma", + "create.recipe.automatic_brewing": "Elaboración de cerveza automatizada", + "create.recipe.packing": "Compactando", + "create.recipe.automatic_packing": "Embalaje automatizado", + "create.recipe.sawing": "Aserrando", + "create.recipe.mechanical_crafting": "Elaboración mecánica", + "create.recipe.automatic_shaped": "Elaboración automatizada de productos con forma", + "create.recipe.block_cutting": "Corte de bloques", + "create.recipe.wood_cutting": "Corte de maderas", + "create.recipe.sandpaper_polishing": "Pulido con papel de lija", + "create.recipe.mystery_conversion": "Conversión misteriosa", + "create.recipe.spout_filling": "Llenar por el pico", + "create.recipe.draining": "Drenador de objetos", + "create.recipe.sequenced_assembly": "Montaje secuenciado", + "create.recipe.assembly.next": "Siguiente: %1$s", + "create.recipe.assembly.step": "Fase %1$s:", + "create.recipe.assembly.progress": "Progreso: %1$s/%2$s", + "create.recipe.assembly.pressing": "Proceso en prensa", + "create.recipe.assembly.spout_filling_fluid": "Pico %1$s", + "create.recipe.assembly.deploying_item": "Despliegue %1$s", + "create.recipe.assembly.cutting": "Corte con sierra", + "create.recipe.assembly.repeat": "Repetir la secuencia %1$s veces", + "create.recipe.assembly.junk": "Basura aleatoria", + "create.recipe.processing.chance": "%1$s%% Chance", + "create.recipe.heat_requirement.none": "No es necesario calentar", + "create.recipe.heat_requirement.heated": "Calentado", + "create.recipe.heat_requirement.superheated": "Súper-Calentado", + + "create.generic.range": "Rango", + "create.generic.radius": "Radio", + "create.generic.width": "Ancho", + "create.generic.height": "Alto", + "create.generic.length": "Largo", + "create.generic.speed": "Velocidad", + "create.generic.delay": "Retraso", + "create.generic.unit.ticks": "Ticks", + "create.generic.unit.seconds": "Segundos", + "create.generic.unit.minutes": "Minutos", + "create.generic.unit.rpm": "RPM", + "create.generic.unit.stress": "SU(unidades de estrés)", + "create.generic.unit.degrees": "°", + "create.generic.unit.millibuckets": "%1$smB", + "create.generic.clockwise": "En el sentido de las agujas del reloj", + "create.generic.counter_clockwise": "En sentido contrario a las agujas del reloj", + + "create.action.scroll": "Desplazar", + "create.action.confirm": "Confirmar", + "create.action.abort": "Abortar", + "create.action.saveToFile": "Guardar", + "create.action.discard": "Descartar", + + "create.keyinfo.toolmenu": "Menú de la Herramienta de Enfoque", + "create.keyinfo.scrollup": "Simular usar la rueda del ratón hacia arriba (en el mundo)", + "create.keyinfo.scrolldown": "Simular usar la rueda del ratón hacia abajo (en el mundo)", + + "create.gui.scrollInput.defaultTitle": "Seleccione una opción:", + "create.gui.scrollInput.scrollToModify": "Usa la rueda del ratón para modificar", + "create.gui.scrollInput.scrollToAdjustAmount": "Usa la rueda del ratón para ajustar la cantidad", + "create.gui.scrollInput.scrollToSelect": "Usa la rueda del ratón para seleccionar", + "create.gui.scrollInput.shiftScrollsFaster": "Mayús izdo para usar la rueda del ratón más rápido", + "create.gui.toolmenu.focusKey": "Mantén [%1$s] para enfocar", + "create.gui.toolmenu.cycle": "[RUEDA DEL RATÓN] para el ciclo", + "create.gui.symmetryWand.mirrorType": "Espejado", + "create.gui.symmetryWand.orientation": "Orientación", + + "create.symmetry.mirror.plane": "Plano de espejo", + "create.symmetry.mirror.doublePlane": "Rectangular", + "create.symmetry.mirror.triplePlane": "Octogonal", + + "create.orientation.orthogonal": "Ortogonal", + "create.orientation.diagonal": "Diagonal", + "create.orientation.horizontal": "Horizontal", + "create.orientation.alongZ": "A lo largo de Z", + "create.orientation.alongX": "A lo largo de X", + + "create.gui.terrainzapper.title": "Blockzapper", + "create.gui.terrainzapper.searchDiagonal": "Seguir diagonales", + "create.gui.terrainzapper.searchFuzzy": "Ignorar los bordes del material", + "create.gui.terrainzapper.patternSection": "Patrón", + "create.gui.terrainzapper.pattern.solid": "Sólido", + "create.gui.terrainzapper.pattern.checkered": "Tablero de ajedrez", + "create.gui.terrainzapper.pattern.inversecheckered": "Tablero de ajedrez invertido", + "create.gui.terrainzapper.pattern.chance25": "25% Roll", + "create.gui.terrainzapper.pattern.chance50": "50% Roll", + "create.gui.terrainzapper.pattern.chance75": "75% Roll", + "create.gui.terrainzapper.placement": "Ubicación", + "create.gui.terrainzapper.placement.merged": "Fusionado", + "create.gui.terrainzapper.placement.attached": "Adjuntado", + "create.gui.terrainzapper.placement.inserted": "Insertado", + "create.gui.terrainzapper.brush": "Pincel", + "create.gui.terrainzapper.brush.cuboid": "Cuboide", + "create.gui.terrainzapper.brush.sphere": "Esfera", + "create.gui.terrainzapper.brush.cylinder": "Cilindro", + "create.gui.terrainzapper.brush.surface": "Superficie", + "create.gui.terrainzapper.brush.cluster": "Grupo", + "create.gui.terrainzapper.tool": "Herramienta", + "create.gui.terrainzapper.tool.fill": "Llenar", + "create.gui.terrainzapper.tool.place": "Ubicar", + "create.gui.terrainzapper.tool.replace": "Reemplazar", + "create.gui.terrainzapper.tool.clear": "Eliminar", + "create.gui.terrainzapper.tool.overlay": "Superponer", + "create.gui.terrainzapper.tool.flatten": "Aplanar", + + "create.terrainzapper.shiftRightClickToSet": "Mayús izdo + clic derecho para seleccionar una forma", + "create.terrainzapper.usingBlock": "Usando: %1$s", + "create.terrainzapper.leftClickToSet": "Clic izquierdo a un bloque para establecer el material", + + "create.minecart_coupling.two_couplings_max": "Las vagonetas no pueden tener más de dos enganches cada una", + "create.minecart_coupling.unloaded": "Algunas partes de su tren parecen estar en chunks no cargados", + "create.minecart_coupling.no_loops": "Los acoplamientos no pueden formar un bucle", + "create.minecart_coupling.removed": "Se han retirado todos los acoplamientos de la vagoneta", + "create.minecart_coupling.too_far": "Las vagonetas están demasiado separadas", + + "create.contraptions.movement_mode": "Modo de movimiento", + "create.contraptions.movement_mode.move_place": "Colocar siempre al detenerse", + "create.contraptions.movement_mode.move_place_returned": "Colocar sólo en la posición inicial", + "create.contraptions.movement_mode.move_never_place": "Colocar sólo cuando se destruye el ancla", + "create.contraptions.movement_mode.rotate_place": "Colocar siempre al detenerse", + "create.contraptions.movement_mode.rotate_place_returned": "Colocar sólo cerca del ángulo inicial", + "create.contraptions.movement_mode.rotate_never_place": "Colocar sólo cuando se destruye el ancla", + "create.contraptions.cart_movement_mode": "Modo de movimiento de la vagoneta", + "create.contraptions.cart_movement_mode.rotate": "Siempre de cara al movimiento", + "create.contraptions.cart_movement_mode.rotate_paused": "Pausar a los actores mientras giran", + "create.contraptions.cart_movement_mode.rotation_locked": "Bloquear rotación", + "create.contraptions.windmill.rotation_direction": "Dirección de rotación", + "create.contraptions.clockwork.clock_hands": "Manecillas de reloj", + "create.contraptions.clockwork.hour_first": "La manecilla de las horas primero", + "create.contraptions.clockwork.minute_first": "La manecilla de los minutos primero", + "create.contraptions.clockwork.hour_first_24": "La manecilla del día primero", + + "create.logistics.filter": "Filtro", + "create.logistics.recipe_filter": "Filtro para recetas", + "create.logistics.fluid_filter": "Filtro para fluidos", + "create.logistics.firstFrequency": "Freq. #1", + "create.logistics.secondFrequency": "Freq. #2", + "create.logistics.filter.apply": "Filtro aplicado a %1$s.", + "create.logistics.filter.apply_click_again": "Filtro aplicado a %1$s, haga clic de nuevo para copiar la cantidad.", + "create.logistics.filter.apply_count": "Aplicado recuento de extracciones al filtro.", + + "create.gui.goggles.generator_stats": "Estadísticas del generador:", + "create.gui.goggles.kinetic_stats": "Estadísticas cinéticas:", + "create.gui.goggles.at_current_speed": "con la velocidad actual", + "create.gui.goggles.pole_length": "Longitud del poste:", + "create.gui.goggles.fluid_container": "Información sobre el contenedor de fluidos:", + "create.gui.goggles.fluid_container.capacity": "Capacidad: ", + "create.gui.assembly.exception": "Este artilugio no se pudo montar:", + "create.gui.assembly.exception.unmovableBlock": "Bloque inamovible (%4$s) en [%1$s,%2$s,%3$s]", + "create.gui.assembly.exception.chunkNotLoaded": "El bloque en [%1$s,%2$s,%3$s] no estaba en un chunk cargado", + "create.gui.assembly.exception.structureTooLarge": "Hay demasiados bloques incluídos en el artilugio.\nEl máximo configurado es: %1$s", + "create.gui.assembly.exception.tooManyPistonPoles": "Hay demasiadas Pértigas de extensión conectadas a este Pistón.\nEl máximo configurado es: %1$s", + "create.gui.assembly.exception.noPistonPoles": "Faltan pértigas de extensión para el pistón", + "create.gui.assembly.exception.not_enough_sails": "La estructura adjunta no incluye suficientes bloques tipo vela: %1$s\nSe requiere un mínimo de %2$s", + "create.gui.gauge.info_header": "Información sobre el medidor:", + "create.gui.speedometer.title": "Velocidad de rotación", + "create.gui.stressometer.title": "Estrés de la red", + "create.gui.stressometer.capacity": "Capacidad restante", + "create.gui.stressometer.overstressed": "Sobrecargado", + "create.gui.stressometer.no_rotation": "Sin rotación", + "create.gui.contraptions.not_fast_enough": "Parece que este %1$s no está girando con _suficiente_ velocidad_.", + "create.gui.contraptions.network_overstressed": "Parece que este artilugio está _sobrecargado_. Añade más fuentes o _desacelera_ los componentes con un _impacto de estrés alto_.", + "create.gui.adjustable_crate.title": "Caja ajustable", + "create.gui.adjustable_crate.storageSpace": "Espacio de almacenamiento", + "create.gui.stockpile_switch.title": "Interruptor de acopio", + "create.gui.stockpile_switch.invert_signal": "Invertir señal", + "create.gui.stockpile_switch.move_to_lower_at": "Pasar al carril inferior en %1$s%%", + "create.gui.stockpile_switch.move_to_upper_at": "Pasar al carril superior en %1$s%%", + "create.gui.sequenced_gearshift.title": "Cambio de marchas secuenciado", + "create.gui.sequenced_gearshift.instruction": "Instrucción", + "create.gui.sequenced_gearshift.instruction.turn_angle.descriptive": "Giro por ángulo", + "create.gui.sequenced_gearshift.instruction.turn_angle": "Giro", + "create.gui.sequenced_gearshift.instruction.turn_angle.angle": "Ángulo", + "create.gui.sequenced_gearshift.instruction.turn_distance.descriptive": "Giro para mover el pistón/polea/grúa", + "create.gui.sequenced_gearshift.instruction.turn_distance": "Pistón", + "create.gui.sequenced_gearshift.instruction.turn_distance.distance": "Distancia", + "create.gui.sequenced_gearshift.instruction.delay.descriptive": "Tiempo de retraso", + "create.gui.sequenced_gearshift.instruction.delay": "Retraso", + "create.gui.sequenced_gearshift.instruction.delay.duration": "Duración", + "create.gui.sequenced_gearshift.instruction.end.descriptive": "Fin", + "create.gui.sequenced_gearshift.instruction.end": "Fin", + "create.gui.sequenced_gearshift.instruction.await.descriptive": "En espera de un pulso de redstone", + "create.gui.sequenced_gearshift.instruction.await": "En espera", + "create.gui.sequenced_gearshift.speed": "Velocidad, Dirección", + "create.gui.sequenced_gearshift.speed.forward": "Velocidad de entrada, hacia adelante", + "create.gui.sequenced_gearshift.speed.forward_fast": "Doble velocidad, hacia adelante", + "create.gui.sequenced_gearshift.speed.back": "Velocidad de entrada, Invertida", + "create.gui.sequenced_gearshift.speed.back_fast": "Doble velocidad, Invertida", + + "create.schematicAndQuill.dimensions": "Tamaño del esquema: %1$sx%2$sx%3$s", + "create.schematicAndQuill.firstPos": "Primera posición fijada.", + "create.schematicAndQuill.secondPos": "Segunda posición fijada.", + "create.schematicAndQuill.noTarget": "Mantén [Ctrl] para seleccionar los bloques del aire.", + "create.schematicAndQuill.abort": "Selección eliminada.", + "create.schematicAndQuill.title": "Nombre del esquema:", + "create.schematicAndQuill.convert": "Guardar y desplegar inmediatamente", + "create.schematicAndQuill.fallbackName": "Mi esquema", + "create.schematicAndQuill.saved": "Guardado como %1$s", + + "create.schematic.invalid": "[!] Elemento no válido - Utilice la tabla de esquemas en su lugar", + "create.schematic.position": "Posición", + "create.schematic.rotation": "Rotación", + "create.schematic.rotation.none": "Ninguno", + "create.schematic.rotation.cw90": "En el sentido de las agujas del reloj 90", + "create.schematic.rotation.cw180": "En el sentido de las agujas del reloj 180", + "create.schematic.rotation.cw270": "En el sentido de las agujas del reloj 270", + "create.schematic.mirror": "Espejado", + "create.schematic.mirror.none": "Ninguno", + "create.schematic.mirror.frontBack": "Delante-Detrás", + "create.schematic.mirror.leftRight": "Izquierda-Derecha", + "create.schematic.tool.deploy": "Despliegue", + "create.schematic.tool.move": "Mover XZ", + "create.schematic.tool.movey": "Mover Y", + "create.schematic.tool.rotate": "Rotar", + "create.schematic.tool.print": "Imprimir", + "create.schematic.tool.flip": "Voltear", + "create.schematic.tool.deploy.description.0": "Mueve la estructura a un lugar.", + "create.schematic.tool.deploy.description.1": "Haz clic con el botón derecho del ratón en el suelo para colocarla.", + "create.schematic.tool.deploy.description.2": "Mantén [Ctrl] para seleccionar a una distancia fija.", + "create.schematic.tool.deploy.description.3": "[Ctrl] + [RUEDA DEL RATÓN] para cambiar la distancia.", + "create.schematic.tool.move.description.0": "Desplaza el esquema horizontalmente.", + "create.schematic.tool.move.description.1": "Apunta al esquema y [Ctrl] + [RUEDA DEL RATÓN] para ponerlo.", + "create.schematic.tool.move.description.2": "", + "create.schematic.tool.move.description.3": "", + "create.schematic.tool.movey.description.0": "Desplaza el esquema verticalmente..", + "create.schematic.tool.movey.description.1": "[Ctrl] + [RUEDA DEL RATÓN] para moverlo hacia arriba/abajo.", + "create.schematic.tool.movey.description.2": "", + "create.schematic.tool.movey.description.3": "", + "create.schematic.tool.rotate.description.0": "Gira el esquema alrededor de su centro.", + "create.schematic.tool.rotate.description.1": "[Ctrl] + [RUEDA DEL RATÓN] para girar 90 grados.", + "create.schematic.tool.rotate.description.2": "", + "create.schematic.tool.rotate.description.3": "", + "create.schematic.tool.print.description.0": "Sitúa instantáneamente la estructura en el mundo.", + "create.schematic.tool.print.description.1": "[Clic derecho] para confirmar la colocación en el lugar actual.", + "create.schematic.tool.print.description.2": "Esta herramienta es sólo para el Modo Creativo.", + "create.schematic.tool.print.description.3": "", + "create.schematic.tool.flip.description.0": "Voltea el esquema a lo largo de la cara que seleccione.", + "create.schematic.tool.flip.description.1": "Apunta al esquema y [Ctrl] + [RUEDA DEL RATÓN] para voltearlo.", + "create.schematic.tool.flip.description.2": "", + "create.schematic.tool.flip.description.3": "", + + "create.schematics.synchronizing": "Sincronizando...", + "create.schematics.uploadTooLarge": "Tu esquema excede las limitaciones especificadas por el servidor.", + "create.schematics.maxAllowedSize": "El tamaño máximo permitido del archivo del esquema es:", + + "create.gui.schematicTable.refresh": "Refrescar archivos", + "create.gui.schematicTable.open_folder": "Abrir carpeta", + "create.gui.schematicTable.title": "Tabla de esquemas", + "create.gui.schematicTable.availableSchematics": "Esquemas disponibles", + "create.gui.schematicTable.noSchematics": "No hay esquemas guardados", + "create.gui.schematicTable.uploading": "Subiendo...", + "create.gui.schematicTable.finished": "¡Subida finalizada!", + "create.gui.schematicannon.title": "Cañón de esquemas", + "create.gui.schematicannon.listPrinter": "Lista de control de la impresora", + "create.gui.schematicannon.gunpowderLevel": "Pólvora %1$s%%", + "create.gui.schematicannon.shotsRemaining": "Disparos restantes: %1$s", + "create.gui.schematicannon.shotsRemainingWithBackup": "Con respaldo: %1$s", + "create.gui.schematicannon.optionEnabled": "Actualmente habilitado", + "create.gui.schematicannon.optionDisabled": "Actualmente deshabilitado", + "create.gui.schematicannon.showOptions": "Mostrar la configuración de la impresora", + "create.gui.schematicannon.option.dontReplaceSolid": "No sustituír los bloques sólidos", + "create.gui.schematicannon.option.replaceWithSolid": "Sustituir sólido por sólido", + "create.gui.schematicannon.option.replaceWithAny": "Sustituir sólido por cualquiera", + "create.gui.schematicannon.option.replaceWithEmpty": "Sustituir sólido por vacío", + "create.gui.schematicannon.option.skipMissing": "Omitir los bloques que faltan", + "create.gui.schematicannon.option.skipTileEntities": "Proteger a las entidades", + "create.gui.schematicannon.slot.gunpowder": "Añade pólvora para alimentar el cañón", + "create.gui.schematicannon.slot.listPrinter": "Coloque los libros aquí para imprimir una lista de comprobación para su esquema", + "create.gui.schematicannon.slot.schematic": "Añada su esquema aquí. Asegúrese de que se despliega en un lugar específico.", + "create.gui.schematicannon.option.skipMissing.description": "Si el cañón no encuentra un bloque necesario para su colocación, continuará en la siguiente ubicación.", + "create.gui.schematicannon.option.skipTileEntities.description": "El cañón evitará reemplazar los bloques que contienen datos, como los cofres.", + "create.gui.schematicannon.option.dontReplaceSolid.description": "El cañón nunca sustituirá ningún bloque sólido en su zona de trabajo, sólo los no sólidos y el aire.", + "create.gui.schematicannon.option.replaceWithSolid.description": "El cañón sólo reemplazará los bloques sólidos en su área de trabajo si el esquema contiene un bloque sólido en la ubicación.", + "create.gui.schematicannon.option.replaceWithAny.description": "El cañón reemplazará los bloques sólidos en su área de trabajo si el esquema contiene algún bloque en la ubicación.", + "create.gui.schematicannon.option.replaceWithEmpty.description": "El cañón eliminará todos los bloques de su zona de trabajo, incluidos los sustituidos por aire.", + + "create.schematicannon.status.idle": "Inactivo", + "create.schematicannon.status.ready": "Listo", + "create.schematicannon.status.running": "Funcionando", + "create.schematicannon.status.finished": "Finalizado", + "create.schematicannon.status.paused": "Pausado", + "create.schematicannon.status.stopped": "Detenido", + "create.schematicannon.status.noGunpowder": "Sin pólvora", + "create.schematicannon.status.targetNotLoaded": "El objetivo no está cargado", + "create.schematicannon.status.targetOutsideRange": "Objetivo demasiado lejano", + "create.schematicannon.status.searching": "Buscando", + "create.schematicannon.status.skipping": "Omitiendo", + "create.schematicannon.status.missingBlock": "Elementos perdidos:", + "create.schematicannon.status.placing": "Colocando", + "create.schematicannon.status.clearing": "Limpiando bloques", + "create.schematicannon.status.schematicInvalid": "Esquema inválido", + "create.schematicannon.status.schematicNotPlaced": "Esquema no desplegado", + "create.schematicannon.status.schematicExpired": "Archivo de esquemas caducado", + + "create.materialChecklist": "Lista de control del material", + "create.materialChecklist.blocksNotLoaded": "* Descargo de Responsabilidad *\n\nLa lista de materiales puede ser inexacta debido a que no se han cargado los chunks pertinentes.", + + "create.gui.filter.deny_list": "Lista de denegados", + "create.gui.filter.deny_list.description": "Los objetos pasan si NO coinciden con ninguno de los anteriores. Una lista de denegación vacía acepta todo.", + "create.gui.filter.allow_list": "Lista de permitidos", + "create.gui.filter.allow_list.description": "Los objetos pasan si coinciden con alguno de los anteriores. Una lista de permitidos vacía rechaza todo.", + "create.gui.filter.respect_data": "Respetar datos", + "create.gui.filter.respect_data.description": "Los objetos sólo coinciden si su durabilidad, encantos y otros atributos también coinciden.", + "create.gui.filter.ignore_data": "Ignorar datos", + "create.gui.filter.ignore_data.description": "Los artículos coinciden independientemente de sus atributos.", + + "create.item_attributes.placeable": "se puede colocar", + "create.item_attributes.placeable.inverted": "no se puede colocar", + "create.item_attributes.consumable": "se puede comer", + "create.item_attributes.consumable.inverted": "no se puede comer", + "create.item_attributes.smeltable": "se puede fundir", + "create.item_attributes.smeltable.inverted": "no se puede fundir", + "create.item_attributes.washable": "se puede lavar", + "create.item_attributes.washable.inverted": "no se puede lavar", + "create.item_attributes.smokable": "puede ser ahumado", + "create.item_attributes.smokable.inverted": "no puede ser ahumado", + "create.item_attributes.crushable": "puede ser molido", + "create.item_attributes.crushable.inverted": "no puede ser molido", + "create.item_attributes.blastable": "es fundible en el alto horno", + "create.item_attributes.blastable.inverted": "no es fundible en el alto horno", + "create.item_attributes.enchanted": "está encantado", + "create.item_attributes.enchanted.inverted": "no está encantado", + "create.item_attributes.damaged": "está dañado", + "create.item_attributes.damaged.inverted": "no está dañado", + "create.item_attributes.badly_damaged": "está muy dañado", + "create.item_attributes.badly_damaged.inverted": "no está muy dañado", + "create.item_attributes.not_stackable": "no se puede apilar", + "create.item_attributes.not_stackable.inverted": "se puede apilar", + "create.item_attributes.equipable": "se puede equipar", + "create.item_attributes.equipable.inverted": "no se puede equipar", + "create.item_attributes.furnace_fuel": "es combustible para hornos", + "create.item_attributes.furnace_fuel.inverted": "no es combustible para hornos", + "create.item_attributes.in_tag": "está etiquetado %1$s", + "create.item_attributes.in_tag.inverted": "no está etiquetado %1$s", + "create.item_attributes.in_item_group": "está en el grupo '%1$s'", + "create.item_attributes.in_item_group.inverted": "no está en el grupo '%1$s'", + "create.item_attributes.added_by": "fue añadido por %1$s", + "create.item_attributes.added_by.inverted": "no fue añadida por %1$s", + "create.item_attributes.shulker_level": "es shulker %1$s", + "create.item_attributes.shulker_level.inverted": "no es shulker %1$s", + "create.item_attributes.shulker_level.full": "lleno", + "create.item_attributes.shulker_level.empty": "vacío", + "create.item_attributes.shulker_level.partial": "parcialmente lleno", + "create.item_attributes.has_enchant": "está encantado con %1$s", + "create.item_attributes.has_enchant.inverted": "no está encantado con %1$s", + "create.item_attributes.color": "Está teñido %1$s", + "create.item_attributes.color.inverted": "No está teñido %1$s", + "create.item_attributes.max_enchanted": "está encantado en el nivel máximo", + "create.item_attributes.max_enchanted.inverted": "no está encantado en el nivel máximo", + "create.item_attributes.has_fluid": "contiene %1$s", + "create.item_attributes.has_fluid.inverted": "no contiene %1$s", + "create.item_attributes.has_name": "tiene el nombre personalizado %1$s", + "create.item_attributes.has_name.inverted": "no tiene el nombre personalizado %1$s", + "create.item_attributes.book_author": "es obra de %1$s", + "create.item_attributes.book_author.inverted": "no es es obra de %1$s", + "create.item_attributes.book_copy_original": "es un original", + "create.item_attributes.book_copy_original.inverted": "no es un original", + "create.item_attributes.book_copy_first": "es una copia de primera generación", + "create.item_attributes.book_copy_first.inverted": "no es una copia de primera generación", + "create.item_attributes.book_copy_second": "es una copia de segunda generación", + "create.item_attributes.book_copy_second.inverted": "no es una copia de segunda generación", + "create.item_attributes.book_copy_tattered": "es un desordenado desastre", + "create.item_attributes.book_copy_tattered.inverted": "no es un desordenado desastre", + "create.item_attributes.astralsorcery_crystal": "tiene el atributo de cristal %1$s", + "create.item_attributes.astralsorcery_crystal.inverted": "no tiene atributo de cristal %1$s", + "create.item_attributes.astralsorcery_constellation": "está en sintonía con %1$s", + "create.item_attributes.astralsorcery_constellation.inverted": "no está en sintonía con %1$s", + "create.item_attributes.astralsorcery_perk_gem": "tiene el atributo ventaja %1$s", + "create.item_attributes.astralsorcery_perk_gem.inverted": "no tiene el atributo ventaja %1$s", + "create.item_attributes.astralsorcery_amulet": "mejora %1$s", + "create.item_attributes.astralsorcery_amulet.inverted": "no mejora %1$s", + + "create.gui.attribute_filter.no_selected_attributes": "No hay atributos seleccionados", + "create.gui.attribute_filter.selected_attributes": "Atributos seleccionados:", + "create.gui.attribute_filter.add_attribute": "Añadir atributo a la lista", + "create.gui.attribute_filter.add_inverted_attribute": "Añadir atributo invertido a la Lista", + "create.gui.attribute_filter.allow_list_disjunctive": "Lista de permitidos (Cualquiera)", + "create.gui.attribute_filter.allow_list_disjunctive.description": "Los objetos pasan si tienen alguno de los atributos seleccionados", + "create.gui.attribute_filter.allow_list_conjunctive": "Lista de permitidos (Todos)", + "create.gui.attribute_filter.allow_list_conjunctive.description": "Los objetos pasan sólo si tienen TODOS los atributos seleccionados", + "create.gui.attribute_filter.deny_list": "Lista de denegados", + "create.gui.attribute_filter.deny_list.description": "Los objetos pasan si NO tienen ninguno de los atributos seleccionados", + "create.gui.attribute_filter.add_reference_item": "Añadir elemento de referencia", + + "create.tooltip.holdForDescription": "Mantén [%1$s] para mas información", + "create.tooltip.holdForControls": "Mantén [%1$s] para ver los controles", + "create.tooltip.keyShift": "Mayús izdo.", + "create.tooltip.keyCtrl": "Ctrl", + "create.tooltip.speedRequirement": "Requisitos de velocidad: %1$s", + "create.tooltip.speedRequirement.none": "Ninguno", + "create.tooltip.speedRequirement.medium": "Moderado", + "create.tooltip.speedRequirement.high": "Rápido", + "create.tooltip.stressImpact": "Impacto de estrés: %1$s", + "create.tooltip.stressImpact.low": "Bajo", + "create.tooltip.stressImpact.medium": "Moderado", + "create.tooltip.stressImpact.high": "Alto", + "create.tooltip.stressImpact.overstressed": "Sobrecargado", + "create.tooltip.capacityProvided": "Capacidad de estrés: %1$s", + "create.tooltip.capacityProvided.low": "Pequeña", + "create.tooltip.capacityProvided.medium": "Media", + "create.tooltip.capacityProvided.high": "Grande", + "create.tooltip.generationSpeed": "Generada en %1$s %2$s", + "create.tooltip.analogStrength": "Fuerza analógica: %1$s/15", + + "create.mechanical_arm.extract_from": "Extraer objetos de %1$s", + "create.mechanical_arm.deposit_to": "Depositar objetos en %1$s", + "create.mechanical_arm.summary": "El brazo mecánico tiene %1$s entrada(s) y %2$s salida(s)", + "create.mechanical_arm.points_outside_range": "%1$s punto(s) de interacción seleccionado(s) eliminado(s) debido a las limitaciones de rango", + + "create.weighted_ejector.target_set": "Objetivo seleccionado", + "create.weighted_ejector.target_not_valid": "Expulsión al bloque adyacente (el objetivo no era válido)", + "create.weighted_ejector.no_target": "Expulsión al bloque adyacente (no se ha seleccionado ningún objetivo)", + "create.weighted_ejector.targeting": "Expulsión a [%1$s,%2$s,%3$s]", + "create.weighted_ejector.stack_size": "Tamaño de la pila expulsada", + + "create.logistics.when_multiple_outputs_available": "Cuando hay múltiples salidas disponibles", + + "create.mechanical_arm.selection_mode.round_robin": "Round Robin", + "create.mechanical_arm.selection_mode.forced_round_robin": "Round Robin forzado", + "create.mechanical_arm.selection_mode.prefer_first": "Preferir el primero", + + "create.tunnel.selection_mode.split": "División", + "create.tunnel.selection_mode.forced_split": "División forzada", + "create.tunnel.selection_mode.round_robin": "Round Robin", + "create.tunnel.selection_mode.forced_round_robin": "Round Robin forzado", + "create.tunnel.selection_mode.prefer_nearest": "Preferir el más cercano", + "create.tunnel.selection_mode.randomize": "Aleatorizar", + "create.tunnel.selection_mode.synchronize": "Sincronizar entradas", + + "create.tooltip.chute.header": "Información del ducto", + "create.tooltip.chute.items_move_down": "Los objetos se mueven hacia abajo", + "create.tooltip.chute.items_move_up": "Los objetos se mueven hacia arriba", + "create.tooltip.chute.no_fans_attached": "No hay ventiladores adjuntos", + "create.tooltip.chute.fans_push_up": "Los ventiladores empujan desde abajo", + "create.tooltip.chute.fans_push_down": "Los ventiladores empujan desde arriba", + "create.tooltip.chute.fans_pull_up": "Los ventiladores tiran desde arriba", + "create.tooltip.chute.fans_pull_down": "Los ventiladores tiran desde abajo", + "create.tooltip.chute.contains": "Contiene: %1$s x%2$s", + "create.tooltip.brass_tunnel.contains": "Actualmente distribuye:", + "create.tooltip.brass_tunnel.contains_entry": "> %1$s x%2$s", + "create.tooltip.brass_tunnel.retrieve": "Haga clic derecho para recuperar", + + "create.linked_controller.bind_mode": "Modo de enlace activo", + "create.linked_controller.press_keybind": "Presiona %1$s, %2$s, %3$s, %4$s, %5$s o %6$s, para vincular esta frecuencia a la tecla correspondiente", + "create.linked_controller.key_bound": "Frecuencia ligada a %1$s", + "create.linked_controller.frequency_slot_1": "Enlace de teclas: %1$s, Freq. #1", + "create.linked_controller.frequency_slot_2": "Enlace de teclas: %1$s, Freq. #2", + + "create.crafting_blueprint.crafting_slot": "Ranura para ingredientes", + "create.crafting_blueprint.filter_items_viable": "Los objetos del filtro avanzado son viables", + "create.crafting_blueprint.display_slot": "Ranura de pantalla", + "create.crafting_blueprint.inferred": "A partir de la receta", + "create.crafting_blueprint.manually_assigned": "Asignado manualmente", + "create.crafting_blueprint.secondary_display_slot": "Ranura de pantalla secundaria", + "create.crafting_blueprint.optional": "Opcional", + + "create.potato_cannon.ammo.attack_damage": "%1$s Daño de ataque", + "create.potato_cannon.ammo.reload_ticks": "%1$s Recarga por Ticks", + "create.potato_cannon.ammo.knockback": "%1$s Golpe de efecto", + + "create.hint.hose_pulley.title": "Suministro ilimitado", + "create.hint.hose_pulley": "La masa de fluido objetivo se considera infinita.", + "create.hint.mechanical_arm_no_targets.title": "Sin objetivos", + "create.hint.mechanical_arm_no_targets": "Parece que a este _brazo mecánico_ no se le ha asignado ningún objetivo. Selecciona _correas_, _depósitos_, _embudos_ y otros bloques haciendo clic derecho sobre ellos mientras _sostienes_ el _brazo mecánico_ en tu mano..", + "create.hint.empty_bearing.title": "Actualización del rodamiento", + "create.hint.empty_bearing": "Haz clic derecho sobre el rodamiento con la _mano vacía_ para _adjuntar_ la estructura que acabas de construir delante de él.", + "create.hint.full_deployer.title": "Exceso de objetos en el desplegador", + "create.hint.full_deployer": "Parece que este _desplegador_ contiene _exceso_ de objetos que necesitan ser _extraídos._ Usa una _tolva_, _embudo_ u otro medio para liberarlo de su excedente.", + + "create.gui.config.overlay1": "Hola :)", + "create.gui.config.overlay2": "Esta es una muestra de la superposición", + "create.gui.config.overlay3": "Haga clic o arrastre con el ratón", + "create.gui.config.overlay4": "para mover esta vista previa", + "create.gui.config.overlay5": "Pulsar ESC para salir de esta pantalla", + "create.gui.config.overlay6": "y guardar la nueva posición", + "create.gui.config.overlay7": "Ejecute /create overlay reset", + "create.gui.config.overlay8": "para restablecer la posición por defecto", + + "create.command.killTPSCommand": "killtps", + "create.command.killTPSCommand.status.slowed_by.0": "[Crear]: El tick del servidor está actualmente ralentizado en %s ms :o", + "create.command.killTPSCommand.status.slowed_by.1": "[Crear]: El tick del servidor está ralentizado en %s ms ahora >:)", + "create.command.killTPSCommand.status.slowed_by.2": "[Create]: El tick del servidor ha vuelto a su velocidad normal :D", + "create.command.killTPSCommand.status.usage.0": "[Create]: usa /killtps stop para que el servidor vuelva a la velocidad normal", + "create.command.killTPSCommand.status.usage.1": "[Create]: usa /killtps start para ralentizar artificialmente el tick del servidor", + "create.command.killTPSCommand.argument.tickTime": "tickTime", + + "create.contraption.minecart_contraption_too_big": "Este artilugio de vagoneta parece demasiado grande para recogerlo", + "create.contraption.minecart_contraption_illegal_pickup": "Una fuerza mística está atando este artilugio de vagoneta al mundo", + + + "_": "->------------------------] Subtitles [------------------------<-", + + "create.subtitle.contraption_disassemble": "", + "create.subtitle.peculiar_bell_use": "", + "create.subtitle.mixing": "", + "create.subtitle.mechanical_press_activation_belt": "", + "create.subtitle.fwoomp": "", + "create.subtitle.worldshaper_place": "", + "create.subtitle.crushing_1": "", + "create.subtitle.depot_slide": "", + "create.subtitle.saw_activate_stone": "", + "create.subtitle.blaze_munch": "", + "create.subtitle.funnel_flap": "", + "create.subtitle.schematicannon_finish": "", + "create.subtitle.haunted_bell_use": "", + "create.subtitle.scroll_value": "", + "create.subtitle.crafter_craft": "", + "create.subtitle.controller_put": "", + "create.subtitle.cranking": "", + "create.subtitle.wrench_remove": "", + "create.subtitle.cogs": "", + "create.subtitle.slime_added": "", + "create.subtitle.wrench_rotate": "", + "create.subtitle.potato_hit": "", + "create.subtitle.saw_activate_wood": "", + "create.subtitle.haunted_bell_convert": "", + "create.subtitle.deployer_polish": "", + "create.subtitle.deny": "", + "create.subtitle.controller_click": "", + "create.subtitle.schematicannon_launch_block": "", + "create.subtitle.copper_armor_equip": "", + "create.subtitle.controller_take": "Lectern empties", + "create.subtitle.mechanical_press_activation": "", + "create.subtitle.contraption_assemble": "", + "create.subtitle.crafter_click": "", + "create.subtitle.depot_plop": "", + "create.subtitle.confirm": "", + + + "_": "->------------------------] Item Descriptions [------------------------<-", + + "item.create.example_item.tooltip": "EJEMPLO DE ITEM (sólo un marcador de que este tooltip existe)", + "item.create.example_item.tooltip.summary": "Una breve descripción del elemento. Los puntajes bajos resaltan un término", + "item.create.example_item.tooltip.condition1": "Cuando este", + "item.create.example_item.tooltip.behaviour1": "Entonces este elemento hace esto. (los comportamientos se muestran en el turno)", + "item.create.example_item.tooltip.condition2": "Y cuando esto", + "item.create.example_item.tooltip.behaviour2": "Puedes añadir tantos comportamientos como quieras", + "item.create.example_item.tooltip.control1": "Cuando se pulsa [Ctrl]", + "item.create.example_item.tooltip.action1": "Se muestran estos controles", + + "block.create.wooden_bracket.tooltip": "SOPORTE DE MADERA PARA EJES", + "block.create.wooden_bracket.tooltip.summary": "Decora tus _ejes_, _engranajes_ y _ductos_ con un acogedor refuerzo de madera.", + + "block.create.metal_bracket.tooltip": "SOPORTE DE METAL PARA EJES", + "block.create.metal_bracket.tooltip.summary": "Decora tus _ejes_, _engranajes_ y _ductos_ con un poco de refuerzo industrial robusto.", + + "block.create.seat.tooltip": "ASIENTO", + "block.create.seat.tooltip.summary": "¡Siéntate y disfruta del viaje! Anclará a un jugador en un artilugio en movimiento. También es ideal para muebles estáticos. Viene en una variedad de colores.", + "block.create.seat.tooltip.condition1": "Cuando se hace clic derecho en el asiento", + "block.create.seat.tooltip.behaviour1": "Sienta al jugador en el _asiento_. Pulsa Mayús izdo para dejar el asiento.", + + "item.create.blaze_cake.tooltip": "PASTEL DE BLAZE", + "item.create.blaze_cake.tooltip.summary": "Un delicioso regalo para sus esforzados _quemadores de blaze_. ¡Los pone en marcha!.", + + "item.create.wand_of_symmetry.tooltip": "VARITA DE SIMETRÍA", + "item.create.wand_of_symmetry.tooltip.summary": "Refleja perfectamente la colocación de bloques en los planos configurados.", + "item.create.wand_of_symmetry.tooltip.condition1": "Mientras está en el inventario rápido", + "item.create.wand_of_symmetry.tooltip.behaviour1": "Permanece activo.", + "item.create.wand_of_symmetry.tooltip.control1": "Cuando se hace clic derecho en el suelo", + "item.create.wand_of_symmetry.tooltip.action1": "_Crea_ o _mueve_ el espejo.", + "item.create.wand_of_symmetry.tooltip.control2": "Cuando se hace clic derecho en el aire", + "item.create.wand_of_symmetry.tooltip.action2": "_Quita_ el espejo activo.", + "item.create.wand_of_symmetry.tooltip.control3": "Mayús izdo + clic derecho", + "item.create.wand_of_symmetry.tooltip.action3": "Abre la interfaz de configuración.", + + "item.create.handheld_worldshaper.tooltip": "WORLDSHAPER", + "item.create.handheld_worldshaper.tooltip.summary": "Práctica herramienta para crear _paisajes_ y _características del terreno_.", + "item.create.handheld_worldshaper.tooltip.control1": "Cuando se hace clic izquierdo en un bloque", + "item.create.handheld_worldshaper.tooltip.action1": "Establece los bloques colocados por la herramienta en el bloque objetivo.", + "item.create.handheld_worldshaper.tooltip.control2": "Cuando se hace clic derecho en un bloque", + "item.create.handheld_worldshaper.tooltip.action2": "Aplica el _pincel_ y la _herramienta_ actualmente seleccionadas en el lugar deseado.", + "item.create.handheld_worldshaper.tooltip.control3": "Mayús izdo + clic derecho", + "item.create.handheld_worldshaper.tooltip.action3": "Abre la interfaz de configuración.", + + "item.create.tree_fertilizer.tooltip": "FERTILIZANTE PARA ÁRBOLES", + "item.create.tree_fertilizer.tooltip.summary": "Una potente combinación de minerales adecuada para acelerar el crecimiento de los tipos de árboles más comunes.", + "item.create.tree_fertilizer.tooltip.condition1": "Cuando se utiliza en un árbol joven", + "item.create.tree_fertilizer.tooltip.behaviour1": "Hace crecer los árboles _independientemente_ de sus condiciones de _espacio_.", + + "item.create.extendo_grip.tooltip": "AGARRE EXTENDIDO", + "item.create.extendo_grip.tooltip.summary": "¡Boioioing! Aumenta enormemente la _distancia de alcance_ del portador. Se puede alimentar con la presión de aire de un _depósito trasero de cobre_", + "item.create.extendo_grip.tooltip.condition1": "Cuando está fuera de la mano", + "item.create.extendo_grip.tooltip.behaviour1": "Aumenta la _distancia de alcance_ de los objetos usados en la _mano principal_.", + "item.create.extendo_grip.tooltip.condition2": "Mientras se usa un depósito trasero de cobre", + "item.create.extendo_grip.tooltip.behaviour2": "No se utilizará _durabilidad_. En su lugar, la _presión del aire_ se drena desde el tanque", + + "item.create.potato_cannon.tooltip": "CANÓN DE PATATAS", + "item.create.potato_cannon.tooltip.summary": "Fwoomp! Lanza tus verduras caseras a tus enemigos. Se puede alimentar con la presión de aire de un _depósito trasero de cobre_", + "item.create.potato_cannon.tooltip.condition1": "Cuando se usa clic derecho", + "item.create.potato_cannon.tooltip.behaviour1": "_Dispara_ un objeto adecuado desde tu inventario_.", + "item.create.potato_cannon.tooltip.condition2": "Mientras se usa un depósito trasero de cobre", + "item.create.potato_cannon.tooltip.behaviour2": "No se utilizará _durabilidad_. En su lugar, la _presión del aire_ se drena desde el tanque", + + "item.create.filter.tooltip": "FILTRO", + "item.create.filter.tooltip.summary": "Controla las _salidas_ y _entradas_ de los _dispositivos logísticos_ con más precisión, comparándolas con un _conjunto de objetos_ o varios _filtros anidados_.", + "item.create.filter.tooltip.condition1": "Cuando está en la ranura de filtros", + "item.create.filter.tooltip.behaviour1": "Controla el flujo de objetos según su _configuración_.", + "item.create.filter.tooltip.condition2": "Cuando se hace clic derecho", + "item.create.filter.tooltip.behaviour2": "Abre la interfaz de configuración.", + + "item.create.attribute_filter.tooltip": "FILTRO DE ATRIBUTOS", + "item.create.attribute_filter.tooltip.summary": "Controla las _salidas_ y las _entradas_ de los _dispositivos logísticos_ con más precisión, comparándolas con un _conjunto de atributos_ y _categorías_ de objetos.", + "item.create.attribute_filter.tooltip.condition1": "Cuando está en la ranura de filtros", + "item.create.attribute_filter.tooltip.behaviour1": "Controla el flujo de objetos según su _configuración_.", + "item.create.attribute_filter.tooltip.condition2": "Cuando se hace clic derecho", + "item.create.attribute_filter.tooltip.behaviour2": "Abre la interfaz de configuración.", + + "item.create.empty_schematic.tooltip": "ESQUEMA VACÍO", + "item.create.empty_schematic.tooltip.summary": "Se utiliza como 'ingrediente' de las recetas y para escribir en la _tabla de esquemas_.", + + "item.create.schematic.tooltip": "ESQUEMA", + "item.create.schematic.tooltip.summary": "Contiene una estructura para ser posicionada y colocada en el mundo. Posiciona el holograma como desees y utiliza un _cañón de esquemas_ para construirla.", + "item.create.schematic.tooltip.condition1": "Cuando se sostiene en la mano", + "item.create.schematic.tooltip.behaviour1": "Se puede posicionar utilizando las herramientas en pantalla.", + "item.create.schematic.tooltip.control1": "Mayús izdo + clic derecho", + "item.create.schematic.tooltip.action1": "Abre una _interfaz_ para introducir las _coordenadas_ exactas.", + + "item.create.schematic_and_quill.tooltip": "ESQUEMA Y PLUMA", + "item.create.schematic_and_quill.tooltip.summary": "Se utiliza para guardar una estructura de tu mundo en un archivo .nbt.", + "item.create.schematic_and_quill.tooltip.condition1": "Paso 1", + "item.create.schematic_and_quill.tooltip.behaviour1": "Selecciona dos puntos de esquina usando clic derecho.", + "item.create.schematic_and_quill.tooltip.condition2": "Paso 2", + "item.create.schematic_and_quill.tooltip.behaviour2": "[Ctrl] + [RUEDA DEL RATÓN] en las caras para ajustar el tamaño. Clic derecho de nuevo para guardar.", + "item.create.schematic_and_quill.tooltip.control1": "Cuando se hace clic derecho", + "item.create.schematic_and_quill.tooltip.action1": "Selecciona un punto de esquina / confirmar guardar.", + "item.create.schematic_and_quill.tooltip.control2": "Cuando mantiene [Ctrl]", + "item.create.schematic_and_quill.tooltip.action2": "Selecciona puntos en _medio del aire_. Rueda del ratón para ajustar la distancia.", + "item.create.schematic_and_quill.tooltip.control3": "Mayús izdo + clic derecho", + "item.create.schematic_and_quill.tooltip.action3": "_Reinicia_ y elimina la selección.", + + "block.create.schematicannon.tooltip": "CAÑÓN DE ESQUEMAS", + "block.create.schematicannon.tooltip.summary": "Dispara bloques para recrear un _esquema_ desplegado en el mundo. Utiliza objetos de los inventarios adyacentes y _pólvora_ como combustible.", + "block.create.schematicannon.tooltip.condition1": "Cuando se hace clic derecho", + "block.create.schematicannon.tooltip.behaviour1": "Abre la interfaz.", + + "block.create.schematic_table.tooltip": "TABLA DE ESQUEMAS", + "block.create.schematic_table.tooltip.summary": "Escribe los esquemas guardados en un _esquema vacío_.", + "block.create.schematic_table.tooltip.condition1": "Cuando se da un esquema vacío", + "block.create.schematic_table.tooltip.behaviour1": "Carga un archivo elegido de la carpeta de esquemas.", + + "item.create.goggles.tooltip": "GAFAS DEL CONSTRUCTOR", + "item.create.goggles.tooltip.summary": "Un par de gafas para aumentar tu visión con útil información _cinética_.", + "item.create.goggles.tooltip.condition1": "Cuando se llevan puestas", + "item.create.goggles.tooltip.behaviour1": "Muestra _indicadores de color_ correspondientes al _nivel de velocidad_ de un componente cinético colocado, así como el _impacto de estrés_ y la _carga_ de los componentes individuales.", + "item.create.goggles.tooltip.condition2": "Al mirar un medidor", + "item.create.goggles.tooltip.behaviour2": "Muestra información detallada sobre _velocidad_ o _estrés_ de la red a la que está conectado el medidor.", + "item.create.goggles.tooltip.condition3": "Al mirar un contenedor de fluidos", + "item.create.goggles.tooltip.behaviour3": "Muestra información detallada sobre la _carga_ del bloque y los _líquidos_ almacenados en su interior.", + + "item.create.wrench.tooltip": "LLAVE INGLESA", + "item.create.wrench.tooltip.summary": "Una herramienta útil para trabajar en artilugios cinéticos. Se puede utilizar para _rotar_, _desmantelar_ y para _configurar_ componentes.", + "item.create.wrench.tooltip.control1": "Cuando se hace clic derecho en un bloque cinético", + "item.create.wrench.tooltip.action1": "Rota los componentes hacia o desde la cara con la que ha interactuado.", + "item.create.wrench.tooltip.control2": "Mayús izdo + clic derecho", + "item.create.wrench.tooltip.action2": "Desmonta los _componentes cinéticos_ y los devuelve a tu inventario_.", + + "block.create.nozzle.tooltip": "BOQUILLA", + "block.create.nozzle.tooltip.summary": "Se acopla a la parte delantera de un _ventilador revestido_ para distribuir su efecto sobre las entidades en _todas las direcciones_.", + + "block.create.cuckoo_clock.tooltip": "RELOJ DE CUCO", + "block.create.cuckoo_clock.tooltip.summary": "Fina artesanía para decorar un espacio y contar el tiempo.", + "block.create.cuckoo_clock.tooltip.condition1": "Cuando es alimentado por cinética", + "block.create.cuckoo_clock.tooltip.behaviour1": "Muestra la _hora actual_ y toca una melodía dos veces al día. Se activa una vez al mediodía y al anochecer, _en cuanto los jugadores pueden dormir_.", + + "block.create.turntable.tooltip": "PLATAFORMA GIRATORIA", + "block.create.turntable.tooltip.summary": "Convierte la _fuerza rotacional_ en un refinado mareo.", + + "block.create.stockpile_switch.tooltip": "INTERRUPTOR DE ACOPIO", + "block.create.stockpile_switch.tooltip.summary": "Activa una señal de redstone en función de la cantidad de _objetos almacenados_ en el _contenedor_ adjunto. Viene con un práctico filtro. A diferencia de un _comparador, el _interruptor de acopio_ permite la configuración de _umbrales_, a partir de los cuales se invierten las señales.", + "block.create.stockpile_switch.tooltip.condition1": "Cuando se hace clic derecho", + "block.create.stockpile_switch.tooltip.behaviour1": "Abre la interfaz de configuración.", + + "block.create.content_observer.tooltip": "OBSERVADOR DE CONTENIDO", + "block.create.content_observer.tooltip.summary": "_Detecta objetos_ dentro de _contenedores_ y _transportadores_ que coincidan con un _filtro_ configurado. Mientras el _inventario_, la _cinta_ o la _canaleta_ observados _contengan_ un objeto que coincida, este componente emitirá una _señal de redstone_. Cuando un embudo observado _transfiere_ un objeto coincidente, este componente emitirá un _pulso de redstone_.", + + "block.create.adjustable_crate.tooltip": "CAJA AJUSTABLE", + "block.create.adjustable_crate.tooltip.summary": "Este _contenedor de objetos_ permite el control manual de su capacidad. Puede contener hasta _16 pilas_ de cualquier objeto. Soporta _comparadores de redstone_.", + "block.create.adjustable_crate.tooltip.condition1": "Cuando se hace clic derecho", + "block.create.adjustable_crate.tooltip.behaviour1": "Abre la interfaz.", + + "block.create.creative_crate.tooltip": "CAJA CREATIVA", + "block.create.creative_crate.tooltip.summary": "Este _contenedor de objetos_ permite la replicación infinita de cualquier elemento. Colócalo junto a un _cañón de esquemas_ para eliminar cualquier requisito de material.", + "block.create.creative_crate.tooltip.condition1": "Cuando el elemento está en la ranura para filtros", + "block.create.creative_crate.tooltip.behaviour1": "Todo lo que se _extraiga_ de este contenedor proporcionará un suministro _ilimitado_ del elemento especificado. Los objetos _insertados_ en esta caja serán _evitados_.", + + "item.create.creative_blaze_cake.tooltip": "PASTEL CREATIVO", + "item.create.creative_blaze_cake.tooltip.summary": "Un regalo muy especial para los _Quemadores de Blaze_ que permite _controlar su nivel de calor_. Después de comer este pastel, los Quemadores de blaze _nunca se quedarán sin combustible_.", + "item.create.creative_blaze_cake.tooltip.condition1": "Click derecho en un Quemador de blaze", + "item.create.creative_blaze_cake.tooltip.behaviour1": "Bloquea el nivel de calor del Quemador de blaze. Si se utiliza de nuevo, _cicla_ el nivel de calor del Quemador de blaze.", + + "block.create.controller_rail.tooltip": "RAÍL DE CONTROL", + "block.create.controller_rail.tooltip.summary": "Un raíl energizado _unidireccional_ capaz de _controlar con precisión_ la _velocidad de movimiento_ de una vagoneta.", + "block.create.controller_rail.tooltip.condition1": "Cuando es alimentado con redstone", + "block.create.controller_rail.tooltip.behaviour1": "_Acelera_ o _desacelera_ pasando _vagonetas_ correspondientes a la _fuerza de la señal_. Propaga la energía de redstone a los raíles de control adyacentes. Al alimentar dos raíles de control con diferentes intensidades, los carriles entre ellos interpolarán su señal.", + + "item.create.sand_paper.tooltip": "PAPEL DE LIJA", + "item.create.sand_paper.tooltip.summary": "Un papel rugoso que se puede utilizar para _pulir materiales_. Se puede aplicar automáticamente con el _desplegador_.", + "item.create.sand_paper.tooltip.condition1": "Cuando se usa", + "item.create.sand_paper.tooltip.behaviour1": "Aplica un pulido a los objetos sostenidos en la _mano libre_ o tirados en el _suelo_ cuando se _miran_.", + + "item.create.builders_tea.tooltip": "TÉ DEL CONSTRUCTOR", + "item.create.builders_tea.tooltip.summary": "La bebida perfecta para empezar el día. Motivante y saturante.", + + "item.create.refined_radiance.tooltip": "RESPLANDOR REFINADO", + "item.create.refined_radiance.tooltip.summary": "Un material cromático forjado a partir de la _luz absorbida_.", + "item.create.refined_radiance.tooltip.condition1": "Trabajo en progreso", + "item.create.refined_radiance.tooltip.behaviour1": "Los usos para este material estarán disponibles en un próximo lanzamiento.", + + "item.create.shadow_steel.tooltip": "ACERO SOMBRÍO", + "item.create.shadow_steel.tooltip.summary": "Un material cromático forjado en el _vacío_.", + "item.create.shadow_steel.tooltip.condition1": "Trabajo en curso", + "item.create.shadow_steel.tooltip.behaviour1": "Los usos de este material estarán disponibles en una futura versión.", + + "item.create.linked_controller.tooltip": "CONTROLADOR ENLAZADO", + "item.create.linked_controller.tooltip.summary": "Permite el control manual de las frecuencias de _enlaces de redstone_ asignadas a sus seis botones..", + "item.create.linked_controller.tooltip.condition1": "Al hacer clic derecho", + "item.create.linked_controller.tooltip.behaviour1": "Activa el _controlador_. Los _controles de movimiento_ se adquieren mientras está activo.", + "item.create.linked_controller.tooltip.condition2": "Al usar Mayús izdo + clic derecho", + "item.create.linked_controller.tooltip.behaviour2": "Abre la interfaz de configuración manual.", + "item.create.linked_controller.tooltip.condition3": "Al usar clic derecho en un receptor de enlaces de redstone", + "item.create.linked_controller.tooltip.behaviour3": "Activa el _modo de vinculación_, pulsa uno de los _seis controles_ para vincularlo a la _frecuencia de los enlaces_.", + "item.create.linked_controller.tooltip.condition4": "Clic derecho en un atril", + "item.create.linked_controller.tooltip.behaviour4": "Coloca el controlador en el atril para facilitar su activación. (Clic derecho + mayús izq. para recuperarlo)", + + "item.create.diving_helmet.tooltip": "CASCO DE BUCEO", + "item.create.diving_helmet.tooltip.summary": "Junto con un _depósito trasero de cobre_, permite que el usuario pueda respirar bajo el agua durante un tiempo prolongado.", + "item.create.diving_helmet.tooltip.condition1": "Cuando se lleva puesto", + "item.create.diving_helmet.tooltip.behaviour1": "Proporciona el efecto de _respiración acuática_, drenando lentamente la presión de aire del _depósito trasero_.", + + "item.create.copper_backtank.tooltip": "DEPÓSITO TRASERO DE COBRE", + "item.create.copper_backtank.tooltip.summary": "Un tanque portátil para transportar _aire presurizado_.", + "item.create.copper_backtank.tooltip.condition1": "Cuando se lleva puesto", + "item.create.copper_backtank.tooltip.behaviour1": "Proporciona _aire presurizado_ a los equipos que lo requieran.", + "item.create.copper_backtank.tooltip.condition2": "Cuando se coloca y es alimentado por cinética", + "item.create.copper_backtank.tooltip.behaviour2": "Recoge _aire presurizado_ a un ritmo que depende de la velocidad rotacional.", + + "item.create.diving_boots.tooltip": "BOTAS DE BUCEO", + "item.create.diving_boots.tooltip.summary": "Un par de _botas_ pesadas, que permiten atravesar mejor el suelo del océano.", + "item.create.diving_boots.tooltip.condition1": "Cuando se llevan puestas", + "item.create.diving_boots.tooltip.behaviour1": "El portador se hunde rápido y no puede nadar. Concede la capacidad de caminar y saltar bajo el agua. Al portador no le afectarán las _correas mecánicas.", + + "item.create.crafting_blueprint.tooltip": "PLANO DE ELABORACIÓN", + "item.create.crafting_blueprint.tooltip.summary": "Colocado en una pared, puede utilizarse para especificar la disposición de los ingredientes para facilitar la elaboración manual. Cada ranura representa una receta", + "item.create.crafting_blueprint.condition1": "Al hacer clic derecho en una ranura vacía", + "item.create.crafting_blueprint.behaviour1": "Abre un menú que permite configurar una receta y los objetos a mostrar.", + "item.create.crafting_blueprint.condition2": "Al hacer clic derecho en una ranura configurada", + "item.create.crafting_blueprint.behaviour2": "Aplica la receta configurada con los ingredientes que se encuentran en tu inventario. Se puede utilizar para fabricar hasta una pila de objetos.", + + "item.create.minecart_coupling.tooltip": "ENSAMBLADOR DE VAGONETAS", + "item.create.minecart_coupling.tooltip.summary": "_Encadena_ todas tus _vagonetas_ o _artilugios de vagoneta_ para formar un majestuoso _tren_.", + "item.create.minecart_coupling.tooltip.condition1": "Cuando se utiliza en vagonetas", + "item.create.minecart_coupling.tooltip.behaviour1": "_Acopla_ dos vagonetas, intentando mantenerlas a una _distancia constante_ mientras se mueven.", + + "block.create.peculiar_bell.tooltip": "CAMPANA PECULIAR", + "block.create.peculiar_bell.tooltip.summary": "Una campana decorativa de latón. Al colocarla sobre un _Fuego del alma_ o una _Fogata del alma_ puede producirse una transformación espeluznante...", + + "block.create.haunted_bell.tooltip": "CAMPANA ENCANTADA", + "block.create.haunted_bell.tooltip.summary": "Una _campana maldita_ perseguida por las almas perdidas del Nether", + "block.create.haunted_bell.tooltip.condition1": "Cuando se sostiene o suena", + "block.create.haunted_bell.tooltip.behaviour1": "Resalta los _puntos sin luz_ cercanos en los que pueden aparecer las _criaturas hostiles_.", + + + "_": "->------------------------] Ponder Content [------------------------<-", + + "create.ponder.hold_to_ponder": "Mantén [%1$s] para considerar", + "create.ponder.subject": "Tema de esta escena", + "create.ponder.pondering": "Considerando sobre...", + "create.ponder.identify_mode": "Identificando modo activo.\nDespausea con [%1$s]", + "create.ponder.associated": "Entradas asociadas", + "create.ponder.close": "Cerrar", + "create.ponder.identify": "Identificar", + "create.ponder.next": "Escena siguiente", + "create.ponder.previous": "Escena previa", + "create.ponder.replay": "Repetición", + "create.ponder.think_back": "Volver atrás", + "create.ponder.slow_text": "Lectura cómoda", + "create.ponder.exit": "Salir", + "create.ponder.welcome": "Bienvenido al instructivo de Create", + "create.ponder.categories": "Categorías disponibles", + "create.ponder.index_description": "Haga clic en uno de los iconos para conocer sus objetos y bloques asociados", + "create.ponder.index_title": "Índice", + "create.ponder.shared.rpm16": "16 RPM", + "create.ponder.shared.behaviour_modify_wrench": "Este comportamiento puede modificarse mediante una llave inglesa", + "create.ponder.shared.storage_on_contraption": "Los inventarios unidos al artilugio recogerán sus producciones automáticamente", + "create.ponder.shared.sneak_and": "Mayús izdo. +", + "create.ponder.shared.rpm8": "8 RPM", + "create.ponder.shared.ctrl_and": "Ctrl +", + "create.ponder.shared.rpm32": "32 RPM", + "create.ponder.shared.rpm16_source": "Fuente: 16 RPM", + "create.ponder.shared.movement_anchors": "Con la ayuda de un chasis o pegamento, se pueden mover estructuras más grandes.", + "create.ponder.tag.redstone": "Componentes lógicos", + "create.ponder.tag.redstone.description": "Componentes que ayudan a la ingeniería de redstone", + "create.ponder.tag.contraption_assembly": "Utilidades para adjuntar bloques", + "create.ponder.tag.contraption_assembly.description": "Herramientas y componentes utilizados para montar estructuras con movimiento, como un artilugio animado", + "create.ponder.tag.fluids": "Manipuladores de fluidos", + "create.ponder.tag.fluids.description": "Componentes que ayudan a transportar y utilizar fluidos", + "create.ponder.tag.decoration": "Estética", + "create.ponder.tag.decoration.description": "Componentes utilizados principalmente con fines decorativos", + "create.ponder.tag.windmill_sails": "Velas para los rodamientos de los molinos de viento", + "create.ponder.tag.windmill_sails.description": "Bloques que cuentan para la fuerza de un artefacto de molino de viento cuando se ensamblan. Cada uno de ellos tiene la misma eficacia al hacerlo.", + "create.ponder.tag.arm_targets": "Objetivos para los brazos mecánicos", + "create.ponder.tag.arm_targets.description": "Componentes que pueden seleccionarse como entradas o salidas del brazo mecánico", + "create.ponder.tag.kinetic_appliances": "Dispositivos cinéticos", + "create.ponder.tag.kinetic_appliances.description": "Componentes que utilizan la fuerza rotacional", + "create.ponder.tag.kinetic_sources": "Fuentes cinéticas", + "create.ponder.tag.kinetic_sources.description": "Componentes que generan fuerza rotacional", + "create.ponder.tag.movement_anchor": "Anclas de movimiento", + "create.ponder.tag.movement_anchor.description": "Componentes que permiten crear artilugios en movimiento, animando una estructura anexa de diversas maneras", + "create.ponder.tag.kinetic_relays": "Transmisores cinéticos", + "create.ponder.tag.kinetic_relays.description": "Componentes que ayudan a transmitir la fuerza rotacional en otro lugar", + "create.ponder.tag.contraption_actor": "Actores del artilugio", + "create.ponder.tag.contraption_actor.description": "Componentes que exponen un comportamiento especial cuando están unidos a un artilugio en movimiento", + "create.ponder.tag.creative": "Modo creativo", + "create.ponder.tag.creative.description": "Componentes que no suelen estar disponibles para el Modo Supervivencia", + "create.ponder.tag.logistics": "Transporte de objetos", + "create.ponder.tag.logistics.description": "Componentes que ayudan a desplazar los objetos", + + "create.ponder.adjustable_pulse_repeater.header": "Controlar señales mediante repetidores de pulsos ajustables", + "create.ponder.adjustable_pulse_repeater.text_1": "Los repetidores de pulsos ajustables emiten un pulso corto con un retardo", + "create.ponder.adjustable_pulse_repeater.text_2": "Con la rueda del ratón se puede configurar el tiempo de carga", + "create.ponder.adjustable_pulse_repeater.text_3": "Los retrasos configurados pueden ser de hasta 30 minutos", + + "create.ponder.adjustable_repeater.header": "Controlar señales mediante repetidores ajustables", + "create.ponder.adjustable_repeater.text_1": "Los repetidores ajustables se comportan de forma similar a los repetidores normales", + "create.ponder.adjustable_repeater.text_2": "Se cargan durante un tiempo determinado...", + "create.ponder.adjustable_repeater.text_3": "...y se enfrían durante el mismo tiempo", + "create.ponder.adjustable_repeater.text_4": "Con la rueda del ratón se puede configurar el tiempo de carga", + "create.ponder.adjustable_repeater.text_5": "Los retrasos configurados pueden variar hasta 30 minutos", + + "create.ponder.analog_lever.header": "Controlar señales mediante la palanca analógica", + "create.ponder.analog_lever.text_1": "Las palancas analógicas son una fuente compacta y precisa de energía de redstone", + "create.ponder.analog_lever.text_2": "Haz clic derecho para aumentar su potencia analógica", + "create.ponder.analog_lever.text_3": "Usa Mayús izdo + clic derecho para volver a disminuir su potencia", + + "create.ponder.andesite_tunnel.header": "Usar túneles de andesita", + "create.ponder.andesite_tunnel.text_1": "Los túneles de andesita se pueden utilizar para tapar las correas", + "create.ponder.andesite_tunnel.text_2": "Siempre que un túnel de andesita tenga conexiones a los lados...", + "create.ponder.andesite_tunnel.text_3": "...dividirá exactamente un elemento de cualquier pila que pase", + "create.ponder.andesite_tunnel.text_4": "El resto continuará su camino", + + "create.ponder.basin.header": "Procesar objetos en la cuenca", + "create.ponder.basin.text_1": "Una cuenca puede contener objetos y fluidos para su procesamiento", + "create.ponder.basin.text_2": "Después de un paso de procesamamiento, las cuencas intentan descargar por debajo a un lado de ellas", + "create.ponder.basin.text_3": "Cuando un ingrediente válido está presente, la cuenca mostrará un conducto de salida", + "create.ponder.basin.text_4": "Aquí se pueden aplicar varias opciones", + "create.ponder.basin.text_5": "Las salidas serán capturadas por el inventario que está por debajo", + "create.ponder.basin.text_6": "Sin conducto de salida, la cuenca retendrá los objetos creados en su procesamiento", + "create.ponder.basin.text_7": "Esto puede ser útil si las salidas deben ser reutilizadas como ingredientes", + "create.ponder.basin.text_8": "Las salidas deseadas tendrán que ser extraídas de la cuenca", + "create.ponder.basin.text_9": "Podría ser necesario un filtro para evitar sacar los objetos no procesados", + + "create.ponder.bearing_modes.header": "Modos de movimiento del rodamiento mecánico", + "create.ponder.bearing_modes.text_1": "Cuando se detenga, el rodamiento mecánico colocará la estructura en el ángulo más cercano alineado con la cuadrícula", + "create.ponder.bearing_modes.text_2": "Se puede configurar para que nunca vuelva a los bloques sólidos, o sólo cerca del ángulo en el que comenzó", + + "create.ponder.belt_casing.header": "Correas revestidas", + "create.ponder.belt_casing.text_1": "Se puede utilizar revestidor de latón o andesita para decorar las correas", + "create.ponder.belt_casing.text_2": "Se puede utilizar una llave inglesa para quitar el revestimiento", + + "create.ponder.belt_connector.header": "El uso de las correas mecánicas", + "create.ponder.belt_connector.text_1": "Al hacer clic derecho en dos ejes con una correa mecánica se conectarán entre sí", + "create.ponder.belt_connector.text_2": "Las selecciones accidentales pueden ser canceladas con Mayús izdo + clic derecho", + "create.ponder.belt_connector.text_3": "Se pueden añadir ejes adicionales en toda la correa", + "create.ponder.belt_connector.text_4": "Los ejes conectados a través de correas girarán con velocidad y dirección idénticas", + "create.ponder.belt_connector.text_5": "Los ejes añadidos se pueden quitar con la llave inglesa", + "create.ponder.belt_connector.text_6": "Las correas mecánicas se pueden teñir con fines estéticos", + + "create.ponder.belt_directions.header": "Orientaciones válidas para las correas mecánicas", + "create.ponder.belt_directions.text_1": "Las correas mecánicas no pueden conectarse en direcciones arbitrarias", + "create.ponder.belt_directions.text_2": "1. Pueden conectarse horizontalmente", + "create.ponder.belt_directions.text_3": "2. Pueden conectarse en diagonal", + "create.ponder.belt_directions.text_4": "3. Pueden conectarse verticalmente", + "create.ponder.belt_directions.text_5": "4. Y pueden conectar ejes verticales horizontalmente", + "create.ponder.belt_directions.text_6": "Estas son todas las direcciones posibles. Pueden abarcar cualquier longitud entre 2 y 20 bloques", + + "create.ponder.belt_transport.header": "El uso de las correas mecánicas para la logística", + "create.ponder.belt_transport.text_1": "Las correas mecánicas transportan objetos y otras entidades", + "create.ponder.belt_transport.text_2": "Haz clic derecho con la mano vacía para sacar objetos de una 'cinta'", + + "create.ponder.blaze_burner.header": "Alimentar quemadores de blaze", + "create.ponder.blaze_burner.text_1": "Los quemadores de blaze pueden proporcionar calor a los objetos procesados en una cuenca", + "create.ponder.blaze_burner.text_2": "Para ello, el blaze tiene que ser alimentado con objetos inflamables", + "create.ponder.blaze_burner.text_3": "Con un pastel de blaze, el quemador puede alcanzar un mayor nivel de calor", + "create.ponder.blaze_burner.text_4": "El proceso de alimentación puede automatizarse utilizando desplegadores o brazos mecánicos", + + "create.ponder.brass_funnel.header": "El embudo de latón", + "create.ponder.brass_funnel.text_1": "Los embudos de andesita sólo pueden extraer objetos individuales", + "create.ponder.brass_funnel.text_2": "Los embudos de latón pueden extraer hasta una pila completa", + "create.ponder.brass_funnel.text_3": "Usar la rueda de desplazamiento del ratón en la ranura para filtros permite un control preciso del tamaño de la pila extraída.", + "create.ponder.brass_funnel.text_4": "El uso de objetos en la ranura de filtrado restringirá el embudo para transferir sólo las pilas que coincidan.", + + "create.ponder.brass_tunnel.header": "Usar túneles de latón", + "create.ponder.brass_tunnel.text_1": "Los túneles de latón pueden utilizarse para tapar las correas", + "create.ponder.brass_tunnel.text_2": "Tienen ranuras de filtro en cada lado abierto", + "create.ponder.brass_tunnel.text_3": "Los filtros en las conexiones de entrada simplemente bloquean los objetos que no coincidan", + "create.ponder.brass_tunnel.text_4": "Los filtros en las conexiones de salida pueden utilizarse para ordenar los objetos por tipo", + "create.ponder.brass_tunnel.text_5": "Siempre que un objeto de paso tenga múltiples salidas válidas, el modo de distribución decidirá cómo manejarlo", + "create.ponder.brass_tunnel.text_6": "Los túneles de latón en bandas paralelas formarán un grupo", + "create.ponder.brass_tunnel.text_7": "Los objetos entrantes se distribuirán ahora por todas las salidas conectadas", + "create.ponder.brass_tunnel.text_8": "Para ello, los objetos también pueden insertarse en el bloque del túnel directamente", + + "create.ponder.brass_tunnel_modes.header": "Modos de distribución del túnel de latón", + "create.ponder.brass_tunnel_modes.text_1": "Mediante una llave inglesa se puede configurar el comportamiento de distribución de los túneles de latón", + "create.ponder.brass_tunnel_modes.text_10": "'Sincronizar entradas' es una configuración única de los túneles de latón", + "create.ponder.brass_tunnel_modes.text_11": "Las entradas sólo pueden pasar si cada túnel del grupo tiene una en espera", + "create.ponder.brass_tunnel_modes.text_12": "Esto asegura que todas las correas afectadas suministren objetos al mismo tiempo", + "create.ponder.brass_tunnel_modes.text_2": "El modo División intentará distribuir la pila uniformemente entre las salidas disponibles", + "create.ponder.brass_tunnel_modes.text_3": "Si una salida no puede tomar más objetos, se saltará", + "create.ponder.brass_tunnel_modes.text_4": "El modo División forzada nunca saltará las salidas, y en su lugar esperará hasta que estén libres", + "create.ponder.brass_tunnel_modes.text_5": "El modo Round Robin mantiene las pilas enteras, y recorre las salidas de forma iterativa", + "create.ponder.brass_tunnel_modes.text_6": "Una vez más, si una salida no puede aceptar más objetos, se saltará", + "create.ponder.brass_tunnel_modes.text_7": "El modo Round Robin forzado nunca omite salidas", + "create.ponder.brass_tunnel_modes.text_8": "El modo Preferir el más cercano prioriza las salidas más cercanas a la ubicación de entrada de los objetos", + "create.ponder.brass_tunnel_modes.text_9": "El modo Aleatorizar distribuirá pilas enteras a salidas elegidas al azar", + + "create.ponder.cart_assembler.header": "Mover estructuras usando ensambladores de vagonetas", + "create.ponder.cart_assembler.text_1": "Los ensambladores de vagonetas montan estructuras adjuntas a las vagonetas que pasan", + "create.ponder.cart_assembler.text_2": "Sin una señal de redstone, desmonta los artilugios de vagoneta que pasan de nuevo en bloques", + "create.ponder.cart_assembler.text_3": "El uso de una llave inglesa en una vagoneta te permitirá llevar el artilugio a otro lugar", + + "create.ponder.cart_assembler_dual.header": "Ensamblajes de artilugios de vagoneta", + "create.ponder.cart_assembler_dual.text_1": "Siempre que dos ensambladores de vagoneta compartan una estructura adjunta...", + "create.ponder.cart_assembler_dual.text_2": "...al alimentar a cualquiera de ellos se creará un artilugio de vagoneta", + "create.ponder.cart_assembler_dual.text_3": "Las vagonetas se comportarán como las conectadas a través del acoplamiento de vagoneta", + + "create.ponder.cart_assembler_modes.header": "Configurar la orientación de los artilugios de vagonetas", + "create.ponder.cart_assembler_modes.text_1": "Los artilugios de vagonetas girarán para orientarse hacia el movimiento de sus vagonetas", + "create.ponder.cart_assembler_modes.text_2": "Esta flecha indica qué lado de la estructura se considerará la parte delantera", + "create.ponder.cart_assembler_modes.text_3": "Si el ensamblador está configurado para bloquear la rotación, la orientación de los artilugios nunca cambiará", + + "create.ponder.cart_assembler_rails.header": "Otros tipos de vagonetas y raíles", + "create.ponder.cart_assembler_rails.text_1": "Los ensambladores de vagonetas en raíles normales no afectarán el movimiento de las vagonetas que pasen", + "create.ponder.cart_assembler_rails.text_2": "Cuando se encuentre en un raíl motorizado o en un raíl de control, las vagonetas se mantendrán en su sitio hasta que sea motorizado", + "create.ponder.cart_assembler_rails.text_3": "Se pueden utilizar otros tipos de vagonetas como anclaje", + "create.ponder.cart_assembler_rails.text_4": "Los artilugios de vagonetas de horno se mantendrán alimentados a sí mismos, sacando combustible de cualquier inventario adjunto", + + "create.ponder.chain_drive.header": "Transmitir fuerza rotacional con las cadenas de transmisión", + "create.ponder.chain_drive.text_1": "Las cadenas de transmisión transmiten la rotación entre sí en fila", + "create.ponder.chain_drive.text_2": "Todos los ejes conectados así girarán en la misma dirección", + "create.ponder.chain_drive.text_3": "Cualquier parte de la fila puede girar 90 grados usando una llave inglesa", + + "create.ponder.chain_gearshift.header": "Controlar la velocidad de rotación con la cadena de transmisión ajustable", + "create.ponder.chain_gearshift.text_1": "Las cadenas de transmisión ajustables sin alimentación se comportan exactamente como las cadenas de transmisión", + "create.ponder.chain_gearshift.text_2": "Cuando están alimentadas, la velocidad transmitida a las demás cadenas de transmisión de la fila se duplica", + "create.ponder.chain_gearshift.text_3": "Siempre que la cadena de transmisión alimentada no esté en el origen, su velocidad se reducirá a la mitad", + "create.ponder.chain_gearshift.text_4": "En ambos casos, las cadenas de transmisión de la fila siempre funcionan a 2 veces la velocidad de la cadena de transmisión alimentada", + "create.ponder.chain_gearshift.text_5": "Utilizando señales analógicas, la relación puede ajustarse con mayor precisión, entre 1 y 2", + "create.ponder.chain_gearshift.text_6": "12 RPM", + + "create.ponder.chute.header": "Transportar objetos hacia abajo a través de ductos", + "create.ponder.chute.text_1": "Los ductos pueden transportar objetos verticalmente desde y hacia los inventarios", + "create.ponder.chute.text_2": "Usando la llave inglesa, se puede crear una ventana", + "create.ponder.chute.text_3": "Colocar ductos apuntando a las caras laterales de otro lo hará en diagonal", + + "create.ponder.chute_upward.header": "Transportar objetos hacia arriba mediante ductos", + "create.ponder.chute_upward.text_1": "Usando ventiladores revestidos en la parte superior o inferior, un ducto puede transportar objetos hacia arriba", + "create.ponder.chute_upward.text_2": "Al inspeccionar los ductos con las gafas del constructor, se revela información sobre la dirección del movimiento", + "create.ponder.chute_upward.text_3": "En el extremo 'bloqueado', los objetos tendrán que ser insertados/tomados de los lados", + + "create.ponder.clockwork_bearing.header": "Animar estructuras con rodamientos tipo reloj", + "create.ponder.clockwork_bearing.text_1": "Los rodamientos tipo reloj se fijan a los bloques que tienen delante", + "create.ponder.clockwork_bearing.text_2": "Al recibir fuerza rotacional, la estructura girará según la hora del día", + "create.ponder.clockwork_bearing.text_3": "3:00", + "create.ponder.clockwork_bearing.text_4": "4:00", + "create.ponder.clockwork_bearing.text_5": "Haz clic derecho en el rodamiento para iniciar o detener la animación de la estructura", + "create.ponder.clockwork_bearing.text_6": "Delante de la manecilla de las horas se puede añadir una segunda estructura", + "create.ponder.clockwork_bearing.text_7": "Asegúrese de que las dos estructuras no están unidas entre sí con pegamento o algo similar", + "create.ponder.clockwork_bearing.text_8": "La segunda estructura ahora girará como el minutero", + + "create.ponder.clutch.header": "Controlar la fuerza rotacional mediante un embrague", + "create.ponder.clutch.text_1": "Los embragues transmitirán la rotación en línea recta", + "create.ponder.clutch.text_2": "Cuando se alimentan con redstone, rompen la conexión", + + "create.ponder.cog_speedup.header": "Cambiar de marchas con engranajes", + "create.ponder.cog_speedup.text_1": "Los engranajes grandes y pequeños pueden conectarse en diagonal", + "create.ponder.cog_speedup.text_2": "Al cambiar de engranajes grandes a pequeños, la velocidad rotacional se duplicará", + "create.ponder.cog_speedup.text_3": "Inversamente, la velocidad rotacional se reducirá a la mitad", + + "create.ponder.cogwheel.header": "Transmitir fuerza rotacional mediante engranajes", + "create.ponder.cogwheel.text_1": "Los engranajes transmitirán la rotación a otros engranajes adyacentes", + "create.ponder.cogwheel.text_2": "Los ejes adyacentes conectados así, girarán en direcciones opuestas", + + "create.ponder.creative_fluid_tank.header": "Tanque de fluídos creativo", + "create.ponder.creative_fluid_tank.text_1": "Los depósitos de fluidos creativos pueden utilizarse para proporcionar un suministro de fluidos sin fondo", + "create.ponder.creative_fluid_tank.text_2": "Haga clic con el botón derecho en un elemento que contenga fluido para configurarlo", + "create.ponder.creative_fluid_tank.text_3": "Las redes de tuberías pueden ahora extraer sin cesar el fluido asignado del depósito", + "create.ponder.creative_fluid_tank.text_4": "Cualquier fluido empujado de vuelta a un tanque de fluido creativo será anulado", + + "create.ponder.creative_motor.header": "Generar fuerza rotacional con motores creativos", + "create.ponder.creative_motor.text_1": "Los motores creativos son una fuente compacta y configurable de fuerza rotacional", + "create.ponder.creative_motor.text_2": "Usar la rueda de desplazamiento del ratón en su parte trasera cambia las RPM de la salida rotacional", + + "create.ponder.crushing_wheels.header": "Procesar objetos con las ruedas trituradoras", + "create.ponder.crushing_wheels.text_1": "Un par de ruedas trituradoras pueden moler objetos de forma muy eficaz", + "create.ponder.crushing_wheels.text_2": "Su fuerza rotacional tiene que hacerlas girar una contra otra", + "create.ponder.crushing_wheels.text_3": "Los objetos lanzados o insertados en la parte superior serán procesados", + "create.ponder.crushing_wheels.text_4": "Los objetos también pueden ser insertados y recogidos a través de medios automatizados", + + "create.ponder.deployer.header": "Usar el desplegador", + "create.ponder.deployer.text_1": "Dada la fuerza rotacional, un desplegador puede imitar las interacciones de los jugadores", + "create.ponder.deployer.text_10": "Haz clic derecho en el frente para darle un objeto a utilizar", + "create.ponder.deployer.text_11": "Los objetos también pueden ser insertados automáticamente", + "create.ponder.deployer.text_12": "Los desplegadores llevan una ranura de filtro", + "create.ponder.deployer.text_13": "Cuando se establece un filtro, sólo se activa mientras se mantiene un elemento coincidente", + "create.ponder.deployer.text_14": "Ahora sólo se pueden insertar los objetos que coincidan con el filtro...", + "create.ponder.deployer.text_15": "...y sólo se extraerán los objetos que no coincidan", + "create.ponder.deployer.text_2": "Siempre interactuará con la posición 2 bloques delante de sí mismo", + "create.ponder.deployer.text_3": "Los bloques situados directamente delante no lo obstruirán", + "create.ponder.deployer.text_4": "Los desplegadores pueden:", + "create.ponder.deployer.text_5": "Colocar bloques,", + "create.ponder.deployer.text_6": "Usar objetos,", + "create.ponder.deployer.text_7": "Activar bloques,", + "create.ponder.deployer.text_8": "Cosechar bloques", + "create.ponder.deployer.text_9": "Y atacar criaturas", + + "create.ponder.deployer_contraption.header": "Usar desplegadores en artilugios", + "create.ponder.deployer_contraption.text_1": "Siempre que los desplegadores se muevan como parte de un artilugio animado...", + "create.ponder.deployer_contraption.text_2": "Se activan en cada ubicación visitada, utilizando objetos de los inventarios de cualquier parte del artilugio", + "create.ponder.deployer_contraption.text_3": "La ranura para filtros se puede utilizar para especificar qué objetos tirar", + + "create.ponder.deployer_modes.header": "Modos del desplegador", + "create.ponder.deployer_modes.text_1": "Por defecto, un desplegador imita la interacción del clic derecho del ratón", + "create.ponder.deployer_modes.text_2": "Usando una llave inglesa, se puede configurar para imitar un clic izquierdo en su lugar", + + "create.ponder.deployer_processing.header": "Procesar objetos mediante desplegadores", + "create.ponder.deployer_processing.text_1": "Con un objeto de sujeción ajustado, los desplegadores pueden procesar los objetos proporcionados por debajo de ellos", + "create.ponder.deployer_processing.text_2": "Los objetos de entrada pueden soltarse o colocarse en un depósito bajo el desplegador", + "create.ponder.deployer_processing.text_3": "Cuando los objetos se proporcionan en una 'cinta'...", + "create.ponder.deployer_processing.text_4": "El desplegador los retendrá y procesará automáticamente", + + "create.ponder.deployer_redstone.header": "Controlar desplegadores con redstone", + "create.ponder.deployer_redstone.text_1": "Al controlar los desplegadores con redstone, éstos no se activarán", + "create.ponder.deployer_redstone.text_2": "Antes de detenerse, el desplegador terminará cualquier ciclo iniciado", + "create.ponder.deployer_redstone.text_3": "Por lo tanto, un pulso negativo puede ser utilizado para desencadenar exactamente un ciclo de activación", + + "create.ponder.depot.header": "Usar depósitos", + "create.ponder.depot.text_1": "Los depósitos pueden servir como objetos 'fijos' de la correa", + "create.ponder.depot.text_2": "Haz clic derecho para colocar o eliminar manualmente objetos del mismo", + "create.ponder.depot.text_3": "Al igual que las correas mecánicas, pueden proporcionar objetos para su procesamiento", + "create.ponder.depot.text_4": "...así como proporcionar objetos a los brazos mecánicos", + + "create.ponder.empty_blaze_burner.header": "Usar quemadores de blaze vacíos", + "create.ponder.empty_blaze_burner.text_1": "Haz clic derecho en un blaze con el quemador vacío para capturarlo", + "create.ponder.empty_blaze_burner.text_2": "Alternativamente, los blaze pueden ser recogidos de sus spawners directamente", + "create.ponder.empty_blaze_burner.text_3": "Ahora tienes una fuente de calor ideal para varias máquinas", + "create.ponder.empty_blaze_burner.text_4": "Por motivos estéticos, los quemadores de blaze vacíos también se pueden encender con pedernal y acero", + "create.ponder.empty_blaze_burner.text_5": "La llama puede transformarse utilizando un objeto con alma", + "create.ponder.empty_blaze_burner.text_6": "Sin embargo, no son adecuados para la calefacción industrial", + + "create.ponder.encased_fluid_pipe.header": "Revestir tuberías de fluídos", + "create.ponder.encased_fluid_pipe.text_1": "El revestidor de cobre puede utilizarse para decorar las tuberías de fluidos", + "create.ponder.encased_fluid_pipe.text_2": "Además de estar ocultas, las tuberías revestidas están bloqueadas en su estado de conectividad", + "create.ponder.encased_fluid_pipe.text_3": "Ya no reaccionará a los bloques vecinos que se añadan o eliminen", + + "create.ponder.fan_direction.header": "El flujo de aire de los ventiladores revestidos", + "create.ponder.fan_direction.text_1": "Los ventiladores revestidos utilizan la fuerza rotacional para crear una corriente de aire", + "create.ponder.fan_direction.text_2": "La fuerza y la dirección del flujo dependen de la fuerza rotacional suministrada", + + "create.ponder.fan_processing.header": "Procesar objetos mediante ventiladores revestidos", + "create.ponder.fan_processing.text_1": "Al pasar por lava, el flujo de aire se calienta", + "create.ponder.fan_processing.text_2": "Los objetos capturados en la zona serán fundidos", + "create.ponder.fan_processing.text_3": "Los artículos de comida arrojados aquí serán incinerados", + "create.ponder.fan_processing.text_4": "En su lugar, se debería utilizar una instalación de ahumado, usando fuego", + "create.ponder.fan_processing.text_5": "Los flujos de aire que pasan por el agua crean una instalación de lavado", + "create.ponder.fan_processing.text_6": "Se puede hacer un nuevo e interesante procesamiento con él", + "create.ponder.fan_processing.text_7": "La velocidad del ventilador NO afecta a la velocidad de procesamiento, sólo a su rango", + "create.ponder.fan_processing.text_8": "El procesamiento del ventilador también puede aplicarse a los objetos de los depósitos y las correas", + + "create.ponder.fan_source.header": "Generar fuerza rotacional mediante ventiladores revestidos", + "create.ponder.fan_source.text_1": "Los ventiladores orientados hacia una fuente de calor pueden proporcionar fuerza rotacional", + "create.ponder.fan_source.text_2": "Cuando se les da una señal de redstone, los ventiladores comenzarán a proporcionar fuerza", + + "create.ponder.fluid_pipe_flow.header": "Transportar fluidos mediante tuberías de cobre", + "create.ponder.fluid_pipe_flow.text_1": "Las tuberías de fluidos pueden conectar dos o más fuentes y objetivos de fluidos", + "create.ponder.fluid_pipe_flow.text_2": "Utilizando una llave, se puede dar a un segmento de tubo recto una ventana", + "create.ponder.fluid_pipe_flow.text_3": "Las tuberías con ventanas no se conectarán a ningún otro segmento de tubería adyacente", + "create.ponder.fluid_pipe_flow.text_4": "Accionadas por bombas mecánicas, las tuberías pueden transportar fluidos", + "create.ponder.fluid_pipe_flow.text_5": "Al principio no se extrae ningún líquido", + "create.ponder.fluid_pipe_flow.text_6": "Una vez que el flujo los conecta, los puntos finales transfieren gradualmente su contenido", + "create.ponder.fluid_pipe_flow.text_7": "Así, los bloques de tuberías nunca contienen 'físicamente' ningún fluido", + + "create.ponder.fluid_pipe_interaction.header": "Drenaje y llenado de contenedores de fluidos", + "create.ponder.fluid_pipe_interaction.text_1": "Los puntos finales de una red de tuberías pueden interactuar con una variedad de bloques", + "create.ponder.fluid_pipe_interaction.text_2": "Cualquier bloque con capacidad para almacenar fluidos puede ser llenado o vaciado", + "create.ponder.fluid_pipe_interaction.text_3": "Los bloques de origen justo delante de un extremo abierto pueden ser recogidos...", + "create.ponder.fluid_pipe_interaction.text_4": "...mientras que el derrame en espacios vacíos puede crear fuentes de fluidos", + "create.ponder.fluid_pipe_interaction.text_5": "Las tuberías también pueden extraer fluidos de un puñado de otros bloques directamente", + + "create.ponder.fluid_tank_sizes.header": "Dimensiones de un depósito de fluidos", + "create.ponder.fluid_tank_sizes.text_1": "Los depósitos de fluidos pueden combinarse para aumentar la capacidad total", + "create.ponder.fluid_tank_sizes.text_2": "Su cuadrado base puede tener hasta 3 bloques de ancho...", + "create.ponder.fluid_tank_sizes.text_3": "...y crecen en altura en más de 30 capas adicionales", + "create.ponder.fluid_tank_sizes.text_4": "Con una llave inglesa, se puede cambiar la ventana de un tanque", + + "create.ponder.fluid_tank_storage.header": "Almacenar fluidos en depósitos de fluidos", + "create.ponder.fluid_tank_storage.text_1": "Los depósitos de fluidos pueden utilizarse para almacenar grandes cantidades de fluidos", + "create.ponder.fluid_tank_storage.text_2": "Las redes de tuberías pueden empujar y arrastrar fluidos desde cualquier lado", + "create.ponder.fluid_tank_storage.text_3": "El fluido contenido puede ser medido por un Comparador", + "create.ponder.fluid_tank_storage.text_4": "Sin embargo, en el Modo Supervivencia no se pueden añadir o tomar fluidos manualmente", + "create.ponder.fluid_tank_storage.text_5": "Puede utilizar cuencas, drenadores de objetos y tuberías para vaciar o llenar objetos que contengan líquido", + + "create.ponder.flywheel.header": "Generar fuerza rotacional con la rueda de inercia", + "create.ponder.flywheel.text_1": "Las ruedas de inercia son necesarias para generar fuerza rotacional con el motor de horno", + "create.ponder.flywheel.text_2": "La fuerza rotacional proporcionada tiene una capacidad de estrés muy grande", + "create.ponder.flywheel.text_3": "El uso de un alto horno duplicará la eficiencia del motor", + + "create.ponder.funnel_compat.header": "Compatibilidades con el embudo", + "create.ponder.funnel_compat.text_1": "Los embudos deberían interactuar bien con un puñado de otros componentes", + "create.ponder.funnel_compat.text_2": "Sierras verticales", + "create.ponder.funnel_compat.text_3": "Depósitos", + "create.ponder.funnel_compat.text_4": "Drenadores de objetos", + + "create.ponder.funnel_direction.header": "Dirección de la transferencia", + "create.ponder.funnel_direction.text_1": "Colocado normalmente, extrae objetos del inventario", + "create.ponder.funnel_direction.text_2": "Colocado mientras pulsa Mayús izdo, pone objetos en el inventario", + "create.ponder.funnel_direction.text_3": "Usando una llave inglesa, el embudo puede ser volteado después de su colocación", + "create.ponder.funnel_direction.text_4": "Se aplicarán las mismas reglas para la mayoría de las orientaciones", + "create.ponder.funnel_direction.text_5": "Los embudos en las correas extraerán/insertarán dependiendo de su dirección de movimiento", + + "create.ponder.funnel_intro.header": "Usar embudos", + "create.ponder.funnel_intro.text_1": "Los embudos son ideales para transferir objetos desde y hacia los inventarios", + + "create.ponder.funnel_redstone.header": "Embudos alimentados con redstone", + "create.ponder.funnel_redstone.text_1": "La energía de redstone impedirá la actuación de cualquier embudo", + + "create.ponder.funnel_transfer.header": "Transferencia directa", + "create.ponder.funnel_transfer.text_1": "Los embudos no pueden transferir nunca entre inventarios cerrados directamente", + "create.ponder.funnel_transfer.text_2": "Los ductos o los ductos inteligentes podrían ser más adecuados para estos fines", + "create.ponder.funnel_transfer.text_3": "Lo mismo se aplica para el movimiento horizontal. Una correa mecánica debería ayudar aquí", + + "create.ponder.furnace_engine.header": "Generar fuerza rotacional con el motor de horno", + "create.ponder.furnace_engine.text_1": "Los motores de horno generan fuerza rotacional mientras su horno adjunto está funcionando", + "create.ponder.furnace_engine.text_2": "La fuerza rotacional proporcionada tiene una capacidad de estrés muy grande", + "create.ponder.furnace_engine.text_3": "El uso de un alto horno duplicará la eficiencia del motor", + + "create.ponder.gantry_carriage.header": "Usar carros de grúa", + "create.ponder.gantry_carriage.text_1": "Los carros de grúa pueden montarse y deslizarse a lo largo de un eje de grúa", + "create.ponder.gantry_carriage.text_2": "Las instalaciones de grúa pueden mover bloques adjuntos", + + "create.ponder.gantry_cascaded.header": "Grúas en cascada", + "create.ponder.gantry_cascaded.text_1": "Los ejes de grúas se unen a un carro de grúa sin necesidad de pegamento", + "create.ponder.gantry_cascaded.text_2": "Lo mismo se aplica a los carros de grúa en los ejes de grúas desplazados", + "create.ponder.gantry_cascaded.text_3": "Así, un sistema de grúas puede estar en cascada para cubrir múltiples ejes de movimiento", + + "create.ponder.gantry_direction.header": "Dirección del movimiento de la grúa", + "create.ponder.gantry_direction.text_1": "Los ejes de grúa pueden tener orientaciones opuestas", + "create.ponder.gantry_direction.text_2": "La dirección de movimiento de los carros de grúa depende de la orientación de sus ejes", + "create.ponder.gantry_direction.text_3": "...así como de su sentido de rotación", + "create.ponder.gantry_direction.text_4": "Se aplican las mismas reglas para la rotación propagada", + + "create.ponder.gantry_redstone.header": "Propagación de la potencia de la grúa", + "create.ponder.gantry_redstone.text_1": "Los ejes de grúa alimentados con redstone dejan de mover sus carros", + "create.ponder.gantry_redstone.text_2": "En su lugar, su fuerza rotacional se transmite al eje de salida de los carros", + + "create.ponder.gantry_shaft.header": "Usar ejes de grúa", + "create.ponder.gantry_shaft.text_1": "Los ejes de grúa forman la base de una instalación de grúas. Los carros adjuntos se moverán a lo largo de ellos", + "create.ponder.gantry_shaft.text_2": "Las instalaciones de grúas pueden mover los bloques adjuntos", + + "create.ponder.gearbox.header": "Transmitir fuerza rotacional mediante cajas de transmisión", + "create.ponder.gearbox.text_1": "Saltar entre ejes de rotación puede volverse voluminoso rápidamente", + "create.ponder.gearbox.text_2": "Una caja de transmisión es el equivalente más compacto de esta configuración", + "create.ponder.gearbox.text_3": "Los ejes giran en las direcciones reflejadas...", + "create.ponder.gearbox.text_4": "...esto quiere decir que las conexiones rectas se invierten", + + "create.ponder.gearshift.header": "Controlar la dirección rotacional mediante una caja de cambios", + "create.ponder.gearshift.text_1": "La caja de cambios transmitirá la rotación en línea recta", + "create.ponder.gearshift.text_2": "Cuando es alimentada con redstone, invierte la transmisión", + + "create.ponder.hand_crank.header": "Generar fuerza rotacional mediante manivelas", + "create.ponder.hand_crank.text_1": "Las manivelas pueden ser utilizadas para aplicar fuerza rotacional manualmente", + "create.ponder.hand_crank.text_2": "Mantén pulsado clic derecho para girar en sentido antihorario", + "create.ponder.hand_crank.text_3": "Su velocidad de transmisión es relativamente alta", + "create.ponder.hand_crank.text_4": "Mayús izdo + clic derecho pulsado para girar en sentido horario", + + "create.ponder.hose_pulley.header": "Llenado y vaciado de fuentes mediante poleas de manguera", + "create.ponder.hose_pulley.text_1": "Las poleas para mangueras pueden utilizarse para llenar o drenar grandes masas de fluido", + "create.ponder.hose_pulley.text_2": "Con entrada cinética, se puede controlar la altura de la manguera de las poleas", + "create.ponder.hose_pulley.text_3": "La polea se retrae mientras la rotación de entrada se invierte", + "create.ponder.hose_pulley.text_4": "En el lado opuesto, se pueden conectar las tuberías", + "create.ponder.hose_pulley.text_5": "Las redes de tuberías conectadas pueden proporcionar fluido a la manguera...", + "create.ponder.hose_pulley.text_6": "...o tirar de él, vaciando la piscina en su lugar", + "create.ponder.hose_pulley.text_7": "La velocidad de llenado y vaciado de la polea depende totalmente del caudal de las redes de fluidos", + + "create.ponder.hose_pulley_infinite.header": "Llenado y drenaje pasivo de grandes masas de fluido", + "create.ponder.hose_pulley_infinite.text_1": "Al desplegar la polea de manguera en un océano lo suficientemente grande...", + "create.ponder.hose_pulley_infinite.text_2": "Proporcionará/eliminará fluidos sin afectar a la fuente", + "create.ponder.hose_pulley_infinite.text_3": "Las redes de tuberías pueden llevar fluidos de forma ilimitada desde/hacia dichas poleas", + + "create.ponder.hose_pulley_level.header": "Nivel de llenado y vaciado de las poleas de las mangueras", + "create.ponder.hose_pulley_level.text_1": "Mientras esté totalmente retraída, la polea de la manguera no puede funcionar", + "create.ponder.hose_pulley_level.text_2": "El drenaje va de arriba a abajo", + "create.ponder.hose_pulley_level.text_3": "El nivel de la superficie terminará justo debajo de donde termina la manguera", + "create.ponder.hose_pulley_level.text_4": "El llenado va de abajo a arriba", + "create.ponder.hose_pulley_level.text_5": "La piscina llena no crecerá más allá de la capa por encima del extremo de la manguera", + + "create.ponder.item_drain.header": "Vaciar contenedores de fluidos mediante drenajes de objetos", + "create.ponder.item_drain.text_1": "Los drenajes de objetos pueden extraer los fluidos de los objetos", + "create.ponder.item_drain.text_2": "Haz clic derecho para verter los fluidos de tu objeto retenido en él", + "create.ponder.item_drain.text_3": "Cuando los artículos se insertan desde el lado...", + "create.ponder.item_drain.text_4": "...ruedan a través, vaciando su líquido contenido", + "create.ponder.item_drain.text_5": "Las redes de tuberías pueden ahora extraer el fluido del buffer interno de los desagües", + + "create.ponder.large_cogwheel.header": "Transmitir fuerza rotacional mediante engranajes grandes", + "create.ponder.large_cogwheel.text_1": "Los engranajes grandes pueden conectarse entre sí en ángulo recto", + "create.ponder.large_cogwheel.text_2": "Ayudarán a transmitir la velocidad transportada a otros ejes de rotación.", + + "create.ponder.linear_chassis_attachment.header": "Fijar bloques mediante el chasis lineal", + "create.ponder.linear_chassis_attachment.text_1": "Las caras abiertas de un chasis lineal pueden hacerse pegajosas", + "create.ponder.linear_chassis_attachment.text_2": "Haz clic de nuevo para que se pegue el lado opuesto", + "create.ponder.linear_chassis_attachment.text_3": "Mayús izdo + clic derecho con la mano vacía para eliminar el pegamento", + "create.ponder.linear_chassis_attachment.text_4": "Las caras pegadas del chasis lineal fijarán una línea de bloques delante de él", + "create.ponder.linear_chassis_attachment.text_5": "Utilizando una llave inglesa, se puede especificar un rango preciso", + "create.ponder.linear_chassis_attachment.text_6": "Manteniendo pulsada la tecla [Ctrl] y usando la rueda central del ratón, se ajusta el rango de todos los bloques de chasis adjuntos", + "create.ponder.linear_chassis_attachment.text_7": "Para fijar los bloques a cualquier otro lado es necesario utilizar pegamento", + "create.ponder.linear_chassis_attachment.text_8": "Utilizando esta mecánica, las estructuras de cualquier forma pueden moverse como un artilugio", + + "create.ponder.linear_chassis_group.header": "Mover chasis lineales en grupos", + "create.ponder.linear_chassis_group.text_1": "Los chasis lineales se conectan a los bloques de chasis idénticos que se encuentren a su lado", + "create.ponder.linear_chassis_group.text_2": "Cuando uno es movido por un artilugio, los otros son arrastrados con él", + "create.ponder.linear_chassis_group.text_3": "Los chasis de otro tipo u orientados en otra dirección no se fijan", + + "create.ponder.mechanical_arm.header": "Configurar los brazos mecánicos", + "create.ponder.mechanical_arm.text_1": "A los brazos mecánicos hay que asignarles sus entradas y salidas antes de colocarlos", + "create.ponder.mechanical_arm.text_2": "Clic derecho en los inventarios mientras mantiene el brazo mecánico para asignarlos como objetivos", + "create.ponder.mechanical_arm.text_3": "Clic derecho denuevo para alternar entre la entrada (azul) y la salida (naranja)", + "create.ponder.mechanical_arm.text_4": "Clic izquierdo en los componentes para eliminar su selección", + "create.ponder.mechanical_arm.text_5": "Una vez colocado, el brazo mecánico apuntará a los bloques seleccionados previamente", + "create.ponder.mechanical_arm.text_6": "Pueden tener cualquier cantidad de entradas y salidas dentro de su rango", + "create.ponder.mechanical_arm.text_7": "Sin embargo, no se puede interactuar directamente con todos los tipos de inventario", + "create.ponder.mechanical_arm.text_8": "Los embudos y depósitos pueden ayudar a salvar esa distancia", + + "create.ponder.mechanical_arm_filtering.header": "Filtrar salidas del brazo mecánico", + "create.ponder.mechanical_arm_filtering.text_1": "Entradas", + "create.ponder.mechanical_arm_filtering.text_2": "Salidas", + "create.ponder.mechanical_arm_filtering.text_3": "A veces es conveniente restringir los objetivos del brazo mecánico haciendo coincidir un filtro", + "create.ponder.mechanical_arm_filtering.text_4": "Por sí mismos no ofrecen ninguna opción de filtrado", + "create.ponder.mechanical_arm_filtering.text_5": "Sin embargo, los embudos de latón como objetivos comunican su propio filtro al brazo", + "create.ponder.mechanical_arm_filtering.text_6": "El brazo mecánico es lo suficientemente inteligente como para no recoger objetos que no podría distribuir", + + "create.ponder.mechanical_arm_modes.header": "Modos de distribución del brazo mecánico", + "create.ponder.mechanical_arm_modes.text_1": "Entradas", + "create.ponder.mechanical_arm_modes.text_2": "Salidas", + "create.ponder.mechanical_arm_modes.text_3": "Siempre que un brazo tenga que elegir entre varias salidas válidas...", + "create.ponder.mechanical_arm_modes.text_4": "...funcionará según su configuración", + "create.ponder.mechanical_arm_modes.text_5": "Usando la rueda del ratón con una llave inglesa te permitirá configurarlo", + "create.ponder.mechanical_arm_modes.text_6": "El modo Round Robin simplemente hace un ciclo a través de todas las salidas que están disponibles", + "create.ponder.mechanical_arm_modes.text_7": "Si una salida no puede admitir más objetos, se omitirá", + "create.ponder.mechanical_arm_modes.text_8": "El modo Round Robin forzado nunca omitirá las salidas, sino que esperará a que estén libres", + "create.ponder.mechanical_arm_modes.text_9": "Preferir el primero da prioridad a las salidas seleccionadas anteriormente al configurar este brazo", + + "create.ponder.mechanical_arm_redstone.header": "Controlar brazos mecánicos con redstone", + "create.ponder.mechanical_arm_redstone.text_1": "Cuando se alimentan con redstone, los brazos mecánicos no se activan", + "create.ponder.mechanical_arm_redstone.text_2": "Antes de detenerse, terminará los ciclos iniciados", + "create.ponder.mechanical_arm_redstone.text_3": "Así, un pulso negativo puede utilizarse para activar exactamente un ciclo de activación", + + "create.ponder.mechanical_bearing.header": "Mover estructuras mediante el rodamiento mecánico", + "create.ponder.mechanical_bearing.text_1": "Los rodamientos mecánicos se fijan al bloque que tienen delante", + "create.ponder.mechanical_bearing.text_2": "Al recibir fuerza rotacional, la ensamblará en un artilugio giratorio", + + "create.ponder.mechanical_crafter.header": "Configurar ensambladores mecánicos", + "create.ponder.mechanical_crafter.text_1": "Se puede utilizar una serie de ensambladores mecánicos para automatizar cualquier receta de elaboración.", + "create.ponder.mechanical_crafter.text_2": "Usando una llave inglesa, puedes establecer los caminos de los ensambladores ", + "create.ponder.mechanical_crafter.text_3": "Para que la configuración sea válida, todos los caminos tienen que converger en una salida, en cualquiera de los lados", + "create.ponder.mechanical_crafter.text_4": "Los puertos de salida de objetos se colocarán en un inventario a la salida", + "create.ponder.mechanical_crafter.text_5": "Los ensambladores mecánicos requieren fuerza rotacional para funcionar", + "create.ponder.mechanical_crafter.text_6": "Haga clic derecho en la parte delantera para insertar objetos manualmente", + "create.ponder.mechanical_crafter.text_7": "Una vez que cada ranura de una ruta contenga un objeto, comenzará el proceso de elaboración", + "create.ponder.mechanical_crafter.text_8": "Para las recetas que no ocupen totalmente la instalación del ensamblador, se puede forzar el arranque utilizando un pulso de redstone", + + "create.ponder.mechanical_crafter_connect.header": "Conectar inventarios a los ensambladores mecánicos", + "create.ponder.mechanical_crafter_connect.text_1": "Los objetos pueden ser insertados a los ensambladores mecánicos automáticamente", + "create.ponder.mechanical_crafter_connect.text_2": "Utilizando la llave inglesa a sus espaldas, las entradas pueden combinarse", + "create.ponder.mechanical_crafter_connect.text_3": "Ahora se puede acceder a todos los ensambladores mecánicos conectados por la misma ubicación de entrada", + + "create.ponder.mechanical_crafter_covers.header": "Cubrir las ranuras de los ensambladores mecánicos", + "create.ponder.mechanical_crafter_covers.text_1": "Algunas recetas requerirán ensambladores mecánicos adicionales para salvar las brechas en el camino", + "create.ponder.mechanical_crafter_covers.text_2": "Utilizando las tapas de ranuras del ensamblador mecánico, pueden actuar como una ranura vacía a su disposición", + "create.ponder.mechanical_crafter_covers.text_3": "Las entradas compartidas creadas con la llave inglesa en la parte posterior también pueden llegar a través de los ensambladores revestidos", + + "create.ponder.mechanical_drill.header": "Romper bloques con el taladro mecánico", + "create.ponder.mechanical_drill.text_1": "Cuando se le aplica fuerza rotacional, el taladro mecánico rompe los bloques que tiene delante.", + "create.ponder.mechanical_drill.text_2": "Su velocidad de trabajo depende de la fuerza rotacional suministrada", + + "create.ponder.mechanical_drill_contraption.header": "Usar taladros mecánicos en artilugios", + "create.ponder.mechanical_drill_contraption.text_1": "Siempre que los taladros mecánicos se muevan como parte de un artilugio animado...", + "create.ponder.mechanical_drill_contraption.text_2": "...romperán los bloques por los que artilugio los hace pasar", + + "create.ponder.mechanical_harvester.header": "Utilizar cosechadoras mecánicas en artilugios", + "create.ponder.mechanical_harvester.text_1": "Siempre que las cosechadoras mecánicas se muevan como parte de un artilugio animado...", + "create.ponder.mechanical_harvester.text_2": "...recogerán y repondrán los cultivos maduros en su camino", + + "create.ponder.mechanical_mixer.header": "Procesar objetos con la mezcladora mecánica", + "create.ponder.mechanical_mixer.text_1": "Con una mezcladora mecánica y una cuenca, se pueden automatizar algunas recetas", + "create.ponder.mechanical_mixer.text_2": "Las recetas disponibles incluyen cualquier receta de elaboración amorfa, además de un par de recetas adicionales", + "create.ponder.mechanical_mixer.text_3": "Algunas de esas recetas pueden requerir el calor de un quemador de blaze", + "create.ponder.mechanical_mixer.text_4": "La ranura para filtros se puede utilizar en caso de que dos recetas sean conflictivas.", + + "create.ponder.mechanical_piston.header": "Mover estructuras mediante pistones mecánicos", + "create.ponder.mechanical_piston.text_1": "Los pistones mecánicos pueden mover los bloques que tienen delante", + "create.ponder.mechanical_piston.text_2": "La velocidad y la dirección del movimiento dependen de la fuerza rotacional suministrada", + "create.ponder.mechanical_piston.text_3": "Los pistones mecánicos pegajosos pueden tirar de los bloques unidos hacia atrás", + + "create.ponder.mechanical_piston_modes.header": "Modos de movimiento del pistón mecánico", + "create.ponder.mechanical_piston_modes.text_1": "Cuando los pistones mecánicos dejan de moverse, la estructura movida vuelve a los bloques", + "create.ponder.mechanical_piston_modes.text_2": "Puede configurarse para que no vuelva nunca a los bloques sólidos, o sólo en la ubicación en la que comenzó", + + "create.ponder.mechanical_plough.header": "Utilizar arados mecánicos en los artilugios", + "create.ponder.mechanical_plough.text_1": "Cuando los arados mecánicos se mueven como parte de un artilugio animado...", + "create.ponder.mechanical_plough.text_2": "...romperán los bloques sin un hitbox de colisión sólido", + "create.ponder.mechanical_plough.text_3": "Además, pueden crear tierras de cultivo", + "create.ponder.mechanical_plough.text_4": "...también pueden lanzar entidades sin dañarlas", + + "create.ponder.mechanical_press.header": "Procesar objetos con la prensa mecánica", + "create.ponder.mechanical_press.text_1": "La prensa mecánica puede procesar los objetos proporcionados por debajo de ella", + "create.ponder.mechanical_press.text_2": "Los objetos de entrada pueden soltarse o colocarse en un depósito bajo la prensa", + "create.ponder.mechanical_press.text_3": "Cuando los objetos se proporcionan en una 'cinta'...", + "create.ponder.mechanical_press.text_4": "...la prensa mecánica los retendrá y procesará automáticamente", + + "create.ponder.mechanical_press_compacting.header": "Compactar objetos con la prensa mecánica", + "create.ponder.mechanical_press_compacting.text_1": "Al presionar los objetos que se encuentran en una cuenca, éstos se compactan.", + "create.ponder.mechanical_press_compacting.text_2": "La compactación incluye cualquier receta de elaboración de 2x2 o 3x3 rellena, además de un par extra", + "create.ponder.mechanical_press_compacting.text_3": "Algunas de esas recetas pueden requerir el calor de un quemador de blaze", + "create.ponder.mechanical_press_compacting.text_4": "La ranura para filtros se puede utilizar en caso de que dos recetas sean conflictivas.", + + "create.ponder.mechanical_pump_flow.header": "Transportar fluidos mediante bombas mecánicas", + "create.ponder.mechanical_pump_flow.text_1": "Las bombas mecánicas gobiernan el flujo de sus redes de tuberías anexas", + "create.ponder.mechanical_pump_flow.text_2": "Cuando están alimentadas, su flecha indica la dirección del flujo", + "create.ponder.mechanical_pump_flow.text_3": "La red de atrás está ahora tirando de fluidos...", + "create.ponder.mechanical_pump_flow.text_4": "...mientras la red de enfrente la transfiere hacia el exterior", + "create.ponder.mechanical_pump_flow.text_5": "Al invertir la rotación de la entrada se invierte el sentido del flujo", + "create.ponder.mechanical_pump_flow.text_6": "Utilice una llave inglesa para invertir la orientación de las bombas manualmente", + + "create.ponder.mechanical_pump_speed.header": "Rendimiento de las bombas mecánicas", + "create.ponder.mechanical_pump_speed.text_1": "Independientemente de la velocidad, las bombas mecánicas afectan a las tuberías conectadas hasta 16 bloques de distancia", + "create.ponder.mechanical_pump_speed.text_2": "Acelerar la rotación de entrada cambia la velocidad de propagación del flujo...", + "create.ponder.mechanical_pump_speed.text_3": "...así como la rapidez con la que se transfieren los fluidos", + "create.ponder.mechanical_pump_speed.text_4": "Las bombas pueden combinar sus rendimientos en redes de tuberías compartidas", + "create.ponder.mechanical_pump_speed.text_5": "Alternar su orientación puede ayudar a alinear sus direcciones de flujo", + + "create.ponder.mechanical_saw_breaker.header": "Cortar árboles con la sierra mecánica", + "create.ponder.mechanical_saw_breaker.text_1": "Cuando se le da una fuerza rotacional, la sierra mecánica cortará los árboles que estén directamente frente a ella", + "create.ponder.mechanical_saw_breaker.text_2": "Para poder cortar el árbol por completo, la sierra tiene que romper el último bloque que lo une al suelo", + + "create.ponder.mechanical_saw_contraption.header": "Utilizar sierras mecánicas en artilugios", + "create.ponder.mechanical_saw_contraption.text_1": "Cuando las sierras mecánicas se mueven como parte de un artilugio animado...", + "create.ponder.mechanical_saw_contraption.text_2": "...cortarán cualquier árbol con el que el artilugio se tope", + + "create.ponder.mechanical_saw_processing.header": "Procesar objetos en la sierra mecánica", + "create.ponder.mechanical_saw_processing.text_1": "Las sierras mecánicas orientadas hacia arriba pueden procesar una variedad de objetos", + "create.ponder.mechanical_saw_processing.text_2": "El objeto procesado siempre se mueve en contra de la fuerza rotacional de la sierra", + "create.ponder.mechanical_saw_processing.text_3": "Las sierras mecánicas pueden trabajar en línea con las correas mecánicas", + "create.ponder.mechanical_saw_processing.text_4": "Cuando un ingrediente tiene varios resultados posibles, la ranura para filtros puede especificarlo", + "create.ponder.mechanical_saw_processing.text_5": "Sin filtro, al contrario, la sierra mecánica pasaría por todos los resultados", + + "create.ponder.millstone.header": "Procesar objetos en la piedra de molino", + "create.ponder.millstone.text_1": "Las piedras de molino procesan los objetos mediante la molienda", + "create.ponder.millstone.text_2": "Se pueden accionar lateralmente mediante engranajes...", + "create.ponder.millstone.text_3": "... y tirar o insertar objetos en la parte superior", + "create.ponder.millstone.text_4": "Después de un tiempo, el resultado se puede obtener usando el clic derecho del ratón", + "create.ponder.millstone.text_5": "Las salidas también pueden extraerse mediante la automatización", + + "create.ponder.nixie_tube.header": "Usar los tubos Nixie", + "create.ponder.nixie_tube.text_1": "Cuando son alimentados con redstone, los tubos nixie mostrarán la fuerza de las señales de redstone", + "create.ponder.nixie_tube.text_2": "Con las etiquetas editadas en un yunque, pueden mostar un texto personalizado", + "create.ponder.nixie_tube.text_3": "Haga clic derecho con un tinte para cambiar su color de visualización", + + "create.ponder.piston_pole.header": "Pértigas de extensión de pistones", + "create.ponder.piston_pole.text_1": "Sin las pértigas de extensión unidas, un pistón mecánico no puede moverse", + "create.ponder.piston_pole.text_2": "La longitud de la pértiga añadida en su parte posterior determina el rango de alcance", + + "create.ponder.portable_fluid_interface.header": "Interfaz de fluidos portátil", + "create.ponder.portable_fluid_interface.text_1": "No se puede acceder a los depósitos de fluidos de los artilugios en movimiento por ninguna tubería", + "create.ponder.portable_fluid_interface.text_2": "Este componente puede interactuar con los depósitos de fluidos sin necesidad de detener el artilugio", + "create.ponder.portable_fluid_interface.text_3": "Coloca una segunda con un espacio de 1 o 2 bloques entre ellas", + "create.ponder.portable_fluid_interface.text_4": "Cada vez que pasen por delante de la otra, entablarán una conexión", + "create.ponder.portable_fluid_interface.text_5": "Mientras esté activada, la interfaz estacionaria representará TODOS los tanques del artilugio", + "create.ponder.portable_fluid_interface.text_6": "Ahora se puede introducir el fluido...", + "create.ponder.portable_fluid_interface.text_7": "...o extraerlo del artilugio", + "create.ponder.portable_fluid_interface.text_8": "Cuando no se intercambien contenidos durante un tiempo, el artilugio seguirá su camino", + + "create.ponder.portable_storage_interface.header": "Interfaz de almacenamiento portátil", + "create.ponder.portable_storage_interface.text_1": "Los jugadores no pueden acceder a los inventarios de los artilugios en movimiento.", + "create.ponder.portable_storage_interface.text_2": "Este componente puede interactuar con el almacenamiento sin necesidad de detener el artilugio.", + "create.ponder.portable_storage_interface.text_3": "Coloca una segunda unidad con un espacio de 1 o 2 bloques entre ellas", + "create.ponder.portable_storage_interface.text_4": "Cada vez que pasen por delante del otro, entablarán una conexión", + "create.ponder.portable_storage_interface.text_5": "Mientras esté conectada, la interfaz fija representará TODOS los inventarios del artilugio", + "create.ponder.portable_storage_interface.text_6": "Ahora pueden insertarse objetos...", + "create.ponder.portable_storage_interface.text_7": "...o extraerse", + "create.ponder.portable_storage_interface.text_8": "Cuando no se hayan intercambiado objetos durante un tiempo, el artilugio seguirá su camino", + + "create.ponder.portable_storage_interface_redstone.header": "Interfaz de almacenamiento portátil controlada por redstone", + "create.ponder.portable_storage_interface_redstone.text_1": "La energía de redstone impedirá que las interfaces de almacenamiento portátil se conecten", + + "create.ponder.powered_latch.header": "Controlar señales mediante la palanca motorizada", + "create.ponder.powered_latch.text_1": "Las palancas motorizadas son palancas controlables por redstone", + "create.ponder.powered_latch.text_2": "Las señales en la parte trasera la encienden", + "create.ponder.powered_latch.text_3": "Las señales sobre un lateral la vuelven a apagar", + "create.ponder.powered_latch.text_4": "Las palancas motorizadas también se pueden accionar manualmente", + + "create.ponder.powered_toggle_latch.header": "Controlar señales mediante la palanca de cierre motorizada", + "create.ponder.powered_toggle_latch.text_1": "Las palancas de cierre motorizadas son palancas controlables por redstone", + "create.ponder.powered_toggle_latch.text_2": "Las señales en la parte trasera cambiarán su estado...", + "create.ponder.powered_toggle_latch.text_3": "...encender y apagar", + "create.ponder.powered_toggle_latch.text_4": "Las palancas de cierre motorizadas también se pueden accionar manualmente", + + "create.ponder.pulse_repeater.header": "Controlar señales mediante repetidores de pulsos", + "create.ponder.pulse_repeater.text_1": "Los repetidores de pulsos acortan cualquier señal de redstone a un solo pulso", + + "create.ponder.radial_chassis.header": "Fijar bloques mediante chasis radiales", + "create.ponder.radial_chassis.text_1": "Los chasis radiales se conectan a bloques de chasis idénticos en una fila", + "create.ponder.radial_chassis.text_2": "Cuando uno es movido por un artilugio, los otros son arrastrados con él", + "create.ponder.radial_chassis.text_3": "Las caras laterales de un chasis radial pueden hacerse adhesivas", + "create.ponder.radial_chassis.text_4": "Haga clic de nuevo para que todos los demás lados sean pegajosos", + "create.ponder.radial_chassis.text_5": "Mayús izdo + clic derecho con la mano vacía para eliminar el pegamento", + "create.ponder.radial_chassis.text_6": "Cada vez que un bloque está junto a una cara pegajosa...", + "create.ponder.radial_chassis.text_7": "...adjuntará todos los bloques alcanzables dentro de un radio en esa capa", + "create.ponder.radial_chassis.text_8": "Con una llave inglesa y usando la rueda de desplazamiento del ratón se puede especificar un radio preciso", + "create.ponder.radial_chassis.text_9": "Los bloques no alcanzables por ninguna cara adhesiva no se fijarán", + + "create.ponder.redstone_contact.header": "Contactos de redstone", + "create.ponder.redstone_contact.text_1": "Los contactos de redstone enfrentados emitirán una señal de redstone", + "create.ponder.redstone_contact.text_2": "Esto sigue siendo válido cuando uno de ellos forma parte de un artilugio en movimiento", + + "create.ponder.redstone_link.header": "Usar los enlaces de redstone", + "create.ponder.redstone_link.text_1": "Los enlaces de redstone pueden transmitir señales redstone de forma inalámbrica", + "create.ponder.redstone_link.text_2": "Mayús izdo + clic derecho para cambiar el modo de recepción", + "create.ponder.redstone_link.text_3": "Un simple clic derecho con una llave inglesa puede hacer lo mismo", + "create.ponder.redstone_link.text_4": "Los receptores emiten la potencia de redstone de los transmisores en 128 bloques", + "create.ponder.redstone_link.text_5": "Colocando objetos en las dos ranuras puede especificar una frecuencia", + "create.ponder.redstone_link.text_6": "Sólo se comunicarán los enlaces con frecuencias coincidentes", + + "create.ponder.rope_pulley.header": "Mover estructuras con poleas de cuerda", + "create.ponder.rope_pulley.text_1": "Las poleas de cuerda pueden mover los bloques verticalmente cuando se les aplica una fuerza rotacional", + "create.ponder.rope_pulley.text_2": "La dirección y la velocidad del movimiento dependen de la fuerza rotacional suministrada", + + "create.ponder.rope_pulley_attachment.header": "Mover poleas como parte de un artilugio", + "create.ponder.rope_pulley_attachment.text_1": "Siempre que las poleas de cuerda sean movidas por un artilugio...", + "create.ponder.rope_pulley_attachment.text_2": "...su estructura adjunta será arrastrada con ella", + "create.ponder.rope_pulley_attachment.text_3": "Tenga en cuenta que las poleas de cuerda sólo se mueven cuando están paradas", + + "create.ponder.rope_pulley_modes.header": "Modos de movimiento de la polea de cuerda", + "create.ponder.rope_pulley_modes.text_1": "Cuando las poleas de cuerda dejan de moverse, la estructura movida vuelve a los bloques", + "create.ponder.rope_pulley_modes.text_2": "Puede configurarse para que no vuelva nunca a los bloques sólidos, o sólo en la ubicación en la que comenzó", + + "create.ponder.rotation_speed_controller.header": "Usar el controlador de velocidad rotacional", + "create.ponder.rotation_speed_controller.text_1": "Los controladores de velocidad rotacional transmiten la rotación de su eje a un engranaje grande situado encima.", + "create.ponder.rotation_speed_controller.text_2": "Utilizando la rueda de desplazamiento del ratón, puede configurarse la velocidad rotacional", + + "create.ponder.sail.header": "Montar molinos de viento usando velas", + "create.ponder.sail.text_1": "Las velas son bloques muy útiles para crear molinos de viento", + "create.ponder.sail.text_2": "Se fijarán a los bloques y entre sí sin necesidad de pegamento o bloques de chasis", + "create.ponder.sail.text_3": "Clic derecho con un tinte para pintarlas", + "create.ponder.sail.text_4": "Clic derecho con una tijera para volver a convertirlas en marcos", + + "create.ponder.sail_frame.header": "Montar molinos de viento con marcos de vela", + "create.ponder.sail_frame.text_1": "Los marcos de vela son prácticos bloques para crear molinos de viento", + "create.ponder.sail_frame.text_2": "Se fijarán a los bloques y entre sí sin necesidad de pegamento o bloques de chasis", + + "create.ponder.sequenced_gearshift.header": "Controlar la velocidad de rotación mediante la caja de cambios secuenciales", + "create.ponder.sequenced_gearshift.text_1": "La caja de cambios secuencial retransmite la rotación siguiendo una lista cronometrada de instrucciones", + "create.ponder.sequenced_gearshift.text_2": "Haga clic con el botón derecho para abrir la interfaz de configuración", + "create.ponder.sequenced_gearshift.text_3": "Al recibir una señal de redstone, comenzará a ejecutar su secuencia configurada", + "create.ponder.sequenced_gearshift.text_4": "Una vez terminado, espera la siguiente señal de redstone y vuelve a empezar", + "create.ponder.sequenced_gearshift.text_5": "Se puede utilizar un comparador de redstone para leer el progreso actual", + + "create.ponder.shaft.header": "Transmitir fuerza rotacional mediante ejes", + "create.ponder.shaft.text_1": "Los ejes transmiten la rotación en línea recta.", + + "create.ponder.shaft_casing.header": "Ejes revestidos", + "create.ponder.shaft_casing.text_1": "Puedes utilizar el revestidor de latón o de andesita para decorar tus ejes", + + "create.ponder.smart_chute.header": "Filtrar objetos mediante ductos inteligentes", + "create.ponder.smart_chute.text_1": "Los ductos inteligentes son ductos verticales con control adicional", + "create.ponder.smart_chute.text_2": "Los objetos en la ranura para filtros especifican lo que pueden extraer y transferir exactamente", + "create.ponder.smart_chute.text_3": "Usa la rueda del ratón para especificar el tamaño de la pila extraída", + "create.ponder.smart_chute.text_4": "La energía de redstone impedirá que funcionen.", + + "create.ponder.smart_pipe.header": "Controlar el flujo de fluidos mediante tuberías inteligentes", + "create.ponder.smart_pipe.text_1": "Las tuberías inteligentes pueden ayudar a controlar los flujos por tipo de fluido", + "create.ponder.smart_pipe.text_2": "Cuando se colocan directamente en la fuente, pueden especificar el tipo de fluido a extraer", + "create.ponder.smart_pipe.text_3": "Simplemente haga clic derecho en su ranura de filtro con cualquier elemento que contenga el fluido deseado", + "create.ponder.smart_pipe.text_4": "Cuando se colocan debajo de una red de tuberías, las tuberías inteligentes sólo dejan que los fluidos coincidentes continúen", + + "create.ponder.speedometer.header": "Controlar la información cinética mediante el velocímetro", + "create.ponder.speedometer.text_1": "El velocímetro muestra la velocidad actual de los componentes conectados", + "create.ponder.speedometer.text_2": "Cuando se usan las gafas del constructor, el jugador puede obtener información más detallada del medidor", + "create.ponder.speedometer.text_3": "Los comparadores pueden emitir señales analógicas de redstone en relación con las mediciones del velocímetro", + + "create.ponder.spout_filling.header": "Llenar objetos con un surtidor", + "create.ponder.spout_filling.text_1": "El surtidor puede llenar los elementos de retención de fluidos que se encuentran debajo de él", + "create.ponder.spout_filling.text_2": "No se puede acceder manualmente al contenido de un surtidor", + "create.ponder.spout_filling.text_3": "En su lugar, se pueden utilizar tuberías para suministrarle fluidos", + "create.ponder.spout_filling.text_4": "Los objetos de entrada pueden colocarse en un depósito bajo el surtidor", + "create.ponder.spout_filling.text_5": "Cuando los artículos se proporcionan en una cinta...", + "create.ponder.spout_filling.text_6": "El surtidor los retendrá y procesará automáticamente", + + "create.ponder.stabilized_bearings.header": "Estabilizar artilugios", + "create.ponder.stabilized_bearings.text_1": "Siempre que los rodamientos mecánicos formen parte de una estructura móvil...", + "create.ponder.stabilized_bearings.text_2": "...intentarán mantenerse derechos", + "create.ponder.stabilized_bearings.text_3": "Una vez más, el rodamiento se unirá al bloque de enfrente", + "create.ponder.stabilized_bearings.text_4": "Como resultado, todo el sub-artilugio se mantendrá en posición vertical", + + "create.ponder.sticker.header": "Fijar bloques con stickers", + "create.ponder.sticker.text_1": "Los stickers son ideales para la fijación de bloques controlados por redstone", + "create.ponder.sticker.text_2": "Al recibir una señal, cambiarán su estado", + "create.ponder.sticker.text_3": "Si ahora se mueve en un artilugio, el bloque se moverá con él", + "create.ponder.sticker.text_4": "Si se vuelve a activar, el bloque dejará de estar fijado", + + "create.ponder.stressometer.header": "Supervisar la información cinética con el estresómetro", + "create.ponder.stressometer.text_1": "El estresómetro muestra la capacidad de estrés actual de la red cinética conectada", + "create.ponder.stressometer.text_2": "Cuando se usan las gafas del constructor, el jugador puede obtener información más detallada del medidor", + "create.ponder.stressometer.text_3": "Los comparadores pueden emitir señales analógicas de redstone en relación con las mediciones del estresómetro", + + "create.ponder.super_glue.header": "Fijar bloques con pegamento", + "create.ponder.super_glue.text_1": "Se puede utilizar pegamento entre dos bloques cualquiera", + "create.ponder.super_glue.text_2": "Los bloques fijados se moverán juntos cuando se ensamblen en un artilugio", + "create.ponder.super_glue.text_3": "Cada vez que el pegamento es sostenido en la mano...", + "create.ponder.super_glue.text_4": "...los bloques añadidos se pegarán a la cara en la que fueron colocados automáticamente", + "create.ponder.super_glue.text_5": "El pegamento se puede quitar con un clic izquierdo", + + "create.ponder.valve_handle.header": "Generar fuerza rotacional mediante asas de válvula", + "create.ponder.valve_handle.text_1": "Los jugadores pueden utilizar las asas de válvulas para aplicar fuerza rotacional manualmente", + "create.ponder.valve_handle.text_2": "Mantén pulsado el clic derecho para rotar en sentido contrario a las agujas del reloj", + "create.ponder.valve_handle.text_3": "Su velocidad de transmisión es lenta y precisa", + "create.ponder.valve_handle.text_4": "Mayús izdo + clic derecho para rotar en el sentido de las agujas del reloj", + "create.ponder.valve_handle.text_5": "Las asas de las válvulas pueden teñirse con fines estéticos", + + "create.ponder.valve_pipe.header": "Controlar el flujo de fluidos mediante válvulas", + "create.ponder.valve_pipe.text_1": "Las tuberías con válvulas ayudan a controlar los fluidos que se propagan por las redes de tuberías", + "create.ponder.valve_pipe.text_2": "Su entrada en el eje controla si el fluido puede pasar por", + "create.ponder.valve_pipe.text_3": "Dada la fuerza de rotación en la dirección de apertura, la válvula se abrirá", + "create.ponder.valve_pipe.text_4": "Se puede volver a cerrar invirtiendo el giro de entrada", + + "create.ponder.water_wheel.header": "Generar fuerza rotacional mediante ruedas hidráulicas", + "create.ponder.water_wheel.text_1": "Las ruedas hidráulicas extraen la fuerza de las corrientes de agua adyacentes", + "create.ponder.water_wheel.text_2": "Cuantas más caras se alimenten, más rápido girará", + "create.ponder.water_wheel.text_3": "Las paletas de las ruedas deben estar orientadas en contra del flujo", + "create.ponder.water_wheel.text_4": "Orientadas hacia el lado contrario, no serán tan eficaces", + + "create.ponder.weighted_ejector.header": "Usar eyectores de peso", + "create.ponder.weighted_ejector.text_1": "Mayús izdo + clic derecho sosteniendo un eyector de peso para seleccionar la ubicación de destino", + "create.ponder.weighted_ejector.text_10": "Ahora estára limitado a este tamaño de pila, y sólo se activara cuando su pila retenida alcance esta cantidad", + "create.ponder.weighted_ejector.text_11": "Otras entidades activarán el eyector al pisarlos", + "create.ponder.weighted_ejector.text_2": "El eyector colocado lanzará ahora los objetos al lugar marcado", + "create.ponder.weighted_ejector.text_3": "Un objetivo válido puede estar a cualquier altura o distancia dentro del alcance", + "create.ponder.weighted_ejector.text_4": "Sin embargo, no pueden estar a un costado", + "create.ponder.weighted_ejector.text_5": "Si no se ha seleccionado ningún objetivo válido, simplemente se dirigirá al bloque que se encuentra justo delante", + "create.ponder.weighted_ejector.text_6": "Suministrale fuerza rotacional para cargarlo", + "create.ponder.weighted_ejector.text_7": "Los objetos colocados en el eyector hacen que se dispare", + "create.ponder.weighted_ejector.text_8": "Si se dirigen a un inventario, el eyector esperará hasta que haya espacio", + "create.ponder.weighted_ejector.text_9": "Con la llave inglesa se puede configurar el tamaño de pila requerido", + + "create.ponder.weighted_ejector_redstone.header": "Controlar los eyectores de peso con redstone", + "create.ponder.weighted_ejector_redstone.text_1": "Cuando se alimentan con redstone, los eyectores no se activan", + "create.ponder.weighted_ejector_redstone.text_2": "Además, los observadores de contenido pueden detectar cuando los eyectores se activan", + + "create.ponder.weighted_ejector_tunnel.header": "Dividir pilas de objetos mediante eyectores de peso", + "create.ponder.weighted_ejector_tunnel.text_1": "En combinación con los túneles de latón, los eyectores de peso pueden dividir las pilas de objetos en cantidades específicas", + "create.ponder.weighted_ejector_tunnel.text_2": "En primer lugar, configure el túnel de latón en 'Preferir lo más cercano', para dar prioridad a su salida lateral", + "create.ponder.weighted_ejector_tunnel.text_3": "El tamaño de la pila fijado en el eyector determina ahora la cantidad que se va a dividir", + "create.ponder.weighted_ejector_tunnel.text_4": "Mientras una nueva pila del tamaño configurado se expulse por la salida lateral...", + "create.ponder.weighted_ejector_tunnel.text_5": "...el resto seguirá su camino", + + "create.ponder.windmill_source.header": "Generar fuerza rotacional mediante rodamientos del molino de viento", + "create.ponder.windmill_source.text_1": "Los rodamientos del molino de viento se fijan al bloque que tienen delante", + "create.ponder.windmill_source.text_2": "Si se unen suficientes bloques tipo vela al bloque, éste puede actuar como un molino de viento", + "create.ponder.windmill_source.text_3": "Activado con un clic derecho, el rodamiento del molino de viento comenzará a proporcionar fuerza rotacional", + "create.ponder.windmill_source.text_4": "La cantidad de bloques de vela determina su velocidad de rotación", + "create.ponder.windmill_source.text_5": "Utiliza una llave inglesa para configurar su sentido de rotación", + "create.ponder.windmill_source.text_6": "Haga clic derecho sobre el rodamiento del molino en cualquier momento para detener y editar la estructura de nuevo", + + "create.ponder.windmill_structure.header": "Artilugios para molinos de viento", + "create.ponder.windmill_structure.text_1": "Cualquier estructura puede contar como un molino de viento válido, siempre que contenga al menos 8 bloques tipo vela.", + + "_": "Thank you for translating Create!" + +} From c98606444f35ea9b13a5fd52aebb81344feafdaf Mon Sep 17 00:00:00 2001 From: Nekrodamus Date: Thu, 5 Aug 2021 17:24:47 -0300 Subject: [PATCH 08/79] Updated spanish language Last minute corrections --- src/main/resources/assets/create/lang/es_ar.json | 8 ++++---- src/main/resources/assets/create/lang/es_cl.json | 8 ++++---- src/main/resources/assets/create/lang/es_ec.json | 8 ++++---- src/main/resources/assets/create/lang/es_es.json | 8 ++++---- src/main/resources/assets/create/lang/es_mx.json | 8 ++++---- src/main/resources/assets/create/lang/es_uy.json | 8 ++++---- src/main/resources/assets/create/lang/es_ve.json | 8 ++++---- 7 files changed, 28 insertions(+), 28 deletions(-) diff --git a/src/main/resources/assets/create/lang/es_ar.json b/src/main/resources/assets/create/lang/es_ar.json index d20b0eb8b..504694aab 100644 --- a/src/main/resources/assets/create/lang/es_ar.json +++ b/src/main/resources/assets/create/lang/es_ar.json @@ -655,7 +655,7 @@ "advancement.create.mechanical_arm": "¡Manos ocupadas!", "advancement.create.mechanical_arm.desc": "Crea un brazo mecánico, selecciona las entradas y salidas, colócalo en el suelo y dale energía; luego observa cómo hace todo el trabajo por ti.", "advancement.create.musical_arm": "¡Tócame la melodía!", - "advancement.create.musical_arm.desc": "Vea cómo un brazo mecánico maneja su Jukebox.", + "advancement.create.musical_arm.desc": "Vea cómo un brazo mecánico maneja su tocadiscos.", "advancement.create.arm_many_targets": "Organize-o-Tron", "advancement.create.arm_many_targets.desc": "Programa un brazo mecánico con diez o más posiciones de salida.", "advancement.create.arm_blaze_burner": "Combust-o-Tron", @@ -1270,7 +1270,7 @@ "block.create.wooden_bracket.tooltip.summary": "Decora tus _ejes_, _engranajes_ y _ductos_ con un acogedor refuerzo de madera.", "block.create.metal_bracket.tooltip": "SOPORTE DE METAL PARA EJES", - "block.create.metal_bracket.tooltip.summary": "Decora tus _ejes_, _engranajes_ y _ductos_ con un poco de refuerzo industrial robusto.", + "block.create.metal_bracket.tooltip.summary": "Decora tus _ejes_, _engranajes_ y _ductos_ con un poco de robusto refuerzo industrial.", "block.create.seat.tooltip": "ASIENTO", "block.create.seat.tooltip.summary": "¡Siéntate y disfruta del viaje! Anclará a un jugador en un artilugio en movimiento. También es ideal para muebles estáticos. Viene en una variedad de colores.", @@ -1440,7 +1440,7 @@ "item.create.shadow_steel.tooltip.behaviour1": "Los usos de este material estarán disponibles en una futura versión.", "item.create.linked_controller.tooltip": "CONTROLADOR ENLAZADO", - "item.create.linked_controller.tooltip.summary": "Permite el control manual de las frecuencias de _enlaces de redstone_ asignadas a sus seis botones..", + "item.create.linked_controller.tooltip.summary": "Permite el control manual de las frecuencias de _enlaces de redstone_ asignadas a sus seis botones.", "item.create.linked_controller.tooltip.condition1": "Al hacer clic derecho", "item.create.linked_controller.tooltip.behaviour1": "Activa el _controlador_. Los _controles de movimiento_ se adquieren mientras está activo.", "item.create.linked_controller.tooltip.condition2": "Al usar Mayús izdo + clic derecho", @@ -2207,7 +2207,7 @@ "create.ponder.smart_pipe.text_1": "Las tuberías inteligentes pueden ayudar a controlar los flujos por tipo de fluido", "create.ponder.smart_pipe.text_2": "Cuando se colocan directamente en la fuente, pueden especificar el tipo de fluido a extraer", "create.ponder.smart_pipe.text_3": "Simplemente haga clic derecho en su ranura de filtro con cualquier elemento que contenga el fluido deseado", - "create.ponder.smart_pipe.text_4": "Cuando se colocan debajo de una red de tuberías, las tuberías inteligentes sólo dejan que los fluidos coincidentes continúen", + "create.ponder.smart_pipe.text_4": "Cuando se colocan detrás de una red de tuberías, las tuberías inteligentes sólo dejan que los fluidos coincidentes continúen", "create.ponder.speedometer.header": "Controlar la información cinética mediante el velocímetro", "create.ponder.speedometer.text_1": "El velocímetro muestra la velocidad actual de los componentes conectados", diff --git a/src/main/resources/assets/create/lang/es_cl.json b/src/main/resources/assets/create/lang/es_cl.json index d20b0eb8b..504694aab 100644 --- a/src/main/resources/assets/create/lang/es_cl.json +++ b/src/main/resources/assets/create/lang/es_cl.json @@ -655,7 +655,7 @@ "advancement.create.mechanical_arm": "¡Manos ocupadas!", "advancement.create.mechanical_arm.desc": "Crea un brazo mecánico, selecciona las entradas y salidas, colócalo en el suelo y dale energía; luego observa cómo hace todo el trabajo por ti.", "advancement.create.musical_arm": "¡Tócame la melodía!", - "advancement.create.musical_arm.desc": "Vea cómo un brazo mecánico maneja su Jukebox.", + "advancement.create.musical_arm.desc": "Vea cómo un brazo mecánico maneja su tocadiscos.", "advancement.create.arm_many_targets": "Organize-o-Tron", "advancement.create.arm_many_targets.desc": "Programa un brazo mecánico con diez o más posiciones de salida.", "advancement.create.arm_blaze_burner": "Combust-o-Tron", @@ -1270,7 +1270,7 @@ "block.create.wooden_bracket.tooltip.summary": "Decora tus _ejes_, _engranajes_ y _ductos_ con un acogedor refuerzo de madera.", "block.create.metal_bracket.tooltip": "SOPORTE DE METAL PARA EJES", - "block.create.metal_bracket.tooltip.summary": "Decora tus _ejes_, _engranajes_ y _ductos_ con un poco de refuerzo industrial robusto.", + "block.create.metal_bracket.tooltip.summary": "Decora tus _ejes_, _engranajes_ y _ductos_ con un poco de robusto refuerzo industrial.", "block.create.seat.tooltip": "ASIENTO", "block.create.seat.tooltip.summary": "¡Siéntate y disfruta del viaje! Anclará a un jugador en un artilugio en movimiento. También es ideal para muebles estáticos. Viene en una variedad de colores.", @@ -1440,7 +1440,7 @@ "item.create.shadow_steel.tooltip.behaviour1": "Los usos de este material estarán disponibles en una futura versión.", "item.create.linked_controller.tooltip": "CONTROLADOR ENLAZADO", - "item.create.linked_controller.tooltip.summary": "Permite el control manual de las frecuencias de _enlaces de redstone_ asignadas a sus seis botones..", + "item.create.linked_controller.tooltip.summary": "Permite el control manual de las frecuencias de _enlaces de redstone_ asignadas a sus seis botones.", "item.create.linked_controller.tooltip.condition1": "Al hacer clic derecho", "item.create.linked_controller.tooltip.behaviour1": "Activa el _controlador_. Los _controles de movimiento_ se adquieren mientras está activo.", "item.create.linked_controller.tooltip.condition2": "Al usar Mayús izdo + clic derecho", @@ -2207,7 +2207,7 @@ "create.ponder.smart_pipe.text_1": "Las tuberías inteligentes pueden ayudar a controlar los flujos por tipo de fluido", "create.ponder.smart_pipe.text_2": "Cuando se colocan directamente en la fuente, pueden especificar el tipo de fluido a extraer", "create.ponder.smart_pipe.text_3": "Simplemente haga clic derecho en su ranura de filtro con cualquier elemento que contenga el fluido deseado", - "create.ponder.smart_pipe.text_4": "Cuando se colocan debajo de una red de tuberías, las tuberías inteligentes sólo dejan que los fluidos coincidentes continúen", + "create.ponder.smart_pipe.text_4": "Cuando se colocan detrás de una red de tuberías, las tuberías inteligentes sólo dejan que los fluidos coincidentes continúen", "create.ponder.speedometer.header": "Controlar la información cinética mediante el velocímetro", "create.ponder.speedometer.text_1": "El velocímetro muestra la velocidad actual de los componentes conectados", diff --git a/src/main/resources/assets/create/lang/es_ec.json b/src/main/resources/assets/create/lang/es_ec.json index d20b0eb8b..504694aab 100644 --- a/src/main/resources/assets/create/lang/es_ec.json +++ b/src/main/resources/assets/create/lang/es_ec.json @@ -655,7 +655,7 @@ "advancement.create.mechanical_arm": "¡Manos ocupadas!", "advancement.create.mechanical_arm.desc": "Crea un brazo mecánico, selecciona las entradas y salidas, colócalo en el suelo y dale energía; luego observa cómo hace todo el trabajo por ti.", "advancement.create.musical_arm": "¡Tócame la melodía!", - "advancement.create.musical_arm.desc": "Vea cómo un brazo mecánico maneja su Jukebox.", + "advancement.create.musical_arm.desc": "Vea cómo un brazo mecánico maneja su tocadiscos.", "advancement.create.arm_many_targets": "Organize-o-Tron", "advancement.create.arm_many_targets.desc": "Programa un brazo mecánico con diez o más posiciones de salida.", "advancement.create.arm_blaze_burner": "Combust-o-Tron", @@ -1270,7 +1270,7 @@ "block.create.wooden_bracket.tooltip.summary": "Decora tus _ejes_, _engranajes_ y _ductos_ con un acogedor refuerzo de madera.", "block.create.metal_bracket.tooltip": "SOPORTE DE METAL PARA EJES", - "block.create.metal_bracket.tooltip.summary": "Decora tus _ejes_, _engranajes_ y _ductos_ con un poco de refuerzo industrial robusto.", + "block.create.metal_bracket.tooltip.summary": "Decora tus _ejes_, _engranajes_ y _ductos_ con un poco de robusto refuerzo industrial.", "block.create.seat.tooltip": "ASIENTO", "block.create.seat.tooltip.summary": "¡Siéntate y disfruta del viaje! Anclará a un jugador en un artilugio en movimiento. También es ideal para muebles estáticos. Viene en una variedad de colores.", @@ -1440,7 +1440,7 @@ "item.create.shadow_steel.tooltip.behaviour1": "Los usos de este material estarán disponibles en una futura versión.", "item.create.linked_controller.tooltip": "CONTROLADOR ENLAZADO", - "item.create.linked_controller.tooltip.summary": "Permite el control manual de las frecuencias de _enlaces de redstone_ asignadas a sus seis botones..", + "item.create.linked_controller.tooltip.summary": "Permite el control manual de las frecuencias de _enlaces de redstone_ asignadas a sus seis botones.", "item.create.linked_controller.tooltip.condition1": "Al hacer clic derecho", "item.create.linked_controller.tooltip.behaviour1": "Activa el _controlador_. Los _controles de movimiento_ se adquieren mientras está activo.", "item.create.linked_controller.tooltip.condition2": "Al usar Mayús izdo + clic derecho", @@ -2207,7 +2207,7 @@ "create.ponder.smart_pipe.text_1": "Las tuberías inteligentes pueden ayudar a controlar los flujos por tipo de fluido", "create.ponder.smart_pipe.text_2": "Cuando se colocan directamente en la fuente, pueden especificar el tipo de fluido a extraer", "create.ponder.smart_pipe.text_3": "Simplemente haga clic derecho en su ranura de filtro con cualquier elemento que contenga el fluido deseado", - "create.ponder.smart_pipe.text_4": "Cuando se colocan debajo de una red de tuberías, las tuberías inteligentes sólo dejan que los fluidos coincidentes continúen", + "create.ponder.smart_pipe.text_4": "Cuando se colocan detrás de una red de tuberías, las tuberías inteligentes sólo dejan que los fluidos coincidentes continúen", "create.ponder.speedometer.header": "Controlar la información cinética mediante el velocímetro", "create.ponder.speedometer.text_1": "El velocímetro muestra la velocidad actual de los componentes conectados", diff --git a/src/main/resources/assets/create/lang/es_es.json b/src/main/resources/assets/create/lang/es_es.json index d20b0eb8b..504694aab 100644 --- a/src/main/resources/assets/create/lang/es_es.json +++ b/src/main/resources/assets/create/lang/es_es.json @@ -655,7 +655,7 @@ "advancement.create.mechanical_arm": "¡Manos ocupadas!", "advancement.create.mechanical_arm.desc": "Crea un brazo mecánico, selecciona las entradas y salidas, colócalo en el suelo y dale energía; luego observa cómo hace todo el trabajo por ti.", "advancement.create.musical_arm": "¡Tócame la melodía!", - "advancement.create.musical_arm.desc": "Vea cómo un brazo mecánico maneja su Jukebox.", + "advancement.create.musical_arm.desc": "Vea cómo un brazo mecánico maneja su tocadiscos.", "advancement.create.arm_many_targets": "Organize-o-Tron", "advancement.create.arm_many_targets.desc": "Programa un brazo mecánico con diez o más posiciones de salida.", "advancement.create.arm_blaze_burner": "Combust-o-Tron", @@ -1270,7 +1270,7 @@ "block.create.wooden_bracket.tooltip.summary": "Decora tus _ejes_, _engranajes_ y _ductos_ con un acogedor refuerzo de madera.", "block.create.metal_bracket.tooltip": "SOPORTE DE METAL PARA EJES", - "block.create.metal_bracket.tooltip.summary": "Decora tus _ejes_, _engranajes_ y _ductos_ con un poco de refuerzo industrial robusto.", + "block.create.metal_bracket.tooltip.summary": "Decora tus _ejes_, _engranajes_ y _ductos_ con un poco de robusto refuerzo industrial.", "block.create.seat.tooltip": "ASIENTO", "block.create.seat.tooltip.summary": "¡Siéntate y disfruta del viaje! Anclará a un jugador en un artilugio en movimiento. También es ideal para muebles estáticos. Viene en una variedad de colores.", @@ -1440,7 +1440,7 @@ "item.create.shadow_steel.tooltip.behaviour1": "Los usos de este material estarán disponibles en una futura versión.", "item.create.linked_controller.tooltip": "CONTROLADOR ENLAZADO", - "item.create.linked_controller.tooltip.summary": "Permite el control manual de las frecuencias de _enlaces de redstone_ asignadas a sus seis botones..", + "item.create.linked_controller.tooltip.summary": "Permite el control manual de las frecuencias de _enlaces de redstone_ asignadas a sus seis botones.", "item.create.linked_controller.tooltip.condition1": "Al hacer clic derecho", "item.create.linked_controller.tooltip.behaviour1": "Activa el _controlador_. Los _controles de movimiento_ se adquieren mientras está activo.", "item.create.linked_controller.tooltip.condition2": "Al usar Mayús izdo + clic derecho", @@ -2207,7 +2207,7 @@ "create.ponder.smart_pipe.text_1": "Las tuberías inteligentes pueden ayudar a controlar los flujos por tipo de fluido", "create.ponder.smart_pipe.text_2": "Cuando se colocan directamente en la fuente, pueden especificar el tipo de fluido a extraer", "create.ponder.smart_pipe.text_3": "Simplemente haga clic derecho en su ranura de filtro con cualquier elemento que contenga el fluido deseado", - "create.ponder.smart_pipe.text_4": "Cuando se colocan debajo de una red de tuberías, las tuberías inteligentes sólo dejan que los fluidos coincidentes continúen", + "create.ponder.smart_pipe.text_4": "Cuando se colocan detrás de una red de tuberías, las tuberías inteligentes sólo dejan que los fluidos coincidentes continúen", "create.ponder.speedometer.header": "Controlar la información cinética mediante el velocímetro", "create.ponder.speedometer.text_1": "El velocímetro muestra la velocidad actual de los componentes conectados", diff --git a/src/main/resources/assets/create/lang/es_mx.json b/src/main/resources/assets/create/lang/es_mx.json index d20b0eb8b..504694aab 100644 --- a/src/main/resources/assets/create/lang/es_mx.json +++ b/src/main/resources/assets/create/lang/es_mx.json @@ -655,7 +655,7 @@ "advancement.create.mechanical_arm": "¡Manos ocupadas!", "advancement.create.mechanical_arm.desc": "Crea un brazo mecánico, selecciona las entradas y salidas, colócalo en el suelo y dale energía; luego observa cómo hace todo el trabajo por ti.", "advancement.create.musical_arm": "¡Tócame la melodía!", - "advancement.create.musical_arm.desc": "Vea cómo un brazo mecánico maneja su Jukebox.", + "advancement.create.musical_arm.desc": "Vea cómo un brazo mecánico maneja su tocadiscos.", "advancement.create.arm_many_targets": "Organize-o-Tron", "advancement.create.arm_many_targets.desc": "Programa un brazo mecánico con diez o más posiciones de salida.", "advancement.create.arm_blaze_burner": "Combust-o-Tron", @@ -1270,7 +1270,7 @@ "block.create.wooden_bracket.tooltip.summary": "Decora tus _ejes_, _engranajes_ y _ductos_ con un acogedor refuerzo de madera.", "block.create.metal_bracket.tooltip": "SOPORTE DE METAL PARA EJES", - "block.create.metal_bracket.tooltip.summary": "Decora tus _ejes_, _engranajes_ y _ductos_ con un poco de refuerzo industrial robusto.", + "block.create.metal_bracket.tooltip.summary": "Decora tus _ejes_, _engranajes_ y _ductos_ con un poco de robusto refuerzo industrial.", "block.create.seat.tooltip": "ASIENTO", "block.create.seat.tooltip.summary": "¡Siéntate y disfruta del viaje! Anclará a un jugador en un artilugio en movimiento. También es ideal para muebles estáticos. Viene en una variedad de colores.", @@ -1440,7 +1440,7 @@ "item.create.shadow_steel.tooltip.behaviour1": "Los usos de este material estarán disponibles en una futura versión.", "item.create.linked_controller.tooltip": "CONTROLADOR ENLAZADO", - "item.create.linked_controller.tooltip.summary": "Permite el control manual de las frecuencias de _enlaces de redstone_ asignadas a sus seis botones..", + "item.create.linked_controller.tooltip.summary": "Permite el control manual de las frecuencias de _enlaces de redstone_ asignadas a sus seis botones.", "item.create.linked_controller.tooltip.condition1": "Al hacer clic derecho", "item.create.linked_controller.tooltip.behaviour1": "Activa el _controlador_. Los _controles de movimiento_ se adquieren mientras está activo.", "item.create.linked_controller.tooltip.condition2": "Al usar Mayús izdo + clic derecho", @@ -2207,7 +2207,7 @@ "create.ponder.smart_pipe.text_1": "Las tuberías inteligentes pueden ayudar a controlar los flujos por tipo de fluido", "create.ponder.smart_pipe.text_2": "Cuando se colocan directamente en la fuente, pueden especificar el tipo de fluido a extraer", "create.ponder.smart_pipe.text_3": "Simplemente haga clic derecho en su ranura de filtro con cualquier elemento que contenga el fluido deseado", - "create.ponder.smart_pipe.text_4": "Cuando se colocan debajo de una red de tuberías, las tuberías inteligentes sólo dejan que los fluidos coincidentes continúen", + "create.ponder.smart_pipe.text_4": "Cuando se colocan detrás de una red de tuberías, las tuberías inteligentes sólo dejan que los fluidos coincidentes continúen", "create.ponder.speedometer.header": "Controlar la información cinética mediante el velocímetro", "create.ponder.speedometer.text_1": "El velocímetro muestra la velocidad actual de los componentes conectados", diff --git a/src/main/resources/assets/create/lang/es_uy.json b/src/main/resources/assets/create/lang/es_uy.json index d20b0eb8b..504694aab 100644 --- a/src/main/resources/assets/create/lang/es_uy.json +++ b/src/main/resources/assets/create/lang/es_uy.json @@ -655,7 +655,7 @@ "advancement.create.mechanical_arm": "¡Manos ocupadas!", "advancement.create.mechanical_arm.desc": "Crea un brazo mecánico, selecciona las entradas y salidas, colócalo en el suelo y dale energía; luego observa cómo hace todo el trabajo por ti.", "advancement.create.musical_arm": "¡Tócame la melodía!", - "advancement.create.musical_arm.desc": "Vea cómo un brazo mecánico maneja su Jukebox.", + "advancement.create.musical_arm.desc": "Vea cómo un brazo mecánico maneja su tocadiscos.", "advancement.create.arm_many_targets": "Organize-o-Tron", "advancement.create.arm_many_targets.desc": "Programa un brazo mecánico con diez o más posiciones de salida.", "advancement.create.arm_blaze_burner": "Combust-o-Tron", @@ -1270,7 +1270,7 @@ "block.create.wooden_bracket.tooltip.summary": "Decora tus _ejes_, _engranajes_ y _ductos_ con un acogedor refuerzo de madera.", "block.create.metal_bracket.tooltip": "SOPORTE DE METAL PARA EJES", - "block.create.metal_bracket.tooltip.summary": "Decora tus _ejes_, _engranajes_ y _ductos_ con un poco de refuerzo industrial robusto.", + "block.create.metal_bracket.tooltip.summary": "Decora tus _ejes_, _engranajes_ y _ductos_ con un poco de robusto refuerzo industrial.", "block.create.seat.tooltip": "ASIENTO", "block.create.seat.tooltip.summary": "¡Siéntate y disfruta del viaje! Anclará a un jugador en un artilugio en movimiento. También es ideal para muebles estáticos. Viene en una variedad de colores.", @@ -1440,7 +1440,7 @@ "item.create.shadow_steel.tooltip.behaviour1": "Los usos de este material estarán disponibles en una futura versión.", "item.create.linked_controller.tooltip": "CONTROLADOR ENLAZADO", - "item.create.linked_controller.tooltip.summary": "Permite el control manual de las frecuencias de _enlaces de redstone_ asignadas a sus seis botones..", + "item.create.linked_controller.tooltip.summary": "Permite el control manual de las frecuencias de _enlaces de redstone_ asignadas a sus seis botones.", "item.create.linked_controller.tooltip.condition1": "Al hacer clic derecho", "item.create.linked_controller.tooltip.behaviour1": "Activa el _controlador_. Los _controles de movimiento_ se adquieren mientras está activo.", "item.create.linked_controller.tooltip.condition2": "Al usar Mayús izdo + clic derecho", @@ -2207,7 +2207,7 @@ "create.ponder.smart_pipe.text_1": "Las tuberías inteligentes pueden ayudar a controlar los flujos por tipo de fluido", "create.ponder.smart_pipe.text_2": "Cuando se colocan directamente en la fuente, pueden especificar el tipo de fluido a extraer", "create.ponder.smart_pipe.text_3": "Simplemente haga clic derecho en su ranura de filtro con cualquier elemento que contenga el fluido deseado", - "create.ponder.smart_pipe.text_4": "Cuando se colocan debajo de una red de tuberías, las tuberías inteligentes sólo dejan que los fluidos coincidentes continúen", + "create.ponder.smart_pipe.text_4": "Cuando se colocan detrás de una red de tuberías, las tuberías inteligentes sólo dejan que los fluidos coincidentes continúen", "create.ponder.speedometer.header": "Controlar la información cinética mediante el velocímetro", "create.ponder.speedometer.text_1": "El velocímetro muestra la velocidad actual de los componentes conectados", diff --git a/src/main/resources/assets/create/lang/es_ve.json b/src/main/resources/assets/create/lang/es_ve.json index d20b0eb8b..504694aab 100644 --- a/src/main/resources/assets/create/lang/es_ve.json +++ b/src/main/resources/assets/create/lang/es_ve.json @@ -655,7 +655,7 @@ "advancement.create.mechanical_arm": "¡Manos ocupadas!", "advancement.create.mechanical_arm.desc": "Crea un brazo mecánico, selecciona las entradas y salidas, colócalo en el suelo y dale energía; luego observa cómo hace todo el trabajo por ti.", "advancement.create.musical_arm": "¡Tócame la melodía!", - "advancement.create.musical_arm.desc": "Vea cómo un brazo mecánico maneja su Jukebox.", + "advancement.create.musical_arm.desc": "Vea cómo un brazo mecánico maneja su tocadiscos.", "advancement.create.arm_many_targets": "Organize-o-Tron", "advancement.create.arm_many_targets.desc": "Programa un brazo mecánico con diez o más posiciones de salida.", "advancement.create.arm_blaze_burner": "Combust-o-Tron", @@ -1270,7 +1270,7 @@ "block.create.wooden_bracket.tooltip.summary": "Decora tus _ejes_, _engranajes_ y _ductos_ con un acogedor refuerzo de madera.", "block.create.metal_bracket.tooltip": "SOPORTE DE METAL PARA EJES", - "block.create.metal_bracket.tooltip.summary": "Decora tus _ejes_, _engranajes_ y _ductos_ con un poco de refuerzo industrial robusto.", + "block.create.metal_bracket.tooltip.summary": "Decora tus _ejes_, _engranajes_ y _ductos_ con un poco de robusto refuerzo industrial.", "block.create.seat.tooltip": "ASIENTO", "block.create.seat.tooltip.summary": "¡Siéntate y disfruta del viaje! Anclará a un jugador en un artilugio en movimiento. También es ideal para muebles estáticos. Viene en una variedad de colores.", @@ -1440,7 +1440,7 @@ "item.create.shadow_steel.tooltip.behaviour1": "Los usos de este material estarán disponibles en una futura versión.", "item.create.linked_controller.tooltip": "CONTROLADOR ENLAZADO", - "item.create.linked_controller.tooltip.summary": "Permite el control manual de las frecuencias de _enlaces de redstone_ asignadas a sus seis botones..", + "item.create.linked_controller.tooltip.summary": "Permite el control manual de las frecuencias de _enlaces de redstone_ asignadas a sus seis botones.", "item.create.linked_controller.tooltip.condition1": "Al hacer clic derecho", "item.create.linked_controller.tooltip.behaviour1": "Activa el _controlador_. Los _controles de movimiento_ se adquieren mientras está activo.", "item.create.linked_controller.tooltip.condition2": "Al usar Mayús izdo + clic derecho", @@ -2207,7 +2207,7 @@ "create.ponder.smart_pipe.text_1": "Las tuberías inteligentes pueden ayudar a controlar los flujos por tipo de fluido", "create.ponder.smart_pipe.text_2": "Cuando se colocan directamente en la fuente, pueden especificar el tipo de fluido a extraer", "create.ponder.smart_pipe.text_3": "Simplemente haga clic derecho en su ranura de filtro con cualquier elemento que contenga el fluido deseado", - "create.ponder.smart_pipe.text_4": "Cuando se colocan debajo de una red de tuberías, las tuberías inteligentes sólo dejan que los fluidos coincidentes continúen", + "create.ponder.smart_pipe.text_4": "Cuando se colocan detrás de una red de tuberías, las tuberías inteligentes sólo dejan que los fluidos coincidentes continúen", "create.ponder.speedometer.header": "Controlar la información cinética mediante el velocímetro", "create.ponder.speedometer.text_1": "El velocímetro muestra la velocidad actual de los componentes conectados", From 3e6e8c406b1af27824bd08926b513c16f0ad7250 Mon Sep 17 00:00:00 2001 From: Jozufozu Date: Wed, 4 Aug 2021 17:20:08 -0700 Subject: [PATCH 09/79] Bump Flywheel version - Small tweak to contraption layer creation --- gradle.properties | 2 +- .../structureMovement/render/RenderedContraption.java | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/gradle.properties b/gradle.properties index 4da5ad71c..984e19f84 100644 --- a/gradle.properties +++ b/gradle.properties @@ -16,7 +16,7 @@ cursegradle_version = 1.4.0 # dependency versions registrate_version = 1.0.10 -flywheel_version = 1.16-0.2.0.34 +flywheel_version = 1.16-0.2.0.41 jei_version = 7.7.1.116 # curseforge information diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/RenderedContraption.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/RenderedContraption.java index 6dc366b95..0d20a6435 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/RenderedContraption.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/RenderedContraption.java @@ -125,10 +125,13 @@ public class RenderedContraption extends ContraptionRenderInfo { for (RenderType layer : blockLayers) { Supplier layerModel = () -> new WorldModel(renderWorld, layer, contraption.getBlocks().values()); + ModelRenderer renderer; if (Backend.getInstance().compat.vertexArrayObjectsSupported()) - renderLayers.put(layer, new ArrayModelRenderer(layerModel)); + renderer = new ArrayModelRenderer(layerModel); else - renderLayers.put(layer, new ModelRenderer(layerModel)); + renderer = new ModelRenderer(layerModel); + + renderLayers.put(layer, renderer); } } From e7c7669d7f1195da8c3db2e718ae512921f84822 Mon Sep 17 00:00:00 2001 From: Jozufozu Date: Thu, 5 Aug 2021 14:57:55 -0700 Subject: [PATCH 10/79] Setup build script for maven --- build.gradle | 34 ++++++++++++++++++++++++++++++++++ settings.gradle | 1 + 2 files changed, 35 insertions(+) create mode 100644 settings.gradle diff --git a/build.gradle b/build.gradle index 56d6fb380..676d87dba 100644 --- a/build.gradle +++ b/build.gradle @@ -187,6 +187,40 @@ reobf { shadowJar {} } + +task sourcesJar(type: Jar) { + from sourceSets.main.allSource + archiveBaseName.set(project.archivesBaseName) + archiveVersion.set("${project.version}") + archiveClassifier.set('sources') +} + +task javadocJar(type: Jar, dependsOn: javadoc) { + from javadoc.destinationDir + archiveClassifier.set('javadoc') +} + +artifacts { + archives shadowJar, sourcesJar, javadocJar +} + +publishing { + tasks.publish.dependsOn 'build' + publications { + mavenJava(MavenPublication) { + artifact shadowJar + artifact sourcesJar + artifact javadocJar + } + } + + repositories { + if (project.hasProperty('mavendir')) { + maven { url mavendir } + } + } +} + String getChangelogText() { def changelogFile = file('changelog.txt') String str = '' diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 000000000..ecc4e7182 --- /dev/null +++ b/settings.gradle @@ -0,0 +1 @@ +rootProject.name = 'Create' From 26fbe97ae62ed269cd5f6833f6bed2b932a8a144 Mon Sep 17 00:00:00 2001 From: Jozufozu Date: Thu, 5 Aug 2021 15:05:32 -0700 Subject: [PATCH 11/79] Fix contraption shadow rendering with optifine - More conventional naming for fields of ContraptionMatrices - Encapsulate fields in ContraptionMatrices - Move creation to RenderLayerEvent - De-clutter RenderedContraption#beginFrame - Bump flywheel version --- gradle.properties | 2 +- .../components/actors/DrillRenderer.java | 6 +- .../components/actors/HarvesterRenderer.java | 6 +- .../PortableStorageInterfaceRenderer.java | 4 +- .../components/deployer/DeployerRenderer.java | 10 +-- .../components/saw/SawRenderer.java | 6 +- .../ContraptionEntityRenderer.java | 3 +- .../StabilizedBearingMovementBehaviour.java | 6 +- .../render/ContraptionMatrices.java | 85 ++++++++++++------- .../render/ContraptionRenderDispatcher.java | 27 +++--- .../render/ContraptionRenderInfo.java | 44 +++++++--- .../render/ContraptionRenderManager.java | 6 +- .../render/FlwContraptionManager.java | 2 + .../render/RenderedContraption.java | 24 ++---- .../render/SBBContraptionManager.java | 9 +- src/main/resources/META-INF/mods.toml | 2 +- 16 files changed, 140 insertions(+), 102 deletions(-) diff --git a/gradle.properties b/gradle.properties index 984e19f84..dff493265 100644 --- a/gradle.properties +++ b/gradle.properties @@ -16,7 +16,7 @@ cursegradle_version = 1.4.0 # dependency versions registrate_version = 1.0.10 -flywheel_version = 1.16-0.2.0.41 +flywheel_version = 1.16-0.2.3.44 jei_version = 7.7.1.116 # curseforge information diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/actors/DrillRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/actors/DrillRenderer.java index 3a81d4509..7270d25ec 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/actors/DrillRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/actors/DrillRenderer.java @@ -44,7 +44,7 @@ public class DrillRenderer extends KineticTileEntityRenderer { float time = AnimationTickHolder.getRenderTime() / 20; float angle = (float) (((time * speed) % 360)); - MatrixStack m = matrices.contraptionStack; + MatrixStack m = matrices.getModel(); m.pushPose(); MatrixTransformStack.of(m) .centre() @@ -55,9 +55,9 @@ public class DrillRenderer extends KineticTileEntityRenderer { superBuffer .transform(m) - .light(matrices.entityMatrix, + .light(matrices.getWorld(), ContraptionRenderDispatcher.getContraptionWorldLight(context, renderWorld)) - .renderInto(matrices.entityStack, buffer.getBuffer(RenderType.solid())); + .renderInto(matrices.getViewProjection(), buffer.getBuffer(RenderType.solid())); m.popPose(); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/actors/HarvesterRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/actors/HarvesterRenderer.java index 79eee6a0a..0aac5f333 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/actors/HarvesterRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/actors/HarvesterRenderer.java @@ -52,13 +52,13 @@ public class HarvesterRenderer extends SafeTileEntityRenderer sbb.light(matrices.entityMatrix, + render(blockState, lit, progress, matrices.getModel(), sbb -> sbb.light(matrices.getWorld(), ContraptionRenderDispatcher.getContraptionWorldLight(context, renderWorld)) - .renderInto(matrices.entityStack, vb)); + .renderInto(matrices.getViewProjection(), vb)); } private static void render(BlockState blockState, boolean lit, float progress, diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerRenderer.java index 72b799cb3..c639e1bf4 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerRenderer.java @@ -181,7 +181,7 @@ public class DeployerRenderer extends SafeTileEntityRenderer Vector3d offset = Vector3d.atLowerCornerOf(blockState.getValue(FACING) .getNormal()).scale(factor); - MatrixStack m = matrices.contraptionStack; + MatrixStack m = matrices.getModel(); m.pushPose(); m.translate(offset.x, offset.y, offset.z); @@ -190,10 +190,10 @@ public class DeployerRenderer extends SafeTileEntityRenderer pole = transform(world, pole, blockState, pos, true); hand = transform(world, hand, blockState, pos, false); - pole.light(matrices.entityMatrix, ContraptionRenderDispatcher.getContraptionWorldLight(context, renderWorld)) - .renderInto(matrices.entityStack, builder); - hand.light(matrices.entityMatrix, ContraptionRenderDispatcher.getContraptionWorldLight(context, renderWorld)) - .renderInto(matrices.entityStack, builder); + pole.light(matrices.getWorld(), ContraptionRenderDispatcher.getContraptionWorldLight(context, renderWorld)) + .renderInto(matrices.getViewProjection(), builder); + hand.light(matrices.getWorld(), ContraptionRenderDispatcher.getContraptionWorldLight(context, renderWorld)) + .renderInto(matrices.getViewProjection(), builder); m.popPose(); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/saw/SawRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/saw/SawRenderer.java index 91e468f99..4f52cd5d8 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/saw/SawRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/saw/SawRenderer.java @@ -192,7 +192,7 @@ public class SawRenderer extends SafeTileEntityRenderer { superBuffer = PartialBufferer.get(AllBlockPartials.SAW_BLADE_VERTICAL_INACTIVE, state); } - MatrixStack m = matrices.contraptionStack; + MatrixStack m = matrices.getModel(); m.pushPose(); MatrixTransformStack.of(m) .centre() @@ -205,8 +205,8 @@ public class SawRenderer extends SafeTileEntityRenderer { .unCentre(); superBuffer.transform(m) - .light(matrices.entityMatrix, ContraptionRenderDispatcher.getContraptionWorldLight(context, renderWorld)) - .renderInto(matrices.entityStack, buffer.getBuffer(RenderType.cutoutMipped())); + .light(matrices.getWorld(), ContraptionRenderDispatcher.getContraptionWorldLight(context, renderWorld)) + .renderInto(matrices.getViewProjection(), buffer.getBuffer(RenderType.cutoutMipped())); m.popPose(); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ContraptionEntityRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ContraptionEntityRenderer.java index 57e249dcf..8be7f7b41 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ContraptionEntityRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ContraptionEntityRenderer.java @@ -1,7 +1,6 @@ package com.simibubi.create.content.contraptions.components.structureMovement; import com.mojang.blaze3d.matrix.MatrixStack; -import com.simibubi.create.content.contraptions.components.structureMovement.render.ContraptionMatrices; import com.simibubi.create.content.contraptions.components.structureMovement.render.ContraptionRenderDispatcher; import net.minecraft.client.renderer.IRenderTypeBuffer; @@ -39,7 +38,7 @@ public class ContraptionEntityRenderer exte Contraption contraption = entity.getContraption(); if (contraption != null) { - ContraptionRenderDispatcher.render(entity, contraption, buffers); + ContraptionRenderDispatcher.renderFromEntity(entity, contraption, buffers); } } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/StabilizedBearingMovementBehaviour.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/StabilizedBearingMovementBehaviour.java index 82ae9b925..2e03a363e 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/StabilizedBearingMovementBehaviour.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/StabilizedBearingMovementBehaviour.java @@ -53,14 +53,14 @@ public class StabilizedBearingMovementBehaviour extends MovementBehaviour { orientation = rotation; - superBuffer.transform(matrices.contraptionStack); + superBuffer.transform(matrices.getModel()); superBuffer.rotateCentered(orientation); // render superBuffer - .light(matrices.entityMatrix, + .light(matrices.getWorld(), ContraptionRenderDispatcher.getContraptionWorldLight(context, renderWorld)) - .renderInto(matrices.entityStack, buffer.getBuffer(RenderType.solid())); + .renderInto(matrices.getViewProjection(), buffer.getBuffer(RenderType.solid())); } @Override diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionMatrices.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionMatrices.java index 202d5dddf..f2c43dfeb 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionMatrices.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionMatrices.java @@ -6,9 +6,16 @@ import com.simibubi.create.foundation.utility.AnimationTickHolder; import net.minecraft.entity.Entity; import net.minecraft.util.math.MathHelper; -import net.minecraft.util.math.vector.Matrix3f; import net.minecraft.util.math.vector.Matrix4f; +import net.minecraft.util.math.vector.Vector3d; +/** + * LIFETIME: one frame + * + *

+ * ContraptionMatrices must be re-created per-contraption per-frame + *

+ */ public class ContraptionMatrices { /** @@ -16,47 +23,68 @@ public class ContraptionMatrices { */ public static final ContraptionMatrices EMPTY = new ContraptionMatrices(); - public final MatrixStack entityStack; - public final MatrixStack contraptionStack; - public final MatrixStack finalStack; - public final Matrix4f entityMatrix; - public final Matrix4f lightMatrix; + private final MatrixStack modelViewProjection; + private final MatrixStack viewProjection; + private final MatrixStack model; + private final Matrix4f world; + private final Matrix4f light; private ContraptionMatrices() { - this.entityStack = this.contraptionStack = this.finalStack = new MatrixStack(); - this.entityMatrix = new Matrix4f(); - this.lightMatrix = new Matrix4f(); + this.viewProjection = this.model = this.modelViewProjection = new MatrixStack(); + this.world = new Matrix4f(); + this.light = new Matrix4f(); } - public ContraptionMatrices(MatrixStack entityStack, AbstractContraptionEntity entity) { - this.entityStack = copyStack(entityStack); - this.contraptionStack = new MatrixStack(); + public ContraptionMatrices(MatrixStack viewProjection, AbstractContraptionEntity entity) { + this.viewProjection = copyStack(viewProjection); float partialTicks = AnimationTickHolder.getPartialTicks(); - entity.doLocalTransforms(partialTicks, new MatrixStack[] { this.contraptionStack }); + this.model = creatModelMatrix(entity, partialTicks); - entityMatrix = translateTo(entity, partialTicks); + world = translateTo(entity, partialTicks); - lightMatrix = entityMatrix.copy(); - lightMatrix.multiply(contraptionStack.last().pose()); + light = getWorld().copy(); + getLight().multiply(this.getModel() + .last().pose()); - finalStack = copyStack(entityStack); - transform(finalStack, contraptionStack); + modelViewProjection = copyStack(viewProjection); + transform(getModelViewProjection(), this.getModel()); } - public MatrixStack getFinalStack() { - return finalStack; + public MatrixStack getModelViewProjection() { + return modelViewProjection; } - public Matrix4f getFinalModel() { - return finalStack.last().pose(); + public MatrixStack getViewProjection() { + return viewProjection; } - public Matrix3f getFinalNormal() { - return finalStack.last().normal(); + public MatrixStack getModel() { + return model; } - public Matrix4f getFinalLight() { - return lightMatrix; + public Matrix4f getWorld() { + return world; + } + + public Matrix4f getLight() { + return light; + } + + public static Matrix4f createModelViewPartial(AbstractContraptionEntity entity, float pt, Vector3d cameraPos) { + float x = (float) (MathHelper.lerp(pt, entity.xOld, entity.getX()) - cameraPos.x); + float y = (float) (MathHelper.lerp(pt, entity.yOld, entity.getY()) - cameraPos.y); + float z = (float) (MathHelper.lerp(pt, entity.zOld, entity.getZ()) - cameraPos.z); + Matrix4f mat = Matrix4f.createTranslateMatrix(x, y, z); + Matrix4f modelMatrix = creatModelMatrix(entity, pt).last().pose(); + + mat.multiply(modelMatrix); + return mat; + } + + public static MatrixStack creatModelMatrix(AbstractContraptionEntity entity, float partialTicks) { + MatrixStack model = new MatrixStack(); + entity.doLocalTransforms(partialTicks, new MatrixStack[] { model}); + return model; } public static Matrix4f translateTo(Entity entity, float partialTicks) { @@ -82,9 +110,4 @@ public class ContraptionMatrices { return cms; } - - public Matrix4f contraptionPose() { - return contraptionStack.last() - .pose(); - } } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionRenderDispatcher.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionRenderDispatcher.java index 2d98ca770..ddcadab07 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionRenderDispatcher.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionRenderDispatcher.java @@ -71,13 +71,24 @@ public class ContraptionRenderDispatcher { reset(); } - public static void render(AbstractContraptionEntity entity, Contraption contraption, IRenderTypeBuffer buffers) { + public static void renderFromEntity(AbstractContraptionEntity entity, Contraption contraption, IRenderTypeBuffer buffers) { World world = entity.level; ContraptionRenderInfo renderInfo = WORLDS.get(world) .getRenderInfo(contraption); + ContraptionMatrices matrices = renderInfo.getMatrices(); - renderDynamic(world, renderInfo.renderWorld, contraption, renderInfo.getMatrices(), buffers); + // something went wrong with the other rendering + if (matrices == null) return; + + PlacementSimulationWorld renderWorld = renderInfo.renderWorld; + + renderTileEntities(world, renderWorld, contraption, matrices, buffers); + + if (buffers instanceof IRenderTypeBuffer.Impl) + ((IRenderTypeBuffer.Impl) buffers).endBatch(); + + renderActors(world, renderWorld, contraption, matrices, buffers); } public static PlacementSimulationWorld setupRenderWorld(World world, Contraption c) { @@ -96,18 +107,10 @@ public class ContraptionRenderDispatcher { return renderWorld; } - public static void renderDynamic(World world, PlacementSimulationWorld renderWorld, Contraption c, - ContraptionMatrices matrices, IRenderTypeBuffer buffer) { - renderTileEntities(world, renderWorld, c, matrices, buffer); - if (buffer instanceof IRenderTypeBuffer.Impl) - ((IRenderTypeBuffer.Impl) buffer).endBatch(); - renderActors(world, renderWorld, c, matrices, buffer); - } - public static void renderTileEntities(World world, PlacementSimulationWorld renderWorld, Contraption c, ContraptionMatrices matrices, IRenderTypeBuffer buffer) { TileEntityRenderHelper.renderTileEntities(world, renderWorld, c.specialRenderedTileEntities, - matrices.getFinalStack(), matrices.getFinalLight(), buffer); + matrices.getModelViewProjection(), matrices.getLight(), buffer); } protected static void renderActors(World world, PlacementSimulationWorld renderWorld, Contraption c, @@ -120,7 +123,7 @@ public class ContraptionRenderDispatcher { context.world = world; Template.BlockInfo blockInfo = actor.getLeft(); - MatrixStack m = matrices.contraptionStack; + MatrixStack m = matrices.getModel(); m.pushPose(); MatrixTransformStack.of(m) .translate(blockInfo.pos); diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionRenderInfo.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionRenderInfo.java index db8c3e764..1000aeed2 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionRenderInfo.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionRenderInfo.java @@ -1,6 +1,10 @@ package com.simibubi.create.content.contraptions.components.structureMovement.render; +import javax.annotation.Nullable; + import com.jozufozu.flywheel.event.BeginFrameEvent; +import com.jozufozu.flywheel.event.RenderLayerEvent; +import com.mojang.blaze3d.matrix.MatrixStack; import com.simibubi.create.content.contraptions.components.structureMovement.AbstractContraptionEntity; import com.simibubi.create.content.contraptions.components.structureMovement.Contraption; import com.simibubi.create.foundation.utility.AnimationTickHolder; @@ -30,29 +34,41 @@ public class ContraptionRenderInfo { } public void beginFrame(BeginFrameEvent event) { + matrices = null; + AbstractContraptionEntity entity = contraption.entity; visible = event.getClippingHelper().isVisible(entity.getBoundingBoxForCulling().inflate(2)); - - event.getStack().pushPose(); - - Vector3d cameraPos = event.getInfo() - .getPosition(); - double x = MathHelper.lerp(AnimationTickHolder.getPartialTicks(), entity.xOld, entity.getX()) - cameraPos.x; - double y = MathHelper.lerp(AnimationTickHolder.getPartialTicks(), entity.yOld, entity.getY()) - cameraPos.y; - double z = MathHelper.lerp(AnimationTickHolder.getPartialTicks(), entity.zOld, entity.getZ()) - cameraPos.z; - - event.getStack().translate(x, y, z); - - matrices = new ContraptionMatrices(event.getStack(), entity); - - event.getStack().popPose(); } public boolean isVisible() { return visible && contraption.entity.isAlive(); } + /** + * Need to call this during RenderLayerEvent. + */ + public void setupMatrices(MatrixStack viewProjection, double camX, double camY, double camZ) { + if (matrices == null) { + AbstractContraptionEntity entity = contraption.entity; + + viewProjection.pushPose(); + + double x = MathHelper.lerp(AnimationTickHolder.getPartialTicks(), entity.xOld, entity.getX()) - camX; + double y = MathHelper.lerp(AnimationTickHolder.getPartialTicks(), entity.yOld, entity.getY()) - camY; + double z = MathHelper.lerp(AnimationTickHolder.getPartialTicks(), entity.zOld, entity.getZ()) - camZ; + + viewProjection.translate(x, y, z); + + matrices = new ContraptionMatrices(viewProjection, entity); + + viewProjection.popPose(); + } + } + + /** + * If #setupMatrices is called correctly, this will not return null + */ public ContraptionMatrices getMatrices() { return matrices; } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionRenderManager.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionRenderManager.java index 8d94a681a..735d569f1 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionRenderManager.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionRenderManager.java @@ -29,7 +29,11 @@ public abstract class ContraptionRenderManager this.world = (World) world; } - public abstract void renderLayer(RenderLayerEvent event); + public void renderLayer(RenderLayerEvent event) { + for (C c : visible) { + c.setupMatrices(event.stack, event.camX, event.camY, event.camZ); + } + } protected abstract C create(Contraption c); diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/FlwContraptionManager.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/FlwContraptionManager.java index 3aff78682..efd42ad70 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/FlwContraptionManager.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/FlwContraptionManager.java @@ -38,6 +38,8 @@ public class FlwContraptionManager extends ContraptionRenderManager renderLayers = new HashMap<>(); - private Matrix4f model; + private Matrix4f modelViewPartial; private AxisAlignedBB lightBox; public RenderedContraption(Contraption contraption, PlacementSimulationWorld renderWorld) { @@ -78,26 +77,17 @@ public class RenderedContraption extends ContraptionRenderInfo { kinetics.beginFrame(event.getInfo()); - AbstractContraptionEntity entity = contraption.entity; - float pt = AnimationTickHolder.getPartialTicks(); - AxisAlignedBB lightBox = GridAlignedBB.toAABB(lighter.lightVolume.getTextureVolume()); + Vector3d cameraPos = event.getCameraPos(); - Vector3d cameraPos = event.getInfo() - .getPosition(); + modelViewPartial = ContraptionMatrices.createModelViewPartial(contraption.entity, AnimationTickHolder.getPartialTicks(), cameraPos); - float x = (float) (MathHelper.lerp(pt, entity.xOld, entity.getX()) - cameraPos.x); - float y = (float) (MathHelper.lerp(pt, entity.yOld, entity.getY()) - cameraPos.y); - float z = (float) (MathHelper.lerp(pt, entity.zOld, entity.getZ()) - cameraPos.z); - model = Matrix4f.createTranslateMatrix(x, y, z); - - model.multiply(getMatrices().contraptionPose()); - - this.lightBox = lightBox.move(-cameraPos.x, -cameraPos.y, -cameraPos.z); + lightBox = GridAlignedBB.toAABB(lighter.lightVolume.getTextureVolume()) + .move(-cameraPos.x, -cameraPos.y, -cameraPos.z); } void setup(ContraptionProgram shader) { - if (model == null || lightBox == null) return; - shader.bind(model, lightBox); + if (modelViewPartial == null || lightBox == null) return; + shader.bind(modelViewPartial, lightBox); lighter.lightVolume.bind(); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/SBBContraptionManager.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/SBBContraptionManager.java index 94f0fec6d..4c68ea22c 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/SBBContraptionManager.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/SBBContraptionManager.java @@ -21,6 +21,7 @@ public class SBBContraptionManager extends ContraptionRenderManager renderContraptionLayerSBB(event, info)); } @@ -38,12 +39,12 @@ public class SBBContraptionManager extends ContraptionRenderManager buildStructureBuffer(renderInfo.renderWorld, renderInfo.contraption, layer)); if (!contraptionBuffer.isEmpty()) { - ContraptionMatrices matrices = renderInfo.getMatrices(); - contraptionBuffer.transform(matrices.contraptionStack) - .light(matrices.entityMatrix) + + contraptionBuffer.transform(matrices.getModel()) + .light(matrices.getWorld()) .hybridLight() - .renderInto(matrices.entityStack, event.buffers.bufferSource() + .renderInto(matrices.getViewProjection(), event.buffers.bufferSource() .getBuffer(layer)); } diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/mods.toml index c932c8408..4f944f0a4 100644 --- a/src/main/resources/META-INF/mods.toml +++ b/src/main/resources/META-INF/mods.toml @@ -32,6 +32,6 @@ Technology that empowers the player.''' [[dependencies.create]] modId="flywheel" mandatory=true - versionRange="[1.16-0.2,1.16-0.3)" + versionRange="[1.16-0.2.3,1.16-0.3)" ordering="AFTER" side="CLIENT" From 333ef9ecbb93bb6efba45dda91f4cfbaa0ce30c5 Mon Sep 17 00:00:00 2001 From: PepperBell <44146161+PepperCode1@users.noreply.github.com> Date: Thu, 5 Aug 2021 17:48:35 -0700 Subject: [PATCH 12/79] Reuse contraption matrices - Optimize memory usage by reusing ContraptionMatrices instances --- .../render/ContraptionMatrices.java | 100 ++++++++---------- .../render/ContraptionRenderDispatcher.java | 2 +- .../render/ContraptionRenderInfo.java | 14 +-- .../render/RenderedContraption.java | 31 +++++- 4 files changed, 80 insertions(+), 67 deletions(-) diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionMatrices.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionMatrices.java index f2c43dfeb..733ff004d 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionMatrices.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionMatrices.java @@ -7,47 +7,55 @@ import com.simibubi.create.foundation.utility.AnimationTickHolder; import net.minecraft.entity.Entity; import net.minecraft.util.math.MathHelper; import net.minecraft.util.math.vector.Matrix4f; -import net.minecraft.util.math.vector.Vector3d; /** - * LIFETIME: one frame - * *

- * ContraptionMatrices must be re-created per-contraption per-frame + * ContraptionMatrices must be cleared and setup per-contraption per-frame *

*/ public class ContraptionMatrices { - /** - * The results from using this are undefined. - */ - public static final ContraptionMatrices EMPTY = new ContraptionMatrices(); + private final MatrixStack modelViewProjection = new MatrixStack(); + private final MatrixStack viewProjection = new MatrixStack(); + private final MatrixStack model = new MatrixStack(); + private final Matrix4f world = new Matrix4f(); + private final Matrix4f light = new Matrix4f(); - private final MatrixStack modelViewProjection; - private final MatrixStack viewProjection; - private final MatrixStack model; - private final Matrix4f world; - private final Matrix4f light; + private boolean ready; - private ContraptionMatrices() { - this.viewProjection = this.model = this.modelViewProjection = new MatrixStack(); - this.world = new Matrix4f(); - this.light = new Matrix4f(); + public ContraptionMatrices() { + world.setIdentity(); + light.setIdentity(); } - public ContraptionMatrices(MatrixStack viewProjection, AbstractContraptionEntity entity) { - this.viewProjection = copyStack(viewProjection); + public void setup(MatrixStack viewProjection, AbstractContraptionEntity entity) { float partialTicks = AnimationTickHolder.getPartialTicks(); - this.model = creatModelMatrix(entity, partialTicks); - world = translateTo(entity, partialTicks); + this.viewProjection.pushPose(); + transform(this.viewProjection, viewProjection); + model.pushPose(); + entity.doLocalTransforms(partialTicks, new MatrixStack[] { model }); - light = getWorld().copy(); - getLight().multiply(this.getModel() + modelViewProjection.pushPose(); + transform(modelViewProjection, viewProjection); + transform(modelViewProjection, model); + + translateToEntity(world, entity, partialTicks); + + light.set(world); + light.multiply(model .last().pose()); - modelViewProjection = copyStack(viewProjection); - transform(getModelViewProjection(), this.getModel()); + ready = true; + } + + public void clear() { + clearStack(modelViewProjection); + clearStack(viewProjection); + clearStack(model); + world.setIdentity(); + light.setIdentity(); + ready = false; } public MatrixStack getModelViewProjection() { @@ -70,28 +78,8 @@ public class ContraptionMatrices { return light; } - public static Matrix4f createModelViewPartial(AbstractContraptionEntity entity, float pt, Vector3d cameraPos) { - float x = (float) (MathHelper.lerp(pt, entity.xOld, entity.getX()) - cameraPos.x); - float y = (float) (MathHelper.lerp(pt, entity.yOld, entity.getY()) - cameraPos.y); - float z = (float) (MathHelper.lerp(pt, entity.zOld, entity.getZ()) - cameraPos.z); - Matrix4f mat = Matrix4f.createTranslateMatrix(x, y, z); - Matrix4f modelMatrix = creatModelMatrix(entity, pt).last().pose(); - - mat.multiply(modelMatrix); - return mat; - } - - public static MatrixStack creatModelMatrix(AbstractContraptionEntity entity, float partialTicks) { - MatrixStack model = new MatrixStack(); - entity.doLocalTransforms(partialTicks, new MatrixStack[] { model}); - return model; - } - - public static Matrix4f translateTo(Entity entity, float partialTicks) { - double x = MathHelper.lerp(partialTicks, entity.xOld, entity.getX()); - double y = MathHelper.lerp(partialTicks, entity.yOld, entity.getY()); - double z = MathHelper.lerp(partialTicks, entity.zOld, entity.getZ()); - return Matrix4f.createTranslateMatrix((float) x, (float) y, (float) z); + public boolean isReady() { + return ready; } public static void transform(MatrixStack ms, MatrixStack transform) { @@ -103,11 +91,17 @@ public class ContraptionMatrices { .normal()); } - public static MatrixStack copyStack(MatrixStack ms) { - MatrixStack cms = new MatrixStack(); - - transform(cms, ms); - - return cms; + public static void translateToEntity(Matrix4f matrix, Entity entity, float partialTicks) { + double x = MathHelper.lerp(partialTicks, entity.xOld, entity.getX()); + double y = MathHelper.lerp(partialTicks, entity.yOld, entity.getY()); + double z = MathHelper.lerp(partialTicks, entity.zOld, entity.getZ()); + matrix.setTranslation((float) x, (float) y, (float) z); } + + public static void clearStack(MatrixStack ms) { + while (!ms.clear()) { + ms.popPose(); + } + } + } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionRenderDispatcher.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionRenderDispatcher.java index ddcadab07..f74968039 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionRenderDispatcher.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionRenderDispatcher.java @@ -79,7 +79,7 @@ public class ContraptionRenderDispatcher { ContraptionMatrices matrices = renderInfo.getMatrices(); // something went wrong with the other rendering - if (matrices == null) return; + if (!matrices.isReady()) return; PlacementSimulationWorld renderWorld = renderInfo.renderWorld; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionRenderInfo.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionRenderInfo.java index 1000aeed2..6bc36792d 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionRenderInfo.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionRenderInfo.java @@ -1,9 +1,6 @@ package com.simibubi.create.content.contraptions.components.structureMovement.render; -import javax.annotation.Nullable; - import com.jozufozu.flywheel.event.BeginFrameEvent; -import com.jozufozu.flywheel.event.RenderLayerEvent; import com.mojang.blaze3d.matrix.MatrixStack; import com.simibubi.create.content.contraptions.components.structureMovement.AbstractContraptionEntity; import com.simibubi.create.content.contraptions.components.structureMovement.Contraption; @@ -11,13 +8,12 @@ import com.simibubi.create.foundation.utility.AnimationTickHolder; import com.simibubi.create.foundation.utility.worldWrappers.PlacementSimulationWorld; import net.minecraft.util.math.MathHelper; -import net.minecraft.util.math.vector.Vector3d; public class ContraptionRenderInfo { public final Contraption contraption; public final PlacementSimulationWorld renderWorld; - private ContraptionMatrices matrices = ContraptionMatrices.EMPTY; + private ContraptionMatrices matrices = new ContraptionMatrices(); private boolean visible; public ContraptionRenderInfo(Contraption contraption, PlacementSimulationWorld renderWorld) { @@ -34,7 +30,7 @@ public class ContraptionRenderInfo { } public void beginFrame(BeginFrameEvent event) { - matrices = null; + matrices.clear(); AbstractContraptionEntity entity = contraption.entity; @@ -49,7 +45,7 @@ public class ContraptionRenderInfo { * Need to call this during RenderLayerEvent. */ public void setupMatrices(MatrixStack viewProjection, double camX, double camY, double camZ) { - if (matrices == null) { + if (!matrices.isReady()) { AbstractContraptionEntity entity = contraption.entity; viewProjection.pushPose(); @@ -60,14 +56,14 @@ public class ContraptionRenderInfo { viewProjection.translate(x, y, z); - matrices = new ContraptionMatrices(viewProjection, entity); + matrices.setup(viewProjection, entity); viewProjection.popPose(); } } /** - * If #setupMatrices is called correctly, this will not return null + * If #setupMatrices is called correctly, the returned matrices will be ready */ public ContraptionMatrices getMatrices() { return matrices; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/RenderedContraption.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/RenderedContraption.java index e33ab3422..56467c7dc 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/RenderedContraption.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/RenderedContraption.java @@ -15,6 +15,7 @@ import com.jozufozu.flywheel.core.model.IModel; import com.jozufozu.flywheel.core.model.WorldModel; import com.jozufozu.flywheel.event.BeginFrameEvent; import com.jozufozu.flywheel.light.GridAlignedBB; +import com.mojang.blaze3d.matrix.MatrixStack; import com.simibubi.create.content.contraptions.components.structureMovement.AbstractContraptionEntity; import com.simibubi.create.content.contraptions.components.structureMovement.Contraption; import com.simibubi.create.content.contraptions.components.structureMovement.ContraptionLighter; @@ -26,6 +27,7 @@ import net.minecraft.client.renderer.RenderType; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.MathHelper; import net.minecraft.util.math.vector.Matrix4f; import net.minecraft.util.math.vector.Vector3d; import net.minecraft.world.World; @@ -39,7 +41,8 @@ public class RenderedContraption extends ContraptionRenderInfo { private final Map renderLayers = new HashMap<>(); - private Matrix4f modelViewPartial; + private final Matrix4f modelViewPartial = new Matrix4f(); + private boolean modelViewPartialReady; private AxisAlignedBB lightBox; public RenderedContraption(Contraption contraption, PlacementSimulationWorld renderWorld) { @@ -73,20 +76,31 @@ public class RenderedContraption extends ContraptionRenderInfo { public void beginFrame(BeginFrameEvent event) { super.beginFrame(event); + modelViewPartial.setIdentity(); + modelViewPartialReady = false; + if (!isVisible()) return; kinetics.beginFrame(event.getInfo()); Vector3d cameraPos = event.getCameraPos(); - modelViewPartial = ContraptionMatrices.createModelViewPartial(contraption.entity, AnimationTickHolder.getPartialTicks(), cameraPos); - lightBox = GridAlignedBB.toAABB(lighter.lightVolume.getTextureVolume()) .move(-cameraPos.x, -cameraPos.y, -cameraPos.z); } + @Override + public void setupMatrices(MatrixStack viewProjection, double camX, double camY, double camZ) { + super.setupMatrices(viewProjection, camX, camY, camZ); + + if (!modelViewPartialReady) { + setupModelViewPartial(modelViewPartial, getMatrices().getModel().last().pose(), contraption.entity, camX, camY, camZ, AnimationTickHolder.getPartialTicks()); + modelViewPartialReady = true; + } + } + void setup(ContraptionProgram shader) { - if (modelViewPartial == null || lightBox == null) return; + if (!modelViewPartialReady || lightBox == null) return; shader.bind(modelViewPartial, lightBox); lighter.lightVolume.bind(); } @@ -144,4 +158,13 @@ public class RenderedContraption extends ContraptionRenderInfo { private void buildActors() { contraption.getActors().forEach(kinetics::createActor); } + + public static void setupModelViewPartial(Matrix4f matrix, Matrix4f modelMatrix, AbstractContraptionEntity entity, double camX, double camY, double camZ, float pt) { + float x = (float) (MathHelper.lerp(pt, entity.xOld, entity.getX()) - camX); + float y = (float) (MathHelper.lerp(pt, entity.yOld, entity.getY()) - camY); + float z = (float) (MathHelper.lerp(pt, entity.zOld, entity.getZ()) - camZ); + matrix.setTranslation(x, y, z); + matrix.multiply(modelMatrix); + } + } From b19d92f6c27c79b9455d160cab0652305047dc4d Mon Sep 17 00:00:00 2001 From: PepperBell <44146161+PepperCode1@users.noreply.github.com> Date: Thu, 5 Aug 2021 22:35:24 -0700 Subject: [PATCH 13/79] Remove legacy TER light code - TERs now pass in the light, so no need to recalculate it - Make ContraptionRenderInfo.matrices final --- .../components/clock/CuckooClockRenderer.java | 12 ++++------ .../crafter/MechanicalCrafterRenderer.java | 21 ++++++++--------- .../components/deployer/DeployerRenderer.java | 23 ++++++++----------- .../flywheel/engine/EngineRenderer.java | 3 +-- .../mixer/MechanicalMixerRenderer.java | 8 ++----- .../press/MechanicalPressRenderer.java | 6 +---- .../render/ContraptionRenderInfo.java | 2 +- .../relays/gauge/GaugeRenderer.java | 8 +++---- .../curiosities/bell/BellRenderer.java | 7 ++---- .../block/redstone/AnalogLeverRenderer.java | 6 ++--- 10 files changed, 35 insertions(+), 61 deletions(-) diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/clock/CuckooClockRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/clock/CuckooClockRenderer.java index 443c00b11..935baf026 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/clock/CuckooClockRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/clock/CuckooClockRenderer.java @@ -14,7 +14,6 @@ import com.simibubi.create.foundation.utility.AngleHelper; import net.minecraft.block.BlockState; import net.minecraft.client.renderer.IRenderTypeBuffer; import net.minecraft.client.renderer.RenderType; -import net.minecraft.client.renderer.WorldRenderer; import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher; import net.minecraft.util.Direction; import net.minecraft.util.math.MathHelper; @@ -34,7 +33,6 @@ public class CuckooClockRenderer extends KineticTileEntityRenderer { CuckooClockTileEntity clock = (CuckooClockTileEntity) te; BlockState blockState = te.getBlockState(); - int packedLightmapCoords = WorldRenderer.getLightColor(te.getLevel(), blockState, te.getBlockPos()); Direction direction = blockState.getValue(CuckooClockBlock.HORIZONTAL_FACING); IVertexBuilder vb = buffer.getBuffer(RenderType.solid()); @@ -44,9 +42,9 @@ public class CuckooClockRenderer extends KineticTileEntityRenderer { SuperByteBuffer minuteHand = PartialBufferer.get(AllBlockPartials.CUCKOO_MINUTE_HAND, blockState); float hourAngle = clock.hourHand.get(partialTicks); float minuteAngle = clock.minuteHand.get(partialTicks); - rotateHand(hourHand, hourAngle, direction).light(packedLightmapCoords) + rotateHand(hourHand, hourAngle, direction).light(light) .renderInto(ms, vb); - rotateHand(minuteHand, minuteAngle, direction).light(packedLightmapCoords) + rotateHand(minuteHand, minuteAngle, direction).light(light) .renderInto(ms, vb); // Doors @@ -72,9 +70,9 @@ public class CuckooClockRenderer extends KineticTileEntityRenderer { } } - rotateDoor(leftDoor, angle, true, direction).light(packedLightmapCoords) + rotateDoor(leftDoor, angle, true, direction).light(light) .renderInto(ms, vb); - rotateDoor(rightDoor, angle, false, direction).light(packedLightmapCoords) + rotateDoor(rightDoor, angle, false, direction).light(light) .renderInto(ms, vb); // Figure @@ -85,7 +83,7 @@ public class CuckooClockRenderer extends KineticTileEntityRenderer { PartialBufferer.get(partialModel, blockState); figure.rotateCentered(Direction.UP, AngleHelper.rad(AngleHelper.horizontalAngle(direction.getCounterClockWise()))); figure.translate(offset, 0, 0); - figure.light(packedLightmapCoords) + figure.light(light) .renderInto(ms, vb); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/crafter/MechanicalCrafterRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/crafter/MechanicalCrafterRenderer.java index 82858218e..d589cd999 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/crafter/MechanicalCrafterRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/crafter/MechanicalCrafterRenderer.java @@ -22,7 +22,6 @@ import net.minecraft.block.BlockState; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.IRenderTypeBuffer; import net.minecraft.client.renderer.RenderType; -import net.minecraft.client.renderer.WorldRenderer; import net.minecraft.client.renderer.model.ItemCameraTransforms.TransformType; import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher; import net.minecraft.item.ItemStack; @@ -169,41 +168,39 @@ public class MechanicalCrafterRenderer extends SafeTileEntityRenderer { @@ -117,16 +115,17 @@ public class DeployerRenderer extends SafeTileEntityRenderer } BlockState blockState = te.getBlockState(); - BlockPos pos = te.getBlockPos(); Vector3d offset = getHandOffset(te, partialTicks, blockState); SuperByteBuffer pole = PartialBufferer.get(AllBlockPartials.DEPLOYER_POLE, blockState); SuperByteBuffer hand = PartialBufferer.get(te.getHandPose(), blockState); - transform(te.getLevel(), pole.translate(offset.x, offset.y, offset.z), blockState, pos, true).renderInto(ms, - vb); - transform(te.getLevel(), hand.translate(offset.x, offset.y, offset.z), blockState, pos, false).renderInto(ms, - vb); + transform(pole.translate(offset.x, offset.y, offset.z), blockState, true) + .light(light) + .renderInto(ms, vb); + transform(hand.translate(offset.x, offset.y, offset.z), blockState, false) + .light(light) + .renderInto(ms, vb); } protected Vector3d getHandOffset(DeployerTileEntity te, float partialTicks, BlockState blockState) { @@ -138,8 +137,7 @@ public class DeployerRenderer extends SafeTileEntityRenderer return KineticTileEntityRenderer.shaft(KineticTileEntityRenderer.getRotationAxisOf(te)); } - private static SuperByteBuffer transform(World world, SuperByteBuffer buffer, BlockState deployerState, - BlockPos pos, boolean axisDirectionMatters) { + private static SuperByteBuffer transform(SuperByteBuffer buffer, BlockState deployerState, boolean axisDirectionMatters) { Direction facing = deployerState.getValue(FACING); float zRotLast = @@ -151,7 +149,6 @@ public class DeployerRenderer extends SafeTileEntityRenderer buffer.rotateCentered(Direction.SOUTH, (float) ((zRot) / 180 * Math.PI)); buffer.rotateCentered(Direction.UP, (float) ((yRot) / 180 * Math.PI)); buffer.rotateCentered(Direction.SOUTH, (float) ((zRotLast) / 180 * Math.PI)); - buffer.light(WorldRenderer.getLightColor(world, deployerState, pos)); return buffer; } @@ -159,9 +156,7 @@ public class DeployerRenderer extends SafeTileEntityRenderer ContraptionMatrices matrices, IRenderTypeBuffer buffer) { IVertexBuilder builder = buffer.getBuffer(RenderType.solid()); BlockState blockState = context.state; - BlockPos pos = BlockPos.ZERO; Mode mode = NBTHelper.readEnum(context.tileData, "Mode", Mode.class); - World world = context.world; PartialModel handPose = getHandPose(mode); SuperByteBuffer pole = PartialBufferer.get(AllBlockPartials.DEPLOYER_POLE, blockState); @@ -187,8 +182,8 @@ public class DeployerRenderer extends SafeTileEntityRenderer pole.transform(m); hand.transform(m); - pole = transform(world, pole, blockState, pos, true); - hand = transform(world, hand, blockState, pos, false); + pole = transform(pole, blockState, true); + hand = transform(hand, blockState, false); pole.light(matrices.getWorld(), ContraptionRenderDispatcher.getContraptionWorldLight(context, renderWorld)) .renderInto(matrices.getViewProjection(), builder); diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/engine/EngineRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/engine/EngineRenderer.java index 0d09715ae..a91ba53d3 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/engine/EngineRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/engine/EngineRenderer.java @@ -10,7 +10,6 @@ import com.simibubi.create.foundation.utility.AngleHelper; import net.minecraft.block.Block; import net.minecraft.client.renderer.IRenderTypeBuffer; import net.minecraft.client.renderer.RenderType; -import net.minecraft.client.renderer.WorldRenderer; import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher; import net.minecraft.util.Direction; @@ -38,7 +37,7 @@ public class EngineRenderer extends SafeTileEntityRe PartialBufferer.get(frame, te.getBlockState()) .rotateCentered(Direction.UP, angle) .translate(0, 0, -1) - .light(WorldRenderer.getLightColor(te.getLevel(), te.getBlockState(), te.getBlockPos())) + .light(light) .renderInto(ms, buffer.getBuffer(RenderType.solid())); } } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MechanicalMixerRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MechanicalMixerRenderer.java index 6da31b2e5..61873ce38 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MechanicalMixerRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MechanicalMixerRenderer.java @@ -13,10 +13,8 @@ import com.simibubi.create.foundation.utility.AnimationTickHolder; import net.minecraft.block.BlockState; import net.minecraft.client.renderer.IRenderTypeBuffer; import net.minecraft.client.renderer.RenderType; -import net.minecraft.client.renderer.WorldRenderer; import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher; import net.minecraft.util.Direction; -import net.minecraft.util.math.BlockPos; public class MechanicalMixerRenderer extends KineticTileEntityRenderer { @@ -37,14 +35,12 @@ public class MechanicalMixerRenderer extends KineticTileEntityRenderer { BlockState blockState = te.getBlockState(); MechanicalMixerTileEntity mixer = (MechanicalMixerTileEntity) te; - BlockPos pos = te.getBlockPos(); IVertexBuilder vb = buffer.getBuffer(RenderType.solid()); SuperByteBuffer superBuffer = PartialBufferer.get(AllBlockPartials.SHAFTLESS_COGWHEEL, blockState); standardKineticRotationTransform(superBuffer, te, light).renderInto(ms, vb); - int packedLightmapCoords = WorldRenderer.getLightColor(te.getLevel(), blockState, pos); float renderedHeadOffset = mixer.getRenderedHeadOffset(partialTicks); float speed = mixer.getRenderedHeadRotationSpeed(partialTicks); float time = AnimationTickHolder.getRenderTime(te.getLevel()); @@ -52,13 +48,13 @@ public class MechanicalMixerRenderer extends KineticTileEntityRenderer { SuperByteBuffer poleRender = PartialBufferer.get(AllBlockPartials.MECHANICAL_MIXER_POLE, blockState); poleRender.translate(0, -renderedHeadOffset, 0) - .light(packedLightmapCoords) + .light(light) .renderInto(ms, vb); SuperByteBuffer headRender = PartialBufferer.get(AllBlockPartials.MECHANICAL_MIXER_HEAD, blockState); headRender.rotateCentered(Direction.UP, angle) .translate(0, -renderedHeadOffset, 0) - .light(packedLightmapCoords) + .light(light) .renderInto(ms, vb); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/press/MechanicalPressRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/press/MechanicalPressRenderer.java index 731294f2c..a310c7c1d 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/press/MechanicalPressRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/press/MechanicalPressRenderer.java @@ -13,9 +13,7 @@ import com.simibubi.create.foundation.render.SuperByteBuffer; import net.minecraft.block.BlockState; import net.minecraft.client.renderer.IRenderTypeBuffer; import net.minecraft.client.renderer.RenderType; -import net.minecraft.client.renderer.WorldRenderer; import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher; -import net.minecraft.util.math.BlockPos; public class MechanicalPressRenderer extends KineticTileEntityRenderer { @@ -35,14 +33,12 @@ public class MechanicalPressRenderer extends KineticTileEntityRenderer { if (Backend.getInstance().canUseInstancing(te.getLevel())) return; - BlockPos pos = te.getBlockPos(); BlockState blockState = te.getBlockState(); - int packedLightmapCoords = WorldRenderer.getLightColor(te.getLevel(), blockState, pos); float renderedHeadOffset = ((MechanicalPressTileEntity) te).getRenderedHeadOffset(partialTicks); SuperByteBuffer headRender = PartialBufferer.getFacing(AllBlockPartials.MECHANICAL_PRESS_HEAD, blockState, blockState.getValue(HORIZONTAL_FACING)); headRender.translate(0, -renderedHeadOffset, 0) - .light(packedLightmapCoords) + .light(light) .renderInto(ms, buffer.getBuffer(RenderType.solid())); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionRenderInfo.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionRenderInfo.java index 6bc36792d..2b628393e 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionRenderInfo.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionRenderInfo.java @@ -13,7 +13,7 @@ public class ContraptionRenderInfo { public final Contraption contraption; public final PlacementSimulationWorld renderWorld; - private ContraptionMatrices matrices = new ContraptionMatrices(); + private final ContraptionMatrices matrices = new ContraptionMatrices(); private boolean visible; public ContraptionRenderInfo(Contraption contraption, PlacementSimulationWorld renderWorld) { diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/GaugeRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/GaugeRenderer.java index 182c75728..ebd9bfad8 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/GaugeRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/GaugeRenderer.java @@ -15,7 +15,6 @@ import com.simibubi.create.foundation.utility.Iterate; import net.minecraft.block.BlockState; import net.minecraft.client.renderer.IRenderTypeBuffer; import net.minecraft.client.renderer.RenderType; -import net.minecraft.client.renderer.WorldRenderer; import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher; import net.minecraft.util.Direction; import net.minecraft.util.math.MathHelper; @@ -43,9 +42,9 @@ public class GaugeRenderer extends KineticTileEntityRenderer { if (Backend.getInstance().canUseInstancing(te.getLevel())) return; super.renderSafe(te, partialTicks, ms, buffer, light, overlay); + BlockState gaugeState = te.getBlockState(); GaugeTileEntity gaugeTE = (GaugeTileEntity) te; - int lightCoords = WorldRenderer.getLightColor(te.getLevel(), gaugeState, te.getBlockPos()); PartialModel partialModel = (type == Type.SPEED ? AllBlockPartials.GAUGE_HEAD_SPEED : AllBlockPartials.GAUGE_HEAD_STRESS); SuperByteBuffer headBuffer = @@ -64,12 +63,11 @@ public class GaugeRenderer extends KineticTileEntityRenderer { rotateBufferTowards(dialBuffer, facing).translate(0, dialPivot, dialPivot) .rotate(Direction.EAST, (float) (Math.PI / 2 * -progress)) .translate(0, -dialPivot, -dialPivot) - .light(lightCoords) + .light(light) .renderInto(ms, vb); - rotateBufferTowards(headBuffer, facing).light(lightCoords) + rotateBufferTowards(headBuffer, facing).light(light) .renderInto(ms, vb); } - } @Override diff --git a/src/main/java/com/simibubi/create/content/curiosities/bell/BellRenderer.java b/src/main/java/com/simibubi/create/content/curiosities/bell/BellRenderer.java index 37d12a927..c32fce701 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/bell/BellRenderer.java +++ b/src/main/java/com/simibubi/create/content/curiosities/bell/BellRenderer.java @@ -1,7 +1,6 @@ package com.simibubi.create.content.curiosities.bell; import com.mojang.blaze3d.matrix.MatrixStack; -import com.mojang.blaze3d.vertex.IVertexBuilder; import com.simibubi.create.foundation.render.PartialBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; import com.simibubi.create.foundation.tileEntity.renderer.SafeTileEntityRenderer; @@ -11,7 +10,6 @@ import net.minecraft.block.BellBlock; import net.minecraft.block.BlockState; import net.minecraft.client.renderer.IRenderTypeBuffer; import net.minecraft.client.renderer.RenderType; -import net.minecraft.client.renderer.WorldRenderer; import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher; import net.minecraft.state.properties.BellAttachment; import net.minecraft.util.Direction; @@ -39,9 +37,8 @@ public class BellRenderer extends SafeTileEnt rY += 90; bell.rotateCentered(Direction.UP, AngleHelper.rad(rY)); - IVertexBuilder vb = buffer.getBuffer(RenderType.cutout()); - int lightCoords = WorldRenderer.getLightColor(te.getLevel(), state, te.getBlockPos()); - bell.light(lightCoords).renderInto(ms, vb); + bell.light(light) + .renderInto(ms, buffer.getBuffer(RenderType.cutout())); } public static float getSwingAngle(float time) { diff --git a/src/main/java/com/simibubi/create/content/logistics/block/redstone/AnalogLeverRenderer.java b/src/main/java/com/simibubi/create/content/logistics/block/redstone/AnalogLeverRenderer.java index 01e3d5d05..24e387780 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/redstone/AnalogLeverRenderer.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/redstone/AnalogLeverRenderer.java @@ -13,7 +13,6 @@ import com.simibubi.create.foundation.utility.ColorHelper; import net.minecraft.block.BlockState; import net.minecraft.client.renderer.IRenderTypeBuffer; import net.minecraft.client.renderer.RenderType; -import net.minecraft.client.renderer.WorldRenderer; import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher; import net.minecraft.state.properties.AttachFace; import net.minecraft.util.Direction; @@ -31,7 +30,6 @@ public class AnalogLeverRenderer extends SafeTileEntityRenderer Date: Fri, 6 Aug 2021 12:13:51 -0700 Subject: [PATCH 14/79] Fix CI - Javadoc doesn't like angle brackets - Add jar to artifacts --- build.gradle | 2 +- .../contraptions/fluids/PipeConnection.java | 8 ++++---- .../foundation/ponder/SceneBuilder.java | 20 +++++++++---------- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/build.gradle b/build.gradle index 676d87dba..94ae11c67 100644 --- a/build.gradle +++ b/build.gradle @@ -201,7 +201,7 @@ task javadocJar(type: Jar, dependsOn: javadoc) { } artifacts { - archives shadowJar, sourcesJar, javadocJar + archives jar, shadowJar, sourcesJar, javadocJar } publishing { diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/PipeConnection.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/PipeConnection.java index f766f18f4..240883516 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/PipeConnection.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/PipeConnection.java @@ -87,7 +87,7 @@ public class PipeConnection { FlowSource flowSource = source.get(); flowSource.manageSource(world); } - + public boolean manageFlows(World world, BlockPos pos, FluidStack internalFluid, Predicate extractionPredicate) { @@ -193,7 +193,7 @@ public class PipeConnection { if (world.isClientSide) { if (!source.isPresent()) determineSource(world, pos); - + spawnParticles(world, pos, flow.fluid); if (particleSplashNextTick) spawnSplashOnRim(world, pos, flow.fluid); @@ -282,8 +282,8 @@ public class PipeConnection { /** * @return zero if outward == inbound
- * positive if outward > inbound
- * negative if outward < inbound + * positive if outward {@literal >} inbound
+ * negative if outward {@literal <} inbound */ public float comparePressure() { return getOutwardPressure() - getInboundPressure(); diff --git a/src/main/java/com/simibubi/create/foundation/ponder/SceneBuilder.java b/src/main/java/com/simibubi/create/foundation/ponder/SceneBuilder.java index 108351609..da969d2fb 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/SceneBuilder.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/SceneBuilder.java @@ -132,7 +132,7 @@ public class SceneBuilder { * Assign a unique translation key, as well as the standard english translation * for this scene's title using this method, anywhere inside the program * function. - * + * * @param sceneId * @param title */ @@ -147,7 +147,7 @@ public class SceneBuilder { * the the base plate.
* As a result, showBasePlate() will only show the configured size, and the * scene's scaling inside the UI will be consistent with its base size. - * + * * @param xOffset Block spaces between the base plate and the schematic * boundary on the Western side. * @param zOffset Block spaces between the base plate and the schematic @@ -164,8 +164,8 @@ public class SceneBuilder { /** * Use this in case you are not happy with the scale of the scene relative to * the overlay - * - * @param factor >1 will make the scene appear larger, smaller otherwise + * + * @param factor {@literal >}1 will make the scene appear larger, smaller otherwise */ public void scaleSceneView(float factor) { scene.scaleFactor = factor; @@ -174,8 +174,8 @@ public class SceneBuilder { /** * Use this in case you are not happy with the vertical alignment of the scene * relative to the overlay - * - * @param yOffset >0 moves the scene up, down otherwise + * + * @param yOffset {@literal >}0 moves the scene up, down otherwise */ public void setSceneOffsetY(float yOffset) { scene.yOffset = yOffset; @@ -197,7 +197,7 @@ public class SceneBuilder { * actions play out.
* Idle does not stall any animations, only schedules a time gap between * instructions. - * + * * @param ticks Duration to wait for */ public void idle(int ticks) { @@ -209,7 +209,7 @@ public class SceneBuilder { * actions play out.
* Idle does not stall any animations, only schedules a time gap between * instructions. - * + * * @param seconds Duration to wait for */ public void idleSeconds(int seconds) { @@ -229,7 +229,7 @@ public class SceneBuilder { /** * Pans the scene's camera view around the vertical axis by the given amount - * + * * @param degrees */ public void rotateCameraY(float degrees) { @@ -824,4 +824,4 @@ public class SceneBuilder { scene.schedule.add(PonderInstruction.simple(callback)); } -} \ No newline at end of file +} From 370c81328736e39e71021f92a3e550a8de3a6767 Mon Sep 17 00:00:00 2001 From: zelophed Date: Sat, 7 Aug 2021 02:09:12 +0200 Subject: [PATCH 15/79] lost in the depths - add a search box to config screens - add a new screen that gives easier access to other mod's configs - add a couple more config annotations --- .../create/foundation/config/CClient.java | 8 +- .../create/foundation/config/CKinetics.java | 4 +- .../config/ui/BaseConfigScreen.java | 76 ++++++--- .../config/ui/ConfigAnnotations.java | 112 +++++++++++++ .../foundation/config/ui/ConfigHelper.java | 74 ++++++++- .../config/ui/ConfigModListScreen.java | 156 ++++++++++++++++++ .../foundation/config/ui/ConfigScreen.java | 7 +- .../config/ui/ConfigScreenList.java | 96 ++++++++++- .../foundation/config/ui/ConfigTextField.java | 40 +---- .../config/ui/HintableTextFieldWidget.java | 62 +++++++ .../config/ui/SubMenuConfigScreen.java | 137 +++++++++++---- .../config/ui/entries/EnumEntry.java | 7 +- .../config/ui/entries/NumberEntry.java | 2 +- .../config/ui/entries/ValueEntry.java | 74 +++------ .../create/foundation/gui/UIRenderHelper.java | 16 ++ 15 files changed, 702 insertions(+), 169 deletions(-) create mode 100644 src/main/java/com/simibubi/create/foundation/config/ui/ConfigAnnotations.java create mode 100644 src/main/java/com/simibubi/create/foundation/config/ui/ConfigModListScreen.java create mode 100644 src/main/java/com/simibubi/create/foundation/config/ui/HintableTextFieldWidget.java diff --git a/src/main/java/com/simibubi/create/foundation/config/CClient.java b/src/main/java/com/simibubi/create/foundation/config/CClient.java index 99229f460..d903b52a1 100644 --- a/src/main/java/com/simibubi/create/foundation/config/CClient.java +++ b/src/main/java/com/simibubi/create/foundation/config/CClient.java @@ -1,5 +1,7 @@ package com.simibubi.create.foundation.config; +import com.simibubi.create.foundation.config.ui.ConfigAnnotations; + public class CClient extends ConfigBase { public ConfigGroup client = group(0, "client", @@ -42,11 +44,11 @@ public class CClient extends ConfigBase { "Offset the overlay from goggle- and hover- information by this many pixels on the Y axis; Use /create overlay"); public ConfigBool overlayCustomColor = b(false, "customColorsOverlay", "Enable this to use your custom colors for the Goggle- and Hover- Overlay"); public ConfigInt overlayBackgroundColor = i(0xf0_100010, Integer.MIN_VALUE, Integer.MAX_VALUE, "customBackgroundOverlay", - "The custom background color to use for the Goggle- and Hover- Overlays, if enabled", "[in Hex: #AaRrGgBb]", "[@cui:IntDisplay:#]"); + "The custom background color to use for the Goggle- and Hover- Overlays, if enabled", "[in Hex: #AaRrGgBb]", ConfigAnnotations.IntDisplay.HEX.asComment()); public ConfigInt overlayBorderColorTop = i(0x50_5000ff, Integer.MIN_VALUE, Integer.MAX_VALUE, "customBorderTopOverlay", - "The custom top color of the border gradient to use for the Goggle- and Hover- Overlays, if enabled", "[in Hex: #AaRrGgBb]", "[@cui:IntDisplay:#]"); + "The custom top color of the border gradient to use for the Goggle- and Hover- Overlays, if enabled", "[in Hex: #AaRrGgBb]", ConfigAnnotations.IntDisplay.HEX.asComment()); public ConfigInt overlayBorderColorBot = i(0x50_28007f, Integer.MIN_VALUE, Integer.MAX_VALUE, "customBorderBotOverlay", - "The custom bot color of the border gradient to use for the Goggle- and Hover- Overlays, if enabled", "[in Hex: #AaRrGgBb]", "[@cui:IntDisplay:#]"); + "The custom bot color of the border gradient to use for the Goggle- and Hover- Overlays, if enabled", "[in Hex: #AaRrGgBb]", ConfigAnnotations.IntDisplay.HEX.asComment()); //placement assist group public ConfigGroup placementAssist = group(1, "placementAssist", "Settings for the Placement Assist"); diff --git a/src/main/java/com/simibubi/create/foundation/config/CKinetics.java b/src/main/java/com/simibubi/create/foundation/config/CKinetics.java index b5fe5002d..8739dd8e0 100644 --- a/src/main/java/com/simibubi/create/foundation/config/CKinetics.java +++ b/src/main/java/com/simibubi/create/foundation/config/CKinetics.java @@ -1,11 +1,13 @@ package com.simibubi.create.foundation.config; +import com.simibubi.create.foundation.config.ui.ConfigAnnotations; + public class CKinetics extends ConfigBase { public ConfigBool disableStress = b(false, "disableStress", Comments.disableStress); public ConfigInt maxBeltLength = i(20, 5, "maxBeltLength", Comments.maxBeltLength); public ConfigInt crushingDamage = i(4, 0, "crushingDamage", Comments.crushingDamage); - public ConfigInt maxMotorSpeed = i(256, 64, "maxMotorSpeed", Comments.rpm, Comments.maxMotorSpeed); + public ConfigInt maxMotorSpeed = i(256, 64, "maxMotorSpeed", Comments.rpm, Comments.maxMotorSpeed, ConfigAnnotations.RequiresRestart.BOTH.asComment()); public ConfigInt waterWheelBaseSpeed = i(4, 1, "waterWheelBaseSpeed", Comments.rpm, Comments.waterWheelBaseSpeed); public ConfigInt waterWheelFlowSpeed = i(4, 1, "waterWheelFlowSpeed", Comments.rpm, Comments.waterWheelFlowSpeed); public ConfigInt furnaceEngineSpeed = i(16, 1, "furnaceEngineSpeed", Comments.rpm, Comments.furnaceEngineSpeed); diff --git a/src/main/java/com/simibubi/create/foundation/config/ui/BaseConfigScreen.java b/src/main/java/com/simibubi/create/foundation/config/ui/BaseConfigScreen.java index 1df945e6a..a22ddc419 100644 --- a/src/main/java/com/simibubi/create/foundation/config/ui/BaseConfigScreen.java +++ b/src/main/java/com/simibubi/create/foundation/config/ui/BaseConfigScreen.java @@ -1,6 +1,9 @@ package com.simibubi.create.foundation.config.ui; +import java.util.HashMap; import java.util.Locale; +import java.util.Map; +import java.util.function.UnaryOperator; import javax.annotation.Nonnull; import javax.annotation.Nullable; @@ -26,43 +29,65 @@ import net.minecraftforge.fml.config.ModConfig; public class BaseConfigScreen extends ConfigScreen { - private static final DelegatedStencilElement.ElementRenderer DISABLED_RENDERER = (ms, width, height, alpha) -> UIRenderHelper.angledGradient(ms, 0, 0, height / 2, height, width, Theme.p(Theme.Key.BUTTON_DISABLE)); + public static final DelegatedStencilElement.ElementRenderer DISABLED_RENDERER = (ms, width, height, alpha) -> UIRenderHelper.angledGradient(ms, 0, 0, height / 2, height, width, Theme.p(Theme.Key.BUTTON_DISABLE)); + private static final Map> defaults = new HashMap<>(); + + static { + defaults.put("create", (base) -> base + .withTitles("Client Settings", "World Generation Settings", "Gameplay Settings") + .withSpecs(AllConfigs.CLIENT.specification, AllConfigs.COMMON.specification, AllConfigs.SERVER.specification) + ); + } + + /** + * If you are a Create Addon dev and want to change the config labels, + * add a default action here. + * + * Make sure you call either {@link #withSpecs(ForgeConfigSpec, ForgeConfigSpec, ForgeConfigSpec)} + * or {@link #searchForSpecsInModContainer()} + * + * @param modID the modID of your addon/mod + */ + public static void setDefaultActionFor(String modID, UnaryOperator transform) { + if (modID.equalsIgnoreCase("create")) + return; + + defaults.put(modID, transform); + } public static BaseConfigScreen forCreate(Screen parent) { - return new BaseConfigScreen(parent) - .withTitles("Client Settings", "World Generation Settings", "Gameplay Settings") - .withSpecs(AllConfigs.CLIENT.specification, AllConfigs.COMMON.specification, AllConfigs.SERVER.specification); + return new BaseConfigScreen(parent); } BoxWidget clientConfigWidget; BoxWidget commonConfigWidget; BoxWidget serverConfigWidget; BoxWidget goBack; + BoxWidget others; BoxWidget title; ForgeConfigSpec clientSpec; ForgeConfigSpec commonSpec; ForgeConfigSpec serverSpec; - String clientTile = "CLIENT CONFIG"; - String commonTile = "COMMON CONFIG"; - String serverTile = "SERVER CONFIG"; - String modID = Create.ID; + String clientTile = "Client Config"; + String commonTile = "Common Config"; + String serverTile = "Server Config"; + String modID; protected boolean returnOnClose; - /** - * If you are a Create Addon dev and want to make use of the same GUI - * for your mod's config, use this Constructor to create a entry point - * - * @param parent the previously opened screen - * @param modID the modID of your addon/mod - */ public BaseConfigScreen(Screen parent, @Nonnull String modID) { - this(parent); + super(parent); this.modID = modID; + + if (defaults.containsKey(modID)) + defaults.get(modID).apply(this); + else { + this.searchForSpecsInModContainer(); + } } private BaseConfigScreen(Screen parent) { - super(parent); + this(parent, Create.ID); } /** @@ -70,22 +95,26 @@ public class BaseConfigScreen extends ConfigScreen { * please use {@link #withSpecs(ForgeConfigSpec, ForgeConfigSpec, ForgeConfigSpec)} instead */ public BaseConfigScreen searchForSpecsInModContainer() { + if (!ConfigHelper.hasAnyConfig(this.modID)){ + return this; + } + try { clientSpec = ConfigHelper.findConfigSpecFor(ModConfig.Type.CLIENT, this.modID); } catch (Exception e) { - Create.LOGGER.warn("Unable to find ClientConfigSpec for mod: " + this.modID); + Create.LOGGER.debug("Unable to find ClientConfigSpec for mod: " + this.modID); } try { commonSpec = ConfigHelper.findConfigSpecFor(ModConfig.Type.COMMON, this.modID); } catch (Exception e) { - Create.LOGGER.warn("Unable to find CommonConfigSpec for mod: " + this.modID, e); + Create.LOGGER.debug("Unable to find CommonConfigSpec for mod: " + this.modID); } try { serverSpec = ConfigHelper.findConfigSpecFor(ModConfig.Type.SERVER, this.modID); } catch (Exception e) { - Create.LOGGER.warn("Unable to find ServerConfigSpec for mod: " + this.modID, e); + Create.LOGGER.debug("Unable to find ServerConfigSpec for mod: " + this.modID); } return this; @@ -191,6 +220,13 @@ public class BaseConfigScreen extends ConfigScreen { goBack.getToolTip() .add(new StringTextComponent("Go Back")); widgets.add(goBack); + + TextStencilElement othersText = new TextStencilElement(minecraft.font, new StringTextComponent("Access Configs of other Mods")).centered(true, true); + others = new BoxWidget(width / 2 - 100, height / 2 - 15 + 90, 200, 16).showingElement(othersText); + othersText.withElementRenderer(BoxWidget.gradientFactory.apply(others)); + others.withCallback(() -> linkTo(new ConfigModListScreen(this))); + widgets.add(others); + } @Override diff --git a/src/main/java/com/simibubi/create/foundation/config/ui/ConfigAnnotations.java b/src/main/java/com/simibubi/create/foundation/config/ui/ConfigAnnotations.java new file mode 100644 index 000000000..f52290fae --- /dev/null +++ b/src/main/java/com/simibubi/create/foundation/config/ui/ConfigAnnotations.java @@ -0,0 +1,112 @@ +package com.simibubi.create.foundation.config.ui; + +public class ConfigAnnotations { + + + /** + * Changes the way the Integer value is display. + */ + public enum IntDisplay implements ConfigAnnotation { + HEX("#"), + ZERO_X("0x"), + ZERO_B("0b"); + + private final String value; + + IntDisplay(String value) { + this.value = value; + } + + @Override + public String getName() { + return "IntDisplay"; + } + + @Override + public String getValue() { + return value; + } + } + + /** + * Indicates to the player that changing this value will require a restart to take full effect + */ + public enum RequiresRestart implements ConfigAnnotation { + CLIENT("client"), + SERVER("server"), + BOTH("both"); + + private final String value; + + RequiresRestart(String value) { + this.value = value; + } + + @Override + public String getName() { + return "RequiresReload"; + } + + @Override + public String getValue() { + return value; + } + } + + /** + * Indicates to the player that changing this value will require them to relog to take full effect + */ + public enum RequiresRelog implements ConfigAnnotation { + TRUE; + + @Override + public String getName() { + return "RequiresRelog"; + } + } + + /** + * Changing a value that is annotated with Execute will cause the player to run the given command automatically. + */ + public static class Execute implements ConfigAnnotation { + + private final String command; + + public static Execute run(String command) { + return new Execute(command); + } + + private Execute(String command) { + this.command = command; + } + + @Override + public String getName() { + return "Execute"; + } + + @Override + public String getValue() { + return command; + } + } + + public interface ConfigAnnotation { + String getName(); + + default String getValue() { + return null; + } + + default String asComment() { + String comment = "[@cui:" + getName(); + String value = getValue(); + if (value != null) { + comment = comment + ":" + value; + } + comment = comment + "]"; + return comment; + } + + } +} diff --git a/src/main/java/com/simibubi/create/foundation/config/ui/ConfigHelper.java b/src/main/java/com/simibubi/create/foundation/config/ui/ConfigHelper.java index fb3f4212b..5dbb2e542 100644 --- a/src/main/java/com/simibubi/create/foundation/config/ui/ConfigHelper.java +++ b/src/main/java/com/simibubi/create/foundation/config/ui/ConfigHelper.java @@ -2,18 +2,25 @@ package com.simibubi.create.foundation.config.ui; import java.util.Arrays; import java.util.EnumMap; +import java.util.HashMap; import java.util.List; import java.util.Locale; +import java.util.Map; import java.util.Objects; import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicReference; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import javax.annotation.Nonnull; +import javax.annotation.Nullable; import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheLoader; import com.google.common.cache.LoadingCache; import com.simibubi.create.Create; import com.simibubi.create.foundation.config.AllConfigs; +import com.simibubi.create.foundation.utility.Pair; import net.minecraftforge.common.ForgeConfigSpec; import net.minecraftforge.fml.ModContainer; @@ -23,6 +30,10 @@ import net.minecraftforge.fml.config.ModConfig; public class ConfigHelper { + public static final Pattern unitPattern = Pattern.compile("\\[(in .*)]"); + public static final Pattern annotationPattern = Pattern.compile("\\[@cui:([^:]*)(?::(.*))?]"); + + public static final Map changes = new HashMap<>(); private static final LoadingCache> configCache = CacheBuilder.newBuilder().expireAfterAccess(5, TimeUnit.MINUTES).build( new CacheLoader>() { @Override @@ -54,6 +65,11 @@ public class ConfigHelper { return null; } + public static boolean hasAnyConfig(String modID) { + EnumMap map = configCache.getUnchecked(modID); + return map.entrySet().size() > 0; + } + //Directly set a value public static void setConfigValue(ConfigPath path, String value) throws InvalidValueException { ForgeConfigSpec spec = findConfigSpecFor(path.getType(), path.getModID()); @@ -68,18 +84,51 @@ public class ConfigHelper { } //Add a value to the current UI's changes list - public static void setValue(String path, ForgeConfigSpec.ConfigValue configValue, T value) { + public static void setValue(String path, ForgeConfigSpec.ConfigValue configValue, T value, @Nullable Map annotations) { if (value.equals(configValue.get())) { - ConfigScreen.changes.remove(path); + changes.remove(path); } else { - ConfigScreen.changes.put(path, value); + changes.put(path, annotations == null ? new ConfigChange(value) : new ConfigChange(value, annotations)); } } //Get a value from the current UI's changes list or the config value, if its unchanged public static T getValue(String path, ForgeConfigSpec.ConfigValue configValue) { - //noinspection unchecked - return (T) ConfigScreen.changes.getOrDefault(path, configValue.get()); + ConfigChange configChange = changes.get(path); + if (configChange != null) + //noinspection unchecked + return (T) configChange.value; + else + return configValue.get(); + } + + public static Pair> readMetadataFromComment(List commentLines) { + AtomicReference unit = new AtomicReference<>(); + Map annotations = new HashMap<>(); + + commentLines.removeIf(line -> { + if (line.trim().isEmpty()) { + return true; + } + + Matcher matcher = annotationPattern.matcher(line); + if (matcher.matches()) { + String annotation = matcher.group(1); + String aValue = matcher.group(2); + annotations.putIfAbsent(annotation, aValue); + + return true; + } + + matcher = unitPattern.matcher(line); + if (matcher.matches()) { + unit.set(matcher.group(1)); + } + + return false; + }); + + return Pair.of(unit.get(), annotations); } public static class ConfigPath { @@ -138,5 +187,20 @@ public class ConfigHelper { } } + public static class ConfigChange { + Object value; + Map annotations; + + ConfigChange(Object value) { + this.value = value; + } + + ConfigChange(Object value, Map annotations) { + this(value); + this.annotations = new HashMap<>(); + this.annotations.putAll(annotations); + } + } + public static class InvalidValueException extends Exception {} } diff --git a/src/main/java/com/simibubi/create/foundation/config/ui/ConfigModListScreen.java b/src/main/java/com/simibubi/create/foundation/config/ui/ConfigModListScreen.java new file mode 100644 index 000000000..c335618c9 --- /dev/null +++ b/src/main/java/com/simibubi/create/foundation/config/ui/ConfigModListScreen.java @@ -0,0 +1,156 @@ +package com.simibubi.create.foundation.config.ui; + +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; + +import com.mojang.blaze3d.matrix.MatrixStack; +import com.simibubi.create.foundation.gui.AllIcons; +import com.simibubi.create.foundation.gui.DelegatedStencilElement; +import com.simibubi.create.foundation.gui.ScreenOpener; +import com.simibubi.create.foundation.gui.Theme; +import com.simibubi.create.foundation.gui.widgets.BoxWidget; +import com.simibubi.create.foundation.item.TooltipHelper; + +import net.minecraft.client.gui.screen.Screen; +import net.minecraft.util.text.StringTextComponent; +import net.minecraft.util.text.TextFormatting; +import net.minecraftforge.fml.ModList; +import net.minecraftforge.fml.loading.moddiscovery.ModInfo; + +public class ConfigModListScreen extends ConfigScreen { + + ConfigScreenList list; + HintableTextFieldWidget search; + BoxWidget goBack; + List allEntries; + + public ConfigModListScreen(Screen parent) { + super(parent); + } + + @Override + public void tick() { + super.tick(); + list.tick(); + } + + @Override + protected void init() { + widgets.clear(); + super.init(); + + int listWidth = Math.min(width - 80, 300); + + list = new ConfigScreenList(minecraft, listWidth, height - 60, 15, height - 45, 40); + list.setLeftPos(this.width / 2 - list.getWidth() / 2); + children.add(list); + + allEntries = new ArrayList<>(); + ModList.get().getMods().stream().map(ModInfo::getModId).forEach(id -> allEntries.add(new ModEntry(id, this))); + allEntries.sort((e1, e2) -> { + int empty = (e2.button.active ? 1 : 0) - (e1.button.active ? 1 : 0); + if (empty != 0) + return empty; + + return e1.id.compareToIgnoreCase(e2.id); + }); + list.children().clear(); + list.children().addAll(allEntries); + + goBack = new BoxWidget(width / 2 - listWidth / 2 - 30, height / 2 + 65, 20, 20).withPadding(2, 2) + .withCallback(this::onClose); + goBack.showingElement(AllIcons.I_CONFIG_BACK.asStencil() + .withElementRenderer(BoxWidget.gradientFactory.apply(goBack))); + goBack.getToolTip() + .add(new StringTextComponent("Go Back")); + widgets.add(goBack); + + search = new HintableTextFieldWidget(font, width / 2 - listWidth / 2, height - 35, listWidth, 20); + search.setResponder(this::updateFilter); + search.setHint("Search.."); + search.moveCursorToStart(); + widgets.add(search); + + } + + @Override + protected void renderWindow(MatrixStack ms, int mouseX, int mouseY, float partialTicks) { + + list.render(ms, mouseX, mouseY, partialTicks); + + } + + @Override + public void onClose() { + super.onClose(); + ScreenOpener.open(parent); + } + + private void updateFilter(String search) { + list.children().clear(); + allEntries + .stream() + .filter(modEntry -> modEntry.id.contains(search.toLowerCase(Locale.ROOT))) + .forEach(list.children()::add); + + list.setScrollAmount(list.getScrollAmount()); + if (list.children().size() > 0) { + this.search.setTextColor(Theme.i(Theme.Key.TEXT)); + } else { + this.search.setTextColor(Theme.i(Theme.Key.BUTTON_FAIL)); + } + } + + public static class ModEntry extends ConfigScreenList.LabeledEntry { + + protected BoxWidget button; + protected String id; + + public ModEntry(String id, Screen parent) { + super(toHumanReadable(id)); + this.id = id; + + button = new BoxWidget(0, 0, 35, 16) + .showingElement(AllIcons.I_CONFIG_OPEN.asStencil().at(10, 0)); + button.modifyElement(e -> ((DelegatedStencilElement) e).withElementRenderer(BoxWidget.gradientFactory.apply(button))); + + if (ConfigHelper.hasAnyConfig(id)) { + button.withCallback(() -> ScreenOpener.open(new BaseConfigScreen(parent, id))); + } else { + button.active = false; + button.updateColorsFromState(); + button.modifyElement(e -> ((DelegatedStencilElement) e).withElementRenderer(BaseConfigScreen.DISABLED_RENDERER)); + labelTooltip.add(new StringTextComponent(toHumanReadable(id))); + labelTooltip.addAll(TooltipHelper.cutTextComponent(new StringTextComponent("This Mod does not have any configs registered or is not using Forge's config system"), TextFormatting.GRAY, TextFormatting.GRAY)); + } + + listeners.add(button); + } + + public String getId() { + return id; + } + + @Override + public void tick() { + super.tick(); + button.tick(); + } + + @Override + public void render(MatrixStack ms, int index, int y, int x, int width, int height, int mouseX, int mouseY, boolean p_230432_9_, float partialTicks) { + super.render(ms, index, y, x, width, height, mouseX, mouseY, p_230432_9_, partialTicks); + + button.x = x + width - 108; + button.y = y + 10; + button.setHeight(height - 20); + button.render(ms, mouseX, mouseY, partialTicks); + } + + @Override + protected int getLabelWidth(int totalWidth) { + return (int) (totalWidth * labelWidthMult) + 30; + } + } +} diff --git a/src/main/java/com/simibubi/create/foundation/config/ui/ConfigScreen.java b/src/main/java/com/simibubi/create/foundation/config/ui/ConfigScreen.java index 797c4758f..194ea921f 100644 --- a/src/main/java/com/simibubi/create/foundation/config/ui/ConfigScreen.java +++ b/src/main/java/com/simibubi/create/foundation/config/ui/ConfigScreen.java @@ -39,11 +39,9 @@ public abstract class ConfigScreen extends AbstractSimiScreen { /* * - * zelo's list for configUI + * TO DO * * reduce number of packets sent to the server when saving a bunch of values - * maybe replace java's awt color with something mutable - * find out why framebuffer blending is incorrect * * FIXME * @@ -54,7 +52,6 @@ public abstract class ConfigScreen extends AbstractSimiScreen { public static final Map> backgrounds = new HashMap<>(); public static final PhysicalFloat cogSpin = PhysicalFloat.create().withLimit(10f).withDrag(0.3).addForce(new Force.Static(.2f)); public static final BlockState cogwheelState = AllBlocks.LARGE_COGWHEEL.getDefaultState().setValue(CogWheelBlock.AXIS, Direction.Axis.Y); - public static final Map changes = new HashMap<>(); public static String modID = null; protected final Screen parent; @@ -147,7 +144,7 @@ public abstract class ConfigScreen extends AbstractSimiScreen { public static String toHumanReadable(String key) { String s = key.replaceAll("_", " "); s = Arrays.stream(StringUtils.splitByCharacterTypeCamelCase(s)).map(StringUtils::capitalize).collect(Collectors.joining(" ")); - s = s.replaceAll("\\s\\s+", " "); + s = StringUtils.normalizeSpace(s); return s; } diff --git a/src/main/java/com/simibubi/create/foundation/config/ui/ConfigScreenList.java b/src/main/java/com/simibubi/create/foundation/config/ui/ConfigScreenList.java index 9c4bedf6c..796a8086b 100644 --- a/src/main/java/com/simibubi/create/foundation/config/ui/ConfigScreenList.java +++ b/src/main/java/com/simibubi/create/foundation/config/ui/ConfigScreenList.java @@ -1,7 +1,11 @@ package com.simibubi.create.foundation.config.ui; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.Optional; import org.lwjgl.opengl.GL11; @@ -12,6 +16,7 @@ import com.simibubi.create.foundation.gui.TextStencilElement; import com.simibubi.create.foundation.gui.Theme; import com.simibubi.create.foundation.gui.UIRenderHelper; import com.simibubi.create.foundation.utility.Color; +import com.simibubi.create.foundation.utility.animation.LerpedFloat; import net.minecraft.client.MainWindow; import net.minecraft.client.Minecraft; @@ -28,8 +33,6 @@ public class ConfigScreenList extends ExtendedList { public static TextFieldWidget currentText; - public boolean isForServer = false; - public ConfigScreenList(Minecraft client, int width, int height, int top, int bottom, int elementHeight) { super(client, width, height, top, bottom, elementHeight); setRenderBackground(false); @@ -77,13 +80,41 @@ public class ConfigScreenList extends ExtendedList { } public void tick() { - for(int i = 0; i < getItemCount(); ++i) { + /*for(int i = 0; i < getItemCount(); ++i) { int top = this.getRowTop(i); int bot = top + itemHeight; if (bot >= this.y0 && top <= this.y1) this.getEntry(i).tick(); + }*/ + children().forEach(Entry::tick); + + } + + public boolean search(String query) { + if (query == null || query.isEmpty()) { + setScrollAmount(0); + return true; } + String q = query.toLowerCase(Locale.ROOT); + Optional first = children().stream().filter(entry -> { + if (entry.path == null) + return false; + + String[] split = entry.path.split("\\."); + String key = split[split.length - 1].toLowerCase(Locale.ROOT); + return key.contains(q); + }).findFirst(); + + if (!first.isPresent()) { + setScrollAmount(0); + return false; + } + + Entry e = first.get(); + e.annotations.put("highlight", "(:"); + centerScrollOn(e); + return true; } public void bumpCog(float force) { @@ -92,9 +123,12 @@ public class ConfigScreenList extends ExtendedList { public static abstract class Entry extends ExtendedList.AbstractListEntry { protected List listeners; + protected Map annotations; + protected String path; protected Entry() { listeners = new ArrayList<>(); + annotations = new HashMap<>(); } @Override @@ -119,6 +153,13 @@ public class ConfigScreenList extends ExtendedList { } protected void setEditable(boolean b) {} + + protected boolean isCurrentValueChanged() { + if (path == null) { + return false; + } + return ConfigHelper.changes.containsKey(path); + } } public static class LabeledEntry extends Entry { @@ -128,6 +169,8 @@ public class ConfigScreenList extends ExtendedList { protected TextStencilElement label; protected List labelTooltip; protected String unit = null; + protected LerpedFloat differenceAnimation = LerpedFloat.linear().startWithValue(0); + protected LerpedFloat highlightAnimation = LerpedFloat.linear().startWithValue(0); public LabeledEntry(String label) { this.label = new TextStencilElement(Minecraft.getInstance().font, label); @@ -135,8 +178,41 @@ public class ConfigScreenList extends ExtendedList { labelTooltip = new ArrayList<>(); } + public LabeledEntry(String label, String path) { + this(label); + this.path = path; + } + + @Override + public void tick() { + differenceAnimation.tickChaser(); + highlightAnimation.tickChaser(); + super.tick(); + } + @Override public void render(MatrixStack ms, int index, int y, int x, int width, int height, int mouseX, int mouseY, boolean p_230432_9_, float partialTicks) { + if (isCurrentValueChanged()) { + if (differenceAnimation.getChaseTarget() != 1) + differenceAnimation.chase(1, .5f, LerpedFloat.Chaser.EXP); + } else { + if (differenceAnimation.getChaseTarget() != 0) + differenceAnimation.chase(0, .6f, LerpedFloat.Chaser.EXP); + } + + float animation = differenceAnimation.getValue(partialTicks); + if (animation > .1f) { + int offset = (int) (30 * (1 - animation)); + + if (annotations.containsKey(ConfigAnnotations.RequiresRestart.CLIENT.getName())) { + UIRenderHelper.streak(ms, 180, x + width + 10 + offset, y + height / 2, height - 6, 110, new Color(0x50_601010)); + } else if (annotations.containsKey(ConfigAnnotations.RequiresRelog.TRUE.getName())) { + UIRenderHelper.streak(ms, 180, x + width + 10 + offset, y + height / 2, height - 6, 110, new Color(0x40_eefb17)); + } + + UIRenderHelper.breadcrumbArrow(ms, x - 10 - offset, y + 6, 0, -20, 24, -18, new Color(0x70_ffffff), Color.TRANSPARENT_BLACK); + } + UIRenderHelper.streak(ms, 0, x - 10, y + height / 2, height - 6, width / 8 * 7, 0xdd_000000); UIRenderHelper.streak(ms, 180, x + (int) (width * 1.35f) + 10, y + height / 2, height - 6, width / 8 * 7, 0xdd_000000); IFormattableTextComponent component = label.getComponent(); @@ -152,6 +228,20 @@ public class ConfigScreenList extends ExtendedList { label.at(x + 10, y + height / 2 - 4, 0).render(ms); } + if (annotations.containsKey("highlight")) { + highlightAnimation.startWithValue(1).chase(0, 0.1f, LerpedFloat.Chaser.LINEAR); + annotations.remove("highlight"); + } + + animation = highlightAnimation.getValue(partialTicks); + if (animation > .01f) { + Color highlight = new Color(0xa0_ffffff).scaleAlpha(animation); + UIRenderHelper.streak(ms, 0, x - 10, y + height / 2, height - 6, 5, highlight); + UIRenderHelper.streak(ms, 180, x + width, y + height / 2, height - 6, 5, highlight); + UIRenderHelper.streak(ms, 90, x + width / 2 - 5, y + 3, width + 10, 5, highlight); + UIRenderHelper.streak(ms, -90, x + width / 2 - 5, y + height - 3, width + 10, 5, highlight); + } + if (mouseX > x && mouseX < x + getLabelWidth(width) && mouseY > y + 5 && mouseY < y + height - 5) { List tooltip = getLabelTooltip(); diff --git a/src/main/java/com/simibubi/create/foundation/config/ui/ConfigTextField.java b/src/main/java/com/simibubi/create/foundation/config/ui/ConfigTextField.java index 4eb851afd..f8e371ca7 100644 --- a/src/main/java/com/simibubi/create/foundation/config/ui/ConfigTextField.java +++ b/src/main/java/com/simibubi/create/foundation/config/ui/ConfigTextField.java @@ -1,20 +1,11 @@ package com.simibubi.create.foundation.config.ui; -import org.lwjgl.glfw.GLFW; - import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.widget.TextFieldWidget; -import net.minecraft.util.text.StringTextComponent; -public class ConfigTextField extends TextFieldWidget { +public class ConfigTextField extends HintableTextFieldWidget { - protected FontRenderer font; - protected String unit; - - public ConfigTextField(FontRenderer font, int x, int y, int width, int height, String unit) { - super(font, x, y, width, height, StringTextComponent.EMPTY); - this.font = font; - this.unit = unit; + public ConfigTextField(FontRenderer font, int x, int y, int width, int height) { + super(font, x, y, width, height); } @Override @@ -33,29 +24,4 @@ public class ConfigTextField extends TextFieldWidget { ConfigScreenList.currentText = this; } - - @Override - public boolean keyPressed(int p_231046_1_, int p_231046_2_, int p_231046_3_) { - //prevent input of hex-keys from exiting the current config screen, in case they match the inventory key - boolean ret = false; - - switch (p_231046_1_) { - case GLFW.GLFW_KEY_A: - case GLFW.GLFW_KEY_B: - case GLFW.GLFW_KEY_C: - case GLFW.GLFW_KEY_D: - case GLFW.GLFW_KEY_E: - case GLFW.GLFW_KEY_F: - ret = true; - break; - default: - break; - } - - if (ret) - return true; - - - return super.keyPressed(p_231046_1_, p_231046_2_, p_231046_3_); - } } diff --git a/src/main/java/com/simibubi/create/foundation/config/ui/HintableTextFieldWidget.java b/src/main/java/com/simibubi/create/foundation/config/ui/HintableTextFieldWidget.java new file mode 100644 index 000000000..3be40c309 --- /dev/null +++ b/src/main/java/com/simibubi/create/foundation/config/ui/HintableTextFieldWidget.java @@ -0,0 +1,62 @@ +package com.simibubi.create.foundation.config.ui; + +import org.lwjgl.glfw.GLFW; + +import com.mojang.blaze3d.matrix.MatrixStack; +import com.simibubi.create.foundation.gui.Theme; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.gui.widget.TextFieldWidget; +import net.minecraft.client.util.InputMappings; +import net.minecraft.util.text.StringTextComponent; + +public class HintableTextFieldWidget extends TextFieldWidget { + + protected FontRenderer font; + protected String hint; + + public HintableTextFieldWidget(FontRenderer font, int x, int y, int width, int height) { + super(font, x, y, width, height, StringTextComponent.EMPTY); + this.font = font; + } + + public void setHint(String hint) { + this.hint = hint; + } + + @Override + public void renderButton(MatrixStack ms, int mouseX, int mouseY, float partialTicks) { + super.renderButton(ms, mouseX, mouseY, partialTicks); + + if (hint == null || hint.isEmpty()) + return; + + if (!getValue().isEmpty()) + return; + + font.draw(ms, hint, x + 5, this.y + (this.height - 8) / 2, Theme.c(Theme.Key.TEXT).scaleAlpha(.75f).getRGB()); + } + + @Override + public boolean mouseClicked(double x, double y, int button) { + if (!isMouseOver(x, y)) + return false; + + if (button == GLFW.GLFW_MOUSE_BUTTON_RIGHT) { + setValue(""); + return true; + } else + return super.mouseClicked(x, y, button); + } + + @Override + public boolean keyPressed(int code, int p_keyPressed_2_, int p_keyPressed_3_) { + InputMappings.Input mouseKey = InputMappings.getKey(code, p_keyPressed_2_); + if (Minecraft.getInstance().options.keyInventory.isActiveAndMatches(mouseKey)) { + return true; + } + + return super.keyPressed(code, p_keyPressed_2_, p_keyPressed_3_); + } +} diff --git a/src/main/java/com/simibubi/create/foundation/config/ui/SubMenuConfigScreen.java b/src/main/java/com/simibubi/create/foundation/config/ui/SubMenuConfigScreen.java index e19540a2e..71152af60 100644 --- a/src/main/java/com/simibubi/create/foundation/config/ui/SubMenuConfigScreen.java +++ b/src/main/java/com/simibubi/create/foundation/config/ui/SubMenuConfigScreen.java @@ -1,9 +1,14 @@ package com.simibubi.create.foundation.config.ui; +import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; +import java.util.HashSet; import java.util.List; import java.util.Locale; import java.util.Map; +import java.util.Set; +import java.util.concurrent.atomic.AtomicBoolean; import java.util.function.Consumer; import javax.annotation.Nonnull; @@ -33,6 +38,7 @@ import com.simibubi.create.foundation.item.TooltipHelper; import com.simibubi.create.foundation.networking.AllPackets; import com.simibubi.create.foundation.utility.Color; import com.simibubi.create.foundation.utility.Couple; +import com.simibubi.create.foundation.utility.Pair; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.IGuiEventListener; @@ -55,13 +61,15 @@ public class SubMenuConfigScreen extends ConfigScreen { protected BoxWidget discardChanges; protected BoxWidget goBack; protected BoxWidget serverLocked; + protected HintableTextFieldWidget search; protected int listWidth; protected String title; + protected Set highlights = new HashSet<>(); public static SubMenuConfigScreen find(ConfigHelper.ConfigPath path) { ForgeConfigSpec spec = ConfigHelper.findConfigSpecFor(path.getType(), path.getModID()); UnmodifiableConfig values = spec.getValues(); - BaseConfigScreen base = new BaseConfigScreen(null, path.getModID()).searchForSpecsInModContainer(); + BaseConfigScreen base = new BaseConfigScreen(null, path.getModID()); SubMenuConfigScreen screen = new SubMenuConfigScreen(base, "root", path.getType(), spec, values); List remainingPath = Lists.newArrayList(path.getPath()); @@ -75,6 +83,7 @@ public class SubMenuConfigScreen extends ConfigScreen { if (!(obj instanceof AbstractConfig)) { //highlight entry + screen.highlights.add(path.getPath()[path.getPath().length - 1]); continue; } @@ -107,7 +116,7 @@ public class SubMenuConfigScreen extends ConfigScreen { } protected void clearChanges() { - changes.clear(); + ConfigHelper.changes.clear(); list.children() .stream() .filter(e -> e instanceof ValueEntry) @@ -116,11 +125,18 @@ public class SubMenuConfigScreen extends ConfigScreen { protected void saveChanges() { UnmodifiableConfig values = spec.getValues(); - changes.forEach((path, value) -> { + ConfigHelper.changes.forEach((path, change) -> { ForgeConfigSpec.ConfigValue configValue = values.get(path); - configValue.set(value); + configValue.set(change.value); + if (type == ModConfig.Type.SERVER) { - AllPackets.channel.sendToServer(new CConfigureConfigPacket<>(ConfigScreen.modID, path, value)); + AllPackets.channel.sendToServer(new CConfigureConfigPacket<>(ConfigScreen.modID, path, change.value)); + } + + String command = change.annotations.get("Execute"); + if (Minecraft.getInstance().player != null && command != null && command.startsWith("/")) { + Minecraft.getInstance().player.chat(command); + //AllPackets.channel.sendToServer(new CChatMessagePacket(command)); } }); clearChanges(); @@ -133,8 +149,10 @@ public class SubMenuConfigScreen extends ConfigScreen { } else if (obj instanceof ForgeConfigSpec.ConfigValue) { ForgeConfigSpec.ConfigValue configValue = (ForgeConfigSpec.ConfigValue) obj; ForgeConfigSpec.ValueSpec valueSpec = spec.getRaw((List) configValue.getPath()); + List comments = new ArrayList<>(Arrays.asList(valueSpec.getComment().split("\n"))); + Pair> metadata = ConfigHelper.readMetadataFromComment(comments); - ConfigHelper.setValue(String.join(".", configValue.getPath()), configValue, valueSpec.getDefault()); + ConfigHelper.setValue(String.join(".", configValue.getPath()), configValue, valueSpec.getDefault(), metadata.getSecond()); } }); @@ -181,17 +199,18 @@ public class SubMenuConfigScreen extends ConfigScreen { saveChanges = new BoxWidget(listL - 30, yCenter - 25, 20, 20) .withPadding(2, 2) .withCallback((x, y) -> { - if (changes.isEmpty()) + if (ConfigHelper.changes.isEmpty()) return; - new ConfirmationScreen() + ConfirmationScreen confirm = new ConfirmationScreen() .centered() - .withText(ITextProperties.of("Saving " + changes.size() + " changed value" + (changes.size() != 1 ? "s" : "") + "")) + .withText(ITextProperties.of("Saving " + ConfigHelper.changes.size() + " changed value" + (ConfigHelper.changes.size() != 1 ? "s" : "") + "")) .withAction(success -> { if (success) saveChanges(); - }) - .open(this); + }); + + addAnnotationsToConfirm(confirm).open(this); }); saveChanges.showingElement(AllIcons.I_CONFIG_SAVE.asStencil().withElementRenderer(BoxWidget.gradientFactory.apply(saveChanges))); saveChanges.getToolTip().add(new StringTextComponent("Save Changes")); @@ -200,12 +219,12 @@ public class SubMenuConfigScreen extends ConfigScreen { discardChanges = new BoxWidget(listL - 30, yCenter + 5, 20, 20) .withPadding(2, 2) .withCallback((x, y) -> { - if (changes.isEmpty()) + if (ConfigHelper.changes.isEmpty()) return; new ConfirmationScreen() .centered() - .withText(ITextProperties.of("Discarding " + changes.size() + " unsaved change" + (changes.size() != 1 ? "s" : "") + "")) + .withText(ITextProperties.of("Discarding " + ConfigHelper.changes.size() + " unsaved change" + (ConfigHelper.changes.size() != 1 ? "s" : "") + "")) .withAction(success -> { if (success) clearChanges(); @@ -227,16 +246,23 @@ public class SubMenuConfigScreen extends ConfigScreen { widgets.add(discardChanges); widgets.add(goBack); - list = new ConfigScreenList(minecraft, listWidth, height - 60, 45, height - 15, 40); + list = new ConfigScreenList(minecraft, listWidth, height - 80, 35, height - 45, 40); list.setLeftPos(this.width / 2 - list.getWidth() / 2); children.add(list); + search = new ConfigTextField(font, width / 2 - listWidth / 2, height - 35, listWidth, 20); + search.setResponder(this::updateFilter); + search.setHint("Search.."); + search.moveCursorToStart(); + widgets.add(search); + configGroup.valueMap().forEach((key, obj) -> { String humanKey = toHumanReadable(key); if (obj instanceof AbstractConfig) { SubMenuEntry entry = new SubMenuEntry(this, humanKey, spec, (UnmodifiableConfig) obj); + entry.path = key; list.children().add(entry); if (configGroup.valueMap() .size() == 1) @@ -247,23 +273,23 @@ public class SubMenuConfigScreen extends ConfigScreen { ForgeConfigSpec.ConfigValue configValue = (ForgeConfigSpec.ConfigValue) obj; ForgeConfigSpec.ValueSpec valueSpec = spec.getRaw(configValue.getPath()); Object value = configValue.get(); + ConfigScreenList.Entry entry = null; if (value instanceof Boolean) { - BooleanEntry entry = new BooleanEntry(humanKey, (ForgeConfigSpec.ConfigValue) configValue, valueSpec); - list.children().add(entry); + entry = new BooleanEntry(humanKey, (ForgeConfigSpec.ConfigValue) configValue, valueSpec); } else if (value instanceof Enum) { - EnumEntry entry = new EnumEntry(humanKey, (ForgeConfigSpec.ConfigValue>) configValue, valueSpec); - list.children().add(entry); + entry = new EnumEntry(humanKey, (ForgeConfigSpec.ConfigValue>) configValue, valueSpec); } else if (value instanceof Number) { - NumberEntry entry = NumberEntry.create(value, humanKey, configValue, valueSpec); - if (entry != null) { - list.children().add(entry); - } else { - list.children().add(new ConfigScreenList.LabeledEntry("n-" + obj.getClass().getSimpleName() + " " + humanKey + " : " + value)); - } - } else { - list.children().add(new ConfigScreenList.LabeledEntry(humanKey + " : " + value)); + entry = NumberEntry.create(value, humanKey, configValue, valueSpec); } + + if (entry == null) + entry = new LabeledEntry("Impl missing - " + configValue.get().getClass().getSimpleName() + " " + humanKey + " : " + value); + + if (highlights.contains(key)) + entry.annotations.put("highlight", ":)"); + + list.children().add(entry); } }); @@ -281,13 +307,14 @@ public class SubMenuConfigScreen extends ConfigScreen { return group; }); + list.search(highlights.stream().findFirst().orElse("")); + //extras for server configs if (type != ModConfig.Type.SERVER) return; if (minecraft.hasSingleplayerServer()) return; - list.isForServer = true; boolean canEdit = minecraft != null && minecraft.player != null && minecraft.player.hasPermissions(2); Couple red = Theme.p(Theme.Key.BUTTON_FAIL); @@ -355,6 +382,12 @@ public class SubMenuConfigScreen extends ConfigScreen { if (super.keyPressed(code, p_keyPressed_2_, p_keyPressed_3_)) return true; + if (Screen.hasControlDown()) { + if (code == GLFW.GLFW_KEY_F) { + search.setFocus(true); + } + } + if (code == GLFW.GLFW_KEY_BACKSPACE) { attemptBackstep(); } @@ -362,8 +395,16 @@ public class SubMenuConfigScreen extends ConfigScreen { return false; } + private void updateFilter(String search) { + if (list.search(search)) { + this.search.setTextColor(Theme.i(Theme.Key.TEXT)); + } else { + this.search.setTextColor(Theme.i(Theme.Key.BUTTON_FAIL)); + } + } + private void attemptBackstep() { - if (changes.isEmpty() || !(parent instanceof BaseConfigScreen)) { + if (ConfigHelper.changes.isEmpty() || !(parent instanceof BaseConfigScreen)) { ScreenOpener.open(parent); return; } @@ -373,7 +414,7 @@ public class SubMenuConfigScreen extends ConfigScreen { return; if (success == Response.Confirm) saveChanges(); - changes.clear(); + ConfigHelper.changes.clear(); ScreenOpener.open(parent); }; @@ -382,7 +423,7 @@ public class SubMenuConfigScreen extends ConfigScreen { @Override public void onClose() { - if (changes.isEmpty()) { + if (ConfigHelper.changes.isEmpty()) { super.onClose(); ScreenOpener.open(parent); return; @@ -393,7 +434,7 @@ public class SubMenuConfigScreen extends ConfigScreen { return; if (success == Response.Confirm) saveChanges(); - changes.clear(); + ConfigHelper.changes.clear(); super.onClose(); }; @@ -401,11 +442,37 @@ public class SubMenuConfigScreen extends ConfigScreen { } public void showLeavingPrompt(Consumer action) { - new ConfirmationScreen().centered() - .addText(ITextProperties.of("Leaving with " + changes.size() + " unsaved change" - + (changes.size() != 1 ? "s" : "") + " for this config")) + ConfirmationScreen screen = new ConfirmationScreen() + .centered() .withThreeActions(action) - .open(this); + .addText(ITextProperties.of("Leaving with " + ConfigHelper.changes.size() + " unsaved change" + + (ConfigHelper.changes.size() != 1 ? "s" : "") + " for this config")); + + addAnnotationsToConfirm(screen).open(this); + } + + private ConfirmationScreen addAnnotationsToConfirm(ConfirmationScreen screen) { + AtomicBoolean relog = new AtomicBoolean(false); + AtomicBoolean restart = new AtomicBoolean(false); + ConfigHelper.changes.values().forEach(change -> { + if (change.annotations.containsKey(ConfigAnnotations.RequiresRelog.TRUE.getName())) + relog.set(true); + + if (change.annotations.containsKey(ConfigAnnotations.RequiresRestart.CLIENT.getName())) + restart.set(true); + }); + + if (relog.get()) { + screen.addText(ITextProperties.of(" ")); + screen.addText(ITextProperties.of("At least one changed value will require you to relog to take full effect")); + } + + if (restart.get()) { + screen.addText(ITextProperties.of(" ")); + screen.addText(ITextProperties.of("At least one changed value will require you to restart your game to take full effect")); + } + + return screen; } } diff --git a/src/main/java/com/simibubi/create/foundation/config/ui/entries/EnumEntry.java b/src/main/java/com/simibubi/create/foundation/config/ui/entries/EnumEntry.java index 2c82b98bf..e72d74552 100644 --- a/src/main/java/com/simibubi/create/foundation/config/ui/entries/EnumEntry.java +++ b/src/main/java/com/simibubi/create/foundation/config/ui/entries/EnumEntry.java @@ -3,6 +3,7 @@ package com.simibubi.create.foundation.config.ui.entries; import java.util.Locale; import com.mojang.blaze3d.matrix.MatrixStack; +import com.simibubi.create.foundation.config.ui.ConfigScreen; import com.simibubi.create.foundation.gui.AllIcons; import com.simibubi.create.foundation.gui.BoxElement; import com.simibubi.create.foundation.gui.DelegatedStencilElement; @@ -103,10 +104,6 @@ public class EnumEntry extends ValueEntry> { @Override public void onValueChange(Enum newValue) { super.onValueChange(newValue); - valueText.withText(newValue.name() - .substring(0, 1) - + newValue.name() - .substring(1) - .toLowerCase(Locale.ROOT)); + valueText.withText(ConfigScreen.toHumanReadable(newValue.name().toLowerCase(Locale.ROOT))); } } diff --git a/src/main/java/com/simibubi/create/foundation/config/ui/entries/NumberEntry.java b/src/main/java/com/simibubi/create/foundation/config/ui/entries/NumberEntry.java index 8e5badc41..add4c54d2 100644 --- a/src/main/java/com/simibubi/create/foundation/config/ui/entries/NumberEntry.java +++ b/src/main/java/com/simibubi/create/foundation/config/ui/entries/NumberEntry.java @@ -39,7 +39,7 @@ public abstract class NumberEntry extends ValueEntry { public NumberEntry(String label, ForgeConfigSpec.ConfigValue value, ForgeConfigSpec.ValueSpec spec) { super(label, value, spec); - textField = new ConfigTextField(Minecraft.getInstance().font, 0, 0, 200, 20, unit); + textField = new ConfigTextField(Minecraft.getInstance().font, 0, 0, 200, 20); if (this instanceof IntegerEntry && annotations.containsKey("IntDisplay")) { String intDisplay = annotations.get("IntDisplay"); int intValue = (Integer) getValue(); diff --git a/src/main/java/com/simibubi/create/foundation/config/ui/entries/ValueEntry.java b/src/main/java/com/simibubi/create/foundation/config/ui/entries/ValueEntry.java index 15731cf82..f19d48d7a 100644 --- a/src/main/java/com/simibubi/create/foundation/config/ui/entries/ValueEntry.java +++ b/src/main/java/com/simibubi/create/foundation/config/ui/entries/ValueEntry.java @@ -1,19 +1,16 @@ package com.simibubi.create.foundation.config.ui.entries; +import java.util.ArrayList; import java.util.Arrays; -import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.regex.Matcher; -import java.util.regex.Pattern; import java.util.stream.Collectors; import javax.annotation.Nonnull; -import org.apache.commons.lang3.ArrayUtils; - import com.google.common.base.Predicates; import com.mojang.blaze3d.matrix.MatrixStack; +import com.simibubi.create.foundation.config.ui.ConfigAnnotations; import com.simibubi.create.foundation.config.ui.ConfigHelper; import com.simibubi.create.foundation.config.ui.ConfigScreen; import com.simibubi.create.foundation.config.ui.ConfigScreenList; @@ -21,25 +18,20 @@ import com.simibubi.create.foundation.gui.AllIcons; import com.simibubi.create.foundation.gui.DelegatedStencilElement; import com.simibubi.create.foundation.gui.widgets.BoxWidget; import com.simibubi.create.foundation.item.TooltipHelper; +import com.simibubi.create.foundation.utility.Pair; -import net.minecraft.util.text.IFormattableTextComponent; import net.minecraft.util.text.StringTextComponent; import net.minecraft.util.text.TextFormatting; import net.minecraftforge.common.ForgeConfigSpec; public class ValueEntry extends ConfigScreenList.LabeledEntry { - protected static final IFormattableTextComponent modComponent = new StringTextComponent("* ").withStyle(TextFormatting.BOLD, TextFormatting.DARK_BLUE).append(StringTextComponent.EMPTY.plainCopy().withStyle(TextFormatting.RESET)); protected static final int resetWidth = 28;//including 6px offset on either side - public static final Pattern unitPattern = Pattern.compile("\\[(in .*)]"); - public static final Pattern annotationPattern = Pattern.compile("\\[@cui:([^:]*)(?::(.*))?]"); protected ForgeConfigSpec.ConfigValue value; protected ForgeConfigSpec.ValueSpec spec; - protected Map annotations; protected BoxWidget resetButton; protected boolean editable = true; - protected String path; public ValueEntry(String label, ForgeConfigSpec.ConfigValue value, ForgeConfigSpec.ValueSpec spec) { super(label); @@ -57,50 +49,36 @@ public class ValueEntry extends ConfigScreenList.LabeledEntry { listeners.add(resetButton); - annotations = new HashMap<>(); List path = value.getPath(); labelTooltip.add(new StringTextComponent(label).withStyle(TextFormatting.WHITE)); String comment = spec.getComment(); if (comment == null || comment.isEmpty()) return; - String[] commentLines = comment.split("\n"); - //find unit in the comment - for (int i = 0; i < commentLines.length; i++) { - if (commentLines[i].isEmpty()) { - commentLines = ArrayUtils.remove(commentLines, i); - i--; - continue; - } - Matcher matcher = annotationPattern.matcher(commentLines[i]); - if (matcher.matches()) { - String annotation = matcher.group(1); - String aValue = matcher.group(2); - annotations.putIfAbsent(annotation, aValue); + List commentLines = new ArrayList<>(Arrays.asList(comment.split("\n"))); - commentLines = ArrayUtils.remove(commentLines, i); - i--; - continue; - } - - matcher = unitPattern.matcher(commentLines[i]); - if (matcher.matches()) { - String u = matcher.group(1); - if (u.equals("in Revolutions per Minute")) - u = "in RPM"; - if (u.equals("in Stress Units")) - u = "in SU"; - unit = u; - } + Pair> metadata = ConfigHelper.readMetadataFromComment(commentLines); + if (metadata.getFirst() != null) { + unit = metadata.getFirst(); + } + if (metadata.getSecond() != null && !metadata.getSecond().isEmpty()) { + annotations.putAll(metadata.getSecond()); } // add comment to tooltip - labelTooltip.addAll(Arrays.stream(commentLines) + labelTooltip.addAll(commentLines.stream() .filter(Predicates.not(s -> s.startsWith("Range"))) .map(StringTextComponent::new) .flatMap(stc -> TooltipHelper.cutTextComponent(stc, TextFormatting.GRAY, TextFormatting.GRAY) .stream()) .collect(Collectors.toList())); + + if (annotations.containsKey(ConfigAnnotations.RequiresRelog.TRUE.getName())) + labelTooltip.addAll(TooltipHelper.cutTextComponent(new StringTextComponent("Changing this value will require a _relog_ to take full effect"), TextFormatting.GRAY, TextFormatting.GOLD)); + + if (annotations.containsKey(ConfigAnnotations.RequiresRestart.CLIENT.getName())) + labelTooltip.addAll(TooltipHelper.cutTextComponent(new StringTextComponent("Changing this value will require a _restart_ to take full effect"), TextFormatting.GRAY, TextFormatting.RED)); + labelTooltip.add(new StringTextComponent(ConfigScreen.modID + ":" + path.get(path.size() - 1)).withStyle(TextFormatting.DARK_GRAY)); } @@ -119,15 +97,7 @@ public class ValueEntry extends ConfigScreenList.LabeledEntry { @Override public void render(MatrixStack ms, int index, int y, int x, int width, int height, int mouseX, int mouseY, boolean p_230432_9_, float partialTicks) { - if (isCurrentValueChanged()) { - IFormattableTextComponent original = label.getComponent(); - IFormattableTextComponent changed = modComponent.plainCopy().append(original); - label.withText(changed); - super.render(ms, index, y, x, width, height, mouseX, mouseY, p_230432_9_, partialTicks); - label.withText(original); - } else { - super.render(ms, index, y, x, width, height, mouseX, mouseY, p_230432_9_, partialTicks); - } + super.render(ms, index, y, x, width, height, mouseX, mouseY, p_230432_9_, partialTicks); resetButton.x = x + width - resetWidth + 6; resetButton.y = y + 10; @@ -140,7 +110,7 @@ public class ValueEntry extends ConfigScreenList.LabeledEntry { } public void setValue(@Nonnull T value) { - ConfigHelper.setValue(path, this.value, value); + ConfigHelper.setValue(path, this.value, value, annotations); onValueChange(value); } @@ -149,10 +119,6 @@ public class ValueEntry extends ConfigScreenList.LabeledEntry { return ConfigHelper.getValue(path, this.value); } - protected boolean isCurrentValueChanged() { - return ConfigScreen.changes.containsKey(path); - } - protected boolean isCurrentValueDefault() { return spec.getDefault().equals(getValue()); } diff --git a/src/main/java/com/simibubi/create/foundation/gui/UIRenderHelper.java b/src/main/java/com/simibubi/create/foundation/gui/UIRenderHelper.java index 60514a793..fa35d9228 100644 --- a/src/main/java/com/simibubi/create/foundation/gui/UIRenderHelper.java +++ b/src/main/java/com/simibubi/create/foundation/gui/UIRenderHelper.java @@ -102,6 +102,22 @@ public class UIRenderHelper { ms.popPose(); } + public static void streak(MatrixStack ms, float angle, int x, int y, int breadth, int length, Color c) { + Color color = c.copy().setImmutable(); + int c1 = color.scaleAlpha(0.625f).getRGB(); + int c2 = color.scaleAlpha(0.5f).getRGB(); + int c3 = color.scaleAlpha(0.0625f).getRGB(); + int c4 = color.scaleAlpha(0f).getRGB(); + + ms.pushPose(); + ms.translate(x, y, 0); + ms.mulPose(Vector3f.ZP.rotationDegrees(angle - 90)); + + streak(ms, breadth / 2, length, c1, c2, c3, c4); + + ms.popPose(); + } + private static void streak(MatrixStack ms, int width, int height, int c1, int c2, int c3, int c4) { double split1 = .5; double split2 = .75; From cc575a70c800313d2cc5b4da090dcfa016b2bf5c Mon Sep 17 00:00:00 2001 From: zelophed Date: Sat, 7 Aug 2021 02:46:16 +0200 Subject: [PATCH 16/79] flash mich nochmal - fix ponder buttons not flashing correctly --- .../create/foundation/ponder/ui/PonderButton.java | 4 ++-- .../com/simibubi/create/foundation/utility/Color.java | 9 +++++++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/simibubi/create/foundation/ponder/ui/PonderButton.java b/src/main/java/com/simibubi/create/foundation/ponder/ui/PonderButton.java index b4cdd9f4c..bce4be1b4 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/ui/PonderButton.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/ui/PonderButton.java @@ -83,8 +83,8 @@ public class PonderButton extends BoxWidget { sin *= flashValue; Color nc1 = new Color(255, 255, 255, MathHelper.clamp(gradientColor1.getAlpha() + 150, 0, 255)); Color nc2 = new Color(155, 155, 155, MathHelper.clamp(gradientColor2.getAlpha() + 150, 0, 255)); - gradientColor1.mixWith(nc1, sin); - gradientColor2.mixWith(nc2, sin); + gradientColor1 = gradientColor1.mixWith(nc1, sin); + gradientColor2 = gradientColor2.mixWith(nc2, sin); } } diff --git a/src/main/java/com/simibubi/create/foundation/utility/Color.java b/src/main/java/com/simibubi/create/foundation/utility/Color.java index 3525cb5c9..1872f3be0 100644 --- a/src/main/java/com/simibubi/create/foundation/utility/Color.java +++ b/src/main/java/com/simibubi/create/foundation/utility/Color.java @@ -199,8 +199,13 @@ public class Color { } public Color darker() { - //todo - return ensureMutable(); + int a = getAlpha(); + return ensureMutable().mixWith(BLACK, .25f).setAlphaUnchecked(a); + } + + public Color brighter() { + int a = getAlpha(); + return ensureMutable().mixWith(WHITE, .25f).setAlphaUnchecked(a); } public Color setValue(int value) { From 8edb9121cc589f6b84e2fcffb623643fd8d839c1 Mon Sep 17 00:00:00 2001 From: simibubi <31564874+simibubi@users.noreply.github.com> Date: Sat, 7 Aug 2021 16:24:57 +0200 Subject: [PATCH 17/79] Outstanding Performance - Fixed Chutes pulling from inventories causing major framerate drops - Fixed Chutes sending update packets when idling - Added a max range for filter slot rendering of blocks - Synced TEs are no longer able to cause side-effects by calling sendData on the Render Thread --- .../logistics/block/chute/ChuteTileEntity.java | 16 +++++++++------- .../create/foundation/config/CClient.java | 1 + .../tileEntity/SyncedTileEntity.java | 2 +- .../behaviour/filtering/FilteringRenderer.java | 18 ++++++++++++++---- .../behaviour/linked/LinkRenderer.java | 10 ++++++++++ 5 files changed, 35 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/simibubi/create/content/logistics/block/chute/ChuteTileEntity.java b/src/main/java/com/simibubi/create/content/logistics/block/chute/ChuteTileEntity.java index f18679690..c15dfa3f9 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/chute/ChuteTileEntity.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/chute/ChuteTileEntity.java @@ -138,12 +138,13 @@ public class ChuteTileEntity extends SmartTileEntity implements IHaveGoggleInfor if (!level.isClientSide) canPickUpItems = canDirectlyInsert(); + boolean clientSide = level != null && level.isClientSide && !isVirtual(); float itemMotion = getItemMotion(); if (itemMotion != 0 && level != null && level.isClientSide) spawnParticles(itemMotion); tickAirStreams(itemMotion); - if (item.isEmpty()) { + if (item.isEmpty() && !clientSide) { if (itemMotion < 0) handleInputFromAbove(); if (itemMotion > 0) @@ -152,13 +153,13 @@ public class ChuteTileEntity extends SmartTileEntity implements IHaveGoggleInfor } float nextOffset = itemPosition.value + itemMotion; - + if (itemMotion < 0) { if (nextOffset < .5f) { if (!handleDownwardOutput(true)) nextOffset = .5f; else if (nextOffset < 0) { - handleDownwardOutput(level.isClientSide && !isVirtual()); + handleDownwardOutput(clientSide); nextOffset = itemPosition.value; } } @@ -167,7 +168,7 @@ public class ChuteTileEntity extends SmartTileEntity implements IHaveGoggleInfor if (!handleUpwardOutput(true)) nextOffset = .5f; else if (nextOffset > 1) { - handleUpwardOutput(level.isClientSide && !isVirtual()); + handleUpwardOutput(clientSide); nextOffset = itemPosition.value; } } @@ -341,7 +342,8 @@ public class ChuteTileEntity extends SmartTileEntity implements IHaveGoggleInfor if (mode == ExtractionCountMode.UPTO || !ItemHelper.extract(inv, canAccept, mode, count, true) .isEmpty()) { ItemStack extracted = ItemHelper.extract(inv, canAccept, mode, count, false); - setItem(extracted, startLocation); + if (!extracted.isEmpty()) + setItem(extracted, startLocation); } } @@ -496,8 +498,8 @@ public class ChuteTileEntity extends SmartTileEntity implements IHaveGoggleInfor public void setItem(ItemStack stack, float insertionPos) { item = stack; itemPosition.lastValue = itemPosition.value = insertionPos; - setChanged(); - sendData(); + if (!level.isClientSide) + notifyUpdate(); } @Override diff --git a/src/main/java/com/simibubi/create/foundation/config/CClient.java b/src/main/java/com/simibubi/create/foundation/config/CClient.java index d903b52a1..bad04216f 100644 --- a/src/main/java/com/simibubi/create/foundation/config/CClient.java +++ b/src/main/java/com/simibubi/create/foundation/config/CClient.java @@ -13,6 +13,7 @@ public class CClient extends ConfigBase { public ConfigBool explainRenderErrors = b(false, "explainRenderErrors", "Log a stack-trace when rendering issues happen within a moving contraption."); public ConfigFloat fanParticleDensity = f(.5f, 0, 1, "fanParticleDensity"); + public ConfigFloat filterItemRenderDistance = f(10f, 1, "filterItemRenderDistance", "[in Blocks]", "Maximum Distance to the player at which items in Blocks' filter slots will be displayed"); public ConfigBool rainbowDebug = b(true, "enableRainbowDebug", "Show colourful debug information while the F3-Menu is open."); public ConfigBool experimentalRendering = diff --git a/src/main/java/com/simibubi/create/foundation/tileEntity/SyncedTileEntity.java b/src/main/java/com/simibubi/create/foundation/tileEntity/SyncedTileEntity.java index c4f234d4f..dcc242b5a 100644 --- a/src/main/java/com/simibubi/create/foundation/tileEntity/SyncedTileEntity.java +++ b/src/main/java/com/simibubi/create/foundation/tileEntity/SyncedTileEntity.java @@ -37,7 +37,7 @@ public abstract class SyncedTileEntity extends TileEntity { } public void sendData() { - if (level != null) + if (level != null && !level.isClientSide) level.sendBlockUpdated(getBlockPos(), getBlockState(), getBlockState(), 2 | 4 | 16); } diff --git a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/filtering/FilteringRenderer.java b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/filtering/FilteringRenderer.java index 907d0d856..24b2a0a90 100644 --- a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/filtering/FilteringRenderer.java +++ b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/filtering/FilteringRenderer.java @@ -4,6 +4,7 @@ import com.mojang.blaze3d.matrix.MatrixStack; import com.simibubi.create.AllSpecialTextures; import com.simibubi.create.CreateClient; import com.simibubi.create.content.logistics.item.filter.FilterItem; +import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.tileEntity.SmartTileEntity; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.ValueBox; @@ -14,11 +15,13 @@ import com.simibubi.create.foundation.tileEntity.behaviour.ValueBoxTransform.Sid import com.simibubi.create.foundation.utility.Iterate; import com.simibubi.create.foundation.utility.Lang; import com.simibubi.create.foundation.utility.Pair; +import com.simibubi.create.foundation.utility.VecHelper; import net.minecraft.block.BlockState; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.IRenderTypeBuffer; import net.minecraft.client.world.ClientWorld; +import net.minecraft.entity.Entity; import net.minecraft.item.ItemStack; import net.minecraft.util.Direction; import net.minecraft.util.math.AxisAlignedBB; @@ -86,12 +89,19 @@ public class FilteringRenderer { .highlightFace(result.getDirection()); } - public static void renderOnTileEntity(SmartTileEntity tileEntityIn, float partialTicks, MatrixStack ms, + public static void renderOnTileEntity(SmartTileEntity te, float partialTicks, MatrixStack ms, IRenderTypeBuffer buffer, int light, int overlay) { - if (tileEntityIn == null || tileEntityIn.isRemoved()) + if (te == null || te.isRemoved()) return; - FilteringBehaviour behaviour = tileEntityIn.getBehaviour(FilteringBehaviour.TYPE); + + Entity cameraEntity = Minecraft.getInstance().cameraEntity; + float max = AllConfigs.CLIENT.filterItemRenderDistance.getF(); + if (!te.isVirtual() && cameraEntity != null && cameraEntity.position() + .distanceToSqr(VecHelper.getCenterOf(te.getBlockPos())) > (max * max)) + return; + + FilteringBehaviour behaviour = te.getBehaviour(FilteringBehaviour.TYPE); if (behaviour == null) return; if (!behaviour.isActive()) @@ -101,7 +111,7 @@ public class FilteringRenderer { return; ValueBoxTransform slotPositioning = behaviour.slotPositioning; - BlockState blockState = tileEntityIn.getBlockState(); + BlockState blockState = te.getBlockState(); if (slotPositioning instanceof ValueBoxTransform.Sided) { ValueBoxTransform.Sided sided = (ValueBoxTransform.Sided) slotPositioning; diff --git a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/linked/LinkRenderer.java b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/linked/LinkRenderer.java index 1c51f5861..23962d3c4 100644 --- a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/linked/LinkRenderer.java +++ b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/linked/LinkRenderer.java @@ -4,6 +4,7 @@ import com.mojang.blaze3d.matrix.MatrixStack; import com.mojang.datafixers.util.Pair; import com.simibubi.create.AllSpecialTextures; import com.simibubi.create.CreateClient; +import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.tileEntity.SmartTileEntity; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.ValueBox; @@ -11,10 +12,12 @@ import com.simibubi.create.foundation.tileEntity.behaviour.ValueBoxRenderer; import com.simibubi.create.foundation.tileEntity.behaviour.ValueBoxTransform; import com.simibubi.create.foundation.utility.Iterate; import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.VecHelper; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.IRenderTypeBuffer; import net.minecraft.client.world.ClientWorld; +import net.minecraft.entity.Entity; import net.minecraft.item.ItemStack; import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.BlockPos; @@ -63,6 +66,13 @@ public class LinkRenderer { if (te == null || te.isRemoved()) return; + + Entity cameraEntity = Minecraft.getInstance().cameraEntity; + float max = AllConfigs.CLIENT.filterItemRenderDistance.getF(); + if (!te.isVirtual() && cameraEntity != null && cameraEntity.position() + .distanceToSqr(VecHelper.getCenterOf(te.getBlockPos())) > (max * max)) + return; + LinkBehaviour behaviour = te.getBehaviour(LinkBehaviour.TYPE); if (behaviour == null) return; From 17150d8b7029f1b562683e1f5beefe584e18fd41 Mon Sep 17 00:00:00 2001 From: Nekrodamus Date: Sat, 7 Aug 2021 17:07:26 -0300 Subject: [PATCH 18/79] Delete es_ar.json --- .../resources/assets/create/lang/es_ar.json | 2305 ----------------- 1 file changed, 2305 deletions(-) delete mode 100644 src/main/resources/assets/create/lang/es_ar.json diff --git a/src/main/resources/assets/create/lang/es_ar.json b/src/main/resources/assets/create/lang/es_ar.json deleted file mode 100644 index 504694aab..000000000 --- a/src/main/resources/assets/create/lang/es_ar.json +++ /dev/null @@ -1,2305 +0,0 @@ -{ - - "_": "->------------------------] Game Elements [------------------------<-", - - "block.create.acacia_window": "Ventana de acacia", - "block.create.acacia_window_pane": "Panel de ventana de acacia", - "block.create.adjustable_chain_gearshift": "Cadena de transmisión ajustable", - "block.create.adjustable_crate": "Caja ajustable", - "block.create.adjustable_pulse_repeater": "Repetidor de pulso ajustable", - "block.create.adjustable_repeater": "Repetidor ajustable", - "block.create.analog_lever": "Palanca analógica", - "block.create.andesite_belt_funnel": "Embudo de cinta de andesita", - "block.create.andesite_bricks": "Ladrillos de andesita", - "block.create.andesite_bricks_slab": "Losa de ladrillos de andesita", - "block.create.andesite_bricks_stairs": "Escaleras de ladrillos de andesita", - "block.create.andesite_bricks_wall": "Muro de ladrillos de andesita", - "block.create.andesite_casing": "Revestidor de andesita", - "block.create.andesite_cobblestone": "Adoquín de andesita", - "block.create.andesite_cobblestone_slab": "Losa de adoquín de andesita", - "block.create.andesite_cobblestone_stairs": "Escaleras de adoquines de andesita", - "block.create.andesite_cobblestone_wall": "Muro de adoquines de andesita", - "block.create.andesite_encased_shaft": "Eje revestido de andesita", - "block.create.andesite_funnel": "Embudo de andesita", - "block.create.andesite_pillar": "Poste de andesita", - "block.create.andesite_tunnel": "Túnel de Andesita", - "block.create.basin": "Cuenca", - "block.create.belt": "Cinta", - "block.create.birch_window": "Ventana de abedul", - "block.create.birch_window_pane": "Panel de ventana de abedul", - "block.create.black_nixie_tube": "Tubo Nixie negro", - "block.create.black_sail": "Vela negra", - "block.create.black_seat": "Asiento negro", - "block.create.black_valve_handle": "Asa de válvula negra", - "block.create.blaze_burner": "Quemador de Blaze", - "block.create.blue_nixie_tube": "Tubo Nixie azul", - "block.create.blue_sail": "Vela azul", - "block.create.blue_seat": "Asiento azul", - "block.create.blue_valve_handle": "Asa de válvula azul", - "block.create.brass_belt_funnel": "Embudo de cinta de latón", - "block.create.brass_block": "Bloque de latón", - "block.create.brass_casing": "Revestidor de latón", - "block.create.brass_encased_shaft": "Eje revestido de latón", - "block.create.brass_funnel": "Embudo de latón", - "block.create.brass_tunnel": "Túnel de latón", - "block.create.brown_nixie_tube": "Tubo Nixie marrón", - "block.create.brown_sail": "Vela marrón", - "block.create.brown_seat": "Asiento marrón", - "block.create.brown_valve_handle": "Asa de válvula marrón", - "block.create.cart_assembler": "Ensamblador de vagonetas", - "block.create.chiseled_dark_scoria": "Escoria oscura cincelada", - "block.create.chiseled_dolomite": "Dolomita cincelada", - "block.create.chiseled_gabbro": "Gabro cincelado", - "block.create.chiseled_limestone": "Caliza cincelada", - "block.create.chiseled_scoria": "Escoria cincelada", - "block.create.chiseled_weathered_limestone": "Piedra caliza erosionada cincelada", - "block.create.chocolate": "Chocolate", - "block.create.chute": "Ducto", - "block.create.clockwork_bearing": "Rodamiento tipo reloj", - "block.create.clutch": "Embrague", - "block.create.cogwheel": "Engranaje pequeño", - "block.create.content_observer": "Observador de contenidos", - "block.create.controller_rail": "Raíl de control", - "block.create.copper_backtank": "Depósito trasero de cobre", - "block.create.copper_block": "Bloque de cobre", - "block.create.copper_casing": "Revestidor de caliza", - "block.create.copper_ore": "Mena de cobre", - "block.create.copper_shingles": "Bloque de tejas de cobre", - "block.create.copper_tiles": "Bloque de baldosas de cobre", - "block.create.copper_valve_handle": "Asa de válvula de cobre", - "block.create.creative_crate": "Caja creativa", - "block.create.creative_fluid_tank": "Tanque de fluidos creativo", - "block.create.creative_motor": "Motor creativo", - "block.create.crimson_window": "Ventana carmesí", - "block.create.crimson_window_pane": "Panel de ventana carmesí", - "block.create.crushing_wheel": "Rueda trituradora", - "block.create.crushing_wheel_controller": "Controlador de Rueda trituradora", - "block.create.cuckoo_clock": "Reloj de cuco", - "block.create.cyan_nixie_tube": "Tubo Nixie cian", - "block.create.cyan_sail": "Vela cian", - "block.create.cyan_seat": "Asiento cian", - "block.create.cyan_valve_handle": "Asa de válvula cian", - "block.create.dark_oak_window": "Ventana de roble oscuro", - "block.create.dark_oak_window_pane": "Panel de ventana de roble oscuro", - "block.create.dark_scoria": "Escoria oscura", - "block.create.dark_scoria_bricks": "Ladrillos de escoria oscura", - "block.create.dark_scoria_bricks_slab": "Losa de ladrillos de escoria oscura", - "block.create.dark_scoria_bricks_stairs": "Escaleras de ladrillos de escoria oscura", - "block.create.dark_scoria_bricks_wall": "Muro de ladrillos de escoria oscura", - "block.create.dark_scoria_cobblestone": "Adoquines de escoria oscura", - "block.create.dark_scoria_cobblestone_slab": "Losa de adoquines de escoria oscura", - "block.create.dark_scoria_cobblestone_stairs": "Escaleras de adoquines de escoria oscura", - "block.create.dark_scoria_cobblestone_wall": "Muro de adoquines de escoria oscura", - "block.create.dark_scoria_pillar": "Pilar de escoria oscura", - "block.create.deployer": "Desplegador", - "block.create.depot": "Depósito", - "block.create.diorite_bricks": "Ladrillos de diorita", - "block.create.diorite_bricks_slab": "Losa de ladrillos de diorita", - "block.create.diorite_bricks_stairs": "Escaleras de ladrillos de diorita", - "block.create.diorite_bricks_wall": "Muro de ladrillos de diorita", - "block.create.diorite_cobblestone": "Adoquín de diorita", - "block.create.diorite_cobblestone_slab": "Losa de adoquínes de diorita", - "block.create.diorite_cobblestone_stairs": "Escaleras de adoquines de diorita", - "block.create.diorite_cobblestone_wall": "Muro de adoquines de diorita", - "block.create.diorite_pillar": "Pilar de diorita", - "block.create.dolomite": "Dolomita", - "block.create.dolomite_bricks": "Ladrillos de dolomita", - "block.create.dolomite_bricks_slab": "Losa de ladrillos de dolomita", - "block.create.dolomite_bricks_stairs": "Escaleras de ladrillos de dolomita", - "block.create.dolomite_bricks_wall": "Muro de ladrillos de dolomita", - "block.create.dolomite_cobblestone": "Adoquín de dolomita", - "block.create.dolomite_cobblestone_slab": "Losa de adoquín de dolomita", - "block.create.dolomite_cobblestone_stairs": "Escaleras de adoquines de dolomita", - "block.create.dolomite_cobblestone_wall": "Muro de adoquines de dolomita", - "block.create.dolomite_pillar": "Pilar de dolomita", - "block.create.encased_chain_drive": "Cadena de transmisión revestida", - "block.create.encased_fan": "Ventilador revestido", - "block.create.encased_fluid_pipe": "Tubería de fluidos de cobre reforzada", - "block.create.fancy_andesite_bricks": "Ladrillos de andesita elegantes", - "block.create.fancy_andesite_bricks_slab": "Ladrillos de andesita elegantes", - "block.create.fancy_andesite_bricks_stairs": "Escaleras de ladrillos de andesita elegantes", - "block.create.fancy_andesite_bricks_wall": "Muro de ladrillos de andesita elegantes", - "block.create.fancy_dark_scoria_bricks": "Ladrillos de escoria oscura elegantes", - "block.create.fancy_dark_scoria_bricks_slab": "Losa de ladrillos de escoria oscura elegantes", - "block.create.fancy_dark_scoria_bricks_stairs": "Escalera de ladrillos de escoria oscura elegantes", - "block.create.fancy_dark_scoria_bricks_wall": "Muro de ladrillos de escoria oscura elegantes", - "block.create.fancy_diorite_bricks": "Ladrillos de diorita elegantes", - "block.create.fancy_diorite_bricks_slab": "Losa de ladrillos de diorita elegantes", - "block.create.fancy_diorite_bricks_stairs": "Escaleras de ladrillos de diorita elegantes", - "block.create.fancy_diorite_bricks_wall": "Muro de ladrillos de diorita elegantes", - "block.create.fancy_dolomite_bricks": "Ladrillos de dolomita elegantes", - "block.create.fancy_dolomite_bricks_slab": "Losa de ladrillos de dolomita elegantes", - "block.create.fancy_dolomite_bricks_stairs": "Escaleras de ladrillos de dolomita elegantes", - "block.create.fancy_dolomite_bricks_wall": "Muro de ladrillos de dolomita elegantes", - "block.create.fancy_gabbro_bricks": "Ladrillos de gabro elegantes", - "block.create.fancy_gabbro_bricks_slab": "Losa de ladrillos de gabro elegantes", - "block.create.fancy_gabbro_bricks_stairs": "Escaleras de ladrillos de gabro elegantes", - "block.create.fancy_gabbro_bricks_wall": "Muro de ladrillos de gabro elegantes", - "block.create.fancy_granite_bricks": "Ladrillos de granito elegantes", - "block.create.fancy_granite_bricks_slab": "Losa de ladrillos de granito elegantes", - "block.create.fancy_granite_bricks_stairs": "Escaleras de ladrillos de granito elegantes", - "block.create.fancy_granite_bricks_wall": "Muro de ladrillos de granito elegantes", - "block.create.fancy_limestone_bricks": "Ladrillos de piedra caliza elegantes", - "block.create.fancy_limestone_bricks_slab": "Losa de ladrillos de piedra caliza elegantes", - "block.create.fancy_limestone_bricks_stairs": "Escaleras de ladrillos de piedra caliza elegantes", - "block.create.fancy_limestone_bricks_wall": "Muro de ladrillos de piedra caliza elegantes", - "block.create.fancy_scoria_bricks": "Ladrillos de escoria elegantes", - "block.create.fancy_scoria_bricks_slab": "Losa de ladrillos de escoria elegantes", - "block.create.fancy_scoria_bricks_stairs": "Escaleras de ladrillos de escoria elegantes", - "block.create.fancy_scoria_bricks_wall": "Muro de ladrillos de escoria elegantes", - "block.create.fancy_weathered_limestone_bricks": "Ladrillos de piedra de caliza erosionada elegantes", - "block.create.fancy_weathered_limestone_bricks_slab": "Losa de ladrillos de caliza erosionada elegantes", - "block.create.fancy_weathered_limestone_bricks_stairs": "Escaleras de ladrillos de caliza erosionada elegantes", - "block.create.fancy_weathered_limestone_bricks_wall": "Muro de ladrillos de caliza erosionada elegantes", - "block.create.fluid_pipe": "Tubería de fluidos de cobre", - "block.create.fluid_tank": "Depósito de fluidos", - "block.create.fluid_valve": "Válvula de fluidos", - "block.create.flywheel": "Rueda de inercia", - "block.create.framed_glass": "Cristal enmarcado", - "block.create.framed_glass_pane": "Panel de cristal enmarcado", - "block.create.furnace_engine": "Motor de horno", - "block.create.gabbro": "Gabro", - "block.create.gabbro_bricks": "Ladrillos de gabro", - "block.create.gabbro_bricks_slab": "Losa de ladrillos de gabro", - "block.create.gabbro_bricks_stairs": "Escaleras de ladrillos de gabro", - "block.create.gabbro_bricks_wall": "Muro de ladrillos de gabro", - "block.create.gabbro_cobblestone": "Adoquín de gabro", - "block.create.gabbro_cobblestone_slab": "Losa de adoquínes de gabro", - "block.create.gabbro_cobblestone_stairs": "Escaleras de adoquínes de gabro", - "block.create.gabbro_cobblestone_wall": "Muro de adoquínes de gabro", - "block.create.gabbro_pillar": "Pilar de gabro", - "block.create.gantry_carriage": "Carro de grúa", - "block.create.gantry_shaft": "Eje de grúa", - "block.create.gearbox": "Caja de transmisión", - "block.create.gearshift": "Caja de cambios", - "block.create.glass_fluid_pipe": "Tubería de fluidos de cristal", - "block.create.granite_bricks": "Ladrillos de granito", - "block.create.granite_bricks_slab": "Losa de ladrillos de granito", - "block.create.granite_bricks_stairs": "Escaleras de ladrillos de granito", - "block.create.granite_bricks_wall": "Muro de ladrillos de granito", - "block.create.granite_cobblestone": "Adoquín de granito", - "block.create.granite_cobblestone_slab": "Losa de adoquínes de granito", - "block.create.granite_cobblestone_stairs": "Escaleras de adoquínes de granito", - "block.create.granite_cobblestone_wall": "Muro de adoquínes de granito", - "block.create.granite_pillar": "Pilar de granito", - "block.create.gray_nixie_tube": "Tubo Nixie gris", - "block.create.gray_sail": "Vela gris", - "block.create.gray_seat": "Asiento gris", - "block.create.gray_valve_handle": "Asa de válvula gris", - "block.create.green_nixie_tube": "Tubo Nixie verde", - "block.create.green_sail": "Vela verde", - "block.create.green_seat": "Asiento verde", - "block.create.green_valve_handle": "Asa de válvula verde", - "block.create.hand_crank": "Manivela", - "block.create.haunted_bell": "Campana encantada", - "block.create.honey": "Miel", - "block.create.horizontal_framed_glass": "Cristal con marco horizontal", - "block.create.horizontal_framed_glass_pane": "Panel de cristal con marco horizontal", - "block.create.hose_pulley": "Polea de manguera", - "block.create.item_drain": "Drenador de objetos", - "block.create.jungle_window": "Ventana de jungla", - "block.create.jungle_window_pane": "Panel de ventana de jungla", - "block.create.large_cogwheel": "Engranaje grande", - "block.create.layered_andesite": "Andesita estratificada", - "block.create.layered_dark_scoria": "Escoria oscura estratificada", - "block.create.layered_diorite": "Diorita estratificada", - "block.create.layered_dolomite": "Dolomita estratificada", - "block.create.layered_gabbro": "Gabro estratificado", - "block.create.layered_granite": "Granito estratificado", - "block.create.layered_limestone": "Piedra caliza estratificada", - "block.create.layered_scoria": "Escoria estratificada", - "block.create.layered_weathered_limestone": "Caliza erosionada estratificada", - "block.create.lectern_controller": "Controlador de atril", - "block.create.light_blue_nixie_tube": "Tubo Nixie azul claro", - "block.create.light_blue_sail": "Vela azul claro", - "block.create.light_blue_seat": "Asiento azul claro", - "block.create.light_blue_valve_handle": "Asa de válvula azul claro", - "block.create.light_gray_nixie_tube": "Tubo Nixie gris claro", - "block.create.light_gray_sail": "Vela gris claro", - "block.create.light_gray_seat": "Asiento gris claro", - "block.create.light_gray_valve_handle": "Asa de válvula gris claro", - "block.create.lime_nixie_tube": "Tubo Nixie lima", - "block.create.lime_sail": "Vela lima", - "block.create.lime_seat": "Asiento lima", - "block.create.lime_valve_handle": "Asa de válvula lima", - "block.create.limesand": "Arena caliza", - "block.create.limestone": "Piedra caliza", - "block.create.limestone_bricks": "Ladrillos de piedra caliza", - "block.create.limestone_bricks_slab": "Losa de ladrillos de piedra caliza", - "block.create.limestone_bricks_stairs": "Escaleras de ladrillos de piedra caliza", - "block.create.limestone_bricks_wall": "Muro de ladrillos de piedra caliza", - "block.create.limestone_cobblestone": "Adoquínes de piedra caliza", - "block.create.limestone_cobblestone_slab": "Losa de adoquines de piedra caliza", - "block.create.limestone_cobblestone_stairs": "Escaleras de adoquines de piedra caliza", - "block.create.limestone_cobblestone_wall": "Muro de adoquines de piedra caliza", - "block.create.limestone_pillar": "Pilar de piedra caliza", - "block.create.linear_chassis": "Chasis lineal", - "block.create.lit_blaze_burner": "Quemador de Blaze encendido", - "block.create.magenta_nixie_tube": "Tubo Nixie magenta", - "block.create.magenta_sail": "Vela magenta", - "block.create.magenta_seat": "Asiento magenta", - "block.create.magenta_valve_handle": "Asa de válvula magenta", - "block.create.mechanical_arm": "Brazo mecánico", - "block.create.mechanical_bearing": "Rodamiento mecánico", - "block.create.mechanical_crafter": "Ensamblador mecánico", - "block.create.mechanical_drill": "Taladro mecánico", - "block.create.mechanical_harvester": "Cosechadora mecánica", - "block.create.mechanical_mixer": "Mezcladora mecánica", - "block.create.mechanical_piston": "Pistón mecánico", - "block.create.mechanical_piston_head": "Cabezal de pistón mecánico", - "block.create.mechanical_plough": "Arado mecánico", - "block.create.mechanical_press": "Prensa mecánica", - "block.create.mechanical_pump": "Bomba mecánica", - "block.create.mechanical_saw": "Sierra mecánica", - "block.create.metal_bracket": "Soporte de metal para ejes", - "block.create.millstone": "Piedra de molino", - "block.create.minecart_anchor": "Ancla de vagonetas", - "block.create.mossy_andesite": "Andesita musgosa", - "block.create.mossy_dark_scoria": "Escoria oscura musgosa", - "block.create.mossy_diorite": "Diorita musgosa", - "block.create.mossy_dolomite": "Dolomita musgosa", - "block.create.mossy_gabbro": "Gabro musgoso", - "block.create.mossy_granite": "Granito musgoso", - "block.create.mossy_limestone": "Caliza musgosa", - "block.create.mossy_scoria": "Escoria musgosa", - "block.create.mossy_weathered_limestone": "Caliza erosionada musgosa", - "block.create.mysterious_cuckoo_clock": "Reloj de cuco", - "block.create.natural_scoria": "Escoria natural", - "block.create.nixie_tube": "Tubo Nixie", - "block.create.nozzle": "Boquilla", - "block.create.oak_window": "Ventana de roble", - "block.create.oak_window_pane": "Panel de ventana de roble", - "block.create.orange_sail": "Vela naranja", - "block.create.orange_seat": "Asiento naranja", - "block.create.orange_valve_handle": "Asa de válvula naranja", - "block.create.ornate_iron_window": "Ventana de hierro ornamentada", - "block.create.ornate_iron_window_pane": "Panel de ventana de hierro ornamentada", - "block.create.overgrown_andesite": "Andesita sobredimensionada", - "block.create.overgrown_dark_scoria": "Escoria oscura sobredimensionada", - "block.create.overgrown_diorite": "Diorita sobredimensionada", - "block.create.overgrown_dolomite": "Dolomita sobredimensionada", - "block.create.overgrown_gabbro": "Gabro sobredimensionado", - "block.create.overgrown_granite": "Granito sobredimensionado", - "block.create.overgrown_limestone": "Caliza sobredimensionada", - "block.create.overgrown_scoria": "Escoria sobredimensionada", - "block.create.overgrown_weathered_limestone": "Caliza erosionada sobredimensionada", - "block.create.paved_andesite": "Andesita pavimentada", - "block.create.paved_andesite_slab": "Losa de andesita pavimentada", - "block.create.paved_andesite_stairs": "Escaleras de andesita pavimentada", - "block.create.paved_andesite_wall": "Muro de andesita pavimentada", - "block.create.paved_dark_scoria": "Escoria oscura pavimentada", - "block.create.paved_dark_scoria_slab": "Losa de escoria oscura pavimentada", - "block.create.paved_dark_scoria_stairs": "Escaleras de escoria oscura pavimentada", - "block.create.paved_dark_scoria_wall": "Muro de escoria oscura pavimentad", - "block.create.paved_diorite": "Diorita pavimentada", - "block.create.paved_diorite_slab": "Losa de diorita pavimentada", - "block.create.paved_diorite_stairs": "Escaleras de diorita pavimentada", - "block.create.paved_diorite_wall": "Muro de diorita pavimentad", - "block.create.paved_dolomite": "Dolomita pavimentada", - "block.create.paved_dolomite_slab": "Losa de dolomita pavimentada", - "block.create.paved_dolomite_stairs": "Escaleras de dolomita pavimentada", - "block.create.paved_dolomite_wall": "Muro de dolomita pavimentada", - "block.create.paved_gabbro": "Gabro pavimentado", - "block.create.paved_gabbro_slab": "Losa de gabro pavimentado", - "block.create.paved_gabbro_stairs": "Escaleras de gabro pavimentado", - "block.create.paved_gabbro_wall": "Muro de gabro pavimentado", - "block.create.paved_granite": "Granito pavimentado", - "block.create.paved_granite_slab": "Losa de granito pavimentado", - "block.create.paved_granite_stairs": "Escaleras de granito pavimentado", - "block.create.paved_granite_wall": "Muro de granito pavimentado", - "block.create.paved_limestone": "Piedra caliza pavimentada", - "block.create.paved_limestone_slab": "Losa de piedra caliza pavimentada", - "block.create.paved_limestone_stairs": "Escaleras de piedra caliza pavimentada", - "block.create.paved_limestone_wall": "Muro de piedra caliza pavimentada", - "block.create.paved_scoria": "Escoria pavimentada", - "block.create.paved_scoria_slab": "Losa de escoria pavimentada", - "block.create.paved_scoria_stairs": "Escaleras de escoria pavimentada", - "block.create.paved_scoria_wall": "Muro de escoria pavimentada", - "block.create.paved_weathered_limestone": "Piedra caliza erosionada pavimentada", - "block.create.paved_weathered_limestone_slab": "Losa de piedra caliza erosionada pavimentada", - "block.create.paved_weathered_limestone_stairs": "Escaleras de piedra caliza erosionada pavimentada", - "block.create.paved_weathered_limestone_wall": "Muro de piedra caliza erosionada pavimentada", - "block.create.peculiar_bell": "Campana peculiar", - "block.create.pink_nixie_tube": "Tubo Nixie rosa", - "block.create.pink_sail": "Vela rosa", - "block.create.pink_seat": "Asiento rosa", - "block.create.pink_valve_handle": "Asa de válvula rosa", - "block.create.piston_extension_pole": "Pértiga de extensión de pistón", - "block.create.polished_dark_scoria": "Escoria oscura pulida", - "block.create.polished_dark_scoria_slab": "Losa de escoria oscura pulida", - "block.create.polished_dark_scoria_stairs": "Escaleras de escoria oscura pulida", - "block.create.polished_dark_scoria_wall": "Muro de escoria oscura pulida", - "block.create.polished_dolomite": "Dolomita pulida", - "block.create.polished_dolomite_slab": "Losa de dolomita pulida", - "block.create.polished_dolomite_stairs": "Escaleras de dolomita pulidas", - "block.create.polished_dolomite_wall": "Muro de dolomita pulida", - "block.create.polished_gabbro": "Gabro pulido", - "block.create.polished_gabbro_slab": "Losa de gabro pulido", - "block.create.polished_gabbro_stairs": "Escaleras de gabro pulido", - "block.create.polished_gabbro_wall": "Muro de gabro pulido", - "block.create.polished_limestone": "Piedra caliza pulida", - "block.create.polished_limestone_slab": "Losa de piedra caliza pulida", - "block.create.polished_limestone_stairs": "Escaleras de piedra caliza pulidas", - "block.create.polished_limestone_wall": "Muro de piedra caliza pulida", - "block.create.polished_scoria": "Escoria pulida", - "block.create.polished_scoria_slab": "Losa de escoria pulida", - "block.create.polished_scoria_stairs": "Escaleras de losa pulida", - "block.create.polished_scoria_wall": "Muro de escoria pulida", - "block.create.polished_weathered_limestone": "Piedra caliza erosionada pulida", - "block.create.polished_weathered_limestone_slab": "Losa de piedra caliza erosionada pulida", - "block.create.polished_weathered_limestone_stairs": "Escaleras de piedra caliza erosionada pulida", - "block.create.polished_weathered_limestone_wall": "Muro de piedra caliza erosionada pulida", - "block.create.portable_fluid_interface": "Interfaz de fluidos portátil", - "block.create.portable_storage_interface": "Interfaz de almacenamiento portátil", - "block.create.powered_latch": "Palanca motorizada", - "block.create.powered_toggle_latch": "Palanca de cierre motorizada", - "block.create.pulley_magnet": "Imán de la polea", - "block.create.pulse_repeater": "Repetidor de pulsos de redstone", - "block.create.purple_nixie_tube": "Tubo Nixie morado", - "block.create.purple_sail": "Vela morada", - "block.create.purple_seat": "Asiento morado", - "block.create.purple_valve_handle": "Asa de válvula morada", - "block.create.radial_chassis": "Chasis radial", - "block.create.red_nixie_tube": "Tubo Nixie rojo", - "block.create.red_sail": "Vela roja", - "block.create.red_seat": "Asiento rojo", - "block.create.red_valve_handle": "Asa de válvula roja", - "block.create.redstone_contact": "Contacto de redstone", - "block.create.redstone_link": "Enlace de redstone", - "block.create.refined_radiance_casing": "Revestidor radiante", - "block.create.reinforced_rail": "Raíl reforzado", - "block.create.rope": "Cuerda", - "block.create.rope_pulley": "Polea de cuerda", - "block.create.rotation_speed_controller": "Controlador de velocidad rotacional", - "block.create.sail_frame": "Marco de vela", - "block.create.schematic_table": "Tabla de esquemas", - "block.create.schematicannon": "Cañón de esquemas", - "block.create.scoria": "Escoria", - "block.create.scoria_bricks": "Ladrillos de escoria", - "block.create.scoria_bricks_slab": "Losa de ladrillos de escoria", - "block.create.scoria_bricks_stairs": "Escaleras de ladrillos de escoria", - "block.create.scoria_bricks_wall": "Muro de ladrillos de escoria", - "block.create.scoria_cobblestone": "Adoquín de escoria", - "block.create.scoria_cobblestone_slab": "Losa de adoquínes de escoria", - "block.create.scoria_cobblestone_stairs": "Escaleras de adoquines de escoria", - "block.create.scoria_cobblestone_wall": "Muro de adoquines de escoria", - "block.create.scoria_pillar": "Pilar de escoria", - "block.create.secondary_linear_chassis": "Chasis lineal secundario", - "block.create.sequenced_gearshift": "Caja de cambios secuencial", - "block.create.shadow_steel_casing": "Revestidor sombrío", - "block.create.shaft": "Eje", - "block.create.smart_chute": "Ducto inteligente", - "block.create.smart_fluid_pipe": "Tubería de fluidos inteligente", - "block.create.speedometer": "Velocímetro", - "block.create.spout": "Surtidor", - "block.create.spruce_window": "Ventana de abeto", - "block.create.spruce_window_pane": "Panel de ventana de abeto", - "block.create.sticker": "Sticker", - "block.create.sticky_mechanical_piston": "Pistón mecánico pegajoso", - "block.create.stockpile_switch": "Interruptor de acopio", - "block.create.stressometer": "Estresómetro", - "block.create.tiled_glass": "Vidrio esmaltado", - "block.create.tiled_glass_pane": "Panel de vidrio esmaltado", - "block.create.turntable": "Plataforma giratoria mecánica", - "block.create.vertical_framed_glass": "Vidrio esmaltado vertical", - "block.create.vertical_framed_glass_pane": "Panel de vidrio esmaltado vertical", - "block.create.warped_window": "Ventana distorsionada", - "block.create.warped_window_pane": "Panel de ventana distorsionada", - "block.create.water_wheel": "Rueda hidráulica mecánica", - "block.create.weathered_limestone": "Piedra caliza erosionada", - "block.create.weathered_limestone_bricks": "Ladrillos de piedra caliza erosionada", - "block.create.weathered_limestone_bricks_slab": "Losa de piedra caliza erosionada", - "block.create.weathered_limestone_bricks_stairs": "Escaleras de ladrillos de piedra caliza erosionada", - "block.create.weathered_limestone_bricks_wall": "Muro de ladrillos de piedra caliza erosionada", - "block.create.weathered_limestone_cobblestone": "Adoquín de piedra caliza erosionada", - "block.create.weathered_limestone_cobblestone_slab": "Losa de adoquín de piedra caliza erosionada", - "block.create.weathered_limestone_cobblestone_stairs": "Escaleras de adoquín de piedra caliza erosionada", - "block.create.weathered_limestone_cobblestone_wall": "Muro de adoquínes de piedra caliza erosionada", - "block.create.weathered_limestone_pillar": "Pilar de piedra caliza erosionada", - "block.create.weighted_ejector": "Eyector de peso", - "block.create.white_nixie_tube": "Tubo Nixie blanco", - "block.create.white_sail": "Vela blanca", - "block.create.white_seat": "Asiento blanco", - "block.create.white_valve_handle": "Asa de válvula blanco", - "block.create.windmill_bearing": "Rodamiento del molino de viento", - "block.create.wooden_bracket": "Soporte de madera para ejes", - "block.create.yellow_nixie_tube": "Tubo Nixie amarillo", - "block.create.yellow_sail": "Vela amarilla", - "block.create.yellow_seat": "Asiento amarillo", - "block.create.yellow_valve_handle": "Asa de válvula amarillo", - "block.create.zinc_block": "Bloque de zinc", - "block.create.zinc_ore": "Mena de zinc", - - "enchantment.create.capacity": "Capacidad", - "enchantment.create.potato_recovery": "Recuperación de patatas", - - "entity.create.contraption": "Artilugio", - "entity.create.crafting_blueprint": "Plano de elaboración", - "entity.create.gantry_contraption": "Artilugio de grúa", - "entity.create.potato_projectile": "Proyectil de patata", - "entity.create.seat": "Asiento", - "entity.create.stationary_contraption": "Artilugio estacionario", - "entity.create.super_glue": "Pegamento", - - "fluid.create.potion": "Poción", - "fluid.create.tea": "Té del Constructor", - - "item.create.andesite_alloy": "Aleación de andesita", - "item.create.attribute_filter": "Filtro de atributos", - "item.create.bar_of_chocolate": "Barra de chocolate", - "item.create.belt_connector": "Correa mecánica", - "item.create.blaze_cake": "Pastel de blaze", - "item.create.blaze_cake_base": "Base de pastel de blaze", - "item.create.brass_hand": "Mano de latón", - "item.create.brass_ingot": "Lingote de latón", - "item.create.brass_nugget": "Pepita de latón", - "item.create.brass_sheet": "Lámina de latón", - "item.create.builders_tea": "Té del Constructor", - "item.create.chest_minecart_contraption": "Artilugio de vagoneta con cofre", - "item.create.chocolate_bucket": "Cubo con chocolate", - "item.create.chocolate_glazed_berries": "Bayas glaseadas con chocolate", - "item.create.chromatic_compound": "Compuesto cromático", - "item.create.cinder_flour": "Harina del Nether", - "item.create.copper_backtank": "Depósito trasero de cobre", - "item.create.copper_ingot": "Lingote de cobre", - "item.create.copper_nugget": "Pepita de cobre", - "item.create.copper_sheet": "Lámina de cobre", - "item.create.crafter_slot_cover": "Tapa de ranura del ensamblador mecánico", - "item.create.crafting_blueprint": "Plano de elaboración", - "item.create.creative_blaze_cake": "´Pastel de blaze creativo", - "item.create.crushed_aluminum_ore": "Mineral de aluminio molido", - "item.create.crushed_brass": "Latón molido", - "item.create.crushed_copper_ore": "Mineral de cobre molido", - "item.create.crushed_gold_ore": "Mineral de oro molido", - "item.create.crushed_iron_ore": "Mineral de hierro molido", - "item.create.crushed_lead_ore": "Mineral de plomo molido", - "item.create.crushed_nickel_ore": "Mineral de níquel molido", - "item.create.crushed_osmium_ore": "Mineral de osmio molido", - "item.create.crushed_platinum_ore": "Mineral de platino molido", - "item.create.crushed_quicksilver_ore": "Mineral de mercurio molido", - "item.create.crushed_silver_ore": "Mineral de plata molido", - "item.create.crushed_tin_ore": "Mineral de estaño molido", - "item.create.crushed_uranium_ore": "Mineral de uranio molido", - "item.create.crushed_zinc_ore": "Mineral de zinc molido", - "item.create.diving_boots": "Botas de buceo", - "item.create.diving_helmet": "Casco de buceo", - "item.create.dough": "Masilla", - "item.create.electron_tube": "Tubo de electrones", - "item.create.empty_blaze_burner": "Quemador de blaze vacío", - "item.create.empty_schematic": "Esquema vacío", - "item.create.extendo_grip": "Agarre extendido", - "item.create.filter": "Filtro", - "item.create.furnace_minecart_contraption": "Artilugio de vagoneta de horno", - "item.create.goggles": "Gafas del constructor", - "item.create.golden_sheet": "Lámina de oro", - "item.create.handheld_worldshaper": "Worldshaper Creativo", - "item.create.honey_bucket": "Cubo con miel", - "item.create.honeyed_apple": "Manzana con miel", - "item.create.incomplete_cogwheel": "Engranaje pequeño incompleto", - "item.create.incomplete_large_cogwheel": "Engranaje grande incompleto", - "item.create.incomplete_precision_mechanism": "Mecanismo de precisión incompleto", - "item.create.iron_sheet": "Lámina de hierro", - "item.create.linked_controller": "Controlador enlazado", - "item.create.minecart_contraption": "Artilugio de vagoneta", - "item.create.minecart_coupling": "Acoplamiento de vagoneta", - "item.create.polished_rose_quartz": "Cuarzo rosado pulido", - "item.create.potato_cannon": "Cañón de patatas", - "item.create.powdered_obsidian": "Polvo de obsidiana", - "item.create.precision_mechanism": "Mecanismo de precisión", - "item.create.propeller": "Hélice", - "item.create.red_sand_paper": "Papel de lija rojo", - "item.create.refined_radiance": "Resplandor refinado", - "item.create.rose_quartz": "Cuarzo rosado", - "item.create.sand_paper": "Papel de lija", - "item.create.schematic": "Esquema", - "item.create.schematic_and_quill": "Esquema y pluma", - "item.create.shadow_steel": "Acero sombrío", - "item.create.super_glue": "Pegamento", - "item.create.sweet_roll": "Pan dulce", - "item.create.tree_fertilizer": "Fertilizante para árboles", - "item.create.vertical_gearbox": "Caja de transmisión vertical", - "item.create.wand_of_symmetry": "Varita de simetría", - "item.create.wheat_flour": "Harina de trigo", - "item.create.whisk": "Batidora", - "item.create.wrench": "Llave inglesa", - "item.create.zinc_ingot": "Lingote de zinc", - "item.create.zinc_nugget": "Pepita de zinc", - - - "_": "->------------------------] Advancements [------------------------<-", - - "advancement.create.root": "Bienvenido a Create", - "advancement.create.root.desc": "¡Es hora de empezar a construir increíbles artilugios!", - "advancement.create.andesite_alloy": "Aleaciones en abundancia", - "advancement.create.andesite_alloy.desc": "Los materiales de Create tienen nombres extraños, la aleación de andesita es uno de ellos.", - "advancement.create.its_alive": "¡Está vivo!", - "advancement.create.its_alive.desc": "Mira cómo gira tu primer componente cinético.", - "advancement.create.shifting_gears": "Cambiando de marcha", - "advancement.create.shifting_gears.desc": "Conecta un engranaje grande a uno pequeño, lo que te permitirá cambiar la velocidad de tu artilugio.", - "advancement.create.overstressed": "Sobrecargado", - "advancement.create.overstressed.desc": "Experimenta los límites del estrés.", - "advancement.create.belt": "Paseo de algas", - "advancement.create.belt.desc": "Conectar dos ejes con una correa.", - "advancement.create.tunnel": "¡Cúbrete!", - "advancement.create.tunnel.desc": "Embellece tu correa con un túnel.", - "advancement.create.splitter_tunnel": "Divide y vencerás", - "advancement.create.splitter_tunnel.desc": "Crear un divisor con un grupo de túneles de latón.", - "advancement.create.chute": "Caída en picado", - "advancement.create.chute.desc": "Coloque un ducto, la contrapartida vertical de la cinta.", - "advancement.create.upward_chute": "Abducción aérea", - "advancement.create.upward_chute.desc": "Observe cómo un objeto lanzado vuela dentro de un ducto impulsado por un ventilador.", - "advancement.create.belt_funnel": "Colgantes con forma de embudo", - "advancement.create.belt_funnel.desc": "Coloca un embudo lateral encima de una cinta o depósito para crear un tipo especial.", - "advancement.create.belt_funnel_kiss": "Los loros y las aletas", - "advancement.create.belt_funnel_kiss.desc": "Haz besar dos embudos montados con una cinta.", - "advancement.create.fan": "Maestro mecánico del aire", - "advancement.create.fan.desc": "Monta la corriente de aire proporcionada por un ventilador revestido.", - "advancement.create.fan_lava": "Calentador geotérmico", - "advancement.create.fan_lava.desc": "Queda atrapado en una corriente de aire que funde las cosas.", - "advancement.create.fan_water": "Lavado de la ropa", - "advancement.create.fan_water.desc": "Queda atrapado en una corriente de aire que lava las cosas.", - "advancement.create.fan_smoke": "Fuelle mecánico", - "advancement.create.fan_smoke.desc": "Queda atrapado en una corriente de aire que humea los objetos.", - "advancement.create.wrench": "Configurar convenientemente", - "advancement.create.wrench.desc": "Crea una llave inglesa para ayudarte a construir tus artilugios.", - "advancement.create.goggles": "Estresóvisión", - "advancement.create.goggles.desc": "Crea unas gafas del constructor para ayudarte a obtener más información cinética de los componentes.", - "advancement.create.speedometer": "Pero, ¿con qué rapidez exactamente?", - "advancement.create.speedometer.desc": "Coloca y alimenta un velocímetro. Míralo a través de las gafas para leer su valor exacto.", - "advancement.create.stressometer": "Pero, ¿cuán estresado exactamente??", - "advancement.create.stressometer.desc": "Coloca y alimenta un estresómetro. Míralo a través de las gafas para leer su valor exacto.", - "advancement.create.aesthetics": "Boom, ¡Estética!", - "advancement.create.aesthetics.desc": "Coloca soportes en ejes, ductos y engranajes.", - "advancement.create.reinforced": "Boom, ¡Reforzado!", - "advancement.create.reinforced.desc": "Utiliza bloques de revestimiento en un eje, un ducto y una cinta.", - "advancement.create.water_wheel": "Aprovechar la hidráulica", - "advancement.create.water_wheel.desc": "Coloca una rueda hidráulica e intenta hacerla girar.", - "advancement.create.chocolate_wheel": "Potencia de buen gusto", - "advancement.create.chocolate_wheel.desc": "Haz funcionar una rueda de agua con chocolate fundido.", - "advancement.create.lava_wheel": "Rueda de magma", - "advancement.create.lava_wheel.desc": "Esto no debió haber funcionado.", - "advancement.create.cuckoo": "¿Es el momento?", - "advancement.create.cuckoo.desc": "Presencia cómo un reloj de cuco anuncia la hora de acostarse.", - "advancement.create.millstone": "Triturador de bolsillo", - "advancement.create.millstone.desc": "Coloca y alimenta una piedra de molino.", - "advancement.create.windmill": "Una suave brisa", - "advancement.create.windmill.desc": "Monta un molino de viento.", - "advancement.create.maxed_windmill": "Una fuerte brisa", - "advancement.create.maxed_windmill.desc": "Monta un molino de viento con máxima intensidad.", - "advancement.create.andesite_casing": "La edad de la andesita", - "advancement.create.andesite_casing.desc": "Utiliza un poco de aleación de andesita y madera para crear un revestimiento básico.", - "advancement.create.mechanical_drill": "Interruptores fijos", - "advancement.create.mechanical_drill.desc": "Coloca y alimenta un taladro mecánico.", - "advancement.create.press": "¡La prensa se pone en marcha!", - "advancement.create.press.desc": "Activa una prensa mecánica y utilízala para crear algunas láminas.", - "advancement.create.polished_rose_quartz": "Diamantes rosas", - "advancement.create.polished_rose_quartz.desc": "Utiliza un trozo de papel de lija para pulir el cuarzo rosa hasta que se vuelva transparente.", - "advancement.create.electron_tube": "Beep Boop", - "advancement.create.electron_tube.desc": "Haz algunos tubos de electrones, útiles en la fabricación de maquinaria menos primitiva.", - "advancement.create.mechanical_saw": "Picado estacionario", - "advancement.create.mechanical_saw.desc": "Coloca y alimenta una sierra mecánica.", - "advancement.create.basin": "Funcionamiento de la cuenca", - "advancement.create.basin.desc": "Coloca una cuenca e intenta arrojar objetos en ella.", - "advancement.create.mixer": "Mezcla de colores", - "advancement.create.mixer.desc": "Coloca una batidora mecánica sobre el lavabo, enciéndala y empiece a mezclar algunos ingredientes.", - "advancement.create.blaze_burner": "Una chimenea viva", - "advancement.create.blaze_burner.desc": "Obtiene un quemador de blaze.", - "advancement.create.compact": "Compactación automática", - "advancement.create.compact.desc": "Utiliza una prensa y una cuenca para compactar algunos objetos.", - "advancement.create.brass": "Aleaciones reales", - "advancement.create.brass.desc": "Utiliza cobre molido y zinc molido para crear algo de latón.", - "advancement.create.brass_casing": "La Edad de Latón", - "advancement.create.brass_casing.desc": "Utiliza el latón recién obtenido y algo de madera para crear un revestimiento más avanzado.", - "advancement.create.copper_casing": "La Edad de Cobre", - "advancement.create.copper_casing.desc": "Utiliza algunas láminas de cobre y madera para crear algunos revestimientos de cobre.", - "advancement.create.spout": "Sploosh", - "advancement.create.spout.desc": "Observa el llenado de un fluido usando una boquilla.", - "advancement.create.spout_potion": "Cervecera global", - "advancement.create.spout_potion.desc": "Mira cómo un pico llena una botella con líquido de poción.", - "advancement.create.chocolate": "Un mundo de imaginación", - "advancement.create.chocolate.desc": "Obtiene un cubo con chocolate fundido.", - "advancement.create.item_drain": "Drenaje de la ropa", - "advancement.create.item_drain.desc": "Ve cómo se vacía un fluido mediante un drenador de objetos.", - "advancement.create.chained_item_drain": "¡Déjalo rodar!", - "advancement.create.chained_item_drain.desc": "Observa cómo un objeto rueda por varios drenadores de objetos encadenados.", - "advancement.create.glass_pipe": "Espía del flujo", - "advancement.create.glass_pipe.desc": "Observa cómo se propaga el fluido a través de un tubo de fluidos con ventanas. Los tubos de fluido rectos se convierten en ventanas cuando se utiliza una llave inglesa en ellas.", - "advancement.create.pipe_collision": "No cruzar nunca los arroyos", - "advancement.create.pipe_collision.desc": "Vea cómo se unen dos fluidos en su red de tuberías.", - "advancement.create.pipe_spill": "¡Hay una fuga!", - "advancement.create.pipe_spill.desc": "Observe cómo un extremo abierto de una tubería toma o deposita fluidos en el mundo.", - "advancement.create.hose_pulley": "Vertidos industriales", - "advancement.create.hose_pulley.desc": "Baja una polea de manguera y ve cómo se vacía o se llena un cuerpo de líquido.", - "advancement.create.infinite_water": "Drenando el océano", - "advancement.create.infinite_water.desc": "Bombea de una masa de agua lo suficientemente grande como para ser considerada infinita.", - "advancement.create.infinite_lava": "Drenaje del núcleo de los planetas", - "advancement.create.infinite_lava.desc": "Bombea de una masa de lava lo suficientemente grande como para ser considerada infinita.", - "advancement.create.infinite_chocolate": "Ahogándose en la imaginación", - "advancement.create.infinite_chocolate.desc": "Bombea desde una masa de chocolate fundido lo suficientemente grande como para ser considerado infinito.", - "advancement.create.crafter": "Montaje automatizado", - "advancement.create.crafter.desc": "Coloca y alimenta algunos ensambladores.", - "advancement.create.clockwork_bearing": "Artilugio a la hora", - "advancement.create.clockwork_bearing.desc": "Ensamblar una estructura montada sobre un rodamiento tipo reloj.", - "advancement.create.nixie_tube": "Signos de estilo", - "advancement.create.nixie_tube.desc": "Obtener y colocar un par de tubos nixie.", - "advancement.create.deployer": "Picar, colocar y atacar", - "advancement.create.deployer.desc": "Coloca y potencia un desplegador, el reflejo perfecto de ti mismo.", - "advancement.create.speed_controller": "Los ingenieros lo odian!", - "advancement.create.speed_controller.desc": "Coloca un controlador de velocidad rotacional, el dispositivo definitivo para cambiar de marcha.", - "advancement.create.flywheel": "El corazón de la fábrica", - "advancement.create.flywheel.desc": "Conecta con éxito un motor a la rueda de inercia.", - "advancement.create.overstress_flywheel": "Altos niveles de estrés", - "advancement.create.overstress_flywheel.desc": "Sobrecarga un motor de horno.", - "advancement.create.precision_mechanism": "Curiosidades complejas", - "advancement.create.precision_mechanism.desc": "Monta un mecanismo de precisión.", - "advancement.create.mechanical_arm": "¡Manos ocupadas!", - "advancement.create.mechanical_arm.desc": "Crea un brazo mecánico, selecciona las entradas y salidas, colócalo en el suelo y dale energía; luego observa cómo hace todo el trabajo por ti.", - "advancement.create.musical_arm": "¡Tócame la melodía!", - "advancement.create.musical_arm.desc": "Vea cómo un brazo mecánico maneja su tocadiscos.", - "advancement.create.arm_many_targets": "Organize-o-Tron", - "advancement.create.arm_many_targets.desc": "Programa un brazo mecánico con diez o más posiciones de salida.", - "advancement.create.arm_blaze_burner": "Combust-o-Tron", - "advancement.create.arm_blaze_burner.desc": "Instruya un brazo mecánico para alimentar su quemador de blaze.", - "advancement.create.fist_bump": "¡Pégale, hermano!", - "advancement.create.fist_bump.desc": "Haz que dos desplegadores se den un puñetazo.", - "advancement.create.crushing_wheel": "Un par de gigantes", - "advancement.create.crushing_wheel.desc": "Crea algunas ruedas de trituración para descomponer más materiales de forma más eficaz.", - "advancement.create.blaze_cake": "Fiebre del azúcar", - "advancement.create.blaze_cake.desc": "Hornea en tu quemador de blaze un pastel especial.", - "advancement.create.chromatic_compound": "Minerales misteriosos", - "advancement.create.chromatic_compound.desc": "Crea una barra de compuesto cromático.", - "advancement.create.shadow_steel": "Retorno del vacío", - "advancement.create.shadow_steel.desc": "Crea acero sombrío, una barra de metal de la nada.", - "advancement.create.refined_radiance": "Brillante e inspirador", - "advancement.create.refined_radiance.desc": "Crea un resplandor refinado, una poderosa sustancia cromática.", - "advancement.create.chromatic_age": "La edad cromática", - "advancement.create.chromatic_age.desc": "Crear bloques de revestimiento de la luz y la oscuridad.", - "advancement.create.wand_of_symmetry": "Espejos radiantes", - "advancement.create.wand_of_symmetry.desc": "Crear un bastón de simetría.", - "advancement.create.extendo_grip": "¡Boioioing!", - "advancement.create.extendo_grip.desc": "Hazte con un agarre extentido.", - "advancement.create.potato_cannon": "Fwoomp!", - "advancement.create.potato_cannon.desc": "Derrota a un enemigo con tu cañón de patatas.", - "advancement.create.dual_extendo_grip": "La última edad del boing", - "advancement.create.dual_extendo_grip.desc": "Doble empuñadura extendida para un alcance sobrehumano.", - "advancement.create.eob": "Fin de la beta", - "advancement.create.eob.desc": "Espere más contenido aquí en el futuro. <3", - - - "_": "->------------------------] UI & Messages [------------------------<-", - - "itemGroup.create.base": "Create", - "itemGroup.create.palettes": "Paletas", - - "death.attack.create.crush": "%1$s se procesó en las ruedas de trituración", - "death.attack.create.crush.player": "%1$s fue arrojado a las ruedas de trituración por %2$s", - "death.attack.create.fan_fire": "%1$s murió quemado por el aire caliente", - "death.attack.create.fan_fire.player": "%1$s fue arrojado a un ahumador por %2$s", - "death.attack.create.fan_lava": "%1$s murió quemado por un abanico de lava", - "death.attack.create.fan_lava.player": "%1$s fue arrojado a una fundición por %2$s", - "death.attack.create.mechanical_drill": "%1$s fue empalado por un taladro mecánico", - "death.attack.create.mechanical_drill.player": "%1$s fue lanzado frente a un taladro por %2$s", - "death.attack.create.mechanical_saw": "%1$s fue cortado por la mitad por una sierra mecánica", - "death.attack.create.mechanical_saw.player": "%1$s fue arrojado a una sierra por %2$s", - "death.attack.create.potato_cannon": "%1$s fue disparado por el cañón de patatas de %2$s's", - "death.attack.create.potato_cannon.item": "%1$s fue disparado por %2$s utilizando %3$s", - "death.attack.create.cuckoo_clock_explosion": "%1$s fue volado por los aires por un reloj de cuco manipulado", - "death.attack.create.cuckoo_clock_explosion.player": "%1$s fue volado por un reloj de cuco manipulado", - - "create.block.deployer.damage_source_name": "Un desplegador rebelde", - "create.block.cart_assembler.invalid": "Coloque su Ensamblador de vagonetas en un bloque de Raíles", - - "create.menu.return": "Regresar al menú", - "create.menu.configure": "Configurar...", - "create.menu.ponder_index": "Índice", - "create.menu.only_ingame": "Disponible en el menú de pausa", - "create.menu.project_page": "Página del proyecto", - "create.menu.report_bugs": "Reportar problemas", - "create.menu.support": "Apóyenos", - - "create.recipe.crushing": "Trituración", - "create.recipe.milling": "Fresado", - "create.recipe.fan_washing": "Lavado a granel", - "create.recipe.fan_washing.fan": "Ventilador detrás del agua fluyente", - "create.recipe.fan_smoking": "Ahumador a granel", - "create.recipe.fan_smoking.fan": "Ventilador detrás del fuego", - "create.recipe.fan_blasting": "Voladuras a granel", - "create.recipe.fan_blasting.fan": "Ventilador detrás de la lava", - "create.recipe.pressing": "Prensando", - "create.recipe.mixing": "Mezclando", - "create.recipe.deploying": "Desplegando", - "create.recipe.automatic_shapeless": "Elaboración automatizada de productos sin forma", - "create.recipe.automatic_brewing": "Elaboración de cerveza automatizada", - "create.recipe.packing": "Compactando", - "create.recipe.automatic_packing": "Embalaje automatizado", - "create.recipe.sawing": "Aserrando", - "create.recipe.mechanical_crafting": "Elaboración mecánica", - "create.recipe.automatic_shaped": "Elaboración automatizada de productos con forma", - "create.recipe.block_cutting": "Corte de bloques", - "create.recipe.wood_cutting": "Corte de maderas", - "create.recipe.sandpaper_polishing": "Pulido con papel de lija", - "create.recipe.mystery_conversion": "Conversión misteriosa", - "create.recipe.spout_filling": "Llenar por el pico", - "create.recipe.draining": "Drenador de objetos", - "create.recipe.sequenced_assembly": "Montaje secuenciado", - "create.recipe.assembly.next": "Siguiente: %1$s", - "create.recipe.assembly.step": "Fase %1$s:", - "create.recipe.assembly.progress": "Progreso: %1$s/%2$s", - "create.recipe.assembly.pressing": "Proceso en prensa", - "create.recipe.assembly.spout_filling_fluid": "Pico %1$s", - "create.recipe.assembly.deploying_item": "Despliegue %1$s", - "create.recipe.assembly.cutting": "Corte con sierra", - "create.recipe.assembly.repeat": "Repetir la secuencia %1$s veces", - "create.recipe.assembly.junk": "Basura aleatoria", - "create.recipe.processing.chance": "%1$s%% Chance", - "create.recipe.heat_requirement.none": "No es necesario calentar", - "create.recipe.heat_requirement.heated": "Calentado", - "create.recipe.heat_requirement.superheated": "Súper-Calentado", - - "create.generic.range": "Rango", - "create.generic.radius": "Radio", - "create.generic.width": "Ancho", - "create.generic.height": "Alto", - "create.generic.length": "Largo", - "create.generic.speed": "Velocidad", - "create.generic.delay": "Retraso", - "create.generic.unit.ticks": "Ticks", - "create.generic.unit.seconds": "Segundos", - "create.generic.unit.minutes": "Minutos", - "create.generic.unit.rpm": "RPM", - "create.generic.unit.stress": "SU(unidades de estrés)", - "create.generic.unit.degrees": "°", - "create.generic.unit.millibuckets": "%1$smB", - "create.generic.clockwise": "En el sentido de las agujas del reloj", - "create.generic.counter_clockwise": "En sentido contrario a las agujas del reloj", - - "create.action.scroll": "Desplazar", - "create.action.confirm": "Confirmar", - "create.action.abort": "Abortar", - "create.action.saveToFile": "Guardar", - "create.action.discard": "Descartar", - - "create.keyinfo.toolmenu": "Menú de la Herramienta de Enfoque", - "create.keyinfo.scrollup": "Simular usar la rueda del ratón hacia arriba (en el mundo)", - "create.keyinfo.scrolldown": "Simular usar la rueda del ratón hacia abajo (en el mundo)", - - "create.gui.scrollInput.defaultTitle": "Seleccione una opción:", - "create.gui.scrollInput.scrollToModify": "Usa la rueda del ratón para modificar", - "create.gui.scrollInput.scrollToAdjustAmount": "Usa la rueda del ratón para ajustar la cantidad", - "create.gui.scrollInput.scrollToSelect": "Usa la rueda del ratón para seleccionar", - "create.gui.scrollInput.shiftScrollsFaster": "Mayús izdo para usar la rueda del ratón más rápido", - "create.gui.toolmenu.focusKey": "Mantén [%1$s] para enfocar", - "create.gui.toolmenu.cycle": "[RUEDA DEL RATÓN] para el ciclo", - "create.gui.symmetryWand.mirrorType": "Espejado", - "create.gui.symmetryWand.orientation": "Orientación", - - "create.symmetry.mirror.plane": "Plano de espejo", - "create.symmetry.mirror.doublePlane": "Rectangular", - "create.symmetry.mirror.triplePlane": "Octogonal", - - "create.orientation.orthogonal": "Ortogonal", - "create.orientation.diagonal": "Diagonal", - "create.orientation.horizontal": "Horizontal", - "create.orientation.alongZ": "A lo largo de Z", - "create.orientation.alongX": "A lo largo de X", - - "create.gui.terrainzapper.title": "Blockzapper", - "create.gui.terrainzapper.searchDiagonal": "Seguir diagonales", - "create.gui.terrainzapper.searchFuzzy": "Ignorar los bordes del material", - "create.gui.terrainzapper.patternSection": "Patrón", - "create.gui.terrainzapper.pattern.solid": "Sólido", - "create.gui.terrainzapper.pattern.checkered": "Tablero de ajedrez", - "create.gui.terrainzapper.pattern.inversecheckered": "Tablero de ajedrez invertido", - "create.gui.terrainzapper.pattern.chance25": "25% Roll", - "create.gui.terrainzapper.pattern.chance50": "50% Roll", - "create.gui.terrainzapper.pattern.chance75": "75% Roll", - "create.gui.terrainzapper.placement": "Ubicación", - "create.gui.terrainzapper.placement.merged": "Fusionado", - "create.gui.terrainzapper.placement.attached": "Adjuntado", - "create.gui.terrainzapper.placement.inserted": "Insertado", - "create.gui.terrainzapper.brush": "Pincel", - "create.gui.terrainzapper.brush.cuboid": "Cuboide", - "create.gui.terrainzapper.brush.sphere": "Esfera", - "create.gui.terrainzapper.brush.cylinder": "Cilindro", - "create.gui.terrainzapper.brush.surface": "Superficie", - "create.gui.terrainzapper.brush.cluster": "Grupo", - "create.gui.terrainzapper.tool": "Herramienta", - "create.gui.terrainzapper.tool.fill": "Llenar", - "create.gui.terrainzapper.tool.place": "Ubicar", - "create.gui.terrainzapper.tool.replace": "Reemplazar", - "create.gui.terrainzapper.tool.clear": "Eliminar", - "create.gui.terrainzapper.tool.overlay": "Superponer", - "create.gui.terrainzapper.tool.flatten": "Aplanar", - - "create.terrainzapper.shiftRightClickToSet": "Mayús izdo + clic derecho para seleccionar una forma", - "create.terrainzapper.usingBlock": "Usando: %1$s", - "create.terrainzapper.leftClickToSet": "Clic izquierdo a un bloque para establecer el material", - - "create.minecart_coupling.two_couplings_max": "Las vagonetas no pueden tener más de dos enganches cada una", - "create.minecart_coupling.unloaded": "Algunas partes de su tren parecen estar en chunks no cargados", - "create.minecart_coupling.no_loops": "Los acoplamientos no pueden formar un bucle", - "create.minecart_coupling.removed": "Se han retirado todos los acoplamientos de la vagoneta", - "create.minecart_coupling.too_far": "Las vagonetas están demasiado separadas", - - "create.contraptions.movement_mode": "Modo de movimiento", - "create.contraptions.movement_mode.move_place": "Colocar siempre al detenerse", - "create.contraptions.movement_mode.move_place_returned": "Colocar sólo en la posición inicial", - "create.contraptions.movement_mode.move_never_place": "Colocar sólo cuando se destruye el ancla", - "create.contraptions.movement_mode.rotate_place": "Colocar siempre al detenerse", - "create.contraptions.movement_mode.rotate_place_returned": "Colocar sólo cerca del ángulo inicial", - "create.contraptions.movement_mode.rotate_never_place": "Colocar sólo cuando se destruye el ancla", - "create.contraptions.cart_movement_mode": "Modo de movimiento de la vagoneta", - "create.contraptions.cart_movement_mode.rotate": "Siempre de cara al movimiento", - "create.contraptions.cart_movement_mode.rotate_paused": "Pausar a los actores mientras giran", - "create.contraptions.cart_movement_mode.rotation_locked": "Bloquear rotación", - "create.contraptions.windmill.rotation_direction": "Dirección de rotación", - "create.contraptions.clockwork.clock_hands": "Manecillas de reloj", - "create.contraptions.clockwork.hour_first": "La manecilla de las horas primero", - "create.contraptions.clockwork.minute_first": "La manecilla de los minutos primero", - "create.contraptions.clockwork.hour_first_24": "La manecilla del día primero", - - "create.logistics.filter": "Filtro", - "create.logistics.recipe_filter": "Filtro para recetas", - "create.logistics.fluid_filter": "Filtro para fluidos", - "create.logistics.firstFrequency": "Freq. #1", - "create.logistics.secondFrequency": "Freq. #2", - "create.logistics.filter.apply": "Filtro aplicado a %1$s.", - "create.logistics.filter.apply_click_again": "Filtro aplicado a %1$s, haga clic de nuevo para copiar la cantidad.", - "create.logistics.filter.apply_count": "Aplicado recuento de extracciones al filtro.", - - "create.gui.goggles.generator_stats": "Estadísticas del generador:", - "create.gui.goggles.kinetic_stats": "Estadísticas cinéticas:", - "create.gui.goggles.at_current_speed": "con la velocidad actual", - "create.gui.goggles.pole_length": "Longitud del poste:", - "create.gui.goggles.fluid_container": "Información sobre el contenedor de fluidos:", - "create.gui.goggles.fluid_container.capacity": "Capacidad: ", - "create.gui.assembly.exception": "Este artilugio no se pudo montar:", - "create.gui.assembly.exception.unmovableBlock": "Bloque inamovible (%4$s) en [%1$s,%2$s,%3$s]", - "create.gui.assembly.exception.chunkNotLoaded": "El bloque en [%1$s,%2$s,%3$s] no estaba en un chunk cargado", - "create.gui.assembly.exception.structureTooLarge": "Hay demasiados bloques incluídos en el artilugio.\nEl máximo configurado es: %1$s", - "create.gui.assembly.exception.tooManyPistonPoles": "Hay demasiadas Pértigas de extensión conectadas a este Pistón.\nEl máximo configurado es: %1$s", - "create.gui.assembly.exception.noPistonPoles": "Faltan pértigas de extensión para el pistón", - "create.gui.assembly.exception.not_enough_sails": "La estructura adjunta no incluye suficientes bloques tipo vela: %1$s\nSe requiere un mínimo de %2$s", - "create.gui.gauge.info_header": "Información sobre el medidor:", - "create.gui.speedometer.title": "Velocidad de rotación", - "create.gui.stressometer.title": "Estrés de la red", - "create.gui.stressometer.capacity": "Capacidad restante", - "create.gui.stressometer.overstressed": "Sobrecargado", - "create.gui.stressometer.no_rotation": "Sin rotación", - "create.gui.contraptions.not_fast_enough": "Parece que este %1$s no está girando con _suficiente_ velocidad_.", - "create.gui.contraptions.network_overstressed": "Parece que este artilugio está _sobrecargado_. Añade más fuentes o _desacelera_ los componentes con un _impacto de estrés alto_.", - "create.gui.adjustable_crate.title": "Caja ajustable", - "create.gui.adjustable_crate.storageSpace": "Espacio de almacenamiento", - "create.gui.stockpile_switch.title": "Interruptor de acopio", - "create.gui.stockpile_switch.invert_signal": "Invertir señal", - "create.gui.stockpile_switch.move_to_lower_at": "Pasar al carril inferior en %1$s%%", - "create.gui.stockpile_switch.move_to_upper_at": "Pasar al carril superior en %1$s%%", - "create.gui.sequenced_gearshift.title": "Cambio de marchas secuenciado", - "create.gui.sequenced_gearshift.instruction": "Instrucción", - "create.gui.sequenced_gearshift.instruction.turn_angle.descriptive": "Giro por ángulo", - "create.gui.sequenced_gearshift.instruction.turn_angle": "Giro", - "create.gui.sequenced_gearshift.instruction.turn_angle.angle": "Ángulo", - "create.gui.sequenced_gearshift.instruction.turn_distance.descriptive": "Giro para mover el pistón/polea/grúa", - "create.gui.sequenced_gearshift.instruction.turn_distance": "Pistón", - "create.gui.sequenced_gearshift.instruction.turn_distance.distance": "Distancia", - "create.gui.sequenced_gearshift.instruction.delay.descriptive": "Tiempo de retraso", - "create.gui.sequenced_gearshift.instruction.delay": "Retraso", - "create.gui.sequenced_gearshift.instruction.delay.duration": "Duración", - "create.gui.sequenced_gearshift.instruction.end.descriptive": "Fin", - "create.gui.sequenced_gearshift.instruction.end": "Fin", - "create.gui.sequenced_gearshift.instruction.await.descriptive": "En espera de un pulso de redstone", - "create.gui.sequenced_gearshift.instruction.await": "En espera", - "create.gui.sequenced_gearshift.speed": "Velocidad, Dirección", - "create.gui.sequenced_gearshift.speed.forward": "Velocidad de entrada, hacia adelante", - "create.gui.sequenced_gearshift.speed.forward_fast": "Doble velocidad, hacia adelante", - "create.gui.sequenced_gearshift.speed.back": "Velocidad de entrada, Invertida", - "create.gui.sequenced_gearshift.speed.back_fast": "Doble velocidad, Invertida", - - "create.schematicAndQuill.dimensions": "Tamaño del esquema: %1$sx%2$sx%3$s", - "create.schematicAndQuill.firstPos": "Primera posición fijada.", - "create.schematicAndQuill.secondPos": "Segunda posición fijada.", - "create.schematicAndQuill.noTarget": "Mantén [Ctrl] para seleccionar los bloques del aire.", - "create.schematicAndQuill.abort": "Selección eliminada.", - "create.schematicAndQuill.title": "Nombre del esquema:", - "create.schematicAndQuill.convert": "Guardar y desplegar inmediatamente", - "create.schematicAndQuill.fallbackName": "Mi esquema", - "create.schematicAndQuill.saved": "Guardado como %1$s", - - "create.schematic.invalid": "[!] Elemento no válido - Utilice la tabla de esquemas en su lugar", - "create.schematic.position": "Posición", - "create.schematic.rotation": "Rotación", - "create.schematic.rotation.none": "Ninguno", - "create.schematic.rotation.cw90": "En el sentido de las agujas del reloj 90", - "create.schematic.rotation.cw180": "En el sentido de las agujas del reloj 180", - "create.schematic.rotation.cw270": "En el sentido de las agujas del reloj 270", - "create.schematic.mirror": "Espejado", - "create.schematic.mirror.none": "Ninguno", - "create.schematic.mirror.frontBack": "Delante-Detrás", - "create.schematic.mirror.leftRight": "Izquierda-Derecha", - "create.schematic.tool.deploy": "Despliegue", - "create.schematic.tool.move": "Mover XZ", - "create.schematic.tool.movey": "Mover Y", - "create.schematic.tool.rotate": "Rotar", - "create.schematic.tool.print": "Imprimir", - "create.schematic.tool.flip": "Voltear", - "create.schematic.tool.deploy.description.0": "Mueve la estructura a un lugar.", - "create.schematic.tool.deploy.description.1": "Haz clic con el botón derecho del ratón en el suelo para colocarla.", - "create.schematic.tool.deploy.description.2": "Mantén [Ctrl] para seleccionar a una distancia fija.", - "create.schematic.tool.deploy.description.3": "[Ctrl] + [RUEDA DEL RATÓN] para cambiar la distancia.", - "create.schematic.tool.move.description.0": "Desplaza el esquema horizontalmente.", - "create.schematic.tool.move.description.1": "Apunta al esquema y [Ctrl] + [RUEDA DEL RATÓN] para ponerlo.", - "create.schematic.tool.move.description.2": "", - "create.schematic.tool.move.description.3": "", - "create.schematic.tool.movey.description.0": "Desplaza el esquema verticalmente..", - "create.schematic.tool.movey.description.1": "[Ctrl] + [RUEDA DEL RATÓN] para moverlo hacia arriba/abajo.", - "create.schematic.tool.movey.description.2": "", - "create.schematic.tool.movey.description.3": "", - "create.schematic.tool.rotate.description.0": "Gira el esquema alrededor de su centro.", - "create.schematic.tool.rotate.description.1": "[Ctrl] + [RUEDA DEL RATÓN] para girar 90 grados.", - "create.schematic.tool.rotate.description.2": "", - "create.schematic.tool.rotate.description.3": "", - "create.schematic.tool.print.description.0": "Sitúa instantáneamente la estructura en el mundo.", - "create.schematic.tool.print.description.1": "[Clic derecho] para confirmar la colocación en el lugar actual.", - "create.schematic.tool.print.description.2": "Esta herramienta es sólo para el Modo Creativo.", - "create.schematic.tool.print.description.3": "", - "create.schematic.tool.flip.description.0": "Voltea el esquema a lo largo de la cara que seleccione.", - "create.schematic.tool.flip.description.1": "Apunta al esquema y [Ctrl] + [RUEDA DEL RATÓN] para voltearlo.", - "create.schematic.tool.flip.description.2": "", - "create.schematic.tool.flip.description.3": "", - - "create.schematics.synchronizing": "Sincronizando...", - "create.schematics.uploadTooLarge": "Tu esquema excede las limitaciones especificadas por el servidor.", - "create.schematics.maxAllowedSize": "El tamaño máximo permitido del archivo del esquema es:", - - "create.gui.schematicTable.refresh": "Refrescar archivos", - "create.gui.schematicTable.open_folder": "Abrir carpeta", - "create.gui.schematicTable.title": "Tabla de esquemas", - "create.gui.schematicTable.availableSchematics": "Esquemas disponibles", - "create.gui.schematicTable.noSchematics": "No hay esquemas guardados", - "create.gui.schematicTable.uploading": "Subiendo...", - "create.gui.schematicTable.finished": "¡Subida finalizada!", - "create.gui.schematicannon.title": "Cañón de esquemas", - "create.gui.schematicannon.listPrinter": "Lista de control de la impresora", - "create.gui.schematicannon.gunpowderLevel": "Pólvora %1$s%%", - "create.gui.schematicannon.shotsRemaining": "Disparos restantes: %1$s", - "create.gui.schematicannon.shotsRemainingWithBackup": "Con respaldo: %1$s", - "create.gui.schematicannon.optionEnabled": "Actualmente habilitado", - "create.gui.schematicannon.optionDisabled": "Actualmente deshabilitado", - "create.gui.schematicannon.showOptions": "Mostrar la configuración de la impresora", - "create.gui.schematicannon.option.dontReplaceSolid": "No sustituír los bloques sólidos", - "create.gui.schematicannon.option.replaceWithSolid": "Sustituir sólido por sólido", - "create.gui.schematicannon.option.replaceWithAny": "Sustituir sólido por cualquiera", - "create.gui.schematicannon.option.replaceWithEmpty": "Sustituir sólido por vacío", - "create.gui.schematicannon.option.skipMissing": "Omitir los bloques que faltan", - "create.gui.schematicannon.option.skipTileEntities": "Proteger a las entidades", - "create.gui.schematicannon.slot.gunpowder": "Añade pólvora para alimentar el cañón", - "create.gui.schematicannon.slot.listPrinter": "Coloque los libros aquí para imprimir una lista de comprobación para su esquema", - "create.gui.schematicannon.slot.schematic": "Añada su esquema aquí. Asegúrese de que se despliega en un lugar específico.", - "create.gui.schematicannon.option.skipMissing.description": "Si el cañón no encuentra un bloque necesario para su colocación, continuará en la siguiente ubicación.", - "create.gui.schematicannon.option.skipTileEntities.description": "El cañón evitará reemplazar los bloques que contienen datos, como los cofres.", - "create.gui.schematicannon.option.dontReplaceSolid.description": "El cañón nunca sustituirá ningún bloque sólido en su zona de trabajo, sólo los no sólidos y el aire.", - "create.gui.schematicannon.option.replaceWithSolid.description": "El cañón sólo reemplazará los bloques sólidos en su área de trabajo si el esquema contiene un bloque sólido en la ubicación.", - "create.gui.schematicannon.option.replaceWithAny.description": "El cañón reemplazará los bloques sólidos en su área de trabajo si el esquema contiene algún bloque en la ubicación.", - "create.gui.schematicannon.option.replaceWithEmpty.description": "El cañón eliminará todos los bloques de su zona de trabajo, incluidos los sustituidos por aire.", - - "create.schematicannon.status.idle": "Inactivo", - "create.schematicannon.status.ready": "Listo", - "create.schematicannon.status.running": "Funcionando", - "create.schematicannon.status.finished": "Finalizado", - "create.schematicannon.status.paused": "Pausado", - "create.schematicannon.status.stopped": "Detenido", - "create.schematicannon.status.noGunpowder": "Sin pólvora", - "create.schematicannon.status.targetNotLoaded": "El objetivo no está cargado", - "create.schematicannon.status.targetOutsideRange": "Objetivo demasiado lejano", - "create.schematicannon.status.searching": "Buscando", - "create.schematicannon.status.skipping": "Omitiendo", - "create.schematicannon.status.missingBlock": "Elementos perdidos:", - "create.schematicannon.status.placing": "Colocando", - "create.schematicannon.status.clearing": "Limpiando bloques", - "create.schematicannon.status.schematicInvalid": "Esquema inválido", - "create.schematicannon.status.schematicNotPlaced": "Esquema no desplegado", - "create.schematicannon.status.schematicExpired": "Archivo de esquemas caducado", - - "create.materialChecklist": "Lista de control del material", - "create.materialChecklist.blocksNotLoaded": "* Descargo de Responsabilidad *\n\nLa lista de materiales puede ser inexacta debido a que no se han cargado los chunks pertinentes.", - - "create.gui.filter.deny_list": "Lista de denegados", - "create.gui.filter.deny_list.description": "Los objetos pasan si NO coinciden con ninguno de los anteriores. Una lista de denegación vacía acepta todo.", - "create.gui.filter.allow_list": "Lista de permitidos", - "create.gui.filter.allow_list.description": "Los objetos pasan si coinciden con alguno de los anteriores. Una lista de permitidos vacía rechaza todo.", - "create.gui.filter.respect_data": "Respetar datos", - "create.gui.filter.respect_data.description": "Los objetos sólo coinciden si su durabilidad, encantos y otros atributos también coinciden.", - "create.gui.filter.ignore_data": "Ignorar datos", - "create.gui.filter.ignore_data.description": "Los artículos coinciden independientemente de sus atributos.", - - "create.item_attributes.placeable": "se puede colocar", - "create.item_attributes.placeable.inverted": "no se puede colocar", - "create.item_attributes.consumable": "se puede comer", - "create.item_attributes.consumable.inverted": "no se puede comer", - "create.item_attributes.smeltable": "se puede fundir", - "create.item_attributes.smeltable.inverted": "no se puede fundir", - "create.item_attributes.washable": "se puede lavar", - "create.item_attributes.washable.inverted": "no se puede lavar", - "create.item_attributes.smokable": "puede ser ahumado", - "create.item_attributes.smokable.inverted": "no puede ser ahumado", - "create.item_attributes.crushable": "puede ser molido", - "create.item_attributes.crushable.inverted": "no puede ser molido", - "create.item_attributes.blastable": "es fundible en el alto horno", - "create.item_attributes.blastable.inverted": "no es fundible en el alto horno", - "create.item_attributes.enchanted": "está encantado", - "create.item_attributes.enchanted.inverted": "no está encantado", - "create.item_attributes.damaged": "está dañado", - "create.item_attributes.damaged.inverted": "no está dañado", - "create.item_attributes.badly_damaged": "está muy dañado", - "create.item_attributes.badly_damaged.inverted": "no está muy dañado", - "create.item_attributes.not_stackable": "no se puede apilar", - "create.item_attributes.not_stackable.inverted": "se puede apilar", - "create.item_attributes.equipable": "se puede equipar", - "create.item_attributes.equipable.inverted": "no se puede equipar", - "create.item_attributes.furnace_fuel": "es combustible para hornos", - "create.item_attributes.furnace_fuel.inverted": "no es combustible para hornos", - "create.item_attributes.in_tag": "está etiquetado %1$s", - "create.item_attributes.in_tag.inverted": "no está etiquetado %1$s", - "create.item_attributes.in_item_group": "está en el grupo '%1$s'", - "create.item_attributes.in_item_group.inverted": "no está en el grupo '%1$s'", - "create.item_attributes.added_by": "fue añadido por %1$s", - "create.item_attributes.added_by.inverted": "no fue añadida por %1$s", - "create.item_attributes.shulker_level": "es shulker %1$s", - "create.item_attributes.shulker_level.inverted": "no es shulker %1$s", - "create.item_attributes.shulker_level.full": "lleno", - "create.item_attributes.shulker_level.empty": "vacío", - "create.item_attributes.shulker_level.partial": "parcialmente lleno", - "create.item_attributes.has_enchant": "está encantado con %1$s", - "create.item_attributes.has_enchant.inverted": "no está encantado con %1$s", - "create.item_attributes.color": "Está teñido %1$s", - "create.item_attributes.color.inverted": "No está teñido %1$s", - "create.item_attributes.max_enchanted": "está encantado en el nivel máximo", - "create.item_attributes.max_enchanted.inverted": "no está encantado en el nivel máximo", - "create.item_attributes.has_fluid": "contiene %1$s", - "create.item_attributes.has_fluid.inverted": "no contiene %1$s", - "create.item_attributes.has_name": "tiene el nombre personalizado %1$s", - "create.item_attributes.has_name.inverted": "no tiene el nombre personalizado %1$s", - "create.item_attributes.book_author": "es obra de %1$s", - "create.item_attributes.book_author.inverted": "no es es obra de %1$s", - "create.item_attributes.book_copy_original": "es un original", - "create.item_attributes.book_copy_original.inverted": "no es un original", - "create.item_attributes.book_copy_first": "es una copia de primera generación", - "create.item_attributes.book_copy_first.inverted": "no es una copia de primera generación", - "create.item_attributes.book_copy_second": "es una copia de segunda generación", - "create.item_attributes.book_copy_second.inverted": "no es una copia de segunda generación", - "create.item_attributes.book_copy_tattered": "es un desordenado desastre", - "create.item_attributes.book_copy_tattered.inverted": "no es un desordenado desastre", - "create.item_attributes.astralsorcery_crystal": "tiene el atributo de cristal %1$s", - "create.item_attributes.astralsorcery_crystal.inverted": "no tiene atributo de cristal %1$s", - "create.item_attributes.astralsorcery_constellation": "está en sintonía con %1$s", - "create.item_attributes.astralsorcery_constellation.inverted": "no está en sintonía con %1$s", - "create.item_attributes.astralsorcery_perk_gem": "tiene el atributo ventaja %1$s", - "create.item_attributes.astralsorcery_perk_gem.inverted": "no tiene el atributo ventaja %1$s", - "create.item_attributes.astralsorcery_amulet": "mejora %1$s", - "create.item_attributes.astralsorcery_amulet.inverted": "no mejora %1$s", - - "create.gui.attribute_filter.no_selected_attributes": "No hay atributos seleccionados", - "create.gui.attribute_filter.selected_attributes": "Atributos seleccionados:", - "create.gui.attribute_filter.add_attribute": "Añadir atributo a la lista", - "create.gui.attribute_filter.add_inverted_attribute": "Añadir atributo invertido a la Lista", - "create.gui.attribute_filter.allow_list_disjunctive": "Lista de permitidos (Cualquiera)", - "create.gui.attribute_filter.allow_list_disjunctive.description": "Los objetos pasan si tienen alguno de los atributos seleccionados", - "create.gui.attribute_filter.allow_list_conjunctive": "Lista de permitidos (Todos)", - "create.gui.attribute_filter.allow_list_conjunctive.description": "Los objetos pasan sólo si tienen TODOS los atributos seleccionados", - "create.gui.attribute_filter.deny_list": "Lista de denegados", - "create.gui.attribute_filter.deny_list.description": "Los objetos pasan si NO tienen ninguno de los atributos seleccionados", - "create.gui.attribute_filter.add_reference_item": "Añadir elemento de referencia", - - "create.tooltip.holdForDescription": "Mantén [%1$s] para mas información", - "create.tooltip.holdForControls": "Mantén [%1$s] para ver los controles", - "create.tooltip.keyShift": "Mayús izdo.", - "create.tooltip.keyCtrl": "Ctrl", - "create.tooltip.speedRequirement": "Requisitos de velocidad: %1$s", - "create.tooltip.speedRequirement.none": "Ninguno", - "create.tooltip.speedRequirement.medium": "Moderado", - "create.tooltip.speedRequirement.high": "Rápido", - "create.tooltip.stressImpact": "Impacto de estrés: %1$s", - "create.tooltip.stressImpact.low": "Bajo", - "create.tooltip.stressImpact.medium": "Moderado", - "create.tooltip.stressImpact.high": "Alto", - "create.tooltip.stressImpact.overstressed": "Sobrecargado", - "create.tooltip.capacityProvided": "Capacidad de estrés: %1$s", - "create.tooltip.capacityProvided.low": "Pequeña", - "create.tooltip.capacityProvided.medium": "Media", - "create.tooltip.capacityProvided.high": "Grande", - "create.tooltip.generationSpeed": "Generada en %1$s %2$s", - "create.tooltip.analogStrength": "Fuerza analógica: %1$s/15", - - "create.mechanical_arm.extract_from": "Extraer objetos de %1$s", - "create.mechanical_arm.deposit_to": "Depositar objetos en %1$s", - "create.mechanical_arm.summary": "El brazo mecánico tiene %1$s entrada(s) y %2$s salida(s)", - "create.mechanical_arm.points_outside_range": "%1$s punto(s) de interacción seleccionado(s) eliminado(s) debido a las limitaciones de rango", - - "create.weighted_ejector.target_set": "Objetivo seleccionado", - "create.weighted_ejector.target_not_valid": "Expulsión al bloque adyacente (el objetivo no era válido)", - "create.weighted_ejector.no_target": "Expulsión al bloque adyacente (no se ha seleccionado ningún objetivo)", - "create.weighted_ejector.targeting": "Expulsión a [%1$s,%2$s,%3$s]", - "create.weighted_ejector.stack_size": "Tamaño de la pila expulsada", - - "create.logistics.when_multiple_outputs_available": "Cuando hay múltiples salidas disponibles", - - "create.mechanical_arm.selection_mode.round_robin": "Round Robin", - "create.mechanical_arm.selection_mode.forced_round_robin": "Round Robin forzado", - "create.mechanical_arm.selection_mode.prefer_first": "Preferir el primero", - - "create.tunnel.selection_mode.split": "División", - "create.tunnel.selection_mode.forced_split": "División forzada", - "create.tunnel.selection_mode.round_robin": "Round Robin", - "create.tunnel.selection_mode.forced_round_robin": "Round Robin forzado", - "create.tunnel.selection_mode.prefer_nearest": "Preferir el más cercano", - "create.tunnel.selection_mode.randomize": "Aleatorizar", - "create.tunnel.selection_mode.synchronize": "Sincronizar entradas", - - "create.tooltip.chute.header": "Información del ducto", - "create.tooltip.chute.items_move_down": "Los objetos se mueven hacia abajo", - "create.tooltip.chute.items_move_up": "Los objetos se mueven hacia arriba", - "create.tooltip.chute.no_fans_attached": "No hay ventiladores adjuntos", - "create.tooltip.chute.fans_push_up": "Los ventiladores empujan desde abajo", - "create.tooltip.chute.fans_push_down": "Los ventiladores empujan desde arriba", - "create.tooltip.chute.fans_pull_up": "Los ventiladores tiran desde arriba", - "create.tooltip.chute.fans_pull_down": "Los ventiladores tiran desde abajo", - "create.tooltip.chute.contains": "Contiene: %1$s x%2$s", - "create.tooltip.brass_tunnel.contains": "Actualmente distribuye:", - "create.tooltip.brass_tunnel.contains_entry": "> %1$s x%2$s", - "create.tooltip.brass_tunnel.retrieve": "Haga clic derecho para recuperar", - - "create.linked_controller.bind_mode": "Modo de enlace activo", - "create.linked_controller.press_keybind": "Presiona %1$s, %2$s, %3$s, %4$s, %5$s o %6$s, para vincular esta frecuencia a la tecla correspondiente", - "create.linked_controller.key_bound": "Frecuencia ligada a %1$s", - "create.linked_controller.frequency_slot_1": "Enlace de teclas: %1$s, Freq. #1", - "create.linked_controller.frequency_slot_2": "Enlace de teclas: %1$s, Freq. #2", - - "create.crafting_blueprint.crafting_slot": "Ranura para ingredientes", - "create.crafting_blueprint.filter_items_viable": "Los objetos del filtro avanzado son viables", - "create.crafting_blueprint.display_slot": "Ranura de pantalla", - "create.crafting_blueprint.inferred": "A partir de la receta", - "create.crafting_blueprint.manually_assigned": "Asignado manualmente", - "create.crafting_blueprint.secondary_display_slot": "Ranura de pantalla secundaria", - "create.crafting_blueprint.optional": "Opcional", - - "create.potato_cannon.ammo.attack_damage": "%1$s Daño de ataque", - "create.potato_cannon.ammo.reload_ticks": "%1$s Recarga por Ticks", - "create.potato_cannon.ammo.knockback": "%1$s Golpe de efecto", - - "create.hint.hose_pulley.title": "Suministro ilimitado", - "create.hint.hose_pulley": "La masa de fluido objetivo se considera infinita.", - "create.hint.mechanical_arm_no_targets.title": "Sin objetivos", - "create.hint.mechanical_arm_no_targets": "Parece que a este _brazo mecánico_ no se le ha asignado ningún objetivo. Selecciona _correas_, _depósitos_, _embudos_ y otros bloques haciendo clic derecho sobre ellos mientras _sostienes_ el _brazo mecánico_ en tu mano..", - "create.hint.empty_bearing.title": "Actualización del rodamiento", - "create.hint.empty_bearing": "Haz clic derecho sobre el rodamiento con la _mano vacía_ para _adjuntar_ la estructura que acabas de construir delante de él.", - "create.hint.full_deployer.title": "Exceso de objetos en el desplegador", - "create.hint.full_deployer": "Parece que este _desplegador_ contiene _exceso_ de objetos que necesitan ser _extraídos._ Usa una _tolva_, _embudo_ u otro medio para liberarlo de su excedente.", - - "create.gui.config.overlay1": "Hola :)", - "create.gui.config.overlay2": "Esta es una muestra de la superposición", - "create.gui.config.overlay3": "Haga clic o arrastre con el ratón", - "create.gui.config.overlay4": "para mover esta vista previa", - "create.gui.config.overlay5": "Pulsar ESC para salir de esta pantalla", - "create.gui.config.overlay6": "y guardar la nueva posición", - "create.gui.config.overlay7": "Ejecute /create overlay reset", - "create.gui.config.overlay8": "para restablecer la posición por defecto", - - "create.command.killTPSCommand": "killtps", - "create.command.killTPSCommand.status.slowed_by.0": "[Crear]: El tick del servidor está actualmente ralentizado en %s ms :o", - "create.command.killTPSCommand.status.slowed_by.1": "[Crear]: El tick del servidor está ralentizado en %s ms ahora >:)", - "create.command.killTPSCommand.status.slowed_by.2": "[Create]: El tick del servidor ha vuelto a su velocidad normal :D", - "create.command.killTPSCommand.status.usage.0": "[Create]: usa /killtps stop para que el servidor vuelva a la velocidad normal", - "create.command.killTPSCommand.status.usage.1": "[Create]: usa /killtps start para ralentizar artificialmente el tick del servidor", - "create.command.killTPSCommand.argument.tickTime": "tickTime", - - "create.contraption.minecart_contraption_too_big": "Este artilugio de vagoneta parece demasiado grande para recogerlo", - "create.contraption.minecart_contraption_illegal_pickup": "Una fuerza mística está atando este artilugio de vagoneta al mundo", - - - "_": "->------------------------] Subtitles [------------------------<-", - - "create.subtitle.contraption_disassemble": "", - "create.subtitle.peculiar_bell_use": "", - "create.subtitle.mixing": "", - "create.subtitle.mechanical_press_activation_belt": "", - "create.subtitle.fwoomp": "", - "create.subtitle.worldshaper_place": "", - "create.subtitle.crushing_1": "", - "create.subtitle.depot_slide": "", - "create.subtitle.saw_activate_stone": "", - "create.subtitle.blaze_munch": "", - "create.subtitle.funnel_flap": "", - "create.subtitle.schematicannon_finish": "", - "create.subtitle.haunted_bell_use": "", - "create.subtitle.scroll_value": "", - "create.subtitle.crafter_craft": "", - "create.subtitle.controller_put": "", - "create.subtitle.cranking": "", - "create.subtitle.wrench_remove": "", - "create.subtitle.cogs": "", - "create.subtitle.slime_added": "", - "create.subtitle.wrench_rotate": "", - "create.subtitle.potato_hit": "", - "create.subtitle.saw_activate_wood": "", - "create.subtitle.haunted_bell_convert": "", - "create.subtitle.deployer_polish": "", - "create.subtitle.deny": "", - "create.subtitle.controller_click": "", - "create.subtitle.schematicannon_launch_block": "", - "create.subtitle.copper_armor_equip": "", - "create.subtitle.controller_take": "Lectern empties", - "create.subtitle.mechanical_press_activation": "", - "create.subtitle.contraption_assemble": "", - "create.subtitle.crafter_click": "", - "create.subtitle.depot_plop": "", - "create.subtitle.confirm": "", - - - "_": "->------------------------] Item Descriptions [------------------------<-", - - "item.create.example_item.tooltip": "EJEMPLO DE ITEM (sólo un marcador de que este tooltip existe)", - "item.create.example_item.tooltip.summary": "Una breve descripción del elemento. Los puntajes bajos resaltan un término", - "item.create.example_item.tooltip.condition1": "Cuando este", - "item.create.example_item.tooltip.behaviour1": "Entonces este elemento hace esto. (los comportamientos se muestran en el turno)", - "item.create.example_item.tooltip.condition2": "Y cuando esto", - "item.create.example_item.tooltip.behaviour2": "Puedes añadir tantos comportamientos como quieras", - "item.create.example_item.tooltip.control1": "Cuando se pulsa [Ctrl]", - "item.create.example_item.tooltip.action1": "Se muestran estos controles", - - "block.create.wooden_bracket.tooltip": "SOPORTE DE MADERA PARA EJES", - "block.create.wooden_bracket.tooltip.summary": "Decora tus _ejes_, _engranajes_ y _ductos_ con un acogedor refuerzo de madera.", - - "block.create.metal_bracket.tooltip": "SOPORTE DE METAL PARA EJES", - "block.create.metal_bracket.tooltip.summary": "Decora tus _ejes_, _engranajes_ y _ductos_ con un poco de robusto refuerzo industrial.", - - "block.create.seat.tooltip": "ASIENTO", - "block.create.seat.tooltip.summary": "¡Siéntate y disfruta del viaje! Anclará a un jugador en un artilugio en movimiento. También es ideal para muebles estáticos. Viene en una variedad de colores.", - "block.create.seat.tooltip.condition1": "Cuando se hace clic derecho en el asiento", - "block.create.seat.tooltip.behaviour1": "Sienta al jugador en el _asiento_. Pulsa Mayús izdo para dejar el asiento.", - - "item.create.blaze_cake.tooltip": "PASTEL DE BLAZE", - "item.create.blaze_cake.tooltip.summary": "Un delicioso regalo para sus esforzados _quemadores de blaze_. ¡Los pone en marcha!.", - - "item.create.wand_of_symmetry.tooltip": "VARITA DE SIMETRÍA", - "item.create.wand_of_symmetry.tooltip.summary": "Refleja perfectamente la colocación de bloques en los planos configurados.", - "item.create.wand_of_symmetry.tooltip.condition1": "Mientras está en el inventario rápido", - "item.create.wand_of_symmetry.tooltip.behaviour1": "Permanece activo.", - "item.create.wand_of_symmetry.tooltip.control1": "Cuando se hace clic derecho en el suelo", - "item.create.wand_of_symmetry.tooltip.action1": "_Crea_ o _mueve_ el espejo.", - "item.create.wand_of_symmetry.tooltip.control2": "Cuando se hace clic derecho en el aire", - "item.create.wand_of_symmetry.tooltip.action2": "_Quita_ el espejo activo.", - "item.create.wand_of_symmetry.tooltip.control3": "Mayús izdo + clic derecho", - "item.create.wand_of_symmetry.tooltip.action3": "Abre la interfaz de configuración.", - - "item.create.handheld_worldshaper.tooltip": "WORLDSHAPER", - "item.create.handheld_worldshaper.tooltip.summary": "Práctica herramienta para crear _paisajes_ y _características del terreno_.", - "item.create.handheld_worldshaper.tooltip.control1": "Cuando se hace clic izquierdo en un bloque", - "item.create.handheld_worldshaper.tooltip.action1": "Establece los bloques colocados por la herramienta en el bloque objetivo.", - "item.create.handheld_worldshaper.tooltip.control2": "Cuando se hace clic derecho en un bloque", - "item.create.handheld_worldshaper.tooltip.action2": "Aplica el _pincel_ y la _herramienta_ actualmente seleccionadas en el lugar deseado.", - "item.create.handheld_worldshaper.tooltip.control3": "Mayús izdo + clic derecho", - "item.create.handheld_worldshaper.tooltip.action3": "Abre la interfaz de configuración.", - - "item.create.tree_fertilizer.tooltip": "FERTILIZANTE PARA ÁRBOLES", - "item.create.tree_fertilizer.tooltip.summary": "Una potente combinación de minerales adecuada para acelerar el crecimiento de los tipos de árboles más comunes.", - "item.create.tree_fertilizer.tooltip.condition1": "Cuando se utiliza en un árbol joven", - "item.create.tree_fertilizer.tooltip.behaviour1": "Hace crecer los árboles _independientemente_ de sus condiciones de _espacio_.", - - "item.create.extendo_grip.tooltip": "AGARRE EXTENDIDO", - "item.create.extendo_grip.tooltip.summary": "¡Boioioing! Aumenta enormemente la _distancia de alcance_ del portador. Se puede alimentar con la presión de aire de un _depósito trasero de cobre_", - "item.create.extendo_grip.tooltip.condition1": "Cuando está fuera de la mano", - "item.create.extendo_grip.tooltip.behaviour1": "Aumenta la _distancia de alcance_ de los objetos usados en la _mano principal_.", - "item.create.extendo_grip.tooltip.condition2": "Mientras se usa un depósito trasero de cobre", - "item.create.extendo_grip.tooltip.behaviour2": "No se utilizará _durabilidad_. En su lugar, la _presión del aire_ se drena desde el tanque", - - "item.create.potato_cannon.tooltip": "CANÓN DE PATATAS", - "item.create.potato_cannon.tooltip.summary": "Fwoomp! Lanza tus verduras caseras a tus enemigos. Se puede alimentar con la presión de aire de un _depósito trasero de cobre_", - "item.create.potato_cannon.tooltip.condition1": "Cuando se usa clic derecho", - "item.create.potato_cannon.tooltip.behaviour1": "_Dispara_ un objeto adecuado desde tu inventario_.", - "item.create.potato_cannon.tooltip.condition2": "Mientras se usa un depósito trasero de cobre", - "item.create.potato_cannon.tooltip.behaviour2": "No se utilizará _durabilidad_. En su lugar, la _presión del aire_ se drena desde el tanque", - - "item.create.filter.tooltip": "FILTRO", - "item.create.filter.tooltip.summary": "Controla las _salidas_ y _entradas_ de los _dispositivos logísticos_ con más precisión, comparándolas con un _conjunto de objetos_ o varios _filtros anidados_.", - "item.create.filter.tooltip.condition1": "Cuando está en la ranura de filtros", - "item.create.filter.tooltip.behaviour1": "Controla el flujo de objetos según su _configuración_.", - "item.create.filter.tooltip.condition2": "Cuando se hace clic derecho", - "item.create.filter.tooltip.behaviour2": "Abre la interfaz de configuración.", - - "item.create.attribute_filter.tooltip": "FILTRO DE ATRIBUTOS", - "item.create.attribute_filter.tooltip.summary": "Controla las _salidas_ y las _entradas_ de los _dispositivos logísticos_ con más precisión, comparándolas con un _conjunto de atributos_ y _categorías_ de objetos.", - "item.create.attribute_filter.tooltip.condition1": "Cuando está en la ranura de filtros", - "item.create.attribute_filter.tooltip.behaviour1": "Controla el flujo de objetos según su _configuración_.", - "item.create.attribute_filter.tooltip.condition2": "Cuando se hace clic derecho", - "item.create.attribute_filter.tooltip.behaviour2": "Abre la interfaz de configuración.", - - "item.create.empty_schematic.tooltip": "ESQUEMA VACÍO", - "item.create.empty_schematic.tooltip.summary": "Se utiliza como 'ingrediente' de las recetas y para escribir en la _tabla de esquemas_.", - - "item.create.schematic.tooltip": "ESQUEMA", - "item.create.schematic.tooltip.summary": "Contiene una estructura para ser posicionada y colocada en el mundo. Posiciona el holograma como desees y utiliza un _cañón de esquemas_ para construirla.", - "item.create.schematic.tooltip.condition1": "Cuando se sostiene en la mano", - "item.create.schematic.tooltip.behaviour1": "Se puede posicionar utilizando las herramientas en pantalla.", - "item.create.schematic.tooltip.control1": "Mayús izdo + clic derecho", - "item.create.schematic.tooltip.action1": "Abre una _interfaz_ para introducir las _coordenadas_ exactas.", - - "item.create.schematic_and_quill.tooltip": "ESQUEMA Y PLUMA", - "item.create.schematic_and_quill.tooltip.summary": "Se utiliza para guardar una estructura de tu mundo en un archivo .nbt.", - "item.create.schematic_and_quill.tooltip.condition1": "Paso 1", - "item.create.schematic_and_quill.tooltip.behaviour1": "Selecciona dos puntos de esquina usando clic derecho.", - "item.create.schematic_and_quill.tooltip.condition2": "Paso 2", - "item.create.schematic_and_quill.tooltip.behaviour2": "[Ctrl] + [RUEDA DEL RATÓN] en las caras para ajustar el tamaño. Clic derecho de nuevo para guardar.", - "item.create.schematic_and_quill.tooltip.control1": "Cuando se hace clic derecho", - "item.create.schematic_and_quill.tooltip.action1": "Selecciona un punto de esquina / confirmar guardar.", - "item.create.schematic_and_quill.tooltip.control2": "Cuando mantiene [Ctrl]", - "item.create.schematic_and_quill.tooltip.action2": "Selecciona puntos en _medio del aire_. Rueda del ratón para ajustar la distancia.", - "item.create.schematic_and_quill.tooltip.control3": "Mayús izdo + clic derecho", - "item.create.schematic_and_quill.tooltip.action3": "_Reinicia_ y elimina la selección.", - - "block.create.schematicannon.tooltip": "CAÑÓN DE ESQUEMAS", - "block.create.schematicannon.tooltip.summary": "Dispara bloques para recrear un _esquema_ desplegado en el mundo. Utiliza objetos de los inventarios adyacentes y _pólvora_ como combustible.", - "block.create.schematicannon.tooltip.condition1": "Cuando se hace clic derecho", - "block.create.schematicannon.tooltip.behaviour1": "Abre la interfaz.", - - "block.create.schematic_table.tooltip": "TABLA DE ESQUEMAS", - "block.create.schematic_table.tooltip.summary": "Escribe los esquemas guardados en un _esquema vacío_.", - "block.create.schematic_table.tooltip.condition1": "Cuando se da un esquema vacío", - "block.create.schematic_table.tooltip.behaviour1": "Carga un archivo elegido de la carpeta de esquemas.", - - "item.create.goggles.tooltip": "GAFAS DEL CONSTRUCTOR", - "item.create.goggles.tooltip.summary": "Un par de gafas para aumentar tu visión con útil información _cinética_.", - "item.create.goggles.tooltip.condition1": "Cuando se llevan puestas", - "item.create.goggles.tooltip.behaviour1": "Muestra _indicadores de color_ correspondientes al _nivel de velocidad_ de un componente cinético colocado, así como el _impacto de estrés_ y la _carga_ de los componentes individuales.", - "item.create.goggles.tooltip.condition2": "Al mirar un medidor", - "item.create.goggles.tooltip.behaviour2": "Muestra información detallada sobre _velocidad_ o _estrés_ de la red a la que está conectado el medidor.", - "item.create.goggles.tooltip.condition3": "Al mirar un contenedor de fluidos", - "item.create.goggles.tooltip.behaviour3": "Muestra información detallada sobre la _carga_ del bloque y los _líquidos_ almacenados en su interior.", - - "item.create.wrench.tooltip": "LLAVE INGLESA", - "item.create.wrench.tooltip.summary": "Una herramienta útil para trabajar en artilugios cinéticos. Se puede utilizar para _rotar_, _desmantelar_ y para _configurar_ componentes.", - "item.create.wrench.tooltip.control1": "Cuando se hace clic derecho en un bloque cinético", - "item.create.wrench.tooltip.action1": "Rota los componentes hacia o desde la cara con la que ha interactuado.", - "item.create.wrench.tooltip.control2": "Mayús izdo + clic derecho", - "item.create.wrench.tooltip.action2": "Desmonta los _componentes cinéticos_ y los devuelve a tu inventario_.", - - "block.create.nozzle.tooltip": "BOQUILLA", - "block.create.nozzle.tooltip.summary": "Se acopla a la parte delantera de un _ventilador revestido_ para distribuir su efecto sobre las entidades en _todas las direcciones_.", - - "block.create.cuckoo_clock.tooltip": "RELOJ DE CUCO", - "block.create.cuckoo_clock.tooltip.summary": "Fina artesanía para decorar un espacio y contar el tiempo.", - "block.create.cuckoo_clock.tooltip.condition1": "Cuando es alimentado por cinética", - "block.create.cuckoo_clock.tooltip.behaviour1": "Muestra la _hora actual_ y toca una melodía dos veces al día. Se activa una vez al mediodía y al anochecer, _en cuanto los jugadores pueden dormir_.", - - "block.create.turntable.tooltip": "PLATAFORMA GIRATORIA", - "block.create.turntable.tooltip.summary": "Convierte la _fuerza rotacional_ en un refinado mareo.", - - "block.create.stockpile_switch.tooltip": "INTERRUPTOR DE ACOPIO", - "block.create.stockpile_switch.tooltip.summary": "Activa una señal de redstone en función de la cantidad de _objetos almacenados_ en el _contenedor_ adjunto. Viene con un práctico filtro. A diferencia de un _comparador, el _interruptor de acopio_ permite la configuración de _umbrales_, a partir de los cuales se invierten las señales.", - "block.create.stockpile_switch.tooltip.condition1": "Cuando se hace clic derecho", - "block.create.stockpile_switch.tooltip.behaviour1": "Abre la interfaz de configuración.", - - "block.create.content_observer.tooltip": "OBSERVADOR DE CONTENIDO", - "block.create.content_observer.tooltip.summary": "_Detecta objetos_ dentro de _contenedores_ y _transportadores_ que coincidan con un _filtro_ configurado. Mientras el _inventario_, la _cinta_ o la _canaleta_ observados _contengan_ un objeto que coincida, este componente emitirá una _señal de redstone_. Cuando un embudo observado _transfiere_ un objeto coincidente, este componente emitirá un _pulso de redstone_.", - - "block.create.adjustable_crate.tooltip": "CAJA AJUSTABLE", - "block.create.adjustable_crate.tooltip.summary": "Este _contenedor de objetos_ permite el control manual de su capacidad. Puede contener hasta _16 pilas_ de cualquier objeto. Soporta _comparadores de redstone_.", - "block.create.adjustable_crate.tooltip.condition1": "Cuando se hace clic derecho", - "block.create.adjustable_crate.tooltip.behaviour1": "Abre la interfaz.", - - "block.create.creative_crate.tooltip": "CAJA CREATIVA", - "block.create.creative_crate.tooltip.summary": "Este _contenedor de objetos_ permite la replicación infinita de cualquier elemento. Colócalo junto a un _cañón de esquemas_ para eliminar cualquier requisito de material.", - "block.create.creative_crate.tooltip.condition1": "Cuando el elemento está en la ranura para filtros", - "block.create.creative_crate.tooltip.behaviour1": "Todo lo que se _extraiga_ de este contenedor proporcionará un suministro _ilimitado_ del elemento especificado. Los objetos _insertados_ en esta caja serán _evitados_.", - - "item.create.creative_blaze_cake.tooltip": "PASTEL CREATIVO", - "item.create.creative_blaze_cake.tooltip.summary": "Un regalo muy especial para los _Quemadores de Blaze_ que permite _controlar su nivel de calor_. Después de comer este pastel, los Quemadores de blaze _nunca se quedarán sin combustible_.", - "item.create.creative_blaze_cake.tooltip.condition1": "Click derecho en un Quemador de blaze", - "item.create.creative_blaze_cake.tooltip.behaviour1": "Bloquea el nivel de calor del Quemador de blaze. Si se utiliza de nuevo, _cicla_ el nivel de calor del Quemador de blaze.", - - "block.create.controller_rail.tooltip": "RAÍL DE CONTROL", - "block.create.controller_rail.tooltip.summary": "Un raíl energizado _unidireccional_ capaz de _controlar con precisión_ la _velocidad de movimiento_ de una vagoneta.", - "block.create.controller_rail.tooltip.condition1": "Cuando es alimentado con redstone", - "block.create.controller_rail.tooltip.behaviour1": "_Acelera_ o _desacelera_ pasando _vagonetas_ correspondientes a la _fuerza de la señal_. Propaga la energía de redstone a los raíles de control adyacentes. Al alimentar dos raíles de control con diferentes intensidades, los carriles entre ellos interpolarán su señal.", - - "item.create.sand_paper.tooltip": "PAPEL DE LIJA", - "item.create.sand_paper.tooltip.summary": "Un papel rugoso que se puede utilizar para _pulir materiales_. Se puede aplicar automáticamente con el _desplegador_.", - "item.create.sand_paper.tooltip.condition1": "Cuando se usa", - "item.create.sand_paper.tooltip.behaviour1": "Aplica un pulido a los objetos sostenidos en la _mano libre_ o tirados en el _suelo_ cuando se _miran_.", - - "item.create.builders_tea.tooltip": "TÉ DEL CONSTRUCTOR", - "item.create.builders_tea.tooltip.summary": "La bebida perfecta para empezar el día. Motivante y saturante.", - - "item.create.refined_radiance.tooltip": "RESPLANDOR REFINADO", - "item.create.refined_radiance.tooltip.summary": "Un material cromático forjado a partir de la _luz absorbida_.", - "item.create.refined_radiance.tooltip.condition1": "Trabajo en progreso", - "item.create.refined_radiance.tooltip.behaviour1": "Los usos para este material estarán disponibles en un próximo lanzamiento.", - - "item.create.shadow_steel.tooltip": "ACERO SOMBRÍO", - "item.create.shadow_steel.tooltip.summary": "Un material cromático forjado en el _vacío_.", - "item.create.shadow_steel.tooltip.condition1": "Trabajo en curso", - "item.create.shadow_steel.tooltip.behaviour1": "Los usos de este material estarán disponibles en una futura versión.", - - "item.create.linked_controller.tooltip": "CONTROLADOR ENLAZADO", - "item.create.linked_controller.tooltip.summary": "Permite el control manual de las frecuencias de _enlaces de redstone_ asignadas a sus seis botones.", - "item.create.linked_controller.tooltip.condition1": "Al hacer clic derecho", - "item.create.linked_controller.tooltip.behaviour1": "Activa el _controlador_. Los _controles de movimiento_ se adquieren mientras está activo.", - "item.create.linked_controller.tooltip.condition2": "Al usar Mayús izdo + clic derecho", - "item.create.linked_controller.tooltip.behaviour2": "Abre la interfaz de configuración manual.", - "item.create.linked_controller.tooltip.condition3": "Al usar clic derecho en un receptor de enlaces de redstone", - "item.create.linked_controller.tooltip.behaviour3": "Activa el _modo de vinculación_, pulsa uno de los _seis controles_ para vincularlo a la _frecuencia de los enlaces_.", - "item.create.linked_controller.tooltip.condition4": "Clic derecho en un atril", - "item.create.linked_controller.tooltip.behaviour4": "Coloca el controlador en el atril para facilitar su activación. (Clic derecho + mayús izq. para recuperarlo)", - - "item.create.diving_helmet.tooltip": "CASCO DE BUCEO", - "item.create.diving_helmet.tooltip.summary": "Junto con un _depósito trasero de cobre_, permite que el usuario pueda respirar bajo el agua durante un tiempo prolongado.", - "item.create.diving_helmet.tooltip.condition1": "Cuando se lleva puesto", - "item.create.diving_helmet.tooltip.behaviour1": "Proporciona el efecto de _respiración acuática_, drenando lentamente la presión de aire del _depósito trasero_.", - - "item.create.copper_backtank.tooltip": "DEPÓSITO TRASERO DE COBRE", - "item.create.copper_backtank.tooltip.summary": "Un tanque portátil para transportar _aire presurizado_.", - "item.create.copper_backtank.tooltip.condition1": "Cuando se lleva puesto", - "item.create.copper_backtank.tooltip.behaviour1": "Proporciona _aire presurizado_ a los equipos que lo requieran.", - "item.create.copper_backtank.tooltip.condition2": "Cuando se coloca y es alimentado por cinética", - "item.create.copper_backtank.tooltip.behaviour2": "Recoge _aire presurizado_ a un ritmo que depende de la velocidad rotacional.", - - "item.create.diving_boots.tooltip": "BOTAS DE BUCEO", - "item.create.diving_boots.tooltip.summary": "Un par de _botas_ pesadas, que permiten atravesar mejor el suelo del océano.", - "item.create.diving_boots.tooltip.condition1": "Cuando se llevan puestas", - "item.create.diving_boots.tooltip.behaviour1": "El portador se hunde rápido y no puede nadar. Concede la capacidad de caminar y saltar bajo el agua. Al portador no le afectarán las _correas mecánicas.", - - "item.create.crafting_blueprint.tooltip": "PLANO DE ELABORACIÓN", - "item.create.crafting_blueprint.tooltip.summary": "Colocado en una pared, puede utilizarse para especificar la disposición de los ingredientes para facilitar la elaboración manual. Cada ranura representa una receta", - "item.create.crafting_blueprint.condition1": "Al hacer clic derecho en una ranura vacía", - "item.create.crafting_blueprint.behaviour1": "Abre un menú que permite configurar una receta y los objetos a mostrar.", - "item.create.crafting_blueprint.condition2": "Al hacer clic derecho en una ranura configurada", - "item.create.crafting_blueprint.behaviour2": "Aplica la receta configurada con los ingredientes que se encuentran en tu inventario. Se puede utilizar para fabricar hasta una pila de objetos.", - - "item.create.minecart_coupling.tooltip": "ENSAMBLADOR DE VAGONETAS", - "item.create.minecart_coupling.tooltip.summary": "_Encadena_ todas tus _vagonetas_ o _artilugios de vagoneta_ para formar un majestuoso _tren_.", - "item.create.minecart_coupling.tooltip.condition1": "Cuando se utiliza en vagonetas", - "item.create.minecart_coupling.tooltip.behaviour1": "_Acopla_ dos vagonetas, intentando mantenerlas a una _distancia constante_ mientras se mueven.", - - "block.create.peculiar_bell.tooltip": "CAMPANA PECULIAR", - "block.create.peculiar_bell.tooltip.summary": "Una campana decorativa de latón. Al colocarla sobre un _Fuego del alma_ o una _Fogata del alma_ puede producirse una transformación espeluznante...", - - "block.create.haunted_bell.tooltip": "CAMPANA ENCANTADA", - "block.create.haunted_bell.tooltip.summary": "Una _campana maldita_ perseguida por las almas perdidas del Nether", - "block.create.haunted_bell.tooltip.condition1": "Cuando se sostiene o suena", - "block.create.haunted_bell.tooltip.behaviour1": "Resalta los _puntos sin luz_ cercanos en los que pueden aparecer las _criaturas hostiles_.", - - - "_": "->------------------------] Ponder Content [------------------------<-", - - "create.ponder.hold_to_ponder": "Mantén [%1$s] para considerar", - "create.ponder.subject": "Tema de esta escena", - "create.ponder.pondering": "Considerando sobre...", - "create.ponder.identify_mode": "Identificando modo activo.\nDespausea con [%1$s]", - "create.ponder.associated": "Entradas asociadas", - "create.ponder.close": "Cerrar", - "create.ponder.identify": "Identificar", - "create.ponder.next": "Escena siguiente", - "create.ponder.previous": "Escena previa", - "create.ponder.replay": "Repetición", - "create.ponder.think_back": "Volver atrás", - "create.ponder.slow_text": "Lectura cómoda", - "create.ponder.exit": "Salir", - "create.ponder.welcome": "Bienvenido al instructivo de Create", - "create.ponder.categories": "Categorías disponibles", - "create.ponder.index_description": "Haga clic en uno de los iconos para conocer sus objetos y bloques asociados", - "create.ponder.index_title": "Índice", - "create.ponder.shared.rpm16": "16 RPM", - "create.ponder.shared.behaviour_modify_wrench": "Este comportamiento puede modificarse mediante una llave inglesa", - "create.ponder.shared.storage_on_contraption": "Los inventarios unidos al artilugio recogerán sus producciones automáticamente", - "create.ponder.shared.sneak_and": "Mayús izdo. +", - "create.ponder.shared.rpm8": "8 RPM", - "create.ponder.shared.ctrl_and": "Ctrl +", - "create.ponder.shared.rpm32": "32 RPM", - "create.ponder.shared.rpm16_source": "Fuente: 16 RPM", - "create.ponder.shared.movement_anchors": "Con la ayuda de un chasis o pegamento, se pueden mover estructuras más grandes.", - "create.ponder.tag.redstone": "Componentes lógicos", - "create.ponder.tag.redstone.description": "Componentes que ayudan a la ingeniería de redstone", - "create.ponder.tag.contraption_assembly": "Utilidades para adjuntar bloques", - "create.ponder.tag.contraption_assembly.description": "Herramientas y componentes utilizados para montar estructuras con movimiento, como un artilugio animado", - "create.ponder.tag.fluids": "Manipuladores de fluidos", - "create.ponder.tag.fluids.description": "Componentes que ayudan a transportar y utilizar fluidos", - "create.ponder.tag.decoration": "Estética", - "create.ponder.tag.decoration.description": "Componentes utilizados principalmente con fines decorativos", - "create.ponder.tag.windmill_sails": "Velas para los rodamientos de los molinos de viento", - "create.ponder.tag.windmill_sails.description": "Bloques que cuentan para la fuerza de un artefacto de molino de viento cuando se ensamblan. Cada uno de ellos tiene la misma eficacia al hacerlo.", - "create.ponder.tag.arm_targets": "Objetivos para los brazos mecánicos", - "create.ponder.tag.arm_targets.description": "Componentes que pueden seleccionarse como entradas o salidas del brazo mecánico", - "create.ponder.tag.kinetic_appliances": "Dispositivos cinéticos", - "create.ponder.tag.kinetic_appliances.description": "Componentes que utilizan la fuerza rotacional", - "create.ponder.tag.kinetic_sources": "Fuentes cinéticas", - "create.ponder.tag.kinetic_sources.description": "Componentes que generan fuerza rotacional", - "create.ponder.tag.movement_anchor": "Anclas de movimiento", - "create.ponder.tag.movement_anchor.description": "Componentes que permiten crear artilugios en movimiento, animando una estructura anexa de diversas maneras", - "create.ponder.tag.kinetic_relays": "Transmisores cinéticos", - "create.ponder.tag.kinetic_relays.description": "Componentes que ayudan a transmitir la fuerza rotacional en otro lugar", - "create.ponder.tag.contraption_actor": "Actores del artilugio", - "create.ponder.tag.contraption_actor.description": "Componentes que exponen un comportamiento especial cuando están unidos a un artilugio en movimiento", - "create.ponder.tag.creative": "Modo creativo", - "create.ponder.tag.creative.description": "Componentes que no suelen estar disponibles para el Modo Supervivencia", - "create.ponder.tag.logistics": "Transporte de objetos", - "create.ponder.tag.logistics.description": "Componentes que ayudan a desplazar los objetos", - - "create.ponder.adjustable_pulse_repeater.header": "Controlar señales mediante repetidores de pulsos ajustables", - "create.ponder.adjustable_pulse_repeater.text_1": "Los repetidores de pulsos ajustables emiten un pulso corto con un retardo", - "create.ponder.adjustable_pulse_repeater.text_2": "Con la rueda del ratón se puede configurar el tiempo de carga", - "create.ponder.adjustable_pulse_repeater.text_3": "Los retrasos configurados pueden ser de hasta 30 minutos", - - "create.ponder.adjustable_repeater.header": "Controlar señales mediante repetidores ajustables", - "create.ponder.adjustable_repeater.text_1": "Los repetidores ajustables se comportan de forma similar a los repetidores normales", - "create.ponder.adjustable_repeater.text_2": "Se cargan durante un tiempo determinado...", - "create.ponder.adjustable_repeater.text_3": "...y se enfrían durante el mismo tiempo", - "create.ponder.adjustable_repeater.text_4": "Con la rueda del ratón se puede configurar el tiempo de carga", - "create.ponder.adjustable_repeater.text_5": "Los retrasos configurados pueden variar hasta 30 minutos", - - "create.ponder.analog_lever.header": "Controlar señales mediante la palanca analógica", - "create.ponder.analog_lever.text_1": "Las palancas analógicas son una fuente compacta y precisa de energía de redstone", - "create.ponder.analog_lever.text_2": "Haz clic derecho para aumentar su potencia analógica", - "create.ponder.analog_lever.text_3": "Usa Mayús izdo + clic derecho para volver a disminuir su potencia", - - "create.ponder.andesite_tunnel.header": "Usar túneles de andesita", - "create.ponder.andesite_tunnel.text_1": "Los túneles de andesita se pueden utilizar para tapar las correas", - "create.ponder.andesite_tunnel.text_2": "Siempre que un túnel de andesita tenga conexiones a los lados...", - "create.ponder.andesite_tunnel.text_3": "...dividirá exactamente un elemento de cualquier pila que pase", - "create.ponder.andesite_tunnel.text_4": "El resto continuará su camino", - - "create.ponder.basin.header": "Procesar objetos en la cuenca", - "create.ponder.basin.text_1": "Una cuenca puede contener objetos y fluidos para su procesamiento", - "create.ponder.basin.text_2": "Después de un paso de procesamamiento, las cuencas intentan descargar por debajo a un lado de ellas", - "create.ponder.basin.text_3": "Cuando un ingrediente válido está presente, la cuenca mostrará un conducto de salida", - "create.ponder.basin.text_4": "Aquí se pueden aplicar varias opciones", - "create.ponder.basin.text_5": "Las salidas serán capturadas por el inventario que está por debajo", - "create.ponder.basin.text_6": "Sin conducto de salida, la cuenca retendrá los objetos creados en su procesamiento", - "create.ponder.basin.text_7": "Esto puede ser útil si las salidas deben ser reutilizadas como ingredientes", - "create.ponder.basin.text_8": "Las salidas deseadas tendrán que ser extraídas de la cuenca", - "create.ponder.basin.text_9": "Podría ser necesario un filtro para evitar sacar los objetos no procesados", - - "create.ponder.bearing_modes.header": "Modos de movimiento del rodamiento mecánico", - "create.ponder.bearing_modes.text_1": "Cuando se detenga, el rodamiento mecánico colocará la estructura en el ángulo más cercano alineado con la cuadrícula", - "create.ponder.bearing_modes.text_2": "Se puede configurar para que nunca vuelva a los bloques sólidos, o sólo cerca del ángulo en el que comenzó", - - "create.ponder.belt_casing.header": "Correas revestidas", - "create.ponder.belt_casing.text_1": "Se puede utilizar revestidor de latón o andesita para decorar las correas", - "create.ponder.belt_casing.text_2": "Se puede utilizar una llave inglesa para quitar el revestimiento", - - "create.ponder.belt_connector.header": "El uso de las correas mecánicas", - "create.ponder.belt_connector.text_1": "Al hacer clic derecho en dos ejes con una correa mecánica se conectarán entre sí", - "create.ponder.belt_connector.text_2": "Las selecciones accidentales pueden ser canceladas con Mayús izdo + clic derecho", - "create.ponder.belt_connector.text_3": "Se pueden añadir ejes adicionales en toda la correa", - "create.ponder.belt_connector.text_4": "Los ejes conectados a través de correas girarán con velocidad y dirección idénticas", - "create.ponder.belt_connector.text_5": "Los ejes añadidos se pueden quitar con la llave inglesa", - "create.ponder.belt_connector.text_6": "Las correas mecánicas se pueden teñir con fines estéticos", - - "create.ponder.belt_directions.header": "Orientaciones válidas para las correas mecánicas", - "create.ponder.belt_directions.text_1": "Las correas mecánicas no pueden conectarse en direcciones arbitrarias", - "create.ponder.belt_directions.text_2": "1. Pueden conectarse horizontalmente", - "create.ponder.belt_directions.text_3": "2. Pueden conectarse en diagonal", - "create.ponder.belt_directions.text_4": "3. Pueden conectarse verticalmente", - "create.ponder.belt_directions.text_5": "4. Y pueden conectar ejes verticales horizontalmente", - "create.ponder.belt_directions.text_6": "Estas son todas las direcciones posibles. Pueden abarcar cualquier longitud entre 2 y 20 bloques", - - "create.ponder.belt_transport.header": "El uso de las correas mecánicas para la logística", - "create.ponder.belt_transport.text_1": "Las correas mecánicas transportan objetos y otras entidades", - "create.ponder.belt_transport.text_2": "Haz clic derecho con la mano vacía para sacar objetos de una 'cinta'", - - "create.ponder.blaze_burner.header": "Alimentar quemadores de blaze", - "create.ponder.blaze_burner.text_1": "Los quemadores de blaze pueden proporcionar calor a los objetos procesados en una cuenca", - "create.ponder.blaze_burner.text_2": "Para ello, el blaze tiene que ser alimentado con objetos inflamables", - "create.ponder.blaze_burner.text_3": "Con un pastel de blaze, el quemador puede alcanzar un mayor nivel de calor", - "create.ponder.blaze_burner.text_4": "El proceso de alimentación puede automatizarse utilizando desplegadores o brazos mecánicos", - - "create.ponder.brass_funnel.header": "El embudo de latón", - "create.ponder.brass_funnel.text_1": "Los embudos de andesita sólo pueden extraer objetos individuales", - "create.ponder.brass_funnel.text_2": "Los embudos de latón pueden extraer hasta una pila completa", - "create.ponder.brass_funnel.text_3": "Usar la rueda de desplazamiento del ratón en la ranura para filtros permite un control preciso del tamaño de la pila extraída.", - "create.ponder.brass_funnel.text_4": "El uso de objetos en la ranura de filtrado restringirá el embudo para transferir sólo las pilas que coincidan.", - - "create.ponder.brass_tunnel.header": "Usar túneles de latón", - "create.ponder.brass_tunnel.text_1": "Los túneles de latón pueden utilizarse para tapar las correas", - "create.ponder.brass_tunnel.text_2": "Tienen ranuras de filtro en cada lado abierto", - "create.ponder.brass_tunnel.text_3": "Los filtros en las conexiones de entrada simplemente bloquean los objetos que no coincidan", - "create.ponder.brass_tunnel.text_4": "Los filtros en las conexiones de salida pueden utilizarse para ordenar los objetos por tipo", - "create.ponder.brass_tunnel.text_5": "Siempre que un objeto de paso tenga múltiples salidas válidas, el modo de distribución decidirá cómo manejarlo", - "create.ponder.brass_tunnel.text_6": "Los túneles de latón en bandas paralelas formarán un grupo", - "create.ponder.brass_tunnel.text_7": "Los objetos entrantes se distribuirán ahora por todas las salidas conectadas", - "create.ponder.brass_tunnel.text_8": "Para ello, los objetos también pueden insertarse en el bloque del túnel directamente", - - "create.ponder.brass_tunnel_modes.header": "Modos de distribución del túnel de latón", - "create.ponder.brass_tunnel_modes.text_1": "Mediante una llave inglesa se puede configurar el comportamiento de distribución de los túneles de latón", - "create.ponder.brass_tunnel_modes.text_10": "'Sincronizar entradas' es una configuración única de los túneles de latón", - "create.ponder.brass_tunnel_modes.text_11": "Las entradas sólo pueden pasar si cada túnel del grupo tiene una en espera", - "create.ponder.brass_tunnel_modes.text_12": "Esto asegura que todas las correas afectadas suministren objetos al mismo tiempo", - "create.ponder.brass_tunnel_modes.text_2": "El modo División intentará distribuir la pila uniformemente entre las salidas disponibles", - "create.ponder.brass_tunnel_modes.text_3": "Si una salida no puede tomar más objetos, se saltará", - "create.ponder.brass_tunnel_modes.text_4": "El modo División forzada nunca saltará las salidas, y en su lugar esperará hasta que estén libres", - "create.ponder.brass_tunnel_modes.text_5": "El modo Round Robin mantiene las pilas enteras, y recorre las salidas de forma iterativa", - "create.ponder.brass_tunnel_modes.text_6": "Una vez más, si una salida no puede aceptar más objetos, se saltará", - "create.ponder.brass_tunnel_modes.text_7": "El modo Round Robin forzado nunca omite salidas", - "create.ponder.brass_tunnel_modes.text_8": "El modo Preferir el más cercano prioriza las salidas más cercanas a la ubicación de entrada de los objetos", - "create.ponder.brass_tunnel_modes.text_9": "El modo Aleatorizar distribuirá pilas enteras a salidas elegidas al azar", - - "create.ponder.cart_assembler.header": "Mover estructuras usando ensambladores de vagonetas", - "create.ponder.cart_assembler.text_1": "Los ensambladores de vagonetas montan estructuras adjuntas a las vagonetas que pasan", - "create.ponder.cart_assembler.text_2": "Sin una señal de redstone, desmonta los artilugios de vagoneta que pasan de nuevo en bloques", - "create.ponder.cart_assembler.text_3": "El uso de una llave inglesa en una vagoneta te permitirá llevar el artilugio a otro lugar", - - "create.ponder.cart_assembler_dual.header": "Ensamblajes de artilugios de vagoneta", - "create.ponder.cart_assembler_dual.text_1": "Siempre que dos ensambladores de vagoneta compartan una estructura adjunta...", - "create.ponder.cart_assembler_dual.text_2": "...al alimentar a cualquiera de ellos se creará un artilugio de vagoneta", - "create.ponder.cart_assembler_dual.text_3": "Las vagonetas se comportarán como las conectadas a través del acoplamiento de vagoneta", - - "create.ponder.cart_assembler_modes.header": "Configurar la orientación de los artilugios de vagonetas", - "create.ponder.cart_assembler_modes.text_1": "Los artilugios de vagonetas girarán para orientarse hacia el movimiento de sus vagonetas", - "create.ponder.cart_assembler_modes.text_2": "Esta flecha indica qué lado de la estructura se considerará la parte delantera", - "create.ponder.cart_assembler_modes.text_3": "Si el ensamblador está configurado para bloquear la rotación, la orientación de los artilugios nunca cambiará", - - "create.ponder.cart_assembler_rails.header": "Otros tipos de vagonetas y raíles", - "create.ponder.cart_assembler_rails.text_1": "Los ensambladores de vagonetas en raíles normales no afectarán el movimiento de las vagonetas que pasen", - "create.ponder.cart_assembler_rails.text_2": "Cuando se encuentre en un raíl motorizado o en un raíl de control, las vagonetas se mantendrán en su sitio hasta que sea motorizado", - "create.ponder.cart_assembler_rails.text_3": "Se pueden utilizar otros tipos de vagonetas como anclaje", - "create.ponder.cart_assembler_rails.text_4": "Los artilugios de vagonetas de horno se mantendrán alimentados a sí mismos, sacando combustible de cualquier inventario adjunto", - - "create.ponder.chain_drive.header": "Transmitir fuerza rotacional con las cadenas de transmisión", - "create.ponder.chain_drive.text_1": "Las cadenas de transmisión transmiten la rotación entre sí en fila", - "create.ponder.chain_drive.text_2": "Todos los ejes conectados así girarán en la misma dirección", - "create.ponder.chain_drive.text_3": "Cualquier parte de la fila puede girar 90 grados usando una llave inglesa", - - "create.ponder.chain_gearshift.header": "Controlar la velocidad de rotación con la cadena de transmisión ajustable", - "create.ponder.chain_gearshift.text_1": "Las cadenas de transmisión ajustables sin alimentación se comportan exactamente como las cadenas de transmisión", - "create.ponder.chain_gearshift.text_2": "Cuando están alimentadas, la velocidad transmitida a las demás cadenas de transmisión de la fila se duplica", - "create.ponder.chain_gearshift.text_3": "Siempre que la cadena de transmisión alimentada no esté en el origen, su velocidad se reducirá a la mitad", - "create.ponder.chain_gearshift.text_4": "En ambos casos, las cadenas de transmisión de la fila siempre funcionan a 2 veces la velocidad de la cadena de transmisión alimentada", - "create.ponder.chain_gearshift.text_5": "Utilizando señales analógicas, la relación puede ajustarse con mayor precisión, entre 1 y 2", - "create.ponder.chain_gearshift.text_6": "12 RPM", - - "create.ponder.chute.header": "Transportar objetos hacia abajo a través de ductos", - "create.ponder.chute.text_1": "Los ductos pueden transportar objetos verticalmente desde y hacia los inventarios", - "create.ponder.chute.text_2": "Usando la llave inglesa, se puede crear una ventana", - "create.ponder.chute.text_3": "Colocar ductos apuntando a las caras laterales de otro lo hará en diagonal", - - "create.ponder.chute_upward.header": "Transportar objetos hacia arriba mediante ductos", - "create.ponder.chute_upward.text_1": "Usando ventiladores revestidos en la parte superior o inferior, un ducto puede transportar objetos hacia arriba", - "create.ponder.chute_upward.text_2": "Al inspeccionar los ductos con las gafas del constructor, se revela información sobre la dirección del movimiento", - "create.ponder.chute_upward.text_3": "En el extremo 'bloqueado', los objetos tendrán que ser insertados/tomados de los lados", - - "create.ponder.clockwork_bearing.header": "Animar estructuras con rodamientos tipo reloj", - "create.ponder.clockwork_bearing.text_1": "Los rodamientos tipo reloj se fijan a los bloques que tienen delante", - "create.ponder.clockwork_bearing.text_2": "Al recibir fuerza rotacional, la estructura girará según la hora del día", - "create.ponder.clockwork_bearing.text_3": "3:00", - "create.ponder.clockwork_bearing.text_4": "4:00", - "create.ponder.clockwork_bearing.text_5": "Haz clic derecho en el rodamiento para iniciar o detener la animación de la estructura", - "create.ponder.clockwork_bearing.text_6": "Delante de la manecilla de las horas se puede añadir una segunda estructura", - "create.ponder.clockwork_bearing.text_7": "Asegúrese de que las dos estructuras no están unidas entre sí con pegamento o algo similar", - "create.ponder.clockwork_bearing.text_8": "La segunda estructura ahora girará como el minutero", - - "create.ponder.clutch.header": "Controlar la fuerza rotacional mediante un embrague", - "create.ponder.clutch.text_1": "Los embragues transmitirán la rotación en línea recta", - "create.ponder.clutch.text_2": "Cuando se alimentan con redstone, rompen la conexión", - - "create.ponder.cog_speedup.header": "Cambiar de marchas con engranajes", - "create.ponder.cog_speedup.text_1": "Los engranajes grandes y pequeños pueden conectarse en diagonal", - "create.ponder.cog_speedup.text_2": "Al cambiar de engranajes grandes a pequeños, la velocidad rotacional se duplicará", - "create.ponder.cog_speedup.text_3": "Inversamente, la velocidad rotacional se reducirá a la mitad", - - "create.ponder.cogwheel.header": "Transmitir fuerza rotacional mediante engranajes", - "create.ponder.cogwheel.text_1": "Los engranajes transmitirán la rotación a otros engranajes adyacentes", - "create.ponder.cogwheel.text_2": "Los ejes adyacentes conectados así, girarán en direcciones opuestas", - - "create.ponder.creative_fluid_tank.header": "Tanque de fluídos creativo", - "create.ponder.creative_fluid_tank.text_1": "Los depósitos de fluidos creativos pueden utilizarse para proporcionar un suministro de fluidos sin fondo", - "create.ponder.creative_fluid_tank.text_2": "Haga clic con el botón derecho en un elemento que contenga fluido para configurarlo", - "create.ponder.creative_fluid_tank.text_3": "Las redes de tuberías pueden ahora extraer sin cesar el fluido asignado del depósito", - "create.ponder.creative_fluid_tank.text_4": "Cualquier fluido empujado de vuelta a un tanque de fluido creativo será anulado", - - "create.ponder.creative_motor.header": "Generar fuerza rotacional con motores creativos", - "create.ponder.creative_motor.text_1": "Los motores creativos son una fuente compacta y configurable de fuerza rotacional", - "create.ponder.creative_motor.text_2": "Usar la rueda de desplazamiento del ratón en su parte trasera cambia las RPM de la salida rotacional", - - "create.ponder.crushing_wheels.header": "Procesar objetos con las ruedas trituradoras", - "create.ponder.crushing_wheels.text_1": "Un par de ruedas trituradoras pueden moler objetos de forma muy eficaz", - "create.ponder.crushing_wheels.text_2": "Su fuerza rotacional tiene que hacerlas girar una contra otra", - "create.ponder.crushing_wheels.text_3": "Los objetos lanzados o insertados en la parte superior serán procesados", - "create.ponder.crushing_wheels.text_4": "Los objetos también pueden ser insertados y recogidos a través de medios automatizados", - - "create.ponder.deployer.header": "Usar el desplegador", - "create.ponder.deployer.text_1": "Dada la fuerza rotacional, un desplegador puede imitar las interacciones de los jugadores", - "create.ponder.deployer.text_10": "Haz clic derecho en el frente para darle un objeto a utilizar", - "create.ponder.deployer.text_11": "Los objetos también pueden ser insertados automáticamente", - "create.ponder.deployer.text_12": "Los desplegadores llevan una ranura de filtro", - "create.ponder.deployer.text_13": "Cuando se establece un filtro, sólo se activa mientras se mantiene un elemento coincidente", - "create.ponder.deployer.text_14": "Ahora sólo se pueden insertar los objetos que coincidan con el filtro...", - "create.ponder.deployer.text_15": "...y sólo se extraerán los objetos que no coincidan", - "create.ponder.deployer.text_2": "Siempre interactuará con la posición 2 bloques delante de sí mismo", - "create.ponder.deployer.text_3": "Los bloques situados directamente delante no lo obstruirán", - "create.ponder.deployer.text_4": "Los desplegadores pueden:", - "create.ponder.deployer.text_5": "Colocar bloques,", - "create.ponder.deployer.text_6": "Usar objetos,", - "create.ponder.deployer.text_7": "Activar bloques,", - "create.ponder.deployer.text_8": "Cosechar bloques", - "create.ponder.deployer.text_9": "Y atacar criaturas", - - "create.ponder.deployer_contraption.header": "Usar desplegadores en artilugios", - "create.ponder.deployer_contraption.text_1": "Siempre que los desplegadores se muevan como parte de un artilugio animado...", - "create.ponder.deployer_contraption.text_2": "Se activan en cada ubicación visitada, utilizando objetos de los inventarios de cualquier parte del artilugio", - "create.ponder.deployer_contraption.text_3": "La ranura para filtros se puede utilizar para especificar qué objetos tirar", - - "create.ponder.deployer_modes.header": "Modos del desplegador", - "create.ponder.deployer_modes.text_1": "Por defecto, un desplegador imita la interacción del clic derecho del ratón", - "create.ponder.deployer_modes.text_2": "Usando una llave inglesa, se puede configurar para imitar un clic izquierdo en su lugar", - - "create.ponder.deployer_processing.header": "Procesar objetos mediante desplegadores", - "create.ponder.deployer_processing.text_1": "Con un objeto de sujeción ajustado, los desplegadores pueden procesar los objetos proporcionados por debajo de ellos", - "create.ponder.deployer_processing.text_2": "Los objetos de entrada pueden soltarse o colocarse en un depósito bajo el desplegador", - "create.ponder.deployer_processing.text_3": "Cuando los objetos se proporcionan en una 'cinta'...", - "create.ponder.deployer_processing.text_4": "El desplegador los retendrá y procesará automáticamente", - - "create.ponder.deployer_redstone.header": "Controlar desplegadores con redstone", - "create.ponder.deployer_redstone.text_1": "Al controlar los desplegadores con redstone, éstos no se activarán", - "create.ponder.deployer_redstone.text_2": "Antes de detenerse, el desplegador terminará cualquier ciclo iniciado", - "create.ponder.deployer_redstone.text_3": "Por lo tanto, un pulso negativo puede ser utilizado para desencadenar exactamente un ciclo de activación", - - "create.ponder.depot.header": "Usar depósitos", - "create.ponder.depot.text_1": "Los depósitos pueden servir como objetos 'fijos' de la correa", - "create.ponder.depot.text_2": "Haz clic derecho para colocar o eliminar manualmente objetos del mismo", - "create.ponder.depot.text_3": "Al igual que las correas mecánicas, pueden proporcionar objetos para su procesamiento", - "create.ponder.depot.text_4": "...así como proporcionar objetos a los brazos mecánicos", - - "create.ponder.empty_blaze_burner.header": "Usar quemadores de blaze vacíos", - "create.ponder.empty_blaze_burner.text_1": "Haz clic derecho en un blaze con el quemador vacío para capturarlo", - "create.ponder.empty_blaze_burner.text_2": "Alternativamente, los blaze pueden ser recogidos de sus spawners directamente", - "create.ponder.empty_blaze_burner.text_3": "Ahora tienes una fuente de calor ideal para varias máquinas", - "create.ponder.empty_blaze_burner.text_4": "Por motivos estéticos, los quemadores de blaze vacíos también se pueden encender con pedernal y acero", - "create.ponder.empty_blaze_burner.text_5": "La llama puede transformarse utilizando un objeto con alma", - "create.ponder.empty_blaze_burner.text_6": "Sin embargo, no son adecuados para la calefacción industrial", - - "create.ponder.encased_fluid_pipe.header": "Revestir tuberías de fluídos", - "create.ponder.encased_fluid_pipe.text_1": "El revestidor de cobre puede utilizarse para decorar las tuberías de fluidos", - "create.ponder.encased_fluid_pipe.text_2": "Además de estar ocultas, las tuberías revestidas están bloqueadas en su estado de conectividad", - "create.ponder.encased_fluid_pipe.text_3": "Ya no reaccionará a los bloques vecinos que se añadan o eliminen", - - "create.ponder.fan_direction.header": "El flujo de aire de los ventiladores revestidos", - "create.ponder.fan_direction.text_1": "Los ventiladores revestidos utilizan la fuerza rotacional para crear una corriente de aire", - "create.ponder.fan_direction.text_2": "La fuerza y la dirección del flujo dependen de la fuerza rotacional suministrada", - - "create.ponder.fan_processing.header": "Procesar objetos mediante ventiladores revestidos", - "create.ponder.fan_processing.text_1": "Al pasar por lava, el flujo de aire se calienta", - "create.ponder.fan_processing.text_2": "Los objetos capturados en la zona serán fundidos", - "create.ponder.fan_processing.text_3": "Los artículos de comida arrojados aquí serán incinerados", - "create.ponder.fan_processing.text_4": "En su lugar, se debería utilizar una instalación de ahumado, usando fuego", - "create.ponder.fan_processing.text_5": "Los flujos de aire que pasan por el agua crean una instalación de lavado", - "create.ponder.fan_processing.text_6": "Se puede hacer un nuevo e interesante procesamiento con él", - "create.ponder.fan_processing.text_7": "La velocidad del ventilador NO afecta a la velocidad de procesamiento, sólo a su rango", - "create.ponder.fan_processing.text_8": "El procesamiento del ventilador también puede aplicarse a los objetos de los depósitos y las correas", - - "create.ponder.fan_source.header": "Generar fuerza rotacional mediante ventiladores revestidos", - "create.ponder.fan_source.text_1": "Los ventiladores orientados hacia una fuente de calor pueden proporcionar fuerza rotacional", - "create.ponder.fan_source.text_2": "Cuando se les da una señal de redstone, los ventiladores comenzarán a proporcionar fuerza", - - "create.ponder.fluid_pipe_flow.header": "Transportar fluidos mediante tuberías de cobre", - "create.ponder.fluid_pipe_flow.text_1": "Las tuberías de fluidos pueden conectar dos o más fuentes y objetivos de fluidos", - "create.ponder.fluid_pipe_flow.text_2": "Utilizando una llave, se puede dar a un segmento de tubo recto una ventana", - "create.ponder.fluid_pipe_flow.text_3": "Las tuberías con ventanas no se conectarán a ningún otro segmento de tubería adyacente", - "create.ponder.fluid_pipe_flow.text_4": "Accionadas por bombas mecánicas, las tuberías pueden transportar fluidos", - "create.ponder.fluid_pipe_flow.text_5": "Al principio no se extrae ningún líquido", - "create.ponder.fluid_pipe_flow.text_6": "Una vez que el flujo los conecta, los puntos finales transfieren gradualmente su contenido", - "create.ponder.fluid_pipe_flow.text_7": "Así, los bloques de tuberías nunca contienen 'físicamente' ningún fluido", - - "create.ponder.fluid_pipe_interaction.header": "Drenaje y llenado de contenedores de fluidos", - "create.ponder.fluid_pipe_interaction.text_1": "Los puntos finales de una red de tuberías pueden interactuar con una variedad de bloques", - "create.ponder.fluid_pipe_interaction.text_2": "Cualquier bloque con capacidad para almacenar fluidos puede ser llenado o vaciado", - "create.ponder.fluid_pipe_interaction.text_3": "Los bloques de origen justo delante de un extremo abierto pueden ser recogidos...", - "create.ponder.fluid_pipe_interaction.text_4": "...mientras que el derrame en espacios vacíos puede crear fuentes de fluidos", - "create.ponder.fluid_pipe_interaction.text_5": "Las tuberías también pueden extraer fluidos de un puñado de otros bloques directamente", - - "create.ponder.fluid_tank_sizes.header": "Dimensiones de un depósito de fluidos", - "create.ponder.fluid_tank_sizes.text_1": "Los depósitos de fluidos pueden combinarse para aumentar la capacidad total", - "create.ponder.fluid_tank_sizes.text_2": "Su cuadrado base puede tener hasta 3 bloques de ancho...", - "create.ponder.fluid_tank_sizes.text_3": "...y crecen en altura en más de 30 capas adicionales", - "create.ponder.fluid_tank_sizes.text_4": "Con una llave inglesa, se puede cambiar la ventana de un tanque", - - "create.ponder.fluid_tank_storage.header": "Almacenar fluidos en depósitos de fluidos", - "create.ponder.fluid_tank_storage.text_1": "Los depósitos de fluidos pueden utilizarse para almacenar grandes cantidades de fluidos", - "create.ponder.fluid_tank_storage.text_2": "Las redes de tuberías pueden empujar y arrastrar fluidos desde cualquier lado", - "create.ponder.fluid_tank_storage.text_3": "El fluido contenido puede ser medido por un Comparador", - "create.ponder.fluid_tank_storage.text_4": "Sin embargo, en el Modo Supervivencia no se pueden añadir o tomar fluidos manualmente", - "create.ponder.fluid_tank_storage.text_5": "Puede utilizar cuencas, drenadores de objetos y tuberías para vaciar o llenar objetos que contengan líquido", - - "create.ponder.flywheel.header": "Generar fuerza rotacional con la rueda de inercia", - "create.ponder.flywheel.text_1": "Las ruedas de inercia son necesarias para generar fuerza rotacional con el motor de horno", - "create.ponder.flywheel.text_2": "La fuerza rotacional proporcionada tiene una capacidad de estrés muy grande", - "create.ponder.flywheel.text_3": "El uso de un alto horno duplicará la eficiencia del motor", - - "create.ponder.funnel_compat.header": "Compatibilidades con el embudo", - "create.ponder.funnel_compat.text_1": "Los embudos deberían interactuar bien con un puñado de otros componentes", - "create.ponder.funnel_compat.text_2": "Sierras verticales", - "create.ponder.funnel_compat.text_3": "Depósitos", - "create.ponder.funnel_compat.text_4": "Drenadores de objetos", - - "create.ponder.funnel_direction.header": "Dirección de la transferencia", - "create.ponder.funnel_direction.text_1": "Colocado normalmente, extrae objetos del inventario", - "create.ponder.funnel_direction.text_2": "Colocado mientras pulsa Mayús izdo, pone objetos en el inventario", - "create.ponder.funnel_direction.text_3": "Usando una llave inglesa, el embudo puede ser volteado después de su colocación", - "create.ponder.funnel_direction.text_4": "Se aplicarán las mismas reglas para la mayoría de las orientaciones", - "create.ponder.funnel_direction.text_5": "Los embudos en las correas extraerán/insertarán dependiendo de su dirección de movimiento", - - "create.ponder.funnel_intro.header": "Usar embudos", - "create.ponder.funnel_intro.text_1": "Los embudos son ideales para transferir objetos desde y hacia los inventarios", - - "create.ponder.funnel_redstone.header": "Embudos alimentados con redstone", - "create.ponder.funnel_redstone.text_1": "La energía de redstone impedirá la actuación de cualquier embudo", - - "create.ponder.funnel_transfer.header": "Transferencia directa", - "create.ponder.funnel_transfer.text_1": "Los embudos no pueden transferir nunca entre inventarios cerrados directamente", - "create.ponder.funnel_transfer.text_2": "Los ductos o los ductos inteligentes podrían ser más adecuados para estos fines", - "create.ponder.funnel_transfer.text_3": "Lo mismo se aplica para el movimiento horizontal. Una correa mecánica debería ayudar aquí", - - "create.ponder.furnace_engine.header": "Generar fuerza rotacional con el motor de horno", - "create.ponder.furnace_engine.text_1": "Los motores de horno generan fuerza rotacional mientras su horno adjunto está funcionando", - "create.ponder.furnace_engine.text_2": "La fuerza rotacional proporcionada tiene una capacidad de estrés muy grande", - "create.ponder.furnace_engine.text_3": "El uso de un alto horno duplicará la eficiencia del motor", - - "create.ponder.gantry_carriage.header": "Usar carros de grúa", - "create.ponder.gantry_carriage.text_1": "Los carros de grúa pueden montarse y deslizarse a lo largo de un eje de grúa", - "create.ponder.gantry_carriage.text_2": "Las instalaciones de grúa pueden mover bloques adjuntos", - - "create.ponder.gantry_cascaded.header": "Grúas en cascada", - "create.ponder.gantry_cascaded.text_1": "Los ejes de grúas se unen a un carro de grúa sin necesidad de pegamento", - "create.ponder.gantry_cascaded.text_2": "Lo mismo se aplica a los carros de grúa en los ejes de grúas desplazados", - "create.ponder.gantry_cascaded.text_3": "Así, un sistema de grúas puede estar en cascada para cubrir múltiples ejes de movimiento", - - "create.ponder.gantry_direction.header": "Dirección del movimiento de la grúa", - "create.ponder.gantry_direction.text_1": "Los ejes de grúa pueden tener orientaciones opuestas", - "create.ponder.gantry_direction.text_2": "La dirección de movimiento de los carros de grúa depende de la orientación de sus ejes", - "create.ponder.gantry_direction.text_3": "...así como de su sentido de rotación", - "create.ponder.gantry_direction.text_4": "Se aplican las mismas reglas para la rotación propagada", - - "create.ponder.gantry_redstone.header": "Propagación de la potencia de la grúa", - "create.ponder.gantry_redstone.text_1": "Los ejes de grúa alimentados con redstone dejan de mover sus carros", - "create.ponder.gantry_redstone.text_2": "En su lugar, su fuerza rotacional se transmite al eje de salida de los carros", - - "create.ponder.gantry_shaft.header": "Usar ejes de grúa", - "create.ponder.gantry_shaft.text_1": "Los ejes de grúa forman la base de una instalación de grúas. Los carros adjuntos se moverán a lo largo de ellos", - "create.ponder.gantry_shaft.text_2": "Las instalaciones de grúas pueden mover los bloques adjuntos", - - "create.ponder.gearbox.header": "Transmitir fuerza rotacional mediante cajas de transmisión", - "create.ponder.gearbox.text_1": "Saltar entre ejes de rotación puede volverse voluminoso rápidamente", - "create.ponder.gearbox.text_2": "Una caja de transmisión es el equivalente más compacto de esta configuración", - "create.ponder.gearbox.text_3": "Los ejes giran en las direcciones reflejadas...", - "create.ponder.gearbox.text_4": "...esto quiere decir que las conexiones rectas se invierten", - - "create.ponder.gearshift.header": "Controlar la dirección rotacional mediante una caja de cambios", - "create.ponder.gearshift.text_1": "La caja de cambios transmitirá la rotación en línea recta", - "create.ponder.gearshift.text_2": "Cuando es alimentada con redstone, invierte la transmisión", - - "create.ponder.hand_crank.header": "Generar fuerza rotacional mediante manivelas", - "create.ponder.hand_crank.text_1": "Las manivelas pueden ser utilizadas para aplicar fuerza rotacional manualmente", - "create.ponder.hand_crank.text_2": "Mantén pulsado clic derecho para girar en sentido antihorario", - "create.ponder.hand_crank.text_3": "Su velocidad de transmisión es relativamente alta", - "create.ponder.hand_crank.text_4": "Mayús izdo + clic derecho pulsado para girar en sentido horario", - - "create.ponder.hose_pulley.header": "Llenado y vaciado de fuentes mediante poleas de manguera", - "create.ponder.hose_pulley.text_1": "Las poleas para mangueras pueden utilizarse para llenar o drenar grandes masas de fluido", - "create.ponder.hose_pulley.text_2": "Con entrada cinética, se puede controlar la altura de la manguera de las poleas", - "create.ponder.hose_pulley.text_3": "La polea se retrae mientras la rotación de entrada se invierte", - "create.ponder.hose_pulley.text_4": "En el lado opuesto, se pueden conectar las tuberías", - "create.ponder.hose_pulley.text_5": "Las redes de tuberías conectadas pueden proporcionar fluido a la manguera...", - "create.ponder.hose_pulley.text_6": "...o tirar de él, vaciando la piscina en su lugar", - "create.ponder.hose_pulley.text_7": "La velocidad de llenado y vaciado de la polea depende totalmente del caudal de las redes de fluidos", - - "create.ponder.hose_pulley_infinite.header": "Llenado y drenaje pasivo de grandes masas de fluido", - "create.ponder.hose_pulley_infinite.text_1": "Al desplegar la polea de manguera en un océano lo suficientemente grande...", - "create.ponder.hose_pulley_infinite.text_2": "Proporcionará/eliminará fluidos sin afectar a la fuente", - "create.ponder.hose_pulley_infinite.text_3": "Las redes de tuberías pueden llevar fluidos de forma ilimitada desde/hacia dichas poleas", - - "create.ponder.hose_pulley_level.header": "Nivel de llenado y vaciado de las poleas de las mangueras", - "create.ponder.hose_pulley_level.text_1": "Mientras esté totalmente retraída, la polea de la manguera no puede funcionar", - "create.ponder.hose_pulley_level.text_2": "El drenaje va de arriba a abajo", - "create.ponder.hose_pulley_level.text_3": "El nivel de la superficie terminará justo debajo de donde termina la manguera", - "create.ponder.hose_pulley_level.text_4": "El llenado va de abajo a arriba", - "create.ponder.hose_pulley_level.text_5": "La piscina llena no crecerá más allá de la capa por encima del extremo de la manguera", - - "create.ponder.item_drain.header": "Vaciar contenedores de fluidos mediante drenajes de objetos", - "create.ponder.item_drain.text_1": "Los drenajes de objetos pueden extraer los fluidos de los objetos", - "create.ponder.item_drain.text_2": "Haz clic derecho para verter los fluidos de tu objeto retenido en él", - "create.ponder.item_drain.text_3": "Cuando los artículos se insertan desde el lado...", - "create.ponder.item_drain.text_4": "...ruedan a través, vaciando su líquido contenido", - "create.ponder.item_drain.text_5": "Las redes de tuberías pueden ahora extraer el fluido del buffer interno de los desagües", - - "create.ponder.large_cogwheel.header": "Transmitir fuerza rotacional mediante engranajes grandes", - "create.ponder.large_cogwheel.text_1": "Los engranajes grandes pueden conectarse entre sí en ángulo recto", - "create.ponder.large_cogwheel.text_2": "Ayudarán a transmitir la velocidad transportada a otros ejes de rotación.", - - "create.ponder.linear_chassis_attachment.header": "Fijar bloques mediante el chasis lineal", - "create.ponder.linear_chassis_attachment.text_1": "Las caras abiertas de un chasis lineal pueden hacerse pegajosas", - "create.ponder.linear_chassis_attachment.text_2": "Haz clic de nuevo para que se pegue el lado opuesto", - "create.ponder.linear_chassis_attachment.text_3": "Mayús izdo + clic derecho con la mano vacía para eliminar el pegamento", - "create.ponder.linear_chassis_attachment.text_4": "Las caras pegadas del chasis lineal fijarán una línea de bloques delante de él", - "create.ponder.linear_chassis_attachment.text_5": "Utilizando una llave inglesa, se puede especificar un rango preciso", - "create.ponder.linear_chassis_attachment.text_6": "Manteniendo pulsada la tecla [Ctrl] y usando la rueda central del ratón, se ajusta el rango de todos los bloques de chasis adjuntos", - "create.ponder.linear_chassis_attachment.text_7": "Para fijar los bloques a cualquier otro lado es necesario utilizar pegamento", - "create.ponder.linear_chassis_attachment.text_8": "Utilizando esta mecánica, las estructuras de cualquier forma pueden moverse como un artilugio", - - "create.ponder.linear_chassis_group.header": "Mover chasis lineales en grupos", - "create.ponder.linear_chassis_group.text_1": "Los chasis lineales se conectan a los bloques de chasis idénticos que se encuentren a su lado", - "create.ponder.linear_chassis_group.text_2": "Cuando uno es movido por un artilugio, los otros son arrastrados con él", - "create.ponder.linear_chassis_group.text_3": "Los chasis de otro tipo u orientados en otra dirección no se fijan", - - "create.ponder.mechanical_arm.header": "Configurar los brazos mecánicos", - "create.ponder.mechanical_arm.text_1": "A los brazos mecánicos hay que asignarles sus entradas y salidas antes de colocarlos", - "create.ponder.mechanical_arm.text_2": "Clic derecho en los inventarios mientras mantiene el brazo mecánico para asignarlos como objetivos", - "create.ponder.mechanical_arm.text_3": "Clic derecho denuevo para alternar entre la entrada (azul) y la salida (naranja)", - "create.ponder.mechanical_arm.text_4": "Clic izquierdo en los componentes para eliminar su selección", - "create.ponder.mechanical_arm.text_5": "Una vez colocado, el brazo mecánico apuntará a los bloques seleccionados previamente", - "create.ponder.mechanical_arm.text_6": "Pueden tener cualquier cantidad de entradas y salidas dentro de su rango", - "create.ponder.mechanical_arm.text_7": "Sin embargo, no se puede interactuar directamente con todos los tipos de inventario", - "create.ponder.mechanical_arm.text_8": "Los embudos y depósitos pueden ayudar a salvar esa distancia", - - "create.ponder.mechanical_arm_filtering.header": "Filtrar salidas del brazo mecánico", - "create.ponder.mechanical_arm_filtering.text_1": "Entradas", - "create.ponder.mechanical_arm_filtering.text_2": "Salidas", - "create.ponder.mechanical_arm_filtering.text_3": "A veces es conveniente restringir los objetivos del brazo mecánico haciendo coincidir un filtro", - "create.ponder.mechanical_arm_filtering.text_4": "Por sí mismos no ofrecen ninguna opción de filtrado", - "create.ponder.mechanical_arm_filtering.text_5": "Sin embargo, los embudos de latón como objetivos comunican su propio filtro al brazo", - "create.ponder.mechanical_arm_filtering.text_6": "El brazo mecánico es lo suficientemente inteligente como para no recoger objetos que no podría distribuir", - - "create.ponder.mechanical_arm_modes.header": "Modos de distribución del brazo mecánico", - "create.ponder.mechanical_arm_modes.text_1": "Entradas", - "create.ponder.mechanical_arm_modes.text_2": "Salidas", - "create.ponder.mechanical_arm_modes.text_3": "Siempre que un brazo tenga que elegir entre varias salidas válidas...", - "create.ponder.mechanical_arm_modes.text_4": "...funcionará según su configuración", - "create.ponder.mechanical_arm_modes.text_5": "Usando la rueda del ratón con una llave inglesa te permitirá configurarlo", - "create.ponder.mechanical_arm_modes.text_6": "El modo Round Robin simplemente hace un ciclo a través de todas las salidas que están disponibles", - "create.ponder.mechanical_arm_modes.text_7": "Si una salida no puede admitir más objetos, se omitirá", - "create.ponder.mechanical_arm_modes.text_8": "El modo Round Robin forzado nunca omitirá las salidas, sino que esperará a que estén libres", - "create.ponder.mechanical_arm_modes.text_9": "Preferir el primero da prioridad a las salidas seleccionadas anteriormente al configurar este brazo", - - "create.ponder.mechanical_arm_redstone.header": "Controlar brazos mecánicos con redstone", - "create.ponder.mechanical_arm_redstone.text_1": "Cuando se alimentan con redstone, los brazos mecánicos no se activan", - "create.ponder.mechanical_arm_redstone.text_2": "Antes de detenerse, terminará los ciclos iniciados", - "create.ponder.mechanical_arm_redstone.text_3": "Así, un pulso negativo puede utilizarse para activar exactamente un ciclo de activación", - - "create.ponder.mechanical_bearing.header": "Mover estructuras mediante el rodamiento mecánico", - "create.ponder.mechanical_bearing.text_1": "Los rodamientos mecánicos se fijan al bloque que tienen delante", - "create.ponder.mechanical_bearing.text_2": "Al recibir fuerza rotacional, la ensamblará en un artilugio giratorio", - - "create.ponder.mechanical_crafter.header": "Configurar ensambladores mecánicos", - "create.ponder.mechanical_crafter.text_1": "Se puede utilizar una serie de ensambladores mecánicos para automatizar cualquier receta de elaboración.", - "create.ponder.mechanical_crafter.text_2": "Usando una llave inglesa, puedes establecer los caminos de los ensambladores ", - "create.ponder.mechanical_crafter.text_3": "Para que la configuración sea válida, todos los caminos tienen que converger en una salida, en cualquiera de los lados", - "create.ponder.mechanical_crafter.text_4": "Los puertos de salida de objetos se colocarán en un inventario a la salida", - "create.ponder.mechanical_crafter.text_5": "Los ensambladores mecánicos requieren fuerza rotacional para funcionar", - "create.ponder.mechanical_crafter.text_6": "Haga clic derecho en la parte delantera para insertar objetos manualmente", - "create.ponder.mechanical_crafter.text_7": "Una vez que cada ranura de una ruta contenga un objeto, comenzará el proceso de elaboración", - "create.ponder.mechanical_crafter.text_8": "Para las recetas que no ocupen totalmente la instalación del ensamblador, se puede forzar el arranque utilizando un pulso de redstone", - - "create.ponder.mechanical_crafter_connect.header": "Conectar inventarios a los ensambladores mecánicos", - "create.ponder.mechanical_crafter_connect.text_1": "Los objetos pueden ser insertados a los ensambladores mecánicos automáticamente", - "create.ponder.mechanical_crafter_connect.text_2": "Utilizando la llave inglesa a sus espaldas, las entradas pueden combinarse", - "create.ponder.mechanical_crafter_connect.text_3": "Ahora se puede acceder a todos los ensambladores mecánicos conectados por la misma ubicación de entrada", - - "create.ponder.mechanical_crafter_covers.header": "Cubrir las ranuras de los ensambladores mecánicos", - "create.ponder.mechanical_crafter_covers.text_1": "Algunas recetas requerirán ensambladores mecánicos adicionales para salvar las brechas en el camino", - "create.ponder.mechanical_crafter_covers.text_2": "Utilizando las tapas de ranuras del ensamblador mecánico, pueden actuar como una ranura vacía a su disposición", - "create.ponder.mechanical_crafter_covers.text_3": "Las entradas compartidas creadas con la llave inglesa en la parte posterior también pueden llegar a través de los ensambladores revestidos", - - "create.ponder.mechanical_drill.header": "Romper bloques con el taladro mecánico", - "create.ponder.mechanical_drill.text_1": "Cuando se le aplica fuerza rotacional, el taladro mecánico rompe los bloques que tiene delante.", - "create.ponder.mechanical_drill.text_2": "Su velocidad de trabajo depende de la fuerza rotacional suministrada", - - "create.ponder.mechanical_drill_contraption.header": "Usar taladros mecánicos en artilugios", - "create.ponder.mechanical_drill_contraption.text_1": "Siempre que los taladros mecánicos se muevan como parte de un artilugio animado...", - "create.ponder.mechanical_drill_contraption.text_2": "...romperán los bloques por los que artilugio los hace pasar", - - "create.ponder.mechanical_harvester.header": "Utilizar cosechadoras mecánicas en artilugios", - "create.ponder.mechanical_harvester.text_1": "Siempre que las cosechadoras mecánicas se muevan como parte de un artilugio animado...", - "create.ponder.mechanical_harvester.text_2": "...recogerán y repondrán los cultivos maduros en su camino", - - "create.ponder.mechanical_mixer.header": "Procesar objetos con la mezcladora mecánica", - "create.ponder.mechanical_mixer.text_1": "Con una mezcladora mecánica y una cuenca, se pueden automatizar algunas recetas", - "create.ponder.mechanical_mixer.text_2": "Las recetas disponibles incluyen cualquier receta de elaboración amorfa, además de un par de recetas adicionales", - "create.ponder.mechanical_mixer.text_3": "Algunas de esas recetas pueden requerir el calor de un quemador de blaze", - "create.ponder.mechanical_mixer.text_4": "La ranura para filtros se puede utilizar en caso de que dos recetas sean conflictivas.", - - "create.ponder.mechanical_piston.header": "Mover estructuras mediante pistones mecánicos", - "create.ponder.mechanical_piston.text_1": "Los pistones mecánicos pueden mover los bloques que tienen delante", - "create.ponder.mechanical_piston.text_2": "La velocidad y la dirección del movimiento dependen de la fuerza rotacional suministrada", - "create.ponder.mechanical_piston.text_3": "Los pistones mecánicos pegajosos pueden tirar de los bloques unidos hacia atrás", - - "create.ponder.mechanical_piston_modes.header": "Modos de movimiento del pistón mecánico", - "create.ponder.mechanical_piston_modes.text_1": "Cuando los pistones mecánicos dejan de moverse, la estructura movida vuelve a los bloques", - "create.ponder.mechanical_piston_modes.text_2": "Puede configurarse para que no vuelva nunca a los bloques sólidos, o sólo en la ubicación en la que comenzó", - - "create.ponder.mechanical_plough.header": "Utilizar arados mecánicos en los artilugios", - "create.ponder.mechanical_plough.text_1": "Cuando los arados mecánicos se mueven como parte de un artilugio animado...", - "create.ponder.mechanical_plough.text_2": "...romperán los bloques sin un hitbox de colisión sólido", - "create.ponder.mechanical_plough.text_3": "Además, pueden crear tierras de cultivo", - "create.ponder.mechanical_plough.text_4": "...también pueden lanzar entidades sin dañarlas", - - "create.ponder.mechanical_press.header": "Procesar objetos con la prensa mecánica", - "create.ponder.mechanical_press.text_1": "La prensa mecánica puede procesar los objetos proporcionados por debajo de ella", - "create.ponder.mechanical_press.text_2": "Los objetos de entrada pueden soltarse o colocarse en un depósito bajo la prensa", - "create.ponder.mechanical_press.text_3": "Cuando los objetos se proporcionan en una 'cinta'...", - "create.ponder.mechanical_press.text_4": "...la prensa mecánica los retendrá y procesará automáticamente", - - "create.ponder.mechanical_press_compacting.header": "Compactar objetos con la prensa mecánica", - "create.ponder.mechanical_press_compacting.text_1": "Al presionar los objetos que se encuentran en una cuenca, éstos se compactan.", - "create.ponder.mechanical_press_compacting.text_2": "La compactación incluye cualquier receta de elaboración de 2x2 o 3x3 rellena, además de un par extra", - "create.ponder.mechanical_press_compacting.text_3": "Algunas de esas recetas pueden requerir el calor de un quemador de blaze", - "create.ponder.mechanical_press_compacting.text_4": "La ranura para filtros se puede utilizar en caso de que dos recetas sean conflictivas.", - - "create.ponder.mechanical_pump_flow.header": "Transportar fluidos mediante bombas mecánicas", - "create.ponder.mechanical_pump_flow.text_1": "Las bombas mecánicas gobiernan el flujo de sus redes de tuberías anexas", - "create.ponder.mechanical_pump_flow.text_2": "Cuando están alimentadas, su flecha indica la dirección del flujo", - "create.ponder.mechanical_pump_flow.text_3": "La red de atrás está ahora tirando de fluidos...", - "create.ponder.mechanical_pump_flow.text_4": "...mientras la red de enfrente la transfiere hacia el exterior", - "create.ponder.mechanical_pump_flow.text_5": "Al invertir la rotación de la entrada se invierte el sentido del flujo", - "create.ponder.mechanical_pump_flow.text_6": "Utilice una llave inglesa para invertir la orientación de las bombas manualmente", - - "create.ponder.mechanical_pump_speed.header": "Rendimiento de las bombas mecánicas", - "create.ponder.mechanical_pump_speed.text_1": "Independientemente de la velocidad, las bombas mecánicas afectan a las tuberías conectadas hasta 16 bloques de distancia", - "create.ponder.mechanical_pump_speed.text_2": "Acelerar la rotación de entrada cambia la velocidad de propagación del flujo...", - "create.ponder.mechanical_pump_speed.text_3": "...así como la rapidez con la que se transfieren los fluidos", - "create.ponder.mechanical_pump_speed.text_4": "Las bombas pueden combinar sus rendimientos en redes de tuberías compartidas", - "create.ponder.mechanical_pump_speed.text_5": "Alternar su orientación puede ayudar a alinear sus direcciones de flujo", - - "create.ponder.mechanical_saw_breaker.header": "Cortar árboles con la sierra mecánica", - "create.ponder.mechanical_saw_breaker.text_1": "Cuando se le da una fuerza rotacional, la sierra mecánica cortará los árboles que estén directamente frente a ella", - "create.ponder.mechanical_saw_breaker.text_2": "Para poder cortar el árbol por completo, la sierra tiene que romper el último bloque que lo une al suelo", - - "create.ponder.mechanical_saw_contraption.header": "Utilizar sierras mecánicas en artilugios", - "create.ponder.mechanical_saw_contraption.text_1": "Cuando las sierras mecánicas se mueven como parte de un artilugio animado...", - "create.ponder.mechanical_saw_contraption.text_2": "...cortarán cualquier árbol con el que el artilugio se tope", - - "create.ponder.mechanical_saw_processing.header": "Procesar objetos en la sierra mecánica", - "create.ponder.mechanical_saw_processing.text_1": "Las sierras mecánicas orientadas hacia arriba pueden procesar una variedad de objetos", - "create.ponder.mechanical_saw_processing.text_2": "El objeto procesado siempre se mueve en contra de la fuerza rotacional de la sierra", - "create.ponder.mechanical_saw_processing.text_3": "Las sierras mecánicas pueden trabajar en línea con las correas mecánicas", - "create.ponder.mechanical_saw_processing.text_4": "Cuando un ingrediente tiene varios resultados posibles, la ranura para filtros puede especificarlo", - "create.ponder.mechanical_saw_processing.text_5": "Sin filtro, al contrario, la sierra mecánica pasaría por todos los resultados", - - "create.ponder.millstone.header": "Procesar objetos en la piedra de molino", - "create.ponder.millstone.text_1": "Las piedras de molino procesan los objetos mediante la molienda", - "create.ponder.millstone.text_2": "Se pueden accionar lateralmente mediante engranajes...", - "create.ponder.millstone.text_3": "... y tirar o insertar objetos en la parte superior", - "create.ponder.millstone.text_4": "Después de un tiempo, el resultado se puede obtener usando el clic derecho del ratón", - "create.ponder.millstone.text_5": "Las salidas también pueden extraerse mediante la automatización", - - "create.ponder.nixie_tube.header": "Usar los tubos Nixie", - "create.ponder.nixie_tube.text_1": "Cuando son alimentados con redstone, los tubos nixie mostrarán la fuerza de las señales de redstone", - "create.ponder.nixie_tube.text_2": "Con las etiquetas editadas en un yunque, pueden mostar un texto personalizado", - "create.ponder.nixie_tube.text_3": "Haga clic derecho con un tinte para cambiar su color de visualización", - - "create.ponder.piston_pole.header": "Pértigas de extensión de pistones", - "create.ponder.piston_pole.text_1": "Sin las pértigas de extensión unidas, un pistón mecánico no puede moverse", - "create.ponder.piston_pole.text_2": "La longitud de la pértiga añadida en su parte posterior determina el rango de alcance", - - "create.ponder.portable_fluid_interface.header": "Interfaz de fluidos portátil", - "create.ponder.portable_fluid_interface.text_1": "No se puede acceder a los depósitos de fluidos de los artilugios en movimiento por ninguna tubería", - "create.ponder.portable_fluid_interface.text_2": "Este componente puede interactuar con los depósitos de fluidos sin necesidad de detener el artilugio", - "create.ponder.portable_fluid_interface.text_3": "Coloca una segunda con un espacio de 1 o 2 bloques entre ellas", - "create.ponder.portable_fluid_interface.text_4": "Cada vez que pasen por delante de la otra, entablarán una conexión", - "create.ponder.portable_fluid_interface.text_5": "Mientras esté activada, la interfaz estacionaria representará TODOS los tanques del artilugio", - "create.ponder.portable_fluid_interface.text_6": "Ahora se puede introducir el fluido...", - "create.ponder.portable_fluid_interface.text_7": "...o extraerlo del artilugio", - "create.ponder.portable_fluid_interface.text_8": "Cuando no se intercambien contenidos durante un tiempo, el artilugio seguirá su camino", - - "create.ponder.portable_storage_interface.header": "Interfaz de almacenamiento portátil", - "create.ponder.portable_storage_interface.text_1": "Los jugadores no pueden acceder a los inventarios de los artilugios en movimiento.", - "create.ponder.portable_storage_interface.text_2": "Este componente puede interactuar con el almacenamiento sin necesidad de detener el artilugio.", - "create.ponder.portable_storage_interface.text_3": "Coloca una segunda unidad con un espacio de 1 o 2 bloques entre ellas", - "create.ponder.portable_storage_interface.text_4": "Cada vez que pasen por delante del otro, entablarán una conexión", - "create.ponder.portable_storage_interface.text_5": "Mientras esté conectada, la interfaz fija representará TODOS los inventarios del artilugio", - "create.ponder.portable_storage_interface.text_6": "Ahora pueden insertarse objetos...", - "create.ponder.portable_storage_interface.text_7": "...o extraerse", - "create.ponder.portable_storage_interface.text_8": "Cuando no se hayan intercambiado objetos durante un tiempo, el artilugio seguirá su camino", - - "create.ponder.portable_storage_interface_redstone.header": "Interfaz de almacenamiento portátil controlada por redstone", - "create.ponder.portable_storage_interface_redstone.text_1": "La energía de redstone impedirá que las interfaces de almacenamiento portátil se conecten", - - "create.ponder.powered_latch.header": "Controlar señales mediante la palanca motorizada", - "create.ponder.powered_latch.text_1": "Las palancas motorizadas son palancas controlables por redstone", - "create.ponder.powered_latch.text_2": "Las señales en la parte trasera la encienden", - "create.ponder.powered_latch.text_3": "Las señales sobre un lateral la vuelven a apagar", - "create.ponder.powered_latch.text_4": "Las palancas motorizadas también se pueden accionar manualmente", - - "create.ponder.powered_toggle_latch.header": "Controlar señales mediante la palanca de cierre motorizada", - "create.ponder.powered_toggle_latch.text_1": "Las palancas de cierre motorizadas son palancas controlables por redstone", - "create.ponder.powered_toggle_latch.text_2": "Las señales en la parte trasera cambiarán su estado...", - "create.ponder.powered_toggle_latch.text_3": "...encender y apagar", - "create.ponder.powered_toggle_latch.text_4": "Las palancas de cierre motorizadas también se pueden accionar manualmente", - - "create.ponder.pulse_repeater.header": "Controlar señales mediante repetidores de pulsos", - "create.ponder.pulse_repeater.text_1": "Los repetidores de pulsos acortan cualquier señal de redstone a un solo pulso", - - "create.ponder.radial_chassis.header": "Fijar bloques mediante chasis radiales", - "create.ponder.radial_chassis.text_1": "Los chasis radiales se conectan a bloques de chasis idénticos en una fila", - "create.ponder.radial_chassis.text_2": "Cuando uno es movido por un artilugio, los otros son arrastrados con él", - "create.ponder.radial_chassis.text_3": "Las caras laterales de un chasis radial pueden hacerse adhesivas", - "create.ponder.radial_chassis.text_4": "Haga clic de nuevo para que todos los demás lados sean pegajosos", - "create.ponder.radial_chassis.text_5": "Mayús izdo + clic derecho con la mano vacía para eliminar el pegamento", - "create.ponder.radial_chassis.text_6": "Cada vez que un bloque está junto a una cara pegajosa...", - "create.ponder.radial_chassis.text_7": "...adjuntará todos los bloques alcanzables dentro de un radio en esa capa", - "create.ponder.radial_chassis.text_8": "Con una llave inglesa y usando la rueda de desplazamiento del ratón se puede especificar un radio preciso", - "create.ponder.radial_chassis.text_9": "Los bloques no alcanzables por ninguna cara adhesiva no se fijarán", - - "create.ponder.redstone_contact.header": "Contactos de redstone", - "create.ponder.redstone_contact.text_1": "Los contactos de redstone enfrentados emitirán una señal de redstone", - "create.ponder.redstone_contact.text_2": "Esto sigue siendo válido cuando uno de ellos forma parte de un artilugio en movimiento", - - "create.ponder.redstone_link.header": "Usar los enlaces de redstone", - "create.ponder.redstone_link.text_1": "Los enlaces de redstone pueden transmitir señales redstone de forma inalámbrica", - "create.ponder.redstone_link.text_2": "Mayús izdo + clic derecho para cambiar el modo de recepción", - "create.ponder.redstone_link.text_3": "Un simple clic derecho con una llave inglesa puede hacer lo mismo", - "create.ponder.redstone_link.text_4": "Los receptores emiten la potencia de redstone de los transmisores en 128 bloques", - "create.ponder.redstone_link.text_5": "Colocando objetos en las dos ranuras puede especificar una frecuencia", - "create.ponder.redstone_link.text_6": "Sólo se comunicarán los enlaces con frecuencias coincidentes", - - "create.ponder.rope_pulley.header": "Mover estructuras con poleas de cuerda", - "create.ponder.rope_pulley.text_1": "Las poleas de cuerda pueden mover los bloques verticalmente cuando se les aplica una fuerza rotacional", - "create.ponder.rope_pulley.text_2": "La dirección y la velocidad del movimiento dependen de la fuerza rotacional suministrada", - - "create.ponder.rope_pulley_attachment.header": "Mover poleas como parte de un artilugio", - "create.ponder.rope_pulley_attachment.text_1": "Siempre que las poleas de cuerda sean movidas por un artilugio...", - "create.ponder.rope_pulley_attachment.text_2": "...su estructura adjunta será arrastrada con ella", - "create.ponder.rope_pulley_attachment.text_3": "Tenga en cuenta que las poleas de cuerda sólo se mueven cuando están paradas", - - "create.ponder.rope_pulley_modes.header": "Modos de movimiento de la polea de cuerda", - "create.ponder.rope_pulley_modes.text_1": "Cuando las poleas de cuerda dejan de moverse, la estructura movida vuelve a los bloques", - "create.ponder.rope_pulley_modes.text_2": "Puede configurarse para que no vuelva nunca a los bloques sólidos, o sólo en la ubicación en la que comenzó", - - "create.ponder.rotation_speed_controller.header": "Usar el controlador de velocidad rotacional", - "create.ponder.rotation_speed_controller.text_1": "Los controladores de velocidad rotacional transmiten la rotación de su eje a un engranaje grande situado encima.", - "create.ponder.rotation_speed_controller.text_2": "Utilizando la rueda de desplazamiento del ratón, puede configurarse la velocidad rotacional", - - "create.ponder.sail.header": "Montar molinos de viento usando velas", - "create.ponder.sail.text_1": "Las velas son bloques muy útiles para crear molinos de viento", - "create.ponder.sail.text_2": "Se fijarán a los bloques y entre sí sin necesidad de pegamento o bloques de chasis", - "create.ponder.sail.text_3": "Clic derecho con un tinte para pintarlas", - "create.ponder.sail.text_4": "Clic derecho con una tijera para volver a convertirlas en marcos", - - "create.ponder.sail_frame.header": "Montar molinos de viento con marcos de vela", - "create.ponder.sail_frame.text_1": "Los marcos de vela son prácticos bloques para crear molinos de viento", - "create.ponder.sail_frame.text_2": "Se fijarán a los bloques y entre sí sin necesidad de pegamento o bloques de chasis", - - "create.ponder.sequenced_gearshift.header": "Controlar la velocidad de rotación mediante la caja de cambios secuenciales", - "create.ponder.sequenced_gearshift.text_1": "La caja de cambios secuencial retransmite la rotación siguiendo una lista cronometrada de instrucciones", - "create.ponder.sequenced_gearshift.text_2": "Haga clic con el botón derecho para abrir la interfaz de configuración", - "create.ponder.sequenced_gearshift.text_3": "Al recibir una señal de redstone, comenzará a ejecutar su secuencia configurada", - "create.ponder.sequenced_gearshift.text_4": "Una vez terminado, espera la siguiente señal de redstone y vuelve a empezar", - "create.ponder.sequenced_gearshift.text_5": "Se puede utilizar un comparador de redstone para leer el progreso actual", - - "create.ponder.shaft.header": "Transmitir fuerza rotacional mediante ejes", - "create.ponder.shaft.text_1": "Los ejes transmiten la rotación en línea recta.", - - "create.ponder.shaft_casing.header": "Ejes revestidos", - "create.ponder.shaft_casing.text_1": "Puedes utilizar el revestidor de latón o de andesita para decorar tus ejes", - - "create.ponder.smart_chute.header": "Filtrar objetos mediante ductos inteligentes", - "create.ponder.smart_chute.text_1": "Los ductos inteligentes son ductos verticales con control adicional", - "create.ponder.smart_chute.text_2": "Los objetos en la ranura para filtros especifican lo que pueden extraer y transferir exactamente", - "create.ponder.smart_chute.text_3": "Usa la rueda del ratón para especificar el tamaño de la pila extraída", - "create.ponder.smart_chute.text_4": "La energía de redstone impedirá que funcionen.", - - "create.ponder.smart_pipe.header": "Controlar el flujo de fluidos mediante tuberías inteligentes", - "create.ponder.smart_pipe.text_1": "Las tuberías inteligentes pueden ayudar a controlar los flujos por tipo de fluido", - "create.ponder.smart_pipe.text_2": "Cuando se colocan directamente en la fuente, pueden especificar el tipo de fluido a extraer", - "create.ponder.smart_pipe.text_3": "Simplemente haga clic derecho en su ranura de filtro con cualquier elemento que contenga el fluido deseado", - "create.ponder.smart_pipe.text_4": "Cuando se colocan detrás de una red de tuberías, las tuberías inteligentes sólo dejan que los fluidos coincidentes continúen", - - "create.ponder.speedometer.header": "Controlar la información cinética mediante el velocímetro", - "create.ponder.speedometer.text_1": "El velocímetro muestra la velocidad actual de los componentes conectados", - "create.ponder.speedometer.text_2": "Cuando se usan las gafas del constructor, el jugador puede obtener información más detallada del medidor", - "create.ponder.speedometer.text_3": "Los comparadores pueden emitir señales analógicas de redstone en relación con las mediciones del velocímetro", - - "create.ponder.spout_filling.header": "Llenar objetos con un surtidor", - "create.ponder.spout_filling.text_1": "El surtidor puede llenar los elementos de retención de fluidos que se encuentran debajo de él", - "create.ponder.spout_filling.text_2": "No se puede acceder manualmente al contenido de un surtidor", - "create.ponder.spout_filling.text_3": "En su lugar, se pueden utilizar tuberías para suministrarle fluidos", - "create.ponder.spout_filling.text_4": "Los objetos de entrada pueden colocarse en un depósito bajo el surtidor", - "create.ponder.spout_filling.text_5": "Cuando los artículos se proporcionan en una cinta...", - "create.ponder.spout_filling.text_6": "El surtidor los retendrá y procesará automáticamente", - - "create.ponder.stabilized_bearings.header": "Estabilizar artilugios", - "create.ponder.stabilized_bearings.text_1": "Siempre que los rodamientos mecánicos formen parte de una estructura móvil...", - "create.ponder.stabilized_bearings.text_2": "...intentarán mantenerse derechos", - "create.ponder.stabilized_bearings.text_3": "Una vez más, el rodamiento se unirá al bloque de enfrente", - "create.ponder.stabilized_bearings.text_4": "Como resultado, todo el sub-artilugio se mantendrá en posición vertical", - - "create.ponder.sticker.header": "Fijar bloques con stickers", - "create.ponder.sticker.text_1": "Los stickers son ideales para la fijación de bloques controlados por redstone", - "create.ponder.sticker.text_2": "Al recibir una señal, cambiarán su estado", - "create.ponder.sticker.text_3": "Si ahora se mueve en un artilugio, el bloque se moverá con él", - "create.ponder.sticker.text_4": "Si se vuelve a activar, el bloque dejará de estar fijado", - - "create.ponder.stressometer.header": "Supervisar la información cinética con el estresómetro", - "create.ponder.stressometer.text_1": "El estresómetro muestra la capacidad de estrés actual de la red cinética conectada", - "create.ponder.stressometer.text_2": "Cuando se usan las gafas del constructor, el jugador puede obtener información más detallada del medidor", - "create.ponder.stressometer.text_3": "Los comparadores pueden emitir señales analógicas de redstone en relación con las mediciones del estresómetro", - - "create.ponder.super_glue.header": "Fijar bloques con pegamento", - "create.ponder.super_glue.text_1": "Se puede utilizar pegamento entre dos bloques cualquiera", - "create.ponder.super_glue.text_2": "Los bloques fijados se moverán juntos cuando se ensamblen en un artilugio", - "create.ponder.super_glue.text_3": "Cada vez que el pegamento es sostenido en la mano...", - "create.ponder.super_glue.text_4": "...los bloques añadidos se pegarán a la cara en la que fueron colocados automáticamente", - "create.ponder.super_glue.text_5": "El pegamento se puede quitar con un clic izquierdo", - - "create.ponder.valve_handle.header": "Generar fuerza rotacional mediante asas de válvula", - "create.ponder.valve_handle.text_1": "Los jugadores pueden utilizar las asas de válvulas para aplicar fuerza rotacional manualmente", - "create.ponder.valve_handle.text_2": "Mantén pulsado el clic derecho para rotar en sentido contrario a las agujas del reloj", - "create.ponder.valve_handle.text_3": "Su velocidad de transmisión es lenta y precisa", - "create.ponder.valve_handle.text_4": "Mayús izdo + clic derecho para rotar en el sentido de las agujas del reloj", - "create.ponder.valve_handle.text_5": "Las asas de las válvulas pueden teñirse con fines estéticos", - - "create.ponder.valve_pipe.header": "Controlar el flujo de fluidos mediante válvulas", - "create.ponder.valve_pipe.text_1": "Las tuberías con válvulas ayudan a controlar los fluidos que se propagan por las redes de tuberías", - "create.ponder.valve_pipe.text_2": "Su entrada en el eje controla si el fluido puede pasar por", - "create.ponder.valve_pipe.text_3": "Dada la fuerza de rotación en la dirección de apertura, la válvula se abrirá", - "create.ponder.valve_pipe.text_4": "Se puede volver a cerrar invirtiendo el giro de entrada", - - "create.ponder.water_wheel.header": "Generar fuerza rotacional mediante ruedas hidráulicas", - "create.ponder.water_wheel.text_1": "Las ruedas hidráulicas extraen la fuerza de las corrientes de agua adyacentes", - "create.ponder.water_wheel.text_2": "Cuantas más caras se alimenten, más rápido girará", - "create.ponder.water_wheel.text_3": "Las paletas de las ruedas deben estar orientadas en contra del flujo", - "create.ponder.water_wheel.text_4": "Orientadas hacia el lado contrario, no serán tan eficaces", - - "create.ponder.weighted_ejector.header": "Usar eyectores de peso", - "create.ponder.weighted_ejector.text_1": "Mayús izdo + clic derecho sosteniendo un eyector de peso para seleccionar la ubicación de destino", - "create.ponder.weighted_ejector.text_10": "Ahora estára limitado a este tamaño de pila, y sólo se activara cuando su pila retenida alcance esta cantidad", - "create.ponder.weighted_ejector.text_11": "Otras entidades activarán el eyector al pisarlos", - "create.ponder.weighted_ejector.text_2": "El eyector colocado lanzará ahora los objetos al lugar marcado", - "create.ponder.weighted_ejector.text_3": "Un objetivo válido puede estar a cualquier altura o distancia dentro del alcance", - "create.ponder.weighted_ejector.text_4": "Sin embargo, no pueden estar a un costado", - "create.ponder.weighted_ejector.text_5": "Si no se ha seleccionado ningún objetivo válido, simplemente se dirigirá al bloque que se encuentra justo delante", - "create.ponder.weighted_ejector.text_6": "Suministrale fuerza rotacional para cargarlo", - "create.ponder.weighted_ejector.text_7": "Los objetos colocados en el eyector hacen que se dispare", - "create.ponder.weighted_ejector.text_8": "Si se dirigen a un inventario, el eyector esperará hasta que haya espacio", - "create.ponder.weighted_ejector.text_9": "Con la llave inglesa se puede configurar el tamaño de pila requerido", - - "create.ponder.weighted_ejector_redstone.header": "Controlar los eyectores de peso con redstone", - "create.ponder.weighted_ejector_redstone.text_1": "Cuando se alimentan con redstone, los eyectores no se activan", - "create.ponder.weighted_ejector_redstone.text_2": "Además, los observadores de contenido pueden detectar cuando los eyectores se activan", - - "create.ponder.weighted_ejector_tunnel.header": "Dividir pilas de objetos mediante eyectores de peso", - "create.ponder.weighted_ejector_tunnel.text_1": "En combinación con los túneles de latón, los eyectores de peso pueden dividir las pilas de objetos en cantidades específicas", - "create.ponder.weighted_ejector_tunnel.text_2": "En primer lugar, configure el túnel de latón en 'Preferir lo más cercano', para dar prioridad a su salida lateral", - "create.ponder.weighted_ejector_tunnel.text_3": "El tamaño de la pila fijado en el eyector determina ahora la cantidad que se va a dividir", - "create.ponder.weighted_ejector_tunnel.text_4": "Mientras una nueva pila del tamaño configurado se expulse por la salida lateral...", - "create.ponder.weighted_ejector_tunnel.text_5": "...el resto seguirá su camino", - - "create.ponder.windmill_source.header": "Generar fuerza rotacional mediante rodamientos del molino de viento", - "create.ponder.windmill_source.text_1": "Los rodamientos del molino de viento se fijan al bloque que tienen delante", - "create.ponder.windmill_source.text_2": "Si se unen suficientes bloques tipo vela al bloque, éste puede actuar como un molino de viento", - "create.ponder.windmill_source.text_3": "Activado con un clic derecho, el rodamiento del molino de viento comenzará a proporcionar fuerza rotacional", - "create.ponder.windmill_source.text_4": "La cantidad de bloques de vela determina su velocidad de rotación", - "create.ponder.windmill_source.text_5": "Utiliza una llave inglesa para configurar su sentido de rotación", - "create.ponder.windmill_source.text_6": "Haga clic derecho sobre el rodamiento del molino en cualquier momento para detener y editar la estructura de nuevo", - - "create.ponder.windmill_structure.header": "Artilugios para molinos de viento", - "create.ponder.windmill_structure.text_1": "Cualquier estructura puede contar como un molino de viento válido, siempre que contenga al menos 8 bloques tipo vela.", - - "_": "Thank you for translating Create!" - -} From 2f51cfe983e4eb43a222e66b318a126856859316 Mon Sep 17 00:00:00 2001 From: Nekrodamus Date: Sat, 7 Aug 2021 17:07:39 -0300 Subject: [PATCH 19/79] Delete es_cl.json --- .../resources/assets/create/lang/es_cl.json | 2305 ----------------- 1 file changed, 2305 deletions(-) delete mode 100644 src/main/resources/assets/create/lang/es_cl.json diff --git a/src/main/resources/assets/create/lang/es_cl.json b/src/main/resources/assets/create/lang/es_cl.json deleted file mode 100644 index 504694aab..000000000 --- a/src/main/resources/assets/create/lang/es_cl.json +++ /dev/null @@ -1,2305 +0,0 @@ -{ - - "_": "->------------------------] Game Elements [------------------------<-", - - "block.create.acacia_window": "Ventana de acacia", - "block.create.acacia_window_pane": "Panel de ventana de acacia", - "block.create.adjustable_chain_gearshift": "Cadena de transmisión ajustable", - "block.create.adjustable_crate": "Caja ajustable", - "block.create.adjustable_pulse_repeater": "Repetidor de pulso ajustable", - "block.create.adjustable_repeater": "Repetidor ajustable", - "block.create.analog_lever": "Palanca analógica", - "block.create.andesite_belt_funnel": "Embudo de cinta de andesita", - "block.create.andesite_bricks": "Ladrillos de andesita", - "block.create.andesite_bricks_slab": "Losa de ladrillos de andesita", - "block.create.andesite_bricks_stairs": "Escaleras de ladrillos de andesita", - "block.create.andesite_bricks_wall": "Muro de ladrillos de andesita", - "block.create.andesite_casing": "Revestidor de andesita", - "block.create.andesite_cobblestone": "Adoquín de andesita", - "block.create.andesite_cobblestone_slab": "Losa de adoquín de andesita", - "block.create.andesite_cobblestone_stairs": "Escaleras de adoquines de andesita", - "block.create.andesite_cobblestone_wall": "Muro de adoquines de andesita", - "block.create.andesite_encased_shaft": "Eje revestido de andesita", - "block.create.andesite_funnel": "Embudo de andesita", - "block.create.andesite_pillar": "Poste de andesita", - "block.create.andesite_tunnel": "Túnel de Andesita", - "block.create.basin": "Cuenca", - "block.create.belt": "Cinta", - "block.create.birch_window": "Ventana de abedul", - "block.create.birch_window_pane": "Panel de ventana de abedul", - "block.create.black_nixie_tube": "Tubo Nixie negro", - "block.create.black_sail": "Vela negra", - "block.create.black_seat": "Asiento negro", - "block.create.black_valve_handle": "Asa de válvula negra", - "block.create.blaze_burner": "Quemador de Blaze", - "block.create.blue_nixie_tube": "Tubo Nixie azul", - "block.create.blue_sail": "Vela azul", - "block.create.blue_seat": "Asiento azul", - "block.create.blue_valve_handle": "Asa de válvula azul", - "block.create.brass_belt_funnel": "Embudo de cinta de latón", - "block.create.brass_block": "Bloque de latón", - "block.create.brass_casing": "Revestidor de latón", - "block.create.brass_encased_shaft": "Eje revestido de latón", - "block.create.brass_funnel": "Embudo de latón", - "block.create.brass_tunnel": "Túnel de latón", - "block.create.brown_nixie_tube": "Tubo Nixie marrón", - "block.create.brown_sail": "Vela marrón", - "block.create.brown_seat": "Asiento marrón", - "block.create.brown_valve_handle": "Asa de válvula marrón", - "block.create.cart_assembler": "Ensamblador de vagonetas", - "block.create.chiseled_dark_scoria": "Escoria oscura cincelada", - "block.create.chiseled_dolomite": "Dolomita cincelada", - "block.create.chiseled_gabbro": "Gabro cincelado", - "block.create.chiseled_limestone": "Caliza cincelada", - "block.create.chiseled_scoria": "Escoria cincelada", - "block.create.chiseled_weathered_limestone": "Piedra caliza erosionada cincelada", - "block.create.chocolate": "Chocolate", - "block.create.chute": "Ducto", - "block.create.clockwork_bearing": "Rodamiento tipo reloj", - "block.create.clutch": "Embrague", - "block.create.cogwheel": "Engranaje pequeño", - "block.create.content_observer": "Observador de contenidos", - "block.create.controller_rail": "Raíl de control", - "block.create.copper_backtank": "Depósito trasero de cobre", - "block.create.copper_block": "Bloque de cobre", - "block.create.copper_casing": "Revestidor de caliza", - "block.create.copper_ore": "Mena de cobre", - "block.create.copper_shingles": "Bloque de tejas de cobre", - "block.create.copper_tiles": "Bloque de baldosas de cobre", - "block.create.copper_valve_handle": "Asa de válvula de cobre", - "block.create.creative_crate": "Caja creativa", - "block.create.creative_fluid_tank": "Tanque de fluidos creativo", - "block.create.creative_motor": "Motor creativo", - "block.create.crimson_window": "Ventana carmesí", - "block.create.crimson_window_pane": "Panel de ventana carmesí", - "block.create.crushing_wheel": "Rueda trituradora", - "block.create.crushing_wheel_controller": "Controlador de Rueda trituradora", - "block.create.cuckoo_clock": "Reloj de cuco", - "block.create.cyan_nixie_tube": "Tubo Nixie cian", - "block.create.cyan_sail": "Vela cian", - "block.create.cyan_seat": "Asiento cian", - "block.create.cyan_valve_handle": "Asa de válvula cian", - "block.create.dark_oak_window": "Ventana de roble oscuro", - "block.create.dark_oak_window_pane": "Panel de ventana de roble oscuro", - "block.create.dark_scoria": "Escoria oscura", - "block.create.dark_scoria_bricks": "Ladrillos de escoria oscura", - "block.create.dark_scoria_bricks_slab": "Losa de ladrillos de escoria oscura", - "block.create.dark_scoria_bricks_stairs": "Escaleras de ladrillos de escoria oscura", - "block.create.dark_scoria_bricks_wall": "Muro de ladrillos de escoria oscura", - "block.create.dark_scoria_cobblestone": "Adoquines de escoria oscura", - "block.create.dark_scoria_cobblestone_slab": "Losa de adoquines de escoria oscura", - "block.create.dark_scoria_cobblestone_stairs": "Escaleras de adoquines de escoria oscura", - "block.create.dark_scoria_cobblestone_wall": "Muro de adoquines de escoria oscura", - "block.create.dark_scoria_pillar": "Pilar de escoria oscura", - "block.create.deployer": "Desplegador", - "block.create.depot": "Depósito", - "block.create.diorite_bricks": "Ladrillos de diorita", - "block.create.diorite_bricks_slab": "Losa de ladrillos de diorita", - "block.create.diorite_bricks_stairs": "Escaleras de ladrillos de diorita", - "block.create.diorite_bricks_wall": "Muro de ladrillos de diorita", - "block.create.diorite_cobblestone": "Adoquín de diorita", - "block.create.diorite_cobblestone_slab": "Losa de adoquínes de diorita", - "block.create.diorite_cobblestone_stairs": "Escaleras de adoquines de diorita", - "block.create.diorite_cobblestone_wall": "Muro de adoquines de diorita", - "block.create.diorite_pillar": "Pilar de diorita", - "block.create.dolomite": "Dolomita", - "block.create.dolomite_bricks": "Ladrillos de dolomita", - "block.create.dolomite_bricks_slab": "Losa de ladrillos de dolomita", - "block.create.dolomite_bricks_stairs": "Escaleras de ladrillos de dolomita", - "block.create.dolomite_bricks_wall": "Muro de ladrillos de dolomita", - "block.create.dolomite_cobblestone": "Adoquín de dolomita", - "block.create.dolomite_cobblestone_slab": "Losa de adoquín de dolomita", - "block.create.dolomite_cobblestone_stairs": "Escaleras de adoquines de dolomita", - "block.create.dolomite_cobblestone_wall": "Muro de adoquines de dolomita", - "block.create.dolomite_pillar": "Pilar de dolomita", - "block.create.encased_chain_drive": "Cadena de transmisión revestida", - "block.create.encased_fan": "Ventilador revestido", - "block.create.encased_fluid_pipe": "Tubería de fluidos de cobre reforzada", - "block.create.fancy_andesite_bricks": "Ladrillos de andesita elegantes", - "block.create.fancy_andesite_bricks_slab": "Ladrillos de andesita elegantes", - "block.create.fancy_andesite_bricks_stairs": "Escaleras de ladrillos de andesita elegantes", - "block.create.fancy_andesite_bricks_wall": "Muro de ladrillos de andesita elegantes", - "block.create.fancy_dark_scoria_bricks": "Ladrillos de escoria oscura elegantes", - "block.create.fancy_dark_scoria_bricks_slab": "Losa de ladrillos de escoria oscura elegantes", - "block.create.fancy_dark_scoria_bricks_stairs": "Escalera de ladrillos de escoria oscura elegantes", - "block.create.fancy_dark_scoria_bricks_wall": "Muro de ladrillos de escoria oscura elegantes", - "block.create.fancy_diorite_bricks": "Ladrillos de diorita elegantes", - "block.create.fancy_diorite_bricks_slab": "Losa de ladrillos de diorita elegantes", - "block.create.fancy_diorite_bricks_stairs": "Escaleras de ladrillos de diorita elegantes", - "block.create.fancy_diorite_bricks_wall": "Muro de ladrillos de diorita elegantes", - "block.create.fancy_dolomite_bricks": "Ladrillos de dolomita elegantes", - "block.create.fancy_dolomite_bricks_slab": "Losa de ladrillos de dolomita elegantes", - "block.create.fancy_dolomite_bricks_stairs": "Escaleras de ladrillos de dolomita elegantes", - "block.create.fancy_dolomite_bricks_wall": "Muro de ladrillos de dolomita elegantes", - "block.create.fancy_gabbro_bricks": "Ladrillos de gabro elegantes", - "block.create.fancy_gabbro_bricks_slab": "Losa de ladrillos de gabro elegantes", - "block.create.fancy_gabbro_bricks_stairs": "Escaleras de ladrillos de gabro elegantes", - "block.create.fancy_gabbro_bricks_wall": "Muro de ladrillos de gabro elegantes", - "block.create.fancy_granite_bricks": "Ladrillos de granito elegantes", - "block.create.fancy_granite_bricks_slab": "Losa de ladrillos de granito elegantes", - "block.create.fancy_granite_bricks_stairs": "Escaleras de ladrillos de granito elegantes", - "block.create.fancy_granite_bricks_wall": "Muro de ladrillos de granito elegantes", - "block.create.fancy_limestone_bricks": "Ladrillos de piedra caliza elegantes", - "block.create.fancy_limestone_bricks_slab": "Losa de ladrillos de piedra caliza elegantes", - "block.create.fancy_limestone_bricks_stairs": "Escaleras de ladrillos de piedra caliza elegantes", - "block.create.fancy_limestone_bricks_wall": "Muro de ladrillos de piedra caliza elegantes", - "block.create.fancy_scoria_bricks": "Ladrillos de escoria elegantes", - "block.create.fancy_scoria_bricks_slab": "Losa de ladrillos de escoria elegantes", - "block.create.fancy_scoria_bricks_stairs": "Escaleras de ladrillos de escoria elegantes", - "block.create.fancy_scoria_bricks_wall": "Muro de ladrillos de escoria elegantes", - "block.create.fancy_weathered_limestone_bricks": "Ladrillos de piedra de caliza erosionada elegantes", - "block.create.fancy_weathered_limestone_bricks_slab": "Losa de ladrillos de caliza erosionada elegantes", - "block.create.fancy_weathered_limestone_bricks_stairs": "Escaleras de ladrillos de caliza erosionada elegantes", - "block.create.fancy_weathered_limestone_bricks_wall": "Muro de ladrillos de caliza erosionada elegantes", - "block.create.fluid_pipe": "Tubería de fluidos de cobre", - "block.create.fluid_tank": "Depósito de fluidos", - "block.create.fluid_valve": "Válvula de fluidos", - "block.create.flywheel": "Rueda de inercia", - "block.create.framed_glass": "Cristal enmarcado", - "block.create.framed_glass_pane": "Panel de cristal enmarcado", - "block.create.furnace_engine": "Motor de horno", - "block.create.gabbro": "Gabro", - "block.create.gabbro_bricks": "Ladrillos de gabro", - "block.create.gabbro_bricks_slab": "Losa de ladrillos de gabro", - "block.create.gabbro_bricks_stairs": "Escaleras de ladrillos de gabro", - "block.create.gabbro_bricks_wall": "Muro de ladrillos de gabro", - "block.create.gabbro_cobblestone": "Adoquín de gabro", - "block.create.gabbro_cobblestone_slab": "Losa de adoquínes de gabro", - "block.create.gabbro_cobblestone_stairs": "Escaleras de adoquínes de gabro", - "block.create.gabbro_cobblestone_wall": "Muro de adoquínes de gabro", - "block.create.gabbro_pillar": "Pilar de gabro", - "block.create.gantry_carriage": "Carro de grúa", - "block.create.gantry_shaft": "Eje de grúa", - "block.create.gearbox": "Caja de transmisión", - "block.create.gearshift": "Caja de cambios", - "block.create.glass_fluid_pipe": "Tubería de fluidos de cristal", - "block.create.granite_bricks": "Ladrillos de granito", - "block.create.granite_bricks_slab": "Losa de ladrillos de granito", - "block.create.granite_bricks_stairs": "Escaleras de ladrillos de granito", - "block.create.granite_bricks_wall": "Muro de ladrillos de granito", - "block.create.granite_cobblestone": "Adoquín de granito", - "block.create.granite_cobblestone_slab": "Losa de adoquínes de granito", - "block.create.granite_cobblestone_stairs": "Escaleras de adoquínes de granito", - "block.create.granite_cobblestone_wall": "Muro de adoquínes de granito", - "block.create.granite_pillar": "Pilar de granito", - "block.create.gray_nixie_tube": "Tubo Nixie gris", - "block.create.gray_sail": "Vela gris", - "block.create.gray_seat": "Asiento gris", - "block.create.gray_valve_handle": "Asa de válvula gris", - "block.create.green_nixie_tube": "Tubo Nixie verde", - "block.create.green_sail": "Vela verde", - "block.create.green_seat": "Asiento verde", - "block.create.green_valve_handle": "Asa de válvula verde", - "block.create.hand_crank": "Manivela", - "block.create.haunted_bell": "Campana encantada", - "block.create.honey": "Miel", - "block.create.horizontal_framed_glass": "Cristal con marco horizontal", - "block.create.horizontal_framed_glass_pane": "Panel de cristal con marco horizontal", - "block.create.hose_pulley": "Polea de manguera", - "block.create.item_drain": "Drenador de objetos", - "block.create.jungle_window": "Ventana de jungla", - "block.create.jungle_window_pane": "Panel de ventana de jungla", - "block.create.large_cogwheel": "Engranaje grande", - "block.create.layered_andesite": "Andesita estratificada", - "block.create.layered_dark_scoria": "Escoria oscura estratificada", - "block.create.layered_diorite": "Diorita estratificada", - "block.create.layered_dolomite": "Dolomita estratificada", - "block.create.layered_gabbro": "Gabro estratificado", - "block.create.layered_granite": "Granito estratificado", - "block.create.layered_limestone": "Piedra caliza estratificada", - "block.create.layered_scoria": "Escoria estratificada", - "block.create.layered_weathered_limestone": "Caliza erosionada estratificada", - "block.create.lectern_controller": "Controlador de atril", - "block.create.light_blue_nixie_tube": "Tubo Nixie azul claro", - "block.create.light_blue_sail": "Vela azul claro", - "block.create.light_blue_seat": "Asiento azul claro", - "block.create.light_blue_valve_handle": "Asa de válvula azul claro", - "block.create.light_gray_nixie_tube": "Tubo Nixie gris claro", - "block.create.light_gray_sail": "Vela gris claro", - "block.create.light_gray_seat": "Asiento gris claro", - "block.create.light_gray_valve_handle": "Asa de válvula gris claro", - "block.create.lime_nixie_tube": "Tubo Nixie lima", - "block.create.lime_sail": "Vela lima", - "block.create.lime_seat": "Asiento lima", - "block.create.lime_valve_handle": "Asa de válvula lima", - "block.create.limesand": "Arena caliza", - "block.create.limestone": "Piedra caliza", - "block.create.limestone_bricks": "Ladrillos de piedra caliza", - "block.create.limestone_bricks_slab": "Losa de ladrillos de piedra caliza", - "block.create.limestone_bricks_stairs": "Escaleras de ladrillos de piedra caliza", - "block.create.limestone_bricks_wall": "Muro de ladrillos de piedra caliza", - "block.create.limestone_cobblestone": "Adoquínes de piedra caliza", - "block.create.limestone_cobblestone_slab": "Losa de adoquines de piedra caliza", - "block.create.limestone_cobblestone_stairs": "Escaleras de adoquines de piedra caliza", - "block.create.limestone_cobblestone_wall": "Muro de adoquines de piedra caliza", - "block.create.limestone_pillar": "Pilar de piedra caliza", - "block.create.linear_chassis": "Chasis lineal", - "block.create.lit_blaze_burner": "Quemador de Blaze encendido", - "block.create.magenta_nixie_tube": "Tubo Nixie magenta", - "block.create.magenta_sail": "Vela magenta", - "block.create.magenta_seat": "Asiento magenta", - "block.create.magenta_valve_handle": "Asa de válvula magenta", - "block.create.mechanical_arm": "Brazo mecánico", - "block.create.mechanical_bearing": "Rodamiento mecánico", - "block.create.mechanical_crafter": "Ensamblador mecánico", - "block.create.mechanical_drill": "Taladro mecánico", - "block.create.mechanical_harvester": "Cosechadora mecánica", - "block.create.mechanical_mixer": "Mezcladora mecánica", - "block.create.mechanical_piston": "Pistón mecánico", - "block.create.mechanical_piston_head": "Cabezal de pistón mecánico", - "block.create.mechanical_plough": "Arado mecánico", - "block.create.mechanical_press": "Prensa mecánica", - "block.create.mechanical_pump": "Bomba mecánica", - "block.create.mechanical_saw": "Sierra mecánica", - "block.create.metal_bracket": "Soporte de metal para ejes", - "block.create.millstone": "Piedra de molino", - "block.create.minecart_anchor": "Ancla de vagonetas", - "block.create.mossy_andesite": "Andesita musgosa", - "block.create.mossy_dark_scoria": "Escoria oscura musgosa", - "block.create.mossy_diorite": "Diorita musgosa", - "block.create.mossy_dolomite": "Dolomita musgosa", - "block.create.mossy_gabbro": "Gabro musgoso", - "block.create.mossy_granite": "Granito musgoso", - "block.create.mossy_limestone": "Caliza musgosa", - "block.create.mossy_scoria": "Escoria musgosa", - "block.create.mossy_weathered_limestone": "Caliza erosionada musgosa", - "block.create.mysterious_cuckoo_clock": "Reloj de cuco", - "block.create.natural_scoria": "Escoria natural", - "block.create.nixie_tube": "Tubo Nixie", - "block.create.nozzle": "Boquilla", - "block.create.oak_window": "Ventana de roble", - "block.create.oak_window_pane": "Panel de ventana de roble", - "block.create.orange_sail": "Vela naranja", - "block.create.orange_seat": "Asiento naranja", - "block.create.orange_valve_handle": "Asa de válvula naranja", - "block.create.ornate_iron_window": "Ventana de hierro ornamentada", - "block.create.ornate_iron_window_pane": "Panel de ventana de hierro ornamentada", - "block.create.overgrown_andesite": "Andesita sobredimensionada", - "block.create.overgrown_dark_scoria": "Escoria oscura sobredimensionada", - "block.create.overgrown_diorite": "Diorita sobredimensionada", - "block.create.overgrown_dolomite": "Dolomita sobredimensionada", - "block.create.overgrown_gabbro": "Gabro sobredimensionado", - "block.create.overgrown_granite": "Granito sobredimensionado", - "block.create.overgrown_limestone": "Caliza sobredimensionada", - "block.create.overgrown_scoria": "Escoria sobredimensionada", - "block.create.overgrown_weathered_limestone": "Caliza erosionada sobredimensionada", - "block.create.paved_andesite": "Andesita pavimentada", - "block.create.paved_andesite_slab": "Losa de andesita pavimentada", - "block.create.paved_andesite_stairs": "Escaleras de andesita pavimentada", - "block.create.paved_andesite_wall": "Muro de andesita pavimentada", - "block.create.paved_dark_scoria": "Escoria oscura pavimentada", - "block.create.paved_dark_scoria_slab": "Losa de escoria oscura pavimentada", - "block.create.paved_dark_scoria_stairs": "Escaleras de escoria oscura pavimentada", - "block.create.paved_dark_scoria_wall": "Muro de escoria oscura pavimentad", - "block.create.paved_diorite": "Diorita pavimentada", - "block.create.paved_diorite_slab": "Losa de diorita pavimentada", - "block.create.paved_diorite_stairs": "Escaleras de diorita pavimentada", - "block.create.paved_diorite_wall": "Muro de diorita pavimentad", - "block.create.paved_dolomite": "Dolomita pavimentada", - "block.create.paved_dolomite_slab": "Losa de dolomita pavimentada", - "block.create.paved_dolomite_stairs": "Escaleras de dolomita pavimentada", - "block.create.paved_dolomite_wall": "Muro de dolomita pavimentada", - "block.create.paved_gabbro": "Gabro pavimentado", - "block.create.paved_gabbro_slab": "Losa de gabro pavimentado", - "block.create.paved_gabbro_stairs": "Escaleras de gabro pavimentado", - "block.create.paved_gabbro_wall": "Muro de gabro pavimentado", - "block.create.paved_granite": "Granito pavimentado", - "block.create.paved_granite_slab": "Losa de granito pavimentado", - "block.create.paved_granite_stairs": "Escaleras de granito pavimentado", - "block.create.paved_granite_wall": "Muro de granito pavimentado", - "block.create.paved_limestone": "Piedra caliza pavimentada", - "block.create.paved_limestone_slab": "Losa de piedra caliza pavimentada", - "block.create.paved_limestone_stairs": "Escaleras de piedra caliza pavimentada", - "block.create.paved_limestone_wall": "Muro de piedra caliza pavimentada", - "block.create.paved_scoria": "Escoria pavimentada", - "block.create.paved_scoria_slab": "Losa de escoria pavimentada", - "block.create.paved_scoria_stairs": "Escaleras de escoria pavimentada", - "block.create.paved_scoria_wall": "Muro de escoria pavimentada", - "block.create.paved_weathered_limestone": "Piedra caliza erosionada pavimentada", - "block.create.paved_weathered_limestone_slab": "Losa de piedra caliza erosionada pavimentada", - "block.create.paved_weathered_limestone_stairs": "Escaleras de piedra caliza erosionada pavimentada", - "block.create.paved_weathered_limestone_wall": "Muro de piedra caliza erosionada pavimentada", - "block.create.peculiar_bell": "Campana peculiar", - "block.create.pink_nixie_tube": "Tubo Nixie rosa", - "block.create.pink_sail": "Vela rosa", - "block.create.pink_seat": "Asiento rosa", - "block.create.pink_valve_handle": "Asa de válvula rosa", - "block.create.piston_extension_pole": "Pértiga de extensión de pistón", - "block.create.polished_dark_scoria": "Escoria oscura pulida", - "block.create.polished_dark_scoria_slab": "Losa de escoria oscura pulida", - "block.create.polished_dark_scoria_stairs": "Escaleras de escoria oscura pulida", - "block.create.polished_dark_scoria_wall": "Muro de escoria oscura pulida", - "block.create.polished_dolomite": "Dolomita pulida", - "block.create.polished_dolomite_slab": "Losa de dolomita pulida", - "block.create.polished_dolomite_stairs": "Escaleras de dolomita pulidas", - "block.create.polished_dolomite_wall": "Muro de dolomita pulida", - "block.create.polished_gabbro": "Gabro pulido", - "block.create.polished_gabbro_slab": "Losa de gabro pulido", - "block.create.polished_gabbro_stairs": "Escaleras de gabro pulido", - "block.create.polished_gabbro_wall": "Muro de gabro pulido", - "block.create.polished_limestone": "Piedra caliza pulida", - "block.create.polished_limestone_slab": "Losa de piedra caliza pulida", - "block.create.polished_limestone_stairs": "Escaleras de piedra caliza pulidas", - "block.create.polished_limestone_wall": "Muro de piedra caliza pulida", - "block.create.polished_scoria": "Escoria pulida", - "block.create.polished_scoria_slab": "Losa de escoria pulida", - "block.create.polished_scoria_stairs": "Escaleras de losa pulida", - "block.create.polished_scoria_wall": "Muro de escoria pulida", - "block.create.polished_weathered_limestone": "Piedra caliza erosionada pulida", - "block.create.polished_weathered_limestone_slab": "Losa de piedra caliza erosionada pulida", - "block.create.polished_weathered_limestone_stairs": "Escaleras de piedra caliza erosionada pulida", - "block.create.polished_weathered_limestone_wall": "Muro de piedra caliza erosionada pulida", - "block.create.portable_fluid_interface": "Interfaz de fluidos portátil", - "block.create.portable_storage_interface": "Interfaz de almacenamiento portátil", - "block.create.powered_latch": "Palanca motorizada", - "block.create.powered_toggle_latch": "Palanca de cierre motorizada", - "block.create.pulley_magnet": "Imán de la polea", - "block.create.pulse_repeater": "Repetidor de pulsos de redstone", - "block.create.purple_nixie_tube": "Tubo Nixie morado", - "block.create.purple_sail": "Vela morada", - "block.create.purple_seat": "Asiento morado", - "block.create.purple_valve_handle": "Asa de válvula morada", - "block.create.radial_chassis": "Chasis radial", - "block.create.red_nixie_tube": "Tubo Nixie rojo", - "block.create.red_sail": "Vela roja", - "block.create.red_seat": "Asiento rojo", - "block.create.red_valve_handle": "Asa de válvula roja", - "block.create.redstone_contact": "Contacto de redstone", - "block.create.redstone_link": "Enlace de redstone", - "block.create.refined_radiance_casing": "Revestidor radiante", - "block.create.reinforced_rail": "Raíl reforzado", - "block.create.rope": "Cuerda", - "block.create.rope_pulley": "Polea de cuerda", - "block.create.rotation_speed_controller": "Controlador de velocidad rotacional", - "block.create.sail_frame": "Marco de vela", - "block.create.schematic_table": "Tabla de esquemas", - "block.create.schematicannon": "Cañón de esquemas", - "block.create.scoria": "Escoria", - "block.create.scoria_bricks": "Ladrillos de escoria", - "block.create.scoria_bricks_slab": "Losa de ladrillos de escoria", - "block.create.scoria_bricks_stairs": "Escaleras de ladrillos de escoria", - "block.create.scoria_bricks_wall": "Muro de ladrillos de escoria", - "block.create.scoria_cobblestone": "Adoquín de escoria", - "block.create.scoria_cobblestone_slab": "Losa de adoquínes de escoria", - "block.create.scoria_cobblestone_stairs": "Escaleras de adoquines de escoria", - "block.create.scoria_cobblestone_wall": "Muro de adoquines de escoria", - "block.create.scoria_pillar": "Pilar de escoria", - "block.create.secondary_linear_chassis": "Chasis lineal secundario", - "block.create.sequenced_gearshift": "Caja de cambios secuencial", - "block.create.shadow_steel_casing": "Revestidor sombrío", - "block.create.shaft": "Eje", - "block.create.smart_chute": "Ducto inteligente", - "block.create.smart_fluid_pipe": "Tubería de fluidos inteligente", - "block.create.speedometer": "Velocímetro", - "block.create.spout": "Surtidor", - "block.create.spruce_window": "Ventana de abeto", - "block.create.spruce_window_pane": "Panel de ventana de abeto", - "block.create.sticker": "Sticker", - "block.create.sticky_mechanical_piston": "Pistón mecánico pegajoso", - "block.create.stockpile_switch": "Interruptor de acopio", - "block.create.stressometer": "Estresómetro", - "block.create.tiled_glass": "Vidrio esmaltado", - "block.create.tiled_glass_pane": "Panel de vidrio esmaltado", - "block.create.turntable": "Plataforma giratoria mecánica", - "block.create.vertical_framed_glass": "Vidrio esmaltado vertical", - "block.create.vertical_framed_glass_pane": "Panel de vidrio esmaltado vertical", - "block.create.warped_window": "Ventana distorsionada", - "block.create.warped_window_pane": "Panel de ventana distorsionada", - "block.create.water_wheel": "Rueda hidráulica mecánica", - "block.create.weathered_limestone": "Piedra caliza erosionada", - "block.create.weathered_limestone_bricks": "Ladrillos de piedra caliza erosionada", - "block.create.weathered_limestone_bricks_slab": "Losa de piedra caliza erosionada", - "block.create.weathered_limestone_bricks_stairs": "Escaleras de ladrillos de piedra caliza erosionada", - "block.create.weathered_limestone_bricks_wall": "Muro de ladrillos de piedra caliza erosionada", - "block.create.weathered_limestone_cobblestone": "Adoquín de piedra caliza erosionada", - "block.create.weathered_limestone_cobblestone_slab": "Losa de adoquín de piedra caliza erosionada", - "block.create.weathered_limestone_cobblestone_stairs": "Escaleras de adoquín de piedra caliza erosionada", - "block.create.weathered_limestone_cobblestone_wall": "Muro de adoquínes de piedra caliza erosionada", - "block.create.weathered_limestone_pillar": "Pilar de piedra caliza erosionada", - "block.create.weighted_ejector": "Eyector de peso", - "block.create.white_nixie_tube": "Tubo Nixie blanco", - "block.create.white_sail": "Vela blanca", - "block.create.white_seat": "Asiento blanco", - "block.create.white_valve_handle": "Asa de válvula blanco", - "block.create.windmill_bearing": "Rodamiento del molino de viento", - "block.create.wooden_bracket": "Soporte de madera para ejes", - "block.create.yellow_nixie_tube": "Tubo Nixie amarillo", - "block.create.yellow_sail": "Vela amarilla", - "block.create.yellow_seat": "Asiento amarillo", - "block.create.yellow_valve_handle": "Asa de válvula amarillo", - "block.create.zinc_block": "Bloque de zinc", - "block.create.zinc_ore": "Mena de zinc", - - "enchantment.create.capacity": "Capacidad", - "enchantment.create.potato_recovery": "Recuperación de patatas", - - "entity.create.contraption": "Artilugio", - "entity.create.crafting_blueprint": "Plano de elaboración", - "entity.create.gantry_contraption": "Artilugio de grúa", - "entity.create.potato_projectile": "Proyectil de patata", - "entity.create.seat": "Asiento", - "entity.create.stationary_contraption": "Artilugio estacionario", - "entity.create.super_glue": "Pegamento", - - "fluid.create.potion": "Poción", - "fluid.create.tea": "Té del Constructor", - - "item.create.andesite_alloy": "Aleación de andesita", - "item.create.attribute_filter": "Filtro de atributos", - "item.create.bar_of_chocolate": "Barra de chocolate", - "item.create.belt_connector": "Correa mecánica", - "item.create.blaze_cake": "Pastel de blaze", - "item.create.blaze_cake_base": "Base de pastel de blaze", - "item.create.brass_hand": "Mano de latón", - "item.create.brass_ingot": "Lingote de latón", - "item.create.brass_nugget": "Pepita de latón", - "item.create.brass_sheet": "Lámina de latón", - "item.create.builders_tea": "Té del Constructor", - "item.create.chest_minecart_contraption": "Artilugio de vagoneta con cofre", - "item.create.chocolate_bucket": "Cubo con chocolate", - "item.create.chocolate_glazed_berries": "Bayas glaseadas con chocolate", - "item.create.chromatic_compound": "Compuesto cromático", - "item.create.cinder_flour": "Harina del Nether", - "item.create.copper_backtank": "Depósito trasero de cobre", - "item.create.copper_ingot": "Lingote de cobre", - "item.create.copper_nugget": "Pepita de cobre", - "item.create.copper_sheet": "Lámina de cobre", - "item.create.crafter_slot_cover": "Tapa de ranura del ensamblador mecánico", - "item.create.crafting_blueprint": "Plano de elaboración", - "item.create.creative_blaze_cake": "´Pastel de blaze creativo", - "item.create.crushed_aluminum_ore": "Mineral de aluminio molido", - "item.create.crushed_brass": "Latón molido", - "item.create.crushed_copper_ore": "Mineral de cobre molido", - "item.create.crushed_gold_ore": "Mineral de oro molido", - "item.create.crushed_iron_ore": "Mineral de hierro molido", - "item.create.crushed_lead_ore": "Mineral de plomo molido", - "item.create.crushed_nickel_ore": "Mineral de níquel molido", - "item.create.crushed_osmium_ore": "Mineral de osmio molido", - "item.create.crushed_platinum_ore": "Mineral de platino molido", - "item.create.crushed_quicksilver_ore": "Mineral de mercurio molido", - "item.create.crushed_silver_ore": "Mineral de plata molido", - "item.create.crushed_tin_ore": "Mineral de estaño molido", - "item.create.crushed_uranium_ore": "Mineral de uranio molido", - "item.create.crushed_zinc_ore": "Mineral de zinc molido", - "item.create.diving_boots": "Botas de buceo", - "item.create.diving_helmet": "Casco de buceo", - "item.create.dough": "Masilla", - "item.create.electron_tube": "Tubo de electrones", - "item.create.empty_blaze_burner": "Quemador de blaze vacío", - "item.create.empty_schematic": "Esquema vacío", - "item.create.extendo_grip": "Agarre extendido", - "item.create.filter": "Filtro", - "item.create.furnace_minecart_contraption": "Artilugio de vagoneta de horno", - "item.create.goggles": "Gafas del constructor", - "item.create.golden_sheet": "Lámina de oro", - "item.create.handheld_worldshaper": "Worldshaper Creativo", - "item.create.honey_bucket": "Cubo con miel", - "item.create.honeyed_apple": "Manzana con miel", - "item.create.incomplete_cogwheel": "Engranaje pequeño incompleto", - "item.create.incomplete_large_cogwheel": "Engranaje grande incompleto", - "item.create.incomplete_precision_mechanism": "Mecanismo de precisión incompleto", - "item.create.iron_sheet": "Lámina de hierro", - "item.create.linked_controller": "Controlador enlazado", - "item.create.minecart_contraption": "Artilugio de vagoneta", - "item.create.minecart_coupling": "Acoplamiento de vagoneta", - "item.create.polished_rose_quartz": "Cuarzo rosado pulido", - "item.create.potato_cannon": "Cañón de patatas", - "item.create.powdered_obsidian": "Polvo de obsidiana", - "item.create.precision_mechanism": "Mecanismo de precisión", - "item.create.propeller": "Hélice", - "item.create.red_sand_paper": "Papel de lija rojo", - "item.create.refined_radiance": "Resplandor refinado", - "item.create.rose_quartz": "Cuarzo rosado", - "item.create.sand_paper": "Papel de lija", - "item.create.schematic": "Esquema", - "item.create.schematic_and_quill": "Esquema y pluma", - "item.create.shadow_steel": "Acero sombrío", - "item.create.super_glue": "Pegamento", - "item.create.sweet_roll": "Pan dulce", - "item.create.tree_fertilizer": "Fertilizante para árboles", - "item.create.vertical_gearbox": "Caja de transmisión vertical", - "item.create.wand_of_symmetry": "Varita de simetría", - "item.create.wheat_flour": "Harina de trigo", - "item.create.whisk": "Batidora", - "item.create.wrench": "Llave inglesa", - "item.create.zinc_ingot": "Lingote de zinc", - "item.create.zinc_nugget": "Pepita de zinc", - - - "_": "->------------------------] Advancements [------------------------<-", - - "advancement.create.root": "Bienvenido a Create", - "advancement.create.root.desc": "¡Es hora de empezar a construir increíbles artilugios!", - "advancement.create.andesite_alloy": "Aleaciones en abundancia", - "advancement.create.andesite_alloy.desc": "Los materiales de Create tienen nombres extraños, la aleación de andesita es uno de ellos.", - "advancement.create.its_alive": "¡Está vivo!", - "advancement.create.its_alive.desc": "Mira cómo gira tu primer componente cinético.", - "advancement.create.shifting_gears": "Cambiando de marcha", - "advancement.create.shifting_gears.desc": "Conecta un engranaje grande a uno pequeño, lo que te permitirá cambiar la velocidad de tu artilugio.", - "advancement.create.overstressed": "Sobrecargado", - "advancement.create.overstressed.desc": "Experimenta los límites del estrés.", - "advancement.create.belt": "Paseo de algas", - "advancement.create.belt.desc": "Conectar dos ejes con una correa.", - "advancement.create.tunnel": "¡Cúbrete!", - "advancement.create.tunnel.desc": "Embellece tu correa con un túnel.", - "advancement.create.splitter_tunnel": "Divide y vencerás", - "advancement.create.splitter_tunnel.desc": "Crear un divisor con un grupo de túneles de latón.", - "advancement.create.chute": "Caída en picado", - "advancement.create.chute.desc": "Coloque un ducto, la contrapartida vertical de la cinta.", - "advancement.create.upward_chute": "Abducción aérea", - "advancement.create.upward_chute.desc": "Observe cómo un objeto lanzado vuela dentro de un ducto impulsado por un ventilador.", - "advancement.create.belt_funnel": "Colgantes con forma de embudo", - "advancement.create.belt_funnel.desc": "Coloca un embudo lateral encima de una cinta o depósito para crear un tipo especial.", - "advancement.create.belt_funnel_kiss": "Los loros y las aletas", - "advancement.create.belt_funnel_kiss.desc": "Haz besar dos embudos montados con una cinta.", - "advancement.create.fan": "Maestro mecánico del aire", - "advancement.create.fan.desc": "Monta la corriente de aire proporcionada por un ventilador revestido.", - "advancement.create.fan_lava": "Calentador geotérmico", - "advancement.create.fan_lava.desc": "Queda atrapado en una corriente de aire que funde las cosas.", - "advancement.create.fan_water": "Lavado de la ropa", - "advancement.create.fan_water.desc": "Queda atrapado en una corriente de aire que lava las cosas.", - "advancement.create.fan_smoke": "Fuelle mecánico", - "advancement.create.fan_smoke.desc": "Queda atrapado en una corriente de aire que humea los objetos.", - "advancement.create.wrench": "Configurar convenientemente", - "advancement.create.wrench.desc": "Crea una llave inglesa para ayudarte a construir tus artilugios.", - "advancement.create.goggles": "Estresóvisión", - "advancement.create.goggles.desc": "Crea unas gafas del constructor para ayudarte a obtener más información cinética de los componentes.", - "advancement.create.speedometer": "Pero, ¿con qué rapidez exactamente?", - "advancement.create.speedometer.desc": "Coloca y alimenta un velocímetro. Míralo a través de las gafas para leer su valor exacto.", - "advancement.create.stressometer": "Pero, ¿cuán estresado exactamente??", - "advancement.create.stressometer.desc": "Coloca y alimenta un estresómetro. Míralo a través de las gafas para leer su valor exacto.", - "advancement.create.aesthetics": "Boom, ¡Estética!", - "advancement.create.aesthetics.desc": "Coloca soportes en ejes, ductos y engranajes.", - "advancement.create.reinforced": "Boom, ¡Reforzado!", - "advancement.create.reinforced.desc": "Utiliza bloques de revestimiento en un eje, un ducto y una cinta.", - "advancement.create.water_wheel": "Aprovechar la hidráulica", - "advancement.create.water_wheel.desc": "Coloca una rueda hidráulica e intenta hacerla girar.", - "advancement.create.chocolate_wheel": "Potencia de buen gusto", - "advancement.create.chocolate_wheel.desc": "Haz funcionar una rueda de agua con chocolate fundido.", - "advancement.create.lava_wheel": "Rueda de magma", - "advancement.create.lava_wheel.desc": "Esto no debió haber funcionado.", - "advancement.create.cuckoo": "¿Es el momento?", - "advancement.create.cuckoo.desc": "Presencia cómo un reloj de cuco anuncia la hora de acostarse.", - "advancement.create.millstone": "Triturador de bolsillo", - "advancement.create.millstone.desc": "Coloca y alimenta una piedra de molino.", - "advancement.create.windmill": "Una suave brisa", - "advancement.create.windmill.desc": "Monta un molino de viento.", - "advancement.create.maxed_windmill": "Una fuerte brisa", - "advancement.create.maxed_windmill.desc": "Monta un molino de viento con máxima intensidad.", - "advancement.create.andesite_casing": "La edad de la andesita", - "advancement.create.andesite_casing.desc": "Utiliza un poco de aleación de andesita y madera para crear un revestimiento básico.", - "advancement.create.mechanical_drill": "Interruptores fijos", - "advancement.create.mechanical_drill.desc": "Coloca y alimenta un taladro mecánico.", - "advancement.create.press": "¡La prensa se pone en marcha!", - "advancement.create.press.desc": "Activa una prensa mecánica y utilízala para crear algunas láminas.", - "advancement.create.polished_rose_quartz": "Diamantes rosas", - "advancement.create.polished_rose_quartz.desc": "Utiliza un trozo de papel de lija para pulir el cuarzo rosa hasta que se vuelva transparente.", - "advancement.create.electron_tube": "Beep Boop", - "advancement.create.electron_tube.desc": "Haz algunos tubos de electrones, útiles en la fabricación de maquinaria menos primitiva.", - "advancement.create.mechanical_saw": "Picado estacionario", - "advancement.create.mechanical_saw.desc": "Coloca y alimenta una sierra mecánica.", - "advancement.create.basin": "Funcionamiento de la cuenca", - "advancement.create.basin.desc": "Coloca una cuenca e intenta arrojar objetos en ella.", - "advancement.create.mixer": "Mezcla de colores", - "advancement.create.mixer.desc": "Coloca una batidora mecánica sobre el lavabo, enciéndala y empiece a mezclar algunos ingredientes.", - "advancement.create.blaze_burner": "Una chimenea viva", - "advancement.create.blaze_burner.desc": "Obtiene un quemador de blaze.", - "advancement.create.compact": "Compactación automática", - "advancement.create.compact.desc": "Utiliza una prensa y una cuenca para compactar algunos objetos.", - "advancement.create.brass": "Aleaciones reales", - "advancement.create.brass.desc": "Utiliza cobre molido y zinc molido para crear algo de latón.", - "advancement.create.brass_casing": "La Edad de Latón", - "advancement.create.brass_casing.desc": "Utiliza el latón recién obtenido y algo de madera para crear un revestimiento más avanzado.", - "advancement.create.copper_casing": "La Edad de Cobre", - "advancement.create.copper_casing.desc": "Utiliza algunas láminas de cobre y madera para crear algunos revestimientos de cobre.", - "advancement.create.spout": "Sploosh", - "advancement.create.spout.desc": "Observa el llenado de un fluido usando una boquilla.", - "advancement.create.spout_potion": "Cervecera global", - "advancement.create.spout_potion.desc": "Mira cómo un pico llena una botella con líquido de poción.", - "advancement.create.chocolate": "Un mundo de imaginación", - "advancement.create.chocolate.desc": "Obtiene un cubo con chocolate fundido.", - "advancement.create.item_drain": "Drenaje de la ropa", - "advancement.create.item_drain.desc": "Ve cómo se vacía un fluido mediante un drenador de objetos.", - "advancement.create.chained_item_drain": "¡Déjalo rodar!", - "advancement.create.chained_item_drain.desc": "Observa cómo un objeto rueda por varios drenadores de objetos encadenados.", - "advancement.create.glass_pipe": "Espía del flujo", - "advancement.create.glass_pipe.desc": "Observa cómo se propaga el fluido a través de un tubo de fluidos con ventanas. Los tubos de fluido rectos se convierten en ventanas cuando se utiliza una llave inglesa en ellas.", - "advancement.create.pipe_collision": "No cruzar nunca los arroyos", - "advancement.create.pipe_collision.desc": "Vea cómo se unen dos fluidos en su red de tuberías.", - "advancement.create.pipe_spill": "¡Hay una fuga!", - "advancement.create.pipe_spill.desc": "Observe cómo un extremo abierto de una tubería toma o deposita fluidos en el mundo.", - "advancement.create.hose_pulley": "Vertidos industriales", - "advancement.create.hose_pulley.desc": "Baja una polea de manguera y ve cómo se vacía o se llena un cuerpo de líquido.", - "advancement.create.infinite_water": "Drenando el océano", - "advancement.create.infinite_water.desc": "Bombea de una masa de agua lo suficientemente grande como para ser considerada infinita.", - "advancement.create.infinite_lava": "Drenaje del núcleo de los planetas", - "advancement.create.infinite_lava.desc": "Bombea de una masa de lava lo suficientemente grande como para ser considerada infinita.", - "advancement.create.infinite_chocolate": "Ahogándose en la imaginación", - "advancement.create.infinite_chocolate.desc": "Bombea desde una masa de chocolate fundido lo suficientemente grande como para ser considerado infinito.", - "advancement.create.crafter": "Montaje automatizado", - "advancement.create.crafter.desc": "Coloca y alimenta algunos ensambladores.", - "advancement.create.clockwork_bearing": "Artilugio a la hora", - "advancement.create.clockwork_bearing.desc": "Ensamblar una estructura montada sobre un rodamiento tipo reloj.", - "advancement.create.nixie_tube": "Signos de estilo", - "advancement.create.nixie_tube.desc": "Obtener y colocar un par de tubos nixie.", - "advancement.create.deployer": "Picar, colocar y atacar", - "advancement.create.deployer.desc": "Coloca y potencia un desplegador, el reflejo perfecto de ti mismo.", - "advancement.create.speed_controller": "Los ingenieros lo odian!", - "advancement.create.speed_controller.desc": "Coloca un controlador de velocidad rotacional, el dispositivo definitivo para cambiar de marcha.", - "advancement.create.flywheel": "El corazón de la fábrica", - "advancement.create.flywheel.desc": "Conecta con éxito un motor a la rueda de inercia.", - "advancement.create.overstress_flywheel": "Altos niveles de estrés", - "advancement.create.overstress_flywheel.desc": "Sobrecarga un motor de horno.", - "advancement.create.precision_mechanism": "Curiosidades complejas", - "advancement.create.precision_mechanism.desc": "Monta un mecanismo de precisión.", - "advancement.create.mechanical_arm": "¡Manos ocupadas!", - "advancement.create.mechanical_arm.desc": "Crea un brazo mecánico, selecciona las entradas y salidas, colócalo en el suelo y dale energía; luego observa cómo hace todo el trabajo por ti.", - "advancement.create.musical_arm": "¡Tócame la melodía!", - "advancement.create.musical_arm.desc": "Vea cómo un brazo mecánico maneja su tocadiscos.", - "advancement.create.arm_many_targets": "Organize-o-Tron", - "advancement.create.arm_many_targets.desc": "Programa un brazo mecánico con diez o más posiciones de salida.", - "advancement.create.arm_blaze_burner": "Combust-o-Tron", - "advancement.create.arm_blaze_burner.desc": "Instruya un brazo mecánico para alimentar su quemador de blaze.", - "advancement.create.fist_bump": "¡Pégale, hermano!", - "advancement.create.fist_bump.desc": "Haz que dos desplegadores se den un puñetazo.", - "advancement.create.crushing_wheel": "Un par de gigantes", - "advancement.create.crushing_wheel.desc": "Crea algunas ruedas de trituración para descomponer más materiales de forma más eficaz.", - "advancement.create.blaze_cake": "Fiebre del azúcar", - "advancement.create.blaze_cake.desc": "Hornea en tu quemador de blaze un pastel especial.", - "advancement.create.chromatic_compound": "Minerales misteriosos", - "advancement.create.chromatic_compound.desc": "Crea una barra de compuesto cromático.", - "advancement.create.shadow_steel": "Retorno del vacío", - "advancement.create.shadow_steel.desc": "Crea acero sombrío, una barra de metal de la nada.", - "advancement.create.refined_radiance": "Brillante e inspirador", - "advancement.create.refined_radiance.desc": "Crea un resplandor refinado, una poderosa sustancia cromática.", - "advancement.create.chromatic_age": "La edad cromática", - "advancement.create.chromatic_age.desc": "Crear bloques de revestimiento de la luz y la oscuridad.", - "advancement.create.wand_of_symmetry": "Espejos radiantes", - "advancement.create.wand_of_symmetry.desc": "Crear un bastón de simetría.", - "advancement.create.extendo_grip": "¡Boioioing!", - "advancement.create.extendo_grip.desc": "Hazte con un agarre extentido.", - "advancement.create.potato_cannon": "Fwoomp!", - "advancement.create.potato_cannon.desc": "Derrota a un enemigo con tu cañón de patatas.", - "advancement.create.dual_extendo_grip": "La última edad del boing", - "advancement.create.dual_extendo_grip.desc": "Doble empuñadura extendida para un alcance sobrehumano.", - "advancement.create.eob": "Fin de la beta", - "advancement.create.eob.desc": "Espere más contenido aquí en el futuro. <3", - - - "_": "->------------------------] UI & Messages [------------------------<-", - - "itemGroup.create.base": "Create", - "itemGroup.create.palettes": "Paletas", - - "death.attack.create.crush": "%1$s se procesó en las ruedas de trituración", - "death.attack.create.crush.player": "%1$s fue arrojado a las ruedas de trituración por %2$s", - "death.attack.create.fan_fire": "%1$s murió quemado por el aire caliente", - "death.attack.create.fan_fire.player": "%1$s fue arrojado a un ahumador por %2$s", - "death.attack.create.fan_lava": "%1$s murió quemado por un abanico de lava", - "death.attack.create.fan_lava.player": "%1$s fue arrojado a una fundición por %2$s", - "death.attack.create.mechanical_drill": "%1$s fue empalado por un taladro mecánico", - "death.attack.create.mechanical_drill.player": "%1$s fue lanzado frente a un taladro por %2$s", - "death.attack.create.mechanical_saw": "%1$s fue cortado por la mitad por una sierra mecánica", - "death.attack.create.mechanical_saw.player": "%1$s fue arrojado a una sierra por %2$s", - "death.attack.create.potato_cannon": "%1$s fue disparado por el cañón de patatas de %2$s's", - "death.attack.create.potato_cannon.item": "%1$s fue disparado por %2$s utilizando %3$s", - "death.attack.create.cuckoo_clock_explosion": "%1$s fue volado por los aires por un reloj de cuco manipulado", - "death.attack.create.cuckoo_clock_explosion.player": "%1$s fue volado por un reloj de cuco manipulado", - - "create.block.deployer.damage_source_name": "Un desplegador rebelde", - "create.block.cart_assembler.invalid": "Coloque su Ensamblador de vagonetas en un bloque de Raíles", - - "create.menu.return": "Regresar al menú", - "create.menu.configure": "Configurar...", - "create.menu.ponder_index": "Índice", - "create.menu.only_ingame": "Disponible en el menú de pausa", - "create.menu.project_page": "Página del proyecto", - "create.menu.report_bugs": "Reportar problemas", - "create.menu.support": "Apóyenos", - - "create.recipe.crushing": "Trituración", - "create.recipe.milling": "Fresado", - "create.recipe.fan_washing": "Lavado a granel", - "create.recipe.fan_washing.fan": "Ventilador detrás del agua fluyente", - "create.recipe.fan_smoking": "Ahumador a granel", - "create.recipe.fan_smoking.fan": "Ventilador detrás del fuego", - "create.recipe.fan_blasting": "Voladuras a granel", - "create.recipe.fan_blasting.fan": "Ventilador detrás de la lava", - "create.recipe.pressing": "Prensando", - "create.recipe.mixing": "Mezclando", - "create.recipe.deploying": "Desplegando", - "create.recipe.automatic_shapeless": "Elaboración automatizada de productos sin forma", - "create.recipe.automatic_brewing": "Elaboración de cerveza automatizada", - "create.recipe.packing": "Compactando", - "create.recipe.automatic_packing": "Embalaje automatizado", - "create.recipe.sawing": "Aserrando", - "create.recipe.mechanical_crafting": "Elaboración mecánica", - "create.recipe.automatic_shaped": "Elaboración automatizada de productos con forma", - "create.recipe.block_cutting": "Corte de bloques", - "create.recipe.wood_cutting": "Corte de maderas", - "create.recipe.sandpaper_polishing": "Pulido con papel de lija", - "create.recipe.mystery_conversion": "Conversión misteriosa", - "create.recipe.spout_filling": "Llenar por el pico", - "create.recipe.draining": "Drenador de objetos", - "create.recipe.sequenced_assembly": "Montaje secuenciado", - "create.recipe.assembly.next": "Siguiente: %1$s", - "create.recipe.assembly.step": "Fase %1$s:", - "create.recipe.assembly.progress": "Progreso: %1$s/%2$s", - "create.recipe.assembly.pressing": "Proceso en prensa", - "create.recipe.assembly.spout_filling_fluid": "Pico %1$s", - "create.recipe.assembly.deploying_item": "Despliegue %1$s", - "create.recipe.assembly.cutting": "Corte con sierra", - "create.recipe.assembly.repeat": "Repetir la secuencia %1$s veces", - "create.recipe.assembly.junk": "Basura aleatoria", - "create.recipe.processing.chance": "%1$s%% Chance", - "create.recipe.heat_requirement.none": "No es necesario calentar", - "create.recipe.heat_requirement.heated": "Calentado", - "create.recipe.heat_requirement.superheated": "Súper-Calentado", - - "create.generic.range": "Rango", - "create.generic.radius": "Radio", - "create.generic.width": "Ancho", - "create.generic.height": "Alto", - "create.generic.length": "Largo", - "create.generic.speed": "Velocidad", - "create.generic.delay": "Retraso", - "create.generic.unit.ticks": "Ticks", - "create.generic.unit.seconds": "Segundos", - "create.generic.unit.minutes": "Minutos", - "create.generic.unit.rpm": "RPM", - "create.generic.unit.stress": "SU(unidades de estrés)", - "create.generic.unit.degrees": "°", - "create.generic.unit.millibuckets": "%1$smB", - "create.generic.clockwise": "En el sentido de las agujas del reloj", - "create.generic.counter_clockwise": "En sentido contrario a las agujas del reloj", - - "create.action.scroll": "Desplazar", - "create.action.confirm": "Confirmar", - "create.action.abort": "Abortar", - "create.action.saveToFile": "Guardar", - "create.action.discard": "Descartar", - - "create.keyinfo.toolmenu": "Menú de la Herramienta de Enfoque", - "create.keyinfo.scrollup": "Simular usar la rueda del ratón hacia arriba (en el mundo)", - "create.keyinfo.scrolldown": "Simular usar la rueda del ratón hacia abajo (en el mundo)", - - "create.gui.scrollInput.defaultTitle": "Seleccione una opción:", - "create.gui.scrollInput.scrollToModify": "Usa la rueda del ratón para modificar", - "create.gui.scrollInput.scrollToAdjustAmount": "Usa la rueda del ratón para ajustar la cantidad", - "create.gui.scrollInput.scrollToSelect": "Usa la rueda del ratón para seleccionar", - "create.gui.scrollInput.shiftScrollsFaster": "Mayús izdo para usar la rueda del ratón más rápido", - "create.gui.toolmenu.focusKey": "Mantén [%1$s] para enfocar", - "create.gui.toolmenu.cycle": "[RUEDA DEL RATÓN] para el ciclo", - "create.gui.symmetryWand.mirrorType": "Espejado", - "create.gui.symmetryWand.orientation": "Orientación", - - "create.symmetry.mirror.plane": "Plano de espejo", - "create.symmetry.mirror.doublePlane": "Rectangular", - "create.symmetry.mirror.triplePlane": "Octogonal", - - "create.orientation.orthogonal": "Ortogonal", - "create.orientation.diagonal": "Diagonal", - "create.orientation.horizontal": "Horizontal", - "create.orientation.alongZ": "A lo largo de Z", - "create.orientation.alongX": "A lo largo de X", - - "create.gui.terrainzapper.title": "Blockzapper", - "create.gui.terrainzapper.searchDiagonal": "Seguir diagonales", - "create.gui.terrainzapper.searchFuzzy": "Ignorar los bordes del material", - "create.gui.terrainzapper.patternSection": "Patrón", - "create.gui.terrainzapper.pattern.solid": "Sólido", - "create.gui.terrainzapper.pattern.checkered": "Tablero de ajedrez", - "create.gui.terrainzapper.pattern.inversecheckered": "Tablero de ajedrez invertido", - "create.gui.terrainzapper.pattern.chance25": "25% Roll", - "create.gui.terrainzapper.pattern.chance50": "50% Roll", - "create.gui.terrainzapper.pattern.chance75": "75% Roll", - "create.gui.terrainzapper.placement": "Ubicación", - "create.gui.terrainzapper.placement.merged": "Fusionado", - "create.gui.terrainzapper.placement.attached": "Adjuntado", - "create.gui.terrainzapper.placement.inserted": "Insertado", - "create.gui.terrainzapper.brush": "Pincel", - "create.gui.terrainzapper.brush.cuboid": "Cuboide", - "create.gui.terrainzapper.brush.sphere": "Esfera", - "create.gui.terrainzapper.brush.cylinder": "Cilindro", - "create.gui.terrainzapper.brush.surface": "Superficie", - "create.gui.terrainzapper.brush.cluster": "Grupo", - "create.gui.terrainzapper.tool": "Herramienta", - "create.gui.terrainzapper.tool.fill": "Llenar", - "create.gui.terrainzapper.tool.place": "Ubicar", - "create.gui.terrainzapper.tool.replace": "Reemplazar", - "create.gui.terrainzapper.tool.clear": "Eliminar", - "create.gui.terrainzapper.tool.overlay": "Superponer", - "create.gui.terrainzapper.tool.flatten": "Aplanar", - - "create.terrainzapper.shiftRightClickToSet": "Mayús izdo + clic derecho para seleccionar una forma", - "create.terrainzapper.usingBlock": "Usando: %1$s", - "create.terrainzapper.leftClickToSet": "Clic izquierdo a un bloque para establecer el material", - - "create.minecart_coupling.two_couplings_max": "Las vagonetas no pueden tener más de dos enganches cada una", - "create.minecart_coupling.unloaded": "Algunas partes de su tren parecen estar en chunks no cargados", - "create.minecart_coupling.no_loops": "Los acoplamientos no pueden formar un bucle", - "create.minecart_coupling.removed": "Se han retirado todos los acoplamientos de la vagoneta", - "create.minecart_coupling.too_far": "Las vagonetas están demasiado separadas", - - "create.contraptions.movement_mode": "Modo de movimiento", - "create.contraptions.movement_mode.move_place": "Colocar siempre al detenerse", - "create.contraptions.movement_mode.move_place_returned": "Colocar sólo en la posición inicial", - "create.contraptions.movement_mode.move_never_place": "Colocar sólo cuando se destruye el ancla", - "create.contraptions.movement_mode.rotate_place": "Colocar siempre al detenerse", - "create.contraptions.movement_mode.rotate_place_returned": "Colocar sólo cerca del ángulo inicial", - "create.contraptions.movement_mode.rotate_never_place": "Colocar sólo cuando se destruye el ancla", - "create.contraptions.cart_movement_mode": "Modo de movimiento de la vagoneta", - "create.contraptions.cart_movement_mode.rotate": "Siempre de cara al movimiento", - "create.contraptions.cart_movement_mode.rotate_paused": "Pausar a los actores mientras giran", - "create.contraptions.cart_movement_mode.rotation_locked": "Bloquear rotación", - "create.contraptions.windmill.rotation_direction": "Dirección de rotación", - "create.contraptions.clockwork.clock_hands": "Manecillas de reloj", - "create.contraptions.clockwork.hour_first": "La manecilla de las horas primero", - "create.contraptions.clockwork.minute_first": "La manecilla de los minutos primero", - "create.contraptions.clockwork.hour_first_24": "La manecilla del día primero", - - "create.logistics.filter": "Filtro", - "create.logistics.recipe_filter": "Filtro para recetas", - "create.logistics.fluid_filter": "Filtro para fluidos", - "create.logistics.firstFrequency": "Freq. #1", - "create.logistics.secondFrequency": "Freq. #2", - "create.logistics.filter.apply": "Filtro aplicado a %1$s.", - "create.logistics.filter.apply_click_again": "Filtro aplicado a %1$s, haga clic de nuevo para copiar la cantidad.", - "create.logistics.filter.apply_count": "Aplicado recuento de extracciones al filtro.", - - "create.gui.goggles.generator_stats": "Estadísticas del generador:", - "create.gui.goggles.kinetic_stats": "Estadísticas cinéticas:", - "create.gui.goggles.at_current_speed": "con la velocidad actual", - "create.gui.goggles.pole_length": "Longitud del poste:", - "create.gui.goggles.fluid_container": "Información sobre el contenedor de fluidos:", - "create.gui.goggles.fluid_container.capacity": "Capacidad: ", - "create.gui.assembly.exception": "Este artilugio no se pudo montar:", - "create.gui.assembly.exception.unmovableBlock": "Bloque inamovible (%4$s) en [%1$s,%2$s,%3$s]", - "create.gui.assembly.exception.chunkNotLoaded": "El bloque en [%1$s,%2$s,%3$s] no estaba en un chunk cargado", - "create.gui.assembly.exception.structureTooLarge": "Hay demasiados bloques incluídos en el artilugio.\nEl máximo configurado es: %1$s", - "create.gui.assembly.exception.tooManyPistonPoles": "Hay demasiadas Pértigas de extensión conectadas a este Pistón.\nEl máximo configurado es: %1$s", - "create.gui.assembly.exception.noPistonPoles": "Faltan pértigas de extensión para el pistón", - "create.gui.assembly.exception.not_enough_sails": "La estructura adjunta no incluye suficientes bloques tipo vela: %1$s\nSe requiere un mínimo de %2$s", - "create.gui.gauge.info_header": "Información sobre el medidor:", - "create.gui.speedometer.title": "Velocidad de rotación", - "create.gui.stressometer.title": "Estrés de la red", - "create.gui.stressometer.capacity": "Capacidad restante", - "create.gui.stressometer.overstressed": "Sobrecargado", - "create.gui.stressometer.no_rotation": "Sin rotación", - "create.gui.contraptions.not_fast_enough": "Parece que este %1$s no está girando con _suficiente_ velocidad_.", - "create.gui.contraptions.network_overstressed": "Parece que este artilugio está _sobrecargado_. Añade más fuentes o _desacelera_ los componentes con un _impacto de estrés alto_.", - "create.gui.adjustable_crate.title": "Caja ajustable", - "create.gui.adjustable_crate.storageSpace": "Espacio de almacenamiento", - "create.gui.stockpile_switch.title": "Interruptor de acopio", - "create.gui.stockpile_switch.invert_signal": "Invertir señal", - "create.gui.stockpile_switch.move_to_lower_at": "Pasar al carril inferior en %1$s%%", - "create.gui.stockpile_switch.move_to_upper_at": "Pasar al carril superior en %1$s%%", - "create.gui.sequenced_gearshift.title": "Cambio de marchas secuenciado", - "create.gui.sequenced_gearshift.instruction": "Instrucción", - "create.gui.sequenced_gearshift.instruction.turn_angle.descriptive": "Giro por ángulo", - "create.gui.sequenced_gearshift.instruction.turn_angle": "Giro", - "create.gui.sequenced_gearshift.instruction.turn_angle.angle": "Ángulo", - "create.gui.sequenced_gearshift.instruction.turn_distance.descriptive": "Giro para mover el pistón/polea/grúa", - "create.gui.sequenced_gearshift.instruction.turn_distance": "Pistón", - "create.gui.sequenced_gearshift.instruction.turn_distance.distance": "Distancia", - "create.gui.sequenced_gearshift.instruction.delay.descriptive": "Tiempo de retraso", - "create.gui.sequenced_gearshift.instruction.delay": "Retraso", - "create.gui.sequenced_gearshift.instruction.delay.duration": "Duración", - "create.gui.sequenced_gearshift.instruction.end.descriptive": "Fin", - "create.gui.sequenced_gearshift.instruction.end": "Fin", - "create.gui.sequenced_gearshift.instruction.await.descriptive": "En espera de un pulso de redstone", - "create.gui.sequenced_gearshift.instruction.await": "En espera", - "create.gui.sequenced_gearshift.speed": "Velocidad, Dirección", - "create.gui.sequenced_gearshift.speed.forward": "Velocidad de entrada, hacia adelante", - "create.gui.sequenced_gearshift.speed.forward_fast": "Doble velocidad, hacia adelante", - "create.gui.sequenced_gearshift.speed.back": "Velocidad de entrada, Invertida", - "create.gui.sequenced_gearshift.speed.back_fast": "Doble velocidad, Invertida", - - "create.schematicAndQuill.dimensions": "Tamaño del esquema: %1$sx%2$sx%3$s", - "create.schematicAndQuill.firstPos": "Primera posición fijada.", - "create.schematicAndQuill.secondPos": "Segunda posición fijada.", - "create.schematicAndQuill.noTarget": "Mantén [Ctrl] para seleccionar los bloques del aire.", - "create.schematicAndQuill.abort": "Selección eliminada.", - "create.schematicAndQuill.title": "Nombre del esquema:", - "create.schematicAndQuill.convert": "Guardar y desplegar inmediatamente", - "create.schematicAndQuill.fallbackName": "Mi esquema", - "create.schematicAndQuill.saved": "Guardado como %1$s", - - "create.schematic.invalid": "[!] Elemento no válido - Utilice la tabla de esquemas en su lugar", - "create.schematic.position": "Posición", - "create.schematic.rotation": "Rotación", - "create.schematic.rotation.none": "Ninguno", - "create.schematic.rotation.cw90": "En el sentido de las agujas del reloj 90", - "create.schematic.rotation.cw180": "En el sentido de las agujas del reloj 180", - "create.schematic.rotation.cw270": "En el sentido de las agujas del reloj 270", - "create.schematic.mirror": "Espejado", - "create.schematic.mirror.none": "Ninguno", - "create.schematic.mirror.frontBack": "Delante-Detrás", - "create.schematic.mirror.leftRight": "Izquierda-Derecha", - "create.schematic.tool.deploy": "Despliegue", - "create.schematic.tool.move": "Mover XZ", - "create.schematic.tool.movey": "Mover Y", - "create.schematic.tool.rotate": "Rotar", - "create.schematic.tool.print": "Imprimir", - "create.schematic.tool.flip": "Voltear", - "create.schematic.tool.deploy.description.0": "Mueve la estructura a un lugar.", - "create.schematic.tool.deploy.description.1": "Haz clic con el botón derecho del ratón en el suelo para colocarla.", - "create.schematic.tool.deploy.description.2": "Mantén [Ctrl] para seleccionar a una distancia fija.", - "create.schematic.tool.deploy.description.3": "[Ctrl] + [RUEDA DEL RATÓN] para cambiar la distancia.", - "create.schematic.tool.move.description.0": "Desplaza el esquema horizontalmente.", - "create.schematic.tool.move.description.1": "Apunta al esquema y [Ctrl] + [RUEDA DEL RATÓN] para ponerlo.", - "create.schematic.tool.move.description.2": "", - "create.schematic.tool.move.description.3": "", - "create.schematic.tool.movey.description.0": "Desplaza el esquema verticalmente..", - "create.schematic.tool.movey.description.1": "[Ctrl] + [RUEDA DEL RATÓN] para moverlo hacia arriba/abajo.", - "create.schematic.tool.movey.description.2": "", - "create.schematic.tool.movey.description.3": "", - "create.schematic.tool.rotate.description.0": "Gira el esquema alrededor de su centro.", - "create.schematic.tool.rotate.description.1": "[Ctrl] + [RUEDA DEL RATÓN] para girar 90 grados.", - "create.schematic.tool.rotate.description.2": "", - "create.schematic.tool.rotate.description.3": "", - "create.schematic.tool.print.description.0": "Sitúa instantáneamente la estructura en el mundo.", - "create.schematic.tool.print.description.1": "[Clic derecho] para confirmar la colocación en el lugar actual.", - "create.schematic.tool.print.description.2": "Esta herramienta es sólo para el Modo Creativo.", - "create.schematic.tool.print.description.3": "", - "create.schematic.tool.flip.description.0": "Voltea el esquema a lo largo de la cara que seleccione.", - "create.schematic.tool.flip.description.1": "Apunta al esquema y [Ctrl] + [RUEDA DEL RATÓN] para voltearlo.", - "create.schematic.tool.flip.description.2": "", - "create.schematic.tool.flip.description.3": "", - - "create.schematics.synchronizing": "Sincronizando...", - "create.schematics.uploadTooLarge": "Tu esquema excede las limitaciones especificadas por el servidor.", - "create.schematics.maxAllowedSize": "El tamaño máximo permitido del archivo del esquema es:", - - "create.gui.schematicTable.refresh": "Refrescar archivos", - "create.gui.schematicTable.open_folder": "Abrir carpeta", - "create.gui.schematicTable.title": "Tabla de esquemas", - "create.gui.schematicTable.availableSchematics": "Esquemas disponibles", - "create.gui.schematicTable.noSchematics": "No hay esquemas guardados", - "create.gui.schematicTable.uploading": "Subiendo...", - "create.gui.schematicTable.finished": "¡Subida finalizada!", - "create.gui.schematicannon.title": "Cañón de esquemas", - "create.gui.schematicannon.listPrinter": "Lista de control de la impresora", - "create.gui.schematicannon.gunpowderLevel": "Pólvora %1$s%%", - "create.gui.schematicannon.shotsRemaining": "Disparos restantes: %1$s", - "create.gui.schematicannon.shotsRemainingWithBackup": "Con respaldo: %1$s", - "create.gui.schematicannon.optionEnabled": "Actualmente habilitado", - "create.gui.schematicannon.optionDisabled": "Actualmente deshabilitado", - "create.gui.schematicannon.showOptions": "Mostrar la configuración de la impresora", - "create.gui.schematicannon.option.dontReplaceSolid": "No sustituír los bloques sólidos", - "create.gui.schematicannon.option.replaceWithSolid": "Sustituir sólido por sólido", - "create.gui.schematicannon.option.replaceWithAny": "Sustituir sólido por cualquiera", - "create.gui.schematicannon.option.replaceWithEmpty": "Sustituir sólido por vacío", - "create.gui.schematicannon.option.skipMissing": "Omitir los bloques que faltan", - "create.gui.schematicannon.option.skipTileEntities": "Proteger a las entidades", - "create.gui.schematicannon.slot.gunpowder": "Añade pólvora para alimentar el cañón", - "create.gui.schematicannon.slot.listPrinter": "Coloque los libros aquí para imprimir una lista de comprobación para su esquema", - "create.gui.schematicannon.slot.schematic": "Añada su esquema aquí. Asegúrese de que se despliega en un lugar específico.", - "create.gui.schematicannon.option.skipMissing.description": "Si el cañón no encuentra un bloque necesario para su colocación, continuará en la siguiente ubicación.", - "create.gui.schematicannon.option.skipTileEntities.description": "El cañón evitará reemplazar los bloques que contienen datos, como los cofres.", - "create.gui.schematicannon.option.dontReplaceSolid.description": "El cañón nunca sustituirá ningún bloque sólido en su zona de trabajo, sólo los no sólidos y el aire.", - "create.gui.schematicannon.option.replaceWithSolid.description": "El cañón sólo reemplazará los bloques sólidos en su área de trabajo si el esquema contiene un bloque sólido en la ubicación.", - "create.gui.schematicannon.option.replaceWithAny.description": "El cañón reemplazará los bloques sólidos en su área de trabajo si el esquema contiene algún bloque en la ubicación.", - "create.gui.schematicannon.option.replaceWithEmpty.description": "El cañón eliminará todos los bloques de su zona de trabajo, incluidos los sustituidos por aire.", - - "create.schematicannon.status.idle": "Inactivo", - "create.schematicannon.status.ready": "Listo", - "create.schematicannon.status.running": "Funcionando", - "create.schematicannon.status.finished": "Finalizado", - "create.schematicannon.status.paused": "Pausado", - "create.schematicannon.status.stopped": "Detenido", - "create.schematicannon.status.noGunpowder": "Sin pólvora", - "create.schematicannon.status.targetNotLoaded": "El objetivo no está cargado", - "create.schematicannon.status.targetOutsideRange": "Objetivo demasiado lejano", - "create.schematicannon.status.searching": "Buscando", - "create.schematicannon.status.skipping": "Omitiendo", - "create.schematicannon.status.missingBlock": "Elementos perdidos:", - "create.schematicannon.status.placing": "Colocando", - "create.schematicannon.status.clearing": "Limpiando bloques", - "create.schematicannon.status.schematicInvalid": "Esquema inválido", - "create.schematicannon.status.schematicNotPlaced": "Esquema no desplegado", - "create.schematicannon.status.schematicExpired": "Archivo de esquemas caducado", - - "create.materialChecklist": "Lista de control del material", - "create.materialChecklist.blocksNotLoaded": "* Descargo de Responsabilidad *\n\nLa lista de materiales puede ser inexacta debido a que no se han cargado los chunks pertinentes.", - - "create.gui.filter.deny_list": "Lista de denegados", - "create.gui.filter.deny_list.description": "Los objetos pasan si NO coinciden con ninguno de los anteriores. Una lista de denegación vacía acepta todo.", - "create.gui.filter.allow_list": "Lista de permitidos", - "create.gui.filter.allow_list.description": "Los objetos pasan si coinciden con alguno de los anteriores. Una lista de permitidos vacía rechaza todo.", - "create.gui.filter.respect_data": "Respetar datos", - "create.gui.filter.respect_data.description": "Los objetos sólo coinciden si su durabilidad, encantos y otros atributos también coinciden.", - "create.gui.filter.ignore_data": "Ignorar datos", - "create.gui.filter.ignore_data.description": "Los artículos coinciden independientemente de sus atributos.", - - "create.item_attributes.placeable": "se puede colocar", - "create.item_attributes.placeable.inverted": "no se puede colocar", - "create.item_attributes.consumable": "se puede comer", - "create.item_attributes.consumable.inverted": "no se puede comer", - "create.item_attributes.smeltable": "se puede fundir", - "create.item_attributes.smeltable.inverted": "no se puede fundir", - "create.item_attributes.washable": "se puede lavar", - "create.item_attributes.washable.inverted": "no se puede lavar", - "create.item_attributes.smokable": "puede ser ahumado", - "create.item_attributes.smokable.inverted": "no puede ser ahumado", - "create.item_attributes.crushable": "puede ser molido", - "create.item_attributes.crushable.inverted": "no puede ser molido", - "create.item_attributes.blastable": "es fundible en el alto horno", - "create.item_attributes.blastable.inverted": "no es fundible en el alto horno", - "create.item_attributes.enchanted": "está encantado", - "create.item_attributes.enchanted.inverted": "no está encantado", - "create.item_attributes.damaged": "está dañado", - "create.item_attributes.damaged.inverted": "no está dañado", - "create.item_attributes.badly_damaged": "está muy dañado", - "create.item_attributes.badly_damaged.inverted": "no está muy dañado", - "create.item_attributes.not_stackable": "no se puede apilar", - "create.item_attributes.not_stackable.inverted": "se puede apilar", - "create.item_attributes.equipable": "se puede equipar", - "create.item_attributes.equipable.inverted": "no se puede equipar", - "create.item_attributes.furnace_fuel": "es combustible para hornos", - "create.item_attributes.furnace_fuel.inverted": "no es combustible para hornos", - "create.item_attributes.in_tag": "está etiquetado %1$s", - "create.item_attributes.in_tag.inverted": "no está etiquetado %1$s", - "create.item_attributes.in_item_group": "está en el grupo '%1$s'", - "create.item_attributes.in_item_group.inverted": "no está en el grupo '%1$s'", - "create.item_attributes.added_by": "fue añadido por %1$s", - "create.item_attributes.added_by.inverted": "no fue añadida por %1$s", - "create.item_attributes.shulker_level": "es shulker %1$s", - "create.item_attributes.shulker_level.inverted": "no es shulker %1$s", - "create.item_attributes.shulker_level.full": "lleno", - "create.item_attributes.shulker_level.empty": "vacío", - "create.item_attributes.shulker_level.partial": "parcialmente lleno", - "create.item_attributes.has_enchant": "está encantado con %1$s", - "create.item_attributes.has_enchant.inverted": "no está encantado con %1$s", - "create.item_attributes.color": "Está teñido %1$s", - "create.item_attributes.color.inverted": "No está teñido %1$s", - "create.item_attributes.max_enchanted": "está encantado en el nivel máximo", - "create.item_attributes.max_enchanted.inverted": "no está encantado en el nivel máximo", - "create.item_attributes.has_fluid": "contiene %1$s", - "create.item_attributes.has_fluid.inverted": "no contiene %1$s", - "create.item_attributes.has_name": "tiene el nombre personalizado %1$s", - "create.item_attributes.has_name.inverted": "no tiene el nombre personalizado %1$s", - "create.item_attributes.book_author": "es obra de %1$s", - "create.item_attributes.book_author.inverted": "no es es obra de %1$s", - "create.item_attributes.book_copy_original": "es un original", - "create.item_attributes.book_copy_original.inverted": "no es un original", - "create.item_attributes.book_copy_first": "es una copia de primera generación", - "create.item_attributes.book_copy_first.inverted": "no es una copia de primera generación", - "create.item_attributes.book_copy_second": "es una copia de segunda generación", - "create.item_attributes.book_copy_second.inverted": "no es una copia de segunda generación", - "create.item_attributes.book_copy_tattered": "es un desordenado desastre", - "create.item_attributes.book_copy_tattered.inverted": "no es un desordenado desastre", - "create.item_attributes.astralsorcery_crystal": "tiene el atributo de cristal %1$s", - "create.item_attributes.astralsorcery_crystal.inverted": "no tiene atributo de cristal %1$s", - "create.item_attributes.astralsorcery_constellation": "está en sintonía con %1$s", - "create.item_attributes.astralsorcery_constellation.inverted": "no está en sintonía con %1$s", - "create.item_attributes.astralsorcery_perk_gem": "tiene el atributo ventaja %1$s", - "create.item_attributes.astralsorcery_perk_gem.inverted": "no tiene el atributo ventaja %1$s", - "create.item_attributes.astralsorcery_amulet": "mejora %1$s", - "create.item_attributes.astralsorcery_amulet.inverted": "no mejora %1$s", - - "create.gui.attribute_filter.no_selected_attributes": "No hay atributos seleccionados", - "create.gui.attribute_filter.selected_attributes": "Atributos seleccionados:", - "create.gui.attribute_filter.add_attribute": "Añadir atributo a la lista", - "create.gui.attribute_filter.add_inverted_attribute": "Añadir atributo invertido a la Lista", - "create.gui.attribute_filter.allow_list_disjunctive": "Lista de permitidos (Cualquiera)", - "create.gui.attribute_filter.allow_list_disjunctive.description": "Los objetos pasan si tienen alguno de los atributos seleccionados", - "create.gui.attribute_filter.allow_list_conjunctive": "Lista de permitidos (Todos)", - "create.gui.attribute_filter.allow_list_conjunctive.description": "Los objetos pasan sólo si tienen TODOS los atributos seleccionados", - "create.gui.attribute_filter.deny_list": "Lista de denegados", - "create.gui.attribute_filter.deny_list.description": "Los objetos pasan si NO tienen ninguno de los atributos seleccionados", - "create.gui.attribute_filter.add_reference_item": "Añadir elemento de referencia", - - "create.tooltip.holdForDescription": "Mantén [%1$s] para mas información", - "create.tooltip.holdForControls": "Mantén [%1$s] para ver los controles", - "create.tooltip.keyShift": "Mayús izdo.", - "create.tooltip.keyCtrl": "Ctrl", - "create.tooltip.speedRequirement": "Requisitos de velocidad: %1$s", - "create.tooltip.speedRequirement.none": "Ninguno", - "create.tooltip.speedRequirement.medium": "Moderado", - "create.tooltip.speedRequirement.high": "Rápido", - "create.tooltip.stressImpact": "Impacto de estrés: %1$s", - "create.tooltip.stressImpact.low": "Bajo", - "create.tooltip.stressImpact.medium": "Moderado", - "create.tooltip.stressImpact.high": "Alto", - "create.tooltip.stressImpact.overstressed": "Sobrecargado", - "create.tooltip.capacityProvided": "Capacidad de estrés: %1$s", - "create.tooltip.capacityProvided.low": "Pequeña", - "create.tooltip.capacityProvided.medium": "Media", - "create.tooltip.capacityProvided.high": "Grande", - "create.tooltip.generationSpeed": "Generada en %1$s %2$s", - "create.tooltip.analogStrength": "Fuerza analógica: %1$s/15", - - "create.mechanical_arm.extract_from": "Extraer objetos de %1$s", - "create.mechanical_arm.deposit_to": "Depositar objetos en %1$s", - "create.mechanical_arm.summary": "El brazo mecánico tiene %1$s entrada(s) y %2$s salida(s)", - "create.mechanical_arm.points_outside_range": "%1$s punto(s) de interacción seleccionado(s) eliminado(s) debido a las limitaciones de rango", - - "create.weighted_ejector.target_set": "Objetivo seleccionado", - "create.weighted_ejector.target_not_valid": "Expulsión al bloque adyacente (el objetivo no era válido)", - "create.weighted_ejector.no_target": "Expulsión al bloque adyacente (no se ha seleccionado ningún objetivo)", - "create.weighted_ejector.targeting": "Expulsión a [%1$s,%2$s,%3$s]", - "create.weighted_ejector.stack_size": "Tamaño de la pila expulsada", - - "create.logistics.when_multiple_outputs_available": "Cuando hay múltiples salidas disponibles", - - "create.mechanical_arm.selection_mode.round_robin": "Round Robin", - "create.mechanical_arm.selection_mode.forced_round_robin": "Round Robin forzado", - "create.mechanical_arm.selection_mode.prefer_first": "Preferir el primero", - - "create.tunnel.selection_mode.split": "División", - "create.tunnel.selection_mode.forced_split": "División forzada", - "create.tunnel.selection_mode.round_robin": "Round Robin", - "create.tunnel.selection_mode.forced_round_robin": "Round Robin forzado", - "create.tunnel.selection_mode.prefer_nearest": "Preferir el más cercano", - "create.tunnel.selection_mode.randomize": "Aleatorizar", - "create.tunnel.selection_mode.synchronize": "Sincronizar entradas", - - "create.tooltip.chute.header": "Información del ducto", - "create.tooltip.chute.items_move_down": "Los objetos se mueven hacia abajo", - "create.tooltip.chute.items_move_up": "Los objetos se mueven hacia arriba", - "create.tooltip.chute.no_fans_attached": "No hay ventiladores adjuntos", - "create.tooltip.chute.fans_push_up": "Los ventiladores empujan desde abajo", - "create.tooltip.chute.fans_push_down": "Los ventiladores empujan desde arriba", - "create.tooltip.chute.fans_pull_up": "Los ventiladores tiran desde arriba", - "create.tooltip.chute.fans_pull_down": "Los ventiladores tiran desde abajo", - "create.tooltip.chute.contains": "Contiene: %1$s x%2$s", - "create.tooltip.brass_tunnel.contains": "Actualmente distribuye:", - "create.tooltip.brass_tunnel.contains_entry": "> %1$s x%2$s", - "create.tooltip.brass_tunnel.retrieve": "Haga clic derecho para recuperar", - - "create.linked_controller.bind_mode": "Modo de enlace activo", - "create.linked_controller.press_keybind": "Presiona %1$s, %2$s, %3$s, %4$s, %5$s o %6$s, para vincular esta frecuencia a la tecla correspondiente", - "create.linked_controller.key_bound": "Frecuencia ligada a %1$s", - "create.linked_controller.frequency_slot_1": "Enlace de teclas: %1$s, Freq. #1", - "create.linked_controller.frequency_slot_2": "Enlace de teclas: %1$s, Freq. #2", - - "create.crafting_blueprint.crafting_slot": "Ranura para ingredientes", - "create.crafting_blueprint.filter_items_viable": "Los objetos del filtro avanzado son viables", - "create.crafting_blueprint.display_slot": "Ranura de pantalla", - "create.crafting_blueprint.inferred": "A partir de la receta", - "create.crafting_blueprint.manually_assigned": "Asignado manualmente", - "create.crafting_blueprint.secondary_display_slot": "Ranura de pantalla secundaria", - "create.crafting_blueprint.optional": "Opcional", - - "create.potato_cannon.ammo.attack_damage": "%1$s Daño de ataque", - "create.potato_cannon.ammo.reload_ticks": "%1$s Recarga por Ticks", - "create.potato_cannon.ammo.knockback": "%1$s Golpe de efecto", - - "create.hint.hose_pulley.title": "Suministro ilimitado", - "create.hint.hose_pulley": "La masa de fluido objetivo se considera infinita.", - "create.hint.mechanical_arm_no_targets.title": "Sin objetivos", - "create.hint.mechanical_arm_no_targets": "Parece que a este _brazo mecánico_ no se le ha asignado ningún objetivo. Selecciona _correas_, _depósitos_, _embudos_ y otros bloques haciendo clic derecho sobre ellos mientras _sostienes_ el _brazo mecánico_ en tu mano..", - "create.hint.empty_bearing.title": "Actualización del rodamiento", - "create.hint.empty_bearing": "Haz clic derecho sobre el rodamiento con la _mano vacía_ para _adjuntar_ la estructura que acabas de construir delante de él.", - "create.hint.full_deployer.title": "Exceso de objetos en el desplegador", - "create.hint.full_deployer": "Parece que este _desplegador_ contiene _exceso_ de objetos que necesitan ser _extraídos._ Usa una _tolva_, _embudo_ u otro medio para liberarlo de su excedente.", - - "create.gui.config.overlay1": "Hola :)", - "create.gui.config.overlay2": "Esta es una muestra de la superposición", - "create.gui.config.overlay3": "Haga clic o arrastre con el ratón", - "create.gui.config.overlay4": "para mover esta vista previa", - "create.gui.config.overlay5": "Pulsar ESC para salir de esta pantalla", - "create.gui.config.overlay6": "y guardar la nueva posición", - "create.gui.config.overlay7": "Ejecute /create overlay reset", - "create.gui.config.overlay8": "para restablecer la posición por defecto", - - "create.command.killTPSCommand": "killtps", - "create.command.killTPSCommand.status.slowed_by.0": "[Crear]: El tick del servidor está actualmente ralentizado en %s ms :o", - "create.command.killTPSCommand.status.slowed_by.1": "[Crear]: El tick del servidor está ralentizado en %s ms ahora >:)", - "create.command.killTPSCommand.status.slowed_by.2": "[Create]: El tick del servidor ha vuelto a su velocidad normal :D", - "create.command.killTPSCommand.status.usage.0": "[Create]: usa /killtps stop para que el servidor vuelva a la velocidad normal", - "create.command.killTPSCommand.status.usage.1": "[Create]: usa /killtps start para ralentizar artificialmente el tick del servidor", - "create.command.killTPSCommand.argument.tickTime": "tickTime", - - "create.contraption.minecart_contraption_too_big": "Este artilugio de vagoneta parece demasiado grande para recogerlo", - "create.contraption.minecart_contraption_illegal_pickup": "Una fuerza mística está atando este artilugio de vagoneta al mundo", - - - "_": "->------------------------] Subtitles [------------------------<-", - - "create.subtitle.contraption_disassemble": "", - "create.subtitle.peculiar_bell_use": "", - "create.subtitle.mixing": "", - "create.subtitle.mechanical_press_activation_belt": "", - "create.subtitle.fwoomp": "", - "create.subtitle.worldshaper_place": "", - "create.subtitle.crushing_1": "", - "create.subtitle.depot_slide": "", - "create.subtitle.saw_activate_stone": "", - "create.subtitle.blaze_munch": "", - "create.subtitle.funnel_flap": "", - "create.subtitle.schematicannon_finish": "", - "create.subtitle.haunted_bell_use": "", - "create.subtitle.scroll_value": "", - "create.subtitle.crafter_craft": "", - "create.subtitle.controller_put": "", - "create.subtitle.cranking": "", - "create.subtitle.wrench_remove": "", - "create.subtitle.cogs": "", - "create.subtitle.slime_added": "", - "create.subtitle.wrench_rotate": "", - "create.subtitle.potato_hit": "", - "create.subtitle.saw_activate_wood": "", - "create.subtitle.haunted_bell_convert": "", - "create.subtitle.deployer_polish": "", - "create.subtitle.deny": "", - "create.subtitle.controller_click": "", - "create.subtitle.schematicannon_launch_block": "", - "create.subtitle.copper_armor_equip": "", - "create.subtitle.controller_take": "Lectern empties", - "create.subtitle.mechanical_press_activation": "", - "create.subtitle.contraption_assemble": "", - "create.subtitle.crafter_click": "", - "create.subtitle.depot_plop": "", - "create.subtitle.confirm": "", - - - "_": "->------------------------] Item Descriptions [------------------------<-", - - "item.create.example_item.tooltip": "EJEMPLO DE ITEM (sólo un marcador de que este tooltip existe)", - "item.create.example_item.tooltip.summary": "Una breve descripción del elemento. Los puntajes bajos resaltan un término", - "item.create.example_item.tooltip.condition1": "Cuando este", - "item.create.example_item.tooltip.behaviour1": "Entonces este elemento hace esto. (los comportamientos se muestran en el turno)", - "item.create.example_item.tooltip.condition2": "Y cuando esto", - "item.create.example_item.tooltip.behaviour2": "Puedes añadir tantos comportamientos como quieras", - "item.create.example_item.tooltip.control1": "Cuando se pulsa [Ctrl]", - "item.create.example_item.tooltip.action1": "Se muestran estos controles", - - "block.create.wooden_bracket.tooltip": "SOPORTE DE MADERA PARA EJES", - "block.create.wooden_bracket.tooltip.summary": "Decora tus _ejes_, _engranajes_ y _ductos_ con un acogedor refuerzo de madera.", - - "block.create.metal_bracket.tooltip": "SOPORTE DE METAL PARA EJES", - "block.create.metal_bracket.tooltip.summary": "Decora tus _ejes_, _engranajes_ y _ductos_ con un poco de robusto refuerzo industrial.", - - "block.create.seat.tooltip": "ASIENTO", - "block.create.seat.tooltip.summary": "¡Siéntate y disfruta del viaje! Anclará a un jugador en un artilugio en movimiento. También es ideal para muebles estáticos. Viene en una variedad de colores.", - "block.create.seat.tooltip.condition1": "Cuando se hace clic derecho en el asiento", - "block.create.seat.tooltip.behaviour1": "Sienta al jugador en el _asiento_. Pulsa Mayús izdo para dejar el asiento.", - - "item.create.blaze_cake.tooltip": "PASTEL DE BLAZE", - "item.create.blaze_cake.tooltip.summary": "Un delicioso regalo para sus esforzados _quemadores de blaze_. ¡Los pone en marcha!.", - - "item.create.wand_of_symmetry.tooltip": "VARITA DE SIMETRÍA", - "item.create.wand_of_symmetry.tooltip.summary": "Refleja perfectamente la colocación de bloques en los planos configurados.", - "item.create.wand_of_symmetry.tooltip.condition1": "Mientras está en el inventario rápido", - "item.create.wand_of_symmetry.tooltip.behaviour1": "Permanece activo.", - "item.create.wand_of_symmetry.tooltip.control1": "Cuando se hace clic derecho en el suelo", - "item.create.wand_of_symmetry.tooltip.action1": "_Crea_ o _mueve_ el espejo.", - "item.create.wand_of_symmetry.tooltip.control2": "Cuando se hace clic derecho en el aire", - "item.create.wand_of_symmetry.tooltip.action2": "_Quita_ el espejo activo.", - "item.create.wand_of_symmetry.tooltip.control3": "Mayús izdo + clic derecho", - "item.create.wand_of_symmetry.tooltip.action3": "Abre la interfaz de configuración.", - - "item.create.handheld_worldshaper.tooltip": "WORLDSHAPER", - "item.create.handheld_worldshaper.tooltip.summary": "Práctica herramienta para crear _paisajes_ y _características del terreno_.", - "item.create.handheld_worldshaper.tooltip.control1": "Cuando se hace clic izquierdo en un bloque", - "item.create.handheld_worldshaper.tooltip.action1": "Establece los bloques colocados por la herramienta en el bloque objetivo.", - "item.create.handheld_worldshaper.tooltip.control2": "Cuando se hace clic derecho en un bloque", - "item.create.handheld_worldshaper.tooltip.action2": "Aplica el _pincel_ y la _herramienta_ actualmente seleccionadas en el lugar deseado.", - "item.create.handheld_worldshaper.tooltip.control3": "Mayús izdo + clic derecho", - "item.create.handheld_worldshaper.tooltip.action3": "Abre la interfaz de configuración.", - - "item.create.tree_fertilizer.tooltip": "FERTILIZANTE PARA ÁRBOLES", - "item.create.tree_fertilizer.tooltip.summary": "Una potente combinación de minerales adecuada para acelerar el crecimiento de los tipos de árboles más comunes.", - "item.create.tree_fertilizer.tooltip.condition1": "Cuando se utiliza en un árbol joven", - "item.create.tree_fertilizer.tooltip.behaviour1": "Hace crecer los árboles _independientemente_ de sus condiciones de _espacio_.", - - "item.create.extendo_grip.tooltip": "AGARRE EXTENDIDO", - "item.create.extendo_grip.tooltip.summary": "¡Boioioing! Aumenta enormemente la _distancia de alcance_ del portador. Se puede alimentar con la presión de aire de un _depósito trasero de cobre_", - "item.create.extendo_grip.tooltip.condition1": "Cuando está fuera de la mano", - "item.create.extendo_grip.tooltip.behaviour1": "Aumenta la _distancia de alcance_ de los objetos usados en la _mano principal_.", - "item.create.extendo_grip.tooltip.condition2": "Mientras se usa un depósito trasero de cobre", - "item.create.extendo_grip.tooltip.behaviour2": "No se utilizará _durabilidad_. En su lugar, la _presión del aire_ se drena desde el tanque", - - "item.create.potato_cannon.tooltip": "CANÓN DE PATATAS", - "item.create.potato_cannon.tooltip.summary": "Fwoomp! Lanza tus verduras caseras a tus enemigos. Se puede alimentar con la presión de aire de un _depósito trasero de cobre_", - "item.create.potato_cannon.tooltip.condition1": "Cuando se usa clic derecho", - "item.create.potato_cannon.tooltip.behaviour1": "_Dispara_ un objeto adecuado desde tu inventario_.", - "item.create.potato_cannon.tooltip.condition2": "Mientras se usa un depósito trasero de cobre", - "item.create.potato_cannon.tooltip.behaviour2": "No se utilizará _durabilidad_. En su lugar, la _presión del aire_ se drena desde el tanque", - - "item.create.filter.tooltip": "FILTRO", - "item.create.filter.tooltip.summary": "Controla las _salidas_ y _entradas_ de los _dispositivos logísticos_ con más precisión, comparándolas con un _conjunto de objetos_ o varios _filtros anidados_.", - "item.create.filter.tooltip.condition1": "Cuando está en la ranura de filtros", - "item.create.filter.tooltip.behaviour1": "Controla el flujo de objetos según su _configuración_.", - "item.create.filter.tooltip.condition2": "Cuando se hace clic derecho", - "item.create.filter.tooltip.behaviour2": "Abre la interfaz de configuración.", - - "item.create.attribute_filter.tooltip": "FILTRO DE ATRIBUTOS", - "item.create.attribute_filter.tooltip.summary": "Controla las _salidas_ y las _entradas_ de los _dispositivos logísticos_ con más precisión, comparándolas con un _conjunto de atributos_ y _categorías_ de objetos.", - "item.create.attribute_filter.tooltip.condition1": "Cuando está en la ranura de filtros", - "item.create.attribute_filter.tooltip.behaviour1": "Controla el flujo de objetos según su _configuración_.", - "item.create.attribute_filter.tooltip.condition2": "Cuando se hace clic derecho", - "item.create.attribute_filter.tooltip.behaviour2": "Abre la interfaz de configuración.", - - "item.create.empty_schematic.tooltip": "ESQUEMA VACÍO", - "item.create.empty_schematic.tooltip.summary": "Se utiliza como 'ingrediente' de las recetas y para escribir en la _tabla de esquemas_.", - - "item.create.schematic.tooltip": "ESQUEMA", - "item.create.schematic.tooltip.summary": "Contiene una estructura para ser posicionada y colocada en el mundo. Posiciona el holograma como desees y utiliza un _cañón de esquemas_ para construirla.", - "item.create.schematic.tooltip.condition1": "Cuando se sostiene en la mano", - "item.create.schematic.tooltip.behaviour1": "Se puede posicionar utilizando las herramientas en pantalla.", - "item.create.schematic.tooltip.control1": "Mayús izdo + clic derecho", - "item.create.schematic.tooltip.action1": "Abre una _interfaz_ para introducir las _coordenadas_ exactas.", - - "item.create.schematic_and_quill.tooltip": "ESQUEMA Y PLUMA", - "item.create.schematic_and_quill.tooltip.summary": "Se utiliza para guardar una estructura de tu mundo en un archivo .nbt.", - "item.create.schematic_and_quill.tooltip.condition1": "Paso 1", - "item.create.schematic_and_quill.tooltip.behaviour1": "Selecciona dos puntos de esquina usando clic derecho.", - "item.create.schematic_and_quill.tooltip.condition2": "Paso 2", - "item.create.schematic_and_quill.tooltip.behaviour2": "[Ctrl] + [RUEDA DEL RATÓN] en las caras para ajustar el tamaño. Clic derecho de nuevo para guardar.", - "item.create.schematic_and_quill.tooltip.control1": "Cuando se hace clic derecho", - "item.create.schematic_and_quill.tooltip.action1": "Selecciona un punto de esquina / confirmar guardar.", - "item.create.schematic_and_quill.tooltip.control2": "Cuando mantiene [Ctrl]", - "item.create.schematic_and_quill.tooltip.action2": "Selecciona puntos en _medio del aire_. Rueda del ratón para ajustar la distancia.", - "item.create.schematic_and_quill.tooltip.control3": "Mayús izdo + clic derecho", - "item.create.schematic_and_quill.tooltip.action3": "_Reinicia_ y elimina la selección.", - - "block.create.schematicannon.tooltip": "CAÑÓN DE ESQUEMAS", - "block.create.schematicannon.tooltip.summary": "Dispara bloques para recrear un _esquema_ desplegado en el mundo. Utiliza objetos de los inventarios adyacentes y _pólvora_ como combustible.", - "block.create.schematicannon.tooltip.condition1": "Cuando se hace clic derecho", - "block.create.schematicannon.tooltip.behaviour1": "Abre la interfaz.", - - "block.create.schematic_table.tooltip": "TABLA DE ESQUEMAS", - "block.create.schematic_table.tooltip.summary": "Escribe los esquemas guardados en un _esquema vacío_.", - "block.create.schematic_table.tooltip.condition1": "Cuando se da un esquema vacío", - "block.create.schematic_table.tooltip.behaviour1": "Carga un archivo elegido de la carpeta de esquemas.", - - "item.create.goggles.tooltip": "GAFAS DEL CONSTRUCTOR", - "item.create.goggles.tooltip.summary": "Un par de gafas para aumentar tu visión con útil información _cinética_.", - "item.create.goggles.tooltip.condition1": "Cuando se llevan puestas", - "item.create.goggles.tooltip.behaviour1": "Muestra _indicadores de color_ correspondientes al _nivel de velocidad_ de un componente cinético colocado, así como el _impacto de estrés_ y la _carga_ de los componentes individuales.", - "item.create.goggles.tooltip.condition2": "Al mirar un medidor", - "item.create.goggles.tooltip.behaviour2": "Muestra información detallada sobre _velocidad_ o _estrés_ de la red a la que está conectado el medidor.", - "item.create.goggles.tooltip.condition3": "Al mirar un contenedor de fluidos", - "item.create.goggles.tooltip.behaviour3": "Muestra información detallada sobre la _carga_ del bloque y los _líquidos_ almacenados en su interior.", - - "item.create.wrench.tooltip": "LLAVE INGLESA", - "item.create.wrench.tooltip.summary": "Una herramienta útil para trabajar en artilugios cinéticos. Se puede utilizar para _rotar_, _desmantelar_ y para _configurar_ componentes.", - "item.create.wrench.tooltip.control1": "Cuando se hace clic derecho en un bloque cinético", - "item.create.wrench.tooltip.action1": "Rota los componentes hacia o desde la cara con la que ha interactuado.", - "item.create.wrench.tooltip.control2": "Mayús izdo + clic derecho", - "item.create.wrench.tooltip.action2": "Desmonta los _componentes cinéticos_ y los devuelve a tu inventario_.", - - "block.create.nozzle.tooltip": "BOQUILLA", - "block.create.nozzle.tooltip.summary": "Se acopla a la parte delantera de un _ventilador revestido_ para distribuir su efecto sobre las entidades en _todas las direcciones_.", - - "block.create.cuckoo_clock.tooltip": "RELOJ DE CUCO", - "block.create.cuckoo_clock.tooltip.summary": "Fina artesanía para decorar un espacio y contar el tiempo.", - "block.create.cuckoo_clock.tooltip.condition1": "Cuando es alimentado por cinética", - "block.create.cuckoo_clock.tooltip.behaviour1": "Muestra la _hora actual_ y toca una melodía dos veces al día. Se activa una vez al mediodía y al anochecer, _en cuanto los jugadores pueden dormir_.", - - "block.create.turntable.tooltip": "PLATAFORMA GIRATORIA", - "block.create.turntable.tooltip.summary": "Convierte la _fuerza rotacional_ en un refinado mareo.", - - "block.create.stockpile_switch.tooltip": "INTERRUPTOR DE ACOPIO", - "block.create.stockpile_switch.tooltip.summary": "Activa una señal de redstone en función de la cantidad de _objetos almacenados_ en el _contenedor_ adjunto. Viene con un práctico filtro. A diferencia de un _comparador, el _interruptor de acopio_ permite la configuración de _umbrales_, a partir de los cuales se invierten las señales.", - "block.create.stockpile_switch.tooltip.condition1": "Cuando se hace clic derecho", - "block.create.stockpile_switch.tooltip.behaviour1": "Abre la interfaz de configuración.", - - "block.create.content_observer.tooltip": "OBSERVADOR DE CONTENIDO", - "block.create.content_observer.tooltip.summary": "_Detecta objetos_ dentro de _contenedores_ y _transportadores_ que coincidan con un _filtro_ configurado. Mientras el _inventario_, la _cinta_ o la _canaleta_ observados _contengan_ un objeto que coincida, este componente emitirá una _señal de redstone_. Cuando un embudo observado _transfiere_ un objeto coincidente, este componente emitirá un _pulso de redstone_.", - - "block.create.adjustable_crate.tooltip": "CAJA AJUSTABLE", - "block.create.adjustable_crate.tooltip.summary": "Este _contenedor de objetos_ permite el control manual de su capacidad. Puede contener hasta _16 pilas_ de cualquier objeto. Soporta _comparadores de redstone_.", - "block.create.adjustable_crate.tooltip.condition1": "Cuando se hace clic derecho", - "block.create.adjustable_crate.tooltip.behaviour1": "Abre la interfaz.", - - "block.create.creative_crate.tooltip": "CAJA CREATIVA", - "block.create.creative_crate.tooltip.summary": "Este _contenedor de objetos_ permite la replicación infinita de cualquier elemento. Colócalo junto a un _cañón de esquemas_ para eliminar cualquier requisito de material.", - "block.create.creative_crate.tooltip.condition1": "Cuando el elemento está en la ranura para filtros", - "block.create.creative_crate.tooltip.behaviour1": "Todo lo que se _extraiga_ de este contenedor proporcionará un suministro _ilimitado_ del elemento especificado. Los objetos _insertados_ en esta caja serán _evitados_.", - - "item.create.creative_blaze_cake.tooltip": "PASTEL CREATIVO", - "item.create.creative_blaze_cake.tooltip.summary": "Un regalo muy especial para los _Quemadores de Blaze_ que permite _controlar su nivel de calor_. Después de comer este pastel, los Quemadores de blaze _nunca se quedarán sin combustible_.", - "item.create.creative_blaze_cake.tooltip.condition1": "Click derecho en un Quemador de blaze", - "item.create.creative_blaze_cake.tooltip.behaviour1": "Bloquea el nivel de calor del Quemador de blaze. Si se utiliza de nuevo, _cicla_ el nivel de calor del Quemador de blaze.", - - "block.create.controller_rail.tooltip": "RAÍL DE CONTROL", - "block.create.controller_rail.tooltip.summary": "Un raíl energizado _unidireccional_ capaz de _controlar con precisión_ la _velocidad de movimiento_ de una vagoneta.", - "block.create.controller_rail.tooltip.condition1": "Cuando es alimentado con redstone", - "block.create.controller_rail.tooltip.behaviour1": "_Acelera_ o _desacelera_ pasando _vagonetas_ correspondientes a la _fuerza de la señal_. Propaga la energía de redstone a los raíles de control adyacentes. Al alimentar dos raíles de control con diferentes intensidades, los carriles entre ellos interpolarán su señal.", - - "item.create.sand_paper.tooltip": "PAPEL DE LIJA", - "item.create.sand_paper.tooltip.summary": "Un papel rugoso que se puede utilizar para _pulir materiales_. Se puede aplicar automáticamente con el _desplegador_.", - "item.create.sand_paper.tooltip.condition1": "Cuando se usa", - "item.create.sand_paper.tooltip.behaviour1": "Aplica un pulido a los objetos sostenidos en la _mano libre_ o tirados en el _suelo_ cuando se _miran_.", - - "item.create.builders_tea.tooltip": "TÉ DEL CONSTRUCTOR", - "item.create.builders_tea.tooltip.summary": "La bebida perfecta para empezar el día. Motivante y saturante.", - - "item.create.refined_radiance.tooltip": "RESPLANDOR REFINADO", - "item.create.refined_radiance.tooltip.summary": "Un material cromático forjado a partir de la _luz absorbida_.", - "item.create.refined_radiance.tooltip.condition1": "Trabajo en progreso", - "item.create.refined_radiance.tooltip.behaviour1": "Los usos para este material estarán disponibles en un próximo lanzamiento.", - - "item.create.shadow_steel.tooltip": "ACERO SOMBRÍO", - "item.create.shadow_steel.tooltip.summary": "Un material cromático forjado en el _vacío_.", - "item.create.shadow_steel.tooltip.condition1": "Trabajo en curso", - "item.create.shadow_steel.tooltip.behaviour1": "Los usos de este material estarán disponibles en una futura versión.", - - "item.create.linked_controller.tooltip": "CONTROLADOR ENLAZADO", - "item.create.linked_controller.tooltip.summary": "Permite el control manual de las frecuencias de _enlaces de redstone_ asignadas a sus seis botones.", - "item.create.linked_controller.tooltip.condition1": "Al hacer clic derecho", - "item.create.linked_controller.tooltip.behaviour1": "Activa el _controlador_. Los _controles de movimiento_ se adquieren mientras está activo.", - "item.create.linked_controller.tooltip.condition2": "Al usar Mayús izdo + clic derecho", - "item.create.linked_controller.tooltip.behaviour2": "Abre la interfaz de configuración manual.", - "item.create.linked_controller.tooltip.condition3": "Al usar clic derecho en un receptor de enlaces de redstone", - "item.create.linked_controller.tooltip.behaviour3": "Activa el _modo de vinculación_, pulsa uno de los _seis controles_ para vincularlo a la _frecuencia de los enlaces_.", - "item.create.linked_controller.tooltip.condition4": "Clic derecho en un atril", - "item.create.linked_controller.tooltip.behaviour4": "Coloca el controlador en el atril para facilitar su activación. (Clic derecho + mayús izq. para recuperarlo)", - - "item.create.diving_helmet.tooltip": "CASCO DE BUCEO", - "item.create.diving_helmet.tooltip.summary": "Junto con un _depósito trasero de cobre_, permite que el usuario pueda respirar bajo el agua durante un tiempo prolongado.", - "item.create.diving_helmet.tooltip.condition1": "Cuando se lleva puesto", - "item.create.diving_helmet.tooltip.behaviour1": "Proporciona el efecto de _respiración acuática_, drenando lentamente la presión de aire del _depósito trasero_.", - - "item.create.copper_backtank.tooltip": "DEPÓSITO TRASERO DE COBRE", - "item.create.copper_backtank.tooltip.summary": "Un tanque portátil para transportar _aire presurizado_.", - "item.create.copper_backtank.tooltip.condition1": "Cuando se lleva puesto", - "item.create.copper_backtank.tooltip.behaviour1": "Proporciona _aire presurizado_ a los equipos que lo requieran.", - "item.create.copper_backtank.tooltip.condition2": "Cuando se coloca y es alimentado por cinética", - "item.create.copper_backtank.tooltip.behaviour2": "Recoge _aire presurizado_ a un ritmo que depende de la velocidad rotacional.", - - "item.create.diving_boots.tooltip": "BOTAS DE BUCEO", - "item.create.diving_boots.tooltip.summary": "Un par de _botas_ pesadas, que permiten atravesar mejor el suelo del océano.", - "item.create.diving_boots.tooltip.condition1": "Cuando se llevan puestas", - "item.create.diving_boots.tooltip.behaviour1": "El portador se hunde rápido y no puede nadar. Concede la capacidad de caminar y saltar bajo el agua. Al portador no le afectarán las _correas mecánicas.", - - "item.create.crafting_blueprint.tooltip": "PLANO DE ELABORACIÓN", - "item.create.crafting_blueprint.tooltip.summary": "Colocado en una pared, puede utilizarse para especificar la disposición de los ingredientes para facilitar la elaboración manual. Cada ranura representa una receta", - "item.create.crafting_blueprint.condition1": "Al hacer clic derecho en una ranura vacía", - "item.create.crafting_blueprint.behaviour1": "Abre un menú que permite configurar una receta y los objetos a mostrar.", - "item.create.crafting_blueprint.condition2": "Al hacer clic derecho en una ranura configurada", - "item.create.crafting_blueprint.behaviour2": "Aplica la receta configurada con los ingredientes que se encuentran en tu inventario. Se puede utilizar para fabricar hasta una pila de objetos.", - - "item.create.minecart_coupling.tooltip": "ENSAMBLADOR DE VAGONETAS", - "item.create.minecart_coupling.tooltip.summary": "_Encadena_ todas tus _vagonetas_ o _artilugios de vagoneta_ para formar un majestuoso _tren_.", - "item.create.minecart_coupling.tooltip.condition1": "Cuando se utiliza en vagonetas", - "item.create.minecart_coupling.tooltip.behaviour1": "_Acopla_ dos vagonetas, intentando mantenerlas a una _distancia constante_ mientras se mueven.", - - "block.create.peculiar_bell.tooltip": "CAMPANA PECULIAR", - "block.create.peculiar_bell.tooltip.summary": "Una campana decorativa de latón. Al colocarla sobre un _Fuego del alma_ o una _Fogata del alma_ puede producirse una transformación espeluznante...", - - "block.create.haunted_bell.tooltip": "CAMPANA ENCANTADA", - "block.create.haunted_bell.tooltip.summary": "Una _campana maldita_ perseguida por las almas perdidas del Nether", - "block.create.haunted_bell.tooltip.condition1": "Cuando se sostiene o suena", - "block.create.haunted_bell.tooltip.behaviour1": "Resalta los _puntos sin luz_ cercanos en los que pueden aparecer las _criaturas hostiles_.", - - - "_": "->------------------------] Ponder Content [------------------------<-", - - "create.ponder.hold_to_ponder": "Mantén [%1$s] para considerar", - "create.ponder.subject": "Tema de esta escena", - "create.ponder.pondering": "Considerando sobre...", - "create.ponder.identify_mode": "Identificando modo activo.\nDespausea con [%1$s]", - "create.ponder.associated": "Entradas asociadas", - "create.ponder.close": "Cerrar", - "create.ponder.identify": "Identificar", - "create.ponder.next": "Escena siguiente", - "create.ponder.previous": "Escena previa", - "create.ponder.replay": "Repetición", - "create.ponder.think_back": "Volver atrás", - "create.ponder.slow_text": "Lectura cómoda", - "create.ponder.exit": "Salir", - "create.ponder.welcome": "Bienvenido al instructivo de Create", - "create.ponder.categories": "Categorías disponibles", - "create.ponder.index_description": "Haga clic en uno de los iconos para conocer sus objetos y bloques asociados", - "create.ponder.index_title": "Índice", - "create.ponder.shared.rpm16": "16 RPM", - "create.ponder.shared.behaviour_modify_wrench": "Este comportamiento puede modificarse mediante una llave inglesa", - "create.ponder.shared.storage_on_contraption": "Los inventarios unidos al artilugio recogerán sus producciones automáticamente", - "create.ponder.shared.sneak_and": "Mayús izdo. +", - "create.ponder.shared.rpm8": "8 RPM", - "create.ponder.shared.ctrl_and": "Ctrl +", - "create.ponder.shared.rpm32": "32 RPM", - "create.ponder.shared.rpm16_source": "Fuente: 16 RPM", - "create.ponder.shared.movement_anchors": "Con la ayuda de un chasis o pegamento, se pueden mover estructuras más grandes.", - "create.ponder.tag.redstone": "Componentes lógicos", - "create.ponder.tag.redstone.description": "Componentes que ayudan a la ingeniería de redstone", - "create.ponder.tag.contraption_assembly": "Utilidades para adjuntar bloques", - "create.ponder.tag.contraption_assembly.description": "Herramientas y componentes utilizados para montar estructuras con movimiento, como un artilugio animado", - "create.ponder.tag.fluids": "Manipuladores de fluidos", - "create.ponder.tag.fluids.description": "Componentes que ayudan a transportar y utilizar fluidos", - "create.ponder.tag.decoration": "Estética", - "create.ponder.tag.decoration.description": "Componentes utilizados principalmente con fines decorativos", - "create.ponder.tag.windmill_sails": "Velas para los rodamientos de los molinos de viento", - "create.ponder.tag.windmill_sails.description": "Bloques que cuentan para la fuerza de un artefacto de molino de viento cuando se ensamblan. Cada uno de ellos tiene la misma eficacia al hacerlo.", - "create.ponder.tag.arm_targets": "Objetivos para los brazos mecánicos", - "create.ponder.tag.arm_targets.description": "Componentes que pueden seleccionarse como entradas o salidas del brazo mecánico", - "create.ponder.tag.kinetic_appliances": "Dispositivos cinéticos", - "create.ponder.tag.kinetic_appliances.description": "Componentes que utilizan la fuerza rotacional", - "create.ponder.tag.kinetic_sources": "Fuentes cinéticas", - "create.ponder.tag.kinetic_sources.description": "Componentes que generan fuerza rotacional", - "create.ponder.tag.movement_anchor": "Anclas de movimiento", - "create.ponder.tag.movement_anchor.description": "Componentes que permiten crear artilugios en movimiento, animando una estructura anexa de diversas maneras", - "create.ponder.tag.kinetic_relays": "Transmisores cinéticos", - "create.ponder.tag.kinetic_relays.description": "Componentes que ayudan a transmitir la fuerza rotacional en otro lugar", - "create.ponder.tag.contraption_actor": "Actores del artilugio", - "create.ponder.tag.contraption_actor.description": "Componentes que exponen un comportamiento especial cuando están unidos a un artilugio en movimiento", - "create.ponder.tag.creative": "Modo creativo", - "create.ponder.tag.creative.description": "Componentes que no suelen estar disponibles para el Modo Supervivencia", - "create.ponder.tag.logistics": "Transporte de objetos", - "create.ponder.tag.logistics.description": "Componentes que ayudan a desplazar los objetos", - - "create.ponder.adjustable_pulse_repeater.header": "Controlar señales mediante repetidores de pulsos ajustables", - "create.ponder.adjustable_pulse_repeater.text_1": "Los repetidores de pulsos ajustables emiten un pulso corto con un retardo", - "create.ponder.adjustable_pulse_repeater.text_2": "Con la rueda del ratón se puede configurar el tiempo de carga", - "create.ponder.adjustable_pulse_repeater.text_3": "Los retrasos configurados pueden ser de hasta 30 minutos", - - "create.ponder.adjustable_repeater.header": "Controlar señales mediante repetidores ajustables", - "create.ponder.adjustable_repeater.text_1": "Los repetidores ajustables se comportan de forma similar a los repetidores normales", - "create.ponder.adjustable_repeater.text_2": "Se cargan durante un tiempo determinado...", - "create.ponder.adjustable_repeater.text_3": "...y se enfrían durante el mismo tiempo", - "create.ponder.adjustable_repeater.text_4": "Con la rueda del ratón se puede configurar el tiempo de carga", - "create.ponder.adjustable_repeater.text_5": "Los retrasos configurados pueden variar hasta 30 minutos", - - "create.ponder.analog_lever.header": "Controlar señales mediante la palanca analógica", - "create.ponder.analog_lever.text_1": "Las palancas analógicas son una fuente compacta y precisa de energía de redstone", - "create.ponder.analog_lever.text_2": "Haz clic derecho para aumentar su potencia analógica", - "create.ponder.analog_lever.text_3": "Usa Mayús izdo + clic derecho para volver a disminuir su potencia", - - "create.ponder.andesite_tunnel.header": "Usar túneles de andesita", - "create.ponder.andesite_tunnel.text_1": "Los túneles de andesita se pueden utilizar para tapar las correas", - "create.ponder.andesite_tunnel.text_2": "Siempre que un túnel de andesita tenga conexiones a los lados...", - "create.ponder.andesite_tunnel.text_3": "...dividirá exactamente un elemento de cualquier pila que pase", - "create.ponder.andesite_tunnel.text_4": "El resto continuará su camino", - - "create.ponder.basin.header": "Procesar objetos en la cuenca", - "create.ponder.basin.text_1": "Una cuenca puede contener objetos y fluidos para su procesamiento", - "create.ponder.basin.text_2": "Después de un paso de procesamamiento, las cuencas intentan descargar por debajo a un lado de ellas", - "create.ponder.basin.text_3": "Cuando un ingrediente válido está presente, la cuenca mostrará un conducto de salida", - "create.ponder.basin.text_4": "Aquí se pueden aplicar varias opciones", - "create.ponder.basin.text_5": "Las salidas serán capturadas por el inventario que está por debajo", - "create.ponder.basin.text_6": "Sin conducto de salida, la cuenca retendrá los objetos creados en su procesamiento", - "create.ponder.basin.text_7": "Esto puede ser útil si las salidas deben ser reutilizadas como ingredientes", - "create.ponder.basin.text_8": "Las salidas deseadas tendrán que ser extraídas de la cuenca", - "create.ponder.basin.text_9": "Podría ser necesario un filtro para evitar sacar los objetos no procesados", - - "create.ponder.bearing_modes.header": "Modos de movimiento del rodamiento mecánico", - "create.ponder.bearing_modes.text_1": "Cuando se detenga, el rodamiento mecánico colocará la estructura en el ángulo más cercano alineado con la cuadrícula", - "create.ponder.bearing_modes.text_2": "Se puede configurar para que nunca vuelva a los bloques sólidos, o sólo cerca del ángulo en el que comenzó", - - "create.ponder.belt_casing.header": "Correas revestidas", - "create.ponder.belt_casing.text_1": "Se puede utilizar revestidor de latón o andesita para decorar las correas", - "create.ponder.belt_casing.text_2": "Se puede utilizar una llave inglesa para quitar el revestimiento", - - "create.ponder.belt_connector.header": "El uso de las correas mecánicas", - "create.ponder.belt_connector.text_1": "Al hacer clic derecho en dos ejes con una correa mecánica se conectarán entre sí", - "create.ponder.belt_connector.text_2": "Las selecciones accidentales pueden ser canceladas con Mayús izdo + clic derecho", - "create.ponder.belt_connector.text_3": "Se pueden añadir ejes adicionales en toda la correa", - "create.ponder.belt_connector.text_4": "Los ejes conectados a través de correas girarán con velocidad y dirección idénticas", - "create.ponder.belt_connector.text_5": "Los ejes añadidos se pueden quitar con la llave inglesa", - "create.ponder.belt_connector.text_6": "Las correas mecánicas se pueden teñir con fines estéticos", - - "create.ponder.belt_directions.header": "Orientaciones válidas para las correas mecánicas", - "create.ponder.belt_directions.text_1": "Las correas mecánicas no pueden conectarse en direcciones arbitrarias", - "create.ponder.belt_directions.text_2": "1. Pueden conectarse horizontalmente", - "create.ponder.belt_directions.text_3": "2. Pueden conectarse en diagonal", - "create.ponder.belt_directions.text_4": "3. Pueden conectarse verticalmente", - "create.ponder.belt_directions.text_5": "4. Y pueden conectar ejes verticales horizontalmente", - "create.ponder.belt_directions.text_6": "Estas son todas las direcciones posibles. Pueden abarcar cualquier longitud entre 2 y 20 bloques", - - "create.ponder.belt_transport.header": "El uso de las correas mecánicas para la logística", - "create.ponder.belt_transport.text_1": "Las correas mecánicas transportan objetos y otras entidades", - "create.ponder.belt_transport.text_2": "Haz clic derecho con la mano vacía para sacar objetos de una 'cinta'", - - "create.ponder.blaze_burner.header": "Alimentar quemadores de blaze", - "create.ponder.blaze_burner.text_1": "Los quemadores de blaze pueden proporcionar calor a los objetos procesados en una cuenca", - "create.ponder.blaze_burner.text_2": "Para ello, el blaze tiene que ser alimentado con objetos inflamables", - "create.ponder.blaze_burner.text_3": "Con un pastel de blaze, el quemador puede alcanzar un mayor nivel de calor", - "create.ponder.blaze_burner.text_4": "El proceso de alimentación puede automatizarse utilizando desplegadores o brazos mecánicos", - - "create.ponder.brass_funnel.header": "El embudo de latón", - "create.ponder.brass_funnel.text_1": "Los embudos de andesita sólo pueden extraer objetos individuales", - "create.ponder.brass_funnel.text_2": "Los embudos de latón pueden extraer hasta una pila completa", - "create.ponder.brass_funnel.text_3": "Usar la rueda de desplazamiento del ratón en la ranura para filtros permite un control preciso del tamaño de la pila extraída.", - "create.ponder.brass_funnel.text_4": "El uso de objetos en la ranura de filtrado restringirá el embudo para transferir sólo las pilas que coincidan.", - - "create.ponder.brass_tunnel.header": "Usar túneles de latón", - "create.ponder.brass_tunnel.text_1": "Los túneles de latón pueden utilizarse para tapar las correas", - "create.ponder.brass_tunnel.text_2": "Tienen ranuras de filtro en cada lado abierto", - "create.ponder.brass_tunnel.text_3": "Los filtros en las conexiones de entrada simplemente bloquean los objetos que no coincidan", - "create.ponder.brass_tunnel.text_4": "Los filtros en las conexiones de salida pueden utilizarse para ordenar los objetos por tipo", - "create.ponder.brass_tunnel.text_5": "Siempre que un objeto de paso tenga múltiples salidas válidas, el modo de distribución decidirá cómo manejarlo", - "create.ponder.brass_tunnel.text_6": "Los túneles de latón en bandas paralelas formarán un grupo", - "create.ponder.brass_tunnel.text_7": "Los objetos entrantes se distribuirán ahora por todas las salidas conectadas", - "create.ponder.brass_tunnel.text_8": "Para ello, los objetos también pueden insertarse en el bloque del túnel directamente", - - "create.ponder.brass_tunnel_modes.header": "Modos de distribución del túnel de latón", - "create.ponder.brass_tunnel_modes.text_1": "Mediante una llave inglesa se puede configurar el comportamiento de distribución de los túneles de latón", - "create.ponder.brass_tunnel_modes.text_10": "'Sincronizar entradas' es una configuración única de los túneles de latón", - "create.ponder.brass_tunnel_modes.text_11": "Las entradas sólo pueden pasar si cada túnel del grupo tiene una en espera", - "create.ponder.brass_tunnel_modes.text_12": "Esto asegura que todas las correas afectadas suministren objetos al mismo tiempo", - "create.ponder.brass_tunnel_modes.text_2": "El modo División intentará distribuir la pila uniformemente entre las salidas disponibles", - "create.ponder.brass_tunnel_modes.text_3": "Si una salida no puede tomar más objetos, se saltará", - "create.ponder.brass_tunnel_modes.text_4": "El modo División forzada nunca saltará las salidas, y en su lugar esperará hasta que estén libres", - "create.ponder.brass_tunnel_modes.text_5": "El modo Round Robin mantiene las pilas enteras, y recorre las salidas de forma iterativa", - "create.ponder.brass_tunnel_modes.text_6": "Una vez más, si una salida no puede aceptar más objetos, se saltará", - "create.ponder.brass_tunnel_modes.text_7": "El modo Round Robin forzado nunca omite salidas", - "create.ponder.brass_tunnel_modes.text_8": "El modo Preferir el más cercano prioriza las salidas más cercanas a la ubicación de entrada de los objetos", - "create.ponder.brass_tunnel_modes.text_9": "El modo Aleatorizar distribuirá pilas enteras a salidas elegidas al azar", - - "create.ponder.cart_assembler.header": "Mover estructuras usando ensambladores de vagonetas", - "create.ponder.cart_assembler.text_1": "Los ensambladores de vagonetas montan estructuras adjuntas a las vagonetas que pasan", - "create.ponder.cart_assembler.text_2": "Sin una señal de redstone, desmonta los artilugios de vagoneta que pasan de nuevo en bloques", - "create.ponder.cart_assembler.text_3": "El uso de una llave inglesa en una vagoneta te permitirá llevar el artilugio a otro lugar", - - "create.ponder.cart_assembler_dual.header": "Ensamblajes de artilugios de vagoneta", - "create.ponder.cart_assembler_dual.text_1": "Siempre que dos ensambladores de vagoneta compartan una estructura adjunta...", - "create.ponder.cart_assembler_dual.text_2": "...al alimentar a cualquiera de ellos se creará un artilugio de vagoneta", - "create.ponder.cart_assembler_dual.text_3": "Las vagonetas se comportarán como las conectadas a través del acoplamiento de vagoneta", - - "create.ponder.cart_assembler_modes.header": "Configurar la orientación de los artilugios de vagonetas", - "create.ponder.cart_assembler_modes.text_1": "Los artilugios de vagonetas girarán para orientarse hacia el movimiento de sus vagonetas", - "create.ponder.cart_assembler_modes.text_2": "Esta flecha indica qué lado de la estructura se considerará la parte delantera", - "create.ponder.cart_assembler_modes.text_3": "Si el ensamblador está configurado para bloquear la rotación, la orientación de los artilugios nunca cambiará", - - "create.ponder.cart_assembler_rails.header": "Otros tipos de vagonetas y raíles", - "create.ponder.cart_assembler_rails.text_1": "Los ensambladores de vagonetas en raíles normales no afectarán el movimiento de las vagonetas que pasen", - "create.ponder.cart_assembler_rails.text_2": "Cuando se encuentre en un raíl motorizado o en un raíl de control, las vagonetas se mantendrán en su sitio hasta que sea motorizado", - "create.ponder.cart_assembler_rails.text_3": "Se pueden utilizar otros tipos de vagonetas como anclaje", - "create.ponder.cart_assembler_rails.text_4": "Los artilugios de vagonetas de horno se mantendrán alimentados a sí mismos, sacando combustible de cualquier inventario adjunto", - - "create.ponder.chain_drive.header": "Transmitir fuerza rotacional con las cadenas de transmisión", - "create.ponder.chain_drive.text_1": "Las cadenas de transmisión transmiten la rotación entre sí en fila", - "create.ponder.chain_drive.text_2": "Todos los ejes conectados así girarán en la misma dirección", - "create.ponder.chain_drive.text_3": "Cualquier parte de la fila puede girar 90 grados usando una llave inglesa", - - "create.ponder.chain_gearshift.header": "Controlar la velocidad de rotación con la cadena de transmisión ajustable", - "create.ponder.chain_gearshift.text_1": "Las cadenas de transmisión ajustables sin alimentación se comportan exactamente como las cadenas de transmisión", - "create.ponder.chain_gearshift.text_2": "Cuando están alimentadas, la velocidad transmitida a las demás cadenas de transmisión de la fila se duplica", - "create.ponder.chain_gearshift.text_3": "Siempre que la cadena de transmisión alimentada no esté en el origen, su velocidad se reducirá a la mitad", - "create.ponder.chain_gearshift.text_4": "En ambos casos, las cadenas de transmisión de la fila siempre funcionan a 2 veces la velocidad de la cadena de transmisión alimentada", - "create.ponder.chain_gearshift.text_5": "Utilizando señales analógicas, la relación puede ajustarse con mayor precisión, entre 1 y 2", - "create.ponder.chain_gearshift.text_6": "12 RPM", - - "create.ponder.chute.header": "Transportar objetos hacia abajo a través de ductos", - "create.ponder.chute.text_1": "Los ductos pueden transportar objetos verticalmente desde y hacia los inventarios", - "create.ponder.chute.text_2": "Usando la llave inglesa, se puede crear una ventana", - "create.ponder.chute.text_3": "Colocar ductos apuntando a las caras laterales de otro lo hará en diagonal", - - "create.ponder.chute_upward.header": "Transportar objetos hacia arriba mediante ductos", - "create.ponder.chute_upward.text_1": "Usando ventiladores revestidos en la parte superior o inferior, un ducto puede transportar objetos hacia arriba", - "create.ponder.chute_upward.text_2": "Al inspeccionar los ductos con las gafas del constructor, se revela información sobre la dirección del movimiento", - "create.ponder.chute_upward.text_3": "En el extremo 'bloqueado', los objetos tendrán que ser insertados/tomados de los lados", - - "create.ponder.clockwork_bearing.header": "Animar estructuras con rodamientos tipo reloj", - "create.ponder.clockwork_bearing.text_1": "Los rodamientos tipo reloj se fijan a los bloques que tienen delante", - "create.ponder.clockwork_bearing.text_2": "Al recibir fuerza rotacional, la estructura girará según la hora del día", - "create.ponder.clockwork_bearing.text_3": "3:00", - "create.ponder.clockwork_bearing.text_4": "4:00", - "create.ponder.clockwork_bearing.text_5": "Haz clic derecho en el rodamiento para iniciar o detener la animación de la estructura", - "create.ponder.clockwork_bearing.text_6": "Delante de la manecilla de las horas se puede añadir una segunda estructura", - "create.ponder.clockwork_bearing.text_7": "Asegúrese de que las dos estructuras no están unidas entre sí con pegamento o algo similar", - "create.ponder.clockwork_bearing.text_8": "La segunda estructura ahora girará como el minutero", - - "create.ponder.clutch.header": "Controlar la fuerza rotacional mediante un embrague", - "create.ponder.clutch.text_1": "Los embragues transmitirán la rotación en línea recta", - "create.ponder.clutch.text_2": "Cuando se alimentan con redstone, rompen la conexión", - - "create.ponder.cog_speedup.header": "Cambiar de marchas con engranajes", - "create.ponder.cog_speedup.text_1": "Los engranajes grandes y pequeños pueden conectarse en diagonal", - "create.ponder.cog_speedup.text_2": "Al cambiar de engranajes grandes a pequeños, la velocidad rotacional se duplicará", - "create.ponder.cog_speedup.text_3": "Inversamente, la velocidad rotacional se reducirá a la mitad", - - "create.ponder.cogwheel.header": "Transmitir fuerza rotacional mediante engranajes", - "create.ponder.cogwheel.text_1": "Los engranajes transmitirán la rotación a otros engranajes adyacentes", - "create.ponder.cogwheel.text_2": "Los ejes adyacentes conectados así, girarán en direcciones opuestas", - - "create.ponder.creative_fluid_tank.header": "Tanque de fluídos creativo", - "create.ponder.creative_fluid_tank.text_1": "Los depósitos de fluidos creativos pueden utilizarse para proporcionar un suministro de fluidos sin fondo", - "create.ponder.creative_fluid_tank.text_2": "Haga clic con el botón derecho en un elemento que contenga fluido para configurarlo", - "create.ponder.creative_fluid_tank.text_3": "Las redes de tuberías pueden ahora extraer sin cesar el fluido asignado del depósito", - "create.ponder.creative_fluid_tank.text_4": "Cualquier fluido empujado de vuelta a un tanque de fluido creativo será anulado", - - "create.ponder.creative_motor.header": "Generar fuerza rotacional con motores creativos", - "create.ponder.creative_motor.text_1": "Los motores creativos son una fuente compacta y configurable de fuerza rotacional", - "create.ponder.creative_motor.text_2": "Usar la rueda de desplazamiento del ratón en su parte trasera cambia las RPM de la salida rotacional", - - "create.ponder.crushing_wheels.header": "Procesar objetos con las ruedas trituradoras", - "create.ponder.crushing_wheels.text_1": "Un par de ruedas trituradoras pueden moler objetos de forma muy eficaz", - "create.ponder.crushing_wheels.text_2": "Su fuerza rotacional tiene que hacerlas girar una contra otra", - "create.ponder.crushing_wheels.text_3": "Los objetos lanzados o insertados en la parte superior serán procesados", - "create.ponder.crushing_wheels.text_4": "Los objetos también pueden ser insertados y recogidos a través de medios automatizados", - - "create.ponder.deployer.header": "Usar el desplegador", - "create.ponder.deployer.text_1": "Dada la fuerza rotacional, un desplegador puede imitar las interacciones de los jugadores", - "create.ponder.deployer.text_10": "Haz clic derecho en el frente para darle un objeto a utilizar", - "create.ponder.deployer.text_11": "Los objetos también pueden ser insertados automáticamente", - "create.ponder.deployer.text_12": "Los desplegadores llevan una ranura de filtro", - "create.ponder.deployer.text_13": "Cuando se establece un filtro, sólo se activa mientras se mantiene un elemento coincidente", - "create.ponder.deployer.text_14": "Ahora sólo se pueden insertar los objetos que coincidan con el filtro...", - "create.ponder.deployer.text_15": "...y sólo se extraerán los objetos que no coincidan", - "create.ponder.deployer.text_2": "Siempre interactuará con la posición 2 bloques delante de sí mismo", - "create.ponder.deployer.text_3": "Los bloques situados directamente delante no lo obstruirán", - "create.ponder.deployer.text_4": "Los desplegadores pueden:", - "create.ponder.deployer.text_5": "Colocar bloques,", - "create.ponder.deployer.text_6": "Usar objetos,", - "create.ponder.deployer.text_7": "Activar bloques,", - "create.ponder.deployer.text_8": "Cosechar bloques", - "create.ponder.deployer.text_9": "Y atacar criaturas", - - "create.ponder.deployer_contraption.header": "Usar desplegadores en artilugios", - "create.ponder.deployer_contraption.text_1": "Siempre que los desplegadores se muevan como parte de un artilugio animado...", - "create.ponder.deployer_contraption.text_2": "Se activan en cada ubicación visitada, utilizando objetos de los inventarios de cualquier parte del artilugio", - "create.ponder.deployer_contraption.text_3": "La ranura para filtros se puede utilizar para especificar qué objetos tirar", - - "create.ponder.deployer_modes.header": "Modos del desplegador", - "create.ponder.deployer_modes.text_1": "Por defecto, un desplegador imita la interacción del clic derecho del ratón", - "create.ponder.deployer_modes.text_2": "Usando una llave inglesa, se puede configurar para imitar un clic izquierdo en su lugar", - - "create.ponder.deployer_processing.header": "Procesar objetos mediante desplegadores", - "create.ponder.deployer_processing.text_1": "Con un objeto de sujeción ajustado, los desplegadores pueden procesar los objetos proporcionados por debajo de ellos", - "create.ponder.deployer_processing.text_2": "Los objetos de entrada pueden soltarse o colocarse en un depósito bajo el desplegador", - "create.ponder.deployer_processing.text_3": "Cuando los objetos se proporcionan en una 'cinta'...", - "create.ponder.deployer_processing.text_4": "El desplegador los retendrá y procesará automáticamente", - - "create.ponder.deployer_redstone.header": "Controlar desplegadores con redstone", - "create.ponder.deployer_redstone.text_1": "Al controlar los desplegadores con redstone, éstos no se activarán", - "create.ponder.deployer_redstone.text_2": "Antes de detenerse, el desplegador terminará cualquier ciclo iniciado", - "create.ponder.deployer_redstone.text_3": "Por lo tanto, un pulso negativo puede ser utilizado para desencadenar exactamente un ciclo de activación", - - "create.ponder.depot.header": "Usar depósitos", - "create.ponder.depot.text_1": "Los depósitos pueden servir como objetos 'fijos' de la correa", - "create.ponder.depot.text_2": "Haz clic derecho para colocar o eliminar manualmente objetos del mismo", - "create.ponder.depot.text_3": "Al igual que las correas mecánicas, pueden proporcionar objetos para su procesamiento", - "create.ponder.depot.text_4": "...así como proporcionar objetos a los brazos mecánicos", - - "create.ponder.empty_blaze_burner.header": "Usar quemadores de blaze vacíos", - "create.ponder.empty_blaze_burner.text_1": "Haz clic derecho en un blaze con el quemador vacío para capturarlo", - "create.ponder.empty_blaze_burner.text_2": "Alternativamente, los blaze pueden ser recogidos de sus spawners directamente", - "create.ponder.empty_blaze_burner.text_3": "Ahora tienes una fuente de calor ideal para varias máquinas", - "create.ponder.empty_blaze_burner.text_4": "Por motivos estéticos, los quemadores de blaze vacíos también se pueden encender con pedernal y acero", - "create.ponder.empty_blaze_burner.text_5": "La llama puede transformarse utilizando un objeto con alma", - "create.ponder.empty_blaze_burner.text_6": "Sin embargo, no son adecuados para la calefacción industrial", - - "create.ponder.encased_fluid_pipe.header": "Revestir tuberías de fluídos", - "create.ponder.encased_fluid_pipe.text_1": "El revestidor de cobre puede utilizarse para decorar las tuberías de fluidos", - "create.ponder.encased_fluid_pipe.text_2": "Además de estar ocultas, las tuberías revestidas están bloqueadas en su estado de conectividad", - "create.ponder.encased_fluid_pipe.text_3": "Ya no reaccionará a los bloques vecinos que se añadan o eliminen", - - "create.ponder.fan_direction.header": "El flujo de aire de los ventiladores revestidos", - "create.ponder.fan_direction.text_1": "Los ventiladores revestidos utilizan la fuerza rotacional para crear una corriente de aire", - "create.ponder.fan_direction.text_2": "La fuerza y la dirección del flujo dependen de la fuerza rotacional suministrada", - - "create.ponder.fan_processing.header": "Procesar objetos mediante ventiladores revestidos", - "create.ponder.fan_processing.text_1": "Al pasar por lava, el flujo de aire se calienta", - "create.ponder.fan_processing.text_2": "Los objetos capturados en la zona serán fundidos", - "create.ponder.fan_processing.text_3": "Los artículos de comida arrojados aquí serán incinerados", - "create.ponder.fan_processing.text_4": "En su lugar, se debería utilizar una instalación de ahumado, usando fuego", - "create.ponder.fan_processing.text_5": "Los flujos de aire que pasan por el agua crean una instalación de lavado", - "create.ponder.fan_processing.text_6": "Se puede hacer un nuevo e interesante procesamiento con él", - "create.ponder.fan_processing.text_7": "La velocidad del ventilador NO afecta a la velocidad de procesamiento, sólo a su rango", - "create.ponder.fan_processing.text_8": "El procesamiento del ventilador también puede aplicarse a los objetos de los depósitos y las correas", - - "create.ponder.fan_source.header": "Generar fuerza rotacional mediante ventiladores revestidos", - "create.ponder.fan_source.text_1": "Los ventiladores orientados hacia una fuente de calor pueden proporcionar fuerza rotacional", - "create.ponder.fan_source.text_2": "Cuando se les da una señal de redstone, los ventiladores comenzarán a proporcionar fuerza", - - "create.ponder.fluid_pipe_flow.header": "Transportar fluidos mediante tuberías de cobre", - "create.ponder.fluid_pipe_flow.text_1": "Las tuberías de fluidos pueden conectar dos o más fuentes y objetivos de fluidos", - "create.ponder.fluid_pipe_flow.text_2": "Utilizando una llave, se puede dar a un segmento de tubo recto una ventana", - "create.ponder.fluid_pipe_flow.text_3": "Las tuberías con ventanas no se conectarán a ningún otro segmento de tubería adyacente", - "create.ponder.fluid_pipe_flow.text_4": "Accionadas por bombas mecánicas, las tuberías pueden transportar fluidos", - "create.ponder.fluid_pipe_flow.text_5": "Al principio no se extrae ningún líquido", - "create.ponder.fluid_pipe_flow.text_6": "Una vez que el flujo los conecta, los puntos finales transfieren gradualmente su contenido", - "create.ponder.fluid_pipe_flow.text_7": "Así, los bloques de tuberías nunca contienen 'físicamente' ningún fluido", - - "create.ponder.fluid_pipe_interaction.header": "Drenaje y llenado de contenedores de fluidos", - "create.ponder.fluid_pipe_interaction.text_1": "Los puntos finales de una red de tuberías pueden interactuar con una variedad de bloques", - "create.ponder.fluid_pipe_interaction.text_2": "Cualquier bloque con capacidad para almacenar fluidos puede ser llenado o vaciado", - "create.ponder.fluid_pipe_interaction.text_3": "Los bloques de origen justo delante de un extremo abierto pueden ser recogidos...", - "create.ponder.fluid_pipe_interaction.text_4": "...mientras que el derrame en espacios vacíos puede crear fuentes de fluidos", - "create.ponder.fluid_pipe_interaction.text_5": "Las tuberías también pueden extraer fluidos de un puñado de otros bloques directamente", - - "create.ponder.fluid_tank_sizes.header": "Dimensiones de un depósito de fluidos", - "create.ponder.fluid_tank_sizes.text_1": "Los depósitos de fluidos pueden combinarse para aumentar la capacidad total", - "create.ponder.fluid_tank_sizes.text_2": "Su cuadrado base puede tener hasta 3 bloques de ancho...", - "create.ponder.fluid_tank_sizes.text_3": "...y crecen en altura en más de 30 capas adicionales", - "create.ponder.fluid_tank_sizes.text_4": "Con una llave inglesa, se puede cambiar la ventana de un tanque", - - "create.ponder.fluid_tank_storage.header": "Almacenar fluidos en depósitos de fluidos", - "create.ponder.fluid_tank_storage.text_1": "Los depósitos de fluidos pueden utilizarse para almacenar grandes cantidades de fluidos", - "create.ponder.fluid_tank_storage.text_2": "Las redes de tuberías pueden empujar y arrastrar fluidos desde cualquier lado", - "create.ponder.fluid_tank_storage.text_3": "El fluido contenido puede ser medido por un Comparador", - "create.ponder.fluid_tank_storage.text_4": "Sin embargo, en el Modo Supervivencia no se pueden añadir o tomar fluidos manualmente", - "create.ponder.fluid_tank_storage.text_5": "Puede utilizar cuencas, drenadores de objetos y tuberías para vaciar o llenar objetos que contengan líquido", - - "create.ponder.flywheel.header": "Generar fuerza rotacional con la rueda de inercia", - "create.ponder.flywheel.text_1": "Las ruedas de inercia son necesarias para generar fuerza rotacional con el motor de horno", - "create.ponder.flywheel.text_2": "La fuerza rotacional proporcionada tiene una capacidad de estrés muy grande", - "create.ponder.flywheel.text_3": "El uso de un alto horno duplicará la eficiencia del motor", - - "create.ponder.funnel_compat.header": "Compatibilidades con el embudo", - "create.ponder.funnel_compat.text_1": "Los embudos deberían interactuar bien con un puñado de otros componentes", - "create.ponder.funnel_compat.text_2": "Sierras verticales", - "create.ponder.funnel_compat.text_3": "Depósitos", - "create.ponder.funnel_compat.text_4": "Drenadores de objetos", - - "create.ponder.funnel_direction.header": "Dirección de la transferencia", - "create.ponder.funnel_direction.text_1": "Colocado normalmente, extrae objetos del inventario", - "create.ponder.funnel_direction.text_2": "Colocado mientras pulsa Mayús izdo, pone objetos en el inventario", - "create.ponder.funnel_direction.text_3": "Usando una llave inglesa, el embudo puede ser volteado después de su colocación", - "create.ponder.funnel_direction.text_4": "Se aplicarán las mismas reglas para la mayoría de las orientaciones", - "create.ponder.funnel_direction.text_5": "Los embudos en las correas extraerán/insertarán dependiendo de su dirección de movimiento", - - "create.ponder.funnel_intro.header": "Usar embudos", - "create.ponder.funnel_intro.text_1": "Los embudos son ideales para transferir objetos desde y hacia los inventarios", - - "create.ponder.funnel_redstone.header": "Embudos alimentados con redstone", - "create.ponder.funnel_redstone.text_1": "La energía de redstone impedirá la actuación de cualquier embudo", - - "create.ponder.funnel_transfer.header": "Transferencia directa", - "create.ponder.funnel_transfer.text_1": "Los embudos no pueden transferir nunca entre inventarios cerrados directamente", - "create.ponder.funnel_transfer.text_2": "Los ductos o los ductos inteligentes podrían ser más adecuados para estos fines", - "create.ponder.funnel_transfer.text_3": "Lo mismo se aplica para el movimiento horizontal. Una correa mecánica debería ayudar aquí", - - "create.ponder.furnace_engine.header": "Generar fuerza rotacional con el motor de horno", - "create.ponder.furnace_engine.text_1": "Los motores de horno generan fuerza rotacional mientras su horno adjunto está funcionando", - "create.ponder.furnace_engine.text_2": "La fuerza rotacional proporcionada tiene una capacidad de estrés muy grande", - "create.ponder.furnace_engine.text_3": "El uso de un alto horno duplicará la eficiencia del motor", - - "create.ponder.gantry_carriage.header": "Usar carros de grúa", - "create.ponder.gantry_carriage.text_1": "Los carros de grúa pueden montarse y deslizarse a lo largo de un eje de grúa", - "create.ponder.gantry_carriage.text_2": "Las instalaciones de grúa pueden mover bloques adjuntos", - - "create.ponder.gantry_cascaded.header": "Grúas en cascada", - "create.ponder.gantry_cascaded.text_1": "Los ejes de grúas se unen a un carro de grúa sin necesidad de pegamento", - "create.ponder.gantry_cascaded.text_2": "Lo mismo se aplica a los carros de grúa en los ejes de grúas desplazados", - "create.ponder.gantry_cascaded.text_3": "Así, un sistema de grúas puede estar en cascada para cubrir múltiples ejes de movimiento", - - "create.ponder.gantry_direction.header": "Dirección del movimiento de la grúa", - "create.ponder.gantry_direction.text_1": "Los ejes de grúa pueden tener orientaciones opuestas", - "create.ponder.gantry_direction.text_2": "La dirección de movimiento de los carros de grúa depende de la orientación de sus ejes", - "create.ponder.gantry_direction.text_3": "...así como de su sentido de rotación", - "create.ponder.gantry_direction.text_4": "Se aplican las mismas reglas para la rotación propagada", - - "create.ponder.gantry_redstone.header": "Propagación de la potencia de la grúa", - "create.ponder.gantry_redstone.text_1": "Los ejes de grúa alimentados con redstone dejan de mover sus carros", - "create.ponder.gantry_redstone.text_2": "En su lugar, su fuerza rotacional se transmite al eje de salida de los carros", - - "create.ponder.gantry_shaft.header": "Usar ejes de grúa", - "create.ponder.gantry_shaft.text_1": "Los ejes de grúa forman la base de una instalación de grúas. Los carros adjuntos se moverán a lo largo de ellos", - "create.ponder.gantry_shaft.text_2": "Las instalaciones de grúas pueden mover los bloques adjuntos", - - "create.ponder.gearbox.header": "Transmitir fuerza rotacional mediante cajas de transmisión", - "create.ponder.gearbox.text_1": "Saltar entre ejes de rotación puede volverse voluminoso rápidamente", - "create.ponder.gearbox.text_2": "Una caja de transmisión es el equivalente más compacto de esta configuración", - "create.ponder.gearbox.text_3": "Los ejes giran en las direcciones reflejadas...", - "create.ponder.gearbox.text_4": "...esto quiere decir que las conexiones rectas se invierten", - - "create.ponder.gearshift.header": "Controlar la dirección rotacional mediante una caja de cambios", - "create.ponder.gearshift.text_1": "La caja de cambios transmitirá la rotación en línea recta", - "create.ponder.gearshift.text_2": "Cuando es alimentada con redstone, invierte la transmisión", - - "create.ponder.hand_crank.header": "Generar fuerza rotacional mediante manivelas", - "create.ponder.hand_crank.text_1": "Las manivelas pueden ser utilizadas para aplicar fuerza rotacional manualmente", - "create.ponder.hand_crank.text_2": "Mantén pulsado clic derecho para girar en sentido antihorario", - "create.ponder.hand_crank.text_3": "Su velocidad de transmisión es relativamente alta", - "create.ponder.hand_crank.text_4": "Mayús izdo + clic derecho pulsado para girar en sentido horario", - - "create.ponder.hose_pulley.header": "Llenado y vaciado de fuentes mediante poleas de manguera", - "create.ponder.hose_pulley.text_1": "Las poleas para mangueras pueden utilizarse para llenar o drenar grandes masas de fluido", - "create.ponder.hose_pulley.text_2": "Con entrada cinética, se puede controlar la altura de la manguera de las poleas", - "create.ponder.hose_pulley.text_3": "La polea se retrae mientras la rotación de entrada se invierte", - "create.ponder.hose_pulley.text_4": "En el lado opuesto, se pueden conectar las tuberías", - "create.ponder.hose_pulley.text_5": "Las redes de tuberías conectadas pueden proporcionar fluido a la manguera...", - "create.ponder.hose_pulley.text_6": "...o tirar de él, vaciando la piscina en su lugar", - "create.ponder.hose_pulley.text_7": "La velocidad de llenado y vaciado de la polea depende totalmente del caudal de las redes de fluidos", - - "create.ponder.hose_pulley_infinite.header": "Llenado y drenaje pasivo de grandes masas de fluido", - "create.ponder.hose_pulley_infinite.text_1": "Al desplegar la polea de manguera en un océano lo suficientemente grande...", - "create.ponder.hose_pulley_infinite.text_2": "Proporcionará/eliminará fluidos sin afectar a la fuente", - "create.ponder.hose_pulley_infinite.text_3": "Las redes de tuberías pueden llevar fluidos de forma ilimitada desde/hacia dichas poleas", - - "create.ponder.hose_pulley_level.header": "Nivel de llenado y vaciado de las poleas de las mangueras", - "create.ponder.hose_pulley_level.text_1": "Mientras esté totalmente retraída, la polea de la manguera no puede funcionar", - "create.ponder.hose_pulley_level.text_2": "El drenaje va de arriba a abajo", - "create.ponder.hose_pulley_level.text_3": "El nivel de la superficie terminará justo debajo de donde termina la manguera", - "create.ponder.hose_pulley_level.text_4": "El llenado va de abajo a arriba", - "create.ponder.hose_pulley_level.text_5": "La piscina llena no crecerá más allá de la capa por encima del extremo de la manguera", - - "create.ponder.item_drain.header": "Vaciar contenedores de fluidos mediante drenajes de objetos", - "create.ponder.item_drain.text_1": "Los drenajes de objetos pueden extraer los fluidos de los objetos", - "create.ponder.item_drain.text_2": "Haz clic derecho para verter los fluidos de tu objeto retenido en él", - "create.ponder.item_drain.text_3": "Cuando los artículos se insertan desde el lado...", - "create.ponder.item_drain.text_4": "...ruedan a través, vaciando su líquido contenido", - "create.ponder.item_drain.text_5": "Las redes de tuberías pueden ahora extraer el fluido del buffer interno de los desagües", - - "create.ponder.large_cogwheel.header": "Transmitir fuerza rotacional mediante engranajes grandes", - "create.ponder.large_cogwheel.text_1": "Los engranajes grandes pueden conectarse entre sí en ángulo recto", - "create.ponder.large_cogwheel.text_2": "Ayudarán a transmitir la velocidad transportada a otros ejes de rotación.", - - "create.ponder.linear_chassis_attachment.header": "Fijar bloques mediante el chasis lineal", - "create.ponder.linear_chassis_attachment.text_1": "Las caras abiertas de un chasis lineal pueden hacerse pegajosas", - "create.ponder.linear_chassis_attachment.text_2": "Haz clic de nuevo para que se pegue el lado opuesto", - "create.ponder.linear_chassis_attachment.text_3": "Mayús izdo + clic derecho con la mano vacía para eliminar el pegamento", - "create.ponder.linear_chassis_attachment.text_4": "Las caras pegadas del chasis lineal fijarán una línea de bloques delante de él", - "create.ponder.linear_chassis_attachment.text_5": "Utilizando una llave inglesa, se puede especificar un rango preciso", - "create.ponder.linear_chassis_attachment.text_6": "Manteniendo pulsada la tecla [Ctrl] y usando la rueda central del ratón, se ajusta el rango de todos los bloques de chasis adjuntos", - "create.ponder.linear_chassis_attachment.text_7": "Para fijar los bloques a cualquier otro lado es necesario utilizar pegamento", - "create.ponder.linear_chassis_attachment.text_8": "Utilizando esta mecánica, las estructuras de cualquier forma pueden moverse como un artilugio", - - "create.ponder.linear_chassis_group.header": "Mover chasis lineales en grupos", - "create.ponder.linear_chassis_group.text_1": "Los chasis lineales se conectan a los bloques de chasis idénticos que se encuentren a su lado", - "create.ponder.linear_chassis_group.text_2": "Cuando uno es movido por un artilugio, los otros son arrastrados con él", - "create.ponder.linear_chassis_group.text_3": "Los chasis de otro tipo u orientados en otra dirección no se fijan", - - "create.ponder.mechanical_arm.header": "Configurar los brazos mecánicos", - "create.ponder.mechanical_arm.text_1": "A los brazos mecánicos hay que asignarles sus entradas y salidas antes de colocarlos", - "create.ponder.mechanical_arm.text_2": "Clic derecho en los inventarios mientras mantiene el brazo mecánico para asignarlos como objetivos", - "create.ponder.mechanical_arm.text_3": "Clic derecho denuevo para alternar entre la entrada (azul) y la salida (naranja)", - "create.ponder.mechanical_arm.text_4": "Clic izquierdo en los componentes para eliminar su selección", - "create.ponder.mechanical_arm.text_5": "Una vez colocado, el brazo mecánico apuntará a los bloques seleccionados previamente", - "create.ponder.mechanical_arm.text_6": "Pueden tener cualquier cantidad de entradas y salidas dentro de su rango", - "create.ponder.mechanical_arm.text_7": "Sin embargo, no se puede interactuar directamente con todos los tipos de inventario", - "create.ponder.mechanical_arm.text_8": "Los embudos y depósitos pueden ayudar a salvar esa distancia", - - "create.ponder.mechanical_arm_filtering.header": "Filtrar salidas del brazo mecánico", - "create.ponder.mechanical_arm_filtering.text_1": "Entradas", - "create.ponder.mechanical_arm_filtering.text_2": "Salidas", - "create.ponder.mechanical_arm_filtering.text_3": "A veces es conveniente restringir los objetivos del brazo mecánico haciendo coincidir un filtro", - "create.ponder.mechanical_arm_filtering.text_4": "Por sí mismos no ofrecen ninguna opción de filtrado", - "create.ponder.mechanical_arm_filtering.text_5": "Sin embargo, los embudos de latón como objetivos comunican su propio filtro al brazo", - "create.ponder.mechanical_arm_filtering.text_6": "El brazo mecánico es lo suficientemente inteligente como para no recoger objetos que no podría distribuir", - - "create.ponder.mechanical_arm_modes.header": "Modos de distribución del brazo mecánico", - "create.ponder.mechanical_arm_modes.text_1": "Entradas", - "create.ponder.mechanical_arm_modes.text_2": "Salidas", - "create.ponder.mechanical_arm_modes.text_3": "Siempre que un brazo tenga que elegir entre varias salidas válidas...", - "create.ponder.mechanical_arm_modes.text_4": "...funcionará según su configuración", - "create.ponder.mechanical_arm_modes.text_5": "Usando la rueda del ratón con una llave inglesa te permitirá configurarlo", - "create.ponder.mechanical_arm_modes.text_6": "El modo Round Robin simplemente hace un ciclo a través de todas las salidas que están disponibles", - "create.ponder.mechanical_arm_modes.text_7": "Si una salida no puede admitir más objetos, se omitirá", - "create.ponder.mechanical_arm_modes.text_8": "El modo Round Robin forzado nunca omitirá las salidas, sino que esperará a que estén libres", - "create.ponder.mechanical_arm_modes.text_9": "Preferir el primero da prioridad a las salidas seleccionadas anteriormente al configurar este brazo", - - "create.ponder.mechanical_arm_redstone.header": "Controlar brazos mecánicos con redstone", - "create.ponder.mechanical_arm_redstone.text_1": "Cuando se alimentan con redstone, los brazos mecánicos no se activan", - "create.ponder.mechanical_arm_redstone.text_2": "Antes de detenerse, terminará los ciclos iniciados", - "create.ponder.mechanical_arm_redstone.text_3": "Así, un pulso negativo puede utilizarse para activar exactamente un ciclo de activación", - - "create.ponder.mechanical_bearing.header": "Mover estructuras mediante el rodamiento mecánico", - "create.ponder.mechanical_bearing.text_1": "Los rodamientos mecánicos se fijan al bloque que tienen delante", - "create.ponder.mechanical_bearing.text_2": "Al recibir fuerza rotacional, la ensamblará en un artilugio giratorio", - - "create.ponder.mechanical_crafter.header": "Configurar ensambladores mecánicos", - "create.ponder.mechanical_crafter.text_1": "Se puede utilizar una serie de ensambladores mecánicos para automatizar cualquier receta de elaboración.", - "create.ponder.mechanical_crafter.text_2": "Usando una llave inglesa, puedes establecer los caminos de los ensambladores ", - "create.ponder.mechanical_crafter.text_3": "Para que la configuración sea válida, todos los caminos tienen que converger en una salida, en cualquiera de los lados", - "create.ponder.mechanical_crafter.text_4": "Los puertos de salida de objetos se colocarán en un inventario a la salida", - "create.ponder.mechanical_crafter.text_5": "Los ensambladores mecánicos requieren fuerza rotacional para funcionar", - "create.ponder.mechanical_crafter.text_6": "Haga clic derecho en la parte delantera para insertar objetos manualmente", - "create.ponder.mechanical_crafter.text_7": "Una vez que cada ranura de una ruta contenga un objeto, comenzará el proceso de elaboración", - "create.ponder.mechanical_crafter.text_8": "Para las recetas que no ocupen totalmente la instalación del ensamblador, se puede forzar el arranque utilizando un pulso de redstone", - - "create.ponder.mechanical_crafter_connect.header": "Conectar inventarios a los ensambladores mecánicos", - "create.ponder.mechanical_crafter_connect.text_1": "Los objetos pueden ser insertados a los ensambladores mecánicos automáticamente", - "create.ponder.mechanical_crafter_connect.text_2": "Utilizando la llave inglesa a sus espaldas, las entradas pueden combinarse", - "create.ponder.mechanical_crafter_connect.text_3": "Ahora se puede acceder a todos los ensambladores mecánicos conectados por la misma ubicación de entrada", - - "create.ponder.mechanical_crafter_covers.header": "Cubrir las ranuras de los ensambladores mecánicos", - "create.ponder.mechanical_crafter_covers.text_1": "Algunas recetas requerirán ensambladores mecánicos adicionales para salvar las brechas en el camino", - "create.ponder.mechanical_crafter_covers.text_2": "Utilizando las tapas de ranuras del ensamblador mecánico, pueden actuar como una ranura vacía a su disposición", - "create.ponder.mechanical_crafter_covers.text_3": "Las entradas compartidas creadas con la llave inglesa en la parte posterior también pueden llegar a través de los ensambladores revestidos", - - "create.ponder.mechanical_drill.header": "Romper bloques con el taladro mecánico", - "create.ponder.mechanical_drill.text_1": "Cuando se le aplica fuerza rotacional, el taladro mecánico rompe los bloques que tiene delante.", - "create.ponder.mechanical_drill.text_2": "Su velocidad de trabajo depende de la fuerza rotacional suministrada", - - "create.ponder.mechanical_drill_contraption.header": "Usar taladros mecánicos en artilugios", - "create.ponder.mechanical_drill_contraption.text_1": "Siempre que los taladros mecánicos se muevan como parte de un artilugio animado...", - "create.ponder.mechanical_drill_contraption.text_2": "...romperán los bloques por los que artilugio los hace pasar", - - "create.ponder.mechanical_harvester.header": "Utilizar cosechadoras mecánicas en artilugios", - "create.ponder.mechanical_harvester.text_1": "Siempre que las cosechadoras mecánicas se muevan como parte de un artilugio animado...", - "create.ponder.mechanical_harvester.text_2": "...recogerán y repondrán los cultivos maduros en su camino", - - "create.ponder.mechanical_mixer.header": "Procesar objetos con la mezcladora mecánica", - "create.ponder.mechanical_mixer.text_1": "Con una mezcladora mecánica y una cuenca, se pueden automatizar algunas recetas", - "create.ponder.mechanical_mixer.text_2": "Las recetas disponibles incluyen cualquier receta de elaboración amorfa, además de un par de recetas adicionales", - "create.ponder.mechanical_mixer.text_3": "Algunas de esas recetas pueden requerir el calor de un quemador de blaze", - "create.ponder.mechanical_mixer.text_4": "La ranura para filtros se puede utilizar en caso de que dos recetas sean conflictivas.", - - "create.ponder.mechanical_piston.header": "Mover estructuras mediante pistones mecánicos", - "create.ponder.mechanical_piston.text_1": "Los pistones mecánicos pueden mover los bloques que tienen delante", - "create.ponder.mechanical_piston.text_2": "La velocidad y la dirección del movimiento dependen de la fuerza rotacional suministrada", - "create.ponder.mechanical_piston.text_3": "Los pistones mecánicos pegajosos pueden tirar de los bloques unidos hacia atrás", - - "create.ponder.mechanical_piston_modes.header": "Modos de movimiento del pistón mecánico", - "create.ponder.mechanical_piston_modes.text_1": "Cuando los pistones mecánicos dejan de moverse, la estructura movida vuelve a los bloques", - "create.ponder.mechanical_piston_modes.text_2": "Puede configurarse para que no vuelva nunca a los bloques sólidos, o sólo en la ubicación en la que comenzó", - - "create.ponder.mechanical_plough.header": "Utilizar arados mecánicos en los artilugios", - "create.ponder.mechanical_plough.text_1": "Cuando los arados mecánicos se mueven como parte de un artilugio animado...", - "create.ponder.mechanical_plough.text_2": "...romperán los bloques sin un hitbox de colisión sólido", - "create.ponder.mechanical_plough.text_3": "Además, pueden crear tierras de cultivo", - "create.ponder.mechanical_plough.text_4": "...también pueden lanzar entidades sin dañarlas", - - "create.ponder.mechanical_press.header": "Procesar objetos con la prensa mecánica", - "create.ponder.mechanical_press.text_1": "La prensa mecánica puede procesar los objetos proporcionados por debajo de ella", - "create.ponder.mechanical_press.text_2": "Los objetos de entrada pueden soltarse o colocarse en un depósito bajo la prensa", - "create.ponder.mechanical_press.text_3": "Cuando los objetos se proporcionan en una 'cinta'...", - "create.ponder.mechanical_press.text_4": "...la prensa mecánica los retendrá y procesará automáticamente", - - "create.ponder.mechanical_press_compacting.header": "Compactar objetos con la prensa mecánica", - "create.ponder.mechanical_press_compacting.text_1": "Al presionar los objetos que se encuentran en una cuenca, éstos se compactan.", - "create.ponder.mechanical_press_compacting.text_2": "La compactación incluye cualquier receta de elaboración de 2x2 o 3x3 rellena, además de un par extra", - "create.ponder.mechanical_press_compacting.text_3": "Algunas de esas recetas pueden requerir el calor de un quemador de blaze", - "create.ponder.mechanical_press_compacting.text_4": "La ranura para filtros se puede utilizar en caso de que dos recetas sean conflictivas.", - - "create.ponder.mechanical_pump_flow.header": "Transportar fluidos mediante bombas mecánicas", - "create.ponder.mechanical_pump_flow.text_1": "Las bombas mecánicas gobiernan el flujo de sus redes de tuberías anexas", - "create.ponder.mechanical_pump_flow.text_2": "Cuando están alimentadas, su flecha indica la dirección del flujo", - "create.ponder.mechanical_pump_flow.text_3": "La red de atrás está ahora tirando de fluidos...", - "create.ponder.mechanical_pump_flow.text_4": "...mientras la red de enfrente la transfiere hacia el exterior", - "create.ponder.mechanical_pump_flow.text_5": "Al invertir la rotación de la entrada se invierte el sentido del flujo", - "create.ponder.mechanical_pump_flow.text_6": "Utilice una llave inglesa para invertir la orientación de las bombas manualmente", - - "create.ponder.mechanical_pump_speed.header": "Rendimiento de las bombas mecánicas", - "create.ponder.mechanical_pump_speed.text_1": "Independientemente de la velocidad, las bombas mecánicas afectan a las tuberías conectadas hasta 16 bloques de distancia", - "create.ponder.mechanical_pump_speed.text_2": "Acelerar la rotación de entrada cambia la velocidad de propagación del flujo...", - "create.ponder.mechanical_pump_speed.text_3": "...así como la rapidez con la que se transfieren los fluidos", - "create.ponder.mechanical_pump_speed.text_4": "Las bombas pueden combinar sus rendimientos en redes de tuberías compartidas", - "create.ponder.mechanical_pump_speed.text_5": "Alternar su orientación puede ayudar a alinear sus direcciones de flujo", - - "create.ponder.mechanical_saw_breaker.header": "Cortar árboles con la sierra mecánica", - "create.ponder.mechanical_saw_breaker.text_1": "Cuando se le da una fuerza rotacional, la sierra mecánica cortará los árboles que estén directamente frente a ella", - "create.ponder.mechanical_saw_breaker.text_2": "Para poder cortar el árbol por completo, la sierra tiene que romper el último bloque que lo une al suelo", - - "create.ponder.mechanical_saw_contraption.header": "Utilizar sierras mecánicas en artilugios", - "create.ponder.mechanical_saw_contraption.text_1": "Cuando las sierras mecánicas se mueven como parte de un artilugio animado...", - "create.ponder.mechanical_saw_contraption.text_2": "...cortarán cualquier árbol con el que el artilugio se tope", - - "create.ponder.mechanical_saw_processing.header": "Procesar objetos en la sierra mecánica", - "create.ponder.mechanical_saw_processing.text_1": "Las sierras mecánicas orientadas hacia arriba pueden procesar una variedad de objetos", - "create.ponder.mechanical_saw_processing.text_2": "El objeto procesado siempre se mueve en contra de la fuerza rotacional de la sierra", - "create.ponder.mechanical_saw_processing.text_3": "Las sierras mecánicas pueden trabajar en línea con las correas mecánicas", - "create.ponder.mechanical_saw_processing.text_4": "Cuando un ingrediente tiene varios resultados posibles, la ranura para filtros puede especificarlo", - "create.ponder.mechanical_saw_processing.text_5": "Sin filtro, al contrario, la sierra mecánica pasaría por todos los resultados", - - "create.ponder.millstone.header": "Procesar objetos en la piedra de molino", - "create.ponder.millstone.text_1": "Las piedras de molino procesan los objetos mediante la molienda", - "create.ponder.millstone.text_2": "Se pueden accionar lateralmente mediante engranajes...", - "create.ponder.millstone.text_3": "... y tirar o insertar objetos en la parte superior", - "create.ponder.millstone.text_4": "Después de un tiempo, el resultado se puede obtener usando el clic derecho del ratón", - "create.ponder.millstone.text_5": "Las salidas también pueden extraerse mediante la automatización", - - "create.ponder.nixie_tube.header": "Usar los tubos Nixie", - "create.ponder.nixie_tube.text_1": "Cuando son alimentados con redstone, los tubos nixie mostrarán la fuerza de las señales de redstone", - "create.ponder.nixie_tube.text_2": "Con las etiquetas editadas en un yunque, pueden mostar un texto personalizado", - "create.ponder.nixie_tube.text_3": "Haga clic derecho con un tinte para cambiar su color de visualización", - - "create.ponder.piston_pole.header": "Pértigas de extensión de pistones", - "create.ponder.piston_pole.text_1": "Sin las pértigas de extensión unidas, un pistón mecánico no puede moverse", - "create.ponder.piston_pole.text_2": "La longitud de la pértiga añadida en su parte posterior determina el rango de alcance", - - "create.ponder.portable_fluid_interface.header": "Interfaz de fluidos portátil", - "create.ponder.portable_fluid_interface.text_1": "No se puede acceder a los depósitos de fluidos de los artilugios en movimiento por ninguna tubería", - "create.ponder.portable_fluid_interface.text_2": "Este componente puede interactuar con los depósitos de fluidos sin necesidad de detener el artilugio", - "create.ponder.portable_fluid_interface.text_3": "Coloca una segunda con un espacio de 1 o 2 bloques entre ellas", - "create.ponder.portable_fluid_interface.text_4": "Cada vez que pasen por delante de la otra, entablarán una conexión", - "create.ponder.portable_fluid_interface.text_5": "Mientras esté activada, la interfaz estacionaria representará TODOS los tanques del artilugio", - "create.ponder.portable_fluid_interface.text_6": "Ahora se puede introducir el fluido...", - "create.ponder.portable_fluid_interface.text_7": "...o extraerlo del artilugio", - "create.ponder.portable_fluid_interface.text_8": "Cuando no se intercambien contenidos durante un tiempo, el artilugio seguirá su camino", - - "create.ponder.portable_storage_interface.header": "Interfaz de almacenamiento portátil", - "create.ponder.portable_storage_interface.text_1": "Los jugadores no pueden acceder a los inventarios de los artilugios en movimiento.", - "create.ponder.portable_storage_interface.text_2": "Este componente puede interactuar con el almacenamiento sin necesidad de detener el artilugio.", - "create.ponder.portable_storage_interface.text_3": "Coloca una segunda unidad con un espacio de 1 o 2 bloques entre ellas", - "create.ponder.portable_storage_interface.text_4": "Cada vez que pasen por delante del otro, entablarán una conexión", - "create.ponder.portable_storage_interface.text_5": "Mientras esté conectada, la interfaz fija representará TODOS los inventarios del artilugio", - "create.ponder.portable_storage_interface.text_6": "Ahora pueden insertarse objetos...", - "create.ponder.portable_storage_interface.text_7": "...o extraerse", - "create.ponder.portable_storage_interface.text_8": "Cuando no se hayan intercambiado objetos durante un tiempo, el artilugio seguirá su camino", - - "create.ponder.portable_storage_interface_redstone.header": "Interfaz de almacenamiento portátil controlada por redstone", - "create.ponder.portable_storage_interface_redstone.text_1": "La energía de redstone impedirá que las interfaces de almacenamiento portátil se conecten", - - "create.ponder.powered_latch.header": "Controlar señales mediante la palanca motorizada", - "create.ponder.powered_latch.text_1": "Las palancas motorizadas son palancas controlables por redstone", - "create.ponder.powered_latch.text_2": "Las señales en la parte trasera la encienden", - "create.ponder.powered_latch.text_3": "Las señales sobre un lateral la vuelven a apagar", - "create.ponder.powered_latch.text_4": "Las palancas motorizadas también se pueden accionar manualmente", - - "create.ponder.powered_toggle_latch.header": "Controlar señales mediante la palanca de cierre motorizada", - "create.ponder.powered_toggle_latch.text_1": "Las palancas de cierre motorizadas son palancas controlables por redstone", - "create.ponder.powered_toggle_latch.text_2": "Las señales en la parte trasera cambiarán su estado...", - "create.ponder.powered_toggle_latch.text_3": "...encender y apagar", - "create.ponder.powered_toggle_latch.text_4": "Las palancas de cierre motorizadas también se pueden accionar manualmente", - - "create.ponder.pulse_repeater.header": "Controlar señales mediante repetidores de pulsos", - "create.ponder.pulse_repeater.text_1": "Los repetidores de pulsos acortan cualquier señal de redstone a un solo pulso", - - "create.ponder.radial_chassis.header": "Fijar bloques mediante chasis radiales", - "create.ponder.radial_chassis.text_1": "Los chasis radiales se conectan a bloques de chasis idénticos en una fila", - "create.ponder.radial_chassis.text_2": "Cuando uno es movido por un artilugio, los otros son arrastrados con él", - "create.ponder.radial_chassis.text_3": "Las caras laterales de un chasis radial pueden hacerse adhesivas", - "create.ponder.radial_chassis.text_4": "Haga clic de nuevo para que todos los demás lados sean pegajosos", - "create.ponder.radial_chassis.text_5": "Mayús izdo + clic derecho con la mano vacía para eliminar el pegamento", - "create.ponder.radial_chassis.text_6": "Cada vez que un bloque está junto a una cara pegajosa...", - "create.ponder.radial_chassis.text_7": "...adjuntará todos los bloques alcanzables dentro de un radio en esa capa", - "create.ponder.radial_chassis.text_8": "Con una llave inglesa y usando la rueda de desplazamiento del ratón se puede especificar un radio preciso", - "create.ponder.radial_chassis.text_9": "Los bloques no alcanzables por ninguna cara adhesiva no se fijarán", - - "create.ponder.redstone_contact.header": "Contactos de redstone", - "create.ponder.redstone_contact.text_1": "Los contactos de redstone enfrentados emitirán una señal de redstone", - "create.ponder.redstone_contact.text_2": "Esto sigue siendo válido cuando uno de ellos forma parte de un artilugio en movimiento", - - "create.ponder.redstone_link.header": "Usar los enlaces de redstone", - "create.ponder.redstone_link.text_1": "Los enlaces de redstone pueden transmitir señales redstone de forma inalámbrica", - "create.ponder.redstone_link.text_2": "Mayús izdo + clic derecho para cambiar el modo de recepción", - "create.ponder.redstone_link.text_3": "Un simple clic derecho con una llave inglesa puede hacer lo mismo", - "create.ponder.redstone_link.text_4": "Los receptores emiten la potencia de redstone de los transmisores en 128 bloques", - "create.ponder.redstone_link.text_5": "Colocando objetos en las dos ranuras puede especificar una frecuencia", - "create.ponder.redstone_link.text_6": "Sólo se comunicarán los enlaces con frecuencias coincidentes", - - "create.ponder.rope_pulley.header": "Mover estructuras con poleas de cuerda", - "create.ponder.rope_pulley.text_1": "Las poleas de cuerda pueden mover los bloques verticalmente cuando se les aplica una fuerza rotacional", - "create.ponder.rope_pulley.text_2": "La dirección y la velocidad del movimiento dependen de la fuerza rotacional suministrada", - - "create.ponder.rope_pulley_attachment.header": "Mover poleas como parte de un artilugio", - "create.ponder.rope_pulley_attachment.text_1": "Siempre que las poleas de cuerda sean movidas por un artilugio...", - "create.ponder.rope_pulley_attachment.text_2": "...su estructura adjunta será arrastrada con ella", - "create.ponder.rope_pulley_attachment.text_3": "Tenga en cuenta que las poleas de cuerda sólo se mueven cuando están paradas", - - "create.ponder.rope_pulley_modes.header": "Modos de movimiento de la polea de cuerda", - "create.ponder.rope_pulley_modes.text_1": "Cuando las poleas de cuerda dejan de moverse, la estructura movida vuelve a los bloques", - "create.ponder.rope_pulley_modes.text_2": "Puede configurarse para que no vuelva nunca a los bloques sólidos, o sólo en la ubicación en la que comenzó", - - "create.ponder.rotation_speed_controller.header": "Usar el controlador de velocidad rotacional", - "create.ponder.rotation_speed_controller.text_1": "Los controladores de velocidad rotacional transmiten la rotación de su eje a un engranaje grande situado encima.", - "create.ponder.rotation_speed_controller.text_2": "Utilizando la rueda de desplazamiento del ratón, puede configurarse la velocidad rotacional", - - "create.ponder.sail.header": "Montar molinos de viento usando velas", - "create.ponder.sail.text_1": "Las velas son bloques muy útiles para crear molinos de viento", - "create.ponder.sail.text_2": "Se fijarán a los bloques y entre sí sin necesidad de pegamento o bloques de chasis", - "create.ponder.sail.text_3": "Clic derecho con un tinte para pintarlas", - "create.ponder.sail.text_4": "Clic derecho con una tijera para volver a convertirlas en marcos", - - "create.ponder.sail_frame.header": "Montar molinos de viento con marcos de vela", - "create.ponder.sail_frame.text_1": "Los marcos de vela son prácticos bloques para crear molinos de viento", - "create.ponder.sail_frame.text_2": "Se fijarán a los bloques y entre sí sin necesidad de pegamento o bloques de chasis", - - "create.ponder.sequenced_gearshift.header": "Controlar la velocidad de rotación mediante la caja de cambios secuenciales", - "create.ponder.sequenced_gearshift.text_1": "La caja de cambios secuencial retransmite la rotación siguiendo una lista cronometrada de instrucciones", - "create.ponder.sequenced_gearshift.text_2": "Haga clic con el botón derecho para abrir la interfaz de configuración", - "create.ponder.sequenced_gearshift.text_3": "Al recibir una señal de redstone, comenzará a ejecutar su secuencia configurada", - "create.ponder.sequenced_gearshift.text_4": "Una vez terminado, espera la siguiente señal de redstone y vuelve a empezar", - "create.ponder.sequenced_gearshift.text_5": "Se puede utilizar un comparador de redstone para leer el progreso actual", - - "create.ponder.shaft.header": "Transmitir fuerza rotacional mediante ejes", - "create.ponder.shaft.text_1": "Los ejes transmiten la rotación en línea recta.", - - "create.ponder.shaft_casing.header": "Ejes revestidos", - "create.ponder.shaft_casing.text_1": "Puedes utilizar el revestidor de latón o de andesita para decorar tus ejes", - - "create.ponder.smart_chute.header": "Filtrar objetos mediante ductos inteligentes", - "create.ponder.smart_chute.text_1": "Los ductos inteligentes son ductos verticales con control adicional", - "create.ponder.smart_chute.text_2": "Los objetos en la ranura para filtros especifican lo que pueden extraer y transferir exactamente", - "create.ponder.smart_chute.text_3": "Usa la rueda del ratón para especificar el tamaño de la pila extraída", - "create.ponder.smart_chute.text_4": "La energía de redstone impedirá que funcionen.", - - "create.ponder.smart_pipe.header": "Controlar el flujo de fluidos mediante tuberías inteligentes", - "create.ponder.smart_pipe.text_1": "Las tuberías inteligentes pueden ayudar a controlar los flujos por tipo de fluido", - "create.ponder.smart_pipe.text_2": "Cuando se colocan directamente en la fuente, pueden especificar el tipo de fluido a extraer", - "create.ponder.smart_pipe.text_3": "Simplemente haga clic derecho en su ranura de filtro con cualquier elemento que contenga el fluido deseado", - "create.ponder.smart_pipe.text_4": "Cuando se colocan detrás de una red de tuberías, las tuberías inteligentes sólo dejan que los fluidos coincidentes continúen", - - "create.ponder.speedometer.header": "Controlar la información cinética mediante el velocímetro", - "create.ponder.speedometer.text_1": "El velocímetro muestra la velocidad actual de los componentes conectados", - "create.ponder.speedometer.text_2": "Cuando se usan las gafas del constructor, el jugador puede obtener información más detallada del medidor", - "create.ponder.speedometer.text_3": "Los comparadores pueden emitir señales analógicas de redstone en relación con las mediciones del velocímetro", - - "create.ponder.spout_filling.header": "Llenar objetos con un surtidor", - "create.ponder.spout_filling.text_1": "El surtidor puede llenar los elementos de retención de fluidos que se encuentran debajo de él", - "create.ponder.spout_filling.text_2": "No se puede acceder manualmente al contenido de un surtidor", - "create.ponder.spout_filling.text_3": "En su lugar, se pueden utilizar tuberías para suministrarle fluidos", - "create.ponder.spout_filling.text_4": "Los objetos de entrada pueden colocarse en un depósito bajo el surtidor", - "create.ponder.spout_filling.text_5": "Cuando los artículos se proporcionan en una cinta...", - "create.ponder.spout_filling.text_6": "El surtidor los retendrá y procesará automáticamente", - - "create.ponder.stabilized_bearings.header": "Estabilizar artilugios", - "create.ponder.stabilized_bearings.text_1": "Siempre que los rodamientos mecánicos formen parte de una estructura móvil...", - "create.ponder.stabilized_bearings.text_2": "...intentarán mantenerse derechos", - "create.ponder.stabilized_bearings.text_3": "Una vez más, el rodamiento se unirá al bloque de enfrente", - "create.ponder.stabilized_bearings.text_4": "Como resultado, todo el sub-artilugio se mantendrá en posición vertical", - - "create.ponder.sticker.header": "Fijar bloques con stickers", - "create.ponder.sticker.text_1": "Los stickers son ideales para la fijación de bloques controlados por redstone", - "create.ponder.sticker.text_2": "Al recibir una señal, cambiarán su estado", - "create.ponder.sticker.text_3": "Si ahora se mueve en un artilugio, el bloque se moverá con él", - "create.ponder.sticker.text_4": "Si se vuelve a activar, el bloque dejará de estar fijado", - - "create.ponder.stressometer.header": "Supervisar la información cinética con el estresómetro", - "create.ponder.stressometer.text_1": "El estresómetro muestra la capacidad de estrés actual de la red cinética conectada", - "create.ponder.stressometer.text_2": "Cuando se usan las gafas del constructor, el jugador puede obtener información más detallada del medidor", - "create.ponder.stressometer.text_3": "Los comparadores pueden emitir señales analógicas de redstone en relación con las mediciones del estresómetro", - - "create.ponder.super_glue.header": "Fijar bloques con pegamento", - "create.ponder.super_glue.text_1": "Se puede utilizar pegamento entre dos bloques cualquiera", - "create.ponder.super_glue.text_2": "Los bloques fijados se moverán juntos cuando se ensamblen en un artilugio", - "create.ponder.super_glue.text_3": "Cada vez que el pegamento es sostenido en la mano...", - "create.ponder.super_glue.text_4": "...los bloques añadidos se pegarán a la cara en la que fueron colocados automáticamente", - "create.ponder.super_glue.text_5": "El pegamento se puede quitar con un clic izquierdo", - - "create.ponder.valve_handle.header": "Generar fuerza rotacional mediante asas de válvula", - "create.ponder.valve_handle.text_1": "Los jugadores pueden utilizar las asas de válvulas para aplicar fuerza rotacional manualmente", - "create.ponder.valve_handle.text_2": "Mantén pulsado el clic derecho para rotar en sentido contrario a las agujas del reloj", - "create.ponder.valve_handle.text_3": "Su velocidad de transmisión es lenta y precisa", - "create.ponder.valve_handle.text_4": "Mayús izdo + clic derecho para rotar en el sentido de las agujas del reloj", - "create.ponder.valve_handle.text_5": "Las asas de las válvulas pueden teñirse con fines estéticos", - - "create.ponder.valve_pipe.header": "Controlar el flujo de fluidos mediante válvulas", - "create.ponder.valve_pipe.text_1": "Las tuberías con válvulas ayudan a controlar los fluidos que se propagan por las redes de tuberías", - "create.ponder.valve_pipe.text_2": "Su entrada en el eje controla si el fluido puede pasar por", - "create.ponder.valve_pipe.text_3": "Dada la fuerza de rotación en la dirección de apertura, la válvula se abrirá", - "create.ponder.valve_pipe.text_4": "Se puede volver a cerrar invirtiendo el giro de entrada", - - "create.ponder.water_wheel.header": "Generar fuerza rotacional mediante ruedas hidráulicas", - "create.ponder.water_wheel.text_1": "Las ruedas hidráulicas extraen la fuerza de las corrientes de agua adyacentes", - "create.ponder.water_wheel.text_2": "Cuantas más caras se alimenten, más rápido girará", - "create.ponder.water_wheel.text_3": "Las paletas de las ruedas deben estar orientadas en contra del flujo", - "create.ponder.water_wheel.text_4": "Orientadas hacia el lado contrario, no serán tan eficaces", - - "create.ponder.weighted_ejector.header": "Usar eyectores de peso", - "create.ponder.weighted_ejector.text_1": "Mayús izdo + clic derecho sosteniendo un eyector de peso para seleccionar la ubicación de destino", - "create.ponder.weighted_ejector.text_10": "Ahora estára limitado a este tamaño de pila, y sólo se activara cuando su pila retenida alcance esta cantidad", - "create.ponder.weighted_ejector.text_11": "Otras entidades activarán el eyector al pisarlos", - "create.ponder.weighted_ejector.text_2": "El eyector colocado lanzará ahora los objetos al lugar marcado", - "create.ponder.weighted_ejector.text_3": "Un objetivo válido puede estar a cualquier altura o distancia dentro del alcance", - "create.ponder.weighted_ejector.text_4": "Sin embargo, no pueden estar a un costado", - "create.ponder.weighted_ejector.text_5": "Si no se ha seleccionado ningún objetivo válido, simplemente se dirigirá al bloque que se encuentra justo delante", - "create.ponder.weighted_ejector.text_6": "Suministrale fuerza rotacional para cargarlo", - "create.ponder.weighted_ejector.text_7": "Los objetos colocados en el eyector hacen que se dispare", - "create.ponder.weighted_ejector.text_8": "Si se dirigen a un inventario, el eyector esperará hasta que haya espacio", - "create.ponder.weighted_ejector.text_9": "Con la llave inglesa se puede configurar el tamaño de pila requerido", - - "create.ponder.weighted_ejector_redstone.header": "Controlar los eyectores de peso con redstone", - "create.ponder.weighted_ejector_redstone.text_1": "Cuando se alimentan con redstone, los eyectores no se activan", - "create.ponder.weighted_ejector_redstone.text_2": "Además, los observadores de contenido pueden detectar cuando los eyectores se activan", - - "create.ponder.weighted_ejector_tunnel.header": "Dividir pilas de objetos mediante eyectores de peso", - "create.ponder.weighted_ejector_tunnel.text_1": "En combinación con los túneles de latón, los eyectores de peso pueden dividir las pilas de objetos en cantidades específicas", - "create.ponder.weighted_ejector_tunnel.text_2": "En primer lugar, configure el túnel de latón en 'Preferir lo más cercano', para dar prioridad a su salida lateral", - "create.ponder.weighted_ejector_tunnel.text_3": "El tamaño de la pila fijado en el eyector determina ahora la cantidad que se va a dividir", - "create.ponder.weighted_ejector_tunnel.text_4": "Mientras una nueva pila del tamaño configurado se expulse por la salida lateral...", - "create.ponder.weighted_ejector_tunnel.text_5": "...el resto seguirá su camino", - - "create.ponder.windmill_source.header": "Generar fuerza rotacional mediante rodamientos del molino de viento", - "create.ponder.windmill_source.text_1": "Los rodamientos del molino de viento se fijan al bloque que tienen delante", - "create.ponder.windmill_source.text_2": "Si se unen suficientes bloques tipo vela al bloque, éste puede actuar como un molino de viento", - "create.ponder.windmill_source.text_3": "Activado con un clic derecho, el rodamiento del molino de viento comenzará a proporcionar fuerza rotacional", - "create.ponder.windmill_source.text_4": "La cantidad de bloques de vela determina su velocidad de rotación", - "create.ponder.windmill_source.text_5": "Utiliza una llave inglesa para configurar su sentido de rotación", - "create.ponder.windmill_source.text_6": "Haga clic derecho sobre el rodamiento del molino en cualquier momento para detener y editar la estructura de nuevo", - - "create.ponder.windmill_structure.header": "Artilugios para molinos de viento", - "create.ponder.windmill_structure.text_1": "Cualquier estructura puede contar como un molino de viento válido, siempre que contenga al menos 8 bloques tipo vela.", - - "_": "Thank you for translating Create!" - -} From bf6617081f4f61daccbf3ca0eac7335f7e2fadec Mon Sep 17 00:00:00 2001 From: Nekrodamus Date: Sat, 7 Aug 2021 17:07:49 -0300 Subject: [PATCH 20/79] Delete es_ec.json --- .../resources/assets/create/lang/es_ec.json | 2305 ----------------- 1 file changed, 2305 deletions(-) delete mode 100644 src/main/resources/assets/create/lang/es_ec.json diff --git a/src/main/resources/assets/create/lang/es_ec.json b/src/main/resources/assets/create/lang/es_ec.json deleted file mode 100644 index 504694aab..000000000 --- a/src/main/resources/assets/create/lang/es_ec.json +++ /dev/null @@ -1,2305 +0,0 @@ -{ - - "_": "->------------------------] Game Elements [------------------------<-", - - "block.create.acacia_window": "Ventana de acacia", - "block.create.acacia_window_pane": "Panel de ventana de acacia", - "block.create.adjustable_chain_gearshift": "Cadena de transmisión ajustable", - "block.create.adjustable_crate": "Caja ajustable", - "block.create.adjustable_pulse_repeater": "Repetidor de pulso ajustable", - "block.create.adjustable_repeater": "Repetidor ajustable", - "block.create.analog_lever": "Palanca analógica", - "block.create.andesite_belt_funnel": "Embudo de cinta de andesita", - "block.create.andesite_bricks": "Ladrillos de andesita", - "block.create.andesite_bricks_slab": "Losa de ladrillos de andesita", - "block.create.andesite_bricks_stairs": "Escaleras de ladrillos de andesita", - "block.create.andesite_bricks_wall": "Muro de ladrillos de andesita", - "block.create.andesite_casing": "Revestidor de andesita", - "block.create.andesite_cobblestone": "Adoquín de andesita", - "block.create.andesite_cobblestone_slab": "Losa de adoquín de andesita", - "block.create.andesite_cobblestone_stairs": "Escaleras de adoquines de andesita", - "block.create.andesite_cobblestone_wall": "Muro de adoquines de andesita", - "block.create.andesite_encased_shaft": "Eje revestido de andesita", - "block.create.andesite_funnel": "Embudo de andesita", - "block.create.andesite_pillar": "Poste de andesita", - "block.create.andesite_tunnel": "Túnel de Andesita", - "block.create.basin": "Cuenca", - "block.create.belt": "Cinta", - "block.create.birch_window": "Ventana de abedul", - "block.create.birch_window_pane": "Panel de ventana de abedul", - "block.create.black_nixie_tube": "Tubo Nixie negro", - "block.create.black_sail": "Vela negra", - "block.create.black_seat": "Asiento negro", - "block.create.black_valve_handle": "Asa de válvula negra", - "block.create.blaze_burner": "Quemador de Blaze", - "block.create.blue_nixie_tube": "Tubo Nixie azul", - "block.create.blue_sail": "Vela azul", - "block.create.blue_seat": "Asiento azul", - "block.create.blue_valve_handle": "Asa de válvula azul", - "block.create.brass_belt_funnel": "Embudo de cinta de latón", - "block.create.brass_block": "Bloque de latón", - "block.create.brass_casing": "Revestidor de latón", - "block.create.brass_encased_shaft": "Eje revestido de latón", - "block.create.brass_funnel": "Embudo de latón", - "block.create.brass_tunnel": "Túnel de latón", - "block.create.brown_nixie_tube": "Tubo Nixie marrón", - "block.create.brown_sail": "Vela marrón", - "block.create.brown_seat": "Asiento marrón", - "block.create.brown_valve_handle": "Asa de válvula marrón", - "block.create.cart_assembler": "Ensamblador de vagonetas", - "block.create.chiseled_dark_scoria": "Escoria oscura cincelada", - "block.create.chiseled_dolomite": "Dolomita cincelada", - "block.create.chiseled_gabbro": "Gabro cincelado", - "block.create.chiseled_limestone": "Caliza cincelada", - "block.create.chiseled_scoria": "Escoria cincelada", - "block.create.chiseled_weathered_limestone": "Piedra caliza erosionada cincelada", - "block.create.chocolate": "Chocolate", - "block.create.chute": "Ducto", - "block.create.clockwork_bearing": "Rodamiento tipo reloj", - "block.create.clutch": "Embrague", - "block.create.cogwheel": "Engranaje pequeño", - "block.create.content_observer": "Observador de contenidos", - "block.create.controller_rail": "Raíl de control", - "block.create.copper_backtank": "Depósito trasero de cobre", - "block.create.copper_block": "Bloque de cobre", - "block.create.copper_casing": "Revestidor de caliza", - "block.create.copper_ore": "Mena de cobre", - "block.create.copper_shingles": "Bloque de tejas de cobre", - "block.create.copper_tiles": "Bloque de baldosas de cobre", - "block.create.copper_valve_handle": "Asa de válvula de cobre", - "block.create.creative_crate": "Caja creativa", - "block.create.creative_fluid_tank": "Tanque de fluidos creativo", - "block.create.creative_motor": "Motor creativo", - "block.create.crimson_window": "Ventana carmesí", - "block.create.crimson_window_pane": "Panel de ventana carmesí", - "block.create.crushing_wheel": "Rueda trituradora", - "block.create.crushing_wheel_controller": "Controlador de Rueda trituradora", - "block.create.cuckoo_clock": "Reloj de cuco", - "block.create.cyan_nixie_tube": "Tubo Nixie cian", - "block.create.cyan_sail": "Vela cian", - "block.create.cyan_seat": "Asiento cian", - "block.create.cyan_valve_handle": "Asa de válvula cian", - "block.create.dark_oak_window": "Ventana de roble oscuro", - "block.create.dark_oak_window_pane": "Panel de ventana de roble oscuro", - "block.create.dark_scoria": "Escoria oscura", - "block.create.dark_scoria_bricks": "Ladrillos de escoria oscura", - "block.create.dark_scoria_bricks_slab": "Losa de ladrillos de escoria oscura", - "block.create.dark_scoria_bricks_stairs": "Escaleras de ladrillos de escoria oscura", - "block.create.dark_scoria_bricks_wall": "Muro de ladrillos de escoria oscura", - "block.create.dark_scoria_cobblestone": "Adoquines de escoria oscura", - "block.create.dark_scoria_cobblestone_slab": "Losa de adoquines de escoria oscura", - "block.create.dark_scoria_cobblestone_stairs": "Escaleras de adoquines de escoria oscura", - "block.create.dark_scoria_cobblestone_wall": "Muro de adoquines de escoria oscura", - "block.create.dark_scoria_pillar": "Pilar de escoria oscura", - "block.create.deployer": "Desplegador", - "block.create.depot": "Depósito", - "block.create.diorite_bricks": "Ladrillos de diorita", - "block.create.diorite_bricks_slab": "Losa de ladrillos de diorita", - "block.create.diorite_bricks_stairs": "Escaleras de ladrillos de diorita", - "block.create.diorite_bricks_wall": "Muro de ladrillos de diorita", - "block.create.diorite_cobblestone": "Adoquín de diorita", - "block.create.diorite_cobblestone_slab": "Losa de adoquínes de diorita", - "block.create.diorite_cobblestone_stairs": "Escaleras de adoquines de diorita", - "block.create.diorite_cobblestone_wall": "Muro de adoquines de diorita", - "block.create.diorite_pillar": "Pilar de diorita", - "block.create.dolomite": "Dolomita", - "block.create.dolomite_bricks": "Ladrillos de dolomita", - "block.create.dolomite_bricks_slab": "Losa de ladrillos de dolomita", - "block.create.dolomite_bricks_stairs": "Escaleras de ladrillos de dolomita", - "block.create.dolomite_bricks_wall": "Muro de ladrillos de dolomita", - "block.create.dolomite_cobblestone": "Adoquín de dolomita", - "block.create.dolomite_cobblestone_slab": "Losa de adoquín de dolomita", - "block.create.dolomite_cobblestone_stairs": "Escaleras de adoquines de dolomita", - "block.create.dolomite_cobblestone_wall": "Muro de adoquines de dolomita", - "block.create.dolomite_pillar": "Pilar de dolomita", - "block.create.encased_chain_drive": "Cadena de transmisión revestida", - "block.create.encased_fan": "Ventilador revestido", - "block.create.encased_fluid_pipe": "Tubería de fluidos de cobre reforzada", - "block.create.fancy_andesite_bricks": "Ladrillos de andesita elegantes", - "block.create.fancy_andesite_bricks_slab": "Ladrillos de andesita elegantes", - "block.create.fancy_andesite_bricks_stairs": "Escaleras de ladrillos de andesita elegantes", - "block.create.fancy_andesite_bricks_wall": "Muro de ladrillos de andesita elegantes", - "block.create.fancy_dark_scoria_bricks": "Ladrillos de escoria oscura elegantes", - "block.create.fancy_dark_scoria_bricks_slab": "Losa de ladrillos de escoria oscura elegantes", - "block.create.fancy_dark_scoria_bricks_stairs": "Escalera de ladrillos de escoria oscura elegantes", - "block.create.fancy_dark_scoria_bricks_wall": "Muro de ladrillos de escoria oscura elegantes", - "block.create.fancy_diorite_bricks": "Ladrillos de diorita elegantes", - "block.create.fancy_diorite_bricks_slab": "Losa de ladrillos de diorita elegantes", - "block.create.fancy_diorite_bricks_stairs": "Escaleras de ladrillos de diorita elegantes", - "block.create.fancy_diorite_bricks_wall": "Muro de ladrillos de diorita elegantes", - "block.create.fancy_dolomite_bricks": "Ladrillos de dolomita elegantes", - "block.create.fancy_dolomite_bricks_slab": "Losa de ladrillos de dolomita elegantes", - "block.create.fancy_dolomite_bricks_stairs": "Escaleras de ladrillos de dolomita elegantes", - "block.create.fancy_dolomite_bricks_wall": "Muro de ladrillos de dolomita elegantes", - "block.create.fancy_gabbro_bricks": "Ladrillos de gabro elegantes", - "block.create.fancy_gabbro_bricks_slab": "Losa de ladrillos de gabro elegantes", - "block.create.fancy_gabbro_bricks_stairs": "Escaleras de ladrillos de gabro elegantes", - "block.create.fancy_gabbro_bricks_wall": "Muro de ladrillos de gabro elegantes", - "block.create.fancy_granite_bricks": "Ladrillos de granito elegantes", - "block.create.fancy_granite_bricks_slab": "Losa de ladrillos de granito elegantes", - "block.create.fancy_granite_bricks_stairs": "Escaleras de ladrillos de granito elegantes", - "block.create.fancy_granite_bricks_wall": "Muro de ladrillos de granito elegantes", - "block.create.fancy_limestone_bricks": "Ladrillos de piedra caliza elegantes", - "block.create.fancy_limestone_bricks_slab": "Losa de ladrillos de piedra caliza elegantes", - "block.create.fancy_limestone_bricks_stairs": "Escaleras de ladrillos de piedra caliza elegantes", - "block.create.fancy_limestone_bricks_wall": "Muro de ladrillos de piedra caliza elegantes", - "block.create.fancy_scoria_bricks": "Ladrillos de escoria elegantes", - "block.create.fancy_scoria_bricks_slab": "Losa de ladrillos de escoria elegantes", - "block.create.fancy_scoria_bricks_stairs": "Escaleras de ladrillos de escoria elegantes", - "block.create.fancy_scoria_bricks_wall": "Muro de ladrillos de escoria elegantes", - "block.create.fancy_weathered_limestone_bricks": "Ladrillos de piedra de caliza erosionada elegantes", - "block.create.fancy_weathered_limestone_bricks_slab": "Losa de ladrillos de caliza erosionada elegantes", - "block.create.fancy_weathered_limestone_bricks_stairs": "Escaleras de ladrillos de caliza erosionada elegantes", - "block.create.fancy_weathered_limestone_bricks_wall": "Muro de ladrillos de caliza erosionada elegantes", - "block.create.fluid_pipe": "Tubería de fluidos de cobre", - "block.create.fluid_tank": "Depósito de fluidos", - "block.create.fluid_valve": "Válvula de fluidos", - "block.create.flywheel": "Rueda de inercia", - "block.create.framed_glass": "Cristal enmarcado", - "block.create.framed_glass_pane": "Panel de cristal enmarcado", - "block.create.furnace_engine": "Motor de horno", - "block.create.gabbro": "Gabro", - "block.create.gabbro_bricks": "Ladrillos de gabro", - "block.create.gabbro_bricks_slab": "Losa de ladrillos de gabro", - "block.create.gabbro_bricks_stairs": "Escaleras de ladrillos de gabro", - "block.create.gabbro_bricks_wall": "Muro de ladrillos de gabro", - "block.create.gabbro_cobblestone": "Adoquín de gabro", - "block.create.gabbro_cobblestone_slab": "Losa de adoquínes de gabro", - "block.create.gabbro_cobblestone_stairs": "Escaleras de adoquínes de gabro", - "block.create.gabbro_cobblestone_wall": "Muro de adoquínes de gabro", - "block.create.gabbro_pillar": "Pilar de gabro", - "block.create.gantry_carriage": "Carro de grúa", - "block.create.gantry_shaft": "Eje de grúa", - "block.create.gearbox": "Caja de transmisión", - "block.create.gearshift": "Caja de cambios", - "block.create.glass_fluid_pipe": "Tubería de fluidos de cristal", - "block.create.granite_bricks": "Ladrillos de granito", - "block.create.granite_bricks_slab": "Losa de ladrillos de granito", - "block.create.granite_bricks_stairs": "Escaleras de ladrillos de granito", - "block.create.granite_bricks_wall": "Muro de ladrillos de granito", - "block.create.granite_cobblestone": "Adoquín de granito", - "block.create.granite_cobblestone_slab": "Losa de adoquínes de granito", - "block.create.granite_cobblestone_stairs": "Escaleras de adoquínes de granito", - "block.create.granite_cobblestone_wall": "Muro de adoquínes de granito", - "block.create.granite_pillar": "Pilar de granito", - "block.create.gray_nixie_tube": "Tubo Nixie gris", - "block.create.gray_sail": "Vela gris", - "block.create.gray_seat": "Asiento gris", - "block.create.gray_valve_handle": "Asa de válvula gris", - "block.create.green_nixie_tube": "Tubo Nixie verde", - "block.create.green_sail": "Vela verde", - "block.create.green_seat": "Asiento verde", - "block.create.green_valve_handle": "Asa de válvula verde", - "block.create.hand_crank": "Manivela", - "block.create.haunted_bell": "Campana encantada", - "block.create.honey": "Miel", - "block.create.horizontal_framed_glass": "Cristal con marco horizontal", - "block.create.horizontal_framed_glass_pane": "Panel de cristal con marco horizontal", - "block.create.hose_pulley": "Polea de manguera", - "block.create.item_drain": "Drenador de objetos", - "block.create.jungle_window": "Ventana de jungla", - "block.create.jungle_window_pane": "Panel de ventana de jungla", - "block.create.large_cogwheel": "Engranaje grande", - "block.create.layered_andesite": "Andesita estratificada", - "block.create.layered_dark_scoria": "Escoria oscura estratificada", - "block.create.layered_diorite": "Diorita estratificada", - "block.create.layered_dolomite": "Dolomita estratificada", - "block.create.layered_gabbro": "Gabro estratificado", - "block.create.layered_granite": "Granito estratificado", - "block.create.layered_limestone": "Piedra caliza estratificada", - "block.create.layered_scoria": "Escoria estratificada", - "block.create.layered_weathered_limestone": "Caliza erosionada estratificada", - "block.create.lectern_controller": "Controlador de atril", - "block.create.light_blue_nixie_tube": "Tubo Nixie azul claro", - "block.create.light_blue_sail": "Vela azul claro", - "block.create.light_blue_seat": "Asiento azul claro", - "block.create.light_blue_valve_handle": "Asa de válvula azul claro", - "block.create.light_gray_nixie_tube": "Tubo Nixie gris claro", - "block.create.light_gray_sail": "Vela gris claro", - "block.create.light_gray_seat": "Asiento gris claro", - "block.create.light_gray_valve_handle": "Asa de válvula gris claro", - "block.create.lime_nixie_tube": "Tubo Nixie lima", - "block.create.lime_sail": "Vela lima", - "block.create.lime_seat": "Asiento lima", - "block.create.lime_valve_handle": "Asa de válvula lima", - "block.create.limesand": "Arena caliza", - "block.create.limestone": "Piedra caliza", - "block.create.limestone_bricks": "Ladrillos de piedra caliza", - "block.create.limestone_bricks_slab": "Losa de ladrillos de piedra caliza", - "block.create.limestone_bricks_stairs": "Escaleras de ladrillos de piedra caliza", - "block.create.limestone_bricks_wall": "Muro de ladrillos de piedra caliza", - "block.create.limestone_cobblestone": "Adoquínes de piedra caliza", - "block.create.limestone_cobblestone_slab": "Losa de adoquines de piedra caliza", - "block.create.limestone_cobblestone_stairs": "Escaleras de adoquines de piedra caliza", - "block.create.limestone_cobblestone_wall": "Muro de adoquines de piedra caliza", - "block.create.limestone_pillar": "Pilar de piedra caliza", - "block.create.linear_chassis": "Chasis lineal", - "block.create.lit_blaze_burner": "Quemador de Blaze encendido", - "block.create.magenta_nixie_tube": "Tubo Nixie magenta", - "block.create.magenta_sail": "Vela magenta", - "block.create.magenta_seat": "Asiento magenta", - "block.create.magenta_valve_handle": "Asa de válvula magenta", - "block.create.mechanical_arm": "Brazo mecánico", - "block.create.mechanical_bearing": "Rodamiento mecánico", - "block.create.mechanical_crafter": "Ensamblador mecánico", - "block.create.mechanical_drill": "Taladro mecánico", - "block.create.mechanical_harvester": "Cosechadora mecánica", - "block.create.mechanical_mixer": "Mezcladora mecánica", - "block.create.mechanical_piston": "Pistón mecánico", - "block.create.mechanical_piston_head": "Cabezal de pistón mecánico", - "block.create.mechanical_plough": "Arado mecánico", - "block.create.mechanical_press": "Prensa mecánica", - "block.create.mechanical_pump": "Bomba mecánica", - "block.create.mechanical_saw": "Sierra mecánica", - "block.create.metal_bracket": "Soporte de metal para ejes", - "block.create.millstone": "Piedra de molino", - "block.create.minecart_anchor": "Ancla de vagonetas", - "block.create.mossy_andesite": "Andesita musgosa", - "block.create.mossy_dark_scoria": "Escoria oscura musgosa", - "block.create.mossy_diorite": "Diorita musgosa", - "block.create.mossy_dolomite": "Dolomita musgosa", - "block.create.mossy_gabbro": "Gabro musgoso", - "block.create.mossy_granite": "Granito musgoso", - "block.create.mossy_limestone": "Caliza musgosa", - "block.create.mossy_scoria": "Escoria musgosa", - "block.create.mossy_weathered_limestone": "Caliza erosionada musgosa", - "block.create.mysterious_cuckoo_clock": "Reloj de cuco", - "block.create.natural_scoria": "Escoria natural", - "block.create.nixie_tube": "Tubo Nixie", - "block.create.nozzle": "Boquilla", - "block.create.oak_window": "Ventana de roble", - "block.create.oak_window_pane": "Panel de ventana de roble", - "block.create.orange_sail": "Vela naranja", - "block.create.orange_seat": "Asiento naranja", - "block.create.orange_valve_handle": "Asa de válvula naranja", - "block.create.ornate_iron_window": "Ventana de hierro ornamentada", - "block.create.ornate_iron_window_pane": "Panel de ventana de hierro ornamentada", - "block.create.overgrown_andesite": "Andesita sobredimensionada", - "block.create.overgrown_dark_scoria": "Escoria oscura sobredimensionada", - "block.create.overgrown_diorite": "Diorita sobredimensionada", - "block.create.overgrown_dolomite": "Dolomita sobredimensionada", - "block.create.overgrown_gabbro": "Gabro sobredimensionado", - "block.create.overgrown_granite": "Granito sobredimensionado", - "block.create.overgrown_limestone": "Caliza sobredimensionada", - "block.create.overgrown_scoria": "Escoria sobredimensionada", - "block.create.overgrown_weathered_limestone": "Caliza erosionada sobredimensionada", - "block.create.paved_andesite": "Andesita pavimentada", - "block.create.paved_andesite_slab": "Losa de andesita pavimentada", - "block.create.paved_andesite_stairs": "Escaleras de andesita pavimentada", - "block.create.paved_andesite_wall": "Muro de andesita pavimentada", - "block.create.paved_dark_scoria": "Escoria oscura pavimentada", - "block.create.paved_dark_scoria_slab": "Losa de escoria oscura pavimentada", - "block.create.paved_dark_scoria_stairs": "Escaleras de escoria oscura pavimentada", - "block.create.paved_dark_scoria_wall": "Muro de escoria oscura pavimentad", - "block.create.paved_diorite": "Diorita pavimentada", - "block.create.paved_diorite_slab": "Losa de diorita pavimentada", - "block.create.paved_diorite_stairs": "Escaleras de diorita pavimentada", - "block.create.paved_diorite_wall": "Muro de diorita pavimentad", - "block.create.paved_dolomite": "Dolomita pavimentada", - "block.create.paved_dolomite_slab": "Losa de dolomita pavimentada", - "block.create.paved_dolomite_stairs": "Escaleras de dolomita pavimentada", - "block.create.paved_dolomite_wall": "Muro de dolomita pavimentada", - "block.create.paved_gabbro": "Gabro pavimentado", - "block.create.paved_gabbro_slab": "Losa de gabro pavimentado", - "block.create.paved_gabbro_stairs": "Escaleras de gabro pavimentado", - "block.create.paved_gabbro_wall": "Muro de gabro pavimentado", - "block.create.paved_granite": "Granito pavimentado", - "block.create.paved_granite_slab": "Losa de granito pavimentado", - "block.create.paved_granite_stairs": "Escaleras de granito pavimentado", - "block.create.paved_granite_wall": "Muro de granito pavimentado", - "block.create.paved_limestone": "Piedra caliza pavimentada", - "block.create.paved_limestone_slab": "Losa de piedra caliza pavimentada", - "block.create.paved_limestone_stairs": "Escaleras de piedra caliza pavimentada", - "block.create.paved_limestone_wall": "Muro de piedra caliza pavimentada", - "block.create.paved_scoria": "Escoria pavimentada", - "block.create.paved_scoria_slab": "Losa de escoria pavimentada", - "block.create.paved_scoria_stairs": "Escaleras de escoria pavimentada", - "block.create.paved_scoria_wall": "Muro de escoria pavimentada", - "block.create.paved_weathered_limestone": "Piedra caliza erosionada pavimentada", - "block.create.paved_weathered_limestone_slab": "Losa de piedra caliza erosionada pavimentada", - "block.create.paved_weathered_limestone_stairs": "Escaleras de piedra caliza erosionada pavimentada", - "block.create.paved_weathered_limestone_wall": "Muro de piedra caliza erosionada pavimentada", - "block.create.peculiar_bell": "Campana peculiar", - "block.create.pink_nixie_tube": "Tubo Nixie rosa", - "block.create.pink_sail": "Vela rosa", - "block.create.pink_seat": "Asiento rosa", - "block.create.pink_valve_handle": "Asa de válvula rosa", - "block.create.piston_extension_pole": "Pértiga de extensión de pistón", - "block.create.polished_dark_scoria": "Escoria oscura pulida", - "block.create.polished_dark_scoria_slab": "Losa de escoria oscura pulida", - "block.create.polished_dark_scoria_stairs": "Escaleras de escoria oscura pulida", - "block.create.polished_dark_scoria_wall": "Muro de escoria oscura pulida", - "block.create.polished_dolomite": "Dolomita pulida", - "block.create.polished_dolomite_slab": "Losa de dolomita pulida", - "block.create.polished_dolomite_stairs": "Escaleras de dolomita pulidas", - "block.create.polished_dolomite_wall": "Muro de dolomita pulida", - "block.create.polished_gabbro": "Gabro pulido", - "block.create.polished_gabbro_slab": "Losa de gabro pulido", - "block.create.polished_gabbro_stairs": "Escaleras de gabro pulido", - "block.create.polished_gabbro_wall": "Muro de gabro pulido", - "block.create.polished_limestone": "Piedra caliza pulida", - "block.create.polished_limestone_slab": "Losa de piedra caliza pulida", - "block.create.polished_limestone_stairs": "Escaleras de piedra caliza pulidas", - "block.create.polished_limestone_wall": "Muro de piedra caliza pulida", - "block.create.polished_scoria": "Escoria pulida", - "block.create.polished_scoria_slab": "Losa de escoria pulida", - "block.create.polished_scoria_stairs": "Escaleras de losa pulida", - "block.create.polished_scoria_wall": "Muro de escoria pulida", - "block.create.polished_weathered_limestone": "Piedra caliza erosionada pulida", - "block.create.polished_weathered_limestone_slab": "Losa de piedra caliza erosionada pulida", - "block.create.polished_weathered_limestone_stairs": "Escaleras de piedra caliza erosionada pulida", - "block.create.polished_weathered_limestone_wall": "Muro de piedra caliza erosionada pulida", - "block.create.portable_fluid_interface": "Interfaz de fluidos portátil", - "block.create.portable_storage_interface": "Interfaz de almacenamiento portátil", - "block.create.powered_latch": "Palanca motorizada", - "block.create.powered_toggle_latch": "Palanca de cierre motorizada", - "block.create.pulley_magnet": "Imán de la polea", - "block.create.pulse_repeater": "Repetidor de pulsos de redstone", - "block.create.purple_nixie_tube": "Tubo Nixie morado", - "block.create.purple_sail": "Vela morada", - "block.create.purple_seat": "Asiento morado", - "block.create.purple_valve_handle": "Asa de válvula morada", - "block.create.radial_chassis": "Chasis radial", - "block.create.red_nixie_tube": "Tubo Nixie rojo", - "block.create.red_sail": "Vela roja", - "block.create.red_seat": "Asiento rojo", - "block.create.red_valve_handle": "Asa de válvula roja", - "block.create.redstone_contact": "Contacto de redstone", - "block.create.redstone_link": "Enlace de redstone", - "block.create.refined_radiance_casing": "Revestidor radiante", - "block.create.reinforced_rail": "Raíl reforzado", - "block.create.rope": "Cuerda", - "block.create.rope_pulley": "Polea de cuerda", - "block.create.rotation_speed_controller": "Controlador de velocidad rotacional", - "block.create.sail_frame": "Marco de vela", - "block.create.schematic_table": "Tabla de esquemas", - "block.create.schematicannon": "Cañón de esquemas", - "block.create.scoria": "Escoria", - "block.create.scoria_bricks": "Ladrillos de escoria", - "block.create.scoria_bricks_slab": "Losa de ladrillos de escoria", - "block.create.scoria_bricks_stairs": "Escaleras de ladrillos de escoria", - "block.create.scoria_bricks_wall": "Muro de ladrillos de escoria", - "block.create.scoria_cobblestone": "Adoquín de escoria", - "block.create.scoria_cobblestone_slab": "Losa de adoquínes de escoria", - "block.create.scoria_cobblestone_stairs": "Escaleras de adoquines de escoria", - "block.create.scoria_cobblestone_wall": "Muro de adoquines de escoria", - "block.create.scoria_pillar": "Pilar de escoria", - "block.create.secondary_linear_chassis": "Chasis lineal secundario", - "block.create.sequenced_gearshift": "Caja de cambios secuencial", - "block.create.shadow_steel_casing": "Revestidor sombrío", - "block.create.shaft": "Eje", - "block.create.smart_chute": "Ducto inteligente", - "block.create.smart_fluid_pipe": "Tubería de fluidos inteligente", - "block.create.speedometer": "Velocímetro", - "block.create.spout": "Surtidor", - "block.create.spruce_window": "Ventana de abeto", - "block.create.spruce_window_pane": "Panel de ventana de abeto", - "block.create.sticker": "Sticker", - "block.create.sticky_mechanical_piston": "Pistón mecánico pegajoso", - "block.create.stockpile_switch": "Interruptor de acopio", - "block.create.stressometer": "Estresómetro", - "block.create.tiled_glass": "Vidrio esmaltado", - "block.create.tiled_glass_pane": "Panel de vidrio esmaltado", - "block.create.turntable": "Plataforma giratoria mecánica", - "block.create.vertical_framed_glass": "Vidrio esmaltado vertical", - "block.create.vertical_framed_glass_pane": "Panel de vidrio esmaltado vertical", - "block.create.warped_window": "Ventana distorsionada", - "block.create.warped_window_pane": "Panel de ventana distorsionada", - "block.create.water_wheel": "Rueda hidráulica mecánica", - "block.create.weathered_limestone": "Piedra caliza erosionada", - "block.create.weathered_limestone_bricks": "Ladrillos de piedra caliza erosionada", - "block.create.weathered_limestone_bricks_slab": "Losa de piedra caliza erosionada", - "block.create.weathered_limestone_bricks_stairs": "Escaleras de ladrillos de piedra caliza erosionada", - "block.create.weathered_limestone_bricks_wall": "Muro de ladrillos de piedra caliza erosionada", - "block.create.weathered_limestone_cobblestone": "Adoquín de piedra caliza erosionada", - "block.create.weathered_limestone_cobblestone_slab": "Losa de adoquín de piedra caliza erosionada", - "block.create.weathered_limestone_cobblestone_stairs": "Escaleras de adoquín de piedra caliza erosionada", - "block.create.weathered_limestone_cobblestone_wall": "Muro de adoquínes de piedra caliza erosionada", - "block.create.weathered_limestone_pillar": "Pilar de piedra caliza erosionada", - "block.create.weighted_ejector": "Eyector de peso", - "block.create.white_nixie_tube": "Tubo Nixie blanco", - "block.create.white_sail": "Vela blanca", - "block.create.white_seat": "Asiento blanco", - "block.create.white_valve_handle": "Asa de válvula blanco", - "block.create.windmill_bearing": "Rodamiento del molino de viento", - "block.create.wooden_bracket": "Soporte de madera para ejes", - "block.create.yellow_nixie_tube": "Tubo Nixie amarillo", - "block.create.yellow_sail": "Vela amarilla", - "block.create.yellow_seat": "Asiento amarillo", - "block.create.yellow_valve_handle": "Asa de válvula amarillo", - "block.create.zinc_block": "Bloque de zinc", - "block.create.zinc_ore": "Mena de zinc", - - "enchantment.create.capacity": "Capacidad", - "enchantment.create.potato_recovery": "Recuperación de patatas", - - "entity.create.contraption": "Artilugio", - "entity.create.crafting_blueprint": "Plano de elaboración", - "entity.create.gantry_contraption": "Artilugio de grúa", - "entity.create.potato_projectile": "Proyectil de patata", - "entity.create.seat": "Asiento", - "entity.create.stationary_contraption": "Artilugio estacionario", - "entity.create.super_glue": "Pegamento", - - "fluid.create.potion": "Poción", - "fluid.create.tea": "Té del Constructor", - - "item.create.andesite_alloy": "Aleación de andesita", - "item.create.attribute_filter": "Filtro de atributos", - "item.create.bar_of_chocolate": "Barra de chocolate", - "item.create.belt_connector": "Correa mecánica", - "item.create.blaze_cake": "Pastel de blaze", - "item.create.blaze_cake_base": "Base de pastel de blaze", - "item.create.brass_hand": "Mano de latón", - "item.create.brass_ingot": "Lingote de latón", - "item.create.brass_nugget": "Pepita de latón", - "item.create.brass_sheet": "Lámina de latón", - "item.create.builders_tea": "Té del Constructor", - "item.create.chest_minecart_contraption": "Artilugio de vagoneta con cofre", - "item.create.chocolate_bucket": "Cubo con chocolate", - "item.create.chocolate_glazed_berries": "Bayas glaseadas con chocolate", - "item.create.chromatic_compound": "Compuesto cromático", - "item.create.cinder_flour": "Harina del Nether", - "item.create.copper_backtank": "Depósito trasero de cobre", - "item.create.copper_ingot": "Lingote de cobre", - "item.create.copper_nugget": "Pepita de cobre", - "item.create.copper_sheet": "Lámina de cobre", - "item.create.crafter_slot_cover": "Tapa de ranura del ensamblador mecánico", - "item.create.crafting_blueprint": "Plano de elaboración", - "item.create.creative_blaze_cake": "´Pastel de blaze creativo", - "item.create.crushed_aluminum_ore": "Mineral de aluminio molido", - "item.create.crushed_brass": "Latón molido", - "item.create.crushed_copper_ore": "Mineral de cobre molido", - "item.create.crushed_gold_ore": "Mineral de oro molido", - "item.create.crushed_iron_ore": "Mineral de hierro molido", - "item.create.crushed_lead_ore": "Mineral de plomo molido", - "item.create.crushed_nickel_ore": "Mineral de níquel molido", - "item.create.crushed_osmium_ore": "Mineral de osmio molido", - "item.create.crushed_platinum_ore": "Mineral de platino molido", - "item.create.crushed_quicksilver_ore": "Mineral de mercurio molido", - "item.create.crushed_silver_ore": "Mineral de plata molido", - "item.create.crushed_tin_ore": "Mineral de estaño molido", - "item.create.crushed_uranium_ore": "Mineral de uranio molido", - "item.create.crushed_zinc_ore": "Mineral de zinc molido", - "item.create.diving_boots": "Botas de buceo", - "item.create.diving_helmet": "Casco de buceo", - "item.create.dough": "Masilla", - "item.create.electron_tube": "Tubo de electrones", - "item.create.empty_blaze_burner": "Quemador de blaze vacío", - "item.create.empty_schematic": "Esquema vacío", - "item.create.extendo_grip": "Agarre extendido", - "item.create.filter": "Filtro", - "item.create.furnace_minecart_contraption": "Artilugio de vagoneta de horno", - "item.create.goggles": "Gafas del constructor", - "item.create.golden_sheet": "Lámina de oro", - "item.create.handheld_worldshaper": "Worldshaper Creativo", - "item.create.honey_bucket": "Cubo con miel", - "item.create.honeyed_apple": "Manzana con miel", - "item.create.incomplete_cogwheel": "Engranaje pequeño incompleto", - "item.create.incomplete_large_cogwheel": "Engranaje grande incompleto", - "item.create.incomplete_precision_mechanism": "Mecanismo de precisión incompleto", - "item.create.iron_sheet": "Lámina de hierro", - "item.create.linked_controller": "Controlador enlazado", - "item.create.minecart_contraption": "Artilugio de vagoneta", - "item.create.minecart_coupling": "Acoplamiento de vagoneta", - "item.create.polished_rose_quartz": "Cuarzo rosado pulido", - "item.create.potato_cannon": "Cañón de patatas", - "item.create.powdered_obsidian": "Polvo de obsidiana", - "item.create.precision_mechanism": "Mecanismo de precisión", - "item.create.propeller": "Hélice", - "item.create.red_sand_paper": "Papel de lija rojo", - "item.create.refined_radiance": "Resplandor refinado", - "item.create.rose_quartz": "Cuarzo rosado", - "item.create.sand_paper": "Papel de lija", - "item.create.schematic": "Esquema", - "item.create.schematic_and_quill": "Esquema y pluma", - "item.create.shadow_steel": "Acero sombrío", - "item.create.super_glue": "Pegamento", - "item.create.sweet_roll": "Pan dulce", - "item.create.tree_fertilizer": "Fertilizante para árboles", - "item.create.vertical_gearbox": "Caja de transmisión vertical", - "item.create.wand_of_symmetry": "Varita de simetría", - "item.create.wheat_flour": "Harina de trigo", - "item.create.whisk": "Batidora", - "item.create.wrench": "Llave inglesa", - "item.create.zinc_ingot": "Lingote de zinc", - "item.create.zinc_nugget": "Pepita de zinc", - - - "_": "->------------------------] Advancements [------------------------<-", - - "advancement.create.root": "Bienvenido a Create", - "advancement.create.root.desc": "¡Es hora de empezar a construir increíbles artilugios!", - "advancement.create.andesite_alloy": "Aleaciones en abundancia", - "advancement.create.andesite_alloy.desc": "Los materiales de Create tienen nombres extraños, la aleación de andesita es uno de ellos.", - "advancement.create.its_alive": "¡Está vivo!", - "advancement.create.its_alive.desc": "Mira cómo gira tu primer componente cinético.", - "advancement.create.shifting_gears": "Cambiando de marcha", - "advancement.create.shifting_gears.desc": "Conecta un engranaje grande a uno pequeño, lo que te permitirá cambiar la velocidad de tu artilugio.", - "advancement.create.overstressed": "Sobrecargado", - "advancement.create.overstressed.desc": "Experimenta los límites del estrés.", - "advancement.create.belt": "Paseo de algas", - "advancement.create.belt.desc": "Conectar dos ejes con una correa.", - "advancement.create.tunnel": "¡Cúbrete!", - "advancement.create.tunnel.desc": "Embellece tu correa con un túnel.", - "advancement.create.splitter_tunnel": "Divide y vencerás", - "advancement.create.splitter_tunnel.desc": "Crear un divisor con un grupo de túneles de latón.", - "advancement.create.chute": "Caída en picado", - "advancement.create.chute.desc": "Coloque un ducto, la contrapartida vertical de la cinta.", - "advancement.create.upward_chute": "Abducción aérea", - "advancement.create.upward_chute.desc": "Observe cómo un objeto lanzado vuela dentro de un ducto impulsado por un ventilador.", - "advancement.create.belt_funnel": "Colgantes con forma de embudo", - "advancement.create.belt_funnel.desc": "Coloca un embudo lateral encima de una cinta o depósito para crear un tipo especial.", - "advancement.create.belt_funnel_kiss": "Los loros y las aletas", - "advancement.create.belt_funnel_kiss.desc": "Haz besar dos embudos montados con una cinta.", - "advancement.create.fan": "Maestro mecánico del aire", - "advancement.create.fan.desc": "Monta la corriente de aire proporcionada por un ventilador revestido.", - "advancement.create.fan_lava": "Calentador geotérmico", - "advancement.create.fan_lava.desc": "Queda atrapado en una corriente de aire que funde las cosas.", - "advancement.create.fan_water": "Lavado de la ropa", - "advancement.create.fan_water.desc": "Queda atrapado en una corriente de aire que lava las cosas.", - "advancement.create.fan_smoke": "Fuelle mecánico", - "advancement.create.fan_smoke.desc": "Queda atrapado en una corriente de aire que humea los objetos.", - "advancement.create.wrench": "Configurar convenientemente", - "advancement.create.wrench.desc": "Crea una llave inglesa para ayudarte a construir tus artilugios.", - "advancement.create.goggles": "Estresóvisión", - "advancement.create.goggles.desc": "Crea unas gafas del constructor para ayudarte a obtener más información cinética de los componentes.", - "advancement.create.speedometer": "Pero, ¿con qué rapidez exactamente?", - "advancement.create.speedometer.desc": "Coloca y alimenta un velocímetro. Míralo a través de las gafas para leer su valor exacto.", - "advancement.create.stressometer": "Pero, ¿cuán estresado exactamente??", - "advancement.create.stressometer.desc": "Coloca y alimenta un estresómetro. Míralo a través de las gafas para leer su valor exacto.", - "advancement.create.aesthetics": "Boom, ¡Estética!", - "advancement.create.aesthetics.desc": "Coloca soportes en ejes, ductos y engranajes.", - "advancement.create.reinforced": "Boom, ¡Reforzado!", - "advancement.create.reinforced.desc": "Utiliza bloques de revestimiento en un eje, un ducto y una cinta.", - "advancement.create.water_wheel": "Aprovechar la hidráulica", - "advancement.create.water_wheel.desc": "Coloca una rueda hidráulica e intenta hacerla girar.", - "advancement.create.chocolate_wheel": "Potencia de buen gusto", - "advancement.create.chocolate_wheel.desc": "Haz funcionar una rueda de agua con chocolate fundido.", - "advancement.create.lava_wheel": "Rueda de magma", - "advancement.create.lava_wheel.desc": "Esto no debió haber funcionado.", - "advancement.create.cuckoo": "¿Es el momento?", - "advancement.create.cuckoo.desc": "Presencia cómo un reloj de cuco anuncia la hora de acostarse.", - "advancement.create.millstone": "Triturador de bolsillo", - "advancement.create.millstone.desc": "Coloca y alimenta una piedra de molino.", - "advancement.create.windmill": "Una suave brisa", - "advancement.create.windmill.desc": "Monta un molino de viento.", - "advancement.create.maxed_windmill": "Una fuerte brisa", - "advancement.create.maxed_windmill.desc": "Monta un molino de viento con máxima intensidad.", - "advancement.create.andesite_casing": "La edad de la andesita", - "advancement.create.andesite_casing.desc": "Utiliza un poco de aleación de andesita y madera para crear un revestimiento básico.", - "advancement.create.mechanical_drill": "Interruptores fijos", - "advancement.create.mechanical_drill.desc": "Coloca y alimenta un taladro mecánico.", - "advancement.create.press": "¡La prensa se pone en marcha!", - "advancement.create.press.desc": "Activa una prensa mecánica y utilízala para crear algunas láminas.", - "advancement.create.polished_rose_quartz": "Diamantes rosas", - "advancement.create.polished_rose_quartz.desc": "Utiliza un trozo de papel de lija para pulir el cuarzo rosa hasta que se vuelva transparente.", - "advancement.create.electron_tube": "Beep Boop", - "advancement.create.electron_tube.desc": "Haz algunos tubos de electrones, útiles en la fabricación de maquinaria menos primitiva.", - "advancement.create.mechanical_saw": "Picado estacionario", - "advancement.create.mechanical_saw.desc": "Coloca y alimenta una sierra mecánica.", - "advancement.create.basin": "Funcionamiento de la cuenca", - "advancement.create.basin.desc": "Coloca una cuenca e intenta arrojar objetos en ella.", - "advancement.create.mixer": "Mezcla de colores", - "advancement.create.mixer.desc": "Coloca una batidora mecánica sobre el lavabo, enciéndala y empiece a mezclar algunos ingredientes.", - "advancement.create.blaze_burner": "Una chimenea viva", - "advancement.create.blaze_burner.desc": "Obtiene un quemador de blaze.", - "advancement.create.compact": "Compactación automática", - "advancement.create.compact.desc": "Utiliza una prensa y una cuenca para compactar algunos objetos.", - "advancement.create.brass": "Aleaciones reales", - "advancement.create.brass.desc": "Utiliza cobre molido y zinc molido para crear algo de latón.", - "advancement.create.brass_casing": "La Edad de Latón", - "advancement.create.brass_casing.desc": "Utiliza el latón recién obtenido y algo de madera para crear un revestimiento más avanzado.", - "advancement.create.copper_casing": "La Edad de Cobre", - "advancement.create.copper_casing.desc": "Utiliza algunas láminas de cobre y madera para crear algunos revestimientos de cobre.", - "advancement.create.spout": "Sploosh", - "advancement.create.spout.desc": "Observa el llenado de un fluido usando una boquilla.", - "advancement.create.spout_potion": "Cervecera global", - "advancement.create.spout_potion.desc": "Mira cómo un pico llena una botella con líquido de poción.", - "advancement.create.chocolate": "Un mundo de imaginación", - "advancement.create.chocolate.desc": "Obtiene un cubo con chocolate fundido.", - "advancement.create.item_drain": "Drenaje de la ropa", - "advancement.create.item_drain.desc": "Ve cómo se vacía un fluido mediante un drenador de objetos.", - "advancement.create.chained_item_drain": "¡Déjalo rodar!", - "advancement.create.chained_item_drain.desc": "Observa cómo un objeto rueda por varios drenadores de objetos encadenados.", - "advancement.create.glass_pipe": "Espía del flujo", - "advancement.create.glass_pipe.desc": "Observa cómo se propaga el fluido a través de un tubo de fluidos con ventanas. Los tubos de fluido rectos se convierten en ventanas cuando se utiliza una llave inglesa en ellas.", - "advancement.create.pipe_collision": "No cruzar nunca los arroyos", - "advancement.create.pipe_collision.desc": "Vea cómo se unen dos fluidos en su red de tuberías.", - "advancement.create.pipe_spill": "¡Hay una fuga!", - "advancement.create.pipe_spill.desc": "Observe cómo un extremo abierto de una tubería toma o deposita fluidos en el mundo.", - "advancement.create.hose_pulley": "Vertidos industriales", - "advancement.create.hose_pulley.desc": "Baja una polea de manguera y ve cómo se vacía o se llena un cuerpo de líquido.", - "advancement.create.infinite_water": "Drenando el océano", - "advancement.create.infinite_water.desc": "Bombea de una masa de agua lo suficientemente grande como para ser considerada infinita.", - "advancement.create.infinite_lava": "Drenaje del núcleo de los planetas", - "advancement.create.infinite_lava.desc": "Bombea de una masa de lava lo suficientemente grande como para ser considerada infinita.", - "advancement.create.infinite_chocolate": "Ahogándose en la imaginación", - "advancement.create.infinite_chocolate.desc": "Bombea desde una masa de chocolate fundido lo suficientemente grande como para ser considerado infinito.", - "advancement.create.crafter": "Montaje automatizado", - "advancement.create.crafter.desc": "Coloca y alimenta algunos ensambladores.", - "advancement.create.clockwork_bearing": "Artilugio a la hora", - "advancement.create.clockwork_bearing.desc": "Ensamblar una estructura montada sobre un rodamiento tipo reloj.", - "advancement.create.nixie_tube": "Signos de estilo", - "advancement.create.nixie_tube.desc": "Obtener y colocar un par de tubos nixie.", - "advancement.create.deployer": "Picar, colocar y atacar", - "advancement.create.deployer.desc": "Coloca y potencia un desplegador, el reflejo perfecto de ti mismo.", - "advancement.create.speed_controller": "Los ingenieros lo odian!", - "advancement.create.speed_controller.desc": "Coloca un controlador de velocidad rotacional, el dispositivo definitivo para cambiar de marcha.", - "advancement.create.flywheel": "El corazón de la fábrica", - "advancement.create.flywheel.desc": "Conecta con éxito un motor a la rueda de inercia.", - "advancement.create.overstress_flywheel": "Altos niveles de estrés", - "advancement.create.overstress_flywheel.desc": "Sobrecarga un motor de horno.", - "advancement.create.precision_mechanism": "Curiosidades complejas", - "advancement.create.precision_mechanism.desc": "Monta un mecanismo de precisión.", - "advancement.create.mechanical_arm": "¡Manos ocupadas!", - "advancement.create.mechanical_arm.desc": "Crea un brazo mecánico, selecciona las entradas y salidas, colócalo en el suelo y dale energía; luego observa cómo hace todo el trabajo por ti.", - "advancement.create.musical_arm": "¡Tócame la melodía!", - "advancement.create.musical_arm.desc": "Vea cómo un brazo mecánico maneja su tocadiscos.", - "advancement.create.arm_many_targets": "Organize-o-Tron", - "advancement.create.arm_many_targets.desc": "Programa un brazo mecánico con diez o más posiciones de salida.", - "advancement.create.arm_blaze_burner": "Combust-o-Tron", - "advancement.create.arm_blaze_burner.desc": "Instruya un brazo mecánico para alimentar su quemador de blaze.", - "advancement.create.fist_bump": "¡Pégale, hermano!", - "advancement.create.fist_bump.desc": "Haz que dos desplegadores se den un puñetazo.", - "advancement.create.crushing_wheel": "Un par de gigantes", - "advancement.create.crushing_wheel.desc": "Crea algunas ruedas de trituración para descomponer más materiales de forma más eficaz.", - "advancement.create.blaze_cake": "Fiebre del azúcar", - "advancement.create.blaze_cake.desc": "Hornea en tu quemador de blaze un pastel especial.", - "advancement.create.chromatic_compound": "Minerales misteriosos", - "advancement.create.chromatic_compound.desc": "Crea una barra de compuesto cromático.", - "advancement.create.shadow_steel": "Retorno del vacío", - "advancement.create.shadow_steel.desc": "Crea acero sombrío, una barra de metal de la nada.", - "advancement.create.refined_radiance": "Brillante e inspirador", - "advancement.create.refined_radiance.desc": "Crea un resplandor refinado, una poderosa sustancia cromática.", - "advancement.create.chromatic_age": "La edad cromática", - "advancement.create.chromatic_age.desc": "Crear bloques de revestimiento de la luz y la oscuridad.", - "advancement.create.wand_of_symmetry": "Espejos radiantes", - "advancement.create.wand_of_symmetry.desc": "Crear un bastón de simetría.", - "advancement.create.extendo_grip": "¡Boioioing!", - "advancement.create.extendo_grip.desc": "Hazte con un agarre extentido.", - "advancement.create.potato_cannon": "Fwoomp!", - "advancement.create.potato_cannon.desc": "Derrota a un enemigo con tu cañón de patatas.", - "advancement.create.dual_extendo_grip": "La última edad del boing", - "advancement.create.dual_extendo_grip.desc": "Doble empuñadura extendida para un alcance sobrehumano.", - "advancement.create.eob": "Fin de la beta", - "advancement.create.eob.desc": "Espere más contenido aquí en el futuro. <3", - - - "_": "->------------------------] UI & Messages [------------------------<-", - - "itemGroup.create.base": "Create", - "itemGroup.create.palettes": "Paletas", - - "death.attack.create.crush": "%1$s se procesó en las ruedas de trituración", - "death.attack.create.crush.player": "%1$s fue arrojado a las ruedas de trituración por %2$s", - "death.attack.create.fan_fire": "%1$s murió quemado por el aire caliente", - "death.attack.create.fan_fire.player": "%1$s fue arrojado a un ahumador por %2$s", - "death.attack.create.fan_lava": "%1$s murió quemado por un abanico de lava", - "death.attack.create.fan_lava.player": "%1$s fue arrojado a una fundición por %2$s", - "death.attack.create.mechanical_drill": "%1$s fue empalado por un taladro mecánico", - "death.attack.create.mechanical_drill.player": "%1$s fue lanzado frente a un taladro por %2$s", - "death.attack.create.mechanical_saw": "%1$s fue cortado por la mitad por una sierra mecánica", - "death.attack.create.mechanical_saw.player": "%1$s fue arrojado a una sierra por %2$s", - "death.attack.create.potato_cannon": "%1$s fue disparado por el cañón de patatas de %2$s's", - "death.attack.create.potato_cannon.item": "%1$s fue disparado por %2$s utilizando %3$s", - "death.attack.create.cuckoo_clock_explosion": "%1$s fue volado por los aires por un reloj de cuco manipulado", - "death.attack.create.cuckoo_clock_explosion.player": "%1$s fue volado por un reloj de cuco manipulado", - - "create.block.deployer.damage_source_name": "Un desplegador rebelde", - "create.block.cart_assembler.invalid": "Coloque su Ensamblador de vagonetas en un bloque de Raíles", - - "create.menu.return": "Regresar al menú", - "create.menu.configure": "Configurar...", - "create.menu.ponder_index": "Índice", - "create.menu.only_ingame": "Disponible en el menú de pausa", - "create.menu.project_page": "Página del proyecto", - "create.menu.report_bugs": "Reportar problemas", - "create.menu.support": "Apóyenos", - - "create.recipe.crushing": "Trituración", - "create.recipe.milling": "Fresado", - "create.recipe.fan_washing": "Lavado a granel", - "create.recipe.fan_washing.fan": "Ventilador detrás del agua fluyente", - "create.recipe.fan_smoking": "Ahumador a granel", - "create.recipe.fan_smoking.fan": "Ventilador detrás del fuego", - "create.recipe.fan_blasting": "Voladuras a granel", - "create.recipe.fan_blasting.fan": "Ventilador detrás de la lava", - "create.recipe.pressing": "Prensando", - "create.recipe.mixing": "Mezclando", - "create.recipe.deploying": "Desplegando", - "create.recipe.automatic_shapeless": "Elaboración automatizada de productos sin forma", - "create.recipe.automatic_brewing": "Elaboración de cerveza automatizada", - "create.recipe.packing": "Compactando", - "create.recipe.automatic_packing": "Embalaje automatizado", - "create.recipe.sawing": "Aserrando", - "create.recipe.mechanical_crafting": "Elaboración mecánica", - "create.recipe.automatic_shaped": "Elaboración automatizada de productos con forma", - "create.recipe.block_cutting": "Corte de bloques", - "create.recipe.wood_cutting": "Corte de maderas", - "create.recipe.sandpaper_polishing": "Pulido con papel de lija", - "create.recipe.mystery_conversion": "Conversión misteriosa", - "create.recipe.spout_filling": "Llenar por el pico", - "create.recipe.draining": "Drenador de objetos", - "create.recipe.sequenced_assembly": "Montaje secuenciado", - "create.recipe.assembly.next": "Siguiente: %1$s", - "create.recipe.assembly.step": "Fase %1$s:", - "create.recipe.assembly.progress": "Progreso: %1$s/%2$s", - "create.recipe.assembly.pressing": "Proceso en prensa", - "create.recipe.assembly.spout_filling_fluid": "Pico %1$s", - "create.recipe.assembly.deploying_item": "Despliegue %1$s", - "create.recipe.assembly.cutting": "Corte con sierra", - "create.recipe.assembly.repeat": "Repetir la secuencia %1$s veces", - "create.recipe.assembly.junk": "Basura aleatoria", - "create.recipe.processing.chance": "%1$s%% Chance", - "create.recipe.heat_requirement.none": "No es necesario calentar", - "create.recipe.heat_requirement.heated": "Calentado", - "create.recipe.heat_requirement.superheated": "Súper-Calentado", - - "create.generic.range": "Rango", - "create.generic.radius": "Radio", - "create.generic.width": "Ancho", - "create.generic.height": "Alto", - "create.generic.length": "Largo", - "create.generic.speed": "Velocidad", - "create.generic.delay": "Retraso", - "create.generic.unit.ticks": "Ticks", - "create.generic.unit.seconds": "Segundos", - "create.generic.unit.minutes": "Minutos", - "create.generic.unit.rpm": "RPM", - "create.generic.unit.stress": "SU(unidades de estrés)", - "create.generic.unit.degrees": "°", - "create.generic.unit.millibuckets": "%1$smB", - "create.generic.clockwise": "En el sentido de las agujas del reloj", - "create.generic.counter_clockwise": "En sentido contrario a las agujas del reloj", - - "create.action.scroll": "Desplazar", - "create.action.confirm": "Confirmar", - "create.action.abort": "Abortar", - "create.action.saveToFile": "Guardar", - "create.action.discard": "Descartar", - - "create.keyinfo.toolmenu": "Menú de la Herramienta de Enfoque", - "create.keyinfo.scrollup": "Simular usar la rueda del ratón hacia arriba (en el mundo)", - "create.keyinfo.scrolldown": "Simular usar la rueda del ratón hacia abajo (en el mundo)", - - "create.gui.scrollInput.defaultTitle": "Seleccione una opción:", - "create.gui.scrollInput.scrollToModify": "Usa la rueda del ratón para modificar", - "create.gui.scrollInput.scrollToAdjustAmount": "Usa la rueda del ratón para ajustar la cantidad", - "create.gui.scrollInput.scrollToSelect": "Usa la rueda del ratón para seleccionar", - "create.gui.scrollInput.shiftScrollsFaster": "Mayús izdo para usar la rueda del ratón más rápido", - "create.gui.toolmenu.focusKey": "Mantén [%1$s] para enfocar", - "create.gui.toolmenu.cycle": "[RUEDA DEL RATÓN] para el ciclo", - "create.gui.symmetryWand.mirrorType": "Espejado", - "create.gui.symmetryWand.orientation": "Orientación", - - "create.symmetry.mirror.plane": "Plano de espejo", - "create.symmetry.mirror.doublePlane": "Rectangular", - "create.symmetry.mirror.triplePlane": "Octogonal", - - "create.orientation.orthogonal": "Ortogonal", - "create.orientation.diagonal": "Diagonal", - "create.orientation.horizontal": "Horizontal", - "create.orientation.alongZ": "A lo largo de Z", - "create.orientation.alongX": "A lo largo de X", - - "create.gui.terrainzapper.title": "Blockzapper", - "create.gui.terrainzapper.searchDiagonal": "Seguir diagonales", - "create.gui.terrainzapper.searchFuzzy": "Ignorar los bordes del material", - "create.gui.terrainzapper.patternSection": "Patrón", - "create.gui.terrainzapper.pattern.solid": "Sólido", - "create.gui.terrainzapper.pattern.checkered": "Tablero de ajedrez", - "create.gui.terrainzapper.pattern.inversecheckered": "Tablero de ajedrez invertido", - "create.gui.terrainzapper.pattern.chance25": "25% Roll", - "create.gui.terrainzapper.pattern.chance50": "50% Roll", - "create.gui.terrainzapper.pattern.chance75": "75% Roll", - "create.gui.terrainzapper.placement": "Ubicación", - "create.gui.terrainzapper.placement.merged": "Fusionado", - "create.gui.terrainzapper.placement.attached": "Adjuntado", - "create.gui.terrainzapper.placement.inserted": "Insertado", - "create.gui.terrainzapper.brush": "Pincel", - "create.gui.terrainzapper.brush.cuboid": "Cuboide", - "create.gui.terrainzapper.brush.sphere": "Esfera", - "create.gui.terrainzapper.brush.cylinder": "Cilindro", - "create.gui.terrainzapper.brush.surface": "Superficie", - "create.gui.terrainzapper.brush.cluster": "Grupo", - "create.gui.terrainzapper.tool": "Herramienta", - "create.gui.terrainzapper.tool.fill": "Llenar", - "create.gui.terrainzapper.tool.place": "Ubicar", - "create.gui.terrainzapper.tool.replace": "Reemplazar", - "create.gui.terrainzapper.tool.clear": "Eliminar", - "create.gui.terrainzapper.tool.overlay": "Superponer", - "create.gui.terrainzapper.tool.flatten": "Aplanar", - - "create.terrainzapper.shiftRightClickToSet": "Mayús izdo + clic derecho para seleccionar una forma", - "create.terrainzapper.usingBlock": "Usando: %1$s", - "create.terrainzapper.leftClickToSet": "Clic izquierdo a un bloque para establecer el material", - - "create.minecart_coupling.two_couplings_max": "Las vagonetas no pueden tener más de dos enganches cada una", - "create.minecart_coupling.unloaded": "Algunas partes de su tren parecen estar en chunks no cargados", - "create.minecart_coupling.no_loops": "Los acoplamientos no pueden formar un bucle", - "create.minecart_coupling.removed": "Se han retirado todos los acoplamientos de la vagoneta", - "create.minecart_coupling.too_far": "Las vagonetas están demasiado separadas", - - "create.contraptions.movement_mode": "Modo de movimiento", - "create.contraptions.movement_mode.move_place": "Colocar siempre al detenerse", - "create.contraptions.movement_mode.move_place_returned": "Colocar sólo en la posición inicial", - "create.contraptions.movement_mode.move_never_place": "Colocar sólo cuando se destruye el ancla", - "create.contraptions.movement_mode.rotate_place": "Colocar siempre al detenerse", - "create.contraptions.movement_mode.rotate_place_returned": "Colocar sólo cerca del ángulo inicial", - "create.contraptions.movement_mode.rotate_never_place": "Colocar sólo cuando se destruye el ancla", - "create.contraptions.cart_movement_mode": "Modo de movimiento de la vagoneta", - "create.contraptions.cart_movement_mode.rotate": "Siempre de cara al movimiento", - "create.contraptions.cart_movement_mode.rotate_paused": "Pausar a los actores mientras giran", - "create.contraptions.cart_movement_mode.rotation_locked": "Bloquear rotación", - "create.contraptions.windmill.rotation_direction": "Dirección de rotación", - "create.contraptions.clockwork.clock_hands": "Manecillas de reloj", - "create.contraptions.clockwork.hour_first": "La manecilla de las horas primero", - "create.contraptions.clockwork.minute_first": "La manecilla de los minutos primero", - "create.contraptions.clockwork.hour_first_24": "La manecilla del día primero", - - "create.logistics.filter": "Filtro", - "create.logistics.recipe_filter": "Filtro para recetas", - "create.logistics.fluid_filter": "Filtro para fluidos", - "create.logistics.firstFrequency": "Freq. #1", - "create.logistics.secondFrequency": "Freq. #2", - "create.logistics.filter.apply": "Filtro aplicado a %1$s.", - "create.logistics.filter.apply_click_again": "Filtro aplicado a %1$s, haga clic de nuevo para copiar la cantidad.", - "create.logistics.filter.apply_count": "Aplicado recuento de extracciones al filtro.", - - "create.gui.goggles.generator_stats": "Estadísticas del generador:", - "create.gui.goggles.kinetic_stats": "Estadísticas cinéticas:", - "create.gui.goggles.at_current_speed": "con la velocidad actual", - "create.gui.goggles.pole_length": "Longitud del poste:", - "create.gui.goggles.fluid_container": "Información sobre el contenedor de fluidos:", - "create.gui.goggles.fluid_container.capacity": "Capacidad: ", - "create.gui.assembly.exception": "Este artilugio no se pudo montar:", - "create.gui.assembly.exception.unmovableBlock": "Bloque inamovible (%4$s) en [%1$s,%2$s,%3$s]", - "create.gui.assembly.exception.chunkNotLoaded": "El bloque en [%1$s,%2$s,%3$s] no estaba en un chunk cargado", - "create.gui.assembly.exception.structureTooLarge": "Hay demasiados bloques incluídos en el artilugio.\nEl máximo configurado es: %1$s", - "create.gui.assembly.exception.tooManyPistonPoles": "Hay demasiadas Pértigas de extensión conectadas a este Pistón.\nEl máximo configurado es: %1$s", - "create.gui.assembly.exception.noPistonPoles": "Faltan pértigas de extensión para el pistón", - "create.gui.assembly.exception.not_enough_sails": "La estructura adjunta no incluye suficientes bloques tipo vela: %1$s\nSe requiere un mínimo de %2$s", - "create.gui.gauge.info_header": "Información sobre el medidor:", - "create.gui.speedometer.title": "Velocidad de rotación", - "create.gui.stressometer.title": "Estrés de la red", - "create.gui.stressometer.capacity": "Capacidad restante", - "create.gui.stressometer.overstressed": "Sobrecargado", - "create.gui.stressometer.no_rotation": "Sin rotación", - "create.gui.contraptions.not_fast_enough": "Parece que este %1$s no está girando con _suficiente_ velocidad_.", - "create.gui.contraptions.network_overstressed": "Parece que este artilugio está _sobrecargado_. Añade más fuentes o _desacelera_ los componentes con un _impacto de estrés alto_.", - "create.gui.adjustable_crate.title": "Caja ajustable", - "create.gui.adjustable_crate.storageSpace": "Espacio de almacenamiento", - "create.gui.stockpile_switch.title": "Interruptor de acopio", - "create.gui.stockpile_switch.invert_signal": "Invertir señal", - "create.gui.stockpile_switch.move_to_lower_at": "Pasar al carril inferior en %1$s%%", - "create.gui.stockpile_switch.move_to_upper_at": "Pasar al carril superior en %1$s%%", - "create.gui.sequenced_gearshift.title": "Cambio de marchas secuenciado", - "create.gui.sequenced_gearshift.instruction": "Instrucción", - "create.gui.sequenced_gearshift.instruction.turn_angle.descriptive": "Giro por ángulo", - "create.gui.sequenced_gearshift.instruction.turn_angle": "Giro", - "create.gui.sequenced_gearshift.instruction.turn_angle.angle": "Ángulo", - "create.gui.sequenced_gearshift.instruction.turn_distance.descriptive": "Giro para mover el pistón/polea/grúa", - "create.gui.sequenced_gearshift.instruction.turn_distance": "Pistón", - "create.gui.sequenced_gearshift.instruction.turn_distance.distance": "Distancia", - "create.gui.sequenced_gearshift.instruction.delay.descriptive": "Tiempo de retraso", - "create.gui.sequenced_gearshift.instruction.delay": "Retraso", - "create.gui.sequenced_gearshift.instruction.delay.duration": "Duración", - "create.gui.sequenced_gearshift.instruction.end.descriptive": "Fin", - "create.gui.sequenced_gearshift.instruction.end": "Fin", - "create.gui.sequenced_gearshift.instruction.await.descriptive": "En espera de un pulso de redstone", - "create.gui.sequenced_gearshift.instruction.await": "En espera", - "create.gui.sequenced_gearshift.speed": "Velocidad, Dirección", - "create.gui.sequenced_gearshift.speed.forward": "Velocidad de entrada, hacia adelante", - "create.gui.sequenced_gearshift.speed.forward_fast": "Doble velocidad, hacia adelante", - "create.gui.sequenced_gearshift.speed.back": "Velocidad de entrada, Invertida", - "create.gui.sequenced_gearshift.speed.back_fast": "Doble velocidad, Invertida", - - "create.schematicAndQuill.dimensions": "Tamaño del esquema: %1$sx%2$sx%3$s", - "create.schematicAndQuill.firstPos": "Primera posición fijada.", - "create.schematicAndQuill.secondPos": "Segunda posición fijada.", - "create.schematicAndQuill.noTarget": "Mantén [Ctrl] para seleccionar los bloques del aire.", - "create.schematicAndQuill.abort": "Selección eliminada.", - "create.schematicAndQuill.title": "Nombre del esquema:", - "create.schematicAndQuill.convert": "Guardar y desplegar inmediatamente", - "create.schematicAndQuill.fallbackName": "Mi esquema", - "create.schematicAndQuill.saved": "Guardado como %1$s", - - "create.schematic.invalid": "[!] Elemento no válido - Utilice la tabla de esquemas en su lugar", - "create.schematic.position": "Posición", - "create.schematic.rotation": "Rotación", - "create.schematic.rotation.none": "Ninguno", - "create.schematic.rotation.cw90": "En el sentido de las agujas del reloj 90", - "create.schematic.rotation.cw180": "En el sentido de las agujas del reloj 180", - "create.schematic.rotation.cw270": "En el sentido de las agujas del reloj 270", - "create.schematic.mirror": "Espejado", - "create.schematic.mirror.none": "Ninguno", - "create.schematic.mirror.frontBack": "Delante-Detrás", - "create.schematic.mirror.leftRight": "Izquierda-Derecha", - "create.schematic.tool.deploy": "Despliegue", - "create.schematic.tool.move": "Mover XZ", - "create.schematic.tool.movey": "Mover Y", - "create.schematic.tool.rotate": "Rotar", - "create.schematic.tool.print": "Imprimir", - "create.schematic.tool.flip": "Voltear", - "create.schematic.tool.deploy.description.0": "Mueve la estructura a un lugar.", - "create.schematic.tool.deploy.description.1": "Haz clic con el botón derecho del ratón en el suelo para colocarla.", - "create.schematic.tool.deploy.description.2": "Mantén [Ctrl] para seleccionar a una distancia fija.", - "create.schematic.tool.deploy.description.3": "[Ctrl] + [RUEDA DEL RATÓN] para cambiar la distancia.", - "create.schematic.tool.move.description.0": "Desplaza el esquema horizontalmente.", - "create.schematic.tool.move.description.1": "Apunta al esquema y [Ctrl] + [RUEDA DEL RATÓN] para ponerlo.", - "create.schematic.tool.move.description.2": "", - "create.schematic.tool.move.description.3": "", - "create.schematic.tool.movey.description.0": "Desplaza el esquema verticalmente..", - "create.schematic.tool.movey.description.1": "[Ctrl] + [RUEDA DEL RATÓN] para moverlo hacia arriba/abajo.", - "create.schematic.tool.movey.description.2": "", - "create.schematic.tool.movey.description.3": "", - "create.schematic.tool.rotate.description.0": "Gira el esquema alrededor de su centro.", - "create.schematic.tool.rotate.description.1": "[Ctrl] + [RUEDA DEL RATÓN] para girar 90 grados.", - "create.schematic.tool.rotate.description.2": "", - "create.schematic.tool.rotate.description.3": "", - "create.schematic.tool.print.description.0": "Sitúa instantáneamente la estructura en el mundo.", - "create.schematic.tool.print.description.1": "[Clic derecho] para confirmar la colocación en el lugar actual.", - "create.schematic.tool.print.description.2": "Esta herramienta es sólo para el Modo Creativo.", - "create.schematic.tool.print.description.3": "", - "create.schematic.tool.flip.description.0": "Voltea el esquema a lo largo de la cara que seleccione.", - "create.schematic.tool.flip.description.1": "Apunta al esquema y [Ctrl] + [RUEDA DEL RATÓN] para voltearlo.", - "create.schematic.tool.flip.description.2": "", - "create.schematic.tool.flip.description.3": "", - - "create.schematics.synchronizing": "Sincronizando...", - "create.schematics.uploadTooLarge": "Tu esquema excede las limitaciones especificadas por el servidor.", - "create.schematics.maxAllowedSize": "El tamaño máximo permitido del archivo del esquema es:", - - "create.gui.schematicTable.refresh": "Refrescar archivos", - "create.gui.schematicTable.open_folder": "Abrir carpeta", - "create.gui.schematicTable.title": "Tabla de esquemas", - "create.gui.schematicTable.availableSchematics": "Esquemas disponibles", - "create.gui.schematicTable.noSchematics": "No hay esquemas guardados", - "create.gui.schematicTable.uploading": "Subiendo...", - "create.gui.schematicTable.finished": "¡Subida finalizada!", - "create.gui.schematicannon.title": "Cañón de esquemas", - "create.gui.schematicannon.listPrinter": "Lista de control de la impresora", - "create.gui.schematicannon.gunpowderLevel": "Pólvora %1$s%%", - "create.gui.schematicannon.shotsRemaining": "Disparos restantes: %1$s", - "create.gui.schematicannon.shotsRemainingWithBackup": "Con respaldo: %1$s", - "create.gui.schematicannon.optionEnabled": "Actualmente habilitado", - "create.gui.schematicannon.optionDisabled": "Actualmente deshabilitado", - "create.gui.schematicannon.showOptions": "Mostrar la configuración de la impresora", - "create.gui.schematicannon.option.dontReplaceSolid": "No sustituír los bloques sólidos", - "create.gui.schematicannon.option.replaceWithSolid": "Sustituir sólido por sólido", - "create.gui.schematicannon.option.replaceWithAny": "Sustituir sólido por cualquiera", - "create.gui.schematicannon.option.replaceWithEmpty": "Sustituir sólido por vacío", - "create.gui.schematicannon.option.skipMissing": "Omitir los bloques que faltan", - "create.gui.schematicannon.option.skipTileEntities": "Proteger a las entidades", - "create.gui.schematicannon.slot.gunpowder": "Añade pólvora para alimentar el cañón", - "create.gui.schematicannon.slot.listPrinter": "Coloque los libros aquí para imprimir una lista de comprobación para su esquema", - "create.gui.schematicannon.slot.schematic": "Añada su esquema aquí. Asegúrese de que se despliega en un lugar específico.", - "create.gui.schematicannon.option.skipMissing.description": "Si el cañón no encuentra un bloque necesario para su colocación, continuará en la siguiente ubicación.", - "create.gui.schematicannon.option.skipTileEntities.description": "El cañón evitará reemplazar los bloques que contienen datos, como los cofres.", - "create.gui.schematicannon.option.dontReplaceSolid.description": "El cañón nunca sustituirá ningún bloque sólido en su zona de trabajo, sólo los no sólidos y el aire.", - "create.gui.schematicannon.option.replaceWithSolid.description": "El cañón sólo reemplazará los bloques sólidos en su área de trabajo si el esquema contiene un bloque sólido en la ubicación.", - "create.gui.schematicannon.option.replaceWithAny.description": "El cañón reemplazará los bloques sólidos en su área de trabajo si el esquema contiene algún bloque en la ubicación.", - "create.gui.schematicannon.option.replaceWithEmpty.description": "El cañón eliminará todos los bloques de su zona de trabajo, incluidos los sustituidos por aire.", - - "create.schematicannon.status.idle": "Inactivo", - "create.schematicannon.status.ready": "Listo", - "create.schematicannon.status.running": "Funcionando", - "create.schematicannon.status.finished": "Finalizado", - "create.schematicannon.status.paused": "Pausado", - "create.schematicannon.status.stopped": "Detenido", - "create.schematicannon.status.noGunpowder": "Sin pólvora", - "create.schematicannon.status.targetNotLoaded": "El objetivo no está cargado", - "create.schematicannon.status.targetOutsideRange": "Objetivo demasiado lejano", - "create.schematicannon.status.searching": "Buscando", - "create.schematicannon.status.skipping": "Omitiendo", - "create.schematicannon.status.missingBlock": "Elementos perdidos:", - "create.schematicannon.status.placing": "Colocando", - "create.schematicannon.status.clearing": "Limpiando bloques", - "create.schematicannon.status.schematicInvalid": "Esquema inválido", - "create.schematicannon.status.schematicNotPlaced": "Esquema no desplegado", - "create.schematicannon.status.schematicExpired": "Archivo de esquemas caducado", - - "create.materialChecklist": "Lista de control del material", - "create.materialChecklist.blocksNotLoaded": "* Descargo de Responsabilidad *\n\nLa lista de materiales puede ser inexacta debido a que no se han cargado los chunks pertinentes.", - - "create.gui.filter.deny_list": "Lista de denegados", - "create.gui.filter.deny_list.description": "Los objetos pasan si NO coinciden con ninguno de los anteriores. Una lista de denegación vacía acepta todo.", - "create.gui.filter.allow_list": "Lista de permitidos", - "create.gui.filter.allow_list.description": "Los objetos pasan si coinciden con alguno de los anteriores. Una lista de permitidos vacía rechaza todo.", - "create.gui.filter.respect_data": "Respetar datos", - "create.gui.filter.respect_data.description": "Los objetos sólo coinciden si su durabilidad, encantos y otros atributos también coinciden.", - "create.gui.filter.ignore_data": "Ignorar datos", - "create.gui.filter.ignore_data.description": "Los artículos coinciden independientemente de sus atributos.", - - "create.item_attributes.placeable": "se puede colocar", - "create.item_attributes.placeable.inverted": "no se puede colocar", - "create.item_attributes.consumable": "se puede comer", - "create.item_attributes.consumable.inverted": "no se puede comer", - "create.item_attributes.smeltable": "se puede fundir", - "create.item_attributes.smeltable.inverted": "no se puede fundir", - "create.item_attributes.washable": "se puede lavar", - "create.item_attributes.washable.inverted": "no se puede lavar", - "create.item_attributes.smokable": "puede ser ahumado", - "create.item_attributes.smokable.inverted": "no puede ser ahumado", - "create.item_attributes.crushable": "puede ser molido", - "create.item_attributes.crushable.inverted": "no puede ser molido", - "create.item_attributes.blastable": "es fundible en el alto horno", - "create.item_attributes.blastable.inverted": "no es fundible en el alto horno", - "create.item_attributes.enchanted": "está encantado", - "create.item_attributes.enchanted.inverted": "no está encantado", - "create.item_attributes.damaged": "está dañado", - "create.item_attributes.damaged.inverted": "no está dañado", - "create.item_attributes.badly_damaged": "está muy dañado", - "create.item_attributes.badly_damaged.inverted": "no está muy dañado", - "create.item_attributes.not_stackable": "no se puede apilar", - "create.item_attributes.not_stackable.inverted": "se puede apilar", - "create.item_attributes.equipable": "se puede equipar", - "create.item_attributes.equipable.inverted": "no se puede equipar", - "create.item_attributes.furnace_fuel": "es combustible para hornos", - "create.item_attributes.furnace_fuel.inverted": "no es combustible para hornos", - "create.item_attributes.in_tag": "está etiquetado %1$s", - "create.item_attributes.in_tag.inverted": "no está etiquetado %1$s", - "create.item_attributes.in_item_group": "está en el grupo '%1$s'", - "create.item_attributes.in_item_group.inverted": "no está en el grupo '%1$s'", - "create.item_attributes.added_by": "fue añadido por %1$s", - "create.item_attributes.added_by.inverted": "no fue añadida por %1$s", - "create.item_attributes.shulker_level": "es shulker %1$s", - "create.item_attributes.shulker_level.inverted": "no es shulker %1$s", - "create.item_attributes.shulker_level.full": "lleno", - "create.item_attributes.shulker_level.empty": "vacío", - "create.item_attributes.shulker_level.partial": "parcialmente lleno", - "create.item_attributes.has_enchant": "está encantado con %1$s", - "create.item_attributes.has_enchant.inverted": "no está encantado con %1$s", - "create.item_attributes.color": "Está teñido %1$s", - "create.item_attributes.color.inverted": "No está teñido %1$s", - "create.item_attributes.max_enchanted": "está encantado en el nivel máximo", - "create.item_attributes.max_enchanted.inverted": "no está encantado en el nivel máximo", - "create.item_attributes.has_fluid": "contiene %1$s", - "create.item_attributes.has_fluid.inverted": "no contiene %1$s", - "create.item_attributes.has_name": "tiene el nombre personalizado %1$s", - "create.item_attributes.has_name.inverted": "no tiene el nombre personalizado %1$s", - "create.item_attributes.book_author": "es obra de %1$s", - "create.item_attributes.book_author.inverted": "no es es obra de %1$s", - "create.item_attributes.book_copy_original": "es un original", - "create.item_attributes.book_copy_original.inverted": "no es un original", - "create.item_attributes.book_copy_first": "es una copia de primera generación", - "create.item_attributes.book_copy_first.inverted": "no es una copia de primera generación", - "create.item_attributes.book_copy_second": "es una copia de segunda generación", - "create.item_attributes.book_copy_second.inverted": "no es una copia de segunda generación", - "create.item_attributes.book_copy_tattered": "es un desordenado desastre", - "create.item_attributes.book_copy_tattered.inverted": "no es un desordenado desastre", - "create.item_attributes.astralsorcery_crystal": "tiene el atributo de cristal %1$s", - "create.item_attributes.astralsorcery_crystal.inverted": "no tiene atributo de cristal %1$s", - "create.item_attributes.astralsorcery_constellation": "está en sintonía con %1$s", - "create.item_attributes.astralsorcery_constellation.inverted": "no está en sintonía con %1$s", - "create.item_attributes.astralsorcery_perk_gem": "tiene el atributo ventaja %1$s", - "create.item_attributes.astralsorcery_perk_gem.inverted": "no tiene el atributo ventaja %1$s", - "create.item_attributes.astralsorcery_amulet": "mejora %1$s", - "create.item_attributes.astralsorcery_amulet.inverted": "no mejora %1$s", - - "create.gui.attribute_filter.no_selected_attributes": "No hay atributos seleccionados", - "create.gui.attribute_filter.selected_attributes": "Atributos seleccionados:", - "create.gui.attribute_filter.add_attribute": "Añadir atributo a la lista", - "create.gui.attribute_filter.add_inverted_attribute": "Añadir atributo invertido a la Lista", - "create.gui.attribute_filter.allow_list_disjunctive": "Lista de permitidos (Cualquiera)", - "create.gui.attribute_filter.allow_list_disjunctive.description": "Los objetos pasan si tienen alguno de los atributos seleccionados", - "create.gui.attribute_filter.allow_list_conjunctive": "Lista de permitidos (Todos)", - "create.gui.attribute_filter.allow_list_conjunctive.description": "Los objetos pasan sólo si tienen TODOS los atributos seleccionados", - "create.gui.attribute_filter.deny_list": "Lista de denegados", - "create.gui.attribute_filter.deny_list.description": "Los objetos pasan si NO tienen ninguno de los atributos seleccionados", - "create.gui.attribute_filter.add_reference_item": "Añadir elemento de referencia", - - "create.tooltip.holdForDescription": "Mantén [%1$s] para mas información", - "create.tooltip.holdForControls": "Mantén [%1$s] para ver los controles", - "create.tooltip.keyShift": "Mayús izdo.", - "create.tooltip.keyCtrl": "Ctrl", - "create.tooltip.speedRequirement": "Requisitos de velocidad: %1$s", - "create.tooltip.speedRequirement.none": "Ninguno", - "create.tooltip.speedRequirement.medium": "Moderado", - "create.tooltip.speedRequirement.high": "Rápido", - "create.tooltip.stressImpact": "Impacto de estrés: %1$s", - "create.tooltip.stressImpact.low": "Bajo", - "create.tooltip.stressImpact.medium": "Moderado", - "create.tooltip.stressImpact.high": "Alto", - "create.tooltip.stressImpact.overstressed": "Sobrecargado", - "create.tooltip.capacityProvided": "Capacidad de estrés: %1$s", - "create.tooltip.capacityProvided.low": "Pequeña", - "create.tooltip.capacityProvided.medium": "Media", - "create.tooltip.capacityProvided.high": "Grande", - "create.tooltip.generationSpeed": "Generada en %1$s %2$s", - "create.tooltip.analogStrength": "Fuerza analógica: %1$s/15", - - "create.mechanical_arm.extract_from": "Extraer objetos de %1$s", - "create.mechanical_arm.deposit_to": "Depositar objetos en %1$s", - "create.mechanical_arm.summary": "El brazo mecánico tiene %1$s entrada(s) y %2$s salida(s)", - "create.mechanical_arm.points_outside_range": "%1$s punto(s) de interacción seleccionado(s) eliminado(s) debido a las limitaciones de rango", - - "create.weighted_ejector.target_set": "Objetivo seleccionado", - "create.weighted_ejector.target_not_valid": "Expulsión al bloque adyacente (el objetivo no era válido)", - "create.weighted_ejector.no_target": "Expulsión al bloque adyacente (no se ha seleccionado ningún objetivo)", - "create.weighted_ejector.targeting": "Expulsión a [%1$s,%2$s,%3$s]", - "create.weighted_ejector.stack_size": "Tamaño de la pila expulsada", - - "create.logistics.when_multiple_outputs_available": "Cuando hay múltiples salidas disponibles", - - "create.mechanical_arm.selection_mode.round_robin": "Round Robin", - "create.mechanical_arm.selection_mode.forced_round_robin": "Round Robin forzado", - "create.mechanical_arm.selection_mode.prefer_first": "Preferir el primero", - - "create.tunnel.selection_mode.split": "División", - "create.tunnel.selection_mode.forced_split": "División forzada", - "create.tunnel.selection_mode.round_robin": "Round Robin", - "create.tunnel.selection_mode.forced_round_robin": "Round Robin forzado", - "create.tunnel.selection_mode.prefer_nearest": "Preferir el más cercano", - "create.tunnel.selection_mode.randomize": "Aleatorizar", - "create.tunnel.selection_mode.synchronize": "Sincronizar entradas", - - "create.tooltip.chute.header": "Información del ducto", - "create.tooltip.chute.items_move_down": "Los objetos se mueven hacia abajo", - "create.tooltip.chute.items_move_up": "Los objetos se mueven hacia arriba", - "create.tooltip.chute.no_fans_attached": "No hay ventiladores adjuntos", - "create.tooltip.chute.fans_push_up": "Los ventiladores empujan desde abajo", - "create.tooltip.chute.fans_push_down": "Los ventiladores empujan desde arriba", - "create.tooltip.chute.fans_pull_up": "Los ventiladores tiran desde arriba", - "create.tooltip.chute.fans_pull_down": "Los ventiladores tiran desde abajo", - "create.tooltip.chute.contains": "Contiene: %1$s x%2$s", - "create.tooltip.brass_tunnel.contains": "Actualmente distribuye:", - "create.tooltip.brass_tunnel.contains_entry": "> %1$s x%2$s", - "create.tooltip.brass_tunnel.retrieve": "Haga clic derecho para recuperar", - - "create.linked_controller.bind_mode": "Modo de enlace activo", - "create.linked_controller.press_keybind": "Presiona %1$s, %2$s, %3$s, %4$s, %5$s o %6$s, para vincular esta frecuencia a la tecla correspondiente", - "create.linked_controller.key_bound": "Frecuencia ligada a %1$s", - "create.linked_controller.frequency_slot_1": "Enlace de teclas: %1$s, Freq. #1", - "create.linked_controller.frequency_slot_2": "Enlace de teclas: %1$s, Freq. #2", - - "create.crafting_blueprint.crafting_slot": "Ranura para ingredientes", - "create.crafting_blueprint.filter_items_viable": "Los objetos del filtro avanzado son viables", - "create.crafting_blueprint.display_slot": "Ranura de pantalla", - "create.crafting_blueprint.inferred": "A partir de la receta", - "create.crafting_blueprint.manually_assigned": "Asignado manualmente", - "create.crafting_blueprint.secondary_display_slot": "Ranura de pantalla secundaria", - "create.crafting_blueprint.optional": "Opcional", - - "create.potato_cannon.ammo.attack_damage": "%1$s Daño de ataque", - "create.potato_cannon.ammo.reload_ticks": "%1$s Recarga por Ticks", - "create.potato_cannon.ammo.knockback": "%1$s Golpe de efecto", - - "create.hint.hose_pulley.title": "Suministro ilimitado", - "create.hint.hose_pulley": "La masa de fluido objetivo se considera infinita.", - "create.hint.mechanical_arm_no_targets.title": "Sin objetivos", - "create.hint.mechanical_arm_no_targets": "Parece que a este _brazo mecánico_ no se le ha asignado ningún objetivo. Selecciona _correas_, _depósitos_, _embudos_ y otros bloques haciendo clic derecho sobre ellos mientras _sostienes_ el _brazo mecánico_ en tu mano..", - "create.hint.empty_bearing.title": "Actualización del rodamiento", - "create.hint.empty_bearing": "Haz clic derecho sobre el rodamiento con la _mano vacía_ para _adjuntar_ la estructura que acabas de construir delante de él.", - "create.hint.full_deployer.title": "Exceso de objetos en el desplegador", - "create.hint.full_deployer": "Parece que este _desplegador_ contiene _exceso_ de objetos que necesitan ser _extraídos._ Usa una _tolva_, _embudo_ u otro medio para liberarlo de su excedente.", - - "create.gui.config.overlay1": "Hola :)", - "create.gui.config.overlay2": "Esta es una muestra de la superposición", - "create.gui.config.overlay3": "Haga clic o arrastre con el ratón", - "create.gui.config.overlay4": "para mover esta vista previa", - "create.gui.config.overlay5": "Pulsar ESC para salir de esta pantalla", - "create.gui.config.overlay6": "y guardar la nueva posición", - "create.gui.config.overlay7": "Ejecute /create overlay reset", - "create.gui.config.overlay8": "para restablecer la posición por defecto", - - "create.command.killTPSCommand": "killtps", - "create.command.killTPSCommand.status.slowed_by.0": "[Crear]: El tick del servidor está actualmente ralentizado en %s ms :o", - "create.command.killTPSCommand.status.slowed_by.1": "[Crear]: El tick del servidor está ralentizado en %s ms ahora >:)", - "create.command.killTPSCommand.status.slowed_by.2": "[Create]: El tick del servidor ha vuelto a su velocidad normal :D", - "create.command.killTPSCommand.status.usage.0": "[Create]: usa /killtps stop para que el servidor vuelva a la velocidad normal", - "create.command.killTPSCommand.status.usage.1": "[Create]: usa /killtps start para ralentizar artificialmente el tick del servidor", - "create.command.killTPSCommand.argument.tickTime": "tickTime", - - "create.contraption.minecart_contraption_too_big": "Este artilugio de vagoneta parece demasiado grande para recogerlo", - "create.contraption.minecart_contraption_illegal_pickup": "Una fuerza mística está atando este artilugio de vagoneta al mundo", - - - "_": "->------------------------] Subtitles [------------------------<-", - - "create.subtitle.contraption_disassemble": "", - "create.subtitle.peculiar_bell_use": "", - "create.subtitle.mixing": "", - "create.subtitle.mechanical_press_activation_belt": "", - "create.subtitle.fwoomp": "", - "create.subtitle.worldshaper_place": "", - "create.subtitle.crushing_1": "", - "create.subtitle.depot_slide": "", - "create.subtitle.saw_activate_stone": "", - "create.subtitle.blaze_munch": "", - "create.subtitle.funnel_flap": "", - "create.subtitle.schematicannon_finish": "", - "create.subtitle.haunted_bell_use": "", - "create.subtitle.scroll_value": "", - "create.subtitle.crafter_craft": "", - "create.subtitle.controller_put": "", - "create.subtitle.cranking": "", - "create.subtitle.wrench_remove": "", - "create.subtitle.cogs": "", - "create.subtitle.slime_added": "", - "create.subtitle.wrench_rotate": "", - "create.subtitle.potato_hit": "", - "create.subtitle.saw_activate_wood": "", - "create.subtitle.haunted_bell_convert": "", - "create.subtitle.deployer_polish": "", - "create.subtitle.deny": "", - "create.subtitle.controller_click": "", - "create.subtitle.schematicannon_launch_block": "", - "create.subtitle.copper_armor_equip": "", - "create.subtitle.controller_take": "Lectern empties", - "create.subtitle.mechanical_press_activation": "", - "create.subtitle.contraption_assemble": "", - "create.subtitle.crafter_click": "", - "create.subtitle.depot_plop": "", - "create.subtitle.confirm": "", - - - "_": "->------------------------] Item Descriptions [------------------------<-", - - "item.create.example_item.tooltip": "EJEMPLO DE ITEM (sólo un marcador de que este tooltip existe)", - "item.create.example_item.tooltip.summary": "Una breve descripción del elemento. Los puntajes bajos resaltan un término", - "item.create.example_item.tooltip.condition1": "Cuando este", - "item.create.example_item.tooltip.behaviour1": "Entonces este elemento hace esto. (los comportamientos se muestran en el turno)", - "item.create.example_item.tooltip.condition2": "Y cuando esto", - "item.create.example_item.tooltip.behaviour2": "Puedes añadir tantos comportamientos como quieras", - "item.create.example_item.tooltip.control1": "Cuando se pulsa [Ctrl]", - "item.create.example_item.tooltip.action1": "Se muestran estos controles", - - "block.create.wooden_bracket.tooltip": "SOPORTE DE MADERA PARA EJES", - "block.create.wooden_bracket.tooltip.summary": "Decora tus _ejes_, _engranajes_ y _ductos_ con un acogedor refuerzo de madera.", - - "block.create.metal_bracket.tooltip": "SOPORTE DE METAL PARA EJES", - "block.create.metal_bracket.tooltip.summary": "Decora tus _ejes_, _engranajes_ y _ductos_ con un poco de robusto refuerzo industrial.", - - "block.create.seat.tooltip": "ASIENTO", - "block.create.seat.tooltip.summary": "¡Siéntate y disfruta del viaje! Anclará a un jugador en un artilugio en movimiento. También es ideal para muebles estáticos. Viene en una variedad de colores.", - "block.create.seat.tooltip.condition1": "Cuando se hace clic derecho en el asiento", - "block.create.seat.tooltip.behaviour1": "Sienta al jugador en el _asiento_. Pulsa Mayús izdo para dejar el asiento.", - - "item.create.blaze_cake.tooltip": "PASTEL DE BLAZE", - "item.create.blaze_cake.tooltip.summary": "Un delicioso regalo para sus esforzados _quemadores de blaze_. ¡Los pone en marcha!.", - - "item.create.wand_of_symmetry.tooltip": "VARITA DE SIMETRÍA", - "item.create.wand_of_symmetry.tooltip.summary": "Refleja perfectamente la colocación de bloques en los planos configurados.", - "item.create.wand_of_symmetry.tooltip.condition1": "Mientras está en el inventario rápido", - "item.create.wand_of_symmetry.tooltip.behaviour1": "Permanece activo.", - "item.create.wand_of_symmetry.tooltip.control1": "Cuando se hace clic derecho en el suelo", - "item.create.wand_of_symmetry.tooltip.action1": "_Crea_ o _mueve_ el espejo.", - "item.create.wand_of_symmetry.tooltip.control2": "Cuando se hace clic derecho en el aire", - "item.create.wand_of_symmetry.tooltip.action2": "_Quita_ el espejo activo.", - "item.create.wand_of_symmetry.tooltip.control3": "Mayús izdo + clic derecho", - "item.create.wand_of_symmetry.tooltip.action3": "Abre la interfaz de configuración.", - - "item.create.handheld_worldshaper.tooltip": "WORLDSHAPER", - "item.create.handheld_worldshaper.tooltip.summary": "Práctica herramienta para crear _paisajes_ y _características del terreno_.", - "item.create.handheld_worldshaper.tooltip.control1": "Cuando se hace clic izquierdo en un bloque", - "item.create.handheld_worldshaper.tooltip.action1": "Establece los bloques colocados por la herramienta en el bloque objetivo.", - "item.create.handheld_worldshaper.tooltip.control2": "Cuando se hace clic derecho en un bloque", - "item.create.handheld_worldshaper.tooltip.action2": "Aplica el _pincel_ y la _herramienta_ actualmente seleccionadas en el lugar deseado.", - "item.create.handheld_worldshaper.tooltip.control3": "Mayús izdo + clic derecho", - "item.create.handheld_worldshaper.tooltip.action3": "Abre la interfaz de configuración.", - - "item.create.tree_fertilizer.tooltip": "FERTILIZANTE PARA ÁRBOLES", - "item.create.tree_fertilizer.tooltip.summary": "Una potente combinación de minerales adecuada para acelerar el crecimiento de los tipos de árboles más comunes.", - "item.create.tree_fertilizer.tooltip.condition1": "Cuando se utiliza en un árbol joven", - "item.create.tree_fertilizer.tooltip.behaviour1": "Hace crecer los árboles _independientemente_ de sus condiciones de _espacio_.", - - "item.create.extendo_grip.tooltip": "AGARRE EXTENDIDO", - "item.create.extendo_grip.tooltip.summary": "¡Boioioing! Aumenta enormemente la _distancia de alcance_ del portador. Se puede alimentar con la presión de aire de un _depósito trasero de cobre_", - "item.create.extendo_grip.tooltip.condition1": "Cuando está fuera de la mano", - "item.create.extendo_grip.tooltip.behaviour1": "Aumenta la _distancia de alcance_ de los objetos usados en la _mano principal_.", - "item.create.extendo_grip.tooltip.condition2": "Mientras se usa un depósito trasero de cobre", - "item.create.extendo_grip.tooltip.behaviour2": "No se utilizará _durabilidad_. En su lugar, la _presión del aire_ se drena desde el tanque", - - "item.create.potato_cannon.tooltip": "CANÓN DE PATATAS", - "item.create.potato_cannon.tooltip.summary": "Fwoomp! Lanza tus verduras caseras a tus enemigos. Se puede alimentar con la presión de aire de un _depósito trasero de cobre_", - "item.create.potato_cannon.tooltip.condition1": "Cuando se usa clic derecho", - "item.create.potato_cannon.tooltip.behaviour1": "_Dispara_ un objeto adecuado desde tu inventario_.", - "item.create.potato_cannon.tooltip.condition2": "Mientras se usa un depósito trasero de cobre", - "item.create.potato_cannon.tooltip.behaviour2": "No se utilizará _durabilidad_. En su lugar, la _presión del aire_ se drena desde el tanque", - - "item.create.filter.tooltip": "FILTRO", - "item.create.filter.tooltip.summary": "Controla las _salidas_ y _entradas_ de los _dispositivos logísticos_ con más precisión, comparándolas con un _conjunto de objetos_ o varios _filtros anidados_.", - "item.create.filter.tooltip.condition1": "Cuando está en la ranura de filtros", - "item.create.filter.tooltip.behaviour1": "Controla el flujo de objetos según su _configuración_.", - "item.create.filter.tooltip.condition2": "Cuando se hace clic derecho", - "item.create.filter.tooltip.behaviour2": "Abre la interfaz de configuración.", - - "item.create.attribute_filter.tooltip": "FILTRO DE ATRIBUTOS", - "item.create.attribute_filter.tooltip.summary": "Controla las _salidas_ y las _entradas_ de los _dispositivos logísticos_ con más precisión, comparándolas con un _conjunto de atributos_ y _categorías_ de objetos.", - "item.create.attribute_filter.tooltip.condition1": "Cuando está en la ranura de filtros", - "item.create.attribute_filter.tooltip.behaviour1": "Controla el flujo de objetos según su _configuración_.", - "item.create.attribute_filter.tooltip.condition2": "Cuando se hace clic derecho", - "item.create.attribute_filter.tooltip.behaviour2": "Abre la interfaz de configuración.", - - "item.create.empty_schematic.tooltip": "ESQUEMA VACÍO", - "item.create.empty_schematic.tooltip.summary": "Se utiliza como 'ingrediente' de las recetas y para escribir en la _tabla de esquemas_.", - - "item.create.schematic.tooltip": "ESQUEMA", - "item.create.schematic.tooltip.summary": "Contiene una estructura para ser posicionada y colocada en el mundo. Posiciona el holograma como desees y utiliza un _cañón de esquemas_ para construirla.", - "item.create.schematic.tooltip.condition1": "Cuando se sostiene en la mano", - "item.create.schematic.tooltip.behaviour1": "Se puede posicionar utilizando las herramientas en pantalla.", - "item.create.schematic.tooltip.control1": "Mayús izdo + clic derecho", - "item.create.schematic.tooltip.action1": "Abre una _interfaz_ para introducir las _coordenadas_ exactas.", - - "item.create.schematic_and_quill.tooltip": "ESQUEMA Y PLUMA", - "item.create.schematic_and_quill.tooltip.summary": "Se utiliza para guardar una estructura de tu mundo en un archivo .nbt.", - "item.create.schematic_and_quill.tooltip.condition1": "Paso 1", - "item.create.schematic_and_quill.tooltip.behaviour1": "Selecciona dos puntos de esquina usando clic derecho.", - "item.create.schematic_and_quill.tooltip.condition2": "Paso 2", - "item.create.schematic_and_quill.tooltip.behaviour2": "[Ctrl] + [RUEDA DEL RATÓN] en las caras para ajustar el tamaño. Clic derecho de nuevo para guardar.", - "item.create.schematic_and_quill.tooltip.control1": "Cuando se hace clic derecho", - "item.create.schematic_and_quill.tooltip.action1": "Selecciona un punto de esquina / confirmar guardar.", - "item.create.schematic_and_quill.tooltip.control2": "Cuando mantiene [Ctrl]", - "item.create.schematic_and_quill.tooltip.action2": "Selecciona puntos en _medio del aire_. Rueda del ratón para ajustar la distancia.", - "item.create.schematic_and_quill.tooltip.control3": "Mayús izdo + clic derecho", - "item.create.schematic_and_quill.tooltip.action3": "_Reinicia_ y elimina la selección.", - - "block.create.schematicannon.tooltip": "CAÑÓN DE ESQUEMAS", - "block.create.schematicannon.tooltip.summary": "Dispara bloques para recrear un _esquema_ desplegado en el mundo. Utiliza objetos de los inventarios adyacentes y _pólvora_ como combustible.", - "block.create.schematicannon.tooltip.condition1": "Cuando se hace clic derecho", - "block.create.schematicannon.tooltip.behaviour1": "Abre la interfaz.", - - "block.create.schematic_table.tooltip": "TABLA DE ESQUEMAS", - "block.create.schematic_table.tooltip.summary": "Escribe los esquemas guardados en un _esquema vacío_.", - "block.create.schematic_table.tooltip.condition1": "Cuando se da un esquema vacío", - "block.create.schematic_table.tooltip.behaviour1": "Carga un archivo elegido de la carpeta de esquemas.", - - "item.create.goggles.tooltip": "GAFAS DEL CONSTRUCTOR", - "item.create.goggles.tooltip.summary": "Un par de gafas para aumentar tu visión con útil información _cinética_.", - "item.create.goggles.tooltip.condition1": "Cuando se llevan puestas", - "item.create.goggles.tooltip.behaviour1": "Muestra _indicadores de color_ correspondientes al _nivel de velocidad_ de un componente cinético colocado, así como el _impacto de estrés_ y la _carga_ de los componentes individuales.", - "item.create.goggles.tooltip.condition2": "Al mirar un medidor", - "item.create.goggles.tooltip.behaviour2": "Muestra información detallada sobre _velocidad_ o _estrés_ de la red a la que está conectado el medidor.", - "item.create.goggles.tooltip.condition3": "Al mirar un contenedor de fluidos", - "item.create.goggles.tooltip.behaviour3": "Muestra información detallada sobre la _carga_ del bloque y los _líquidos_ almacenados en su interior.", - - "item.create.wrench.tooltip": "LLAVE INGLESA", - "item.create.wrench.tooltip.summary": "Una herramienta útil para trabajar en artilugios cinéticos. Se puede utilizar para _rotar_, _desmantelar_ y para _configurar_ componentes.", - "item.create.wrench.tooltip.control1": "Cuando se hace clic derecho en un bloque cinético", - "item.create.wrench.tooltip.action1": "Rota los componentes hacia o desde la cara con la que ha interactuado.", - "item.create.wrench.tooltip.control2": "Mayús izdo + clic derecho", - "item.create.wrench.tooltip.action2": "Desmonta los _componentes cinéticos_ y los devuelve a tu inventario_.", - - "block.create.nozzle.tooltip": "BOQUILLA", - "block.create.nozzle.tooltip.summary": "Se acopla a la parte delantera de un _ventilador revestido_ para distribuir su efecto sobre las entidades en _todas las direcciones_.", - - "block.create.cuckoo_clock.tooltip": "RELOJ DE CUCO", - "block.create.cuckoo_clock.tooltip.summary": "Fina artesanía para decorar un espacio y contar el tiempo.", - "block.create.cuckoo_clock.tooltip.condition1": "Cuando es alimentado por cinética", - "block.create.cuckoo_clock.tooltip.behaviour1": "Muestra la _hora actual_ y toca una melodía dos veces al día. Se activa una vez al mediodía y al anochecer, _en cuanto los jugadores pueden dormir_.", - - "block.create.turntable.tooltip": "PLATAFORMA GIRATORIA", - "block.create.turntable.tooltip.summary": "Convierte la _fuerza rotacional_ en un refinado mareo.", - - "block.create.stockpile_switch.tooltip": "INTERRUPTOR DE ACOPIO", - "block.create.stockpile_switch.tooltip.summary": "Activa una señal de redstone en función de la cantidad de _objetos almacenados_ en el _contenedor_ adjunto. Viene con un práctico filtro. A diferencia de un _comparador, el _interruptor de acopio_ permite la configuración de _umbrales_, a partir de los cuales se invierten las señales.", - "block.create.stockpile_switch.tooltip.condition1": "Cuando se hace clic derecho", - "block.create.stockpile_switch.tooltip.behaviour1": "Abre la interfaz de configuración.", - - "block.create.content_observer.tooltip": "OBSERVADOR DE CONTENIDO", - "block.create.content_observer.tooltip.summary": "_Detecta objetos_ dentro de _contenedores_ y _transportadores_ que coincidan con un _filtro_ configurado. Mientras el _inventario_, la _cinta_ o la _canaleta_ observados _contengan_ un objeto que coincida, este componente emitirá una _señal de redstone_. Cuando un embudo observado _transfiere_ un objeto coincidente, este componente emitirá un _pulso de redstone_.", - - "block.create.adjustable_crate.tooltip": "CAJA AJUSTABLE", - "block.create.adjustable_crate.tooltip.summary": "Este _contenedor de objetos_ permite el control manual de su capacidad. Puede contener hasta _16 pilas_ de cualquier objeto. Soporta _comparadores de redstone_.", - "block.create.adjustable_crate.tooltip.condition1": "Cuando se hace clic derecho", - "block.create.adjustable_crate.tooltip.behaviour1": "Abre la interfaz.", - - "block.create.creative_crate.tooltip": "CAJA CREATIVA", - "block.create.creative_crate.tooltip.summary": "Este _contenedor de objetos_ permite la replicación infinita de cualquier elemento. Colócalo junto a un _cañón de esquemas_ para eliminar cualquier requisito de material.", - "block.create.creative_crate.tooltip.condition1": "Cuando el elemento está en la ranura para filtros", - "block.create.creative_crate.tooltip.behaviour1": "Todo lo que se _extraiga_ de este contenedor proporcionará un suministro _ilimitado_ del elemento especificado. Los objetos _insertados_ en esta caja serán _evitados_.", - - "item.create.creative_blaze_cake.tooltip": "PASTEL CREATIVO", - "item.create.creative_blaze_cake.tooltip.summary": "Un regalo muy especial para los _Quemadores de Blaze_ que permite _controlar su nivel de calor_. Después de comer este pastel, los Quemadores de blaze _nunca se quedarán sin combustible_.", - "item.create.creative_blaze_cake.tooltip.condition1": "Click derecho en un Quemador de blaze", - "item.create.creative_blaze_cake.tooltip.behaviour1": "Bloquea el nivel de calor del Quemador de blaze. Si se utiliza de nuevo, _cicla_ el nivel de calor del Quemador de blaze.", - - "block.create.controller_rail.tooltip": "RAÍL DE CONTROL", - "block.create.controller_rail.tooltip.summary": "Un raíl energizado _unidireccional_ capaz de _controlar con precisión_ la _velocidad de movimiento_ de una vagoneta.", - "block.create.controller_rail.tooltip.condition1": "Cuando es alimentado con redstone", - "block.create.controller_rail.tooltip.behaviour1": "_Acelera_ o _desacelera_ pasando _vagonetas_ correspondientes a la _fuerza de la señal_. Propaga la energía de redstone a los raíles de control adyacentes. Al alimentar dos raíles de control con diferentes intensidades, los carriles entre ellos interpolarán su señal.", - - "item.create.sand_paper.tooltip": "PAPEL DE LIJA", - "item.create.sand_paper.tooltip.summary": "Un papel rugoso que se puede utilizar para _pulir materiales_. Se puede aplicar automáticamente con el _desplegador_.", - "item.create.sand_paper.tooltip.condition1": "Cuando se usa", - "item.create.sand_paper.tooltip.behaviour1": "Aplica un pulido a los objetos sostenidos en la _mano libre_ o tirados en el _suelo_ cuando se _miran_.", - - "item.create.builders_tea.tooltip": "TÉ DEL CONSTRUCTOR", - "item.create.builders_tea.tooltip.summary": "La bebida perfecta para empezar el día. Motivante y saturante.", - - "item.create.refined_radiance.tooltip": "RESPLANDOR REFINADO", - "item.create.refined_radiance.tooltip.summary": "Un material cromático forjado a partir de la _luz absorbida_.", - "item.create.refined_radiance.tooltip.condition1": "Trabajo en progreso", - "item.create.refined_radiance.tooltip.behaviour1": "Los usos para este material estarán disponibles en un próximo lanzamiento.", - - "item.create.shadow_steel.tooltip": "ACERO SOMBRÍO", - "item.create.shadow_steel.tooltip.summary": "Un material cromático forjado en el _vacío_.", - "item.create.shadow_steel.tooltip.condition1": "Trabajo en curso", - "item.create.shadow_steel.tooltip.behaviour1": "Los usos de este material estarán disponibles en una futura versión.", - - "item.create.linked_controller.tooltip": "CONTROLADOR ENLAZADO", - "item.create.linked_controller.tooltip.summary": "Permite el control manual de las frecuencias de _enlaces de redstone_ asignadas a sus seis botones.", - "item.create.linked_controller.tooltip.condition1": "Al hacer clic derecho", - "item.create.linked_controller.tooltip.behaviour1": "Activa el _controlador_. Los _controles de movimiento_ se adquieren mientras está activo.", - "item.create.linked_controller.tooltip.condition2": "Al usar Mayús izdo + clic derecho", - "item.create.linked_controller.tooltip.behaviour2": "Abre la interfaz de configuración manual.", - "item.create.linked_controller.tooltip.condition3": "Al usar clic derecho en un receptor de enlaces de redstone", - "item.create.linked_controller.tooltip.behaviour3": "Activa el _modo de vinculación_, pulsa uno de los _seis controles_ para vincularlo a la _frecuencia de los enlaces_.", - "item.create.linked_controller.tooltip.condition4": "Clic derecho en un atril", - "item.create.linked_controller.tooltip.behaviour4": "Coloca el controlador en el atril para facilitar su activación. (Clic derecho + mayús izq. para recuperarlo)", - - "item.create.diving_helmet.tooltip": "CASCO DE BUCEO", - "item.create.diving_helmet.tooltip.summary": "Junto con un _depósito trasero de cobre_, permite que el usuario pueda respirar bajo el agua durante un tiempo prolongado.", - "item.create.diving_helmet.tooltip.condition1": "Cuando se lleva puesto", - "item.create.diving_helmet.tooltip.behaviour1": "Proporciona el efecto de _respiración acuática_, drenando lentamente la presión de aire del _depósito trasero_.", - - "item.create.copper_backtank.tooltip": "DEPÓSITO TRASERO DE COBRE", - "item.create.copper_backtank.tooltip.summary": "Un tanque portátil para transportar _aire presurizado_.", - "item.create.copper_backtank.tooltip.condition1": "Cuando se lleva puesto", - "item.create.copper_backtank.tooltip.behaviour1": "Proporciona _aire presurizado_ a los equipos que lo requieran.", - "item.create.copper_backtank.tooltip.condition2": "Cuando se coloca y es alimentado por cinética", - "item.create.copper_backtank.tooltip.behaviour2": "Recoge _aire presurizado_ a un ritmo que depende de la velocidad rotacional.", - - "item.create.diving_boots.tooltip": "BOTAS DE BUCEO", - "item.create.diving_boots.tooltip.summary": "Un par de _botas_ pesadas, que permiten atravesar mejor el suelo del océano.", - "item.create.diving_boots.tooltip.condition1": "Cuando se llevan puestas", - "item.create.diving_boots.tooltip.behaviour1": "El portador se hunde rápido y no puede nadar. Concede la capacidad de caminar y saltar bajo el agua. Al portador no le afectarán las _correas mecánicas.", - - "item.create.crafting_blueprint.tooltip": "PLANO DE ELABORACIÓN", - "item.create.crafting_blueprint.tooltip.summary": "Colocado en una pared, puede utilizarse para especificar la disposición de los ingredientes para facilitar la elaboración manual. Cada ranura representa una receta", - "item.create.crafting_blueprint.condition1": "Al hacer clic derecho en una ranura vacía", - "item.create.crafting_blueprint.behaviour1": "Abre un menú que permite configurar una receta y los objetos a mostrar.", - "item.create.crafting_blueprint.condition2": "Al hacer clic derecho en una ranura configurada", - "item.create.crafting_blueprint.behaviour2": "Aplica la receta configurada con los ingredientes que se encuentran en tu inventario. Se puede utilizar para fabricar hasta una pila de objetos.", - - "item.create.minecart_coupling.tooltip": "ENSAMBLADOR DE VAGONETAS", - "item.create.minecart_coupling.tooltip.summary": "_Encadena_ todas tus _vagonetas_ o _artilugios de vagoneta_ para formar un majestuoso _tren_.", - "item.create.minecart_coupling.tooltip.condition1": "Cuando se utiliza en vagonetas", - "item.create.minecart_coupling.tooltip.behaviour1": "_Acopla_ dos vagonetas, intentando mantenerlas a una _distancia constante_ mientras se mueven.", - - "block.create.peculiar_bell.tooltip": "CAMPANA PECULIAR", - "block.create.peculiar_bell.tooltip.summary": "Una campana decorativa de latón. Al colocarla sobre un _Fuego del alma_ o una _Fogata del alma_ puede producirse una transformación espeluznante...", - - "block.create.haunted_bell.tooltip": "CAMPANA ENCANTADA", - "block.create.haunted_bell.tooltip.summary": "Una _campana maldita_ perseguida por las almas perdidas del Nether", - "block.create.haunted_bell.tooltip.condition1": "Cuando se sostiene o suena", - "block.create.haunted_bell.tooltip.behaviour1": "Resalta los _puntos sin luz_ cercanos en los que pueden aparecer las _criaturas hostiles_.", - - - "_": "->------------------------] Ponder Content [------------------------<-", - - "create.ponder.hold_to_ponder": "Mantén [%1$s] para considerar", - "create.ponder.subject": "Tema de esta escena", - "create.ponder.pondering": "Considerando sobre...", - "create.ponder.identify_mode": "Identificando modo activo.\nDespausea con [%1$s]", - "create.ponder.associated": "Entradas asociadas", - "create.ponder.close": "Cerrar", - "create.ponder.identify": "Identificar", - "create.ponder.next": "Escena siguiente", - "create.ponder.previous": "Escena previa", - "create.ponder.replay": "Repetición", - "create.ponder.think_back": "Volver atrás", - "create.ponder.slow_text": "Lectura cómoda", - "create.ponder.exit": "Salir", - "create.ponder.welcome": "Bienvenido al instructivo de Create", - "create.ponder.categories": "Categorías disponibles", - "create.ponder.index_description": "Haga clic en uno de los iconos para conocer sus objetos y bloques asociados", - "create.ponder.index_title": "Índice", - "create.ponder.shared.rpm16": "16 RPM", - "create.ponder.shared.behaviour_modify_wrench": "Este comportamiento puede modificarse mediante una llave inglesa", - "create.ponder.shared.storage_on_contraption": "Los inventarios unidos al artilugio recogerán sus producciones automáticamente", - "create.ponder.shared.sneak_and": "Mayús izdo. +", - "create.ponder.shared.rpm8": "8 RPM", - "create.ponder.shared.ctrl_and": "Ctrl +", - "create.ponder.shared.rpm32": "32 RPM", - "create.ponder.shared.rpm16_source": "Fuente: 16 RPM", - "create.ponder.shared.movement_anchors": "Con la ayuda de un chasis o pegamento, se pueden mover estructuras más grandes.", - "create.ponder.tag.redstone": "Componentes lógicos", - "create.ponder.tag.redstone.description": "Componentes que ayudan a la ingeniería de redstone", - "create.ponder.tag.contraption_assembly": "Utilidades para adjuntar bloques", - "create.ponder.tag.contraption_assembly.description": "Herramientas y componentes utilizados para montar estructuras con movimiento, como un artilugio animado", - "create.ponder.tag.fluids": "Manipuladores de fluidos", - "create.ponder.tag.fluids.description": "Componentes que ayudan a transportar y utilizar fluidos", - "create.ponder.tag.decoration": "Estética", - "create.ponder.tag.decoration.description": "Componentes utilizados principalmente con fines decorativos", - "create.ponder.tag.windmill_sails": "Velas para los rodamientos de los molinos de viento", - "create.ponder.tag.windmill_sails.description": "Bloques que cuentan para la fuerza de un artefacto de molino de viento cuando se ensamblan. Cada uno de ellos tiene la misma eficacia al hacerlo.", - "create.ponder.tag.arm_targets": "Objetivos para los brazos mecánicos", - "create.ponder.tag.arm_targets.description": "Componentes que pueden seleccionarse como entradas o salidas del brazo mecánico", - "create.ponder.tag.kinetic_appliances": "Dispositivos cinéticos", - "create.ponder.tag.kinetic_appliances.description": "Componentes que utilizan la fuerza rotacional", - "create.ponder.tag.kinetic_sources": "Fuentes cinéticas", - "create.ponder.tag.kinetic_sources.description": "Componentes que generan fuerza rotacional", - "create.ponder.tag.movement_anchor": "Anclas de movimiento", - "create.ponder.tag.movement_anchor.description": "Componentes que permiten crear artilugios en movimiento, animando una estructura anexa de diversas maneras", - "create.ponder.tag.kinetic_relays": "Transmisores cinéticos", - "create.ponder.tag.kinetic_relays.description": "Componentes que ayudan a transmitir la fuerza rotacional en otro lugar", - "create.ponder.tag.contraption_actor": "Actores del artilugio", - "create.ponder.tag.contraption_actor.description": "Componentes que exponen un comportamiento especial cuando están unidos a un artilugio en movimiento", - "create.ponder.tag.creative": "Modo creativo", - "create.ponder.tag.creative.description": "Componentes que no suelen estar disponibles para el Modo Supervivencia", - "create.ponder.tag.logistics": "Transporte de objetos", - "create.ponder.tag.logistics.description": "Componentes que ayudan a desplazar los objetos", - - "create.ponder.adjustable_pulse_repeater.header": "Controlar señales mediante repetidores de pulsos ajustables", - "create.ponder.adjustable_pulse_repeater.text_1": "Los repetidores de pulsos ajustables emiten un pulso corto con un retardo", - "create.ponder.adjustable_pulse_repeater.text_2": "Con la rueda del ratón se puede configurar el tiempo de carga", - "create.ponder.adjustable_pulse_repeater.text_3": "Los retrasos configurados pueden ser de hasta 30 minutos", - - "create.ponder.adjustable_repeater.header": "Controlar señales mediante repetidores ajustables", - "create.ponder.adjustable_repeater.text_1": "Los repetidores ajustables se comportan de forma similar a los repetidores normales", - "create.ponder.adjustable_repeater.text_2": "Se cargan durante un tiempo determinado...", - "create.ponder.adjustable_repeater.text_3": "...y se enfrían durante el mismo tiempo", - "create.ponder.adjustable_repeater.text_4": "Con la rueda del ratón se puede configurar el tiempo de carga", - "create.ponder.adjustable_repeater.text_5": "Los retrasos configurados pueden variar hasta 30 minutos", - - "create.ponder.analog_lever.header": "Controlar señales mediante la palanca analógica", - "create.ponder.analog_lever.text_1": "Las palancas analógicas son una fuente compacta y precisa de energía de redstone", - "create.ponder.analog_lever.text_2": "Haz clic derecho para aumentar su potencia analógica", - "create.ponder.analog_lever.text_3": "Usa Mayús izdo + clic derecho para volver a disminuir su potencia", - - "create.ponder.andesite_tunnel.header": "Usar túneles de andesita", - "create.ponder.andesite_tunnel.text_1": "Los túneles de andesita se pueden utilizar para tapar las correas", - "create.ponder.andesite_tunnel.text_2": "Siempre que un túnel de andesita tenga conexiones a los lados...", - "create.ponder.andesite_tunnel.text_3": "...dividirá exactamente un elemento de cualquier pila que pase", - "create.ponder.andesite_tunnel.text_4": "El resto continuará su camino", - - "create.ponder.basin.header": "Procesar objetos en la cuenca", - "create.ponder.basin.text_1": "Una cuenca puede contener objetos y fluidos para su procesamiento", - "create.ponder.basin.text_2": "Después de un paso de procesamamiento, las cuencas intentan descargar por debajo a un lado de ellas", - "create.ponder.basin.text_3": "Cuando un ingrediente válido está presente, la cuenca mostrará un conducto de salida", - "create.ponder.basin.text_4": "Aquí se pueden aplicar varias opciones", - "create.ponder.basin.text_5": "Las salidas serán capturadas por el inventario que está por debajo", - "create.ponder.basin.text_6": "Sin conducto de salida, la cuenca retendrá los objetos creados en su procesamiento", - "create.ponder.basin.text_7": "Esto puede ser útil si las salidas deben ser reutilizadas como ingredientes", - "create.ponder.basin.text_8": "Las salidas deseadas tendrán que ser extraídas de la cuenca", - "create.ponder.basin.text_9": "Podría ser necesario un filtro para evitar sacar los objetos no procesados", - - "create.ponder.bearing_modes.header": "Modos de movimiento del rodamiento mecánico", - "create.ponder.bearing_modes.text_1": "Cuando se detenga, el rodamiento mecánico colocará la estructura en el ángulo más cercano alineado con la cuadrícula", - "create.ponder.bearing_modes.text_2": "Se puede configurar para que nunca vuelva a los bloques sólidos, o sólo cerca del ángulo en el que comenzó", - - "create.ponder.belt_casing.header": "Correas revestidas", - "create.ponder.belt_casing.text_1": "Se puede utilizar revestidor de latón o andesita para decorar las correas", - "create.ponder.belt_casing.text_2": "Se puede utilizar una llave inglesa para quitar el revestimiento", - - "create.ponder.belt_connector.header": "El uso de las correas mecánicas", - "create.ponder.belt_connector.text_1": "Al hacer clic derecho en dos ejes con una correa mecánica se conectarán entre sí", - "create.ponder.belt_connector.text_2": "Las selecciones accidentales pueden ser canceladas con Mayús izdo + clic derecho", - "create.ponder.belt_connector.text_3": "Se pueden añadir ejes adicionales en toda la correa", - "create.ponder.belt_connector.text_4": "Los ejes conectados a través de correas girarán con velocidad y dirección idénticas", - "create.ponder.belt_connector.text_5": "Los ejes añadidos se pueden quitar con la llave inglesa", - "create.ponder.belt_connector.text_6": "Las correas mecánicas se pueden teñir con fines estéticos", - - "create.ponder.belt_directions.header": "Orientaciones válidas para las correas mecánicas", - "create.ponder.belt_directions.text_1": "Las correas mecánicas no pueden conectarse en direcciones arbitrarias", - "create.ponder.belt_directions.text_2": "1. Pueden conectarse horizontalmente", - "create.ponder.belt_directions.text_3": "2. Pueden conectarse en diagonal", - "create.ponder.belt_directions.text_4": "3. Pueden conectarse verticalmente", - "create.ponder.belt_directions.text_5": "4. Y pueden conectar ejes verticales horizontalmente", - "create.ponder.belt_directions.text_6": "Estas son todas las direcciones posibles. Pueden abarcar cualquier longitud entre 2 y 20 bloques", - - "create.ponder.belt_transport.header": "El uso de las correas mecánicas para la logística", - "create.ponder.belt_transport.text_1": "Las correas mecánicas transportan objetos y otras entidades", - "create.ponder.belt_transport.text_2": "Haz clic derecho con la mano vacía para sacar objetos de una 'cinta'", - - "create.ponder.blaze_burner.header": "Alimentar quemadores de blaze", - "create.ponder.blaze_burner.text_1": "Los quemadores de blaze pueden proporcionar calor a los objetos procesados en una cuenca", - "create.ponder.blaze_burner.text_2": "Para ello, el blaze tiene que ser alimentado con objetos inflamables", - "create.ponder.blaze_burner.text_3": "Con un pastel de blaze, el quemador puede alcanzar un mayor nivel de calor", - "create.ponder.blaze_burner.text_4": "El proceso de alimentación puede automatizarse utilizando desplegadores o brazos mecánicos", - - "create.ponder.brass_funnel.header": "El embudo de latón", - "create.ponder.brass_funnel.text_1": "Los embudos de andesita sólo pueden extraer objetos individuales", - "create.ponder.brass_funnel.text_2": "Los embudos de latón pueden extraer hasta una pila completa", - "create.ponder.brass_funnel.text_3": "Usar la rueda de desplazamiento del ratón en la ranura para filtros permite un control preciso del tamaño de la pila extraída.", - "create.ponder.brass_funnel.text_4": "El uso de objetos en la ranura de filtrado restringirá el embudo para transferir sólo las pilas que coincidan.", - - "create.ponder.brass_tunnel.header": "Usar túneles de latón", - "create.ponder.brass_tunnel.text_1": "Los túneles de latón pueden utilizarse para tapar las correas", - "create.ponder.brass_tunnel.text_2": "Tienen ranuras de filtro en cada lado abierto", - "create.ponder.brass_tunnel.text_3": "Los filtros en las conexiones de entrada simplemente bloquean los objetos que no coincidan", - "create.ponder.brass_tunnel.text_4": "Los filtros en las conexiones de salida pueden utilizarse para ordenar los objetos por tipo", - "create.ponder.brass_tunnel.text_5": "Siempre que un objeto de paso tenga múltiples salidas válidas, el modo de distribución decidirá cómo manejarlo", - "create.ponder.brass_tunnel.text_6": "Los túneles de latón en bandas paralelas formarán un grupo", - "create.ponder.brass_tunnel.text_7": "Los objetos entrantes se distribuirán ahora por todas las salidas conectadas", - "create.ponder.brass_tunnel.text_8": "Para ello, los objetos también pueden insertarse en el bloque del túnel directamente", - - "create.ponder.brass_tunnel_modes.header": "Modos de distribución del túnel de latón", - "create.ponder.brass_tunnel_modes.text_1": "Mediante una llave inglesa se puede configurar el comportamiento de distribución de los túneles de latón", - "create.ponder.brass_tunnel_modes.text_10": "'Sincronizar entradas' es una configuración única de los túneles de latón", - "create.ponder.brass_tunnel_modes.text_11": "Las entradas sólo pueden pasar si cada túnel del grupo tiene una en espera", - "create.ponder.brass_tunnel_modes.text_12": "Esto asegura que todas las correas afectadas suministren objetos al mismo tiempo", - "create.ponder.brass_tunnel_modes.text_2": "El modo División intentará distribuir la pila uniformemente entre las salidas disponibles", - "create.ponder.brass_tunnel_modes.text_3": "Si una salida no puede tomar más objetos, se saltará", - "create.ponder.brass_tunnel_modes.text_4": "El modo División forzada nunca saltará las salidas, y en su lugar esperará hasta que estén libres", - "create.ponder.brass_tunnel_modes.text_5": "El modo Round Robin mantiene las pilas enteras, y recorre las salidas de forma iterativa", - "create.ponder.brass_tunnel_modes.text_6": "Una vez más, si una salida no puede aceptar más objetos, se saltará", - "create.ponder.brass_tunnel_modes.text_7": "El modo Round Robin forzado nunca omite salidas", - "create.ponder.brass_tunnel_modes.text_8": "El modo Preferir el más cercano prioriza las salidas más cercanas a la ubicación de entrada de los objetos", - "create.ponder.brass_tunnel_modes.text_9": "El modo Aleatorizar distribuirá pilas enteras a salidas elegidas al azar", - - "create.ponder.cart_assembler.header": "Mover estructuras usando ensambladores de vagonetas", - "create.ponder.cart_assembler.text_1": "Los ensambladores de vagonetas montan estructuras adjuntas a las vagonetas que pasan", - "create.ponder.cart_assembler.text_2": "Sin una señal de redstone, desmonta los artilugios de vagoneta que pasan de nuevo en bloques", - "create.ponder.cart_assembler.text_3": "El uso de una llave inglesa en una vagoneta te permitirá llevar el artilugio a otro lugar", - - "create.ponder.cart_assembler_dual.header": "Ensamblajes de artilugios de vagoneta", - "create.ponder.cart_assembler_dual.text_1": "Siempre que dos ensambladores de vagoneta compartan una estructura adjunta...", - "create.ponder.cart_assembler_dual.text_2": "...al alimentar a cualquiera de ellos se creará un artilugio de vagoneta", - "create.ponder.cart_assembler_dual.text_3": "Las vagonetas se comportarán como las conectadas a través del acoplamiento de vagoneta", - - "create.ponder.cart_assembler_modes.header": "Configurar la orientación de los artilugios de vagonetas", - "create.ponder.cart_assembler_modes.text_1": "Los artilugios de vagonetas girarán para orientarse hacia el movimiento de sus vagonetas", - "create.ponder.cart_assembler_modes.text_2": "Esta flecha indica qué lado de la estructura se considerará la parte delantera", - "create.ponder.cart_assembler_modes.text_3": "Si el ensamblador está configurado para bloquear la rotación, la orientación de los artilugios nunca cambiará", - - "create.ponder.cart_assembler_rails.header": "Otros tipos de vagonetas y raíles", - "create.ponder.cart_assembler_rails.text_1": "Los ensambladores de vagonetas en raíles normales no afectarán el movimiento de las vagonetas que pasen", - "create.ponder.cart_assembler_rails.text_2": "Cuando se encuentre en un raíl motorizado o en un raíl de control, las vagonetas se mantendrán en su sitio hasta que sea motorizado", - "create.ponder.cart_assembler_rails.text_3": "Se pueden utilizar otros tipos de vagonetas como anclaje", - "create.ponder.cart_assembler_rails.text_4": "Los artilugios de vagonetas de horno se mantendrán alimentados a sí mismos, sacando combustible de cualquier inventario adjunto", - - "create.ponder.chain_drive.header": "Transmitir fuerza rotacional con las cadenas de transmisión", - "create.ponder.chain_drive.text_1": "Las cadenas de transmisión transmiten la rotación entre sí en fila", - "create.ponder.chain_drive.text_2": "Todos los ejes conectados así girarán en la misma dirección", - "create.ponder.chain_drive.text_3": "Cualquier parte de la fila puede girar 90 grados usando una llave inglesa", - - "create.ponder.chain_gearshift.header": "Controlar la velocidad de rotación con la cadena de transmisión ajustable", - "create.ponder.chain_gearshift.text_1": "Las cadenas de transmisión ajustables sin alimentación se comportan exactamente como las cadenas de transmisión", - "create.ponder.chain_gearshift.text_2": "Cuando están alimentadas, la velocidad transmitida a las demás cadenas de transmisión de la fila se duplica", - "create.ponder.chain_gearshift.text_3": "Siempre que la cadena de transmisión alimentada no esté en el origen, su velocidad se reducirá a la mitad", - "create.ponder.chain_gearshift.text_4": "En ambos casos, las cadenas de transmisión de la fila siempre funcionan a 2 veces la velocidad de la cadena de transmisión alimentada", - "create.ponder.chain_gearshift.text_5": "Utilizando señales analógicas, la relación puede ajustarse con mayor precisión, entre 1 y 2", - "create.ponder.chain_gearshift.text_6": "12 RPM", - - "create.ponder.chute.header": "Transportar objetos hacia abajo a través de ductos", - "create.ponder.chute.text_1": "Los ductos pueden transportar objetos verticalmente desde y hacia los inventarios", - "create.ponder.chute.text_2": "Usando la llave inglesa, se puede crear una ventana", - "create.ponder.chute.text_3": "Colocar ductos apuntando a las caras laterales de otro lo hará en diagonal", - - "create.ponder.chute_upward.header": "Transportar objetos hacia arriba mediante ductos", - "create.ponder.chute_upward.text_1": "Usando ventiladores revestidos en la parte superior o inferior, un ducto puede transportar objetos hacia arriba", - "create.ponder.chute_upward.text_2": "Al inspeccionar los ductos con las gafas del constructor, se revela información sobre la dirección del movimiento", - "create.ponder.chute_upward.text_3": "En el extremo 'bloqueado', los objetos tendrán que ser insertados/tomados de los lados", - - "create.ponder.clockwork_bearing.header": "Animar estructuras con rodamientos tipo reloj", - "create.ponder.clockwork_bearing.text_1": "Los rodamientos tipo reloj se fijan a los bloques que tienen delante", - "create.ponder.clockwork_bearing.text_2": "Al recibir fuerza rotacional, la estructura girará según la hora del día", - "create.ponder.clockwork_bearing.text_3": "3:00", - "create.ponder.clockwork_bearing.text_4": "4:00", - "create.ponder.clockwork_bearing.text_5": "Haz clic derecho en el rodamiento para iniciar o detener la animación de la estructura", - "create.ponder.clockwork_bearing.text_6": "Delante de la manecilla de las horas se puede añadir una segunda estructura", - "create.ponder.clockwork_bearing.text_7": "Asegúrese de que las dos estructuras no están unidas entre sí con pegamento o algo similar", - "create.ponder.clockwork_bearing.text_8": "La segunda estructura ahora girará como el minutero", - - "create.ponder.clutch.header": "Controlar la fuerza rotacional mediante un embrague", - "create.ponder.clutch.text_1": "Los embragues transmitirán la rotación en línea recta", - "create.ponder.clutch.text_2": "Cuando se alimentan con redstone, rompen la conexión", - - "create.ponder.cog_speedup.header": "Cambiar de marchas con engranajes", - "create.ponder.cog_speedup.text_1": "Los engranajes grandes y pequeños pueden conectarse en diagonal", - "create.ponder.cog_speedup.text_2": "Al cambiar de engranajes grandes a pequeños, la velocidad rotacional se duplicará", - "create.ponder.cog_speedup.text_3": "Inversamente, la velocidad rotacional se reducirá a la mitad", - - "create.ponder.cogwheel.header": "Transmitir fuerza rotacional mediante engranajes", - "create.ponder.cogwheel.text_1": "Los engranajes transmitirán la rotación a otros engranajes adyacentes", - "create.ponder.cogwheel.text_2": "Los ejes adyacentes conectados así, girarán en direcciones opuestas", - - "create.ponder.creative_fluid_tank.header": "Tanque de fluídos creativo", - "create.ponder.creative_fluid_tank.text_1": "Los depósitos de fluidos creativos pueden utilizarse para proporcionar un suministro de fluidos sin fondo", - "create.ponder.creative_fluid_tank.text_2": "Haga clic con el botón derecho en un elemento que contenga fluido para configurarlo", - "create.ponder.creative_fluid_tank.text_3": "Las redes de tuberías pueden ahora extraer sin cesar el fluido asignado del depósito", - "create.ponder.creative_fluid_tank.text_4": "Cualquier fluido empujado de vuelta a un tanque de fluido creativo será anulado", - - "create.ponder.creative_motor.header": "Generar fuerza rotacional con motores creativos", - "create.ponder.creative_motor.text_1": "Los motores creativos son una fuente compacta y configurable de fuerza rotacional", - "create.ponder.creative_motor.text_2": "Usar la rueda de desplazamiento del ratón en su parte trasera cambia las RPM de la salida rotacional", - - "create.ponder.crushing_wheels.header": "Procesar objetos con las ruedas trituradoras", - "create.ponder.crushing_wheels.text_1": "Un par de ruedas trituradoras pueden moler objetos de forma muy eficaz", - "create.ponder.crushing_wheels.text_2": "Su fuerza rotacional tiene que hacerlas girar una contra otra", - "create.ponder.crushing_wheels.text_3": "Los objetos lanzados o insertados en la parte superior serán procesados", - "create.ponder.crushing_wheels.text_4": "Los objetos también pueden ser insertados y recogidos a través de medios automatizados", - - "create.ponder.deployer.header": "Usar el desplegador", - "create.ponder.deployer.text_1": "Dada la fuerza rotacional, un desplegador puede imitar las interacciones de los jugadores", - "create.ponder.deployer.text_10": "Haz clic derecho en el frente para darle un objeto a utilizar", - "create.ponder.deployer.text_11": "Los objetos también pueden ser insertados automáticamente", - "create.ponder.deployer.text_12": "Los desplegadores llevan una ranura de filtro", - "create.ponder.deployer.text_13": "Cuando se establece un filtro, sólo se activa mientras se mantiene un elemento coincidente", - "create.ponder.deployer.text_14": "Ahora sólo se pueden insertar los objetos que coincidan con el filtro...", - "create.ponder.deployer.text_15": "...y sólo se extraerán los objetos que no coincidan", - "create.ponder.deployer.text_2": "Siempre interactuará con la posición 2 bloques delante de sí mismo", - "create.ponder.deployer.text_3": "Los bloques situados directamente delante no lo obstruirán", - "create.ponder.deployer.text_4": "Los desplegadores pueden:", - "create.ponder.deployer.text_5": "Colocar bloques,", - "create.ponder.deployer.text_6": "Usar objetos,", - "create.ponder.deployer.text_7": "Activar bloques,", - "create.ponder.deployer.text_8": "Cosechar bloques", - "create.ponder.deployer.text_9": "Y atacar criaturas", - - "create.ponder.deployer_contraption.header": "Usar desplegadores en artilugios", - "create.ponder.deployer_contraption.text_1": "Siempre que los desplegadores se muevan como parte de un artilugio animado...", - "create.ponder.deployer_contraption.text_2": "Se activan en cada ubicación visitada, utilizando objetos de los inventarios de cualquier parte del artilugio", - "create.ponder.deployer_contraption.text_3": "La ranura para filtros se puede utilizar para especificar qué objetos tirar", - - "create.ponder.deployer_modes.header": "Modos del desplegador", - "create.ponder.deployer_modes.text_1": "Por defecto, un desplegador imita la interacción del clic derecho del ratón", - "create.ponder.deployer_modes.text_2": "Usando una llave inglesa, se puede configurar para imitar un clic izquierdo en su lugar", - - "create.ponder.deployer_processing.header": "Procesar objetos mediante desplegadores", - "create.ponder.deployer_processing.text_1": "Con un objeto de sujeción ajustado, los desplegadores pueden procesar los objetos proporcionados por debajo de ellos", - "create.ponder.deployer_processing.text_2": "Los objetos de entrada pueden soltarse o colocarse en un depósito bajo el desplegador", - "create.ponder.deployer_processing.text_3": "Cuando los objetos se proporcionan en una 'cinta'...", - "create.ponder.deployer_processing.text_4": "El desplegador los retendrá y procesará automáticamente", - - "create.ponder.deployer_redstone.header": "Controlar desplegadores con redstone", - "create.ponder.deployer_redstone.text_1": "Al controlar los desplegadores con redstone, éstos no se activarán", - "create.ponder.deployer_redstone.text_2": "Antes de detenerse, el desplegador terminará cualquier ciclo iniciado", - "create.ponder.deployer_redstone.text_3": "Por lo tanto, un pulso negativo puede ser utilizado para desencadenar exactamente un ciclo de activación", - - "create.ponder.depot.header": "Usar depósitos", - "create.ponder.depot.text_1": "Los depósitos pueden servir como objetos 'fijos' de la correa", - "create.ponder.depot.text_2": "Haz clic derecho para colocar o eliminar manualmente objetos del mismo", - "create.ponder.depot.text_3": "Al igual que las correas mecánicas, pueden proporcionar objetos para su procesamiento", - "create.ponder.depot.text_4": "...así como proporcionar objetos a los brazos mecánicos", - - "create.ponder.empty_blaze_burner.header": "Usar quemadores de blaze vacíos", - "create.ponder.empty_blaze_burner.text_1": "Haz clic derecho en un blaze con el quemador vacío para capturarlo", - "create.ponder.empty_blaze_burner.text_2": "Alternativamente, los blaze pueden ser recogidos de sus spawners directamente", - "create.ponder.empty_blaze_burner.text_3": "Ahora tienes una fuente de calor ideal para varias máquinas", - "create.ponder.empty_blaze_burner.text_4": "Por motivos estéticos, los quemadores de blaze vacíos también se pueden encender con pedernal y acero", - "create.ponder.empty_blaze_burner.text_5": "La llama puede transformarse utilizando un objeto con alma", - "create.ponder.empty_blaze_burner.text_6": "Sin embargo, no son adecuados para la calefacción industrial", - - "create.ponder.encased_fluid_pipe.header": "Revestir tuberías de fluídos", - "create.ponder.encased_fluid_pipe.text_1": "El revestidor de cobre puede utilizarse para decorar las tuberías de fluidos", - "create.ponder.encased_fluid_pipe.text_2": "Además de estar ocultas, las tuberías revestidas están bloqueadas en su estado de conectividad", - "create.ponder.encased_fluid_pipe.text_3": "Ya no reaccionará a los bloques vecinos que se añadan o eliminen", - - "create.ponder.fan_direction.header": "El flujo de aire de los ventiladores revestidos", - "create.ponder.fan_direction.text_1": "Los ventiladores revestidos utilizan la fuerza rotacional para crear una corriente de aire", - "create.ponder.fan_direction.text_2": "La fuerza y la dirección del flujo dependen de la fuerza rotacional suministrada", - - "create.ponder.fan_processing.header": "Procesar objetos mediante ventiladores revestidos", - "create.ponder.fan_processing.text_1": "Al pasar por lava, el flujo de aire se calienta", - "create.ponder.fan_processing.text_2": "Los objetos capturados en la zona serán fundidos", - "create.ponder.fan_processing.text_3": "Los artículos de comida arrojados aquí serán incinerados", - "create.ponder.fan_processing.text_4": "En su lugar, se debería utilizar una instalación de ahumado, usando fuego", - "create.ponder.fan_processing.text_5": "Los flujos de aire que pasan por el agua crean una instalación de lavado", - "create.ponder.fan_processing.text_6": "Se puede hacer un nuevo e interesante procesamiento con él", - "create.ponder.fan_processing.text_7": "La velocidad del ventilador NO afecta a la velocidad de procesamiento, sólo a su rango", - "create.ponder.fan_processing.text_8": "El procesamiento del ventilador también puede aplicarse a los objetos de los depósitos y las correas", - - "create.ponder.fan_source.header": "Generar fuerza rotacional mediante ventiladores revestidos", - "create.ponder.fan_source.text_1": "Los ventiladores orientados hacia una fuente de calor pueden proporcionar fuerza rotacional", - "create.ponder.fan_source.text_2": "Cuando se les da una señal de redstone, los ventiladores comenzarán a proporcionar fuerza", - - "create.ponder.fluid_pipe_flow.header": "Transportar fluidos mediante tuberías de cobre", - "create.ponder.fluid_pipe_flow.text_1": "Las tuberías de fluidos pueden conectar dos o más fuentes y objetivos de fluidos", - "create.ponder.fluid_pipe_flow.text_2": "Utilizando una llave, se puede dar a un segmento de tubo recto una ventana", - "create.ponder.fluid_pipe_flow.text_3": "Las tuberías con ventanas no se conectarán a ningún otro segmento de tubería adyacente", - "create.ponder.fluid_pipe_flow.text_4": "Accionadas por bombas mecánicas, las tuberías pueden transportar fluidos", - "create.ponder.fluid_pipe_flow.text_5": "Al principio no se extrae ningún líquido", - "create.ponder.fluid_pipe_flow.text_6": "Una vez que el flujo los conecta, los puntos finales transfieren gradualmente su contenido", - "create.ponder.fluid_pipe_flow.text_7": "Así, los bloques de tuberías nunca contienen 'físicamente' ningún fluido", - - "create.ponder.fluid_pipe_interaction.header": "Drenaje y llenado de contenedores de fluidos", - "create.ponder.fluid_pipe_interaction.text_1": "Los puntos finales de una red de tuberías pueden interactuar con una variedad de bloques", - "create.ponder.fluid_pipe_interaction.text_2": "Cualquier bloque con capacidad para almacenar fluidos puede ser llenado o vaciado", - "create.ponder.fluid_pipe_interaction.text_3": "Los bloques de origen justo delante de un extremo abierto pueden ser recogidos...", - "create.ponder.fluid_pipe_interaction.text_4": "...mientras que el derrame en espacios vacíos puede crear fuentes de fluidos", - "create.ponder.fluid_pipe_interaction.text_5": "Las tuberías también pueden extraer fluidos de un puñado de otros bloques directamente", - - "create.ponder.fluid_tank_sizes.header": "Dimensiones de un depósito de fluidos", - "create.ponder.fluid_tank_sizes.text_1": "Los depósitos de fluidos pueden combinarse para aumentar la capacidad total", - "create.ponder.fluid_tank_sizes.text_2": "Su cuadrado base puede tener hasta 3 bloques de ancho...", - "create.ponder.fluid_tank_sizes.text_3": "...y crecen en altura en más de 30 capas adicionales", - "create.ponder.fluid_tank_sizes.text_4": "Con una llave inglesa, se puede cambiar la ventana de un tanque", - - "create.ponder.fluid_tank_storage.header": "Almacenar fluidos en depósitos de fluidos", - "create.ponder.fluid_tank_storage.text_1": "Los depósitos de fluidos pueden utilizarse para almacenar grandes cantidades de fluidos", - "create.ponder.fluid_tank_storage.text_2": "Las redes de tuberías pueden empujar y arrastrar fluidos desde cualquier lado", - "create.ponder.fluid_tank_storage.text_3": "El fluido contenido puede ser medido por un Comparador", - "create.ponder.fluid_tank_storage.text_4": "Sin embargo, en el Modo Supervivencia no se pueden añadir o tomar fluidos manualmente", - "create.ponder.fluid_tank_storage.text_5": "Puede utilizar cuencas, drenadores de objetos y tuberías para vaciar o llenar objetos que contengan líquido", - - "create.ponder.flywheel.header": "Generar fuerza rotacional con la rueda de inercia", - "create.ponder.flywheel.text_1": "Las ruedas de inercia son necesarias para generar fuerza rotacional con el motor de horno", - "create.ponder.flywheel.text_2": "La fuerza rotacional proporcionada tiene una capacidad de estrés muy grande", - "create.ponder.flywheel.text_3": "El uso de un alto horno duplicará la eficiencia del motor", - - "create.ponder.funnel_compat.header": "Compatibilidades con el embudo", - "create.ponder.funnel_compat.text_1": "Los embudos deberían interactuar bien con un puñado de otros componentes", - "create.ponder.funnel_compat.text_2": "Sierras verticales", - "create.ponder.funnel_compat.text_3": "Depósitos", - "create.ponder.funnel_compat.text_4": "Drenadores de objetos", - - "create.ponder.funnel_direction.header": "Dirección de la transferencia", - "create.ponder.funnel_direction.text_1": "Colocado normalmente, extrae objetos del inventario", - "create.ponder.funnel_direction.text_2": "Colocado mientras pulsa Mayús izdo, pone objetos en el inventario", - "create.ponder.funnel_direction.text_3": "Usando una llave inglesa, el embudo puede ser volteado después de su colocación", - "create.ponder.funnel_direction.text_4": "Se aplicarán las mismas reglas para la mayoría de las orientaciones", - "create.ponder.funnel_direction.text_5": "Los embudos en las correas extraerán/insertarán dependiendo de su dirección de movimiento", - - "create.ponder.funnel_intro.header": "Usar embudos", - "create.ponder.funnel_intro.text_1": "Los embudos son ideales para transferir objetos desde y hacia los inventarios", - - "create.ponder.funnel_redstone.header": "Embudos alimentados con redstone", - "create.ponder.funnel_redstone.text_1": "La energía de redstone impedirá la actuación de cualquier embudo", - - "create.ponder.funnel_transfer.header": "Transferencia directa", - "create.ponder.funnel_transfer.text_1": "Los embudos no pueden transferir nunca entre inventarios cerrados directamente", - "create.ponder.funnel_transfer.text_2": "Los ductos o los ductos inteligentes podrían ser más adecuados para estos fines", - "create.ponder.funnel_transfer.text_3": "Lo mismo se aplica para el movimiento horizontal. Una correa mecánica debería ayudar aquí", - - "create.ponder.furnace_engine.header": "Generar fuerza rotacional con el motor de horno", - "create.ponder.furnace_engine.text_1": "Los motores de horno generan fuerza rotacional mientras su horno adjunto está funcionando", - "create.ponder.furnace_engine.text_2": "La fuerza rotacional proporcionada tiene una capacidad de estrés muy grande", - "create.ponder.furnace_engine.text_3": "El uso de un alto horno duplicará la eficiencia del motor", - - "create.ponder.gantry_carriage.header": "Usar carros de grúa", - "create.ponder.gantry_carriage.text_1": "Los carros de grúa pueden montarse y deslizarse a lo largo de un eje de grúa", - "create.ponder.gantry_carriage.text_2": "Las instalaciones de grúa pueden mover bloques adjuntos", - - "create.ponder.gantry_cascaded.header": "Grúas en cascada", - "create.ponder.gantry_cascaded.text_1": "Los ejes de grúas se unen a un carro de grúa sin necesidad de pegamento", - "create.ponder.gantry_cascaded.text_2": "Lo mismo se aplica a los carros de grúa en los ejes de grúas desplazados", - "create.ponder.gantry_cascaded.text_3": "Así, un sistema de grúas puede estar en cascada para cubrir múltiples ejes de movimiento", - - "create.ponder.gantry_direction.header": "Dirección del movimiento de la grúa", - "create.ponder.gantry_direction.text_1": "Los ejes de grúa pueden tener orientaciones opuestas", - "create.ponder.gantry_direction.text_2": "La dirección de movimiento de los carros de grúa depende de la orientación de sus ejes", - "create.ponder.gantry_direction.text_3": "...así como de su sentido de rotación", - "create.ponder.gantry_direction.text_4": "Se aplican las mismas reglas para la rotación propagada", - - "create.ponder.gantry_redstone.header": "Propagación de la potencia de la grúa", - "create.ponder.gantry_redstone.text_1": "Los ejes de grúa alimentados con redstone dejan de mover sus carros", - "create.ponder.gantry_redstone.text_2": "En su lugar, su fuerza rotacional se transmite al eje de salida de los carros", - - "create.ponder.gantry_shaft.header": "Usar ejes de grúa", - "create.ponder.gantry_shaft.text_1": "Los ejes de grúa forman la base de una instalación de grúas. Los carros adjuntos se moverán a lo largo de ellos", - "create.ponder.gantry_shaft.text_2": "Las instalaciones de grúas pueden mover los bloques adjuntos", - - "create.ponder.gearbox.header": "Transmitir fuerza rotacional mediante cajas de transmisión", - "create.ponder.gearbox.text_1": "Saltar entre ejes de rotación puede volverse voluminoso rápidamente", - "create.ponder.gearbox.text_2": "Una caja de transmisión es el equivalente más compacto de esta configuración", - "create.ponder.gearbox.text_3": "Los ejes giran en las direcciones reflejadas...", - "create.ponder.gearbox.text_4": "...esto quiere decir que las conexiones rectas se invierten", - - "create.ponder.gearshift.header": "Controlar la dirección rotacional mediante una caja de cambios", - "create.ponder.gearshift.text_1": "La caja de cambios transmitirá la rotación en línea recta", - "create.ponder.gearshift.text_2": "Cuando es alimentada con redstone, invierte la transmisión", - - "create.ponder.hand_crank.header": "Generar fuerza rotacional mediante manivelas", - "create.ponder.hand_crank.text_1": "Las manivelas pueden ser utilizadas para aplicar fuerza rotacional manualmente", - "create.ponder.hand_crank.text_2": "Mantén pulsado clic derecho para girar en sentido antihorario", - "create.ponder.hand_crank.text_3": "Su velocidad de transmisión es relativamente alta", - "create.ponder.hand_crank.text_4": "Mayús izdo + clic derecho pulsado para girar en sentido horario", - - "create.ponder.hose_pulley.header": "Llenado y vaciado de fuentes mediante poleas de manguera", - "create.ponder.hose_pulley.text_1": "Las poleas para mangueras pueden utilizarse para llenar o drenar grandes masas de fluido", - "create.ponder.hose_pulley.text_2": "Con entrada cinética, se puede controlar la altura de la manguera de las poleas", - "create.ponder.hose_pulley.text_3": "La polea se retrae mientras la rotación de entrada se invierte", - "create.ponder.hose_pulley.text_4": "En el lado opuesto, se pueden conectar las tuberías", - "create.ponder.hose_pulley.text_5": "Las redes de tuberías conectadas pueden proporcionar fluido a la manguera...", - "create.ponder.hose_pulley.text_6": "...o tirar de él, vaciando la piscina en su lugar", - "create.ponder.hose_pulley.text_7": "La velocidad de llenado y vaciado de la polea depende totalmente del caudal de las redes de fluidos", - - "create.ponder.hose_pulley_infinite.header": "Llenado y drenaje pasivo de grandes masas de fluido", - "create.ponder.hose_pulley_infinite.text_1": "Al desplegar la polea de manguera en un océano lo suficientemente grande...", - "create.ponder.hose_pulley_infinite.text_2": "Proporcionará/eliminará fluidos sin afectar a la fuente", - "create.ponder.hose_pulley_infinite.text_3": "Las redes de tuberías pueden llevar fluidos de forma ilimitada desde/hacia dichas poleas", - - "create.ponder.hose_pulley_level.header": "Nivel de llenado y vaciado de las poleas de las mangueras", - "create.ponder.hose_pulley_level.text_1": "Mientras esté totalmente retraída, la polea de la manguera no puede funcionar", - "create.ponder.hose_pulley_level.text_2": "El drenaje va de arriba a abajo", - "create.ponder.hose_pulley_level.text_3": "El nivel de la superficie terminará justo debajo de donde termina la manguera", - "create.ponder.hose_pulley_level.text_4": "El llenado va de abajo a arriba", - "create.ponder.hose_pulley_level.text_5": "La piscina llena no crecerá más allá de la capa por encima del extremo de la manguera", - - "create.ponder.item_drain.header": "Vaciar contenedores de fluidos mediante drenajes de objetos", - "create.ponder.item_drain.text_1": "Los drenajes de objetos pueden extraer los fluidos de los objetos", - "create.ponder.item_drain.text_2": "Haz clic derecho para verter los fluidos de tu objeto retenido en él", - "create.ponder.item_drain.text_3": "Cuando los artículos se insertan desde el lado...", - "create.ponder.item_drain.text_4": "...ruedan a través, vaciando su líquido contenido", - "create.ponder.item_drain.text_5": "Las redes de tuberías pueden ahora extraer el fluido del buffer interno de los desagües", - - "create.ponder.large_cogwheel.header": "Transmitir fuerza rotacional mediante engranajes grandes", - "create.ponder.large_cogwheel.text_1": "Los engranajes grandes pueden conectarse entre sí en ángulo recto", - "create.ponder.large_cogwheel.text_2": "Ayudarán a transmitir la velocidad transportada a otros ejes de rotación.", - - "create.ponder.linear_chassis_attachment.header": "Fijar bloques mediante el chasis lineal", - "create.ponder.linear_chassis_attachment.text_1": "Las caras abiertas de un chasis lineal pueden hacerse pegajosas", - "create.ponder.linear_chassis_attachment.text_2": "Haz clic de nuevo para que se pegue el lado opuesto", - "create.ponder.linear_chassis_attachment.text_3": "Mayús izdo + clic derecho con la mano vacía para eliminar el pegamento", - "create.ponder.linear_chassis_attachment.text_4": "Las caras pegadas del chasis lineal fijarán una línea de bloques delante de él", - "create.ponder.linear_chassis_attachment.text_5": "Utilizando una llave inglesa, se puede especificar un rango preciso", - "create.ponder.linear_chassis_attachment.text_6": "Manteniendo pulsada la tecla [Ctrl] y usando la rueda central del ratón, se ajusta el rango de todos los bloques de chasis adjuntos", - "create.ponder.linear_chassis_attachment.text_7": "Para fijar los bloques a cualquier otro lado es necesario utilizar pegamento", - "create.ponder.linear_chassis_attachment.text_8": "Utilizando esta mecánica, las estructuras de cualquier forma pueden moverse como un artilugio", - - "create.ponder.linear_chassis_group.header": "Mover chasis lineales en grupos", - "create.ponder.linear_chassis_group.text_1": "Los chasis lineales se conectan a los bloques de chasis idénticos que se encuentren a su lado", - "create.ponder.linear_chassis_group.text_2": "Cuando uno es movido por un artilugio, los otros son arrastrados con él", - "create.ponder.linear_chassis_group.text_3": "Los chasis de otro tipo u orientados en otra dirección no se fijan", - - "create.ponder.mechanical_arm.header": "Configurar los brazos mecánicos", - "create.ponder.mechanical_arm.text_1": "A los brazos mecánicos hay que asignarles sus entradas y salidas antes de colocarlos", - "create.ponder.mechanical_arm.text_2": "Clic derecho en los inventarios mientras mantiene el brazo mecánico para asignarlos como objetivos", - "create.ponder.mechanical_arm.text_3": "Clic derecho denuevo para alternar entre la entrada (azul) y la salida (naranja)", - "create.ponder.mechanical_arm.text_4": "Clic izquierdo en los componentes para eliminar su selección", - "create.ponder.mechanical_arm.text_5": "Una vez colocado, el brazo mecánico apuntará a los bloques seleccionados previamente", - "create.ponder.mechanical_arm.text_6": "Pueden tener cualquier cantidad de entradas y salidas dentro de su rango", - "create.ponder.mechanical_arm.text_7": "Sin embargo, no se puede interactuar directamente con todos los tipos de inventario", - "create.ponder.mechanical_arm.text_8": "Los embudos y depósitos pueden ayudar a salvar esa distancia", - - "create.ponder.mechanical_arm_filtering.header": "Filtrar salidas del brazo mecánico", - "create.ponder.mechanical_arm_filtering.text_1": "Entradas", - "create.ponder.mechanical_arm_filtering.text_2": "Salidas", - "create.ponder.mechanical_arm_filtering.text_3": "A veces es conveniente restringir los objetivos del brazo mecánico haciendo coincidir un filtro", - "create.ponder.mechanical_arm_filtering.text_4": "Por sí mismos no ofrecen ninguna opción de filtrado", - "create.ponder.mechanical_arm_filtering.text_5": "Sin embargo, los embudos de latón como objetivos comunican su propio filtro al brazo", - "create.ponder.mechanical_arm_filtering.text_6": "El brazo mecánico es lo suficientemente inteligente como para no recoger objetos que no podría distribuir", - - "create.ponder.mechanical_arm_modes.header": "Modos de distribución del brazo mecánico", - "create.ponder.mechanical_arm_modes.text_1": "Entradas", - "create.ponder.mechanical_arm_modes.text_2": "Salidas", - "create.ponder.mechanical_arm_modes.text_3": "Siempre que un brazo tenga que elegir entre varias salidas válidas...", - "create.ponder.mechanical_arm_modes.text_4": "...funcionará según su configuración", - "create.ponder.mechanical_arm_modes.text_5": "Usando la rueda del ratón con una llave inglesa te permitirá configurarlo", - "create.ponder.mechanical_arm_modes.text_6": "El modo Round Robin simplemente hace un ciclo a través de todas las salidas que están disponibles", - "create.ponder.mechanical_arm_modes.text_7": "Si una salida no puede admitir más objetos, se omitirá", - "create.ponder.mechanical_arm_modes.text_8": "El modo Round Robin forzado nunca omitirá las salidas, sino que esperará a que estén libres", - "create.ponder.mechanical_arm_modes.text_9": "Preferir el primero da prioridad a las salidas seleccionadas anteriormente al configurar este brazo", - - "create.ponder.mechanical_arm_redstone.header": "Controlar brazos mecánicos con redstone", - "create.ponder.mechanical_arm_redstone.text_1": "Cuando se alimentan con redstone, los brazos mecánicos no se activan", - "create.ponder.mechanical_arm_redstone.text_2": "Antes de detenerse, terminará los ciclos iniciados", - "create.ponder.mechanical_arm_redstone.text_3": "Así, un pulso negativo puede utilizarse para activar exactamente un ciclo de activación", - - "create.ponder.mechanical_bearing.header": "Mover estructuras mediante el rodamiento mecánico", - "create.ponder.mechanical_bearing.text_1": "Los rodamientos mecánicos se fijan al bloque que tienen delante", - "create.ponder.mechanical_bearing.text_2": "Al recibir fuerza rotacional, la ensamblará en un artilugio giratorio", - - "create.ponder.mechanical_crafter.header": "Configurar ensambladores mecánicos", - "create.ponder.mechanical_crafter.text_1": "Se puede utilizar una serie de ensambladores mecánicos para automatizar cualquier receta de elaboración.", - "create.ponder.mechanical_crafter.text_2": "Usando una llave inglesa, puedes establecer los caminos de los ensambladores ", - "create.ponder.mechanical_crafter.text_3": "Para que la configuración sea válida, todos los caminos tienen que converger en una salida, en cualquiera de los lados", - "create.ponder.mechanical_crafter.text_4": "Los puertos de salida de objetos se colocarán en un inventario a la salida", - "create.ponder.mechanical_crafter.text_5": "Los ensambladores mecánicos requieren fuerza rotacional para funcionar", - "create.ponder.mechanical_crafter.text_6": "Haga clic derecho en la parte delantera para insertar objetos manualmente", - "create.ponder.mechanical_crafter.text_7": "Una vez que cada ranura de una ruta contenga un objeto, comenzará el proceso de elaboración", - "create.ponder.mechanical_crafter.text_8": "Para las recetas que no ocupen totalmente la instalación del ensamblador, se puede forzar el arranque utilizando un pulso de redstone", - - "create.ponder.mechanical_crafter_connect.header": "Conectar inventarios a los ensambladores mecánicos", - "create.ponder.mechanical_crafter_connect.text_1": "Los objetos pueden ser insertados a los ensambladores mecánicos automáticamente", - "create.ponder.mechanical_crafter_connect.text_2": "Utilizando la llave inglesa a sus espaldas, las entradas pueden combinarse", - "create.ponder.mechanical_crafter_connect.text_3": "Ahora se puede acceder a todos los ensambladores mecánicos conectados por la misma ubicación de entrada", - - "create.ponder.mechanical_crafter_covers.header": "Cubrir las ranuras de los ensambladores mecánicos", - "create.ponder.mechanical_crafter_covers.text_1": "Algunas recetas requerirán ensambladores mecánicos adicionales para salvar las brechas en el camino", - "create.ponder.mechanical_crafter_covers.text_2": "Utilizando las tapas de ranuras del ensamblador mecánico, pueden actuar como una ranura vacía a su disposición", - "create.ponder.mechanical_crafter_covers.text_3": "Las entradas compartidas creadas con la llave inglesa en la parte posterior también pueden llegar a través de los ensambladores revestidos", - - "create.ponder.mechanical_drill.header": "Romper bloques con el taladro mecánico", - "create.ponder.mechanical_drill.text_1": "Cuando se le aplica fuerza rotacional, el taladro mecánico rompe los bloques que tiene delante.", - "create.ponder.mechanical_drill.text_2": "Su velocidad de trabajo depende de la fuerza rotacional suministrada", - - "create.ponder.mechanical_drill_contraption.header": "Usar taladros mecánicos en artilugios", - "create.ponder.mechanical_drill_contraption.text_1": "Siempre que los taladros mecánicos se muevan como parte de un artilugio animado...", - "create.ponder.mechanical_drill_contraption.text_2": "...romperán los bloques por los que artilugio los hace pasar", - - "create.ponder.mechanical_harvester.header": "Utilizar cosechadoras mecánicas en artilugios", - "create.ponder.mechanical_harvester.text_1": "Siempre que las cosechadoras mecánicas se muevan como parte de un artilugio animado...", - "create.ponder.mechanical_harvester.text_2": "...recogerán y repondrán los cultivos maduros en su camino", - - "create.ponder.mechanical_mixer.header": "Procesar objetos con la mezcladora mecánica", - "create.ponder.mechanical_mixer.text_1": "Con una mezcladora mecánica y una cuenca, se pueden automatizar algunas recetas", - "create.ponder.mechanical_mixer.text_2": "Las recetas disponibles incluyen cualquier receta de elaboración amorfa, además de un par de recetas adicionales", - "create.ponder.mechanical_mixer.text_3": "Algunas de esas recetas pueden requerir el calor de un quemador de blaze", - "create.ponder.mechanical_mixer.text_4": "La ranura para filtros se puede utilizar en caso de que dos recetas sean conflictivas.", - - "create.ponder.mechanical_piston.header": "Mover estructuras mediante pistones mecánicos", - "create.ponder.mechanical_piston.text_1": "Los pistones mecánicos pueden mover los bloques que tienen delante", - "create.ponder.mechanical_piston.text_2": "La velocidad y la dirección del movimiento dependen de la fuerza rotacional suministrada", - "create.ponder.mechanical_piston.text_3": "Los pistones mecánicos pegajosos pueden tirar de los bloques unidos hacia atrás", - - "create.ponder.mechanical_piston_modes.header": "Modos de movimiento del pistón mecánico", - "create.ponder.mechanical_piston_modes.text_1": "Cuando los pistones mecánicos dejan de moverse, la estructura movida vuelve a los bloques", - "create.ponder.mechanical_piston_modes.text_2": "Puede configurarse para que no vuelva nunca a los bloques sólidos, o sólo en la ubicación en la que comenzó", - - "create.ponder.mechanical_plough.header": "Utilizar arados mecánicos en los artilugios", - "create.ponder.mechanical_plough.text_1": "Cuando los arados mecánicos se mueven como parte de un artilugio animado...", - "create.ponder.mechanical_plough.text_2": "...romperán los bloques sin un hitbox de colisión sólido", - "create.ponder.mechanical_plough.text_3": "Además, pueden crear tierras de cultivo", - "create.ponder.mechanical_plough.text_4": "...también pueden lanzar entidades sin dañarlas", - - "create.ponder.mechanical_press.header": "Procesar objetos con la prensa mecánica", - "create.ponder.mechanical_press.text_1": "La prensa mecánica puede procesar los objetos proporcionados por debajo de ella", - "create.ponder.mechanical_press.text_2": "Los objetos de entrada pueden soltarse o colocarse en un depósito bajo la prensa", - "create.ponder.mechanical_press.text_3": "Cuando los objetos se proporcionan en una 'cinta'...", - "create.ponder.mechanical_press.text_4": "...la prensa mecánica los retendrá y procesará automáticamente", - - "create.ponder.mechanical_press_compacting.header": "Compactar objetos con la prensa mecánica", - "create.ponder.mechanical_press_compacting.text_1": "Al presionar los objetos que se encuentran en una cuenca, éstos se compactan.", - "create.ponder.mechanical_press_compacting.text_2": "La compactación incluye cualquier receta de elaboración de 2x2 o 3x3 rellena, además de un par extra", - "create.ponder.mechanical_press_compacting.text_3": "Algunas de esas recetas pueden requerir el calor de un quemador de blaze", - "create.ponder.mechanical_press_compacting.text_4": "La ranura para filtros se puede utilizar en caso de que dos recetas sean conflictivas.", - - "create.ponder.mechanical_pump_flow.header": "Transportar fluidos mediante bombas mecánicas", - "create.ponder.mechanical_pump_flow.text_1": "Las bombas mecánicas gobiernan el flujo de sus redes de tuberías anexas", - "create.ponder.mechanical_pump_flow.text_2": "Cuando están alimentadas, su flecha indica la dirección del flujo", - "create.ponder.mechanical_pump_flow.text_3": "La red de atrás está ahora tirando de fluidos...", - "create.ponder.mechanical_pump_flow.text_4": "...mientras la red de enfrente la transfiere hacia el exterior", - "create.ponder.mechanical_pump_flow.text_5": "Al invertir la rotación de la entrada se invierte el sentido del flujo", - "create.ponder.mechanical_pump_flow.text_6": "Utilice una llave inglesa para invertir la orientación de las bombas manualmente", - - "create.ponder.mechanical_pump_speed.header": "Rendimiento de las bombas mecánicas", - "create.ponder.mechanical_pump_speed.text_1": "Independientemente de la velocidad, las bombas mecánicas afectan a las tuberías conectadas hasta 16 bloques de distancia", - "create.ponder.mechanical_pump_speed.text_2": "Acelerar la rotación de entrada cambia la velocidad de propagación del flujo...", - "create.ponder.mechanical_pump_speed.text_3": "...así como la rapidez con la que se transfieren los fluidos", - "create.ponder.mechanical_pump_speed.text_4": "Las bombas pueden combinar sus rendimientos en redes de tuberías compartidas", - "create.ponder.mechanical_pump_speed.text_5": "Alternar su orientación puede ayudar a alinear sus direcciones de flujo", - - "create.ponder.mechanical_saw_breaker.header": "Cortar árboles con la sierra mecánica", - "create.ponder.mechanical_saw_breaker.text_1": "Cuando se le da una fuerza rotacional, la sierra mecánica cortará los árboles que estén directamente frente a ella", - "create.ponder.mechanical_saw_breaker.text_2": "Para poder cortar el árbol por completo, la sierra tiene que romper el último bloque que lo une al suelo", - - "create.ponder.mechanical_saw_contraption.header": "Utilizar sierras mecánicas en artilugios", - "create.ponder.mechanical_saw_contraption.text_1": "Cuando las sierras mecánicas se mueven como parte de un artilugio animado...", - "create.ponder.mechanical_saw_contraption.text_2": "...cortarán cualquier árbol con el que el artilugio se tope", - - "create.ponder.mechanical_saw_processing.header": "Procesar objetos en la sierra mecánica", - "create.ponder.mechanical_saw_processing.text_1": "Las sierras mecánicas orientadas hacia arriba pueden procesar una variedad de objetos", - "create.ponder.mechanical_saw_processing.text_2": "El objeto procesado siempre se mueve en contra de la fuerza rotacional de la sierra", - "create.ponder.mechanical_saw_processing.text_3": "Las sierras mecánicas pueden trabajar en línea con las correas mecánicas", - "create.ponder.mechanical_saw_processing.text_4": "Cuando un ingrediente tiene varios resultados posibles, la ranura para filtros puede especificarlo", - "create.ponder.mechanical_saw_processing.text_5": "Sin filtro, al contrario, la sierra mecánica pasaría por todos los resultados", - - "create.ponder.millstone.header": "Procesar objetos en la piedra de molino", - "create.ponder.millstone.text_1": "Las piedras de molino procesan los objetos mediante la molienda", - "create.ponder.millstone.text_2": "Se pueden accionar lateralmente mediante engranajes...", - "create.ponder.millstone.text_3": "... y tirar o insertar objetos en la parte superior", - "create.ponder.millstone.text_4": "Después de un tiempo, el resultado se puede obtener usando el clic derecho del ratón", - "create.ponder.millstone.text_5": "Las salidas también pueden extraerse mediante la automatización", - - "create.ponder.nixie_tube.header": "Usar los tubos Nixie", - "create.ponder.nixie_tube.text_1": "Cuando son alimentados con redstone, los tubos nixie mostrarán la fuerza de las señales de redstone", - "create.ponder.nixie_tube.text_2": "Con las etiquetas editadas en un yunque, pueden mostar un texto personalizado", - "create.ponder.nixie_tube.text_3": "Haga clic derecho con un tinte para cambiar su color de visualización", - - "create.ponder.piston_pole.header": "Pértigas de extensión de pistones", - "create.ponder.piston_pole.text_1": "Sin las pértigas de extensión unidas, un pistón mecánico no puede moverse", - "create.ponder.piston_pole.text_2": "La longitud de la pértiga añadida en su parte posterior determina el rango de alcance", - - "create.ponder.portable_fluid_interface.header": "Interfaz de fluidos portátil", - "create.ponder.portable_fluid_interface.text_1": "No se puede acceder a los depósitos de fluidos de los artilugios en movimiento por ninguna tubería", - "create.ponder.portable_fluid_interface.text_2": "Este componente puede interactuar con los depósitos de fluidos sin necesidad de detener el artilugio", - "create.ponder.portable_fluid_interface.text_3": "Coloca una segunda con un espacio de 1 o 2 bloques entre ellas", - "create.ponder.portable_fluid_interface.text_4": "Cada vez que pasen por delante de la otra, entablarán una conexión", - "create.ponder.portable_fluid_interface.text_5": "Mientras esté activada, la interfaz estacionaria representará TODOS los tanques del artilugio", - "create.ponder.portable_fluid_interface.text_6": "Ahora se puede introducir el fluido...", - "create.ponder.portable_fluid_interface.text_7": "...o extraerlo del artilugio", - "create.ponder.portable_fluid_interface.text_8": "Cuando no se intercambien contenidos durante un tiempo, el artilugio seguirá su camino", - - "create.ponder.portable_storage_interface.header": "Interfaz de almacenamiento portátil", - "create.ponder.portable_storage_interface.text_1": "Los jugadores no pueden acceder a los inventarios de los artilugios en movimiento.", - "create.ponder.portable_storage_interface.text_2": "Este componente puede interactuar con el almacenamiento sin necesidad de detener el artilugio.", - "create.ponder.portable_storage_interface.text_3": "Coloca una segunda unidad con un espacio de 1 o 2 bloques entre ellas", - "create.ponder.portable_storage_interface.text_4": "Cada vez que pasen por delante del otro, entablarán una conexión", - "create.ponder.portable_storage_interface.text_5": "Mientras esté conectada, la interfaz fija representará TODOS los inventarios del artilugio", - "create.ponder.portable_storage_interface.text_6": "Ahora pueden insertarse objetos...", - "create.ponder.portable_storage_interface.text_7": "...o extraerse", - "create.ponder.portable_storage_interface.text_8": "Cuando no se hayan intercambiado objetos durante un tiempo, el artilugio seguirá su camino", - - "create.ponder.portable_storage_interface_redstone.header": "Interfaz de almacenamiento portátil controlada por redstone", - "create.ponder.portable_storage_interface_redstone.text_1": "La energía de redstone impedirá que las interfaces de almacenamiento portátil se conecten", - - "create.ponder.powered_latch.header": "Controlar señales mediante la palanca motorizada", - "create.ponder.powered_latch.text_1": "Las palancas motorizadas son palancas controlables por redstone", - "create.ponder.powered_latch.text_2": "Las señales en la parte trasera la encienden", - "create.ponder.powered_latch.text_3": "Las señales sobre un lateral la vuelven a apagar", - "create.ponder.powered_latch.text_4": "Las palancas motorizadas también se pueden accionar manualmente", - - "create.ponder.powered_toggle_latch.header": "Controlar señales mediante la palanca de cierre motorizada", - "create.ponder.powered_toggle_latch.text_1": "Las palancas de cierre motorizadas son palancas controlables por redstone", - "create.ponder.powered_toggle_latch.text_2": "Las señales en la parte trasera cambiarán su estado...", - "create.ponder.powered_toggle_latch.text_3": "...encender y apagar", - "create.ponder.powered_toggle_latch.text_4": "Las palancas de cierre motorizadas también se pueden accionar manualmente", - - "create.ponder.pulse_repeater.header": "Controlar señales mediante repetidores de pulsos", - "create.ponder.pulse_repeater.text_1": "Los repetidores de pulsos acortan cualquier señal de redstone a un solo pulso", - - "create.ponder.radial_chassis.header": "Fijar bloques mediante chasis radiales", - "create.ponder.radial_chassis.text_1": "Los chasis radiales se conectan a bloques de chasis idénticos en una fila", - "create.ponder.radial_chassis.text_2": "Cuando uno es movido por un artilugio, los otros son arrastrados con él", - "create.ponder.radial_chassis.text_3": "Las caras laterales de un chasis radial pueden hacerse adhesivas", - "create.ponder.radial_chassis.text_4": "Haga clic de nuevo para que todos los demás lados sean pegajosos", - "create.ponder.radial_chassis.text_5": "Mayús izdo + clic derecho con la mano vacía para eliminar el pegamento", - "create.ponder.radial_chassis.text_6": "Cada vez que un bloque está junto a una cara pegajosa...", - "create.ponder.radial_chassis.text_7": "...adjuntará todos los bloques alcanzables dentro de un radio en esa capa", - "create.ponder.radial_chassis.text_8": "Con una llave inglesa y usando la rueda de desplazamiento del ratón se puede especificar un radio preciso", - "create.ponder.radial_chassis.text_9": "Los bloques no alcanzables por ninguna cara adhesiva no se fijarán", - - "create.ponder.redstone_contact.header": "Contactos de redstone", - "create.ponder.redstone_contact.text_1": "Los contactos de redstone enfrentados emitirán una señal de redstone", - "create.ponder.redstone_contact.text_2": "Esto sigue siendo válido cuando uno de ellos forma parte de un artilugio en movimiento", - - "create.ponder.redstone_link.header": "Usar los enlaces de redstone", - "create.ponder.redstone_link.text_1": "Los enlaces de redstone pueden transmitir señales redstone de forma inalámbrica", - "create.ponder.redstone_link.text_2": "Mayús izdo + clic derecho para cambiar el modo de recepción", - "create.ponder.redstone_link.text_3": "Un simple clic derecho con una llave inglesa puede hacer lo mismo", - "create.ponder.redstone_link.text_4": "Los receptores emiten la potencia de redstone de los transmisores en 128 bloques", - "create.ponder.redstone_link.text_5": "Colocando objetos en las dos ranuras puede especificar una frecuencia", - "create.ponder.redstone_link.text_6": "Sólo se comunicarán los enlaces con frecuencias coincidentes", - - "create.ponder.rope_pulley.header": "Mover estructuras con poleas de cuerda", - "create.ponder.rope_pulley.text_1": "Las poleas de cuerda pueden mover los bloques verticalmente cuando se les aplica una fuerza rotacional", - "create.ponder.rope_pulley.text_2": "La dirección y la velocidad del movimiento dependen de la fuerza rotacional suministrada", - - "create.ponder.rope_pulley_attachment.header": "Mover poleas como parte de un artilugio", - "create.ponder.rope_pulley_attachment.text_1": "Siempre que las poleas de cuerda sean movidas por un artilugio...", - "create.ponder.rope_pulley_attachment.text_2": "...su estructura adjunta será arrastrada con ella", - "create.ponder.rope_pulley_attachment.text_3": "Tenga en cuenta que las poleas de cuerda sólo se mueven cuando están paradas", - - "create.ponder.rope_pulley_modes.header": "Modos de movimiento de la polea de cuerda", - "create.ponder.rope_pulley_modes.text_1": "Cuando las poleas de cuerda dejan de moverse, la estructura movida vuelve a los bloques", - "create.ponder.rope_pulley_modes.text_2": "Puede configurarse para que no vuelva nunca a los bloques sólidos, o sólo en la ubicación en la que comenzó", - - "create.ponder.rotation_speed_controller.header": "Usar el controlador de velocidad rotacional", - "create.ponder.rotation_speed_controller.text_1": "Los controladores de velocidad rotacional transmiten la rotación de su eje a un engranaje grande situado encima.", - "create.ponder.rotation_speed_controller.text_2": "Utilizando la rueda de desplazamiento del ratón, puede configurarse la velocidad rotacional", - - "create.ponder.sail.header": "Montar molinos de viento usando velas", - "create.ponder.sail.text_1": "Las velas son bloques muy útiles para crear molinos de viento", - "create.ponder.sail.text_2": "Se fijarán a los bloques y entre sí sin necesidad de pegamento o bloques de chasis", - "create.ponder.sail.text_3": "Clic derecho con un tinte para pintarlas", - "create.ponder.sail.text_4": "Clic derecho con una tijera para volver a convertirlas en marcos", - - "create.ponder.sail_frame.header": "Montar molinos de viento con marcos de vela", - "create.ponder.sail_frame.text_1": "Los marcos de vela son prácticos bloques para crear molinos de viento", - "create.ponder.sail_frame.text_2": "Se fijarán a los bloques y entre sí sin necesidad de pegamento o bloques de chasis", - - "create.ponder.sequenced_gearshift.header": "Controlar la velocidad de rotación mediante la caja de cambios secuenciales", - "create.ponder.sequenced_gearshift.text_1": "La caja de cambios secuencial retransmite la rotación siguiendo una lista cronometrada de instrucciones", - "create.ponder.sequenced_gearshift.text_2": "Haga clic con el botón derecho para abrir la interfaz de configuración", - "create.ponder.sequenced_gearshift.text_3": "Al recibir una señal de redstone, comenzará a ejecutar su secuencia configurada", - "create.ponder.sequenced_gearshift.text_4": "Una vez terminado, espera la siguiente señal de redstone y vuelve a empezar", - "create.ponder.sequenced_gearshift.text_5": "Se puede utilizar un comparador de redstone para leer el progreso actual", - - "create.ponder.shaft.header": "Transmitir fuerza rotacional mediante ejes", - "create.ponder.shaft.text_1": "Los ejes transmiten la rotación en línea recta.", - - "create.ponder.shaft_casing.header": "Ejes revestidos", - "create.ponder.shaft_casing.text_1": "Puedes utilizar el revestidor de latón o de andesita para decorar tus ejes", - - "create.ponder.smart_chute.header": "Filtrar objetos mediante ductos inteligentes", - "create.ponder.smart_chute.text_1": "Los ductos inteligentes son ductos verticales con control adicional", - "create.ponder.smart_chute.text_2": "Los objetos en la ranura para filtros especifican lo que pueden extraer y transferir exactamente", - "create.ponder.smart_chute.text_3": "Usa la rueda del ratón para especificar el tamaño de la pila extraída", - "create.ponder.smart_chute.text_4": "La energía de redstone impedirá que funcionen.", - - "create.ponder.smart_pipe.header": "Controlar el flujo de fluidos mediante tuberías inteligentes", - "create.ponder.smart_pipe.text_1": "Las tuberías inteligentes pueden ayudar a controlar los flujos por tipo de fluido", - "create.ponder.smart_pipe.text_2": "Cuando se colocan directamente en la fuente, pueden especificar el tipo de fluido a extraer", - "create.ponder.smart_pipe.text_3": "Simplemente haga clic derecho en su ranura de filtro con cualquier elemento que contenga el fluido deseado", - "create.ponder.smart_pipe.text_4": "Cuando se colocan detrás de una red de tuberías, las tuberías inteligentes sólo dejan que los fluidos coincidentes continúen", - - "create.ponder.speedometer.header": "Controlar la información cinética mediante el velocímetro", - "create.ponder.speedometer.text_1": "El velocímetro muestra la velocidad actual de los componentes conectados", - "create.ponder.speedometer.text_2": "Cuando se usan las gafas del constructor, el jugador puede obtener información más detallada del medidor", - "create.ponder.speedometer.text_3": "Los comparadores pueden emitir señales analógicas de redstone en relación con las mediciones del velocímetro", - - "create.ponder.spout_filling.header": "Llenar objetos con un surtidor", - "create.ponder.spout_filling.text_1": "El surtidor puede llenar los elementos de retención de fluidos que se encuentran debajo de él", - "create.ponder.spout_filling.text_2": "No se puede acceder manualmente al contenido de un surtidor", - "create.ponder.spout_filling.text_3": "En su lugar, se pueden utilizar tuberías para suministrarle fluidos", - "create.ponder.spout_filling.text_4": "Los objetos de entrada pueden colocarse en un depósito bajo el surtidor", - "create.ponder.spout_filling.text_5": "Cuando los artículos se proporcionan en una cinta...", - "create.ponder.spout_filling.text_6": "El surtidor los retendrá y procesará automáticamente", - - "create.ponder.stabilized_bearings.header": "Estabilizar artilugios", - "create.ponder.stabilized_bearings.text_1": "Siempre que los rodamientos mecánicos formen parte de una estructura móvil...", - "create.ponder.stabilized_bearings.text_2": "...intentarán mantenerse derechos", - "create.ponder.stabilized_bearings.text_3": "Una vez más, el rodamiento se unirá al bloque de enfrente", - "create.ponder.stabilized_bearings.text_4": "Como resultado, todo el sub-artilugio se mantendrá en posición vertical", - - "create.ponder.sticker.header": "Fijar bloques con stickers", - "create.ponder.sticker.text_1": "Los stickers son ideales para la fijación de bloques controlados por redstone", - "create.ponder.sticker.text_2": "Al recibir una señal, cambiarán su estado", - "create.ponder.sticker.text_3": "Si ahora se mueve en un artilugio, el bloque se moverá con él", - "create.ponder.sticker.text_4": "Si se vuelve a activar, el bloque dejará de estar fijado", - - "create.ponder.stressometer.header": "Supervisar la información cinética con el estresómetro", - "create.ponder.stressometer.text_1": "El estresómetro muestra la capacidad de estrés actual de la red cinética conectada", - "create.ponder.stressometer.text_2": "Cuando se usan las gafas del constructor, el jugador puede obtener información más detallada del medidor", - "create.ponder.stressometer.text_3": "Los comparadores pueden emitir señales analógicas de redstone en relación con las mediciones del estresómetro", - - "create.ponder.super_glue.header": "Fijar bloques con pegamento", - "create.ponder.super_glue.text_1": "Se puede utilizar pegamento entre dos bloques cualquiera", - "create.ponder.super_glue.text_2": "Los bloques fijados se moverán juntos cuando se ensamblen en un artilugio", - "create.ponder.super_glue.text_3": "Cada vez que el pegamento es sostenido en la mano...", - "create.ponder.super_glue.text_4": "...los bloques añadidos se pegarán a la cara en la que fueron colocados automáticamente", - "create.ponder.super_glue.text_5": "El pegamento se puede quitar con un clic izquierdo", - - "create.ponder.valve_handle.header": "Generar fuerza rotacional mediante asas de válvula", - "create.ponder.valve_handle.text_1": "Los jugadores pueden utilizar las asas de válvulas para aplicar fuerza rotacional manualmente", - "create.ponder.valve_handle.text_2": "Mantén pulsado el clic derecho para rotar en sentido contrario a las agujas del reloj", - "create.ponder.valve_handle.text_3": "Su velocidad de transmisión es lenta y precisa", - "create.ponder.valve_handle.text_4": "Mayús izdo + clic derecho para rotar en el sentido de las agujas del reloj", - "create.ponder.valve_handle.text_5": "Las asas de las válvulas pueden teñirse con fines estéticos", - - "create.ponder.valve_pipe.header": "Controlar el flujo de fluidos mediante válvulas", - "create.ponder.valve_pipe.text_1": "Las tuberías con válvulas ayudan a controlar los fluidos que se propagan por las redes de tuberías", - "create.ponder.valve_pipe.text_2": "Su entrada en el eje controla si el fluido puede pasar por", - "create.ponder.valve_pipe.text_3": "Dada la fuerza de rotación en la dirección de apertura, la válvula se abrirá", - "create.ponder.valve_pipe.text_4": "Se puede volver a cerrar invirtiendo el giro de entrada", - - "create.ponder.water_wheel.header": "Generar fuerza rotacional mediante ruedas hidráulicas", - "create.ponder.water_wheel.text_1": "Las ruedas hidráulicas extraen la fuerza de las corrientes de agua adyacentes", - "create.ponder.water_wheel.text_2": "Cuantas más caras se alimenten, más rápido girará", - "create.ponder.water_wheel.text_3": "Las paletas de las ruedas deben estar orientadas en contra del flujo", - "create.ponder.water_wheel.text_4": "Orientadas hacia el lado contrario, no serán tan eficaces", - - "create.ponder.weighted_ejector.header": "Usar eyectores de peso", - "create.ponder.weighted_ejector.text_1": "Mayús izdo + clic derecho sosteniendo un eyector de peso para seleccionar la ubicación de destino", - "create.ponder.weighted_ejector.text_10": "Ahora estára limitado a este tamaño de pila, y sólo se activara cuando su pila retenida alcance esta cantidad", - "create.ponder.weighted_ejector.text_11": "Otras entidades activarán el eyector al pisarlos", - "create.ponder.weighted_ejector.text_2": "El eyector colocado lanzará ahora los objetos al lugar marcado", - "create.ponder.weighted_ejector.text_3": "Un objetivo válido puede estar a cualquier altura o distancia dentro del alcance", - "create.ponder.weighted_ejector.text_4": "Sin embargo, no pueden estar a un costado", - "create.ponder.weighted_ejector.text_5": "Si no se ha seleccionado ningún objetivo válido, simplemente se dirigirá al bloque que se encuentra justo delante", - "create.ponder.weighted_ejector.text_6": "Suministrale fuerza rotacional para cargarlo", - "create.ponder.weighted_ejector.text_7": "Los objetos colocados en el eyector hacen que se dispare", - "create.ponder.weighted_ejector.text_8": "Si se dirigen a un inventario, el eyector esperará hasta que haya espacio", - "create.ponder.weighted_ejector.text_9": "Con la llave inglesa se puede configurar el tamaño de pila requerido", - - "create.ponder.weighted_ejector_redstone.header": "Controlar los eyectores de peso con redstone", - "create.ponder.weighted_ejector_redstone.text_1": "Cuando se alimentan con redstone, los eyectores no se activan", - "create.ponder.weighted_ejector_redstone.text_2": "Además, los observadores de contenido pueden detectar cuando los eyectores se activan", - - "create.ponder.weighted_ejector_tunnel.header": "Dividir pilas de objetos mediante eyectores de peso", - "create.ponder.weighted_ejector_tunnel.text_1": "En combinación con los túneles de latón, los eyectores de peso pueden dividir las pilas de objetos en cantidades específicas", - "create.ponder.weighted_ejector_tunnel.text_2": "En primer lugar, configure el túnel de latón en 'Preferir lo más cercano', para dar prioridad a su salida lateral", - "create.ponder.weighted_ejector_tunnel.text_3": "El tamaño de la pila fijado en el eyector determina ahora la cantidad que se va a dividir", - "create.ponder.weighted_ejector_tunnel.text_4": "Mientras una nueva pila del tamaño configurado se expulse por la salida lateral...", - "create.ponder.weighted_ejector_tunnel.text_5": "...el resto seguirá su camino", - - "create.ponder.windmill_source.header": "Generar fuerza rotacional mediante rodamientos del molino de viento", - "create.ponder.windmill_source.text_1": "Los rodamientos del molino de viento se fijan al bloque que tienen delante", - "create.ponder.windmill_source.text_2": "Si se unen suficientes bloques tipo vela al bloque, éste puede actuar como un molino de viento", - "create.ponder.windmill_source.text_3": "Activado con un clic derecho, el rodamiento del molino de viento comenzará a proporcionar fuerza rotacional", - "create.ponder.windmill_source.text_4": "La cantidad de bloques de vela determina su velocidad de rotación", - "create.ponder.windmill_source.text_5": "Utiliza una llave inglesa para configurar su sentido de rotación", - "create.ponder.windmill_source.text_6": "Haga clic derecho sobre el rodamiento del molino en cualquier momento para detener y editar la estructura de nuevo", - - "create.ponder.windmill_structure.header": "Artilugios para molinos de viento", - "create.ponder.windmill_structure.text_1": "Cualquier estructura puede contar como un molino de viento válido, siempre que contenga al menos 8 bloques tipo vela.", - - "_": "Thank you for translating Create!" - -} From 2e3e3bc3cd7e2c28ef5f79c2718edaa8173cbaaa Mon Sep 17 00:00:00 2001 From: Nekrodamus Date: Sat, 7 Aug 2021 17:08:00 -0300 Subject: [PATCH 21/79] Delete es_mx.json --- .../resources/assets/create/lang/es_mx.json | 2305 ----------------- 1 file changed, 2305 deletions(-) delete mode 100644 src/main/resources/assets/create/lang/es_mx.json diff --git a/src/main/resources/assets/create/lang/es_mx.json b/src/main/resources/assets/create/lang/es_mx.json deleted file mode 100644 index 504694aab..000000000 --- a/src/main/resources/assets/create/lang/es_mx.json +++ /dev/null @@ -1,2305 +0,0 @@ -{ - - "_": "->------------------------] Game Elements [------------------------<-", - - "block.create.acacia_window": "Ventana de acacia", - "block.create.acacia_window_pane": "Panel de ventana de acacia", - "block.create.adjustable_chain_gearshift": "Cadena de transmisión ajustable", - "block.create.adjustable_crate": "Caja ajustable", - "block.create.adjustable_pulse_repeater": "Repetidor de pulso ajustable", - "block.create.adjustable_repeater": "Repetidor ajustable", - "block.create.analog_lever": "Palanca analógica", - "block.create.andesite_belt_funnel": "Embudo de cinta de andesita", - "block.create.andesite_bricks": "Ladrillos de andesita", - "block.create.andesite_bricks_slab": "Losa de ladrillos de andesita", - "block.create.andesite_bricks_stairs": "Escaleras de ladrillos de andesita", - "block.create.andesite_bricks_wall": "Muro de ladrillos de andesita", - "block.create.andesite_casing": "Revestidor de andesita", - "block.create.andesite_cobblestone": "Adoquín de andesita", - "block.create.andesite_cobblestone_slab": "Losa de adoquín de andesita", - "block.create.andesite_cobblestone_stairs": "Escaleras de adoquines de andesita", - "block.create.andesite_cobblestone_wall": "Muro de adoquines de andesita", - "block.create.andesite_encased_shaft": "Eje revestido de andesita", - "block.create.andesite_funnel": "Embudo de andesita", - "block.create.andesite_pillar": "Poste de andesita", - "block.create.andesite_tunnel": "Túnel de Andesita", - "block.create.basin": "Cuenca", - "block.create.belt": "Cinta", - "block.create.birch_window": "Ventana de abedul", - "block.create.birch_window_pane": "Panel de ventana de abedul", - "block.create.black_nixie_tube": "Tubo Nixie negro", - "block.create.black_sail": "Vela negra", - "block.create.black_seat": "Asiento negro", - "block.create.black_valve_handle": "Asa de válvula negra", - "block.create.blaze_burner": "Quemador de Blaze", - "block.create.blue_nixie_tube": "Tubo Nixie azul", - "block.create.blue_sail": "Vela azul", - "block.create.blue_seat": "Asiento azul", - "block.create.blue_valve_handle": "Asa de válvula azul", - "block.create.brass_belt_funnel": "Embudo de cinta de latón", - "block.create.brass_block": "Bloque de latón", - "block.create.brass_casing": "Revestidor de latón", - "block.create.brass_encased_shaft": "Eje revestido de latón", - "block.create.brass_funnel": "Embudo de latón", - "block.create.brass_tunnel": "Túnel de latón", - "block.create.brown_nixie_tube": "Tubo Nixie marrón", - "block.create.brown_sail": "Vela marrón", - "block.create.brown_seat": "Asiento marrón", - "block.create.brown_valve_handle": "Asa de válvula marrón", - "block.create.cart_assembler": "Ensamblador de vagonetas", - "block.create.chiseled_dark_scoria": "Escoria oscura cincelada", - "block.create.chiseled_dolomite": "Dolomita cincelada", - "block.create.chiseled_gabbro": "Gabro cincelado", - "block.create.chiseled_limestone": "Caliza cincelada", - "block.create.chiseled_scoria": "Escoria cincelada", - "block.create.chiseled_weathered_limestone": "Piedra caliza erosionada cincelada", - "block.create.chocolate": "Chocolate", - "block.create.chute": "Ducto", - "block.create.clockwork_bearing": "Rodamiento tipo reloj", - "block.create.clutch": "Embrague", - "block.create.cogwheel": "Engranaje pequeño", - "block.create.content_observer": "Observador de contenidos", - "block.create.controller_rail": "Raíl de control", - "block.create.copper_backtank": "Depósito trasero de cobre", - "block.create.copper_block": "Bloque de cobre", - "block.create.copper_casing": "Revestidor de caliza", - "block.create.copper_ore": "Mena de cobre", - "block.create.copper_shingles": "Bloque de tejas de cobre", - "block.create.copper_tiles": "Bloque de baldosas de cobre", - "block.create.copper_valve_handle": "Asa de válvula de cobre", - "block.create.creative_crate": "Caja creativa", - "block.create.creative_fluid_tank": "Tanque de fluidos creativo", - "block.create.creative_motor": "Motor creativo", - "block.create.crimson_window": "Ventana carmesí", - "block.create.crimson_window_pane": "Panel de ventana carmesí", - "block.create.crushing_wheel": "Rueda trituradora", - "block.create.crushing_wheel_controller": "Controlador de Rueda trituradora", - "block.create.cuckoo_clock": "Reloj de cuco", - "block.create.cyan_nixie_tube": "Tubo Nixie cian", - "block.create.cyan_sail": "Vela cian", - "block.create.cyan_seat": "Asiento cian", - "block.create.cyan_valve_handle": "Asa de válvula cian", - "block.create.dark_oak_window": "Ventana de roble oscuro", - "block.create.dark_oak_window_pane": "Panel de ventana de roble oscuro", - "block.create.dark_scoria": "Escoria oscura", - "block.create.dark_scoria_bricks": "Ladrillos de escoria oscura", - "block.create.dark_scoria_bricks_slab": "Losa de ladrillos de escoria oscura", - "block.create.dark_scoria_bricks_stairs": "Escaleras de ladrillos de escoria oscura", - "block.create.dark_scoria_bricks_wall": "Muro de ladrillos de escoria oscura", - "block.create.dark_scoria_cobblestone": "Adoquines de escoria oscura", - "block.create.dark_scoria_cobblestone_slab": "Losa de adoquines de escoria oscura", - "block.create.dark_scoria_cobblestone_stairs": "Escaleras de adoquines de escoria oscura", - "block.create.dark_scoria_cobblestone_wall": "Muro de adoquines de escoria oscura", - "block.create.dark_scoria_pillar": "Pilar de escoria oscura", - "block.create.deployer": "Desplegador", - "block.create.depot": "Depósito", - "block.create.diorite_bricks": "Ladrillos de diorita", - "block.create.diorite_bricks_slab": "Losa de ladrillos de diorita", - "block.create.diorite_bricks_stairs": "Escaleras de ladrillos de diorita", - "block.create.diorite_bricks_wall": "Muro de ladrillos de diorita", - "block.create.diorite_cobblestone": "Adoquín de diorita", - "block.create.diorite_cobblestone_slab": "Losa de adoquínes de diorita", - "block.create.diorite_cobblestone_stairs": "Escaleras de adoquines de diorita", - "block.create.diorite_cobblestone_wall": "Muro de adoquines de diorita", - "block.create.diorite_pillar": "Pilar de diorita", - "block.create.dolomite": "Dolomita", - "block.create.dolomite_bricks": "Ladrillos de dolomita", - "block.create.dolomite_bricks_slab": "Losa de ladrillos de dolomita", - "block.create.dolomite_bricks_stairs": "Escaleras de ladrillos de dolomita", - "block.create.dolomite_bricks_wall": "Muro de ladrillos de dolomita", - "block.create.dolomite_cobblestone": "Adoquín de dolomita", - "block.create.dolomite_cobblestone_slab": "Losa de adoquín de dolomita", - "block.create.dolomite_cobblestone_stairs": "Escaleras de adoquines de dolomita", - "block.create.dolomite_cobblestone_wall": "Muro de adoquines de dolomita", - "block.create.dolomite_pillar": "Pilar de dolomita", - "block.create.encased_chain_drive": "Cadena de transmisión revestida", - "block.create.encased_fan": "Ventilador revestido", - "block.create.encased_fluid_pipe": "Tubería de fluidos de cobre reforzada", - "block.create.fancy_andesite_bricks": "Ladrillos de andesita elegantes", - "block.create.fancy_andesite_bricks_slab": "Ladrillos de andesita elegantes", - "block.create.fancy_andesite_bricks_stairs": "Escaleras de ladrillos de andesita elegantes", - "block.create.fancy_andesite_bricks_wall": "Muro de ladrillos de andesita elegantes", - "block.create.fancy_dark_scoria_bricks": "Ladrillos de escoria oscura elegantes", - "block.create.fancy_dark_scoria_bricks_slab": "Losa de ladrillos de escoria oscura elegantes", - "block.create.fancy_dark_scoria_bricks_stairs": "Escalera de ladrillos de escoria oscura elegantes", - "block.create.fancy_dark_scoria_bricks_wall": "Muro de ladrillos de escoria oscura elegantes", - "block.create.fancy_diorite_bricks": "Ladrillos de diorita elegantes", - "block.create.fancy_diorite_bricks_slab": "Losa de ladrillos de diorita elegantes", - "block.create.fancy_diorite_bricks_stairs": "Escaleras de ladrillos de diorita elegantes", - "block.create.fancy_diorite_bricks_wall": "Muro de ladrillos de diorita elegantes", - "block.create.fancy_dolomite_bricks": "Ladrillos de dolomita elegantes", - "block.create.fancy_dolomite_bricks_slab": "Losa de ladrillos de dolomita elegantes", - "block.create.fancy_dolomite_bricks_stairs": "Escaleras de ladrillos de dolomita elegantes", - "block.create.fancy_dolomite_bricks_wall": "Muro de ladrillos de dolomita elegantes", - "block.create.fancy_gabbro_bricks": "Ladrillos de gabro elegantes", - "block.create.fancy_gabbro_bricks_slab": "Losa de ladrillos de gabro elegantes", - "block.create.fancy_gabbro_bricks_stairs": "Escaleras de ladrillos de gabro elegantes", - "block.create.fancy_gabbro_bricks_wall": "Muro de ladrillos de gabro elegantes", - "block.create.fancy_granite_bricks": "Ladrillos de granito elegantes", - "block.create.fancy_granite_bricks_slab": "Losa de ladrillos de granito elegantes", - "block.create.fancy_granite_bricks_stairs": "Escaleras de ladrillos de granito elegantes", - "block.create.fancy_granite_bricks_wall": "Muro de ladrillos de granito elegantes", - "block.create.fancy_limestone_bricks": "Ladrillos de piedra caliza elegantes", - "block.create.fancy_limestone_bricks_slab": "Losa de ladrillos de piedra caliza elegantes", - "block.create.fancy_limestone_bricks_stairs": "Escaleras de ladrillos de piedra caliza elegantes", - "block.create.fancy_limestone_bricks_wall": "Muro de ladrillos de piedra caliza elegantes", - "block.create.fancy_scoria_bricks": "Ladrillos de escoria elegantes", - "block.create.fancy_scoria_bricks_slab": "Losa de ladrillos de escoria elegantes", - "block.create.fancy_scoria_bricks_stairs": "Escaleras de ladrillos de escoria elegantes", - "block.create.fancy_scoria_bricks_wall": "Muro de ladrillos de escoria elegantes", - "block.create.fancy_weathered_limestone_bricks": "Ladrillos de piedra de caliza erosionada elegantes", - "block.create.fancy_weathered_limestone_bricks_slab": "Losa de ladrillos de caliza erosionada elegantes", - "block.create.fancy_weathered_limestone_bricks_stairs": "Escaleras de ladrillos de caliza erosionada elegantes", - "block.create.fancy_weathered_limestone_bricks_wall": "Muro de ladrillos de caliza erosionada elegantes", - "block.create.fluid_pipe": "Tubería de fluidos de cobre", - "block.create.fluid_tank": "Depósito de fluidos", - "block.create.fluid_valve": "Válvula de fluidos", - "block.create.flywheel": "Rueda de inercia", - "block.create.framed_glass": "Cristal enmarcado", - "block.create.framed_glass_pane": "Panel de cristal enmarcado", - "block.create.furnace_engine": "Motor de horno", - "block.create.gabbro": "Gabro", - "block.create.gabbro_bricks": "Ladrillos de gabro", - "block.create.gabbro_bricks_slab": "Losa de ladrillos de gabro", - "block.create.gabbro_bricks_stairs": "Escaleras de ladrillos de gabro", - "block.create.gabbro_bricks_wall": "Muro de ladrillos de gabro", - "block.create.gabbro_cobblestone": "Adoquín de gabro", - "block.create.gabbro_cobblestone_slab": "Losa de adoquínes de gabro", - "block.create.gabbro_cobblestone_stairs": "Escaleras de adoquínes de gabro", - "block.create.gabbro_cobblestone_wall": "Muro de adoquínes de gabro", - "block.create.gabbro_pillar": "Pilar de gabro", - "block.create.gantry_carriage": "Carro de grúa", - "block.create.gantry_shaft": "Eje de grúa", - "block.create.gearbox": "Caja de transmisión", - "block.create.gearshift": "Caja de cambios", - "block.create.glass_fluid_pipe": "Tubería de fluidos de cristal", - "block.create.granite_bricks": "Ladrillos de granito", - "block.create.granite_bricks_slab": "Losa de ladrillos de granito", - "block.create.granite_bricks_stairs": "Escaleras de ladrillos de granito", - "block.create.granite_bricks_wall": "Muro de ladrillos de granito", - "block.create.granite_cobblestone": "Adoquín de granito", - "block.create.granite_cobblestone_slab": "Losa de adoquínes de granito", - "block.create.granite_cobblestone_stairs": "Escaleras de adoquínes de granito", - "block.create.granite_cobblestone_wall": "Muro de adoquínes de granito", - "block.create.granite_pillar": "Pilar de granito", - "block.create.gray_nixie_tube": "Tubo Nixie gris", - "block.create.gray_sail": "Vela gris", - "block.create.gray_seat": "Asiento gris", - "block.create.gray_valve_handle": "Asa de válvula gris", - "block.create.green_nixie_tube": "Tubo Nixie verde", - "block.create.green_sail": "Vela verde", - "block.create.green_seat": "Asiento verde", - "block.create.green_valve_handle": "Asa de válvula verde", - "block.create.hand_crank": "Manivela", - "block.create.haunted_bell": "Campana encantada", - "block.create.honey": "Miel", - "block.create.horizontal_framed_glass": "Cristal con marco horizontal", - "block.create.horizontal_framed_glass_pane": "Panel de cristal con marco horizontal", - "block.create.hose_pulley": "Polea de manguera", - "block.create.item_drain": "Drenador de objetos", - "block.create.jungle_window": "Ventana de jungla", - "block.create.jungle_window_pane": "Panel de ventana de jungla", - "block.create.large_cogwheel": "Engranaje grande", - "block.create.layered_andesite": "Andesita estratificada", - "block.create.layered_dark_scoria": "Escoria oscura estratificada", - "block.create.layered_diorite": "Diorita estratificada", - "block.create.layered_dolomite": "Dolomita estratificada", - "block.create.layered_gabbro": "Gabro estratificado", - "block.create.layered_granite": "Granito estratificado", - "block.create.layered_limestone": "Piedra caliza estratificada", - "block.create.layered_scoria": "Escoria estratificada", - "block.create.layered_weathered_limestone": "Caliza erosionada estratificada", - "block.create.lectern_controller": "Controlador de atril", - "block.create.light_blue_nixie_tube": "Tubo Nixie azul claro", - "block.create.light_blue_sail": "Vela azul claro", - "block.create.light_blue_seat": "Asiento azul claro", - "block.create.light_blue_valve_handle": "Asa de válvula azul claro", - "block.create.light_gray_nixie_tube": "Tubo Nixie gris claro", - "block.create.light_gray_sail": "Vela gris claro", - "block.create.light_gray_seat": "Asiento gris claro", - "block.create.light_gray_valve_handle": "Asa de válvula gris claro", - "block.create.lime_nixie_tube": "Tubo Nixie lima", - "block.create.lime_sail": "Vela lima", - "block.create.lime_seat": "Asiento lima", - "block.create.lime_valve_handle": "Asa de válvula lima", - "block.create.limesand": "Arena caliza", - "block.create.limestone": "Piedra caliza", - "block.create.limestone_bricks": "Ladrillos de piedra caliza", - "block.create.limestone_bricks_slab": "Losa de ladrillos de piedra caliza", - "block.create.limestone_bricks_stairs": "Escaleras de ladrillos de piedra caliza", - "block.create.limestone_bricks_wall": "Muro de ladrillos de piedra caliza", - "block.create.limestone_cobblestone": "Adoquínes de piedra caliza", - "block.create.limestone_cobblestone_slab": "Losa de adoquines de piedra caliza", - "block.create.limestone_cobblestone_stairs": "Escaleras de adoquines de piedra caliza", - "block.create.limestone_cobblestone_wall": "Muro de adoquines de piedra caliza", - "block.create.limestone_pillar": "Pilar de piedra caliza", - "block.create.linear_chassis": "Chasis lineal", - "block.create.lit_blaze_burner": "Quemador de Blaze encendido", - "block.create.magenta_nixie_tube": "Tubo Nixie magenta", - "block.create.magenta_sail": "Vela magenta", - "block.create.magenta_seat": "Asiento magenta", - "block.create.magenta_valve_handle": "Asa de válvula magenta", - "block.create.mechanical_arm": "Brazo mecánico", - "block.create.mechanical_bearing": "Rodamiento mecánico", - "block.create.mechanical_crafter": "Ensamblador mecánico", - "block.create.mechanical_drill": "Taladro mecánico", - "block.create.mechanical_harvester": "Cosechadora mecánica", - "block.create.mechanical_mixer": "Mezcladora mecánica", - "block.create.mechanical_piston": "Pistón mecánico", - "block.create.mechanical_piston_head": "Cabezal de pistón mecánico", - "block.create.mechanical_plough": "Arado mecánico", - "block.create.mechanical_press": "Prensa mecánica", - "block.create.mechanical_pump": "Bomba mecánica", - "block.create.mechanical_saw": "Sierra mecánica", - "block.create.metal_bracket": "Soporte de metal para ejes", - "block.create.millstone": "Piedra de molino", - "block.create.minecart_anchor": "Ancla de vagonetas", - "block.create.mossy_andesite": "Andesita musgosa", - "block.create.mossy_dark_scoria": "Escoria oscura musgosa", - "block.create.mossy_diorite": "Diorita musgosa", - "block.create.mossy_dolomite": "Dolomita musgosa", - "block.create.mossy_gabbro": "Gabro musgoso", - "block.create.mossy_granite": "Granito musgoso", - "block.create.mossy_limestone": "Caliza musgosa", - "block.create.mossy_scoria": "Escoria musgosa", - "block.create.mossy_weathered_limestone": "Caliza erosionada musgosa", - "block.create.mysterious_cuckoo_clock": "Reloj de cuco", - "block.create.natural_scoria": "Escoria natural", - "block.create.nixie_tube": "Tubo Nixie", - "block.create.nozzle": "Boquilla", - "block.create.oak_window": "Ventana de roble", - "block.create.oak_window_pane": "Panel de ventana de roble", - "block.create.orange_sail": "Vela naranja", - "block.create.orange_seat": "Asiento naranja", - "block.create.orange_valve_handle": "Asa de válvula naranja", - "block.create.ornate_iron_window": "Ventana de hierro ornamentada", - "block.create.ornate_iron_window_pane": "Panel de ventana de hierro ornamentada", - "block.create.overgrown_andesite": "Andesita sobredimensionada", - "block.create.overgrown_dark_scoria": "Escoria oscura sobredimensionada", - "block.create.overgrown_diorite": "Diorita sobredimensionada", - "block.create.overgrown_dolomite": "Dolomita sobredimensionada", - "block.create.overgrown_gabbro": "Gabro sobredimensionado", - "block.create.overgrown_granite": "Granito sobredimensionado", - "block.create.overgrown_limestone": "Caliza sobredimensionada", - "block.create.overgrown_scoria": "Escoria sobredimensionada", - "block.create.overgrown_weathered_limestone": "Caliza erosionada sobredimensionada", - "block.create.paved_andesite": "Andesita pavimentada", - "block.create.paved_andesite_slab": "Losa de andesita pavimentada", - "block.create.paved_andesite_stairs": "Escaleras de andesita pavimentada", - "block.create.paved_andesite_wall": "Muro de andesita pavimentada", - "block.create.paved_dark_scoria": "Escoria oscura pavimentada", - "block.create.paved_dark_scoria_slab": "Losa de escoria oscura pavimentada", - "block.create.paved_dark_scoria_stairs": "Escaleras de escoria oscura pavimentada", - "block.create.paved_dark_scoria_wall": "Muro de escoria oscura pavimentad", - "block.create.paved_diorite": "Diorita pavimentada", - "block.create.paved_diorite_slab": "Losa de diorita pavimentada", - "block.create.paved_diorite_stairs": "Escaleras de diorita pavimentada", - "block.create.paved_diorite_wall": "Muro de diorita pavimentad", - "block.create.paved_dolomite": "Dolomita pavimentada", - "block.create.paved_dolomite_slab": "Losa de dolomita pavimentada", - "block.create.paved_dolomite_stairs": "Escaleras de dolomita pavimentada", - "block.create.paved_dolomite_wall": "Muro de dolomita pavimentada", - "block.create.paved_gabbro": "Gabro pavimentado", - "block.create.paved_gabbro_slab": "Losa de gabro pavimentado", - "block.create.paved_gabbro_stairs": "Escaleras de gabro pavimentado", - "block.create.paved_gabbro_wall": "Muro de gabro pavimentado", - "block.create.paved_granite": "Granito pavimentado", - "block.create.paved_granite_slab": "Losa de granito pavimentado", - "block.create.paved_granite_stairs": "Escaleras de granito pavimentado", - "block.create.paved_granite_wall": "Muro de granito pavimentado", - "block.create.paved_limestone": "Piedra caliza pavimentada", - "block.create.paved_limestone_slab": "Losa de piedra caliza pavimentada", - "block.create.paved_limestone_stairs": "Escaleras de piedra caliza pavimentada", - "block.create.paved_limestone_wall": "Muro de piedra caliza pavimentada", - "block.create.paved_scoria": "Escoria pavimentada", - "block.create.paved_scoria_slab": "Losa de escoria pavimentada", - "block.create.paved_scoria_stairs": "Escaleras de escoria pavimentada", - "block.create.paved_scoria_wall": "Muro de escoria pavimentada", - "block.create.paved_weathered_limestone": "Piedra caliza erosionada pavimentada", - "block.create.paved_weathered_limestone_slab": "Losa de piedra caliza erosionada pavimentada", - "block.create.paved_weathered_limestone_stairs": "Escaleras de piedra caliza erosionada pavimentada", - "block.create.paved_weathered_limestone_wall": "Muro de piedra caliza erosionada pavimentada", - "block.create.peculiar_bell": "Campana peculiar", - "block.create.pink_nixie_tube": "Tubo Nixie rosa", - "block.create.pink_sail": "Vela rosa", - "block.create.pink_seat": "Asiento rosa", - "block.create.pink_valve_handle": "Asa de válvula rosa", - "block.create.piston_extension_pole": "Pértiga de extensión de pistón", - "block.create.polished_dark_scoria": "Escoria oscura pulida", - "block.create.polished_dark_scoria_slab": "Losa de escoria oscura pulida", - "block.create.polished_dark_scoria_stairs": "Escaleras de escoria oscura pulida", - "block.create.polished_dark_scoria_wall": "Muro de escoria oscura pulida", - "block.create.polished_dolomite": "Dolomita pulida", - "block.create.polished_dolomite_slab": "Losa de dolomita pulida", - "block.create.polished_dolomite_stairs": "Escaleras de dolomita pulidas", - "block.create.polished_dolomite_wall": "Muro de dolomita pulida", - "block.create.polished_gabbro": "Gabro pulido", - "block.create.polished_gabbro_slab": "Losa de gabro pulido", - "block.create.polished_gabbro_stairs": "Escaleras de gabro pulido", - "block.create.polished_gabbro_wall": "Muro de gabro pulido", - "block.create.polished_limestone": "Piedra caliza pulida", - "block.create.polished_limestone_slab": "Losa de piedra caliza pulida", - "block.create.polished_limestone_stairs": "Escaleras de piedra caliza pulidas", - "block.create.polished_limestone_wall": "Muro de piedra caliza pulida", - "block.create.polished_scoria": "Escoria pulida", - "block.create.polished_scoria_slab": "Losa de escoria pulida", - "block.create.polished_scoria_stairs": "Escaleras de losa pulida", - "block.create.polished_scoria_wall": "Muro de escoria pulida", - "block.create.polished_weathered_limestone": "Piedra caliza erosionada pulida", - "block.create.polished_weathered_limestone_slab": "Losa de piedra caliza erosionada pulida", - "block.create.polished_weathered_limestone_stairs": "Escaleras de piedra caliza erosionada pulida", - "block.create.polished_weathered_limestone_wall": "Muro de piedra caliza erosionada pulida", - "block.create.portable_fluid_interface": "Interfaz de fluidos portátil", - "block.create.portable_storage_interface": "Interfaz de almacenamiento portátil", - "block.create.powered_latch": "Palanca motorizada", - "block.create.powered_toggle_latch": "Palanca de cierre motorizada", - "block.create.pulley_magnet": "Imán de la polea", - "block.create.pulse_repeater": "Repetidor de pulsos de redstone", - "block.create.purple_nixie_tube": "Tubo Nixie morado", - "block.create.purple_sail": "Vela morada", - "block.create.purple_seat": "Asiento morado", - "block.create.purple_valve_handle": "Asa de válvula morada", - "block.create.radial_chassis": "Chasis radial", - "block.create.red_nixie_tube": "Tubo Nixie rojo", - "block.create.red_sail": "Vela roja", - "block.create.red_seat": "Asiento rojo", - "block.create.red_valve_handle": "Asa de válvula roja", - "block.create.redstone_contact": "Contacto de redstone", - "block.create.redstone_link": "Enlace de redstone", - "block.create.refined_radiance_casing": "Revestidor radiante", - "block.create.reinforced_rail": "Raíl reforzado", - "block.create.rope": "Cuerda", - "block.create.rope_pulley": "Polea de cuerda", - "block.create.rotation_speed_controller": "Controlador de velocidad rotacional", - "block.create.sail_frame": "Marco de vela", - "block.create.schematic_table": "Tabla de esquemas", - "block.create.schematicannon": "Cañón de esquemas", - "block.create.scoria": "Escoria", - "block.create.scoria_bricks": "Ladrillos de escoria", - "block.create.scoria_bricks_slab": "Losa de ladrillos de escoria", - "block.create.scoria_bricks_stairs": "Escaleras de ladrillos de escoria", - "block.create.scoria_bricks_wall": "Muro de ladrillos de escoria", - "block.create.scoria_cobblestone": "Adoquín de escoria", - "block.create.scoria_cobblestone_slab": "Losa de adoquínes de escoria", - "block.create.scoria_cobblestone_stairs": "Escaleras de adoquines de escoria", - "block.create.scoria_cobblestone_wall": "Muro de adoquines de escoria", - "block.create.scoria_pillar": "Pilar de escoria", - "block.create.secondary_linear_chassis": "Chasis lineal secundario", - "block.create.sequenced_gearshift": "Caja de cambios secuencial", - "block.create.shadow_steel_casing": "Revestidor sombrío", - "block.create.shaft": "Eje", - "block.create.smart_chute": "Ducto inteligente", - "block.create.smart_fluid_pipe": "Tubería de fluidos inteligente", - "block.create.speedometer": "Velocímetro", - "block.create.spout": "Surtidor", - "block.create.spruce_window": "Ventana de abeto", - "block.create.spruce_window_pane": "Panel de ventana de abeto", - "block.create.sticker": "Sticker", - "block.create.sticky_mechanical_piston": "Pistón mecánico pegajoso", - "block.create.stockpile_switch": "Interruptor de acopio", - "block.create.stressometer": "Estresómetro", - "block.create.tiled_glass": "Vidrio esmaltado", - "block.create.tiled_glass_pane": "Panel de vidrio esmaltado", - "block.create.turntable": "Plataforma giratoria mecánica", - "block.create.vertical_framed_glass": "Vidrio esmaltado vertical", - "block.create.vertical_framed_glass_pane": "Panel de vidrio esmaltado vertical", - "block.create.warped_window": "Ventana distorsionada", - "block.create.warped_window_pane": "Panel de ventana distorsionada", - "block.create.water_wheel": "Rueda hidráulica mecánica", - "block.create.weathered_limestone": "Piedra caliza erosionada", - "block.create.weathered_limestone_bricks": "Ladrillos de piedra caliza erosionada", - "block.create.weathered_limestone_bricks_slab": "Losa de piedra caliza erosionada", - "block.create.weathered_limestone_bricks_stairs": "Escaleras de ladrillos de piedra caliza erosionada", - "block.create.weathered_limestone_bricks_wall": "Muro de ladrillos de piedra caliza erosionada", - "block.create.weathered_limestone_cobblestone": "Adoquín de piedra caliza erosionada", - "block.create.weathered_limestone_cobblestone_slab": "Losa de adoquín de piedra caliza erosionada", - "block.create.weathered_limestone_cobblestone_stairs": "Escaleras de adoquín de piedra caliza erosionada", - "block.create.weathered_limestone_cobblestone_wall": "Muro de adoquínes de piedra caliza erosionada", - "block.create.weathered_limestone_pillar": "Pilar de piedra caliza erosionada", - "block.create.weighted_ejector": "Eyector de peso", - "block.create.white_nixie_tube": "Tubo Nixie blanco", - "block.create.white_sail": "Vela blanca", - "block.create.white_seat": "Asiento blanco", - "block.create.white_valve_handle": "Asa de válvula blanco", - "block.create.windmill_bearing": "Rodamiento del molino de viento", - "block.create.wooden_bracket": "Soporte de madera para ejes", - "block.create.yellow_nixie_tube": "Tubo Nixie amarillo", - "block.create.yellow_sail": "Vela amarilla", - "block.create.yellow_seat": "Asiento amarillo", - "block.create.yellow_valve_handle": "Asa de válvula amarillo", - "block.create.zinc_block": "Bloque de zinc", - "block.create.zinc_ore": "Mena de zinc", - - "enchantment.create.capacity": "Capacidad", - "enchantment.create.potato_recovery": "Recuperación de patatas", - - "entity.create.contraption": "Artilugio", - "entity.create.crafting_blueprint": "Plano de elaboración", - "entity.create.gantry_contraption": "Artilugio de grúa", - "entity.create.potato_projectile": "Proyectil de patata", - "entity.create.seat": "Asiento", - "entity.create.stationary_contraption": "Artilugio estacionario", - "entity.create.super_glue": "Pegamento", - - "fluid.create.potion": "Poción", - "fluid.create.tea": "Té del Constructor", - - "item.create.andesite_alloy": "Aleación de andesita", - "item.create.attribute_filter": "Filtro de atributos", - "item.create.bar_of_chocolate": "Barra de chocolate", - "item.create.belt_connector": "Correa mecánica", - "item.create.blaze_cake": "Pastel de blaze", - "item.create.blaze_cake_base": "Base de pastel de blaze", - "item.create.brass_hand": "Mano de latón", - "item.create.brass_ingot": "Lingote de latón", - "item.create.brass_nugget": "Pepita de latón", - "item.create.brass_sheet": "Lámina de latón", - "item.create.builders_tea": "Té del Constructor", - "item.create.chest_minecart_contraption": "Artilugio de vagoneta con cofre", - "item.create.chocolate_bucket": "Cubo con chocolate", - "item.create.chocolate_glazed_berries": "Bayas glaseadas con chocolate", - "item.create.chromatic_compound": "Compuesto cromático", - "item.create.cinder_flour": "Harina del Nether", - "item.create.copper_backtank": "Depósito trasero de cobre", - "item.create.copper_ingot": "Lingote de cobre", - "item.create.copper_nugget": "Pepita de cobre", - "item.create.copper_sheet": "Lámina de cobre", - "item.create.crafter_slot_cover": "Tapa de ranura del ensamblador mecánico", - "item.create.crafting_blueprint": "Plano de elaboración", - "item.create.creative_blaze_cake": "´Pastel de blaze creativo", - "item.create.crushed_aluminum_ore": "Mineral de aluminio molido", - "item.create.crushed_brass": "Latón molido", - "item.create.crushed_copper_ore": "Mineral de cobre molido", - "item.create.crushed_gold_ore": "Mineral de oro molido", - "item.create.crushed_iron_ore": "Mineral de hierro molido", - "item.create.crushed_lead_ore": "Mineral de plomo molido", - "item.create.crushed_nickel_ore": "Mineral de níquel molido", - "item.create.crushed_osmium_ore": "Mineral de osmio molido", - "item.create.crushed_platinum_ore": "Mineral de platino molido", - "item.create.crushed_quicksilver_ore": "Mineral de mercurio molido", - "item.create.crushed_silver_ore": "Mineral de plata molido", - "item.create.crushed_tin_ore": "Mineral de estaño molido", - "item.create.crushed_uranium_ore": "Mineral de uranio molido", - "item.create.crushed_zinc_ore": "Mineral de zinc molido", - "item.create.diving_boots": "Botas de buceo", - "item.create.diving_helmet": "Casco de buceo", - "item.create.dough": "Masilla", - "item.create.electron_tube": "Tubo de electrones", - "item.create.empty_blaze_burner": "Quemador de blaze vacío", - "item.create.empty_schematic": "Esquema vacío", - "item.create.extendo_grip": "Agarre extendido", - "item.create.filter": "Filtro", - "item.create.furnace_minecart_contraption": "Artilugio de vagoneta de horno", - "item.create.goggles": "Gafas del constructor", - "item.create.golden_sheet": "Lámina de oro", - "item.create.handheld_worldshaper": "Worldshaper Creativo", - "item.create.honey_bucket": "Cubo con miel", - "item.create.honeyed_apple": "Manzana con miel", - "item.create.incomplete_cogwheel": "Engranaje pequeño incompleto", - "item.create.incomplete_large_cogwheel": "Engranaje grande incompleto", - "item.create.incomplete_precision_mechanism": "Mecanismo de precisión incompleto", - "item.create.iron_sheet": "Lámina de hierro", - "item.create.linked_controller": "Controlador enlazado", - "item.create.minecart_contraption": "Artilugio de vagoneta", - "item.create.minecart_coupling": "Acoplamiento de vagoneta", - "item.create.polished_rose_quartz": "Cuarzo rosado pulido", - "item.create.potato_cannon": "Cañón de patatas", - "item.create.powdered_obsidian": "Polvo de obsidiana", - "item.create.precision_mechanism": "Mecanismo de precisión", - "item.create.propeller": "Hélice", - "item.create.red_sand_paper": "Papel de lija rojo", - "item.create.refined_radiance": "Resplandor refinado", - "item.create.rose_quartz": "Cuarzo rosado", - "item.create.sand_paper": "Papel de lija", - "item.create.schematic": "Esquema", - "item.create.schematic_and_quill": "Esquema y pluma", - "item.create.shadow_steel": "Acero sombrío", - "item.create.super_glue": "Pegamento", - "item.create.sweet_roll": "Pan dulce", - "item.create.tree_fertilizer": "Fertilizante para árboles", - "item.create.vertical_gearbox": "Caja de transmisión vertical", - "item.create.wand_of_symmetry": "Varita de simetría", - "item.create.wheat_flour": "Harina de trigo", - "item.create.whisk": "Batidora", - "item.create.wrench": "Llave inglesa", - "item.create.zinc_ingot": "Lingote de zinc", - "item.create.zinc_nugget": "Pepita de zinc", - - - "_": "->------------------------] Advancements [------------------------<-", - - "advancement.create.root": "Bienvenido a Create", - "advancement.create.root.desc": "¡Es hora de empezar a construir increíbles artilugios!", - "advancement.create.andesite_alloy": "Aleaciones en abundancia", - "advancement.create.andesite_alloy.desc": "Los materiales de Create tienen nombres extraños, la aleación de andesita es uno de ellos.", - "advancement.create.its_alive": "¡Está vivo!", - "advancement.create.its_alive.desc": "Mira cómo gira tu primer componente cinético.", - "advancement.create.shifting_gears": "Cambiando de marcha", - "advancement.create.shifting_gears.desc": "Conecta un engranaje grande a uno pequeño, lo que te permitirá cambiar la velocidad de tu artilugio.", - "advancement.create.overstressed": "Sobrecargado", - "advancement.create.overstressed.desc": "Experimenta los límites del estrés.", - "advancement.create.belt": "Paseo de algas", - "advancement.create.belt.desc": "Conectar dos ejes con una correa.", - "advancement.create.tunnel": "¡Cúbrete!", - "advancement.create.tunnel.desc": "Embellece tu correa con un túnel.", - "advancement.create.splitter_tunnel": "Divide y vencerás", - "advancement.create.splitter_tunnel.desc": "Crear un divisor con un grupo de túneles de latón.", - "advancement.create.chute": "Caída en picado", - "advancement.create.chute.desc": "Coloque un ducto, la contrapartida vertical de la cinta.", - "advancement.create.upward_chute": "Abducción aérea", - "advancement.create.upward_chute.desc": "Observe cómo un objeto lanzado vuela dentro de un ducto impulsado por un ventilador.", - "advancement.create.belt_funnel": "Colgantes con forma de embudo", - "advancement.create.belt_funnel.desc": "Coloca un embudo lateral encima de una cinta o depósito para crear un tipo especial.", - "advancement.create.belt_funnel_kiss": "Los loros y las aletas", - "advancement.create.belt_funnel_kiss.desc": "Haz besar dos embudos montados con una cinta.", - "advancement.create.fan": "Maestro mecánico del aire", - "advancement.create.fan.desc": "Monta la corriente de aire proporcionada por un ventilador revestido.", - "advancement.create.fan_lava": "Calentador geotérmico", - "advancement.create.fan_lava.desc": "Queda atrapado en una corriente de aire que funde las cosas.", - "advancement.create.fan_water": "Lavado de la ropa", - "advancement.create.fan_water.desc": "Queda atrapado en una corriente de aire que lava las cosas.", - "advancement.create.fan_smoke": "Fuelle mecánico", - "advancement.create.fan_smoke.desc": "Queda atrapado en una corriente de aire que humea los objetos.", - "advancement.create.wrench": "Configurar convenientemente", - "advancement.create.wrench.desc": "Crea una llave inglesa para ayudarte a construir tus artilugios.", - "advancement.create.goggles": "Estresóvisión", - "advancement.create.goggles.desc": "Crea unas gafas del constructor para ayudarte a obtener más información cinética de los componentes.", - "advancement.create.speedometer": "Pero, ¿con qué rapidez exactamente?", - "advancement.create.speedometer.desc": "Coloca y alimenta un velocímetro. Míralo a través de las gafas para leer su valor exacto.", - "advancement.create.stressometer": "Pero, ¿cuán estresado exactamente??", - "advancement.create.stressometer.desc": "Coloca y alimenta un estresómetro. Míralo a través de las gafas para leer su valor exacto.", - "advancement.create.aesthetics": "Boom, ¡Estética!", - "advancement.create.aesthetics.desc": "Coloca soportes en ejes, ductos y engranajes.", - "advancement.create.reinforced": "Boom, ¡Reforzado!", - "advancement.create.reinforced.desc": "Utiliza bloques de revestimiento en un eje, un ducto y una cinta.", - "advancement.create.water_wheel": "Aprovechar la hidráulica", - "advancement.create.water_wheel.desc": "Coloca una rueda hidráulica e intenta hacerla girar.", - "advancement.create.chocolate_wheel": "Potencia de buen gusto", - "advancement.create.chocolate_wheel.desc": "Haz funcionar una rueda de agua con chocolate fundido.", - "advancement.create.lava_wheel": "Rueda de magma", - "advancement.create.lava_wheel.desc": "Esto no debió haber funcionado.", - "advancement.create.cuckoo": "¿Es el momento?", - "advancement.create.cuckoo.desc": "Presencia cómo un reloj de cuco anuncia la hora de acostarse.", - "advancement.create.millstone": "Triturador de bolsillo", - "advancement.create.millstone.desc": "Coloca y alimenta una piedra de molino.", - "advancement.create.windmill": "Una suave brisa", - "advancement.create.windmill.desc": "Monta un molino de viento.", - "advancement.create.maxed_windmill": "Una fuerte brisa", - "advancement.create.maxed_windmill.desc": "Monta un molino de viento con máxima intensidad.", - "advancement.create.andesite_casing": "La edad de la andesita", - "advancement.create.andesite_casing.desc": "Utiliza un poco de aleación de andesita y madera para crear un revestimiento básico.", - "advancement.create.mechanical_drill": "Interruptores fijos", - "advancement.create.mechanical_drill.desc": "Coloca y alimenta un taladro mecánico.", - "advancement.create.press": "¡La prensa se pone en marcha!", - "advancement.create.press.desc": "Activa una prensa mecánica y utilízala para crear algunas láminas.", - "advancement.create.polished_rose_quartz": "Diamantes rosas", - "advancement.create.polished_rose_quartz.desc": "Utiliza un trozo de papel de lija para pulir el cuarzo rosa hasta que se vuelva transparente.", - "advancement.create.electron_tube": "Beep Boop", - "advancement.create.electron_tube.desc": "Haz algunos tubos de electrones, útiles en la fabricación de maquinaria menos primitiva.", - "advancement.create.mechanical_saw": "Picado estacionario", - "advancement.create.mechanical_saw.desc": "Coloca y alimenta una sierra mecánica.", - "advancement.create.basin": "Funcionamiento de la cuenca", - "advancement.create.basin.desc": "Coloca una cuenca e intenta arrojar objetos en ella.", - "advancement.create.mixer": "Mezcla de colores", - "advancement.create.mixer.desc": "Coloca una batidora mecánica sobre el lavabo, enciéndala y empiece a mezclar algunos ingredientes.", - "advancement.create.blaze_burner": "Una chimenea viva", - "advancement.create.blaze_burner.desc": "Obtiene un quemador de blaze.", - "advancement.create.compact": "Compactación automática", - "advancement.create.compact.desc": "Utiliza una prensa y una cuenca para compactar algunos objetos.", - "advancement.create.brass": "Aleaciones reales", - "advancement.create.brass.desc": "Utiliza cobre molido y zinc molido para crear algo de latón.", - "advancement.create.brass_casing": "La Edad de Latón", - "advancement.create.brass_casing.desc": "Utiliza el latón recién obtenido y algo de madera para crear un revestimiento más avanzado.", - "advancement.create.copper_casing": "La Edad de Cobre", - "advancement.create.copper_casing.desc": "Utiliza algunas láminas de cobre y madera para crear algunos revestimientos de cobre.", - "advancement.create.spout": "Sploosh", - "advancement.create.spout.desc": "Observa el llenado de un fluido usando una boquilla.", - "advancement.create.spout_potion": "Cervecera global", - "advancement.create.spout_potion.desc": "Mira cómo un pico llena una botella con líquido de poción.", - "advancement.create.chocolate": "Un mundo de imaginación", - "advancement.create.chocolate.desc": "Obtiene un cubo con chocolate fundido.", - "advancement.create.item_drain": "Drenaje de la ropa", - "advancement.create.item_drain.desc": "Ve cómo se vacía un fluido mediante un drenador de objetos.", - "advancement.create.chained_item_drain": "¡Déjalo rodar!", - "advancement.create.chained_item_drain.desc": "Observa cómo un objeto rueda por varios drenadores de objetos encadenados.", - "advancement.create.glass_pipe": "Espía del flujo", - "advancement.create.glass_pipe.desc": "Observa cómo se propaga el fluido a través de un tubo de fluidos con ventanas. Los tubos de fluido rectos se convierten en ventanas cuando se utiliza una llave inglesa en ellas.", - "advancement.create.pipe_collision": "No cruzar nunca los arroyos", - "advancement.create.pipe_collision.desc": "Vea cómo se unen dos fluidos en su red de tuberías.", - "advancement.create.pipe_spill": "¡Hay una fuga!", - "advancement.create.pipe_spill.desc": "Observe cómo un extremo abierto de una tubería toma o deposita fluidos en el mundo.", - "advancement.create.hose_pulley": "Vertidos industriales", - "advancement.create.hose_pulley.desc": "Baja una polea de manguera y ve cómo se vacía o se llena un cuerpo de líquido.", - "advancement.create.infinite_water": "Drenando el océano", - "advancement.create.infinite_water.desc": "Bombea de una masa de agua lo suficientemente grande como para ser considerada infinita.", - "advancement.create.infinite_lava": "Drenaje del núcleo de los planetas", - "advancement.create.infinite_lava.desc": "Bombea de una masa de lava lo suficientemente grande como para ser considerada infinita.", - "advancement.create.infinite_chocolate": "Ahogándose en la imaginación", - "advancement.create.infinite_chocolate.desc": "Bombea desde una masa de chocolate fundido lo suficientemente grande como para ser considerado infinito.", - "advancement.create.crafter": "Montaje automatizado", - "advancement.create.crafter.desc": "Coloca y alimenta algunos ensambladores.", - "advancement.create.clockwork_bearing": "Artilugio a la hora", - "advancement.create.clockwork_bearing.desc": "Ensamblar una estructura montada sobre un rodamiento tipo reloj.", - "advancement.create.nixie_tube": "Signos de estilo", - "advancement.create.nixie_tube.desc": "Obtener y colocar un par de tubos nixie.", - "advancement.create.deployer": "Picar, colocar y atacar", - "advancement.create.deployer.desc": "Coloca y potencia un desplegador, el reflejo perfecto de ti mismo.", - "advancement.create.speed_controller": "Los ingenieros lo odian!", - "advancement.create.speed_controller.desc": "Coloca un controlador de velocidad rotacional, el dispositivo definitivo para cambiar de marcha.", - "advancement.create.flywheel": "El corazón de la fábrica", - "advancement.create.flywheel.desc": "Conecta con éxito un motor a la rueda de inercia.", - "advancement.create.overstress_flywheel": "Altos niveles de estrés", - "advancement.create.overstress_flywheel.desc": "Sobrecarga un motor de horno.", - "advancement.create.precision_mechanism": "Curiosidades complejas", - "advancement.create.precision_mechanism.desc": "Monta un mecanismo de precisión.", - "advancement.create.mechanical_arm": "¡Manos ocupadas!", - "advancement.create.mechanical_arm.desc": "Crea un brazo mecánico, selecciona las entradas y salidas, colócalo en el suelo y dale energía; luego observa cómo hace todo el trabajo por ti.", - "advancement.create.musical_arm": "¡Tócame la melodía!", - "advancement.create.musical_arm.desc": "Vea cómo un brazo mecánico maneja su tocadiscos.", - "advancement.create.arm_many_targets": "Organize-o-Tron", - "advancement.create.arm_many_targets.desc": "Programa un brazo mecánico con diez o más posiciones de salida.", - "advancement.create.arm_blaze_burner": "Combust-o-Tron", - "advancement.create.arm_blaze_burner.desc": "Instruya un brazo mecánico para alimentar su quemador de blaze.", - "advancement.create.fist_bump": "¡Pégale, hermano!", - "advancement.create.fist_bump.desc": "Haz que dos desplegadores se den un puñetazo.", - "advancement.create.crushing_wheel": "Un par de gigantes", - "advancement.create.crushing_wheel.desc": "Crea algunas ruedas de trituración para descomponer más materiales de forma más eficaz.", - "advancement.create.blaze_cake": "Fiebre del azúcar", - "advancement.create.blaze_cake.desc": "Hornea en tu quemador de blaze un pastel especial.", - "advancement.create.chromatic_compound": "Minerales misteriosos", - "advancement.create.chromatic_compound.desc": "Crea una barra de compuesto cromático.", - "advancement.create.shadow_steel": "Retorno del vacío", - "advancement.create.shadow_steel.desc": "Crea acero sombrío, una barra de metal de la nada.", - "advancement.create.refined_radiance": "Brillante e inspirador", - "advancement.create.refined_radiance.desc": "Crea un resplandor refinado, una poderosa sustancia cromática.", - "advancement.create.chromatic_age": "La edad cromática", - "advancement.create.chromatic_age.desc": "Crear bloques de revestimiento de la luz y la oscuridad.", - "advancement.create.wand_of_symmetry": "Espejos radiantes", - "advancement.create.wand_of_symmetry.desc": "Crear un bastón de simetría.", - "advancement.create.extendo_grip": "¡Boioioing!", - "advancement.create.extendo_grip.desc": "Hazte con un agarre extentido.", - "advancement.create.potato_cannon": "Fwoomp!", - "advancement.create.potato_cannon.desc": "Derrota a un enemigo con tu cañón de patatas.", - "advancement.create.dual_extendo_grip": "La última edad del boing", - "advancement.create.dual_extendo_grip.desc": "Doble empuñadura extendida para un alcance sobrehumano.", - "advancement.create.eob": "Fin de la beta", - "advancement.create.eob.desc": "Espere más contenido aquí en el futuro. <3", - - - "_": "->------------------------] UI & Messages [------------------------<-", - - "itemGroup.create.base": "Create", - "itemGroup.create.palettes": "Paletas", - - "death.attack.create.crush": "%1$s se procesó en las ruedas de trituración", - "death.attack.create.crush.player": "%1$s fue arrojado a las ruedas de trituración por %2$s", - "death.attack.create.fan_fire": "%1$s murió quemado por el aire caliente", - "death.attack.create.fan_fire.player": "%1$s fue arrojado a un ahumador por %2$s", - "death.attack.create.fan_lava": "%1$s murió quemado por un abanico de lava", - "death.attack.create.fan_lava.player": "%1$s fue arrojado a una fundición por %2$s", - "death.attack.create.mechanical_drill": "%1$s fue empalado por un taladro mecánico", - "death.attack.create.mechanical_drill.player": "%1$s fue lanzado frente a un taladro por %2$s", - "death.attack.create.mechanical_saw": "%1$s fue cortado por la mitad por una sierra mecánica", - "death.attack.create.mechanical_saw.player": "%1$s fue arrojado a una sierra por %2$s", - "death.attack.create.potato_cannon": "%1$s fue disparado por el cañón de patatas de %2$s's", - "death.attack.create.potato_cannon.item": "%1$s fue disparado por %2$s utilizando %3$s", - "death.attack.create.cuckoo_clock_explosion": "%1$s fue volado por los aires por un reloj de cuco manipulado", - "death.attack.create.cuckoo_clock_explosion.player": "%1$s fue volado por un reloj de cuco manipulado", - - "create.block.deployer.damage_source_name": "Un desplegador rebelde", - "create.block.cart_assembler.invalid": "Coloque su Ensamblador de vagonetas en un bloque de Raíles", - - "create.menu.return": "Regresar al menú", - "create.menu.configure": "Configurar...", - "create.menu.ponder_index": "Índice", - "create.menu.only_ingame": "Disponible en el menú de pausa", - "create.menu.project_page": "Página del proyecto", - "create.menu.report_bugs": "Reportar problemas", - "create.menu.support": "Apóyenos", - - "create.recipe.crushing": "Trituración", - "create.recipe.milling": "Fresado", - "create.recipe.fan_washing": "Lavado a granel", - "create.recipe.fan_washing.fan": "Ventilador detrás del agua fluyente", - "create.recipe.fan_smoking": "Ahumador a granel", - "create.recipe.fan_smoking.fan": "Ventilador detrás del fuego", - "create.recipe.fan_blasting": "Voladuras a granel", - "create.recipe.fan_blasting.fan": "Ventilador detrás de la lava", - "create.recipe.pressing": "Prensando", - "create.recipe.mixing": "Mezclando", - "create.recipe.deploying": "Desplegando", - "create.recipe.automatic_shapeless": "Elaboración automatizada de productos sin forma", - "create.recipe.automatic_brewing": "Elaboración de cerveza automatizada", - "create.recipe.packing": "Compactando", - "create.recipe.automatic_packing": "Embalaje automatizado", - "create.recipe.sawing": "Aserrando", - "create.recipe.mechanical_crafting": "Elaboración mecánica", - "create.recipe.automatic_shaped": "Elaboración automatizada de productos con forma", - "create.recipe.block_cutting": "Corte de bloques", - "create.recipe.wood_cutting": "Corte de maderas", - "create.recipe.sandpaper_polishing": "Pulido con papel de lija", - "create.recipe.mystery_conversion": "Conversión misteriosa", - "create.recipe.spout_filling": "Llenar por el pico", - "create.recipe.draining": "Drenador de objetos", - "create.recipe.sequenced_assembly": "Montaje secuenciado", - "create.recipe.assembly.next": "Siguiente: %1$s", - "create.recipe.assembly.step": "Fase %1$s:", - "create.recipe.assembly.progress": "Progreso: %1$s/%2$s", - "create.recipe.assembly.pressing": "Proceso en prensa", - "create.recipe.assembly.spout_filling_fluid": "Pico %1$s", - "create.recipe.assembly.deploying_item": "Despliegue %1$s", - "create.recipe.assembly.cutting": "Corte con sierra", - "create.recipe.assembly.repeat": "Repetir la secuencia %1$s veces", - "create.recipe.assembly.junk": "Basura aleatoria", - "create.recipe.processing.chance": "%1$s%% Chance", - "create.recipe.heat_requirement.none": "No es necesario calentar", - "create.recipe.heat_requirement.heated": "Calentado", - "create.recipe.heat_requirement.superheated": "Súper-Calentado", - - "create.generic.range": "Rango", - "create.generic.radius": "Radio", - "create.generic.width": "Ancho", - "create.generic.height": "Alto", - "create.generic.length": "Largo", - "create.generic.speed": "Velocidad", - "create.generic.delay": "Retraso", - "create.generic.unit.ticks": "Ticks", - "create.generic.unit.seconds": "Segundos", - "create.generic.unit.minutes": "Minutos", - "create.generic.unit.rpm": "RPM", - "create.generic.unit.stress": "SU(unidades de estrés)", - "create.generic.unit.degrees": "°", - "create.generic.unit.millibuckets": "%1$smB", - "create.generic.clockwise": "En el sentido de las agujas del reloj", - "create.generic.counter_clockwise": "En sentido contrario a las agujas del reloj", - - "create.action.scroll": "Desplazar", - "create.action.confirm": "Confirmar", - "create.action.abort": "Abortar", - "create.action.saveToFile": "Guardar", - "create.action.discard": "Descartar", - - "create.keyinfo.toolmenu": "Menú de la Herramienta de Enfoque", - "create.keyinfo.scrollup": "Simular usar la rueda del ratón hacia arriba (en el mundo)", - "create.keyinfo.scrolldown": "Simular usar la rueda del ratón hacia abajo (en el mundo)", - - "create.gui.scrollInput.defaultTitle": "Seleccione una opción:", - "create.gui.scrollInput.scrollToModify": "Usa la rueda del ratón para modificar", - "create.gui.scrollInput.scrollToAdjustAmount": "Usa la rueda del ratón para ajustar la cantidad", - "create.gui.scrollInput.scrollToSelect": "Usa la rueda del ratón para seleccionar", - "create.gui.scrollInput.shiftScrollsFaster": "Mayús izdo para usar la rueda del ratón más rápido", - "create.gui.toolmenu.focusKey": "Mantén [%1$s] para enfocar", - "create.gui.toolmenu.cycle": "[RUEDA DEL RATÓN] para el ciclo", - "create.gui.symmetryWand.mirrorType": "Espejado", - "create.gui.symmetryWand.orientation": "Orientación", - - "create.symmetry.mirror.plane": "Plano de espejo", - "create.symmetry.mirror.doublePlane": "Rectangular", - "create.symmetry.mirror.triplePlane": "Octogonal", - - "create.orientation.orthogonal": "Ortogonal", - "create.orientation.diagonal": "Diagonal", - "create.orientation.horizontal": "Horizontal", - "create.orientation.alongZ": "A lo largo de Z", - "create.orientation.alongX": "A lo largo de X", - - "create.gui.terrainzapper.title": "Blockzapper", - "create.gui.terrainzapper.searchDiagonal": "Seguir diagonales", - "create.gui.terrainzapper.searchFuzzy": "Ignorar los bordes del material", - "create.gui.terrainzapper.patternSection": "Patrón", - "create.gui.terrainzapper.pattern.solid": "Sólido", - "create.gui.terrainzapper.pattern.checkered": "Tablero de ajedrez", - "create.gui.terrainzapper.pattern.inversecheckered": "Tablero de ajedrez invertido", - "create.gui.terrainzapper.pattern.chance25": "25% Roll", - "create.gui.terrainzapper.pattern.chance50": "50% Roll", - "create.gui.terrainzapper.pattern.chance75": "75% Roll", - "create.gui.terrainzapper.placement": "Ubicación", - "create.gui.terrainzapper.placement.merged": "Fusionado", - "create.gui.terrainzapper.placement.attached": "Adjuntado", - "create.gui.terrainzapper.placement.inserted": "Insertado", - "create.gui.terrainzapper.brush": "Pincel", - "create.gui.terrainzapper.brush.cuboid": "Cuboide", - "create.gui.terrainzapper.brush.sphere": "Esfera", - "create.gui.terrainzapper.brush.cylinder": "Cilindro", - "create.gui.terrainzapper.brush.surface": "Superficie", - "create.gui.terrainzapper.brush.cluster": "Grupo", - "create.gui.terrainzapper.tool": "Herramienta", - "create.gui.terrainzapper.tool.fill": "Llenar", - "create.gui.terrainzapper.tool.place": "Ubicar", - "create.gui.terrainzapper.tool.replace": "Reemplazar", - "create.gui.terrainzapper.tool.clear": "Eliminar", - "create.gui.terrainzapper.tool.overlay": "Superponer", - "create.gui.terrainzapper.tool.flatten": "Aplanar", - - "create.terrainzapper.shiftRightClickToSet": "Mayús izdo + clic derecho para seleccionar una forma", - "create.terrainzapper.usingBlock": "Usando: %1$s", - "create.terrainzapper.leftClickToSet": "Clic izquierdo a un bloque para establecer el material", - - "create.minecart_coupling.two_couplings_max": "Las vagonetas no pueden tener más de dos enganches cada una", - "create.minecart_coupling.unloaded": "Algunas partes de su tren parecen estar en chunks no cargados", - "create.minecart_coupling.no_loops": "Los acoplamientos no pueden formar un bucle", - "create.minecart_coupling.removed": "Se han retirado todos los acoplamientos de la vagoneta", - "create.minecart_coupling.too_far": "Las vagonetas están demasiado separadas", - - "create.contraptions.movement_mode": "Modo de movimiento", - "create.contraptions.movement_mode.move_place": "Colocar siempre al detenerse", - "create.contraptions.movement_mode.move_place_returned": "Colocar sólo en la posición inicial", - "create.contraptions.movement_mode.move_never_place": "Colocar sólo cuando se destruye el ancla", - "create.contraptions.movement_mode.rotate_place": "Colocar siempre al detenerse", - "create.contraptions.movement_mode.rotate_place_returned": "Colocar sólo cerca del ángulo inicial", - "create.contraptions.movement_mode.rotate_never_place": "Colocar sólo cuando se destruye el ancla", - "create.contraptions.cart_movement_mode": "Modo de movimiento de la vagoneta", - "create.contraptions.cart_movement_mode.rotate": "Siempre de cara al movimiento", - "create.contraptions.cart_movement_mode.rotate_paused": "Pausar a los actores mientras giran", - "create.contraptions.cart_movement_mode.rotation_locked": "Bloquear rotación", - "create.contraptions.windmill.rotation_direction": "Dirección de rotación", - "create.contraptions.clockwork.clock_hands": "Manecillas de reloj", - "create.contraptions.clockwork.hour_first": "La manecilla de las horas primero", - "create.contraptions.clockwork.minute_first": "La manecilla de los minutos primero", - "create.contraptions.clockwork.hour_first_24": "La manecilla del día primero", - - "create.logistics.filter": "Filtro", - "create.logistics.recipe_filter": "Filtro para recetas", - "create.logistics.fluid_filter": "Filtro para fluidos", - "create.logistics.firstFrequency": "Freq. #1", - "create.logistics.secondFrequency": "Freq. #2", - "create.logistics.filter.apply": "Filtro aplicado a %1$s.", - "create.logistics.filter.apply_click_again": "Filtro aplicado a %1$s, haga clic de nuevo para copiar la cantidad.", - "create.logistics.filter.apply_count": "Aplicado recuento de extracciones al filtro.", - - "create.gui.goggles.generator_stats": "Estadísticas del generador:", - "create.gui.goggles.kinetic_stats": "Estadísticas cinéticas:", - "create.gui.goggles.at_current_speed": "con la velocidad actual", - "create.gui.goggles.pole_length": "Longitud del poste:", - "create.gui.goggles.fluid_container": "Información sobre el contenedor de fluidos:", - "create.gui.goggles.fluid_container.capacity": "Capacidad: ", - "create.gui.assembly.exception": "Este artilugio no se pudo montar:", - "create.gui.assembly.exception.unmovableBlock": "Bloque inamovible (%4$s) en [%1$s,%2$s,%3$s]", - "create.gui.assembly.exception.chunkNotLoaded": "El bloque en [%1$s,%2$s,%3$s] no estaba en un chunk cargado", - "create.gui.assembly.exception.structureTooLarge": "Hay demasiados bloques incluídos en el artilugio.\nEl máximo configurado es: %1$s", - "create.gui.assembly.exception.tooManyPistonPoles": "Hay demasiadas Pértigas de extensión conectadas a este Pistón.\nEl máximo configurado es: %1$s", - "create.gui.assembly.exception.noPistonPoles": "Faltan pértigas de extensión para el pistón", - "create.gui.assembly.exception.not_enough_sails": "La estructura adjunta no incluye suficientes bloques tipo vela: %1$s\nSe requiere un mínimo de %2$s", - "create.gui.gauge.info_header": "Información sobre el medidor:", - "create.gui.speedometer.title": "Velocidad de rotación", - "create.gui.stressometer.title": "Estrés de la red", - "create.gui.stressometer.capacity": "Capacidad restante", - "create.gui.stressometer.overstressed": "Sobrecargado", - "create.gui.stressometer.no_rotation": "Sin rotación", - "create.gui.contraptions.not_fast_enough": "Parece que este %1$s no está girando con _suficiente_ velocidad_.", - "create.gui.contraptions.network_overstressed": "Parece que este artilugio está _sobrecargado_. Añade más fuentes o _desacelera_ los componentes con un _impacto de estrés alto_.", - "create.gui.adjustable_crate.title": "Caja ajustable", - "create.gui.adjustable_crate.storageSpace": "Espacio de almacenamiento", - "create.gui.stockpile_switch.title": "Interruptor de acopio", - "create.gui.stockpile_switch.invert_signal": "Invertir señal", - "create.gui.stockpile_switch.move_to_lower_at": "Pasar al carril inferior en %1$s%%", - "create.gui.stockpile_switch.move_to_upper_at": "Pasar al carril superior en %1$s%%", - "create.gui.sequenced_gearshift.title": "Cambio de marchas secuenciado", - "create.gui.sequenced_gearshift.instruction": "Instrucción", - "create.gui.sequenced_gearshift.instruction.turn_angle.descriptive": "Giro por ángulo", - "create.gui.sequenced_gearshift.instruction.turn_angle": "Giro", - "create.gui.sequenced_gearshift.instruction.turn_angle.angle": "Ángulo", - "create.gui.sequenced_gearshift.instruction.turn_distance.descriptive": "Giro para mover el pistón/polea/grúa", - "create.gui.sequenced_gearshift.instruction.turn_distance": "Pistón", - "create.gui.sequenced_gearshift.instruction.turn_distance.distance": "Distancia", - "create.gui.sequenced_gearshift.instruction.delay.descriptive": "Tiempo de retraso", - "create.gui.sequenced_gearshift.instruction.delay": "Retraso", - "create.gui.sequenced_gearshift.instruction.delay.duration": "Duración", - "create.gui.sequenced_gearshift.instruction.end.descriptive": "Fin", - "create.gui.sequenced_gearshift.instruction.end": "Fin", - "create.gui.sequenced_gearshift.instruction.await.descriptive": "En espera de un pulso de redstone", - "create.gui.sequenced_gearshift.instruction.await": "En espera", - "create.gui.sequenced_gearshift.speed": "Velocidad, Dirección", - "create.gui.sequenced_gearshift.speed.forward": "Velocidad de entrada, hacia adelante", - "create.gui.sequenced_gearshift.speed.forward_fast": "Doble velocidad, hacia adelante", - "create.gui.sequenced_gearshift.speed.back": "Velocidad de entrada, Invertida", - "create.gui.sequenced_gearshift.speed.back_fast": "Doble velocidad, Invertida", - - "create.schematicAndQuill.dimensions": "Tamaño del esquema: %1$sx%2$sx%3$s", - "create.schematicAndQuill.firstPos": "Primera posición fijada.", - "create.schematicAndQuill.secondPos": "Segunda posición fijada.", - "create.schematicAndQuill.noTarget": "Mantén [Ctrl] para seleccionar los bloques del aire.", - "create.schematicAndQuill.abort": "Selección eliminada.", - "create.schematicAndQuill.title": "Nombre del esquema:", - "create.schematicAndQuill.convert": "Guardar y desplegar inmediatamente", - "create.schematicAndQuill.fallbackName": "Mi esquema", - "create.schematicAndQuill.saved": "Guardado como %1$s", - - "create.schematic.invalid": "[!] Elemento no válido - Utilice la tabla de esquemas en su lugar", - "create.schematic.position": "Posición", - "create.schematic.rotation": "Rotación", - "create.schematic.rotation.none": "Ninguno", - "create.schematic.rotation.cw90": "En el sentido de las agujas del reloj 90", - "create.schematic.rotation.cw180": "En el sentido de las agujas del reloj 180", - "create.schematic.rotation.cw270": "En el sentido de las agujas del reloj 270", - "create.schematic.mirror": "Espejado", - "create.schematic.mirror.none": "Ninguno", - "create.schematic.mirror.frontBack": "Delante-Detrás", - "create.schematic.mirror.leftRight": "Izquierda-Derecha", - "create.schematic.tool.deploy": "Despliegue", - "create.schematic.tool.move": "Mover XZ", - "create.schematic.tool.movey": "Mover Y", - "create.schematic.tool.rotate": "Rotar", - "create.schematic.tool.print": "Imprimir", - "create.schematic.tool.flip": "Voltear", - "create.schematic.tool.deploy.description.0": "Mueve la estructura a un lugar.", - "create.schematic.tool.deploy.description.1": "Haz clic con el botón derecho del ratón en el suelo para colocarla.", - "create.schematic.tool.deploy.description.2": "Mantén [Ctrl] para seleccionar a una distancia fija.", - "create.schematic.tool.deploy.description.3": "[Ctrl] + [RUEDA DEL RATÓN] para cambiar la distancia.", - "create.schematic.tool.move.description.0": "Desplaza el esquema horizontalmente.", - "create.schematic.tool.move.description.1": "Apunta al esquema y [Ctrl] + [RUEDA DEL RATÓN] para ponerlo.", - "create.schematic.tool.move.description.2": "", - "create.schematic.tool.move.description.3": "", - "create.schematic.tool.movey.description.0": "Desplaza el esquema verticalmente..", - "create.schematic.tool.movey.description.1": "[Ctrl] + [RUEDA DEL RATÓN] para moverlo hacia arriba/abajo.", - "create.schematic.tool.movey.description.2": "", - "create.schematic.tool.movey.description.3": "", - "create.schematic.tool.rotate.description.0": "Gira el esquema alrededor de su centro.", - "create.schematic.tool.rotate.description.1": "[Ctrl] + [RUEDA DEL RATÓN] para girar 90 grados.", - "create.schematic.tool.rotate.description.2": "", - "create.schematic.tool.rotate.description.3": "", - "create.schematic.tool.print.description.0": "Sitúa instantáneamente la estructura en el mundo.", - "create.schematic.tool.print.description.1": "[Clic derecho] para confirmar la colocación en el lugar actual.", - "create.schematic.tool.print.description.2": "Esta herramienta es sólo para el Modo Creativo.", - "create.schematic.tool.print.description.3": "", - "create.schematic.tool.flip.description.0": "Voltea el esquema a lo largo de la cara que seleccione.", - "create.schematic.tool.flip.description.1": "Apunta al esquema y [Ctrl] + [RUEDA DEL RATÓN] para voltearlo.", - "create.schematic.tool.flip.description.2": "", - "create.schematic.tool.flip.description.3": "", - - "create.schematics.synchronizing": "Sincronizando...", - "create.schematics.uploadTooLarge": "Tu esquema excede las limitaciones especificadas por el servidor.", - "create.schematics.maxAllowedSize": "El tamaño máximo permitido del archivo del esquema es:", - - "create.gui.schematicTable.refresh": "Refrescar archivos", - "create.gui.schematicTable.open_folder": "Abrir carpeta", - "create.gui.schematicTable.title": "Tabla de esquemas", - "create.gui.schematicTable.availableSchematics": "Esquemas disponibles", - "create.gui.schematicTable.noSchematics": "No hay esquemas guardados", - "create.gui.schematicTable.uploading": "Subiendo...", - "create.gui.schematicTable.finished": "¡Subida finalizada!", - "create.gui.schematicannon.title": "Cañón de esquemas", - "create.gui.schematicannon.listPrinter": "Lista de control de la impresora", - "create.gui.schematicannon.gunpowderLevel": "Pólvora %1$s%%", - "create.gui.schematicannon.shotsRemaining": "Disparos restantes: %1$s", - "create.gui.schematicannon.shotsRemainingWithBackup": "Con respaldo: %1$s", - "create.gui.schematicannon.optionEnabled": "Actualmente habilitado", - "create.gui.schematicannon.optionDisabled": "Actualmente deshabilitado", - "create.gui.schematicannon.showOptions": "Mostrar la configuración de la impresora", - "create.gui.schematicannon.option.dontReplaceSolid": "No sustituír los bloques sólidos", - "create.gui.schematicannon.option.replaceWithSolid": "Sustituir sólido por sólido", - "create.gui.schematicannon.option.replaceWithAny": "Sustituir sólido por cualquiera", - "create.gui.schematicannon.option.replaceWithEmpty": "Sustituir sólido por vacío", - "create.gui.schematicannon.option.skipMissing": "Omitir los bloques que faltan", - "create.gui.schematicannon.option.skipTileEntities": "Proteger a las entidades", - "create.gui.schematicannon.slot.gunpowder": "Añade pólvora para alimentar el cañón", - "create.gui.schematicannon.slot.listPrinter": "Coloque los libros aquí para imprimir una lista de comprobación para su esquema", - "create.gui.schematicannon.slot.schematic": "Añada su esquema aquí. Asegúrese de que se despliega en un lugar específico.", - "create.gui.schematicannon.option.skipMissing.description": "Si el cañón no encuentra un bloque necesario para su colocación, continuará en la siguiente ubicación.", - "create.gui.schematicannon.option.skipTileEntities.description": "El cañón evitará reemplazar los bloques que contienen datos, como los cofres.", - "create.gui.schematicannon.option.dontReplaceSolid.description": "El cañón nunca sustituirá ningún bloque sólido en su zona de trabajo, sólo los no sólidos y el aire.", - "create.gui.schematicannon.option.replaceWithSolid.description": "El cañón sólo reemplazará los bloques sólidos en su área de trabajo si el esquema contiene un bloque sólido en la ubicación.", - "create.gui.schematicannon.option.replaceWithAny.description": "El cañón reemplazará los bloques sólidos en su área de trabajo si el esquema contiene algún bloque en la ubicación.", - "create.gui.schematicannon.option.replaceWithEmpty.description": "El cañón eliminará todos los bloques de su zona de trabajo, incluidos los sustituidos por aire.", - - "create.schematicannon.status.idle": "Inactivo", - "create.schematicannon.status.ready": "Listo", - "create.schematicannon.status.running": "Funcionando", - "create.schematicannon.status.finished": "Finalizado", - "create.schematicannon.status.paused": "Pausado", - "create.schematicannon.status.stopped": "Detenido", - "create.schematicannon.status.noGunpowder": "Sin pólvora", - "create.schematicannon.status.targetNotLoaded": "El objetivo no está cargado", - "create.schematicannon.status.targetOutsideRange": "Objetivo demasiado lejano", - "create.schematicannon.status.searching": "Buscando", - "create.schematicannon.status.skipping": "Omitiendo", - "create.schematicannon.status.missingBlock": "Elementos perdidos:", - "create.schematicannon.status.placing": "Colocando", - "create.schematicannon.status.clearing": "Limpiando bloques", - "create.schematicannon.status.schematicInvalid": "Esquema inválido", - "create.schematicannon.status.schematicNotPlaced": "Esquema no desplegado", - "create.schematicannon.status.schematicExpired": "Archivo de esquemas caducado", - - "create.materialChecklist": "Lista de control del material", - "create.materialChecklist.blocksNotLoaded": "* Descargo de Responsabilidad *\n\nLa lista de materiales puede ser inexacta debido a que no se han cargado los chunks pertinentes.", - - "create.gui.filter.deny_list": "Lista de denegados", - "create.gui.filter.deny_list.description": "Los objetos pasan si NO coinciden con ninguno de los anteriores. Una lista de denegación vacía acepta todo.", - "create.gui.filter.allow_list": "Lista de permitidos", - "create.gui.filter.allow_list.description": "Los objetos pasan si coinciden con alguno de los anteriores. Una lista de permitidos vacía rechaza todo.", - "create.gui.filter.respect_data": "Respetar datos", - "create.gui.filter.respect_data.description": "Los objetos sólo coinciden si su durabilidad, encantos y otros atributos también coinciden.", - "create.gui.filter.ignore_data": "Ignorar datos", - "create.gui.filter.ignore_data.description": "Los artículos coinciden independientemente de sus atributos.", - - "create.item_attributes.placeable": "se puede colocar", - "create.item_attributes.placeable.inverted": "no se puede colocar", - "create.item_attributes.consumable": "se puede comer", - "create.item_attributes.consumable.inverted": "no se puede comer", - "create.item_attributes.smeltable": "se puede fundir", - "create.item_attributes.smeltable.inverted": "no se puede fundir", - "create.item_attributes.washable": "se puede lavar", - "create.item_attributes.washable.inverted": "no se puede lavar", - "create.item_attributes.smokable": "puede ser ahumado", - "create.item_attributes.smokable.inverted": "no puede ser ahumado", - "create.item_attributes.crushable": "puede ser molido", - "create.item_attributes.crushable.inverted": "no puede ser molido", - "create.item_attributes.blastable": "es fundible en el alto horno", - "create.item_attributes.blastable.inverted": "no es fundible en el alto horno", - "create.item_attributes.enchanted": "está encantado", - "create.item_attributes.enchanted.inverted": "no está encantado", - "create.item_attributes.damaged": "está dañado", - "create.item_attributes.damaged.inverted": "no está dañado", - "create.item_attributes.badly_damaged": "está muy dañado", - "create.item_attributes.badly_damaged.inverted": "no está muy dañado", - "create.item_attributes.not_stackable": "no se puede apilar", - "create.item_attributes.not_stackable.inverted": "se puede apilar", - "create.item_attributes.equipable": "se puede equipar", - "create.item_attributes.equipable.inverted": "no se puede equipar", - "create.item_attributes.furnace_fuel": "es combustible para hornos", - "create.item_attributes.furnace_fuel.inverted": "no es combustible para hornos", - "create.item_attributes.in_tag": "está etiquetado %1$s", - "create.item_attributes.in_tag.inverted": "no está etiquetado %1$s", - "create.item_attributes.in_item_group": "está en el grupo '%1$s'", - "create.item_attributes.in_item_group.inverted": "no está en el grupo '%1$s'", - "create.item_attributes.added_by": "fue añadido por %1$s", - "create.item_attributes.added_by.inverted": "no fue añadida por %1$s", - "create.item_attributes.shulker_level": "es shulker %1$s", - "create.item_attributes.shulker_level.inverted": "no es shulker %1$s", - "create.item_attributes.shulker_level.full": "lleno", - "create.item_attributes.shulker_level.empty": "vacío", - "create.item_attributes.shulker_level.partial": "parcialmente lleno", - "create.item_attributes.has_enchant": "está encantado con %1$s", - "create.item_attributes.has_enchant.inverted": "no está encantado con %1$s", - "create.item_attributes.color": "Está teñido %1$s", - "create.item_attributes.color.inverted": "No está teñido %1$s", - "create.item_attributes.max_enchanted": "está encantado en el nivel máximo", - "create.item_attributes.max_enchanted.inverted": "no está encantado en el nivel máximo", - "create.item_attributes.has_fluid": "contiene %1$s", - "create.item_attributes.has_fluid.inverted": "no contiene %1$s", - "create.item_attributes.has_name": "tiene el nombre personalizado %1$s", - "create.item_attributes.has_name.inverted": "no tiene el nombre personalizado %1$s", - "create.item_attributes.book_author": "es obra de %1$s", - "create.item_attributes.book_author.inverted": "no es es obra de %1$s", - "create.item_attributes.book_copy_original": "es un original", - "create.item_attributes.book_copy_original.inverted": "no es un original", - "create.item_attributes.book_copy_first": "es una copia de primera generación", - "create.item_attributes.book_copy_first.inverted": "no es una copia de primera generación", - "create.item_attributes.book_copy_second": "es una copia de segunda generación", - "create.item_attributes.book_copy_second.inverted": "no es una copia de segunda generación", - "create.item_attributes.book_copy_tattered": "es un desordenado desastre", - "create.item_attributes.book_copy_tattered.inverted": "no es un desordenado desastre", - "create.item_attributes.astralsorcery_crystal": "tiene el atributo de cristal %1$s", - "create.item_attributes.astralsorcery_crystal.inverted": "no tiene atributo de cristal %1$s", - "create.item_attributes.astralsorcery_constellation": "está en sintonía con %1$s", - "create.item_attributes.astralsorcery_constellation.inverted": "no está en sintonía con %1$s", - "create.item_attributes.astralsorcery_perk_gem": "tiene el atributo ventaja %1$s", - "create.item_attributes.astralsorcery_perk_gem.inverted": "no tiene el atributo ventaja %1$s", - "create.item_attributes.astralsorcery_amulet": "mejora %1$s", - "create.item_attributes.astralsorcery_amulet.inverted": "no mejora %1$s", - - "create.gui.attribute_filter.no_selected_attributes": "No hay atributos seleccionados", - "create.gui.attribute_filter.selected_attributes": "Atributos seleccionados:", - "create.gui.attribute_filter.add_attribute": "Añadir atributo a la lista", - "create.gui.attribute_filter.add_inverted_attribute": "Añadir atributo invertido a la Lista", - "create.gui.attribute_filter.allow_list_disjunctive": "Lista de permitidos (Cualquiera)", - "create.gui.attribute_filter.allow_list_disjunctive.description": "Los objetos pasan si tienen alguno de los atributos seleccionados", - "create.gui.attribute_filter.allow_list_conjunctive": "Lista de permitidos (Todos)", - "create.gui.attribute_filter.allow_list_conjunctive.description": "Los objetos pasan sólo si tienen TODOS los atributos seleccionados", - "create.gui.attribute_filter.deny_list": "Lista de denegados", - "create.gui.attribute_filter.deny_list.description": "Los objetos pasan si NO tienen ninguno de los atributos seleccionados", - "create.gui.attribute_filter.add_reference_item": "Añadir elemento de referencia", - - "create.tooltip.holdForDescription": "Mantén [%1$s] para mas información", - "create.tooltip.holdForControls": "Mantén [%1$s] para ver los controles", - "create.tooltip.keyShift": "Mayús izdo.", - "create.tooltip.keyCtrl": "Ctrl", - "create.tooltip.speedRequirement": "Requisitos de velocidad: %1$s", - "create.tooltip.speedRequirement.none": "Ninguno", - "create.tooltip.speedRequirement.medium": "Moderado", - "create.tooltip.speedRequirement.high": "Rápido", - "create.tooltip.stressImpact": "Impacto de estrés: %1$s", - "create.tooltip.stressImpact.low": "Bajo", - "create.tooltip.stressImpact.medium": "Moderado", - "create.tooltip.stressImpact.high": "Alto", - "create.tooltip.stressImpact.overstressed": "Sobrecargado", - "create.tooltip.capacityProvided": "Capacidad de estrés: %1$s", - "create.tooltip.capacityProvided.low": "Pequeña", - "create.tooltip.capacityProvided.medium": "Media", - "create.tooltip.capacityProvided.high": "Grande", - "create.tooltip.generationSpeed": "Generada en %1$s %2$s", - "create.tooltip.analogStrength": "Fuerza analógica: %1$s/15", - - "create.mechanical_arm.extract_from": "Extraer objetos de %1$s", - "create.mechanical_arm.deposit_to": "Depositar objetos en %1$s", - "create.mechanical_arm.summary": "El brazo mecánico tiene %1$s entrada(s) y %2$s salida(s)", - "create.mechanical_arm.points_outside_range": "%1$s punto(s) de interacción seleccionado(s) eliminado(s) debido a las limitaciones de rango", - - "create.weighted_ejector.target_set": "Objetivo seleccionado", - "create.weighted_ejector.target_not_valid": "Expulsión al bloque adyacente (el objetivo no era válido)", - "create.weighted_ejector.no_target": "Expulsión al bloque adyacente (no se ha seleccionado ningún objetivo)", - "create.weighted_ejector.targeting": "Expulsión a [%1$s,%2$s,%3$s]", - "create.weighted_ejector.stack_size": "Tamaño de la pila expulsada", - - "create.logistics.when_multiple_outputs_available": "Cuando hay múltiples salidas disponibles", - - "create.mechanical_arm.selection_mode.round_robin": "Round Robin", - "create.mechanical_arm.selection_mode.forced_round_robin": "Round Robin forzado", - "create.mechanical_arm.selection_mode.prefer_first": "Preferir el primero", - - "create.tunnel.selection_mode.split": "División", - "create.tunnel.selection_mode.forced_split": "División forzada", - "create.tunnel.selection_mode.round_robin": "Round Robin", - "create.tunnel.selection_mode.forced_round_robin": "Round Robin forzado", - "create.tunnel.selection_mode.prefer_nearest": "Preferir el más cercano", - "create.tunnel.selection_mode.randomize": "Aleatorizar", - "create.tunnel.selection_mode.synchronize": "Sincronizar entradas", - - "create.tooltip.chute.header": "Información del ducto", - "create.tooltip.chute.items_move_down": "Los objetos se mueven hacia abajo", - "create.tooltip.chute.items_move_up": "Los objetos se mueven hacia arriba", - "create.tooltip.chute.no_fans_attached": "No hay ventiladores adjuntos", - "create.tooltip.chute.fans_push_up": "Los ventiladores empujan desde abajo", - "create.tooltip.chute.fans_push_down": "Los ventiladores empujan desde arriba", - "create.tooltip.chute.fans_pull_up": "Los ventiladores tiran desde arriba", - "create.tooltip.chute.fans_pull_down": "Los ventiladores tiran desde abajo", - "create.tooltip.chute.contains": "Contiene: %1$s x%2$s", - "create.tooltip.brass_tunnel.contains": "Actualmente distribuye:", - "create.tooltip.brass_tunnel.contains_entry": "> %1$s x%2$s", - "create.tooltip.brass_tunnel.retrieve": "Haga clic derecho para recuperar", - - "create.linked_controller.bind_mode": "Modo de enlace activo", - "create.linked_controller.press_keybind": "Presiona %1$s, %2$s, %3$s, %4$s, %5$s o %6$s, para vincular esta frecuencia a la tecla correspondiente", - "create.linked_controller.key_bound": "Frecuencia ligada a %1$s", - "create.linked_controller.frequency_slot_1": "Enlace de teclas: %1$s, Freq. #1", - "create.linked_controller.frequency_slot_2": "Enlace de teclas: %1$s, Freq. #2", - - "create.crafting_blueprint.crafting_slot": "Ranura para ingredientes", - "create.crafting_blueprint.filter_items_viable": "Los objetos del filtro avanzado son viables", - "create.crafting_blueprint.display_slot": "Ranura de pantalla", - "create.crafting_blueprint.inferred": "A partir de la receta", - "create.crafting_blueprint.manually_assigned": "Asignado manualmente", - "create.crafting_blueprint.secondary_display_slot": "Ranura de pantalla secundaria", - "create.crafting_blueprint.optional": "Opcional", - - "create.potato_cannon.ammo.attack_damage": "%1$s Daño de ataque", - "create.potato_cannon.ammo.reload_ticks": "%1$s Recarga por Ticks", - "create.potato_cannon.ammo.knockback": "%1$s Golpe de efecto", - - "create.hint.hose_pulley.title": "Suministro ilimitado", - "create.hint.hose_pulley": "La masa de fluido objetivo se considera infinita.", - "create.hint.mechanical_arm_no_targets.title": "Sin objetivos", - "create.hint.mechanical_arm_no_targets": "Parece que a este _brazo mecánico_ no se le ha asignado ningún objetivo. Selecciona _correas_, _depósitos_, _embudos_ y otros bloques haciendo clic derecho sobre ellos mientras _sostienes_ el _brazo mecánico_ en tu mano..", - "create.hint.empty_bearing.title": "Actualización del rodamiento", - "create.hint.empty_bearing": "Haz clic derecho sobre el rodamiento con la _mano vacía_ para _adjuntar_ la estructura que acabas de construir delante de él.", - "create.hint.full_deployer.title": "Exceso de objetos en el desplegador", - "create.hint.full_deployer": "Parece que este _desplegador_ contiene _exceso_ de objetos que necesitan ser _extraídos._ Usa una _tolva_, _embudo_ u otro medio para liberarlo de su excedente.", - - "create.gui.config.overlay1": "Hola :)", - "create.gui.config.overlay2": "Esta es una muestra de la superposición", - "create.gui.config.overlay3": "Haga clic o arrastre con el ratón", - "create.gui.config.overlay4": "para mover esta vista previa", - "create.gui.config.overlay5": "Pulsar ESC para salir de esta pantalla", - "create.gui.config.overlay6": "y guardar la nueva posición", - "create.gui.config.overlay7": "Ejecute /create overlay reset", - "create.gui.config.overlay8": "para restablecer la posición por defecto", - - "create.command.killTPSCommand": "killtps", - "create.command.killTPSCommand.status.slowed_by.0": "[Crear]: El tick del servidor está actualmente ralentizado en %s ms :o", - "create.command.killTPSCommand.status.slowed_by.1": "[Crear]: El tick del servidor está ralentizado en %s ms ahora >:)", - "create.command.killTPSCommand.status.slowed_by.2": "[Create]: El tick del servidor ha vuelto a su velocidad normal :D", - "create.command.killTPSCommand.status.usage.0": "[Create]: usa /killtps stop para que el servidor vuelva a la velocidad normal", - "create.command.killTPSCommand.status.usage.1": "[Create]: usa /killtps start para ralentizar artificialmente el tick del servidor", - "create.command.killTPSCommand.argument.tickTime": "tickTime", - - "create.contraption.minecart_contraption_too_big": "Este artilugio de vagoneta parece demasiado grande para recogerlo", - "create.contraption.minecart_contraption_illegal_pickup": "Una fuerza mística está atando este artilugio de vagoneta al mundo", - - - "_": "->------------------------] Subtitles [------------------------<-", - - "create.subtitle.contraption_disassemble": "", - "create.subtitle.peculiar_bell_use": "", - "create.subtitle.mixing": "", - "create.subtitle.mechanical_press_activation_belt": "", - "create.subtitle.fwoomp": "", - "create.subtitle.worldshaper_place": "", - "create.subtitle.crushing_1": "", - "create.subtitle.depot_slide": "", - "create.subtitle.saw_activate_stone": "", - "create.subtitle.blaze_munch": "", - "create.subtitle.funnel_flap": "", - "create.subtitle.schematicannon_finish": "", - "create.subtitle.haunted_bell_use": "", - "create.subtitle.scroll_value": "", - "create.subtitle.crafter_craft": "", - "create.subtitle.controller_put": "", - "create.subtitle.cranking": "", - "create.subtitle.wrench_remove": "", - "create.subtitle.cogs": "", - "create.subtitle.slime_added": "", - "create.subtitle.wrench_rotate": "", - "create.subtitle.potato_hit": "", - "create.subtitle.saw_activate_wood": "", - "create.subtitle.haunted_bell_convert": "", - "create.subtitle.deployer_polish": "", - "create.subtitle.deny": "", - "create.subtitle.controller_click": "", - "create.subtitle.schematicannon_launch_block": "", - "create.subtitle.copper_armor_equip": "", - "create.subtitle.controller_take": "Lectern empties", - "create.subtitle.mechanical_press_activation": "", - "create.subtitle.contraption_assemble": "", - "create.subtitle.crafter_click": "", - "create.subtitle.depot_plop": "", - "create.subtitle.confirm": "", - - - "_": "->------------------------] Item Descriptions [------------------------<-", - - "item.create.example_item.tooltip": "EJEMPLO DE ITEM (sólo un marcador de que este tooltip existe)", - "item.create.example_item.tooltip.summary": "Una breve descripción del elemento. Los puntajes bajos resaltan un término", - "item.create.example_item.tooltip.condition1": "Cuando este", - "item.create.example_item.tooltip.behaviour1": "Entonces este elemento hace esto. (los comportamientos se muestran en el turno)", - "item.create.example_item.tooltip.condition2": "Y cuando esto", - "item.create.example_item.tooltip.behaviour2": "Puedes añadir tantos comportamientos como quieras", - "item.create.example_item.tooltip.control1": "Cuando se pulsa [Ctrl]", - "item.create.example_item.tooltip.action1": "Se muestran estos controles", - - "block.create.wooden_bracket.tooltip": "SOPORTE DE MADERA PARA EJES", - "block.create.wooden_bracket.tooltip.summary": "Decora tus _ejes_, _engranajes_ y _ductos_ con un acogedor refuerzo de madera.", - - "block.create.metal_bracket.tooltip": "SOPORTE DE METAL PARA EJES", - "block.create.metal_bracket.tooltip.summary": "Decora tus _ejes_, _engranajes_ y _ductos_ con un poco de robusto refuerzo industrial.", - - "block.create.seat.tooltip": "ASIENTO", - "block.create.seat.tooltip.summary": "¡Siéntate y disfruta del viaje! Anclará a un jugador en un artilugio en movimiento. También es ideal para muebles estáticos. Viene en una variedad de colores.", - "block.create.seat.tooltip.condition1": "Cuando se hace clic derecho en el asiento", - "block.create.seat.tooltip.behaviour1": "Sienta al jugador en el _asiento_. Pulsa Mayús izdo para dejar el asiento.", - - "item.create.blaze_cake.tooltip": "PASTEL DE BLAZE", - "item.create.blaze_cake.tooltip.summary": "Un delicioso regalo para sus esforzados _quemadores de blaze_. ¡Los pone en marcha!.", - - "item.create.wand_of_symmetry.tooltip": "VARITA DE SIMETRÍA", - "item.create.wand_of_symmetry.tooltip.summary": "Refleja perfectamente la colocación de bloques en los planos configurados.", - "item.create.wand_of_symmetry.tooltip.condition1": "Mientras está en el inventario rápido", - "item.create.wand_of_symmetry.tooltip.behaviour1": "Permanece activo.", - "item.create.wand_of_symmetry.tooltip.control1": "Cuando se hace clic derecho en el suelo", - "item.create.wand_of_symmetry.tooltip.action1": "_Crea_ o _mueve_ el espejo.", - "item.create.wand_of_symmetry.tooltip.control2": "Cuando se hace clic derecho en el aire", - "item.create.wand_of_symmetry.tooltip.action2": "_Quita_ el espejo activo.", - "item.create.wand_of_symmetry.tooltip.control3": "Mayús izdo + clic derecho", - "item.create.wand_of_symmetry.tooltip.action3": "Abre la interfaz de configuración.", - - "item.create.handheld_worldshaper.tooltip": "WORLDSHAPER", - "item.create.handheld_worldshaper.tooltip.summary": "Práctica herramienta para crear _paisajes_ y _características del terreno_.", - "item.create.handheld_worldshaper.tooltip.control1": "Cuando se hace clic izquierdo en un bloque", - "item.create.handheld_worldshaper.tooltip.action1": "Establece los bloques colocados por la herramienta en el bloque objetivo.", - "item.create.handheld_worldshaper.tooltip.control2": "Cuando se hace clic derecho en un bloque", - "item.create.handheld_worldshaper.tooltip.action2": "Aplica el _pincel_ y la _herramienta_ actualmente seleccionadas en el lugar deseado.", - "item.create.handheld_worldshaper.tooltip.control3": "Mayús izdo + clic derecho", - "item.create.handheld_worldshaper.tooltip.action3": "Abre la interfaz de configuración.", - - "item.create.tree_fertilizer.tooltip": "FERTILIZANTE PARA ÁRBOLES", - "item.create.tree_fertilizer.tooltip.summary": "Una potente combinación de minerales adecuada para acelerar el crecimiento de los tipos de árboles más comunes.", - "item.create.tree_fertilizer.tooltip.condition1": "Cuando se utiliza en un árbol joven", - "item.create.tree_fertilizer.tooltip.behaviour1": "Hace crecer los árboles _independientemente_ de sus condiciones de _espacio_.", - - "item.create.extendo_grip.tooltip": "AGARRE EXTENDIDO", - "item.create.extendo_grip.tooltip.summary": "¡Boioioing! Aumenta enormemente la _distancia de alcance_ del portador. Se puede alimentar con la presión de aire de un _depósito trasero de cobre_", - "item.create.extendo_grip.tooltip.condition1": "Cuando está fuera de la mano", - "item.create.extendo_grip.tooltip.behaviour1": "Aumenta la _distancia de alcance_ de los objetos usados en la _mano principal_.", - "item.create.extendo_grip.tooltip.condition2": "Mientras se usa un depósito trasero de cobre", - "item.create.extendo_grip.tooltip.behaviour2": "No se utilizará _durabilidad_. En su lugar, la _presión del aire_ se drena desde el tanque", - - "item.create.potato_cannon.tooltip": "CANÓN DE PATATAS", - "item.create.potato_cannon.tooltip.summary": "Fwoomp! Lanza tus verduras caseras a tus enemigos. Se puede alimentar con la presión de aire de un _depósito trasero de cobre_", - "item.create.potato_cannon.tooltip.condition1": "Cuando se usa clic derecho", - "item.create.potato_cannon.tooltip.behaviour1": "_Dispara_ un objeto adecuado desde tu inventario_.", - "item.create.potato_cannon.tooltip.condition2": "Mientras se usa un depósito trasero de cobre", - "item.create.potato_cannon.tooltip.behaviour2": "No se utilizará _durabilidad_. En su lugar, la _presión del aire_ se drena desde el tanque", - - "item.create.filter.tooltip": "FILTRO", - "item.create.filter.tooltip.summary": "Controla las _salidas_ y _entradas_ de los _dispositivos logísticos_ con más precisión, comparándolas con un _conjunto de objetos_ o varios _filtros anidados_.", - "item.create.filter.tooltip.condition1": "Cuando está en la ranura de filtros", - "item.create.filter.tooltip.behaviour1": "Controla el flujo de objetos según su _configuración_.", - "item.create.filter.tooltip.condition2": "Cuando se hace clic derecho", - "item.create.filter.tooltip.behaviour2": "Abre la interfaz de configuración.", - - "item.create.attribute_filter.tooltip": "FILTRO DE ATRIBUTOS", - "item.create.attribute_filter.tooltip.summary": "Controla las _salidas_ y las _entradas_ de los _dispositivos logísticos_ con más precisión, comparándolas con un _conjunto de atributos_ y _categorías_ de objetos.", - "item.create.attribute_filter.tooltip.condition1": "Cuando está en la ranura de filtros", - "item.create.attribute_filter.tooltip.behaviour1": "Controla el flujo de objetos según su _configuración_.", - "item.create.attribute_filter.tooltip.condition2": "Cuando se hace clic derecho", - "item.create.attribute_filter.tooltip.behaviour2": "Abre la interfaz de configuración.", - - "item.create.empty_schematic.tooltip": "ESQUEMA VACÍO", - "item.create.empty_schematic.tooltip.summary": "Se utiliza como 'ingrediente' de las recetas y para escribir en la _tabla de esquemas_.", - - "item.create.schematic.tooltip": "ESQUEMA", - "item.create.schematic.tooltip.summary": "Contiene una estructura para ser posicionada y colocada en el mundo. Posiciona el holograma como desees y utiliza un _cañón de esquemas_ para construirla.", - "item.create.schematic.tooltip.condition1": "Cuando se sostiene en la mano", - "item.create.schematic.tooltip.behaviour1": "Se puede posicionar utilizando las herramientas en pantalla.", - "item.create.schematic.tooltip.control1": "Mayús izdo + clic derecho", - "item.create.schematic.tooltip.action1": "Abre una _interfaz_ para introducir las _coordenadas_ exactas.", - - "item.create.schematic_and_quill.tooltip": "ESQUEMA Y PLUMA", - "item.create.schematic_and_quill.tooltip.summary": "Se utiliza para guardar una estructura de tu mundo en un archivo .nbt.", - "item.create.schematic_and_quill.tooltip.condition1": "Paso 1", - "item.create.schematic_and_quill.tooltip.behaviour1": "Selecciona dos puntos de esquina usando clic derecho.", - "item.create.schematic_and_quill.tooltip.condition2": "Paso 2", - "item.create.schematic_and_quill.tooltip.behaviour2": "[Ctrl] + [RUEDA DEL RATÓN] en las caras para ajustar el tamaño. Clic derecho de nuevo para guardar.", - "item.create.schematic_and_quill.tooltip.control1": "Cuando se hace clic derecho", - "item.create.schematic_and_quill.tooltip.action1": "Selecciona un punto de esquina / confirmar guardar.", - "item.create.schematic_and_quill.tooltip.control2": "Cuando mantiene [Ctrl]", - "item.create.schematic_and_quill.tooltip.action2": "Selecciona puntos en _medio del aire_. Rueda del ratón para ajustar la distancia.", - "item.create.schematic_and_quill.tooltip.control3": "Mayús izdo + clic derecho", - "item.create.schematic_and_quill.tooltip.action3": "_Reinicia_ y elimina la selección.", - - "block.create.schematicannon.tooltip": "CAÑÓN DE ESQUEMAS", - "block.create.schematicannon.tooltip.summary": "Dispara bloques para recrear un _esquema_ desplegado en el mundo. Utiliza objetos de los inventarios adyacentes y _pólvora_ como combustible.", - "block.create.schematicannon.tooltip.condition1": "Cuando se hace clic derecho", - "block.create.schematicannon.tooltip.behaviour1": "Abre la interfaz.", - - "block.create.schematic_table.tooltip": "TABLA DE ESQUEMAS", - "block.create.schematic_table.tooltip.summary": "Escribe los esquemas guardados en un _esquema vacío_.", - "block.create.schematic_table.tooltip.condition1": "Cuando se da un esquema vacío", - "block.create.schematic_table.tooltip.behaviour1": "Carga un archivo elegido de la carpeta de esquemas.", - - "item.create.goggles.tooltip": "GAFAS DEL CONSTRUCTOR", - "item.create.goggles.tooltip.summary": "Un par de gafas para aumentar tu visión con útil información _cinética_.", - "item.create.goggles.tooltip.condition1": "Cuando se llevan puestas", - "item.create.goggles.tooltip.behaviour1": "Muestra _indicadores de color_ correspondientes al _nivel de velocidad_ de un componente cinético colocado, así como el _impacto de estrés_ y la _carga_ de los componentes individuales.", - "item.create.goggles.tooltip.condition2": "Al mirar un medidor", - "item.create.goggles.tooltip.behaviour2": "Muestra información detallada sobre _velocidad_ o _estrés_ de la red a la que está conectado el medidor.", - "item.create.goggles.tooltip.condition3": "Al mirar un contenedor de fluidos", - "item.create.goggles.tooltip.behaviour3": "Muestra información detallada sobre la _carga_ del bloque y los _líquidos_ almacenados en su interior.", - - "item.create.wrench.tooltip": "LLAVE INGLESA", - "item.create.wrench.tooltip.summary": "Una herramienta útil para trabajar en artilugios cinéticos. Se puede utilizar para _rotar_, _desmantelar_ y para _configurar_ componentes.", - "item.create.wrench.tooltip.control1": "Cuando se hace clic derecho en un bloque cinético", - "item.create.wrench.tooltip.action1": "Rota los componentes hacia o desde la cara con la que ha interactuado.", - "item.create.wrench.tooltip.control2": "Mayús izdo + clic derecho", - "item.create.wrench.tooltip.action2": "Desmonta los _componentes cinéticos_ y los devuelve a tu inventario_.", - - "block.create.nozzle.tooltip": "BOQUILLA", - "block.create.nozzle.tooltip.summary": "Se acopla a la parte delantera de un _ventilador revestido_ para distribuir su efecto sobre las entidades en _todas las direcciones_.", - - "block.create.cuckoo_clock.tooltip": "RELOJ DE CUCO", - "block.create.cuckoo_clock.tooltip.summary": "Fina artesanía para decorar un espacio y contar el tiempo.", - "block.create.cuckoo_clock.tooltip.condition1": "Cuando es alimentado por cinética", - "block.create.cuckoo_clock.tooltip.behaviour1": "Muestra la _hora actual_ y toca una melodía dos veces al día. Se activa una vez al mediodía y al anochecer, _en cuanto los jugadores pueden dormir_.", - - "block.create.turntable.tooltip": "PLATAFORMA GIRATORIA", - "block.create.turntable.tooltip.summary": "Convierte la _fuerza rotacional_ en un refinado mareo.", - - "block.create.stockpile_switch.tooltip": "INTERRUPTOR DE ACOPIO", - "block.create.stockpile_switch.tooltip.summary": "Activa una señal de redstone en función de la cantidad de _objetos almacenados_ en el _contenedor_ adjunto. Viene con un práctico filtro. A diferencia de un _comparador, el _interruptor de acopio_ permite la configuración de _umbrales_, a partir de los cuales se invierten las señales.", - "block.create.stockpile_switch.tooltip.condition1": "Cuando se hace clic derecho", - "block.create.stockpile_switch.tooltip.behaviour1": "Abre la interfaz de configuración.", - - "block.create.content_observer.tooltip": "OBSERVADOR DE CONTENIDO", - "block.create.content_observer.tooltip.summary": "_Detecta objetos_ dentro de _contenedores_ y _transportadores_ que coincidan con un _filtro_ configurado. Mientras el _inventario_, la _cinta_ o la _canaleta_ observados _contengan_ un objeto que coincida, este componente emitirá una _señal de redstone_. Cuando un embudo observado _transfiere_ un objeto coincidente, este componente emitirá un _pulso de redstone_.", - - "block.create.adjustable_crate.tooltip": "CAJA AJUSTABLE", - "block.create.adjustable_crate.tooltip.summary": "Este _contenedor de objetos_ permite el control manual de su capacidad. Puede contener hasta _16 pilas_ de cualquier objeto. Soporta _comparadores de redstone_.", - "block.create.adjustable_crate.tooltip.condition1": "Cuando se hace clic derecho", - "block.create.adjustable_crate.tooltip.behaviour1": "Abre la interfaz.", - - "block.create.creative_crate.tooltip": "CAJA CREATIVA", - "block.create.creative_crate.tooltip.summary": "Este _contenedor de objetos_ permite la replicación infinita de cualquier elemento. Colócalo junto a un _cañón de esquemas_ para eliminar cualquier requisito de material.", - "block.create.creative_crate.tooltip.condition1": "Cuando el elemento está en la ranura para filtros", - "block.create.creative_crate.tooltip.behaviour1": "Todo lo que se _extraiga_ de este contenedor proporcionará un suministro _ilimitado_ del elemento especificado. Los objetos _insertados_ en esta caja serán _evitados_.", - - "item.create.creative_blaze_cake.tooltip": "PASTEL CREATIVO", - "item.create.creative_blaze_cake.tooltip.summary": "Un regalo muy especial para los _Quemadores de Blaze_ que permite _controlar su nivel de calor_. Después de comer este pastel, los Quemadores de blaze _nunca se quedarán sin combustible_.", - "item.create.creative_blaze_cake.tooltip.condition1": "Click derecho en un Quemador de blaze", - "item.create.creative_blaze_cake.tooltip.behaviour1": "Bloquea el nivel de calor del Quemador de blaze. Si se utiliza de nuevo, _cicla_ el nivel de calor del Quemador de blaze.", - - "block.create.controller_rail.tooltip": "RAÍL DE CONTROL", - "block.create.controller_rail.tooltip.summary": "Un raíl energizado _unidireccional_ capaz de _controlar con precisión_ la _velocidad de movimiento_ de una vagoneta.", - "block.create.controller_rail.tooltip.condition1": "Cuando es alimentado con redstone", - "block.create.controller_rail.tooltip.behaviour1": "_Acelera_ o _desacelera_ pasando _vagonetas_ correspondientes a la _fuerza de la señal_. Propaga la energía de redstone a los raíles de control adyacentes. Al alimentar dos raíles de control con diferentes intensidades, los carriles entre ellos interpolarán su señal.", - - "item.create.sand_paper.tooltip": "PAPEL DE LIJA", - "item.create.sand_paper.tooltip.summary": "Un papel rugoso que se puede utilizar para _pulir materiales_. Se puede aplicar automáticamente con el _desplegador_.", - "item.create.sand_paper.tooltip.condition1": "Cuando se usa", - "item.create.sand_paper.tooltip.behaviour1": "Aplica un pulido a los objetos sostenidos en la _mano libre_ o tirados en el _suelo_ cuando se _miran_.", - - "item.create.builders_tea.tooltip": "TÉ DEL CONSTRUCTOR", - "item.create.builders_tea.tooltip.summary": "La bebida perfecta para empezar el día. Motivante y saturante.", - - "item.create.refined_radiance.tooltip": "RESPLANDOR REFINADO", - "item.create.refined_radiance.tooltip.summary": "Un material cromático forjado a partir de la _luz absorbida_.", - "item.create.refined_radiance.tooltip.condition1": "Trabajo en progreso", - "item.create.refined_radiance.tooltip.behaviour1": "Los usos para este material estarán disponibles en un próximo lanzamiento.", - - "item.create.shadow_steel.tooltip": "ACERO SOMBRÍO", - "item.create.shadow_steel.tooltip.summary": "Un material cromático forjado en el _vacío_.", - "item.create.shadow_steel.tooltip.condition1": "Trabajo en curso", - "item.create.shadow_steel.tooltip.behaviour1": "Los usos de este material estarán disponibles en una futura versión.", - - "item.create.linked_controller.tooltip": "CONTROLADOR ENLAZADO", - "item.create.linked_controller.tooltip.summary": "Permite el control manual de las frecuencias de _enlaces de redstone_ asignadas a sus seis botones.", - "item.create.linked_controller.tooltip.condition1": "Al hacer clic derecho", - "item.create.linked_controller.tooltip.behaviour1": "Activa el _controlador_. Los _controles de movimiento_ se adquieren mientras está activo.", - "item.create.linked_controller.tooltip.condition2": "Al usar Mayús izdo + clic derecho", - "item.create.linked_controller.tooltip.behaviour2": "Abre la interfaz de configuración manual.", - "item.create.linked_controller.tooltip.condition3": "Al usar clic derecho en un receptor de enlaces de redstone", - "item.create.linked_controller.tooltip.behaviour3": "Activa el _modo de vinculación_, pulsa uno de los _seis controles_ para vincularlo a la _frecuencia de los enlaces_.", - "item.create.linked_controller.tooltip.condition4": "Clic derecho en un atril", - "item.create.linked_controller.tooltip.behaviour4": "Coloca el controlador en el atril para facilitar su activación. (Clic derecho + mayús izq. para recuperarlo)", - - "item.create.diving_helmet.tooltip": "CASCO DE BUCEO", - "item.create.diving_helmet.tooltip.summary": "Junto con un _depósito trasero de cobre_, permite que el usuario pueda respirar bajo el agua durante un tiempo prolongado.", - "item.create.diving_helmet.tooltip.condition1": "Cuando se lleva puesto", - "item.create.diving_helmet.tooltip.behaviour1": "Proporciona el efecto de _respiración acuática_, drenando lentamente la presión de aire del _depósito trasero_.", - - "item.create.copper_backtank.tooltip": "DEPÓSITO TRASERO DE COBRE", - "item.create.copper_backtank.tooltip.summary": "Un tanque portátil para transportar _aire presurizado_.", - "item.create.copper_backtank.tooltip.condition1": "Cuando se lleva puesto", - "item.create.copper_backtank.tooltip.behaviour1": "Proporciona _aire presurizado_ a los equipos que lo requieran.", - "item.create.copper_backtank.tooltip.condition2": "Cuando se coloca y es alimentado por cinética", - "item.create.copper_backtank.tooltip.behaviour2": "Recoge _aire presurizado_ a un ritmo que depende de la velocidad rotacional.", - - "item.create.diving_boots.tooltip": "BOTAS DE BUCEO", - "item.create.diving_boots.tooltip.summary": "Un par de _botas_ pesadas, que permiten atravesar mejor el suelo del océano.", - "item.create.diving_boots.tooltip.condition1": "Cuando se llevan puestas", - "item.create.diving_boots.tooltip.behaviour1": "El portador se hunde rápido y no puede nadar. Concede la capacidad de caminar y saltar bajo el agua. Al portador no le afectarán las _correas mecánicas.", - - "item.create.crafting_blueprint.tooltip": "PLANO DE ELABORACIÓN", - "item.create.crafting_blueprint.tooltip.summary": "Colocado en una pared, puede utilizarse para especificar la disposición de los ingredientes para facilitar la elaboración manual. Cada ranura representa una receta", - "item.create.crafting_blueprint.condition1": "Al hacer clic derecho en una ranura vacía", - "item.create.crafting_blueprint.behaviour1": "Abre un menú que permite configurar una receta y los objetos a mostrar.", - "item.create.crafting_blueprint.condition2": "Al hacer clic derecho en una ranura configurada", - "item.create.crafting_blueprint.behaviour2": "Aplica la receta configurada con los ingredientes que se encuentran en tu inventario. Se puede utilizar para fabricar hasta una pila de objetos.", - - "item.create.minecart_coupling.tooltip": "ENSAMBLADOR DE VAGONETAS", - "item.create.minecart_coupling.tooltip.summary": "_Encadena_ todas tus _vagonetas_ o _artilugios de vagoneta_ para formar un majestuoso _tren_.", - "item.create.minecart_coupling.tooltip.condition1": "Cuando se utiliza en vagonetas", - "item.create.minecart_coupling.tooltip.behaviour1": "_Acopla_ dos vagonetas, intentando mantenerlas a una _distancia constante_ mientras se mueven.", - - "block.create.peculiar_bell.tooltip": "CAMPANA PECULIAR", - "block.create.peculiar_bell.tooltip.summary": "Una campana decorativa de latón. Al colocarla sobre un _Fuego del alma_ o una _Fogata del alma_ puede producirse una transformación espeluznante...", - - "block.create.haunted_bell.tooltip": "CAMPANA ENCANTADA", - "block.create.haunted_bell.tooltip.summary": "Una _campana maldita_ perseguida por las almas perdidas del Nether", - "block.create.haunted_bell.tooltip.condition1": "Cuando se sostiene o suena", - "block.create.haunted_bell.tooltip.behaviour1": "Resalta los _puntos sin luz_ cercanos en los que pueden aparecer las _criaturas hostiles_.", - - - "_": "->------------------------] Ponder Content [------------------------<-", - - "create.ponder.hold_to_ponder": "Mantén [%1$s] para considerar", - "create.ponder.subject": "Tema de esta escena", - "create.ponder.pondering": "Considerando sobre...", - "create.ponder.identify_mode": "Identificando modo activo.\nDespausea con [%1$s]", - "create.ponder.associated": "Entradas asociadas", - "create.ponder.close": "Cerrar", - "create.ponder.identify": "Identificar", - "create.ponder.next": "Escena siguiente", - "create.ponder.previous": "Escena previa", - "create.ponder.replay": "Repetición", - "create.ponder.think_back": "Volver atrás", - "create.ponder.slow_text": "Lectura cómoda", - "create.ponder.exit": "Salir", - "create.ponder.welcome": "Bienvenido al instructivo de Create", - "create.ponder.categories": "Categorías disponibles", - "create.ponder.index_description": "Haga clic en uno de los iconos para conocer sus objetos y bloques asociados", - "create.ponder.index_title": "Índice", - "create.ponder.shared.rpm16": "16 RPM", - "create.ponder.shared.behaviour_modify_wrench": "Este comportamiento puede modificarse mediante una llave inglesa", - "create.ponder.shared.storage_on_contraption": "Los inventarios unidos al artilugio recogerán sus producciones automáticamente", - "create.ponder.shared.sneak_and": "Mayús izdo. +", - "create.ponder.shared.rpm8": "8 RPM", - "create.ponder.shared.ctrl_and": "Ctrl +", - "create.ponder.shared.rpm32": "32 RPM", - "create.ponder.shared.rpm16_source": "Fuente: 16 RPM", - "create.ponder.shared.movement_anchors": "Con la ayuda de un chasis o pegamento, se pueden mover estructuras más grandes.", - "create.ponder.tag.redstone": "Componentes lógicos", - "create.ponder.tag.redstone.description": "Componentes que ayudan a la ingeniería de redstone", - "create.ponder.tag.contraption_assembly": "Utilidades para adjuntar bloques", - "create.ponder.tag.contraption_assembly.description": "Herramientas y componentes utilizados para montar estructuras con movimiento, como un artilugio animado", - "create.ponder.tag.fluids": "Manipuladores de fluidos", - "create.ponder.tag.fluids.description": "Componentes que ayudan a transportar y utilizar fluidos", - "create.ponder.tag.decoration": "Estética", - "create.ponder.tag.decoration.description": "Componentes utilizados principalmente con fines decorativos", - "create.ponder.tag.windmill_sails": "Velas para los rodamientos de los molinos de viento", - "create.ponder.tag.windmill_sails.description": "Bloques que cuentan para la fuerza de un artefacto de molino de viento cuando se ensamblan. Cada uno de ellos tiene la misma eficacia al hacerlo.", - "create.ponder.tag.arm_targets": "Objetivos para los brazos mecánicos", - "create.ponder.tag.arm_targets.description": "Componentes que pueden seleccionarse como entradas o salidas del brazo mecánico", - "create.ponder.tag.kinetic_appliances": "Dispositivos cinéticos", - "create.ponder.tag.kinetic_appliances.description": "Componentes que utilizan la fuerza rotacional", - "create.ponder.tag.kinetic_sources": "Fuentes cinéticas", - "create.ponder.tag.kinetic_sources.description": "Componentes que generan fuerza rotacional", - "create.ponder.tag.movement_anchor": "Anclas de movimiento", - "create.ponder.tag.movement_anchor.description": "Componentes que permiten crear artilugios en movimiento, animando una estructura anexa de diversas maneras", - "create.ponder.tag.kinetic_relays": "Transmisores cinéticos", - "create.ponder.tag.kinetic_relays.description": "Componentes que ayudan a transmitir la fuerza rotacional en otro lugar", - "create.ponder.tag.contraption_actor": "Actores del artilugio", - "create.ponder.tag.contraption_actor.description": "Componentes que exponen un comportamiento especial cuando están unidos a un artilugio en movimiento", - "create.ponder.tag.creative": "Modo creativo", - "create.ponder.tag.creative.description": "Componentes que no suelen estar disponibles para el Modo Supervivencia", - "create.ponder.tag.logistics": "Transporte de objetos", - "create.ponder.tag.logistics.description": "Componentes que ayudan a desplazar los objetos", - - "create.ponder.adjustable_pulse_repeater.header": "Controlar señales mediante repetidores de pulsos ajustables", - "create.ponder.adjustable_pulse_repeater.text_1": "Los repetidores de pulsos ajustables emiten un pulso corto con un retardo", - "create.ponder.adjustable_pulse_repeater.text_2": "Con la rueda del ratón se puede configurar el tiempo de carga", - "create.ponder.adjustable_pulse_repeater.text_3": "Los retrasos configurados pueden ser de hasta 30 minutos", - - "create.ponder.adjustable_repeater.header": "Controlar señales mediante repetidores ajustables", - "create.ponder.adjustable_repeater.text_1": "Los repetidores ajustables se comportan de forma similar a los repetidores normales", - "create.ponder.adjustable_repeater.text_2": "Se cargan durante un tiempo determinado...", - "create.ponder.adjustable_repeater.text_3": "...y se enfrían durante el mismo tiempo", - "create.ponder.adjustable_repeater.text_4": "Con la rueda del ratón se puede configurar el tiempo de carga", - "create.ponder.adjustable_repeater.text_5": "Los retrasos configurados pueden variar hasta 30 minutos", - - "create.ponder.analog_lever.header": "Controlar señales mediante la palanca analógica", - "create.ponder.analog_lever.text_1": "Las palancas analógicas son una fuente compacta y precisa de energía de redstone", - "create.ponder.analog_lever.text_2": "Haz clic derecho para aumentar su potencia analógica", - "create.ponder.analog_lever.text_3": "Usa Mayús izdo + clic derecho para volver a disminuir su potencia", - - "create.ponder.andesite_tunnel.header": "Usar túneles de andesita", - "create.ponder.andesite_tunnel.text_1": "Los túneles de andesita se pueden utilizar para tapar las correas", - "create.ponder.andesite_tunnel.text_2": "Siempre que un túnel de andesita tenga conexiones a los lados...", - "create.ponder.andesite_tunnel.text_3": "...dividirá exactamente un elemento de cualquier pila que pase", - "create.ponder.andesite_tunnel.text_4": "El resto continuará su camino", - - "create.ponder.basin.header": "Procesar objetos en la cuenca", - "create.ponder.basin.text_1": "Una cuenca puede contener objetos y fluidos para su procesamiento", - "create.ponder.basin.text_2": "Después de un paso de procesamamiento, las cuencas intentan descargar por debajo a un lado de ellas", - "create.ponder.basin.text_3": "Cuando un ingrediente válido está presente, la cuenca mostrará un conducto de salida", - "create.ponder.basin.text_4": "Aquí se pueden aplicar varias opciones", - "create.ponder.basin.text_5": "Las salidas serán capturadas por el inventario que está por debajo", - "create.ponder.basin.text_6": "Sin conducto de salida, la cuenca retendrá los objetos creados en su procesamiento", - "create.ponder.basin.text_7": "Esto puede ser útil si las salidas deben ser reutilizadas como ingredientes", - "create.ponder.basin.text_8": "Las salidas deseadas tendrán que ser extraídas de la cuenca", - "create.ponder.basin.text_9": "Podría ser necesario un filtro para evitar sacar los objetos no procesados", - - "create.ponder.bearing_modes.header": "Modos de movimiento del rodamiento mecánico", - "create.ponder.bearing_modes.text_1": "Cuando se detenga, el rodamiento mecánico colocará la estructura en el ángulo más cercano alineado con la cuadrícula", - "create.ponder.bearing_modes.text_2": "Se puede configurar para que nunca vuelva a los bloques sólidos, o sólo cerca del ángulo en el que comenzó", - - "create.ponder.belt_casing.header": "Correas revestidas", - "create.ponder.belt_casing.text_1": "Se puede utilizar revestidor de latón o andesita para decorar las correas", - "create.ponder.belt_casing.text_2": "Se puede utilizar una llave inglesa para quitar el revestimiento", - - "create.ponder.belt_connector.header": "El uso de las correas mecánicas", - "create.ponder.belt_connector.text_1": "Al hacer clic derecho en dos ejes con una correa mecánica se conectarán entre sí", - "create.ponder.belt_connector.text_2": "Las selecciones accidentales pueden ser canceladas con Mayús izdo + clic derecho", - "create.ponder.belt_connector.text_3": "Se pueden añadir ejes adicionales en toda la correa", - "create.ponder.belt_connector.text_4": "Los ejes conectados a través de correas girarán con velocidad y dirección idénticas", - "create.ponder.belt_connector.text_5": "Los ejes añadidos se pueden quitar con la llave inglesa", - "create.ponder.belt_connector.text_6": "Las correas mecánicas se pueden teñir con fines estéticos", - - "create.ponder.belt_directions.header": "Orientaciones válidas para las correas mecánicas", - "create.ponder.belt_directions.text_1": "Las correas mecánicas no pueden conectarse en direcciones arbitrarias", - "create.ponder.belt_directions.text_2": "1. Pueden conectarse horizontalmente", - "create.ponder.belt_directions.text_3": "2. Pueden conectarse en diagonal", - "create.ponder.belt_directions.text_4": "3. Pueden conectarse verticalmente", - "create.ponder.belt_directions.text_5": "4. Y pueden conectar ejes verticales horizontalmente", - "create.ponder.belt_directions.text_6": "Estas son todas las direcciones posibles. Pueden abarcar cualquier longitud entre 2 y 20 bloques", - - "create.ponder.belt_transport.header": "El uso de las correas mecánicas para la logística", - "create.ponder.belt_transport.text_1": "Las correas mecánicas transportan objetos y otras entidades", - "create.ponder.belt_transport.text_2": "Haz clic derecho con la mano vacía para sacar objetos de una 'cinta'", - - "create.ponder.blaze_burner.header": "Alimentar quemadores de blaze", - "create.ponder.blaze_burner.text_1": "Los quemadores de blaze pueden proporcionar calor a los objetos procesados en una cuenca", - "create.ponder.blaze_burner.text_2": "Para ello, el blaze tiene que ser alimentado con objetos inflamables", - "create.ponder.blaze_burner.text_3": "Con un pastel de blaze, el quemador puede alcanzar un mayor nivel de calor", - "create.ponder.blaze_burner.text_4": "El proceso de alimentación puede automatizarse utilizando desplegadores o brazos mecánicos", - - "create.ponder.brass_funnel.header": "El embudo de latón", - "create.ponder.brass_funnel.text_1": "Los embudos de andesita sólo pueden extraer objetos individuales", - "create.ponder.brass_funnel.text_2": "Los embudos de latón pueden extraer hasta una pila completa", - "create.ponder.brass_funnel.text_3": "Usar la rueda de desplazamiento del ratón en la ranura para filtros permite un control preciso del tamaño de la pila extraída.", - "create.ponder.brass_funnel.text_4": "El uso de objetos en la ranura de filtrado restringirá el embudo para transferir sólo las pilas que coincidan.", - - "create.ponder.brass_tunnel.header": "Usar túneles de latón", - "create.ponder.brass_tunnel.text_1": "Los túneles de latón pueden utilizarse para tapar las correas", - "create.ponder.brass_tunnel.text_2": "Tienen ranuras de filtro en cada lado abierto", - "create.ponder.brass_tunnel.text_3": "Los filtros en las conexiones de entrada simplemente bloquean los objetos que no coincidan", - "create.ponder.brass_tunnel.text_4": "Los filtros en las conexiones de salida pueden utilizarse para ordenar los objetos por tipo", - "create.ponder.brass_tunnel.text_5": "Siempre que un objeto de paso tenga múltiples salidas válidas, el modo de distribución decidirá cómo manejarlo", - "create.ponder.brass_tunnel.text_6": "Los túneles de latón en bandas paralelas formarán un grupo", - "create.ponder.brass_tunnel.text_7": "Los objetos entrantes se distribuirán ahora por todas las salidas conectadas", - "create.ponder.brass_tunnel.text_8": "Para ello, los objetos también pueden insertarse en el bloque del túnel directamente", - - "create.ponder.brass_tunnel_modes.header": "Modos de distribución del túnel de latón", - "create.ponder.brass_tunnel_modes.text_1": "Mediante una llave inglesa se puede configurar el comportamiento de distribución de los túneles de latón", - "create.ponder.brass_tunnel_modes.text_10": "'Sincronizar entradas' es una configuración única de los túneles de latón", - "create.ponder.brass_tunnel_modes.text_11": "Las entradas sólo pueden pasar si cada túnel del grupo tiene una en espera", - "create.ponder.brass_tunnel_modes.text_12": "Esto asegura que todas las correas afectadas suministren objetos al mismo tiempo", - "create.ponder.brass_tunnel_modes.text_2": "El modo División intentará distribuir la pila uniformemente entre las salidas disponibles", - "create.ponder.brass_tunnel_modes.text_3": "Si una salida no puede tomar más objetos, se saltará", - "create.ponder.brass_tunnel_modes.text_4": "El modo División forzada nunca saltará las salidas, y en su lugar esperará hasta que estén libres", - "create.ponder.brass_tunnel_modes.text_5": "El modo Round Robin mantiene las pilas enteras, y recorre las salidas de forma iterativa", - "create.ponder.brass_tunnel_modes.text_6": "Una vez más, si una salida no puede aceptar más objetos, se saltará", - "create.ponder.brass_tunnel_modes.text_7": "El modo Round Robin forzado nunca omite salidas", - "create.ponder.brass_tunnel_modes.text_8": "El modo Preferir el más cercano prioriza las salidas más cercanas a la ubicación de entrada de los objetos", - "create.ponder.brass_tunnel_modes.text_9": "El modo Aleatorizar distribuirá pilas enteras a salidas elegidas al azar", - - "create.ponder.cart_assembler.header": "Mover estructuras usando ensambladores de vagonetas", - "create.ponder.cart_assembler.text_1": "Los ensambladores de vagonetas montan estructuras adjuntas a las vagonetas que pasan", - "create.ponder.cart_assembler.text_2": "Sin una señal de redstone, desmonta los artilugios de vagoneta que pasan de nuevo en bloques", - "create.ponder.cart_assembler.text_3": "El uso de una llave inglesa en una vagoneta te permitirá llevar el artilugio a otro lugar", - - "create.ponder.cart_assembler_dual.header": "Ensamblajes de artilugios de vagoneta", - "create.ponder.cart_assembler_dual.text_1": "Siempre que dos ensambladores de vagoneta compartan una estructura adjunta...", - "create.ponder.cart_assembler_dual.text_2": "...al alimentar a cualquiera de ellos se creará un artilugio de vagoneta", - "create.ponder.cart_assembler_dual.text_3": "Las vagonetas se comportarán como las conectadas a través del acoplamiento de vagoneta", - - "create.ponder.cart_assembler_modes.header": "Configurar la orientación de los artilugios de vagonetas", - "create.ponder.cart_assembler_modes.text_1": "Los artilugios de vagonetas girarán para orientarse hacia el movimiento de sus vagonetas", - "create.ponder.cart_assembler_modes.text_2": "Esta flecha indica qué lado de la estructura se considerará la parte delantera", - "create.ponder.cart_assembler_modes.text_3": "Si el ensamblador está configurado para bloquear la rotación, la orientación de los artilugios nunca cambiará", - - "create.ponder.cart_assembler_rails.header": "Otros tipos de vagonetas y raíles", - "create.ponder.cart_assembler_rails.text_1": "Los ensambladores de vagonetas en raíles normales no afectarán el movimiento de las vagonetas que pasen", - "create.ponder.cart_assembler_rails.text_2": "Cuando se encuentre en un raíl motorizado o en un raíl de control, las vagonetas se mantendrán en su sitio hasta que sea motorizado", - "create.ponder.cart_assembler_rails.text_3": "Se pueden utilizar otros tipos de vagonetas como anclaje", - "create.ponder.cart_assembler_rails.text_4": "Los artilugios de vagonetas de horno se mantendrán alimentados a sí mismos, sacando combustible de cualquier inventario adjunto", - - "create.ponder.chain_drive.header": "Transmitir fuerza rotacional con las cadenas de transmisión", - "create.ponder.chain_drive.text_1": "Las cadenas de transmisión transmiten la rotación entre sí en fila", - "create.ponder.chain_drive.text_2": "Todos los ejes conectados así girarán en la misma dirección", - "create.ponder.chain_drive.text_3": "Cualquier parte de la fila puede girar 90 grados usando una llave inglesa", - - "create.ponder.chain_gearshift.header": "Controlar la velocidad de rotación con la cadena de transmisión ajustable", - "create.ponder.chain_gearshift.text_1": "Las cadenas de transmisión ajustables sin alimentación se comportan exactamente como las cadenas de transmisión", - "create.ponder.chain_gearshift.text_2": "Cuando están alimentadas, la velocidad transmitida a las demás cadenas de transmisión de la fila se duplica", - "create.ponder.chain_gearshift.text_3": "Siempre que la cadena de transmisión alimentada no esté en el origen, su velocidad se reducirá a la mitad", - "create.ponder.chain_gearshift.text_4": "En ambos casos, las cadenas de transmisión de la fila siempre funcionan a 2 veces la velocidad de la cadena de transmisión alimentada", - "create.ponder.chain_gearshift.text_5": "Utilizando señales analógicas, la relación puede ajustarse con mayor precisión, entre 1 y 2", - "create.ponder.chain_gearshift.text_6": "12 RPM", - - "create.ponder.chute.header": "Transportar objetos hacia abajo a través de ductos", - "create.ponder.chute.text_1": "Los ductos pueden transportar objetos verticalmente desde y hacia los inventarios", - "create.ponder.chute.text_2": "Usando la llave inglesa, se puede crear una ventana", - "create.ponder.chute.text_3": "Colocar ductos apuntando a las caras laterales de otro lo hará en diagonal", - - "create.ponder.chute_upward.header": "Transportar objetos hacia arriba mediante ductos", - "create.ponder.chute_upward.text_1": "Usando ventiladores revestidos en la parte superior o inferior, un ducto puede transportar objetos hacia arriba", - "create.ponder.chute_upward.text_2": "Al inspeccionar los ductos con las gafas del constructor, se revela información sobre la dirección del movimiento", - "create.ponder.chute_upward.text_3": "En el extremo 'bloqueado', los objetos tendrán que ser insertados/tomados de los lados", - - "create.ponder.clockwork_bearing.header": "Animar estructuras con rodamientos tipo reloj", - "create.ponder.clockwork_bearing.text_1": "Los rodamientos tipo reloj se fijan a los bloques que tienen delante", - "create.ponder.clockwork_bearing.text_2": "Al recibir fuerza rotacional, la estructura girará según la hora del día", - "create.ponder.clockwork_bearing.text_3": "3:00", - "create.ponder.clockwork_bearing.text_4": "4:00", - "create.ponder.clockwork_bearing.text_5": "Haz clic derecho en el rodamiento para iniciar o detener la animación de la estructura", - "create.ponder.clockwork_bearing.text_6": "Delante de la manecilla de las horas se puede añadir una segunda estructura", - "create.ponder.clockwork_bearing.text_7": "Asegúrese de que las dos estructuras no están unidas entre sí con pegamento o algo similar", - "create.ponder.clockwork_bearing.text_8": "La segunda estructura ahora girará como el minutero", - - "create.ponder.clutch.header": "Controlar la fuerza rotacional mediante un embrague", - "create.ponder.clutch.text_1": "Los embragues transmitirán la rotación en línea recta", - "create.ponder.clutch.text_2": "Cuando se alimentan con redstone, rompen la conexión", - - "create.ponder.cog_speedup.header": "Cambiar de marchas con engranajes", - "create.ponder.cog_speedup.text_1": "Los engranajes grandes y pequeños pueden conectarse en diagonal", - "create.ponder.cog_speedup.text_2": "Al cambiar de engranajes grandes a pequeños, la velocidad rotacional se duplicará", - "create.ponder.cog_speedup.text_3": "Inversamente, la velocidad rotacional se reducirá a la mitad", - - "create.ponder.cogwheel.header": "Transmitir fuerza rotacional mediante engranajes", - "create.ponder.cogwheel.text_1": "Los engranajes transmitirán la rotación a otros engranajes adyacentes", - "create.ponder.cogwheel.text_2": "Los ejes adyacentes conectados así, girarán en direcciones opuestas", - - "create.ponder.creative_fluid_tank.header": "Tanque de fluídos creativo", - "create.ponder.creative_fluid_tank.text_1": "Los depósitos de fluidos creativos pueden utilizarse para proporcionar un suministro de fluidos sin fondo", - "create.ponder.creative_fluid_tank.text_2": "Haga clic con el botón derecho en un elemento que contenga fluido para configurarlo", - "create.ponder.creative_fluid_tank.text_3": "Las redes de tuberías pueden ahora extraer sin cesar el fluido asignado del depósito", - "create.ponder.creative_fluid_tank.text_4": "Cualquier fluido empujado de vuelta a un tanque de fluido creativo será anulado", - - "create.ponder.creative_motor.header": "Generar fuerza rotacional con motores creativos", - "create.ponder.creative_motor.text_1": "Los motores creativos son una fuente compacta y configurable de fuerza rotacional", - "create.ponder.creative_motor.text_2": "Usar la rueda de desplazamiento del ratón en su parte trasera cambia las RPM de la salida rotacional", - - "create.ponder.crushing_wheels.header": "Procesar objetos con las ruedas trituradoras", - "create.ponder.crushing_wheels.text_1": "Un par de ruedas trituradoras pueden moler objetos de forma muy eficaz", - "create.ponder.crushing_wheels.text_2": "Su fuerza rotacional tiene que hacerlas girar una contra otra", - "create.ponder.crushing_wheels.text_3": "Los objetos lanzados o insertados en la parte superior serán procesados", - "create.ponder.crushing_wheels.text_4": "Los objetos también pueden ser insertados y recogidos a través de medios automatizados", - - "create.ponder.deployer.header": "Usar el desplegador", - "create.ponder.deployer.text_1": "Dada la fuerza rotacional, un desplegador puede imitar las interacciones de los jugadores", - "create.ponder.deployer.text_10": "Haz clic derecho en el frente para darle un objeto a utilizar", - "create.ponder.deployer.text_11": "Los objetos también pueden ser insertados automáticamente", - "create.ponder.deployer.text_12": "Los desplegadores llevan una ranura de filtro", - "create.ponder.deployer.text_13": "Cuando se establece un filtro, sólo se activa mientras se mantiene un elemento coincidente", - "create.ponder.deployer.text_14": "Ahora sólo se pueden insertar los objetos que coincidan con el filtro...", - "create.ponder.deployer.text_15": "...y sólo se extraerán los objetos que no coincidan", - "create.ponder.deployer.text_2": "Siempre interactuará con la posición 2 bloques delante de sí mismo", - "create.ponder.deployer.text_3": "Los bloques situados directamente delante no lo obstruirán", - "create.ponder.deployer.text_4": "Los desplegadores pueden:", - "create.ponder.deployer.text_5": "Colocar bloques,", - "create.ponder.deployer.text_6": "Usar objetos,", - "create.ponder.deployer.text_7": "Activar bloques,", - "create.ponder.deployer.text_8": "Cosechar bloques", - "create.ponder.deployer.text_9": "Y atacar criaturas", - - "create.ponder.deployer_contraption.header": "Usar desplegadores en artilugios", - "create.ponder.deployer_contraption.text_1": "Siempre que los desplegadores se muevan como parte de un artilugio animado...", - "create.ponder.deployer_contraption.text_2": "Se activan en cada ubicación visitada, utilizando objetos de los inventarios de cualquier parte del artilugio", - "create.ponder.deployer_contraption.text_3": "La ranura para filtros se puede utilizar para especificar qué objetos tirar", - - "create.ponder.deployer_modes.header": "Modos del desplegador", - "create.ponder.deployer_modes.text_1": "Por defecto, un desplegador imita la interacción del clic derecho del ratón", - "create.ponder.deployer_modes.text_2": "Usando una llave inglesa, se puede configurar para imitar un clic izquierdo en su lugar", - - "create.ponder.deployer_processing.header": "Procesar objetos mediante desplegadores", - "create.ponder.deployer_processing.text_1": "Con un objeto de sujeción ajustado, los desplegadores pueden procesar los objetos proporcionados por debajo de ellos", - "create.ponder.deployer_processing.text_2": "Los objetos de entrada pueden soltarse o colocarse en un depósito bajo el desplegador", - "create.ponder.deployer_processing.text_3": "Cuando los objetos se proporcionan en una 'cinta'...", - "create.ponder.deployer_processing.text_4": "El desplegador los retendrá y procesará automáticamente", - - "create.ponder.deployer_redstone.header": "Controlar desplegadores con redstone", - "create.ponder.deployer_redstone.text_1": "Al controlar los desplegadores con redstone, éstos no se activarán", - "create.ponder.deployer_redstone.text_2": "Antes de detenerse, el desplegador terminará cualquier ciclo iniciado", - "create.ponder.deployer_redstone.text_3": "Por lo tanto, un pulso negativo puede ser utilizado para desencadenar exactamente un ciclo de activación", - - "create.ponder.depot.header": "Usar depósitos", - "create.ponder.depot.text_1": "Los depósitos pueden servir como objetos 'fijos' de la correa", - "create.ponder.depot.text_2": "Haz clic derecho para colocar o eliminar manualmente objetos del mismo", - "create.ponder.depot.text_3": "Al igual que las correas mecánicas, pueden proporcionar objetos para su procesamiento", - "create.ponder.depot.text_4": "...así como proporcionar objetos a los brazos mecánicos", - - "create.ponder.empty_blaze_burner.header": "Usar quemadores de blaze vacíos", - "create.ponder.empty_blaze_burner.text_1": "Haz clic derecho en un blaze con el quemador vacío para capturarlo", - "create.ponder.empty_blaze_burner.text_2": "Alternativamente, los blaze pueden ser recogidos de sus spawners directamente", - "create.ponder.empty_blaze_burner.text_3": "Ahora tienes una fuente de calor ideal para varias máquinas", - "create.ponder.empty_blaze_burner.text_4": "Por motivos estéticos, los quemadores de blaze vacíos también se pueden encender con pedernal y acero", - "create.ponder.empty_blaze_burner.text_5": "La llama puede transformarse utilizando un objeto con alma", - "create.ponder.empty_blaze_burner.text_6": "Sin embargo, no son adecuados para la calefacción industrial", - - "create.ponder.encased_fluid_pipe.header": "Revestir tuberías de fluídos", - "create.ponder.encased_fluid_pipe.text_1": "El revestidor de cobre puede utilizarse para decorar las tuberías de fluidos", - "create.ponder.encased_fluid_pipe.text_2": "Además de estar ocultas, las tuberías revestidas están bloqueadas en su estado de conectividad", - "create.ponder.encased_fluid_pipe.text_3": "Ya no reaccionará a los bloques vecinos que se añadan o eliminen", - - "create.ponder.fan_direction.header": "El flujo de aire de los ventiladores revestidos", - "create.ponder.fan_direction.text_1": "Los ventiladores revestidos utilizan la fuerza rotacional para crear una corriente de aire", - "create.ponder.fan_direction.text_2": "La fuerza y la dirección del flujo dependen de la fuerza rotacional suministrada", - - "create.ponder.fan_processing.header": "Procesar objetos mediante ventiladores revestidos", - "create.ponder.fan_processing.text_1": "Al pasar por lava, el flujo de aire se calienta", - "create.ponder.fan_processing.text_2": "Los objetos capturados en la zona serán fundidos", - "create.ponder.fan_processing.text_3": "Los artículos de comida arrojados aquí serán incinerados", - "create.ponder.fan_processing.text_4": "En su lugar, se debería utilizar una instalación de ahumado, usando fuego", - "create.ponder.fan_processing.text_5": "Los flujos de aire que pasan por el agua crean una instalación de lavado", - "create.ponder.fan_processing.text_6": "Se puede hacer un nuevo e interesante procesamiento con él", - "create.ponder.fan_processing.text_7": "La velocidad del ventilador NO afecta a la velocidad de procesamiento, sólo a su rango", - "create.ponder.fan_processing.text_8": "El procesamiento del ventilador también puede aplicarse a los objetos de los depósitos y las correas", - - "create.ponder.fan_source.header": "Generar fuerza rotacional mediante ventiladores revestidos", - "create.ponder.fan_source.text_1": "Los ventiladores orientados hacia una fuente de calor pueden proporcionar fuerza rotacional", - "create.ponder.fan_source.text_2": "Cuando se les da una señal de redstone, los ventiladores comenzarán a proporcionar fuerza", - - "create.ponder.fluid_pipe_flow.header": "Transportar fluidos mediante tuberías de cobre", - "create.ponder.fluid_pipe_flow.text_1": "Las tuberías de fluidos pueden conectar dos o más fuentes y objetivos de fluidos", - "create.ponder.fluid_pipe_flow.text_2": "Utilizando una llave, se puede dar a un segmento de tubo recto una ventana", - "create.ponder.fluid_pipe_flow.text_3": "Las tuberías con ventanas no se conectarán a ningún otro segmento de tubería adyacente", - "create.ponder.fluid_pipe_flow.text_4": "Accionadas por bombas mecánicas, las tuberías pueden transportar fluidos", - "create.ponder.fluid_pipe_flow.text_5": "Al principio no se extrae ningún líquido", - "create.ponder.fluid_pipe_flow.text_6": "Una vez que el flujo los conecta, los puntos finales transfieren gradualmente su contenido", - "create.ponder.fluid_pipe_flow.text_7": "Así, los bloques de tuberías nunca contienen 'físicamente' ningún fluido", - - "create.ponder.fluid_pipe_interaction.header": "Drenaje y llenado de contenedores de fluidos", - "create.ponder.fluid_pipe_interaction.text_1": "Los puntos finales de una red de tuberías pueden interactuar con una variedad de bloques", - "create.ponder.fluid_pipe_interaction.text_2": "Cualquier bloque con capacidad para almacenar fluidos puede ser llenado o vaciado", - "create.ponder.fluid_pipe_interaction.text_3": "Los bloques de origen justo delante de un extremo abierto pueden ser recogidos...", - "create.ponder.fluid_pipe_interaction.text_4": "...mientras que el derrame en espacios vacíos puede crear fuentes de fluidos", - "create.ponder.fluid_pipe_interaction.text_5": "Las tuberías también pueden extraer fluidos de un puñado de otros bloques directamente", - - "create.ponder.fluid_tank_sizes.header": "Dimensiones de un depósito de fluidos", - "create.ponder.fluid_tank_sizes.text_1": "Los depósitos de fluidos pueden combinarse para aumentar la capacidad total", - "create.ponder.fluid_tank_sizes.text_2": "Su cuadrado base puede tener hasta 3 bloques de ancho...", - "create.ponder.fluid_tank_sizes.text_3": "...y crecen en altura en más de 30 capas adicionales", - "create.ponder.fluid_tank_sizes.text_4": "Con una llave inglesa, se puede cambiar la ventana de un tanque", - - "create.ponder.fluid_tank_storage.header": "Almacenar fluidos en depósitos de fluidos", - "create.ponder.fluid_tank_storage.text_1": "Los depósitos de fluidos pueden utilizarse para almacenar grandes cantidades de fluidos", - "create.ponder.fluid_tank_storage.text_2": "Las redes de tuberías pueden empujar y arrastrar fluidos desde cualquier lado", - "create.ponder.fluid_tank_storage.text_3": "El fluido contenido puede ser medido por un Comparador", - "create.ponder.fluid_tank_storage.text_4": "Sin embargo, en el Modo Supervivencia no se pueden añadir o tomar fluidos manualmente", - "create.ponder.fluid_tank_storage.text_5": "Puede utilizar cuencas, drenadores de objetos y tuberías para vaciar o llenar objetos que contengan líquido", - - "create.ponder.flywheel.header": "Generar fuerza rotacional con la rueda de inercia", - "create.ponder.flywheel.text_1": "Las ruedas de inercia son necesarias para generar fuerza rotacional con el motor de horno", - "create.ponder.flywheel.text_2": "La fuerza rotacional proporcionada tiene una capacidad de estrés muy grande", - "create.ponder.flywheel.text_3": "El uso de un alto horno duplicará la eficiencia del motor", - - "create.ponder.funnel_compat.header": "Compatibilidades con el embudo", - "create.ponder.funnel_compat.text_1": "Los embudos deberían interactuar bien con un puñado de otros componentes", - "create.ponder.funnel_compat.text_2": "Sierras verticales", - "create.ponder.funnel_compat.text_3": "Depósitos", - "create.ponder.funnel_compat.text_4": "Drenadores de objetos", - - "create.ponder.funnel_direction.header": "Dirección de la transferencia", - "create.ponder.funnel_direction.text_1": "Colocado normalmente, extrae objetos del inventario", - "create.ponder.funnel_direction.text_2": "Colocado mientras pulsa Mayús izdo, pone objetos en el inventario", - "create.ponder.funnel_direction.text_3": "Usando una llave inglesa, el embudo puede ser volteado después de su colocación", - "create.ponder.funnel_direction.text_4": "Se aplicarán las mismas reglas para la mayoría de las orientaciones", - "create.ponder.funnel_direction.text_5": "Los embudos en las correas extraerán/insertarán dependiendo de su dirección de movimiento", - - "create.ponder.funnel_intro.header": "Usar embudos", - "create.ponder.funnel_intro.text_1": "Los embudos son ideales para transferir objetos desde y hacia los inventarios", - - "create.ponder.funnel_redstone.header": "Embudos alimentados con redstone", - "create.ponder.funnel_redstone.text_1": "La energía de redstone impedirá la actuación de cualquier embudo", - - "create.ponder.funnel_transfer.header": "Transferencia directa", - "create.ponder.funnel_transfer.text_1": "Los embudos no pueden transferir nunca entre inventarios cerrados directamente", - "create.ponder.funnel_transfer.text_2": "Los ductos o los ductos inteligentes podrían ser más adecuados para estos fines", - "create.ponder.funnel_transfer.text_3": "Lo mismo se aplica para el movimiento horizontal. Una correa mecánica debería ayudar aquí", - - "create.ponder.furnace_engine.header": "Generar fuerza rotacional con el motor de horno", - "create.ponder.furnace_engine.text_1": "Los motores de horno generan fuerza rotacional mientras su horno adjunto está funcionando", - "create.ponder.furnace_engine.text_2": "La fuerza rotacional proporcionada tiene una capacidad de estrés muy grande", - "create.ponder.furnace_engine.text_3": "El uso de un alto horno duplicará la eficiencia del motor", - - "create.ponder.gantry_carriage.header": "Usar carros de grúa", - "create.ponder.gantry_carriage.text_1": "Los carros de grúa pueden montarse y deslizarse a lo largo de un eje de grúa", - "create.ponder.gantry_carriage.text_2": "Las instalaciones de grúa pueden mover bloques adjuntos", - - "create.ponder.gantry_cascaded.header": "Grúas en cascada", - "create.ponder.gantry_cascaded.text_1": "Los ejes de grúas se unen a un carro de grúa sin necesidad de pegamento", - "create.ponder.gantry_cascaded.text_2": "Lo mismo se aplica a los carros de grúa en los ejes de grúas desplazados", - "create.ponder.gantry_cascaded.text_3": "Así, un sistema de grúas puede estar en cascada para cubrir múltiples ejes de movimiento", - - "create.ponder.gantry_direction.header": "Dirección del movimiento de la grúa", - "create.ponder.gantry_direction.text_1": "Los ejes de grúa pueden tener orientaciones opuestas", - "create.ponder.gantry_direction.text_2": "La dirección de movimiento de los carros de grúa depende de la orientación de sus ejes", - "create.ponder.gantry_direction.text_3": "...así como de su sentido de rotación", - "create.ponder.gantry_direction.text_4": "Se aplican las mismas reglas para la rotación propagada", - - "create.ponder.gantry_redstone.header": "Propagación de la potencia de la grúa", - "create.ponder.gantry_redstone.text_1": "Los ejes de grúa alimentados con redstone dejan de mover sus carros", - "create.ponder.gantry_redstone.text_2": "En su lugar, su fuerza rotacional se transmite al eje de salida de los carros", - - "create.ponder.gantry_shaft.header": "Usar ejes de grúa", - "create.ponder.gantry_shaft.text_1": "Los ejes de grúa forman la base de una instalación de grúas. Los carros adjuntos se moverán a lo largo de ellos", - "create.ponder.gantry_shaft.text_2": "Las instalaciones de grúas pueden mover los bloques adjuntos", - - "create.ponder.gearbox.header": "Transmitir fuerza rotacional mediante cajas de transmisión", - "create.ponder.gearbox.text_1": "Saltar entre ejes de rotación puede volverse voluminoso rápidamente", - "create.ponder.gearbox.text_2": "Una caja de transmisión es el equivalente más compacto de esta configuración", - "create.ponder.gearbox.text_3": "Los ejes giran en las direcciones reflejadas...", - "create.ponder.gearbox.text_4": "...esto quiere decir que las conexiones rectas se invierten", - - "create.ponder.gearshift.header": "Controlar la dirección rotacional mediante una caja de cambios", - "create.ponder.gearshift.text_1": "La caja de cambios transmitirá la rotación en línea recta", - "create.ponder.gearshift.text_2": "Cuando es alimentada con redstone, invierte la transmisión", - - "create.ponder.hand_crank.header": "Generar fuerza rotacional mediante manivelas", - "create.ponder.hand_crank.text_1": "Las manivelas pueden ser utilizadas para aplicar fuerza rotacional manualmente", - "create.ponder.hand_crank.text_2": "Mantén pulsado clic derecho para girar en sentido antihorario", - "create.ponder.hand_crank.text_3": "Su velocidad de transmisión es relativamente alta", - "create.ponder.hand_crank.text_4": "Mayús izdo + clic derecho pulsado para girar en sentido horario", - - "create.ponder.hose_pulley.header": "Llenado y vaciado de fuentes mediante poleas de manguera", - "create.ponder.hose_pulley.text_1": "Las poleas para mangueras pueden utilizarse para llenar o drenar grandes masas de fluido", - "create.ponder.hose_pulley.text_2": "Con entrada cinética, se puede controlar la altura de la manguera de las poleas", - "create.ponder.hose_pulley.text_3": "La polea se retrae mientras la rotación de entrada se invierte", - "create.ponder.hose_pulley.text_4": "En el lado opuesto, se pueden conectar las tuberías", - "create.ponder.hose_pulley.text_5": "Las redes de tuberías conectadas pueden proporcionar fluido a la manguera...", - "create.ponder.hose_pulley.text_6": "...o tirar de él, vaciando la piscina en su lugar", - "create.ponder.hose_pulley.text_7": "La velocidad de llenado y vaciado de la polea depende totalmente del caudal de las redes de fluidos", - - "create.ponder.hose_pulley_infinite.header": "Llenado y drenaje pasivo de grandes masas de fluido", - "create.ponder.hose_pulley_infinite.text_1": "Al desplegar la polea de manguera en un océano lo suficientemente grande...", - "create.ponder.hose_pulley_infinite.text_2": "Proporcionará/eliminará fluidos sin afectar a la fuente", - "create.ponder.hose_pulley_infinite.text_3": "Las redes de tuberías pueden llevar fluidos de forma ilimitada desde/hacia dichas poleas", - - "create.ponder.hose_pulley_level.header": "Nivel de llenado y vaciado de las poleas de las mangueras", - "create.ponder.hose_pulley_level.text_1": "Mientras esté totalmente retraída, la polea de la manguera no puede funcionar", - "create.ponder.hose_pulley_level.text_2": "El drenaje va de arriba a abajo", - "create.ponder.hose_pulley_level.text_3": "El nivel de la superficie terminará justo debajo de donde termina la manguera", - "create.ponder.hose_pulley_level.text_4": "El llenado va de abajo a arriba", - "create.ponder.hose_pulley_level.text_5": "La piscina llena no crecerá más allá de la capa por encima del extremo de la manguera", - - "create.ponder.item_drain.header": "Vaciar contenedores de fluidos mediante drenajes de objetos", - "create.ponder.item_drain.text_1": "Los drenajes de objetos pueden extraer los fluidos de los objetos", - "create.ponder.item_drain.text_2": "Haz clic derecho para verter los fluidos de tu objeto retenido en él", - "create.ponder.item_drain.text_3": "Cuando los artículos se insertan desde el lado...", - "create.ponder.item_drain.text_4": "...ruedan a través, vaciando su líquido contenido", - "create.ponder.item_drain.text_5": "Las redes de tuberías pueden ahora extraer el fluido del buffer interno de los desagües", - - "create.ponder.large_cogwheel.header": "Transmitir fuerza rotacional mediante engranajes grandes", - "create.ponder.large_cogwheel.text_1": "Los engranajes grandes pueden conectarse entre sí en ángulo recto", - "create.ponder.large_cogwheel.text_2": "Ayudarán a transmitir la velocidad transportada a otros ejes de rotación.", - - "create.ponder.linear_chassis_attachment.header": "Fijar bloques mediante el chasis lineal", - "create.ponder.linear_chassis_attachment.text_1": "Las caras abiertas de un chasis lineal pueden hacerse pegajosas", - "create.ponder.linear_chassis_attachment.text_2": "Haz clic de nuevo para que se pegue el lado opuesto", - "create.ponder.linear_chassis_attachment.text_3": "Mayús izdo + clic derecho con la mano vacía para eliminar el pegamento", - "create.ponder.linear_chassis_attachment.text_4": "Las caras pegadas del chasis lineal fijarán una línea de bloques delante de él", - "create.ponder.linear_chassis_attachment.text_5": "Utilizando una llave inglesa, se puede especificar un rango preciso", - "create.ponder.linear_chassis_attachment.text_6": "Manteniendo pulsada la tecla [Ctrl] y usando la rueda central del ratón, se ajusta el rango de todos los bloques de chasis adjuntos", - "create.ponder.linear_chassis_attachment.text_7": "Para fijar los bloques a cualquier otro lado es necesario utilizar pegamento", - "create.ponder.linear_chassis_attachment.text_8": "Utilizando esta mecánica, las estructuras de cualquier forma pueden moverse como un artilugio", - - "create.ponder.linear_chassis_group.header": "Mover chasis lineales en grupos", - "create.ponder.linear_chassis_group.text_1": "Los chasis lineales se conectan a los bloques de chasis idénticos que se encuentren a su lado", - "create.ponder.linear_chassis_group.text_2": "Cuando uno es movido por un artilugio, los otros son arrastrados con él", - "create.ponder.linear_chassis_group.text_3": "Los chasis de otro tipo u orientados en otra dirección no se fijan", - - "create.ponder.mechanical_arm.header": "Configurar los brazos mecánicos", - "create.ponder.mechanical_arm.text_1": "A los brazos mecánicos hay que asignarles sus entradas y salidas antes de colocarlos", - "create.ponder.mechanical_arm.text_2": "Clic derecho en los inventarios mientras mantiene el brazo mecánico para asignarlos como objetivos", - "create.ponder.mechanical_arm.text_3": "Clic derecho denuevo para alternar entre la entrada (azul) y la salida (naranja)", - "create.ponder.mechanical_arm.text_4": "Clic izquierdo en los componentes para eliminar su selección", - "create.ponder.mechanical_arm.text_5": "Una vez colocado, el brazo mecánico apuntará a los bloques seleccionados previamente", - "create.ponder.mechanical_arm.text_6": "Pueden tener cualquier cantidad de entradas y salidas dentro de su rango", - "create.ponder.mechanical_arm.text_7": "Sin embargo, no se puede interactuar directamente con todos los tipos de inventario", - "create.ponder.mechanical_arm.text_8": "Los embudos y depósitos pueden ayudar a salvar esa distancia", - - "create.ponder.mechanical_arm_filtering.header": "Filtrar salidas del brazo mecánico", - "create.ponder.mechanical_arm_filtering.text_1": "Entradas", - "create.ponder.mechanical_arm_filtering.text_2": "Salidas", - "create.ponder.mechanical_arm_filtering.text_3": "A veces es conveniente restringir los objetivos del brazo mecánico haciendo coincidir un filtro", - "create.ponder.mechanical_arm_filtering.text_4": "Por sí mismos no ofrecen ninguna opción de filtrado", - "create.ponder.mechanical_arm_filtering.text_5": "Sin embargo, los embudos de latón como objetivos comunican su propio filtro al brazo", - "create.ponder.mechanical_arm_filtering.text_6": "El brazo mecánico es lo suficientemente inteligente como para no recoger objetos que no podría distribuir", - - "create.ponder.mechanical_arm_modes.header": "Modos de distribución del brazo mecánico", - "create.ponder.mechanical_arm_modes.text_1": "Entradas", - "create.ponder.mechanical_arm_modes.text_2": "Salidas", - "create.ponder.mechanical_arm_modes.text_3": "Siempre que un brazo tenga que elegir entre varias salidas válidas...", - "create.ponder.mechanical_arm_modes.text_4": "...funcionará según su configuración", - "create.ponder.mechanical_arm_modes.text_5": "Usando la rueda del ratón con una llave inglesa te permitirá configurarlo", - "create.ponder.mechanical_arm_modes.text_6": "El modo Round Robin simplemente hace un ciclo a través de todas las salidas que están disponibles", - "create.ponder.mechanical_arm_modes.text_7": "Si una salida no puede admitir más objetos, se omitirá", - "create.ponder.mechanical_arm_modes.text_8": "El modo Round Robin forzado nunca omitirá las salidas, sino que esperará a que estén libres", - "create.ponder.mechanical_arm_modes.text_9": "Preferir el primero da prioridad a las salidas seleccionadas anteriormente al configurar este brazo", - - "create.ponder.mechanical_arm_redstone.header": "Controlar brazos mecánicos con redstone", - "create.ponder.mechanical_arm_redstone.text_1": "Cuando se alimentan con redstone, los brazos mecánicos no se activan", - "create.ponder.mechanical_arm_redstone.text_2": "Antes de detenerse, terminará los ciclos iniciados", - "create.ponder.mechanical_arm_redstone.text_3": "Así, un pulso negativo puede utilizarse para activar exactamente un ciclo de activación", - - "create.ponder.mechanical_bearing.header": "Mover estructuras mediante el rodamiento mecánico", - "create.ponder.mechanical_bearing.text_1": "Los rodamientos mecánicos se fijan al bloque que tienen delante", - "create.ponder.mechanical_bearing.text_2": "Al recibir fuerza rotacional, la ensamblará en un artilugio giratorio", - - "create.ponder.mechanical_crafter.header": "Configurar ensambladores mecánicos", - "create.ponder.mechanical_crafter.text_1": "Se puede utilizar una serie de ensambladores mecánicos para automatizar cualquier receta de elaboración.", - "create.ponder.mechanical_crafter.text_2": "Usando una llave inglesa, puedes establecer los caminos de los ensambladores ", - "create.ponder.mechanical_crafter.text_3": "Para que la configuración sea válida, todos los caminos tienen que converger en una salida, en cualquiera de los lados", - "create.ponder.mechanical_crafter.text_4": "Los puertos de salida de objetos se colocarán en un inventario a la salida", - "create.ponder.mechanical_crafter.text_5": "Los ensambladores mecánicos requieren fuerza rotacional para funcionar", - "create.ponder.mechanical_crafter.text_6": "Haga clic derecho en la parte delantera para insertar objetos manualmente", - "create.ponder.mechanical_crafter.text_7": "Una vez que cada ranura de una ruta contenga un objeto, comenzará el proceso de elaboración", - "create.ponder.mechanical_crafter.text_8": "Para las recetas que no ocupen totalmente la instalación del ensamblador, se puede forzar el arranque utilizando un pulso de redstone", - - "create.ponder.mechanical_crafter_connect.header": "Conectar inventarios a los ensambladores mecánicos", - "create.ponder.mechanical_crafter_connect.text_1": "Los objetos pueden ser insertados a los ensambladores mecánicos automáticamente", - "create.ponder.mechanical_crafter_connect.text_2": "Utilizando la llave inglesa a sus espaldas, las entradas pueden combinarse", - "create.ponder.mechanical_crafter_connect.text_3": "Ahora se puede acceder a todos los ensambladores mecánicos conectados por la misma ubicación de entrada", - - "create.ponder.mechanical_crafter_covers.header": "Cubrir las ranuras de los ensambladores mecánicos", - "create.ponder.mechanical_crafter_covers.text_1": "Algunas recetas requerirán ensambladores mecánicos adicionales para salvar las brechas en el camino", - "create.ponder.mechanical_crafter_covers.text_2": "Utilizando las tapas de ranuras del ensamblador mecánico, pueden actuar como una ranura vacía a su disposición", - "create.ponder.mechanical_crafter_covers.text_3": "Las entradas compartidas creadas con la llave inglesa en la parte posterior también pueden llegar a través de los ensambladores revestidos", - - "create.ponder.mechanical_drill.header": "Romper bloques con el taladro mecánico", - "create.ponder.mechanical_drill.text_1": "Cuando se le aplica fuerza rotacional, el taladro mecánico rompe los bloques que tiene delante.", - "create.ponder.mechanical_drill.text_2": "Su velocidad de trabajo depende de la fuerza rotacional suministrada", - - "create.ponder.mechanical_drill_contraption.header": "Usar taladros mecánicos en artilugios", - "create.ponder.mechanical_drill_contraption.text_1": "Siempre que los taladros mecánicos se muevan como parte de un artilugio animado...", - "create.ponder.mechanical_drill_contraption.text_2": "...romperán los bloques por los que artilugio los hace pasar", - - "create.ponder.mechanical_harvester.header": "Utilizar cosechadoras mecánicas en artilugios", - "create.ponder.mechanical_harvester.text_1": "Siempre que las cosechadoras mecánicas se muevan como parte de un artilugio animado...", - "create.ponder.mechanical_harvester.text_2": "...recogerán y repondrán los cultivos maduros en su camino", - - "create.ponder.mechanical_mixer.header": "Procesar objetos con la mezcladora mecánica", - "create.ponder.mechanical_mixer.text_1": "Con una mezcladora mecánica y una cuenca, se pueden automatizar algunas recetas", - "create.ponder.mechanical_mixer.text_2": "Las recetas disponibles incluyen cualquier receta de elaboración amorfa, además de un par de recetas adicionales", - "create.ponder.mechanical_mixer.text_3": "Algunas de esas recetas pueden requerir el calor de un quemador de blaze", - "create.ponder.mechanical_mixer.text_4": "La ranura para filtros se puede utilizar en caso de que dos recetas sean conflictivas.", - - "create.ponder.mechanical_piston.header": "Mover estructuras mediante pistones mecánicos", - "create.ponder.mechanical_piston.text_1": "Los pistones mecánicos pueden mover los bloques que tienen delante", - "create.ponder.mechanical_piston.text_2": "La velocidad y la dirección del movimiento dependen de la fuerza rotacional suministrada", - "create.ponder.mechanical_piston.text_3": "Los pistones mecánicos pegajosos pueden tirar de los bloques unidos hacia atrás", - - "create.ponder.mechanical_piston_modes.header": "Modos de movimiento del pistón mecánico", - "create.ponder.mechanical_piston_modes.text_1": "Cuando los pistones mecánicos dejan de moverse, la estructura movida vuelve a los bloques", - "create.ponder.mechanical_piston_modes.text_2": "Puede configurarse para que no vuelva nunca a los bloques sólidos, o sólo en la ubicación en la que comenzó", - - "create.ponder.mechanical_plough.header": "Utilizar arados mecánicos en los artilugios", - "create.ponder.mechanical_plough.text_1": "Cuando los arados mecánicos se mueven como parte de un artilugio animado...", - "create.ponder.mechanical_plough.text_2": "...romperán los bloques sin un hitbox de colisión sólido", - "create.ponder.mechanical_plough.text_3": "Además, pueden crear tierras de cultivo", - "create.ponder.mechanical_plough.text_4": "...también pueden lanzar entidades sin dañarlas", - - "create.ponder.mechanical_press.header": "Procesar objetos con la prensa mecánica", - "create.ponder.mechanical_press.text_1": "La prensa mecánica puede procesar los objetos proporcionados por debajo de ella", - "create.ponder.mechanical_press.text_2": "Los objetos de entrada pueden soltarse o colocarse en un depósito bajo la prensa", - "create.ponder.mechanical_press.text_3": "Cuando los objetos se proporcionan en una 'cinta'...", - "create.ponder.mechanical_press.text_4": "...la prensa mecánica los retendrá y procesará automáticamente", - - "create.ponder.mechanical_press_compacting.header": "Compactar objetos con la prensa mecánica", - "create.ponder.mechanical_press_compacting.text_1": "Al presionar los objetos que se encuentran en una cuenca, éstos se compactan.", - "create.ponder.mechanical_press_compacting.text_2": "La compactación incluye cualquier receta de elaboración de 2x2 o 3x3 rellena, además de un par extra", - "create.ponder.mechanical_press_compacting.text_3": "Algunas de esas recetas pueden requerir el calor de un quemador de blaze", - "create.ponder.mechanical_press_compacting.text_4": "La ranura para filtros se puede utilizar en caso de que dos recetas sean conflictivas.", - - "create.ponder.mechanical_pump_flow.header": "Transportar fluidos mediante bombas mecánicas", - "create.ponder.mechanical_pump_flow.text_1": "Las bombas mecánicas gobiernan el flujo de sus redes de tuberías anexas", - "create.ponder.mechanical_pump_flow.text_2": "Cuando están alimentadas, su flecha indica la dirección del flujo", - "create.ponder.mechanical_pump_flow.text_3": "La red de atrás está ahora tirando de fluidos...", - "create.ponder.mechanical_pump_flow.text_4": "...mientras la red de enfrente la transfiere hacia el exterior", - "create.ponder.mechanical_pump_flow.text_5": "Al invertir la rotación de la entrada se invierte el sentido del flujo", - "create.ponder.mechanical_pump_flow.text_6": "Utilice una llave inglesa para invertir la orientación de las bombas manualmente", - - "create.ponder.mechanical_pump_speed.header": "Rendimiento de las bombas mecánicas", - "create.ponder.mechanical_pump_speed.text_1": "Independientemente de la velocidad, las bombas mecánicas afectan a las tuberías conectadas hasta 16 bloques de distancia", - "create.ponder.mechanical_pump_speed.text_2": "Acelerar la rotación de entrada cambia la velocidad de propagación del flujo...", - "create.ponder.mechanical_pump_speed.text_3": "...así como la rapidez con la que se transfieren los fluidos", - "create.ponder.mechanical_pump_speed.text_4": "Las bombas pueden combinar sus rendimientos en redes de tuberías compartidas", - "create.ponder.mechanical_pump_speed.text_5": "Alternar su orientación puede ayudar a alinear sus direcciones de flujo", - - "create.ponder.mechanical_saw_breaker.header": "Cortar árboles con la sierra mecánica", - "create.ponder.mechanical_saw_breaker.text_1": "Cuando se le da una fuerza rotacional, la sierra mecánica cortará los árboles que estén directamente frente a ella", - "create.ponder.mechanical_saw_breaker.text_2": "Para poder cortar el árbol por completo, la sierra tiene que romper el último bloque que lo une al suelo", - - "create.ponder.mechanical_saw_contraption.header": "Utilizar sierras mecánicas en artilugios", - "create.ponder.mechanical_saw_contraption.text_1": "Cuando las sierras mecánicas se mueven como parte de un artilugio animado...", - "create.ponder.mechanical_saw_contraption.text_2": "...cortarán cualquier árbol con el que el artilugio se tope", - - "create.ponder.mechanical_saw_processing.header": "Procesar objetos en la sierra mecánica", - "create.ponder.mechanical_saw_processing.text_1": "Las sierras mecánicas orientadas hacia arriba pueden procesar una variedad de objetos", - "create.ponder.mechanical_saw_processing.text_2": "El objeto procesado siempre se mueve en contra de la fuerza rotacional de la sierra", - "create.ponder.mechanical_saw_processing.text_3": "Las sierras mecánicas pueden trabajar en línea con las correas mecánicas", - "create.ponder.mechanical_saw_processing.text_4": "Cuando un ingrediente tiene varios resultados posibles, la ranura para filtros puede especificarlo", - "create.ponder.mechanical_saw_processing.text_5": "Sin filtro, al contrario, la sierra mecánica pasaría por todos los resultados", - - "create.ponder.millstone.header": "Procesar objetos en la piedra de molino", - "create.ponder.millstone.text_1": "Las piedras de molino procesan los objetos mediante la molienda", - "create.ponder.millstone.text_2": "Se pueden accionar lateralmente mediante engranajes...", - "create.ponder.millstone.text_3": "... y tirar o insertar objetos en la parte superior", - "create.ponder.millstone.text_4": "Después de un tiempo, el resultado se puede obtener usando el clic derecho del ratón", - "create.ponder.millstone.text_5": "Las salidas también pueden extraerse mediante la automatización", - - "create.ponder.nixie_tube.header": "Usar los tubos Nixie", - "create.ponder.nixie_tube.text_1": "Cuando son alimentados con redstone, los tubos nixie mostrarán la fuerza de las señales de redstone", - "create.ponder.nixie_tube.text_2": "Con las etiquetas editadas en un yunque, pueden mostar un texto personalizado", - "create.ponder.nixie_tube.text_3": "Haga clic derecho con un tinte para cambiar su color de visualización", - - "create.ponder.piston_pole.header": "Pértigas de extensión de pistones", - "create.ponder.piston_pole.text_1": "Sin las pértigas de extensión unidas, un pistón mecánico no puede moverse", - "create.ponder.piston_pole.text_2": "La longitud de la pértiga añadida en su parte posterior determina el rango de alcance", - - "create.ponder.portable_fluid_interface.header": "Interfaz de fluidos portátil", - "create.ponder.portable_fluid_interface.text_1": "No se puede acceder a los depósitos de fluidos de los artilugios en movimiento por ninguna tubería", - "create.ponder.portable_fluid_interface.text_2": "Este componente puede interactuar con los depósitos de fluidos sin necesidad de detener el artilugio", - "create.ponder.portable_fluid_interface.text_3": "Coloca una segunda con un espacio de 1 o 2 bloques entre ellas", - "create.ponder.portable_fluid_interface.text_4": "Cada vez que pasen por delante de la otra, entablarán una conexión", - "create.ponder.portable_fluid_interface.text_5": "Mientras esté activada, la interfaz estacionaria representará TODOS los tanques del artilugio", - "create.ponder.portable_fluid_interface.text_6": "Ahora se puede introducir el fluido...", - "create.ponder.portable_fluid_interface.text_7": "...o extraerlo del artilugio", - "create.ponder.portable_fluid_interface.text_8": "Cuando no se intercambien contenidos durante un tiempo, el artilugio seguirá su camino", - - "create.ponder.portable_storage_interface.header": "Interfaz de almacenamiento portátil", - "create.ponder.portable_storage_interface.text_1": "Los jugadores no pueden acceder a los inventarios de los artilugios en movimiento.", - "create.ponder.portable_storage_interface.text_2": "Este componente puede interactuar con el almacenamiento sin necesidad de detener el artilugio.", - "create.ponder.portable_storage_interface.text_3": "Coloca una segunda unidad con un espacio de 1 o 2 bloques entre ellas", - "create.ponder.portable_storage_interface.text_4": "Cada vez que pasen por delante del otro, entablarán una conexión", - "create.ponder.portable_storage_interface.text_5": "Mientras esté conectada, la interfaz fija representará TODOS los inventarios del artilugio", - "create.ponder.portable_storage_interface.text_6": "Ahora pueden insertarse objetos...", - "create.ponder.portable_storage_interface.text_7": "...o extraerse", - "create.ponder.portable_storage_interface.text_8": "Cuando no se hayan intercambiado objetos durante un tiempo, el artilugio seguirá su camino", - - "create.ponder.portable_storage_interface_redstone.header": "Interfaz de almacenamiento portátil controlada por redstone", - "create.ponder.portable_storage_interface_redstone.text_1": "La energía de redstone impedirá que las interfaces de almacenamiento portátil se conecten", - - "create.ponder.powered_latch.header": "Controlar señales mediante la palanca motorizada", - "create.ponder.powered_latch.text_1": "Las palancas motorizadas son palancas controlables por redstone", - "create.ponder.powered_latch.text_2": "Las señales en la parte trasera la encienden", - "create.ponder.powered_latch.text_3": "Las señales sobre un lateral la vuelven a apagar", - "create.ponder.powered_latch.text_4": "Las palancas motorizadas también se pueden accionar manualmente", - - "create.ponder.powered_toggle_latch.header": "Controlar señales mediante la palanca de cierre motorizada", - "create.ponder.powered_toggle_latch.text_1": "Las palancas de cierre motorizadas son palancas controlables por redstone", - "create.ponder.powered_toggle_latch.text_2": "Las señales en la parte trasera cambiarán su estado...", - "create.ponder.powered_toggle_latch.text_3": "...encender y apagar", - "create.ponder.powered_toggle_latch.text_4": "Las palancas de cierre motorizadas también se pueden accionar manualmente", - - "create.ponder.pulse_repeater.header": "Controlar señales mediante repetidores de pulsos", - "create.ponder.pulse_repeater.text_1": "Los repetidores de pulsos acortan cualquier señal de redstone a un solo pulso", - - "create.ponder.radial_chassis.header": "Fijar bloques mediante chasis radiales", - "create.ponder.radial_chassis.text_1": "Los chasis radiales se conectan a bloques de chasis idénticos en una fila", - "create.ponder.radial_chassis.text_2": "Cuando uno es movido por un artilugio, los otros son arrastrados con él", - "create.ponder.radial_chassis.text_3": "Las caras laterales de un chasis radial pueden hacerse adhesivas", - "create.ponder.radial_chassis.text_4": "Haga clic de nuevo para que todos los demás lados sean pegajosos", - "create.ponder.radial_chassis.text_5": "Mayús izdo + clic derecho con la mano vacía para eliminar el pegamento", - "create.ponder.radial_chassis.text_6": "Cada vez que un bloque está junto a una cara pegajosa...", - "create.ponder.radial_chassis.text_7": "...adjuntará todos los bloques alcanzables dentro de un radio en esa capa", - "create.ponder.radial_chassis.text_8": "Con una llave inglesa y usando la rueda de desplazamiento del ratón se puede especificar un radio preciso", - "create.ponder.radial_chassis.text_9": "Los bloques no alcanzables por ninguna cara adhesiva no se fijarán", - - "create.ponder.redstone_contact.header": "Contactos de redstone", - "create.ponder.redstone_contact.text_1": "Los contactos de redstone enfrentados emitirán una señal de redstone", - "create.ponder.redstone_contact.text_2": "Esto sigue siendo válido cuando uno de ellos forma parte de un artilugio en movimiento", - - "create.ponder.redstone_link.header": "Usar los enlaces de redstone", - "create.ponder.redstone_link.text_1": "Los enlaces de redstone pueden transmitir señales redstone de forma inalámbrica", - "create.ponder.redstone_link.text_2": "Mayús izdo + clic derecho para cambiar el modo de recepción", - "create.ponder.redstone_link.text_3": "Un simple clic derecho con una llave inglesa puede hacer lo mismo", - "create.ponder.redstone_link.text_4": "Los receptores emiten la potencia de redstone de los transmisores en 128 bloques", - "create.ponder.redstone_link.text_5": "Colocando objetos en las dos ranuras puede especificar una frecuencia", - "create.ponder.redstone_link.text_6": "Sólo se comunicarán los enlaces con frecuencias coincidentes", - - "create.ponder.rope_pulley.header": "Mover estructuras con poleas de cuerda", - "create.ponder.rope_pulley.text_1": "Las poleas de cuerda pueden mover los bloques verticalmente cuando se les aplica una fuerza rotacional", - "create.ponder.rope_pulley.text_2": "La dirección y la velocidad del movimiento dependen de la fuerza rotacional suministrada", - - "create.ponder.rope_pulley_attachment.header": "Mover poleas como parte de un artilugio", - "create.ponder.rope_pulley_attachment.text_1": "Siempre que las poleas de cuerda sean movidas por un artilugio...", - "create.ponder.rope_pulley_attachment.text_2": "...su estructura adjunta será arrastrada con ella", - "create.ponder.rope_pulley_attachment.text_3": "Tenga en cuenta que las poleas de cuerda sólo se mueven cuando están paradas", - - "create.ponder.rope_pulley_modes.header": "Modos de movimiento de la polea de cuerda", - "create.ponder.rope_pulley_modes.text_1": "Cuando las poleas de cuerda dejan de moverse, la estructura movida vuelve a los bloques", - "create.ponder.rope_pulley_modes.text_2": "Puede configurarse para que no vuelva nunca a los bloques sólidos, o sólo en la ubicación en la que comenzó", - - "create.ponder.rotation_speed_controller.header": "Usar el controlador de velocidad rotacional", - "create.ponder.rotation_speed_controller.text_1": "Los controladores de velocidad rotacional transmiten la rotación de su eje a un engranaje grande situado encima.", - "create.ponder.rotation_speed_controller.text_2": "Utilizando la rueda de desplazamiento del ratón, puede configurarse la velocidad rotacional", - - "create.ponder.sail.header": "Montar molinos de viento usando velas", - "create.ponder.sail.text_1": "Las velas son bloques muy útiles para crear molinos de viento", - "create.ponder.sail.text_2": "Se fijarán a los bloques y entre sí sin necesidad de pegamento o bloques de chasis", - "create.ponder.sail.text_3": "Clic derecho con un tinte para pintarlas", - "create.ponder.sail.text_4": "Clic derecho con una tijera para volver a convertirlas en marcos", - - "create.ponder.sail_frame.header": "Montar molinos de viento con marcos de vela", - "create.ponder.sail_frame.text_1": "Los marcos de vela son prácticos bloques para crear molinos de viento", - "create.ponder.sail_frame.text_2": "Se fijarán a los bloques y entre sí sin necesidad de pegamento o bloques de chasis", - - "create.ponder.sequenced_gearshift.header": "Controlar la velocidad de rotación mediante la caja de cambios secuenciales", - "create.ponder.sequenced_gearshift.text_1": "La caja de cambios secuencial retransmite la rotación siguiendo una lista cronometrada de instrucciones", - "create.ponder.sequenced_gearshift.text_2": "Haga clic con el botón derecho para abrir la interfaz de configuración", - "create.ponder.sequenced_gearshift.text_3": "Al recibir una señal de redstone, comenzará a ejecutar su secuencia configurada", - "create.ponder.sequenced_gearshift.text_4": "Una vez terminado, espera la siguiente señal de redstone y vuelve a empezar", - "create.ponder.sequenced_gearshift.text_5": "Se puede utilizar un comparador de redstone para leer el progreso actual", - - "create.ponder.shaft.header": "Transmitir fuerza rotacional mediante ejes", - "create.ponder.shaft.text_1": "Los ejes transmiten la rotación en línea recta.", - - "create.ponder.shaft_casing.header": "Ejes revestidos", - "create.ponder.shaft_casing.text_1": "Puedes utilizar el revestidor de latón o de andesita para decorar tus ejes", - - "create.ponder.smart_chute.header": "Filtrar objetos mediante ductos inteligentes", - "create.ponder.smart_chute.text_1": "Los ductos inteligentes son ductos verticales con control adicional", - "create.ponder.smart_chute.text_2": "Los objetos en la ranura para filtros especifican lo que pueden extraer y transferir exactamente", - "create.ponder.smart_chute.text_3": "Usa la rueda del ratón para especificar el tamaño de la pila extraída", - "create.ponder.smart_chute.text_4": "La energía de redstone impedirá que funcionen.", - - "create.ponder.smart_pipe.header": "Controlar el flujo de fluidos mediante tuberías inteligentes", - "create.ponder.smart_pipe.text_1": "Las tuberías inteligentes pueden ayudar a controlar los flujos por tipo de fluido", - "create.ponder.smart_pipe.text_2": "Cuando se colocan directamente en la fuente, pueden especificar el tipo de fluido a extraer", - "create.ponder.smart_pipe.text_3": "Simplemente haga clic derecho en su ranura de filtro con cualquier elemento que contenga el fluido deseado", - "create.ponder.smart_pipe.text_4": "Cuando se colocan detrás de una red de tuberías, las tuberías inteligentes sólo dejan que los fluidos coincidentes continúen", - - "create.ponder.speedometer.header": "Controlar la información cinética mediante el velocímetro", - "create.ponder.speedometer.text_1": "El velocímetro muestra la velocidad actual de los componentes conectados", - "create.ponder.speedometer.text_2": "Cuando se usan las gafas del constructor, el jugador puede obtener información más detallada del medidor", - "create.ponder.speedometer.text_3": "Los comparadores pueden emitir señales analógicas de redstone en relación con las mediciones del velocímetro", - - "create.ponder.spout_filling.header": "Llenar objetos con un surtidor", - "create.ponder.spout_filling.text_1": "El surtidor puede llenar los elementos de retención de fluidos que se encuentran debajo de él", - "create.ponder.spout_filling.text_2": "No se puede acceder manualmente al contenido de un surtidor", - "create.ponder.spout_filling.text_3": "En su lugar, se pueden utilizar tuberías para suministrarle fluidos", - "create.ponder.spout_filling.text_4": "Los objetos de entrada pueden colocarse en un depósito bajo el surtidor", - "create.ponder.spout_filling.text_5": "Cuando los artículos se proporcionan en una cinta...", - "create.ponder.spout_filling.text_6": "El surtidor los retendrá y procesará automáticamente", - - "create.ponder.stabilized_bearings.header": "Estabilizar artilugios", - "create.ponder.stabilized_bearings.text_1": "Siempre que los rodamientos mecánicos formen parte de una estructura móvil...", - "create.ponder.stabilized_bearings.text_2": "...intentarán mantenerse derechos", - "create.ponder.stabilized_bearings.text_3": "Una vez más, el rodamiento se unirá al bloque de enfrente", - "create.ponder.stabilized_bearings.text_4": "Como resultado, todo el sub-artilugio se mantendrá en posición vertical", - - "create.ponder.sticker.header": "Fijar bloques con stickers", - "create.ponder.sticker.text_1": "Los stickers son ideales para la fijación de bloques controlados por redstone", - "create.ponder.sticker.text_2": "Al recibir una señal, cambiarán su estado", - "create.ponder.sticker.text_3": "Si ahora se mueve en un artilugio, el bloque se moverá con él", - "create.ponder.sticker.text_4": "Si se vuelve a activar, el bloque dejará de estar fijado", - - "create.ponder.stressometer.header": "Supervisar la información cinética con el estresómetro", - "create.ponder.stressometer.text_1": "El estresómetro muestra la capacidad de estrés actual de la red cinética conectada", - "create.ponder.stressometer.text_2": "Cuando se usan las gafas del constructor, el jugador puede obtener información más detallada del medidor", - "create.ponder.stressometer.text_3": "Los comparadores pueden emitir señales analógicas de redstone en relación con las mediciones del estresómetro", - - "create.ponder.super_glue.header": "Fijar bloques con pegamento", - "create.ponder.super_glue.text_1": "Se puede utilizar pegamento entre dos bloques cualquiera", - "create.ponder.super_glue.text_2": "Los bloques fijados se moverán juntos cuando se ensamblen en un artilugio", - "create.ponder.super_glue.text_3": "Cada vez que el pegamento es sostenido en la mano...", - "create.ponder.super_glue.text_4": "...los bloques añadidos se pegarán a la cara en la que fueron colocados automáticamente", - "create.ponder.super_glue.text_5": "El pegamento se puede quitar con un clic izquierdo", - - "create.ponder.valve_handle.header": "Generar fuerza rotacional mediante asas de válvula", - "create.ponder.valve_handle.text_1": "Los jugadores pueden utilizar las asas de válvulas para aplicar fuerza rotacional manualmente", - "create.ponder.valve_handle.text_2": "Mantén pulsado el clic derecho para rotar en sentido contrario a las agujas del reloj", - "create.ponder.valve_handle.text_3": "Su velocidad de transmisión es lenta y precisa", - "create.ponder.valve_handle.text_4": "Mayús izdo + clic derecho para rotar en el sentido de las agujas del reloj", - "create.ponder.valve_handle.text_5": "Las asas de las válvulas pueden teñirse con fines estéticos", - - "create.ponder.valve_pipe.header": "Controlar el flujo de fluidos mediante válvulas", - "create.ponder.valve_pipe.text_1": "Las tuberías con válvulas ayudan a controlar los fluidos que se propagan por las redes de tuberías", - "create.ponder.valve_pipe.text_2": "Su entrada en el eje controla si el fluido puede pasar por", - "create.ponder.valve_pipe.text_3": "Dada la fuerza de rotación en la dirección de apertura, la válvula se abrirá", - "create.ponder.valve_pipe.text_4": "Se puede volver a cerrar invirtiendo el giro de entrada", - - "create.ponder.water_wheel.header": "Generar fuerza rotacional mediante ruedas hidráulicas", - "create.ponder.water_wheel.text_1": "Las ruedas hidráulicas extraen la fuerza de las corrientes de agua adyacentes", - "create.ponder.water_wheel.text_2": "Cuantas más caras se alimenten, más rápido girará", - "create.ponder.water_wheel.text_3": "Las paletas de las ruedas deben estar orientadas en contra del flujo", - "create.ponder.water_wheel.text_4": "Orientadas hacia el lado contrario, no serán tan eficaces", - - "create.ponder.weighted_ejector.header": "Usar eyectores de peso", - "create.ponder.weighted_ejector.text_1": "Mayús izdo + clic derecho sosteniendo un eyector de peso para seleccionar la ubicación de destino", - "create.ponder.weighted_ejector.text_10": "Ahora estára limitado a este tamaño de pila, y sólo se activara cuando su pila retenida alcance esta cantidad", - "create.ponder.weighted_ejector.text_11": "Otras entidades activarán el eyector al pisarlos", - "create.ponder.weighted_ejector.text_2": "El eyector colocado lanzará ahora los objetos al lugar marcado", - "create.ponder.weighted_ejector.text_3": "Un objetivo válido puede estar a cualquier altura o distancia dentro del alcance", - "create.ponder.weighted_ejector.text_4": "Sin embargo, no pueden estar a un costado", - "create.ponder.weighted_ejector.text_5": "Si no se ha seleccionado ningún objetivo válido, simplemente se dirigirá al bloque que se encuentra justo delante", - "create.ponder.weighted_ejector.text_6": "Suministrale fuerza rotacional para cargarlo", - "create.ponder.weighted_ejector.text_7": "Los objetos colocados en el eyector hacen que se dispare", - "create.ponder.weighted_ejector.text_8": "Si se dirigen a un inventario, el eyector esperará hasta que haya espacio", - "create.ponder.weighted_ejector.text_9": "Con la llave inglesa se puede configurar el tamaño de pila requerido", - - "create.ponder.weighted_ejector_redstone.header": "Controlar los eyectores de peso con redstone", - "create.ponder.weighted_ejector_redstone.text_1": "Cuando se alimentan con redstone, los eyectores no se activan", - "create.ponder.weighted_ejector_redstone.text_2": "Además, los observadores de contenido pueden detectar cuando los eyectores se activan", - - "create.ponder.weighted_ejector_tunnel.header": "Dividir pilas de objetos mediante eyectores de peso", - "create.ponder.weighted_ejector_tunnel.text_1": "En combinación con los túneles de latón, los eyectores de peso pueden dividir las pilas de objetos en cantidades específicas", - "create.ponder.weighted_ejector_tunnel.text_2": "En primer lugar, configure el túnel de latón en 'Preferir lo más cercano', para dar prioridad a su salida lateral", - "create.ponder.weighted_ejector_tunnel.text_3": "El tamaño de la pila fijado en el eyector determina ahora la cantidad que se va a dividir", - "create.ponder.weighted_ejector_tunnel.text_4": "Mientras una nueva pila del tamaño configurado se expulse por la salida lateral...", - "create.ponder.weighted_ejector_tunnel.text_5": "...el resto seguirá su camino", - - "create.ponder.windmill_source.header": "Generar fuerza rotacional mediante rodamientos del molino de viento", - "create.ponder.windmill_source.text_1": "Los rodamientos del molino de viento se fijan al bloque que tienen delante", - "create.ponder.windmill_source.text_2": "Si se unen suficientes bloques tipo vela al bloque, éste puede actuar como un molino de viento", - "create.ponder.windmill_source.text_3": "Activado con un clic derecho, el rodamiento del molino de viento comenzará a proporcionar fuerza rotacional", - "create.ponder.windmill_source.text_4": "La cantidad de bloques de vela determina su velocidad de rotación", - "create.ponder.windmill_source.text_5": "Utiliza una llave inglesa para configurar su sentido de rotación", - "create.ponder.windmill_source.text_6": "Haga clic derecho sobre el rodamiento del molino en cualquier momento para detener y editar la estructura de nuevo", - - "create.ponder.windmill_structure.header": "Artilugios para molinos de viento", - "create.ponder.windmill_structure.text_1": "Cualquier estructura puede contar como un molino de viento válido, siempre que contenga al menos 8 bloques tipo vela.", - - "_": "Thank you for translating Create!" - -} From d4a17bdd029a5e6e1598a71cb886390d8c3a2227 Mon Sep 17 00:00:00 2001 From: Nekrodamus Date: Sat, 7 Aug 2021 17:08:09 -0300 Subject: [PATCH 22/79] Delete es_uy.json --- .../resources/assets/create/lang/es_uy.json | 2305 ----------------- 1 file changed, 2305 deletions(-) delete mode 100644 src/main/resources/assets/create/lang/es_uy.json diff --git a/src/main/resources/assets/create/lang/es_uy.json b/src/main/resources/assets/create/lang/es_uy.json deleted file mode 100644 index 504694aab..000000000 --- a/src/main/resources/assets/create/lang/es_uy.json +++ /dev/null @@ -1,2305 +0,0 @@ -{ - - "_": "->------------------------] Game Elements [------------------------<-", - - "block.create.acacia_window": "Ventana de acacia", - "block.create.acacia_window_pane": "Panel de ventana de acacia", - "block.create.adjustable_chain_gearshift": "Cadena de transmisión ajustable", - "block.create.adjustable_crate": "Caja ajustable", - "block.create.adjustable_pulse_repeater": "Repetidor de pulso ajustable", - "block.create.adjustable_repeater": "Repetidor ajustable", - "block.create.analog_lever": "Palanca analógica", - "block.create.andesite_belt_funnel": "Embudo de cinta de andesita", - "block.create.andesite_bricks": "Ladrillos de andesita", - "block.create.andesite_bricks_slab": "Losa de ladrillos de andesita", - "block.create.andesite_bricks_stairs": "Escaleras de ladrillos de andesita", - "block.create.andesite_bricks_wall": "Muro de ladrillos de andesita", - "block.create.andesite_casing": "Revestidor de andesita", - "block.create.andesite_cobblestone": "Adoquín de andesita", - "block.create.andesite_cobblestone_slab": "Losa de adoquín de andesita", - "block.create.andesite_cobblestone_stairs": "Escaleras de adoquines de andesita", - "block.create.andesite_cobblestone_wall": "Muro de adoquines de andesita", - "block.create.andesite_encased_shaft": "Eje revestido de andesita", - "block.create.andesite_funnel": "Embudo de andesita", - "block.create.andesite_pillar": "Poste de andesita", - "block.create.andesite_tunnel": "Túnel de Andesita", - "block.create.basin": "Cuenca", - "block.create.belt": "Cinta", - "block.create.birch_window": "Ventana de abedul", - "block.create.birch_window_pane": "Panel de ventana de abedul", - "block.create.black_nixie_tube": "Tubo Nixie negro", - "block.create.black_sail": "Vela negra", - "block.create.black_seat": "Asiento negro", - "block.create.black_valve_handle": "Asa de válvula negra", - "block.create.blaze_burner": "Quemador de Blaze", - "block.create.blue_nixie_tube": "Tubo Nixie azul", - "block.create.blue_sail": "Vela azul", - "block.create.blue_seat": "Asiento azul", - "block.create.blue_valve_handle": "Asa de válvula azul", - "block.create.brass_belt_funnel": "Embudo de cinta de latón", - "block.create.brass_block": "Bloque de latón", - "block.create.brass_casing": "Revestidor de latón", - "block.create.brass_encased_shaft": "Eje revestido de latón", - "block.create.brass_funnel": "Embudo de latón", - "block.create.brass_tunnel": "Túnel de latón", - "block.create.brown_nixie_tube": "Tubo Nixie marrón", - "block.create.brown_sail": "Vela marrón", - "block.create.brown_seat": "Asiento marrón", - "block.create.brown_valve_handle": "Asa de válvula marrón", - "block.create.cart_assembler": "Ensamblador de vagonetas", - "block.create.chiseled_dark_scoria": "Escoria oscura cincelada", - "block.create.chiseled_dolomite": "Dolomita cincelada", - "block.create.chiseled_gabbro": "Gabro cincelado", - "block.create.chiseled_limestone": "Caliza cincelada", - "block.create.chiseled_scoria": "Escoria cincelada", - "block.create.chiseled_weathered_limestone": "Piedra caliza erosionada cincelada", - "block.create.chocolate": "Chocolate", - "block.create.chute": "Ducto", - "block.create.clockwork_bearing": "Rodamiento tipo reloj", - "block.create.clutch": "Embrague", - "block.create.cogwheel": "Engranaje pequeño", - "block.create.content_observer": "Observador de contenidos", - "block.create.controller_rail": "Raíl de control", - "block.create.copper_backtank": "Depósito trasero de cobre", - "block.create.copper_block": "Bloque de cobre", - "block.create.copper_casing": "Revestidor de caliza", - "block.create.copper_ore": "Mena de cobre", - "block.create.copper_shingles": "Bloque de tejas de cobre", - "block.create.copper_tiles": "Bloque de baldosas de cobre", - "block.create.copper_valve_handle": "Asa de válvula de cobre", - "block.create.creative_crate": "Caja creativa", - "block.create.creative_fluid_tank": "Tanque de fluidos creativo", - "block.create.creative_motor": "Motor creativo", - "block.create.crimson_window": "Ventana carmesí", - "block.create.crimson_window_pane": "Panel de ventana carmesí", - "block.create.crushing_wheel": "Rueda trituradora", - "block.create.crushing_wheel_controller": "Controlador de Rueda trituradora", - "block.create.cuckoo_clock": "Reloj de cuco", - "block.create.cyan_nixie_tube": "Tubo Nixie cian", - "block.create.cyan_sail": "Vela cian", - "block.create.cyan_seat": "Asiento cian", - "block.create.cyan_valve_handle": "Asa de válvula cian", - "block.create.dark_oak_window": "Ventana de roble oscuro", - "block.create.dark_oak_window_pane": "Panel de ventana de roble oscuro", - "block.create.dark_scoria": "Escoria oscura", - "block.create.dark_scoria_bricks": "Ladrillos de escoria oscura", - "block.create.dark_scoria_bricks_slab": "Losa de ladrillos de escoria oscura", - "block.create.dark_scoria_bricks_stairs": "Escaleras de ladrillos de escoria oscura", - "block.create.dark_scoria_bricks_wall": "Muro de ladrillos de escoria oscura", - "block.create.dark_scoria_cobblestone": "Adoquines de escoria oscura", - "block.create.dark_scoria_cobblestone_slab": "Losa de adoquines de escoria oscura", - "block.create.dark_scoria_cobblestone_stairs": "Escaleras de adoquines de escoria oscura", - "block.create.dark_scoria_cobblestone_wall": "Muro de adoquines de escoria oscura", - "block.create.dark_scoria_pillar": "Pilar de escoria oscura", - "block.create.deployer": "Desplegador", - "block.create.depot": "Depósito", - "block.create.diorite_bricks": "Ladrillos de diorita", - "block.create.diorite_bricks_slab": "Losa de ladrillos de diorita", - "block.create.diorite_bricks_stairs": "Escaleras de ladrillos de diorita", - "block.create.diorite_bricks_wall": "Muro de ladrillos de diorita", - "block.create.diorite_cobblestone": "Adoquín de diorita", - "block.create.diorite_cobblestone_slab": "Losa de adoquínes de diorita", - "block.create.diorite_cobblestone_stairs": "Escaleras de adoquines de diorita", - "block.create.diorite_cobblestone_wall": "Muro de adoquines de diorita", - "block.create.diorite_pillar": "Pilar de diorita", - "block.create.dolomite": "Dolomita", - "block.create.dolomite_bricks": "Ladrillos de dolomita", - "block.create.dolomite_bricks_slab": "Losa de ladrillos de dolomita", - "block.create.dolomite_bricks_stairs": "Escaleras de ladrillos de dolomita", - "block.create.dolomite_bricks_wall": "Muro de ladrillos de dolomita", - "block.create.dolomite_cobblestone": "Adoquín de dolomita", - "block.create.dolomite_cobblestone_slab": "Losa de adoquín de dolomita", - "block.create.dolomite_cobblestone_stairs": "Escaleras de adoquines de dolomita", - "block.create.dolomite_cobblestone_wall": "Muro de adoquines de dolomita", - "block.create.dolomite_pillar": "Pilar de dolomita", - "block.create.encased_chain_drive": "Cadena de transmisión revestida", - "block.create.encased_fan": "Ventilador revestido", - "block.create.encased_fluid_pipe": "Tubería de fluidos de cobre reforzada", - "block.create.fancy_andesite_bricks": "Ladrillos de andesita elegantes", - "block.create.fancy_andesite_bricks_slab": "Ladrillos de andesita elegantes", - "block.create.fancy_andesite_bricks_stairs": "Escaleras de ladrillos de andesita elegantes", - "block.create.fancy_andesite_bricks_wall": "Muro de ladrillos de andesita elegantes", - "block.create.fancy_dark_scoria_bricks": "Ladrillos de escoria oscura elegantes", - "block.create.fancy_dark_scoria_bricks_slab": "Losa de ladrillos de escoria oscura elegantes", - "block.create.fancy_dark_scoria_bricks_stairs": "Escalera de ladrillos de escoria oscura elegantes", - "block.create.fancy_dark_scoria_bricks_wall": "Muro de ladrillos de escoria oscura elegantes", - "block.create.fancy_diorite_bricks": "Ladrillos de diorita elegantes", - "block.create.fancy_diorite_bricks_slab": "Losa de ladrillos de diorita elegantes", - "block.create.fancy_diorite_bricks_stairs": "Escaleras de ladrillos de diorita elegantes", - "block.create.fancy_diorite_bricks_wall": "Muro de ladrillos de diorita elegantes", - "block.create.fancy_dolomite_bricks": "Ladrillos de dolomita elegantes", - "block.create.fancy_dolomite_bricks_slab": "Losa de ladrillos de dolomita elegantes", - "block.create.fancy_dolomite_bricks_stairs": "Escaleras de ladrillos de dolomita elegantes", - "block.create.fancy_dolomite_bricks_wall": "Muro de ladrillos de dolomita elegantes", - "block.create.fancy_gabbro_bricks": "Ladrillos de gabro elegantes", - "block.create.fancy_gabbro_bricks_slab": "Losa de ladrillos de gabro elegantes", - "block.create.fancy_gabbro_bricks_stairs": "Escaleras de ladrillos de gabro elegantes", - "block.create.fancy_gabbro_bricks_wall": "Muro de ladrillos de gabro elegantes", - "block.create.fancy_granite_bricks": "Ladrillos de granito elegantes", - "block.create.fancy_granite_bricks_slab": "Losa de ladrillos de granito elegantes", - "block.create.fancy_granite_bricks_stairs": "Escaleras de ladrillos de granito elegantes", - "block.create.fancy_granite_bricks_wall": "Muro de ladrillos de granito elegantes", - "block.create.fancy_limestone_bricks": "Ladrillos de piedra caliza elegantes", - "block.create.fancy_limestone_bricks_slab": "Losa de ladrillos de piedra caliza elegantes", - "block.create.fancy_limestone_bricks_stairs": "Escaleras de ladrillos de piedra caliza elegantes", - "block.create.fancy_limestone_bricks_wall": "Muro de ladrillos de piedra caliza elegantes", - "block.create.fancy_scoria_bricks": "Ladrillos de escoria elegantes", - "block.create.fancy_scoria_bricks_slab": "Losa de ladrillos de escoria elegantes", - "block.create.fancy_scoria_bricks_stairs": "Escaleras de ladrillos de escoria elegantes", - "block.create.fancy_scoria_bricks_wall": "Muro de ladrillos de escoria elegantes", - "block.create.fancy_weathered_limestone_bricks": "Ladrillos de piedra de caliza erosionada elegantes", - "block.create.fancy_weathered_limestone_bricks_slab": "Losa de ladrillos de caliza erosionada elegantes", - "block.create.fancy_weathered_limestone_bricks_stairs": "Escaleras de ladrillos de caliza erosionada elegantes", - "block.create.fancy_weathered_limestone_bricks_wall": "Muro de ladrillos de caliza erosionada elegantes", - "block.create.fluid_pipe": "Tubería de fluidos de cobre", - "block.create.fluid_tank": "Depósito de fluidos", - "block.create.fluid_valve": "Válvula de fluidos", - "block.create.flywheel": "Rueda de inercia", - "block.create.framed_glass": "Cristal enmarcado", - "block.create.framed_glass_pane": "Panel de cristal enmarcado", - "block.create.furnace_engine": "Motor de horno", - "block.create.gabbro": "Gabro", - "block.create.gabbro_bricks": "Ladrillos de gabro", - "block.create.gabbro_bricks_slab": "Losa de ladrillos de gabro", - "block.create.gabbro_bricks_stairs": "Escaleras de ladrillos de gabro", - "block.create.gabbro_bricks_wall": "Muro de ladrillos de gabro", - "block.create.gabbro_cobblestone": "Adoquín de gabro", - "block.create.gabbro_cobblestone_slab": "Losa de adoquínes de gabro", - "block.create.gabbro_cobblestone_stairs": "Escaleras de adoquínes de gabro", - "block.create.gabbro_cobblestone_wall": "Muro de adoquínes de gabro", - "block.create.gabbro_pillar": "Pilar de gabro", - "block.create.gantry_carriage": "Carro de grúa", - "block.create.gantry_shaft": "Eje de grúa", - "block.create.gearbox": "Caja de transmisión", - "block.create.gearshift": "Caja de cambios", - "block.create.glass_fluid_pipe": "Tubería de fluidos de cristal", - "block.create.granite_bricks": "Ladrillos de granito", - "block.create.granite_bricks_slab": "Losa de ladrillos de granito", - "block.create.granite_bricks_stairs": "Escaleras de ladrillos de granito", - "block.create.granite_bricks_wall": "Muro de ladrillos de granito", - "block.create.granite_cobblestone": "Adoquín de granito", - "block.create.granite_cobblestone_slab": "Losa de adoquínes de granito", - "block.create.granite_cobblestone_stairs": "Escaleras de adoquínes de granito", - "block.create.granite_cobblestone_wall": "Muro de adoquínes de granito", - "block.create.granite_pillar": "Pilar de granito", - "block.create.gray_nixie_tube": "Tubo Nixie gris", - "block.create.gray_sail": "Vela gris", - "block.create.gray_seat": "Asiento gris", - "block.create.gray_valve_handle": "Asa de válvula gris", - "block.create.green_nixie_tube": "Tubo Nixie verde", - "block.create.green_sail": "Vela verde", - "block.create.green_seat": "Asiento verde", - "block.create.green_valve_handle": "Asa de válvula verde", - "block.create.hand_crank": "Manivela", - "block.create.haunted_bell": "Campana encantada", - "block.create.honey": "Miel", - "block.create.horizontal_framed_glass": "Cristal con marco horizontal", - "block.create.horizontal_framed_glass_pane": "Panel de cristal con marco horizontal", - "block.create.hose_pulley": "Polea de manguera", - "block.create.item_drain": "Drenador de objetos", - "block.create.jungle_window": "Ventana de jungla", - "block.create.jungle_window_pane": "Panel de ventana de jungla", - "block.create.large_cogwheel": "Engranaje grande", - "block.create.layered_andesite": "Andesita estratificada", - "block.create.layered_dark_scoria": "Escoria oscura estratificada", - "block.create.layered_diorite": "Diorita estratificada", - "block.create.layered_dolomite": "Dolomita estratificada", - "block.create.layered_gabbro": "Gabro estratificado", - "block.create.layered_granite": "Granito estratificado", - "block.create.layered_limestone": "Piedra caliza estratificada", - "block.create.layered_scoria": "Escoria estratificada", - "block.create.layered_weathered_limestone": "Caliza erosionada estratificada", - "block.create.lectern_controller": "Controlador de atril", - "block.create.light_blue_nixie_tube": "Tubo Nixie azul claro", - "block.create.light_blue_sail": "Vela azul claro", - "block.create.light_blue_seat": "Asiento azul claro", - "block.create.light_blue_valve_handle": "Asa de válvula azul claro", - "block.create.light_gray_nixie_tube": "Tubo Nixie gris claro", - "block.create.light_gray_sail": "Vela gris claro", - "block.create.light_gray_seat": "Asiento gris claro", - "block.create.light_gray_valve_handle": "Asa de válvula gris claro", - "block.create.lime_nixie_tube": "Tubo Nixie lima", - "block.create.lime_sail": "Vela lima", - "block.create.lime_seat": "Asiento lima", - "block.create.lime_valve_handle": "Asa de válvula lima", - "block.create.limesand": "Arena caliza", - "block.create.limestone": "Piedra caliza", - "block.create.limestone_bricks": "Ladrillos de piedra caliza", - "block.create.limestone_bricks_slab": "Losa de ladrillos de piedra caliza", - "block.create.limestone_bricks_stairs": "Escaleras de ladrillos de piedra caliza", - "block.create.limestone_bricks_wall": "Muro de ladrillos de piedra caliza", - "block.create.limestone_cobblestone": "Adoquínes de piedra caliza", - "block.create.limestone_cobblestone_slab": "Losa de adoquines de piedra caliza", - "block.create.limestone_cobblestone_stairs": "Escaleras de adoquines de piedra caliza", - "block.create.limestone_cobblestone_wall": "Muro de adoquines de piedra caliza", - "block.create.limestone_pillar": "Pilar de piedra caliza", - "block.create.linear_chassis": "Chasis lineal", - "block.create.lit_blaze_burner": "Quemador de Blaze encendido", - "block.create.magenta_nixie_tube": "Tubo Nixie magenta", - "block.create.magenta_sail": "Vela magenta", - "block.create.magenta_seat": "Asiento magenta", - "block.create.magenta_valve_handle": "Asa de válvula magenta", - "block.create.mechanical_arm": "Brazo mecánico", - "block.create.mechanical_bearing": "Rodamiento mecánico", - "block.create.mechanical_crafter": "Ensamblador mecánico", - "block.create.mechanical_drill": "Taladro mecánico", - "block.create.mechanical_harvester": "Cosechadora mecánica", - "block.create.mechanical_mixer": "Mezcladora mecánica", - "block.create.mechanical_piston": "Pistón mecánico", - "block.create.mechanical_piston_head": "Cabezal de pistón mecánico", - "block.create.mechanical_plough": "Arado mecánico", - "block.create.mechanical_press": "Prensa mecánica", - "block.create.mechanical_pump": "Bomba mecánica", - "block.create.mechanical_saw": "Sierra mecánica", - "block.create.metal_bracket": "Soporte de metal para ejes", - "block.create.millstone": "Piedra de molino", - "block.create.minecart_anchor": "Ancla de vagonetas", - "block.create.mossy_andesite": "Andesita musgosa", - "block.create.mossy_dark_scoria": "Escoria oscura musgosa", - "block.create.mossy_diorite": "Diorita musgosa", - "block.create.mossy_dolomite": "Dolomita musgosa", - "block.create.mossy_gabbro": "Gabro musgoso", - "block.create.mossy_granite": "Granito musgoso", - "block.create.mossy_limestone": "Caliza musgosa", - "block.create.mossy_scoria": "Escoria musgosa", - "block.create.mossy_weathered_limestone": "Caliza erosionada musgosa", - "block.create.mysterious_cuckoo_clock": "Reloj de cuco", - "block.create.natural_scoria": "Escoria natural", - "block.create.nixie_tube": "Tubo Nixie", - "block.create.nozzle": "Boquilla", - "block.create.oak_window": "Ventana de roble", - "block.create.oak_window_pane": "Panel de ventana de roble", - "block.create.orange_sail": "Vela naranja", - "block.create.orange_seat": "Asiento naranja", - "block.create.orange_valve_handle": "Asa de válvula naranja", - "block.create.ornate_iron_window": "Ventana de hierro ornamentada", - "block.create.ornate_iron_window_pane": "Panel de ventana de hierro ornamentada", - "block.create.overgrown_andesite": "Andesita sobredimensionada", - "block.create.overgrown_dark_scoria": "Escoria oscura sobredimensionada", - "block.create.overgrown_diorite": "Diorita sobredimensionada", - "block.create.overgrown_dolomite": "Dolomita sobredimensionada", - "block.create.overgrown_gabbro": "Gabro sobredimensionado", - "block.create.overgrown_granite": "Granito sobredimensionado", - "block.create.overgrown_limestone": "Caliza sobredimensionada", - "block.create.overgrown_scoria": "Escoria sobredimensionada", - "block.create.overgrown_weathered_limestone": "Caliza erosionada sobredimensionada", - "block.create.paved_andesite": "Andesita pavimentada", - "block.create.paved_andesite_slab": "Losa de andesita pavimentada", - "block.create.paved_andesite_stairs": "Escaleras de andesita pavimentada", - "block.create.paved_andesite_wall": "Muro de andesita pavimentada", - "block.create.paved_dark_scoria": "Escoria oscura pavimentada", - "block.create.paved_dark_scoria_slab": "Losa de escoria oscura pavimentada", - "block.create.paved_dark_scoria_stairs": "Escaleras de escoria oscura pavimentada", - "block.create.paved_dark_scoria_wall": "Muro de escoria oscura pavimentad", - "block.create.paved_diorite": "Diorita pavimentada", - "block.create.paved_diorite_slab": "Losa de diorita pavimentada", - "block.create.paved_diorite_stairs": "Escaleras de diorita pavimentada", - "block.create.paved_diorite_wall": "Muro de diorita pavimentad", - "block.create.paved_dolomite": "Dolomita pavimentada", - "block.create.paved_dolomite_slab": "Losa de dolomita pavimentada", - "block.create.paved_dolomite_stairs": "Escaleras de dolomita pavimentada", - "block.create.paved_dolomite_wall": "Muro de dolomita pavimentada", - "block.create.paved_gabbro": "Gabro pavimentado", - "block.create.paved_gabbro_slab": "Losa de gabro pavimentado", - "block.create.paved_gabbro_stairs": "Escaleras de gabro pavimentado", - "block.create.paved_gabbro_wall": "Muro de gabro pavimentado", - "block.create.paved_granite": "Granito pavimentado", - "block.create.paved_granite_slab": "Losa de granito pavimentado", - "block.create.paved_granite_stairs": "Escaleras de granito pavimentado", - "block.create.paved_granite_wall": "Muro de granito pavimentado", - "block.create.paved_limestone": "Piedra caliza pavimentada", - "block.create.paved_limestone_slab": "Losa de piedra caliza pavimentada", - "block.create.paved_limestone_stairs": "Escaleras de piedra caliza pavimentada", - "block.create.paved_limestone_wall": "Muro de piedra caliza pavimentada", - "block.create.paved_scoria": "Escoria pavimentada", - "block.create.paved_scoria_slab": "Losa de escoria pavimentada", - "block.create.paved_scoria_stairs": "Escaleras de escoria pavimentada", - "block.create.paved_scoria_wall": "Muro de escoria pavimentada", - "block.create.paved_weathered_limestone": "Piedra caliza erosionada pavimentada", - "block.create.paved_weathered_limestone_slab": "Losa de piedra caliza erosionada pavimentada", - "block.create.paved_weathered_limestone_stairs": "Escaleras de piedra caliza erosionada pavimentada", - "block.create.paved_weathered_limestone_wall": "Muro de piedra caliza erosionada pavimentada", - "block.create.peculiar_bell": "Campana peculiar", - "block.create.pink_nixie_tube": "Tubo Nixie rosa", - "block.create.pink_sail": "Vela rosa", - "block.create.pink_seat": "Asiento rosa", - "block.create.pink_valve_handle": "Asa de válvula rosa", - "block.create.piston_extension_pole": "Pértiga de extensión de pistón", - "block.create.polished_dark_scoria": "Escoria oscura pulida", - "block.create.polished_dark_scoria_slab": "Losa de escoria oscura pulida", - "block.create.polished_dark_scoria_stairs": "Escaleras de escoria oscura pulida", - "block.create.polished_dark_scoria_wall": "Muro de escoria oscura pulida", - "block.create.polished_dolomite": "Dolomita pulida", - "block.create.polished_dolomite_slab": "Losa de dolomita pulida", - "block.create.polished_dolomite_stairs": "Escaleras de dolomita pulidas", - "block.create.polished_dolomite_wall": "Muro de dolomita pulida", - "block.create.polished_gabbro": "Gabro pulido", - "block.create.polished_gabbro_slab": "Losa de gabro pulido", - "block.create.polished_gabbro_stairs": "Escaleras de gabro pulido", - "block.create.polished_gabbro_wall": "Muro de gabro pulido", - "block.create.polished_limestone": "Piedra caliza pulida", - "block.create.polished_limestone_slab": "Losa de piedra caliza pulida", - "block.create.polished_limestone_stairs": "Escaleras de piedra caliza pulidas", - "block.create.polished_limestone_wall": "Muro de piedra caliza pulida", - "block.create.polished_scoria": "Escoria pulida", - "block.create.polished_scoria_slab": "Losa de escoria pulida", - "block.create.polished_scoria_stairs": "Escaleras de losa pulida", - "block.create.polished_scoria_wall": "Muro de escoria pulida", - "block.create.polished_weathered_limestone": "Piedra caliza erosionada pulida", - "block.create.polished_weathered_limestone_slab": "Losa de piedra caliza erosionada pulida", - "block.create.polished_weathered_limestone_stairs": "Escaleras de piedra caliza erosionada pulida", - "block.create.polished_weathered_limestone_wall": "Muro de piedra caliza erosionada pulida", - "block.create.portable_fluid_interface": "Interfaz de fluidos portátil", - "block.create.portable_storage_interface": "Interfaz de almacenamiento portátil", - "block.create.powered_latch": "Palanca motorizada", - "block.create.powered_toggle_latch": "Palanca de cierre motorizada", - "block.create.pulley_magnet": "Imán de la polea", - "block.create.pulse_repeater": "Repetidor de pulsos de redstone", - "block.create.purple_nixie_tube": "Tubo Nixie morado", - "block.create.purple_sail": "Vela morada", - "block.create.purple_seat": "Asiento morado", - "block.create.purple_valve_handle": "Asa de válvula morada", - "block.create.radial_chassis": "Chasis radial", - "block.create.red_nixie_tube": "Tubo Nixie rojo", - "block.create.red_sail": "Vela roja", - "block.create.red_seat": "Asiento rojo", - "block.create.red_valve_handle": "Asa de válvula roja", - "block.create.redstone_contact": "Contacto de redstone", - "block.create.redstone_link": "Enlace de redstone", - "block.create.refined_radiance_casing": "Revestidor radiante", - "block.create.reinforced_rail": "Raíl reforzado", - "block.create.rope": "Cuerda", - "block.create.rope_pulley": "Polea de cuerda", - "block.create.rotation_speed_controller": "Controlador de velocidad rotacional", - "block.create.sail_frame": "Marco de vela", - "block.create.schematic_table": "Tabla de esquemas", - "block.create.schematicannon": "Cañón de esquemas", - "block.create.scoria": "Escoria", - "block.create.scoria_bricks": "Ladrillos de escoria", - "block.create.scoria_bricks_slab": "Losa de ladrillos de escoria", - "block.create.scoria_bricks_stairs": "Escaleras de ladrillos de escoria", - "block.create.scoria_bricks_wall": "Muro de ladrillos de escoria", - "block.create.scoria_cobblestone": "Adoquín de escoria", - "block.create.scoria_cobblestone_slab": "Losa de adoquínes de escoria", - "block.create.scoria_cobblestone_stairs": "Escaleras de adoquines de escoria", - "block.create.scoria_cobblestone_wall": "Muro de adoquines de escoria", - "block.create.scoria_pillar": "Pilar de escoria", - "block.create.secondary_linear_chassis": "Chasis lineal secundario", - "block.create.sequenced_gearshift": "Caja de cambios secuencial", - "block.create.shadow_steel_casing": "Revestidor sombrío", - "block.create.shaft": "Eje", - "block.create.smart_chute": "Ducto inteligente", - "block.create.smart_fluid_pipe": "Tubería de fluidos inteligente", - "block.create.speedometer": "Velocímetro", - "block.create.spout": "Surtidor", - "block.create.spruce_window": "Ventana de abeto", - "block.create.spruce_window_pane": "Panel de ventana de abeto", - "block.create.sticker": "Sticker", - "block.create.sticky_mechanical_piston": "Pistón mecánico pegajoso", - "block.create.stockpile_switch": "Interruptor de acopio", - "block.create.stressometer": "Estresómetro", - "block.create.tiled_glass": "Vidrio esmaltado", - "block.create.tiled_glass_pane": "Panel de vidrio esmaltado", - "block.create.turntable": "Plataforma giratoria mecánica", - "block.create.vertical_framed_glass": "Vidrio esmaltado vertical", - "block.create.vertical_framed_glass_pane": "Panel de vidrio esmaltado vertical", - "block.create.warped_window": "Ventana distorsionada", - "block.create.warped_window_pane": "Panel de ventana distorsionada", - "block.create.water_wheel": "Rueda hidráulica mecánica", - "block.create.weathered_limestone": "Piedra caliza erosionada", - "block.create.weathered_limestone_bricks": "Ladrillos de piedra caliza erosionada", - "block.create.weathered_limestone_bricks_slab": "Losa de piedra caliza erosionada", - "block.create.weathered_limestone_bricks_stairs": "Escaleras de ladrillos de piedra caliza erosionada", - "block.create.weathered_limestone_bricks_wall": "Muro de ladrillos de piedra caliza erosionada", - "block.create.weathered_limestone_cobblestone": "Adoquín de piedra caliza erosionada", - "block.create.weathered_limestone_cobblestone_slab": "Losa de adoquín de piedra caliza erosionada", - "block.create.weathered_limestone_cobblestone_stairs": "Escaleras de adoquín de piedra caliza erosionada", - "block.create.weathered_limestone_cobblestone_wall": "Muro de adoquínes de piedra caliza erosionada", - "block.create.weathered_limestone_pillar": "Pilar de piedra caliza erosionada", - "block.create.weighted_ejector": "Eyector de peso", - "block.create.white_nixie_tube": "Tubo Nixie blanco", - "block.create.white_sail": "Vela blanca", - "block.create.white_seat": "Asiento blanco", - "block.create.white_valve_handle": "Asa de válvula blanco", - "block.create.windmill_bearing": "Rodamiento del molino de viento", - "block.create.wooden_bracket": "Soporte de madera para ejes", - "block.create.yellow_nixie_tube": "Tubo Nixie amarillo", - "block.create.yellow_sail": "Vela amarilla", - "block.create.yellow_seat": "Asiento amarillo", - "block.create.yellow_valve_handle": "Asa de válvula amarillo", - "block.create.zinc_block": "Bloque de zinc", - "block.create.zinc_ore": "Mena de zinc", - - "enchantment.create.capacity": "Capacidad", - "enchantment.create.potato_recovery": "Recuperación de patatas", - - "entity.create.contraption": "Artilugio", - "entity.create.crafting_blueprint": "Plano de elaboración", - "entity.create.gantry_contraption": "Artilugio de grúa", - "entity.create.potato_projectile": "Proyectil de patata", - "entity.create.seat": "Asiento", - "entity.create.stationary_contraption": "Artilugio estacionario", - "entity.create.super_glue": "Pegamento", - - "fluid.create.potion": "Poción", - "fluid.create.tea": "Té del Constructor", - - "item.create.andesite_alloy": "Aleación de andesita", - "item.create.attribute_filter": "Filtro de atributos", - "item.create.bar_of_chocolate": "Barra de chocolate", - "item.create.belt_connector": "Correa mecánica", - "item.create.blaze_cake": "Pastel de blaze", - "item.create.blaze_cake_base": "Base de pastel de blaze", - "item.create.brass_hand": "Mano de latón", - "item.create.brass_ingot": "Lingote de latón", - "item.create.brass_nugget": "Pepita de latón", - "item.create.brass_sheet": "Lámina de latón", - "item.create.builders_tea": "Té del Constructor", - "item.create.chest_minecart_contraption": "Artilugio de vagoneta con cofre", - "item.create.chocolate_bucket": "Cubo con chocolate", - "item.create.chocolate_glazed_berries": "Bayas glaseadas con chocolate", - "item.create.chromatic_compound": "Compuesto cromático", - "item.create.cinder_flour": "Harina del Nether", - "item.create.copper_backtank": "Depósito trasero de cobre", - "item.create.copper_ingot": "Lingote de cobre", - "item.create.copper_nugget": "Pepita de cobre", - "item.create.copper_sheet": "Lámina de cobre", - "item.create.crafter_slot_cover": "Tapa de ranura del ensamblador mecánico", - "item.create.crafting_blueprint": "Plano de elaboración", - "item.create.creative_blaze_cake": "´Pastel de blaze creativo", - "item.create.crushed_aluminum_ore": "Mineral de aluminio molido", - "item.create.crushed_brass": "Latón molido", - "item.create.crushed_copper_ore": "Mineral de cobre molido", - "item.create.crushed_gold_ore": "Mineral de oro molido", - "item.create.crushed_iron_ore": "Mineral de hierro molido", - "item.create.crushed_lead_ore": "Mineral de plomo molido", - "item.create.crushed_nickel_ore": "Mineral de níquel molido", - "item.create.crushed_osmium_ore": "Mineral de osmio molido", - "item.create.crushed_platinum_ore": "Mineral de platino molido", - "item.create.crushed_quicksilver_ore": "Mineral de mercurio molido", - "item.create.crushed_silver_ore": "Mineral de plata molido", - "item.create.crushed_tin_ore": "Mineral de estaño molido", - "item.create.crushed_uranium_ore": "Mineral de uranio molido", - "item.create.crushed_zinc_ore": "Mineral de zinc molido", - "item.create.diving_boots": "Botas de buceo", - "item.create.diving_helmet": "Casco de buceo", - "item.create.dough": "Masilla", - "item.create.electron_tube": "Tubo de electrones", - "item.create.empty_blaze_burner": "Quemador de blaze vacío", - "item.create.empty_schematic": "Esquema vacío", - "item.create.extendo_grip": "Agarre extendido", - "item.create.filter": "Filtro", - "item.create.furnace_minecart_contraption": "Artilugio de vagoneta de horno", - "item.create.goggles": "Gafas del constructor", - "item.create.golden_sheet": "Lámina de oro", - "item.create.handheld_worldshaper": "Worldshaper Creativo", - "item.create.honey_bucket": "Cubo con miel", - "item.create.honeyed_apple": "Manzana con miel", - "item.create.incomplete_cogwheel": "Engranaje pequeño incompleto", - "item.create.incomplete_large_cogwheel": "Engranaje grande incompleto", - "item.create.incomplete_precision_mechanism": "Mecanismo de precisión incompleto", - "item.create.iron_sheet": "Lámina de hierro", - "item.create.linked_controller": "Controlador enlazado", - "item.create.minecart_contraption": "Artilugio de vagoneta", - "item.create.minecart_coupling": "Acoplamiento de vagoneta", - "item.create.polished_rose_quartz": "Cuarzo rosado pulido", - "item.create.potato_cannon": "Cañón de patatas", - "item.create.powdered_obsidian": "Polvo de obsidiana", - "item.create.precision_mechanism": "Mecanismo de precisión", - "item.create.propeller": "Hélice", - "item.create.red_sand_paper": "Papel de lija rojo", - "item.create.refined_radiance": "Resplandor refinado", - "item.create.rose_quartz": "Cuarzo rosado", - "item.create.sand_paper": "Papel de lija", - "item.create.schematic": "Esquema", - "item.create.schematic_and_quill": "Esquema y pluma", - "item.create.shadow_steel": "Acero sombrío", - "item.create.super_glue": "Pegamento", - "item.create.sweet_roll": "Pan dulce", - "item.create.tree_fertilizer": "Fertilizante para árboles", - "item.create.vertical_gearbox": "Caja de transmisión vertical", - "item.create.wand_of_symmetry": "Varita de simetría", - "item.create.wheat_flour": "Harina de trigo", - "item.create.whisk": "Batidora", - "item.create.wrench": "Llave inglesa", - "item.create.zinc_ingot": "Lingote de zinc", - "item.create.zinc_nugget": "Pepita de zinc", - - - "_": "->------------------------] Advancements [------------------------<-", - - "advancement.create.root": "Bienvenido a Create", - "advancement.create.root.desc": "¡Es hora de empezar a construir increíbles artilugios!", - "advancement.create.andesite_alloy": "Aleaciones en abundancia", - "advancement.create.andesite_alloy.desc": "Los materiales de Create tienen nombres extraños, la aleación de andesita es uno de ellos.", - "advancement.create.its_alive": "¡Está vivo!", - "advancement.create.its_alive.desc": "Mira cómo gira tu primer componente cinético.", - "advancement.create.shifting_gears": "Cambiando de marcha", - "advancement.create.shifting_gears.desc": "Conecta un engranaje grande a uno pequeño, lo que te permitirá cambiar la velocidad de tu artilugio.", - "advancement.create.overstressed": "Sobrecargado", - "advancement.create.overstressed.desc": "Experimenta los límites del estrés.", - "advancement.create.belt": "Paseo de algas", - "advancement.create.belt.desc": "Conectar dos ejes con una correa.", - "advancement.create.tunnel": "¡Cúbrete!", - "advancement.create.tunnel.desc": "Embellece tu correa con un túnel.", - "advancement.create.splitter_tunnel": "Divide y vencerás", - "advancement.create.splitter_tunnel.desc": "Crear un divisor con un grupo de túneles de latón.", - "advancement.create.chute": "Caída en picado", - "advancement.create.chute.desc": "Coloque un ducto, la contrapartida vertical de la cinta.", - "advancement.create.upward_chute": "Abducción aérea", - "advancement.create.upward_chute.desc": "Observe cómo un objeto lanzado vuela dentro de un ducto impulsado por un ventilador.", - "advancement.create.belt_funnel": "Colgantes con forma de embudo", - "advancement.create.belt_funnel.desc": "Coloca un embudo lateral encima de una cinta o depósito para crear un tipo especial.", - "advancement.create.belt_funnel_kiss": "Los loros y las aletas", - "advancement.create.belt_funnel_kiss.desc": "Haz besar dos embudos montados con una cinta.", - "advancement.create.fan": "Maestro mecánico del aire", - "advancement.create.fan.desc": "Monta la corriente de aire proporcionada por un ventilador revestido.", - "advancement.create.fan_lava": "Calentador geotérmico", - "advancement.create.fan_lava.desc": "Queda atrapado en una corriente de aire que funde las cosas.", - "advancement.create.fan_water": "Lavado de la ropa", - "advancement.create.fan_water.desc": "Queda atrapado en una corriente de aire que lava las cosas.", - "advancement.create.fan_smoke": "Fuelle mecánico", - "advancement.create.fan_smoke.desc": "Queda atrapado en una corriente de aire que humea los objetos.", - "advancement.create.wrench": "Configurar convenientemente", - "advancement.create.wrench.desc": "Crea una llave inglesa para ayudarte a construir tus artilugios.", - "advancement.create.goggles": "Estresóvisión", - "advancement.create.goggles.desc": "Crea unas gafas del constructor para ayudarte a obtener más información cinética de los componentes.", - "advancement.create.speedometer": "Pero, ¿con qué rapidez exactamente?", - "advancement.create.speedometer.desc": "Coloca y alimenta un velocímetro. Míralo a través de las gafas para leer su valor exacto.", - "advancement.create.stressometer": "Pero, ¿cuán estresado exactamente??", - "advancement.create.stressometer.desc": "Coloca y alimenta un estresómetro. Míralo a través de las gafas para leer su valor exacto.", - "advancement.create.aesthetics": "Boom, ¡Estética!", - "advancement.create.aesthetics.desc": "Coloca soportes en ejes, ductos y engranajes.", - "advancement.create.reinforced": "Boom, ¡Reforzado!", - "advancement.create.reinforced.desc": "Utiliza bloques de revestimiento en un eje, un ducto y una cinta.", - "advancement.create.water_wheel": "Aprovechar la hidráulica", - "advancement.create.water_wheel.desc": "Coloca una rueda hidráulica e intenta hacerla girar.", - "advancement.create.chocolate_wheel": "Potencia de buen gusto", - "advancement.create.chocolate_wheel.desc": "Haz funcionar una rueda de agua con chocolate fundido.", - "advancement.create.lava_wheel": "Rueda de magma", - "advancement.create.lava_wheel.desc": "Esto no debió haber funcionado.", - "advancement.create.cuckoo": "¿Es el momento?", - "advancement.create.cuckoo.desc": "Presencia cómo un reloj de cuco anuncia la hora de acostarse.", - "advancement.create.millstone": "Triturador de bolsillo", - "advancement.create.millstone.desc": "Coloca y alimenta una piedra de molino.", - "advancement.create.windmill": "Una suave brisa", - "advancement.create.windmill.desc": "Monta un molino de viento.", - "advancement.create.maxed_windmill": "Una fuerte brisa", - "advancement.create.maxed_windmill.desc": "Monta un molino de viento con máxima intensidad.", - "advancement.create.andesite_casing": "La edad de la andesita", - "advancement.create.andesite_casing.desc": "Utiliza un poco de aleación de andesita y madera para crear un revestimiento básico.", - "advancement.create.mechanical_drill": "Interruptores fijos", - "advancement.create.mechanical_drill.desc": "Coloca y alimenta un taladro mecánico.", - "advancement.create.press": "¡La prensa se pone en marcha!", - "advancement.create.press.desc": "Activa una prensa mecánica y utilízala para crear algunas láminas.", - "advancement.create.polished_rose_quartz": "Diamantes rosas", - "advancement.create.polished_rose_quartz.desc": "Utiliza un trozo de papel de lija para pulir el cuarzo rosa hasta que se vuelva transparente.", - "advancement.create.electron_tube": "Beep Boop", - "advancement.create.electron_tube.desc": "Haz algunos tubos de electrones, útiles en la fabricación de maquinaria menos primitiva.", - "advancement.create.mechanical_saw": "Picado estacionario", - "advancement.create.mechanical_saw.desc": "Coloca y alimenta una sierra mecánica.", - "advancement.create.basin": "Funcionamiento de la cuenca", - "advancement.create.basin.desc": "Coloca una cuenca e intenta arrojar objetos en ella.", - "advancement.create.mixer": "Mezcla de colores", - "advancement.create.mixer.desc": "Coloca una batidora mecánica sobre el lavabo, enciéndala y empiece a mezclar algunos ingredientes.", - "advancement.create.blaze_burner": "Una chimenea viva", - "advancement.create.blaze_burner.desc": "Obtiene un quemador de blaze.", - "advancement.create.compact": "Compactación automática", - "advancement.create.compact.desc": "Utiliza una prensa y una cuenca para compactar algunos objetos.", - "advancement.create.brass": "Aleaciones reales", - "advancement.create.brass.desc": "Utiliza cobre molido y zinc molido para crear algo de latón.", - "advancement.create.brass_casing": "La Edad de Latón", - "advancement.create.brass_casing.desc": "Utiliza el latón recién obtenido y algo de madera para crear un revestimiento más avanzado.", - "advancement.create.copper_casing": "La Edad de Cobre", - "advancement.create.copper_casing.desc": "Utiliza algunas láminas de cobre y madera para crear algunos revestimientos de cobre.", - "advancement.create.spout": "Sploosh", - "advancement.create.spout.desc": "Observa el llenado de un fluido usando una boquilla.", - "advancement.create.spout_potion": "Cervecera global", - "advancement.create.spout_potion.desc": "Mira cómo un pico llena una botella con líquido de poción.", - "advancement.create.chocolate": "Un mundo de imaginación", - "advancement.create.chocolate.desc": "Obtiene un cubo con chocolate fundido.", - "advancement.create.item_drain": "Drenaje de la ropa", - "advancement.create.item_drain.desc": "Ve cómo se vacía un fluido mediante un drenador de objetos.", - "advancement.create.chained_item_drain": "¡Déjalo rodar!", - "advancement.create.chained_item_drain.desc": "Observa cómo un objeto rueda por varios drenadores de objetos encadenados.", - "advancement.create.glass_pipe": "Espía del flujo", - "advancement.create.glass_pipe.desc": "Observa cómo se propaga el fluido a través de un tubo de fluidos con ventanas. Los tubos de fluido rectos se convierten en ventanas cuando se utiliza una llave inglesa en ellas.", - "advancement.create.pipe_collision": "No cruzar nunca los arroyos", - "advancement.create.pipe_collision.desc": "Vea cómo se unen dos fluidos en su red de tuberías.", - "advancement.create.pipe_spill": "¡Hay una fuga!", - "advancement.create.pipe_spill.desc": "Observe cómo un extremo abierto de una tubería toma o deposita fluidos en el mundo.", - "advancement.create.hose_pulley": "Vertidos industriales", - "advancement.create.hose_pulley.desc": "Baja una polea de manguera y ve cómo se vacía o se llena un cuerpo de líquido.", - "advancement.create.infinite_water": "Drenando el océano", - "advancement.create.infinite_water.desc": "Bombea de una masa de agua lo suficientemente grande como para ser considerada infinita.", - "advancement.create.infinite_lava": "Drenaje del núcleo de los planetas", - "advancement.create.infinite_lava.desc": "Bombea de una masa de lava lo suficientemente grande como para ser considerada infinita.", - "advancement.create.infinite_chocolate": "Ahogándose en la imaginación", - "advancement.create.infinite_chocolate.desc": "Bombea desde una masa de chocolate fundido lo suficientemente grande como para ser considerado infinito.", - "advancement.create.crafter": "Montaje automatizado", - "advancement.create.crafter.desc": "Coloca y alimenta algunos ensambladores.", - "advancement.create.clockwork_bearing": "Artilugio a la hora", - "advancement.create.clockwork_bearing.desc": "Ensamblar una estructura montada sobre un rodamiento tipo reloj.", - "advancement.create.nixie_tube": "Signos de estilo", - "advancement.create.nixie_tube.desc": "Obtener y colocar un par de tubos nixie.", - "advancement.create.deployer": "Picar, colocar y atacar", - "advancement.create.deployer.desc": "Coloca y potencia un desplegador, el reflejo perfecto de ti mismo.", - "advancement.create.speed_controller": "Los ingenieros lo odian!", - "advancement.create.speed_controller.desc": "Coloca un controlador de velocidad rotacional, el dispositivo definitivo para cambiar de marcha.", - "advancement.create.flywheel": "El corazón de la fábrica", - "advancement.create.flywheel.desc": "Conecta con éxito un motor a la rueda de inercia.", - "advancement.create.overstress_flywheel": "Altos niveles de estrés", - "advancement.create.overstress_flywheel.desc": "Sobrecarga un motor de horno.", - "advancement.create.precision_mechanism": "Curiosidades complejas", - "advancement.create.precision_mechanism.desc": "Monta un mecanismo de precisión.", - "advancement.create.mechanical_arm": "¡Manos ocupadas!", - "advancement.create.mechanical_arm.desc": "Crea un brazo mecánico, selecciona las entradas y salidas, colócalo en el suelo y dale energía; luego observa cómo hace todo el trabajo por ti.", - "advancement.create.musical_arm": "¡Tócame la melodía!", - "advancement.create.musical_arm.desc": "Vea cómo un brazo mecánico maneja su tocadiscos.", - "advancement.create.arm_many_targets": "Organize-o-Tron", - "advancement.create.arm_many_targets.desc": "Programa un brazo mecánico con diez o más posiciones de salida.", - "advancement.create.arm_blaze_burner": "Combust-o-Tron", - "advancement.create.arm_blaze_burner.desc": "Instruya un brazo mecánico para alimentar su quemador de blaze.", - "advancement.create.fist_bump": "¡Pégale, hermano!", - "advancement.create.fist_bump.desc": "Haz que dos desplegadores se den un puñetazo.", - "advancement.create.crushing_wheel": "Un par de gigantes", - "advancement.create.crushing_wheel.desc": "Crea algunas ruedas de trituración para descomponer más materiales de forma más eficaz.", - "advancement.create.blaze_cake": "Fiebre del azúcar", - "advancement.create.blaze_cake.desc": "Hornea en tu quemador de blaze un pastel especial.", - "advancement.create.chromatic_compound": "Minerales misteriosos", - "advancement.create.chromatic_compound.desc": "Crea una barra de compuesto cromático.", - "advancement.create.shadow_steel": "Retorno del vacío", - "advancement.create.shadow_steel.desc": "Crea acero sombrío, una barra de metal de la nada.", - "advancement.create.refined_radiance": "Brillante e inspirador", - "advancement.create.refined_radiance.desc": "Crea un resplandor refinado, una poderosa sustancia cromática.", - "advancement.create.chromatic_age": "La edad cromática", - "advancement.create.chromatic_age.desc": "Crear bloques de revestimiento de la luz y la oscuridad.", - "advancement.create.wand_of_symmetry": "Espejos radiantes", - "advancement.create.wand_of_symmetry.desc": "Crear un bastón de simetría.", - "advancement.create.extendo_grip": "¡Boioioing!", - "advancement.create.extendo_grip.desc": "Hazte con un agarre extentido.", - "advancement.create.potato_cannon": "Fwoomp!", - "advancement.create.potato_cannon.desc": "Derrota a un enemigo con tu cañón de patatas.", - "advancement.create.dual_extendo_grip": "La última edad del boing", - "advancement.create.dual_extendo_grip.desc": "Doble empuñadura extendida para un alcance sobrehumano.", - "advancement.create.eob": "Fin de la beta", - "advancement.create.eob.desc": "Espere más contenido aquí en el futuro. <3", - - - "_": "->------------------------] UI & Messages [------------------------<-", - - "itemGroup.create.base": "Create", - "itemGroup.create.palettes": "Paletas", - - "death.attack.create.crush": "%1$s se procesó en las ruedas de trituración", - "death.attack.create.crush.player": "%1$s fue arrojado a las ruedas de trituración por %2$s", - "death.attack.create.fan_fire": "%1$s murió quemado por el aire caliente", - "death.attack.create.fan_fire.player": "%1$s fue arrojado a un ahumador por %2$s", - "death.attack.create.fan_lava": "%1$s murió quemado por un abanico de lava", - "death.attack.create.fan_lava.player": "%1$s fue arrojado a una fundición por %2$s", - "death.attack.create.mechanical_drill": "%1$s fue empalado por un taladro mecánico", - "death.attack.create.mechanical_drill.player": "%1$s fue lanzado frente a un taladro por %2$s", - "death.attack.create.mechanical_saw": "%1$s fue cortado por la mitad por una sierra mecánica", - "death.attack.create.mechanical_saw.player": "%1$s fue arrojado a una sierra por %2$s", - "death.attack.create.potato_cannon": "%1$s fue disparado por el cañón de patatas de %2$s's", - "death.attack.create.potato_cannon.item": "%1$s fue disparado por %2$s utilizando %3$s", - "death.attack.create.cuckoo_clock_explosion": "%1$s fue volado por los aires por un reloj de cuco manipulado", - "death.attack.create.cuckoo_clock_explosion.player": "%1$s fue volado por un reloj de cuco manipulado", - - "create.block.deployer.damage_source_name": "Un desplegador rebelde", - "create.block.cart_assembler.invalid": "Coloque su Ensamblador de vagonetas en un bloque de Raíles", - - "create.menu.return": "Regresar al menú", - "create.menu.configure": "Configurar...", - "create.menu.ponder_index": "Índice", - "create.menu.only_ingame": "Disponible en el menú de pausa", - "create.menu.project_page": "Página del proyecto", - "create.menu.report_bugs": "Reportar problemas", - "create.menu.support": "Apóyenos", - - "create.recipe.crushing": "Trituración", - "create.recipe.milling": "Fresado", - "create.recipe.fan_washing": "Lavado a granel", - "create.recipe.fan_washing.fan": "Ventilador detrás del agua fluyente", - "create.recipe.fan_smoking": "Ahumador a granel", - "create.recipe.fan_smoking.fan": "Ventilador detrás del fuego", - "create.recipe.fan_blasting": "Voladuras a granel", - "create.recipe.fan_blasting.fan": "Ventilador detrás de la lava", - "create.recipe.pressing": "Prensando", - "create.recipe.mixing": "Mezclando", - "create.recipe.deploying": "Desplegando", - "create.recipe.automatic_shapeless": "Elaboración automatizada de productos sin forma", - "create.recipe.automatic_brewing": "Elaboración de cerveza automatizada", - "create.recipe.packing": "Compactando", - "create.recipe.automatic_packing": "Embalaje automatizado", - "create.recipe.sawing": "Aserrando", - "create.recipe.mechanical_crafting": "Elaboración mecánica", - "create.recipe.automatic_shaped": "Elaboración automatizada de productos con forma", - "create.recipe.block_cutting": "Corte de bloques", - "create.recipe.wood_cutting": "Corte de maderas", - "create.recipe.sandpaper_polishing": "Pulido con papel de lija", - "create.recipe.mystery_conversion": "Conversión misteriosa", - "create.recipe.spout_filling": "Llenar por el pico", - "create.recipe.draining": "Drenador de objetos", - "create.recipe.sequenced_assembly": "Montaje secuenciado", - "create.recipe.assembly.next": "Siguiente: %1$s", - "create.recipe.assembly.step": "Fase %1$s:", - "create.recipe.assembly.progress": "Progreso: %1$s/%2$s", - "create.recipe.assembly.pressing": "Proceso en prensa", - "create.recipe.assembly.spout_filling_fluid": "Pico %1$s", - "create.recipe.assembly.deploying_item": "Despliegue %1$s", - "create.recipe.assembly.cutting": "Corte con sierra", - "create.recipe.assembly.repeat": "Repetir la secuencia %1$s veces", - "create.recipe.assembly.junk": "Basura aleatoria", - "create.recipe.processing.chance": "%1$s%% Chance", - "create.recipe.heat_requirement.none": "No es necesario calentar", - "create.recipe.heat_requirement.heated": "Calentado", - "create.recipe.heat_requirement.superheated": "Súper-Calentado", - - "create.generic.range": "Rango", - "create.generic.radius": "Radio", - "create.generic.width": "Ancho", - "create.generic.height": "Alto", - "create.generic.length": "Largo", - "create.generic.speed": "Velocidad", - "create.generic.delay": "Retraso", - "create.generic.unit.ticks": "Ticks", - "create.generic.unit.seconds": "Segundos", - "create.generic.unit.minutes": "Minutos", - "create.generic.unit.rpm": "RPM", - "create.generic.unit.stress": "SU(unidades de estrés)", - "create.generic.unit.degrees": "°", - "create.generic.unit.millibuckets": "%1$smB", - "create.generic.clockwise": "En el sentido de las agujas del reloj", - "create.generic.counter_clockwise": "En sentido contrario a las agujas del reloj", - - "create.action.scroll": "Desplazar", - "create.action.confirm": "Confirmar", - "create.action.abort": "Abortar", - "create.action.saveToFile": "Guardar", - "create.action.discard": "Descartar", - - "create.keyinfo.toolmenu": "Menú de la Herramienta de Enfoque", - "create.keyinfo.scrollup": "Simular usar la rueda del ratón hacia arriba (en el mundo)", - "create.keyinfo.scrolldown": "Simular usar la rueda del ratón hacia abajo (en el mundo)", - - "create.gui.scrollInput.defaultTitle": "Seleccione una opción:", - "create.gui.scrollInput.scrollToModify": "Usa la rueda del ratón para modificar", - "create.gui.scrollInput.scrollToAdjustAmount": "Usa la rueda del ratón para ajustar la cantidad", - "create.gui.scrollInput.scrollToSelect": "Usa la rueda del ratón para seleccionar", - "create.gui.scrollInput.shiftScrollsFaster": "Mayús izdo para usar la rueda del ratón más rápido", - "create.gui.toolmenu.focusKey": "Mantén [%1$s] para enfocar", - "create.gui.toolmenu.cycle": "[RUEDA DEL RATÓN] para el ciclo", - "create.gui.symmetryWand.mirrorType": "Espejado", - "create.gui.symmetryWand.orientation": "Orientación", - - "create.symmetry.mirror.plane": "Plano de espejo", - "create.symmetry.mirror.doublePlane": "Rectangular", - "create.symmetry.mirror.triplePlane": "Octogonal", - - "create.orientation.orthogonal": "Ortogonal", - "create.orientation.diagonal": "Diagonal", - "create.orientation.horizontal": "Horizontal", - "create.orientation.alongZ": "A lo largo de Z", - "create.orientation.alongX": "A lo largo de X", - - "create.gui.terrainzapper.title": "Blockzapper", - "create.gui.terrainzapper.searchDiagonal": "Seguir diagonales", - "create.gui.terrainzapper.searchFuzzy": "Ignorar los bordes del material", - "create.gui.terrainzapper.patternSection": "Patrón", - "create.gui.terrainzapper.pattern.solid": "Sólido", - "create.gui.terrainzapper.pattern.checkered": "Tablero de ajedrez", - "create.gui.terrainzapper.pattern.inversecheckered": "Tablero de ajedrez invertido", - "create.gui.terrainzapper.pattern.chance25": "25% Roll", - "create.gui.terrainzapper.pattern.chance50": "50% Roll", - "create.gui.terrainzapper.pattern.chance75": "75% Roll", - "create.gui.terrainzapper.placement": "Ubicación", - "create.gui.terrainzapper.placement.merged": "Fusionado", - "create.gui.terrainzapper.placement.attached": "Adjuntado", - "create.gui.terrainzapper.placement.inserted": "Insertado", - "create.gui.terrainzapper.brush": "Pincel", - "create.gui.terrainzapper.brush.cuboid": "Cuboide", - "create.gui.terrainzapper.brush.sphere": "Esfera", - "create.gui.terrainzapper.brush.cylinder": "Cilindro", - "create.gui.terrainzapper.brush.surface": "Superficie", - "create.gui.terrainzapper.brush.cluster": "Grupo", - "create.gui.terrainzapper.tool": "Herramienta", - "create.gui.terrainzapper.tool.fill": "Llenar", - "create.gui.terrainzapper.tool.place": "Ubicar", - "create.gui.terrainzapper.tool.replace": "Reemplazar", - "create.gui.terrainzapper.tool.clear": "Eliminar", - "create.gui.terrainzapper.tool.overlay": "Superponer", - "create.gui.terrainzapper.tool.flatten": "Aplanar", - - "create.terrainzapper.shiftRightClickToSet": "Mayús izdo + clic derecho para seleccionar una forma", - "create.terrainzapper.usingBlock": "Usando: %1$s", - "create.terrainzapper.leftClickToSet": "Clic izquierdo a un bloque para establecer el material", - - "create.minecart_coupling.two_couplings_max": "Las vagonetas no pueden tener más de dos enganches cada una", - "create.minecart_coupling.unloaded": "Algunas partes de su tren parecen estar en chunks no cargados", - "create.minecart_coupling.no_loops": "Los acoplamientos no pueden formar un bucle", - "create.minecart_coupling.removed": "Se han retirado todos los acoplamientos de la vagoneta", - "create.minecart_coupling.too_far": "Las vagonetas están demasiado separadas", - - "create.contraptions.movement_mode": "Modo de movimiento", - "create.contraptions.movement_mode.move_place": "Colocar siempre al detenerse", - "create.contraptions.movement_mode.move_place_returned": "Colocar sólo en la posición inicial", - "create.contraptions.movement_mode.move_never_place": "Colocar sólo cuando se destruye el ancla", - "create.contraptions.movement_mode.rotate_place": "Colocar siempre al detenerse", - "create.contraptions.movement_mode.rotate_place_returned": "Colocar sólo cerca del ángulo inicial", - "create.contraptions.movement_mode.rotate_never_place": "Colocar sólo cuando se destruye el ancla", - "create.contraptions.cart_movement_mode": "Modo de movimiento de la vagoneta", - "create.contraptions.cart_movement_mode.rotate": "Siempre de cara al movimiento", - "create.contraptions.cart_movement_mode.rotate_paused": "Pausar a los actores mientras giran", - "create.contraptions.cart_movement_mode.rotation_locked": "Bloquear rotación", - "create.contraptions.windmill.rotation_direction": "Dirección de rotación", - "create.contraptions.clockwork.clock_hands": "Manecillas de reloj", - "create.contraptions.clockwork.hour_first": "La manecilla de las horas primero", - "create.contraptions.clockwork.minute_first": "La manecilla de los minutos primero", - "create.contraptions.clockwork.hour_first_24": "La manecilla del día primero", - - "create.logistics.filter": "Filtro", - "create.logistics.recipe_filter": "Filtro para recetas", - "create.logistics.fluid_filter": "Filtro para fluidos", - "create.logistics.firstFrequency": "Freq. #1", - "create.logistics.secondFrequency": "Freq. #2", - "create.logistics.filter.apply": "Filtro aplicado a %1$s.", - "create.logistics.filter.apply_click_again": "Filtro aplicado a %1$s, haga clic de nuevo para copiar la cantidad.", - "create.logistics.filter.apply_count": "Aplicado recuento de extracciones al filtro.", - - "create.gui.goggles.generator_stats": "Estadísticas del generador:", - "create.gui.goggles.kinetic_stats": "Estadísticas cinéticas:", - "create.gui.goggles.at_current_speed": "con la velocidad actual", - "create.gui.goggles.pole_length": "Longitud del poste:", - "create.gui.goggles.fluid_container": "Información sobre el contenedor de fluidos:", - "create.gui.goggles.fluid_container.capacity": "Capacidad: ", - "create.gui.assembly.exception": "Este artilugio no se pudo montar:", - "create.gui.assembly.exception.unmovableBlock": "Bloque inamovible (%4$s) en [%1$s,%2$s,%3$s]", - "create.gui.assembly.exception.chunkNotLoaded": "El bloque en [%1$s,%2$s,%3$s] no estaba en un chunk cargado", - "create.gui.assembly.exception.structureTooLarge": "Hay demasiados bloques incluídos en el artilugio.\nEl máximo configurado es: %1$s", - "create.gui.assembly.exception.tooManyPistonPoles": "Hay demasiadas Pértigas de extensión conectadas a este Pistón.\nEl máximo configurado es: %1$s", - "create.gui.assembly.exception.noPistonPoles": "Faltan pértigas de extensión para el pistón", - "create.gui.assembly.exception.not_enough_sails": "La estructura adjunta no incluye suficientes bloques tipo vela: %1$s\nSe requiere un mínimo de %2$s", - "create.gui.gauge.info_header": "Información sobre el medidor:", - "create.gui.speedometer.title": "Velocidad de rotación", - "create.gui.stressometer.title": "Estrés de la red", - "create.gui.stressometer.capacity": "Capacidad restante", - "create.gui.stressometer.overstressed": "Sobrecargado", - "create.gui.stressometer.no_rotation": "Sin rotación", - "create.gui.contraptions.not_fast_enough": "Parece que este %1$s no está girando con _suficiente_ velocidad_.", - "create.gui.contraptions.network_overstressed": "Parece que este artilugio está _sobrecargado_. Añade más fuentes o _desacelera_ los componentes con un _impacto de estrés alto_.", - "create.gui.adjustable_crate.title": "Caja ajustable", - "create.gui.adjustable_crate.storageSpace": "Espacio de almacenamiento", - "create.gui.stockpile_switch.title": "Interruptor de acopio", - "create.gui.stockpile_switch.invert_signal": "Invertir señal", - "create.gui.stockpile_switch.move_to_lower_at": "Pasar al carril inferior en %1$s%%", - "create.gui.stockpile_switch.move_to_upper_at": "Pasar al carril superior en %1$s%%", - "create.gui.sequenced_gearshift.title": "Cambio de marchas secuenciado", - "create.gui.sequenced_gearshift.instruction": "Instrucción", - "create.gui.sequenced_gearshift.instruction.turn_angle.descriptive": "Giro por ángulo", - "create.gui.sequenced_gearshift.instruction.turn_angle": "Giro", - "create.gui.sequenced_gearshift.instruction.turn_angle.angle": "Ángulo", - "create.gui.sequenced_gearshift.instruction.turn_distance.descriptive": "Giro para mover el pistón/polea/grúa", - "create.gui.sequenced_gearshift.instruction.turn_distance": "Pistón", - "create.gui.sequenced_gearshift.instruction.turn_distance.distance": "Distancia", - "create.gui.sequenced_gearshift.instruction.delay.descriptive": "Tiempo de retraso", - "create.gui.sequenced_gearshift.instruction.delay": "Retraso", - "create.gui.sequenced_gearshift.instruction.delay.duration": "Duración", - "create.gui.sequenced_gearshift.instruction.end.descriptive": "Fin", - "create.gui.sequenced_gearshift.instruction.end": "Fin", - "create.gui.sequenced_gearshift.instruction.await.descriptive": "En espera de un pulso de redstone", - "create.gui.sequenced_gearshift.instruction.await": "En espera", - "create.gui.sequenced_gearshift.speed": "Velocidad, Dirección", - "create.gui.sequenced_gearshift.speed.forward": "Velocidad de entrada, hacia adelante", - "create.gui.sequenced_gearshift.speed.forward_fast": "Doble velocidad, hacia adelante", - "create.gui.sequenced_gearshift.speed.back": "Velocidad de entrada, Invertida", - "create.gui.sequenced_gearshift.speed.back_fast": "Doble velocidad, Invertida", - - "create.schematicAndQuill.dimensions": "Tamaño del esquema: %1$sx%2$sx%3$s", - "create.schematicAndQuill.firstPos": "Primera posición fijada.", - "create.schematicAndQuill.secondPos": "Segunda posición fijada.", - "create.schematicAndQuill.noTarget": "Mantén [Ctrl] para seleccionar los bloques del aire.", - "create.schematicAndQuill.abort": "Selección eliminada.", - "create.schematicAndQuill.title": "Nombre del esquema:", - "create.schematicAndQuill.convert": "Guardar y desplegar inmediatamente", - "create.schematicAndQuill.fallbackName": "Mi esquema", - "create.schematicAndQuill.saved": "Guardado como %1$s", - - "create.schematic.invalid": "[!] Elemento no válido - Utilice la tabla de esquemas en su lugar", - "create.schematic.position": "Posición", - "create.schematic.rotation": "Rotación", - "create.schematic.rotation.none": "Ninguno", - "create.schematic.rotation.cw90": "En el sentido de las agujas del reloj 90", - "create.schematic.rotation.cw180": "En el sentido de las agujas del reloj 180", - "create.schematic.rotation.cw270": "En el sentido de las agujas del reloj 270", - "create.schematic.mirror": "Espejado", - "create.schematic.mirror.none": "Ninguno", - "create.schematic.mirror.frontBack": "Delante-Detrás", - "create.schematic.mirror.leftRight": "Izquierda-Derecha", - "create.schematic.tool.deploy": "Despliegue", - "create.schematic.tool.move": "Mover XZ", - "create.schematic.tool.movey": "Mover Y", - "create.schematic.tool.rotate": "Rotar", - "create.schematic.tool.print": "Imprimir", - "create.schematic.tool.flip": "Voltear", - "create.schematic.tool.deploy.description.0": "Mueve la estructura a un lugar.", - "create.schematic.tool.deploy.description.1": "Haz clic con el botón derecho del ratón en el suelo para colocarla.", - "create.schematic.tool.deploy.description.2": "Mantén [Ctrl] para seleccionar a una distancia fija.", - "create.schematic.tool.deploy.description.3": "[Ctrl] + [RUEDA DEL RATÓN] para cambiar la distancia.", - "create.schematic.tool.move.description.0": "Desplaza el esquema horizontalmente.", - "create.schematic.tool.move.description.1": "Apunta al esquema y [Ctrl] + [RUEDA DEL RATÓN] para ponerlo.", - "create.schematic.tool.move.description.2": "", - "create.schematic.tool.move.description.3": "", - "create.schematic.tool.movey.description.0": "Desplaza el esquema verticalmente..", - "create.schematic.tool.movey.description.1": "[Ctrl] + [RUEDA DEL RATÓN] para moverlo hacia arriba/abajo.", - "create.schematic.tool.movey.description.2": "", - "create.schematic.tool.movey.description.3": "", - "create.schematic.tool.rotate.description.0": "Gira el esquema alrededor de su centro.", - "create.schematic.tool.rotate.description.1": "[Ctrl] + [RUEDA DEL RATÓN] para girar 90 grados.", - "create.schematic.tool.rotate.description.2": "", - "create.schematic.tool.rotate.description.3": "", - "create.schematic.tool.print.description.0": "Sitúa instantáneamente la estructura en el mundo.", - "create.schematic.tool.print.description.1": "[Clic derecho] para confirmar la colocación en el lugar actual.", - "create.schematic.tool.print.description.2": "Esta herramienta es sólo para el Modo Creativo.", - "create.schematic.tool.print.description.3": "", - "create.schematic.tool.flip.description.0": "Voltea el esquema a lo largo de la cara que seleccione.", - "create.schematic.tool.flip.description.1": "Apunta al esquema y [Ctrl] + [RUEDA DEL RATÓN] para voltearlo.", - "create.schematic.tool.flip.description.2": "", - "create.schematic.tool.flip.description.3": "", - - "create.schematics.synchronizing": "Sincronizando...", - "create.schematics.uploadTooLarge": "Tu esquema excede las limitaciones especificadas por el servidor.", - "create.schematics.maxAllowedSize": "El tamaño máximo permitido del archivo del esquema es:", - - "create.gui.schematicTable.refresh": "Refrescar archivos", - "create.gui.schematicTable.open_folder": "Abrir carpeta", - "create.gui.schematicTable.title": "Tabla de esquemas", - "create.gui.schematicTable.availableSchematics": "Esquemas disponibles", - "create.gui.schematicTable.noSchematics": "No hay esquemas guardados", - "create.gui.schematicTable.uploading": "Subiendo...", - "create.gui.schematicTable.finished": "¡Subida finalizada!", - "create.gui.schematicannon.title": "Cañón de esquemas", - "create.gui.schematicannon.listPrinter": "Lista de control de la impresora", - "create.gui.schematicannon.gunpowderLevel": "Pólvora %1$s%%", - "create.gui.schematicannon.shotsRemaining": "Disparos restantes: %1$s", - "create.gui.schematicannon.shotsRemainingWithBackup": "Con respaldo: %1$s", - "create.gui.schematicannon.optionEnabled": "Actualmente habilitado", - "create.gui.schematicannon.optionDisabled": "Actualmente deshabilitado", - "create.gui.schematicannon.showOptions": "Mostrar la configuración de la impresora", - "create.gui.schematicannon.option.dontReplaceSolid": "No sustituír los bloques sólidos", - "create.gui.schematicannon.option.replaceWithSolid": "Sustituir sólido por sólido", - "create.gui.schematicannon.option.replaceWithAny": "Sustituir sólido por cualquiera", - "create.gui.schematicannon.option.replaceWithEmpty": "Sustituir sólido por vacío", - "create.gui.schematicannon.option.skipMissing": "Omitir los bloques que faltan", - "create.gui.schematicannon.option.skipTileEntities": "Proteger a las entidades", - "create.gui.schematicannon.slot.gunpowder": "Añade pólvora para alimentar el cañón", - "create.gui.schematicannon.slot.listPrinter": "Coloque los libros aquí para imprimir una lista de comprobación para su esquema", - "create.gui.schematicannon.slot.schematic": "Añada su esquema aquí. Asegúrese de que se despliega en un lugar específico.", - "create.gui.schematicannon.option.skipMissing.description": "Si el cañón no encuentra un bloque necesario para su colocación, continuará en la siguiente ubicación.", - "create.gui.schematicannon.option.skipTileEntities.description": "El cañón evitará reemplazar los bloques que contienen datos, como los cofres.", - "create.gui.schematicannon.option.dontReplaceSolid.description": "El cañón nunca sustituirá ningún bloque sólido en su zona de trabajo, sólo los no sólidos y el aire.", - "create.gui.schematicannon.option.replaceWithSolid.description": "El cañón sólo reemplazará los bloques sólidos en su área de trabajo si el esquema contiene un bloque sólido en la ubicación.", - "create.gui.schematicannon.option.replaceWithAny.description": "El cañón reemplazará los bloques sólidos en su área de trabajo si el esquema contiene algún bloque en la ubicación.", - "create.gui.schematicannon.option.replaceWithEmpty.description": "El cañón eliminará todos los bloques de su zona de trabajo, incluidos los sustituidos por aire.", - - "create.schematicannon.status.idle": "Inactivo", - "create.schematicannon.status.ready": "Listo", - "create.schematicannon.status.running": "Funcionando", - "create.schematicannon.status.finished": "Finalizado", - "create.schematicannon.status.paused": "Pausado", - "create.schematicannon.status.stopped": "Detenido", - "create.schematicannon.status.noGunpowder": "Sin pólvora", - "create.schematicannon.status.targetNotLoaded": "El objetivo no está cargado", - "create.schematicannon.status.targetOutsideRange": "Objetivo demasiado lejano", - "create.schematicannon.status.searching": "Buscando", - "create.schematicannon.status.skipping": "Omitiendo", - "create.schematicannon.status.missingBlock": "Elementos perdidos:", - "create.schematicannon.status.placing": "Colocando", - "create.schematicannon.status.clearing": "Limpiando bloques", - "create.schematicannon.status.schematicInvalid": "Esquema inválido", - "create.schematicannon.status.schematicNotPlaced": "Esquema no desplegado", - "create.schematicannon.status.schematicExpired": "Archivo de esquemas caducado", - - "create.materialChecklist": "Lista de control del material", - "create.materialChecklist.blocksNotLoaded": "* Descargo de Responsabilidad *\n\nLa lista de materiales puede ser inexacta debido a que no se han cargado los chunks pertinentes.", - - "create.gui.filter.deny_list": "Lista de denegados", - "create.gui.filter.deny_list.description": "Los objetos pasan si NO coinciden con ninguno de los anteriores. Una lista de denegación vacía acepta todo.", - "create.gui.filter.allow_list": "Lista de permitidos", - "create.gui.filter.allow_list.description": "Los objetos pasan si coinciden con alguno de los anteriores. Una lista de permitidos vacía rechaza todo.", - "create.gui.filter.respect_data": "Respetar datos", - "create.gui.filter.respect_data.description": "Los objetos sólo coinciden si su durabilidad, encantos y otros atributos también coinciden.", - "create.gui.filter.ignore_data": "Ignorar datos", - "create.gui.filter.ignore_data.description": "Los artículos coinciden independientemente de sus atributos.", - - "create.item_attributes.placeable": "se puede colocar", - "create.item_attributes.placeable.inverted": "no se puede colocar", - "create.item_attributes.consumable": "se puede comer", - "create.item_attributes.consumable.inverted": "no se puede comer", - "create.item_attributes.smeltable": "se puede fundir", - "create.item_attributes.smeltable.inverted": "no se puede fundir", - "create.item_attributes.washable": "se puede lavar", - "create.item_attributes.washable.inverted": "no se puede lavar", - "create.item_attributes.smokable": "puede ser ahumado", - "create.item_attributes.smokable.inverted": "no puede ser ahumado", - "create.item_attributes.crushable": "puede ser molido", - "create.item_attributes.crushable.inverted": "no puede ser molido", - "create.item_attributes.blastable": "es fundible en el alto horno", - "create.item_attributes.blastable.inverted": "no es fundible en el alto horno", - "create.item_attributes.enchanted": "está encantado", - "create.item_attributes.enchanted.inverted": "no está encantado", - "create.item_attributes.damaged": "está dañado", - "create.item_attributes.damaged.inverted": "no está dañado", - "create.item_attributes.badly_damaged": "está muy dañado", - "create.item_attributes.badly_damaged.inverted": "no está muy dañado", - "create.item_attributes.not_stackable": "no se puede apilar", - "create.item_attributes.not_stackable.inverted": "se puede apilar", - "create.item_attributes.equipable": "se puede equipar", - "create.item_attributes.equipable.inverted": "no se puede equipar", - "create.item_attributes.furnace_fuel": "es combustible para hornos", - "create.item_attributes.furnace_fuel.inverted": "no es combustible para hornos", - "create.item_attributes.in_tag": "está etiquetado %1$s", - "create.item_attributes.in_tag.inverted": "no está etiquetado %1$s", - "create.item_attributes.in_item_group": "está en el grupo '%1$s'", - "create.item_attributes.in_item_group.inverted": "no está en el grupo '%1$s'", - "create.item_attributes.added_by": "fue añadido por %1$s", - "create.item_attributes.added_by.inverted": "no fue añadida por %1$s", - "create.item_attributes.shulker_level": "es shulker %1$s", - "create.item_attributes.shulker_level.inverted": "no es shulker %1$s", - "create.item_attributes.shulker_level.full": "lleno", - "create.item_attributes.shulker_level.empty": "vacío", - "create.item_attributes.shulker_level.partial": "parcialmente lleno", - "create.item_attributes.has_enchant": "está encantado con %1$s", - "create.item_attributes.has_enchant.inverted": "no está encantado con %1$s", - "create.item_attributes.color": "Está teñido %1$s", - "create.item_attributes.color.inverted": "No está teñido %1$s", - "create.item_attributes.max_enchanted": "está encantado en el nivel máximo", - "create.item_attributes.max_enchanted.inverted": "no está encantado en el nivel máximo", - "create.item_attributes.has_fluid": "contiene %1$s", - "create.item_attributes.has_fluid.inverted": "no contiene %1$s", - "create.item_attributes.has_name": "tiene el nombre personalizado %1$s", - "create.item_attributes.has_name.inverted": "no tiene el nombre personalizado %1$s", - "create.item_attributes.book_author": "es obra de %1$s", - "create.item_attributes.book_author.inverted": "no es es obra de %1$s", - "create.item_attributes.book_copy_original": "es un original", - "create.item_attributes.book_copy_original.inverted": "no es un original", - "create.item_attributes.book_copy_first": "es una copia de primera generación", - "create.item_attributes.book_copy_first.inverted": "no es una copia de primera generación", - "create.item_attributes.book_copy_second": "es una copia de segunda generación", - "create.item_attributes.book_copy_second.inverted": "no es una copia de segunda generación", - "create.item_attributes.book_copy_tattered": "es un desordenado desastre", - "create.item_attributes.book_copy_tattered.inverted": "no es un desordenado desastre", - "create.item_attributes.astralsorcery_crystal": "tiene el atributo de cristal %1$s", - "create.item_attributes.astralsorcery_crystal.inverted": "no tiene atributo de cristal %1$s", - "create.item_attributes.astralsorcery_constellation": "está en sintonía con %1$s", - "create.item_attributes.astralsorcery_constellation.inverted": "no está en sintonía con %1$s", - "create.item_attributes.astralsorcery_perk_gem": "tiene el atributo ventaja %1$s", - "create.item_attributes.astralsorcery_perk_gem.inverted": "no tiene el atributo ventaja %1$s", - "create.item_attributes.astralsorcery_amulet": "mejora %1$s", - "create.item_attributes.astralsorcery_amulet.inverted": "no mejora %1$s", - - "create.gui.attribute_filter.no_selected_attributes": "No hay atributos seleccionados", - "create.gui.attribute_filter.selected_attributes": "Atributos seleccionados:", - "create.gui.attribute_filter.add_attribute": "Añadir atributo a la lista", - "create.gui.attribute_filter.add_inverted_attribute": "Añadir atributo invertido a la Lista", - "create.gui.attribute_filter.allow_list_disjunctive": "Lista de permitidos (Cualquiera)", - "create.gui.attribute_filter.allow_list_disjunctive.description": "Los objetos pasan si tienen alguno de los atributos seleccionados", - "create.gui.attribute_filter.allow_list_conjunctive": "Lista de permitidos (Todos)", - "create.gui.attribute_filter.allow_list_conjunctive.description": "Los objetos pasan sólo si tienen TODOS los atributos seleccionados", - "create.gui.attribute_filter.deny_list": "Lista de denegados", - "create.gui.attribute_filter.deny_list.description": "Los objetos pasan si NO tienen ninguno de los atributos seleccionados", - "create.gui.attribute_filter.add_reference_item": "Añadir elemento de referencia", - - "create.tooltip.holdForDescription": "Mantén [%1$s] para mas información", - "create.tooltip.holdForControls": "Mantén [%1$s] para ver los controles", - "create.tooltip.keyShift": "Mayús izdo.", - "create.tooltip.keyCtrl": "Ctrl", - "create.tooltip.speedRequirement": "Requisitos de velocidad: %1$s", - "create.tooltip.speedRequirement.none": "Ninguno", - "create.tooltip.speedRequirement.medium": "Moderado", - "create.tooltip.speedRequirement.high": "Rápido", - "create.tooltip.stressImpact": "Impacto de estrés: %1$s", - "create.tooltip.stressImpact.low": "Bajo", - "create.tooltip.stressImpact.medium": "Moderado", - "create.tooltip.stressImpact.high": "Alto", - "create.tooltip.stressImpact.overstressed": "Sobrecargado", - "create.tooltip.capacityProvided": "Capacidad de estrés: %1$s", - "create.tooltip.capacityProvided.low": "Pequeña", - "create.tooltip.capacityProvided.medium": "Media", - "create.tooltip.capacityProvided.high": "Grande", - "create.tooltip.generationSpeed": "Generada en %1$s %2$s", - "create.tooltip.analogStrength": "Fuerza analógica: %1$s/15", - - "create.mechanical_arm.extract_from": "Extraer objetos de %1$s", - "create.mechanical_arm.deposit_to": "Depositar objetos en %1$s", - "create.mechanical_arm.summary": "El brazo mecánico tiene %1$s entrada(s) y %2$s salida(s)", - "create.mechanical_arm.points_outside_range": "%1$s punto(s) de interacción seleccionado(s) eliminado(s) debido a las limitaciones de rango", - - "create.weighted_ejector.target_set": "Objetivo seleccionado", - "create.weighted_ejector.target_not_valid": "Expulsión al bloque adyacente (el objetivo no era válido)", - "create.weighted_ejector.no_target": "Expulsión al bloque adyacente (no se ha seleccionado ningún objetivo)", - "create.weighted_ejector.targeting": "Expulsión a [%1$s,%2$s,%3$s]", - "create.weighted_ejector.stack_size": "Tamaño de la pila expulsada", - - "create.logistics.when_multiple_outputs_available": "Cuando hay múltiples salidas disponibles", - - "create.mechanical_arm.selection_mode.round_robin": "Round Robin", - "create.mechanical_arm.selection_mode.forced_round_robin": "Round Robin forzado", - "create.mechanical_arm.selection_mode.prefer_first": "Preferir el primero", - - "create.tunnel.selection_mode.split": "División", - "create.tunnel.selection_mode.forced_split": "División forzada", - "create.tunnel.selection_mode.round_robin": "Round Robin", - "create.tunnel.selection_mode.forced_round_robin": "Round Robin forzado", - "create.tunnel.selection_mode.prefer_nearest": "Preferir el más cercano", - "create.tunnel.selection_mode.randomize": "Aleatorizar", - "create.tunnel.selection_mode.synchronize": "Sincronizar entradas", - - "create.tooltip.chute.header": "Información del ducto", - "create.tooltip.chute.items_move_down": "Los objetos se mueven hacia abajo", - "create.tooltip.chute.items_move_up": "Los objetos se mueven hacia arriba", - "create.tooltip.chute.no_fans_attached": "No hay ventiladores adjuntos", - "create.tooltip.chute.fans_push_up": "Los ventiladores empujan desde abajo", - "create.tooltip.chute.fans_push_down": "Los ventiladores empujan desde arriba", - "create.tooltip.chute.fans_pull_up": "Los ventiladores tiran desde arriba", - "create.tooltip.chute.fans_pull_down": "Los ventiladores tiran desde abajo", - "create.tooltip.chute.contains": "Contiene: %1$s x%2$s", - "create.tooltip.brass_tunnel.contains": "Actualmente distribuye:", - "create.tooltip.brass_tunnel.contains_entry": "> %1$s x%2$s", - "create.tooltip.brass_tunnel.retrieve": "Haga clic derecho para recuperar", - - "create.linked_controller.bind_mode": "Modo de enlace activo", - "create.linked_controller.press_keybind": "Presiona %1$s, %2$s, %3$s, %4$s, %5$s o %6$s, para vincular esta frecuencia a la tecla correspondiente", - "create.linked_controller.key_bound": "Frecuencia ligada a %1$s", - "create.linked_controller.frequency_slot_1": "Enlace de teclas: %1$s, Freq. #1", - "create.linked_controller.frequency_slot_2": "Enlace de teclas: %1$s, Freq. #2", - - "create.crafting_blueprint.crafting_slot": "Ranura para ingredientes", - "create.crafting_blueprint.filter_items_viable": "Los objetos del filtro avanzado son viables", - "create.crafting_blueprint.display_slot": "Ranura de pantalla", - "create.crafting_blueprint.inferred": "A partir de la receta", - "create.crafting_blueprint.manually_assigned": "Asignado manualmente", - "create.crafting_blueprint.secondary_display_slot": "Ranura de pantalla secundaria", - "create.crafting_blueprint.optional": "Opcional", - - "create.potato_cannon.ammo.attack_damage": "%1$s Daño de ataque", - "create.potato_cannon.ammo.reload_ticks": "%1$s Recarga por Ticks", - "create.potato_cannon.ammo.knockback": "%1$s Golpe de efecto", - - "create.hint.hose_pulley.title": "Suministro ilimitado", - "create.hint.hose_pulley": "La masa de fluido objetivo se considera infinita.", - "create.hint.mechanical_arm_no_targets.title": "Sin objetivos", - "create.hint.mechanical_arm_no_targets": "Parece que a este _brazo mecánico_ no se le ha asignado ningún objetivo. Selecciona _correas_, _depósitos_, _embudos_ y otros bloques haciendo clic derecho sobre ellos mientras _sostienes_ el _brazo mecánico_ en tu mano..", - "create.hint.empty_bearing.title": "Actualización del rodamiento", - "create.hint.empty_bearing": "Haz clic derecho sobre el rodamiento con la _mano vacía_ para _adjuntar_ la estructura que acabas de construir delante de él.", - "create.hint.full_deployer.title": "Exceso de objetos en el desplegador", - "create.hint.full_deployer": "Parece que este _desplegador_ contiene _exceso_ de objetos que necesitan ser _extraídos._ Usa una _tolva_, _embudo_ u otro medio para liberarlo de su excedente.", - - "create.gui.config.overlay1": "Hola :)", - "create.gui.config.overlay2": "Esta es una muestra de la superposición", - "create.gui.config.overlay3": "Haga clic o arrastre con el ratón", - "create.gui.config.overlay4": "para mover esta vista previa", - "create.gui.config.overlay5": "Pulsar ESC para salir de esta pantalla", - "create.gui.config.overlay6": "y guardar la nueva posición", - "create.gui.config.overlay7": "Ejecute /create overlay reset", - "create.gui.config.overlay8": "para restablecer la posición por defecto", - - "create.command.killTPSCommand": "killtps", - "create.command.killTPSCommand.status.slowed_by.0": "[Crear]: El tick del servidor está actualmente ralentizado en %s ms :o", - "create.command.killTPSCommand.status.slowed_by.1": "[Crear]: El tick del servidor está ralentizado en %s ms ahora >:)", - "create.command.killTPSCommand.status.slowed_by.2": "[Create]: El tick del servidor ha vuelto a su velocidad normal :D", - "create.command.killTPSCommand.status.usage.0": "[Create]: usa /killtps stop para que el servidor vuelva a la velocidad normal", - "create.command.killTPSCommand.status.usage.1": "[Create]: usa /killtps start para ralentizar artificialmente el tick del servidor", - "create.command.killTPSCommand.argument.tickTime": "tickTime", - - "create.contraption.minecart_contraption_too_big": "Este artilugio de vagoneta parece demasiado grande para recogerlo", - "create.contraption.minecart_contraption_illegal_pickup": "Una fuerza mística está atando este artilugio de vagoneta al mundo", - - - "_": "->------------------------] Subtitles [------------------------<-", - - "create.subtitle.contraption_disassemble": "", - "create.subtitle.peculiar_bell_use": "", - "create.subtitle.mixing": "", - "create.subtitle.mechanical_press_activation_belt": "", - "create.subtitle.fwoomp": "", - "create.subtitle.worldshaper_place": "", - "create.subtitle.crushing_1": "", - "create.subtitle.depot_slide": "", - "create.subtitle.saw_activate_stone": "", - "create.subtitle.blaze_munch": "", - "create.subtitle.funnel_flap": "", - "create.subtitle.schematicannon_finish": "", - "create.subtitle.haunted_bell_use": "", - "create.subtitle.scroll_value": "", - "create.subtitle.crafter_craft": "", - "create.subtitle.controller_put": "", - "create.subtitle.cranking": "", - "create.subtitle.wrench_remove": "", - "create.subtitle.cogs": "", - "create.subtitle.slime_added": "", - "create.subtitle.wrench_rotate": "", - "create.subtitle.potato_hit": "", - "create.subtitle.saw_activate_wood": "", - "create.subtitle.haunted_bell_convert": "", - "create.subtitle.deployer_polish": "", - "create.subtitle.deny": "", - "create.subtitle.controller_click": "", - "create.subtitle.schematicannon_launch_block": "", - "create.subtitle.copper_armor_equip": "", - "create.subtitle.controller_take": "Lectern empties", - "create.subtitle.mechanical_press_activation": "", - "create.subtitle.contraption_assemble": "", - "create.subtitle.crafter_click": "", - "create.subtitle.depot_plop": "", - "create.subtitle.confirm": "", - - - "_": "->------------------------] Item Descriptions [------------------------<-", - - "item.create.example_item.tooltip": "EJEMPLO DE ITEM (sólo un marcador de que este tooltip existe)", - "item.create.example_item.tooltip.summary": "Una breve descripción del elemento. Los puntajes bajos resaltan un término", - "item.create.example_item.tooltip.condition1": "Cuando este", - "item.create.example_item.tooltip.behaviour1": "Entonces este elemento hace esto. (los comportamientos se muestran en el turno)", - "item.create.example_item.tooltip.condition2": "Y cuando esto", - "item.create.example_item.tooltip.behaviour2": "Puedes añadir tantos comportamientos como quieras", - "item.create.example_item.tooltip.control1": "Cuando se pulsa [Ctrl]", - "item.create.example_item.tooltip.action1": "Se muestran estos controles", - - "block.create.wooden_bracket.tooltip": "SOPORTE DE MADERA PARA EJES", - "block.create.wooden_bracket.tooltip.summary": "Decora tus _ejes_, _engranajes_ y _ductos_ con un acogedor refuerzo de madera.", - - "block.create.metal_bracket.tooltip": "SOPORTE DE METAL PARA EJES", - "block.create.metal_bracket.tooltip.summary": "Decora tus _ejes_, _engranajes_ y _ductos_ con un poco de robusto refuerzo industrial.", - - "block.create.seat.tooltip": "ASIENTO", - "block.create.seat.tooltip.summary": "¡Siéntate y disfruta del viaje! Anclará a un jugador en un artilugio en movimiento. También es ideal para muebles estáticos. Viene en una variedad de colores.", - "block.create.seat.tooltip.condition1": "Cuando se hace clic derecho en el asiento", - "block.create.seat.tooltip.behaviour1": "Sienta al jugador en el _asiento_. Pulsa Mayús izdo para dejar el asiento.", - - "item.create.blaze_cake.tooltip": "PASTEL DE BLAZE", - "item.create.blaze_cake.tooltip.summary": "Un delicioso regalo para sus esforzados _quemadores de blaze_. ¡Los pone en marcha!.", - - "item.create.wand_of_symmetry.tooltip": "VARITA DE SIMETRÍA", - "item.create.wand_of_symmetry.tooltip.summary": "Refleja perfectamente la colocación de bloques en los planos configurados.", - "item.create.wand_of_symmetry.tooltip.condition1": "Mientras está en el inventario rápido", - "item.create.wand_of_symmetry.tooltip.behaviour1": "Permanece activo.", - "item.create.wand_of_symmetry.tooltip.control1": "Cuando se hace clic derecho en el suelo", - "item.create.wand_of_symmetry.tooltip.action1": "_Crea_ o _mueve_ el espejo.", - "item.create.wand_of_symmetry.tooltip.control2": "Cuando se hace clic derecho en el aire", - "item.create.wand_of_symmetry.tooltip.action2": "_Quita_ el espejo activo.", - "item.create.wand_of_symmetry.tooltip.control3": "Mayús izdo + clic derecho", - "item.create.wand_of_symmetry.tooltip.action3": "Abre la interfaz de configuración.", - - "item.create.handheld_worldshaper.tooltip": "WORLDSHAPER", - "item.create.handheld_worldshaper.tooltip.summary": "Práctica herramienta para crear _paisajes_ y _características del terreno_.", - "item.create.handheld_worldshaper.tooltip.control1": "Cuando se hace clic izquierdo en un bloque", - "item.create.handheld_worldshaper.tooltip.action1": "Establece los bloques colocados por la herramienta en el bloque objetivo.", - "item.create.handheld_worldshaper.tooltip.control2": "Cuando se hace clic derecho en un bloque", - "item.create.handheld_worldshaper.tooltip.action2": "Aplica el _pincel_ y la _herramienta_ actualmente seleccionadas en el lugar deseado.", - "item.create.handheld_worldshaper.tooltip.control3": "Mayús izdo + clic derecho", - "item.create.handheld_worldshaper.tooltip.action3": "Abre la interfaz de configuración.", - - "item.create.tree_fertilizer.tooltip": "FERTILIZANTE PARA ÁRBOLES", - "item.create.tree_fertilizer.tooltip.summary": "Una potente combinación de minerales adecuada para acelerar el crecimiento de los tipos de árboles más comunes.", - "item.create.tree_fertilizer.tooltip.condition1": "Cuando se utiliza en un árbol joven", - "item.create.tree_fertilizer.tooltip.behaviour1": "Hace crecer los árboles _independientemente_ de sus condiciones de _espacio_.", - - "item.create.extendo_grip.tooltip": "AGARRE EXTENDIDO", - "item.create.extendo_grip.tooltip.summary": "¡Boioioing! Aumenta enormemente la _distancia de alcance_ del portador. Se puede alimentar con la presión de aire de un _depósito trasero de cobre_", - "item.create.extendo_grip.tooltip.condition1": "Cuando está fuera de la mano", - "item.create.extendo_grip.tooltip.behaviour1": "Aumenta la _distancia de alcance_ de los objetos usados en la _mano principal_.", - "item.create.extendo_grip.tooltip.condition2": "Mientras se usa un depósito trasero de cobre", - "item.create.extendo_grip.tooltip.behaviour2": "No se utilizará _durabilidad_. En su lugar, la _presión del aire_ se drena desde el tanque", - - "item.create.potato_cannon.tooltip": "CANÓN DE PATATAS", - "item.create.potato_cannon.tooltip.summary": "Fwoomp! Lanza tus verduras caseras a tus enemigos. Se puede alimentar con la presión de aire de un _depósito trasero de cobre_", - "item.create.potato_cannon.tooltip.condition1": "Cuando se usa clic derecho", - "item.create.potato_cannon.tooltip.behaviour1": "_Dispara_ un objeto adecuado desde tu inventario_.", - "item.create.potato_cannon.tooltip.condition2": "Mientras se usa un depósito trasero de cobre", - "item.create.potato_cannon.tooltip.behaviour2": "No se utilizará _durabilidad_. En su lugar, la _presión del aire_ se drena desde el tanque", - - "item.create.filter.tooltip": "FILTRO", - "item.create.filter.tooltip.summary": "Controla las _salidas_ y _entradas_ de los _dispositivos logísticos_ con más precisión, comparándolas con un _conjunto de objetos_ o varios _filtros anidados_.", - "item.create.filter.tooltip.condition1": "Cuando está en la ranura de filtros", - "item.create.filter.tooltip.behaviour1": "Controla el flujo de objetos según su _configuración_.", - "item.create.filter.tooltip.condition2": "Cuando se hace clic derecho", - "item.create.filter.tooltip.behaviour2": "Abre la interfaz de configuración.", - - "item.create.attribute_filter.tooltip": "FILTRO DE ATRIBUTOS", - "item.create.attribute_filter.tooltip.summary": "Controla las _salidas_ y las _entradas_ de los _dispositivos logísticos_ con más precisión, comparándolas con un _conjunto de atributos_ y _categorías_ de objetos.", - "item.create.attribute_filter.tooltip.condition1": "Cuando está en la ranura de filtros", - "item.create.attribute_filter.tooltip.behaviour1": "Controla el flujo de objetos según su _configuración_.", - "item.create.attribute_filter.tooltip.condition2": "Cuando se hace clic derecho", - "item.create.attribute_filter.tooltip.behaviour2": "Abre la interfaz de configuración.", - - "item.create.empty_schematic.tooltip": "ESQUEMA VACÍO", - "item.create.empty_schematic.tooltip.summary": "Se utiliza como 'ingrediente' de las recetas y para escribir en la _tabla de esquemas_.", - - "item.create.schematic.tooltip": "ESQUEMA", - "item.create.schematic.tooltip.summary": "Contiene una estructura para ser posicionada y colocada en el mundo. Posiciona el holograma como desees y utiliza un _cañón de esquemas_ para construirla.", - "item.create.schematic.tooltip.condition1": "Cuando se sostiene en la mano", - "item.create.schematic.tooltip.behaviour1": "Se puede posicionar utilizando las herramientas en pantalla.", - "item.create.schematic.tooltip.control1": "Mayús izdo + clic derecho", - "item.create.schematic.tooltip.action1": "Abre una _interfaz_ para introducir las _coordenadas_ exactas.", - - "item.create.schematic_and_quill.tooltip": "ESQUEMA Y PLUMA", - "item.create.schematic_and_quill.tooltip.summary": "Se utiliza para guardar una estructura de tu mundo en un archivo .nbt.", - "item.create.schematic_and_quill.tooltip.condition1": "Paso 1", - "item.create.schematic_and_quill.tooltip.behaviour1": "Selecciona dos puntos de esquina usando clic derecho.", - "item.create.schematic_and_quill.tooltip.condition2": "Paso 2", - "item.create.schematic_and_quill.tooltip.behaviour2": "[Ctrl] + [RUEDA DEL RATÓN] en las caras para ajustar el tamaño. Clic derecho de nuevo para guardar.", - "item.create.schematic_and_quill.tooltip.control1": "Cuando se hace clic derecho", - "item.create.schematic_and_quill.tooltip.action1": "Selecciona un punto de esquina / confirmar guardar.", - "item.create.schematic_and_quill.tooltip.control2": "Cuando mantiene [Ctrl]", - "item.create.schematic_and_quill.tooltip.action2": "Selecciona puntos en _medio del aire_. Rueda del ratón para ajustar la distancia.", - "item.create.schematic_and_quill.tooltip.control3": "Mayús izdo + clic derecho", - "item.create.schematic_and_quill.tooltip.action3": "_Reinicia_ y elimina la selección.", - - "block.create.schematicannon.tooltip": "CAÑÓN DE ESQUEMAS", - "block.create.schematicannon.tooltip.summary": "Dispara bloques para recrear un _esquema_ desplegado en el mundo. Utiliza objetos de los inventarios adyacentes y _pólvora_ como combustible.", - "block.create.schematicannon.tooltip.condition1": "Cuando se hace clic derecho", - "block.create.schematicannon.tooltip.behaviour1": "Abre la interfaz.", - - "block.create.schematic_table.tooltip": "TABLA DE ESQUEMAS", - "block.create.schematic_table.tooltip.summary": "Escribe los esquemas guardados en un _esquema vacío_.", - "block.create.schematic_table.tooltip.condition1": "Cuando se da un esquema vacío", - "block.create.schematic_table.tooltip.behaviour1": "Carga un archivo elegido de la carpeta de esquemas.", - - "item.create.goggles.tooltip": "GAFAS DEL CONSTRUCTOR", - "item.create.goggles.tooltip.summary": "Un par de gafas para aumentar tu visión con útil información _cinética_.", - "item.create.goggles.tooltip.condition1": "Cuando se llevan puestas", - "item.create.goggles.tooltip.behaviour1": "Muestra _indicadores de color_ correspondientes al _nivel de velocidad_ de un componente cinético colocado, así como el _impacto de estrés_ y la _carga_ de los componentes individuales.", - "item.create.goggles.tooltip.condition2": "Al mirar un medidor", - "item.create.goggles.tooltip.behaviour2": "Muestra información detallada sobre _velocidad_ o _estrés_ de la red a la que está conectado el medidor.", - "item.create.goggles.tooltip.condition3": "Al mirar un contenedor de fluidos", - "item.create.goggles.tooltip.behaviour3": "Muestra información detallada sobre la _carga_ del bloque y los _líquidos_ almacenados en su interior.", - - "item.create.wrench.tooltip": "LLAVE INGLESA", - "item.create.wrench.tooltip.summary": "Una herramienta útil para trabajar en artilugios cinéticos. Se puede utilizar para _rotar_, _desmantelar_ y para _configurar_ componentes.", - "item.create.wrench.tooltip.control1": "Cuando se hace clic derecho en un bloque cinético", - "item.create.wrench.tooltip.action1": "Rota los componentes hacia o desde la cara con la que ha interactuado.", - "item.create.wrench.tooltip.control2": "Mayús izdo + clic derecho", - "item.create.wrench.tooltip.action2": "Desmonta los _componentes cinéticos_ y los devuelve a tu inventario_.", - - "block.create.nozzle.tooltip": "BOQUILLA", - "block.create.nozzle.tooltip.summary": "Se acopla a la parte delantera de un _ventilador revestido_ para distribuir su efecto sobre las entidades en _todas las direcciones_.", - - "block.create.cuckoo_clock.tooltip": "RELOJ DE CUCO", - "block.create.cuckoo_clock.tooltip.summary": "Fina artesanía para decorar un espacio y contar el tiempo.", - "block.create.cuckoo_clock.tooltip.condition1": "Cuando es alimentado por cinética", - "block.create.cuckoo_clock.tooltip.behaviour1": "Muestra la _hora actual_ y toca una melodía dos veces al día. Se activa una vez al mediodía y al anochecer, _en cuanto los jugadores pueden dormir_.", - - "block.create.turntable.tooltip": "PLATAFORMA GIRATORIA", - "block.create.turntable.tooltip.summary": "Convierte la _fuerza rotacional_ en un refinado mareo.", - - "block.create.stockpile_switch.tooltip": "INTERRUPTOR DE ACOPIO", - "block.create.stockpile_switch.tooltip.summary": "Activa una señal de redstone en función de la cantidad de _objetos almacenados_ en el _contenedor_ adjunto. Viene con un práctico filtro. A diferencia de un _comparador, el _interruptor de acopio_ permite la configuración de _umbrales_, a partir de los cuales se invierten las señales.", - "block.create.stockpile_switch.tooltip.condition1": "Cuando se hace clic derecho", - "block.create.stockpile_switch.tooltip.behaviour1": "Abre la interfaz de configuración.", - - "block.create.content_observer.tooltip": "OBSERVADOR DE CONTENIDO", - "block.create.content_observer.tooltip.summary": "_Detecta objetos_ dentro de _contenedores_ y _transportadores_ que coincidan con un _filtro_ configurado. Mientras el _inventario_, la _cinta_ o la _canaleta_ observados _contengan_ un objeto que coincida, este componente emitirá una _señal de redstone_. Cuando un embudo observado _transfiere_ un objeto coincidente, este componente emitirá un _pulso de redstone_.", - - "block.create.adjustable_crate.tooltip": "CAJA AJUSTABLE", - "block.create.adjustable_crate.tooltip.summary": "Este _contenedor de objetos_ permite el control manual de su capacidad. Puede contener hasta _16 pilas_ de cualquier objeto. Soporta _comparadores de redstone_.", - "block.create.adjustable_crate.tooltip.condition1": "Cuando se hace clic derecho", - "block.create.adjustable_crate.tooltip.behaviour1": "Abre la interfaz.", - - "block.create.creative_crate.tooltip": "CAJA CREATIVA", - "block.create.creative_crate.tooltip.summary": "Este _contenedor de objetos_ permite la replicación infinita de cualquier elemento. Colócalo junto a un _cañón de esquemas_ para eliminar cualquier requisito de material.", - "block.create.creative_crate.tooltip.condition1": "Cuando el elemento está en la ranura para filtros", - "block.create.creative_crate.tooltip.behaviour1": "Todo lo que se _extraiga_ de este contenedor proporcionará un suministro _ilimitado_ del elemento especificado. Los objetos _insertados_ en esta caja serán _evitados_.", - - "item.create.creative_blaze_cake.tooltip": "PASTEL CREATIVO", - "item.create.creative_blaze_cake.tooltip.summary": "Un regalo muy especial para los _Quemadores de Blaze_ que permite _controlar su nivel de calor_. Después de comer este pastel, los Quemadores de blaze _nunca se quedarán sin combustible_.", - "item.create.creative_blaze_cake.tooltip.condition1": "Click derecho en un Quemador de blaze", - "item.create.creative_blaze_cake.tooltip.behaviour1": "Bloquea el nivel de calor del Quemador de blaze. Si se utiliza de nuevo, _cicla_ el nivel de calor del Quemador de blaze.", - - "block.create.controller_rail.tooltip": "RAÍL DE CONTROL", - "block.create.controller_rail.tooltip.summary": "Un raíl energizado _unidireccional_ capaz de _controlar con precisión_ la _velocidad de movimiento_ de una vagoneta.", - "block.create.controller_rail.tooltip.condition1": "Cuando es alimentado con redstone", - "block.create.controller_rail.tooltip.behaviour1": "_Acelera_ o _desacelera_ pasando _vagonetas_ correspondientes a la _fuerza de la señal_. Propaga la energía de redstone a los raíles de control adyacentes. Al alimentar dos raíles de control con diferentes intensidades, los carriles entre ellos interpolarán su señal.", - - "item.create.sand_paper.tooltip": "PAPEL DE LIJA", - "item.create.sand_paper.tooltip.summary": "Un papel rugoso que se puede utilizar para _pulir materiales_. Se puede aplicar automáticamente con el _desplegador_.", - "item.create.sand_paper.tooltip.condition1": "Cuando se usa", - "item.create.sand_paper.tooltip.behaviour1": "Aplica un pulido a los objetos sostenidos en la _mano libre_ o tirados en el _suelo_ cuando se _miran_.", - - "item.create.builders_tea.tooltip": "TÉ DEL CONSTRUCTOR", - "item.create.builders_tea.tooltip.summary": "La bebida perfecta para empezar el día. Motivante y saturante.", - - "item.create.refined_radiance.tooltip": "RESPLANDOR REFINADO", - "item.create.refined_radiance.tooltip.summary": "Un material cromático forjado a partir de la _luz absorbida_.", - "item.create.refined_radiance.tooltip.condition1": "Trabajo en progreso", - "item.create.refined_radiance.tooltip.behaviour1": "Los usos para este material estarán disponibles en un próximo lanzamiento.", - - "item.create.shadow_steel.tooltip": "ACERO SOMBRÍO", - "item.create.shadow_steel.tooltip.summary": "Un material cromático forjado en el _vacío_.", - "item.create.shadow_steel.tooltip.condition1": "Trabajo en curso", - "item.create.shadow_steel.tooltip.behaviour1": "Los usos de este material estarán disponibles en una futura versión.", - - "item.create.linked_controller.tooltip": "CONTROLADOR ENLAZADO", - "item.create.linked_controller.tooltip.summary": "Permite el control manual de las frecuencias de _enlaces de redstone_ asignadas a sus seis botones.", - "item.create.linked_controller.tooltip.condition1": "Al hacer clic derecho", - "item.create.linked_controller.tooltip.behaviour1": "Activa el _controlador_. Los _controles de movimiento_ se adquieren mientras está activo.", - "item.create.linked_controller.tooltip.condition2": "Al usar Mayús izdo + clic derecho", - "item.create.linked_controller.tooltip.behaviour2": "Abre la interfaz de configuración manual.", - "item.create.linked_controller.tooltip.condition3": "Al usar clic derecho en un receptor de enlaces de redstone", - "item.create.linked_controller.tooltip.behaviour3": "Activa el _modo de vinculación_, pulsa uno de los _seis controles_ para vincularlo a la _frecuencia de los enlaces_.", - "item.create.linked_controller.tooltip.condition4": "Clic derecho en un atril", - "item.create.linked_controller.tooltip.behaviour4": "Coloca el controlador en el atril para facilitar su activación. (Clic derecho + mayús izq. para recuperarlo)", - - "item.create.diving_helmet.tooltip": "CASCO DE BUCEO", - "item.create.diving_helmet.tooltip.summary": "Junto con un _depósito trasero de cobre_, permite que el usuario pueda respirar bajo el agua durante un tiempo prolongado.", - "item.create.diving_helmet.tooltip.condition1": "Cuando se lleva puesto", - "item.create.diving_helmet.tooltip.behaviour1": "Proporciona el efecto de _respiración acuática_, drenando lentamente la presión de aire del _depósito trasero_.", - - "item.create.copper_backtank.tooltip": "DEPÓSITO TRASERO DE COBRE", - "item.create.copper_backtank.tooltip.summary": "Un tanque portátil para transportar _aire presurizado_.", - "item.create.copper_backtank.tooltip.condition1": "Cuando se lleva puesto", - "item.create.copper_backtank.tooltip.behaviour1": "Proporciona _aire presurizado_ a los equipos que lo requieran.", - "item.create.copper_backtank.tooltip.condition2": "Cuando se coloca y es alimentado por cinética", - "item.create.copper_backtank.tooltip.behaviour2": "Recoge _aire presurizado_ a un ritmo que depende de la velocidad rotacional.", - - "item.create.diving_boots.tooltip": "BOTAS DE BUCEO", - "item.create.diving_boots.tooltip.summary": "Un par de _botas_ pesadas, que permiten atravesar mejor el suelo del océano.", - "item.create.diving_boots.tooltip.condition1": "Cuando se llevan puestas", - "item.create.diving_boots.tooltip.behaviour1": "El portador se hunde rápido y no puede nadar. Concede la capacidad de caminar y saltar bajo el agua. Al portador no le afectarán las _correas mecánicas.", - - "item.create.crafting_blueprint.tooltip": "PLANO DE ELABORACIÓN", - "item.create.crafting_blueprint.tooltip.summary": "Colocado en una pared, puede utilizarse para especificar la disposición de los ingredientes para facilitar la elaboración manual. Cada ranura representa una receta", - "item.create.crafting_blueprint.condition1": "Al hacer clic derecho en una ranura vacía", - "item.create.crafting_blueprint.behaviour1": "Abre un menú que permite configurar una receta y los objetos a mostrar.", - "item.create.crafting_blueprint.condition2": "Al hacer clic derecho en una ranura configurada", - "item.create.crafting_blueprint.behaviour2": "Aplica la receta configurada con los ingredientes que se encuentran en tu inventario. Se puede utilizar para fabricar hasta una pila de objetos.", - - "item.create.minecart_coupling.tooltip": "ENSAMBLADOR DE VAGONETAS", - "item.create.minecart_coupling.tooltip.summary": "_Encadena_ todas tus _vagonetas_ o _artilugios de vagoneta_ para formar un majestuoso _tren_.", - "item.create.minecart_coupling.tooltip.condition1": "Cuando se utiliza en vagonetas", - "item.create.minecart_coupling.tooltip.behaviour1": "_Acopla_ dos vagonetas, intentando mantenerlas a una _distancia constante_ mientras se mueven.", - - "block.create.peculiar_bell.tooltip": "CAMPANA PECULIAR", - "block.create.peculiar_bell.tooltip.summary": "Una campana decorativa de latón. Al colocarla sobre un _Fuego del alma_ o una _Fogata del alma_ puede producirse una transformación espeluznante...", - - "block.create.haunted_bell.tooltip": "CAMPANA ENCANTADA", - "block.create.haunted_bell.tooltip.summary": "Una _campana maldita_ perseguida por las almas perdidas del Nether", - "block.create.haunted_bell.tooltip.condition1": "Cuando se sostiene o suena", - "block.create.haunted_bell.tooltip.behaviour1": "Resalta los _puntos sin luz_ cercanos en los que pueden aparecer las _criaturas hostiles_.", - - - "_": "->------------------------] Ponder Content [------------------------<-", - - "create.ponder.hold_to_ponder": "Mantén [%1$s] para considerar", - "create.ponder.subject": "Tema de esta escena", - "create.ponder.pondering": "Considerando sobre...", - "create.ponder.identify_mode": "Identificando modo activo.\nDespausea con [%1$s]", - "create.ponder.associated": "Entradas asociadas", - "create.ponder.close": "Cerrar", - "create.ponder.identify": "Identificar", - "create.ponder.next": "Escena siguiente", - "create.ponder.previous": "Escena previa", - "create.ponder.replay": "Repetición", - "create.ponder.think_back": "Volver atrás", - "create.ponder.slow_text": "Lectura cómoda", - "create.ponder.exit": "Salir", - "create.ponder.welcome": "Bienvenido al instructivo de Create", - "create.ponder.categories": "Categorías disponibles", - "create.ponder.index_description": "Haga clic en uno de los iconos para conocer sus objetos y bloques asociados", - "create.ponder.index_title": "Índice", - "create.ponder.shared.rpm16": "16 RPM", - "create.ponder.shared.behaviour_modify_wrench": "Este comportamiento puede modificarse mediante una llave inglesa", - "create.ponder.shared.storage_on_contraption": "Los inventarios unidos al artilugio recogerán sus producciones automáticamente", - "create.ponder.shared.sneak_and": "Mayús izdo. +", - "create.ponder.shared.rpm8": "8 RPM", - "create.ponder.shared.ctrl_and": "Ctrl +", - "create.ponder.shared.rpm32": "32 RPM", - "create.ponder.shared.rpm16_source": "Fuente: 16 RPM", - "create.ponder.shared.movement_anchors": "Con la ayuda de un chasis o pegamento, se pueden mover estructuras más grandes.", - "create.ponder.tag.redstone": "Componentes lógicos", - "create.ponder.tag.redstone.description": "Componentes que ayudan a la ingeniería de redstone", - "create.ponder.tag.contraption_assembly": "Utilidades para adjuntar bloques", - "create.ponder.tag.contraption_assembly.description": "Herramientas y componentes utilizados para montar estructuras con movimiento, como un artilugio animado", - "create.ponder.tag.fluids": "Manipuladores de fluidos", - "create.ponder.tag.fluids.description": "Componentes que ayudan a transportar y utilizar fluidos", - "create.ponder.tag.decoration": "Estética", - "create.ponder.tag.decoration.description": "Componentes utilizados principalmente con fines decorativos", - "create.ponder.tag.windmill_sails": "Velas para los rodamientos de los molinos de viento", - "create.ponder.tag.windmill_sails.description": "Bloques que cuentan para la fuerza de un artefacto de molino de viento cuando se ensamblan. Cada uno de ellos tiene la misma eficacia al hacerlo.", - "create.ponder.tag.arm_targets": "Objetivos para los brazos mecánicos", - "create.ponder.tag.arm_targets.description": "Componentes que pueden seleccionarse como entradas o salidas del brazo mecánico", - "create.ponder.tag.kinetic_appliances": "Dispositivos cinéticos", - "create.ponder.tag.kinetic_appliances.description": "Componentes que utilizan la fuerza rotacional", - "create.ponder.tag.kinetic_sources": "Fuentes cinéticas", - "create.ponder.tag.kinetic_sources.description": "Componentes que generan fuerza rotacional", - "create.ponder.tag.movement_anchor": "Anclas de movimiento", - "create.ponder.tag.movement_anchor.description": "Componentes que permiten crear artilugios en movimiento, animando una estructura anexa de diversas maneras", - "create.ponder.tag.kinetic_relays": "Transmisores cinéticos", - "create.ponder.tag.kinetic_relays.description": "Componentes que ayudan a transmitir la fuerza rotacional en otro lugar", - "create.ponder.tag.contraption_actor": "Actores del artilugio", - "create.ponder.tag.contraption_actor.description": "Componentes que exponen un comportamiento especial cuando están unidos a un artilugio en movimiento", - "create.ponder.tag.creative": "Modo creativo", - "create.ponder.tag.creative.description": "Componentes que no suelen estar disponibles para el Modo Supervivencia", - "create.ponder.tag.logistics": "Transporte de objetos", - "create.ponder.tag.logistics.description": "Componentes que ayudan a desplazar los objetos", - - "create.ponder.adjustable_pulse_repeater.header": "Controlar señales mediante repetidores de pulsos ajustables", - "create.ponder.adjustable_pulse_repeater.text_1": "Los repetidores de pulsos ajustables emiten un pulso corto con un retardo", - "create.ponder.adjustable_pulse_repeater.text_2": "Con la rueda del ratón se puede configurar el tiempo de carga", - "create.ponder.adjustable_pulse_repeater.text_3": "Los retrasos configurados pueden ser de hasta 30 minutos", - - "create.ponder.adjustable_repeater.header": "Controlar señales mediante repetidores ajustables", - "create.ponder.adjustable_repeater.text_1": "Los repetidores ajustables se comportan de forma similar a los repetidores normales", - "create.ponder.adjustable_repeater.text_2": "Se cargan durante un tiempo determinado...", - "create.ponder.adjustable_repeater.text_3": "...y se enfrían durante el mismo tiempo", - "create.ponder.adjustable_repeater.text_4": "Con la rueda del ratón se puede configurar el tiempo de carga", - "create.ponder.adjustable_repeater.text_5": "Los retrasos configurados pueden variar hasta 30 minutos", - - "create.ponder.analog_lever.header": "Controlar señales mediante la palanca analógica", - "create.ponder.analog_lever.text_1": "Las palancas analógicas son una fuente compacta y precisa de energía de redstone", - "create.ponder.analog_lever.text_2": "Haz clic derecho para aumentar su potencia analógica", - "create.ponder.analog_lever.text_3": "Usa Mayús izdo + clic derecho para volver a disminuir su potencia", - - "create.ponder.andesite_tunnel.header": "Usar túneles de andesita", - "create.ponder.andesite_tunnel.text_1": "Los túneles de andesita se pueden utilizar para tapar las correas", - "create.ponder.andesite_tunnel.text_2": "Siempre que un túnel de andesita tenga conexiones a los lados...", - "create.ponder.andesite_tunnel.text_3": "...dividirá exactamente un elemento de cualquier pila que pase", - "create.ponder.andesite_tunnel.text_4": "El resto continuará su camino", - - "create.ponder.basin.header": "Procesar objetos en la cuenca", - "create.ponder.basin.text_1": "Una cuenca puede contener objetos y fluidos para su procesamiento", - "create.ponder.basin.text_2": "Después de un paso de procesamamiento, las cuencas intentan descargar por debajo a un lado de ellas", - "create.ponder.basin.text_3": "Cuando un ingrediente válido está presente, la cuenca mostrará un conducto de salida", - "create.ponder.basin.text_4": "Aquí se pueden aplicar varias opciones", - "create.ponder.basin.text_5": "Las salidas serán capturadas por el inventario que está por debajo", - "create.ponder.basin.text_6": "Sin conducto de salida, la cuenca retendrá los objetos creados en su procesamiento", - "create.ponder.basin.text_7": "Esto puede ser útil si las salidas deben ser reutilizadas como ingredientes", - "create.ponder.basin.text_8": "Las salidas deseadas tendrán que ser extraídas de la cuenca", - "create.ponder.basin.text_9": "Podría ser necesario un filtro para evitar sacar los objetos no procesados", - - "create.ponder.bearing_modes.header": "Modos de movimiento del rodamiento mecánico", - "create.ponder.bearing_modes.text_1": "Cuando se detenga, el rodamiento mecánico colocará la estructura en el ángulo más cercano alineado con la cuadrícula", - "create.ponder.bearing_modes.text_2": "Se puede configurar para que nunca vuelva a los bloques sólidos, o sólo cerca del ángulo en el que comenzó", - - "create.ponder.belt_casing.header": "Correas revestidas", - "create.ponder.belt_casing.text_1": "Se puede utilizar revestidor de latón o andesita para decorar las correas", - "create.ponder.belt_casing.text_2": "Se puede utilizar una llave inglesa para quitar el revestimiento", - - "create.ponder.belt_connector.header": "El uso de las correas mecánicas", - "create.ponder.belt_connector.text_1": "Al hacer clic derecho en dos ejes con una correa mecánica se conectarán entre sí", - "create.ponder.belt_connector.text_2": "Las selecciones accidentales pueden ser canceladas con Mayús izdo + clic derecho", - "create.ponder.belt_connector.text_3": "Se pueden añadir ejes adicionales en toda la correa", - "create.ponder.belt_connector.text_4": "Los ejes conectados a través de correas girarán con velocidad y dirección idénticas", - "create.ponder.belt_connector.text_5": "Los ejes añadidos se pueden quitar con la llave inglesa", - "create.ponder.belt_connector.text_6": "Las correas mecánicas se pueden teñir con fines estéticos", - - "create.ponder.belt_directions.header": "Orientaciones válidas para las correas mecánicas", - "create.ponder.belt_directions.text_1": "Las correas mecánicas no pueden conectarse en direcciones arbitrarias", - "create.ponder.belt_directions.text_2": "1. Pueden conectarse horizontalmente", - "create.ponder.belt_directions.text_3": "2. Pueden conectarse en diagonal", - "create.ponder.belt_directions.text_4": "3. Pueden conectarse verticalmente", - "create.ponder.belt_directions.text_5": "4. Y pueden conectar ejes verticales horizontalmente", - "create.ponder.belt_directions.text_6": "Estas son todas las direcciones posibles. Pueden abarcar cualquier longitud entre 2 y 20 bloques", - - "create.ponder.belt_transport.header": "El uso de las correas mecánicas para la logística", - "create.ponder.belt_transport.text_1": "Las correas mecánicas transportan objetos y otras entidades", - "create.ponder.belt_transport.text_2": "Haz clic derecho con la mano vacía para sacar objetos de una 'cinta'", - - "create.ponder.blaze_burner.header": "Alimentar quemadores de blaze", - "create.ponder.blaze_burner.text_1": "Los quemadores de blaze pueden proporcionar calor a los objetos procesados en una cuenca", - "create.ponder.blaze_burner.text_2": "Para ello, el blaze tiene que ser alimentado con objetos inflamables", - "create.ponder.blaze_burner.text_3": "Con un pastel de blaze, el quemador puede alcanzar un mayor nivel de calor", - "create.ponder.blaze_burner.text_4": "El proceso de alimentación puede automatizarse utilizando desplegadores o brazos mecánicos", - - "create.ponder.brass_funnel.header": "El embudo de latón", - "create.ponder.brass_funnel.text_1": "Los embudos de andesita sólo pueden extraer objetos individuales", - "create.ponder.brass_funnel.text_2": "Los embudos de latón pueden extraer hasta una pila completa", - "create.ponder.brass_funnel.text_3": "Usar la rueda de desplazamiento del ratón en la ranura para filtros permite un control preciso del tamaño de la pila extraída.", - "create.ponder.brass_funnel.text_4": "El uso de objetos en la ranura de filtrado restringirá el embudo para transferir sólo las pilas que coincidan.", - - "create.ponder.brass_tunnel.header": "Usar túneles de latón", - "create.ponder.brass_tunnel.text_1": "Los túneles de latón pueden utilizarse para tapar las correas", - "create.ponder.brass_tunnel.text_2": "Tienen ranuras de filtro en cada lado abierto", - "create.ponder.brass_tunnel.text_3": "Los filtros en las conexiones de entrada simplemente bloquean los objetos que no coincidan", - "create.ponder.brass_tunnel.text_4": "Los filtros en las conexiones de salida pueden utilizarse para ordenar los objetos por tipo", - "create.ponder.brass_tunnel.text_5": "Siempre que un objeto de paso tenga múltiples salidas válidas, el modo de distribución decidirá cómo manejarlo", - "create.ponder.brass_tunnel.text_6": "Los túneles de latón en bandas paralelas formarán un grupo", - "create.ponder.brass_tunnel.text_7": "Los objetos entrantes se distribuirán ahora por todas las salidas conectadas", - "create.ponder.brass_tunnel.text_8": "Para ello, los objetos también pueden insertarse en el bloque del túnel directamente", - - "create.ponder.brass_tunnel_modes.header": "Modos de distribución del túnel de latón", - "create.ponder.brass_tunnel_modes.text_1": "Mediante una llave inglesa se puede configurar el comportamiento de distribución de los túneles de latón", - "create.ponder.brass_tunnel_modes.text_10": "'Sincronizar entradas' es una configuración única de los túneles de latón", - "create.ponder.brass_tunnel_modes.text_11": "Las entradas sólo pueden pasar si cada túnel del grupo tiene una en espera", - "create.ponder.brass_tunnel_modes.text_12": "Esto asegura que todas las correas afectadas suministren objetos al mismo tiempo", - "create.ponder.brass_tunnel_modes.text_2": "El modo División intentará distribuir la pila uniformemente entre las salidas disponibles", - "create.ponder.brass_tunnel_modes.text_3": "Si una salida no puede tomar más objetos, se saltará", - "create.ponder.brass_tunnel_modes.text_4": "El modo División forzada nunca saltará las salidas, y en su lugar esperará hasta que estén libres", - "create.ponder.brass_tunnel_modes.text_5": "El modo Round Robin mantiene las pilas enteras, y recorre las salidas de forma iterativa", - "create.ponder.brass_tunnel_modes.text_6": "Una vez más, si una salida no puede aceptar más objetos, se saltará", - "create.ponder.brass_tunnel_modes.text_7": "El modo Round Robin forzado nunca omite salidas", - "create.ponder.brass_tunnel_modes.text_8": "El modo Preferir el más cercano prioriza las salidas más cercanas a la ubicación de entrada de los objetos", - "create.ponder.brass_tunnel_modes.text_9": "El modo Aleatorizar distribuirá pilas enteras a salidas elegidas al azar", - - "create.ponder.cart_assembler.header": "Mover estructuras usando ensambladores de vagonetas", - "create.ponder.cart_assembler.text_1": "Los ensambladores de vagonetas montan estructuras adjuntas a las vagonetas que pasan", - "create.ponder.cart_assembler.text_2": "Sin una señal de redstone, desmonta los artilugios de vagoneta que pasan de nuevo en bloques", - "create.ponder.cart_assembler.text_3": "El uso de una llave inglesa en una vagoneta te permitirá llevar el artilugio a otro lugar", - - "create.ponder.cart_assembler_dual.header": "Ensamblajes de artilugios de vagoneta", - "create.ponder.cart_assembler_dual.text_1": "Siempre que dos ensambladores de vagoneta compartan una estructura adjunta...", - "create.ponder.cart_assembler_dual.text_2": "...al alimentar a cualquiera de ellos se creará un artilugio de vagoneta", - "create.ponder.cart_assembler_dual.text_3": "Las vagonetas se comportarán como las conectadas a través del acoplamiento de vagoneta", - - "create.ponder.cart_assembler_modes.header": "Configurar la orientación de los artilugios de vagonetas", - "create.ponder.cart_assembler_modes.text_1": "Los artilugios de vagonetas girarán para orientarse hacia el movimiento de sus vagonetas", - "create.ponder.cart_assembler_modes.text_2": "Esta flecha indica qué lado de la estructura se considerará la parte delantera", - "create.ponder.cart_assembler_modes.text_3": "Si el ensamblador está configurado para bloquear la rotación, la orientación de los artilugios nunca cambiará", - - "create.ponder.cart_assembler_rails.header": "Otros tipos de vagonetas y raíles", - "create.ponder.cart_assembler_rails.text_1": "Los ensambladores de vagonetas en raíles normales no afectarán el movimiento de las vagonetas que pasen", - "create.ponder.cart_assembler_rails.text_2": "Cuando se encuentre en un raíl motorizado o en un raíl de control, las vagonetas se mantendrán en su sitio hasta que sea motorizado", - "create.ponder.cart_assembler_rails.text_3": "Se pueden utilizar otros tipos de vagonetas como anclaje", - "create.ponder.cart_assembler_rails.text_4": "Los artilugios de vagonetas de horno se mantendrán alimentados a sí mismos, sacando combustible de cualquier inventario adjunto", - - "create.ponder.chain_drive.header": "Transmitir fuerza rotacional con las cadenas de transmisión", - "create.ponder.chain_drive.text_1": "Las cadenas de transmisión transmiten la rotación entre sí en fila", - "create.ponder.chain_drive.text_2": "Todos los ejes conectados así girarán en la misma dirección", - "create.ponder.chain_drive.text_3": "Cualquier parte de la fila puede girar 90 grados usando una llave inglesa", - - "create.ponder.chain_gearshift.header": "Controlar la velocidad de rotación con la cadena de transmisión ajustable", - "create.ponder.chain_gearshift.text_1": "Las cadenas de transmisión ajustables sin alimentación se comportan exactamente como las cadenas de transmisión", - "create.ponder.chain_gearshift.text_2": "Cuando están alimentadas, la velocidad transmitida a las demás cadenas de transmisión de la fila se duplica", - "create.ponder.chain_gearshift.text_3": "Siempre que la cadena de transmisión alimentada no esté en el origen, su velocidad se reducirá a la mitad", - "create.ponder.chain_gearshift.text_4": "En ambos casos, las cadenas de transmisión de la fila siempre funcionan a 2 veces la velocidad de la cadena de transmisión alimentada", - "create.ponder.chain_gearshift.text_5": "Utilizando señales analógicas, la relación puede ajustarse con mayor precisión, entre 1 y 2", - "create.ponder.chain_gearshift.text_6": "12 RPM", - - "create.ponder.chute.header": "Transportar objetos hacia abajo a través de ductos", - "create.ponder.chute.text_1": "Los ductos pueden transportar objetos verticalmente desde y hacia los inventarios", - "create.ponder.chute.text_2": "Usando la llave inglesa, se puede crear una ventana", - "create.ponder.chute.text_3": "Colocar ductos apuntando a las caras laterales de otro lo hará en diagonal", - - "create.ponder.chute_upward.header": "Transportar objetos hacia arriba mediante ductos", - "create.ponder.chute_upward.text_1": "Usando ventiladores revestidos en la parte superior o inferior, un ducto puede transportar objetos hacia arriba", - "create.ponder.chute_upward.text_2": "Al inspeccionar los ductos con las gafas del constructor, se revela información sobre la dirección del movimiento", - "create.ponder.chute_upward.text_3": "En el extremo 'bloqueado', los objetos tendrán que ser insertados/tomados de los lados", - - "create.ponder.clockwork_bearing.header": "Animar estructuras con rodamientos tipo reloj", - "create.ponder.clockwork_bearing.text_1": "Los rodamientos tipo reloj se fijan a los bloques que tienen delante", - "create.ponder.clockwork_bearing.text_2": "Al recibir fuerza rotacional, la estructura girará según la hora del día", - "create.ponder.clockwork_bearing.text_3": "3:00", - "create.ponder.clockwork_bearing.text_4": "4:00", - "create.ponder.clockwork_bearing.text_5": "Haz clic derecho en el rodamiento para iniciar o detener la animación de la estructura", - "create.ponder.clockwork_bearing.text_6": "Delante de la manecilla de las horas se puede añadir una segunda estructura", - "create.ponder.clockwork_bearing.text_7": "Asegúrese de que las dos estructuras no están unidas entre sí con pegamento o algo similar", - "create.ponder.clockwork_bearing.text_8": "La segunda estructura ahora girará como el minutero", - - "create.ponder.clutch.header": "Controlar la fuerza rotacional mediante un embrague", - "create.ponder.clutch.text_1": "Los embragues transmitirán la rotación en línea recta", - "create.ponder.clutch.text_2": "Cuando se alimentan con redstone, rompen la conexión", - - "create.ponder.cog_speedup.header": "Cambiar de marchas con engranajes", - "create.ponder.cog_speedup.text_1": "Los engranajes grandes y pequeños pueden conectarse en diagonal", - "create.ponder.cog_speedup.text_2": "Al cambiar de engranajes grandes a pequeños, la velocidad rotacional se duplicará", - "create.ponder.cog_speedup.text_3": "Inversamente, la velocidad rotacional se reducirá a la mitad", - - "create.ponder.cogwheel.header": "Transmitir fuerza rotacional mediante engranajes", - "create.ponder.cogwheel.text_1": "Los engranajes transmitirán la rotación a otros engranajes adyacentes", - "create.ponder.cogwheel.text_2": "Los ejes adyacentes conectados así, girarán en direcciones opuestas", - - "create.ponder.creative_fluid_tank.header": "Tanque de fluídos creativo", - "create.ponder.creative_fluid_tank.text_1": "Los depósitos de fluidos creativos pueden utilizarse para proporcionar un suministro de fluidos sin fondo", - "create.ponder.creative_fluid_tank.text_2": "Haga clic con el botón derecho en un elemento que contenga fluido para configurarlo", - "create.ponder.creative_fluid_tank.text_3": "Las redes de tuberías pueden ahora extraer sin cesar el fluido asignado del depósito", - "create.ponder.creative_fluid_tank.text_4": "Cualquier fluido empujado de vuelta a un tanque de fluido creativo será anulado", - - "create.ponder.creative_motor.header": "Generar fuerza rotacional con motores creativos", - "create.ponder.creative_motor.text_1": "Los motores creativos son una fuente compacta y configurable de fuerza rotacional", - "create.ponder.creative_motor.text_2": "Usar la rueda de desplazamiento del ratón en su parte trasera cambia las RPM de la salida rotacional", - - "create.ponder.crushing_wheels.header": "Procesar objetos con las ruedas trituradoras", - "create.ponder.crushing_wheels.text_1": "Un par de ruedas trituradoras pueden moler objetos de forma muy eficaz", - "create.ponder.crushing_wheels.text_2": "Su fuerza rotacional tiene que hacerlas girar una contra otra", - "create.ponder.crushing_wheels.text_3": "Los objetos lanzados o insertados en la parte superior serán procesados", - "create.ponder.crushing_wheels.text_4": "Los objetos también pueden ser insertados y recogidos a través de medios automatizados", - - "create.ponder.deployer.header": "Usar el desplegador", - "create.ponder.deployer.text_1": "Dada la fuerza rotacional, un desplegador puede imitar las interacciones de los jugadores", - "create.ponder.deployer.text_10": "Haz clic derecho en el frente para darle un objeto a utilizar", - "create.ponder.deployer.text_11": "Los objetos también pueden ser insertados automáticamente", - "create.ponder.deployer.text_12": "Los desplegadores llevan una ranura de filtro", - "create.ponder.deployer.text_13": "Cuando se establece un filtro, sólo se activa mientras se mantiene un elemento coincidente", - "create.ponder.deployer.text_14": "Ahora sólo se pueden insertar los objetos que coincidan con el filtro...", - "create.ponder.deployer.text_15": "...y sólo se extraerán los objetos que no coincidan", - "create.ponder.deployer.text_2": "Siempre interactuará con la posición 2 bloques delante de sí mismo", - "create.ponder.deployer.text_3": "Los bloques situados directamente delante no lo obstruirán", - "create.ponder.deployer.text_4": "Los desplegadores pueden:", - "create.ponder.deployer.text_5": "Colocar bloques,", - "create.ponder.deployer.text_6": "Usar objetos,", - "create.ponder.deployer.text_7": "Activar bloques,", - "create.ponder.deployer.text_8": "Cosechar bloques", - "create.ponder.deployer.text_9": "Y atacar criaturas", - - "create.ponder.deployer_contraption.header": "Usar desplegadores en artilugios", - "create.ponder.deployer_contraption.text_1": "Siempre que los desplegadores se muevan como parte de un artilugio animado...", - "create.ponder.deployer_contraption.text_2": "Se activan en cada ubicación visitada, utilizando objetos de los inventarios de cualquier parte del artilugio", - "create.ponder.deployer_contraption.text_3": "La ranura para filtros se puede utilizar para especificar qué objetos tirar", - - "create.ponder.deployer_modes.header": "Modos del desplegador", - "create.ponder.deployer_modes.text_1": "Por defecto, un desplegador imita la interacción del clic derecho del ratón", - "create.ponder.deployer_modes.text_2": "Usando una llave inglesa, se puede configurar para imitar un clic izquierdo en su lugar", - - "create.ponder.deployer_processing.header": "Procesar objetos mediante desplegadores", - "create.ponder.deployer_processing.text_1": "Con un objeto de sujeción ajustado, los desplegadores pueden procesar los objetos proporcionados por debajo de ellos", - "create.ponder.deployer_processing.text_2": "Los objetos de entrada pueden soltarse o colocarse en un depósito bajo el desplegador", - "create.ponder.deployer_processing.text_3": "Cuando los objetos se proporcionan en una 'cinta'...", - "create.ponder.deployer_processing.text_4": "El desplegador los retendrá y procesará automáticamente", - - "create.ponder.deployer_redstone.header": "Controlar desplegadores con redstone", - "create.ponder.deployer_redstone.text_1": "Al controlar los desplegadores con redstone, éstos no se activarán", - "create.ponder.deployer_redstone.text_2": "Antes de detenerse, el desplegador terminará cualquier ciclo iniciado", - "create.ponder.deployer_redstone.text_3": "Por lo tanto, un pulso negativo puede ser utilizado para desencadenar exactamente un ciclo de activación", - - "create.ponder.depot.header": "Usar depósitos", - "create.ponder.depot.text_1": "Los depósitos pueden servir como objetos 'fijos' de la correa", - "create.ponder.depot.text_2": "Haz clic derecho para colocar o eliminar manualmente objetos del mismo", - "create.ponder.depot.text_3": "Al igual que las correas mecánicas, pueden proporcionar objetos para su procesamiento", - "create.ponder.depot.text_4": "...así como proporcionar objetos a los brazos mecánicos", - - "create.ponder.empty_blaze_burner.header": "Usar quemadores de blaze vacíos", - "create.ponder.empty_blaze_burner.text_1": "Haz clic derecho en un blaze con el quemador vacío para capturarlo", - "create.ponder.empty_blaze_burner.text_2": "Alternativamente, los blaze pueden ser recogidos de sus spawners directamente", - "create.ponder.empty_blaze_burner.text_3": "Ahora tienes una fuente de calor ideal para varias máquinas", - "create.ponder.empty_blaze_burner.text_4": "Por motivos estéticos, los quemadores de blaze vacíos también se pueden encender con pedernal y acero", - "create.ponder.empty_blaze_burner.text_5": "La llama puede transformarse utilizando un objeto con alma", - "create.ponder.empty_blaze_burner.text_6": "Sin embargo, no son adecuados para la calefacción industrial", - - "create.ponder.encased_fluid_pipe.header": "Revestir tuberías de fluídos", - "create.ponder.encased_fluid_pipe.text_1": "El revestidor de cobre puede utilizarse para decorar las tuberías de fluidos", - "create.ponder.encased_fluid_pipe.text_2": "Además de estar ocultas, las tuberías revestidas están bloqueadas en su estado de conectividad", - "create.ponder.encased_fluid_pipe.text_3": "Ya no reaccionará a los bloques vecinos que se añadan o eliminen", - - "create.ponder.fan_direction.header": "El flujo de aire de los ventiladores revestidos", - "create.ponder.fan_direction.text_1": "Los ventiladores revestidos utilizan la fuerza rotacional para crear una corriente de aire", - "create.ponder.fan_direction.text_2": "La fuerza y la dirección del flujo dependen de la fuerza rotacional suministrada", - - "create.ponder.fan_processing.header": "Procesar objetos mediante ventiladores revestidos", - "create.ponder.fan_processing.text_1": "Al pasar por lava, el flujo de aire se calienta", - "create.ponder.fan_processing.text_2": "Los objetos capturados en la zona serán fundidos", - "create.ponder.fan_processing.text_3": "Los artículos de comida arrojados aquí serán incinerados", - "create.ponder.fan_processing.text_4": "En su lugar, se debería utilizar una instalación de ahumado, usando fuego", - "create.ponder.fan_processing.text_5": "Los flujos de aire que pasan por el agua crean una instalación de lavado", - "create.ponder.fan_processing.text_6": "Se puede hacer un nuevo e interesante procesamiento con él", - "create.ponder.fan_processing.text_7": "La velocidad del ventilador NO afecta a la velocidad de procesamiento, sólo a su rango", - "create.ponder.fan_processing.text_8": "El procesamiento del ventilador también puede aplicarse a los objetos de los depósitos y las correas", - - "create.ponder.fan_source.header": "Generar fuerza rotacional mediante ventiladores revestidos", - "create.ponder.fan_source.text_1": "Los ventiladores orientados hacia una fuente de calor pueden proporcionar fuerza rotacional", - "create.ponder.fan_source.text_2": "Cuando se les da una señal de redstone, los ventiladores comenzarán a proporcionar fuerza", - - "create.ponder.fluid_pipe_flow.header": "Transportar fluidos mediante tuberías de cobre", - "create.ponder.fluid_pipe_flow.text_1": "Las tuberías de fluidos pueden conectar dos o más fuentes y objetivos de fluidos", - "create.ponder.fluid_pipe_flow.text_2": "Utilizando una llave, se puede dar a un segmento de tubo recto una ventana", - "create.ponder.fluid_pipe_flow.text_3": "Las tuberías con ventanas no se conectarán a ningún otro segmento de tubería adyacente", - "create.ponder.fluid_pipe_flow.text_4": "Accionadas por bombas mecánicas, las tuberías pueden transportar fluidos", - "create.ponder.fluid_pipe_flow.text_5": "Al principio no se extrae ningún líquido", - "create.ponder.fluid_pipe_flow.text_6": "Una vez que el flujo los conecta, los puntos finales transfieren gradualmente su contenido", - "create.ponder.fluid_pipe_flow.text_7": "Así, los bloques de tuberías nunca contienen 'físicamente' ningún fluido", - - "create.ponder.fluid_pipe_interaction.header": "Drenaje y llenado de contenedores de fluidos", - "create.ponder.fluid_pipe_interaction.text_1": "Los puntos finales de una red de tuberías pueden interactuar con una variedad de bloques", - "create.ponder.fluid_pipe_interaction.text_2": "Cualquier bloque con capacidad para almacenar fluidos puede ser llenado o vaciado", - "create.ponder.fluid_pipe_interaction.text_3": "Los bloques de origen justo delante de un extremo abierto pueden ser recogidos...", - "create.ponder.fluid_pipe_interaction.text_4": "...mientras que el derrame en espacios vacíos puede crear fuentes de fluidos", - "create.ponder.fluid_pipe_interaction.text_5": "Las tuberías también pueden extraer fluidos de un puñado de otros bloques directamente", - - "create.ponder.fluid_tank_sizes.header": "Dimensiones de un depósito de fluidos", - "create.ponder.fluid_tank_sizes.text_1": "Los depósitos de fluidos pueden combinarse para aumentar la capacidad total", - "create.ponder.fluid_tank_sizes.text_2": "Su cuadrado base puede tener hasta 3 bloques de ancho...", - "create.ponder.fluid_tank_sizes.text_3": "...y crecen en altura en más de 30 capas adicionales", - "create.ponder.fluid_tank_sizes.text_4": "Con una llave inglesa, se puede cambiar la ventana de un tanque", - - "create.ponder.fluid_tank_storage.header": "Almacenar fluidos en depósitos de fluidos", - "create.ponder.fluid_tank_storage.text_1": "Los depósitos de fluidos pueden utilizarse para almacenar grandes cantidades de fluidos", - "create.ponder.fluid_tank_storage.text_2": "Las redes de tuberías pueden empujar y arrastrar fluidos desde cualquier lado", - "create.ponder.fluid_tank_storage.text_3": "El fluido contenido puede ser medido por un Comparador", - "create.ponder.fluid_tank_storage.text_4": "Sin embargo, en el Modo Supervivencia no se pueden añadir o tomar fluidos manualmente", - "create.ponder.fluid_tank_storage.text_5": "Puede utilizar cuencas, drenadores de objetos y tuberías para vaciar o llenar objetos que contengan líquido", - - "create.ponder.flywheel.header": "Generar fuerza rotacional con la rueda de inercia", - "create.ponder.flywheel.text_1": "Las ruedas de inercia son necesarias para generar fuerza rotacional con el motor de horno", - "create.ponder.flywheel.text_2": "La fuerza rotacional proporcionada tiene una capacidad de estrés muy grande", - "create.ponder.flywheel.text_3": "El uso de un alto horno duplicará la eficiencia del motor", - - "create.ponder.funnel_compat.header": "Compatibilidades con el embudo", - "create.ponder.funnel_compat.text_1": "Los embudos deberían interactuar bien con un puñado de otros componentes", - "create.ponder.funnel_compat.text_2": "Sierras verticales", - "create.ponder.funnel_compat.text_3": "Depósitos", - "create.ponder.funnel_compat.text_4": "Drenadores de objetos", - - "create.ponder.funnel_direction.header": "Dirección de la transferencia", - "create.ponder.funnel_direction.text_1": "Colocado normalmente, extrae objetos del inventario", - "create.ponder.funnel_direction.text_2": "Colocado mientras pulsa Mayús izdo, pone objetos en el inventario", - "create.ponder.funnel_direction.text_3": "Usando una llave inglesa, el embudo puede ser volteado después de su colocación", - "create.ponder.funnel_direction.text_4": "Se aplicarán las mismas reglas para la mayoría de las orientaciones", - "create.ponder.funnel_direction.text_5": "Los embudos en las correas extraerán/insertarán dependiendo de su dirección de movimiento", - - "create.ponder.funnel_intro.header": "Usar embudos", - "create.ponder.funnel_intro.text_1": "Los embudos son ideales para transferir objetos desde y hacia los inventarios", - - "create.ponder.funnel_redstone.header": "Embudos alimentados con redstone", - "create.ponder.funnel_redstone.text_1": "La energía de redstone impedirá la actuación de cualquier embudo", - - "create.ponder.funnel_transfer.header": "Transferencia directa", - "create.ponder.funnel_transfer.text_1": "Los embudos no pueden transferir nunca entre inventarios cerrados directamente", - "create.ponder.funnel_transfer.text_2": "Los ductos o los ductos inteligentes podrían ser más adecuados para estos fines", - "create.ponder.funnel_transfer.text_3": "Lo mismo se aplica para el movimiento horizontal. Una correa mecánica debería ayudar aquí", - - "create.ponder.furnace_engine.header": "Generar fuerza rotacional con el motor de horno", - "create.ponder.furnace_engine.text_1": "Los motores de horno generan fuerza rotacional mientras su horno adjunto está funcionando", - "create.ponder.furnace_engine.text_2": "La fuerza rotacional proporcionada tiene una capacidad de estrés muy grande", - "create.ponder.furnace_engine.text_3": "El uso de un alto horno duplicará la eficiencia del motor", - - "create.ponder.gantry_carriage.header": "Usar carros de grúa", - "create.ponder.gantry_carriage.text_1": "Los carros de grúa pueden montarse y deslizarse a lo largo de un eje de grúa", - "create.ponder.gantry_carriage.text_2": "Las instalaciones de grúa pueden mover bloques adjuntos", - - "create.ponder.gantry_cascaded.header": "Grúas en cascada", - "create.ponder.gantry_cascaded.text_1": "Los ejes de grúas se unen a un carro de grúa sin necesidad de pegamento", - "create.ponder.gantry_cascaded.text_2": "Lo mismo se aplica a los carros de grúa en los ejes de grúas desplazados", - "create.ponder.gantry_cascaded.text_3": "Así, un sistema de grúas puede estar en cascada para cubrir múltiples ejes de movimiento", - - "create.ponder.gantry_direction.header": "Dirección del movimiento de la grúa", - "create.ponder.gantry_direction.text_1": "Los ejes de grúa pueden tener orientaciones opuestas", - "create.ponder.gantry_direction.text_2": "La dirección de movimiento de los carros de grúa depende de la orientación de sus ejes", - "create.ponder.gantry_direction.text_3": "...así como de su sentido de rotación", - "create.ponder.gantry_direction.text_4": "Se aplican las mismas reglas para la rotación propagada", - - "create.ponder.gantry_redstone.header": "Propagación de la potencia de la grúa", - "create.ponder.gantry_redstone.text_1": "Los ejes de grúa alimentados con redstone dejan de mover sus carros", - "create.ponder.gantry_redstone.text_2": "En su lugar, su fuerza rotacional se transmite al eje de salida de los carros", - - "create.ponder.gantry_shaft.header": "Usar ejes de grúa", - "create.ponder.gantry_shaft.text_1": "Los ejes de grúa forman la base de una instalación de grúas. Los carros adjuntos se moverán a lo largo de ellos", - "create.ponder.gantry_shaft.text_2": "Las instalaciones de grúas pueden mover los bloques adjuntos", - - "create.ponder.gearbox.header": "Transmitir fuerza rotacional mediante cajas de transmisión", - "create.ponder.gearbox.text_1": "Saltar entre ejes de rotación puede volverse voluminoso rápidamente", - "create.ponder.gearbox.text_2": "Una caja de transmisión es el equivalente más compacto de esta configuración", - "create.ponder.gearbox.text_3": "Los ejes giran en las direcciones reflejadas...", - "create.ponder.gearbox.text_4": "...esto quiere decir que las conexiones rectas se invierten", - - "create.ponder.gearshift.header": "Controlar la dirección rotacional mediante una caja de cambios", - "create.ponder.gearshift.text_1": "La caja de cambios transmitirá la rotación en línea recta", - "create.ponder.gearshift.text_2": "Cuando es alimentada con redstone, invierte la transmisión", - - "create.ponder.hand_crank.header": "Generar fuerza rotacional mediante manivelas", - "create.ponder.hand_crank.text_1": "Las manivelas pueden ser utilizadas para aplicar fuerza rotacional manualmente", - "create.ponder.hand_crank.text_2": "Mantén pulsado clic derecho para girar en sentido antihorario", - "create.ponder.hand_crank.text_3": "Su velocidad de transmisión es relativamente alta", - "create.ponder.hand_crank.text_4": "Mayús izdo + clic derecho pulsado para girar en sentido horario", - - "create.ponder.hose_pulley.header": "Llenado y vaciado de fuentes mediante poleas de manguera", - "create.ponder.hose_pulley.text_1": "Las poleas para mangueras pueden utilizarse para llenar o drenar grandes masas de fluido", - "create.ponder.hose_pulley.text_2": "Con entrada cinética, se puede controlar la altura de la manguera de las poleas", - "create.ponder.hose_pulley.text_3": "La polea se retrae mientras la rotación de entrada se invierte", - "create.ponder.hose_pulley.text_4": "En el lado opuesto, se pueden conectar las tuberías", - "create.ponder.hose_pulley.text_5": "Las redes de tuberías conectadas pueden proporcionar fluido a la manguera...", - "create.ponder.hose_pulley.text_6": "...o tirar de él, vaciando la piscina en su lugar", - "create.ponder.hose_pulley.text_7": "La velocidad de llenado y vaciado de la polea depende totalmente del caudal de las redes de fluidos", - - "create.ponder.hose_pulley_infinite.header": "Llenado y drenaje pasivo de grandes masas de fluido", - "create.ponder.hose_pulley_infinite.text_1": "Al desplegar la polea de manguera en un océano lo suficientemente grande...", - "create.ponder.hose_pulley_infinite.text_2": "Proporcionará/eliminará fluidos sin afectar a la fuente", - "create.ponder.hose_pulley_infinite.text_3": "Las redes de tuberías pueden llevar fluidos de forma ilimitada desde/hacia dichas poleas", - - "create.ponder.hose_pulley_level.header": "Nivel de llenado y vaciado de las poleas de las mangueras", - "create.ponder.hose_pulley_level.text_1": "Mientras esté totalmente retraída, la polea de la manguera no puede funcionar", - "create.ponder.hose_pulley_level.text_2": "El drenaje va de arriba a abajo", - "create.ponder.hose_pulley_level.text_3": "El nivel de la superficie terminará justo debajo de donde termina la manguera", - "create.ponder.hose_pulley_level.text_4": "El llenado va de abajo a arriba", - "create.ponder.hose_pulley_level.text_5": "La piscina llena no crecerá más allá de la capa por encima del extremo de la manguera", - - "create.ponder.item_drain.header": "Vaciar contenedores de fluidos mediante drenajes de objetos", - "create.ponder.item_drain.text_1": "Los drenajes de objetos pueden extraer los fluidos de los objetos", - "create.ponder.item_drain.text_2": "Haz clic derecho para verter los fluidos de tu objeto retenido en él", - "create.ponder.item_drain.text_3": "Cuando los artículos se insertan desde el lado...", - "create.ponder.item_drain.text_4": "...ruedan a través, vaciando su líquido contenido", - "create.ponder.item_drain.text_5": "Las redes de tuberías pueden ahora extraer el fluido del buffer interno de los desagües", - - "create.ponder.large_cogwheel.header": "Transmitir fuerza rotacional mediante engranajes grandes", - "create.ponder.large_cogwheel.text_1": "Los engranajes grandes pueden conectarse entre sí en ángulo recto", - "create.ponder.large_cogwheel.text_2": "Ayudarán a transmitir la velocidad transportada a otros ejes de rotación.", - - "create.ponder.linear_chassis_attachment.header": "Fijar bloques mediante el chasis lineal", - "create.ponder.linear_chassis_attachment.text_1": "Las caras abiertas de un chasis lineal pueden hacerse pegajosas", - "create.ponder.linear_chassis_attachment.text_2": "Haz clic de nuevo para que se pegue el lado opuesto", - "create.ponder.linear_chassis_attachment.text_3": "Mayús izdo + clic derecho con la mano vacía para eliminar el pegamento", - "create.ponder.linear_chassis_attachment.text_4": "Las caras pegadas del chasis lineal fijarán una línea de bloques delante de él", - "create.ponder.linear_chassis_attachment.text_5": "Utilizando una llave inglesa, se puede especificar un rango preciso", - "create.ponder.linear_chassis_attachment.text_6": "Manteniendo pulsada la tecla [Ctrl] y usando la rueda central del ratón, se ajusta el rango de todos los bloques de chasis adjuntos", - "create.ponder.linear_chassis_attachment.text_7": "Para fijar los bloques a cualquier otro lado es necesario utilizar pegamento", - "create.ponder.linear_chassis_attachment.text_8": "Utilizando esta mecánica, las estructuras de cualquier forma pueden moverse como un artilugio", - - "create.ponder.linear_chassis_group.header": "Mover chasis lineales en grupos", - "create.ponder.linear_chassis_group.text_1": "Los chasis lineales se conectan a los bloques de chasis idénticos que se encuentren a su lado", - "create.ponder.linear_chassis_group.text_2": "Cuando uno es movido por un artilugio, los otros son arrastrados con él", - "create.ponder.linear_chassis_group.text_3": "Los chasis de otro tipo u orientados en otra dirección no se fijan", - - "create.ponder.mechanical_arm.header": "Configurar los brazos mecánicos", - "create.ponder.mechanical_arm.text_1": "A los brazos mecánicos hay que asignarles sus entradas y salidas antes de colocarlos", - "create.ponder.mechanical_arm.text_2": "Clic derecho en los inventarios mientras mantiene el brazo mecánico para asignarlos como objetivos", - "create.ponder.mechanical_arm.text_3": "Clic derecho denuevo para alternar entre la entrada (azul) y la salida (naranja)", - "create.ponder.mechanical_arm.text_4": "Clic izquierdo en los componentes para eliminar su selección", - "create.ponder.mechanical_arm.text_5": "Una vez colocado, el brazo mecánico apuntará a los bloques seleccionados previamente", - "create.ponder.mechanical_arm.text_6": "Pueden tener cualquier cantidad de entradas y salidas dentro de su rango", - "create.ponder.mechanical_arm.text_7": "Sin embargo, no se puede interactuar directamente con todos los tipos de inventario", - "create.ponder.mechanical_arm.text_8": "Los embudos y depósitos pueden ayudar a salvar esa distancia", - - "create.ponder.mechanical_arm_filtering.header": "Filtrar salidas del brazo mecánico", - "create.ponder.mechanical_arm_filtering.text_1": "Entradas", - "create.ponder.mechanical_arm_filtering.text_2": "Salidas", - "create.ponder.mechanical_arm_filtering.text_3": "A veces es conveniente restringir los objetivos del brazo mecánico haciendo coincidir un filtro", - "create.ponder.mechanical_arm_filtering.text_4": "Por sí mismos no ofrecen ninguna opción de filtrado", - "create.ponder.mechanical_arm_filtering.text_5": "Sin embargo, los embudos de latón como objetivos comunican su propio filtro al brazo", - "create.ponder.mechanical_arm_filtering.text_6": "El brazo mecánico es lo suficientemente inteligente como para no recoger objetos que no podría distribuir", - - "create.ponder.mechanical_arm_modes.header": "Modos de distribución del brazo mecánico", - "create.ponder.mechanical_arm_modes.text_1": "Entradas", - "create.ponder.mechanical_arm_modes.text_2": "Salidas", - "create.ponder.mechanical_arm_modes.text_3": "Siempre que un brazo tenga que elegir entre varias salidas válidas...", - "create.ponder.mechanical_arm_modes.text_4": "...funcionará según su configuración", - "create.ponder.mechanical_arm_modes.text_5": "Usando la rueda del ratón con una llave inglesa te permitirá configurarlo", - "create.ponder.mechanical_arm_modes.text_6": "El modo Round Robin simplemente hace un ciclo a través de todas las salidas que están disponibles", - "create.ponder.mechanical_arm_modes.text_7": "Si una salida no puede admitir más objetos, se omitirá", - "create.ponder.mechanical_arm_modes.text_8": "El modo Round Robin forzado nunca omitirá las salidas, sino que esperará a que estén libres", - "create.ponder.mechanical_arm_modes.text_9": "Preferir el primero da prioridad a las salidas seleccionadas anteriormente al configurar este brazo", - - "create.ponder.mechanical_arm_redstone.header": "Controlar brazos mecánicos con redstone", - "create.ponder.mechanical_arm_redstone.text_1": "Cuando se alimentan con redstone, los brazos mecánicos no se activan", - "create.ponder.mechanical_arm_redstone.text_2": "Antes de detenerse, terminará los ciclos iniciados", - "create.ponder.mechanical_arm_redstone.text_3": "Así, un pulso negativo puede utilizarse para activar exactamente un ciclo de activación", - - "create.ponder.mechanical_bearing.header": "Mover estructuras mediante el rodamiento mecánico", - "create.ponder.mechanical_bearing.text_1": "Los rodamientos mecánicos se fijan al bloque que tienen delante", - "create.ponder.mechanical_bearing.text_2": "Al recibir fuerza rotacional, la ensamblará en un artilugio giratorio", - - "create.ponder.mechanical_crafter.header": "Configurar ensambladores mecánicos", - "create.ponder.mechanical_crafter.text_1": "Se puede utilizar una serie de ensambladores mecánicos para automatizar cualquier receta de elaboración.", - "create.ponder.mechanical_crafter.text_2": "Usando una llave inglesa, puedes establecer los caminos de los ensambladores ", - "create.ponder.mechanical_crafter.text_3": "Para que la configuración sea válida, todos los caminos tienen que converger en una salida, en cualquiera de los lados", - "create.ponder.mechanical_crafter.text_4": "Los puertos de salida de objetos se colocarán en un inventario a la salida", - "create.ponder.mechanical_crafter.text_5": "Los ensambladores mecánicos requieren fuerza rotacional para funcionar", - "create.ponder.mechanical_crafter.text_6": "Haga clic derecho en la parte delantera para insertar objetos manualmente", - "create.ponder.mechanical_crafter.text_7": "Una vez que cada ranura de una ruta contenga un objeto, comenzará el proceso de elaboración", - "create.ponder.mechanical_crafter.text_8": "Para las recetas que no ocupen totalmente la instalación del ensamblador, se puede forzar el arranque utilizando un pulso de redstone", - - "create.ponder.mechanical_crafter_connect.header": "Conectar inventarios a los ensambladores mecánicos", - "create.ponder.mechanical_crafter_connect.text_1": "Los objetos pueden ser insertados a los ensambladores mecánicos automáticamente", - "create.ponder.mechanical_crafter_connect.text_2": "Utilizando la llave inglesa a sus espaldas, las entradas pueden combinarse", - "create.ponder.mechanical_crafter_connect.text_3": "Ahora se puede acceder a todos los ensambladores mecánicos conectados por la misma ubicación de entrada", - - "create.ponder.mechanical_crafter_covers.header": "Cubrir las ranuras de los ensambladores mecánicos", - "create.ponder.mechanical_crafter_covers.text_1": "Algunas recetas requerirán ensambladores mecánicos adicionales para salvar las brechas en el camino", - "create.ponder.mechanical_crafter_covers.text_2": "Utilizando las tapas de ranuras del ensamblador mecánico, pueden actuar como una ranura vacía a su disposición", - "create.ponder.mechanical_crafter_covers.text_3": "Las entradas compartidas creadas con la llave inglesa en la parte posterior también pueden llegar a través de los ensambladores revestidos", - - "create.ponder.mechanical_drill.header": "Romper bloques con el taladro mecánico", - "create.ponder.mechanical_drill.text_1": "Cuando se le aplica fuerza rotacional, el taladro mecánico rompe los bloques que tiene delante.", - "create.ponder.mechanical_drill.text_2": "Su velocidad de trabajo depende de la fuerza rotacional suministrada", - - "create.ponder.mechanical_drill_contraption.header": "Usar taladros mecánicos en artilugios", - "create.ponder.mechanical_drill_contraption.text_1": "Siempre que los taladros mecánicos se muevan como parte de un artilugio animado...", - "create.ponder.mechanical_drill_contraption.text_2": "...romperán los bloques por los que artilugio los hace pasar", - - "create.ponder.mechanical_harvester.header": "Utilizar cosechadoras mecánicas en artilugios", - "create.ponder.mechanical_harvester.text_1": "Siempre que las cosechadoras mecánicas se muevan como parte de un artilugio animado...", - "create.ponder.mechanical_harvester.text_2": "...recogerán y repondrán los cultivos maduros en su camino", - - "create.ponder.mechanical_mixer.header": "Procesar objetos con la mezcladora mecánica", - "create.ponder.mechanical_mixer.text_1": "Con una mezcladora mecánica y una cuenca, se pueden automatizar algunas recetas", - "create.ponder.mechanical_mixer.text_2": "Las recetas disponibles incluyen cualquier receta de elaboración amorfa, además de un par de recetas adicionales", - "create.ponder.mechanical_mixer.text_3": "Algunas de esas recetas pueden requerir el calor de un quemador de blaze", - "create.ponder.mechanical_mixer.text_4": "La ranura para filtros se puede utilizar en caso de que dos recetas sean conflictivas.", - - "create.ponder.mechanical_piston.header": "Mover estructuras mediante pistones mecánicos", - "create.ponder.mechanical_piston.text_1": "Los pistones mecánicos pueden mover los bloques que tienen delante", - "create.ponder.mechanical_piston.text_2": "La velocidad y la dirección del movimiento dependen de la fuerza rotacional suministrada", - "create.ponder.mechanical_piston.text_3": "Los pistones mecánicos pegajosos pueden tirar de los bloques unidos hacia atrás", - - "create.ponder.mechanical_piston_modes.header": "Modos de movimiento del pistón mecánico", - "create.ponder.mechanical_piston_modes.text_1": "Cuando los pistones mecánicos dejan de moverse, la estructura movida vuelve a los bloques", - "create.ponder.mechanical_piston_modes.text_2": "Puede configurarse para que no vuelva nunca a los bloques sólidos, o sólo en la ubicación en la que comenzó", - - "create.ponder.mechanical_plough.header": "Utilizar arados mecánicos en los artilugios", - "create.ponder.mechanical_plough.text_1": "Cuando los arados mecánicos se mueven como parte de un artilugio animado...", - "create.ponder.mechanical_plough.text_2": "...romperán los bloques sin un hitbox de colisión sólido", - "create.ponder.mechanical_plough.text_3": "Además, pueden crear tierras de cultivo", - "create.ponder.mechanical_plough.text_4": "...también pueden lanzar entidades sin dañarlas", - - "create.ponder.mechanical_press.header": "Procesar objetos con la prensa mecánica", - "create.ponder.mechanical_press.text_1": "La prensa mecánica puede procesar los objetos proporcionados por debajo de ella", - "create.ponder.mechanical_press.text_2": "Los objetos de entrada pueden soltarse o colocarse en un depósito bajo la prensa", - "create.ponder.mechanical_press.text_3": "Cuando los objetos se proporcionan en una 'cinta'...", - "create.ponder.mechanical_press.text_4": "...la prensa mecánica los retendrá y procesará automáticamente", - - "create.ponder.mechanical_press_compacting.header": "Compactar objetos con la prensa mecánica", - "create.ponder.mechanical_press_compacting.text_1": "Al presionar los objetos que se encuentran en una cuenca, éstos se compactan.", - "create.ponder.mechanical_press_compacting.text_2": "La compactación incluye cualquier receta de elaboración de 2x2 o 3x3 rellena, además de un par extra", - "create.ponder.mechanical_press_compacting.text_3": "Algunas de esas recetas pueden requerir el calor de un quemador de blaze", - "create.ponder.mechanical_press_compacting.text_4": "La ranura para filtros se puede utilizar en caso de que dos recetas sean conflictivas.", - - "create.ponder.mechanical_pump_flow.header": "Transportar fluidos mediante bombas mecánicas", - "create.ponder.mechanical_pump_flow.text_1": "Las bombas mecánicas gobiernan el flujo de sus redes de tuberías anexas", - "create.ponder.mechanical_pump_flow.text_2": "Cuando están alimentadas, su flecha indica la dirección del flujo", - "create.ponder.mechanical_pump_flow.text_3": "La red de atrás está ahora tirando de fluidos...", - "create.ponder.mechanical_pump_flow.text_4": "...mientras la red de enfrente la transfiere hacia el exterior", - "create.ponder.mechanical_pump_flow.text_5": "Al invertir la rotación de la entrada se invierte el sentido del flujo", - "create.ponder.mechanical_pump_flow.text_6": "Utilice una llave inglesa para invertir la orientación de las bombas manualmente", - - "create.ponder.mechanical_pump_speed.header": "Rendimiento de las bombas mecánicas", - "create.ponder.mechanical_pump_speed.text_1": "Independientemente de la velocidad, las bombas mecánicas afectan a las tuberías conectadas hasta 16 bloques de distancia", - "create.ponder.mechanical_pump_speed.text_2": "Acelerar la rotación de entrada cambia la velocidad de propagación del flujo...", - "create.ponder.mechanical_pump_speed.text_3": "...así como la rapidez con la que se transfieren los fluidos", - "create.ponder.mechanical_pump_speed.text_4": "Las bombas pueden combinar sus rendimientos en redes de tuberías compartidas", - "create.ponder.mechanical_pump_speed.text_5": "Alternar su orientación puede ayudar a alinear sus direcciones de flujo", - - "create.ponder.mechanical_saw_breaker.header": "Cortar árboles con la sierra mecánica", - "create.ponder.mechanical_saw_breaker.text_1": "Cuando se le da una fuerza rotacional, la sierra mecánica cortará los árboles que estén directamente frente a ella", - "create.ponder.mechanical_saw_breaker.text_2": "Para poder cortar el árbol por completo, la sierra tiene que romper el último bloque que lo une al suelo", - - "create.ponder.mechanical_saw_contraption.header": "Utilizar sierras mecánicas en artilugios", - "create.ponder.mechanical_saw_contraption.text_1": "Cuando las sierras mecánicas se mueven como parte de un artilugio animado...", - "create.ponder.mechanical_saw_contraption.text_2": "...cortarán cualquier árbol con el que el artilugio se tope", - - "create.ponder.mechanical_saw_processing.header": "Procesar objetos en la sierra mecánica", - "create.ponder.mechanical_saw_processing.text_1": "Las sierras mecánicas orientadas hacia arriba pueden procesar una variedad de objetos", - "create.ponder.mechanical_saw_processing.text_2": "El objeto procesado siempre se mueve en contra de la fuerza rotacional de la sierra", - "create.ponder.mechanical_saw_processing.text_3": "Las sierras mecánicas pueden trabajar en línea con las correas mecánicas", - "create.ponder.mechanical_saw_processing.text_4": "Cuando un ingrediente tiene varios resultados posibles, la ranura para filtros puede especificarlo", - "create.ponder.mechanical_saw_processing.text_5": "Sin filtro, al contrario, la sierra mecánica pasaría por todos los resultados", - - "create.ponder.millstone.header": "Procesar objetos en la piedra de molino", - "create.ponder.millstone.text_1": "Las piedras de molino procesan los objetos mediante la molienda", - "create.ponder.millstone.text_2": "Se pueden accionar lateralmente mediante engranajes...", - "create.ponder.millstone.text_3": "... y tirar o insertar objetos en la parte superior", - "create.ponder.millstone.text_4": "Después de un tiempo, el resultado se puede obtener usando el clic derecho del ratón", - "create.ponder.millstone.text_5": "Las salidas también pueden extraerse mediante la automatización", - - "create.ponder.nixie_tube.header": "Usar los tubos Nixie", - "create.ponder.nixie_tube.text_1": "Cuando son alimentados con redstone, los tubos nixie mostrarán la fuerza de las señales de redstone", - "create.ponder.nixie_tube.text_2": "Con las etiquetas editadas en un yunque, pueden mostar un texto personalizado", - "create.ponder.nixie_tube.text_3": "Haga clic derecho con un tinte para cambiar su color de visualización", - - "create.ponder.piston_pole.header": "Pértigas de extensión de pistones", - "create.ponder.piston_pole.text_1": "Sin las pértigas de extensión unidas, un pistón mecánico no puede moverse", - "create.ponder.piston_pole.text_2": "La longitud de la pértiga añadida en su parte posterior determina el rango de alcance", - - "create.ponder.portable_fluid_interface.header": "Interfaz de fluidos portátil", - "create.ponder.portable_fluid_interface.text_1": "No se puede acceder a los depósitos de fluidos de los artilugios en movimiento por ninguna tubería", - "create.ponder.portable_fluid_interface.text_2": "Este componente puede interactuar con los depósitos de fluidos sin necesidad de detener el artilugio", - "create.ponder.portable_fluid_interface.text_3": "Coloca una segunda con un espacio de 1 o 2 bloques entre ellas", - "create.ponder.portable_fluid_interface.text_4": "Cada vez que pasen por delante de la otra, entablarán una conexión", - "create.ponder.portable_fluid_interface.text_5": "Mientras esté activada, la interfaz estacionaria representará TODOS los tanques del artilugio", - "create.ponder.portable_fluid_interface.text_6": "Ahora se puede introducir el fluido...", - "create.ponder.portable_fluid_interface.text_7": "...o extraerlo del artilugio", - "create.ponder.portable_fluid_interface.text_8": "Cuando no se intercambien contenidos durante un tiempo, el artilugio seguirá su camino", - - "create.ponder.portable_storage_interface.header": "Interfaz de almacenamiento portátil", - "create.ponder.portable_storage_interface.text_1": "Los jugadores no pueden acceder a los inventarios de los artilugios en movimiento.", - "create.ponder.portable_storage_interface.text_2": "Este componente puede interactuar con el almacenamiento sin necesidad de detener el artilugio.", - "create.ponder.portable_storage_interface.text_3": "Coloca una segunda unidad con un espacio de 1 o 2 bloques entre ellas", - "create.ponder.portable_storage_interface.text_4": "Cada vez que pasen por delante del otro, entablarán una conexión", - "create.ponder.portable_storage_interface.text_5": "Mientras esté conectada, la interfaz fija representará TODOS los inventarios del artilugio", - "create.ponder.portable_storage_interface.text_6": "Ahora pueden insertarse objetos...", - "create.ponder.portable_storage_interface.text_7": "...o extraerse", - "create.ponder.portable_storage_interface.text_8": "Cuando no se hayan intercambiado objetos durante un tiempo, el artilugio seguirá su camino", - - "create.ponder.portable_storage_interface_redstone.header": "Interfaz de almacenamiento portátil controlada por redstone", - "create.ponder.portable_storage_interface_redstone.text_1": "La energía de redstone impedirá que las interfaces de almacenamiento portátil se conecten", - - "create.ponder.powered_latch.header": "Controlar señales mediante la palanca motorizada", - "create.ponder.powered_latch.text_1": "Las palancas motorizadas son palancas controlables por redstone", - "create.ponder.powered_latch.text_2": "Las señales en la parte trasera la encienden", - "create.ponder.powered_latch.text_3": "Las señales sobre un lateral la vuelven a apagar", - "create.ponder.powered_latch.text_4": "Las palancas motorizadas también se pueden accionar manualmente", - - "create.ponder.powered_toggle_latch.header": "Controlar señales mediante la palanca de cierre motorizada", - "create.ponder.powered_toggle_latch.text_1": "Las palancas de cierre motorizadas son palancas controlables por redstone", - "create.ponder.powered_toggle_latch.text_2": "Las señales en la parte trasera cambiarán su estado...", - "create.ponder.powered_toggle_latch.text_3": "...encender y apagar", - "create.ponder.powered_toggle_latch.text_4": "Las palancas de cierre motorizadas también se pueden accionar manualmente", - - "create.ponder.pulse_repeater.header": "Controlar señales mediante repetidores de pulsos", - "create.ponder.pulse_repeater.text_1": "Los repetidores de pulsos acortan cualquier señal de redstone a un solo pulso", - - "create.ponder.radial_chassis.header": "Fijar bloques mediante chasis radiales", - "create.ponder.radial_chassis.text_1": "Los chasis radiales se conectan a bloques de chasis idénticos en una fila", - "create.ponder.radial_chassis.text_2": "Cuando uno es movido por un artilugio, los otros son arrastrados con él", - "create.ponder.radial_chassis.text_3": "Las caras laterales de un chasis radial pueden hacerse adhesivas", - "create.ponder.radial_chassis.text_4": "Haga clic de nuevo para que todos los demás lados sean pegajosos", - "create.ponder.radial_chassis.text_5": "Mayús izdo + clic derecho con la mano vacía para eliminar el pegamento", - "create.ponder.radial_chassis.text_6": "Cada vez que un bloque está junto a una cara pegajosa...", - "create.ponder.radial_chassis.text_7": "...adjuntará todos los bloques alcanzables dentro de un radio en esa capa", - "create.ponder.radial_chassis.text_8": "Con una llave inglesa y usando la rueda de desplazamiento del ratón se puede especificar un radio preciso", - "create.ponder.radial_chassis.text_9": "Los bloques no alcanzables por ninguna cara adhesiva no se fijarán", - - "create.ponder.redstone_contact.header": "Contactos de redstone", - "create.ponder.redstone_contact.text_1": "Los contactos de redstone enfrentados emitirán una señal de redstone", - "create.ponder.redstone_contact.text_2": "Esto sigue siendo válido cuando uno de ellos forma parte de un artilugio en movimiento", - - "create.ponder.redstone_link.header": "Usar los enlaces de redstone", - "create.ponder.redstone_link.text_1": "Los enlaces de redstone pueden transmitir señales redstone de forma inalámbrica", - "create.ponder.redstone_link.text_2": "Mayús izdo + clic derecho para cambiar el modo de recepción", - "create.ponder.redstone_link.text_3": "Un simple clic derecho con una llave inglesa puede hacer lo mismo", - "create.ponder.redstone_link.text_4": "Los receptores emiten la potencia de redstone de los transmisores en 128 bloques", - "create.ponder.redstone_link.text_5": "Colocando objetos en las dos ranuras puede especificar una frecuencia", - "create.ponder.redstone_link.text_6": "Sólo se comunicarán los enlaces con frecuencias coincidentes", - - "create.ponder.rope_pulley.header": "Mover estructuras con poleas de cuerda", - "create.ponder.rope_pulley.text_1": "Las poleas de cuerda pueden mover los bloques verticalmente cuando se les aplica una fuerza rotacional", - "create.ponder.rope_pulley.text_2": "La dirección y la velocidad del movimiento dependen de la fuerza rotacional suministrada", - - "create.ponder.rope_pulley_attachment.header": "Mover poleas como parte de un artilugio", - "create.ponder.rope_pulley_attachment.text_1": "Siempre que las poleas de cuerda sean movidas por un artilugio...", - "create.ponder.rope_pulley_attachment.text_2": "...su estructura adjunta será arrastrada con ella", - "create.ponder.rope_pulley_attachment.text_3": "Tenga en cuenta que las poleas de cuerda sólo se mueven cuando están paradas", - - "create.ponder.rope_pulley_modes.header": "Modos de movimiento de la polea de cuerda", - "create.ponder.rope_pulley_modes.text_1": "Cuando las poleas de cuerda dejan de moverse, la estructura movida vuelve a los bloques", - "create.ponder.rope_pulley_modes.text_2": "Puede configurarse para que no vuelva nunca a los bloques sólidos, o sólo en la ubicación en la que comenzó", - - "create.ponder.rotation_speed_controller.header": "Usar el controlador de velocidad rotacional", - "create.ponder.rotation_speed_controller.text_1": "Los controladores de velocidad rotacional transmiten la rotación de su eje a un engranaje grande situado encima.", - "create.ponder.rotation_speed_controller.text_2": "Utilizando la rueda de desplazamiento del ratón, puede configurarse la velocidad rotacional", - - "create.ponder.sail.header": "Montar molinos de viento usando velas", - "create.ponder.sail.text_1": "Las velas son bloques muy útiles para crear molinos de viento", - "create.ponder.sail.text_2": "Se fijarán a los bloques y entre sí sin necesidad de pegamento o bloques de chasis", - "create.ponder.sail.text_3": "Clic derecho con un tinte para pintarlas", - "create.ponder.sail.text_4": "Clic derecho con una tijera para volver a convertirlas en marcos", - - "create.ponder.sail_frame.header": "Montar molinos de viento con marcos de vela", - "create.ponder.sail_frame.text_1": "Los marcos de vela son prácticos bloques para crear molinos de viento", - "create.ponder.sail_frame.text_2": "Se fijarán a los bloques y entre sí sin necesidad de pegamento o bloques de chasis", - - "create.ponder.sequenced_gearshift.header": "Controlar la velocidad de rotación mediante la caja de cambios secuenciales", - "create.ponder.sequenced_gearshift.text_1": "La caja de cambios secuencial retransmite la rotación siguiendo una lista cronometrada de instrucciones", - "create.ponder.sequenced_gearshift.text_2": "Haga clic con el botón derecho para abrir la interfaz de configuración", - "create.ponder.sequenced_gearshift.text_3": "Al recibir una señal de redstone, comenzará a ejecutar su secuencia configurada", - "create.ponder.sequenced_gearshift.text_4": "Una vez terminado, espera la siguiente señal de redstone y vuelve a empezar", - "create.ponder.sequenced_gearshift.text_5": "Se puede utilizar un comparador de redstone para leer el progreso actual", - - "create.ponder.shaft.header": "Transmitir fuerza rotacional mediante ejes", - "create.ponder.shaft.text_1": "Los ejes transmiten la rotación en línea recta.", - - "create.ponder.shaft_casing.header": "Ejes revestidos", - "create.ponder.shaft_casing.text_1": "Puedes utilizar el revestidor de latón o de andesita para decorar tus ejes", - - "create.ponder.smart_chute.header": "Filtrar objetos mediante ductos inteligentes", - "create.ponder.smart_chute.text_1": "Los ductos inteligentes son ductos verticales con control adicional", - "create.ponder.smart_chute.text_2": "Los objetos en la ranura para filtros especifican lo que pueden extraer y transferir exactamente", - "create.ponder.smart_chute.text_3": "Usa la rueda del ratón para especificar el tamaño de la pila extraída", - "create.ponder.smart_chute.text_4": "La energía de redstone impedirá que funcionen.", - - "create.ponder.smart_pipe.header": "Controlar el flujo de fluidos mediante tuberías inteligentes", - "create.ponder.smart_pipe.text_1": "Las tuberías inteligentes pueden ayudar a controlar los flujos por tipo de fluido", - "create.ponder.smart_pipe.text_2": "Cuando se colocan directamente en la fuente, pueden especificar el tipo de fluido a extraer", - "create.ponder.smart_pipe.text_3": "Simplemente haga clic derecho en su ranura de filtro con cualquier elemento que contenga el fluido deseado", - "create.ponder.smart_pipe.text_4": "Cuando se colocan detrás de una red de tuberías, las tuberías inteligentes sólo dejan que los fluidos coincidentes continúen", - - "create.ponder.speedometer.header": "Controlar la información cinética mediante el velocímetro", - "create.ponder.speedometer.text_1": "El velocímetro muestra la velocidad actual de los componentes conectados", - "create.ponder.speedometer.text_2": "Cuando se usan las gafas del constructor, el jugador puede obtener información más detallada del medidor", - "create.ponder.speedometer.text_3": "Los comparadores pueden emitir señales analógicas de redstone en relación con las mediciones del velocímetro", - - "create.ponder.spout_filling.header": "Llenar objetos con un surtidor", - "create.ponder.spout_filling.text_1": "El surtidor puede llenar los elementos de retención de fluidos que se encuentran debajo de él", - "create.ponder.spout_filling.text_2": "No se puede acceder manualmente al contenido de un surtidor", - "create.ponder.spout_filling.text_3": "En su lugar, se pueden utilizar tuberías para suministrarle fluidos", - "create.ponder.spout_filling.text_4": "Los objetos de entrada pueden colocarse en un depósito bajo el surtidor", - "create.ponder.spout_filling.text_5": "Cuando los artículos se proporcionan en una cinta...", - "create.ponder.spout_filling.text_6": "El surtidor los retendrá y procesará automáticamente", - - "create.ponder.stabilized_bearings.header": "Estabilizar artilugios", - "create.ponder.stabilized_bearings.text_1": "Siempre que los rodamientos mecánicos formen parte de una estructura móvil...", - "create.ponder.stabilized_bearings.text_2": "...intentarán mantenerse derechos", - "create.ponder.stabilized_bearings.text_3": "Una vez más, el rodamiento se unirá al bloque de enfrente", - "create.ponder.stabilized_bearings.text_4": "Como resultado, todo el sub-artilugio se mantendrá en posición vertical", - - "create.ponder.sticker.header": "Fijar bloques con stickers", - "create.ponder.sticker.text_1": "Los stickers son ideales para la fijación de bloques controlados por redstone", - "create.ponder.sticker.text_2": "Al recibir una señal, cambiarán su estado", - "create.ponder.sticker.text_3": "Si ahora se mueve en un artilugio, el bloque se moverá con él", - "create.ponder.sticker.text_4": "Si se vuelve a activar, el bloque dejará de estar fijado", - - "create.ponder.stressometer.header": "Supervisar la información cinética con el estresómetro", - "create.ponder.stressometer.text_1": "El estresómetro muestra la capacidad de estrés actual de la red cinética conectada", - "create.ponder.stressometer.text_2": "Cuando se usan las gafas del constructor, el jugador puede obtener información más detallada del medidor", - "create.ponder.stressometer.text_3": "Los comparadores pueden emitir señales analógicas de redstone en relación con las mediciones del estresómetro", - - "create.ponder.super_glue.header": "Fijar bloques con pegamento", - "create.ponder.super_glue.text_1": "Se puede utilizar pegamento entre dos bloques cualquiera", - "create.ponder.super_glue.text_2": "Los bloques fijados se moverán juntos cuando se ensamblen en un artilugio", - "create.ponder.super_glue.text_3": "Cada vez que el pegamento es sostenido en la mano...", - "create.ponder.super_glue.text_4": "...los bloques añadidos se pegarán a la cara en la que fueron colocados automáticamente", - "create.ponder.super_glue.text_5": "El pegamento se puede quitar con un clic izquierdo", - - "create.ponder.valve_handle.header": "Generar fuerza rotacional mediante asas de válvula", - "create.ponder.valve_handle.text_1": "Los jugadores pueden utilizar las asas de válvulas para aplicar fuerza rotacional manualmente", - "create.ponder.valve_handle.text_2": "Mantén pulsado el clic derecho para rotar en sentido contrario a las agujas del reloj", - "create.ponder.valve_handle.text_3": "Su velocidad de transmisión es lenta y precisa", - "create.ponder.valve_handle.text_4": "Mayús izdo + clic derecho para rotar en el sentido de las agujas del reloj", - "create.ponder.valve_handle.text_5": "Las asas de las válvulas pueden teñirse con fines estéticos", - - "create.ponder.valve_pipe.header": "Controlar el flujo de fluidos mediante válvulas", - "create.ponder.valve_pipe.text_1": "Las tuberías con válvulas ayudan a controlar los fluidos que se propagan por las redes de tuberías", - "create.ponder.valve_pipe.text_2": "Su entrada en el eje controla si el fluido puede pasar por", - "create.ponder.valve_pipe.text_3": "Dada la fuerza de rotación en la dirección de apertura, la válvula se abrirá", - "create.ponder.valve_pipe.text_4": "Se puede volver a cerrar invirtiendo el giro de entrada", - - "create.ponder.water_wheel.header": "Generar fuerza rotacional mediante ruedas hidráulicas", - "create.ponder.water_wheel.text_1": "Las ruedas hidráulicas extraen la fuerza de las corrientes de agua adyacentes", - "create.ponder.water_wheel.text_2": "Cuantas más caras se alimenten, más rápido girará", - "create.ponder.water_wheel.text_3": "Las paletas de las ruedas deben estar orientadas en contra del flujo", - "create.ponder.water_wheel.text_4": "Orientadas hacia el lado contrario, no serán tan eficaces", - - "create.ponder.weighted_ejector.header": "Usar eyectores de peso", - "create.ponder.weighted_ejector.text_1": "Mayús izdo + clic derecho sosteniendo un eyector de peso para seleccionar la ubicación de destino", - "create.ponder.weighted_ejector.text_10": "Ahora estára limitado a este tamaño de pila, y sólo se activara cuando su pila retenida alcance esta cantidad", - "create.ponder.weighted_ejector.text_11": "Otras entidades activarán el eyector al pisarlos", - "create.ponder.weighted_ejector.text_2": "El eyector colocado lanzará ahora los objetos al lugar marcado", - "create.ponder.weighted_ejector.text_3": "Un objetivo válido puede estar a cualquier altura o distancia dentro del alcance", - "create.ponder.weighted_ejector.text_4": "Sin embargo, no pueden estar a un costado", - "create.ponder.weighted_ejector.text_5": "Si no se ha seleccionado ningún objetivo válido, simplemente se dirigirá al bloque que se encuentra justo delante", - "create.ponder.weighted_ejector.text_6": "Suministrale fuerza rotacional para cargarlo", - "create.ponder.weighted_ejector.text_7": "Los objetos colocados en el eyector hacen que se dispare", - "create.ponder.weighted_ejector.text_8": "Si se dirigen a un inventario, el eyector esperará hasta que haya espacio", - "create.ponder.weighted_ejector.text_9": "Con la llave inglesa se puede configurar el tamaño de pila requerido", - - "create.ponder.weighted_ejector_redstone.header": "Controlar los eyectores de peso con redstone", - "create.ponder.weighted_ejector_redstone.text_1": "Cuando se alimentan con redstone, los eyectores no se activan", - "create.ponder.weighted_ejector_redstone.text_2": "Además, los observadores de contenido pueden detectar cuando los eyectores se activan", - - "create.ponder.weighted_ejector_tunnel.header": "Dividir pilas de objetos mediante eyectores de peso", - "create.ponder.weighted_ejector_tunnel.text_1": "En combinación con los túneles de latón, los eyectores de peso pueden dividir las pilas de objetos en cantidades específicas", - "create.ponder.weighted_ejector_tunnel.text_2": "En primer lugar, configure el túnel de latón en 'Preferir lo más cercano', para dar prioridad a su salida lateral", - "create.ponder.weighted_ejector_tunnel.text_3": "El tamaño de la pila fijado en el eyector determina ahora la cantidad que se va a dividir", - "create.ponder.weighted_ejector_tunnel.text_4": "Mientras una nueva pila del tamaño configurado se expulse por la salida lateral...", - "create.ponder.weighted_ejector_tunnel.text_5": "...el resto seguirá su camino", - - "create.ponder.windmill_source.header": "Generar fuerza rotacional mediante rodamientos del molino de viento", - "create.ponder.windmill_source.text_1": "Los rodamientos del molino de viento se fijan al bloque que tienen delante", - "create.ponder.windmill_source.text_2": "Si se unen suficientes bloques tipo vela al bloque, éste puede actuar como un molino de viento", - "create.ponder.windmill_source.text_3": "Activado con un clic derecho, el rodamiento del molino de viento comenzará a proporcionar fuerza rotacional", - "create.ponder.windmill_source.text_4": "La cantidad de bloques de vela determina su velocidad de rotación", - "create.ponder.windmill_source.text_5": "Utiliza una llave inglesa para configurar su sentido de rotación", - "create.ponder.windmill_source.text_6": "Haga clic derecho sobre el rodamiento del molino en cualquier momento para detener y editar la estructura de nuevo", - - "create.ponder.windmill_structure.header": "Artilugios para molinos de viento", - "create.ponder.windmill_structure.text_1": "Cualquier estructura puede contar como un molino de viento válido, siempre que contenga al menos 8 bloques tipo vela.", - - "_": "Thank you for translating Create!" - -} From 33930f7364be2db77b895cf7cc5948a6ef5bfb0e Mon Sep 17 00:00:00 2001 From: Nekrodamus Date: Sat, 7 Aug 2021 17:08:18 -0300 Subject: [PATCH 23/79] Delete es_ve.json --- .../resources/assets/create/lang/es_ve.json | 2305 ----------------- 1 file changed, 2305 deletions(-) delete mode 100644 src/main/resources/assets/create/lang/es_ve.json diff --git a/src/main/resources/assets/create/lang/es_ve.json b/src/main/resources/assets/create/lang/es_ve.json deleted file mode 100644 index 504694aab..000000000 --- a/src/main/resources/assets/create/lang/es_ve.json +++ /dev/null @@ -1,2305 +0,0 @@ -{ - - "_": "->------------------------] Game Elements [------------------------<-", - - "block.create.acacia_window": "Ventana de acacia", - "block.create.acacia_window_pane": "Panel de ventana de acacia", - "block.create.adjustable_chain_gearshift": "Cadena de transmisión ajustable", - "block.create.adjustable_crate": "Caja ajustable", - "block.create.adjustable_pulse_repeater": "Repetidor de pulso ajustable", - "block.create.adjustable_repeater": "Repetidor ajustable", - "block.create.analog_lever": "Palanca analógica", - "block.create.andesite_belt_funnel": "Embudo de cinta de andesita", - "block.create.andesite_bricks": "Ladrillos de andesita", - "block.create.andesite_bricks_slab": "Losa de ladrillos de andesita", - "block.create.andesite_bricks_stairs": "Escaleras de ladrillos de andesita", - "block.create.andesite_bricks_wall": "Muro de ladrillos de andesita", - "block.create.andesite_casing": "Revestidor de andesita", - "block.create.andesite_cobblestone": "Adoquín de andesita", - "block.create.andesite_cobblestone_slab": "Losa de adoquín de andesita", - "block.create.andesite_cobblestone_stairs": "Escaleras de adoquines de andesita", - "block.create.andesite_cobblestone_wall": "Muro de adoquines de andesita", - "block.create.andesite_encased_shaft": "Eje revestido de andesita", - "block.create.andesite_funnel": "Embudo de andesita", - "block.create.andesite_pillar": "Poste de andesita", - "block.create.andesite_tunnel": "Túnel de Andesita", - "block.create.basin": "Cuenca", - "block.create.belt": "Cinta", - "block.create.birch_window": "Ventana de abedul", - "block.create.birch_window_pane": "Panel de ventana de abedul", - "block.create.black_nixie_tube": "Tubo Nixie negro", - "block.create.black_sail": "Vela negra", - "block.create.black_seat": "Asiento negro", - "block.create.black_valve_handle": "Asa de válvula negra", - "block.create.blaze_burner": "Quemador de Blaze", - "block.create.blue_nixie_tube": "Tubo Nixie azul", - "block.create.blue_sail": "Vela azul", - "block.create.blue_seat": "Asiento azul", - "block.create.blue_valve_handle": "Asa de válvula azul", - "block.create.brass_belt_funnel": "Embudo de cinta de latón", - "block.create.brass_block": "Bloque de latón", - "block.create.brass_casing": "Revestidor de latón", - "block.create.brass_encased_shaft": "Eje revestido de latón", - "block.create.brass_funnel": "Embudo de latón", - "block.create.brass_tunnel": "Túnel de latón", - "block.create.brown_nixie_tube": "Tubo Nixie marrón", - "block.create.brown_sail": "Vela marrón", - "block.create.brown_seat": "Asiento marrón", - "block.create.brown_valve_handle": "Asa de válvula marrón", - "block.create.cart_assembler": "Ensamblador de vagonetas", - "block.create.chiseled_dark_scoria": "Escoria oscura cincelada", - "block.create.chiseled_dolomite": "Dolomita cincelada", - "block.create.chiseled_gabbro": "Gabro cincelado", - "block.create.chiseled_limestone": "Caliza cincelada", - "block.create.chiseled_scoria": "Escoria cincelada", - "block.create.chiseled_weathered_limestone": "Piedra caliza erosionada cincelada", - "block.create.chocolate": "Chocolate", - "block.create.chute": "Ducto", - "block.create.clockwork_bearing": "Rodamiento tipo reloj", - "block.create.clutch": "Embrague", - "block.create.cogwheel": "Engranaje pequeño", - "block.create.content_observer": "Observador de contenidos", - "block.create.controller_rail": "Raíl de control", - "block.create.copper_backtank": "Depósito trasero de cobre", - "block.create.copper_block": "Bloque de cobre", - "block.create.copper_casing": "Revestidor de caliza", - "block.create.copper_ore": "Mena de cobre", - "block.create.copper_shingles": "Bloque de tejas de cobre", - "block.create.copper_tiles": "Bloque de baldosas de cobre", - "block.create.copper_valve_handle": "Asa de válvula de cobre", - "block.create.creative_crate": "Caja creativa", - "block.create.creative_fluid_tank": "Tanque de fluidos creativo", - "block.create.creative_motor": "Motor creativo", - "block.create.crimson_window": "Ventana carmesí", - "block.create.crimson_window_pane": "Panel de ventana carmesí", - "block.create.crushing_wheel": "Rueda trituradora", - "block.create.crushing_wheel_controller": "Controlador de Rueda trituradora", - "block.create.cuckoo_clock": "Reloj de cuco", - "block.create.cyan_nixie_tube": "Tubo Nixie cian", - "block.create.cyan_sail": "Vela cian", - "block.create.cyan_seat": "Asiento cian", - "block.create.cyan_valve_handle": "Asa de válvula cian", - "block.create.dark_oak_window": "Ventana de roble oscuro", - "block.create.dark_oak_window_pane": "Panel de ventana de roble oscuro", - "block.create.dark_scoria": "Escoria oscura", - "block.create.dark_scoria_bricks": "Ladrillos de escoria oscura", - "block.create.dark_scoria_bricks_slab": "Losa de ladrillos de escoria oscura", - "block.create.dark_scoria_bricks_stairs": "Escaleras de ladrillos de escoria oscura", - "block.create.dark_scoria_bricks_wall": "Muro de ladrillos de escoria oscura", - "block.create.dark_scoria_cobblestone": "Adoquines de escoria oscura", - "block.create.dark_scoria_cobblestone_slab": "Losa de adoquines de escoria oscura", - "block.create.dark_scoria_cobblestone_stairs": "Escaleras de adoquines de escoria oscura", - "block.create.dark_scoria_cobblestone_wall": "Muro de adoquines de escoria oscura", - "block.create.dark_scoria_pillar": "Pilar de escoria oscura", - "block.create.deployer": "Desplegador", - "block.create.depot": "Depósito", - "block.create.diorite_bricks": "Ladrillos de diorita", - "block.create.diorite_bricks_slab": "Losa de ladrillos de diorita", - "block.create.diorite_bricks_stairs": "Escaleras de ladrillos de diorita", - "block.create.diorite_bricks_wall": "Muro de ladrillos de diorita", - "block.create.diorite_cobblestone": "Adoquín de diorita", - "block.create.diorite_cobblestone_slab": "Losa de adoquínes de diorita", - "block.create.diorite_cobblestone_stairs": "Escaleras de adoquines de diorita", - "block.create.diorite_cobblestone_wall": "Muro de adoquines de diorita", - "block.create.diorite_pillar": "Pilar de diorita", - "block.create.dolomite": "Dolomita", - "block.create.dolomite_bricks": "Ladrillos de dolomita", - "block.create.dolomite_bricks_slab": "Losa de ladrillos de dolomita", - "block.create.dolomite_bricks_stairs": "Escaleras de ladrillos de dolomita", - "block.create.dolomite_bricks_wall": "Muro de ladrillos de dolomita", - "block.create.dolomite_cobblestone": "Adoquín de dolomita", - "block.create.dolomite_cobblestone_slab": "Losa de adoquín de dolomita", - "block.create.dolomite_cobblestone_stairs": "Escaleras de adoquines de dolomita", - "block.create.dolomite_cobblestone_wall": "Muro de adoquines de dolomita", - "block.create.dolomite_pillar": "Pilar de dolomita", - "block.create.encased_chain_drive": "Cadena de transmisión revestida", - "block.create.encased_fan": "Ventilador revestido", - "block.create.encased_fluid_pipe": "Tubería de fluidos de cobre reforzada", - "block.create.fancy_andesite_bricks": "Ladrillos de andesita elegantes", - "block.create.fancy_andesite_bricks_slab": "Ladrillos de andesita elegantes", - "block.create.fancy_andesite_bricks_stairs": "Escaleras de ladrillos de andesita elegantes", - "block.create.fancy_andesite_bricks_wall": "Muro de ladrillos de andesita elegantes", - "block.create.fancy_dark_scoria_bricks": "Ladrillos de escoria oscura elegantes", - "block.create.fancy_dark_scoria_bricks_slab": "Losa de ladrillos de escoria oscura elegantes", - "block.create.fancy_dark_scoria_bricks_stairs": "Escalera de ladrillos de escoria oscura elegantes", - "block.create.fancy_dark_scoria_bricks_wall": "Muro de ladrillos de escoria oscura elegantes", - "block.create.fancy_diorite_bricks": "Ladrillos de diorita elegantes", - "block.create.fancy_diorite_bricks_slab": "Losa de ladrillos de diorita elegantes", - "block.create.fancy_diorite_bricks_stairs": "Escaleras de ladrillos de diorita elegantes", - "block.create.fancy_diorite_bricks_wall": "Muro de ladrillos de diorita elegantes", - "block.create.fancy_dolomite_bricks": "Ladrillos de dolomita elegantes", - "block.create.fancy_dolomite_bricks_slab": "Losa de ladrillos de dolomita elegantes", - "block.create.fancy_dolomite_bricks_stairs": "Escaleras de ladrillos de dolomita elegantes", - "block.create.fancy_dolomite_bricks_wall": "Muro de ladrillos de dolomita elegantes", - "block.create.fancy_gabbro_bricks": "Ladrillos de gabro elegantes", - "block.create.fancy_gabbro_bricks_slab": "Losa de ladrillos de gabro elegantes", - "block.create.fancy_gabbro_bricks_stairs": "Escaleras de ladrillos de gabro elegantes", - "block.create.fancy_gabbro_bricks_wall": "Muro de ladrillos de gabro elegantes", - "block.create.fancy_granite_bricks": "Ladrillos de granito elegantes", - "block.create.fancy_granite_bricks_slab": "Losa de ladrillos de granito elegantes", - "block.create.fancy_granite_bricks_stairs": "Escaleras de ladrillos de granito elegantes", - "block.create.fancy_granite_bricks_wall": "Muro de ladrillos de granito elegantes", - "block.create.fancy_limestone_bricks": "Ladrillos de piedra caliza elegantes", - "block.create.fancy_limestone_bricks_slab": "Losa de ladrillos de piedra caliza elegantes", - "block.create.fancy_limestone_bricks_stairs": "Escaleras de ladrillos de piedra caliza elegantes", - "block.create.fancy_limestone_bricks_wall": "Muro de ladrillos de piedra caliza elegantes", - "block.create.fancy_scoria_bricks": "Ladrillos de escoria elegantes", - "block.create.fancy_scoria_bricks_slab": "Losa de ladrillos de escoria elegantes", - "block.create.fancy_scoria_bricks_stairs": "Escaleras de ladrillos de escoria elegantes", - "block.create.fancy_scoria_bricks_wall": "Muro de ladrillos de escoria elegantes", - "block.create.fancy_weathered_limestone_bricks": "Ladrillos de piedra de caliza erosionada elegantes", - "block.create.fancy_weathered_limestone_bricks_slab": "Losa de ladrillos de caliza erosionada elegantes", - "block.create.fancy_weathered_limestone_bricks_stairs": "Escaleras de ladrillos de caliza erosionada elegantes", - "block.create.fancy_weathered_limestone_bricks_wall": "Muro de ladrillos de caliza erosionada elegantes", - "block.create.fluid_pipe": "Tubería de fluidos de cobre", - "block.create.fluid_tank": "Depósito de fluidos", - "block.create.fluid_valve": "Válvula de fluidos", - "block.create.flywheel": "Rueda de inercia", - "block.create.framed_glass": "Cristal enmarcado", - "block.create.framed_glass_pane": "Panel de cristal enmarcado", - "block.create.furnace_engine": "Motor de horno", - "block.create.gabbro": "Gabro", - "block.create.gabbro_bricks": "Ladrillos de gabro", - "block.create.gabbro_bricks_slab": "Losa de ladrillos de gabro", - "block.create.gabbro_bricks_stairs": "Escaleras de ladrillos de gabro", - "block.create.gabbro_bricks_wall": "Muro de ladrillos de gabro", - "block.create.gabbro_cobblestone": "Adoquín de gabro", - "block.create.gabbro_cobblestone_slab": "Losa de adoquínes de gabro", - "block.create.gabbro_cobblestone_stairs": "Escaleras de adoquínes de gabro", - "block.create.gabbro_cobblestone_wall": "Muro de adoquínes de gabro", - "block.create.gabbro_pillar": "Pilar de gabro", - "block.create.gantry_carriage": "Carro de grúa", - "block.create.gantry_shaft": "Eje de grúa", - "block.create.gearbox": "Caja de transmisión", - "block.create.gearshift": "Caja de cambios", - "block.create.glass_fluid_pipe": "Tubería de fluidos de cristal", - "block.create.granite_bricks": "Ladrillos de granito", - "block.create.granite_bricks_slab": "Losa de ladrillos de granito", - "block.create.granite_bricks_stairs": "Escaleras de ladrillos de granito", - "block.create.granite_bricks_wall": "Muro de ladrillos de granito", - "block.create.granite_cobblestone": "Adoquín de granito", - "block.create.granite_cobblestone_slab": "Losa de adoquínes de granito", - "block.create.granite_cobblestone_stairs": "Escaleras de adoquínes de granito", - "block.create.granite_cobblestone_wall": "Muro de adoquínes de granito", - "block.create.granite_pillar": "Pilar de granito", - "block.create.gray_nixie_tube": "Tubo Nixie gris", - "block.create.gray_sail": "Vela gris", - "block.create.gray_seat": "Asiento gris", - "block.create.gray_valve_handle": "Asa de válvula gris", - "block.create.green_nixie_tube": "Tubo Nixie verde", - "block.create.green_sail": "Vela verde", - "block.create.green_seat": "Asiento verde", - "block.create.green_valve_handle": "Asa de válvula verde", - "block.create.hand_crank": "Manivela", - "block.create.haunted_bell": "Campana encantada", - "block.create.honey": "Miel", - "block.create.horizontal_framed_glass": "Cristal con marco horizontal", - "block.create.horizontal_framed_glass_pane": "Panel de cristal con marco horizontal", - "block.create.hose_pulley": "Polea de manguera", - "block.create.item_drain": "Drenador de objetos", - "block.create.jungle_window": "Ventana de jungla", - "block.create.jungle_window_pane": "Panel de ventana de jungla", - "block.create.large_cogwheel": "Engranaje grande", - "block.create.layered_andesite": "Andesita estratificada", - "block.create.layered_dark_scoria": "Escoria oscura estratificada", - "block.create.layered_diorite": "Diorita estratificada", - "block.create.layered_dolomite": "Dolomita estratificada", - "block.create.layered_gabbro": "Gabro estratificado", - "block.create.layered_granite": "Granito estratificado", - "block.create.layered_limestone": "Piedra caliza estratificada", - "block.create.layered_scoria": "Escoria estratificada", - "block.create.layered_weathered_limestone": "Caliza erosionada estratificada", - "block.create.lectern_controller": "Controlador de atril", - "block.create.light_blue_nixie_tube": "Tubo Nixie azul claro", - "block.create.light_blue_sail": "Vela azul claro", - "block.create.light_blue_seat": "Asiento azul claro", - "block.create.light_blue_valve_handle": "Asa de válvula azul claro", - "block.create.light_gray_nixie_tube": "Tubo Nixie gris claro", - "block.create.light_gray_sail": "Vela gris claro", - "block.create.light_gray_seat": "Asiento gris claro", - "block.create.light_gray_valve_handle": "Asa de válvula gris claro", - "block.create.lime_nixie_tube": "Tubo Nixie lima", - "block.create.lime_sail": "Vela lima", - "block.create.lime_seat": "Asiento lima", - "block.create.lime_valve_handle": "Asa de válvula lima", - "block.create.limesand": "Arena caliza", - "block.create.limestone": "Piedra caliza", - "block.create.limestone_bricks": "Ladrillos de piedra caliza", - "block.create.limestone_bricks_slab": "Losa de ladrillos de piedra caliza", - "block.create.limestone_bricks_stairs": "Escaleras de ladrillos de piedra caliza", - "block.create.limestone_bricks_wall": "Muro de ladrillos de piedra caliza", - "block.create.limestone_cobblestone": "Adoquínes de piedra caliza", - "block.create.limestone_cobblestone_slab": "Losa de adoquines de piedra caliza", - "block.create.limestone_cobblestone_stairs": "Escaleras de adoquines de piedra caliza", - "block.create.limestone_cobblestone_wall": "Muro de adoquines de piedra caliza", - "block.create.limestone_pillar": "Pilar de piedra caliza", - "block.create.linear_chassis": "Chasis lineal", - "block.create.lit_blaze_burner": "Quemador de Blaze encendido", - "block.create.magenta_nixie_tube": "Tubo Nixie magenta", - "block.create.magenta_sail": "Vela magenta", - "block.create.magenta_seat": "Asiento magenta", - "block.create.magenta_valve_handle": "Asa de válvula magenta", - "block.create.mechanical_arm": "Brazo mecánico", - "block.create.mechanical_bearing": "Rodamiento mecánico", - "block.create.mechanical_crafter": "Ensamblador mecánico", - "block.create.mechanical_drill": "Taladro mecánico", - "block.create.mechanical_harvester": "Cosechadora mecánica", - "block.create.mechanical_mixer": "Mezcladora mecánica", - "block.create.mechanical_piston": "Pistón mecánico", - "block.create.mechanical_piston_head": "Cabezal de pistón mecánico", - "block.create.mechanical_plough": "Arado mecánico", - "block.create.mechanical_press": "Prensa mecánica", - "block.create.mechanical_pump": "Bomba mecánica", - "block.create.mechanical_saw": "Sierra mecánica", - "block.create.metal_bracket": "Soporte de metal para ejes", - "block.create.millstone": "Piedra de molino", - "block.create.minecart_anchor": "Ancla de vagonetas", - "block.create.mossy_andesite": "Andesita musgosa", - "block.create.mossy_dark_scoria": "Escoria oscura musgosa", - "block.create.mossy_diorite": "Diorita musgosa", - "block.create.mossy_dolomite": "Dolomita musgosa", - "block.create.mossy_gabbro": "Gabro musgoso", - "block.create.mossy_granite": "Granito musgoso", - "block.create.mossy_limestone": "Caliza musgosa", - "block.create.mossy_scoria": "Escoria musgosa", - "block.create.mossy_weathered_limestone": "Caliza erosionada musgosa", - "block.create.mysterious_cuckoo_clock": "Reloj de cuco", - "block.create.natural_scoria": "Escoria natural", - "block.create.nixie_tube": "Tubo Nixie", - "block.create.nozzle": "Boquilla", - "block.create.oak_window": "Ventana de roble", - "block.create.oak_window_pane": "Panel de ventana de roble", - "block.create.orange_sail": "Vela naranja", - "block.create.orange_seat": "Asiento naranja", - "block.create.orange_valve_handle": "Asa de válvula naranja", - "block.create.ornate_iron_window": "Ventana de hierro ornamentada", - "block.create.ornate_iron_window_pane": "Panel de ventana de hierro ornamentada", - "block.create.overgrown_andesite": "Andesita sobredimensionada", - "block.create.overgrown_dark_scoria": "Escoria oscura sobredimensionada", - "block.create.overgrown_diorite": "Diorita sobredimensionada", - "block.create.overgrown_dolomite": "Dolomita sobredimensionada", - "block.create.overgrown_gabbro": "Gabro sobredimensionado", - "block.create.overgrown_granite": "Granito sobredimensionado", - "block.create.overgrown_limestone": "Caliza sobredimensionada", - "block.create.overgrown_scoria": "Escoria sobredimensionada", - "block.create.overgrown_weathered_limestone": "Caliza erosionada sobredimensionada", - "block.create.paved_andesite": "Andesita pavimentada", - "block.create.paved_andesite_slab": "Losa de andesita pavimentada", - "block.create.paved_andesite_stairs": "Escaleras de andesita pavimentada", - "block.create.paved_andesite_wall": "Muro de andesita pavimentada", - "block.create.paved_dark_scoria": "Escoria oscura pavimentada", - "block.create.paved_dark_scoria_slab": "Losa de escoria oscura pavimentada", - "block.create.paved_dark_scoria_stairs": "Escaleras de escoria oscura pavimentada", - "block.create.paved_dark_scoria_wall": "Muro de escoria oscura pavimentad", - "block.create.paved_diorite": "Diorita pavimentada", - "block.create.paved_diorite_slab": "Losa de diorita pavimentada", - "block.create.paved_diorite_stairs": "Escaleras de diorita pavimentada", - "block.create.paved_diorite_wall": "Muro de diorita pavimentad", - "block.create.paved_dolomite": "Dolomita pavimentada", - "block.create.paved_dolomite_slab": "Losa de dolomita pavimentada", - "block.create.paved_dolomite_stairs": "Escaleras de dolomita pavimentada", - "block.create.paved_dolomite_wall": "Muro de dolomita pavimentada", - "block.create.paved_gabbro": "Gabro pavimentado", - "block.create.paved_gabbro_slab": "Losa de gabro pavimentado", - "block.create.paved_gabbro_stairs": "Escaleras de gabro pavimentado", - "block.create.paved_gabbro_wall": "Muro de gabro pavimentado", - "block.create.paved_granite": "Granito pavimentado", - "block.create.paved_granite_slab": "Losa de granito pavimentado", - "block.create.paved_granite_stairs": "Escaleras de granito pavimentado", - "block.create.paved_granite_wall": "Muro de granito pavimentado", - "block.create.paved_limestone": "Piedra caliza pavimentada", - "block.create.paved_limestone_slab": "Losa de piedra caliza pavimentada", - "block.create.paved_limestone_stairs": "Escaleras de piedra caliza pavimentada", - "block.create.paved_limestone_wall": "Muro de piedra caliza pavimentada", - "block.create.paved_scoria": "Escoria pavimentada", - "block.create.paved_scoria_slab": "Losa de escoria pavimentada", - "block.create.paved_scoria_stairs": "Escaleras de escoria pavimentada", - "block.create.paved_scoria_wall": "Muro de escoria pavimentada", - "block.create.paved_weathered_limestone": "Piedra caliza erosionada pavimentada", - "block.create.paved_weathered_limestone_slab": "Losa de piedra caliza erosionada pavimentada", - "block.create.paved_weathered_limestone_stairs": "Escaleras de piedra caliza erosionada pavimentada", - "block.create.paved_weathered_limestone_wall": "Muro de piedra caliza erosionada pavimentada", - "block.create.peculiar_bell": "Campana peculiar", - "block.create.pink_nixie_tube": "Tubo Nixie rosa", - "block.create.pink_sail": "Vela rosa", - "block.create.pink_seat": "Asiento rosa", - "block.create.pink_valve_handle": "Asa de válvula rosa", - "block.create.piston_extension_pole": "Pértiga de extensión de pistón", - "block.create.polished_dark_scoria": "Escoria oscura pulida", - "block.create.polished_dark_scoria_slab": "Losa de escoria oscura pulida", - "block.create.polished_dark_scoria_stairs": "Escaleras de escoria oscura pulida", - "block.create.polished_dark_scoria_wall": "Muro de escoria oscura pulida", - "block.create.polished_dolomite": "Dolomita pulida", - "block.create.polished_dolomite_slab": "Losa de dolomita pulida", - "block.create.polished_dolomite_stairs": "Escaleras de dolomita pulidas", - "block.create.polished_dolomite_wall": "Muro de dolomita pulida", - "block.create.polished_gabbro": "Gabro pulido", - "block.create.polished_gabbro_slab": "Losa de gabro pulido", - "block.create.polished_gabbro_stairs": "Escaleras de gabro pulido", - "block.create.polished_gabbro_wall": "Muro de gabro pulido", - "block.create.polished_limestone": "Piedra caliza pulida", - "block.create.polished_limestone_slab": "Losa de piedra caliza pulida", - "block.create.polished_limestone_stairs": "Escaleras de piedra caliza pulidas", - "block.create.polished_limestone_wall": "Muro de piedra caliza pulida", - "block.create.polished_scoria": "Escoria pulida", - "block.create.polished_scoria_slab": "Losa de escoria pulida", - "block.create.polished_scoria_stairs": "Escaleras de losa pulida", - "block.create.polished_scoria_wall": "Muro de escoria pulida", - "block.create.polished_weathered_limestone": "Piedra caliza erosionada pulida", - "block.create.polished_weathered_limestone_slab": "Losa de piedra caliza erosionada pulida", - "block.create.polished_weathered_limestone_stairs": "Escaleras de piedra caliza erosionada pulida", - "block.create.polished_weathered_limestone_wall": "Muro de piedra caliza erosionada pulida", - "block.create.portable_fluid_interface": "Interfaz de fluidos portátil", - "block.create.portable_storage_interface": "Interfaz de almacenamiento portátil", - "block.create.powered_latch": "Palanca motorizada", - "block.create.powered_toggle_latch": "Palanca de cierre motorizada", - "block.create.pulley_magnet": "Imán de la polea", - "block.create.pulse_repeater": "Repetidor de pulsos de redstone", - "block.create.purple_nixie_tube": "Tubo Nixie morado", - "block.create.purple_sail": "Vela morada", - "block.create.purple_seat": "Asiento morado", - "block.create.purple_valve_handle": "Asa de válvula morada", - "block.create.radial_chassis": "Chasis radial", - "block.create.red_nixie_tube": "Tubo Nixie rojo", - "block.create.red_sail": "Vela roja", - "block.create.red_seat": "Asiento rojo", - "block.create.red_valve_handle": "Asa de válvula roja", - "block.create.redstone_contact": "Contacto de redstone", - "block.create.redstone_link": "Enlace de redstone", - "block.create.refined_radiance_casing": "Revestidor radiante", - "block.create.reinforced_rail": "Raíl reforzado", - "block.create.rope": "Cuerda", - "block.create.rope_pulley": "Polea de cuerda", - "block.create.rotation_speed_controller": "Controlador de velocidad rotacional", - "block.create.sail_frame": "Marco de vela", - "block.create.schematic_table": "Tabla de esquemas", - "block.create.schematicannon": "Cañón de esquemas", - "block.create.scoria": "Escoria", - "block.create.scoria_bricks": "Ladrillos de escoria", - "block.create.scoria_bricks_slab": "Losa de ladrillos de escoria", - "block.create.scoria_bricks_stairs": "Escaleras de ladrillos de escoria", - "block.create.scoria_bricks_wall": "Muro de ladrillos de escoria", - "block.create.scoria_cobblestone": "Adoquín de escoria", - "block.create.scoria_cobblestone_slab": "Losa de adoquínes de escoria", - "block.create.scoria_cobblestone_stairs": "Escaleras de adoquines de escoria", - "block.create.scoria_cobblestone_wall": "Muro de adoquines de escoria", - "block.create.scoria_pillar": "Pilar de escoria", - "block.create.secondary_linear_chassis": "Chasis lineal secundario", - "block.create.sequenced_gearshift": "Caja de cambios secuencial", - "block.create.shadow_steel_casing": "Revestidor sombrío", - "block.create.shaft": "Eje", - "block.create.smart_chute": "Ducto inteligente", - "block.create.smart_fluid_pipe": "Tubería de fluidos inteligente", - "block.create.speedometer": "Velocímetro", - "block.create.spout": "Surtidor", - "block.create.spruce_window": "Ventana de abeto", - "block.create.spruce_window_pane": "Panel de ventana de abeto", - "block.create.sticker": "Sticker", - "block.create.sticky_mechanical_piston": "Pistón mecánico pegajoso", - "block.create.stockpile_switch": "Interruptor de acopio", - "block.create.stressometer": "Estresómetro", - "block.create.tiled_glass": "Vidrio esmaltado", - "block.create.tiled_glass_pane": "Panel de vidrio esmaltado", - "block.create.turntable": "Plataforma giratoria mecánica", - "block.create.vertical_framed_glass": "Vidrio esmaltado vertical", - "block.create.vertical_framed_glass_pane": "Panel de vidrio esmaltado vertical", - "block.create.warped_window": "Ventana distorsionada", - "block.create.warped_window_pane": "Panel de ventana distorsionada", - "block.create.water_wheel": "Rueda hidráulica mecánica", - "block.create.weathered_limestone": "Piedra caliza erosionada", - "block.create.weathered_limestone_bricks": "Ladrillos de piedra caliza erosionada", - "block.create.weathered_limestone_bricks_slab": "Losa de piedra caliza erosionada", - "block.create.weathered_limestone_bricks_stairs": "Escaleras de ladrillos de piedra caliza erosionada", - "block.create.weathered_limestone_bricks_wall": "Muro de ladrillos de piedra caliza erosionada", - "block.create.weathered_limestone_cobblestone": "Adoquín de piedra caliza erosionada", - "block.create.weathered_limestone_cobblestone_slab": "Losa de adoquín de piedra caliza erosionada", - "block.create.weathered_limestone_cobblestone_stairs": "Escaleras de adoquín de piedra caliza erosionada", - "block.create.weathered_limestone_cobblestone_wall": "Muro de adoquínes de piedra caliza erosionada", - "block.create.weathered_limestone_pillar": "Pilar de piedra caliza erosionada", - "block.create.weighted_ejector": "Eyector de peso", - "block.create.white_nixie_tube": "Tubo Nixie blanco", - "block.create.white_sail": "Vela blanca", - "block.create.white_seat": "Asiento blanco", - "block.create.white_valve_handle": "Asa de válvula blanco", - "block.create.windmill_bearing": "Rodamiento del molino de viento", - "block.create.wooden_bracket": "Soporte de madera para ejes", - "block.create.yellow_nixie_tube": "Tubo Nixie amarillo", - "block.create.yellow_sail": "Vela amarilla", - "block.create.yellow_seat": "Asiento amarillo", - "block.create.yellow_valve_handle": "Asa de válvula amarillo", - "block.create.zinc_block": "Bloque de zinc", - "block.create.zinc_ore": "Mena de zinc", - - "enchantment.create.capacity": "Capacidad", - "enchantment.create.potato_recovery": "Recuperación de patatas", - - "entity.create.contraption": "Artilugio", - "entity.create.crafting_blueprint": "Plano de elaboración", - "entity.create.gantry_contraption": "Artilugio de grúa", - "entity.create.potato_projectile": "Proyectil de patata", - "entity.create.seat": "Asiento", - "entity.create.stationary_contraption": "Artilugio estacionario", - "entity.create.super_glue": "Pegamento", - - "fluid.create.potion": "Poción", - "fluid.create.tea": "Té del Constructor", - - "item.create.andesite_alloy": "Aleación de andesita", - "item.create.attribute_filter": "Filtro de atributos", - "item.create.bar_of_chocolate": "Barra de chocolate", - "item.create.belt_connector": "Correa mecánica", - "item.create.blaze_cake": "Pastel de blaze", - "item.create.blaze_cake_base": "Base de pastel de blaze", - "item.create.brass_hand": "Mano de latón", - "item.create.brass_ingot": "Lingote de latón", - "item.create.brass_nugget": "Pepita de latón", - "item.create.brass_sheet": "Lámina de latón", - "item.create.builders_tea": "Té del Constructor", - "item.create.chest_minecart_contraption": "Artilugio de vagoneta con cofre", - "item.create.chocolate_bucket": "Cubo con chocolate", - "item.create.chocolate_glazed_berries": "Bayas glaseadas con chocolate", - "item.create.chromatic_compound": "Compuesto cromático", - "item.create.cinder_flour": "Harina del Nether", - "item.create.copper_backtank": "Depósito trasero de cobre", - "item.create.copper_ingot": "Lingote de cobre", - "item.create.copper_nugget": "Pepita de cobre", - "item.create.copper_sheet": "Lámina de cobre", - "item.create.crafter_slot_cover": "Tapa de ranura del ensamblador mecánico", - "item.create.crafting_blueprint": "Plano de elaboración", - "item.create.creative_blaze_cake": "´Pastel de blaze creativo", - "item.create.crushed_aluminum_ore": "Mineral de aluminio molido", - "item.create.crushed_brass": "Latón molido", - "item.create.crushed_copper_ore": "Mineral de cobre molido", - "item.create.crushed_gold_ore": "Mineral de oro molido", - "item.create.crushed_iron_ore": "Mineral de hierro molido", - "item.create.crushed_lead_ore": "Mineral de plomo molido", - "item.create.crushed_nickel_ore": "Mineral de níquel molido", - "item.create.crushed_osmium_ore": "Mineral de osmio molido", - "item.create.crushed_platinum_ore": "Mineral de platino molido", - "item.create.crushed_quicksilver_ore": "Mineral de mercurio molido", - "item.create.crushed_silver_ore": "Mineral de plata molido", - "item.create.crushed_tin_ore": "Mineral de estaño molido", - "item.create.crushed_uranium_ore": "Mineral de uranio molido", - "item.create.crushed_zinc_ore": "Mineral de zinc molido", - "item.create.diving_boots": "Botas de buceo", - "item.create.diving_helmet": "Casco de buceo", - "item.create.dough": "Masilla", - "item.create.electron_tube": "Tubo de electrones", - "item.create.empty_blaze_burner": "Quemador de blaze vacío", - "item.create.empty_schematic": "Esquema vacío", - "item.create.extendo_grip": "Agarre extendido", - "item.create.filter": "Filtro", - "item.create.furnace_minecart_contraption": "Artilugio de vagoneta de horno", - "item.create.goggles": "Gafas del constructor", - "item.create.golden_sheet": "Lámina de oro", - "item.create.handheld_worldshaper": "Worldshaper Creativo", - "item.create.honey_bucket": "Cubo con miel", - "item.create.honeyed_apple": "Manzana con miel", - "item.create.incomplete_cogwheel": "Engranaje pequeño incompleto", - "item.create.incomplete_large_cogwheel": "Engranaje grande incompleto", - "item.create.incomplete_precision_mechanism": "Mecanismo de precisión incompleto", - "item.create.iron_sheet": "Lámina de hierro", - "item.create.linked_controller": "Controlador enlazado", - "item.create.minecart_contraption": "Artilugio de vagoneta", - "item.create.minecart_coupling": "Acoplamiento de vagoneta", - "item.create.polished_rose_quartz": "Cuarzo rosado pulido", - "item.create.potato_cannon": "Cañón de patatas", - "item.create.powdered_obsidian": "Polvo de obsidiana", - "item.create.precision_mechanism": "Mecanismo de precisión", - "item.create.propeller": "Hélice", - "item.create.red_sand_paper": "Papel de lija rojo", - "item.create.refined_radiance": "Resplandor refinado", - "item.create.rose_quartz": "Cuarzo rosado", - "item.create.sand_paper": "Papel de lija", - "item.create.schematic": "Esquema", - "item.create.schematic_and_quill": "Esquema y pluma", - "item.create.shadow_steel": "Acero sombrío", - "item.create.super_glue": "Pegamento", - "item.create.sweet_roll": "Pan dulce", - "item.create.tree_fertilizer": "Fertilizante para árboles", - "item.create.vertical_gearbox": "Caja de transmisión vertical", - "item.create.wand_of_symmetry": "Varita de simetría", - "item.create.wheat_flour": "Harina de trigo", - "item.create.whisk": "Batidora", - "item.create.wrench": "Llave inglesa", - "item.create.zinc_ingot": "Lingote de zinc", - "item.create.zinc_nugget": "Pepita de zinc", - - - "_": "->------------------------] Advancements [------------------------<-", - - "advancement.create.root": "Bienvenido a Create", - "advancement.create.root.desc": "¡Es hora de empezar a construir increíbles artilugios!", - "advancement.create.andesite_alloy": "Aleaciones en abundancia", - "advancement.create.andesite_alloy.desc": "Los materiales de Create tienen nombres extraños, la aleación de andesita es uno de ellos.", - "advancement.create.its_alive": "¡Está vivo!", - "advancement.create.its_alive.desc": "Mira cómo gira tu primer componente cinético.", - "advancement.create.shifting_gears": "Cambiando de marcha", - "advancement.create.shifting_gears.desc": "Conecta un engranaje grande a uno pequeño, lo que te permitirá cambiar la velocidad de tu artilugio.", - "advancement.create.overstressed": "Sobrecargado", - "advancement.create.overstressed.desc": "Experimenta los límites del estrés.", - "advancement.create.belt": "Paseo de algas", - "advancement.create.belt.desc": "Conectar dos ejes con una correa.", - "advancement.create.tunnel": "¡Cúbrete!", - "advancement.create.tunnel.desc": "Embellece tu correa con un túnel.", - "advancement.create.splitter_tunnel": "Divide y vencerás", - "advancement.create.splitter_tunnel.desc": "Crear un divisor con un grupo de túneles de latón.", - "advancement.create.chute": "Caída en picado", - "advancement.create.chute.desc": "Coloque un ducto, la contrapartida vertical de la cinta.", - "advancement.create.upward_chute": "Abducción aérea", - "advancement.create.upward_chute.desc": "Observe cómo un objeto lanzado vuela dentro de un ducto impulsado por un ventilador.", - "advancement.create.belt_funnel": "Colgantes con forma de embudo", - "advancement.create.belt_funnel.desc": "Coloca un embudo lateral encima de una cinta o depósito para crear un tipo especial.", - "advancement.create.belt_funnel_kiss": "Los loros y las aletas", - "advancement.create.belt_funnel_kiss.desc": "Haz besar dos embudos montados con una cinta.", - "advancement.create.fan": "Maestro mecánico del aire", - "advancement.create.fan.desc": "Monta la corriente de aire proporcionada por un ventilador revestido.", - "advancement.create.fan_lava": "Calentador geotérmico", - "advancement.create.fan_lava.desc": "Queda atrapado en una corriente de aire que funde las cosas.", - "advancement.create.fan_water": "Lavado de la ropa", - "advancement.create.fan_water.desc": "Queda atrapado en una corriente de aire que lava las cosas.", - "advancement.create.fan_smoke": "Fuelle mecánico", - "advancement.create.fan_smoke.desc": "Queda atrapado en una corriente de aire que humea los objetos.", - "advancement.create.wrench": "Configurar convenientemente", - "advancement.create.wrench.desc": "Crea una llave inglesa para ayudarte a construir tus artilugios.", - "advancement.create.goggles": "Estresóvisión", - "advancement.create.goggles.desc": "Crea unas gafas del constructor para ayudarte a obtener más información cinética de los componentes.", - "advancement.create.speedometer": "Pero, ¿con qué rapidez exactamente?", - "advancement.create.speedometer.desc": "Coloca y alimenta un velocímetro. Míralo a través de las gafas para leer su valor exacto.", - "advancement.create.stressometer": "Pero, ¿cuán estresado exactamente??", - "advancement.create.stressometer.desc": "Coloca y alimenta un estresómetro. Míralo a través de las gafas para leer su valor exacto.", - "advancement.create.aesthetics": "Boom, ¡Estética!", - "advancement.create.aesthetics.desc": "Coloca soportes en ejes, ductos y engranajes.", - "advancement.create.reinforced": "Boom, ¡Reforzado!", - "advancement.create.reinforced.desc": "Utiliza bloques de revestimiento en un eje, un ducto y una cinta.", - "advancement.create.water_wheel": "Aprovechar la hidráulica", - "advancement.create.water_wheel.desc": "Coloca una rueda hidráulica e intenta hacerla girar.", - "advancement.create.chocolate_wheel": "Potencia de buen gusto", - "advancement.create.chocolate_wheel.desc": "Haz funcionar una rueda de agua con chocolate fundido.", - "advancement.create.lava_wheel": "Rueda de magma", - "advancement.create.lava_wheel.desc": "Esto no debió haber funcionado.", - "advancement.create.cuckoo": "¿Es el momento?", - "advancement.create.cuckoo.desc": "Presencia cómo un reloj de cuco anuncia la hora de acostarse.", - "advancement.create.millstone": "Triturador de bolsillo", - "advancement.create.millstone.desc": "Coloca y alimenta una piedra de molino.", - "advancement.create.windmill": "Una suave brisa", - "advancement.create.windmill.desc": "Monta un molino de viento.", - "advancement.create.maxed_windmill": "Una fuerte brisa", - "advancement.create.maxed_windmill.desc": "Monta un molino de viento con máxima intensidad.", - "advancement.create.andesite_casing": "La edad de la andesita", - "advancement.create.andesite_casing.desc": "Utiliza un poco de aleación de andesita y madera para crear un revestimiento básico.", - "advancement.create.mechanical_drill": "Interruptores fijos", - "advancement.create.mechanical_drill.desc": "Coloca y alimenta un taladro mecánico.", - "advancement.create.press": "¡La prensa se pone en marcha!", - "advancement.create.press.desc": "Activa una prensa mecánica y utilízala para crear algunas láminas.", - "advancement.create.polished_rose_quartz": "Diamantes rosas", - "advancement.create.polished_rose_quartz.desc": "Utiliza un trozo de papel de lija para pulir el cuarzo rosa hasta que se vuelva transparente.", - "advancement.create.electron_tube": "Beep Boop", - "advancement.create.electron_tube.desc": "Haz algunos tubos de electrones, útiles en la fabricación de maquinaria menos primitiva.", - "advancement.create.mechanical_saw": "Picado estacionario", - "advancement.create.mechanical_saw.desc": "Coloca y alimenta una sierra mecánica.", - "advancement.create.basin": "Funcionamiento de la cuenca", - "advancement.create.basin.desc": "Coloca una cuenca e intenta arrojar objetos en ella.", - "advancement.create.mixer": "Mezcla de colores", - "advancement.create.mixer.desc": "Coloca una batidora mecánica sobre el lavabo, enciéndala y empiece a mezclar algunos ingredientes.", - "advancement.create.blaze_burner": "Una chimenea viva", - "advancement.create.blaze_burner.desc": "Obtiene un quemador de blaze.", - "advancement.create.compact": "Compactación automática", - "advancement.create.compact.desc": "Utiliza una prensa y una cuenca para compactar algunos objetos.", - "advancement.create.brass": "Aleaciones reales", - "advancement.create.brass.desc": "Utiliza cobre molido y zinc molido para crear algo de latón.", - "advancement.create.brass_casing": "La Edad de Latón", - "advancement.create.brass_casing.desc": "Utiliza el latón recién obtenido y algo de madera para crear un revestimiento más avanzado.", - "advancement.create.copper_casing": "La Edad de Cobre", - "advancement.create.copper_casing.desc": "Utiliza algunas láminas de cobre y madera para crear algunos revestimientos de cobre.", - "advancement.create.spout": "Sploosh", - "advancement.create.spout.desc": "Observa el llenado de un fluido usando una boquilla.", - "advancement.create.spout_potion": "Cervecera global", - "advancement.create.spout_potion.desc": "Mira cómo un pico llena una botella con líquido de poción.", - "advancement.create.chocolate": "Un mundo de imaginación", - "advancement.create.chocolate.desc": "Obtiene un cubo con chocolate fundido.", - "advancement.create.item_drain": "Drenaje de la ropa", - "advancement.create.item_drain.desc": "Ve cómo se vacía un fluido mediante un drenador de objetos.", - "advancement.create.chained_item_drain": "¡Déjalo rodar!", - "advancement.create.chained_item_drain.desc": "Observa cómo un objeto rueda por varios drenadores de objetos encadenados.", - "advancement.create.glass_pipe": "Espía del flujo", - "advancement.create.glass_pipe.desc": "Observa cómo se propaga el fluido a través de un tubo de fluidos con ventanas. Los tubos de fluido rectos se convierten en ventanas cuando se utiliza una llave inglesa en ellas.", - "advancement.create.pipe_collision": "No cruzar nunca los arroyos", - "advancement.create.pipe_collision.desc": "Vea cómo se unen dos fluidos en su red de tuberías.", - "advancement.create.pipe_spill": "¡Hay una fuga!", - "advancement.create.pipe_spill.desc": "Observe cómo un extremo abierto de una tubería toma o deposita fluidos en el mundo.", - "advancement.create.hose_pulley": "Vertidos industriales", - "advancement.create.hose_pulley.desc": "Baja una polea de manguera y ve cómo se vacía o se llena un cuerpo de líquido.", - "advancement.create.infinite_water": "Drenando el océano", - "advancement.create.infinite_water.desc": "Bombea de una masa de agua lo suficientemente grande como para ser considerada infinita.", - "advancement.create.infinite_lava": "Drenaje del núcleo de los planetas", - "advancement.create.infinite_lava.desc": "Bombea de una masa de lava lo suficientemente grande como para ser considerada infinita.", - "advancement.create.infinite_chocolate": "Ahogándose en la imaginación", - "advancement.create.infinite_chocolate.desc": "Bombea desde una masa de chocolate fundido lo suficientemente grande como para ser considerado infinito.", - "advancement.create.crafter": "Montaje automatizado", - "advancement.create.crafter.desc": "Coloca y alimenta algunos ensambladores.", - "advancement.create.clockwork_bearing": "Artilugio a la hora", - "advancement.create.clockwork_bearing.desc": "Ensamblar una estructura montada sobre un rodamiento tipo reloj.", - "advancement.create.nixie_tube": "Signos de estilo", - "advancement.create.nixie_tube.desc": "Obtener y colocar un par de tubos nixie.", - "advancement.create.deployer": "Picar, colocar y atacar", - "advancement.create.deployer.desc": "Coloca y potencia un desplegador, el reflejo perfecto de ti mismo.", - "advancement.create.speed_controller": "Los ingenieros lo odian!", - "advancement.create.speed_controller.desc": "Coloca un controlador de velocidad rotacional, el dispositivo definitivo para cambiar de marcha.", - "advancement.create.flywheel": "El corazón de la fábrica", - "advancement.create.flywheel.desc": "Conecta con éxito un motor a la rueda de inercia.", - "advancement.create.overstress_flywheel": "Altos niveles de estrés", - "advancement.create.overstress_flywheel.desc": "Sobrecarga un motor de horno.", - "advancement.create.precision_mechanism": "Curiosidades complejas", - "advancement.create.precision_mechanism.desc": "Monta un mecanismo de precisión.", - "advancement.create.mechanical_arm": "¡Manos ocupadas!", - "advancement.create.mechanical_arm.desc": "Crea un brazo mecánico, selecciona las entradas y salidas, colócalo en el suelo y dale energía; luego observa cómo hace todo el trabajo por ti.", - "advancement.create.musical_arm": "¡Tócame la melodía!", - "advancement.create.musical_arm.desc": "Vea cómo un brazo mecánico maneja su tocadiscos.", - "advancement.create.arm_many_targets": "Organize-o-Tron", - "advancement.create.arm_many_targets.desc": "Programa un brazo mecánico con diez o más posiciones de salida.", - "advancement.create.arm_blaze_burner": "Combust-o-Tron", - "advancement.create.arm_blaze_burner.desc": "Instruya un brazo mecánico para alimentar su quemador de blaze.", - "advancement.create.fist_bump": "¡Pégale, hermano!", - "advancement.create.fist_bump.desc": "Haz que dos desplegadores se den un puñetazo.", - "advancement.create.crushing_wheel": "Un par de gigantes", - "advancement.create.crushing_wheel.desc": "Crea algunas ruedas de trituración para descomponer más materiales de forma más eficaz.", - "advancement.create.blaze_cake": "Fiebre del azúcar", - "advancement.create.blaze_cake.desc": "Hornea en tu quemador de blaze un pastel especial.", - "advancement.create.chromatic_compound": "Minerales misteriosos", - "advancement.create.chromatic_compound.desc": "Crea una barra de compuesto cromático.", - "advancement.create.shadow_steel": "Retorno del vacío", - "advancement.create.shadow_steel.desc": "Crea acero sombrío, una barra de metal de la nada.", - "advancement.create.refined_radiance": "Brillante e inspirador", - "advancement.create.refined_radiance.desc": "Crea un resplandor refinado, una poderosa sustancia cromática.", - "advancement.create.chromatic_age": "La edad cromática", - "advancement.create.chromatic_age.desc": "Crear bloques de revestimiento de la luz y la oscuridad.", - "advancement.create.wand_of_symmetry": "Espejos radiantes", - "advancement.create.wand_of_symmetry.desc": "Crear un bastón de simetría.", - "advancement.create.extendo_grip": "¡Boioioing!", - "advancement.create.extendo_grip.desc": "Hazte con un agarre extentido.", - "advancement.create.potato_cannon": "Fwoomp!", - "advancement.create.potato_cannon.desc": "Derrota a un enemigo con tu cañón de patatas.", - "advancement.create.dual_extendo_grip": "La última edad del boing", - "advancement.create.dual_extendo_grip.desc": "Doble empuñadura extendida para un alcance sobrehumano.", - "advancement.create.eob": "Fin de la beta", - "advancement.create.eob.desc": "Espere más contenido aquí en el futuro. <3", - - - "_": "->------------------------] UI & Messages [------------------------<-", - - "itemGroup.create.base": "Create", - "itemGroup.create.palettes": "Paletas", - - "death.attack.create.crush": "%1$s se procesó en las ruedas de trituración", - "death.attack.create.crush.player": "%1$s fue arrojado a las ruedas de trituración por %2$s", - "death.attack.create.fan_fire": "%1$s murió quemado por el aire caliente", - "death.attack.create.fan_fire.player": "%1$s fue arrojado a un ahumador por %2$s", - "death.attack.create.fan_lava": "%1$s murió quemado por un abanico de lava", - "death.attack.create.fan_lava.player": "%1$s fue arrojado a una fundición por %2$s", - "death.attack.create.mechanical_drill": "%1$s fue empalado por un taladro mecánico", - "death.attack.create.mechanical_drill.player": "%1$s fue lanzado frente a un taladro por %2$s", - "death.attack.create.mechanical_saw": "%1$s fue cortado por la mitad por una sierra mecánica", - "death.attack.create.mechanical_saw.player": "%1$s fue arrojado a una sierra por %2$s", - "death.attack.create.potato_cannon": "%1$s fue disparado por el cañón de patatas de %2$s's", - "death.attack.create.potato_cannon.item": "%1$s fue disparado por %2$s utilizando %3$s", - "death.attack.create.cuckoo_clock_explosion": "%1$s fue volado por los aires por un reloj de cuco manipulado", - "death.attack.create.cuckoo_clock_explosion.player": "%1$s fue volado por un reloj de cuco manipulado", - - "create.block.deployer.damage_source_name": "Un desplegador rebelde", - "create.block.cart_assembler.invalid": "Coloque su Ensamblador de vagonetas en un bloque de Raíles", - - "create.menu.return": "Regresar al menú", - "create.menu.configure": "Configurar...", - "create.menu.ponder_index": "Índice", - "create.menu.only_ingame": "Disponible en el menú de pausa", - "create.menu.project_page": "Página del proyecto", - "create.menu.report_bugs": "Reportar problemas", - "create.menu.support": "Apóyenos", - - "create.recipe.crushing": "Trituración", - "create.recipe.milling": "Fresado", - "create.recipe.fan_washing": "Lavado a granel", - "create.recipe.fan_washing.fan": "Ventilador detrás del agua fluyente", - "create.recipe.fan_smoking": "Ahumador a granel", - "create.recipe.fan_smoking.fan": "Ventilador detrás del fuego", - "create.recipe.fan_blasting": "Voladuras a granel", - "create.recipe.fan_blasting.fan": "Ventilador detrás de la lava", - "create.recipe.pressing": "Prensando", - "create.recipe.mixing": "Mezclando", - "create.recipe.deploying": "Desplegando", - "create.recipe.automatic_shapeless": "Elaboración automatizada de productos sin forma", - "create.recipe.automatic_brewing": "Elaboración de cerveza automatizada", - "create.recipe.packing": "Compactando", - "create.recipe.automatic_packing": "Embalaje automatizado", - "create.recipe.sawing": "Aserrando", - "create.recipe.mechanical_crafting": "Elaboración mecánica", - "create.recipe.automatic_shaped": "Elaboración automatizada de productos con forma", - "create.recipe.block_cutting": "Corte de bloques", - "create.recipe.wood_cutting": "Corte de maderas", - "create.recipe.sandpaper_polishing": "Pulido con papel de lija", - "create.recipe.mystery_conversion": "Conversión misteriosa", - "create.recipe.spout_filling": "Llenar por el pico", - "create.recipe.draining": "Drenador de objetos", - "create.recipe.sequenced_assembly": "Montaje secuenciado", - "create.recipe.assembly.next": "Siguiente: %1$s", - "create.recipe.assembly.step": "Fase %1$s:", - "create.recipe.assembly.progress": "Progreso: %1$s/%2$s", - "create.recipe.assembly.pressing": "Proceso en prensa", - "create.recipe.assembly.spout_filling_fluid": "Pico %1$s", - "create.recipe.assembly.deploying_item": "Despliegue %1$s", - "create.recipe.assembly.cutting": "Corte con sierra", - "create.recipe.assembly.repeat": "Repetir la secuencia %1$s veces", - "create.recipe.assembly.junk": "Basura aleatoria", - "create.recipe.processing.chance": "%1$s%% Chance", - "create.recipe.heat_requirement.none": "No es necesario calentar", - "create.recipe.heat_requirement.heated": "Calentado", - "create.recipe.heat_requirement.superheated": "Súper-Calentado", - - "create.generic.range": "Rango", - "create.generic.radius": "Radio", - "create.generic.width": "Ancho", - "create.generic.height": "Alto", - "create.generic.length": "Largo", - "create.generic.speed": "Velocidad", - "create.generic.delay": "Retraso", - "create.generic.unit.ticks": "Ticks", - "create.generic.unit.seconds": "Segundos", - "create.generic.unit.minutes": "Minutos", - "create.generic.unit.rpm": "RPM", - "create.generic.unit.stress": "SU(unidades de estrés)", - "create.generic.unit.degrees": "°", - "create.generic.unit.millibuckets": "%1$smB", - "create.generic.clockwise": "En el sentido de las agujas del reloj", - "create.generic.counter_clockwise": "En sentido contrario a las agujas del reloj", - - "create.action.scroll": "Desplazar", - "create.action.confirm": "Confirmar", - "create.action.abort": "Abortar", - "create.action.saveToFile": "Guardar", - "create.action.discard": "Descartar", - - "create.keyinfo.toolmenu": "Menú de la Herramienta de Enfoque", - "create.keyinfo.scrollup": "Simular usar la rueda del ratón hacia arriba (en el mundo)", - "create.keyinfo.scrolldown": "Simular usar la rueda del ratón hacia abajo (en el mundo)", - - "create.gui.scrollInput.defaultTitle": "Seleccione una opción:", - "create.gui.scrollInput.scrollToModify": "Usa la rueda del ratón para modificar", - "create.gui.scrollInput.scrollToAdjustAmount": "Usa la rueda del ratón para ajustar la cantidad", - "create.gui.scrollInput.scrollToSelect": "Usa la rueda del ratón para seleccionar", - "create.gui.scrollInput.shiftScrollsFaster": "Mayús izdo para usar la rueda del ratón más rápido", - "create.gui.toolmenu.focusKey": "Mantén [%1$s] para enfocar", - "create.gui.toolmenu.cycle": "[RUEDA DEL RATÓN] para el ciclo", - "create.gui.symmetryWand.mirrorType": "Espejado", - "create.gui.symmetryWand.orientation": "Orientación", - - "create.symmetry.mirror.plane": "Plano de espejo", - "create.symmetry.mirror.doublePlane": "Rectangular", - "create.symmetry.mirror.triplePlane": "Octogonal", - - "create.orientation.orthogonal": "Ortogonal", - "create.orientation.diagonal": "Diagonal", - "create.orientation.horizontal": "Horizontal", - "create.orientation.alongZ": "A lo largo de Z", - "create.orientation.alongX": "A lo largo de X", - - "create.gui.terrainzapper.title": "Blockzapper", - "create.gui.terrainzapper.searchDiagonal": "Seguir diagonales", - "create.gui.terrainzapper.searchFuzzy": "Ignorar los bordes del material", - "create.gui.terrainzapper.patternSection": "Patrón", - "create.gui.terrainzapper.pattern.solid": "Sólido", - "create.gui.terrainzapper.pattern.checkered": "Tablero de ajedrez", - "create.gui.terrainzapper.pattern.inversecheckered": "Tablero de ajedrez invertido", - "create.gui.terrainzapper.pattern.chance25": "25% Roll", - "create.gui.terrainzapper.pattern.chance50": "50% Roll", - "create.gui.terrainzapper.pattern.chance75": "75% Roll", - "create.gui.terrainzapper.placement": "Ubicación", - "create.gui.terrainzapper.placement.merged": "Fusionado", - "create.gui.terrainzapper.placement.attached": "Adjuntado", - "create.gui.terrainzapper.placement.inserted": "Insertado", - "create.gui.terrainzapper.brush": "Pincel", - "create.gui.terrainzapper.brush.cuboid": "Cuboide", - "create.gui.terrainzapper.brush.sphere": "Esfera", - "create.gui.terrainzapper.brush.cylinder": "Cilindro", - "create.gui.terrainzapper.brush.surface": "Superficie", - "create.gui.terrainzapper.brush.cluster": "Grupo", - "create.gui.terrainzapper.tool": "Herramienta", - "create.gui.terrainzapper.tool.fill": "Llenar", - "create.gui.terrainzapper.tool.place": "Ubicar", - "create.gui.terrainzapper.tool.replace": "Reemplazar", - "create.gui.terrainzapper.tool.clear": "Eliminar", - "create.gui.terrainzapper.tool.overlay": "Superponer", - "create.gui.terrainzapper.tool.flatten": "Aplanar", - - "create.terrainzapper.shiftRightClickToSet": "Mayús izdo + clic derecho para seleccionar una forma", - "create.terrainzapper.usingBlock": "Usando: %1$s", - "create.terrainzapper.leftClickToSet": "Clic izquierdo a un bloque para establecer el material", - - "create.minecart_coupling.two_couplings_max": "Las vagonetas no pueden tener más de dos enganches cada una", - "create.minecart_coupling.unloaded": "Algunas partes de su tren parecen estar en chunks no cargados", - "create.minecart_coupling.no_loops": "Los acoplamientos no pueden formar un bucle", - "create.minecart_coupling.removed": "Se han retirado todos los acoplamientos de la vagoneta", - "create.minecart_coupling.too_far": "Las vagonetas están demasiado separadas", - - "create.contraptions.movement_mode": "Modo de movimiento", - "create.contraptions.movement_mode.move_place": "Colocar siempre al detenerse", - "create.contraptions.movement_mode.move_place_returned": "Colocar sólo en la posición inicial", - "create.contraptions.movement_mode.move_never_place": "Colocar sólo cuando se destruye el ancla", - "create.contraptions.movement_mode.rotate_place": "Colocar siempre al detenerse", - "create.contraptions.movement_mode.rotate_place_returned": "Colocar sólo cerca del ángulo inicial", - "create.contraptions.movement_mode.rotate_never_place": "Colocar sólo cuando se destruye el ancla", - "create.contraptions.cart_movement_mode": "Modo de movimiento de la vagoneta", - "create.contraptions.cart_movement_mode.rotate": "Siempre de cara al movimiento", - "create.contraptions.cart_movement_mode.rotate_paused": "Pausar a los actores mientras giran", - "create.contraptions.cart_movement_mode.rotation_locked": "Bloquear rotación", - "create.contraptions.windmill.rotation_direction": "Dirección de rotación", - "create.contraptions.clockwork.clock_hands": "Manecillas de reloj", - "create.contraptions.clockwork.hour_first": "La manecilla de las horas primero", - "create.contraptions.clockwork.minute_first": "La manecilla de los minutos primero", - "create.contraptions.clockwork.hour_first_24": "La manecilla del día primero", - - "create.logistics.filter": "Filtro", - "create.logistics.recipe_filter": "Filtro para recetas", - "create.logistics.fluid_filter": "Filtro para fluidos", - "create.logistics.firstFrequency": "Freq. #1", - "create.logistics.secondFrequency": "Freq. #2", - "create.logistics.filter.apply": "Filtro aplicado a %1$s.", - "create.logistics.filter.apply_click_again": "Filtro aplicado a %1$s, haga clic de nuevo para copiar la cantidad.", - "create.logistics.filter.apply_count": "Aplicado recuento de extracciones al filtro.", - - "create.gui.goggles.generator_stats": "Estadísticas del generador:", - "create.gui.goggles.kinetic_stats": "Estadísticas cinéticas:", - "create.gui.goggles.at_current_speed": "con la velocidad actual", - "create.gui.goggles.pole_length": "Longitud del poste:", - "create.gui.goggles.fluid_container": "Información sobre el contenedor de fluidos:", - "create.gui.goggles.fluid_container.capacity": "Capacidad: ", - "create.gui.assembly.exception": "Este artilugio no se pudo montar:", - "create.gui.assembly.exception.unmovableBlock": "Bloque inamovible (%4$s) en [%1$s,%2$s,%3$s]", - "create.gui.assembly.exception.chunkNotLoaded": "El bloque en [%1$s,%2$s,%3$s] no estaba en un chunk cargado", - "create.gui.assembly.exception.structureTooLarge": "Hay demasiados bloques incluídos en el artilugio.\nEl máximo configurado es: %1$s", - "create.gui.assembly.exception.tooManyPistonPoles": "Hay demasiadas Pértigas de extensión conectadas a este Pistón.\nEl máximo configurado es: %1$s", - "create.gui.assembly.exception.noPistonPoles": "Faltan pértigas de extensión para el pistón", - "create.gui.assembly.exception.not_enough_sails": "La estructura adjunta no incluye suficientes bloques tipo vela: %1$s\nSe requiere un mínimo de %2$s", - "create.gui.gauge.info_header": "Información sobre el medidor:", - "create.gui.speedometer.title": "Velocidad de rotación", - "create.gui.stressometer.title": "Estrés de la red", - "create.gui.stressometer.capacity": "Capacidad restante", - "create.gui.stressometer.overstressed": "Sobrecargado", - "create.gui.stressometer.no_rotation": "Sin rotación", - "create.gui.contraptions.not_fast_enough": "Parece que este %1$s no está girando con _suficiente_ velocidad_.", - "create.gui.contraptions.network_overstressed": "Parece que este artilugio está _sobrecargado_. Añade más fuentes o _desacelera_ los componentes con un _impacto de estrés alto_.", - "create.gui.adjustable_crate.title": "Caja ajustable", - "create.gui.adjustable_crate.storageSpace": "Espacio de almacenamiento", - "create.gui.stockpile_switch.title": "Interruptor de acopio", - "create.gui.stockpile_switch.invert_signal": "Invertir señal", - "create.gui.stockpile_switch.move_to_lower_at": "Pasar al carril inferior en %1$s%%", - "create.gui.stockpile_switch.move_to_upper_at": "Pasar al carril superior en %1$s%%", - "create.gui.sequenced_gearshift.title": "Cambio de marchas secuenciado", - "create.gui.sequenced_gearshift.instruction": "Instrucción", - "create.gui.sequenced_gearshift.instruction.turn_angle.descriptive": "Giro por ángulo", - "create.gui.sequenced_gearshift.instruction.turn_angle": "Giro", - "create.gui.sequenced_gearshift.instruction.turn_angle.angle": "Ángulo", - "create.gui.sequenced_gearshift.instruction.turn_distance.descriptive": "Giro para mover el pistón/polea/grúa", - "create.gui.sequenced_gearshift.instruction.turn_distance": "Pistón", - "create.gui.sequenced_gearshift.instruction.turn_distance.distance": "Distancia", - "create.gui.sequenced_gearshift.instruction.delay.descriptive": "Tiempo de retraso", - "create.gui.sequenced_gearshift.instruction.delay": "Retraso", - "create.gui.sequenced_gearshift.instruction.delay.duration": "Duración", - "create.gui.sequenced_gearshift.instruction.end.descriptive": "Fin", - "create.gui.sequenced_gearshift.instruction.end": "Fin", - "create.gui.sequenced_gearshift.instruction.await.descriptive": "En espera de un pulso de redstone", - "create.gui.sequenced_gearshift.instruction.await": "En espera", - "create.gui.sequenced_gearshift.speed": "Velocidad, Dirección", - "create.gui.sequenced_gearshift.speed.forward": "Velocidad de entrada, hacia adelante", - "create.gui.sequenced_gearshift.speed.forward_fast": "Doble velocidad, hacia adelante", - "create.gui.sequenced_gearshift.speed.back": "Velocidad de entrada, Invertida", - "create.gui.sequenced_gearshift.speed.back_fast": "Doble velocidad, Invertida", - - "create.schematicAndQuill.dimensions": "Tamaño del esquema: %1$sx%2$sx%3$s", - "create.schematicAndQuill.firstPos": "Primera posición fijada.", - "create.schematicAndQuill.secondPos": "Segunda posición fijada.", - "create.schematicAndQuill.noTarget": "Mantén [Ctrl] para seleccionar los bloques del aire.", - "create.schematicAndQuill.abort": "Selección eliminada.", - "create.schematicAndQuill.title": "Nombre del esquema:", - "create.schematicAndQuill.convert": "Guardar y desplegar inmediatamente", - "create.schematicAndQuill.fallbackName": "Mi esquema", - "create.schematicAndQuill.saved": "Guardado como %1$s", - - "create.schematic.invalid": "[!] Elemento no válido - Utilice la tabla de esquemas en su lugar", - "create.schematic.position": "Posición", - "create.schematic.rotation": "Rotación", - "create.schematic.rotation.none": "Ninguno", - "create.schematic.rotation.cw90": "En el sentido de las agujas del reloj 90", - "create.schematic.rotation.cw180": "En el sentido de las agujas del reloj 180", - "create.schematic.rotation.cw270": "En el sentido de las agujas del reloj 270", - "create.schematic.mirror": "Espejado", - "create.schematic.mirror.none": "Ninguno", - "create.schematic.mirror.frontBack": "Delante-Detrás", - "create.schematic.mirror.leftRight": "Izquierda-Derecha", - "create.schematic.tool.deploy": "Despliegue", - "create.schematic.tool.move": "Mover XZ", - "create.schematic.tool.movey": "Mover Y", - "create.schematic.tool.rotate": "Rotar", - "create.schematic.tool.print": "Imprimir", - "create.schematic.tool.flip": "Voltear", - "create.schematic.tool.deploy.description.0": "Mueve la estructura a un lugar.", - "create.schematic.tool.deploy.description.1": "Haz clic con el botón derecho del ratón en el suelo para colocarla.", - "create.schematic.tool.deploy.description.2": "Mantén [Ctrl] para seleccionar a una distancia fija.", - "create.schematic.tool.deploy.description.3": "[Ctrl] + [RUEDA DEL RATÓN] para cambiar la distancia.", - "create.schematic.tool.move.description.0": "Desplaza el esquema horizontalmente.", - "create.schematic.tool.move.description.1": "Apunta al esquema y [Ctrl] + [RUEDA DEL RATÓN] para ponerlo.", - "create.schematic.tool.move.description.2": "", - "create.schematic.tool.move.description.3": "", - "create.schematic.tool.movey.description.0": "Desplaza el esquema verticalmente..", - "create.schematic.tool.movey.description.1": "[Ctrl] + [RUEDA DEL RATÓN] para moverlo hacia arriba/abajo.", - "create.schematic.tool.movey.description.2": "", - "create.schematic.tool.movey.description.3": "", - "create.schematic.tool.rotate.description.0": "Gira el esquema alrededor de su centro.", - "create.schematic.tool.rotate.description.1": "[Ctrl] + [RUEDA DEL RATÓN] para girar 90 grados.", - "create.schematic.tool.rotate.description.2": "", - "create.schematic.tool.rotate.description.3": "", - "create.schematic.tool.print.description.0": "Sitúa instantáneamente la estructura en el mundo.", - "create.schematic.tool.print.description.1": "[Clic derecho] para confirmar la colocación en el lugar actual.", - "create.schematic.tool.print.description.2": "Esta herramienta es sólo para el Modo Creativo.", - "create.schematic.tool.print.description.3": "", - "create.schematic.tool.flip.description.0": "Voltea el esquema a lo largo de la cara que seleccione.", - "create.schematic.tool.flip.description.1": "Apunta al esquema y [Ctrl] + [RUEDA DEL RATÓN] para voltearlo.", - "create.schematic.tool.flip.description.2": "", - "create.schematic.tool.flip.description.3": "", - - "create.schematics.synchronizing": "Sincronizando...", - "create.schematics.uploadTooLarge": "Tu esquema excede las limitaciones especificadas por el servidor.", - "create.schematics.maxAllowedSize": "El tamaño máximo permitido del archivo del esquema es:", - - "create.gui.schematicTable.refresh": "Refrescar archivos", - "create.gui.schematicTable.open_folder": "Abrir carpeta", - "create.gui.schematicTable.title": "Tabla de esquemas", - "create.gui.schematicTable.availableSchematics": "Esquemas disponibles", - "create.gui.schematicTable.noSchematics": "No hay esquemas guardados", - "create.gui.schematicTable.uploading": "Subiendo...", - "create.gui.schematicTable.finished": "¡Subida finalizada!", - "create.gui.schematicannon.title": "Cañón de esquemas", - "create.gui.schematicannon.listPrinter": "Lista de control de la impresora", - "create.gui.schematicannon.gunpowderLevel": "Pólvora %1$s%%", - "create.gui.schematicannon.shotsRemaining": "Disparos restantes: %1$s", - "create.gui.schematicannon.shotsRemainingWithBackup": "Con respaldo: %1$s", - "create.gui.schematicannon.optionEnabled": "Actualmente habilitado", - "create.gui.schematicannon.optionDisabled": "Actualmente deshabilitado", - "create.gui.schematicannon.showOptions": "Mostrar la configuración de la impresora", - "create.gui.schematicannon.option.dontReplaceSolid": "No sustituír los bloques sólidos", - "create.gui.schematicannon.option.replaceWithSolid": "Sustituir sólido por sólido", - "create.gui.schematicannon.option.replaceWithAny": "Sustituir sólido por cualquiera", - "create.gui.schematicannon.option.replaceWithEmpty": "Sustituir sólido por vacío", - "create.gui.schematicannon.option.skipMissing": "Omitir los bloques que faltan", - "create.gui.schematicannon.option.skipTileEntities": "Proteger a las entidades", - "create.gui.schematicannon.slot.gunpowder": "Añade pólvora para alimentar el cañón", - "create.gui.schematicannon.slot.listPrinter": "Coloque los libros aquí para imprimir una lista de comprobación para su esquema", - "create.gui.schematicannon.slot.schematic": "Añada su esquema aquí. Asegúrese de que se despliega en un lugar específico.", - "create.gui.schematicannon.option.skipMissing.description": "Si el cañón no encuentra un bloque necesario para su colocación, continuará en la siguiente ubicación.", - "create.gui.schematicannon.option.skipTileEntities.description": "El cañón evitará reemplazar los bloques que contienen datos, como los cofres.", - "create.gui.schematicannon.option.dontReplaceSolid.description": "El cañón nunca sustituirá ningún bloque sólido en su zona de trabajo, sólo los no sólidos y el aire.", - "create.gui.schematicannon.option.replaceWithSolid.description": "El cañón sólo reemplazará los bloques sólidos en su área de trabajo si el esquema contiene un bloque sólido en la ubicación.", - "create.gui.schematicannon.option.replaceWithAny.description": "El cañón reemplazará los bloques sólidos en su área de trabajo si el esquema contiene algún bloque en la ubicación.", - "create.gui.schematicannon.option.replaceWithEmpty.description": "El cañón eliminará todos los bloques de su zona de trabajo, incluidos los sustituidos por aire.", - - "create.schematicannon.status.idle": "Inactivo", - "create.schematicannon.status.ready": "Listo", - "create.schematicannon.status.running": "Funcionando", - "create.schematicannon.status.finished": "Finalizado", - "create.schematicannon.status.paused": "Pausado", - "create.schematicannon.status.stopped": "Detenido", - "create.schematicannon.status.noGunpowder": "Sin pólvora", - "create.schematicannon.status.targetNotLoaded": "El objetivo no está cargado", - "create.schematicannon.status.targetOutsideRange": "Objetivo demasiado lejano", - "create.schematicannon.status.searching": "Buscando", - "create.schematicannon.status.skipping": "Omitiendo", - "create.schematicannon.status.missingBlock": "Elementos perdidos:", - "create.schematicannon.status.placing": "Colocando", - "create.schematicannon.status.clearing": "Limpiando bloques", - "create.schematicannon.status.schematicInvalid": "Esquema inválido", - "create.schematicannon.status.schematicNotPlaced": "Esquema no desplegado", - "create.schematicannon.status.schematicExpired": "Archivo de esquemas caducado", - - "create.materialChecklist": "Lista de control del material", - "create.materialChecklist.blocksNotLoaded": "* Descargo de Responsabilidad *\n\nLa lista de materiales puede ser inexacta debido a que no se han cargado los chunks pertinentes.", - - "create.gui.filter.deny_list": "Lista de denegados", - "create.gui.filter.deny_list.description": "Los objetos pasan si NO coinciden con ninguno de los anteriores. Una lista de denegación vacía acepta todo.", - "create.gui.filter.allow_list": "Lista de permitidos", - "create.gui.filter.allow_list.description": "Los objetos pasan si coinciden con alguno de los anteriores. Una lista de permitidos vacía rechaza todo.", - "create.gui.filter.respect_data": "Respetar datos", - "create.gui.filter.respect_data.description": "Los objetos sólo coinciden si su durabilidad, encantos y otros atributos también coinciden.", - "create.gui.filter.ignore_data": "Ignorar datos", - "create.gui.filter.ignore_data.description": "Los artículos coinciden independientemente de sus atributos.", - - "create.item_attributes.placeable": "se puede colocar", - "create.item_attributes.placeable.inverted": "no se puede colocar", - "create.item_attributes.consumable": "se puede comer", - "create.item_attributes.consumable.inverted": "no se puede comer", - "create.item_attributes.smeltable": "se puede fundir", - "create.item_attributes.smeltable.inverted": "no se puede fundir", - "create.item_attributes.washable": "se puede lavar", - "create.item_attributes.washable.inverted": "no se puede lavar", - "create.item_attributes.smokable": "puede ser ahumado", - "create.item_attributes.smokable.inverted": "no puede ser ahumado", - "create.item_attributes.crushable": "puede ser molido", - "create.item_attributes.crushable.inverted": "no puede ser molido", - "create.item_attributes.blastable": "es fundible en el alto horno", - "create.item_attributes.blastable.inverted": "no es fundible en el alto horno", - "create.item_attributes.enchanted": "está encantado", - "create.item_attributes.enchanted.inverted": "no está encantado", - "create.item_attributes.damaged": "está dañado", - "create.item_attributes.damaged.inverted": "no está dañado", - "create.item_attributes.badly_damaged": "está muy dañado", - "create.item_attributes.badly_damaged.inverted": "no está muy dañado", - "create.item_attributes.not_stackable": "no se puede apilar", - "create.item_attributes.not_stackable.inverted": "se puede apilar", - "create.item_attributes.equipable": "se puede equipar", - "create.item_attributes.equipable.inverted": "no se puede equipar", - "create.item_attributes.furnace_fuel": "es combustible para hornos", - "create.item_attributes.furnace_fuel.inverted": "no es combustible para hornos", - "create.item_attributes.in_tag": "está etiquetado %1$s", - "create.item_attributes.in_tag.inverted": "no está etiquetado %1$s", - "create.item_attributes.in_item_group": "está en el grupo '%1$s'", - "create.item_attributes.in_item_group.inverted": "no está en el grupo '%1$s'", - "create.item_attributes.added_by": "fue añadido por %1$s", - "create.item_attributes.added_by.inverted": "no fue añadida por %1$s", - "create.item_attributes.shulker_level": "es shulker %1$s", - "create.item_attributes.shulker_level.inverted": "no es shulker %1$s", - "create.item_attributes.shulker_level.full": "lleno", - "create.item_attributes.shulker_level.empty": "vacío", - "create.item_attributes.shulker_level.partial": "parcialmente lleno", - "create.item_attributes.has_enchant": "está encantado con %1$s", - "create.item_attributes.has_enchant.inverted": "no está encantado con %1$s", - "create.item_attributes.color": "Está teñido %1$s", - "create.item_attributes.color.inverted": "No está teñido %1$s", - "create.item_attributes.max_enchanted": "está encantado en el nivel máximo", - "create.item_attributes.max_enchanted.inverted": "no está encantado en el nivel máximo", - "create.item_attributes.has_fluid": "contiene %1$s", - "create.item_attributes.has_fluid.inverted": "no contiene %1$s", - "create.item_attributes.has_name": "tiene el nombre personalizado %1$s", - "create.item_attributes.has_name.inverted": "no tiene el nombre personalizado %1$s", - "create.item_attributes.book_author": "es obra de %1$s", - "create.item_attributes.book_author.inverted": "no es es obra de %1$s", - "create.item_attributes.book_copy_original": "es un original", - "create.item_attributes.book_copy_original.inverted": "no es un original", - "create.item_attributes.book_copy_first": "es una copia de primera generación", - "create.item_attributes.book_copy_first.inverted": "no es una copia de primera generación", - "create.item_attributes.book_copy_second": "es una copia de segunda generación", - "create.item_attributes.book_copy_second.inverted": "no es una copia de segunda generación", - "create.item_attributes.book_copy_tattered": "es un desordenado desastre", - "create.item_attributes.book_copy_tattered.inverted": "no es un desordenado desastre", - "create.item_attributes.astralsorcery_crystal": "tiene el atributo de cristal %1$s", - "create.item_attributes.astralsorcery_crystal.inverted": "no tiene atributo de cristal %1$s", - "create.item_attributes.astralsorcery_constellation": "está en sintonía con %1$s", - "create.item_attributes.astralsorcery_constellation.inverted": "no está en sintonía con %1$s", - "create.item_attributes.astralsorcery_perk_gem": "tiene el atributo ventaja %1$s", - "create.item_attributes.astralsorcery_perk_gem.inverted": "no tiene el atributo ventaja %1$s", - "create.item_attributes.astralsorcery_amulet": "mejora %1$s", - "create.item_attributes.astralsorcery_amulet.inverted": "no mejora %1$s", - - "create.gui.attribute_filter.no_selected_attributes": "No hay atributos seleccionados", - "create.gui.attribute_filter.selected_attributes": "Atributos seleccionados:", - "create.gui.attribute_filter.add_attribute": "Añadir atributo a la lista", - "create.gui.attribute_filter.add_inverted_attribute": "Añadir atributo invertido a la Lista", - "create.gui.attribute_filter.allow_list_disjunctive": "Lista de permitidos (Cualquiera)", - "create.gui.attribute_filter.allow_list_disjunctive.description": "Los objetos pasan si tienen alguno de los atributos seleccionados", - "create.gui.attribute_filter.allow_list_conjunctive": "Lista de permitidos (Todos)", - "create.gui.attribute_filter.allow_list_conjunctive.description": "Los objetos pasan sólo si tienen TODOS los atributos seleccionados", - "create.gui.attribute_filter.deny_list": "Lista de denegados", - "create.gui.attribute_filter.deny_list.description": "Los objetos pasan si NO tienen ninguno de los atributos seleccionados", - "create.gui.attribute_filter.add_reference_item": "Añadir elemento de referencia", - - "create.tooltip.holdForDescription": "Mantén [%1$s] para mas información", - "create.tooltip.holdForControls": "Mantén [%1$s] para ver los controles", - "create.tooltip.keyShift": "Mayús izdo.", - "create.tooltip.keyCtrl": "Ctrl", - "create.tooltip.speedRequirement": "Requisitos de velocidad: %1$s", - "create.tooltip.speedRequirement.none": "Ninguno", - "create.tooltip.speedRequirement.medium": "Moderado", - "create.tooltip.speedRequirement.high": "Rápido", - "create.tooltip.stressImpact": "Impacto de estrés: %1$s", - "create.tooltip.stressImpact.low": "Bajo", - "create.tooltip.stressImpact.medium": "Moderado", - "create.tooltip.stressImpact.high": "Alto", - "create.tooltip.stressImpact.overstressed": "Sobrecargado", - "create.tooltip.capacityProvided": "Capacidad de estrés: %1$s", - "create.tooltip.capacityProvided.low": "Pequeña", - "create.tooltip.capacityProvided.medium": "Media", - "create.tooltip.capacityProvided.high": "Grande", - "create.tooltip.generationSpeed": "Generada en %1$s %2$s", - "create.tooltip.analogStrength": "Fuerza analógica: %1$s/15", - - "create.mechanical_arm.extract_from": "Extraer objetos de %1$s", - "create.mechanical_arm.deposit_to": "Depositar objetos en %1$s", - "create.mechanical_arm.summary": "El brazo mecánico tiene %1$s entrada(s) y %2$s salida(s)", - "create.mechanical_arm.points_outside_range": "%1$s punto(s) de interacción seleccionado(s) eliminado(s) debido a las limitaciones de rango", - - "create.weighted_ejector.target_set": "Objetivo seleccionado", - "create.weighted_ejector.target_not_valid": "Expulsión al bloque adyacente (el objetivo no era válido)", - "create.weighted_ejector.no_target": "Expulsión al bloque adyacente (no se ha seleccionado ningún objetivo)", - "create.weighted_ejector.targeting": "Expulsión a [%1$s,%2$s,%3$s]", - "create.weighted_ejector.stack_size": "Tamaño de la pila expulsada", - - "create.logistics.when_multiple_outputs_available": "Cuando hay múltiples salidas disponibles", - - "create.mechanical_arm.selection_mode.round_robin": "Round Robin", - "create.mechanical_arm.selection_mode.forced_round_robin": "Round Robin forzado", - "create.mechanical_arm.selection_mode.prefer_first": "Preferir el primero", - - "create.tunnel.selection_mode.split": "División", - "create.tunnel.selection_mode.forced_split": "División forzada", - "create.tunnel.selection_mode.round_robin": "Round Robin", - "create.tunnel.selection_mode.forced_round_robin": "Round Robin forzado", - "create.tunnel.selection_mode.prefer_nearest": "Preferir el más cercano", - "create.tunnel.selection_mode.randomize": "Aleatorizar", - "create.tunnel.selection_mode.synchronize": "Sincronizar entradas", - - "create.tooltip.chute.header": "Información del ducto", - "create.tooltip.chute.items_move_down": "Los objetos se mueven hacia abajo", - "create.tooltip.chute.items_move_up": "Los objetos se mueven hacia arriba", - "create.tooltip.chute.no_fans_attached": "No hay ventiladores adjuntos", - "create.tooltip.chute.fans_push_up": "Los ventiladores empujan desde abajo", - "create.tooltip.chute.fans_push_down": "Los ventiladores empujan desde arriba", - "create.tooltip.chute.fans_pull_up": "Los ventiladores tiran desde arriba", - "create.tooltip.chute.fans_pull_down": "Los ventiladores tiran desde abajo", - "create.tooltip.chute.contains": "Contiene: %1$s x%2$s", - "create.tooltip.brass_tunnel.contains": "Actualmente distribuye:", - "create.tooltip.brass_tunnel.contains_entry": "> %1$s x%2$s", - "create.tooltip.brass_tunnel.retrieve": "Haga clic derecho para recuperar", - - "create.linked_controller.bind_mode": "Modo de enlace activo", - "create.linked_controller.press_keybind": "Presiona %1$s, %2$s, %3$s, %4$s, %5$s o %6$s, para vincular esta frecuencia a la tecla correspondiente", - "create.linked_controller.key_bound": "Frecuencia ligada a %1$s", - "create.linked_controller.frequency_slot_1": "Enlace de teclas: %1$s, Freq. #1", - "create.linked_controller.frequency_slot_2": "Enlace de teclas: %1$s, Freq. #2", - - "create.crafting_blueprint.crafting_slot": "Ranura para ingredientes", - "create.crafting_blueprint.filter_items_viable": "Los objetos del filtro avanzado son viables", - "create.crafting_blueprint.display_slot": "Ranura de pantalla", - "create.crafting_blueprint.inferred": "A partir de la receta", - "create.crafting_blueprint.manually_assigned": "Asignado manualmente", - "create.crafting_blueprint.secondary_display_slot": "Ranura de pantalla secundaria", - "create.crafting_blueprint.optional": "Opcional", - - "create.potato_cannon.ammo.attack_damage": "%1$s Daño de ataque", - "create.potato_cannon.ammo.reload_ticks": "%1$s Recarga por Ticks", - "create.potato_cannon.ammo.knockback": "%1$s Golpe de efecto", - - "create.hint.hose_pulley.title": "Suministro ilimitado", - "create.hint.hose_pulley": "La masa de fluido objetivo se considera infinita.", - "create.hint.mechanical_arm_no_targets.title": "Sin objetivos", - "create.hint.mechanical_arm_no_targets": "Parece que a este _brazo mecánico_ no se le ha asignado ningún objetivo. Selecciona _correas_, _depósitos_, _embudos_ y otros bloques haciendo clic derecho sobre ellos mientras _sostienes_ el _brazo mecánico_ en tu mano..", - "create.hint.empty_bearing.title": "Actualización del rodamiento", - "create.hint.empty_bearing": "Haz clic derecho sobre el rodamiento con la _mano vacía_ para _adjuntar_ la estructura que acabas de construir delante de él.", - "create.hint.full_deployer.title": "Exceso de objetos en el desplegador", - "create.hint.full_deployer": "Parece que este _desplegador_ contiene _exceso_ de objetos que necesitan ser _extraídos._ Usa una _tolva_, _embudo_ u otro medio para liberarlo de su excedente.", - - "create.gui.config.overlay1": "Hola :)", - "create.gui.config.overlay2": "Esta es una muestra de la superposición", - "create.gui.config.overlay3": "Haga clic o arrastre con el ratón", - "create.gui.config.overlay4": "para mover esta vista previa", - "create.gui.config.overlay5": "Pulsar ESC para salir de esta pantalla", - "create.gui.config.overlay6": "y guardar la nueva posición", - "create.gui.config.overlay7": "Ejecute /create overlay reset", - "create.gui.config.overlay8": "para restablecer la posición por defecto", - - "create.command.killTPSCommand": "killtps", - "create.command.killTPSCommand.status.slowed_by.0": "[Crear]: El tick del servidor está actualmente ralentizado en %s ms :o", - "create.command.killTPSCommand.status.slowed_by.1": "[Crear]: El tick del servidor está ralentizado en %s ms ahora >:)", - "create.command.killTPSCommand.status.slowed_by.2": "[Create]: El tick del servidor ha vuelto a su velocidad normal :D", - "create.command.killTPSCommand.status.usage.0": "[Create]: usa /killtps stop para que el servidor vuelva a la velocidad normal", - "create.command.killTPSCommand.status.usage.1": "[Create]: usa /killtps start para ralentizar artificialmente el tick del servidor", - "create.command.killTPSCommand.argument.tickTime": "tickTime", - - "create.contraption.minecart_contraption_too_big": "Este artilugio de vagoneta parece demasiado grande para recogerlo", - "create.contraption.minecart_contraption_illegal_pickup": "Una fuerza mística está atando este artilugio de vagoneta al mundo", - - - "_": "->------------------------] Subtitles [------------------------<-", - - "create.subtitle.contraption_disassemble": "", - "create.subtitle.peculiar_bell_use": "", - "create.subtitle.mixing": "", - "create.subtitle.mechanical_press_activation_belt": "", - "create.subtitle.fwoomp": "", - "create.subtitle.worldshaper_place": "", - "create.subtitle.crushing_1": "", - "create.subtitle.depot_slide": "", - "create.subtitle.saw_activate_stone": "", - "create.subtitle.blaze_munch": "", - "create.subtitle.funnel_flap": "", - "create.subtitle.schematicannon_finish": "", - "create.subtitle.haunted_bell_use": "", - "create.subtitle.scroll_value": "", - "create.subtitle.crafter_craft": "", - "create.subtitle.controller_put": "", - "create.subtitle.cranking": "", - "create.subtitle.wrench_remove": "", - "create.subtitle.cogs": "", - "create.subtitle.slime_added": "", - "create.subtitle.wrench_rotate": "", - "create.subtitle.potato_hit": "", - "create.subtitle.saw_activate_wood": "", - "create.subtitle.haunted_bell_convert": "", - "create.subtitle.deployer_polish": "", - "create.subtitle.deny": "", - "create.subtitle.controller_click": "", - "create.subtitle.schematicannon_launch_block": "", - "create.subtitle.copper_armor_equip": "", - "create.subtitle.controller_take": "Lectern empties", - "create.subtitle.mechanical_press_activation": "", - "create.subtitle.contraption_assemble": "", - "create.subtitle.crafter_click": "", - "create.subtitle.depot_plop": "", - "create.subtitle.confirm": "", - - - "_": "->------------------------] Item Descriptions [------------------------<-", - - "item.create.example_item.tooltip": "EJEMPLO DE ITEM (sólo un marcador de que este tooltip existe)", - "item.create.example_item.tooltip.summary": "Una breve descripción del elemento. Los puntajes bajos resaltan un término", - "item.create.example_item.tooltip.condition1": "Cuando este", - "item.create.example_item.tooltip.behaviour1": "Entonces este elemento hace esto. (los comportamientos se muestran en el turno)", - "item.create.example_item.tooltip.condition2": "Y cuando esto", - "item.create.example_item.tooltip.behaviour2": "Puedes añadir tantos comportamientos como quieras", - "item.create.example_item.tooltip.control1": "Cuando se pulsa [Ctrl]", - "item.create.example_item.tooltip.action1": "Se muestran estos controles", - - "block.create.wooden_bracket.tooltip": "SOPORTE DE MADERA PARA EJES", - "block.create.wooden_bracket.tooltip.summary": "Decora tus _ejes_, _engranajes_ y _ductos_ con un acogedor refuerzo de madera.", - - "block.create.metal_bracket.tooltip": "SOPORTE DE METAL PARA EJES", - "block.create.metal_bracket.tooltip.summary": "Decora tus _ejes_, _engranajes_ y _ductos_ con un poco de robusto refuerzo industrial.", - - "block.create.seat.tooltip": "ASIENTO", - "block.create.seat.tooltip.summary": "¡Siéntate y disfruta del viaje! Anclará a un jugador en un artilugio en movimiento. También es ideal para muebles estáticos. Viene en una variedad de colores.", - "block.create.seat.tooltip.condition1": "Cuando se hace clic derecho en el asiento", - "block.create.seat.tooltip.behaviour1": "Sienta al jugador en el _asiento_. Pulsa Mayús izdo para dejar el asiento.", - - "item.create.blaze_cake.tooltip": "PASTEL DE BLAZE", - "item.create.blaze_cake.tooltip.summary": "Un delicioso regalo para sus esforzados _quemadores de blaze_. ¡Los pone en marcha!.", - - "item.create.wand_of_symmetry.tooltip": "VARITA DE SIMETRÍA", - "item.create.wand_of_symmetry.tooltip.summary": "Refleja perfectamente la colocación de bloques en los planos configurados.", - "item.create.wand_of_symmetry.tooltip.condition1": "Mientras está en el inventario rápido", - "item.create.wand_of_symmetry.tooltip.behaviour1": "Permanece activo.", - "item.create.wand_of_symmetry.tooltip.control1": "Cuando se hace clic derecho en el suelo", - "item.create.wand_of_symmetry.tooltip.action1": "_Crea_ o _mueve_ el espejo.", - "item.create.wand_of_symmetry.tooltip.control2": "Cuando se hace clic derecho en el aire", - "item.create.wand_of_symmetry.tooltip.action2": "_Quita_ el espejo activo.", - "item.create.wand_of_symmetry.tooltip.control3": "Mayús izdo + clic derecho", - "item.create.wand_of_symmetry.tooltip.action3": "Abre la interfaz de configuración.", - - "item.create.handheld_worldshaper.tooltip": "WORLDSHAPER", - "item.create.handheld_worldshaper.tooltip.summary": "Práctica herramienta para crear _paisajes_ y _características del terreno_.", - "item.create.handheld_worldshaper.tooltip.control1": "Cuando se hace clic izquierdo en un bloque", - "item.create.handheld_worldshaper.tooltip.action1": "Establece los bloques colocados por la herramienta en el bloque objetivo.", - "item.create.handheld_worldshaper.tooltip.control2": "Cuando se hace clic derecho en un bloque", - "item.create.handheld_worldshaper.tooltip.action2": "Aplica el _pincel_ y la _herramienta_ actualmente seleccionadas en el lugar deseado.", - "item.create.handheld_worldshaper.tooltip.control3": "Mayús izdo + clic derecho", - "item.create.handheld_worldshaper.tooltip.action3": "Abre la interfaz de configuración.", - - "item.create.tree_fertilizer.tooltip": "FERTILIZANTE PARA ÁRBOLES", - "item.create.tree_fertilizer.tooltip.summary": "Una potente combinación de minerales adecuada para acelerar el crecimiento de los tipos de árboles más comunes.", - "item.create.tree_fertilizer.tooltip.condition1": "Cuando se utiliza en un árbol joven", - "item.create.tree_fertilizer.tooltip.behaviour1": "Hace crecer los árboles _independientemente_ de sus condiciones de _espacio_.", - - "item.create.extendo_grip.tooltip": "AGARRE EXTENDIDO", - "item.create.extendo_grip.tooltip.summary": "¡Boioioing! Aumenta enormemente la _distancia de alcance_ del portador. Se puede alimentar con la presión de aire de un _depósito trasero de cobre_", - "item.create.extendo_grip.tooltip.condition1": "Cuando está fuera de la mano", - "item.create.extendo_grip.tooltip.behaviour1": "Aumenta la _distancia de alcance_ de los objetos usados en la _mano principal_.", - "item.create.extendo_grip.tooltip.condition2": "Mientras se usa un depósito trasero de cobre", - "item.create.extendo_grip.tooltip.behaviour2": "No se utilizará _durabilidad_. En su lugar, la _presión del aire_ se drena desde el tanque", - - "item.create.potato_cannon.tooltip": "CANÓN DE PATATAS", - "item.create.potato_cannon.tooltip.summary": "Fwoomp! Lanza tus verduras caseras a tus enemigos. Se puede alimentar con la presión de aire de un _depósito trasero de cobre_", - "item.create.potato_cannon.tooltip.condition1": "Cuando se usa clic derecho", - "item.create.potato_cannon.tooltip.behaviour1": "_Dispara_ un objeto adecuado desde tu inventario_.", - "item.create.potato_cannon.tooltip.condition2": "Mientras se usa un depósito trasero de cobre", - "item.create.potato_cannon.tooltip.behaviour2": "No se utilizará _durabilidad_. En su lugar, la _presión del aire_ se drena desde el tanque", - - "item.create.filter.tooltip": "FILTRO", - "item.create.filter.tooltip.summary": "Controla las _salidas_ y _entradas_ de los _dispositivos logísticos_ con más precisión, comparándolas con un _conjunto de objetos_ o varios _filtros anidados_.", - "item.create.filter.tooltip.condition1": "Cuando está en la ranura de filtros", - "item.create.filter.tooltip.behaviour1": "Controla el flujo de objetos según su _configuración_.", - "item.create.filter.tooltip.condition2": "Cuando se hace clic derecho", - "item.create.filter.tooltip.behaviour2": "Abre la interfaz de configuración.", - - "item.create.attribute_filter.tooltip": "FILTRO DE ATRIBUTOS", - "item.create.attribute_filter.tooltip.summary": "Controla las _salidas_ y las _entradas_ de los _dispositivos logísticos_ con más precisión, comparándolas con un _conjunto de atributos_ y _categorías_ de objetos.", - "item.create.attribute_filter.tooltip.condition1": "Cuando está en la ranura de filtros", - "item.create.attribute_filter.tooltip.behaviour1": "Controla el flujo de objetos según su _configuración_.", - "item.create.attribute_filter.tooltip.condition2": "Cuando se hace clic derecho", - "item.create.attribute_filter.tooltip.behaviour2": "Abre la interfaz de configuración.", - - "item.create.empty_schematic.tooltip": "ESQUEMA VACÍO", - "item.create.empty_schematic.tooltip.summary": "Se utiliza como 'ingrediente' de las recetas y para escribir en la _tabla de esquemas_.", - - "item.create.schematic.tooltip": "ESQUEMA", - "item.create.schematic.tooltip.summary": "Contiene una estructura para ser posicionada y colocada en el mundo. Posiciona el holograma como desees y utiliza un _cañón de esquemas_ para construirla.", - "item.create.schematic.tooltip.condition1": "Cuando se sostiene en la mano", - "item.create.schematic.tooltip.behaviour1": "Se puede posicionar utilizando las herramientas en pantalla.", - "item.create.schematic.tooltip.control1": "Mayús izdo + clic derecho", - "item.create.schematic.tooltip.action1": "Abre una _interfaz_ para introducir las _coordenadas_ exactas.", - - "item.create.schematic_and_quill.tooltip": "ESQUEMA Y PLUMA", - "item.create.schematic_and_quill.tooltip.summary": "Se utiliza para guardar una estructura de tu mundo en un archivo .nbt.", - "item.create.schematic_and_quill.tooltip.condition1": "Paso 1", - "item.create.schematic_and_quill.tooltip.behaviour1": "Selecciona dos puntos de esquina usando clic derecho.", - "item.create.schematic_and_quill.tooltip.condition2": "Paso 2", - "item.create.schematic_and_quill.tooltip.behaviour2": "[Ctrl] + [RUEDA DEL RATÓN] en las caras para ajustar el tamaño. Clic derecho de nuevo para guardar.", - "item.create.schematic_and_quill.tooltip.control1": "Cuando se hace clic derecho", - "item.create.schematic_and_quill.tooltip.action1": "Selecciona un punto de esquina / confirmar guardar.", - "item.create.schematic_and_quill.tooltip.control2": "Cuando mantiene [Ctrl]", - "item.create.schematic_and_quill.tooltip.action2": "Selecciona puntos en _medio del aire_. Rueda del ratón para ajustar la distancia.", - "item.create.schematic_and_quill.tooltip.control3": "Mayús izdo + clic derecho", - "item.create.schematic_and_quill.tooltip.action3": "_Reinicia_ y elimina la selección.", - - "block.create.schematicannon.tooltip": "CAÑÓN DE ESQUEMAS", - "block.create.schematicannon.tooltip.summary": "Dispara bloques para recrear un _esquema_ desplegado en el mundo. Utiliza objetos de los inventarios adyacentes y _pólvora_ como combustible.", - "block.create.schematicannon.tooltip.condition1": "Cuando se hace clic derecho", - "block.create.schematicannon.tooltip.behaviour1": "Abre la interfaz.", - - "block.create.schematic_table.tooltip": "TABLA DE ESQUEMAS", - "block.create.schematic_table.tooltip.summary": "Escribe los esquemas guardados en un _esquema vacío_.", - "block.create.schematic_table.tooltip.condition1": "Cuando se da un esquema vacío", - "block.create.schematic_table.tooltip.behaviour1": "Carga un archivo elegido de la carpeta de esquemas.", - - "item.create.goggles.tooltip": "GAFAS DEL CONSTRUCTOR", - "item.create.goggles.tooltip.summary": "Un par de gafas para aumentar tu visión con útil información _cinética_.", - "item.create.goggles.tooltip.condition1": "Cuando se llevan puestas", - "item.create.goggles.tooltip.behaviour1": "Muestra _indicadores de color_ correspondientes al _nivel de velocidad_ de un componente cinético colocado, así como el _impacto de estrés_ y la _carga_ de los componentes individuales.", - "item.create.goggles.tooltip.condition2": "Al mirar un medidor", - "item.create.goggles.tooltip.behaviour2": "Muestra información detallada sobre _velocidad_ o _estrés_ de la red a la que está conectado el medidor.", - "item.create.goggles.tooltip.condition3": "Al mirar un contenedor de fluidos", - "item.create.goggles.tooltip.behaviour3": "Muestra información detallada sobre la _carga_ del bloque y los _líquidos_ almacenados en su interior.", - - "item.create.wrench.tooltip": "LLAVE INGLESA", - "item.create.wrench.tooltip.summary": "Una herramienta útil para trabajar en artilugios cinéticos. Se puede utilizar para _rotar_, _desmantelar_ y para _configurar_ componentes.", - "item.create.wrench.tooltip.control1": "Cuando se hace clic derecho en un bloque cinético", - "item.create.wrench.tooltip.action1": "Rota los componentes hacia o desde la cara con la que ha interactuado.", - "item.create.wrench.tooltip.control2": "Mayús izdo + clic derecho", - "item.create.wrench.tooltip.action2": "Desmonta los _componentes cinéticos_ y los devuelve a tu inventario_.", - - "block.create.nozzle.tooltip": "BOQUILLA", - "block.create.nozzle.tooltip.summary": "Se acopla a la parte delantera de un _ventilador revestido_ para distribuir su efecto sobre las entidades en _todas las direcciones_.", - - "block.create.cuckoo_clock.tooltip": "RELOJ DE CUCO", - "block.create.cuckoo_clock.tooltip.summary": "Fina artesanía para decorar un espacio y contar el tiempo.", - "block.create.cuckoo_clock.tooltip.condition1": "Cuando es alimentado por cinética", - "block.create.cuckoo_clock.tooltip.behaviour1": "Muestra la _hora actual_ y toca una melodía dos veces al día. Se activa una vez al mediodía y al anochecer, _en cuanto los jugadores pueden dormir_.", - - "block.create.turntable.tooltip": "PLATAFORMA GIRATORIA", - "block.create.turntable.tooltip.summary": "Convierte la _fuerza rotacional_ en un refinado mareo.", - - "block.create.stockpile_switch.tooltip": "INTERRUPTOR DE ACOPIO", - "block.create.stockpile_switch.tooltip.summary": "Activa una señal de redstone en función de la cantidad de _objetos almacenados_ en el _contenedor_ adjunto. Viene con un práctico filtro. A diferencia de un _comparador, el _interruptor de acopio_ permite la configuración de _umbrales_, a partir de los cuales se invierten las señales.", - "block.create.stockpile_switch.tooltip.condition1": "Cuando se hace clic derecho", - "block.create.stockpile_switch.tooltip.behaviour1": "Abre la interfaz de configuración.", - - "block.create.content_observer.tooltip": "OBSERVADOR DE CONTENIDO", - "block.create.content_observer.tooltip.summary": "_Detecta objetos_ dentro de _contenedores_ y _transportadores_ que coincidan con un _filtro_ configurado. Mientras el _inventario_, la _cinta_ o la _canaleta_ observados _contengan_ un objeto que coincida, este componente emitirá una _señal de redstone_. Cuando un embudo observado _transfiere_ un objeto coincidente, este componente emitirá un _pulso de redstone_.", - - "block.create.adjustable_crate.tooltip": "CAJA AJUSTABLE", - "block.create.adjustable_crate.tooltip.summary": "Este _contenedor de objetos_ permite el control manual de su capacidad. Puede contener hasta _16 pilas_ de cualquier objeto. Soporta _comparadores de redstone_.", - "block.create.adjustable_crate.tooltip.condition1": "Cuando se hace clic derecho", - "block.create.adjustable_crate.tooltip.behaviour1": "Abre la interfaz.", - - "block.create.creative_crate.tooltip": "CAJA CREATIVA", - "block.create.creative_crate.tooltip.summary": "Este _contenedor de objetos_ permite la replicación infinita de cualquier elemento. Colócalo junto a un _cañón de esquemas_ para eliminar cualquier requisito de material.", - "block.create.creative_crate.tooltip.condition1": "Cuando el elemento está en la ranura para filtros", - "block.create.creative_crate.tooltip.behaviour1": "Todo lo que se _extraiga_ de este contenedor proporcionará un suministro _ilimitado_ del elemento especificado. Los objetos _insertados_ en esta caja serán _evitados_.", - - "item.create.creative_blaze_cake.tooltip": "PASTEL CREATIVO", - "item.create.creative_blaze_cake.tooltip.summary": "Un regalo muy especial para los _Quemadores de Blaze_ que permite _controlar su nivel de calor_. Después de comer este pastel, los Quemadores de blaze _nunca se quedarán sin combustible_.", - "item.create.creative_blaze_cake.tooltip.condition1": "Click derecho en un Quemador de blaze", - "item.create.creative_blaze_cake.tooltip.behaviour1": "Bloquea el nivel de calor del Quemador de blaze. Si se utiliza de nuevo, _cicla_ el nivel de calor del Quemador de blaze.", - - "block.create.controller_rail.tooltip": "RAÍL DE CONTROL", - "block.create.controller_rail.tooltip.summary": "Un raíl energizado _unidireccional_ capaz de _controlar con precisión_ la _velocidad de movimiento_ de una vagoneta.", - "block.create.controller_rail.tooltip.condition1": "Cuando es alimentado con redstone", - "block.create.controller_rail.tooltip.behaviour1": "_Acelera_ o _desacelera_ pasando _vagonetas_ correspondientes a la _fuerza de la señal_. Propaga la energía de redstone a los raíles de control adyacentes. Al alimentar dos raíles de control con diferentes intensidades, los carriles entre ellos interpolarán su señal.", - - "item.create.sand_paper.tooltip": "PAPEL DE LIJA", - "item.create.sand_paper.tooltip.summary": "Un papel rugoso que se puede utilizar para _pulir materiales_. Se puede aplicar automáticamente con el _desplegador_.", - "item.create.sand_paper.tooltip.condition1": "Cuando se usa", - "item.create.sand_paper.tooltip.behaviour1": "Aplica un pulido a los objetos sostenidos en la _mano libre_ o tirados en el _suelo_ cuando se _miran_.", - - "item.create.builders_tea.tooltip": "TÉ DEL CONSTRUCTOR", - "item.create.builders_tea.tooltip.summary": "La bebida perfecta para empezar el día. Motivante y saturante.", - - "item.create.refined_radiance.tooltip": "RESPLANDOR REFINADO", - "item.create.refined_radiance.tooltip.summary": "Un material cromático forjado a partir de la _luz absorbida_.", - "item.create.refined_radiance.tooltip.condition1": "Trabajo en progreso", - "item.create.refined_radiance.tooltip.behaviour1": "Los usos para este material estarán disponibles en un próximo lanzamiento.", - - "item.create.shadow_steel.tooltip": "ACERO SOMBRÍO", - "item.create.shadow_steel.tooltip.summary": "Un material cromático forjado en el _vacío_.", - "item.create.shadow_steel.tooltip.condition1": "Trabajo en curso", - "item.create.shadow_steel.tooltip.behaviour1": "Los usos de este material estarán disponibles en una futura versión.", - - "item.create.linked_controller.tooltip": "CONTROLADOR ENLAZADO", - "item.create.linked_controller.tooltip.summary": "Permite el control manual de las frecuencias de _enlaces de redstone_ asignadas a sus seis botones.", - "item.create.linked_controller.tooltip.condition1": "Al hacer clic derecho", - "item.create.linked_controller.tooltip.behaviour1": "Activa el _controlador_. Los _controles de movimiento_ se adquieren mientras está activo.", - "item.create.linked_controller.tooltip.condition2": "Al usar Mayús izdo + clic derecho", - "item.create.linked_controller.tooltip.behaviour2": "Abre la interfaz de configuración manual.", - "item.create.linked_controller.tooltip.condition3": "Al usar clic derecho en un receptor de enlaces de redstone", - "item.create.linked_controller.tooltip.behaviour3": "Activa el _modo de vinculación_, pulsa uno de los _seis controles_ para vincularlo a la _frecuencia de los enlaces_.", - "item.create.linked_controller.tooltip.condition4": "Clic derecho en un atril", - "item.create.linked_controller.tooltip.behaviour4": "Coloca el controlador en el atril para facilitar su activación. (Clic derecho + mayús izq. para recuperarlo)", - - "item.create.diving_helmet.tooltip": "CASCO DE BUCEO", - "item.create.diving_helmet.tooltip.summary": "Junto con un _depósito trasero de cobre_, permite que el usuario pueda respirar bajo el agua durante un tiempo prolongado.", - "item.create.diving_helmet.tooltip.condition1": "Cuando se lleva puesto", - "item.create.diving_helmet.tooltip.behaviour1": "Proporciona el efecto de _respiración acuática_, drenando lentamente la presión de aire del _depósito trasero_.", - - "item.create.copper_backtank.tooltip": "DEPÓSITO TRASERO DE COBRE", - "item.create.copper_backtank.tooltip.summary": "Un tanque portátil para transportar _aire presurizado_.", - "item.create.copper_backtank.tooltip.condition1": "Cuando se lleva puesto", - "item.create.copper_backtank.tooltip.behaviour1": "Proporciona _aire presurizado_ a los equipos que lo requieran.", - "item.create.copper_backtank.tooltip.condition2": "Cuando se coloca y es alimentado por cinética", - "item.create.copper_backtank.tooltip.behaviour2": "Recoge _aire presurizado_ a un ritmo que depende de la velocidad rotacional.", - - "item.create.diving_boots.tooltip": "BOTAS DE BUCEO", - "item.create.diving_boots.tooltip.summary": "Un par de _botas_ pesadas, que permiten atravesar mejor el suelo del océano.", - "item.create.diving_boots.tooltip.condition1": "Cuando se llevan puestas", - "item.create.diving_boots.tooltip.behaviour1": "El portador se hunde rápido y no puede nadar. Concede la capacidad de caminar y saltar bajo el agua. Al portador no le afectarán las _correas mecánicas.", - - "item.create.crafting_blueprint.tooltip": "PLANO DE ELABORACIÓN", - "item.create.crafting_blueprint.tooltip.summary": "Colocado en una pared, puede utilizarse para especificar la disposición de los ingredientes para facilitar la elaboración manual. Cada ranura representa una receta", - "item.create.crafting_blueprint.condition1": "Al hacer clic derecho en una ranura vacía", - "item.create.crafting_blueprint.behaviour1": "Abre un menú que permite configurar una receta y los objetos a mostrar.", - "item.create.crafting_blueprint.condition2": "Al hacer clic derecho en una ranura configurada", - "item.create.crafting_blueprint.behaviour2": "Aplica la receta configurada con los ingredientes que se encuentran en tu inventario. Se puede utilizar para fabricar hasta una pila de objetos.", - - "item.create.minecart_coupling.tooltip": "ENSAMBLADOR DE VAGONETAS", - "item.create.minecart_coupling.tooltip.summary": "_Encadena_ todas tus _vagonetas_ o _artilugios de vagoneta_ para formar un majestuoso _tren_.", - "item.create.minecart_coupling.tooltip.condition1": "Cuando se utiliza en vagonetas", - "item.create.minecart_coupling.tooltip.behaviour1": "_Acopla_ dos vagonetas, intentando mantenerlas a una _distancia constante_ mientras se mueven.", - - "block.create.peculiar_bell.tooltip": "CAMPANA PECULIAR", - "block.create.peculiar_bell.tooltip.summary": "Una campana decorativa de latón. Al colocarla sobre un _Fuego del alma_ o una _Fogata del alma_ puede producirse una transformación espeluznante...", - - "block.create.haunted_bell.tooltip": "CAMPANA ENCANTADA", - "block.create.haunted_bell.tooltip.summary": "Una _campana maldita_ perseguida por las almas perdidas del Nether", - "block.create.haunted_bell.tooltip.condition1": "Cuando se sostiene o suena", - "block.create.haunted_bell.tooltip.behaviour1": "Resalta los _puntos sin luz_ cercanos en los que pueden aparecer las _criaturas hostiles_.", - - - "_": "->------------------------] Ponder Content [------------------------<-", - - "create.ponder.hold_to_ponder": "Mantén [%1$s] para considerar", - "create.ponder.subject": "Tema de esta escena", - "create.ponder.pondering": "Considerando sobre...", - "create.ponder.identify_mode": "Identificando modo activo.\nDespausea con [%1$s]", - "create.ponder.associated": "Entradas asociadas", - "create.ponder.close": "Cerrar", - "create.ponder.identify": "Identificar", - "create.ponder.next": "Escena siguiente", - "create.ponder.previous": "Escena previa", - "create.ponder.replay": "Repetición", - "create.ponder.think_back": "Volver atrás", - "create.ponder.slow_text": "Lectura cómoda", - "create.ponder.exit": "Salir", - "create.ponder.welcome": "Bienvenido al instructivo de Create", - "create.ponder.categories": "Categorías disponibles", - "create.ponder.index_description": "Haga clic en uno de los iconos para conocer sus objetos y bloques asociados", - "create.ponder.index_title": "Índice", - "create.ponder.shared.rpm16": "16 RPM", - "create.ponder.shared.behaviour_modify_wrench": "Este comportamiento puede modificarse mediante una llave inglesa", - "create.ponder.shared.storage_on_contraption": "Los inventarios unidos al artilugio recogerán sus producciones automáticamente", - "create.ponder.shared.sneak_and": "Mayús izdo. +", - "create.ponder.shared.rpm8": "8 RPM", - "create.ponder.shared.ctrl_and": "Ctrl +", - "create.ponder.shared.rpm32": "32 RPM", - "create.ponder.shared.rpm16_source": "Fuente: 16 RPM", - "create.ponder.shared.movement_anchors": "Con la ayuda de un chasis o pegamento, se pueden mover estructuras más grandes.", - "create.ponder.tag.redstone": "Componentes lógicos", - "create.ponder.tag.redstone.description": "Componentes que ayudan a la ingeniería de redstone", - "create.ponder.tag.contraption_assembly": "Utilidades para adjuntar bloques", - "create.ponder.tag.contraption_assembly.description": "Herramientas y componentes utilizados para montar estructuras con movimiento, como un artilugio animado", - "create.ponder.tag.fluids": "Manipuladores de fluidos", - "create.ponder.tag.fluids.description": "Componentes que ayudan a transportar y utilizar fluidos", - "create.ponder.tag.decoration": "Estética", - "create.ponder.tag.decoration.description": "Componentes utilizados principalmente con fines decorativos", - "create.ponder.tag.windmill_sails": "Velas para los rodamientos de los molinos de viento", - "create.ponder.tag.windmill_sails.description": "Bloques que cuentan para la fuerza de un artefacto de molino de viento cuando se ensamblan. Cada uno de ellos tiene la misma eficacia al hacerlo.", - "create.ponder.tag.arm_targets": "Objetivos para los brazos mecánicos", - "create.ponder.tag.arm_targets.description": "Componentes que pueden seleccionarse como entradas o salidas del brazo mecánico", - "create.ponder.tag.kinetic_appliances": "Dispositivos cinéticos", - "create.ponder.tag.kinetic_appliances.description": "Componentes que utilizan la fuerza rotacional", - "create.ponder.tag.kinetic_sources": "Fuentes cinéticas", - "create.ponder.tag.kinetic_sources.description": "Componentes que generan fuerza rotacional", - "create.ponder.tag.movement_anchor": "Anclas de movimiento", - "create.ponder.tag.movement_anchor.description": "Componentes que permiten crear artilugios en movimiento, animando una estructura anexa de diversas maneras", - "create.ponder.tag.kinetic_relays": "Transmisores cinéticos", - "create.ponder.tag.kinetic_relays.description": "Componentes que ayudan a transmitir la fuerza rotacional en otro lugar", - "create.ponder.tag.contraption_actor": "Actores del artilugio", - "create.ponder.tag.contraption_actor.description": "Componentes que exponen un comportamiento especial cuando están unidos a un artilugio en movimiento", - "create.ponder.tag.creative": "Modo creativo", - "create.ponder.tag.creative.description": "Componentes que no suelen estar disponibles para el Modo Supervivencia", - "create.ponder.tag.logistics": "Transporte de objetos", - "create.ponder.tag.logistics.description": "Componentes que ayudan a desplazar los objetos", - - "create.ponder.adjustable_pulse_repeater.header": "Controlar señales mediante repetidores de pulsos ajustables", - "create.ponder.adjustable_pulse_repeater.text_1": "Los repetidores de pulsos ajustables emiten un pulso corto con un retardo", - "create.ponder.adjustable_pulse_repeater.text_2": "Con la rueda del ratón se puede configurar el tiempo de carga", - "create.ponder.adjustable_pulse_repeater.text_3": "Los retrasos configurados pueden ser de hasta 30 minutos", - - "create.ponder.adjustable_repeater.header": "Controlar señales mediante repetidores ajustables", - "create.ponder.adjustable_repeater.text_1": "Los repetidores ajustables se comportan de forma similar a los repetidores normales", - "create.ponder.adjustable_repeater.text_2": "Se cargan durante un tiempo determinado...", - "create.ponder.adjustable_repeater.text_3": "...y se enfrían durante el mismo tiempo", - "create.ponder.adjustable_repeater.text_4": "Con la rueda del ratón se puede configurar el tiempo de carga", - "create.ponder.adjustable_repeater.text_5": "Los retrasos configurados pueden variar hasta 30 minutos", - - "create.ponder.analog_lever.header": "Controlar señales mediante la palanca analógica", - "create.ponder.analog_lever.text_1": "Las palancas analógicas son una fuente compacta y precisa de energía de redstone", - "create.ponder.analog_lever.text_2": "Haz clic derecho para aumentar su potencia analógica", - "create.ponder.analog_lever.text_3": "Usa Mayús izdo + clic derecho para volver a disminuir su potencia", - - "create.ponder.andesite_tunnel.header": "Usar túneles de andesita", - "create.ponder.andesite_tunnel.text_1": "Los túneles de andesita se pueden utilizar para tapar las correas", - "create.ponder.andesite_tunnel.text_2": "Siempre que un túnel de andesita tenga conexiones a los lados...", - "create.ponder.andesite_tunnel.text_3": "...dividirá exactamente un elemento de cualquier pila que pase", - "create.ponder.andesite_tunnel.text_4": "El resto continuará su camino", - - "create.ponder.basin.header": "Procesar objetos en la cuenca", - "create.ponder.basin.text_1": "Una cuenca puede contener objetos y fluidos para su procesamiento", - "create.ponder.basin.text_2": "Después de un paso de procesamamiento, las cuencas intentan descargar por debajo a un lado de ellas", - "create.ponder.basin.text_3": "Cuando un ingrediente válido está presente, la cuenca mostrará un conducto de salida", - "create.ponder.basin.text_4": "Aquí se pueden aplicar varias opciones", - "create.ponder.basin.text_5": "Las salidas serán capturadas por el inventario que está por debajo", - "create.ponder.basin.text_6": "Sin conducto de salida, la cuenca retendrá los objetos creados en su procesamiento", - "create.ponder.basin.text_7": "Esto puede ser útil si las salidas deben ser reutilizadas como ingredientes", - "create.ponder.basin.text_8": "Las salidas deseadas tendrán que ser extraídas de la cuenca", - "create.ponder.basin.text_9": "Podría ser necesario un filtro para evitar sacar los objetos no procesados", - - "create.ponder.bearing_modes.header": "Modos de movimiento del rodamiento mecánico", - "create.ponder.bearing_modes.text_1": "Cuando se detenga, el rodamiento mecánico colocará la estructura en el ángulo más cercano alineado con la cuadrícula", - "create.ponder.bearing_modes.text_2": "Se puede configurar para que nunca vuelva a los bloques sólidos, o sólo cerca del ángulo en el que comenzó", - - "create.ponder.belt_casing.header": "Correas revestidas", - "create.ponder.belt_casing.text_1": "Se puede utilizar revestidor de latón o andesita para decorar las correas", - "create.ponder.belt_casing.text_2": "Se puede utilizar una llave inglesa para quitar el revestimiento", - - "create.ponder.belt_connector.header": "El uso de las correas mecánicas", - "create.ponder.belt_connector.text_1": "Al hacer clic derecho en dos ejes con una correa mecánica se conectarán entre sí", - "create.ponder.belt_connector.text_2": "Las selecciones accidentales pueden ser canceladas con Mayús izdo + clic derecho", - "create.ponder.belt_connector.text_3": "Se pueden añadir ejes adicionales en toda la correa", - "create.ponder.belt_connector.text_4": "Los ejes conectados a través de correas girarán con velocidad y dirección idénticas", - "create.ponder.belt_connector.text_5": "Los ejes añadidos se pueden quitar con la llave inglesa", - "create.ponder.belt_connector.text_6": "Las correas mecánicas se pueden teñir con fines estéticos", - - "create.ponder.belt_directions.header": "Orientaciones válidas para las correas mecánicas", - "create.ponder.belt_directions.text_1": "Las correas mecánicas no pueden conectarse en direcciones arbitrarias", - "create.ponder.belt_directions.text_2": "1. Pueden conectarse horizontalmente", - "create.ponder.belt_directions.text_3": "2. Pueden conectarse en diagonal", - "create.ponder.belt_directions.text_4": "3. Pueden conectarse verticalmente", - "create.ponder.belt_directions.text_5": "4. Y pueden conectar ejes verticales horizontalmente", - "create.ponder.belt_directions.text_6": "Estas son todas las direcciones posibles. Pueden abarcar cualquier longitud entre 2 y 20 bloques", - - "create.ponder.belt_transport.header": "El uso de las correas mecánicas para la logística", - "create.ponder.belt_transport.text_1": "Las correas mecánicas transportan objetos y otras entidades", - "create.ponder.belt_transport.text_2": "Haz clic derecho con la mano vacía para sacar objetos de una 'cinta'", - - "create.ponder.blaze_burner.header": "Alimentar quemadores de blaze", - "create.ponder.blaze_burner.text_1": "Los quemadores de blaze pueden proporcionar calor a los objetos procesados en una cuenca", - "create.ponder.blaze_burner.text_2": "Para ello, el blaze tiene que ser alimentado con objetos inflamables", - "create.ponder.blaze_burner.text_3": "Con un pastel de blaze, el quemador puede alcanzar un mayor nivel de calor", - "create.ponder.blaze_burner.text_4": "El proceso de alimentación puede automatizarse utilizando desplegadores o brazos mecánicos", - - "create.ponder.brass_funnel.header": "El embudo de latón", - "create.ponder.brass_funnel.text_1": "Los embudos de andesita sólo pueden extraer objetos individuales", - "create.ponder.brass_funnel.text_2": "Los embudos de latón pueden extraer hasta una pila completa", - "create.ponder.brass_funnel.text_3": "Usar la rueda de desplazamiento del ratón en la ranura para filtros permite un control preciso del tamaño de la pila extraída.", - "create.ponder.brass_funnel.text_4": "El uso de objetos en la ranura de filtrado restringirá el embudo para transferir sólo las pilas que coincidan.", - - "create.ponder.brass_tunnel.header": "Usar túneles de latón", - "create.ponder.brass_tunnel.text_1": "Los túneles de latón pueden utilizarse para tapar las correas", - "create.ponder.brass_tunnel.text_2": "Tienen ranuras de filtro en cada lado abierto", - "create.ponder.brass_tunnel.text_3": "Los filtros en las conexiones de entrada simplemente bloquean los objetos que no coincidan", - "create.ponder.brass_tunnel.text_4": "Los filtros en las conexiones de salida pueden utilizarse para ordenar los objetos por tipo", - "create.ponder.brass_tunnel.text_5": "Siempre que un objeto de paso tenga múltiples salidas válidas, el modo de distribución decidirá cómo manejarlo", - "create.ponder.brass_tunnel.text_6": "Los túneles de latón en bandas paralelas formarán un grupo", - "create.ponder.brass_tunnel.text_7": "Los objetos entrantes se distribuirán ahora por todas las salidas conectadas", - "create.ponder.brass_tunnel.text_8": "Para ello, los objetos también pueden insertarse en el bloque del túnel directamente", - - "create.ponder.brass_tunnel_modes.header": "Modos de distribución del túnel de latón", - "create.ponder.brass_tunnel_modes.text_1": "Mediante una llave inglesa se puede configurar el comportamiento de distribución de los túneles de latón", - "create.ponder.brass_tunnel_modes.text_10": "'Sincronizar entradas' es una configuración única de los túneles de latón", - "create.ponder.brass_tunnel_modes.text_11": "Las entradas sólo pueden pasar si cada túnel del grupo tiene una en espera", - "create.ponder.brass_tunnel_modes.text_12": "Esto asegura que todas las correas afectadas suministren objetos al mismo tiempo", - "create.ponder.brass_tunnel_modes.text_2": "El modo División intentará distribuir la pila uniformemente entre las salidas disponibles", - "create.ponder.brass_tunnel_modes.text_3": "Si una salida no puede tomar más objetos, se saltará", - "create.ponder.brass_tunnel_modes.text_4": "El modo División forzada nunca saltará las salidas, y en su lugar esperará hasta que estén libres", - "create.ponder.brass_tunnel_modes.text_5": "El modo Round Robin mantiene las pilas enteras, y recorre las salidas de forma iterativa", - "create.ponder.brass_tunnel_modes.text_6": "Una vez más, si una salida no puede aceptar más objetos, se saltará", - "create.ponder.brass_tunnel_modes.text_7": "El modo Round Robin forzado nunca omite salidas", - "create.ponder.brass_tunnel_modes.text_8": "El modo Preferir el más cercano prioriza las salidas más cercanas a la ubicación de entrada de los objetos", - "create.ponder.brass_tunnel_modes.text_9": "El modo Aleatorizar distribuirá pilas enteras a salidas elegidas al azar", - - "create.ponder.cart_assembler.header": "Mover estructuras usando ensambladores de vagonetas", - "create.ponder.cart_assembler.text_1": "Los ensambladores de vagonetas montan estructuras adjuntas a las vagonetas que pasan", - "create.ponder.cart_assembler.text_2": "Sin una señal de redstone, desmonta los artilugios de vagoneta que pasan de nuevo en bloques", - "create.ponder.cart_assembler.text_3": "El uso de una llave inglesa en una vagoneta te permitirá llevar el artilugio a otro lugar", - - "create.ponder.cart_assembler_dual.header": "Ensamblajes de artilugios de vagoneta", - "create.ponder.cart_assembler_dual.text_1": "Siempre que dos ensambladores de vagoneta compartan una estructura adjunta...", - "create.ponder.cart_assembler_dual.text_2": "...al alimentar a cualquiera de ellos se creará un artilugio de vagoneta", - "create.ponder.cart_assembler_dual.text_3": "Las vagonetas se comportarán como las conectadas a través del acoplamiento de vagoneta", - - "create.ponder.cart_assembler_modes.header": "Configurar la orientación de los artilugios de vagonetas", - "create.ponder.cart_assembler_modes.text_1": "Los artilugios de vagonetas girarán para orientarse hacia el movimiento de sus vagonetas", - "create.ponder.cart_assembler_modes.text_2": "Esta flecha indica qué lado de la estructura se considerará la parte delantera", - "create.ponder.cart_assembler_modes.text_3": "Si el ensamblador está configurado para bloquear la rotación, la orientación de los artilugios nunca cambiará", - - "create.ponder.cart_assembler_rails.header": "Otros tipos de vagonetas y raíles", - "create.ponder.cart_assembler_rails.text_1": "Los ensambladores de vagonetas en raíles normales no afectarán el movimiento de las vagonetas que pasen", - "create.ponder.cart_assembler_rails.text_2": "Cuando se encuentre en un raíl motorizado o en un raíl de control, las vagonetas se mantendrán en su sitio hasta que sea motorizado", - "create.ponder.cart_assembler_rails.text_3": "Se pueden utilizar otros tipos de vagonetas como anclaje", - "create.ponder.cart_assembler_rails.text_4": "Los artilugios de vagonetas de horno se mantendrán alimentados a sí mismos, sacando combustible de cualquier inventario adjunto", - - "create.ponder.chain_drive.header": "Transmitir fuerza rotacional con las cadenas de transmisión", - "create.ponder.chain_drive.text_1": "Las cadenas de transmisión transmiten la rotación entre sí en fila", - "create.ponder.chain_drive.text_2": "Todos los ejes conectados así girarán en la misma dirección", - "create.ponder.chain_drive.text_3": "Cualquier parte de la fila puede girar 90 grados usando una llave inglesa", - - "create.ponder.chain_gearshift.header": "Controlar la velocidad de rotación con la cadena de transmisión ajustable", - "create.ponder.chain_gearshift.text_1": "Las cadenas de transmisión ajustables sin alimentación se comportan exactamente como las cadenas de transmisión", - "create.ponder.chain_gearshift.text_2": "Cuando están alimentadas, la velocidad transmitida a las demás cadenas de transmisión de la fila se duplica", - "create.ponder.chain_gearshift.text_3": "Siempre que la cadena de transmisión alimentada no esté en el origen, su velocidad se reducirá a la mitad", - "create.ponder.chain_gearshift.text_4": "En ambos casos, las cadenas de transmisión de la fila siempre funcionan a 2 veces la velocidad de la cadena de transmisión alimentada", - "create.ponder.chain_gearshift.text_5": "Utilizando señales analógicas, la relación puede ajustarse con mayor precisión, entre 1 y 2", - "create.ponder.chain_gearshift.text_6": "12 RPM", - - "create.ponder.chute.header": "Transportar objetos hacia abajo a través de ductos", - "create.ponder.chute.text_1": "Los ductos pueden transportar objetos verticalmente desde y hacia los inventarios", - "create.ponder.chute.text_2": "Usando la llave inglesa, se puede crear una ventana", - "create.ponder.chute.text_3": "Colocar ductos apuntando a las caras laterales de otro lo hará en diagonal", - - "create.ponder.chute_upward.header": "Transportar objetos hacia arriba mediante ductos", - "create.ponder.chute_upward.text_1": "Usando ventiladores revestidos en la parte superior o inferior, un ducto puede transportar objetos hacia arriba", - "create.ponder.chute_upward.text_2": "Al inspeccionar los ductos con las gafas del constructor, se revela información sobre la dirección del movimiento", - "create.ponder.chute_upward.text_3": "En el extremo 'bloqueado', los objetos tendrán que ser insertados/tomados de los lados", - - "create.ponder.clockwork_bearing.header": "Animar estructuras con rodamientos tipo reloj", - "create.ponder.clockwork_bearing.text_1": "Los rodamientos tipo reloj se fijan a los bloques que tienen delante", - "create.ponder.clockwork_bearing.text_2": "Al recibir fuerza rotacional, la estructura girará según la hora del día", - "create.ponder.clockwork_bearing.text_3": "3:00", - "create.ponder.clockwork_bearing.text_4": "4:00", - "create.ponder.clockwork_bearing.text_5": "Haz clic derecho en el rodamiento para iniciar o detener la animación de la estructura", - "create.ponder.clockwork_bearing.text_6": "Delante de la manecilla de las horas se puede añadir una segunda estructura", - "create.ponder.clockwork_bearing.text_7": "Asegúrese de que las dos estructuras no están unidas entre sí con pegamento o algo similar", - "create.ponder.clockwork_bearing.text_8": "La segunda estructura ahora girará como el minutero", - - "create.ponder.clutch.header": "Controlar la fuerza rotacional mediante un embrague", - "create.ponder.clutch.text_1": "Los embragues transmitirán la rotación en línea recta", - "create.ponder.clutch.text_2": "Cuando se alimentan con redstone, rompen la conexión", - - "create.ponder.cog_speedup.header": "Cambiar de marchas con engranajes", - "create.ponder.cog_speedup.text_1": "Los engranajes grandes y pequeños pueden conectarse en diagonal", - "create.ponder.cog_speedup.text_2": "Al cambiar de engranajes grandes a pequeños, la velocidad rotacional se duplicará", - "create.ponder.cog_speedup.text_3": "Inversamente, la velocidad rotacional se reducirá a la mitad", - - "create.ponder.cogwheel.header": "Transmitir fuerza rotacional mediante engranajes", - "create.ponder.cogwheel.text_1": "Los engranajes transmitirán la rotación a otros engranajes adyacentes", - "create.ponder.cogwheel.text_2": "Los ejes adyacentes conectados así, girarán en direcciones opuestas", - - "create.ponder.creative_fluid_tank.header": "Tanque de fluídos creativo", - "create.ponder.creative_fluid_tank.text_1": "Los depósitos de fluidos creativos pueden utilizarse para proporcionar un suministro de fluidos sin fondo", - "create.ponder.creative_fluid_tank.text_2": "Haga clic con el botón derecho en un elemento que contenga fluido para configurarlo", - "create.ponder.creative_fluid_tank.text_3": "Las redes de tuberías pueden ahora extraer sin cesar el fluido asignado del depósito", - "create.ponder.creative_fluid_tank.text_4": "Cualquier fluido empujado de vuelta a un tanque de fluido creativo será anulado", - - "create.ponder.creative_motor.header": "Generar fuerza rotacional con motores creativos", - "create.ponder.creative_motor.text_1": "Los motores creativos son una fuente compacta y configurable de fuerza rotacional", - "create.ponder.creative_motor.text_2": "Usar la rueda de desplazamiento del ratón en su parte trasera cambia las RPM de la salida rotacional", - - "create.ponder.crushing_wheels.header": "Procesar objetos con las ruedas trituradoras", - "create.ponder.crushing_wheels.text_1": "Un par de ruedas trituradoras pueden moler objetos de forma muy eficaz", - "create.ponder.crushing_wheels.text_2": "Su fuerza rotacional tiene que hacerlas girar una contra otra", - "create.ponder.crushing_wheels.text_3": "Los objetos lanzados o insertados en la parte superior serán procesados", - "create.ponder.crushing_wheels.text_4": "Los objetos también pueden ser insertados y recogidos a través de medios automatizados", - - "create.ponder.deployer.header": "Usar el desplegador", - "create.ponder.deployer.text_1": "Dada la fuerza rotacional, un desplegador puede imitar las interacciones de los jugadores", - "create.ponder.deployer.text_10": "Haz clic derecho en el frente para darle un objeto a utilizar", - "create.ponder.deployer.text_11": "Los objetos también pueden ser insertados automáticamente", - "create.ponder.deployer.text_12": "Los desplegadores llevan una ranura de filtro", - "create.ponder.deployer.text_13": "Cuando se establece un filtro, sólo se activa mientras se mantiene un elemento coincidente", - "create.ponder.deployer.text_14": "Ahora sólo se pueden insertar los objetos que coincidan con el filtro...", - "create.ponder.deployer.text_15": "...y sólo se extraerán los objetos que no coincidan", - "create.ponder.deployer.text_2": "Siempre interactuará con la posición 2 bloques delante de sí mismo", - "create.ponder.deployer.text_3": "Los bloques situados directamente delante no lo obstruirán", - "create.ponder.deployer.text_4": "Los desplegadores pueden:", - "create.ponder.deployer.text_5": "Colocar bloques,", - "create.ponder.deployer.text_6": "Usar objetos,", - "create.ponder.deployer.text_7": "Activar bloques,", - "create.ponder.deployer.text_8": "Cosechar bloques", - "create.ponder.deployer.text_9": "Y atacar criaturas", - - "create.ponder.deployer_contraption.header": "Usar desplegadores en artilugios", - "create.ponder.deployer_contraption.text_1": "Siempre que los desplegadores se muevan como parte de un artilugio animado...", - "create.ponder.deployer_contraption.text_2": "Se activan en cada ubicación visitada, utilizando objetos de los inventarios de cualquier parte del artilugio", - "create.ponder.deployer_contraption.text_3": "La ranura para filtros se puede utilizar para especificar qué objetos tirar", - - "create.ponder.deployer_modes.header": "Modos del desplegador", - "create.ponder.deployer_modes.text_1": "Por defecto, un desplegador imita la interacción del clic derecho del ratón", - "create.ponder.deployer_modes.text_2": "Usando una llave inglesa, se puede configurar para imitar un clic izquierdo en su lugar", - - "create.ponder.deployer_processing.header": "Procesar objetos mediante desplegadores", - "create.ponder.deployer_processing.text_1": "Con un objeto de sujeción ajustado, los desplegadores pueden procesar los objetos proporcionados por debajo de ellos", - "create.ponder.deployer_processing.text_2": "Los objetos de entrada pueden soltarse o colocarse en un depósito bajo el desplegador", - "create.ponder.deployer_processing.text_3": "Cuando los objetos se proporcionan en una 'cinta'...", - "create.ponder.deployer_processing.text_4": "El desplegador los retendrá y procesará automáticamente", - - "create.ponder.deployer_redstone.header": "Controlar desplegadores con redstone", - "create.ponder.deployer_redstone.text_1": "Al controlar los desplegadores con redstone, éstos no se activarán", - "create.ponder.deployer_redstone.text_2": "Antes de detenerse, el desplegador terminará cualquier ciclo iniciado", - "create.ponder.deployer_redstone.text_3": "Por lo tanto, un pulso negativo puede ser utilizado para desencadenar exactamente un ciclo de activación", - - "create.ponder.depot.header": "Usar depósitos", - "create.ponder.depot.text_1": "Los depósitos pueden servir como objetos 'fijos' de la correa", - "create.ponder.depot.text_2": "Haz clic derecho para colocar o eliminar manualmente objetos del mismo", - "create.ponder.depot.text_3": "Al igual que las correas mecánicas, pueden proporcionar objetos para su procesamiento", - "create.ponder.depot.text_4": "...así como proporcionar objetos a los brazos mecánicos", - - "create.ponder.empty_blaze_burner.header": "Usar quemadores de blaze vacíos", - "create.ponder.empty_blaze_burner.text_1": "Haz clic derecho en un blaze con el quemador vacío para capturarlo", - "create.ponder.empty_blaze_burner.text_2": "Alternativamente, los blaze pueden ser recogidos de sus spawners directamente", - "create.ponder.empty_blaze_burner.text_3": "Ahora tienes una fuente de calor ideal para varias máquinas", - "create.ponder.empty_blaze_burner.text_4": "Por motivos estéticos, los quemadores de blaze vacíos también se pueden encender con pedernal y acero", - "create.ponder.empty_blaze_burner.text_5": "La llama puede transformarse utilizando un objeto con alma", - "create.ponder.empty_blaze_burner.text_6": "Sin embargo, no son adecuados para la calefacción industrial", - - "create.ponder.encased_fluid_pipe.header": "Revestir tuberías de fluídos", - "create.ponder.encased_fluid_pipe.text_1": "El revestidor de cobre puede utilizarse para decorar las tuberías de fluidos", - "create.ponder.encased_fluid_pipe.text_2": "Además de estar ocultas, las tuberías revestidas están bloqueadas en su estado de conectividad", - "create.ponder.encased_fluid_pipe.text_3": "Ya no reaccionará a los bloques vecinos que se añadan o eliminen", - - "create.ponder.fan_direction.header": "El flujo de aire de los ventiladores revestidos", - "create.ponder.fan_direction.text_1": "Los ventiladores revestidos utilizan la fuerza rotacional para crear una corriente de aire", - "create.ponder.fan_direction.text_2": "La fuerza y la dirección del flujo dependen de la fuerza rotacional suministrada", - - "create.ponder.fan_processing.header": "Procesar objetos mediante ventiladores revestidos", - "create.ponder.fan_processing.text_1": "Al pasar por lava, el flujo de aire se calienta", - "create.ponder.fan_processing.text_2": "Los objetos capturados en la zona serán fundidos", - "create.ponder.fan_processing.text_3": "Los artículos de comida arrojados aquí serán incinerados", - "create.ponder.fan_processing.text_4": "En su lugar, se debería utilizar una instalación de ahumado, usando fuego", - "create.ponder.fan_processing.text_5": "Los flujos de aire que pasan por el agua crean una instalación de lavado", - "create.ponder.fan_processing.text_6": "Se puede hacer un nuevo e interesante procesamiento con él", - "create.ponder.fan_processing.text_7": "La velocidad del ventilador NO afecta a la velocidad de procesamiento, sólo a su rango", - "create.ponder.fan_processing.text_8": "El procesamiento del ventilador también puede aplicarse a los objetos de los depósitos y las correas", - - "create.ponder.fan_source.header": "Generar fuerza rotacional mediante ventiladores revestidos", - "create.ponder.fan_source.text_1": "Los ventiladores orientados hacia una fuente de calor pueden proporcionar fuerza rotacional", - "create.ponder.fan_source.text_2": "Cuando se les da una señal de redstone, los ventiladores comenzarán a proporcionar fuerza", - - "create.ponder.fluid_pipe_flow.header": "Transportar fluidos mediante tuberías de cobre", - "create.ponder.fluid_pipe_flow.text_1": "Las tuberías de fluidos pueden conectar dos o más fuentes y objetivos de fluidos", - "create.ponder.fluid_pipe_flow.text_2": "Utilizando una llave, se puede dar a un segmento de tubo recto una ventana", - "create.ponder.fluid_pipe_flow.text_3": "Las tuberías con ventanas no se conectarán a ningún otro segmento de tubería adyacente", - "create.ponder.fluid_pipe_flow.text_4": "Accionadas por bombas mecánicas, las tuberías pueden transportar fluidos", - "create.ponder.fluid_pipe_flow.text_5": "Al principio no se extrae ningún líquido", - "create.ponder.fluid_pipe_flow.text_6": "Una vez que el flujo los conecta, los puntos finales transfieren gradualmente su contenido", - "create.ponder.fluid_pipe_flow.text_7": "Así, los bloques de tuberías nunca contienen 'físicamente' ningún fluido", - - "create.ponder.fluid_pipe_interaction.header": "Drenaje y llenado de contenedores de fluidos", - "create.ponder.fluid_pipe_interaction.text_1": "Los puntos finales de una red de tuberías pueden interactuar con una variedad de bloques", - "create.ponder.fluid_pipe_interaction.text_2": "Cualquier bloque con capacidad para almacenar fluidos puede ser llenado o vaciado", - "create.ponder.fluid_pipe_interaction.text_3": "Los bloques de origen justo delante de un extremo abierto pueden ser recogidos...", - "create.ponder.fluid_pipe_interaction.text_4": "...mientras que el derrame en espacios vacíos puede crear fuentes de fluidos", - "create.ponder.fluid_pipe_interaction.text_5": "Las tuberías también pueden extraer fluidos de un puñado de otros bloques directamente", - - "create.ponder.fluid_tank_sizes.header": "Dimensiones de un depósito de fluidos", - "create.ponder.fluid_tank_sizes.text_1": "Los depósitos de fluidos pueden combinarse para aumentar la capacidad total", - "create.ponder.fluid_tank_sizes.text_2": "Su cuadrado base puede tener hasta 3 bloques de ancho...", - "create.ponder.fluid_tank_sizes.text_3": "...y crecen en altura en más de 30 capas adicionales", - "create.ponder.fluid_tank_sizes.text_4": "Con una llave inglesa, se puede cambiar la ventana de un tanque", - - "create.ponder.fluid_tank_storage.header": "Almacenar fluidos en depósitos de fluidos", - "create.ponder.fluid_tank_storage.text_1": "Los depósitos de fluidos pueden utilizarse para almacenar grandes cantidades de fluidos", - "create.ponder.fluid_tank_storage.text_2": "Las redes de tuberías pueden empujar y arrastrar fluidos desde cualquier lado", - "create.ponder.fluid_tank_storage.text_3": "El fluido contenido puede ser medido por un Comparador", - "create.ponder.fluid_tank_storage.text_4": "Sin embargo, en el Modo Supervivencia no se pueden añadir o tomar fluidos manualmente", - "create.ponder.fluid_tank_storage.text_5": "Puede utilizar cuencas, drenadores de objetos y tuberías para vaciar o llenar objetos que contengan líquido", - - "create.ponder.flywheel.header": "Generar fuerza rotacional con la rueda de inercia", - "create.ponder.flywheel.text_1": "Las ruedas de inercia son necesarias para generar fuerza rotacional con el motor de horno", - "create.ponder.flywheel.text_2": "La fuerza rotacional proporcionada tiene una capacidad de estrés muy grande", - "create.ponder.flywheel.text_3": "El uso de un alto horno duplicará la eficiencia del motor", - - "create.ponder.funnel_compat.header": "Compatibilidades con el embudo", - "create.ponder.funnel_compat.text_1": "Los embudos deberían interactuar bien con un puñado de otros componentes", - "create.ponder.funnel_compat.text_2": "Sierras verticales", - "create.ponder.funnel_compat.text_3": "Depósitos", - "create.ponder.funnel_compat.text_4": "Drenadores de objetos", - - "create.ponder.funnel_direction.header": "Dirección de la transferencia", - "create.ponder.funnel_direction.text_1": "Colocado normalmente, extrae objetos del inventario", - "create.ponder.funnel_direction.text_2": "Colocado mientras pulsa Mayús izdo, pone objetos en el inventario", - "create.ponder.funnel_direction.text_3": "Usando una llave inglesa, el embudo puede ser volteado después de su colocación", - "create.ponder.funnel_direction.text_4": "Se aplicarán las mismas reglas para la mayoría de las orientaciones", - "create.ponder.funnel_direction.text_5": "Los embudos en las correas extraerán/insertarán dependiendo de su dirección de movimiento", - - "create.ponder.funnel_intro.header": "Usar embudos", - "create.ponder.funnel_intro.text_1": "Los embudos son ideales para transferir objetos desde y hacia los inventarios", - - "create.ponder.funnel_redstone.header": "Embudos alimentados con redstone", - "create.ponder.funnel_redstone.text_1": "La energía de redstone impedirá la actuación de cualquier embudo", - - "create.ponder.funnel_transfer.header": "Transferencia directa", - "create.ponder.funnel_transfer.text_1": "Los embudos no pueden transferir nunca entre inventarios cerrados directamente", - "create.ponder.funnel_transfer.text_2": "Los ductos o los ductos inteligentes podrían ser más adecuados para estos fines", - "create.ponder.funnel_transfer.text_3": "Lo mismo se aplica para el movimiento horizontal. Una correa mecánica debería ayudar aquí", - - "create.ponder.furnace_engine.header": "Generar fuerza rotacional con el motor de horno", - "create.ponder.furnace_engine.text_1": "Los motores de horno generan fuerza rotacional mientras su horno adjunto está funcionando", - "create.ponder.furnace_engine.text_2": "La fuerza rotacional proporcionada tiene una capacidad de estrés muy grande", - "create.ponder.furnace_engine.text_3": "El uso de un alto horno duplicará la eficiencia del motor", - - "create.ponder.gantry_carriage.header": "Usar carros de grúa", - "create.ponder.gantry_carriage.text_1": "Los carros de grúa pueden montarse y deslizarse a lo largo de un eje de grúa", - "create.ponder.gantry_carriage.text_2": "Las instalaciones de grúa pueden mover bloques adjuntos", - - "create.ponder.gantry_cascaded.header": "Grúas en cascada", - "create.ponder.gantry_cascaded.text_1": "Los ejes de grúas se unen a un carro de grúa sin necesidad de pegamento", - "create.ponder.gantry_cascaded.text_2": "Lo mismo se aplica a los carros de grúa en los ejes de grúas desplazados", - "create.ponder.gantry_cascaded.text_3": "Así, un sistema de grúas puede estar en cascada para cubrir múltiples ejes de movimiento", - - "create.ponder.gantry_direction.header": "Dirección del movimiento de la grúa", - "create.ponder.gantry_direction.text_1": "Los ejes de grúa pueden tener orientaciones opuestas", - "create.ponder.gantry_direction.text_2": "La dirección de movimiento de los carros de grúa depende de la orientación de sus ejes", - "create.ponder.gantry_direction.text_3": "...así como de su sentido de rotación", - "create.ponder.gantry_direction.text_4": "Se aplican las mismas reglas para la rotación propagada", - - "create.ponder.gantry_redstone.header": "Propagación de la potencia de la grúa", - "create.ponder.gantry_redstone.text_1": "Los ejes de grúa alimentados con redstone dejan de mover sus carros", - "create.ponder.gantry_redstone.text_2": "En su lugar, su fuerza rotacional se transmite al eje de salida de los carros", - - "create.ponder.gantry_shaft.header": "Usar ejes de grúa", - "create.ponder.gantry_shaft.text_1": "Los ejes de grúa forman la base de una instalación de grúas. Los carros adjuntos se moverán a lo largo de ellos", - "create.ponder.gantry_shaft.text_2": "Las instalaciones de grúas pueden mover los bloques adjuntos", - - "create.ponder.gearbox.header": "Transmitir fuerza rotacional mediante cajas de transmisión", - "create.ponder.gearbox.text_1": "Saltar entre ejes de rotación puede volverse voluminoso rápidamente", - "create.ponder.gearbox.text_2": "Una caja de transmisión es el equivalente más compacto de esta configuración", - "create.ponder.gearbox.text_3": "Los ejes giran en las direcciones reflejadas...", - "create.ponder.gearbox.text_4": "...esto quiere decir que las conexiones rectas se invierten", - - "create.ponder.gearshift.header": "Controlar la dirección rotacional mediante una caja de cambios", - "create.ponder.gearshift.text_1": "La caja de cambios transmitirá la rotación en línea recta", - "create.ponder.gearshift.text_2": "Cuando es alimentada con redstone, invierte la transmisión", - - "create.ponder.hand_crank.header": "Generar fuerza rotacional mediante manivelas", - "create.ponder.hand_crank.text_1": "Las manivelas pueden ser utilizadas para aplicar fuerza rotacional manualmente", - "create.ponder.hand_crank.text_2": "Mantén pulsado clic derecho para girar en sentido antihorario", - "create.ponder.hand_crank.text_3": "Su velocidad de transmisión es relativamente alta", - "create.ponder.hand_crank.text_4": "Mayús izdo + clic derecho pulsado para girar en sentido horario", - - "create.ponder.hose_pulley.header": "Llenado y vaciado de fuentes mediante poleas de manguera", - "create.ponder.hose_pulley.text_1": "Las poleas para mangueras pueden utilizarse para llenar o drenar grandes masas de fluido", - "create.ponder.hose_pulley.text_2": "Con entrada cinética, se puede controlar la altura de la manguera de las poleas", - "create.ponder.hose_pulley.text_3": "La polea se retrae mientras la rotación de entrada se invierte", - "create.ponder.hose_pulley.text_4": "En el lado opuesto, se pueden conectar las tuberías", - "create.ponder.hose_pulley.text_5": "Las redes de tuberías conectadas pueden proporcionar fluido a la manguera...", - "create.ponder.hose_pulley.text_6": "...o tirar de él, vaciando la piscina en su lugar", - "create.ponder.hose_pulley.text_7": "La velocidad de llenado y vaciado de la polea depende totalmente del caudal de las redes de fluidos", - - "create.ponder.hose_pulley_infinite.header": "Llenado y drenaje pasivo de grandes masas de fluido", - "create.ponder.hose_pulley_infinite.text_1": "Al desplegar la polea de manguera en un océano lo suficientemente grande...", - "create.ponder.hose_pulley_infinite.text_2": "Proporcionará/eliminará fluidos sin afectar a la fuente", - "create.ponder.hose_pulley_infinite.text_3": "Las redes de tuberías pueden llevar fluidos de forma ilimitada desde/hacia dichas poleas", - - "create.ponder.hose_pulley_level.header": "Nivel de llenado y vaciado de las poleas de las mangueras", - "create.ponder.hose_pulley_level.text_1": "Mientras esté totalmente retraída, la polea de la manguera no puede funcionar", - "create.ponder.hose_pulley_level.text_2": "El drenaje va de arriba a abajo", - "create.ponder.hose_pulley_level.text_3": "El nivel de la superficie terminará justo debajo de donde termina la manguera", - "create.ponder.hose_pulley_level.text_4": "El llenado va de abajo a arriba", - "create.ponder.hose_pulley_level.text_5": "La piscina llena no crecerá más allá de la capa por encima del extremo de la manguera", - - "create.ponder.item_drain.header": "Vaciar contenedores de fluidos mediante drenajes de objetos", - "create.ponder.item_drain.text_1": "Los drenajes de objetos pueden extraer los fluidos de los objetos", - "create.ponder.item_drain.text_2": "Haz clic derecho para verter los fluidos de tu objeto retenido en él", - "create.ponder.item_drain.text_3": "Cuando los artículos se insertan desde el lado...", - "create.ponder.item_drain.text_4": "...ruedan a través, vaciando su líquido contenido", - "create.ponder.item_drain.text_5": "Las redes de tuberías pueden ahora extraer el fluido del buffer interno de los desagües", - - "create.ponder.large_cogwheel.header": "Transmitir fuerza rotacional mediante engranajes grandes", - "create.ponder.large_cogwheel.text_1": "Los engranajes grandes pueden conectarse entre sí en ángulo recto", - "create.ponder.large_cogwheel.text_2": "Ayudarán a transmitir la velocidad transportada a otros ejes de rotación.", - - "create.ponder.linear_chassis_attachment.header": "Fijar bloques mediante el chasis lineal", - "create.ponder.linear_chassis_attachment.text_1": "Las caras abiertas de un chasis lineal pueden hacerse pegajosas", - "create.ponder.linear_chassis_attachment.text_2": "Haz clic de nuevo para que se pegue el lado opuesto", - "create.ponder.linear_chassis_attachment.text_3": "Mayús izdo + clic derecho con la mano vacía para eliminar el pegamento", - "create.ponder.linear_chassis_attachment.text_4": "Las caras pegadas del chasis lineal fijarán una línea de bloques delante de él", - "create.ponder.linear_chassis_attachment.text_5": "Utilizando una llave inglesa, se puede especificar un rango preciso", - "create.ponder.linear_chassis_attachment.text_6": "Manteniendo pulsada la tecla [Ctrl] y usando la rueda central del ratón, se ajusta el rango de todos los bloques de chasis adjuntos", - "create.ponder.linear_chassis_attachment.text_7": "Para fijar los bloques a cualquier otro lado es necesario utilizar pegamento", - "create.ponder.linear_chassis_attachment.text_8": "Utilizando esta mecánica, las estructuras de cualquier forma pueden moverse como un artilugio", - - "create.ponder.linear_chassis_group.header": "Mover chasis lineales en grupos", - "create.ponder.linear_chassis_group.text_1": "Los chasis lineales se conectan a los bloques de chasis idénticos que se encuentren a su lado", - "create.ponder.linear_chassis_group.text_2": "Cuando uno es movido por un artilugio, los otros son arrastrados con él", - "create.ponder.linear_chassis_group.text_3": "Los chasis de otro tipo u orientados en otra dirección no se fijan", - - "create.ponder.mechanical_arm.header": "Configurar los brazos mecánicos", - "create.ponder.mechanical_arm.text_1": "A los brazos mecánicos hay que asignarles sus entradas y salidas antes de colocarlos", - "create.ponder.mechanical_arm.text_2": "Clic derecho en los inventarios mientras mantiene el brazo mecánico para asignarlos como objetivos", - "create.ponder.mechanical_arm.text_3": "Clic derecho denuevo para alternar entre la entrada (azul) y la salida (naranja)", - "create.ponder.mechanical_arm.text_4": "Clic izquierdo en los componentes para eliminar su selección", - "create.ponder.mechanical_arm.text_5": "Una vez colocado, el brazo mecánico apuntará a los bloques seleccionados previamente", - "create.ponder.mechanical_arm.text_6": "Pueden tener cualquier cantidad de entradas y salidas dentro de su rango", - "create.ponder.mechanical_arm.text_7": "Sin embargo, no se puede interactuar directamente con todos los tipos de inventario", - "create.ponder.mechanical_arm.text_8": "Los embudos y depósitos pueden ayudar a salvar esa distancia", - - "create.ponder.mechanical_arm_filtering.header": "Filtrar salidas del brazo mecánico", - "create.ponder.mechanical_arm_filtering.text_1": "Entradas", - "create.ponder.mechanical_arm_filtering.text_2": "Salidas", - "create.ponder.mechanical_arm_filtering.text_3": "A veces es conveniente restringir los objetivos del brazo mecánico haciendo coincidir un filtro", - "create.ponder.mechanical_arm_filtering.text_4": "Por sí mismos no ofrecen ninguna opción de filtrado", - "create.ponder.mechanical_arm_filtering.text_5": "Sin embargo, los embudos de latón como objetivos comunican su propio filtro al brazo", - "create.ponder.mechanical_arm_filtering.text_6": "El brazo mecánico es lo suficientemente inteligente como para no recoger objetos que no podría distribuir", - - "create.ponder.mechanical_arm_modes.header": "Modos de distribución del brazo mecánico", - "create.ponder.mechanical_arm_modes.text_1": "Entradas", - "create.ponder.mechanical_arm_modes.text_2": "Salidas", - "create.ponder.mechanical_arm_modes.text_3": "Siempre que un brazo tenga que elegir entre varias salidas válidas...", - "create.ponder.mechanical_arm_modes.text_4": "...funcionará según su configuración", - "create.ponder.mechanical_arm_modes.text_5": "Usando la rueda del ratón con una llave inglesa te permitirá configurarlo", - "create.ponder.mechanical_arm_modes.text_6": "El modo Round Robin simplemente hace un ciclo a través de todas las salidas que están disponibles", - "create.ponder.mechanical_arm_modes.text_7": "Si una salida no puede admitir más objetos, se omitirá", - "create.ponder.mechanical_arm_modes.text_8": "El modo Round Robin forzado nunca omitirá las salidas, sino que esperará a que estén libres", - "create.ponder.mechanical_arm_modes.text_9": "Preferir el primero da prioridad a las salidas seleccionadas anteriormente al configurar este brazo", - - "create.ponder.mechanical_arm_redstone.header": "Controlar brazos mecánicos con redstone", - "create.ponder.mechanical_arm_redstone.text_1": "Cuando se alimentan con redstone, los brazos mecánicos no se activan", - "create.ponder.mechanical_arm_redstone.text_2": "Antes de detenerse, terminará los ciclos iniciados", - "create.ponder.mechanical_arm_redstone.text_3": "Así, un pulso negativo puede utilizarse para activar exactamente un ciclo de activación", - - "create.ponder.mechanical_bearing.header": "Mover estructuras mediante el rodamiento mecánico", - "create.ponder.mechanical_bearing.text_1": "Los rodamientos mecánicos se fijan al bloque que tienen delante", - "create.ponder.mechanical_bearing.text_2": "Al recibir fuerza rotacional, la ensamblará en un artilugio giratorio", - - "create.ponder.mechanical_crafter.header": "Configurar ensambladores mecánicos", - "create.ponder.mechanical_crafter.text_1": "Se puede utilizar una serie de ensambladores mecánicos para automatizar cualquier receta de elaboración.", - "create.ponder.mechanical_crafter.text_2": "Usando una llave inglesa, puedes establecer los caminos de los ensambladores ", - "create.ponder.mechanical_crafter.text_3": "Para que la configuración sea válida, todos los caminos tienen que converger en una salida, en cualquiera de los lados", - "create.ponder.mechanical_crafter.text_4": "Los puertos de salida de objetos se colocarán en un inventario a la salida", - "create.ponder.mechanical_crafter.text_5": "Los ensambladores mecánicos requieren fuerza rotacional para funcionar", - "create.ponder.mechanical_crafter.text_6": "Haga clic derecho en la parte delantera para insertar objetos manualmente", - "create.ponder.mechanical_crafter.text_7": "Una vez que cada ranura de una ruta contenga un objeto, comenzará el proceso de elaboración", - "create.ponder.mechanical_crafter.text_8": "Para las recetas que no ocupen totalmente la instalación del ensamblador, se puede forzar el arranque utilizando un pulso de redstone", - - "create.ponder.mechanical_crafter_connect.header": "Conectar inventarios a los ensambladores mecánicos", - "create.ponder.mechanical_crafter_connect.text_1": "Los objetos pueden ser insertados a los ensambladores mecánicos automáticamente", - "create.ponder.mechanical_crafter_connect.text_2": "Utilizando la llave inglesa a sus espaldas, las entradas pueden combinarse", - "create.ponder.mechanical_crafter_connect.text_3": "Ahora se puede acceder a todos los ensambladores mecánicos conectados por la misma ubicación de entrada", - - "create.ponder.mechanical_crafter_covers.header": "Cubrir las ranuras de los ensambladores mecánicos", - "create.ponder.mechanical_crafter_covers.text_1": "Algunas recetas requerirán ensambladores mecánicos adicionales para salvar las brechas en el camino", - "create.ponder.mechanical_crafter_covers.text_2": "Utilizando las tapas de ranuras del ensamblador mecánico, pueden actuar como una ranura vacía a su disposición", - "create.ponder.mechanical_crafter_covers.text_3": "Las entradas compartidas creadas con la llave inglesa en la parte posterior también pueden llegar a través de los ensambladores revestidos", - - "create.ponder.mechanical_drill.header": "Romper bloques con el taladro mecánico", - "create.ponder.mechanical_drill.text_1": "Cuando se le aplica fuerza rotacional, el taladro mecánico rompe los bloques que tiene delante.", - "create.ponder.mechanical_drill.text_2": "Su velocidad de trabajo depende de la fuerza rotacional suministrada", - - "create.ponder.mechanical_drill_contraption.header": "Usar taladros mecánicos en artilugios", - "create.ponder.mechanical_drill_contraption.text_1": "Siempre que los taladros mecánicos se muevan como parte de un artilugio animado...", - "create.ponder.mechanical_drill_contraption.text_2": "...romperán los bloques por los que artilugio los hace pasar", - - "create.ponder.mechanical_harvester.header": "Utilizar cosechadoras mecánicas en artilugios", - "create.ponder.mechanical_harvester.text_1": "Siempre que las cosechadoras mecánicas se muevan como parte de un artilugio animado...", - "create.ponder.mechanical_harvester.text_2": "...recogerán y repondrán los cultivos maduros en su camino", - - "create.ponder.mechanical_mixer.header": "Procesar objetos con la mezcladora mecánica", - "create.ponder.mechanical_mixer.text_1": "Con una mezcladora mecánica y una cuenca, se pueden automatizar algunas recetas", - "create.ponder.mechanical_mixer.text_2": "Las recetas disponibles incluyen cualquier receta de elaboración amorfa, además de un par de recetas adicionales", - "create.ponder.mechanical_mixer.text_3": "Algunas de esas recetas pueden requerir el calor de un quemador de blaze", - "create.ponder.mechanical_mixer.text_4": "La ranura para filtros se puede utilizar en caso de que dos recetas sean conflictivas.", - - "create.ponder.mechanical_piston.header": "Mover estructuras mediante pistones mecánicos", - "create.ponder.mechanical_piston.text_1": "Los pistones mecánicos pueden mover los bloques que tienen delante", - "create.ponder.mechanical_piston.text_2": "La velocidad y la dirección del movimiento dependen de la fuerza rotacional suministrada", - "create.ponder.mechanical_piston.text_3": "Los pistones mecánicos pegajosos pueden tirar de los bloques unidos hacia atrás", - - "create.ponder.mechanical_piston_modes.header": "Modos de movimiento del pistón mecánico", - "create.ponder.mechanical_piston_modes.text_1": "Cuando los pistones mecánicos dejan de moverse, la estructura movida vuelve a los bloques", - "create.ponder.mechanical_piston_modes.text_2": "Puede configurarse para que no vuelva nunca a los bloques sólidos, o sólo en la ubicación en la que comenzó", - - "create.ponder.mechanical_plough.header": "Utilizar arados mecánicos en los artilugios", - "create.ponder.mechanical_plough.text_1": "Cuando los arados mecánicos se mueven como parte de un artilugio animado...", - "create.ponder.mechanical_plough.text_2": "...romperán los bloques sin un hitbox de colisión sólido", - "create.ponder.mechanical_plough.text_3": "Además, pueden crear tierras de cultivo", - "create.ponder.mechanical_plough.text_4": "...también pueden lanzar entidades sin dañarlas", - - "create.ponder.mechanical_press.header": "Procesar objetos con la prensa mecánica", - "create.ponder.mechanical_press.text_1": "La prensa mecánica puede procesar los objetos proporcionados por debajo de ella", - "create.ponder.mechanical_press.text_2": "Los objetos de entrada pueden soltarse o colocarse en un depósito bajo la prensa", - "create.ponder.mechanical_press.text_3": "Cuando los objetos se proporcionan en una 'cinta'...", - "create.ponder.mechanical_press.text_4": "...la prensa mecánica los retendrá y procesará automáticamente", - - "create.ponder.mechanical_press_compacting.header": "Compactar objetos con la prensa mecánica", - "create.ponder.mechanical_press_compacting.text_1": "Al presionar los objetos que se encuentran en una cuenca, éstos se compactan.", - "create.ponder.mechanical_press_compacting.text_2": "La compactación incluye cualquier receta de elaboración de 2x2 o 3x3 rellena, además de un par extra", - "create.ponder.mechanical_press_compacting.text_3": "Algunas de esas recetas pueden requerir el calor de un quemador de blaze", - "create.ponder.mechanical_press_compacting.text_4": "La ranura para filtros se puede utilizar en caso de que dos recetas sean conflictivas.", - - "create.ponder.mechanical_pump_flow.header": "Transportar fluidos mediante bombas mecánicas", - "create.ponder.mechanical_pump_flow.text_1": "Las bombas mecánicas gobiernan el flujo de sus redes de tuberías anexas", - "create.ponder.mechanical_pump_flow.text_2": "Cuando están alimentadas, su flecha indica la dirección del flujo", - "create.ponder.mechanical_pump_flow.text_3": "La red de atrás está ahora tirando de fluidos...", - "create.ponder.mechanical_pump_flow.text_4": "...mientras la red de enfrente la transfiere hacia el exterior", - "create.ponder.mechanical_pump_flow.text_5": "Al invertir la rotación de la entrada se invierte el sentido del flujo", - "create.ponder.mechanical_pump_flow.text_6": "Utilice una llave inglesa para invertir la orientación de las bombas manualmente", - - "create.ponder.mechanical_pump_speed.header": "Rendimiento de las bombas mecánicas", - "create.ponder.mechanical_pump_speed.text_1": "Independientemente de la velocidad, las bombas mecánicas afectan a las tuberías conectadas hasta 16 bloques de distancia", - "create.ponder.mechanical_pump_speed.text_2": "Acelerar la rotación de entrada cambia la velocidad de propagación del flujo...", - "create.ponder.mechanical_pump_speed.text_3": "...así como la rapidez con la que se transfieren los fluidos", - "create.ponder.mechanical_pump_speed.text_4": "Las bombas pueden combinar sus rendimientos en redes de tuberías compartidas", - "create.ponder.mechanical_pump_speed.text_5": "Alternar su orientación puede ayudar a alinear sus direcciones de flujo", - - "create.ponder.mechanical_saw_breaker.header": "Cortar árboles con la sierra mecánica", - "create.ponder.mechanical_saw_breaker.text_1": "Cuando se le da una fuerza rotacional, la sierra mecánica cortará los árboles que estén directamente frente a ella", - "create.ponder.mechanical_saw_breaker.text_2": "Para poder cortar el árbol por completo, la sierra tiene que romper el último bloque que lo une al suelo", - - "create.ponder.mechanical_saw_contraption.header": "Utilizar sierras mecánicas en artilugios", - "create.ponder.mechanical_saw_contraption.text_1": "Cuando las sierras mecánicas se mueven como parte de un artilugio animado...", - "create.ponder.mechanical_saw_contraption.text_2": "...cortarán cualquier árbol con el que el artilugio se tope", - - "create.ponder.mechanical_saw_processing.header": "Procesar objetos en la sierra mecánica", - "create.ponder.mechanical_saw_processing.text_1": "Las sierras mecánicas orientadas hacia arriba pueden procesar una variedad de objetos", - "create.ponder.mechanical_saw_processing.text_2": "El objeto procesado siempre se mueve en contra de la fuerza rotacional de la sierra", - "create.ponder.mechanical_saw_processing.text_3": "Las sierras mecánicas pueden trabajar en línea con las correas mecánicas", - "create.ponder.mechanical_saw_processing.text_4": "Cuando un ingrediente tiene varios resultados posibles, la ranura para filtros puede especificarlo", - "create.ponder.mechanical_saw_processing.text_5": "Sin filtro, al contrario, la sierra mecánica pasaría por todos los resultados", - - "create.ponder.millstone.header": "Procesar objetos en la piedra de molino", - "create.ponder.millstone.text_1": "Las piedras de molino procesan los objetos mediante la molienda", - "create.ponder.millstone.text_2": "Se pueden accionar lateralmente mediante engranajes...", - "create.ponder.millstone.text_3": "... y tirar o insertar objetos en la parte superior", - "create.ponder.millstone.text_4": "Después de un tiempo, el resultado se puede obtener usando el clic derecho del ratón", - "create.ponder.millstone.text_5": "Las salidas también pueden extraerse mediante la automatización", - - "create.ponder.nixie_tube.header": "Usar los tubos Nixie", - "create.ponder.nixie_tube.text_1": "Cuando son alimentados con redstone, los tubos nixie mostrarán la fuerza de las señales de redstone", - "create.ponder.nixie_tube.text_2": "Con las etiquetas editadas en un yunque, pueden mostar un texto personalizado", - "create.ponder.nixie_tube.text_3": "Haga clic derecho con un tinte para cambiar su color de visualización", - - "create.ponder.piston_pole.header": "Pértigas de extensión de pistones", - "create.ponder.piston_pole.text_1": "Sin las pértigas de extensión unidas, un pistón mecánico no puede moverse", - "create.ponder.piston_pole.text_2": "La longitud de la pértiga añadida en su parte posterior determina el rango de alcance", - - "create.ponder.portable_fluid_interface.header": "Interfaz de fluidos portátil", - "create.ponder.portable_fluid_interface.text_1": "No se puede acceder a los depósitos de fluidos de los artilugios en movimiento por ninguna tubería", - "create.ponder.portable_fluid_interface.text_2": "Este componente puede interactuar con los depósitos de fluidos sin necesidad de detener el artilugio", - "create.ponder.portable_fluid_interface.text_3": "Coloca una segunda con un espacio de 1 o 2 bloques entre ellas", - "create.ponder.portable_fluid_interface.text_4": "Cada vez que pasen por delante de la otra, entablarán una conexión", - "create.ponder.portable_fluid_interface.text_5": "Mientras esté activada, la interfaz estacionaria representará TODOS los tanques del artilugio", - "create.ponder.portable_fluid_interface.text_6": "Ahora se puede introducir el fluido...", - "create.ponder.portable_fluid_interface.text_7": "...o extraerlo del artilugio", - "create.ponder.portable_fluid_interface.text_8": "Cuando no se intercambien contenidos durante un tiempo, el artilugio seguirá su camino", - - "create.ponder.portable_storage_interface.header": "Interfaz de almacenamiento portátil", - "create.ponder.portable_storage_interface.text_1": "Los jugadores no pueden acceder a los inventarios de los artilugios en movimiento.", - "create.ponder.portable_storage_interface.text_2": "Este componente puede interactuar con el almacenamiento sin necesidad de detener el artilugio.", - "create.ponder.portable_storage_interface.text_3": "Coloca una segunda unidad con un espacio de 1 o 2 bloques entre ellas", - "create.ponder.portable_storage_interface.text_4": "Cada vez que pasen por delante del otro, entablarán una conexión", - "create.ponder.portable_storage_interface.text_5": "Mientras esté conectada, la interfaz fija representará TODOS los inventarios del artilugio", - "create.ponder.portable_storage_interface.text_6": "Ahora pueden insertarse objetos...", - "create.ponder.portable_storage_interface.text_7": "...o extraerse", - "create.ponder.portable_storage_interface.text_8": "Cuando no se hayan intercambiado objetos durante un tiempo, el artilugio seguirá su camino", - - "create.ponder.portable_storage_interface_redstone.header": "Interfaz de almacenamiento portátil controlada por redstone", - "create.ponder.portable_storage_interface_redstone.text_1": "La energía de redstone impedirá que las interfaces de almacenamiento portátil se conecten", - - "create.ponder.powered_latch.header": "Controlar señales mediante la palanca motorizada", - "create.ponder.powered_latch.text_1": "Las palancas motorizadas son palancas controlables por redstone", - "create.ponder.powered_latch.text_2": "Las señales en la parte trasera la encienden", - "create.ponder.powered_latch.text_3": "Las señales sobre un lateral la vuelven a apagar", - "create.ponder.powered_latch.text_4": "Las palancas motorizadas también se pueden accionar manualmente", - - "create.ponder.powered_toggle_latch.header": "Controlar señales mediante la palanca de cierre motorizada", - "create.ponder.powered_toggle_latch.text_1": "Las palancas de cierre motorizadas son palancas controlables por redstone", - "create.ponder.powered_toggle_latch.text_2": "Las señales en la parte trasera cambiarán su estado...", - "create.ponder.powered_toggle_latch.text_3": "...encender y apagar", - "create.ponder.powered_toggle_latch.text_4": "Las palancas de cierre motorizadas también se pueden accionar manualmente", - - "create.ponder.pulse_repeater.header": "Controlar señales mediante repetidores de pulsos", - "create.ponder.pulse_repeater.text_1": "Los repetidores de pulsos acortan cualquier señal de redstone a un solo pulso", - - "create.ponder.radial_chassis.header": "Fijar bloques mediante chasis radiales", - "create.ponder.radial_chassis.text_1": "Los chasis radiales se conectan a bloques de chasis idénticos en una fila", - "create.ponder.radial_chassis.text_2": "Cuando uno es movido por un artilugio, los otros son arrastrados con él", - "create.ponder.radial_chassis.text_3": "Las caras laterales de un chasis radial pueden hacerse adhesivas", - "create.ponder.radial_chassis.text_4": "Haga clic de nuevo para que todos los demás lados sean pegajosos", - "create.ponder.radial_chassis.text_5": "Mayús izdo + clic derecho con la mano vacía para eliminar el pegamento", - "create.ponder.radial_chassis.text_6": "Cada vez que un bloque está junto a una cara pegajosa...", - "create.ponder.radial_chassis.text_7": "...adjuntará todos los bloques alcanzables dentro de un radio en esa capa", - "create.ponder.radial_chassis.text_8": "Con una llave inglesa y usando la rueda de desplazamiento del ratón se puede especificar un radio preciso", - "create.ponder.radial_chassis.text_9": "Los bloques no alcanzables por ninguna cara adhesiva no se fijarán", - - "create.ponder.redstone_contact.header": "Contactos de redstone", - "create.ponder.redstone_contact.text_1": "Los contactos de redstone enfrentados emitirán una señal de redstone", - "create.ponder.redstone_contact.text_2": "Esto sigue siendo válido cuando uno de ellos forma parte de un artilugio en movimiento", - - "create.ponder.redstone_link.header": "Usar los enlaces de redstone", - "create.ponder.redstone_link.text_1": "Los enlaces de redstone pueden transmitir señales redstone de forma inalámbrica", - "create.ponder.redstone_link.text_2": "Mayús izdo + clic derecho para cambiar el modo de recepción", - "create.ponder.redstone_link.text_3": "Un simple clic derecho con una llave inglesa puede hacer lo mismo", - "create.ponder.redstone_link.text_4": "Los receptores emiten la potencia de redstone de los transmisores en 128 bloques", - "create.ponder.redstone_link.text_5": "Colocando objetos en las dos ranuras puede especificar una frecuencia", - "create.ponder.redstone_link.text_6": "Sólo se comunicarán los enlaces con frecuencias coincidentes", - - "create.ponder.rope_pulley.header": "Mover estructuras con poleas de cuerda", - "create.ponder.rope_pulley.text_1": "Las poleas de cuerda pueden mover los bloques verticalmente cuando se les aplica una fuerza rotacional", - "create.ponder.rope_pulley.text_2": "La dirección y la velocidad del movimiento dependen de la fuerza rotacional suministrada", - - "create.ponder.rope_pulley_attachment.header": "Mover poleas como parte de un artilugio", - "create.ponder.rope_pulley_attachment.text_1": "Siempre que las poleas de cuerda sean movidas por un artilugio...", - "create.ponder.rope_pulley_attachment.text_2": "...su estructura adjunta será arrastrada con ella", - "create.ponder.rope_pulley_attachment.text_3": "Tenga en cuenta que las poleas de cuerda sólo se mueven cuando están paradas", - - "create.ponder.rope_pulley_modes.header": "Modos de movimiento de la polea de cuerda", - "create.ponder.rope_pulley_modes.text_1": "Cuando las poleas de cuerda dejan de moverse, la estructura movida vuelve a los bloques", - "create.ponder.rope_pulley_modes.text_2": "Puede configurarse para que no vuelva nunca a los bloques sólidos, o sólo en la ubicación en la que comenzó", - - "create.ponder.rotation_speed_controller.header": "Usar el controlador de velocidad rotacional", - "create.ponder.rotation_speed_controller.text_1": "Los controladores de velocidad rotacional transmiten la rotación de su eje a un engranaje grande situado encima.", - "create.ponder.rotation_speed_controller.text_2": "Utilizando la rueda de desplazamiento del ratón, puede configurarse la velocidad rotacional", - - "create.ponder.sail.header": "Montar molinos de viento usando velas", - "create.ponder.sail.text_1": "Las velas son bloques muy útiles para crear molinos de viento", - "create.ponder.sail.text_2": "Se fijarán a los bloques y entre sí sin necesidad de pegamento o bloques de chasis", - "create.ponder.sail.text_3": "Clic derecho con un tinte para pintarlas", - "create.ponder.sail.text_4": "Clic derecho con una tijera para volver a convertirlas en marcos", - - "create.ponder.sail_frame.header": "Montar molinos de viento con marcos de vela", - "create.ponder.sail_frame.text_1": "Los marcos de vela son prácticos bloques para crear molinos de viento", - "create.ponder.sail_frame.text_2": "Se fijarán a los bloques y entre sí sin necesidad de pegamento o bloques de chasis", - - "create.ponder.sequenced_gearshift.header": "Controlar la velocidad de rotación mediante la caja de cambios secuenciales", - "create.ponder.sequenced_gearshift.text_1": "La caja de cambios secuencial retransmite la rotación siguiendo una lista cronometrada de instrucciones", - "create.ponder.sequenced_gearshift.text_2": "Haga clic con el botón derecho para abrir la interfaz de configuración", - "create.ponder.sequenced_gearshift.text_3": "Al recibir una señal de redstone, comenzará a ejecutar su secuencia configurada", - "create.ponder.sequenced_gearshift.text_4": "Una vez terminado, espera la siguiente señal de redstone y vuelve a empezar", - "create.ponder.sequenced_gearshift.text_5": "Se puede utilizar un comparador de redstone para leer el progreso actual", - - "create.ponder.shaft.header": "Transmitir fuerza rotacional mediante ejes", - "create.ponder.shaft.text_1": "Los ejes transmiten la rotación en línea recta.", - - "create.ponder.shaft_casing.header": "Ejes revestidos", - "create.ponder.shaft_casing.text_1": "Puedes utilizar el revestidor de latón o de andesita para decorar tus ejes", - - "create.ponder.smart_chute.header": "Filtrar objetos mediante ductos inteligentes", - "create.ponder.smart_chute.text_1": "Los ductos inteligentes son ductos verticales con control adicional", - "create.ponder.smart_chute.text_2": "Los objetos en la ranura para filtros especifican lo que pueden extraer y transferir exactamente", - "create.ponder.smart_chute.text_3": "Usa la rueda del ratón para especificar el tamaño de la pila extraída", - "create.ponder.smart_chute.text_4": "La energía de redstone impedirá que funcionen.", - - "create.ponder.smart_pipe.header": "Controlar el flujo de fluidos mediante tuberías inteligentes", - "create.ponder.smart_pipe.text_1": "Las tuberías inteligentes pueden ayudar a controlar los flujos por tipo de fluido", - "create.ponder.smart_pipe.text_2": "Cuando se colocan directamente en la fuente, pueden especificar el tipo de fluido a extraer", - "create.ponder.smart_pipe.text_3": "Simplemente haga clic derecho en su ranura de filtro con cualquier elemento que contenga el fluido deseado", - "create.ponder.smart_pipe.text_4": "Cuando se colocan detrás de una red de tuberías, las tuberías inteligentes sólo dejan que los fluidos coincidentes continúen", - - "create.ponder.speedometer.header": "Controlar la información cinética mediante el velocímetro", - "create.ponder.speedometer.text_1": "El velocímetro muestra la velocidad actual de los componentes conectados", - "create.ponder.speedometer.text_2": "Cuando se usan las gafas del constructor, el jugador puede obtener información más detallada del medidor", - "create.ponder.speedometer.text_3": "Los comparadores pueden emitir señales analógicas de redstone en relación con las mediciones del velocímetro", - - "create.ponder.spout_filling.header": "Llenar objetos con un surtidor", - "create.ponder.spout_filling.text_1": "El surtidor puede llenar los elementos de retención de fluidos que se encuentran debajo de él", - "create.ponder.spout_filling.text_2": "No se puede acceder manualmente al contenido de un surtidor", - "create.ponder.spout_filling.text_3": "En su lugar, se pueden utilizar tuberías para suministrarle fluidos", - "create.ponder.spout_filling.text_4": "Los objetos de entrada pueden colocarse en un depósito bajo el surtidor", - "create.ponder.spout_filling.text_5": "Cuando los artículos se proporcionan en una cinta...", - "create.ponder.spout_filling.text_6": "El surtidor los retendrá y procesará automáticamente", - - "create.ponder.stabilized_bearings.header": "Estabilizar artilugios", - "create.ponder.stabilized_bearings.text_1": "Siempre que los rodamientos mecánicos formen parte de una estructura móvil...", - "create.ponder.stabilized_bearings.text_2": "...intentarán mantenerse derechos", - "create.ponder.stabilized_bearings.text_3": "Una vez más, el rodamiento se unirá al bloque de enfrente", - "create.ponder.stabilized_bearings.text_4": "Como resultado, todo el sub-artilugio se mantendrá en posición vertical", - - "create.ponder.sticker.header": "Fijar bloques con stickers", - "create.ponder.sticker.text_1": "Los stickers son ideales para la fijación de bloques controlados por redstone", - "create.ponder.sticker.text_2": "Al recibir una señal, cambiarán su estado", - "create.ponder.sticker.text_3": "Si ahora se mueve en un artilugio, el bloque se moverá con él", - "create.ponder.sticker.text_4": "Si se vuelve a activar, el bloque dejará de estar fijado", - - "create.ponder.stressometer.header": "Supervisar la información cinética con el estresómetro", - "create.ponder.stressometer.text_1": "El estresómetro muestra la capacidad de estrés actual de la red cinética conectada", - "create.ponder.stressometer.text_2": "Cuando se usan las gafas del constructor, el jugador puede obtener información más detallada del medidor", - "create.ponder.stressometer.text_3": "Los comparadores pueden emitir señales analógicas de redstone en relación con las mediciones del estresómetro", - - "create.ponder.super_glue.header": "Fijar bloques con pegamento", - "create.ponder.super_glue.text_1": "Se puede utilizar pegamento entre dos bloques cualquiera", - "create.ponder.super_glue.text_2": "Los bloques fijados se moverán juntos cuando se ensamblen en un artilugio", - "create.ponder.super_glue.text_3": "Cada vez que el pegamento es sostenido en la mano...", - "create.ponder.super_glue.text_4": "...los bloques añadidos se pegarán a la cara en la que fueron colocados automáticamente", - "create.ponder.super_glue.text_5": "El pegamento se puede quitar con un clic izquierdo", - - "create.ponder.valve_handle.header": "Generar fuerza rotacional mediante asas de válvula", - "create.ponder.valve_handle.text_1": "Los jugadores pueden utilizar las asas de válvulas para aplicar fuerza rotacional manualmente", - "create.ponder.valve_handle.text_2": "Mantén pulsado el clic derecho para rotar en sentido contrario a las agujas del reloj", - "create.ponder.valve_handle.text_3": "Su velocidad de transmisión es lenta y precisa", - "create.ponder.valve_handle.text_4": "Mayús izdo + clic derecho para rotar en el sentido de las agujas del reloj", - "create.ponder.valve_handle.text_5": "Las asas de las válvulas pueden teñirse con fines estéticos", - - "create.ponder.valve_pipe.header": "Controlar el flujo de fluidos mediante válvulas", - "create.ponder.valve_pipe.text_1": "Las tuberías con válvulas ayudan a controlar los fluidos que se propagan por las redes de tuberías", - "create.ponder.valve_pipe.text_2": "Su entrada en el eje controla si el fluido puede pasar por", - "create.ponder.valve_pipe.text_3": "Dada la fuerza de rotación en la dirección de apertura, la válvula se abrirá", - "create.ponder.valve_pipe.text_4": "Se puede volver a cerrar invirtiendo el giro de entrada", - - "create.ponder.water_wheel.header": "Generar fuerza rotacional mediante ruedas hidráulicas", - "create.ponder.water_wheel.text_1": "Las ruedas hidráulicas extraen la fuerza de las corrientes de agua adyacentes", - "create.ponder.water_wheel.text_2": "Cuantas más caras se alimenten, más rápido girará", - "create.ponder.water_wheel.text_3": "Las paletas de las ruedas deben estar orientadas en contra del flujo", - "create.ponder.water_wheel.text_4": "Orientadas hacia el lado contrario, no serán tan eficaces", - - "create.ponder.weighted_ejector.header": "Usar eyectores de peso", - "create.ponder.weighted_ejector.text_1": "Mayús izdo + clic derecho sosteniendo un eyector de peso para seleccionar la ubicación de destino", - "create.ponder.weighted_ejector.text_10": "Ahora estára limitado a este tamaño de pila, y sólo se activara cuando su pila retenida alcance esta cantidad", - "create.ponder.weighted_ejector.text_11": "Otras entidades activarán el eyector al pisarlos", - "create.ponder.weighted_ejector.text_2": "El eyector colocado lanzará ahora los objetos al lugar marcado", - "create.ponder.weighted_ejector.text_3": "Un objetivo válido puede estar a cualquier altura o distancia dentro del alcance", - "create.ponder.weighted_ejector.text_4": "Sin embargo, no pueden estar a un costado", - "create.ponder.weighted_ejector.text_5": "Si no se ha seleccionado ningún objetivo válido, simplemente se dirigirá al bloque que se encuentra justo delante", - "create.ponder.weighted_ejector.text_6": "Suministrale fuerza rotacional para cargarlo", - "create.ponder.weighted_ejector.text_7": "Los objetos colocados en el eyector hacen que se dispare", - "create.ponder.weighted_ejector.text_8": "Si se dirigen a un inventario, el eyector esperará hasta que haya espacio", - "create.ponder.weighted_ejector.text_9": "Con la llave inglesa se puede configurar el tamaño de pila requerido", - - "create.ponder.weighted_ejector_redstone.header": "Controlar los eyectores de peso con redstone", - "create.ponder.weighted_ejector_redstone.text_1": "Cuando se alimentan con redstone, los eyectores no se activan", - "create.ponder.weighted_ejector_redstone.text_2": "Además, los observadores de contenido pueden detectar cuando los eyectores se activan", - - "create.ponder.weighted_ejector_tunnel.header": "Dividir pilas de objetos mediante eyectores de peso", - "create.ponder.weighted_ejector_tunnel.text_1": "En combinación con los túneles de latón, los eyectores de peso pueden dividir las pilas de objetos en cantidades específicas", - "create.ponder.weighted_ejector_tunnel.text_2": "En primer lugar, configure el túnel de latón en 'Preferir lo más cercano', para dar prioridad a su salida lateral", - "create.ponder.weighted_ejector_tunnel.text_3": "El tamaño de la pila fijado en el eyector determina ahora la cantidad que se va a dividir", - "create.ponder.weighted_ejector_tunnel.text_4": "Mientras una nueva pila del tamaño configurado se expulse por la salida lateral...", - "create.ponder.weighted_ejector_tunnel.text_5": "...el resto seguirá su camino", - - "create.ponder.windmill_source.header": "Generar fuerza rotacional mediante rodamientos del molino de viento", - "create.ponder.windmill_source.text_1": "Los rodamientos del molino de viento se fijan al bloque que tienen delante", - "create.ponder.windmill_source.text_2": "Si se unen suficientes bloques tipo vela al bloque, éste puede actuar como un molino de viento", - "create.ponder.windmill_source.text_3": "Activado con un clic derecho, el rodamiento del molino de viento comenzará a proporcionar fuerza rotacional", - "create.ponder.windmill_source.text_4": "La cantidad de bloques de vela determina su velocidad de rotación", - "create.ponder.windmill_source.text_5": "Utiliza una llave inglesa para configurar su sentido de rotación", - "create.ponder.windmill_source.text_6": "Haga clic derecho sobre el rodamiento del molino en cualquier momento para detener y editar la estructura de nuevo", - - "create.ponder.windmill_structure.header": "Artilugios para molinos de viento", - "create.ponder.windmill_structure.text_1": "Cualquier estructura puede contar como un molino de viento válido, siempre que contenga al menos 8 bloques tipo vela.", - - "_": "Thank you for translating Create!" - -} From 67a7726f1c8317a71f642bcefcefa03c5db0731e Mon Sep 17 00:00:00 2001 From: PepperBell <44146161+PepperCode1@users.noreply.github.com> Date: Sat, 7 Aug 2021 20:18:45 -0700 Subject: [PATCH 24/79] Ponder registration refactor - Remove utility methods from PonderRegistry and only leave the one essential method - Move utility registration methods to PonderRegistrationHelper - Move entry builder methods to entry class, PonderStoryBoardEntry - Move listed tags list to tag registry - Make ponder chapters namespaced - Add localization and language datagen support for ponder chapters --- .../foundation/ponder/PonderLocalization.java | 23 ++- .../ponder/PonderRegistrationHelper.java | 110 +++++++++++ .../foundation/ponder/PonderRegistry.java | 142 ++------------ .../ponder/PonderStoryBoardEntry.java | 46 ++++- .../create/foundation/ponder/PonderUI.java | 6 +- .../ponder/content/DebugScenes.java | 5 +- .../ponder/content/PonderChapter.java | 34 ++-- .../ponder/content/PonderChapterRegistry.java | 22 ++- .../ponder/content/PonderIndex.java | 177 +++++++++--------- .../ponder/content/PonderIndexScreen.java | 2 +- .../foundation/ponder/content/PonderTag.java | 54 +++--- .../ponder/content/PonderTagIndexScreen.java | 5 +- .../ponder/content/PonderTagRegistry.java | 24 ++- .../foundation/ponder/ui/ChapterLabel.java | 3 +- 14 files changed, 358 insertions(+), 295 deletions(-) create mode 100644 src/main/java/com/simibubi/create/foundation/ponder/PonderRegistrationHelper.java diff --git a/src/main/java/com/simibubi/create/foundation/ponder/PonderLocalization.java b/src/main/java/com/simibubi/create/foundation/ponder/PonderLocalization.java index 53b25a053..8b5bb3d97 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/PonderLocalization.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/PonderLocalization.java @@ -21,6 +21,7 @@ public class PonderLocalization { static final Map SHARED = new HashMap<>(); static final Map> TAG = new HashMap<>(); + static final Map CHAPTER = new HashMap<>(); static final Map> SPECIFIC = new HashMap<>(); // @@ -42,24 +43,30 @@ public class PonderLocalization { public static String getShared(ResourceLocation key) { if (PonderIndex.EDITOR_MODE) - return SHARED.containsKey(key) ? SHARED.get(key) : ("unregistered shared entry:" + key); + return SHARED.containsKey(key) ? SHARED.get(key) : ("unregistered shared entry: " + key); return I18n.get(langKeyForShared(key)); } public static String getTag(ResourceLocation key) { if (PonderIndex.EDITOR_MODE) return TAG.containsKey(key) ? TAG.get(key) - .getFirst() : ("unregistered tag entry:" + key); + .getFirst() : ("unregistered tag entry: " + key); return I18n.get(langKeyForTag(key)); } public static String getTagDescription(ResourceLocation key) { if (PonderIndex.EDITOR_MODE) return TAG.containsKey(key) ? TAG.get(key) - .getSecond() : ("unregistered tag entry:" + key); + .getSecond() : ("unregistered tag entry: " + key); return I18n.get(langKeyForTagDescription(key)); } + public static String getChapter(ResourceLocation key) { + if (PonderIndex.EDITOR_MODE) + return CHAPTER.containsKey(key) ? CHAPTER.get(key) : ("unregistered chapter entry: " + key); + return I18n.get(langKeyForChapter(key)); + } + public static String getSpecific(ResourceLocation sceneId, String k) { if (PonderIndex.EDITOR_MODE) return SPECIFIC.get(sceneId) @@ -85,6 +92,12 @@ public class PonderLocalization { } }); + CHAPTER.forEach((k, v) -> { + if (k.getNamespace().equals(namespace)) { + object.addProperty(langKeyForChapter(k), v); + } + }); + SPECIFIC.entrySet() .stream() .filter(entry -> entry.getKey().getNamespace().equals(namespace)) @@ -174,6 +187,10 @@ public class PonderLocalization { return k.getNamespace() + "." + LANG_PREFIX + "tag." + k.getPath() + ".description"; } + protected static String langKeyForChapter(ResourceLocation k) { + return k.getNamespace() + "." + LANG_PREFIX + "chapter." + k.getPath(); + } + protected static String langKeyForSpecific(ResourceLocation sceneId, String k) { return sceneId.getNamespace() + "." + LANG_PREFIX + sceneId.getPath() + "." + k; } diff --git a/src/main/java/com/simibubi/create/foundation/ponder/PonderRegistrationHelper.java b/src/main/java/com/simibubi/create/foundation/ponder/PonderRegistrationHelper.java new file mode 100644 index 000000000..39b97dc8c --- /dev/null +++ b/src/main/java/com/simibubi/create/foundation/ponder/PonderRegistrationHelper.java @@ -0,0 +1,110 @@ +package com.simibubi.create.foundation.ponder; + +import java.util.Arrays; +import java.util.function.Consumer; + +import com.simibubi.create.foundation.ponder.PonderStoryBoardEntry.PonderStoryBoard; +import com.simibubi.create.foundation.ponder.content.PonderChapter; +import com.simibubi.create.foundation.ponder.content.PonderTag; +import com.tterrag.registrate.util.entry.ItemProviderEntry; + +import net.minecraft.util.ResourceLocation; + +public class PonderRegistrationHelper { + + protected String namespace; + + public PonderRegistrationHelper(String namespace) { + this.namespace = namespace; + } + + public PonderStoryBoardEntry addStoryBoard(ResourceLocation component, + ResourceLocation schematicLocation, PonderStoryBoard storyBoard, PonderTag... tags) { + PonderStoryBoardEntry entry = this.createStoryBoardEntry(storyBoard, schematicLocation, component); + entry.highlightTags(tags); + PonderRegistry.addStoryBoard(entry); + return entry; + } + + public PonderStoryBoardEntry addStoryBoard(ResourceLocation component, + String schematicPath, PonderStoryBoard storyBoard, PonderTag... tags) { + return addStoryBoard(component, asLocation(schematicPath), storyBoard, tags); + } + + public PonderStoryBoardEntry addStoryBoard(ItemProviderEntry component, + ResourceLocation schematicLocation, PonderStoryBoard storyBoard, PonderTag... tags) { + return addStoryBoard(component.getId(), schematicLocation, storyBoard, tags); + } + + public PonderStoryBoardEntry addStoryBoard(ItemProviderEntry component, + String schematicPath, PonderStoryBoard storyBoard, PonderTag... tags) { + return addStoryBoard(component, asLocation(schematicPath), storyBoard, tags); + } + + public MultiSceneBuilder forComponents(ItemProviderEntry... components) { + return new MultiSceneBuilder(Arrays.asList(components)); + } + + public MultiSceneBuilder forComponents(Iterable> components) { + return new MultiSceneBuilder(components); + } + + public PonderStoryBoardEntry createStoryBoardEntry(PonderStoryBoard storyBoard, ResourceLocation schematicLocation, ResourceLocation component) { + return new PonderStoryBoardEntry(storyBoard, namespace, schematicLocation, component); + } + + public PonderStoryBoardEntry createStoryBoardEntry(PonderStoryBoard storyBoard, String schematicPath, ResourceLocation component) { + return createStoryBoardEntry(storyBoard, asLocation(schematicPath), component); + } + + public PonderTag createTag(String name) { + return new PonderTag(asLocation(name)); + } + + public PonderChapter getOrCreateChapter(String name) { + return PonderChapter.of(asLocation(name)); + } + + public ResourceLocation asLocation(String path) { + return new ResourceLocation(namespace, path); + } + + public class MultiSceneBuilder { + + protected Iterable> components; + + protected MultiSceneBuilder(Iterable> components) { + this.components = components; + } + + public MultiSceneBuilder addStoryBoard(ResourceLocation schematicLocation, PonderStoryBoard storyBoard) { + return addStoryBoard(schematicLocation, storyBoard, $ -> { + }); + } + + public MultiSceneBuilder addStoryBoard(ResourceLocation schematicLocation, PonderStoryBoard storyBoard, PonderTag... tags) { + return addStoryBoard(schematicLocation, storyBoard, sb -> sb.highlightTags(tags)); + } + + public MultiSceneBuilder addStoryBoard(ResourceLocation schematicLocation, PonderStoryBoard storyBoard, + Consumer extras) { + components.forEach(c -> extras.accept(PonderRegistrationHelper.this.addStoryBoard(c, schematicLocation, storyBoard))); + return this; + } + + public MultiSceneBuilder addStoryBoard(String schematicPath, PonderStoryBoard storyBoard) { + return addStoryBoard(asLocation(schematicPath), storyBoard); + } + + public MultiSceneBuilder addStoryBoard(String schematicPath, PonderStoryBoard storyBoard, PonderTag... tags) { + return addStoryBoard(asLocation(schematicPath), storyBoard, tags); + } + + public MultiSceneBuilder addStoryBoard(String schematicPath, PonderStoryBoard storyBoard, + Consumer extras) { + return addStoryBoard(asLocation(schematicPath), storyBoard, extras); + } + + } + +} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/PonderRegistry.java b/src/main/java/com/simibubi/create/foundation/ponder/PonderRegistry.java index ee876bd31..9864d53f0 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/PonderRegistry.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/PonderRegistry.java @@ -6,22 +6,18 @@ import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; -import java.util.Arrays; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.function.Consumer; import java.util.zip.GZIPInputStream; import com.simibubi.create.Create; -import com.simibubi.create.foundation.ponder.PonderStoryBoardEntry.PonderStoryBoard; import com.simibubi.create.foundation.ponder.content.PonderChapter; import com.simibubi.create.foundation.ponder.content.PonderChapterRegistry; import com.simibubi.create.foundation.ponder.content.PonderIndex; -import com.simibubi.create.foundation.ponder.content.PonderTag; import com.simibubi.create.foundation.ponder.content.PonderTagRegistry; import com.simibubi.create.foundation.ponder.content.SharedText; -import com.tterrag.registrate.util.entry.ItemProviderEntry; import net.minecraft.client.Minecraft; import net.minecraft.nbt.CompoundNBT; @@ -38,79 +34,32 @@ public class PonderRegistry { public static final PonderTagRegistry TAGS = new PonderTagRegistry(); public static final PonderChapterRegistry CHAPTERS = new PonderChapterRegistry(); - // Map from item ids to all storyboards + // Map from item IDs to storyboard entries public static final Map> ALL = new HashMap<>(); - private static final ThreadLocal CURRENT_NAMESPACE = new ThreadLocal<>(); - - private static String getCurrentNamespace() { - return CURRENT_NAMESPACE.get(); - } - - private static void setCurrentNamespace(String namespace) { - CURRENT_NAMESPACE.set(namespace); - } - - public static void startRegistration(String namespace) { - if (getCurrentNamespace() != null) { - throw new IllegalStateException("Cannot start registration when already started!"); - } - setCurrentNamespace(namespace); - } - - public static void endRegistration() { - if (getCurrentNamespace() == null) { - throw new IllegalStateException("Cannot end registration when not started!"); - } - setCurrentNamespace(null); - } - - private static String getNamespaceOrThrow() { - String currentNamespace = getCurrentNamespace(); - if (currentNamespace == null) { - throw new IllegalStateException("Cannot register storyboard without starting registration!"); - } - return currentNamespace; - } - - public static PonderSceneBuilder addStoryBoard(ItemProviderEntry component, String schematicPath, - PonderStoryBoard storyBoard, PonderTag... tags) { - ResourceLocation id = component.getId(); - PonderStoryBoardEntry entry = new PonderStoryBoardEntry(storyBoard, getNamespaceOrThrow(), schematicPath, id); - PonderSceneBuilder builder = new PonderSceneBuilder(entry); - if (tags.length > 0) - builder.highlightTags(tags); + public static void addStoryBoard(PonderStoryBoardEntry entry) { synchronized (ALL) { - ALL.computeIfAbsent(id, _$ -> new ArrayList<>()) - .add(entry); + List list = ALL.computeIfAbsent(entry.getComponent(), $ -> new ArrayList<>()); + synchronized (list) { + list.add(entry); + } } - return builder; - } - - public static PonderSceneBuilder addStoryBoard(PonderChapter chapter, ResourceLocation component, String schematicPath, PonderStoryBoard storyBoard) { - if (component == null) - component = new ResourceLocation("minecraft", "stick"); - - PonderStoryBoardEntry entry = new PonderStoryBoardEntry(storyBoard, getNamespaceOrThrow(), schematicPath, component); - PonderSceneBuilder builder = new PonderSceneBuilder(entry); - CHAPTERS.addStoriesToChapter(chapter, entry); - return builder; - } - - public static MultiSceneBuilder forComponents(ItemProviderEntry... components) { - return new MultiSceneBuilder(Arrays.asList(components)); - } - - public static MultiSceneBuilder forComponents(Iterable> components) { - return new MultiSceneBuilder(components); } public static List compile(ResourceLocation id) { - return compile(ALL.get(id)); + List list = ALL.get(id); + if (list == null) { + return Collections.emptyList(); + } + return compile(list); } public static List compile(PonderChapter chapter) { - return compile(CHAPTERS.getStories(chapter)); + List list = CHAPTERS.getStories(chapter); + if (list == null) { + return Collections.emptyList(); + } + return compile(list); } public static List compile(List entries) { @@ -171,61 +120,4 @@ public class PonderRegistry { return t; } - public static class MultiSceneBuilder { - - private final Iterable> components; - - MultiSceneBuilder(Iterable> components) { - this.components = components; - } - - public MultiSceneBuilder addStoryBoard(String schematicPath, PonderStoryBoard storyBoard) { - return addStoryBoard(schematicPath, storyBoard, $ -> { - }); - } - - public MultiSceneBuilder addStoryBoard(String schematicPath, PonderStoryBoard storyBoard, PonderTag... tags) { - return addStoryBoard(schematicPath, storyBoard, sb -> sb.highlightTags(tags)); - } - - public MultiSceneBuilder addStoryBoard(String schematicPath, PonderStoryBoard storyBoard, - Consumer extras) { - components.forEach(c -> extras.accept(PonderRegistry.addStoryBoard(c, schematicPath, storyBoard))); - return this; - } - - } - - public static class PonderSceneBuilder { - - private final PonderStoryBoardEntry entry; - - PonderSceneBuilder(PonderStoryBoardEntry entry) { - this.entry = entry; - } - - public PonderSceneBuilder highlightAllTags() { - entry.getTags() - .add(PonderTag.Highlight.ALL); - return this; - } - - public PonderSceneBuilder highlightTags(PonderTag... tags) { - entry.getTags() - .addAll(Arrays.asList(tags)); - return this; - } - - public PonderSceneBuilder chapter(PonderChapter chapter) { - PonderRegistry.CHAPTERS.addStoriesToChapter(chapter, entry); - return this; - } - - public PonderSceneBuilder chapters(PonderChapter... chapters) { - for (PonderChapter c : chapters) - chapter(c); - return this; - } - } - } diff --git a/src/main/java/com/simibubi/create/foundation/ponder/PonderStoryBoardEntry.java b/src/main/java/com/simibubi/create/foundation/ponder/PonderStoryBoardEntry.java index 5938d38e8..aa6ec545e 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/PonderStoryBoardEntry.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/PonderStoryBoardEntry.java @@ -1,8 +1,10 @@ package com.simibubi.create.foundation.ponder; import java.util.ArrayList; +import java.util.Collections; import java.util.List; +import com.simibubi.create.foundation.ponder.content.PonderChapter; import com.simibubi.create.foundation.ponder.content.PonderTag; import net.minecraft.util.ResourceLocation; @@ -11,18 +13,22 @@ public class PonderStoryBoardEntry { private final PonderStoryBoard board; private final String namespace; - private final String schematicPath; + private final ResourceLocation schematicLocation; private final ResourceLocation component; private final List tags; - public PonderStoryBoardEntry(PonderStoryBoard board, String namespace, String schematicPath, ResourceLocation component) { + public PonderStoryBoardEntry(PonderStoryBoard board, String namespace, ResourceLocation schematicLocation, ResourceLocation component) { this.board = board; this.namespace = namespace; - this.schematicPath = schematicPath; + this.schematicLocation = schematicLocation; this.component = component; this.tags = new ArrayList<>(); } + public PonderStoryBoardEntry(PonderStoryBoard board, String namespace, String schematicPath, ResourceLocation component) { + this(board, namespace, new ResourceLocation(namespace, schematicPath), component); + } + public PonderStoryBoard getBoard() { return board; } @@ -31,8 +37,8 @@ public class PonderStoryBoardEntry { return namespace; } - public String getSchematicPath() { - return schematicPath; + public ResourceLocation getSchematicLocation() { + return schematicLocation; } public ResourceLocation getComponent() { @@ -43,10 +49,36 @@ public class PonderStoryBoardEntry { return tags; } - public ResourceLocation getSchematicLocation() { - return new ResourceLocation(namespace, schematicPath); + // Builder start + + public PonderStoryBoardEntry highlightTag(PonderTag tag) { + tags.add(tag); + return this; } + public PonderStoryBoardEntry highlightTags(PonderTag... tags) { + Collections.addAll(this.tags, tags); + return this; + } + + public PonderStoryBoardEntry highlightAllTags() { + tags.add(PonderTag.Highlight.ALL); + return this; + } + + public PonderStoryBoardEntry chapter(PonderChapter chapter) { + PonderRegistry.CHAPTERS.addStoriesToChapter(chapter, this); + return this; + } + + public PonderStoryBoardEntry chapters(PonderChapter... chapters) { + for (PonderChapter c : chapters) + chapter(c); + return this; + } + + // Builder end + @FunctionalInterface public interface PonderStoryBoard { void program(SceneBuilder scene, SceneBuildingUtil util); diff --git a/src/main/java/com/simibubi/create/foundation/ponder/PonderUI.java b/src/main/java/com/simibubi/create/foundation/ponder/PonderUI.java index 5c595c8cd..2a5584127 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/PonderUI.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/PonderUI.java @@ -591,8 +591,7 @@ public class PonderUI extends NavigatableSimiScreen { UIRenderHelper.streak(ms, 180, 4, 10, 26, (int) (150 * fade)); drawRightAlignedString(font, ms, Lang.translate(IN_CHAPTER).getString(), 0, 0, tooltipColor); - drawRightAlignedString(font, ms, - Lang.translate(LANG_PREFIX + "chapter." + chapter.getId()).getString(), 0, 12, Theme.i(Theme.Key.TEXT)); + drawRightAlignedString(font, ms, chapter.getTitle(), 0, 12, Theme.i(Theme.Key.TEXT)); ms.popPose(); } @@ -821,8 +820,7 @@ public class PonderUI extends NavigatableSimiScreen { @Override protected String getBreadcrumbTitle() { if (chapter != null) - return Lang.translate(LANG_PREFIX + "chapter." + chapter.getId()) - .getString(); + return chapter.getTitle(); return stack.getItem() .getDescription() diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/DebugScenes.java b/src/main/java/com/simibubi/create/foundation/ponder/content/DebugScenes.java index b2ed9efe7..d682bb774 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/DebugScenes.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/DebugScenes.java @@ -5,7 +5,6 @@ import com.simibubi.create.AllItems; import com.simibubi.create.content.contraptions.base.IRotate.SpeedLevel; import com.simibubi.create.content.contraptions.particle.RotationIndicatorParticleData; import com.simibubi.create.foundation.ponder.ElementLink; -import com.simibubi.create.foundation.ponder.PonderRegistry; import com.simibubi.create.foundation.ponder.PonderStoryBoardEntry.PonderStoryBoard; import com.simibubi.create.foundation.ponder.SceneBuilder; import com.simibubi.create.foundation.ponder.SceneBuildingUtil; @@ -51,9 +50,9 @@ public class DebugScenes { private static void add(PonderStoryBoard sb) { ItemEntry item = AllItems.BRASS_HAND; String schematicPath = "debug/scene_" + index; - PonderRegistry.addStoryBoard(item, schematicPath, sb) + PonderIndex.HELPER.addStoryBoard(item, schematicPath, sb) .highlightAllTags() - .chapter(PonderChapter.of("debug")); + .chapter(PonderIndex.HELPER.getOrCreateChapter("debug")); index++; } diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/PonderChapter.java b/src/main/java/com/simibubi/create/foundation/ponder/content/PonderChapter.java index 9bedf775d..299f81fc5 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/PonderChapter.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/PonderChapter.java @@ -3,8 +3,8 @@ package com.simibubi.create.foundation.ponder.content; import javax.annotation.Nonnull; import com.mojang.blaze3d.matrix.MatrixStack; -import com.simibubi.create.Create; import com.simibubi.create.foundation.gui.IScreenRenderable; +import com.simibubi.create.foundation.ponder.PonderLocalization; import com.simibubi.create.foundation.ponder.PonderRegistry; import net.minecraft.client.Minecraft; @@ -13,12 +13,26 @@ import net.minecraft.util.ResourceLocation; public class PonderChapter implements IScreenRenderable { - private final String id; + private final ResourceLocation id; private final ResourceLocation icon; - private PonderChapter(String id) { + private PonderChapter(ResourceLocation id) { this.id = id; - icon = new ResourceLocation(Create.ID, "textures/ponder/chapter/" + id + ".png"); + icon = new ResourceLocation(id.getNamespace(), "textures/ponder/chapter/" + id.getPath() + ".png"); + } + + public ResourceLocation getId() { + return id; + } + + public String getTitle() { + return PonderLocalization.getChapter(id); + } + + public PonderChapter addTagsToChapter(PonderTag... tags) { + for (PonderTag t : tags) + PonderRegistry.TAGS.add(t, this); + return this; } @Override @@ -32,7 +46,7 @@ public class PonderChapter implements IScreenRenderable { } @Nonnull - public static PonderChapter of(String id) { + public static PonderChapter of(ResourceLocation id) { PonderChapter chapter = PonderRegistry.CHAPTERS.getChapter(id); if (chapter == null) { chapter = PonderRegistry.CHAPTERS.addChapter(new PonderChapter(id)); @@ -40,14 +54,4 @@ public class PonderChapter implements IScreenRenderable { return chapter; } - - public PonderChapter addTagsToChapter(PonderTag... tags) { - for (PonderTag t : tags) - PonderRegistry.TAGS.add(t, this); - return this; - } - - public String getId() { - return id; - } } diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/PonderChapterRegistry.java b/src/main/java/com/simibubi/create/foundation/ponder/content/PonderChapterRegistry.java index 85d986fac..f1464ead4 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/PonderChapterRegistry.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/PonderChapterRegistry.java @@ -1,7 +1,7 @@ package com.simibubi.create.foundation.ponder.content; import java.util.ArrayList; -import java.util.Arrays; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -13,21 +13,16 @@ import javax.annotation.Nullable; import com.simibubi.create.foundation.ponder.PonderStoryBoardEntry; import com.simibubi.create.foundation.utility.Pair; +import net.minecraft.util.ResourceLocation; + public class PonderChapterRegistry { - private final Map>> chapters; + private final Map>> chapters; public PonderChapterRegistry() { chapters = new HashMap<>(); } - public void addStoriesToChapter(@Nonnull PonderChapter chapter, PonderStoryBoardEntry... entries) { - List entryList = chapters.get(chapter.getId()).getSecond(); - synchronized (entryList) { - entryList.addAll(Arrays.asList(entries)); - } - } - PonderChapter addChapter(@Nonnull PonderChapter chapter) { synchronized (chapters) { chapters.put(chapter.getId(), Pair.of(chapter, new ArrayList<>())); @@ -36,7 +31,7 @@ public class PonderChapterRegistry { } @Nullable - PonderChapter getChapter(String id) { + PonderChapter getChapter(ResourceLocation id) { Pair> pair = chapters.get(id); if (pair == null) return null; @@ -44,6 +39,13 @@ public class PonderChapterRegistry { return pair.getFirst(); } + public void addStoriesToChapter(@Nonnull PonderChapter chapter, PonderStoryBoardEntry... entries) { + List entryList = chapters.get(chapter.getId()).getSecond(); + synchronized (entryList) { + Collections.addAll(entryList, entries); + } + } + public List getAllChapters() { return chapters .values() diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/PonderIndex.java b/src/main/java/com/simibubi/create/foundation/ponder/content/PonderIndex.java index 9dc494031..be1232eb9 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/PonderIndex.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/PonderIndex.java @@ -3,6 +3,7 @@ package com.simibubi.create.foundation.ponder.content; import com.simibubi.create.AllBlocks; import com.simibubi.create.AllItems; import com.simibubi.create.Create; +import com.simibubi.create.foundation.ponder.PonderRegistrationHelper; import com.simibubi.create.foundation.ponder.PonderRegistry; import com.simibubi.create.foundation.ponder.content.fluid.DrainScenes; import com.simibubi.create.foundation.ponder.content.fluid.FluidMovementActorScenes; @@ -17,179 +18,179 @@ import net.minecraft.item.DyeColor; public class PonderIndex { + static final PonderRegistrationHelper HELPER = new PonderRegistrationHelper(Create.ID); + public static final boolean EDITOR_MODE = false; public static void register() { - PonderRegistry.startRegistration(Create.ID); - // Register storyboards here // (!) Added entries require re-launch // (!) Modifications inside storyboard methods only require re-opening the ui - PonderRegistry.forComponents(AllBlocks.SHAFT) + HELPER.forComponents(AllBlocks.SHAFT) .addStoryBoard("shaft/relay", KineticsScenes::shaftAsRelay, PonderTag.KINETIC_RELAYS); - PonderRegistry.forComponents(AllBlocks.SHAFT, AllBlocks.ANDESITE_ENCASED_SHAFT, AllBlocks.BRASS_ENCASED_SHAFT) + HELPER.forComponents(AllBlocks.SHAFT, AllBlocks.ANDESITE_ENCASED_SHAFT, AllBlocks.BRASS_ENCASED_SHAFT) .addStoryBoard("shaft/encasing", KineticsScenes::shaftsCanBeEncased); - PonderRegistry.forComponents(AllBlocks.COGWHEEL) + HELPER.forComponents(AllBlocks.COGWHEEL) .addStoryBoard("cog/small", KineticsScenes::cogAsRelay, PonderTag.KINETIC_RELAYS) .addStoryBoard("cog/speedup", KineticsScenes::cogsSpeedUp); - PonderRegistry.forComponents(AllBlocks.LARGE_COGWHEEL) + HELPER.forComponents(AllBlocks.LARGE_COGWHEEL) .addStoryBoard("cog/speedup", KineticsScenes::cogsSpeedUp) .addStoryBoard("cog/large", KineticsScenes::largeCogAsRelay, PonderTag.KINETIC_RELAYS); - PonderRegistry.forComponents(AllItems.BELT_CONNECTOR) + HELPER.forComponents(AllItems.BELT_CONNECTOR) .addStoryBoard("belt/connect", BeltScenes::beltConnector, PonderTag.KINETIC_RELAYS) .addStoryBoard("belt/directions", BeltScenes::directions) .addStoryBoard("belt/transport", BeltScenes::transport, PonderTag.LOGISTICS) .addStoryBoard("belt/encasing", BeltScenes::beltsCanBeEncased); - PonderRegistry.forComponents(AllBlocks.ANDESITE_CASING, AllBlocks.BRASS_CASING) + HELPER.forComponents(AllBlocks.ANDESITE_CASING, AllBlocks.BRASS_CASING) .addStoryBoard("shaft/encasing", KineticsScenes::shaftsCanBeEncased) .addStoryBoard("belt/encasing", BeltScenes::beltsCanBeEncased); - PonderRegistry.forComponents(AllBlocks.GEARBOX, AllItems.VERTICAL_GEARBOX) + HELPER.forComponents(AllBlocks.GEARBOX, AllItems.VERTICAL_GEARBOX) .addStoryBoard("gearbox", KineticsScenes::gearbox, PonderTag.KINETIC_RELAYS); - PonderRegistry.addStoryBoard(AllBlocks.CLUTCH, "clutch", KineticsScenes::clutch, PonderTag.KINETIC_RELAYS); - PonderRegistry.addStoryBoard(AllBlocks.GEARSHIFT, "gearshift", KineticsScenes::gearshift, + HELPER.addStoryBoard(AllBlocks.CLUTCH, "clutch", KineticsScenes::clutch, PonderTag.KINETIC_RELAYS); + HELPER.addStoryBoard(AllBlocks.GEARSHIFT, "gearshift", KineticsScenes::gearshift, PonderTag.KINETIC_RELAYS); - PonderRegistry.forComponents(AllBlocks.SEQUENCED_GEARSHIFT) + HELPER.forComponents(AllBlocks.SEQUENCED_GEARSHIFT) .addStoryBoard("sequenced_gearshift", KineticsScenes::sequencedGearshift); - PonderRegistry.forComponents(AllBlocks.ENCASED_FAN) + HELPER.forComponents(AllBlocks.ENCASED_FAN) .addStoryBoard("fan/direction", FanScenes::direction, PonderTag.KINETIC_APPLIANCES) .addStoryBoard("fan/processing", FanScenes::processing) .addStoryBoard("fan/source", FanScenes::source, PonderTag.KINETIC_SOURCES); - PonderRegistry.addStoryBoard(AllBlocks.CREATIVE_MOTOR, "creative_motor", KineticsScenes::creativeMotor, + HELPER.addStoryBoard(AllBlocks.CREATIVE_MOTOR, "creative_motor", KineticsScenes::creativeMotor, PonderTag.KINETIC_SOURCES); - PonderRegistry.addStoryBoard(AllBlocks.WATER_WHEEL, "water_wheel", KineticsScenes::waterWheel, + HELPER.addStoryBoard(AllBlocks.WATER_WHEEL, "water_wheel", KineticsScenes::waterWheel, PonderTag.KINETIC_SOURCES); - PonderRegistry.addStoryBoard(AllBlocks.HAND_CRANK, "hand_crank", KineticsScenes::handCrank, + HELPER.addStoryBoard(AllBlocks.HAND_CRANK, "hand_crank", KineticsScenes::handCrank, PonderTag.KINETIC_SOURCES); - PonderRegistry.addStoryBoard(AllBlocks.COPPER_VALVE_HANDLE, "valve_handle", KineticsScenes::valveHandle, + HELPER.addStoryBoard(AllBlocks.COPPER_VALVE_HANDLE, "valve_handle", KineticsScenes::valveHandle, PonderTag.KINETIC_SOURCES); - PonderRegistry.forComponents(AllBlocks.DYED_VALVE_HANDLES.toArray()) + HELPER.forComponents(AllBlocks.DYED_VALVE_HANDLES.toArray()) .addStoryBoard("valve_handle", KineticsScenes::valveHandle); - PonderRegistry.addStoryBoard(AllBlocks.ENCASED_CHAIN_DRIVE, "chain_drive/relay", + HELPER.addStoryBoard(AllBlocks.ENCASED_CHAIN_DRIVE, "chain_drive/relay", ChainDriveScenes::chainDriveAsRelay, PonderTag.KINETIC_RELAYS); - PonderRegistry.forComponents(AllBlocks.ENCASED_CHAIN_DRIVE, AllBlocks.ADJUSTABLE_CHAIN_GEARSHIFT) + HELPER.forComponents(AllBlocks.ENCASED_CHAIN_DRIVE, AllBlocks.ADJUSTABLE_CHAIN_GEARSHIFT) .addStoryBoard("chain_drive/gearshift", ChainDriveScenes::adjustableChainGearshift); - PonderRegistry.forComponents(AllBlocks.FURNACE_ENGINE) + HELPER.forComponents(AllBlocks.FURNACE_ENGINE) .addStoryBoard("furnace_engine", KineticsScenes::furnaceEngine); - PonderRegistry.forComponents(AllBlocks.FLYWHEEL) + HELPER.forComponents(AllBlocks.FLYWHEEL) .addStoryBoard("furnace_engine", KineticsScenes::flywheel); - PonderRegistry.forComponents(AllBlocks.ROTATION_SPEED_CONTROLLER) + HELPER.forComponents(AllBlocks.ROTATION_SPEED_CONTROLLER) .addStoryBoard("speed_controller", KineticsScenes::speedController); // Gauges - PonderRegistry.addStoryBoard(AllBlocks.SPEEDOMETER, "gauges", KineticsScenes::speedometer); - PonderRegistry.addStoryBoard(AllBlocks.STRESSOMETER, "gauges", KineticsScenes::stressometer); + HELPER.addStoryBoard(AllBlocks.SPEEDOMETER, "gauges", KineticsScenes::speedometer); + HELPER.addStoryBoard(AllBlocks.STRESSOMETER, "gauges", KineticsScenes::stressometer); // Item Processing - PonderRegistry.addStoryBoard(AllBlocks.MILLSTONE, "millstone", ProcessingScenes::millstone); - PonderRegistry.addStoryBoard(AllBlocks.CRUSHING_WHEEL, "crushing_wheel", ProcessingScenes::crushingWheels); - PonderRegistry.addStoryBoard(AllBlocks.MECHANICAL_MIXER, "mechanical_mixer/mixing", ProcessingScenes::mixing); - PonderRegistry.forComponents(AllBlocks.MECHANICAL_PRESS) + HELPER.addStoryBoard(AllBlocks.MILLSTONE, "millstone", ProcessingScenes::millstone); + HELPER.addStoryBoard(AllBlocks.CRUSHING_WHEEL, "crushing_wheel", ProcessingScenes::crushingWheels); + HELPER.addStoryBoard(AllBlocks.MECHANICAL_MIXER, "mechanical_mixer/mixing", ProcessingScenes::mixing); + HELPER.forComponents(AllBlocks.MECHANICAL_PRESS) .addStoryBoard("mechanical_press/pressing", ProcessingScenes::pressing) .addStoryBoard("mechanical_press/compacting", ProcessingScenes::compacting); - PonderRegistry.forComponents(AllBlocks.BASIN) + HELPER.forComponents(AllBlocks.BASIN) .addStoryBoard("basin", ProcessingScenes::basin) .addStoryBoard("mechanical_mixer/mixing", ProcessingScenes::mixing) .addStoryBoard("mechanical_press/compacting", ProcessingScenes::compacting); - PonderRegistry.addStoryBoard(AllItems.EMPTY_BLAZE_BURNER, "empty_blaze_burner", + HELPER.addStoryBoard(AllItems.EMPTY_BLAZE_BURNER, "empty_blaze_burner", ProcessingScenes::emptyBlazeBurner); - PonderRegistry.addStoryBoard(AllBlocks.BLAZE_BURNER, "blaze_burner", ProcessingScenes::blazeBurner); - PonderRegistry.addStoryBoard(AllBlocks.DEPOT, "depot", BeltScenes::depot); - PonderRegistry.forComponents(AllBlocks.WEIGHTED_EJECTOR) + HELPER.addStoryBoard(AllBlocks.BLAZE_BURNER, "blaze_burner", ProcessingScenes::blazeBurner); + HELPER.addStoryBoard(AllBlocks.DEPOT, "depot", BeltScenes::depot); + HELPER.forComponents(AllBlocks.WEIGHTED_EJECTOR) .addStoryBoard("weighted_ejector/eject", EjectorScenes::ejector) .addStoryBoard("weighted_ejector/split", EjectorScenes::splitY) .addStoryBoard("weighted_ejector/redstone", EjectorScenes::redstone); // Crafters - PonderRegistry.forComponents(AllBlocks.MECHANICAL_CRAFTER) + HELPER.forComponents(AllBlocks.MECHANICAL_CRAFTER) .addStoryBoard("mechanical_crafter/setup", CrafterScenes::setup) .addStoryBoard("mechanical_crafter/connect", CrafterScenes::connect); - PonderRegistry.forComponents(AllBlocks.MECHANICAL_CRAFTER, AllItems.CRAFTER_SLOT_COVER) + HELPER.forComponents(AllBlocks.MECHANICAL_CRAFTER, AllItems.CRAFTER_SLOT_COVER) .addStoryBoard("mechanical_crafter/covers", CrafterScenes::covers); // Chutes - PonderRegistry.forComponents(AllBlocks.CHUTE) + HELPER.forComponents(AllBlocks.CHUTE) .addStoryBoard("chute/downward", ChuteScenes::downward, PonderTag.LOGISTICS) .addStoryBoard("chute/upward", ChuteScenes::upward); - PonderRegistry.forComponents(AllBlocks.CHUTE, AllBlocks.SMART_CHUTE) + HELPER.forComponents(AllBlocks.CHUTE, AllBlocks.SMART_CHUTE) .addStoryBoard("chute/smart", ChuteScenes::smart); // Funnels - PonderRegistry.addStoryBoard(AllBlocks.BRASS_FUNNEL, "funnels/brass", FunnelScenes::brass); - PonderRegistry.forComponents(AllBlocks.ANDESITE_FUNNEL, AllBlocks.BRASS_FUNNEL) + HELPER.addStoryBoard(AllBlocks.BRASS_FUNNEL, "funnels/brass", FunnelScenes::brass); + HELPER.forComponents(AllBlocks.ANDESITE_FUNNEL, AllBlocks.BRASS_FUNNEL) .addStoryBoard("funnels/intro", FunnelScenes::intro, PonderTag.LOGISTICS) .addStoryBoard("funnels/direction", FunnelScenes::directionality) .addStoryBoard("funnels/compat", FunnelScenes::compat) .addStoryBoard("funnels/redstone", FunnelScenes::redstone) .addStoryBoard("funnels/transposer", FunnelScenes::transposer); - PonderRegistry.addStoryBoard(AllBlocks.ANDESITE_FUNNEL, "funnels/brass", FunnelScenes::brass); + HELPER.addStoryBoard(AllBlocks.ANDESITE_FUNNEL, "funnels/brass", FunnelScenes::brass); // Tunnels - PonderRegistry.addStoryBoard(AllBlocks.ANDESITE_TUNNEL, "tunnels/andesite", TunnelScenes::andesite); - PonderRegistry.forComponents(AllBlocks.BRASS_TUNNEL) + HELPER.addStoryBoard(AllBlocks.ANDESITE_TUNNEL, "tunnels/andesite", TunnelScenes::andesite); + HELPER.forComponents(AllBlocks.BRASS_TUNNEL) .addStoryBoard("tunnels/brass", TunnelScenes::brass) .addStoryBoard("tunnels/brass_modes", TunnelScenes::brassModes); // Chassis & Super Glue - PonderRegistry.forComponents(AllBlocks.LINEAR_CHASSIS, AllBlocks.SECONDARY_LINEAR_CHASSIS) + HELPER.forComponents(AllBlocks.LINEAR_CHASSIS, AllBlocks.SECONDARY_LINEAR_CHASSIS) .addStoryBoard("chassis/linear_group", ChassisScenes::linearGroup, PonderTag.CONTRAPTION_ASSEMBLY) .addStoryBoard("chassis/linear_attachment", ChassisScenes::linearAttachement); - PonderRegistry.forComponents(AllBlocks.RADIAL_CHASSIS) + HELPER.forComponents(AllBlocks.RADIAL_CHASSIS) .addStoryBoard("chassis/radial", ChassisScenes::radial, PonderTag.CONTRAPTION_ASSEMBLY); - PonderRegistry.forComponents(AllItems.SUPER_GLUE) + HELPER.forComponents(AllItems.SUPER_GLUE) .addStoryBoard("super_glue", ChassisScenes::superGlue, PonderTag.CONTRAPTION_ASSEMBLY); - PonderRegistry.forComponents(AllBlocks.STICKER) + HELPER.forComponents(AllBlocks.STICKER) .addStoryBoard("sticker", RedstoneScenes::sticker, PonderTag.CONTRAPTION_ASSEMBLY); // Mechanical Arm - PonderRegistry.forComponents(AllBlocks.MECHANICAL_ARM) + HELPER.forComponents(AllBlocks.MECHANICAL_ARM) .addStoryBoard("mechanical_arm/setup", ArmScenes::setup, PonderTag.ARM_TARGETS) .addStoryBoard("mechanical_arm/filter", ArmScenes::filtering) .addStoryBoard("mechanical_arm/modes", ArmScenes::modes) .addStoryBoard("mechanical_arm/redstone", ArmScenes::redstone); // Mechanical Piston - PonderRegistry.forComponents(AllBlocks.MECHANICAL_PISTON, AllBlocks.STICKY_MECHANICAL_PISTON) + HELPER.forComponents(AllBlocks.MECHANICAL_PISTON, AllBlocks.STICKY_MECHANICAL_PISTON) .addStoryBoard("mechanical_piston/anchor", PistonScenes::movement, PonderTag.KINETIC_APPLIANCES, PonderTag.MOVEMENT_ANCHOR); - PonderRegistry + HELPER .forComponents(AllBlocks.MECHANICAL_PISTON, AllBlocks.STICKY_MECHANICAL_PISTON, AllBlocks.PISTON_EXTENSION_POLE) .addStoryBoard("mechanical_piston/piston_pole", PistonScenes::poles); - PonderRegistry.forComponents(AllBlocks.MECHANICAL_PISTON, AllBlocks.STICKY_MECHANICAL_PISTON) + HELPER.forComponents(AllBlocks.MECHANICAL_PISTON, AllBlocks.STICKY_MECHANICAL_PISTON) .addStoryBoard("mechanical_piston/modes", PistonScenes::movementModes); // Windmill Bearing - PonderRegistry.forComponents(AllBlocks.ROPE_PULLEY) + HELPER.forComponents(AllBlocks.ROPE_PULLEY) .addStoryBoard("rope_pulley/anchor", PulleyScenes::movement, PonderTag.KINETIC_APPLIANCES, PonderTag.MOVEMENT_ANCHOR) .addStoryBoard("rope_pulley/modes", PulleyScenes::movementModes) .addStoryBoard("rope_pulley/attachment", PulleyScenes::attachment); // Windmill Bearing - PonderRegistry.forComponents(AllBlocks.WINDMILL_BEARING) + HELPER.forComponents(AllBlocks.WINDMILL_BEARING) .addStoryBoard("windmill_bearing/source", BearingScenes::windmillsAsSource, PonderTag.KINETIC_SOURCES) .addStoryBoard("windmill_bearing/structure", BearingScenes::windmillsAnyStructure, PonderTag.MOVEMENT_ANCHOR); - PonderRegistry.forComponents(AllBlocks.SAIL) + HELPER.forComponents(AllBlocks.SAIL) .addStoryBoard("sail", BearingScenes::sail); - PonderRegistry.forComponents(AllBlocks.SAIL_FRAME) + HELPER.forComponents(AllBlocks.SAIL_FRAME) .addStoryBoard("sail", BearingScenes::sailFrame); // Mechanical Bearing - PonderRegistry.forComponents(AllBlocks.MECHANICAL_BEARING) + HELPER.forComponents(AllBlocks.MECHANICAL_BEARING) .addStoryBoard("mechanical_bearing/anchor", BearingScenes::mechanicalBearing, PonderTag.KINETIC_APPLIANCES, PonderTag.MOVEMENT_ANCHOR) .addStoryBoard("mechanical_bearing/modes", BearingScenes::bearingModes) @@ -197,107 +198,105 @@ public class PonderIndex { PonderTag.CONTRAPTION_ACTOR); // Clockwork Bearing - PonderRegistry.addStoryBoard(AllBlocks.CLOCKWORK_BEARING, "clockwork_bearing", BearingScenes::clockwork, + HELPER.addStoryBoard(AllBlocks.CLOCKWORK_BEARING, "clockwork_bearing", BearingScenes::clockwork, PonderTag.KINETIC_APPLIANCES, PonderTag.MOVEMENT_ANCHOR); // Gantries - PonderRegistry.addStoryBoard(AllBlocks.GANTRY_SHAFT, "gantry/intro", GantryScenes::introForShaft, + HELPER.addStoryBoard(AllBlocks.GANTRY_SHAFT, "gantry/intro", GantryScenes::introForShaft, PonderTag.KINETIC_APPLIANCES, PonderTag.MOVEMENT_ANCHOR); - PonderRegistry.addStoryBoard(AllBlocks.GANTRY_CARRIAGE, "gantry/intro", GantryScenes::introForPinion, + HELPER.addStoryBoard(AllBlocks.GANTRY_CARRIAGE, "gantry/intro", GantryScenes::introForPinion, PonderTag.KINETIC_APPLIANCES, PonderTag.MOVEMENT_ANCHOR); - PonderRegistry.forComponents(AllBlocks.GANTRY_SHAFT, AllBlocks.GANTRY_CARRIAGE) + HELPER.forComponents(AllBlocks.GANTRY_SHAFT, AllBlocks.GANTRY_CARRIAGE) .addStoryBoard("gantry/redstone", GantryScenes::redstone) .addStoryBoard("gantry/direction", GantryScenes::direction) .addStoryBoard("gantry/subgantry", GantryScenes::subgantry); // Cart Assembler - PonderRegistry.forComponents(AllBlocks.CART_ASSEMBLER) + HELPER.forComponents(AllBlocks.CART_ASSEMBLER) .addStoryBoard("cart_assembler/anchor", CartAssemblerScenes::anchor, PonderTag.MOVEMENT_ANCHOR) .addStoryBoard("cart_assembler/modes", CartAssemblerScenes::modes) .addStoryBoard("cart_assembler/dual", CartAssemblerScenes::dual) .addStoryBoard("cart_assembler/rails", CartAssemblerScenes::rails); // Movement Actors - PonderRegistry.forComponents(AllBlocks.PORTABLE_STORAGE_INTERFACE) + HELPER.forComponents(AllBlocks.PORTABLE_STORAGE_INTERFACE) .addStoryBoard("portable_interface/transfer", MovementActorScenes::psiTransfer, PonderTag.CONTRAPTION_ACTOR) .addStoryBoard("portable_interface/redstone", MovementActorScenes::psiRedstone); - PonderRegistry.forComponents(AllBlocks.REDSTONE_CONTACT) + HELPER.forComponents(AllBlocks.REDSTONE_CONTACT) .addStoryBoard("redstone_contact", RedstoneScenes::contact); - PonderRegistry.forComponents(AllBlocks.MECHANICAL_SAW) + HELPER.forComponents(AllBlocks.MECHANICAL_SAW) .addStoryBoard("mechanical_saw/processing", MechanicalSawScenes::processing, PonderTag.KINETIC_APPLIANCES) .addStoryBoard("mechanical_saw/breaker", MechanicalSawScenes::treeCutting) .addStoryBoard("mechanical_saw/contraption", MechanicalSawScenes::contraption, PonderTag.CONTRAPTION_ACTOR); - PonderRegistry.forComponents(AllBlocks.MECHANICAL_DRILL) + HELPER.forComponents(AllBlocks.MECHANICAL_DRILL) .addStoryBoard("mechanical_drill/breaker", MechanicalDrillScenes::breaker, PonderTag.KINETIC_APPLIANCES) .addStoryBoard("mechanical_drill/contraption", MechanicalDrillScenes::contraption, PonderTag.CONTRAPTION_ACTOR); - PonderRegistry.forComponents(AllBlocks.DEPLOYER) + HELPER.forComponents(AllBlocks.DEPLOYER) .addStoryBoard("deployer/filter", DeployerScenes::filter, PonderTag.KINETIC_APPLIANCES) .addStoryBoard("deployer/modes", DeployerScenes::modes) .addStoryBoard("deployer/processing", DeployerScenes::processing) .addStoryBoard("deployer/redstone", DeployerScenes::redstone) .addStoryBoard("deployer/contraption", DeployerScenes::contraption, PonderTag.CONTRAPTION_ACTOR); - PonderRegistry.forComponents(AllBlocks.MECHANICAL_HARVESTER) + HELPER.forComponents(AllBlocks.MECHANICAL_HARVESTER) .addStoryBoard("harvester", MovementActorScenes::harvester); - PonderRegistry.forComponents(AllBlocks.MECHANICAL_PLOUGH) + HELPER.forComponents(AllBlocks.MECHANICAL_PLOUGH) .addStoryBoard("plough", MovementActorScenes::plough); // Fluids - PonderRegistry.forComponents(AllBlocks.FLUID_PIPE) + HELPER.forComponents(AllBlocks.FLUID_PIPE) .addStoryBoard("fluid_pipe/flow", PipeScenes::flow, PonderTag.FLUIDS) .addStoryBoard("fluid_pipe/interaction", PipeScenes::interaction) .addStoryBoard("fluid_pipe/encasing", PipeScenes::encasing); - PonderRegistry.forComponents(AllBlocks.COPPER_CASING) + HELPER.forComponents(AllBlocks.COPPER_CASING) .addStoryBoard("fluid_pipe/encasing", PipeScenes::encasing); - PonderRegistry.forComponents(AllBlocks.MECHANICAL_PUMP) + HELPER.forComponents(AllBlocks.MECHANICAL_PUMP) .addStoryBoard("mechanical_pump/flow", PumpScenes::flow, PonderTag.FLUIDS, PonderTag.KINETIC_APPLIANCES) .addStoryBoard("mechanical_pump/speed", PumpScenes::speed); - PonderRegistry.forComponents(AllBlocks.FLUID_VALVE) + HELPER.forComponents(AllBlocks.FLUID_VALVE) .addStoryBoard("fluid_valve", PipeScenes::valve, PonderTag.FLUIDS, PonderTag.KINETIC_APPLIANCES); - PonderRegistry.forComponents(AllBlocks.SMART_FLUID_PIPE) + HELPER.forComponents(AllBlocks.SMART_FLUID_PIPE) .addStoryBoard("smart_pipe", PipeScenes::smart, PonderTag.FLUIDS); - PonderRegistry.forComponents(AllBlocks.FLUID_TANK) + HELPER.forComponents(AllBlocks.FLUID_TANK) .addStoryBoard("fluid_tank/storage", FluidTankScenes::storage, PonderTag.FLUIDS) .addStoryBoard("fluid_tank/sizes", FluidTankScenes::sizes); - PonderRegistry.forComponents(AllBlocks.CREATIVE_FLUID_TANK) + HELPER.forComponents(AllBlocks.CREATIVE_FLUID_TANK) .addStoryBoard("fluid_tank/storage_creative", FluidTankScenes::creative, PonderTag.FLUIDS, PonderTag.CREATIVE) .addStoryBoard("fluid_tank/sizes_creative", FluidTankScenes::sizes); - PonderRegistry.forComponents(AllBlocks.HOSE_PULLEY) + HELPER.forComponents(AllBlocks.HOSE_PULLEY) .addStoryBoard("hose_pulley/intro", HosePulleyScenes::intro, PonderTag.FLUIDS, PonderTag.KINETIC_APPLIANCES) .addStoryBoard("hose_pulley/level", HosePulleyScenes::level) .addStoryBoard("hose_pulley/infinite", HosePulleyScenes::infinite); - PonderRegistry.forComponents(AllBlocks.SPOUT) + HELPER.forComponents(AllBlocks.SPOUT) .addStoryBoard("spout", SpoutScenes::filling, PonderTag.FLUIDS); - PonderRegistry.forComponents(AllBlocks.ITEM_DRAIN) + HELPER.forComponents(AllBlocks.ITEM_DRAIN) .addStoryBoard("item_drain", DrainScenes::emptying, PonderTag.FLUIDS); - PonderRegistry.forComponents(AllBlocks.PORTABLE_FLUID_INTERFACE) + HELPER.forComponents(AllBlocks.PORTABLE_FLUID_INTERFACE) .addStoryBoard("portable_interface/transfer_fluid", FluidMovementActorScenes::transfer, PonderTag.FLUIDS, PonderTag.CONTRAPTION_ACTOR) .addStoryBoard("portable_interface/redstone_fluid", MovementActorScenes::psiRedstone); // Redstone - PonderRegistry.forComponents(AllBlocks.PULSE_REPEATER) + HELPER.forComponents(AllBlocks.PULSE_REPEATER) .addStoryBoard("pulse_repeater", RedstoneScenes::pulseRepeater); - PonderRegistry.forComponents(AllBlocks.ADJUSTABLE_REPEATER) + HELPER.forComponents(AllBlocks.ADJUSTABLE_REPEATER) .addStoryBoard("adjustable_repeater", RedstoneScenes::adjustableRepeater); - PonderRegistry.forComponents(AllBlocks.ADJUSTABLE_PULSE_REPEATER) + HELPER.forComponents(AllBlocks.ADJUSTABLE_PULSE_REPEATER) .addStoryBoard("adjustable_pulse_repeater", RedstoneScenes::adjustablePulseRepeater); - PonderRegistry.forComponents(AllBlocks.POWERED_LATCH) + HELPER.forComponents(AllBlocks.POWERED_LATCH) .addStoryBoard("powered_latch", RedstoneScenes::poweredLatch); - PonderRegistry.forComponents(AllBlocks.POWERED_TOGGLE_LATCH) + HELPER.forComponents(AllBlocks.POWERED_TOGGLE_LATCH) .addStoryBoard("powered_toggle_latch", RedstoneScenes::poweredToggleLatch); - PonderRegistry.forComponents(AllBlocks.ANALOG_LEVER) + HELPER.forComponents(AllBlocks.ANALOG_LEVER) .addStoryBoard("analog_lever", RedstoneScenes::analogLever); - PonderRegistry.forComponents(AllBlocks.ORANGE_NIXIE_TUBE) + HELPER.forComponents(AllBlocks.ORANGE_NIXIE_TUBE) .addStoryBoard("nixie_tube", RedstoneScenes::nixieTube); - PonderRegistry.forComponents(AllBlocks.REDSTONE_LINK) + HELPER.forComponents(AllBlocks.REDSTONE_LINK) .addStoryBoard("redstone_link", RedstoneScenes::redstoneLink); // Debug scenes, can be found in game via the Brass Hand if (EDITOR_MODE) DebugScenes.registerAll(); - - PonderRegistry.endRegistration(); } public static void registerTags() { diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/PonderIndexScreen.java b/src/main/java/com/simibubi/create/foundation/ponder/content/PonderIndexScreen.java index 5a140bf69..f86073956 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/PonderIndexScreen.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/PonderIndexScreen.java @@ -52,7 +52,7 @@ public class PonderIndexScreen extends NavigatableSimiScreen { super.init(); chapters.clear(); - // chapters.addAll(PonderRegistry.chapters.getAllChapters()); + // chapters.addAll(PonderRegistry.CHAPTERS.getAllChapters()); items.clear(); PonderRegistry.ALL.keySet() diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/PonderTag.java b/src/main/java/com/simibubi/create/foundation/ponder/content/PonderTag.java index f96f8e5eb..e9f266ec9 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/PonderTag.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/PonderTag.java @@ -1,8 +1,5 @@ package com.simibubi.create.foundation.ponder.content; -import java.util.ArrayList; -import java.util.List; - import com.mojang.blaze3d.matrix.MatrixStack; import com.simibubi.create.AllBlocks; import com.simibubi.create.AllItems; @@ -10,6 +7,7 @@ import com.simibubi.create.Create; import com.simibubi.create.foundation.gui.GuiGameElement; import com.simibubi.create.foundation.gui.IScreenRenderable; import com.simibubi.create.foundation.ponder.PonderLocalization; +import com.simibubi.create.foundation.ponder.PonderRegistry; import net.minecraft.block.Blocks; import net.minecraft.client.Minecraft; @@ -23,8 +21,6 @@ import net.minecraftforge.api.distmarker.OnlyIn; public class PonderTag implements IScreenRenderable { - public static final List LISTED_TAGS = new ArrayList<>(); - public static final PonderTag KINETIC_RELAYS = create("kinetic_relays").item(AllBlocks.COGWHEEL.get(), true, false) @@ -90,6 +86,18 @@ public class PonderTag implements IScreenRenderable { private ItemStack itemIcon = ItemStack.EMPTY; private ItemStack mainItem = ItemStack.EMPTY; + public PonderTag(ResourceLocation id) { + this.id = id; + } + + public ResourceLocation getId() { + return id; + } + + public ItemStack getMainItem() { + return mainItem; + } + public String getTitle() { return PonderLocalization.getTag(id); } @@ -100,34 +108,13 @@ public class PonderTag implements IScreenRenderable { // Builder - public PonderTag(ResourceLocation id) { - this.id = id; - } - - public ResourceLocation getId() { - return id; - } - public PonderTag defaultLang(String title, String description) { PonderLocalization.registerTag(id, title, description); return this; } - public ItemStack getMainItem() { - return mainItem; - } - - public PonderTag idAsIcon() { - return icon(id); - } - public PonderTag addToIndex() { - LISTED_TAGS.add(this); - return this; - } - - public PonderTag icon(String location) { - this.icon = new ResourceLocation(id.getNamespace(), "textures/ponder/tag/" + location + ".png"); + PonderRegistry.TAGS.listTag(this); return this; } @@ -136,8 +123,13 @@ public class PonderTag implements IScreenRenderable { return this; } - public PonderTag item(IItemProvider item) { - return this.item(item, true, true); + public PonderTag icon(String location) { + this.icon = new ResourceLocation(id.getNamespace(), "textures/ponder/tag/" + location + ".png"); + return this; + } + + public PonderTag idAsIcon() { + return icon(id); } public PonderTag item(IItemProvider item, boolean useAsIcon, boolean useAsMainItem) { @@ -148,6 +140,10 @@ public class PonderTag implements IScreenRenderable { return this; } + public PonderTag item(IItemProvider item) { + return this.item(item, true, true); + } + @Override @OnlyIn(Dist.CLIENT) public void draw(MatrixStack ms, AbstractGui screen, int x, int y) { diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/PonderTagIndexScreen.java b/src/main/java/com/simibubi/create/foundation/ponder/content/PonderTagIndexScreen.java index 24b4dc107..1cccb7e4e 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/PonderTagIndexScreen.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/PonderTagIndexScreen.java @@ -15,6 +15,7 @@ import com.simibubi.create.foundation.gui.UIRenderHelper; import com.simibubi.create.foundation.item.TooltipHelper; import com.simibubi.create.foundation.ponder.NavigatableSimiScreen; import com.simibubi.create.foundation.ponder.PonderLocalization; +import com.simibubi.create.foundation.ponder.PonderRegistry; import com.simibubi.create.foundation.ponder.PonderUI; import com.simibubi.create.foundation.ponder.ui.LayoutHelper; import com.simibubi.create.foundation.ponder.ui.PonderButton; @@ -53,7 +54,7 @@ public class PonderTagIndexScreen extends NavigatableSimiScreen { widgets.clear(); super.init(); - List tags = PonderTag.LISTED_TAGS; + List tags = PonderRegistry.TAGS.getListedTags(); int rowCount = MathHelper.clamp((int) Math.ceil(tags.size() / 11d), 1, 3); LayoutHelper layout = LayoutHelper.centeredHorizontal(tags.size(), rowCount, 28, 28, 8); itemArea = layout.getArea(); @@ -164,7 +165,7 @@ public class PonderTagIndexScreen extends NavigatableSimiScreen { } protected void renderItems(MatrixStack ms, int mouseX, int mouseY, float partialTicks) { - List tags = PonderTag.LISTED_TAGS; + List tags = PonderRegistry.TAGS.getListedTags(); if (tags.isEmpty()) return; diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/PonderTagRegistry.java b/src/main/java/com/simibubi/create/foundation/ponder/content/PonderTagRegistry.java index cdd5be6e6..8d0da42a2 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/PonderTagRegistry.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/PonderTagRegistry.java @@ -1,14 +1,15 @@ package com.simibubi.create.foundation.ponder.content; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; +import java.util.List; import java.util.Map; import java.util.Set; import com.google.common.collect.ImmutableSet; import com.google.common.collect.LinkedHashMultimap; import com.google.common.collect.Multimap; -import com.simibubi.create.foundation.ponder.PonderRegistry; import com.tterrag.registrate.util.entry.ItemProviderEntry; import net.minecraft.util.IItemProvider; @@ -19,9 +20,12 @@ public class PonderTagRegistry { private final Multimap tags; private final Multimap chapterTags; + private final List listedTags; + public PonderTagRegistry() { tags = LinkedHashMultimap.create(); chapterTags = LinkedHashMultimap.create(); + listedTags = new ArrayList<>(); } public Set getTags(ResourceLocation item) { @@ -48,6 +52,14 @@ public class PonderTagRegistry { .collect(ImmutableSet.toImmutableSet()); } + public List getListedTags() { + return listedTags; + } + + public void listTag(PonderTag tag) { + listedTags.add(tag); + } + public void add(PonderTag tag, ResourceLocation item) { synchronized (tags) { tags.put(item, tag); @@ -68,7 +80,7 @@ public class PonderTagRegistry { return new TagBuilder(tag); } - public static class ItemBuilder { + public class ItemBuilder { private final Collection items; @@ -77,13 +89,13 @@ public class PonderTagRegistry { } public ItemBuilder add(PonderTag tag) { - items.forEach(i -> PonderRegistry.TAGS.add(tag, i)); + items.forEach(i -> PonderTagRegistry.this.add(tag, i)); return this; } } - public static class TagBuilder { + public class TagBuilder { private final PonderTag tag; @@ -92,7 +104,7 @@ public class PonderTagRegistry { } public TagBuilder add(ResourceLocation item) { - PonderRegistry.TAGS.add(tag, item); + PonderTagRegistry.this.add(tag, item); return this; } @@ -104,5 +116,7 @@ public class PonderTagRegistry { public TagBuilder add(ItemProviderEntry entry) { return add(entry.get()); } + } + } diff --git a/src/main/java/com/simibubi/create/foundation/ponder/ui/ChapterLabel.java b/src/main/java/com/simibubi/create/foundation/ponder/ui/ChapterLabel.java index 7390a2457..59abb1d59 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/ui/ChapterLabel.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/ui/ChapterLabel.java @@ -9,7 +9,6 @@ import com.simibubi.create.foundation.gui.Theme; import com.simibubi.create.foundation.gui.UIRenderHelper; import com.simibubi.create.foundation.gui.widgets.AbstractSimiWidget; import com.simibubi.create.foundation.ponder.content.PonderChapter; -import com.simibubi.create.foundation.utility.Lang; import net.minecraft.client.Minecraft; @@ -31,7 +30,7 @@ public class ChapterLabel extends AbstractSimiWidget { @Override public void render(@Nonnull MatrixStack ms, int mouseX, int mouseY, float partialTicks) { UIRenderHelper.streak(ms, 0, x, y + height / 2, height - 2, width); - Minecraft.getInstance().font.draw(ms, Lang.translate("ponder.chapter." + chapter.getId()), x + 50, + Minecraft.getInstance().font.draw(ms, chapter.getTitle(), x + 50, y + 20, Theme.i(Theme.Key.TEXT_ACCENT_SLIGHT)); button.renderButton(ms, mouseX, mouseY, partialTicks); From 019a61c4440a612fb0fa4198ef12e2688d10577a Mon Sep 17 00:00:00 2001 From: PepperBell <44146161+PepperCode1@users.noreply.github.com> Date: Sat, 7 Aug 2021 21:10:38 -0700 Subject: [PATCH 25/79] Expose ponder instruction addition --- .../foundation/ponder/SceneBuilder.java | 26 +++++++++++++------ 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/simibubi/create/foundation/ponder/SceneBuilder.java b/src/main/java/com/simibubi/create/foundation/ponder/SceneBuilder.java index 63e7b06bf..2415e6fcf 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/SceneBuilder.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/SceneBuilder.java @@ -192,6 +192,24 @@ public class SceneBuilder { Direction.UP); } + /** + * Adds an instruction to the scene. It is recommended to only use this method + * if another method in this class or its subclasses does not already allow + * adding a certain instruction. + */ + public void addInstruction(PonderInstruction instruction) { + scene.schedule.add(instruction); + } + + /** + * Adds a simple instruction to the scene. It is recommended to only use this + * method if another method in this class or its subclasses does not already + * allow adding a certain instruction. + */ + public void addInstruction(Consumer callback) { + addInstruction(PonderInstruction.simple(callback)); + } + /** * Before running the upcoming instructions, wait for a duration to let previous * actions play out.
@@ -816,12 +834,4 @@ public class SceneBuilder { } - private void addInstruction(PonderInstruction instruction) { - scene.schedule.add(instruction); - } - - private void addInstruction(Consumer callback) { - scene.schedule.add(PonderInstruction.simple(callback)); - } - } From 45de01ff9eeda587ff6afebd9692716d1ac8f4da Mon Sep 17 00:00:00 2001 From: simibubi <31564874+simibubi@users.noreply.github.com> Date: Sun, 8 Aug 2021 14:41:41 +0200 Subject: [PATCH 26/79] Attack of the remap, Part III - Fixed Chute Particles not moving --- .../create/content/contraptions/particle/AirParticle.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/simibubi/create/content/contraptions/particle/AirParticle.java b/src/main/java/com/simibubi/create/content/contraptions/particle/AirParticle.java index 25d7d9f02..1951cdedb 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/particle/AirParticle.java +++ b/src/main/java/com/simibubi/create/content/contraptions/particle/AirParticle.java @@ -77,9 +77,9 @@ public class AirParticle extends SimpleAnimatedParticle { float y = (float) (MathHelper.lerp(progress, originY, targetY) + twirl.y); float z = (float) (MathHelper.lerp(progress, originZ, targetZ) + twirl.z); - xd = x - x; - yd = y - y; - zd = z - z; + xd = x - this.x; + yd = y - this.y; + zd = z - this.z; setSpriteFromAge(sprites); this.move(this.xd, this.yd, this.zd); From 62f65e832a93e4e45a5753ed41d562042e76b488 Mon Sep 17 00:00:00 2001 From: simibubi <31564874+simibubi@users.noreply.github.com> Date: Sun, 8 Aug 2021 16:26:44 +0200 Subject: [PATCH 27/79] Give Widget --- .../simibubi/create/foundation/gui/AbstractSimiScreen.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/com/simibubi/create/foundation/gui/AbstractSimiScreen.java b/src/main/java/com/simibubi/create/foundation/gui/AbstractSimiScreen.java index 1329ee837..84689cf0b 100644 --- a/src/main/java/com/simibubi/create/foundation/gui/AbstractSimiScreen.java +++ b/src/main/java/com/simibubi/create/foundation/gui/AbstractSimiScreen.java @@ -178,5 +178,9 @@ public abstract class AbstractSimiScreen extends Screen { protected void debugWindowArea(MatrixStack matrixStack) { fill(matrixStack, guiLeft + windowWidth, guiTop + windowHeight, guiLeft, guiTop, 0xD3D3D3D3); } + + public List getWidgets() { + return widgets; + } } From 5555f9e6bb3567a1e20262e757e43b99f69192f0 Mon Sep 17 00:00:00 2001 From: simibubi <31564874+simibubi@users.noreply.github.com> Date: Sun, 8 Aug 2021 19:37:04 +0200 Subject: [PATCH 28/79] Those don't mix - Fixed 3x3 compacting recipes marked as Shapeless able to be processed by a mixer --- .../components/mixer/MechanicalMixerTileEntity.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MechanicalMixerTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MechanicalMixerTileEntity.java index 67808f292..1d7bd0db7 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MechanicalMixerTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MechanicalMixerTileEntity.java @@ -5,6 +5,7 @@ import java.util.Optional; import com.simibubi.create.AllRecipeTypes; import com.simibubi.create.AllSoundEvents; +import com.simibubi.create.content.contraptions.components.press.MechanicalPressTileEntity; import com.simibubi.create.content.contraptions.fluids.FluidFX; import com.simibubi.create.content.contraptions.fluids.recipe.PotionMixingRecipeManager; import com.simibubi.create.content.contraptions.processing.BasinOperatingTileEntity; @@ -229,8 +230,8 @@ public class MechanicalMixerTileEntity extends BasinOperatingTileEntity { protected boolean matchStaticFilters(IRecipe r) { return ((r.getSerializer() == IRecipeSerializer.SHAPELESS_RECIPE && AllConfigs.SERVER.recipes.allowShapelessInMixer.get() && r.getIngredients() - .size() > 1) - || r.getType() == AllRecipeTypes.MIXING.getType()); + .size() > 1 + && !MechanicalPressTileEntity.canCompress(r)) || r.getType() == AllRecipeTypes.MIXING.getType()); } @Override From f1701ae7844ea19a02fd09e3391fe38d5a0cc5cc Mon Sep 17 00:00:00 2001 From: Jozufozu Date: Sun, 15 Aug 2021 15:10:35 -0700 Subject: [PATCH 29/79] Method to invalidate contraption renderers - Call ContraptionRenderDispatcher#invalidate, at some point during a tick, and the structure will be reset. - Move contraption compartment to SBBContraptionManager - Contraption compartment uses custom pair with better hash function instead of apache commons pair --- .../java/com/simibubi/create/CreateClient.java | 3 ++- .../render/ContraptionRenderDispatcher.java | 11 ++++++++++- .../render/ContraptionRenderInfo.java | 4 ++++ .../render/ContraptionRenderManager.java | 17 +++++++++++++++++ .../render/FlwContraptionManager.java | 8 -------- .../render/RenderedContraption.java | 2 +- .../render/SBBContraptionManager.java | 15 ++++++++++++--- 7 files changed, 46 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/simibubi/create/CreateClient.java b/src/main/java/com/simibubi/create/CreateClient.java index 52bfb4fe8..88c5b0194 100644 --- a/src/main/java/com/simibubi/create/CreateClient.java +++ b/src/main/java/com/simibubi/create/CreateClient.java @@ -7,6 +7,7 @@ import java.util.function.Function; import com.simibubi.create.content.contraptions.base.KineticTileEntityRenderer; import com.simibubi.create.content.contraptions.components.structureMovement.render.ContraptionRenderDispatcher; +import com.simibubi.create.content.contraptions.components.structureMovement.render.SBBContraptionManager; import com.simibubi.create.content.contraptions.relays.encased.CasingConnectivity; import com.simibubi.create.content.curiosities.armor.CopperBacktankArmorLayer; import com.simibubi.create.content.curiosities.bell.SoulPulseEffectHandler; @@ -94,7 +95,7 @@ public class CreateClient { public static void clientInit(FMLClientSetupEvent event) { BUFFER_CACHE.registerCompartment(KineticTileEntityRenderer.KINETIC_TILE); - BUFFER_CACHE.registerCompartment(ContraptionRenderDispatcher.CONTRAPTION, 20); + BUFFER_CACHE.registerCompartment(SBBContraptionManager.CONTRAPTION, 20); BUFFER_CACHE.registerCompartment(WorldSectionElement.DOC_WORLD_SECTION, 20); AllKeys.register(); diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionRenderDispatcher.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionRenderDispatcher.java index f74968039..98e5e9fbb 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionRenderDispatcher.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionRenderDispatcher.java @@ -44,7 +44,16 @@ public class ContraptionRenderDispatcher { private static WorldAttached> WORLDS = new WorldAttached<>(SBBContraptionManager::new); - public static final Compartment> CONTRAPTION = new Compartment<>(); + /** + * Reset a contraption's renderer. + * @param contraption The contraption to invalidate. + * @return true if there was a renderer associated with the given contraption. + */ + public static boolean invalidate(Contraption contraption) { + World level = contraption.entity.level; + + return WORLDS.get(level).invalidate(contraption); + } public static void tick(World world) { if (Minecraft.getInstance().isPaused()) return; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionRenderInfo.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionRenderInfo.java index 2b628393e..861db5c41 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionRenderInfo.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionRenderInfo.java @@ -68,4 +68,8 @@ public class ContraptionRenderInfo { public ContraptionMatrices getMatrices() { return matrices; } + + public void invalidate() { + + } } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionRenderManager.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionRenderManager.java index 735d569f1..5bc3abed3 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionRenderManager.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionRenderManager.java @@ -29,6 +29,20 @@ public abstract class ContraptionRenderManager this.world = (World) world; } + public boolean invalidate(Contraption contraption) { + int entityId = contraption.entity.getId(); + + C removed = renderInfos.remove(entityId); + + if (removed != null) { + removed.invalidate(); + visible.remove(removed); + return true; + } + + return false; + } + public void renderLayer(RenderLayerEvent event) { for (C c : visible) { c.setupMatrices(event.stack, event.camX, event.camY, event.camZ); @@ -85,6 +99,9 @@ public abstract class ContraptionRenderManager } public void delete() { + for (C renderer : renderInfos.values()) { + renderer.invalidate(); + } renderInfos.clear(); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/FlwContraptionManager.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/FlwContraptionManager.java index efd42ad70..05485d3ad 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/FlwContraptionManager.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/FlwContraptionManager.java @@ -94,12 +94,4 @@ public class FlwContraptionManager extends ContraptionRenderManager { + public static final Compartment> CONTRAPTION = new Compartment<>(); + public SBBContraptionManager(IWorld world) { super(world); } @@ -25,6 +26,14 @@ public class SBBContraptionManager extends ContraptionRenderManager renderContraptionLayerSBB(event, info)); } + @Override + public boolean invalidate(Contraption contraption) { + for (RenderType chunkBufferLayer : RenderType.chunkBufferLayers()) { + CreateClient.BUFFER_CACHE.invalidate(CONTRAPTION, Pair.of(contraption, chunkBufferLayer)); + } + return super.invalidate(contraption); + } + @Override protected ContraptionRenderInfo create(Contraption c) { PlacementSimulationWorld renderWorld = ContraptionRenderDispatcher.setupRenderWorld(world, c); From 7ddf11004ba3a26cf6db8930f81a493ba572620a Mon Sep 17 00:00:00 2001 From: QubicQuantum Date: Sun, 15 Aug 2021 20:54:00 -0700 Subject: [PATCH 30/79] custom namespace support of CustomRenderedItemModels --- .../curiosities/symmetry/client/SymmetryWandModel.java | 4 ++-- .../create/content/curiosities/tools/ExtendoGripModel.java | 2 +- .../content/curiosities/weapons/PotatoCannonModel.java | 2 +- .../curiosities/zapper/terrainzapper/WorldshaperModel.java | 2 +- .../foundation/item/render/CustomRenderedItemModel.java | 5 +++-- 5 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/simibubi/create/content/curiosities/symmetry/client/SymmetryWandModel.java b/src/main/java/com/simibubi/create/content/curiosities/symmetry/client/SymmetryWandModel.java index f361c3c9f..aac4957b9 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/symmetry/client/SymmetryWandModel.java +++ b/src/main/java/com/simibubi/create/content/curiosities/symmetry/client/SymmetryWandModel.java @@ -8,7 +8,7 @@ import net.minecraft.client.renderer.tileentity.ItemStackTileEntityRenderer; public class SymmetryWandModel extends CustomRenderedItemModel { public SymmetryWandModel(IBakedModel template) { - super(template, "wand_of_symmetry"); + super(template, "create", "wand_of_symmetry"); addPartials("bits", "core", "core_glow"); } @@ -16,5 +16,5 @@ public class SymmetryWandModel extends CustomRenderedItemModel { public ItemStackTileEntityRenderer createRenderer() { return new SymmetryWandItemRenderer(); } - + } diff --git a/src/main/java/com/simibubi/create/content/curiosities/tools/ExtendoGripModel.java b/src/main/java/com/simibubi/create/content/curiosities/tools/ExtendoGripModel.java index cd37439f5..274a1f350 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/tools/ExtendoGripModel.java +++ b/src/main/java/com/simibubi/create/content/curiosities/tools/ExtendoGripModel.java @@ -8,7 +8,7 @@ import net.minecraft.client.renderer.tileentity.ItemStackTileEntityRenderer; public class ExtendoGripModel extends CustomRenderedItemModel { public ExtendoGripModel(IBakedModel template) { - super(template, "extendo_grip"); + super(template, "create", "extendo_grip"); addPartials("cog", "thin_short", "wide_short", "thin_long", "wide_long"); } diff --git a/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoCannonModel.java b/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoCannonModel.java index 5896c4d8e..43645055b 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoCannonModel.java +++ b/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoCannonModel.java @@ -8,7 +8,7 @@ import net.minecraft.client.renderer.tileentity.ItemStackTileEntityRenderer; public class PotatoCannonModel extends CustomRenderedItemModel { public PotatoCannonModel(IBakedModel template) { - super(template, "potato_cannon"); + super(template, "create", "potato_cannon"); addPartials("cog"); } diff --git a/src/main/java/com/simibubi/create/content/curiosities/zapper/terrainzapper/WorldshaperModel.java b/src/main/java/com/simibubi/create/content/curiosities/zapper/terrainzapper/WorldshaperModel.java index c27b76932..283005e3e 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/zapper/terrainzapper/WorldshaperModel.java +++ b/src/main/java/com/simibubi/create/content/curiosities/zapper/terrainzapper/WorldshaperModel.java @@ -8,7 +8,7 @@ import net.minecraft.client.renderer.tileentity.ItemStackTileEntityRenderer; public class WorldshaperModel extends CustomRenderedItemModel { public WorldshaperModel(IBakedModel template) { - super(template, "handheld_worldshaper"); + super(template, "create", "handheld_worldshaper"); addPartials("core", "core_glow", "accelerator"); } diff --git a/src/main/java/com/simibubi/create/foundation/item/render/CustomRenderedItemModel.java b/src/main/java/com/simibubi/create/foundation/item/render/CustomRenderedItemModel.java index 23fa7f229..799c15a96 100644 --- a/src/main/java/com/simibubi/create/foundation/item/render/CustomRenderedItemModel.java +++ b/src/main/java/com/simibubi/create/foundation/item/render/CustomRenderedItemModel.java @@ -22,8 +22,9 @@ public abstract class CustomRenderedItemModel extends BakedModelWrapper partials = new HashMap<>(); protected ItemStackTileEntityRenderer renderer; - public CustomRenderedItemModel(IBakedModel template, String basePath) { + public CustomRenderedItemModel(IBakedModel template, String namespace, String basePath) { super(template); + this.namespace = namespace; this.basePath = basePath; this.renderer = createRenderer(); } @@ -72,7 +73,7 @@ public abstract class CustomRenderedItemModel extends BakedModelWrapper Date: Sun, 15 Aug 2021 21:14:26 -0700 Subject: [PATCH 31/79] fixed some stuff a --- .../create/content/contraptions/wrench/WrenchModel.java | 2 +- .../create/content/curiosities/tools/SandPaperItemRenderer.java | 2 +- .../create/content/logistics/item/LinkedControllerModel.java | 2 +- .../create/foundation/item/render/CustomRenderedItemModel.java | 1 + 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/simibubi/create/content/contraptions/wrench/WrenchModel.java b/src/main/java/com/simibubi/create/content/contraptions/wrench/WrenchModel.java index 7d58c0514..2989dbe6d 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/wrench/WrenchModel.java +++ b/src/main/java/com/simibubi/create/content/contraptions/wrench/WrenchModel.java @@ -8,7 +8,7 @@ import net.minecraft.client.renderer.tileentity.ItemStackTileEntityRenderer; public class WrenchModel extends CustomRenderedItemModel { public WrenchModel(IBakedModel template) { - super(template, "wrench"); + super(template, "create", "wrench"); addPartials("gear"); } diff --git a/src/main/java/com/simibubi/create/content/curiosities/tools/SandPaperItemRenderer.java b/src/main/java/com/simibubi/create/content/curiosities/tools/SandPaperItemRenderer.java index bdc8946f5..f3f450b93 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/tools/SandPaperItemRenderer.java +++ b/src/main/java/com/simibubi/create/content/curiosities/tools/SandPaperItemRenderer.java @@ -82,7 +82,7 @@ public class SandPaperItemRenderer extends ItemStackTileEntityRenderer { public static class SandPaperModel extends CustomRenderedItemModel { public SandPaperModel(IBakedModel template) { - super(template, ""); + super(template, "create",""); } @Override diff --git a/src/main/java/com/simibubi/create/content/logistics/item/LinkedControllerModel.java b/src/main/java/com/simibubi/create/content/logistics/item/LinkedControllerModel.java index a900bddf4..acbf99129 100644 --- a/src/main/java/com/simibubi/create/content/logistics/item/LinkedControllerModel.java +++ b/src/main/java/com/simibubi/create/content/logistics/item/LinkedControllerModel.java @@ -8,7 +8,7 @@ import net.minecraft.client.renderer.tileentity.ItemStackTileEntityRenderer; public class LinkedControllerModel extends CustomRenderedItemModel { public LinkedControllerModel(IBakedModel template) { - super(template, "linked_controller"); + super(template, "create", "linked_controller"); addPartials("powered", "button"); } diff --git a/src/main/java/com/simibubi/create/foundation/item/render/CustomRenderedItemModel.java b/src/main/java/com/simibubi/create/foundation/item/render/CustomRenderedItemModel.java index 799c15a96..dfb8097cd 100644 --- a/src/main/java/com/simibubi/create/foundation/item/render/CustomRenderedItemModel.java +++ b/src/main/java/com/simibubi/create/foundation/item/render/CustomRenderedItemModel.java @@ -18,6 +18,7 @@ import net.minecraftforge.client.model.BakedModelWrapper; public abstract class CustomRenderedItemModel extends BakedModelWrapper { + protected String namespace; protected String basePath; protected Map partials = new HashMap<>(); protected ItemStackTileEntityRenderer renderer; From ce32284d396bde8baf72e37b9f487908fc44b004 Mon Sep 17 00:00:00 2001 From: grimmauld Date: Tue, 24 Aug 2021 11:17:47 +0200 Subject: [PATCH 32/79] DeployerRecipeSearchEvent - added an event to add custom deploying recipes for addons(that partly need more data and therefore can't use the existing deploying recipe json format) - made deploying recipe scanning cancelable by event - added a safety check to tile entity behaviours to prevent concurrent modification exceptions when loading old worlds (0.2 time, dev 0.3) --- .../deployer/DeployerRecipeSearchEvent.java | 59 +++++++++++++++++++ .../deployer/DeployerTileEntity.java | 34 +++++++---- .../tileEntity/TileEntityBehaviour.java | 10 +++- .../recipe/TileEntityAwareRecipeWrapper.java | 21 +++++++ 4 files changed, 112 insertions(+), 12 deletions(-) create mode 100644 src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerRecipeSearchEvent.java create mode 100644 src/main/java/com/simibubi/create/foundation/utility/recipe/TileEntityAwareRecipeWrapper.java diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerRecipeSearchEvent.java b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerRecipeSearchEvent.java new file mode 100644 index 000000000..f8673abd7 --- /dev/null +++ b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerRecipeSearchEvent.java @@ -0,0 +1,59 @@ +package com.simibubi.create.content.contraptions.components.deployer; + +import java.util.Optional; +import java.util.function.Supplier; + +import javax.annotation.Nullable; + +import com.simibubi.create.foundation.utility.recipe.TileEntityAwareRecipeWrapper; + +import net.minecraft.inventory.IInventory; +import net.minecraft.item.crafting.IRecipe; +import net.minecraftforge.eventbus.api.Event; + +public class DeployerRecipeSearchEvent extends Event { + private final DeployerTileEntity tileEntity; + private final TileEntityAwareRecipeWrapper inventory; + @Nullable + IRecipe recipe = null; + private int maxPriority = 0; + + public DeployerRecipeSearchEvent(DeployerTileEntity tileEntity, TileEntityAwareRecipeWrapper inventory) { + this.tileEntity = tileEntity; + this.inventory = inventory; + } + + @Override + public boolean isCancelable() { + return true; + } + + public DeployerTileEntity getTileEntity() { + return tileEntity; + } + + public TileEntityAwareRecipeWrapper getInventory() { + return inventory; + } + + // lazyness to not scan for recipes that aren't selected + public boolean shouldAddRecipeWithPriority(int priority) { + return !isCanceled() && priority > maxPriority; + } + + @Nullable + public IRecipe getRecipe() { + if (isCanceled()) + return null; + return recipe; + } + + public void addRecipe(Supplier>> recipeSupplier, int priority) { + if (!shouldAddRecipeWithPriority(priority)) + return; + recipeSupplier.get().ifPresent(newRecipe -> { + this.recipe = newRecipe; + maxPriority = priority; + }); + } +} diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerTileEntity.java index b8af6dae6..958844ac0 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerTileEntity.java @@ -4,7 +4,6 @@ import static com.simibubi.create.content.contraptions.base.DirectionalKineticBl import java.util.ArrayList; import java.util.List; -import java.util.Optional; import javax.annotation.Nullable; @@ -26,8 +25,11 @@ import com.simibubi.create.foundation.utility.NBTHelper; import com.simibubi.create.foundation.utility.VecHelper; import com.simibubi.create.foundation.utility.animation.LerpedFloat; +import com.simibubi.create.foundation.utility.recipe.TileEntityAwareRecipeWrapper; + import net.minecraft.block.BlockState; import net.minecraft.entity.player.ServerPlayerEntity; +import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.IRecipe; import net.minecraft.nbt.CompoundNBT; @@ -46,6 +48,8 @@ import net.minecraft.util.math.RayTraceContext.FluidMode; import net.minecraft.util.math.vector.Vector3d; import net.minecraft.util.text.ITextComponent; import net.minecraft.world.server.ServerWorld; +import net.minecraftforge.common.ForgeMod; +import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.util.Constants.NBT; import net.minecraftforge.common.util.LazyOptional; @@ -437,29 +441,37 @@ public class DeployerTileEntity extends KineticTileEntity { animatedOffset.setValue(offset); } - RecipeWrapper recipeInv = new RecipeWrapper(new ItemStackHandler(2)); + TileEntityAwareRecipeWrapper recipeInv = new TileEntityAwareRecipeWrapper(new ItemStackHandler(2), this); SandPaperInv sandpaperInv = new SandPaperInv(ItemStack.EMPTY); @Nullable - public IRecipe getRecipe(ItemStack stack) { - if (player == null) + public IRecipe getRecipe(ItemStack stack) { + // safety checks + if (player == null || level == null) return null; + + // sandpaper = op ItemStack heldItemMainhand = player.getMainHandItem(); if (heldItemMainhand.getItem() instanceof SandPaperItem) { sandpaperInv.setItem(0, stack); return AllRecipeTypes.SANDPAPER_POLISHING.find(sandpaperInv, level) .orElse(null); } + + // inventory recipeInv.setItem(0, stack); recipeInv.setItem(1, heldItemMainhand); - Optional assemblyRecipe = SequencedAssemblyRecipe.getRecipe(level, recipeInv, - AllRecipeTypes.DEPLOYING.getType(), DeployerApplicationRecipe.class); - if (assemblyRecipe.isPresent()) - return assemblyRecipe.get(); + // event nonsense + DeployerRecipeSearchEvent event = new DeployerRecipeSearchEvent(this, recipeInv); - return AllRecipeTypes.DEPLOYING.find(recipeInv, level) - .orElse(null); + // creates deployer recipes + event.addRecipe(() -> SequencedAssemblyRecipe.getRecipe(level, recipeInv, + AllRecipeTypes.DEPLOYING.getType(), DeployerApplicationRecipe.class), 100); + event.addRecipe(() -> AllRecipeTypes.DEPLOYING.find(recipeInv, level), 50); + + // post the event, get result + MinecraftForge.EVENT_BUS.post(event); + return event.getRecipe(); } - } diff --git a/src/main/java/com/simibubi/create/foundation/tileEntity/TileEntityBehaviour.java b/src/main/java/com/simibubi/create/foundation/tileEntity/TileEntityBehaviour.java index 5cd951b31..0483e85e5 100644 --- a/src/main/java/com/simibubi/create/foundation/tileEntity/TileEntityBehaviour.java +++ b/src/main/java/com/simibubi/create/foundation/tileEntity/TileEntityBehaviour.java @@ -10,6 +10,8 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.world.IBlockReader; import net.minecraft.world.World; +import java.util.ConcurrentModificationException; + public abstract class TileEntityBehaviour { public SmartTileEntity tileEntity; @@ -85,7 +87,13 @@ public abstract class TileEntityBehaviour { } public static T get(IBlockReader reader, BlockPos pos, BehaviourType type) { - return get(reader.getBlockEntity(pos), type); + TileEntity te; + try { + te = reader.getBlockEntity(pos); + } catch (ConcurrentModificationException e) { + te = null; + } + return get(te, type); } public static void destroy(IBlockReader reader, BlockPos pos, diff --git a/src/main/java/com/simibubi/create/foundation/utility/recipe/TileEntityAwareRecipeWrapper.java b/src/main/java/com/simibubi/create/foundation/utility/recipe/TileEntityAwareRecipeWrapper.java new file mode 100644 index 000000000..143924e86 --- /dev/null +++ b/src/main/java/com/simibubi/create/foundation/utility/recipe/TileEntityAwareRecipeWrapper.java @@ -0,0 +1,21 @@ +package com.simibubi.create.foundation.utility.recipe; + +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.items.IItemHandlerModifiable; +import net.minecraftforge.items.wrapper.RecipeWrapper; + +import java.util.function.Supplier; + +public class TileEntityAwareRecipeWrapper extends RecipeWrapper implements Supplier { + private final TileEntity tileEntity; + + public TileEntityAwareRecipeWrapper(IItemHandlerModifiable inv, TileEntity tileEntity) { + super(inv); + this.tileEntity = tileEntity; + } + + @Override + public TileEntity get() { + return tileEntity; + } +} From df0b9c3a17b8e63e575a40ef459281a3f355db4b Mon Sep 17 00:00:00 2001 From: grimmauld Date: Tue, 24 Aug 2021 15:04:26 +0200 Subject: [PATCH 33/79] getter for deployer fake player --- .../contraptions/components/deployer/DeployerTileEntity.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerTileEntity.java index 958844ac0..a68df86a8 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerTileEntity.java @@ -474,4 +474,8 @@ public class DeployerTileEntity extends KineticTileEntity { MinecraftForge.EVENT_BUS.post(event); return event.getRecipe(); } + + public DeployerFakePlayer getPlayer() { + return player; + } } From f0736bdc41ef75ae2857f587b6f72df999c02333 Mon Sep 17 00:00:00 2001 From: grimmauld Date: Tue, 24 Aug 2021 17:15:43 +0200 Subject: [PATCH 34/79] Simplify the event to not include a te aware inventory --- .../deployer/DeployerRecipeSearchEvent.java | 9 ++++---- .../deployer/DeployerTileEntity.java | 9 +++----- .../recipe/TileEntityAwareRecipeWrapper.java | 21 ------------------- 3 files changed, 7 insertions(+), 32 deletions(-) delete mode 100644 src/main/java/com/simibubi/create/foundation/utility/recipe/TileEntityAwareRecipeWrapper.java diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerRecipeSearchEvent.java b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerRecipeSearchEvent.java index f8673abd7..0b204fc4f 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerRecipeSearchEvent.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerRecipeSearchEvent.java @@ -5,20 +5,19 @@ import java.util.function.Supplier; import javax.annotation.Nullable; -import com.simibubi.create.foundation.utility.recipe.TileEntityAwareRecipeWrapper; - import net.minecraft.inventory.IInventory; import net.minecraft.item.crafting.IRecipe; import net.minecraftforge.eventbus.api.Event; +import net.minecraftforge.items.wrapper.RecipeWrapper; public class DeployerRecipeSearchEvent extends Event { private final DeployerTileEntity tileEntity; - private final TileEntityAwareRecipeWrapper inventory; + private final RecipeWrapper inventory; @Nullable IRecipe recipe = null; private int maxPriority = 0; - public DeployerRecipeSearchEvent(DeployerTileEntity tileEntity, TileEntityAwareRecipeWrapper inventory) { + public DeployerRecipeSearchEvent(DeployerTileEntity tileEntity, RecipeWrapper inventory) { this.tileEntity = tileEntity; this.inventory = inventory; } @@ -32,7 +31,7 @@ public class DeployerRecipeSearchEvent extends Event { return tileEntity; } - public TileEntityAwareRecipeWrapper getInventory() { + public RecipeWrapper getInventory() { return inventory; } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerTileEntity.java index a68df86a8..22e7c28e7 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerTileEntity.java @@ -25,8 +25,6 @@ import com.simibubi.create.foundation.utility.NBTHelper; import com.simibubi.create.foundation.utility.VecHelper; import com.simibubi.create.foundation.utility.animation.LerpedFloat; -import com.simibubi.create.foundation.utility.recipe.TileEntityAwareRecipeWrapper; - import net.minecraft.block.BlockState; import net.minecraft.entity.player.ServerPlayerEntity; import net.minecraft.inventory.IInventory; @@ -48,7 +46,6 @@ import net.minecraft.util.math.RayTraceContext.FluidMode; import net.minecraft.util.math.vector.Vector3d; import net.minecraft.util.text.ITextComponent; import net.minecraft.world.server.ServerWorld; -import net.minecraftforge.common.ForgeMod; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.util.Constants.NBT; @@ -441,7 +438,7 @@ public class DeployerTileEntity extends KineticTileEntity { animatedOffset.setValue(offset); } - TileEntityAwareRecipeWrapper recipeInv = new TileEntityAwareRecipeWrapper(new ItemStackHandler(2), this); + RecipeWrapper recipeInv = new RecipeWrapper(new ItemStackHandler(2)); SandPaperInv sandpaperInv = new SandPaperInv(ItemStack.EMPTY); @Nullable @@ -466,9 +463,9 @@ public class DeployerTileEntity extends KineticTileEntity { DeployerRecipeSearchEvent event = new DeployerRecipeSearchEvent(this, recipeInv); // creates deployer recipes - event.addRecipe(() -> SequencedAssemblyRecipe.getRecipe(level, recipeInv, + event.addRecipe(() -> SequencedAssemblyRecipe.getRecipe(level, event.getInventory(), AllRecipeTypes.DEPLOYING.getType(), DeployerApplicationRecipe.class), 100); - event.addRecipe(() -> AllRecipeTypes.DEPLOYING.find(recipeInv, level), 50); + event.addRecipe(() -> AllRecipeTypes.DEPLOYING.find(event.getInventory(), level), 50); // post the event, get result MinecraftForge.EVENT_BUS.post(event); diff --git a/src/main/java/com/simibubi/create/foundation/utility/recipe/TileEntityAwareRecipeWrapper.java b/src/main/java/com/simibubi/create/foundation/utility/recipe/TileEntityAwareRecipeWrapper.java deleted file mode 100644 index 143924e86..000000000 --- a/src/main/java/com/simibubi/create/foundation/utility/recipe/TileEntityAwareRecipeWrapper.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.simibubi.create.foundation.utility.recipe; - -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.items.IItemHandlerModifiable; -import net.minecraftforge.items.wrapper.RecipeWrapper; - -import java.util.function.Supplier; - -public class TileEntityAwareRecipeWrapper extends RecipeWrapper implements Supplier { - private final TileEntity tileEntity; - - public TileEntityAwareRecipeWrapper(IItemHandlerModifiable inv, TileEntity tileEntity) { - super(inv); - this.tileEntity = tileEntity; - } - - @Override - public TileEntity get() { - return tileEntity; - } -} From 925c98792fda40ff206b2477f2d7b7b415fba603 Mon Sep 17 00:00:00 2001 From: simibubi <31564874+simibubi@users.noreply.github.com> Date: Wed, 25 Aug 2021 13:46:53 +0200 Subject: [PATCH 35/79] (Sp)out of order - Added behavioural registry for Spout/Block interaction - Fixed and Refactored TiCon Casting via Spout - Fixed fluid pipes getting stuck trying to waterlog non-solid blocks with fluid handling capabilities - Fixed modlist lookup for non-english locales --- build.gradle | 4 +- gradle.properties | 2 +- src/main/java/com/simibubi/create/Create.java | 4 +- .../java/com/simibubi/create/compat/Mods.java | 7 +- .../compat/tconstruct/SpoutCasting.java | 72 ++++++++++ .../contraptions/fluids/FluidPropagator.java | 2 + .../fluids/actors/BlockSpoutingBehaviour.java | 51 +++++++ .../fluids/actors/GenericItemFilling.java | 1 - .../fluids/actors/SpoutRenderer.java | 5 +- .../fluids/actors/SpoutTileEntity.java | 132 +++++------------- .../create/foundation/config/CRecipes.java | 19 +-- .../create/foundation/fluid/FluidHelper.java | 2 + .../create/foundation/utility/TreeCutter.java | 3 +- src/main/resources/META-INF/mods.toml | 2 +- 14 files changed, 190 insertions(+), 116 deletions(-) create mode 100644 src/main/java/com/simibubi/create/compat/tconstruct/SpoutCasting.java create mode 100644 src/main/java/com/simibubi/create/content/contraptions/fluids/actors/BlockSpoutingBehaviour.java diff --git a/build.gradle b/build.gradle index 94ae11c67..d8cd566cd 100644 --- a/build.gradle +++ b/build.gradle @@ -155,8 +155,8 @@ dependencies { // i'll leave this here commented for easier testing //runtimeOnly fg.deobf("vazkii.arl:AutoRegLib:1.4-35.69") //runtimeOnly fg.deobf("vazkii.quark:Quark:r2.0-212.984") - //runtimeOnly fg.deobf("slimeknights.mantle:Mantle:1.16.5-1.6.103") - //runtimeOnly fg.deobf("slimeknights.tconstruct:TConstruct:1.16.5-3.0.3.168") + //runtimeOnly fg.deobf("slimeknights.mantle:Mantle:1.16.5-1.6.115") + //runtimeOnly fg.deobf("slimeknights.tconstruct:TConstruct:1.16.5-3.1.1.252") annotationProcessor 'org.spongepowered:mixin:0.8.2:processor' } diff --git a/gradle.properties b/gradle.properties index dff493265..e77ab6368 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,7 +4,7 @@ org.gradle.jvmargs = -Xmx3G org.gradle.daemon = false # mod version info -mod_version = 0.3.2d +mod_version = 0.3.2e minecraft_version = 1.16.5 forge_version = 36.2.0 diff --git a/src/main/java/com/simibubi/create/Create.java b/src/main/java/com/simibubi/create/Create.java index 6ab5657a9..f2ada3c6a 100644 --- a/src/main/java/com/simibubi/create/Create.java +++ b/src/main/java/com/simibubi/create/Create.java @@ -10,6 +10,7 @@ import com.google.gson.GsonBuilder; import com.simibubi.create.content.CreateItemGroup; import com.simibubi.create.content.contraptions.TorquePropagator; import com.simibubi.create.content.contraptions.components.structureMovement.train.capability.CapabilityMinecartController; +import com.simibubi.create.content.contraptions.fluids.actors.BlockSpoutingBehaviour; import com.simibubi.create.content.curiosities.weapons.PotatoCannonProjectileTypes; import com.simibubi.create.content.logistics.RedstoneLinkNetworkHandler; import com.simibubi.create.content.palettes.AllPaletteBlocks; @@ -58,7 +59,7 @@ public class Create { public static final String ID = "create"; public static final String NAME = "Create"; - public static final String VERSION = "0.3.2d"; + public static final String VERSION = "0.3.2e"; public static final Logger LOGGER = LogManager.getLogger(); @@ -92,6 +93,7 @@ public class Create { AllWorldFeatures.register(); AllEnchantments.register(); AllConfigs.register(ModLoadingContext.get()); + BlockSpoutingBehaviour.register(); ForgeMod.enableMilkFluid(); diff --git a/src/main/java/com/simibubi/create/compat/Mods.java b/src/main/java/com/simibubi/create/compat/Mods.java index 85b23626a..b32960505 100644 --- a/src/main/java/com/simibubi/create/compat/Mods.java +++ b/src/main/java/com/simibubi/create/compat/Mods.java @@ -3,13 +3,16 @@ package com.simibubi.create.compat; import java.util.Optional; import java.util.function.Supplier; +import com.simibubi.create.foundation.utility.Lang; + import net.minecraftforge.fml.ModList; /** * For compatibility with and without another mod present, we have to define load conditions of the specific code */ public enum Mods { - DYNAMICTREES; + DYNAMICTREES, + TCONSTRUCT; /** * @return a boolean of whether the mod is loaded or not based on mod id @@ -22,7 +25,7 @@ public enum Mods { * @return the mod id */ public String asId() { - return name().toLowerCase(); + return Lang.asId(name()); } /** diff --git a/src/main/java/com/simibubi/create/compat/tconstruct/SpoutCasting.java b/src/main/java/com/simibubi/create/compat/tconstruct/SpoutCasting.java new file mode 100644 index 000000000..d297d892a --- /dev/null +++ b/src/main/java/com/simibubi/create/compat/tconstruct/SpoutCasting.java @@ -0,0 +1,72 @@ +package com.simibubi.create.compat.tconstruct; + +import com.simibubi.create.compat.Mods; +import com.simibubi.create.content.contraptions.fluids.actors.BlockSpoutingBehaviour; +import com.simibubi.create.content.contraptions.fluids.actors.SpoutTileEntity; +import com.simibubi.create.foundation.config.AllConfigs; +import com.simibubi.create.foundation.fluid.FluidHelper; + +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Direction; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.capability.CapabilityFluidHandler; +import net.minecraftforge.fluids.capability.IFluidHandler; +import net.minecraftforge.fluids.capability.IFluidHandler.FluidAction; + +public class SpoutCasting extends BlockSpoutingBehaviour { + + static Boolean TICON_PRESENT = null; + + ResourceLocation TABLE = new ResourceLocation("tconstruct", "table"); + ResourceLocation BASIN = new ResourceLocation("tconstruct", "basin"); + + @Override + public int fillBlock(World level, BlockPos pos, SpoutTileEntity spout, FluidStack availableFluid, + boolean simulate) { + if (!enabled()) + return 0; + + TileEntity te = level.getBlockEntity(pos); + if (te == null) + return 0; + + IFluidHandler handler = te.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY, Direction.UP) + .orElse(null); + if (handler == null) + return 0; + if (handler.getTanks() != 1) + return 0; + + ResourceLocation registryName = te.getType() + .getRegistryName(); + if (!registryName.equals(TABLE) && !registryName.equals(BASIN)) + return 0; + if (!handler.isFluidValid(0, availableFluid)) + return 0; + + FluidStack containedFluid = handler.getFluidInTank(0); + if (!(containedFluid.isEmpty() || containedFluid.isFluidEqual(availableFluid))) + return 0; + + // Do not fill if it would only partially fill the table (unless > 1000mb) + int amount = availableFluid.getAmount(); + if (amount < 1000 + && handler.fill(FluidHelper.copyStackWithAmount(availableFluid, amount + 1), FluidAction.SIMULATE) > amount) + return 0; + + // Return amount filled into the table/basin + return handler.fill(availableFluid, simulate ? FluidAction.SIMULATE : FluidAction.EXECUTE); + } + + private boolean enabled() { + if (TICON_PRESENT == null) + TICON_PRESENT = Mods.TCONSTRUCT.isLoaded(); + if (!TICON_PRESENT) + return false; + return AllConfigs.SERVER.recipes.allowCastingBySpout.get(); + } + +} diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/FluidPropagator.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/FluidPropagator.java index 9fe68887f..cf4d8f3a7 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/FluidPropagator.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/FluidPropagator.java @@ -161,6 +161,8 @@ public class FluidPropagator { return true; if (BlockHelper.hasBlockSolidSide(connectedState, reader, connectedPos, side.getOpposite())) return false; + if (hasFluidCapability(reader, connectedPos, side.getOpposite())) + return false; if (!(connectedState.getMaterial() .isReplaceable() && connectedState.getDestroySpeed(reader, connectedPos) != -1) && !connectedState.hasProperty(BlockStateProperties.WATERLOGGED)) diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/BlockSpoutingBehaviour.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/BlockSpoutingBehaviour.java new file mode 100644 index 000000000..9279b770e --- /dev/null +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/BlockSpoutingBehaviour.java @@ -0,0 +1,51 @@ +package com.simibubi.create.content.contraptions.fluids.actors; + +import java.util.HashMap; +import java.util.function.Consumer; + +import com.simibubi.create.Create; +import com.simibubi.create.compat.tconstruct.SpoutCasting; + +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; +import net.minecraftforge.fluids.FluidStack; + +public abstract class BlockSpoutingBehaviour { + + private static final HashMap BLOCK_SPOUTING_BEHAVIOURS = new HashMap<>(); + + public static void addCustomSpoutInteraction(ResourceLocation resourceLocation, + BlockSpoutingBehaviour movementBehaviour) { + BLOCK_SPOUTING_BEHAVIOURS.put(resourceLocation, movementBehaviour); + } + + public static void forEach(Consumer accept) { + BLOCK_SPOUTING_BEHAVIOURS.values() + .forEach(accept); + } + + /** + * While idle, Spouts will call this every tick with simulate == true
+ * When fillBlock returns > 0, the Spout will start its animation cycle
+ *
+ * During this animation cycle, fillBlock is called once again with simulate == false but only on the relevant SpoutingBehaviour
+ * When fillBlock returns > 0 once again, the Spout will drain its content by the returned amount of units
+ * Perform any other side-effects in this method
+ * This method is called server-side only (except in ponder)
+ * + * @param world + * @param pos of the affected block + * @param spout + * @param availableFluid do not modify, return the amount to be subtracted instead + * @param simulate whether the spout is testing or actually performing this behaviour + * @return amount filled into the block, 0 to idle/cancel + */ + public abstract int fillBlock(World world, BlockPos pos, SpoutTileEntity spout, FluidStack availableFluid, + boolean simulate); + + public static void register() { + addCustomSpoutInteraction(Create.asResource("ticon_casting"), new SpoutCasting()); + } + +} diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/GenericItemFilling.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/GenericItemFilling.java index 27fc51b6e..e8aeb3a9c 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/GenericItemFilling.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/GenericItemFilling.java @@ -13,7 +13,6 @@ import net.minecraft.item.MilkBucketItem; import net.minecraft.potion.PotionUtils; import net.minecraft.potion.Potions; import net.minecraft.world.World; -import net.minecraftforge.common.ForgeMod; import net.minecraftforge.common.util.LazyOptional; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.capability.CapabilityFluidHandler; diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/SpoutRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/SpoutRenderer.java index 5594f5ef7..2136e2b4c 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/SpoutRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/SpoutRenderer.java @@ -39,6 +39,7 @@ public class SpoutRenderer extends SafeTileEntityRenderer { .getValue(partialTicks); if (!fluidStack.isEmpty() && level != 0) { + level = Math.max(level, 0.175f); float min = 2.5f / 16f; float max = min + (11 / 16f); float yOffset = (11 / 16f) * level; @@ -49,8 +50,8 @@ public class SpoutRenderer extends SafeTileEntityRenderer { ms.popPose(); } - int processingTicks = te.getCorrectedProcessingTicks(); - float processingPT = te.getCorrectedProcessingTicks() - partialTicks; + int processingTicks = te.processingTicks; + float processingPT = processingTicks - partialTicks; float processingProgress = 1 - (processingPT - 5) / 10; processingProgress = MathHelper.clamp(processingProgress, 0, 1); float radius = 0; diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/SpoutTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/SpoutTileEntity.java index 371e73e47..df4f69f40 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/SpoutTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/SpoutTileEntity.java @@ -6,12 +6,11 @@ import static com.simibubi.create.foundation.tileEntity.behaviour.belt.BeltProce import java.util.ArrayList; import java.util.List; -import javax.annotation.Nullable; - import com.simibubi.create.content.contraptions.fluids.FluidFX; import com.simibubi.create.content.contraptions.goggles.IHaveGoggleInformation; import com.simibubi.create.content.contraptions.relays.belt.transport.TransportedItemStack; import com.simibubi.create.foundation.advancement.AllTriggers; +import com.simibubi.create.foundation.fluid.FluidHelper; import com.simibubi.create.foundation.tileEntity.SmartTileEntity; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.belt.BeltProcessingBehaviour; @@ -27,11 +26,9 @@ import net.minecraft.item.PotionItem; import net.minecraft.nbt.CompoundNBT; import net.minecraft.particles.IParticleData; import net.minecraft.potion.PotionUtils; -import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntityType; import net.minecraft.util.Direction; import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.vector.Vector3d; import net.minecraft.util.text.ITextComponent; import net.minecraftforge.api.distmarker.Dist; @@ -40,28 +37,15 @@ import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.util.LazyOptional; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.capability.CapabilityFluidHandler; -import net.minecraftforge.fluids.capability.IFluidHandler; -import net.minecraftforge.fml.ModList; public class SpoutTileEntity extends SmartTileEntity implements IHaveGoggleInformation { - private static final boolean IS_TIC_LOADED = ModList.get().isLoaded("tconstruct"); - private static final Class CASTING_FLUID_HANDLER_CLASS; - static { - Class testClass; - try { - testClass = Class.forName("slimeknights.tconstruct.library.smeltery.CastingFluidHandler"); - } catch (ClassNotFoundException e) { - testClass = null; - } - CASTING_FLUID_HANDLER_CLASS = testClass; - } public static final int FILLING_TIME = 20; - protected BeltProcessingBehaviour beltProcessing; - protected int processingTicks; - protected boolean sendSplash; - private boolean shouldAnimate = true; + + public int processingTicks; + public boolean sendSplash; + public BlockSpoutingBehaviour customProcess; SmartFluidTankBehaviour tank; @@ -104,7 +88,6 @@ public class SpoutTileEntity extends SmartTileEntity implements IHaveGoggleInfor protected ProcessingResult whenItemHeld(TransportedItemStack transported, TransportedItemStackHandlerBehaviour handler) { - shouldAnimate = true; if (processingTicks != -1 && processingTicks != 5) return HOLD; if (!FillingBySpout.canItemBeFilled(level, transported.stack)) @@ -149,59 +132,6 @@ public class SpoutTileEntity extends SmartTileEntity implements IHaveGoggleInfor return HOLD; } - private void processTicCastBlock() { - if (!IS_TIC_LOADED || CASTING_FLUID_HANDLER_CLASS == null) - return; - if (level == null) - return; - IFluidHandler localTank = this.tank.getCapability() - .orElse(null); - if (localTank == null) - return; - FluidStack fluid = getCurrentFluidInTank(); - if (fluid.getAmount() == 0) - return; - TileEntity te = level.getBlockEntity(worldPosition.below(2)); - if (te == null) - return; - IFluidHandler handler = getFluidHandler(worldPosition.below(2), Direction.UP); - if (!CASTING_FLUID_HANDLER_CLASS.isInstance(handler)) - return; - if (handler.getTanks() != 1) - return; - if (!handler.isFluidValid(0, this.getCurrentFluidInTank())) - return; - FluidStack containedFluid = handler.getFluidInTank(0); - if (!(containedFluid.isEmpty() || containedFluid.isFluidEqual(fluid))) - return; - if (processingTicks == -1) { - processingTicks = FILLING_TIME; - notifyUpdate(); - return; - } - FluidStack drained = localTank.drain(144, IFluidHandler.FluidAction.SIMULATE); - if (!drained.isEmpty()) { - int filled = handler.fill(drained, IFluidHandler.FluidAction.SIMULATE); - shouldAnimate = filled > 0; - sendSplash = shouldAnimate; - if (processingTicks == 5) { - if (filled > 0) { - drained = localTank.drain(filled, IFluidHandler.FluidAction.EXECUTE); - if (!drained.isEmpty()) { - FluidStack fillStack = drained.copy(); - fillStack.setAmount(Math.min(drained.getAmount(), 6)); - drained.shrink(filled); - fillStack.setAmount(filled); - handler.fill(fillStack, IFluidHandler.FluidAction.EXECUTE); - } - } - tank.getPrimaryHandler() - .setFluid(fluid); - this.notifyUpdate(); - } - } - } - private FluidStack getCurrentFluidInTank() { return tank.getPrimaryHandler() .getFluid(); @@ -239,10 +169,36 @@ public class SpoutTileEntity extends SmartTileEntity implements IHaveGoggleInfor public void tick() { super.tick(); - processTicCastBlock(); - if (processingTicks >= 0) + + FluidStack currentFluidInTank = getCurrentFluidInTank(); + if (processingTicks == -1 && (isVirtual() || !level.isClientSide()) && !currentFluidInTank.isEmpty()) { + BlockSpoutingBehaviour.forEach(behaviour -> { + if (customProcess != null) + return; + if (behaviour.fillBlock(level, worldPosition.below(2), this, currentFluidInTank, true) > 0) { + processingTicks = FILLING_TIME; + customProcess = behaviour; + notifyUpdate(); + } + }); + } + + if (processingTicks >= 0) { processingTicks--; - if (processingTicks >= 8 && level.isClientSide && shouldAnimate) + if (processingTicks == 5 && customProcess != null) { + int fillBlock = customProcess.fillBlock(level, worldPosition.below(2), this, currentFluidInTank, false); + customProcess = null; + if (fillBlock > 0) { + tank.getPrimaryHandler() + .setFluid(FluidHelper.copyStackWithAmount(currentFluidInTank, + currentFluidInTank.getAmount() - fillBlock)); + sendSplash = true; + notifyUpdate(); + } + } + } + + if (processingTicks >= 8 && level.isClientSide) spawnProcessingParticles(tank.getPrimaryTank() .getRenderedFluid()); } @@ -271,25 +227,9 @@ public class SpoutTileEntity extends SmartTileEntity implements IHaveGoggleInfor } } - @Nullable - private IFluidHandler getFluidHandler(BlockPos pos, Direction direction) { - if (this.level == null) { - return null; - } else { - TileEntity te = this.level.getBlockEntity(pos); - return te != null ? te.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY, direction) - .orElse(null) : null; - } - } - - public int getCorrectedProcessingTicks() { - if (shouldAnimate) - return processingTicks; - return -1; - } - @Override public boolean addToGoggleTooltip(List tooltip, boolean isPlayerSneaking) { - return containedFluidTooltip(tooltip, isPlayerSneaking, getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY)); + return containedFluidTooltip(tooltip, isPlayerSneaking, + getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY)); } } diff --git a/src/main/java/com/simibubi/create/foundation/config/CRecipes.java b/src/main/java/com/simibubi/create/foundation/config/CRecipes.java index 86531dcb6..62c2407df 100644 --- a/src/main/java/com/simibubi/create/foundation/config/CRecipes.java +++ b/src/main/java/com/simibubi/create/foundation/config/CRecipes.java @@ -12,6 +12,7 @@ public class CRecipes extends ConfigBase { b(false, "allowBiggerFireworksInCrafter", Comments.allowBiggerFireworksInCrafter); public ConfigBool allowStonecuttingOnSaw = b(true, "allowStonecuttingOnSaw", Comments.allowStonecuttingOnSaw); public ConfigBool allowWoodcuttingOnSaw = b(true, "allowWoodcuttingOnSaw", Comments.allowWoodcuttingOnSaw); + public ConfigBool allowCastingBySpout = b(true, "allowCastingBySpout", Comments.allowCastingBySpout); public ConfigInt lightSourceCountForRefinedRadiance = i(10, 1, "lightSourceCountForRefinedRadiance", Comments.refinedRadiance); public ConfigBool enableRefinedRadianceRecipe = @@ -24,20 +25,22 @@ public class CRecipes extends ConfigBase { } private static class Comments { - static String bulkPressing = "When true, allows the Mechanical Press to process entire stacks at a time."; - static String bulkCutting = "When true, allows the Mechanical Saw to process entire stacks at a time."; + static String bulkPressing = "Allow the Mechanical Press to process entire stacks at a time."; + static String bulkCutting = "Allow the Mechanical Saw to process entire stacks at a time."; static String allowShapelessInMixer = - "When true, allows any shapeless crafting recipes to be processed by a Mechanical Mixer + Basin."; + "Allow allows any shapeless crafting recipes to be processed by a Mechanical Mixer + Basin."; static String allowShapedSquareInPress = - "When true, allows any single-ingredient 2x2 or 3x3 crafting recipes to be processed by a Mechanical Press + Basin."; + "Allow any single-ingredient 2x2 or 3x3 crafting recipes to be processed by a Mechanical Press + Basin."; static String allowRegularCraftingInCrafter = - "When true, allows any standard crafting recipes to be processed by Mechanical Crafters."; + "Allow any standard crafting recipes to be processed by Mechanical Crafters."; static String allowBiggerFireworksInCrafter = - "When true, allows Firework Rockets with more than 9 ingredients to be crafted using Mechanical Crafters."; + "Allow Firework Rockets with more than 9 ingredients to be crafted using Mechanical Crafters."; static String allowStonecuttingOnSaw = - "When true, allows any stonecutting recipes to be processed by a Mechanical Saw."; + "Allow any stonecutting recipes to be processed by a Mechanical Saw."; static String allowWoodcuttingOnSaw = - "When true, allows any Druidcraft woodcutter recipes to be processed by a Mechanical Saw."; + "Allow any Druidcraft woodcutter recipes to be processed by a Mechanical Saw."; + static String allowCastingBySpout = + "Allow Spouts to interact with Casting Tables and Basins from Tinkers' Construct."; static String refinedRadiance = "The amount of Light sources destroyed before Chromatic Compound turns into Refined Radiance."; static String refinedRadianceRecipe = "Allow the standard in-world Refined Radiance recipes."; diff --git a/src/main/java/com/simibubi/create/foundation/fluid/FluidHelper.java b/src/main/java/com/simibubi/create/foundation/fluid/FluidHelper.java index 2ec01040d..744b45325 100644 --- a/src/main/java/com/simibubi/create/foundation/fluid/FluidHelper.java +++ b/src/main/java/com/simibubi/create/foundation/fluid/FluidHelper.java @@ -54,6 +54,8 @@ public class FluidHelper { } public static FluidStack copyStackWithAmount(FluidStack fs, int amount) { + if (amount <= 0) + return FluidStack.EMPTY; if (fs.isEmpty()) return FluidStack.EMPTY; FluidStack copy = fs.copy(); diff --git a/src/main/java/com/simibubi/create/foundation/utility/TreeCutter.java b/src/main/java/com/simibubi/create/foundation/utility/TreeCutter.java index 1fb499a09..70ccfb950 100644 --- a/src/main/java/com/simibubi/create/foundation/utility/TreeCutter.java +++ b/src/main/java/com/simibubi/create/foundation/utility/TreeCutter.java @@ -45,9 +45,8 @@ public class TreeCutter { @Nonnull public static Optional findDynamicTree(Block startBlock, BlockPos pos) { - if (canDynamicTreeCutFrom(startBlock)) { + if (canDynamicTreeCutFrom(startBlock)) return Mods.DYNAMICTREES.runIfInstalled(() -> () -> new DynamicTree(pos)); - } return Optional.empty(); } diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/mods.toml index 4f944f0a4..147bf6833 100644 --- a/src/main/resources/META-INF/mods.toml +++ b/src/main/resources/META-INF/mods.toml @@ -5,7 +5,7 @@ license="MIT" [[mods]] modId="create" -version="v0.3.2d" +version="v0.3.2e" displayName="Create" #updateJSONURL="" displayURL="https://www.curseforge.com/minecraft/mc-mods/create" From fece0e39e27889cb32982d8966e9c3d1d4d13bc8 Mon Sep 17 00:00:00 2001 From: simibubi <31564874+simibubi@users.noreply.github.com> Date: Wed, 25 Aug 2021 17:21:12 +0200 Subject: [PATCH 36/79] Add-ons, behave - Fixed idle blaze burners sending packets every tick - Fixed placement indicator rendering behind the crosshair - Added an Event allowing additional tileentitybehaviour objects to be attached to STEs from outside --- .../event/TileEntityBehaviourEvent.java | 56 +++++++++++++++++++ .../burner/BlazeBurnerTileEntity.java | 1 - .../tileEntity/SmartTileEntity.java | 10 +++- .../utility/placement/PlacementHelpers.java | 7 ++- 4 files changed, 69 insertions(+), 5 deletions(-) create mode 100644 src/main/java/com/simibubi/create/compat/event/TileEntityBehaviourEvent.java diff --git a/src/main/java/com/simibubi/create/compat/event/TileEntityBehaviourEvent.java b/src/main/java/com/simibubi/create/compat/event/TileEntityBehaviourEvent.java new file mode 100644 index 000000000..ad9d14bab --- /dev/null +++ b/src/main/java/com/simibubi/create/compat/event/TileEntityBehaviourEvent.java @@ -0,0 +1,56 @@ +package com.simibubi.create.compat.event; + +import java.lang.reflect.Type; +import java.util.Map; + +import com.simibubi.create.foundation.tileEntity.SmartTileEntity; +import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; +import com.simibubi.create.foundation.tileEntity.behaviour.BehaviourType; + +import net.minecraft.block.BlockState; +import net.minecraftforge.eventbus.api.GenericEvent; + +/** + * Event that is fired just before a SmartTileEntity is being deserealized
+ * Also if a new one is placed
+ * Use it to attach a new {@link TileEntityBehaviour} or replace existing ones (with caution)
+ *
+ * Actual setup of the behaviours internal workings and data should be done in TileEntityBehaviour#read() and TileEntityBehaviour#initialize() respectively.
+ *
+ * Because of the earlyness of this event, the added behaviours will have access to the initial nbt read (unless the TE was placed, not loaded), thereby allowing tiles to store and retrieve data for injected behaviours + */ +public class TileEntityBehaviourEvent extends GenericEvent { + + private BlockState state; + private T smartTileEntity; + private Map, TileEntityBehaviour> behaviours; + + public TileEntityBehaviourEvent(BlockState state, T tileEntity, + Map, TileEntityBehaviour> behaviours) { + this.state = state; + smartTileEntity = tileEntity; + this.behaviours = behaviours; + } + + @Override + public Type getGenericType() { + return smartTileEntity.getClass(); + } + + public void attach(TileEntityBehaviour behaviour) { + behaviours.put(behaviour.getType(), behaviour); + } + + public TileEntityBehaviour remove(BehaviourType type) { + return behaviours.remove(type); + } + + public T getTileEntity() { + return smartTileEntity; + } + + public BlockState getBlockState() { + return state; + } + +} diff --git a/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerTileEntity.java index edd70defc..876e91a60 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerTileEntity.java @@ -95,7 +95,6 @@ public class BlazeBurnerTileEntity extends SmartTileEntity { activeFuel = FuelType.NONE; updateBlockState(); - notifyUpdate(); } private void tickRotation() { diff --git a/src/main/java/com/simibubi/create/foundation/tileEntity/SmartTileEntity.java b/src/main/java/com/simibubi/create/foundation/tileEntity/SmartTileEntity.java index b4ec0bc2c..80f5a0fda 100644 --- a/src/main/java/com/simibubi/create/foundation/tileEntity/SmartTileEntity.java +++ b/src/main/java/com/simibubi/create/foundation/tileEntity/SmartTileEntity.java @@ -6,6 +6,7 @@ import java.util.List; import java.util.Map; import java.util.function.Consumer; +import com.simibubi.create.compat.event.TileEntityBehaviourEvent; import com.simibubi.create.content.schematics.ItemRequirement; import com.simibubi.create.foundation.gui.IInteractionChecker; import com.simibubi.create.foundation.tileEntity.behaviour.BehaviourType; @@ -17,6 +18,7 @@ import net.minecraft.nbt.CompoundNBT; import net.minecraft.tileentity.ITickableTileEntity; import net.minecraft.tileentity.TileEntityType; import net.minecraft.world.World; +import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.fluids.capability.CapabilityFluidHandler; import net.minecraftforge.items.CapabilityItemHandler; @@ -73,6 +75,12 @@ public abstract class SmartTileEntity extends SyncedTileEntity implements ITicka } public void initialize() { + if (firstNbtRead) { + firstNbtRead = false; + MinecraftForge.EVENT_BUS.post(new TileEntityBehaviourEvent<>(getBlockState(), this, behaviours)); + updateBehaviorList(); + } + behaviourList.forEach(TileEntityBehaviour::initialize); lazyTick(); } @@ -108,7 +116,7 @@ public abstract class SmartTileEntity extends SyncedTileEntity implements ITicka ArrayList list = new ArrayList<>(); addBehavioursDeferred(list); list.forEach(b -> behaviours.put(b.getType(), b)); - + MinecraftForge.EVENT_BUS.post(new TileEntityBehaviourEvent<>(state, this, behaviours)); updateBehaviorList(); } super.load(state, compound); diff --git a/src/main/java/com/simibubi/create/foundation/utility/placement/PlacementHelpers.java b/src/main/java/com/simibubi/create/foundation/utility/placement/PlacementHelpers.java index 1bb88d18d..25903ef46 100644 --- a/src/main/java/com/simibubi/create/foundation/utility/placement/PlacementHelpers.java +++ b/src/main/java/com/simibubi/create/foundation/utility/placement/PlacementHelpers.java @@ -145,7 +145,7 @@ public class PlacementHelpers { @SubscribeEvent @OnlyIn(Dist.CLIENT) - public static void onRender(RenderGameOverlayEvent.Pre event) { + public static void onRender(RenderGameOverlayEvent.Post event) { if (event.getType() != RenderGameOverlayEvent.ElementType.CROSSHAIRS) return; @@ -217,7 +217,7 @@ public class PlacementHelpers { RenderSystem.defaultBlendFunc(); RenderSystem.shadeModel(GL11.GL_SMOOTH); - ms.translate(centerX, centerY, 0); + ms.translate(centerX, centerY, 5); ms.mulPose(Vector3f.ZP.rotationDegrees(angle.get(0))); //RenderSystem.rotatef(snappedAngle, 0, 0, 1); double scale = AllConfigs.CLIENT.indicatorScale.get(); @@ -252,11 +252,12 @@ public class PlacementHelpers { RenderSystem.enableTexture(); AllGuiTextures.PLACEMENT_INDICATOR_SHEET.bind(); RenderSystem.enableBlend(); + RenderSystem.enableDepthTest(); RenderSystem.enableAlphaTest(); RenderSystem.defaultBlendFunc(); RenderSystem.shadeModel(GL11.GL_SMOOTH); - ms.translate(centerX, centerY, 0); + ms.translate(centerX, centerY, 50); float scale = AllConfigs.CLIENT.indicatorScale.get().floatValue() * .75f; ms.scale(scale, scale, 1); ms.scale(12, 12, 1); From dc0bdd055e0c5aa78df3b817852791394fde3b2c Mon Sep 17 00:00:00 2001 From: simibubi <31564874+simibubi@users.noreply.github.com> Date: Wed, 25 Aug 2021 17:49:01 +0200 Subject: [PATCH 37/79] Move to api package, also datagen --- src/generated/resources/.cache/cache | 4 +- .../assets/create/lang/unfinished/es_es.json | 404 +-- .../assets/create/lang/unfinished/es_mx.json | 2306 ----------------- src/main/java/com/simibubi/create/Create.java | 2 +- .../behaviour}/BlockSpoutingBehaviour.java | 3 +- .../event/TileEntityBehaviourEvent.java | 2 +- .../compat/tconstruct/SpoutCasting.java | 2 +- .../fluids/actors/SpoutTileEntity.java | 1 + .../tileEntity/SmartTileEntity.java | 2 +- 9 files changed, 211 insertions(+), 2515 deletions(-) delete mode 100644 src/generated/resources/assets/create/lang/unfinished/es_mx.json rename src/main/java/com/simibubi/create/{content/contraptions/fluids/actors => api/behaviour}/BlockSpoutingBehaviour.java (94%) rename src/main/java/com/simibubi/create/{compat => api}/event/TileEntityBehaviourEvent.java (97%) diff --git a/src/generated/resources/.cache/cache b/src/generated/resources/.cache/cache index 5a1b5d0de..f6fd50974 100644 --- a/src/generated/resources/.cache/cache +++ b/src/generated/resources/.cache/cache @@ -428,8 +428,7 @@ b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json fb760b12b4bc8114744d3acc6a597b2fad88d988 assets/create/lang/en_ud.json 66e8ae18a98d86c66393c908ab51eae5060b8e04 assets/create/lang/en_us.json 9e94c2420840c516e24dfd7968aaad61da24b5a2 assets/create/lang/unfinished/de_de.json -f5c05d84c11e6db204c42169228329c8d361ca51 assets/create/lang/unfinished/es_es.json -edf3dab78e95aa442c3c667d8d1d574bfc69d5d7 assets/create/lang/unfinished/es_mx.json +f1a6ed9a5812c89e7c7152c9abf2b64c133fd27d assets/create/lang/unfinished/es_es.json 23a46ae0bc7b2181f26eeed70801714a254d2587 assets/create/lang/unfinished/fr_fr.json 5e95153e640edc367b963489df8c92c459badcd3 assets/create/lang/unfinished/it_it.json a951315b2591051dad6c53739fe554fe78595250 assets/create/lang/unfinished/ja_jp.json @@ -3754,6 +3753,7 @@ eac71740fb12bdb38b5dfaa2268613d7ba82b809 data/create/tags/blocks/windmill_sails. 893a01e6004d6d8272bd1658e98da88bb572ee57 data/create/tags/blocks/wrench_pickup.json 081f5aa35602fc27af2ca01ea9f2fd5e7eb284dc data/create/tags/items/create_ingots.json 94c62bf22678ef55b2b8a5398a7960e5b00682dc data/create/tags/items/crushed_ores.json +bce28787b0271382842823d04a977912a88b01c2 data/create/tags/items/sandpaper.json 6cdeeac1689f7b5bfd9bc40b462143d8eaf3ad0b data/create/tags/items/seats.json f1092005b5d01e1f29457e90f75e5750f7f0226b data/create/tags/items/upright_on_belt.json 50936b211d94167a35ec78c89954082a336b6269 data/create/tags/items/valve_handles.json diff --git a/src/generated/resources/assets/create/lang/unfinished/es_es.json b/src/generated/resources/assets/create/lang/unfinished/es_es.json index 146880bfd..79a683627 100644 --- a/src/generated/resources/assets/create/lang/unfinished/es_es.json +++ b/src/generated/resources/assets/create/lang/unfinished/es_es.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 57", + "_": "Missing Localizations: 0", "_": "->------------------------] Game Elements [------------------------<-", @@ -28,12 +28,12 @@ "block.create.belt": "Cinta", "block.create.birch_window": "Ventana de abedul", "block.create.birch_window_pane": "Panel de ventana de abedul", - "block.create.black_nixie_tube": "UNLOCALIZED: Black Nixie Tube", + "block.create.black_nixie_tube": "Tubo Nixie negro", "block.create.black_sail": "Vela negra", "block.create.black_seat": "Asiento negro", "block.create.black_valve_handle": "Asa de válvula negra", "block.create.blaze_burner": "Quemador de Blaze", - "block.create.blue_nixie_tube": "UNLOCALIZED: Blue Nixie Tube", + "block.create.blue_nixie_tube": "Tubo Nixie azul", "block.create.blue_sail": "Vela azul", "block.create.blue_seat": "Asiento azul", "block.create.blue_valve_handle": "Asa de válvula azul", @@ -43,7 +43,7 @@ "block.create.brass_encased_shaft": "Eje revestido de latón", "block.create.brass_funnel": "Embudo de latón", "block.create.brass_tunnel": "Túnel de latón", - "block.create.brown_nixie_tube": "UNLOCALIZED: Brown Nixie Tube", + "block.create.brown_nixie_tube": "Tubo Nixie marrón", "block.create.brown_sail": "Vela marrón", "block.create.brown_seat": "Asiento marrón", "block.create.brown_valve_handle": "Asa de válvula marrón", @@ -76,7 +76,7 @@ "block.create.crushing_wheel": "Rueda trituradora", "block.create.crushing_wheel_controller": "Controlador de Rueda trituradora", "block.create.cuckoo_clock": "Reloj de cuco", - "block.create.cyan_nixie_tube": "UNLOCALIZED: Cyan Nixie Tube", + "block.create.cyan_nixie_tube": "Tubo Nixie cian", "block.create.cyan_sail": "Vela cian", "block.create.cyan_seat": "Asiento cian", "block.create.cyan_valve_handle": "Asa de válvula cian", @@ -183,16 +183,16 @@ "block.create.granite_cobblestone_stairs": "Escaleras de adoquínes de granito", "block.create.granite_cobblestone_wall": "Muro de adoquínes de granito", "block.create.granite_pillar": "Pilar de granito", - "block.create.gray_nixie_tube": "UNLOCALIZED: Gray Nixie Tube", + "block.create.gray_nixie_tube": "Tubo Nixie gris", "block.create.gray_sail": "Vela gris", "block.create.gray_seat": "Asiento gris", "block.create.gray_valve_handle": "Asa de válvula gris", - "block.create.green_nixie_tube": "UNLOCALIZED: Green Nixie Tube", + "block.create.green_nixie_tube": "Tubo Nixie verde", "block.create.green_sail": "Vela verde", "block.create.green_seat": "Asiento verde", "block.create.green_valve_handle": "Asa de válvula verde", "block.create.hand_crank": "Manivela", - "block.create.haunted_bell": "UNLOCALIZED: Haunted Bell", + "block.create.haunted_bell": "Campana encantada", "block.create.honey": "Miel", "block.create.horizontal_framed_glass": "Cristal con marco horizontal", "block.create.horizontal_framed_glass_pane": "Panel de cristal con marco horizontal", @@ -210,16 +210,16 @@ "block.create.layered_limestone": "Piedra caliza estratificada", "block.create.layered_scoria": "Escoria estratificada", "block.create.layered_weathered_limestone": "Caliza erosionada estratificada", - "block.create.lectern_controller": "Lectern Controller", - "block.create.light_blue_nixie_tube": "UNLOCALIZED: Light Blue Nixie Tube", + "block.create.lectern_controller": "Controlador de atril", + "block.create.light_blue_nixie_tube": "Tubo Nixie azul claro", "block.create.light_blue_sail": "Vela azul claro", "block.create.light_blue_seat": "Asiento azul claro", "block.create.light_blue_valve_handle": "Asa de válvula azul claro", - "block.create.light_gray_nixie_tube": "UNLOCALIZED: Light Gray Nixie Tube", + "block.create.light_gray_nixie_tube": "Tubo Nixie gris claro", "block.create.light_gray_sail": "Vela gris claro", "block.create.light_gray_seat": "Asiento gris claro", "block.create.light_gray_valve_handle": "Asa de válvula gris claro", - "block.create.lime_nixie_tube": "UNLOCALIZED: Lime Nixie Tube", + "block.create.lime_nixie_tube": "Tubo Nixie lima", "block.create.lime_sail": "Vela lima", "block.create.lime_seat": "Asiento lima", "block.create.lime_valve_handle": "Asa de válvula lima", @@ -236,7 +236,7 @@ "block.create.limestone_pillar": "Pilar de piedra caliza", "block.create.linear_chassis": "Chasis lineal", "block.create.lit_blaze_burner": "Quemador de Blaze encendido", - "block.create.magenta_nixie_tube": "UNLOCALIZED: Magenta Nixie Tube", + "block.create.magenta_nixie_tube": "Tubo Nixie magenta", "block.create.magenta_sail": "Vela magenta", "block.create.magenta_seat": "Asiento magenta", "block.create.magenta_valve_handle": "Asa de válvula magenta", @@ -320,8 +320,8 @@ "block.create.paved_weathered_limestone_slab": "Losa de piedra caliza erosionada pavimentada", "block.create.paved_weathered_limestone_stairs": "Escaleras de piedra caliza erosionada pavimentada", "block.create.paved_weathered_limestone_wall": "Muro de piedra caliza erosionada pavimentada", - "block.create.peculiar_bell": "Peculiar Bell", - "block.create.pink_nixie_tube": "UNLOCALIZED: Pink Nixie Tube", + "block.create.peculiar_bell": "Campana peculiar", + "block.create.pink_nixie_tube": "Tubo Nixie rosa", "block.create.pink_sail": "Vela rosa", "block.create.pink_seat": "Asiento rosa", "block.create.pink_valve_handle": "Asa de válvula rosa", @@ -356,12 +356,12 @@ "block.create.powered_toggle_latch": "Palanca de cierre motorizada", "block.create.pulley_magnet": "Imán de la polea", "block.create.pulse_repeater": "Repetidor de pulsos de redstone", - "block.create.purple_nixie_tube": "UNLOCALIZED: Purple Nixie Tube", + "block.create.purple_nixie_tube": "Tubo Nixie morado", "block.create.purple_sail": "Vela morada", "block.create.purple_seat": "Asiento morado", "block.create.purple_valve_handle": "Asa de válvula morada", "block.create.radial_chassis": "Chasis radial", - "block.create.red_nixie_tube": "UNLOCALIZED: Red Nixie Tube", + "block.create.red_nixie_tube": "Tubo Nixie rojo", "block.create.red_sail": "Vela roja", "block.create.red_seat": "Asiento rojo", "block.create.red_valve_handle": "Asa de válvula roja", @@ -418,26 +418,26 @@ "block.create.weathered_limestone_cobblestone_wall": "Muro de adoquínes de piedra caliza erosionada", "block.create.weathered_limestone_pillar": "Pilar de piedra caliza erosionada", "block.create.weighted_ejector": "Eyector de peso", - "block.create.white_nixie_tube": "UNLOCALIZED: White Nixie Tube", + "block.create.white_nixie_tube": "Tubo Nixie blanco", "block.create.white_sail": "Vela blanca", "block.create.white_seat": "Asiento blanco", "block.create.white_valve_handle": "Asa de válvula blanco", "block.create.windmill_bearing": "Rodamiento del molino de viento", "block.create.wooden_bracket": "Soporte de madera para ejes", - "block.create.yellow_nixie_tube": "UNLOCALIZED: Yellow Nixie Tube", + "block.create.yellow_nixie_tube": "Tubo Nixie amarillo", "block.create.yellow_sail": "Vela amarilla", "block.create.yellow_seat": "Asiento amarillo", "block.create.yellow_valve_handle": "Asa de válvula amarillo", "block.create.zinc_block": "Bloque de zinc", "block.create.zinc_ore": "Mena de zinc", - "enchantment.create.capacity": "UNLOCALIZED: Capacity", - "enchantment.create.potato_recovery": "UNLOCALIZED: Potato Recovery", + "enchantment.create.capacity": "Capacidad", + "enchantment.create.potato_recovery": "Recuperación de patatas", "entity.create.contraption": "Artilugio", "entity.create.crafting_blueprint": "Plano de elaboración", "entity.create.gantry_contraption": "Artilugio de grúa", - "entity.create.potato_projectile": "Potato Projectile", + "entity.create.potato_projectile": "Proyectil de patata", "entity.create.seat": "Asiento", "entity.create.stationary_contraption": "Artilugio estacionario", "entity.create.super_glue": "Pegamento", @@ -467,7 +467,7 @@ "item.create.copper_sheet": "Lámina de cobre", "item.create.crafter_slot_cover": "Tapa de ranura del ensamblador mecánico", "item.create.crafting_blueprint": "Plano de elaboración", - "item.create.creative_blaze_cake": "UNLOCALIZED: Creative Blaze Cake", + "item.create.creative_blaze_cake": "´Pastel de blaze creativo", "item.create.crushed_aluminum_ore": "Mineral de aluminio molido", "item.create.crushed_brass": "Latón molido", "item.create.crushed_copper_ore": "Mineral de cobre molido", @@ -496,17 +496,17 @@ "item.create.handheld_worldshaper": "Worldshaper Creativo", "item.create.honey_bucket": "Cubo con miel", "item.create.honeyed_apple": "Manzana con miel", - "item.create.incomplete_cogwheel": "UNLOCALIZED: Incomplete Cogwheel", - "item.create.incomplete_large_cogwheel": "UNLOCALIZED: Incomplete Large Cogwheel", - "item.create.incomplete_precision_mechanism": "UNLOCALIZED: Incomplete Precision Mechanism", + "item.create.incomplete_cogwheel": "Engranaje pequeño incompleto", + "item.create.incomplete_large_cogwheel": "Engranaje grande incompleto", + "item.create.incomplete_precision_mechanism": "Mecanismo de precisión incompleto", "item.create.iron_sheet": "Lámina de hierro", "item.create.linked_controller": "Controlador enlazado", "item.create.minecart_contraption": "Artilugio de vagoneta", "item.create.minecart_coupling": "Acoplamiento de vagoneta", "item.create.polished_rose_quartz": "Cuarzo rosado pulido", - "item.create.potato_cannon": "Potato Cannon", + "item.create.potato_cannon": "Cañón de patatas", "item.create.powdered_obsidian": "Polvo de obsidiana", - "item.create.precision_mechanism": "UNLOCALIZED: Precision Mechanism", + "item.create.precision_mechanism": "Mecanismo de precisión", "item.create.propeller": "Hélice", "item.create.red_sand_paper": "Papel de lija rojo", "item.create.refined_radiance": "Resplandor refinado", @@ -651,12 +651,12 @@ "advancement.create.flywheel.desc": "Conecta con éxito un motor a la rueda de inercia.", "advancement.create.overstress_flywheel": "Altos niveles de estrés", "advancement.create.overstress_flywheel.desc": "Sobrecarga un motor de horno.", - "advancement.create.precision_mechanism": "UNLOCALIZED: Complex Curiosities", - "advancement.create.precision_mechanism.desc": "UNLOCALIZED: Assemble a Precision Mechanism.", + "advancement.create.precision_mechanism": "Curiosidades complejas", + "advancement.create.precision_mechanism.desc": "Monta un mecanismo de precisión.", "advancement.create.mechanical_arm": "¡Manos ocupadas!", "advancement.create.mechanical_arm.desc": "Crea un brazo mecánico, selecciona las entradas y salidas, colócalo en el suelo y dale energía; luego observa cómo hace todo el trabajo por ti.", "advancement.create.musical_arm": "¡Tócame la melodía!", - "advancement.create.musical_arm.desc": "Vea cómo un brazo mecánico maneja su Jukebox.", + "advancement.create.musical_arm.desc": "Vea cómo un brazo mecánico maneja su tocadiscos.", "advancement.create.arm_many_targets": "Organize-o-Tron", "advancement.create.arm_many_targets.desc": "Programa un brazo mecánico con diez o más posiciones de salida.", "advancement.create.arm_blaze_burner": "Combust-o-Tron", @@ -667,7 +667,7 @@ "advancement.create.crushing_wheel.desc": "Crea algunas ruedas de trituración para descomponer más materiales de forma más eficaz.", "advancement.create.blaze_cake": "Fiebre del azúcar", "advancement.create.blaze_cake.desc": "Hornea en tu quemador de blaze un pastel especial.", - "advancement.create.chromatic_compound": "Mysterious Minerals", + "advancement.create.chromatic_compound": "Minerales misteriosos", "advancement.create.chromatic_compound.desc": "Crea una barra de compuesto cromático.", "advancement.create.shadow_steel": "Retorno del vacío", "advancement.create.shadow_steel.desc": "Crea acero sombrío, una barra de metal de la nada.", @@ -680,7 +680,7 @@ "advancement.create.extendo_grip": "¡Boioioing!", "advancement.create.extendo_grip.desc": "Hazte con un agarre extentido.", "advancement.create.potato_cannon": "Fwoomp!", - "advancement.create.potato_cannon.desc": "Defeat an enemy with your Potato Cannon.", + "advancement.create.potato_cannon.desc": "Derrota a un enemigo con tu cañón de patatas.", "advancement.create.dual_extendo_grip": "La última edad del boing", "advancement.create.dual_extendo_grip.desc": "Doble empuñadura extendida para un alcance sobrehumano.", "advancement.create.eob": "Fin de la beta", @@ -693,29 +693,29 @@ "itemGroup.create.palettes": "Paletas", "death.attack.create.crush": "%1$s se procesó en las ruedas de trituración", - "death.attack.create.crush.player": "UNLOCALIZED: %1$s was thrown into Crushing Wheels by %2$s", + "death.attack.create.crush.player": "%1$s fue arrojado a las ruedas de trituración por %2$s", "death.attack.create.fan_fire": "%1$s murió quemado por el aire caliente", - "death.attack.create.fan_fire.player": "UNLOCALIZED: %1$s was thrown into a smoker by %2$s", + "death.attack.create.fan_fire.player": "%1$s fue arrojado a un ahumador por %2$s", "death.attack.create.fan_lava": "%1$s murió quemado por un abanico de lava", - "death.attack.create.fan_lava.player": "UNLOCALIZED: %1$s was thrown into a smelter by %2$s", + "death.attack.create.fan_lava.player": "%1$s fue arrojado a una fundición por %2$s", "death.attack.create.mechanical_drill": "%1$s fue empalado por un taladro mecánico", - "death.attack.create.mechanical_drill.player": "UNLOCALIZED: %1$s was thrown in front of a Drill by %2$s", + "death.attack.create.mechanical_drill.player": "%1$s fue lanzado frente a un taladro por %2$s", "death.attack.create.mechanical_saw": "%1$s fue cortado por la mitad por una sierra mecánica", - "death.attack.create.mechanical_saw.player": "UNLOCALIZED: %1$s was thrown into a Saw by %2$s", - "death.attack.create.potato_cannon": "%1$s was shot by %2$s's Potato Cannon", - "death.attack.create.potato_cannon.item": "%1$s was shot by %2$s using %3$s", + "death.attack.create.mechanical_saw.player": "%1$s fue arrojado a una sierra por %2$s", + "death.attack.create.potato_cannon": "%1$s fue disparado por el cañón de patatas de %2$s's", + "death.attack.create.potato_cannon.item": "%1$s fue disparado por %2$s utilizando %3$s", "death.attack.create.cuckoo_clock_explosion": "%1$s fue volado por los aires por un reloj de cuco manipulado", - "death.attack.create.cuckoo_clock_explosion.player": "UNLOCALIZED: %1$s was blown up by tampered cuckoo clock", + "death.attack.create.cuckoo_clock_explosion.player": "%1$s fue volado por un reloj de cuco manipulado", - "create.block.deployer.damage_source_name": "un Desplegador rebelde", + "create.block.deployer.damage_source_name": "Un desplegador rebelde", "create.block.cart_assembler.invalid": "Coloque su Ensamblador de vagonetas en un bloque de Raíles", "create.menu.return": "Regresar al menú", "create.menu.configure": "Configurar...", - "create.menu.ponder_index": "Ponder Index", - "create.menu.only_ingame": "Available in the Pause Menu", + "create.menu.ponder_index": "Índice", + "create.menu.only_ingame": "Disponible en el menú de pausa", "create.menu.project_page": "Página del proyecto", - "create.menu.report_bugs": "Informar de problemas", + "create.menu.report_bugs": "Reportar problemas", "create.menu.support": "Apóyenos", "create.recipe.crushing": "Trituración", @@ -742,16 +742,16 @@ "create.recipe.mystery_conversion": "Conversión misteriosa", "create.recipe.spout_filling": "Llenar por el pico", "create.recipe.draining": "Drenador de objetos", - "create.recipe.sequenced_assembly": "Sequenced Assembly", - "create.recipe.assembly.next": "Next: %1$s", - "create.recipe.assembly.step": "Step %1$s:", - "create.recipe.assembly.progress": "Progress: %1$s/%2$s", - "create.recipe.assembly.pressing": "Process in Press", - "create.recipe.assembly.spout_filling_fluid": "Spout %1$s", - "create.recipe.assembly.deploying_item": "Deploy %1$s", - "create.recipe.assembly.cutting": "Cut with Saw", - "create.recipe.assembly.repeat": "Repeat Sequence %1$s Times", - "create.recipe.assembly.junk": "Random junk", + "create.recipe.sequenced_assembly": "Montaje secuenciado", + "create.recipe.assembly.next": "Siguiente: %1$s", + "create.recipe.assembly.step": "Fase %1$s:", + "create.recipe.assembly.progress": "Progreso: %1$s/%2$s", + "create.recipe.assembly.pressing": "Proceso en prensa", + "create.recipe.assembly.spout_filling_fluid": "Pico %1$s", + "create.recipe.assembly.deploying_item": "Despliegue %1$s", + "create.recipe.assembly.cutting": "Corte con sierra", + "create.recipe.assembly.repeat": "Repetir la secuencia %1$s veces", + "create.recipe.assembly.junk": "Basura aleatoria", "create.recipe.processing.chance": "%1$s%% Chance", "create.recipe.heat_requirement.none": "No es necesario calentar", "create.recipe.heat_requirement.heated": "Calentado", @@ -788,7 +788,7 @@ "create.gui.scrollInput.scrollToModify": "Usa la rueda del ratón para modificar", "create.gui.scrollInput.scrollToAdjustAmount": "Usa la rueda del ratón para ajustar la cantidad", "create.gui.scrollInput.scrollToSelect": "Usa la rueda del ratón para seleccionar", - "create.gui.scrollInput.shiftScrollsFaster": "[Mayús izdo.] para usar la rueda del ratón más rápido", + "create.gui.scrollInput.shiftScrollsFaster": "Mayús izdo para usar la rueda del ratón más rápido", "create.gui.toolmenu.focusKey": "Mantén [%1$s] para enfocar", "create.gui.toolmenu.cycle": "[RUEDA DEL RATÓN] para el ciclo", "create.gui.symmetryWand.mirrorType": "Espejado", @@ -832,7 +832,7 @@ "create.gui.terrainzapper.tool.overlay": "Superponer", "create.gui.terrainzapper.tool.flatten": "Aplanar", - "create.terrainzapper.shiftRightClickToSet": "[Mayús izdo.] + clic derecho para seleccionar una forma", + "create.terrainzapper.shiftRightClickToSet": "Mayús izdo + clic derecho para seleccionar una forma", "create.terrainzapper.usingBlock": "Usando: %1$s", "create.terrainzapper.leftClickToSet": "Clic izquierdo a un bloque para establecer el material", @@ -1065,11 +1065,11 @@ "create.item_attributes.in_item_group.inverted": "no está en el grupo '%1$s'", "create.item_attributes.added_by": "fue añadido por %1$s", "create.item_attributes.added_by.inverted": "no fue añadida por %1$s", - "create.item_attributes.shulker_level": "UNLOCALIZED: is shulker %1$s", - "create.item_attributes.shulker_level.inverted": "UNLOCALIZED: is shulker not %1$s", - "create.item_attributes.shulker_level.full": "UNLOCALIZED: full", - "create.item_attributes.shulker_level.empty": "UNLOCALIZED: empty", - "create.item_attributes.shulker_level.partial": "UNLOCALIZED: partially filled", + "create.item_attributes.shulker_level": "es shulker %1$s", + "create.item_attributes.shulker_level.inverted": "no es shulker %1$s", + "create.item_attributes.shulker_level.full": "lleno", + "create.item_attributes.shulker_level.empty": "vacío", + "create.item_attributes.shulker_level.partial": "parcialmente lleno", "create.item_attributes.has_enchant": "está encantado con %1$s", "create.item_attributes.has_enchant.inverted": "no está encantado con %1$s", "create.item_attributes.color": "Está teñido %1$s", @@ -1165,9 +1165,9 @@ "create.tooltip.chute.fans_pull_up": "Los ventiladores tiran desde arriba", "create.tooltip.chute.fans_pull_down": "Los ventiladores tiran desde abajo", "create.tooltip.chute.contains": "Contiene: %1$s x%2$s", - "create.tooltip.brass_tunnel.contains": "UNLOCALIZED: Currently distributing:", - "create.tooltip.brass_tunnel.contains_entry": "UNLOCALIZED: > %1$s x%2$s", - "create.tooltip.brass_tunnel.retrieve": "UNLOCALIZED: Right-Click to retrieve", + "create.tooltip.brass_tunnel.contains": "Actualmente distribuye:", + "create.tooltip.brass_tunnel.contains_entry": "> %1$s x%2$s", + "create.tooltip.brass_tunnel.retrieve": "Haga clic derecho para recuperar", "create.linked_controller.bind_mode": "Modo de enlace activo", "create.linked_controller.press_keybind": "Presiona %1$s, %2$s, %3$s, %4$s, %5$s o %6$s, para vincular esta frecuencia a la tecla correspondiente", @@ -1183,9 +1183,9 @@ "create.crafting_blueprint.secondary_display_slot": "Ranura de pantalla secundaria", "create.crafting_blueprint.optional": "Opcional", - "create.potato_cannon.ammo.attack_damage": "UNLOCALIZED: %1$s Attack Damage", - "create.potato_cannon.ammo.reload_ticks": "UNLOCALIZED: %1$s Reload Ticks", - "create.potato_cannon.ammo.knockback": "UNLOCALIZED: %1$s Knockback", + "create.potato_cannon.ammo.attack_damage": "%1$s Daño de ataque", + "create.potato_cannon.ammo.reload_ticks": "%1$s Recarga por Ticks", + "create.potato_cannon.ammo.knockback": "%1$s Golpe de efecto", "create.hint.hose_pulley.title": "Suministro ilimitado", "create.hint.hose_pulley": "La masa de fluido objetivo se considera infinita.", @@ -1225,13 +1225,13 @@ "create.subtitle.mechanical_press_activation_belt": "", "create.subtitle.fwoomp": "", "create.subtitle.worldshaper_place": "", - "create.subtitle.crushing_1": "UNLOCALIZED: Crushing noises", + "create.subtitle.crushing_1": "", "create.subtitle.depot_slide": "", "create.subtitle.saw_activate_stone": "", "create.subtitle.blaze_munch": "", "create.subtitle.funnel_flap": "", "create.subtitle.schematicannon_finish": "", - "create.subtitle.haunted_bell_use": "UNLOCALIZED: Haunted Bell tolls", + "create.subtitle.haunted_bell_use": "", "create.subtitle.scroll_value": "", "create.subtitle.crafter_craft": "", "create.subtitle.controller_put": "", @@ -1242,7 +1242,7 @@ "create.subtitle.wrench_rotate": "", "create.subtitle.potato_hit": "", "create.subtitle.saw_activate_wood": "", - "create.subtitle.haunted_bell_convert": "UNLOCALIZED: Haunted Bell awakens", + "create.subtitle.haunted_bell_convert": "", "create.subtitle.deployer_polish": "", "create.subtitle.deny": "", "create.subtitle.controller_click": "", @@ -1271,12 +1271,12 @@ "block.create.wooden_bracket.tooltip.summary": "Decora tus _ejes_, _engranajes_ y _ductos_ con un acogedor refuerzo de madera.", "block.create.metal_bracket.tooltip": "SOPORTE DE METAL PARA EJES", - "block.create.metal_bracket.tooltip.summary": "Decora tus _ejes_, _engranajes_ y _ductos_ con un poco de refuerzo industrial robusto.", + "block.create.metal_bracket.tooltip.summary": "Decora tus _ejes_, _engranajes_ y _ductos_ con un poco de robusto refuerzo industrial.", "block.create.seat.tooltip": "ASIENTO", "block.create.seat.tooltip.summary": "¡Siéntate y disfruta del viaje! Anclará a un jugador en un artilugio en movimiento. También es ideal para muebles estáticos. Viene en una variedad de colores.", "block.create.seat.tooltip.condition1": "Cuando se hace clic derecho en el asiento", - "block.create.seat.tooltip.behaviour1": "Sienta al jugador en el _asiento_. Pulsa [Mayús izdo.] para dejar el asiento.", + "block.create.seat.tooltip.behaviour1": "Sienta al jugador en el _asiento_. Pulsa Mayús izdo para dejar el asiento.", "item.create.blaze_cake.tooltip": "PASTEL DE BLAZE", "item.create.blaze_cake.tooltip.summary": "Un delicioso regalo para sus esforzados _quemadores de blaze_. ¡Los pone en marcha!.", @@ -1289,7 +1289,7 @@ "item.create.wand_of_symmetry.tooltip.action1": "_Crea_ o _mueve_ el espejo.", "item.create.wand_of_symmetry.tooltip.control2": "Cuando se hace clic derecho en el aire", "item.create.wand_of_symmetry.tooltip.action2": "_Quita_ el espejo activo.", - "item.create.wand_of_symmetry.tooltip.control3": "[Mayús izdo.] + clic derecho", + "item.create.wand_of_symmetry.tooltip.control3": "Mayús izdo + clic derecho", "item.create.wand_of_symmetry.tooltip.action3": "Abre la interfaz de configuración.", "item.create.handheld_worldshaper.tooltip": "WORLDSHAPER", @@ -1298,7 +1298,7 @@ "item.create.handheld_worldshaper.tooltip.action1": "Establece los bloques colocados por la herramienta en el bloque objetivo.", "item.create.handheld_worldshaper.tooltip.control2": "Cuando se hace clic derecho en un bloque", "item.create.handheld_worldshaper.tooltip.action2": "Aplica el _pincel_ y la _herramienta_ actualmente seleccionadas en el lugar deseado.", - "item.create.handheld_worldshaper.tooltip.control3": "[Mayús izdo.] + clic derecho", + "item.create.handheld_worldshaper.tooltip.control3": "Mayús izdo + clic derecho", "item.create.handheld_worldshaper.tooltip.action3": "Abre la interfaz de configuración.", "item.create.tree_fertilizer.tooltip": "FERTILIZANTE PARA ÁRBOLES", @@ -1307,18 +1307,18 @@ "item.create.tree_fertilizer.tooltip.behaviour1": "Hace crecer los árboles _independientemente_ de sus condiciones de _espacio_.", "item.create.extendo_grip.tooltip": "AGARRE EXTENDIDO", - "item.create.extendo_grip.tooltip.summary": "¡Boioioing! Aumenta enormemente la _distancia de alcance_ del portador. Can be powered with Air Pressure from a _Copper_ _Backtank_", + "item.create.extendo_grip.tooltip.summary": "¡Boioioing! Aumenta enormemente la _distancia de alcance_ del portador. Se puede alimentar con la presión de aire de un _depósito trasero de cobre_", "item.create.extendo_grip.tooltip.condition1": "Cuando está fuera de la mano", "item.create.extendo_grip.tooltip.behaviour1": "Aumenta la _distancia de alcance_ de los objetos usados en la _mano principal_.", - "item.create.extendo_grip.tooltip.condition2": "While wearing Copper Backtank", - "item.create.extendo_grip.tooltip.behaviour2": "_No_ _Durability_ will be used. Instead, _Air_ _pressure_ is drained from the Tank", + "item.create.extendo_grip.tooltip.condition2": "Mientras se usa un depósito trasero de cobre", + "item.create.extendo_grip.tooltip.behaviour2": "No se utilizará _durabilidad_. En su lugar, la _presión del aire_ se drena desde el tanque", - "item.create.potato_cannon.tooltip": "POTATO CANNON", - "item.create.potato_cannon.tooltip.summary": "Fwoomp! Launch your home-grown vegetables at your Enemies. Can be powered with Air Pressure from a _Copper_ _Backtank_", - "item.create.potato_cannon.tooltip.condition1": "When R-Clicked", - "item.create.potato_cannon.tooltip.behaviour1": "_Shoots_ a suitable item from your _Inventory_.", - "item.create.potato_cannon.tooltip.condition2": "While wearing Copper Backtank", - "item.create.potato_cannon.tooltip.behaviour2": "_No_ _Durability_ will be used. Instead, _Air_ _pressure_ is drained from the Tank", + "item.create.potato_cannon.tooltip": "CANÓN DE PATATAS", + "item.create.potato_cannon.tooltip.summary": "Fwoomp! Lanza tus verduras caseras a tus enemigos. Se puede alimentar con la presión de aire de un _depósito trasero de cobre_", + "item.create.potato_cannon.tooltip.condition1": "Cuando se usa clic derecho", + "item.create.potato_cannon.tooltip.behaviour1": "_Dispara_ un objeto adecuado desde tu inventario_.", + "item.create.potato_cannon.tooltip.condition2": "Mientras se usa un depósito trasero de cobre", + "item.create.potato_cannon.tooltip.behaviour2": "No se utilizará _durabilidad_. En su lugar, la _presión del aire_ se drena desde el tanque", "item.create.filter.tooltip": "FILTRO", "item.create.filter.tooltip.summary": "Controla las _salidas_ y _entradas_ de los _dispositivos logísticos_ con más precisión, comparándolas con un _conjunto de objetos_ o varios _filtros anidados_.", @@ -1341,7 +1341,7 @@ "item.create.schematic.tooltip.summary": "Contiene una estructura para ser posicionada y colocada en el mundo. Posiciona el holograma como desees y utiliza un _cañón de esquemas_ para construirla.", "item.create.schematic.tooltip.condition1": "Cuando se sostiene en la mano", "item.create.schematic.tooltip.behaviour1": "Se puede posicionar utilizando las herramientas en pantalla.", - "item.create.schematic.tooltip.control1": "[Mayús izdo.] + clic derecho", + "item.create.schematic.tooltip.control1": "Mayús izdo + clic derecho", "item.create.schematic.tooltip.action1": "Abre una _interfaz_ para introducir las _coordenadas_ exactas.", "item.create.schematic_and_quill.tooltip": "ESQUEMA Y PLUMA", @@ -1354,7 +1354,7 @@ "item.create.schematic_and_quill.tooltip.action1": "Selecciona un punto de esquina / confirmar guardar.", "item.create.schematic_and_quill.tooltip.control2": "Cuando mantiene [Ctrl]", "item.create.schematic_and_quill.tooltip.action2": "Selecciona puntos en _medio del aire_. Rueda del ratón para ajustar la distancia.", - "item.create.schematic_and_quill.tooltip.control3": "[Mayús izdo.] + clic derecho", + "item.create.schematic_and_quill.tooltip.control3": "Mayús izdo + clic derecho", "item.create.schematic_and_quill.tooltip.action3": "_Reinicia_ y elimina la selección.", "block.create.schematicannon.tooltip": "CAÑÓN DE ESQUEMAS", @@ -1380,7 +1380,7 @@ "item.create.wrench.tooltip.summary": "Una herramienta útil para trabajar en artilugios cinéticos. Se puede utilizar para _rotar_, _desmantelar_ y para _configurar_ componentes.", "item.create.wrench.tooltip.control1": "Cuando se hace clic derecho en un bloque cinético", "item.create.wrench.tooltip.action1": "Rota los componentes hacia o desde la cara con la que ha interactuado.", - "item.create.wrench.tooltip.control2": "[Mayús izdo.] + clic derecho", + "item.create.wrench.tooltip.control2": "Mayús izdo + clic derecho", "item.create.wrench.tooltip.action2": "Desmonta los _componentes cinéticos_ y los devuelve a tu inventario_.", "block.create.nozzle.tooltip": "BOQUILLA", @@ -1412,10 +1412,10 @@ "block.create.creative_crate.tooltip.condition1": "Cuando el elemento está en la ranura para filtros", "block.create.creative_crate.tooltip.behaviour1": "Todo lo que se _extraiga_ de este contenedor proporcionará un suministro _ilimitado_ del elemento especificado. Los objetos _insertados_ en esta caja serán _evitados_.", - "item.create.creative_blaze_cake.tooltip": "UNLOCALIZED: CREATIVE CAKE", - "item.create.creative_blaze_cake.tooltip.summary": "UNLOCALIZED: A very special treat for _Blaze Burners_ that allows _controlling their heat level_. After eating this cake, Blaze Burners will _never run out of fuel_.", - "item.create.creative_blaze_cake.tooltip.condition1": "UNLOCALIZED: R-Click on Blaze Burner", - "item.create.creative_blaze_cake.tooltip.behaviour1": "UNLOCALIZED: _Locks_ the Blaze Burner's heat level. If used again, _cycles_ the Blaze Burner's heat level.", + "item.create.creative_blaze_cake.tooltip": "PASTEL CREATIVO", + "item.create.creative_blaze_cake.tooltip.summary": "Un regalo muy especial para los _Quemadores de Blaze_ que permite _controlar su nivel de calor_. Después de comer este pastel, los Quemadores de blaze _nunca se quedarán sin combustible_.", + "item.create.creative_blaze_cake.tooltip.condition1": "Click derecho en un Quemador de blaze", + "item.create.creative_blaze_cake.tooltip.behaviour1": "Bloquea el nivel de calor del Quemador de blaze. Si se utiliza de nuevo, _cicla_ el nivel de calor del Quemador de blaze.", "block.create.controller_rail.tooltip": "RAÍL DE CONTROL", "block.create.controller_rail.tooltip.summary": "Un raíl energizado _unidireccional_ capaz de _controlar con precisión_ la _velocidad de movimiento_ de una vagoneta.", @@ -1437,19 +1437,19 @@ "item.create.shadow_steel.tooltip": "ACERO SOMBRÍO", "item.create.shadow_steel.tooltip.summary": "Un material cromático forjado en el _vacío_.", - "item.create.shadow_steel.tooltip.condition1": "Work In Progress", - "item.create.shadow_steel.tooltip.behaviour1": "Usages for this material will be available in a future release.", + "item.create.shadow_steel.tooltip.condition1": "Trabajo en curso", + "item.create.shadow_steel.tooltip.behaviour1": "Los usos de este material estarán disponibles en una futura versión.", "item.create.linked_controller.tooltip": "CONTROLADOR ENLAZADO", - "item.create.linked_controller.tooltip.summary": "Permite el control manual de las frecuencias de _enlaces de redstone_ asignadas a sus seis botones..", + "item.create.linked_controller.tooltip.summary": "Permite el control manual de las frecuencias de _enlaces de redstone_ asignadas a sus seis botones.", "item.create.linked_controller.tooltip.condition1": "Al hacer clic derecho", "item.create.linked_controller.tooltip.behaviour1": "Activa el _controlador_. Los _controles de movimiento_ se adquieren mientras está activo.", - "item.create.linked_controller.tooltip.condition2": "Al usar [Mayús izdo.] + clic derecho", + "item.create.linked_controller.tooltip.condition2": "Al usar Mayús izdo + clic derecho", "item.create.linked_controller.tooltip.behaviour2": "Abre la interfaz de configuración manual.", "item.create.linked_controller.tooltip.condition3": "Al usar clic derecho en un receptor de enlaces de redstone", "item.create.linked_controller.tooltip.behaviour3": "Activa el _modo de vinculación_, pulsa uno de los _seis controles_ para vincularlo a la _frecuencia de los enlaces_.", - "item.create.linked_controller.tooltip.condition4": "UNLOCALIZED: R-Click on Lectern", - "item.create.linked_controller.tooltip.behaviour4": "UNLOCALIZED: Places the Controller into the Lectern for easy activation. (R-Click while Sneaking to retrieve it)", + "item.create.linked_controller.tooltip.condition4": "Clic derecho en un atril", + "item.create.linked_controller.tooltip.behaviour4": "Coloca el controlador en el atril para facilitar su activación. (Clic derecho + mayús izq. para recuperarlo)", "item.create.diving_helmet.tooltip": "CASCO DE BUCEO", "item.create.diving_helmet.tooltip.summary": "Junto con un _depósito trasero de cobre_, permite que el usuario pueda respirar bajo el agua durante un tiempo prolongado.", @@ -1480,13 +1480,13 @@ "item.create.minecart_coupling.tooltip.condition1": "Cuando se utiliza en vagonetas", "item.create.minecart_coupling.tooltip.behaviour1": "_Acopla_ dos vagonetas, intentando mantenerlas a una _distancia constante_ mientras se mueven.", - "block.create.peculiar_bell.tooltip": "PECULIAR BELL", - "block.create.peculiar_bell.tooltip.summary": "A decorative brass bell. Placing it above a _Soul Fire_ or _Soul Campfire_ may cause a spooky transformation to occur...", + "block.create.peculiar_bell.tooltip": "CAMPANA PECULIAR", + "block.create.peculiar_bell.tooltip.summary": "Una campana decorativa de latón. Al colocarla sobre un _Fuego del alma_ o una _Fogata del alma_ puede producirse una transformación espeluznante...", - "block.create.haunted_bell.tooltip": "UNLOCALIZED: HAUNTED BELL", - "block.create.haunted_bell.tooltip.summary": "UNLOCALIZED: A _Cursed Bell_ haunted by lost souls of the Nether.", - "block.create.haunted_bell.tooltip.condition1": "UNLOCALIZED: When Held or Rang", - "block.create.haunted_bell.tooltip.behaviour1": "UNLOCALIZED: Highlights nearby _Lightless Spots_ on which _Hostile Mobs_ can spawn.", + "block.create.haunted_bell.tooltip": "CAMPANA ENCANTADA", + "block.create.haunted_bell.tooltip.summary": "Una _campana maldita_ perseguida por las almas perdidas del Nether", + "block.create.haunted_bell.tooltip.condition1": "Cuando se sostiene o suena", + "block.create.haunted_bell.tooltip.behaviour1": "Resalta los _puntos sin luz_ cercanos en los que pueden aparecer las _criaturas hostiles_.", "_": "->------------------------] Ponder Content [------------------------<-", @@ -1503,11 +1503,11 @@ "create.ponder.replay": "Repetición", "create.ponder.think_back": "Volver atrás", "create.ponder.slow_text": "Lectura cómoda", - "create.ponder.exit": "Exit", - "create.ponder.welcome": "Welcome to Ponder", - "create.ponder.categories": "Available Categories in Create", - "create.ponder.index_description": "Click one of the icons to learn about its associated Items and Blocks", - "create.ponder.index_title": "Ponder Index", + "create.ponder.exit": "Salir", + "create.ponder.welcome": "Bienvenido al instructivo de Create", + "create.ponder.categories": "Categorías disponibles", + "create.ponder.index_description": "Haga clic en uno de los iconos para conocer sus objetos y bloques asociados", + "create.ponder.index_title": "Índice", "create.ponder.shared.rpm16": "16 RPM", "create.ponder.shared.behaviour_modify_wrench": "Este comportamiento puede modificarse mediante una llave inglesa", "create.ponder.shared.storage_on_contraption": "Los inventarios unidos al artilugio recogerán sus producciones automáticamente", @@ -1559,7 +1559,7 @@ "create.ponder.analog_lever.header": "Controlar señales mediante la palanca analógica", "create.ponder.analog_lever.text_1": "Las palancas analógicas son una fuente compacta y precisa de energía de redstone", "create.ponder.analog_lever.text_2": "Haz clic derecho para aumentar su potencia analógica", - "create.ponder.analog_lever.text_3": "Usa [Mayús izdo.] + clic derecho para volver a disminuir su potencia", + "create.ponder.analog_lever.text_3": "Usa Mayús izdo + clic derecho para volver a disminuir su potencia", "create.ponder.andesite_tunnel.header": "Usar túneles de andesita", "create.ponder.andesite_tunnel.text_1": "Los túneles de andesita se pueden utilizar para tapar las correas", @@ -1588,7 +1588,7 @@ "create.ponder.belt_connector.header": "El uso de las correas mecánicas", "create.ponder.belt_connector.text_1": "Al hacer clic derecho en dos ejes con una correa mecánica se conectarán entre sí", - "create.ponder.belt_connector.text_2": "Las selecciones accidentales pueden ser canceladas con [Mayús izdo.] + clic derecho", + "create.ponder.belt_connector.text_2": "Las selecciones accidentales pueden ser canceladas con Mayús izdo + clic derecho", "create.ponder.belt_connector.text_3": "Se pueden añadir ejes adicionales en toda la correa", "create.ponder.belt_connector.text_4": "Los ejes conectados a través de correas girarán con velocidad y dirección idénticas", "create.ponder.belt_connector.text_5": "Los ejes añadidos se pueden quitar con la llave inglesa", @@ -1654,8 +1654,8 @@ "create.ponder.cart_assembler_modes.header": "Configurar la orientación de los artilugios de vagonetas", "create.ponder.cart_assembler_modes.text_1": "Los artilugios de vagonetas girarán para orientarse hacia el movimiento de sus vagonetas", - "create.ponder.cart_assembler_modes.text_2": "This Arrow indicates which side of the Structure will be considered the front", - "create.ponder.cart_assembler_modes.text_3": "If the Assembler is set to Lock Rotation, the contraptions' orientation will never change", + "create.ponder.cart_assembler_modes.text_2": "Esta flecha indica qué lado de la estructura se considerará la parte delantera", + "create.ponder.cart_assembler_modes.text_3": "Si el ensamblador está configurado para bloquear la rotación, la orientación de los artilugios nunca cambiará", "create.ponder.cart_assembler_rails.header": "Otros tipos de vagonetas y raíles", "create.ponder.cart_assembler_rails.text_1": "Los ensambladores de vagonetas en raíles normales no afectarán el movimiento de las vagonetas que pasen", @@ -1710,10 +1710,10 @@ "create.ponder.cogwheel.text_2": "Los ejes adyacentes conectados así, girarán en direcciones opuestas", "create.ponder.creative_fluid_tank.header": "Tanque de fluídos creativo", - "create.ponder.creative_fluid_tank.text_1": "Creative Fluid Tanks can be used to provide a bottomless supply of fluid", - "create.ponder.creative_fluid_tank.text_2": "Right-Click with a fluid containing item to configure it", - "create.ponder.creative_fluid_tank.text_3": "Pipe Networks can now endlessly draw the assigned fluid from the tank", - "create.ponder.creative_fluid_tank.text_4": "Any Fluids pushed back into a Creative Fluid Tank will be voided", + "create.ponder.creative_fluid_tank.text_1": "Los depósitos de fluidos creativos pueden utilizarse para proporcionar un suministro de fluidos sin fondo", + "create.ponder.creative_fluid_tank.text_2": "Haga clic con el botón derecho en un elemento que contenga fluido para configurarlo", + "create.ponder.creative_fluid_tank.text_3": "Las redes de tuberías pueden ahora extraer sin cesar el fluido asignado del depósito", + "create.ponder.creative_fluid_tank.text_4": "Cualquier fluido empujado de vuelta a un tanque de fluido creativo será anulado", "create.ponder.creative_motor.header": "Generar fuerza rotacional con motores creativos", "create.ponder.creative_motor.text_1": "Los motores creativos son una fuente compacta y configurable de fuerza rotacional", @@ -1773,13 +1773,13 @@ "create.ponder.empty_blaze_burner.text_2": "Alternativamente, los blaze pueden ser recogidos de sus spawners directamente", "create.ponder.empty_blaze_burner.text_3": "Ahora tienes una fuente de calor ideal para varias máquinas", "create.ponder.empty_blaze_burner.text_4": "Por motivos estéticos, los quemadores de blaze vacíos también se pueden encender con pedernal y acero", - "create.ponder.empty_blaze_burner.text_5": "UNLOCALIZED: The flame can be transformed using a soul-infused item", + "create.ponder.empty_blaze_burner.text_5": "La llama puede transformarse utilizando un objeto con alma", "create.ponder.empty_blaze_burner.text_6": "Sin embargo, no son adecuados para la calefacción industrial", "create.ponder.encased_fluid_pipe.header": "Revestir tuberías de fluídos", - "create.ponder.encased_fluid_pipe.text_1": "Copper Casing can be used to decorate Fluid Pipes", - "create.ponder.encased_fluid_pipe.text_2": "Aside from being conceiled, Encased Pipes are locked into their connectivity state", - "create.ponder.encased_fluid_pipe.text_3": "It will no longer react to any neighbouring blocks being added or removed", + "create.ponder.encased_fluid_pipe.text_1": "El revestidor de cobre puede utilizarse para decorar las tuberías de fluidos", + "create.ponder.encased_fluid_pipe.text_2": "Además de estar ocultas, las tuberías revestidas están bloqueadas en su estado de conectividad", + "create.ponder.encased_fluid_pipe.text_3": "Ya no reaccionará a los bloques vecinos que se añadan o eliminen", "create.ponder.fan_direction.header": "El flujo de aire de los ventiladores revestidos", "create.ponder.fan_direction.text_1": "Los ventiladores revestidos utilizan la fuerza rotacional para crear una corriente de aire", @@ -1800,33 +1800,33 @@ "create.ponder.fan_source.text_2": "Cuando se les da una señal de redstone, los ventiladores comenzarán a proporcionar fuerza", "create.ponder.fluid_pipe_flow.header": "Transportar fluidos mediante tuberías de cobre", - "create.ponder.fluid_pipe_flow.text_1": "Fluid Pipes can connect two or more fluid sources and targets", - "create.ponder.fluid_pipe_flow.text_2": "Using a wrench, a straight pipe segment can be given a window", - "create.ponder.fluid_pipe_flow.text_3": "Windowed pipes will not connect to any other adjacent pipe segments", - "create.ponder.fluid_pipe_flow.text_4": "Powered by Mechanical Pumps, the Pipes can transport Fluids", - "create.ponder.fluid_pipe_flow.text_5": "No fluid is being extracted at first", - "create.ponder.fluid_pipe_flow.text_6": "Once the flow connects them, the endpoints gradually transfer their contents", - "create.ponder.fluid_pipe_flow.text_7": "Thus, the Pipe blocks themselves never 'physically' contain any fluid", + "create.ponder.fluid_pipe_flow.text_1": "Las tuberías de fluidos pueden conectar dos o más fuentes y objetivos de fluidos", + "create.ponder.fluid_pipe_flow.text_2": "Utilizando una llave, se puede dar a un segmento de tubo recto una ventana", + "create.ponder.fluid_pipe_flow.text_3": "Las tuberías con ventanas no se conectarán a ningún otro segmento de tubería adyacente", + "create.ponder.fluid_pipe_flow.text_4": "Accionadas por bombas mecánicas, las tuberías pueden transportar fluidos", + "create.ponder.fluid_pipe_flow.text_5": "Al principio no se extrae ningún líquido", + "create.ponder.fluid_pipe_flow.text_6": "Una vez que el flujo los conecta, los puntos finales transfieren gradualmente su contenido", + "create.ponder.fluid_pipe_flow.text_7": "Así, los bloques de tuberías nunca contienen 'físicamente' ningún fluido", "create.ponder.fluid_pipe_interaction.header": "Drenaje y llenado de contenedores de fluidos", - "create.ponder.fluid_pipe_interaction.text_1": "Endpoints of a pipe network can interact with a variety of blocks", - "create.ponder.fluid_pipe_interaction.text_2": "Any block with fluid storage capabilities can be filled or drained", - "create.ponder.fluid_pipe_interaction.text_3": "Source blocks right in front of an open end can be picked up...", - "create.ponder.fluid_pipe_interaction.text_4": "...while spilling into empty spaces can create fluid sources", - "create.ponder.fluid_pipe_interaction.text_5": "Pipes can also extract fluids from a handful of other blocks directly", + "create.ponder.fluid_pipe_interaction.text_1": "Los puntos finales de una red de tuberías pueden interactuar con una variedad de bloques", + "create.ponder.fluid_pipe_interaction.text_2": "Cualquier bloque con capacidad para almacenar fluidos puede ser llenado o vaciado", + "create.ponder.fluid_pipe_interaction.text_3": "Los bloques de origen justo delante de un extremo abierto pueden ser recogidos...", + "create.ponder.fluid_pipe_interaction.text_4": "...mientras que el derrame en espacios vacíos puede crear fuentes de fluidos", + "create.ponder.fluid_pipe_interaction.text_5": "Las tuberías también pueden extraer fluidos de un puñado de otros bloques directamente", "create.ponder.fluid_tank_sizes.header": "Dimensiones de un depósito de fluidos", - "create.ponder.fluid_tank_sizes.text_1": "Fluid Tanks can be combined to increase the total capacity", - "create.ponder.fluid_tank_sizes.text_2": "Their base square can be up to 3 blocks wide...", - "create.ponder.fluid_tank_sizes.text_3": "...and grow in height by more than 30 additional layers", - "create.ponder.fluid_tank_sizes.text_4": "Using a Wrench, a tanks' window can be toggled", + "create.ponder.fluid_tank_sizes.text_1": "Los depósitos de fluidos pueden combinarse para aumentar la capacidad total", + "create.ponder.fluid_tank_sizes.text_2": "Su cuadrado base puede tener hasta 3 bloques de ancho...", + "create.ponder.fluid_tank_sizes.text_3": "...y crecen en altura en más de 30 capas adicionales", + "create.ponder.fluid_tank_sizes.text_4": "Con una llave inglesa, se puede cambiar la ventana de un tanque", "create.ponder.fluid_tank_storage.header": "Almacenar fluidos en depósitos de fluidos", - "create.ponder.fluid_tank_storage.text_1": "Fluid Tanks can be used to store large amounts of fluid", - "create.ponder.fluid_tank_storage.text_2": "Pipe networks can push and pull fluids from any side", - "create.ponder.fluid_tank_storage.text_3": "The contained fluid can be measured by a Comparator", - "create.ponder.fluid_tank_storage.text_4": "However, in Survival Mode Fluids cannot be added or taken manually", - "create.ponder.fluid_tank_storage.text_5": "You can use Basins, Item Drains and Spouts to drain or fill fluid containing items", + "create.ponder.fluid_tank_storage.text_1": "Los depósitos de fluidos pueden utilizarse para almacenar grandes cantidades de fluidos", + "create.ponder.fluid_tank_storage.text_2": "Las redes de tuberías pueden empujar y arrastrar fluidos desde cualquier lado", + "create.ponder.fluid_tank_storage.text_3": "El fluido contenido puede ser medido por un Comparador", + "create.ponder.fluid_tank_storage.text_4": "Sin embargo, en el Modo Supervivencia no se pueden añadir o tomar fluidos manualmente", + "create.ponder.fluid_tank_storage.text_5": "Puede utilizar cuencas, drenadores de objetos y tuberías para vaciar o llenar objetos que contengan líquido", "create.ponder.flywheel.header": "Generar fuerza rotacional con la rueda de inercia", "create.ponder.flywheel.text_1": "Las ruedas de inercia son necesarias para generar fuerza rotacional con el motor de horno", @@ -1841,7 +1841,7 @@ "create.ponder.funnel_direction.header": "Dirección de la transferencia", "create.ponder.funnel_direction.text_1": "Colocado normalmente, extrae objetos del inventario", - "create.ponder.funnel_direction.text_2": "Colocado mientras pulsa [Mayús izdo.], pone objetos en el inventario", + "create.ponder.funnel_direction.text_2": "Colocado mientras pulsa Mayús izdo, pone objetos en el inventario", "create.ponder.funnel_direction.text_3": "Usando una llave inglesa, el embudo puede ser volteado después de su colocación", "create.ponder.funnel_direction.text_4": "Se aplicarán las mismas reglas para la mayoría de las orientaciones", "create.ponder.funnel_direction.text_5": "Los embudos en las correas extraerán/insertarán dependiendo de su dirección de movimiento", @@ -1899,35 +1899,35 @@ "create.ponder.hand_crank.text_1": "Las manivelas pueden ser utilizadas para aplicar fuerza rotacional manualmente", "create.ponder.hand_crank.text_2": "Mantén pulsado clic derecho para girar en sentido antihorario", "create.ponder.hand_crank.text_3": "Su velocidad de transmisión es relativamente alta", - "create.ponder.hand_crank.text_4": "[Mayús izdo.] + clic derecho pulsado para girar en sentido horario", + "create.ponder.hand_crank.text_4": "Mayús izdo + clic derecho pulsado para girar en sentido horario", "create.ponder.hose_pulley.header": "Llenado y vaciado de fuentes mediante poleas de manguera", - "create.ponder.hose_pulley.text_1": "Hose Pulleys can be used to fill or drain large bodies of Fluid", - "create.ponder.hose_pulley.text_2": "With the Kinetic Input, the height of the pulleys' hose can be controlled", - "create.ponder.hose_pulley.text_3": "The Pulley retracts while the input rotation is inverted", - "create.ponder.hose_pulley.text_4": "On the opposite side, pipes can be connected", - "create.ponder.hose_pulley.text_5": "Attached pipe networks can either provide fluid to the hose...", - "create.ponder.hose_pulley.text_6": "...or pull from it, draining the pool instead", - "create.ponder.hose_pulley.text_7": "Fill and Drain speed of the pulley depends entirely on the fluid networks' throughput", + "create.ponder.hose_pulley.text_1": "Las poleas para mangueras pueden utilizarse para llenar o drenar grandes masas de fluido", + "create.ponder.hose_pulley.text_2": "Con entrada cinética, se puede controlar la altura de la manguera de las poleas", + "create.ponder.hose_pulley.text_3": "La polea se retrae mientras la rotación de entrada se invierte", + "create.ponder.hose_pulley.text_4": "En el lado opuesto, se pueden conectar las tuberías", + "create.ponder.hose_pulley.text_5": "Las redes de tuberías conectadas pueden proporcionar fluido a la manguera...", + "create.ponder.hose_pulley.text_6": "...o tirar de él, vaciando la piscina en su lugar", + "create.ponder.hose_pulley.text_7": "La velocidad de llenado y vaciado de la polea depende totalmente del caudal de las redes de fluidos", "create.ponder.hose_pulley_infinite.header": "Llenado y drenaje pasivo de grandes masas de fluido", - "create.ponder.hose_pulley_infinite.text_1": "When deploying the Hose Pulley into a large enough ocean...", - "create.ponder.hose_pulley_infinite.text_2": "It will provide/dispose fluids without affecting the source", - "create.ponder.hose_pulley_infinite.text_3": "Pipe networks can limitlessly take fluids from/to such pulleys", + "create.ponder.hose_pulley_infinite.text_1": "Al desplegar la polea de manguera en un océano lo suficientemente grande...", + "create.ponder.hose_pulley_infinite.text_2": "Proporcionará/eliminará fluidos sin afectar a la fuente", + "create.ponder.hose_pulley_infinite.text_3": "Las redes de tuberías pueden llevar fluidos de forma ilimitada desde/hacia dichas poleas", "create.ponder.hose_pulley_level.header": "Nivel de llenado y vaciado de las poleas de las mangueras", - "create.ponder.hose_pulley_level.text_1": "While fully retracted, the Hose Pulley cannot operate", - "create.ponder.hose_pulley_level.text_2": "Draining runs from top to bottom", - "create.ponder.hose_pulley_level.text_3": "The surface level will end up just below where the hose ends", - "create.ponder.hose_pulley_level.text_4": "Filling runs from bottom to top", - "create.ponder.hose_pulley_level.text_5": "The filled pool will not grow beyond the layer above the hose end", + "create.ponder.hose_pulley_level.text_1": "Mientras esté totalmente retraída, la polea de la manguera no puede funcionar", + "create.ponder.hose_pulley_level.text_2": "El drenaje va de arriba a abajo", + "create.ponder.hose_pulley_level.text_3": "El nivel de la superficie terminará justo debajo de donde termina la manguera", + "create.ponder.hose_pulley_level.text_4": "El llenado va de abajo a arriba", + "create.ponder.hose_pulley_level.text_5": "La piscina llena no crecerá más allá de la capa por encima del extremo de la manguera", "create.ponder.item_drain.header": "Vaciar contenedores de fluidos mediante drenajes de objetos", - "create.ponder.item_drain.text_1": "Item Drains can extract fluids from items", - "create.ponder.item_drain.text_2": "Right-click it to pour fluids from your held item into it", - "create.ponder.item_drain.text_3": "When items are inserted from the side...", - "create.ponder.item_drain.text_4": "...they roll across, emptying out their contained fluid", - "create.ponder.item_drain.text_5": "Pipe Networks can now pull the fluid from the drains' internal buffer", + "create.ponder.item_drain.text_1": "Los drenajes de objetos pueden extraer los fluidos de los objetos", + "create.ponder.item_drain.text_2": "Haz clic derecho para verter los fluidos de tu objeto retenido en él", + "create.ponder.item_drain.text_3": "Cuando los artículos se insertan desde el lado...", + "create.ponder.item_drain.text_4": "...ruedan a través, vaciando su líquido contenido", + "create.ponder.item_drain.text_5": "Las redes de tuberías pueden ahora extraer el fluido del buffer interno de los desagües", "create.ponder.large_cogwheel.header": "Transmitir fuerza rotacional mediante engranajes grandes", "create.ponder.large_cogwheel.text_1": "Los engranajes grandes pueden conectarse entre sí en ángulo recto", @@ -1936,7 +1936,7 @@ "create.ponder.linear_chassis_attachment.header": "Fijar bloques mediante el chasis lineal", "create.ponder.linear_chassis_attachment.text_1": "Las caras abiertas de un chasis lineal pueden hacerse pegajosas", "create.ponder.linear_chassis_attachment.text_2": "Haz clic de nuevo para que se pegue el lado opuesto", - "create.ponder.linear_chassis_attachment.text_3": "[Mayús izdo.] + clic derecho con la mano vacía para eliminar el pegamento", + "create.ponder.linear_chassis_attachment.text_3": "Mayús izdo + clic derecho con la mano vacía para eliminar el pegamento", "create.ponder.linear_chassis_attachment.text_4": "Las caras pegadas del chasis lineal fijarán una línea de bloques delante de él", "create.ponder.linear_chassis_attachment.text_5": "Utilizando una llave inglesa, se puede especificar un rango preciso", "create.ponder.linear_chassis_attachment.text_6": "Manteniendo pulsada la tecla [Ctrl] y usando la rueda central del ratón, se ajusta el rango de todos los bloques de chasis adjuntos", @@ -2052,19 +2052,19 @@ "create.ponder.mechanical_press_compacting.text_4": "La ranura para filtros se puede utilizar en caso de que dos recetas sean conflictivas.", "create.ponder.mechanical_pump_flow.header": "Transportar fluidos mediante bombas mecánicas", - "create.ponder.mechanical_pump_flow.text_1": "Mechanical Pumps govern the flow of their attached pipe networks", - "create.ponder.mechanical_pump_flow.text_2": "When powered, their arrow indicates the direction of flow", - "create.ponder.mechanical_pump_flow.text_3": "The network behind is now pulling fluids...", - "create.ponder.mechanical_pump_flow.text_4": "...while the network in front is transferring it outward", - "create.ponder.mechanical_pump_flow.text_5": "Reversing the input rotation reverses the direction of flow", - "create.ponder.mechanical_pump_flow.text_6": "Use a Wrench to reverse the orientation of pumps manually", + "create.ponder.mechanical_pump_flow.text_1": "Las bombas mecánicas gobiernan el flujo de sus redes de tuberías anexas", + "create.ponder.mechanical_pump_flow.text_2": "Cuando están alimentadas, su flecha indica la dirección del flujo", + "create.ponder.mechanical_pump_flow.text_3": "La red de atrás está ahora tirando de fluidos...", + "create.ponder.mechanical_pump_flow.text_4": "...mientras la red de enfrente la transfiere hacia el exterior", + "create.ponder.mechanical_pump_flow.text_5": "Al invertir la rotación de la entrada se invierte el sentido del flujo", + "create.ponder.mechanical_pump_flow.text_6": "Utilice una llave inglesa para invertir la orientación de las bombas manualmente", "create.ponder.mechanical_pump_speed.header": "Rendimiento de las bombas mecánicas", - "create.ponder.mechanical_pump_speed.text_1": "Regardless of speed, Mechanical Pumps affect pipes connected up to 16 blocks away", - "create.ponder.mechanical_pump_speed.text_2": "Speeding up the input rotation changes the speed of flow propagation...", - "create.ponder.mechanical_pump_speed.text_3": "...aswell as how quickly fluids are transferred", - "create.ponder.mechanical_pump_speed.text_4": "Pumps can combine their throughputs within shared pipe networks", - "create.ponder.mechanical_pump_speed.text_5": "Alternating their orientation can help align their flow directions", + "create.ponder.mechanical_pump_speed.text_1": "Independientemente de la velocidad, las bombas mecánicas afectan a las tuberías conectadas hasta 16 bloques de distancia", + "create.ponder.mechanical_pump_speed.text_2": "Acelerar la rotación de entrada cambia la velocidad de propagación del flujo...", + "create.ponder.mechanical_pump_speed.text_3": "...así como la rapidez con la que se transfieren los fluidos", + "create.ponder.mechanical_pump_speed.text_4": "Las bombas pueden combinar sus rendimientos en redes de tuberías compartidas", + "create.ponder.mechanical_pump_speed.text_5": "Alternar su orientación puede ayudar a alinear sus direcciones de flujo", "create.ponder.mechanical_saw_breaker.header": "Cortar árboles con la sierra mecánica", "create.ponder.mechanical_saw_breaker.text_1": "Cuando se le da una fuerza rotacional, la sierra mecánica cortará los árboles que estén directamente frente a ella", @@ -2091,21 +2091,21 @@ "create.ponder.nixie_tube.header": "Usar los tubos Nixie", "create.ponder.nixie_tube.text_1": "Cuando son alimentados con redstone, los tubos nixie mostrarán la fuerza de las señales de redstone", "create.ponder.nixie_tube.text_2": "Con las etiquetas editadas en un yunque, pueden mostar un texto personalizado", - "create.ponder.nixie_tube.text_3": "UNLOCALIZED: Right-Click with Dye to change their display colour", + "create.ponder.nixie_tube.text_3": "Haga clic derecho con un tinte para cambiar su color de visualización", "create.ponder.piston_pole.header": "Pértigas de extensión de pistones", "create.ponder.piston_pole.text_1": "Sin las pértigas de extensión unidas, un pistón mecánico no puede moverse", "create.ponder.piston_pole.text_2": "La longitud de la pértiga añadida en su parte posterior determina el rango de alcance", "create.ponder.portable_fluid_interface.header": "Interfaz de fluidos portátil", - "create.ponder.portable_fluid_interface.text_1": "Fluid Tanks on moving contraptions cannot be accessed by any pipes", - "create.ponder.portable_fluid_interface.text_2": "This component can interact with fluid tanks without the need to stop the contraption", - "create.ponder.portable_fluid_interface.text_3": "Place a second one with a gap of 1 or 2 blocks inbetween", - "create.ponder.portable_fluid_interface.text_4": "Whenever they pass by each other, they will engage in a connection", - "create.ponder.portable_fluid_interface.text_5": "While engaged, the stationary interface will represent ALL Tanks on the contraption", - "create.ponder.portable_fluid_interface.text_6": "Fluid can now be inserted...", - "create.ponder.portable_fluid_interface.text_7": "...or extracted from the contraption", - "create.ponder.portable_fluid_interface.text_8": "After no contents have been exchanged for a while, the contraption will continue on its way", + "create.ponder.portable_fluid_interface.text_1": "No se puede acceder a los depósitos de fluidos de los artilugios en movimiento por ninguna tubería", + "create.ponder.portable_fluid_interface.text_2": "Este componente puede interactuar con los depósitos de fluidos sin necesidad de detener el artilugio", + "create.ponder.portable_fluid_interface.text_3": "Coloca una segunda con un espacio de 1 o 2 bloques entre ellas", + "create.ponder.portable_fluid_interface.text_4": "Cada vez que pasen por delante de la otra, entablarán una conexión", + "create.ponder.portable_fluid_interface.text_5": "Mientras esté activada, la interfaz estacionaria representará TODOS los tanques del artilugio", + "create.ponder.portable_fluid_interface.text_6": "Ahora se puede introducir el fluido...", + "create.ponder.portable_fluid_interface.text_7": "...o extraerlo del artilugio", + "create.ponder.portable_fluid_interface.text_8": "Cuando no se intercambien contenidos durante un tiempo, el artilugio seguirá su camino", "create.ponder.portable_storage_interface.header": "Interfaz de almacenamiento portátil", "create.ponder.portable_storage_interface.text_1": "Los jugadores no pueden acceder a los inventarios de los artilugios en movimiento.", @@ -2140,7 +2140,7 @@ "create.ponder.radial_chassis.text_2": "Cuando uno es movido por un artilugio, los otros son arrastrados con él", "create.ponder.radial_chassis.text_3": "Las caras laterales de un chasis radial pueden hacerse adhesivas", "create.ponder.radial_chassis.text_4": "Haga clic de nuevo para que todos los demás lados sean pegajosos", - "create.ponder.radial_chassis.text_5": "[Mayús izdo.] + clic derecho con la mano vacía para eliminar el pegamento", + "create.ponder.radial_chassis.text_5": "Mayús izdo + clic derecho con la mano vacía para eliminar el pegamento", "create.ponder.radial_chassis.text_6": "Cada vez que un bloque está junto a una cara pegajosa...", "create.ponder.radial_chassis.text_7": "...adjuntará todos los bloques alcanzables dentro de un radio en esa capa", "create.ponder.radial_chassis.text_8": "Con una llave inglesa y usando la rueda de desplazamiento del ratón se puede especificar un radio preciso", @@ -2152,7 +2152,7 @@ "create.ponder.redstone_link.header": "Usar los enlaces de redstone", "create.ponder.redstone_link.text_1": "Los enlaces de redstone pueden transmitir señales redstone de forma inalámbrica", - "create.ponder.redstone_link.text_2": "[Mayús izdo.] + clic derecho para cambiar el modo de recepción", + "create.ponder.redstone_link.text_2": "Mayús izdo + clic derecho para cambiar el modo de recepción", "create.ponder.redstone_link.text_3": "Un simple clic derecho con una llave inglesa puede hacer lo mismo", "create.ponder.redstone_link.text_4": "Los receptores emiten la potencia de redstone de los transmisores en 128 bloques", "create.ponder.redstone_link.text_5": "Colocando objetos en las dos ranuras puede especificar una frecuencia", @@ -2205,10 +2205,10 @@ "create.ponder.smart_chute.text_4": "La energía de redstone impedirá que funcionen.", "create.ponder.smart_pipe.header": "Controlar el flujo de fluidos mediante tuberías inteligentes", - "create.ponder.smart_pipe.text_1": "Smart pipes can help control flows by fluid type", - "create.ponder.smart_pipe.text_2": "When placed directly at the source, they can specify the type of fluid to extract", - "create.ponder.smart_pipe.text_3": "Simply Right-Click their filter slot with any item containing the desired fluid", - "create.ponder.smart_pipe.text_4": "When placed further down a pipe network, smart pipes will only let matching fluids continue", + "create.ponder.smart_pipe.text_1": "Las tuberías inteligentes pueden ayudar a controlar los flujos por tipo de fluido", + "create.ponder.smart_pipe.text_2": "Cuando se colocan directamente en la fuente, pueden especificar el tipo de fluido a extraer", + "create.ponder.smart_pipe.text_3": "Simplemente haga clic derecho en su ranura de filtro con cualquier elemento que contenga el fluido deseado", + "create.ponder.smart_pipe.text_4": "Cuando se colocan detrás de una red de tuberías, las tuberías inteligentes sólo dejan que los fluidos coincidentes continúen", "create.ponder.speedometer.header": "Controlar la información cinética mediante el velocímetro", "create.ponder.speedometer.text_1": "El velocímetro muestra la velocidad actual de los componentes conectados", @@ -2216,12 +2216,12 @@ "create.ponder.speedometer.text_3": "Los comparadores pueden emitir señales analógicas de redstone en relación con las mediciones del velocímetro", "create.ponder.spout_filling.header": "Llenar objetos con un surtidor", - "create.ponder.spout_filling.text_1": "The Spout can fill fluid holding items provided beneath it", - "create.ponder.spout_filling.text_2": "The content of a Spout cannot be accessed manually", - "create.ponder.spout_filling.text_3": "Instead, Pipes can be used to supply it with fluids", - "create.ponder.spout_filling.text_4": "The Input items can be placed on a Depot under the Spout", - "create.ponder.spout_filling.text_5": "When items are provided on a belt...", - "create.ponder.spout_filling.text_6": "The Spout will hold and process them automatically", + "create.ponder.spout_filling.text_1": "El surtidor puede llenar los elementos de retención de fluidos que se encuentran debajo de él", + "create.ponder.spout_filling.text_2": "No se puede acceder manualmente al contenido de un surtidor", + "create.ponder.spout_filling.text_3": "En su lugar, se pueden utilizar tuberías para suministrarle fluidos", + "create.ponder.spout_filling.text_4": "Los objetos de entrada pueden colocarse en un depósito bajo el surtidor", + "create.ponder.spout_filling.text_5": "Cuando los artículos se proporcionan en una cinta...", + "create.ponder.spout_filling.text_6": "El surtidor los retendrá y procesará automáticamente", "create.ponder.stabilized_bearings.header": "Estabilizar artilugios", "create.ponder.stabilized_bearings.text_1": "Siempre que los rodamientos mecánicos formen parte de una estructura móvil...", @@ -2251,14 +2251,14 @@ "create.ponder.valve_handle.text_1": "Los jugadores pueden utilizar las asas de válvulas para aplicar fuerza rotacional manualmente", "create.ponder.valve_handle.text_2": "Mantén pulsado el clic derecho para rotar en sentido contrario a las agujas del reloj", "create.ponder.valve_handle.text_3": "Su velocidad de transmisión es lenta y precisa", - "create.ponder.valve_handle.text_4": "[Mayús izdo.] + clic derecho para rotar en el sentido de las agujas del reloj", + "create.ponder.valve_handle.text_4": "Mayús izdo + clic derecho para rotar en el sentido de las agujas del reloj", "create.ponder.valve_handle.text_5": "Las asas de las válvulas pueden teñirse con fines estéticos", "create.ponder.valve_pipe.header": "Controlar el flujo de fluidos mediante válvulas", - "create.ponder.valve_pipe.text_1": "Valve pipes help control fluids propagating through pipe networks", - "create.ponder.valve_pipe.text_2": "Their shaft input controls whether fluid is currently allowed through", - "create.ponder.valve_pipe.text_3": "Given Rotational Force in the opening direction, the valve will open up", - "create.ponder.valve_pipe.text_4": "It can be closed again by reversing the input rotation", + "create.ponder.valve_pipe.text_1": "Las tuberías con válvulas ayudan a controlar los fluidos que se propagan por las redes de tuberías", + "create.ponder.valve_pipe.text_2": "Su entrada en el eje controla si el fluido puede pasar por", + "create.ponder.valve_pipe.text_3": "Dada la fuerza de rotación en la dirección de apertura, la válvula se abrirá", + "create.ponder.valve_pipe.text_4": "Se puede volver a cerrar invirtiendo el giro de entrada", "create.ponder.water_wheel.header": "Generar fuerza rotacional mediante ruedas hidráulicas", "create.ponder.water_wheel.text_1": "Las ruedas hidráulicas extraen la fuerza de las corrientes de agua adyacentes", @@ -2267,7 +2267,7 @@ "create.ponder.water_wheel.text_4": "Orientadas hacia el lado contrario, no serán tan eficaces", "create.ponder.weighted_ejector.header": "Usar eyectores de peso", - "create.ponder.weighted_ejector.text_1": "[Mayús izdo.] + clic derecho sosteniendo un eyector de peso para seleccionar la ubicación de destino", + "create.ponder.weighted_ejector.text_1": "Mayús izdo + clic derecho sosteniendo un eyector de peso para seleccionar la ubicación de destino", "create.ponder.weighted_ejector.text_10": "Ahora estára limitado a este tamaño de pila, y sólo se activara cuando su pila retenida alcance esta cantidad", "create.ponder.weighted_ejector.text_11": "Otras entidades activarán el eyector al pisarlos", "create.ponder.weighted_ejector.text_2": "El eyector colocado lanzará ahora los objetos al lugar marcado", diff --git a/src/generated/resources/assets/create/lang/unfinished/es_mx.json b/src/generated/resources/assets/create/lang/unfinished/es_mx.json deleted file mode 100644 index 40315c425..000000000 --- a/src/generated/resources/assets/create/lang/unfinished/es_mx.json +++ /dev/null @@ -1,2306 +0,0 @@ -{ - "_": "Missing Localizations: 1501", - - "_": "->------------------------] Game Elements [------------------------<-", - - "block.create.acacia_window": "Ventana de Acacia", - "block.create.acacia_window_pane": "Panel de Ventana de Acacia", - "block.create.adjustable_chain_gearshift": "Cambio Ajustable de Velocidad de Cadena", - "block.create.adjustable_crate": "Caja Ajustable", - "block.create.adjustable_pulse_repeater": "Repetidor de Pulso Ajustable", - "block.create.adjustable_repeater": "Repetidor Ajustable", - "block.create.analog_lever": "Palanca Analogica", - "block.create.andesite_belt_funnel": "UNLOCALIZED: Andesite Belt Funnel", - "block.create.andesite_bricks": "Ladrillos de Andesita", - "block.create.andesite_bricks_slab": "Losa de Ladrillos de Andesita", - "block.create.andesite_bricks_stairs": "Escaleras de Ladrillos de Andesita", - "block.create.andesite_bricks_wall": "Pared de Ladrillos de Andesita", - "block.create.andesite_casing": "Carcasa de Andesita", - "block.create.andesite_cobblestone": "Piedra Labrada de Andesita", - "block.create.andesite_cobblestone_slab": "Losa de Piedra Labrada de Andesita", - "block.create.andesite_cobblestone_stairs": "Escaleras de Piedra Labrada de Andesita", - "block.create.andesite_cobblestone_wall": "Pared de Piedra Labrada de Andesita", - "block.create.andesite_encased_shaft": "Eje empotrado de Andesita", - "block.create.andesite_funnel": "Embudo de Andesita", - "block.create.andesite_pillar": "Pilar de Andesita", - "block.create.andesite_tunnel": "Túnel de Andesita", - "block.create.basin": "Cuenco", - "block.create.belt": "Correa", - "block.create.birch_window": "Ventana de Abedul", - "block.create.birch_window_pane": "Panel de Ventana de Abedul", - "block.create.black_nixie_tube": "UNLOCALIZED: Black Nixie Tube", - "block.create.black_sail": "Vela Negra", - "block.create.black_seat": "Asiento Negro", - "block.create.black_valve_handle": "Manija de Válvula Negra", - "block.create.blaze_burner": "Quemador de Blaze", - "block.create.blue_nixie_tube": "UNLOCALIZED: Blue Nixie Tube", - "block.create.blue_sail": "Vela Azul", - "block.create.blue_seat": "Asiento Azul", - "block.create.blue_valve_handle": "Manija de Válvula Azul", - "block.create.brass_belt_funnel": "UNLOCALIZED:Brass Belt Funnel", - "block.create.brass_block": "Bloque de Latón", - "block.create.brass_casing": "Carcasa de Latón", - "block.create.brass_encased_shaft": "Eje empotrado de Latón", - "block.create.brass_funnel": "Embudo de Latón", - "block.create.brass_tunnel": "Túnel de Latón", - "block.create.brown_nixie_tube": "UNLOCALIZED: Brown Nixie Tube", - "block.create.brown_sail": "Vela Café", - "block.create.brown_seat": "Asiento Café ", - "block.create.brown_valve_handle": "Manija de Válvula Café", - "block.create.cart_assembler": "Ensamblador de Vagonetas", - "block.create.chiseled_dark_scoria": "Escoria Oscura Grabada", - "block.create.chiseled_dolomite": "Dolomita Grabada", - "block.create.chiseled_gabbro": "Gabro Grabado", - "block.create.chiseled_limestone": "Caliza Grabada", - "block.create.chiseled_scoria": "Escoria Grabada", - "block.create.chiseled_weathered_limestone": "Caliza Meteorizada Grabada", - "block.create.chocolate": "Chocolate", - "block.create.chute": "Vertedor", - "block.create.clockwork_bearing": "Rodamiento de Reloj", - "block.create.clutch": "Embrague", - "block.create.cogwheel": "Rueda Dentada", - "block.create.content_observer": "Observador de Contenido", - "block.create.controller_rail": "Vía de Control", - "block.create.copper_backtank": "UNLOCALIZED: Copper Backtank", - "block.create.copper_block": "Bloque de Cobre", - "block.create.copper_casing": "Carcasa de Cobre", - "block.create.copper_ore": "Mineral de Cobre", - "block.create.copper_shingles": "Techado de Cobre", - "block.create.copper_tiles": "Baldosas de Cobre", - "block.create.copper_valve_handle": "Manija de Válvula de Cobre", - "block.create.creative_crate": "Caja del Creativo", - "block.create.creative_fluid_tank": "Tanque de Fluido del Creativo", - "block.create.creative_motor": "Motor del Creativo", - "block.create.crimson_window": "Ventana Carmesí", - "block.create.crimson_window_pane": "Panel de Ventana Carmesí", - "block.create.crushing_wheel": "Rueda Trituradora", - "block.create.crushing_wheel_controller": "UNLOCALIZED:Crushing Wheel Controller", - "block.create.cuckoo_clock": "Reloj Cuco", - "block.create.cyan_nixie_tube": "UNLOCALIZED: Cyan Nixie Tube", - "block.create.cyan_sail": "Vela Cian", - "block.create.cyan_seat": "Asiento Cian", - "block.create.cyan_valve_handle": "Manija de Válvula Cian", - "block.create.dark_oak_window": "Ventana de Roble Oscuro", - "block.create.dark_oak_window_pane": "Panel de Ventana de Roble Oscuro", - "block.create.dark_scoria": "Escoria Oscura", - "block.create.dark_scoria_bricks": "Ladrillos de Escoria Oscura", - "block.create.dark_scoria_bricks_slab": "Losa de Ladrillos de Escoria Oscura", - "block.create.dark_scoria_bricks_stairs": "Escaleras de Ladrillos de Escoria Oscura", - "block.create.dark_scoria_bricks_wall": "Pared de Ladrillos de Escoria Oscura", - "block.create.dark_scoria_cobblestone": "Piedra Labrada de Escoria Oscura", - "block.create.dark_scoria_cobblestone_slab": "Losa de Piedra Labrada de Escoria Oscura", - "block.create.dark_scoria_cobblestone_stairs": "Escaleras de Piedra Labrada de Escoria Oscura", - "block.create.dark_scoria_cobblestone_wall": "Pared de Piedra Labrada de Escoria Oscura", - "block.create.dark_scoria_pillar": "Pilar de Escoria Oscura", - "block.create.deployer": "Desplegador", - "block.create.depot": "Depósito", - "block.create.diorite_bricks": "Ladrillos de Diorita", - "block.create.diorite_bricks_slab": "Losa de Ladrillos de Diorita", - "block.create.diorite_bricks_stairs": "Escaleras de Ladrillos de Diorita", - "block.create.diorite_bricks_wall": "Pared de Ladrillos de Diorita", - "block.create.diorite_cobblestone": "Piedra Labrada de Diorita", - "block.create.diorite_cobblestone_slab": "Losa de Piedra Labrada de Diorita", - "block.create.diorite_cobblestone_stairs": "Escaleras de Piedra Labrada de Diorita", - "block.create.diorite_cobblestone_wall": "Pared de Piedra Labrada de Diorita", - "block.create.diorite_pillar": "Pared de Diorita", - "block.create.dolomite": "Dolomita", - "block.create.dolomite_bricks": "Ladrillos de Dolomita", - "block.create.dolomite_bricks_slab": "Losa de Ladrillos de Dolomita", - "block.create.dolomite_bricks_stairs": "Escaleras de Ladrillos de Dolomita", - "block.create.dolomite_bricks_wall": "Pared de Ladrillos de Dolomita", - "block.create.dolomite_cobblestone": "Piedra Labrada de Dolomita", - "block.create.dolomite_cobblestone_slab": "Losa de Piedra Labrada de Dolomita", - "block.create.dolomite_cobblestone_stairs": "Escaleras de Piedra Labrada de Dolomita", - "block.create.dolomite_cobblestone_wall": "Pared de Piedra Labrada de Dolomita", - "block.create.dolomite_pillar": "Pilar de Dolomita", - "block.create.encased_chain_drive": "Transmisión de Cadena Empotrada", - "block.create.encased_fan": "Ventilador Acoplado", - "block.create.encased_fluid_pipe": "Tubería de Fluidos Recubierta", - "block.create.fancy_andesite_bricks": "Ladrillos de Andesita Elegantes", - "block.create.fancy_andesite_bricks_slab": "Losa de Ladrillos de Andesita Elegantes", - "block.create.fancy_andesite_bricks_stairs": "Escaleras de Ladrillos de Andesita Elegantes", - "block.create.fancy_andesite_bricks_wall": "Pared de Ladrillos de Andesita Elegantes", - "block.create.fancy_dark_scoria_bricks": "Ladrillos de Escoria Oscura Elegantes", - "block.create.fancy_dark_scoria_bricks_slab": "Losa de Ladrillos de Escoria Oscura Elegantes", - "block.create.fancy_dark_scoria_bricks_stairs": "Escaleras de Ladrillos de Escoria Oscura Elegantes", - "block.create.fancy_dark_scoria_bricks_wall": "Pared de Ladrillos de Escoria Oscura Elegantes", - "block.create.fancy_diorite_bricks": "Ladrillos de Diorita Elegantes", - "block.create.fancy_diorite_bricks_slab": "Losa de Ladrillos de Diorita Elegantes", - "block.create.fancy_diorite_bricks_stairs": "Escaleras de Ladrillos de Diorita Elegantes", - "block.create.fancy_diorite_bricks_wall": "Pared de Ladrillos de Diorita Elegantes", - "block.create.fancy_dolomite_bricks": "Ladrillos de Dolomita Elegantes", - "block.create.fancy_dolomite_bricks_slab": "Losa de Ladrillos de Dolomita Elegantes", - "block.create.fancy_dolomite_bricks_stairs": "Escaleras de Ladrillos de Dolomita Elegantes", - "block.create.fancy_dolomite_bricks_wall": "Pared de Ladrillos de Dolomita Elegantes", - "block.create.fancy_gabbro_bricks": "Ladrillos de Gabro Elegantes", - "block.create.fancy_gabbro_bricks_slab": "Losa Ladrillos de Gabro Elegantes", - "block.create.fancy_gabbro_bricks_stairs": "Escaleras Ladrillos de Gabro Elegantes", - "block.create.fancy_gabbro_bricks_wall": "Pared de Ladrillos de Gabro Elegantes", - "block.create.fancy_granite_bricks": "Ladrillos de Granito Elegantes", - "block.create.fancy_granite_bricks_slab": "Losa de Ladrillos de Granito Elegantes", - "block.create.fancy_granite_bricks_stairs": "Escaleras de Ladrillos de Granito Elegantes", - "block.create.fancy_granite_bricks_wall": "Pared de Ladrillos de Granito Elegantes", - "block.create.fancy_limestone_bricks": "Ladrillos de Caliza Elegantes", - "block.create.fancy_limestone_bricks_slab": "Losa de Ladrillos de Caliza Elegantes", - "block.create.fancy_limestone_bricks_stairs": "Escaleras de Ladrillos de Caliza Elegantes", - "block.create.fancy_limestone_bricks_wall": "Pared de Ladrillos de Caliza Elegantes", - "block.create.fancy_scoria_bricks": "Ladrillos de Escoria Elegantes", - "block.create.fancy_scoria_bricks_slab": "Losa de Ladrillos de Escoria Elegantes", - "block.create.fancy_scoria_bricks_stairs": "Escaleras de Ladrillos de Escoria Elegantes", - "block.create.fancy_scoria_bricks_wall": "Pared de Ladrillos de Escoria Elegantes", - "block.create.fancy_weathered_limestone_bricks": "Ladrillos de Caliza Meteorizada Elegantes", - "block.create.fancy_weathered_limestone_bricks_slab": "Losa de Ladrillos de Caliza Meteorizada Elegantes", - "block.create.fancy_weathered_limestone_bricks_stairs": "Escaleras de Ladrillos de Caliza Meteorizada Elegantes", - "block.create.fancy_weathered_limestone_bricks_wall": "Pared de Ladrillos de Caliza Meteorizada Elegantes", - "block.create.fluid_pipe": "Tubería de Fluidos", - "block.create.fluid_tank": "Tanque de Fluidos", - "block.create.fluid_valve": "Válvula de Fluidos", - "block.create.flywheel": "Rueda de Inercia", - "block.create.framed_glass": "Vidrio Enmarcado", - "block.create.framed_glass_pane": "Panel de Vidrio Enmarcado", - "block.create.furnace_engine": "Motor de Horno", - "block.create.gabbro": "Gabro", - "block.create.gabbro_bricks": "Ladrillos de Gabro", - "block.create.gabbro_bricks_slab": "Losa de Ladrillos de Gabro", - "block.create.gabbro_bricks_stairs": "Escaleras de Ladrillos de Gabro", - "block.create.gabbro_bricks_wall": "Pared de Ladrillos de Gabro", - "block.create.gabbro_cobblestone": "Piedra Labrada de Gabro", - "block.create.gabbro_cobblestone_slab": "Losa de Piedra Labrada de Gabro", - "block.create.gabbro_cobblestone_stairs": "Escaleras de Piedra Labrada de Gabro", - "block.create.gabbro_cobblestone_wall": "Pared de Piedra Labrada de Gabro", - "block.create.gabbro_pillar": "Pilar de Gabro", - "block.create.gantry_carriage": "UNLOCALIZED: Gantry Carriage", - "block.create.gantry_shaft": "UNLOCALIZED: Gantry Shaft", - "block.create.gearbox": "Transmisión", - "block.create.gearshift": "Cambio de Marcha", - "block.create.glass_fluid_pipe": "Tubería de Fluidos de Vidrio", - "block.create.granite_bricks": "Ladrillos de Granito", - "block.create.granite_bricks_slab": "Losa de Ladrillos de Granito", - "block.create.granite_bricks_stairs": "Escaleras de Ladrillos de Granito", - "block.create.granite_bricks_wall": "Pared de Ladrillos de Granito", - "block.create.granite_cobblestone": "Piedra Labrada de Granito", - "block.create.granite_cobblestone_slab": "Losa de Piedra Labrada de Granito", - "block.create.granite_cobblestone_stairs": "Escaleras de Piedra Labrada de Granito", - "block.create.granite_cobblestone_wall": "Pared de Piedra Labrada de Granito", - "block.create.granite_pillar": "Pilar de Granito", - "block.create.gray_nixie_tube": "UNLOCALIZED: Gray Nixie Tube", - "block.create.gray_sail": "Vela Gris", - "block.create.gray_seat": "Asiento Gris", - "block.create.gray_valve_handle": "Manija de Válvula Gris", - "block.create.green_nixie_tube": "UNLOCALIZED: Green Nixie Tube", - "block.create.green_sail": "Vela Verde", - "block.create.green_seat": "Asiento Verde", - "block.create.green_valve_handle": "Manija de Válvula Verde", - "block.create.hand_crank": "Manivela", - "block.create.haunted_bell": "UNLOCALIZED: Haunted Bell", - "block.create.honey": "Miel", - "block.create.horizontal_framed_glass": "Vidrio Enmarcado Horizontal", - "block.create.horizontal_framed_glass_pane": "Panel de Vidrio Enmarcado Horizontal", - "block.create.hose_pulley": "Polea con Manguera", - "block.create.item_drain": "Extractor de Fluidos", - "block.create.jungle_window": "Ventana de Jungla", - "block.create.jungle_window_pane": "Panel de Ventana de Jungla", - "block.create.large_cogwheel": "Rueda Dentada Grande", - "block.create.layered_andesite": "Andesita en Capas", - "block.create.layered_dark_scoria": "Escoria Oscura en Capas", - "block.create.layered_diorite": "Diorita en Capas", - "block.create.layered_dolomite": "Dolomita en Capas", - "block.create.layered_gabbro": "Gabro en Capas", - "block.create.layered_granite": "Granito en Capas", - "block.create.layered_limestone": "Caliza en Capas", - "block.create.layered_scoria": "Escoria en Capas", - "block.create.layered_weathered_limestone": "Caliza Meteorizada en Capas", - "block.create.lectern_controller": "UNLOCALIZED: Lectern Controller", - "block.create.light_blue_nixie_tube": "UNLOCALIZED: Light Blue Nixie Tube", - "block.create.light_blue_sail": "Vela Azul Claro", - "block.create.light_blue_seat": "Asiento Azul Claro", - "block.create.light_blue_valve_handle": "Manija de Válvula Azul Claro", - "block.create.light_gray_nixie_tube": "UNLOCALIZED: Light Gray Nixie Tube", - "block.create.light_gray_sail": "Vela Gris Claro", - "block.create.light_gray_seat": "Asiento Gris Claro", - "block.create.light_gray_valve_handle": "Manija de Válvula Gris Claro", - "block.create.lime_nixie_tube": "UNLOCALIZED: Lime Nixie Tube", - "block.create.lime_sail": "Vela Verde Lima", - "block.create.lime_seat": "Asiento Verde Lima", - "block.create.lime_valve_handle": "Manija de Válvula Verde Lima", - "block.create.limesand": "Arena de Caliza", - "block.create.limestone": "Caliza", - "block.create.limestone_bricks": "Ladrillos de Caliza", - "block.create.limestone_bricks_slab": "Losa de Ladrillos de Caliza", - "block.create.limestone_bricks_stairs": "Escaleras de Ladrillos de Caliza", - "block.create.limestone_bricks_wall": "Pared de Ladrillos de Caliza", - "block.create.limestone_cobblestone": "Piedra Labrada de Caliza", - "block.create.limestone_cobblestone_slab": "Losa de Piedra Labrada de Caliza", - "block.create.limestone_cobblestone_stairs": "Escaleras de Piedra Labrada de Caliza", - "block.create.limestone_cobblestone_wall": "Pared de Piedra Labrada de Caliza", - "block.create.limestone_pillar": "Pilar de Caliza", - "block.create.linear_chassis": "Chasis Lineal", - "block.create.lit_blaze_burner": "Quemador de Blaze Iluminado", - "block.create.magenta_nixie_tube": "UNLOCALIZED: Magenta Nixie Tube", - "block.create.magenta_sail": "Vela Magenta", - "block.create.magenta_seat": "Asiento Magenta", - "block.create.magenta_valve_handle": "Manija de Válvula Magenta", - "block.create.mechanical_arm": "Brazo Mecánico", - "block.create.mechanical_bearing": "Rodamiento Mecánico", - "block.create.mechanical_crafter": "Crafter Mecánico", - "block.create.mechanical_drill": "Taladro Mecánico", - "block.create.mechanical_harvester": "Cosechador Mecánico", - "block.create.mechanical_mixer": "Mezcladora Mecánica", - "block.create.mechanical_piston": "Pistón Mecánico", - "block.create.mechanical_piston_head": "Cabeza de Pistón Mecánico", - "block.create.mechanical_plough": "Arado Mecánico", - "block.create.mechanical_press": "Prensa Mecánica", - "block.create.mechanical_pump": "Bomba Mecánica", - "block.create.mechanical_saw": "Sierra Mecánica", - "block.create.metal_bracket": "Soporte de Metal", - "block.create.millstone": "Molino", - "block.create.minecart_anchor": "Ancla de Vagonetas", - "block.create.mossy_andesite": "Andesita Musgosa", - "block.create.mossy_dark_scoria": "Escoria Oscura Musgosa", - "block.create.mossy_diorite": "Diorita Musgosa", - "block.create.mossy_dolomite": "Dolomita Musgosa", - "block.create.mossy_gabbro": "Gabro Musgoso", - "block.create.mossy_granite": "Granito Musgoso", - "block.create.mossy_limestone": "Caliza Musgosa", - "block.create.mossy_scoria": "Escoria Musgosa", - "block.create.mossy_weathered_limestone": "Caliza Meteorizada Musgosa", - "block.create.mysterious_cuckoo_clock": "Reloj Cuco", - "block.create.natural_scoria": "Escoria Natural", - "block.create.nixie_tube": "Tubo Nixie", - "block.create.nozzle": "Boquilla", - "block.create.oak_window": "Ventana de Roble", - "block.create.oak_window_pane": "Panel de Ventana de Roble", - "block.create.orange_sail": "Vela Naranja", - "block.create.orange_seat": "Asiento Naranja", - "block.create.orange_valve_handle": "Manija de Válvula Naranja", - "block.create.ornate_iron_window": "Ventana Ornamentada", - "block.create.ornate_iron_window_pane": "Panel de Ventana Ornamentada", - "block.create.overgrown_andesite": "Andesita Descuidada", - "block.create.overgrown_dark_scoria": "Escoria Oscura Descuidada", - "block.create.overgrown_diorite": "Diorita Descuidada", - "block.create.overgrown_dolomite": "Dolomita Descuidada", - "block.create.overgrown_gabbro": "Gabro Descuidado", - "block.create.overgrown_granite": "Granito Descuidado", - "block.create.overgrown_limestone": "Caliza Descuidada", - "block.create.overgrown_scoria": "Escoria Descuidada", - "block.create.overgrown_weathered_limestone": "Caliza Meteorizada Descuidada", - "block.create.paved_andesite": "Andesita Pavimentada", - "block.create.paved_andesite_slab": "Losa de Andesita Pavimentada", - "block.create.paved_andesite_stairs": "Escaleras de Andesita Pavimentada", - "block.create.paved_andesite_wall": "Pared de Andesita Pavimentada", - "block.create.paved_dark_scoria": "Escoria Oscura Pavimentada", - "block.create.paved_dark_scoria_slab": "Losa de Escoria Oscura Pavimentada", - "block.create.paved_dark_scoria_stairs": "Escaleras de Escoria Oscura Pavimentada", - "block.create.paved_dark_scoria_wall": "Pared de Escoria Oscura Pavimentada", - "block.create.paved_diorite": "Diorita Pavimentada", - "block.create.paved_diorite_slab": "Losa de Diorita Pavimentada", - "block.create.paved_diorite_stairs": "Escaleras de Diorita Pavimentada", - "block.create.paved_diorite_wall": "Pared de Diorita Pavimentada", - "block.create.paved_dolomite": "Dolomita Pavimentada", - "block.create.paved_dolomite_slab": "Losa de Dolomita Pavimentada", - "block.create.paved_dolomite_stairs": "Escaleras de Dolomita Pavimentada", - "block.create.paved_dolomite_wall": "Pared de Dolomita Pavimentada", - "block.create.paved_gabbro": "Gabro Pavimentado", - "block.create.paved_gabbro_slab": "Losa de Gabro Pavimentado", - "block.create.paved_gabbro_stairs": "Escaleras de Gabro Pavimentado", - "block.create.paved_gabbro_wall": "Pared de Gabro Pavimentado", - "block.create.paved_granite": "Granito Pavimentado", - "block.create.paved_granite_slab": "Losa de Granito Pavimentado", - "block.create.paved_granite_stairs": "Escaleras de Granito Pavimentado", - "block.create.paved_granite_wall": "Pared de Granito Pavimentado", - "block.create.paved_limestone": "Caliza Pavimentada", - "block.create.paved_limestone_slab": "Losa de Caliza Pavimentada", - "block.create.paved_limestone_stairs": "Escaleras de Caliza Pavimentada", - "block.create.paved_limestone_wall": "Pared de Caliza Pavimentada", - "block.create.paved_scoria": "Escoria Pavimentada", - "block.create.paved_scoria_slab": "Losa de Escoria Pavimentada", - "block.create.paved_scoria_stairs": "Escaleras de Escoria Pavimentada", - "block.create.paved_scoria_wall": "Pared de Escoria Pavimentada", - "block.create.paved_weathered_limestone": "Caliza Meteorizada Pavimentada", - "block.create.paved_weathered_limestone_slab": "Losa de Caliza Meteorizada Pavimentada", - "block.create.paved_weathered_limestone_stairs": "Escaleras de Caliza Meteorizada Pavimentada", - "block.create.paved_weathered_limestone_wall": "Pared de Caliza Meteorizada Pavimentada", - "block.create.peculiar_bell": "UNLOCALIZED: Peculiar Bell", - "block.create.pink_nixie_tube": "UNLOCALIZED: Pink Nixie Tube", - "block.create.pink_sail": "Vela Rosa", - "block.create.pink_seat": "Asiento Rosa", - "block.create.pink_valve_handle": "Manija de Válvula Rosa", - "block.create.piston_extension_pole": "Poste de Extensión de Pistón", - "block.create.polished_dark_scoria": "Escoria Oscura Pulida", - "block.create.polished_dark_scoria_slab": "Losa de Escoria Oscura Pulida", - "block.create.polished_dark_scoria_stairs": "Escaleras de Escoria Oscura Pulida", - "block.create.polished_dark_scoria_wall": "Pared de Escoria Oscura Pulida", - "block.create.polished_dolomite": "Dolomita Pulida", - "block.create.polished_dolomite_slab": "Losa de Dolomita Pulida", - "block.create.polished_dolomite_stairs": "Escaleras de Dolomita Pulida", - "block.create.polished_dolomite_wall": "Pared de Dolomita Pulida", - "block.create.polished_gabbro": "Gabro Pulido", - "block.create.polished_gabbro_slab": "Losa de Gabro Pulido", - "block.create.polished_gabbro_stairs": "Escaleras de Gabro Pulido", - "block.create.polished_gabbro_wall": "Pared de Gabro Pulido", - "block.create.polished_limestone": "Caliza Pulida", - "block.create.polished_limestone_slab": "Losa de Caliza Pulida", - "block.create.polished_limestone_stairs": "Escaleras de Caliza Pulida", - "block.create.polished_limestone_wall": "Pared de Caliza Pulida", - "block.create.polished_scoria": "Escoria Pulida", - "block.create.polished_scoria_slab": "Losa de Escoria Pulida", - "block.create.polished_scoria_stairs": "Escaleras de Escoria Pulida", - "block.create.polished_scoria_wall": "Pared de Escoria Pulida", - "block.create.polished_weathered_limestone": "Caliza Meteorizada Pulida", - "block.create.polished_weathered_limestone_slab": "Losa de Escoria Pulida", - "block.create.polished_weathered_limestone_stairs": "Escaleras de Escoria Pulida", - "block.create.polished_weathered_limestone_wall": "Pared de Escoria Pulida", - "block.create.portable_fluid_interface": "Interfaz de Fluidos Portable", - "block.create.portable_storage_interface": "Interfaz de Almacenamiento Portable", - "block.create.powered_latch": "Cerradura Electrica", - "block.create.powered_toggle_latch": "Cerradura Electrica de Palanca", - "block.create.pulley_magnet": "Polea con Imán", - "block.create.pulse_repeater": "Repetidor de Pulso", - "block.create.purple_nixie_tube": "UNLOCALIZED: Purple Nixie Tube", - "block.create.purple_sail": "Vela Morada", - "block.create.purple_seat": "Asiento Morado", - "block.create.purple_valve_handle": "Manija de Válvula Morada", - "block.create.radial_chassis": "Chasis Radial", - "block.create.red_nixie_tube": "UNLOCALIZED: Red Nixie Tube", - "block.create.red_sail": "Vela Roja", - "block.create.red_seat": "Asiento Rojo", - "block.create.red_valve_handle": "Manija de Válvula Roja", - "block.create.redstone_contact": "Contacto de Redstone", - "block.create.redstone_link": "Enlace de Redstone", - "block.create.refined_radiance_casing": "Carcasa Radiante", - "block.create.reinforced_rail": "Vía Reforzada", - "block.create.rope": "Cuerda", - "block.create.rope_pulley": "Polea con Cuerda", - "block.create.rotation_speed_controller": "Controlador de Velocidad de Rotación", - "block.create.sail_frame": "Marco de Vela", - "block.create.schematic_table": "Mesa de Esquemas", - "block.create.schematicannon": "Esquemacañon", - "block.create.scoria": "Escoria", - "block.create.scoria_bricks": "Ladrillos de Escoria", - "block.create.scoria_bricks_slab": "Losa de Ladrillos de Escoria", - "block.create.scoria_bricks_stairs": "Escaleras de Ladrillos de Escoria", - "block.create.scoria_bricks_wall": "Pared de Ladrillos de Escoria", - "block.create.scoria_cobblestone": "Piedra Labrada de Escoria", - "block.create.scoria_cobblestone_slab": "Losa de Piedra Labrada de Escoria", - "block.create.scoria_cobblestone_stairs": "Escaleras de Piedra Labrada de Escoria", - "block.create.scoria_cobblestone_wall": "Pared de Piedra Labrada de Escoria", - "block.create.scoria_pillar": "Pilar de Escoria", - "block.create.secondary_linear_chassis": "Chasis Lineal Secundario", - "block.create.sequenced_gearshift": "Cambio de Marcha Secuenciado", - "block.create.shadow_steel_casing": "Carcasa Sombría", - "block.create.shaft": "Eje", - "block.create.smart_chute": "UNLOCALIZED: Smart Chute", - "block.create.smart_fluid_pipe": "Tubería de Fluidos Inteligente", - "block.create.speedometer": "Velocímetro", - "block.create.spout": "Canaleta", - "block.create.spruce_window": "Ventana de Abeto", - "block.create.spruce_window_pane": "Panel de Ventana de Abeto", - "block.create.sticker": "UNLOCALIZED: Sticker", - "block.create.sticky_mechanical_piston": "Pistón Mecánico Pegajoso", - "block.create.stockpile_switch": "Interruptor de Pila", - "block.create.stressometer": "Estresómetro", - "block.create.tiled_glass": "Vidrio de Azulejos", - "block.create.tiled_glass_pane": "Panel de Vidrio de Azulejos", - "block.create.turntable": "Mesa Giratoria", - "block.create.vertical_framed_glass": "Vidrio Enmarcado Vertical", - "block.create.vertical_framed_glass_pane": "Panel de Vidrio Enmarcado Vertical", - "block.create.warped_window": "Ventana Distorsionada", - "block.create.warped_window_pane": "Panel de ventana Distorsionada", - "block.create.water_wheel": "Rueda Hidráulica", - "block.create.weathered_limestone": "Caliza Meteorizada", - "block.create.weathered_limestone_bricks": "Ladrillos de Caliza Meteorizada", - "block.create.weathered_limestone_bricks_slab": "Losa de Caliza Meteorizada", - "block.create.weathered_limestone_bricks_stairs": "Escaleras de Caliza Meteorizada", - "block.create.weathered_limestone_bricks_wall": "Pared de Caliza Meteorizada", - "block.create.weathered_limestone_cobblestone": "Piedra Labrada de Caliza Meteorizada", - "block.create.weathered_limestone_cobblestone_slab": "Losa de Piedra Labrada de Caliza Meteorizada", - "block.create.weathered_limestone_cobblestone_stairs": "Escaleras de Piedra Labrada de Caliza Meteorizada", - "block.create.weathered_limestone_cobblestone_wall": "Pared de Piedra Labrada de Caliza Meteorizada", - "block.create.weathered_limestone_pillar": "Pilar de Caliza Meteorizada", - "block.create.weighted_ejector": "UNLOCALIZED: Weighted Ejector", - "block.create.white_nixie_tube": "UNLOCALIZED: White Nixie Tube", - "block.create.white_sail": "Vela Blanca", - "block.create.white_seat": "Asiento Blanco", - "block.create.white_valve_handle": "Manija de Válvula Blanca", - "block.create.windmill_bearing": "Rodamiento de Molino de Viento", - "block.create.wooden_bracket": "Soporte de Madera", - "block.create.yellow_nixie_tube": "UNLOCALIZED: Yellow Nixie Tube", - "block.create.yellow_sail": "Vela Amarilla", - "block.create.yellow_seat": "Asiento Amarillo", - "block.create.yellow_valve_handle": "Manija de Válvula Amarilla", - "block.create.zinc_block": "Bloque de Zinc", - "block.create.zinc_ore": "Mineral de Zinc", - - "enchantment.create.capacity": "UNLOCALIZED: Capacity", - "enchantment.create.potato_recovery": "UNLOCALIZED: Potato Recovery", - - "entity.create.contraption": "Artefacto", - "entity.create.crafting_blueprint": "UNLOCALIZED: Crafting Blueprint", - "entity.create.gantry_contraption": "UNLOCALIZED: Gantry Contraption", - "entity.create.potato_projectile": "UNLOCALIZED: Potato Projectile", - "entity.create.seat": "Asiento", - "entity.create.stationary_contraption": "Artefacto Estacionario", - "entity.create.super_glue": "Super Pegamento", - - "fluid.create.potion": "Poción", - "fluid.create.tea": "Té del Constructor", - - "item.create.andesite_alloy": "Aleación de Andesita", - "item.create.attribute_filter": "Filtro por Atributos", - "item.create.bar_of_chocolate": "Barra de Chocolate", - "item.create.belt_connector": "Conector de Correa", - "item.create.blaze_cake": "Pastel de Blaze", - "item.create.blaze_cake_base": "Base de Pastel de Blaze", - "item.create.brass_hand": "Mano de Latón", - "item.create.brass_ingot": "Lingote de Latón", - "item.create.brass_nugget": "Pepita de Latón", - "item.create.brass_sheet": "Lámina de Latón", - "item.create.builders_tea": "Té del Constructor", - "item.create.chest_minecart_contraption": "Artefacto de Vagón con Cofre", - "item.create.chocolate_bucket": "Cubeta de Chocolate", - "item.create.chocolate_glazed_berries": "UNLOCALIZED: Chocolate Glazed Berries", - "item.create.chromatic_compound": "Compuesto Cromático", - "item.create.cinder_flour": "Ceniza Molida", - "item.create.copper_backtank": "UNLOCALIZED: Copper Backtank", - "item.create.copper_ingot": "Lingote de Cobre", - "item.create.copper_nugget": "Pepita de Cobre", - "item.create.copper_sheet": "Lámina de Cobre", - "item.create.crafter_slot_cover": "Cubierta de Ranura del Crafter", - "item.create.crafting_blueprint": "UNLOCALIZED: Crafting Blueprint", - "item.create.creative_blaze_cake": "UNLOCALIZED: Creative Blaze Cake", - "item.create.crushed_aluminum_ore": "Mineral de Aluminio Molido", - "item.create.crushed_brass": "Latón Molido", - "item.create.crushed_copper_ore": "Mineral de Cobre Molido", - "item.create.crushed_gold_ore": "Mineral de Oro Molido", - "item.create.crushed_iron_ore": "Mineral de Hierro Molido", - "item.create.crushed_lead_ore": "Mineral de Plomo Molido", - "item.create.crushed_nickel_ore": "Mineral de Nickel Molido", - "item.create.crushed_osmium_ore": "Mineral de Osmio Molido", - "item.create.crushed_platinum_ore": "Mineral de Platino Molido", - "item.create.crushed_quicksilver_ore": "Mineral de Mercurio Molido", - "item.create.crushed_silver_ore": "Mineral de Plata Molido", - "item.create.crushed_tin_ore": "Mineral de Estaño Molido", - "item.create.crushed_uranium_ore": "Mineral de Uranio Molido", - "item.create.crushed_zinc_ore": "Mineral de Zinc Molido", - "item.create.diving_boots": "UNLOCALIZED: Diving Boots", - "item.create.diving_helmet": "UNLOCALIZED: Diving Helmet", - "item.create.dough": "Masa", - "item.create.electron_tube": "Válvula Electrónica", - "item.create.empty_blaze_burner": "Quemador de Blaze Vacío", - "item.create.empty_schematic": "Esquema Vacío", - "item.create.extendo_grip": "Brazo Extensor", - "item.create.filter": "Filtro", - "item.create.furnace_minecart_contraption": "Artefacto de Vagón con Horno", - "item.create.goggles": "Gafas de Protección para Ingenieros", - "item.create.golden_sheet": "Lámina de Oro", - "item.create.handheld_worldshaper": "Pistola de Manipulación de Mundo", - "item.create.honey_bucket": "Cubeta de Miel", - "item.create.honeyed_apple": "UNLOCALIZED: Honeyed Apple", - "item.create.incomplete_cogwheel": "UNLOCALIZED: Incomplete Cogwheel", - "item.create.incomplete_large_cogwheel": "UNLOCALIZED: Incomplete Large Cogwheel", - "item.create.incomplete_precision_mechanism": "UNLOCALIZED: Incomplete Precision Mechanism", - "item.create.iron_sheet": "Lámina de Hierro", - "item.create.linked_controller": "UNLOCALIZED: Linked Controller", - "item.create.minecart_contraption": "Artefacto de Vagón", - "item.create.minecart_coupling": "Acoplamiento de Vagonetas", - "item.create.polished_rose_quartz": "Cuarzo Rosa Pulido", - "item.create.potato_cannon": "UNLOCALIZED: Potato Cannon", - "item.create.powdered_obsidian": "Polvo de Obsidiana", - "item.create.precision_mechanism": "UNLOCALIZED: Precision Mechanism", - "item.create.propeller": "Hélice", - "item.create.red_sand_paper": "Papel de Arena Roja", - "item.create.refined_radiance": "Radiancia Refinada", - "item.create.rose_quartz": "Cuarzo Rosa", - "item.create.sand_paper": "Papel de Arena", - "item.create.schematic": "Esquema", - "item.create.schematic_and_quill": "Esquema y Pluma", - "item.create.shadow_steel": "Acero Sombrío", - "item.create.super_glue": "Super Pegamento", - "item.create.sweet_roll": "UNLOCALIZED: Sweet Roll", - "item.create.tree_fertilizer": "Fertilizador de Árboles", - "item.create.vertical_gearbox": "Transmisión Vertical", - "item.create.wand_of_symmetry": "Vara de la Simetria", - "item.create.wheat_flour": "Harina de Trigo", - "item.create.whisk": "Batidor", - "item.create.wrench": "Llave Inglesa", - "item.create.zinc_ingot": "Lingote de Zinc", - "item.create.zinc_nugget": "Pepita de Zinc", - - - "_": "->------------------------] Advancements [------------------------<-", - - "advancement.create.root": "UNLOCALIZED: Welcome to Create", - "advancement.create.root.desc": "UNLOCALIZED: It's time to start building some amazing Contraptions!", - "advancement.create.andesite_alloy": "UNLOCALIZED: Alliterations Aplenty", - "advancement.create.andesite_alloy.desc": "UNLOCALIZED: Create's materials have weird names, Andesite Alloy is one of them.", - "advancement.create.its_alive": "UNLOCALIZED: It's Alive!", - "advancement.create.its_alive.desc": "UNLOCALIZED: Watch your first kinetic component spin.", - "advancement.create.shifting_gears": "UNLOCALIZED: Shifting Gears", - "advancement.create.shifting_gears.desc": "UNLOCALIZED: Connect a Large Cogwheel to a Small Cogwheel, allowing you to change the speed of your contraption.", - "advancement.create.overstressed": "UNLOCALIZED: Overstressed", - "advancement.create.overstressed.desc": "UNLOCALIZED: Experience the limits of stress firsthand.", - "advancement.create.belt": "UNLOCALIZED: Kelp Drive", - "advancement.create.belt.desc": "UNLOCALIZED: Connect two shafts with a Mechanical Belt.", - "advancement.create.tunnel": "UNLOCALIZED: Take cover!", - "advancement.create.tunnel.desc": "UNLOCALIZED: Embellish your mechanical belt with a Tunnel.", - "advancement.create.splitter_tunnel": "UNLOCALIZED: Divide and Conquer", - "advancement.create.splitter_tunnel.desc": "UNLOCALIZED: Create a splitter with a group of Brass Tunnels.", - "advancement.create.chute": "UNLOCALIZED: Tumbling down", - "advancement.create.chute.desc": "UNLOCALIZED: Place a chute, the vertical counterpart of the belt.", - "advancement.create.upward_chute": "UNLOCALIZED: Aerial Abduction", - "advancement.create.upward_chute.desc": "UNLOCALIZED: Watch a thrown item fly up into a fan-powered chute.", - "advancement.create.belt_funnel": "UNLOCALIZED: Funnels' Flappy Danglers", - "advancement.create.belt_funnel.desc": "UNLOCALIZED: Place a sideways funnel on top of a belt or depot to create a special type.", - "advancement.create.belt_funnel_kiss": "UNLOCALIZED: The Parrots and the Flaps", - "advancement.create.belt_funnel_kiss.desc": "UNLOCALIZED: Make two belt mounted funnels kiss.", - "advancement.create.fan": "UNLOCALIZED: Mechanical Airbender", - "advancement.create.fan.desc": "UNLOCALIZED: Ride the stream of air provided by an Encased Fan.", - "advancement.create.fan_lava": "UNLOCALIZED: Geothermal Space Heater", - "advancement.create.fan_lava.desc": "UNLOCALIZED: Get caught in a stream of air that smelts things.", - "advancement.create.fan_water": "UNLOCALIZED: Wacky Washing", - "advancement.create.fan_water.desc": "UNLOCALIZED: Get caught in a stream of air that washes things.", - "advancement.create.fan_smoke": "UNLOCALIZED: Mechanical Bellows", - "advancement.create.fan_smoke.desc": "UNLOCALIZED: Get caught in a stream of air that smokes items.", - "advancement.create.wrench": "UNLOCALIZED: Configure Conveniently", - "advancement.create.wrench.desc": "UNLOCALIZED: Create a Wrench to aid you in building your contraptions.", - "advancement.create.goggles": "UNLOCALIZED: Stress-O-Vision", - "advancement.create.goggles.desc": "UNLOCALIZED: Create some Engineer's Goggles to aid you in getting more kinetic information from components.", - "advancement.create.speedometer": "UNLOCALIZED: But How Fast Exactly?", - "advancement.create.speedometer.desc": "UNLOCALIZED: Place and power a Speedometer. Look at it through your goggles to read its exact value.", - "advancement.create.stressometer": "UNLOCALIZED: But How Stressed Exactly?", - "advancement.create.stressometer.desc": "UNLOCALIZED: Place and power a Stressometer. Look at it through your goggles to read its exact value.", - "advancement.create.aesthetics": "UNLOCALIZED: Boom, Aesthetics!", - "advancement.create.aesthetics.desc": "UNLOCALIZED: Place brackets on a shaft, pipe and cogwheel.", - "advancement.create.reinforced": "UNLOCALIZED: Boom, Reinforced!", - "advancement.create.reinforced.desc": "UNLOCALIZED: Use fitting casing blocks on a shaft, pipe and mechanical belt.", - "advancement.create.water_wheel": "UNLOCALIZED: Harnessing Hydraulics", - "advancement.create.water_wheel.desc": "UNLOCALIZED: Place a Water Wheel and try getting it to spin!", - "advancement.create.chocolate_wheel": "UNLOCALIZED: Tasteful power", - "advancement.create.chocolate_wheel.desc": "UNLOCALIZED: Run a Water Wheel with molten Chocolate.", - "advancement.create.lava_wheel": "UNLOCALIZED: Magma Wheel", - "advancement.create.lava_wheel.desc": "UNLOCALIZED: This shouldn't have worked.", - "advancement.create.cuckoo": "UNLOCALIZED: Is it time?", - "advancement.create.cuckoo.desc": "UNLOCALIZED: Witness a cuckhoo clock announce bedtime.", - "advancement.create.millstone": "UNLOCALIZED: Pocket Crusher", - "advancement.create.millstone.desc": "UNLOCALIZED: Place and power a Millstone.", - "advancement.create.windmill": "UNLOCALIZED: A mild Breeze", - "advancement.create.windmill.desc": "UNLOCALIZED: Assemble a windmill.", - "advancement.create.maxed_windmill": "UNLOCALIZED: A strong breeze", - "advancement.create.maxed_windmill.desc": "UNLOCALIZED: Assemble a windmill of maximum strength.", - "advancement.create.andesite_casing": "UNLOCALIZED: The Andesite Age", - "advancement.create.andesite_casing.desc": "UNLOCALIZED: Use some Andesite Alloy and Wood to create a basic Casing.", - "advancement.create.mechanical_drill": "UNLOCALIZED: Stationary Breakers", - "advancement.create.mechanical_drill.desc": "UNLOCALIZED: Place and power a Mechanical Drill.", - "advancement.create.press": "UNLOCALIZED: Press Goes 'Bonk!'", - "advancement.create.press.desc": "UNLOCALIZED: Power a Mechanical Press and use it to create some Sheets.", - "advancement.create.polished_rose_quartz": "UNLOCALIZED: Pink Diamonds", - "advancement.create.polished_rose_quartz.desc": "UNLOCALIZED: Use a piece of Sand Paper to polish Rose Quartz until it becomes transparent.", - "advancement.create.electron_tube": "UNLOCALIZED: Beep Boop", - "advancement.create.electron_tube.desc": "UNLOCALIZED: Make some Electron Tubes, useful in crafting less primitive machinery.", - "advancement.create.mechanical_saw": "UNLOCALIZED: Stationary Chopping", - "advancement.create.mechanical_saw.desc": "UNLOCALIZED: Place and power a Mechanical Saw.", - "advancement.create.basin": "UNLOCALIZED: Basin Operation", - "advancement.create.basin.desc": "UNLOCALIZED: Place a Basin and try throwing items into it.", - "advancement.create.mixer": "UNLOCALIZED: Mixin' It Up", - "advancement.create.mixer.desc": "UNLOCALIZED: Place a Mechanical Mixer above the Basin, power it, and start mixing some ingredients.", - "advancement.create.blaze_burner": "UNLOCALIZED: A living Fireplace", - "advancement.create.blaze_burner.desc": "UNLOCALIZED: Obtain a Blaze Burner.", - "advancement.create.compact": "UNLOCALIZED: Automated Compacting", - "advancement.create.compact.desc": "UNLOCALIZED: Use a Press and a Basin to compact some items.", - "advancement.create.brass": "UNLOCALIZED: Actual Alloys", - "advancement.create.brass.desc": "UNLOCALIZED: Use Crushed Copper and Crushed Zinc to create some Brass.", - "advancement.create.brass_casing": "UNLOCALIZED: The Brass Age", - "advancement.create.brass_casing.desc": "UNLOCALIZED: Use newly obtained Brass and some Wood to create a more advanced Casing.", - "advancement.create.copper_casing": "UNLOCALIZED: The Copper Age", - "advancement.create.copper_casing.desc": "UNLOCALIZED: Use some Copper Sheets and Wood to create some Copper Casings.", - "advancement.create.spout": "UNLOCALIZED: Sploosh", - "advancement.create.spout.desc": "UNLOCALIZED: Watch a fluid item being filled using a spout.", - "advancement.create.spout_potion": "UNLOCALIZED: Global Brewery", - "advancement.create.spout_potion.desc": "UNLOCALIZED: Watch a spout fill a bottle with potion fluid.", - "advancement.create.chocolate": "UNLOCALIZED: A world of Imagination", - "advancement.create.chocolate.desc": "UNLOCALIZED: Obtain a bucket of Molten Chocolate.", - "advancement.create.item_drain": "UNLOCALIZED: Tumble Draining", - "advancement.create.item_drain.desc": "UNLOCALIZED: Watch a fluid item being emptied by an item drain.", - "advancement.create.chained_item_drain": "UNLOCALIZED: Let it roll!", - "advancement.create.chained_item_drain.desc": "UNLOCALIZED: Watch an item roll across several chained item drains.", - "advancement.create.glass_pipe": "UNLOCALIZED: Flow Spy", - "advancement.create.glass_pipe.desc": "UNLOCALIZED: Watch fluid propagate through a windowed fluid pipe. Straight fluid pipes become windowed when a wrench is used on them.", - "advancement.create.pipe_collision": "UNLOCALIZED: Never cross the Streams!", - "advancement.create.pipe_collision.desc": "UNLOCALIZED: Watch two fluids meet in your pipe network.", - "advancement.create.pipe_spill": "UNLOCALIZED: There's a leak!", - "advancement.create.pipe_spill.desc": "UNLOCALIZED: Watch an open end of a pipe take or place fluids into the world.", - "advancement.create.hose_pulley": "UNLOCALIZED: Industrial Spillage", - "advancement.create.hose_pulley.desc": "UNLOCALIZED: Lower a hose pulley and watch it drain or fill a body of fluid.", - "advancement.create.infinite_water": "UNLOCALIZED: Draining the Ocean", - "advancement.create.infinite_water.desc": "UNLOCALIZED: Pump from a body of Water large enough to be considered Infinite.", - "advancement.create.infinite_lava": "UNLOCALIZED: Draining the Planets' Core", - "advancement.create.infinite_lava.desc": "UNLOCALIZED: Pump from a body of Lava large enough to be considered Infinite.", - "advancement.create.infinite_chocolate": "UNLOCALIZED: Drowning in Imagination", - "advancement.create.infinite_chocolate.desc": "UNLOCALIZED: Pump from a body of Molten Chocolate large enough to be considered Infinite.", - "advancement.create.crafter": "UNLOCALIZED: Automated Assembly", - "advancement.create.crafter.desc": "UNLOCALIZED: Place and power some Mechanical Crafters.", - "advancement.create.clockwork_bearing": "UNLOCALIZED: Contraption o'clock", - "advancement.create.clockwork_bearing.desc": "UNLOCALIZED: Assemble a Structure mounted on a Clockwork Bearing.", - "advancement.create.nixie_tube": "UNLOCALIZED: Signs of Style", - "advancement.create.nixie_tube.desc": "UNLOCALIZED: Obtain and place down a pair of Nixie Tubes.", - "advancement.create.deployer": "UNLOCALIZED: Poke, Place, and Attack", - "advancement.create.deployer.desc": "UNLOCALIZED: Place and power a Deployer, the perfect reflection of yourself.", - "advancement.create.speed_controller": "UNLOCALIZED: Engineers hate him!", - "advancement.create.speed_controller.desc": "UNLOCALIZED: Place a Rotation Speed Controller, the ultimate device for changing gear.", - "advancement.create.flywheel": "UNLOCALIZED: Heart of the Factory", - "advancement.create.flywheel.desc": "UNLOCALIZED: Successfully connect an engine to the Flywheel.", - "advancement.create.overstress_flywheel": "UNLOCALIZED: High levels of Stress", - "advancement.create.overstress_flywheel.desc": "UNLOCALIZED: Overstress a Furnace Engine.", - "advancement.create.precision_mechanism": "UNLOCALIZED: Complex Curiosities", - "advancement.create.precision_mechanism.desc": "UNLOCALIZED: Assemble a Precision Mechanism.", - "advancement.create.mechanical_arm": "UNLOCALIZED: Busy Hands!", - "advancement.create.mechanical_arm.desc": "UNLOCALIZED: Craft a Mechanical Arm, select in- and outputs, place it down and give it power; then watch as it does all the work for you.", - "advancement.create.musical_arm": "UNLOCALIZED: Play Me My Theme Tune!", - "advancement.create.musical_arm.desc": "UNLOCALIZED: Watch a Mechanical Arm operate your Jukebox.", - "advancement.create.arm_many_targets": "UNLOCALIZED: Organize-o-Tron", - "advancement.create.arm_many_targets.desc": "UNLOCALIZED: Program a Mechanical Arm with ten or more output locations.", - "advancement.create.arm_blaze_burner": "UNLOCALIZED: Combust-o-Tron", - "advancement.create.arm_blaze_burner.desc": "UNLOCALIZED: Instruct a Mechanical Arm to feed your Blaze Burner.", - "advancement.create.fist_bump": "UNLOCALIZED: Pound It, Bro!", - "advancement.create.fist_bump.desc": "UNLOCALIZED: Make two Deployers fist-bump.", - "advancement.create.crushing_wheel": "UNLOCALIZED: A Pair of Giants", - "advancement.create.crushing_wheel.desc": "UNLOCALIZED: Create some Crushing Wheels to break down more materials more effectively.", - "advancement.create.blaze_cake": "UNLOCALIZED: Sugar Rush", - "advancement.create.blaze_cake.desc": "UNLOCALIZED: Bake your blaze burner a special cake.", - "advancement.create.chromatic_compound": "UNLOCALIZED: Mysterious Minerals", - "advancement.create.chromatic_compound.desc": "UNLOCALIZED: Create a Bar of Chromatic Compound.", - "advancement.create.shadow_steel": "UNLOCALIZED: Void Returner", - "advancement.create.shadow_steel.desc": "UNLOCALIZED: Create Shadow Steel, a metal bar of nothingness.", - "advancement.create.refined_radiance": "UNLOCALIZED: Bright and Inspiring", - "advancement.create.refined_radiance.desc": "UNLOCALIZED: Create Refined Radiance, a powerful chromatic substance.", - "advancement.create.chromatic_age": "UNLOCALIZED: The Chromatic Age", - "advancement.create.chromatic_age.desc": "UNLOCALIZED: Create casing blocks of the light and dark.", - "advancement.create.wand_of_symmetry": "UNLOCALIZED: Radiant Mirrors", - "advancement.create.wand_of_symmetry.desc": "UNLOCALIZED: Craft a Staff of Symmetry.", - "advancement.create.extendo_grip": "UNLOCALIZED: Boioioing!", - "advancement.create.extendo_grip.desc": "UNLOCALIZED: Get hold of an Extendo Grip.", - "advancement.create.potato_cannon": "UNLOCALIZED: Fwoomp!", - "advancement.create.potato_cannon.desc": "UNLOCALIZED: Defeat an enemy with your Potato Cannon.", - "advancement.create.dual_extendo_grip": "UNLOCALIZED: Ultimate Boing-age", - "advancement.create.dual_extendo_grip.desc": "UNLOCALIZED: Dual wield Extendo Grips for super-human reach.", - "advancement.create.eob": "UNLOCALIZED: End of Beta", - "advancement.create.eob.desc": "UNLOCALIZED: Expect more content here in the future. <3", - - - "_": "->------------------------] UI & Messages [------------------------<-", - - "itemGroup.create.base": "UNLOCALIZED: Create", - "itemGroup.create.palettes": "UNLOCALIZED: Create Palettes", - - "death.attack.create.crush": "UNLOCALIZED: %1$s was processed by Crushing Wheels", - "death.attack.create.crush.player": "UNLOCALIZED: %1$s was thrown into Crushing Wheels by %2$s", - "death.attack.create.fan_fire": "UNLOCALIZED: %1$s got smoked by an Encased Fan", - "death.attack.create.fan_fire.player": "UNLOCALIZED: %1$s was thrown into a smoker by %2$s", - "death.attack.create.fan_lava": "UNLOCALIZED: %1$s was incinerated by an Encased Fan", - "death.attack.create.fan_lava.player": "UNLOCALIZED: %1$s was thrown into a smelter by %2$s", - "death.attack.create.mechanical_drill": "UNLOCALIZED: %1$s was impaled by a Mechanical Drill", - "death.attack.create.mechanical_drill.player": "UNLOCALIZED: %1$s was thrown in front of a Drill by %2$s", - "death.attack.create.mechanical_saw": "UNLOCALIZED: %1$s got cut in half by a Mechanical Saw", - "death.attack.create.mechanical_saw.player": "UNLOCALIZED: %1$s was thrown into a Saw by %2$s", - "death.attack.create.potato_cannon": "UNLOCALIZED: %1$s was shot by %2$s's Potato Cannon", - "death.attack.create.potato_cannon.item": "UNLOCALIZED: %1$s was shot by %2$s using %3$s", - "death.attack.create.cuckoo_clock_explosion": "UNLOCALIZED: %1$s was blown up by tampered cuckoo clock", - "death.attack.create.cuckoo_clock_explosion.player": "UNLOCALIZED: %1$s was blown up by tampered cuckoo clock", - - "create.block.deployer.damage_source_name": "UNLOCALIZED: a rogue Deployer", - "create.block.cart_assembler.invalid": "UNLOCALIZED: Place your Cart Assembler on a rail block", - - "create.menu.return": "UNLOCALIZED: Return to Menu", - "create.menu.configure": "UNLOCALIZED: Configure...", - "create.menu.ponder_index": "UNLOCALIZED: Ponder Index", - "create.menu.only_ingame": "UNLOCALIZED: Available in the Pause Menu", - "create.menu.project_page": "UNLOCALIZED: Project Page", - "create.menu.report_bugs": "UNLOCALIZED: Report Issues", - "create.menu.support": "UNLOCALIZED: Support Us", - - "create.recipe.crushing": "UNLOCALIZED: Crushing", - "create.recipe.milling": "UNLOCALIZED: Milling", - "create.recipe.fan_washing": "UNLOCALIZED: Bulk Washing", - "create.recipe.fan_washing.fan": "UNLOCALIZED: Fan behind Flowing Water", - "create.recipe.fan_smoking": "UNLOCALIZED: Bulk Smoking", - "create.recipe.fan_smoking.fan": "UNLOCALIZED: Fan behind Fire", - "create.recipe.fan_blasting": "UNLOCALIZED: Bulk Blasting", - "create.recipe.fan_blasting.fan": "UNLOCALIZED: Fan behind Lava", - "create.recipe.pressing": "UNLOCALIZED: Pressing", - "create.recipe.mixing": "UNLOCALIZED: Mixing", - "create.recipe.deploying": "UNLOCALIZED: Deploying", - "create.recipe.automatic_shapeless": "UNLOCALIZED: Automated Shapeless Crafting", - "create.recipe.automatic_brewing": "UNLOCALIZED: Automated Brewing", - "create.recipe.packing": "UNLOCALIZED: Compacting", - "create.recipe.automatic_packing": "UNLOCALIZED: Automated Packing", - "create.recipe.sawing": "UNLOCALIZED: Sawing", - "create.recipe.mechanical_crafting": "UNLOCALIZED: Mechanical Crafting", - "create.recipe.automatic_shaped": "UNLOCALIZED: Automated Shaped Crafting", - "create.recipe.block_cutting": "UNLOCALIZED: Block Cutting", - "create.recipe.wood_cutting": "UNLOCALIZED: Wood Cutting", - "create.recipe.sandpaper_polishing": "UNLOCALIZED: Sandpaper Polishing", - "create.recipe.mystery_conversion": "UNLOCALIZED: Mysterious Conversion", - "create.recipe.spout_filling": "UNLOCALIZED: Filling by Spout", - "create.recipe.draining": "UNLOCALIZED: Item Draining", - "create.recipe.sequenced_assembly": "UNLOCALIZED: Sequenced Assembly", - "create.recipe.assembly.next": "UNLOCALIZED: Next: %1$s", - "create.recipe.assembly.step": "UNLOCALIZED: Step %1$s:", - "create.recipe.assembly.progress": "UNLOCALIZED: Progress: %1$s/%2$s", - "create.recipe.assembly.pressing": "UNLOCALIZED: Process in Press", - "create.recipe.assembly.spout_filling_fluid": "UNLOCALIZED: Spout %1$s", - "create.recipe.assembly.deploying_item": "UNLOCALIZED: Deploy %1$s", - "create.recipe.assembly.cutting": "UNLOCALIZED: Cut with Saw", - "create.recipe.assembly.repeat": "UNLOCALIZED: Repeat Sequence %1$s Times", - "create.recipe.assembly.junk": "UNLOCALIZED: Random salvage", - "create.recipe.processing.chance": "UNLOCALIZED: %1$s%% Chance", - "create.recipe.heat_requirement.none": "UNLOCALIZED: No Heating Required", - "create.recipe.heat_requirement.heated": "UNLOCALIZED: Heated", - "create.recipe.heat_requirement.superheated": "UNLOCALIZED: Super-Heated", - - "create.generic.range": "UNLOCALIZED: Range", - "create.generic.radius": "UNLOCALIZED: Radius", - "create.generic.width": "UNLOCALIZED: Width", - "create.generic.height": "UNLOCALIZED: Height", - "create.generic.length": "UNLOCALIZED: Length", - "create.generic.speed": "UNLOCALIZED: Speed", - "create.generic.delay": "UNLOCALIZED: Delay", - "create.generic.unit.ticks": "UNLOCALIZED: Ticks", - "create.generic.unit.seconds": "UNLOCALIZED: Seconds", - "create.generic.unit.minutes": "UNLOCALIZED: Minutes", - "create.generic.unit.rpm": "UNLOCALIZED: RPM", - "create.generic.unit.stress": "UNLOCALIZED: su", - "create.generic.unit.degrees": "UNLOCALIZED: °", - "create.generic.unit.millibuckets": "UNLOCALIZED: %1$smB", - "create.generic.clockwise": "UNLOCALIZED: Clockwise", - "create.generic.counter_clockwise": "UNLOCALIZED: Counter-Clockwise", - - "create.action.scroll": "UNLOCALIZED: Scroll", - "create.action.confirm": "UNLOCALIZED: Confirm", - "create.action.abort": "UNLOCALIZED: Abort", - "create.action.saveToFile": "UNLOCALIZED: Save", - "create.action.discard": "UNLOCALIZED: Discard", - - "create.keyinfo.toolmenu": "UNLOCALIZED: Focus Tool Menu", - "create.keyinfo.scrollup": "UNLOCALIZED: Simulate Mousewheel Up (inworld)", - "create.keyinfo.scrolldown": "UNLOCALIZED: Simulate Mousewheel Down (inworld)", - - "create.gui.scrollInput.defaultTitle": "UNLOCALIZED: Choose an Option:", - "create.gui.scrollInput.scrollToModify": "UNLOCALIZED: Scroll to Modify", - "create.gui.scrollInput.scrollToAdjustAmount": "UNLOCALIZED: Scroll to Adjust Amount", - "create.gui.scrollInput.scrollToSelect": "UNLOCALIZED: Scroll to Select", - "create.gui.scrollInput.shiftScrollsFaster": "UNLOCALIZED: Shift to Scroll Faster", - "create.gui.toolmenu.focusKey": "UNLOCALIZED: Hold [%1$s] to Focus", - "create.gui.toolmenu.cycle": "UNLOCALIZED: [SCROLL] to Cycle", - "create.gui.symmetryWand.mirrorType": "UNLOCALIZED: Mirror", - "create.gui.symmetryWand.orientation": "UNLOCALIZED: Orientation", - - "create.symmetry.mirror.plane": "UNLOCALIZED: Mirror Once", - "create.symmetry.mirror.doublePlane": "UNLOCALIZED: Rectangular", - "create.symmetry.mirror.triplePlane": "UNLOCALIZED: Octagonal", - - "create.orientation.orthogonal": "UNLOCALIZED: Orthogonal", - "create.orientation.diagonal": "UNLOCALIZED: Diagonal", - "create.orientation.horizontal": "UNLOCALIZED: Horizontal", - "create.orientation.alongZ": "UNLOCALIZED: Along Z", - "create.orientation.alongX": "UNLOCALIZED: Along X", - - "create.gui.terrainzapper.title": "UNLOCALIZED: Handheld Blockzapper", - "create.gui.terrainzapper.searchDiagonal": "UNLOCALIZED: Follow Diagonals", - "create.gui.terrainzapper.searchFuzzy": "UNLOCALIZED: Ignore Material Borders", - "create.gui.terrainzapper.patternSection": "UNLOCALIZED: Pattern", - "create.gui.terrainzapper.pattern.solid": "UNLOCALIZED: Solid", - "create.gui.terrainzapper.pattern.checkered": "UNLOCALIZED: Checkerboard", - "create.gui.terrainzapper.pattern.inversecheckered": "UNLOCALIZED: Inverted Checkerboard", - "create.gui.terrainzapper.pattern.chance25": "UNLOCALIZED: 25% Roll", - "create.gui.terrainzapper.pattern.chance50": "UNLOCALIZED: 50% Roll", - "create.gui.terrainzapper.pattern.chance75": "UNLOCALIZED: 75% Roll", - "create.gui.terrainzapper.placement": "UNLOCALIZED: Placement", - "create.gui.terrainzapper.placement.merged": "UNLOCALIZED: Merged", - "create.gui.terrainzapper.placement.attached": "UNLOCALIZED: Attached", - "create.gui.terrainzapper.placement.inserted": "UNLOCALIZED: Inserted", - "create.gui.terrainzapper.brush": "UNLOCALIZED: Brush", - "create.gui.terrainzapper.brush.cuboid": "UNLOCALIZED: Cuboid", - "create.gui.terrainzapper.brush.sphere": "UNLOCALIZED: Sphere", - "create.gui.terrainzapper.brush.cylinder": "UNLOCALIZED: Cylinder", - "create.gui.terrainzapper.brush.surface": "UNLOCALIZED: Surface", - "create.gui.terrainzapper.brush.cluster": "UNLOCALIZED: Cluster", - "create.gui.terrainzapper.tool": "UNLOCALIZED: Tool", - "create.gui.terrainzapper.tool.fill": "UNLOCALIZED: Fill", - "create.gui.terrainzapper.tool.place": "UNLOCALIZED: Place", - "create.gui.terrainzapper.tool.replace": "UNLOCALIZED: Replace", - "create.gui.terrainzapper.tool.clear": "UNLOCALIZED: Clear", - "create.gui.terrainzapper.tool.overlay": "UNLOCALIZED: Overlay", - "create.gui.terrainzapper.tool.flatten": "UNLOCALIZED: Flatten", - - "create.terrainzapper.shiftRightClickToSet": "UNLOCALIZED: Shift-Right-Click to Select a Shape", - "create.terrainzapper.usingBlock": "UNLOCALIZED: Using: %1$s", - "create.terrainzapper.leftClickToSet": "UNLOCALIZED: Left-Click a Block to set Material", - - "create.minecart_coupling.two_couplings_max": "UNLOCALIZED: Minecarts cannot have more than two couplings each", - "create.minecart_coupling.unloaded": "UNLOCALIZED: Parts of your train seem to be in unloaded chunks", - "create.minecart_coupling.no_loops": "UNLOCALIZED: Couplings cannot form a loop", - "create.minecart_coupling.removed": "UNLOCALIZED: Removed all couplings from minecart", - "create.minecart_coupling.too_far": "UNLOCALIZED: Minecarts are too far apart", - - "create.contraptions.movement_mode": "UNLOCALIZED: Movement Mode", - "create.contraptions.movement_mode.move_place": "UNLOCALIZED: Always Place when Stopped", - "create.contraptions.movement_mode.move_place_returned": "UNLOCALIZED: Place only in Starting Position", - "create.contraptions.movement_mode.move_never_place": "UNLOCALIZED: Place only when Anchor Destroyed", - "create.contraptions.movement_mode.rotate_place": "UNLOCALIZED: Always Place when Stopped", - "create.contraptions.movement_mode.rotate_place_returned": "UNLOCALIZED: Only Place near Initial Angle", - "create.contraptions.movement_mode.rotate_never_place": "UNLOCALIZED: Only Place when Anchor Destroyed", - "create.contraptions.cart_movement_mode": "UNLOCALIZED: Cart Movement Mode", - "create.contraptions.cart_movement_mode.rotate": "UNLOCALIZED: Always face toward motion", - "create.contraptions.cart_movement_mode.rotate_paused": "UNLOCALIZED: Pause actors while rotating", - "create.contraptions.cart_movement_mode.rotation_locked": "UNLOCALIZED: Lock rotation", - "create.contraptions.windmill.rotation_direction": "UNLOCALIZED: Rotation Direction", - "create.contraptions.clockwork.clock_hands": "UNLOCALIZED: Clock Hands", - "create.contraptions.clockwork.hour_first": "UNLOCALIZED: Hour hand first", - "create.contraptions.clockwork.minute_first": "UNLOCALIZED: Minute hand first", - "create.contraptions.clockwork.hour_first_24": "UNLOCALIZED: 24-Hour hand first", - - "create.logistics.filter": "UNLOCALIZED: Filter", - "create.logistics.recipe_filter": "UNLOCALIZED: Recipe Filter", - "create.logistics.fluid_filter": "UNLOCALIZED: Fluid Filter", - "create.logistics.firstFrequency": "UNLOCALIZED: Freq. #1", - "create.logistics.secondFrequency": "UNLOCALIZED: Freq. #2", - "create.logistics.filter.apply": "UNLOCALIZED: Applied filter to %1$s.", - "create.logistics.filter.apply_click_again": "UNLOCALIZED: Applied filter to %1$s, click again to copy the amount.", - "create.logistics.filter.apply_count": "UNLOCALIZED: Applied extraction count to filter.", - - "create.gui.goggles.generator_stats": "UNLOCALIZED: Generator Stats:", - "create.gui.goggles.kinetic_stats": "UNLOCALIZED: Kinetic Stats:", - "create.gui.goggles.at_current_speed": "UNLOCALIZED: at current speed", - "create.gui.goggles.pole_length": "UNLOCALIZED: Pole Length:", - "create.gui.goggles.fluid_container": "UNLOCALIZED: Fluid Container Info:", - "create.gui.goggles.fluid_container.capacity": "UNLOCALIZED: Capacity: ", - "create.gui.assembly.exception": "UNLOCALIZED: This Contraption was unable to assemble:", - "create.gui.assembly.exception.unmovableBlock": "UNLOCALIZED: Unmovable Block (%4$s) at [%1$s,%2$s,%3$s]", - "create.gui.assembly.exception.chunkNotLoaded": "UNLOCALIZED: The Block at [%1$s,%2$s,%3$s] was not in a loaded chunk", - "create.gui.assembly.exception.structureTooLarge": "UNLOCALIZED: There are too many Blocks included in the contraption.\nThe configured maximum is: %1$s", - "create.gui.assembly.exception.tooManyPistonPoles": "UNLOCALIZED: There are too many extension Poles attached to this Piston.\nThe configured maximum is: %1$s", - "create.gui.assembly.exception.noPistonPoles": "UNLOCALIZED: The Piston is missing some extension Poles", - "create.gui.assembly.exception.not_enough_sails": "UNLOCALIZED: Attached structure does not include enough sail-like blocks: %1$s\nA minimum of %2$s are required", - "create.gui.gauge.info_header": "UNLOCALIZED: Gauge Information:", - "create.gui.speedometer.title": "UNLOCALIZED: Rotation Speed", - "create.gui.stressometer.title": "UNLOCALIZED: Network Stress", - "create.gui.stressometer.capacity": "UNLOCALIZED: Remaining Capacity", - "create.gui.stressometer.overstressed": "UNLOCALIZED: Overstressed", - "create.gui.stressometer.no_rotation": "UNLOCALIZED: No Rotation", - "create.gui.contraptions.not_fast_enough": "UNLOCALIZED: It appears that this %1$s is _not_ rotating with _enough_ _speed_.", - "create.gui.contraptions.network_overstressed": "UNLOCALIZED: It appears that this contraption is _overstressed_. Add more sources or _slow_ _down_ the components with a high _stress_ _impact_.", - "create.gui.adjustable_crate.title": "UNLOCALIZED: Adjustable Crate", - "create.gui.adjustable_crate.storageSpace": "UNLOCALIZED: Storage Space", - "create.gui.stockpile_switch.title": "UNLOCALIZED: Stockpile Switch", - "create.gui.stockpile_switch.invert_signal": "UNLOCALIZED: Invert Signal", - "create.gui.stockpile_switch.move_to_lower_at": "UNLOCALIZED: Move to lower lane at %1$s%%", - "create.gui.stockpile_switch.move_to_upper_at": "UNLOCALIZED: Move to upper lane at %1$s%%", - "create.gui.sequenced_gearshift.title": "UNLOCALIZED: Sequenced Gearshift", - "create.gui.sequenced_gearshift.instruction": "UNLOCALIZED: Instruction", - "create.gui.sequenced_gearshift.instruction.turn_angle.descriptive": "UNLOCALIZED: Turn by angle", - "create.gui.sequenced_gearshift.instruction.turn_angle": "UNLOCALIZED: Turn", - "create.gui.sequenced_gearshift.instruction.turn_angle.angle": "UNLOCALIZED: Angle", - "create.gui.sequenced_gearshift.instruction.turn_distance.descriptive": "UNLOCALIZED: Turn to move Piston/Pulley/Gantry", - "create.gui.sequenced_gearshift.instruction.turn_distance": "UNLOCALIZED: Piston", - "create.gui.sequenced_gearshift.instruction.turn_distance.distance": "UNLOCALIZED: Distance", - "create.gui.sequenced_gearshift.instruction.delay.descriptive": "UNLOCALIZED: Timed Delay", - "create.gui.sequenced_gearshift.instruction.delay": "UNLOCALIZED: Delay", - "create.gui.sequenced_gearshift.instruction.delay.duration": "UNLOCALIZED: Duration", - "create.gui.sequenced_gearshift.instruction.end.descriptive": "UNLOCALIZED: End", - "create.gui.sequenced_gearshift.instruction.end": "UNLOCALIZED: End", - "create.gui.sequenced_gearshift.instruction.await.descriptive": "UNLOCALIZED: Await new Redstone Pulse", - "create.gui.sequenced_gearshift.instruction.await": "UNLOCALIZED: Await", - "create.gui.sequenced_gearshift.speed": "UNLOCALIZED: Speed, Direction", - "create.gui.sequenced_gearshift.speed.forward": "UNLOCALIZED: Input speed, Forwards", - "create.gui.sequenced_gearshift.speed.forward_fast": "UNLOCALIZED: Double speed, Forwards", - "create.gui.sequenced_gearshift.speed.back": "UNLOCALIZED: Input speed, Reversed", - "create.gui.sequenced_gearshift.speed.back_fast": "UNLOCALIZED: Double speed, Reversed", - - "create.schematicAndQuill.dimensions": "UNLOCALIZED: Schematic Size: %1$sx%2$sx%3$s", - "create.schematicAndQuill.firstPos": "UNLOCALIZED: First position set.", - "create.schematicAndQuill.secondPos": "UNLOCALIZED: Second position set.", - "create.schematicAndQuill.noTarget": "UNLOCALIZED: Hold [Ctrl] to select Air blocks.", - "create.schematicAndQuill.abort": "UNLOCALIZED: Removed selection.", - "create.schematicAndQuill.title": "UNLOCALIZED: Schematic Name:", - "create.schematicAndQuill.convert": "UNLOCALIZED: Save and Upload Immediately", - "create.schematicAndQuill.fallbackName": "UNLOCALIZED: My Schematic", - "create.schematicAndQuill.saved": "UNLOCALIZED: Saved as %1$s", - - "create.schematic.invalid": "UNLOCALIZED: [!] Invalid Item - Use the Schematic Table instead", - "create.schematic.position": "UNLOCALIZED: Position", - "create.schematic.rotation": "UNLOCALIZED: Rotation", - "create.schematic.rotation.none": "UNLOCALIZED: None", - "create.schematic.rotation.cw90": "UNLOCALIZED: Clockwise 90", - "create.schematic.rotation.cw180": "UNLOCALIZED: Clockwise 180", - "create.schematic.rotation.cw270": "UNLOCALIZED: Clockwise 270", - "create.schematic.mirror": "UNLOCALIZED: Mirror", - "create.schematic.mirror.none": "UNLOCALIZED: None", - "create.schematic.mirror.frontBack": "UNLOCALIZED: Front-Back", - "create.schematic.mirror.leftRight": "UNLOCALIZED: Left-Right", - "create.schematic.tool.deploy": "UNLOCALIZED: Position", - "create.schematic.tool.move": "UNLOCALIZED: Move XZ", - "create.schematic.tool.movey": "UNLOCALIZED: Move Y", - "create.schematic.tool.rotate": "UNLOCALIZED: Rotate", - "create.schematic.tool.print": "UNLOCALIZED: Print", - "create.schematic.tool.flip": "UNLOCALIZED: Mirror", - "create.schematic.tool.deploy.description.0": "UNLOCALIZED: Moves the structure to a location.", - "create.schematic.tool.deploy.description.1": "UNLOCALIZED: Right-Click on the ground to place.", - "create.schematic.tool.deploy.description.2": "UNLOCALIZED: Hold [Ctrl] to select at a fixed distance.", - "create.schematic.tool.deploy.description.3": "UNLOCALIZED: [Ctrl]-Scroll to change the distance.", - "create.schematic.tool.move.description.0": "UNLOCALIZED: Shifts the Schematic Horizontally.", - "create.schematic.tool.move.description.1": "UNLOCALIZED: Point at the Schematic and [CTRL]-Scroll to push it.", - "create.schematic.tool.move.description.2": "UNLOCALIZED: ", - "create.schematic.tool.move.description.3": "UNLOCALIZED: ", - "create.schematic.tool.movey.description.0": "UNLOCALIZED: Shifts the Schematic Vertically.", - "create.schematic.tool.movey.description.1": "UNLOCALIZED: [CTRL]-Scroll to move it up/down.", - "create.schematic.tool.movey.description.2": "UNLOCALIZED: ", - "create.schematic.tool.movey.description.3": "UNLOCALIZED: ", - "create.schematic.tool.rotate.description.0": "UNLOCALIZED: Rotates the Schematic around its center.", - "create.schematic.tool.rotate.description.1": "UNLOCALIZED: [CTRL]-Scroll to rotate by 90 Degrees.", - "create.schematic.tool.rotate.description.2": "UNLOCALIZED: ", - "create.schematic.tool.rotate.description.3": "UNLOCALIZED: ", - "create.schematic.tool.print.description.0": "UNLOCALIZED: Instantly places the structure in the world.", - "create.schematic.tool.print.description.1": "UNLOCALIZED: [Right-Click] to confirm placement at the current location.", - "create.schematic.tool.print.description.2": "UNLOCALIZED: This tool is for Creative Mode only.", - "create.schematic.tool.print.description.3": "UNLOCALIZED: ", - "create.schematic.tool.flip.description.0": "UNLOCALIZED: Flips the Schematic along the face you select.", - "create.schematic.tool.flip.description.1": "UNLOCALIZED: Point at the Schematic and [CTRL]-Scroll to flip it.", - "create.schematic.tool.flip.description.2": "UNLOCALIZED: ", - "create.schematic.tool.flip.description.3": "UNLOCALIZED: ", - - "create.schematics.synchronizing": "UNLOCALIZED: Syncing...", - "create.schematics.uploadTooLarge": "UNLOCALIZED: Your schematic exceeds limitations specified by the server.", - "create.schematics.maxAllowedSize": "UNLOCALIZED: The maximum allowed schematic file size is:", - - "create.gui.schematicTable.refresh": "UNLOCALIZED: Refresh Files", - "create.gui.schematicTable.open_folder": "UNLOCALIZED: Open Folder", - "create.gui.schematicTable.title": "UNLOCALIZED: Schematic Table", - "create.gui.schematicTable.availableSchematics": "UNLOCALIZED: Available Schematics", - "create.gui.schematicTable.noSchematics": "UNLOCALIZED: No Schematics Saved", - "create.gui.schematicTable.uploading": "UNLOCALIZED: Uploading...", - "create.gui.schematicTable.finished": "UNLOCALIZED: Upload Finished!", - "create.gui.schematicannon.title": "UNLOCALIZED: Schematicannon", - "create.gui.schematicannon.listPrinter": "UNLOCALIZED: Checklist Printer", - "create.gui.schematicannon.gunpowderLevel": "UNLOCALIZED: Gunpowder at %1$s%%", - "create.gui.schematicannon.shotsRemaining": "UNLOCALIZED: Shots left: %1$s", - "create.gui.schematicannon.shotsRemainingWithBackup": "UNLOCALIZED: With backup: %1$s", - "create.gui.schematicannon.optionEnabled": "UNLOCALIZED: Currently Enabled", - "create.gui.schematicannon.optionDisabled": "UNLOCALIZED: Currently Disabled", - "create.gui.schematicannon.showOptions": "UNLOCALIZED: Show Printer Settings", - "create.gui.schematicannon.option.dontReplaceSolid": "UNLOCALIZED: Don't Replace Solid Blocks", - "create.gui.schematicannon.option.replaceWithSolid": "UNLOCALIZED: Replace Solid with Solid", - "create.gui.schematicannon.option.replaceWithAny": "UNLOCALIZED: Replace Solid with Any", - "create.gui.schematicannon.option.replaceWithEmpty": "UNLOCALIZED: Replace Solid with Empty", - "create.gui.schematicannon.option.skipMissing": "UNLOCALIZED: Skip missing Blocks", - "create.gui.schematicannon.option.skipTileEntities": "UNLOCALIZED: Protect Tile Entities", - "create.gui.schematicannon.slot.gunpowder": "UNLOCALIZED: Add gunpowder to fuel the cannon", - "create.gui.schematicannon.slot.listPrinter": "UNLOCALIZED: Place books here to print a Checklist for your Schematic", - "create.gui.schematicannon.slot.schematic": "UNLOCALIZED: Add your Schematic here. Make sure it is deployed at a specific location.", - "create.gui.schematicannon.option.skipMissing.description": "UNLOCALIZED: If the cannon cannot find a required Block for placement, it will continue at the next Location.", - "create.gui.schematicannon.option.skipTileEntities.description": "UNLOCALIZED: The cannon will avoid replacing data holding blocks such as Chests.", - "create.gui.schematicannon.option.dontReplaceSolid.description": "UNLOCALIZED: The cannon will never replace any Solid blocks in its working area, only non-Solid and Air.", - "create.gui.schematicannon.option.replaceWithSolid.description": "UNLOCALIZED: The cannon will only replace Solid blocks in its working area if the Schematic contains a solid Block at the Location.", - "create.gui.schematicannon.option.replaceWithAny.description": "UNLOCALIZED: The cannon will replace Solid blocks in its working area if the Schematic contains any Block at the Location.", - "create.gui.schematicannon.option.replaceWithEmpty.description": "UNLOCALIZED: The cannon will clear out all blocks in its working area, including those replaced by Air.", - - "create.schematicannon.status.idle": "UNLOCALIZED: Idle", - "create.schematicannon.status.ready": "UNLOCALIZED: Ready", - "create.schematicannon.status.running": "UNLOCALIZED: Running", - "create.schematicannon.status.finished": "UNLOCALIZED: Finished", - "create.schematicannon.status.paused": "UNLOCALIZED: Paused", - "create.schematicannon.status.stopped": "UNLOCALIZED: Stopped", - "create.schematicannon.status.noGunpowder": "UNLOCALIZED: Out of Gunpowder", - "create.schematicannon.status.targetNotLoaded": "UNLOCALIZED: Target is not loaded", - "create.schematicannon.status.targetOutsideRange": "UNLOCALIZED: Target too far away", - "create.schematicannon.status.searching": "UNLOCALIZED: Searching", - "create.schematicannon.status.skipping": "UNLOCALIZED: Skipping", - "create.schematicannon.status.missingBlock": "UNLOCALIZED: Missing Item:", - "create.schematicannon.status.placing": "UNLOCALIZED: Placing", - "create.schematicannon.status.clearing": "UNLOCALIZED: Clearing Blocks", - "create.schematicannon.status.schematicInvalid": "UNLOCALIZED: Schematic Invalid", - "create.schematicannon.status.schematicNotPlaced": "UNLOCALIZED: Schematic not Positioned", - "create.schematicannon.status.schematicExpired": "UNLOCALIZED: Schematic File Expired", - - "create.materialChecklist": "UNLOCALIZED: Material Checklist", - "create.materialChecklist.blocksNotLoaded": "UNLOCALIZED: * Disclaimer *\n\nMaterial List may be inaccurate due to relevant chunks not being loaded.", - - "create.gui.filter.deny_list": "UNLOCALIZED: Deny-List", - "create.gui.filter.deny_list.description": "UNLOCALIZED: Items pass if they do NOT match any of the above. An empty Deny-List accepts everything.", - "create.gui.filter.allow_list": "UNLOCALIZED: Allow-List", - "create.gui.filter.allow_list.description": "UNLOCALIZED: Items pass if they match any of the above. An empty Allow-List rejects everything.", - "create.gui.filter.respect_data": "UNLOCALIZED: Respect Data", - "create.gui.filter.respect_data.description": "UNLOCALIZED: Items only match if their durability, enchantments, and other attributes match as well.", - "create.gui.filter.ignore_data": "UNLOCALIZED: Ignore Data", - "create.gui.filter.ignore_data.description": "UNLOCALIZED: Items match regardless of their attributes.", - - "create.item_attributes.placeable": "UNLOCALIZED: is placeable", - "create.item_attributes.placeable.inverted": "UNLOCALIZED: is not placeable", - "create.item_attributes.consumable": "UNLOCALIZED: can be eaten", - "create.item_attributes.consumable.inverted": "UNLOCALIZED: cannot be eaten", - "create.item_attributes.smeltable": "UNLOCALIZED: can be Smelted", - "create.item_attributes.smeltable.inverted": "UNLOCALIZED: cannot be Smelted", - "create.item_attributes.washable": "UNLOCALIZED: can be Washed", - "create.item_attributes.washable.inverted": "UNLOCALIZED: cannot be Washed", - "create.item_attributes.smokable": "UNLOCALIZED: can be Smoked", - "create.item_attributes.smokable.inverted": "UNLOCALIZED: cannot be Smoked", - "create.item_attributes.crushable": "UNLOCALIZED: can be Crushed", - "create.item_attributes.crushable.inverted": "UNLOCALIZED: cannot be Crushed", - "create.item_attributes.blastable": "UNLOCALIZED: is smeltable in Blast Furnace", - "create.item_attributes.blastable.inverted": "UNLOCALIZED: is not smeltable in Blast Furnace", - "create.item_attributes.enchanted": "UNLOCALIZED: is enchanted", - "create.item_attributes.enchanted.inverted": "UNLOCALIZED: is unenchanted", - "create.item_attributes.damaged": "UNLOCALIZED: is damaged", - "create.item_attributes.damaged.inverted": "UNLOCALIZED: is not damaged", - "create.item_attributes.badly_damaged": "UNLOCALIZED: is heavily damaged", - "create.item_attributes.badly_damaged.inverted": "UNLOCALIZED: is not heavily damaged", - "create.item_attributes.not_stackable": "UNLOCALIZED: cannot stack", - "create.item_attributes.not_stackable.inverted": "UNLOCALIZED: can be stacked", - "create.item_attributes.equipable": "UNLOCALIZED: can be equipped", - "create.item_attributes.equipable.inverted": "UNLOCALIZED: cannot be equipped", - "create.item_attributes.furnace_fuel": "UNLOCALIZED: is furnace fuel", - "create.item_attributes.furnace_fuel.inverted": "UNLOCALIZED: is not furnace fuel", - "create.item_attributes.in_tag": "UNLOCALIZED: is tagged %1$s", - "create.item_attributes.in_tag.inverted": "UNLOCALIZED: is not tagged %1$s", - "create.item_attributes.in_item_group": "UNLOCALIZED: is in group '%1$s'", - "create.item_attributes.in_item_group.inverted": "UNLOCALIZED: is not in group '%1$s'", - "create.item_attributes.added_by": "UNLOCALIZED: was added by %1$s", - "create.item_attributes.added_by.inverted": "UNLOCALIZED: was not added by %1$s", - "create.item_attributes.shulker_level": "UNLOCALIZED: is shulker %1$s", - "create.item_attributes.shulker_level.inverted": "UNLOCALIZED: is shulker not %1$s", - "create.item_attributes.shulker_level.full": "UNLOCALIZED: full", - "create.item_attributes.shulker_level.empty": "UNLOCALIZED: empty", - "create.item_attributes.shulker_level.partial": "UNLOCALIZED: partially filled", - "create.item_attributes.has_enchant": "UNLOCALIZED: is enchanted with %1$s", - "create.item_attributes.has_enchant.inverted": "UNLOCALIZED: is not enchanted with %1$s", - "create.item_attributes.color": "UNLOCALIZED: is dyed %1$s", - "create.item_attributes.color.inverted": "UNLOCALIZED: is not dyed %1$s", - "create.item_attributes.max_enchanted": "UNLOCALIZED: is enchanted at max level", - "create.item_attributes.max_enchanted.inverted": "UNLOCALIZED: is not enchanted at max level", - "create.item_attributes.has_fluid": "UNLOCALIZED: contains %1$s", - "create.item_attributes.has_fluid.inverted": "UNLOCALIZED: does not contain %1$s", - "create.item_attributes.has_name": "UNLOCALIZED: has the custom name %1$s", - "create.item_attributes.has_name.inverted": "UNLOCALIZED: does not have the custom name %1$s", - "create.item_attributes.book_author": "UNLOCALIZED: was authored by %1$s", - "create.item_attributes.book_author.inverted": "UNLOCALIZED: was not authored by %1$s", - "create.item_attributes.book_copy_original": "UNLOCALIZED: is an original", - "create.item_attributes.book_copy_original.inverted": "UNLOCALIZED: is not an original", - "create.item_attributes.book_copy_first": "UNLOCALIZED: is a first-generation copy", - "create.item_attributes.book_copy_first.inverted": "UNLOCALIZED: is not a first-generation copy", - "create.item_attributes.book_copy_second": "UNLOCALIZED: is a second-generation copy", - "create.item_attributes.book_copy_second.inverted": "UNLOCALIZED: is not a second-generation copy", - "create.item_attributes.book_copy_tattered": "UNLOCALIZED: is a tattered mess", - "create.item_attributes.book_copy_tattered.inverted": "UNLOCALIZED: is not a tattered mess", - "create.item_attributes.astralsorcery_crystal": "UNLOCALIZED: has crystal attribute %1$s", - "create.item_attributes.astralsorcery_crystal.inverted": "UNLOCALIZED: does not have crystal attribute %1$s", - "create.item_attributes.astralsorcery_constellation": "UNLOCALIZED: is attuned to %1$s", - "create.item_attributes.astralsorcery_constellation.inverted": "UNLOCALIZED: is not attuned to %1$s", - "create.item_attributes.astralsorcery_perk_gem": "UNLOCALIZED: has perk attribute %1$s", - "create.item_attributes.astralsorcery_perk_gem.inverted": "UNLOCALIZED: does not have perk attribute %1$s", - "create.item_attributes.astralsorcery_amulet": "UNLOCALIZED: improves %1$s", - "create.item_attributes.astralsorcery_amulet.inverted": "UNLOCALIZED: does not improve %1$s", - - "create.gui.attribute_filter.no_selected_attributes": "UNLOCALIZED: No attributes selected", - "create.gui.attribute_filter.selected_attributes": "UNLOCALIZED: Selected attributes:", - "create.gui.attribute_filter.add_attribute": "UNLOCALIZED: Add attribute to List", - "create.gui.attribute_filter.add_inverted_attribute": "UNLOCALIZED: Add opposite attribute to List", - "create.gui.attribute_filter.allow_list_disjunctive": "UNLOCALIZED: Allow-List (Any)", - "create.gui.attribute_filter.allow_list_disjunctive.description": "UNLOCALIZED: Items pass if they have any of the selected attributes.", - "create.gui.attribute_filter.allow_list_conjunctive": "UNLOCALIZED: Allow-List (All)", - "create.gui.attribute_filter.allow_list_conjunctive.description": "UNLOCALIZED: Items pass only if they have ALL of the selected attributes.", - "create.gui.attribute_filter.deny_list": "UNLOCALIZED: Deny-List", - "create.gui.attribute_filter.deny_list.description": "UNLOCALIZED: Items pass if they do NOT have any of the selected attributes.", - "create.gui.attribute_filter.add_reference_item": "UNLOCALIZED: Add Reference Item", - - "create.tooltip.holdForDescription": "UNLOCALIZED: Hold [%1$s] for Summary", - "create.tooltip.holdForControls": "UNLOCALIZED: Hold [%1$s] for Controls", - "create.tooltip.keyShift": "UNLOCALIZED: Shift", - "create.tooltip.keyCtrl": "UNLOCALIZED: Ctrl", - "create.tooltip.speedRequirement": "UNLOCALIZED: Speed Requirement: %1$s", - "create.tooltip.speedRequirement.none": "UNLOCALIZED: None", - "create.tooltip.speedRequirement.medium": "UNLOCALIZED: Moderate", - "create.tooltip.speedRequirement.high": "UNLOCALIZED: Fast", - "create.tooltip.stressImpact": "UNLOCALIZED: Kinetic Stress Impact: %1$s", - "create.tooltip.stressImpact.low": "UNLOCALIZED: Low", - "create.tooltip.stressImpact.medium": "UNLOCALIZED: Moderate", - "create.tooltip.stressImpact.high": "UNLOCALIZED: High", - "create.tooltip.stressImpact.overstressed": "UNLOCALIZED: Overstressed", - "create.tooltip.capacityProvided": "UNLOCALIZED: Kinetic Stress Capacity: %1$s", - "create.tooltip.capacityProvided.low": "UNLOCALIZED: Small", - "create.tooltip.capacityProvided.medium": "UNLOCALIZED: Medium", - "create.tooltip.capacityProvided.high": "UNLOCALIZED: Large", - "create.tooltip.generationSpeed": "UNLOCALIZED: Generates at %1$s %2$s", - "create.tooltip.analogStrength": "UNLOCALIZED: Analog Strength: %1$s/15", - - "create.mechanical_arm.extract_from": "UNLOCALIZED: Take items from %1$s", - "create.mechanical_arm.deposit_to": "UNLOCALIZED: Deposit items to %1$s", - "create.mechanical_arm.summary": "UNLOCALIZED: Mechanical Arm has %1$s input(s) and %2$s output(s).", - "create.mechanical_arm.points_outside_range": "UNLOCALIZED: %1$s selected interaction point(s) removed due to range limitations.", - - "create.weighted_ejector.target_set": "UNLOCALIZED: Target Selected", - "create.weighted_ejector.target_not_valid": "UNLOCALIZED: Ejecting to Adjacent block (Target was not Valid)", - "create.weighted_ejector.no_target": "UNLOCALIZED: Ejecting to Adjacent block (No Target was Selected)", - "create.weighted_ejector.targeting": "UNLOCALIZED: Ejecting to [%1$s,%2$s,%3$s]", - "create.weighted_ejector.stack_size": "UNLOCALIZED: Ejected Stack Size", - - "create.logistics.when_multiple_outputs_available": "UNLOCALIZED: When Multiple Outputs Available", - - "create.mechanical_arm.selection_mode.round_robin": "UNLOCALIZED: Round Robin", - "create.mechanical_arm.selection_mode.forced_round_robin": "UNLOCALIZED: Forced Round Robin", - "create.mechanical_arm.selection_mode.prefer_first": "UNLOCALIZED: Prefer First Target", - - "create.tunnel.selection_mode.split": "UNLOCALIZED: Split", - "create.tunnel.selection_mode.forced_split": "UNLOCALIZED: Forced Split", - "create.tunnel.selection_mode.round_robin": "UNLOCALIZED: Round Robin", - "create.tunnel.selection_mode.forced_round_robin": "UNLOCALIZED: Forced Round Robin", - "create.tunnel.selection_mode.prefer_nearest": "UNLOCALIZED: Prefer Nearest", - "create.tunnel.selection_mode.randomize": "UNLOCALIZED: Randomize", - "create.tunnel.selection_mode.synchronize": "UNLOCALIZED: Synchronize Inputs", - - "create.tooltip.chute.header": "UNLOCALIZED: Chute Information", - "create.tooltip.chute.items_move_down": "UNLOCALIZED: Items move Downward", - "create.tooltip.chute.items_move_up": "UNLOCALIZED: Items move Upward", - "create.tooltip.chute.no_fans_attached": "UNLOCALIZED: No attached fans", - "create.tooltip.chute.fans_push_up": "UNLOCALIZED: Fans push from Below", - "create.tooltip.chute.fans_push_down": "UNLOCALIZED: Fans push from Above", - "create.tooltip.chute.fans_pull_up": "UNLOCALIZED: Fans pull from Above", - "create.tooltip.chute.fans_pull_down": "UNLOCALIZED: Fans pull from Below", - "create.tooltip.chute.contains": "UNLOCALIZED: Contains: %1$s x%2$s", - "create.tooltip.brass_tunnel.contains": "UNLOCALIZED: Currently distributing:", - "create.tooltip.brass_tunnel.contains_entry": "UNLOCALIZED: > %1$s x%2$s", - "create.tooltip.brass_tunnel.retrieve": "UNLOCALIZED: Right-Click to retrieve", - - "create.linked_controller.bind_mode": "UNLOCALIZED: Bind mode active", - "create.linked_controller.press_keybind": "UNLOCALIZED: Press %1$s, %2$s, %3$s, %4$s, %5$s or %6$s, to bind this frequency to the respective key", - "create.linked_controller.key_bound": "UNLOCALIZED: Frequency bound to %1$s", - "create.linked_controller.frequency_slot_1": "UNLOCALIZED: Keybind: %1$s, Freq. #1", - "create.linked_controller.frequency_slot_2": "UNLOCALIZED: Keybind: %1$s, Freq. #2", - - "create.crafting_blueprint.crafting_slot": "UNLOCALIZED: Ingredient Slot", - "create.crafting_blueprint.filter_items_viable": "UNLOCALIZED: Advanced filter items are viable", - "create.crafting_blueprint.display_slot": "UNLOCALIZED: Display Slot", - "create.crafting_blueprint.inferred": "UNLOCALIZED: Inferred from recipe", - "create.crafting_blueprint.manually_assigned": "UNLOCALIZED: Manually assigned", - "create.crafting_blueprint.secondary_display_slot": "UNLOCALIZED: Secondary Display Slot", - "create.crafting_blueprint.optional": "UNLOCALIZED: Optional", - - "create.potato_cannon.ammo.attack_damage": "UNLOCALIZED: %1$s Attack Damage", - "create.potato_cannon.ammo.reload_ticks": "UNLOCALIZED: %1$s Reload Ticks", - "create.potato_cannon.ammo.knockback": "UNLOCALIZED: %1$s Knockback", - - "create.hint.hose_pulley.title": "UNLOCALIZED: Bottomless Supply", - "create.hint.hose_pulley": "UNLOCALIZED: The targeted body of fluid is considered infinite.", - "create.hint.mechanical_arm_no_targets.title": "UNLOCALIZED: No Targets", - "create.hint.mechanical_arm_no_targets": "UNLOCALIZED: It appears this _Mechanical_ _Arm_ has not been assigned any _targets._ Select belts, depots, funnels and other blocks by _right-clicking_ them while _holding_ the _Mechanical_ _Arm_ in your _hand_.", - "create.hint.empty_bearing.title": "UNLOCALIZED: Update Bearing", - "create.hint.empty_bearing": "UNLOCALIZED: _Right-click_ the bearing with an _empty_ _hand_ to _attach_ the structure you just built in front of it.", - "create.hint.full_deployer.title": "UNLOCALIZED: Deployer Item Overflow", - "create.hint.full_deployer": "UNLOCALIZED: It appears this _Deployer_ contains _excess_ _items_ that need to be _extracted._ Use a _hopper,_ _funnel_ or other means to free it from its overflow.", - - "create.gui.config.overlay1": "UNLOCALIZED: Hi :)", - "create.gui.config.overlay2": "UNLOCALIZED: This is a sample overlay", - "create.gui.config.overlay3": "UNLOCALIZED: Click or drag with your mouse", - "create.gui.config.overlay4": "UNLOCALIZED: to move this preview", - "create.gui.config.overlay5": "UNLOCALIZED: Press ESC to exit this screen", - "create.gui.config.overlay6": "UNLOCALIZED: and save the new position", - "create.gui.config.overlay7": "UNLOCALIZED: Run /create overlay reset", - "create.gui.config.overlay8": "UNLOCALIZED: to reset to the default position", - - "create.command.killTPSCommand": "UNLOCALIZED: killtps", - "create.command.killTPSCommand.status.slowed_by.0": "UNLOCALIZED: [Create]: Server tick is currently slowed by %s ms :o", - "create.command.killTPSCommand.status.slowed_by.1": "UNLOCALIZED: [Create]: Server tick is slowed by %s ms now >:)", - "create.command.killTPSCommand.status.slowed_by.2": "UNLOCALIZED: [Create]: Server tick is back to regular speed :D", - "create.command.killTPSCommand.status.usage.0": "UNLOCALIZED: [Create]: use /killtps stop to bring back server tick to regular speed", - "create.command.killTPSCommand.status.usage.1": "UNLOCALIZED: [Create]: use /killtps start to artificially slow down the server tick", - "create.command.killTPSCommand.argument.tickTime": "UNLOCALIZED: tickTime", - - "create.contraption.minecart_contraption_too_big": "UNLOCALIZED: This Cart Contraption seems too big to pick up", - "create.contraption.minecart_contraption_illegal_pickup": "UNLOCALIZED: A mystical force is binding this Cart Contraption to the world", - - - "_": "->------------------------] Subtitles [------------------------<-", - - "create.subtitle.contraption_disassemble": "UNLOCALIZED: Contraption stops", - "create.subtitle.peculiar_bell_use": "UNLOCALIZED: Peculiar Bell tolls", - "create.subtitle.mixing": "UNLOCALIZED: Mixing noises", - "create.subtitle.mechanical_press_activation_belt": "UNLOCALIZED: Mechanical Press bonks", - "create.subtitle.fwoomp": "UNLOCALIZED: Potato Launcher fwoomps", - "create.subtitle.worldshaper_place": "UNLOCALIZED: Worldshaper zaps", - "create.subtitle.crushing_1": "UNLOCALIZED: Crushing noises", - "create.subtitle.depot_slide": "UNLOCALIZED: Item slides", - "create.subtitle.saw_activate_stone": "UNLOCALIZED: Mechanical Saw activates", - "create.subtitle.blaze_munch": "UNLOCALIZED: Blaze Burner munches", - "create.subtitle.funnel_flap": "UNLOCALIZED: Funnel flaps", - "create.subtitle.schematicannon_finish": "UNLOCALIZED: Schematicannon dings", - "create.subtitle.haunted_bell_use": "UNLOCALIZED: Haunted Bell tolls", - "create.subtitle.scroll_value": "UNLOCALIZED: Scroll-input clicks", - "create.subtitle.crafter_craft": "UNLOCALIZED: Crafter crafts", - "create.subtitle.controller_put": "UNLOCALIZED: Controller thumps", - "create.subtitle.cranking": "UNLOCALIZED: Hand Crank turns", - "create.subtitle.wrench_remove": "UNLOCALIZED: Component breaks", - "create.subtitle.cogs": "UNLOCALIZED: Cogwheels rumble", - "create.subtitle.slime_added": "UNLOCALIZED: Slime squishes", - "create.subtitle.wrench_rotate": "UNLOCALIZED: Wrench used", - "create.subtitle.potato_hit": "UNLOCALIZED: Vegetable impacts", - "create.subtitle.saw_activate_wood": "UNLOCALIZED: Mechanical Saw activates", - "create.subtitle.haunted_bell_convert": "UNLOCALIZED: Haunted Bell awakens", - "create.subtitle.deployer_polish": "UNLOCALIZED: Deployer applies polish", - "create.subtitle.deny": "UNLOCALIZED: Declining boop", - "create.subtitle.controller_click": "UNLOCALIZED: Controller clicks", - "create.subtitle.schematicannon_launch_block": "UNLOCALIZED: Schematicannon fires", - "create.subtitle.copper_armor_equip": "UNLOCALIZED: Diving equipment clinks", - "create.subtitle.controller_take": "UNLOCALIZED: Lectern empties", - "create.subtitle.mechanical_press_activation": "UNLOCALIZED: Mechanical Press clangs", - "create.subtitle.contraption_assemble": "UNLOCALIZED: Contraption moves", - "create.subtitle.crafter_click": "UNLOCALIZED: Crafter clicks", - "create.subtitle.depot_plop": "UNLOCALIZED: Item lands", - "create.subtitle.confirm": "UNLOCALIZED: Affirmative ding", - - - "_": "->------------------------] Item Descriptions [------------------------<-", - - "item.create.example_item.tooltip": "EXAMPLE ITEM (just a marker that this tooltip exists)", - "item.create.example_item.tooltip.summary": "A brief description of the item. _Underscores_ highlight a term.", - "item.create.example_item.tooltip.condition1": "When this", - "item.create.example_item.tooltip.behaviour1": "Then this item does this. (behaviours show on shift)", - "item.create.example_item.tooltip.condition2": "And When this", - "item.create.example_item.tooltip.behaviour2": "You can add as many behaviours as you like", - "item.create.example_item.tooltip.control1": "When Ctrl pressed", - "item.create.example_item.tooltip.action1": "These controls are displayed.", - - "block.create.wooden_bracket.tooltip": "SOPORTE DE MADERA", - "block.create.wooden_bracket.tooltip.summary": "_Decora_ tus _ejes,_ _ruedas_ _dentadas_ y _tuberías_ con un pequeño y acogedor refuerzo de madera", - - "block.create.metal_bracket.tooltip": "SOPORTE DE METAL", - "block.create.metal_bracket.tooltip.summary": "_Decora_ tus _ejes,_ _ruedas_ _dentadas_ y _tuberías_ con un robusto refuerzo industrial de metal", - - "block.create.seat.tooltip": "ASIENTO", - "block.create.seat.tooltip.summary": "¡Siéntese y disfrute del paseo! Anclará a un jugador en una _artefacto_ en movimiento. ¡También es Grandioso para las construcciones estáticas! Viene en una variedad de colores.", - "block.create.seat.tooltip.condition1": "Click Derecho en el asiento", - "block.create.seat.tooltip.behaviour1": "Sienta al jugador en el _asiento_ . Presiona el shift izquierdo para salir del _asiento._", - - "item.create.blaze_cake.tooltip": "PASTEL DE BLAZE", - "item.create.blaze_cake.tooltip.summary": "Un delicioso regalo para tus grandiosos _quemadores_ _de_ _blaze._ ¡Los enciende a todos!", - - "item.create.wand_of_symmetry.tooltip": "SYMMETRY WAND", - "item.create.wand_of_symmetry.tooltip.summary": "Crea un 'espejo' que refleja perfectamente la colocación de bloques a través de los planos configurados.", - "item.create.wand_of_symmetry.tooltip.condition1": "Cuando esta en la barra de ítems", - "item.create.wand_of_symmetry.tooltip.behaviour1": "Se mantiene activo", - "item.create.wand_of_symmetry.tooltip.control1": "Click Derecho en el suelo", - "item.create.wand_of_symmetry.tooltip.action1": "_Crea_ o _mueve_ el 'espejo'.", - "item.create.wand_of_symmetry.tooltip.control2": "Click Derecho en el aire", - "item.create.wand_of_symmetry.tooltip.action2": "_Remueve_ el 'espejo' activo", - "item.create.wand_of_symmetry.tooltip.control3": "Click Derecho cuando se esta agachado", - "item.create.wand_of_symmetry.tooltip.action3": "Abre la _Interfaz_ _de_ _Configuración_", - - "item.create.handheld_worldshaper.tooltip": "HANDHELD WORLDSHAPER", - "item.create.handheld_worldshaper.tooltip.summary": "Una herramienta útil para crear _paisajes_ y _características_ en el _terreno._", - "item.create.handheld_worldshaper.tooltip.control1": "Click Izquierdo a un bloque", - "item.create.handheld_worldshaper.tooltip.action1": "Establece los bloques que serán colocados por la herramienta en el bloque objetivo.", - "item.create.handheld_worldshaper.tooltip.control2": "Click Derecho en un bloque", - "item.create.handheld_worldshaper.tooltip.action2": "Aplica el _Pincel_ y la _Herramienta_ actualmente seleccionados en el lugar objetivo.", - "item.create.handheld_worldshaper.tooltip.control3": "Click Derecho mientras se está agachado", - "item.create.handheld_worldshaper.tooltip.action3": "Abre la _Interfaz_ _de_ _Configuración._", - - "item.create.tree_fertilizer.tooltip": "TREE FERTILIZER", - "item.create.tree_fertilizer.tooltip.summary": "Una poderosa combinación de minerales adecuados para acelerar el crecimiento de los tipos de árboles comunes.", - "item.create.tree_fertilizer.tooltip.condition1": "Cuando se usa en un retoño de árbol", - "item.create.tree_fertilizer.tooltip.behaviour1": "Hace crecer los árboles, sin importar el espacio entre ellos.", - - "item.create.extendo_grip.tooltip": "EXTENDO GRIP", - "item.create.extendo_grip.tooltip.summary": "Boioioing! En gran medida, _aumenta_ _la_ _distancia_ _de_ _alcance_ del portador.", - "item.create.extendo_grip.tooltip.condition1": "Cuando está en la mano secundaria", - "item.create.extendo_grip.tooltip.behaviour1": "Aumenta el rango de alcance de los objetos usados en la _mano_ _principal._", - "item.create.extendo_grip.tooltip.condition2": "UNLOCALIZED: While wearing Copper Backtank", - "item.create.extendo_grip.tooltip.behaviour2": "UNLOCALIZED: _No_ _Durability_ will be used. Instead, _Air_ _pressure_ is drained from the Tank", - - "item.create.potato_cannon.tooltip": "UNLOCALIZED: POTATO CANNON", - "item.create.potato_cannon.tooltip.summary": "UNLOCALIZED: Fwoomp! Launch your home-grown vegetables at your Enemies. Can be powered with Air Pressure from a _Copper_ _Backtank_", - "item.create.potato_cannon.tooltip.condition1": "UNLOCALIZED: When R-Clicked", - "item.create.potato_cannon.tooltip.behaviour1": "UNLOCALIZED: _Shoots_ a suitable item from your _Inventory_.", - "item.create.potato_cannon.tooltip.condition2": "UNLOCALIZED: While wearing Copper Backtank", - "item.create.potato_cannon.tooltip.behaviour2": "UNLOCALIZED: _No_ _Durability_ will be used. Instead, _Air_ _pressure_ is drained from the Tank", - - "item.create.filter.tooltip": "FILTER", - "item.create.filter.tooltip.summary": "_Controla_ las _salidas_ y _entradas_ de los dispositivos logísticos con más _precisión,_ comparándolas con un _conjunto_ _de_ _objetos_ o varios _filtros_ _anidados._", - "item.create.filter.tooltip.condition1": "Cuando está en la ranura del filtro", - "item.create.filter.tooltip.behaviour1": "_Controla_ el flujo de objetos según su _configuración._", - "item.create.filter.tooltip.condition2": "Con Click Derecho", - "item.create.filter.tooltip.behaviour2": "Abre la _Interfaz_ _de_ _Configuración._", - - "item.create.attribute_filter.tooltip": "ATTRIBUTE FILTER", - "item.create.attribute_filter.tooltip.summary": "_Controla_ las _salidas_ y _entradas_ de los dispositivos logísticos con más _precisión,_ comparándolas con un _conjunto_ _de_ _atributos_ _de_ _objetos_ y _categorias._", - "item.create.attribute_filter.tooltip.condition1": "Cuando está en la ranura del filtro", - "item.create.attribute_filter.tooltip.behaviour1": "_Controla_ el flujo de objetos según su _configuración._", - "item.create.attribute_filter.tooltip.condition2": "Con Click Derecho", - "item.create.attribute_filter.tooltip.behaviour2": "Abre la _Interfaz_ _de_ _Configuración._", - - "item.create.empty_schematic.tooltip": "EMPTY SCHEMATIC", - "item.create.empty_schematic.tooltip.summary": "Se usa como ingrediente en una receta y para escribir en la _Mesa_ _de_ _Esquemas._", - - "item.create.schematic.tooltip": "SCHEMATIC", - "item.create.schematic.tooltip.summary": "Sostiene una estructura para ser posicionada y colocada en el mundo. Posiciona el Holograma como se desee y usa un _Esquemacañon_ para construirlo.", - "item.create.schematic.tooltip.condition1": "Cuando es sostenido", - "item.create.schematic.tooltip.behaviour1": "Se puede posicionar usando las Herramientas en Pantalla.", - "item.create.schematic.tooltip.control1": "Click Derecho mientras se está agachado", - "item.create.schematic.tooltip.action1": "Abre una _interfaz_ para introducir las _coordenadas_ exactas.", - - "item.create.schematic_and_quill.tooltip": "SCHEMATIC AND QUILL", - "item.create.schematic_and_quill.tooltip.summary": "Se usa para guardar una estructura de tu mundo en un archivo .nbt", - "item.create.schematic_and_quill.tooltip.condition1": "Paso 1", - "item.create.schematic_and_quill.tooltip.behaviour1": "Selecciona dos esquinas con Click Derecho.", - "item.create.schematic_and_quill.tooltip.condition2": "Paso 2", - "item.create.schematic_and_quill.tooltip.behaviour2": "_Ctrl_ _+_ _girar_ _rueda_ _del_ _ratón_ en las caras para ajustar el tamaño. Click Derecho de nuevo para Guardar.", - "item.create.schematic_and_quill.tooltip.control1": "Click Derecho", - "item.create.schematic_and_quill.tooltip.action1": "Selecciona una esquina / confirma el guardado.", - "item.create.schematic_and_quill.tooltip.control2": "Manteniendo la tecla Ctrl", - "item.create.schematic_and_quill.tooltip.action2": "Selecciona los puntos en _medio_ _del_ _aire._ _Girar_ _rueda_ _del_ _ratón_ para ajustar la distancia.", - "item.create.schematic_and_quill.tooltip.control3": "Click Derecho mientras se está agachado", - "item.create.schematic_and_quill.tooltip.action3": "_Reinicia_ y quita la selección.", - - "block.create.schematicannon.tooltip": "SCHEMATICANNON", - "block.create.schematicannon.tooltip.summary": "Dispara bloques para recrear un _esquema_ ya desplegado en el mundo. Utiliza objetos de los inventarios adyacentes y _Pólvora_ como combustible.", - "block.create.schematicannon.tooltip.condition1": "UNLOCALIZED: When R-Clicked", - "block.create.schematicannon.tooltip.behaviour1": "UNLOCALIZED: Opens the _Interface_", - - "block.create.schematic_table.tooltip": "SCHEMATIC TABLE", - "block.create.schematic_table.tooltip.summary": "Escribe los esquemas guardados en un _Esquema_ _Vacío._", - "block.create.schematic_table.tooltip.condition1": "Cuando se le da un esquema vacío", - "block.create.schematic_table.tooltip.behaviour1": "Carga un archivo elegido de su carpeta de esquemas.", - - "item.create.goggles.tooltip": "GOGGLES", - "item.create.goggles.tooltip.summary": "Un par de gafas para aumentar la visión con _información_ _cinética_ útil.", - "item.create.goggles.tooltip.condition1": "Cuando se usan", - "item.create.goggles.tooltip.behaviour1": "Muestra _indicadores_ _con_ _colores_ correspondientes al _Nivel_ _de_ _Velocidad_ de un componente cinético colocado, así como _Impacto_ _de_ _Estrés_ y _Capacidad_ de los componentes individuales.", - "item.create.goggles.tooltip.condition2": "Al mirar el medidor", - "item.create.goggles.tooltip.behaviour2": "Muestra información detallada sobre la _velocidad_ o el _estrés_ de la red a la que está conectado el medidor.", - "item.create.goggles.tooltip.condition3": "UNLOCALIZED: When looking at fluid containers", - "item.create.goggles.tooltip.behaviour3": "UNLOCALIZED: Shows detailed information about the _Capacity_ of the block and any _Fluids_ stored within.", - - "item.create.wrench.tooltip": "WRENCH", - "item.create.wrench.tooltip.summary": "Una herramienta útil para trabajar en artefactos cinéticos. Se puede utilizar para _Rotar,_ _Desmantelar_ y _Configurar_ componentes.", - "item.create.wrench.tooltip.control1": "Click Derecho en un bloqueo cinético", - "item.create.wrench.tooltip.action1": "_Gira_ los componentes hacia o en contra de la cara con la que interactuó.", - "item.create.wrench.tooltip.control2": "Click Derecho mientras se está agachado", - "item.create.wrench.tooltip.action2": "_Desmonta_ los _componentes_ _cinéticos_ y los coloca de nuevo en _tú_ _inventario._", - - "block.create.nozzle.tooltip": "UNLOCALIZED: NOZZLE", - "block.create.nozzle.tooltip.summary": "UNLOCALIZED: Attach to the front of an _Encased Fan_ to distribute its effect on Entities in _all directions_.", - - "block.create.cuckoo_clock.tooltip": "UNLOCALIZED: CUCKOO CLOCK", - "block.create.cuckoo_clock.tooltip.summary": "UNLOCALIZED: Fine craftsmanship for _decorating_ a space and _keeping track of time_.", - "block.create.cuckoo_clock.tooltip.condition1": "UNLOCALIZED: When Powered by Kinetics", - "block.create.cuckoo_clock.tooltip.behaviour1": "UNLOCALIZED: Shows the _current time_ and plays a tune twice a day. _Activates_ once at _noon_ and at dusk, as soon as _players can sleep_.", - - "block.create.turntable.tooltip": "UNLOCALIZED: TURNTABLE", - "block.create.turntable.tooltip.summary": "UNLOCALIZED: Turns _Rotational Force_ into refined Motion Sickness.", - - "block.create.stockpile_switch.tooltip": "UNLOCALIZED: STOCKPILE SWITCH", - "block.create.stockpile_switch.tooltip.summary": "UNLOCALIZED: Toggles a Redstone signal based on the amount of _Stored Items_ in the attached Container. Comes with a handy filter. As opposed to a _Comparator,_ the _Stockpile Switch_ allows configuration of _thresholds,_ at which signals are inverted.", - "block.create.stockpile_switch.tooltip.condition1": "UNLOCALIZED: When R-Clicked", - "block.create.stockpile_switch.tooltip.behaviour1": "UNLOCALIZED: Opens the _Configuration Interface_.", - - "block.create.content_observer.tooltip": "UNLOCALIZED: CONTENT OBSERVER", - "block.create.content_observer.tooltip.summary": "UNLOCALIZED: _Detects Items_ inside _containers_ and _conveyors_ matching a configured _filter_. While the observed _inventory_, _belt_ or _chute contains_ a matching item, this component will emit a _Redstone Signal_. When an observed _funnel transfers_ a matching item, this component will emit a _Redstone Pulse_.", - - "block.create.adjustable_crate.tooltip": "UNLOCALIZED: ADJUSTABLE CRATE", - "block.create.adjustable_crate.tooltip.summary": "UNLOCALIZED: This _Item Container_ allows Manual control over its capacity. It can hold up to _16 Stacks_ of any Item. Supports _Redstone Comparators_.", - "block.create.adjustable_crate.tooltip.condition1": "UNLOCALIZED: When R-Clicked", - "block.create.adjustable_crate.tooltip.behaviour1": "UNLOCALIZED: Opens the _Interface_.", - - "block.create.creative_crate.tooltip": "UNLOCALIZED: THE ENDLESS CRATE", - "block.create.creative_crate.tooltip.summary": "UNLOCALIZED: This _Storage Container_ allows infinite replication of any item. Place next to a _Schematicannon_ to remove any material requirements.", - "block.create.creative_crate.tooltip.condition1": "UNLOCALIZED: When Item in Filter Slot", - "block.create.creative_crate.tooltip.behaviour1": "UNLOCALIZED: Anything _extracting_ from this container will provide an _endless supply_ of the item specified. Items _inserted_ into this crate will be _voided._", - - "item.create.creative_blaze_cake.tooltip": "UNLOCALIZED: CREATIVE CAKE", - "item.create.creative_blaze_cake.tooltip.summary": "UNLOCALIZED: A very special treat for _Blaze Burners_ that allows _controlling their heat level_. After eating this cake, Blaze Burners will _never run out of fuel_.", - "item.create.creative_blaze_cake.tooltip.condition1": "UNLOCALIZED: R-Click on Blaze Burner", - "item.create.creative_blaze_cake.tooltip.behaviour1": "UNLOCALIZED: _Locks_ the Blaze Burner's heat level. If used again, _cycles_ the Blaze Burner's heat level.", - - "block.create.controller_rail.tooltip": "UNLOCALIZED: CONTROLLER RAIL", - "block.create.controller_rail.tooltip.summary": "UNLOCALIZED: A _uni-directional powered rail_ capable of _fine control_ over a minecarts' _movement speed_.", - "block.create.controller_rail.tooltip.condition1": "UNLOCALIZED: When Powered by Redstone", - "block.create.controller_rail.tooltip.behaviour1": "UNLOCALIZED: _Accelerates_ or _Decelerates_ passing _minecarts_ corresponding to the _signal strength_. Propagates redstone power to adjacent controller rails. Powering two controller rails with different strengths will cause tracks between them to interpolate their signal.", - - "item.create.sand_paper.tooltip": "UNLOCALIZED: SAND PAPER", - "item.create.sand_paper.tooltip.summary": "UNLOCALIZED: A rough paper that can be used to _polish materials_. Can be automatically applied using the Deployer.", - "item.create.sand_paper.tooltip.condition1": "UNLOCALIZED: When Used", - "item.create.sand_paper.tooltip.behaviour1": "UNLOCALIZED: Applies polish to items held in the _offhand_ or lying on the _floor_ when _looking at them_", - - "item.create.builders_tea.tooltip": "UNLOCALIZED: BUILDERS TEA", - "item.create.builders_tea.tooltip.summary": "UNLOCALIZED: The perfect drink to get the day started- _Motivating_ and _Saturating._", - - "item.create.refined_radiance.tooltip": "UNLOCALIZED: REFINED RADIANCE", - "item.create.refined_radiance.tooltip.summary": "UNLOCALIZED: A Chromatic material forged from _absorbed light_.", - "item.create.refined_radiance.tooltip.condition1": "UNLOCALIZED: Work In Progress", - "item.create.refined_radiance.tooltip.behaviour1": "UNLOCALIZED: Usages for this material will be available in a future release.", - - "item.create.shadow_steel.tooltip": "UNLOCALIZED: SHADOW STEEL", - "item.create.shadow_steel.tooltip.summary": "UNLOCALIZED: A Chromatic material forged _in the void_.", - "item.create.shadow_steel.tooltip.condition1": "UNLOCALIZED: Work In Progress", - "item.create.shadow_steel.tooltip.behaviour1": "UNLOCALIZED: Usages for this material will be available in a future release.", - - "item.create.linked_controller.tooltip": "UNLOCALIZED: LINKED CONTROLLER", - "item.create.linked_controller.tooltip.summary": "UNLOCALIZED: Grants _handheld_ _control_ over _Redstone Link_ frequencies assigned to its _six_ _buttons_.", - "item.create.linked_controller.tooltip.condition1": "UNLOCALIZED: R-Click", - "item.create.linked_controller.tooltip.behaviour1": "UNLOCALIZED: _Toggles_ the controller. _Movement_ _controls_ are taken over while its active.", - "item.create.linked_controller.tooltip.condition2": "UNLOCALIZED: R-Click while Sneaking", - "item.create.linked_controller.tooltip.behaviour2": "UNLOCALIZED: Opens the manual _Configuration Interface_.", - "item.create.linked_controller.tooltip.condition3": "UNLOCALIZED: R-Click on Redstone Link Receiver", - "item.create.linked_controller.tooltip.behaviour3": "UNLOCALIZED: Enables _Bind Mode_, press one of the _six controls_ to bind it to the _Links' Frequency_.", - "item.create.linked_controller.tooltip.condition4": "UNLOCALIZED: R-Click on Lectern", - "item.create.linked_controller.tooltip.behaviour4": "UNLOCALIZED: Places the Controller into the Lectern for easy activation. (R-Click while Sneaking to retrieve it)", - - "item.create.diving_helmet.tooltip": "UNLOCALIZED: DIVING HELMET", - "item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Copper_ _Backtank_, allows the wielder to _breathe_ _underwater_ for an extended amount of time.", - "item.create.diving_helmet.tooltip.condition1": "UNLOCALIZED: When Worn", - "item.create.diving_helmet.tooltip.behaviour1": "UNLOCALIZED: Provides the _Water Breathing_ effect, slowly draining _Air Pressure_ from the Backtank.", - - "item.create.copper_backtank.tooltip": "UNLOCALIZED: COPPER BACKTANK", - "item.create.copper_backtank.tooltip.summary": "UNLOCALIZED: A _Wearable_ _Tank_ for carrying Pressurized Air.", - "item.create.copper_backtank.tooltip.condition1": "UNLOCALIZED: When Worn", - "item.create.copper_backtank.tooltip.behaviour1": "UNLOCALIZED: Provides _Pressurized_ _Air_ to Equipment that requires it.", - "item.create.copper_backtank.tooltip.condition2": "UNLOCALIZED: When placed, Powered by Kinetics", - "item.create.copper_backtank.tooltip.behaviour2": "UNLOCALIZED: _Collects_ _Pressurized_ _Air_ at a rate depending on the Rotational Speed.", - - "item.create.diving_boots.tooltip": "UNLOCALIZED: DIVING BOOTS", - "item.create.diving_boots.tooltip.summary": "UNLOCALIZED: A pair of _heavy_ _boots_, allowing for better traversal of the Ocean floor.", - "item.create.diving_boots.tooltip.condition1": "UNLOCALIZED: When Worn", - "item.create.diving_boots.tooltip.behaviour1": "UNLOCALIZED: Wielder _sinks_ _faster_ and _cannot_ _swim_. Grants the ability to _walk_ and _jump_ underwater. Wielder also is no longer affected by _Mechanical_ _Belts_.", - - "item.create.crafting_blueprint.tooltip": "UNLOCALIZED: CRAFTING BLUEPRINT", - "item.create.crafting_blueprint.tooltip.summary": "UNLOCALIZED: _Placed_ on a wall, it can be used to _specify_ _ingredient_ _arrangements_ for easier manual crafting. Each slot represents a Recipe.", - "item.create.crafting_blueprint.condition1": "UNLOCALIZED: R-Click empty Slot", - "item.create.crafting_blueprint.behaviour1": "UNLOCALIZED: Opens a _Crafting_ _menu_ allowing you to _configure_ a _recipe_ and items to display.", - "item.create.crafting_blueprint.condition2": "UNLOCALIZED: R-Click configured Slot", - "item.create.crafting_blueprint.behaviour2": "UNLOCALIZED: _Applies_ the _configured_ _recipe_ with matching Ingredients found in your _Inventory_. _Sneak_ to craft up to a _Stack_ of items.", - - "item.create.minecart_coupling.tooltip": "UNLOCALIZED: MINECART COUPLING", - "item.create.minecart_coupling.tooltip.summary": "UNLOCALIZED: _Chains_ all your _Minecarts_ or _Carriage Contraptions_ together to form a majestic Train.", - "item.create.minecart_coupling.tooltip.condition1": "UNLOCALIZED: When Used on Minecart", - "item.create.minecart_coupling.tooltip.behaviour1": "UNLOCALIZED: _Couples_ two Minecarts together, attempting to keep them at a _constant distance_ while moving.", - - "block.create.peculiar_bell.tooltip": "UNLOCALIZED: PECULIAR BELL", - "block.create.peculiar_bell.tooltip.summary": "UNLOCALIZED: A decorative _Brass Bell_. Placing it right above open _Soul Fire_ may cause side-effects...", - - "block.create.haunted_bell.tooltip": "UNLOCALIZED: HAUNTED BELL", - "block.create.haunted_bell.tooltip.summary": "UNLOCALIZED: A _Cursed Bell_ haunted by lost souls of the Nether.", - "block.create.haunted_bell.tooltip.condition1": "UNLOCALIZED: When Held or Rang", - "block.create.haunted_bell.tooltip.behaviour1": "UNLOCALIZED: Highlights nearby _Lightless Spots_ on which _Hostile Mobs_ can spawn.", - - - "_": "->------------------------] Ponder Content [------------------------<-", - - "create.ponder.hold_to_ponder": "UNLOCALIZED: Hold [%1$s] to Ponder", - "create.ponder.subject": "UNLOCALIZED: Subject of this scene", - "create.ponder.pondering": "UNLOCALIZED: Pondering about...", - "create.ponder.identify_mode": "UNLOCALIZED: Identify mode active.\nUnpause with [%1$s]", - "create.ponder.associated": "UNLOCALIZED: Associated Entries", - "create.ponder.close": "UNLOCALIZED: Close", - "create.ponder.identify": "UNLOCALIZED: Identify", - "create.ponder.next": "UNLOCALIZED: Next Scene", - "create.ponder.previous": "UNLOCALIZED: Previous Scene", - "create.ponder.replay": "UNLOCALIZED: Replay", - "create.ponder.think_back": "UNLOCALIZED: Think Back", - "create.ponder.slow_text": "UNLOCALIZED: Comfy Reading", - "create.ponder.exit": "UNLOCALIZED: Exit", - "create.ponder.welcome": "UNLOCALIZED: Welcome to Ponder", - "create.ponder.categories": "UNLOCALIZED: Available Categories in Create", - "create.ponder.index_description": "UNLOCALIZED: Click one of the icons to learn about its associated Items and Blocks", - "create.ponder.index_title": "UNLOCALIZED: Ponder Index", - "create.ponder.shared.rpm16": "UNLOCALIZED: 16 RPM", - "create.ponder.shared.behaviour_modify_wrench": "UNLOCALIZED: This behaviour can be modified using a Wrench", - "create.ponder.shared.storage_on_contraption": "UNLOCALIZED: Inventories attached to the Contraption will pick up their drops automatically", - "create.ponder.shared.sneak_and": "UNLOCALIZED: Sneak +", - "create.ponder.shared.rpm8": "UNLOCALIZED: 8 RPM", - "create.ponder.shared.ctrl_and": "UNLOCALIZED: Ctrl +", - "create.ponder.shared.rpm32": "UNLOCALIZED: 32 RPM", - "create.ponder.shared.rpm16_source": "UNLOCALIZED: Source: 16 RPM", - "create.ponder.shared.movement_anchors": "UNLOCALIZED: With the help of Chassis or Super Glue, larger structures can be moved.", - "create.ponder.tag.redstone": "UNLOCALIZED: Logic Components", - "create.ponder.tag.redstone.description": "UNLOCALIZED: Components which help with redstone engineering", - "create.ponder.tag.contraption_assembly": "UNLOCALIZED: Block Attachment Utility", - "create.ponder.tag.contraption_assembly.description": "UNLOCALIZED: Tools and Components used to assemble structures moved as an animated Contraption", - "create.ponder.tag.fluids": "UNLOCALIZED: Fluid Manipulators", - "create.ponder.tag.fluids.description": "UNLOCALIZED: Components which help relaying and making use of Fluids", - "create.ponder.tag.decoration": "UNLOCALIZED: Aesthetics", - "create.ponder.tag.decoration.description": "UNLOCALIZED: Components used mostly for decorative purposes", - "create.ponder.tag.windmill_sails": "UNLOCALIZED: Sails for Windmill Bearings", - "create.ponder.tag.windmill_sails.description": "UNLOCALIZED: Blocks that count towards the strength of a Windmill Contraption when assembled. Each of these have equal efficiency in doing so.", - "create.ponder.tag.arm_targets": "UNLOCALIZED: Targets for Mechanical Arms", - "create.ponder.tag.arm_targets.description": "UNLOCALIZED: Components which can be selected as inputs or outputs to the Mechanical Arm", - "create.ponder.tag.kinetic_appliances": "UNLOCALIZED: Kinetic Appliances", - "create.ponder.tag.kinetic_appliances.description": "UNLOCALIZED: Components which make use of Rotational Force", - "create.ponder.tag.kinetic_sources": "UNLOCALIZED: Kinetic Sources", - "create.ponder.tag.kinetic_sources.description": "UNLOCALIZED: Components which generate Rotational Force", - "create.ponder.tag.movement_anchor": "UNLOCALIZED: Movement Anchors", - "create.ponder.tag.movement_anchor.description": "UNLOCALIZED: Components which allow the creation of moving contraptions, animating an attached structure in a variety of ways", - "create.ponder.tag.kinetic_relays": "UNLOCALIZED: Kinetic Blocks", - "create.ponder.tag.kinetic_relays.description": "UNLOCALIZED: Components which help relaying Rotational Force elsewhere", - "create.ponder.tag.contraption_actor": "UNLOCALIZED: Contraption Actors", - "create.ponder.tag.contraption_actor.description": "UNLOCALIZED: Components which expose special behaviour when attached to a moving contraption", - "create.ponder.tag.creative": "UNLOCALIZED: Creative Mode", - "create.ponder.tag.creative.description": "UNLOCALIZED: Components not usually available for Survival Mode", - "create.ponder.tag.logistics": "UNLOCALIZED: Item Transportation", - "create.ponder.tag.logistics.description": "UNLOCALIZED: Components which help moving items around", - - "create.ponder.adjustable_pulse_repeater.header": "UNLOCALIZED: Controlling signals using Adjustable Pulse Repeaters", - "create.ponder.adjustable_pulse_repeater.text_1": "UNLOCALIZED: Adjustable Pulse Repeaters emit a short pulse at a delay", - "create.ponder.adjustable_pulse_repeater.text_2": "UNLOCALIZED: Using the mouse wheel, the charge time can be configured", - "create.ponder.adjustable_pulse_repeater.text_3": "UNLOCALIZED: Configured delays can range up to 30 minutes", - - "create.ponder.adjustable_repeater.header": "UNLOCALIZED: Controlling signals using Adjustable Repeaters", - "create.ponder.adjustable_repeater.text_1": "UNLOCALIZED: Adjustable Repeaters behave similarly to regular Repeaters", - "create.ponder.adjustable_repeater.text_2": "UNLOCALIZED: They charge up for a set time...", - "create.ponder.adjustable_repeater.text_3": "UNLOCALIZED: ...and cool down for the same duration", - "create.ponder.adjustable_repeater.text_4": "UNLOCALIZED: Using the mouse wheel, the charge time can be configured", - "create.ponder.adjustable_repeater.text_5": "UNLOCALIZED: Configured delays can range up to 30 minutes", - - "create.ponder.analog_lever.header": "UNLOCALIZED: Controlling signals using the Analog Lever", - "create.ponder.analog_lever.text_1": "UNLOCALIZED: Analog Levers make for a compact and precise source of redstone power", - "create.ponder.analog_lever.text_2": "UNLOCALIZED: Right-click to increase its analog power output", - "create.ponder.analog_lever.text_3": "UNLOCALIZED: Right-click while Sneaking to decrease the power output again", - - "create.ponder.andesite_tunnel.header": "UNLOCALIZED: Using Andesite Tunnels", - "create.ponder.andesite_tunnel.text_1": "UNLOCALIZED: Andesite Tunnels can be used to cover up your belts", - "create.ponder.andesite_tunnel.text_2": "UNLOCALIZED: Whenever an Andesite Tunnel has connections to the sides...", - "create.ponder.andesite_tunnel.text_3": "UNLOCALIZED: ...they will split exactly one item off of any passing stacks", - "create.ponder.andesite_tunnel.text_4": "UNLOCALIZED: The remainder will continue on its path", - - "create.ponder.basin.header": "UNLOCALIZED: Processing Items in the Basin", - "create.ponder.basin.text_1": "UNLOCALIZED: A Basin can hold Items and Fluids for Processing", - "create.ponder.basin.text_2": "UNLOCALIZED: After a processing step, basins try to output below to the side of them", - "create.ponder.basin.text_3": "UNLOCALIZED: When a valid component is present, the Basin will show an output faucet", - "create.ponder.basin.text_4": "UNLOCALIZED: A number of options are applicable here", - "create.ponder.basin.text_5": "UNLOCALIZED: Outputs will be caught by the inventory below", - "create.ponder.basin.text_6": "UNLOCALIZED: Without output faucet, the Basin will retain items created in its processing", - "create.ponder.basin.text_7": "UNLOCALIZED: This can be useful if outputs should be re-used as ingredients", - "create.ponder.basin.text_8": "UNLOCALIZED: Desired outputs will then have to be extracted from the basin", - "create.ponder.basin.text_9": "UNLOCALIZED: A Filter might be necessary to avoid pulling out un-processed items", - - "create.ponder.bearing_modes.header": "UNLOCALIZED: Movement Modes of the Mechanical Bearing", - "create.ponder.bearing_modes.text_1": "UNLOCALIZED: When Stopped, the Bearing will place the structure at the nearest grid-aligned Angle", - "create.ponder.bearing_modes.text_2": "UNLOCALIZED: It can be configured never to revert to solid blocks, or only near the angle it started at", - - "create.ponder.belt_casing.header": "UNLOCALIZED: Encasing Belts", - "create.ponder.belt_casing.text_1": "UNLOCALIZED: Brass or Andesite Casing can be used to decorate Mechanical Belts", - "create.ponder.belt_casing.text_2": "UNLOCALIZED: A wrench can be used to remove the casing", - - "create.ponder.belt_connector.header": "UNLOCALIZED: Using Mechanical Belts", - "create.ponder.belt_connector.text_1": "UNLOCALIZED: Right-Clicking two shafts with a belt item will connect them together", - "create.ponder.belt_connector.text_2": "UNLOCALIZED: Accidental selections can be canceled with Right-Click while Sneaking", - "create.ponder.belt_connector.text_3": "UNLOCALIZED: Additional Shafts can be added throughout the Belt", - "create.ponder.belt_connector.text_4": "UNLOCALIZED: Shafts connected via Belts will rotate with Identical Speed and Direction", - "create.ponder.belt_connector.text_5": "UNLOCALIZED: Added shafts can be removed using the wrench", - "create.ponder.belt_connector.text_6": "UNLOCALIZED: Mechanical Belts can be dyed for aesthetic purposes", - - "create.ponder.belt_directions.header": "UNLOCALIZED: Valid Orientations for Mechanical Belts", - "create.ponder.belt_directions.text_1": "UNLOCALIZED: Belts cannot connect in arbitrary directions", - "create.ponder.belt_directions.text_2": "UNLOCALIZED: 1. They can connect horizontally", - "create.ponder.belt_directions.text_3": "UNLOCALIZED: 2. They can connect diagonally", - "create.ponder.belt_directions.text_4": "UNLOCALIZED: 3. They can connect vertically", - "create.ponder.belt_directions.text_5": "UNLOCALIZED: 4. And they can connect vertical shafts horizontally", - "create.ponder.belt_directions.text_6": "UNLOCALIZED: These are all possible directions. Belts can span any Length between 2 and 20 blocks", - - "create.ponder.belt_transport.header": "UNLOCALIZED: Using Mechanical Belts for Logistics", - "create.ponder.belt_transport.text_1": "UNLOCALIZED: Moving belts will transport Items and other Entities", - "create.ponder.belt_transport.text_2": "UNLOCALIZED: Right-Click with an empty hand to take items off a belt", - - "create.ponder.blaze_burner.header": "UNLOCALIZED: Feeding Blaze Burners", - "create.ponder.blaze_burner.text_1": "UNLOCALIZED: Blaze Burners can provide Heat to Items processed in a Basin", - "create.ponder.blaze_burner.text_2": "UNLOCALIZED: For this, the Blaze has to be fed with flammable items", - "create.ponder.blaze_burner.text_3": "UNLOCALIZED: With a Blaze Cake, the Burner can reach an even stronger level of heat", - "create.ponder.blaze_burner.text_4": "UNLOCALIZED: The feeding process can be automated using Deployers or Mechanical Arms", - - "create.ponder.brass_funnel.header": "UNLOCALIZED: The Brass Funnel", - "create.ponder.brass_funnel.text_1": "UNLOCALIZED: Andesite Funnels can only ever extract single items.", - "create.ponder.brass_funnel.text_2": "UNLOCALIZED: Brass Funnels can extract up to a full stack.", - "create.ponder.brass_funnel.text_3": "UNLOCALIZED: Scrolling on the filter slot allows for precise control over the extracted stack size.", - "create.ponder.brass_funnel.text_4": "UNLOCALIZED: Using items on the filter slot will restrict the funnel to only transfer matching stacks.", - - "create.ponder.brass_tunnel.header": "UNLOCALIZED: Using Brass Tunnels", - "create.ponder.brass_tunnel.text_1": "UNLOCALIZED: Brass Tunnels can be used to cover up your belts", - "create.ponder.brass_tunnel.text_2": "UNLOCALIZED: Brass Tunnels have filter slots on each open side", - "create.ponder.brass_tunnel.text_3": "UNLOCALIZED: Filters on inbound connections simply block non-matching items", - "create.ponder.brass_tunnel.text_4": "UNLOCALIZED: Filters on outbound connections can be used to sort items by type", - "create.ponder.brass_tunnel.text_5": "UNLOCALIZED: Whenever a passing item has multiple valid exits, the distribution mode will decide how to handle it", - "create.ponder.brass_tunnel.text_6": "UNLOCALIZED: Brass Tunnels on parallel belts will form a group", - "create.ponder.brass_tunnel.text_7": "UNLOCALIZED: Incoming Items will now be distributed across all connected exits", - "create.ponder.brass_tunnel.text_8": "UNLOCALIZED: For this, items can also be inserted into the Tunnel block directly", - - "create.ponder.brass_tunnel_modes.header": "UNLOCALIZED: Distribution Modes of the Brass Tunnel", - "create.ponder.brass_tunnel_modes.text_1": "UNLOCALIZED: Using a Wrench, the distribution behaviour of Brass Tunnels can be configured", - "create.ponder.brass_tunnel_modes.text_10": "UNLOCALIZED: 'Synchronize Inputs' is a unique setting for Brass Tunnels", - "create.ponder.brass_tunnel_modes.text_11": "UNLOCALIZED: Items are only allowed past if every tunnel in the group has one waiting", - "create.ponder.brass_tunnel_modes.text_12": "UNLOCALIZED: This ensures that all affected belts supply items at the same rate", - "create.ponder.brass_tunnel_modes.text_2": "UNLOCALIZED: 'Split' will attempt to distribute the stack evenly between available outputs", - "create.ponder.brass_tunnel_modes.text_3": "UNLOCALIZED: If an output is unable to take more items, it will be skipped", - "create.ponder.brass_tunnel_modes.text_4": "UNLOCALIZED: 'Forced Split' will never skip outputs, and instead wait until they are free", - "create.ponder.brass_tunnel_modes.text_5": "UNLOCALIZED: 'Round Robin' keeps stacks whole, and cycles through outputs iteratively", - "create.ponder.brass_tunnel_modes.text_6": "UNLOCALIZED: Once Again, if an output is unable to take more items, it will be skipped", - "create.ponder.brass_tunnel_modes.text_7": "UNLOCALIZED: 'Forced Round Robin' never skips outputs", - "create.ponder.brass_tunnel_modes.text_8": "UNLOCALIZED: 'Prefer Nearest' prioritizes the outputs closest to the items' input location", - "create.ponder.brass_tunnel_modes.text_9": "UNLOCALIZED: 'Randomize' will distribute whole stacks to randomly picked outputs", - - "create.ponder.cart_assembler.header": "UNLOCALIZED: Moving Structures using Cart Assemblers", - "create.ponder.cart_assembler.text_1": "UNLOCALIZED: Powered Cart Assemblers mount attached structures to passing Minecarts", - "create.ponder.cart_assembler.text_2": "UNLOCALIZED: Without a redstone signal, it disassembles passing cart contraptions back into blocks", - "create.ponder.cart_assembler.text_3": "UNLOCALIZED: Using a Wrench on the Minecart will let you carry the Contraption elsewhere", - - "create.ponder.cart_assembler_dual.header": "UNLOCALIZED: Assembling Carriage Contraptions", - "create.ponder.cart_assembler_dual.text_1": "UNLOCALIZED: Whenever two Cart Assembers share an attached structure...", - "create.ponder.cart_assembler_dual.text_2": "UNLOCALIZED: Powering either of them will create a Carriage Contraption", - "create.ponder.cart_assembler_dual.text_3": "UNLOCALIZED: The carts will behave like those connected via Minecart Coupling", - - "create.ponder.cart_assembler_modes.header": "UNLOCALIZED: Orientation Settings for Minecart Contraptions", - "create.ponder.cart_assembler_modes.text_1": "UNLOCALIZED: Cart Contraptions will rotate to face towards their carts' motion", - "create.ponder.cart_assembler_modes.text_2": "UNLOCALIZED: This Arrow indicates which side of the Structure will be considered the front", - "create.ponder.cart_assembler_modes.text_3": "UNLOCALIZED: If the Assembler is set to Lock Rotation, the contraptions' orientation will never change", - - "create.ponder.cart_assembler_rails.header": "UNLOCALIZED: Other types of Minecarts and Rails", - "create.ponder.cart_assembler_rails.text_1": "UNLOCALIZED: Cart Assemblers on Regular Tracks will not affect the passing carts' motion", - "create.ponder.cart_assembler_rails.text_2": "UNLOCALIZED: When on Powered or Controller Rail, the carts will be held in place until it's Powered", - "create.ponder.cart_assembler_rails.text_3": "UNLOCALIZED: Other types of Minecarts can be used as the anchor", - "create.ponder.cart_assembler_rails.text_4": "UNLOCALIZED: Furnace Carts will keep themselves powered, pulling fuel from any attached inventories", - - "create.ponder.chain_drive.header": "UNLOCALIZED: Relaying rotational force with Chain Drives", - "create.ponder.chain_drive.text_1": "UNLOCALIZED: Chain Drives relay rotation to each other in a row", - "create.ponder.chain_drive.text_2": "UNLOCALIZED: All shafts connected like this will rotate in the same direction", - "create.ponder.chain_drive.text_3": "UNLOCALIZED: Any part of the row can be rotated by 90 degrees", - - "create.ponder.chain_gearshift.header": "UNLOCALIZED: Controlling rotational speed with Chain Gearshifts", - "create.ponder.chain_gearshift.text_1": "UNLOCALIZED: Unpowered Chain Gearshifts behave exactly like Chain Drives", - "create.ponder.chain_gearshift.text_2": "UNLOCALIZED: When Powered, the speed transmitted to other Chain Drives in the row is doubled", - "create.ponder.chain_gearshift.text_3": "UNLOCALIZED: Whenever the Powered Gearshift is not at the source, its speed will be halved instead", - "create.ponder.chain_gearshift.text_4": "UNLOCALIZED: In both cases, Chain Drives in the row always run at 2x the speed of the Powered Gearshift", - "create.ponder.chain_gearshift.text_5": "UNLOCALIZED: Using analog signals, the ratio can be adjusted more precisely between 1 and 2", - "create.ponder.chain_gearshift.text_6": "UNLOCALIZED: 12 RPM", - - "create.ponder.chute.header": "UNLOCALIZED: Transporting Items downward via Chutes", - "create.ponder.chute.text_1": "UNLOCALIZED: Chutes can transport items vertically from and to inventories", - "create.ponder.chute.text_2": "UNLOCALIZED: Using the Wrench, a window can be created", - "create.ponder.chute.text_3": "UNLOCALIZED: Placing chutes targeting the side faces of another will make it diagonal", - - "create.ponder.chute_upward.header": "UNLOCALIZED: Transporting Items upward via Chutes", - "create.ponder.chute_upward.text_1": "UNLOCALIZED: Using Encased Fans at the top or bottom, a Chute can move items upward", - "create.ponder.chute_upward.text_2": "UNLOCALIZED: Inspecting chutes with Engineers' Goggles reveals information about the movement direction", - "create.ponder.chute_upward.text_3": "UNLOCALIZED: On the 'blocked' end, items will have to be inserted/taken from the sides", - - "create.ponder.clockwork_bearing.header": "UNLOCALIZED: Animating Structures using Clockwork Bearings", - "create.ponder.clockwork_bearing.text_1": "UNLOCALIZED: Clockwork Bearings attach to blocks in front of them", - "create.ponder.clockwork_bearing.text_2": "UNLOCALIZED: Upon receiving Rotational Force, the structure will be rotated according to the hour of the day", - "create.ponder.clockwork_bearing.text_3": "UNLOCALIZED: 3:00", - "create.ponder.clockwork_bearing.text_4": "UNLOCALIZED: 4:00", - "create.ponder.clockwork_bearing.text_5": "UNLOCALIZED: Right-Click the bearing to start or stop animating the structure", - "create.ponder.clockwork_bearing.text_6": "UNLOCALIZED: In front of the Hour Hand, a second structure can be added", - "create.ponder.clockwork_bearing.text_7": "UNLOCALIZED: Ensure the two Structures are not attached to each other through super glue or similar", - "create.ponder.clockwork_bearing.text_8": "UNLOCALIZED: The Second Structure will now rotate as the Minute Hand", - - "create.ponder.clutch.header": "UNLOCALIZED: Controlling rotational force using a Clutch", - "create.ponder.clutch.text_1": "UNLOCALIZED: Clutches will relay rotation in a straight line", - "create.ponder.clutch.text_2": "UNLOCALIZED: When powered by Redstone, it breaks the connection", - - "create.ponder.cog_speedup.header": "UNLOCALIZED: Gearshifting with Cogs", - "create.ponder.cog_speedup.text_1": "UNLOCALIZED: Large and Small cogs can be connected diagonally", - "create.ponder.cog_speedup.text_2": "UNLOCALIZED: Shifting from large to small cogs, the conveyed speed will be doubled", - "create.ponder.cog_speedup.text_3": "UNLOCALIZED: Shifting the opposite way, the conveyed speed will be halved", - - "create.ponder.cogwheel.header": "UNLOCALIZED: Relaying rotational force using Cogwheels", - "create.ponder.cogwheel.text_1": "UNLOCALIZED: Cogwheels will relay rotation to other adjacent cogwheels", - "create.ponder.cogwheel.text_2": "UNLOCALIZED: Neighbouring shafts connected like this will rotate in opposite directions", - - "create.ponder.creative_fluid_tank.header": "UNLOCALIZED: Creative Fluid Tanks", - "create.ponder.creative_fluid_tank.text_1": "UNLOCALIZED: Creative Fluid Tanks can be used to provide a bottomless supply of fluid", - "create.ponder.creative_fluid_tank.text_2": "UNLOCALIZED: Right-Click with a fluid containing item to configure it", - "create.ponder.creative_fluid_tank.text_3": "UNLOCALIZED: Pipe Networks can now endlessly draw the assigned fluid from the tank", - "create.ponder.creative_fluid_tank.text_4": "UNLOCALIZED: Any Fluids pushed back into a Creative Fluid Tank will be voided", - - "create.ponder.creative_motor.header": "UNLOCALIZED: Generating Rotational Force using Creative Motors", - "create.ponder.creative_motor.text_1": "UNLOCALIZED: Creative motors are a compact and configurable source of Rotational Force", - "create.ponder.creative_motor.text_2": "UNLOCALIZED: Scrolling on the back panel changes the RPM of the motors' rotational output", - - "create.ponder.crushing_wheels.header": "UNLOCALIZED: Processing Items with Crushing Wheels", - "create.ponder.crushing_wheels.text_1": "UNLOCALIZED: A pair of Crushing Wheels can grind items very effectively", - "create.ponder.crushing_wheels.text_2": "UNLOCALIZED: Their Rotational Input has to make them spin into each other", - "create.ponder.crushing_wheels.text_3": "UNLOCALIZED: Items thrown or inserted into the top will get processed", - "create.ponder.crushing_wheels.text_4": "UNLOCALIZED: Items can be inserted and picked up through automated means as well", - - "create.ponder.deployer.header": "UNLOCALIZED: Using the Deployer", - "create.ponder.deployer.text_1": "UNLOCALIZED: Given Rotational Force, a Deployer can imitate player interactions", - "create.ponder.deployer.text_10": "UNLOCALIZED: Right-click the front to give it an Item to use", - "create.ponder.deployer.text_11": "UNLOCALIZED: Items can also be inserted automatically", - "create.ponder.deployer.text_12": "UNLOCALIZED: Deployers carry a filter slot", - "create.ponder.deployer.text_13": "UNLOCALIZED: When a filter is set, it activates only while holding a matching item", - "create.ponder.deployer.text_14": "UNLOCALIZED: Only items matching the filter can now be inserted...", - "create.ponder.deployer.text_15": "UNLOCALIZED: ...and only non-matching items will be extracted", - "create.ponder.deployer.text_2": "UNLOCALIZED: It will always interact with the position 2 blocks in front of itself", - "create.ponder.deployer.text_3": "UNLOCALIZED: Blocks directly in front will not obstruct it", - "create.ponder.deployer.text_4": "UNLOCALIZED: Deployers can:", - "create.ponder.deployer.text_5": "UNLOCALIZED: Place Blocks,", - "create.ponder.deployer.text_6": "UNLOCALIZED: Use Items,", - "create.ponder.deployer.text_7": "UNLOCALIZED: Activate Blocks,", - "create.ponder.deployer.text_8": "UNLOCALIZED: Harvest blocks", - "create.ponder.deployer.text_9": "UNLOCALIZED: and Attack Mobs", - - "create.ponder.deployer_contraption.header": "UNLOCALIZED: Using Deployers on Contraptions", - "create.ponder.deployer_contraption.text_1": "UNLOCALIZED: Whenever Deployers are moved as part of an animated Contraption...", - "create.ponder.deployer_contraption.text_2": "UNLOCALIZED: They activate at each visited location, using items from inventories anywhere on the contraption", - "create.ponder.deployer_contraption.text_3": "UNLOCALIZED: The Filter slot can be used to specify which items to pull", - - "create.ponder.deployer_modes.header": "UNLOCALIZED: Modes of the Deployer", - "create.ponder.deployer_modes.text_1": "UNLOCALIZED: By default, a Deployer imitates a Right-click interaction", - "create.ponder.deployer_modes.text_2": "UNLOCALIZED: Using a Wrench, it can be set to imitate a Left-click instead", - - "create.ponder.deployer_processing.header": "UNLOCALIZED: Processing Items using Deployers", - "create.ponder.deployer_processing.text_1": "UNLOCALIZED: With a fitting held item, Deployers can process items provided beneath them", - "create.ponder.deployer_processing.text_2": "UNLOCALIZED: The Input items can be dropped or placed on a Depot under the Deployer", - "create.ponder.deployer_processing.text_3": "UNLOCALIZED: When items are provided on a belt...", - "create.ponder.deployer_processing.text_4": "UNLOCALIZED: The Deployer will hold and process them automatically", - - "create.ponder.deployer_redstone.header": "UNLOCALIZED: Controlling Deployers with Redstone", - "create.ponder.deployer_redstone.text_1": "UNLOCALIZED: When powered by Redstone, Deployers will not activate", - "create.ponder.deployer_redstone.text_2": "UNLOCALIZED: Before stopping, the Deployer will finish any started cycles", - "create.ponder.deployer_redstone.text_3": "UNLOCALIZED: Thus, a negative pulse can be used to trigger exactly one activation cycle", - - "create.ponder.depot.header": "UNLOCALIZED: Using Depots", - "create.ponder.depot.text_1": "UNLOCALIZED: Depots can serve as 'stationary' belt elements", - "create.ponder.depot.text_2": "UNLOCALIZED: Right-Click to manually place or remove Items from it", - "create.ponder.depot.text_3": "UNLOCALIZED: Just like Mechanical Belts, it can provide items to processing", - "create.ponder.depot.text_4": "UNLOCALIZED: ...as well as provide Items to Mechanical Arms", - - "create.ponder.empty_blaze_burner.header": "UNLOCALIZED: Using Empty Blaze Burners", - "create.ponder.empty_blaze_burner.text_1": "UNLOCALIZED: Right-click a Blaze with the empty burner to capture it", - "create.ponder.empty_blaze_burner.text_2": "UNLOCALIZED: Alternatively, Blazes can be collected from their Spawners directly", - "create.ponder.empty_blaze_burner.text_3": "UNLOCALIZED: You now have an ideal heat source for various machines", - "create.ponder.empty_blaze_burner.text_4": "UNLOCALIZED: For Aesthetic purposes, Empty Blaze Burners can also be lit using Flint and Steel", - "create.ponder.empty_blaze_burner.text_5": "UNLOCALIZED: The flame can be transformed using a soul-infused item", - "create.ponder.empty_blaze_burner.text_6": "UNLOCALIZED: However, without a blaze they are not suitable for industrial heating", - - "create.ponder.encased_fluid_pipe.header": "UNLOCALIZED: Encasing Fluid Pipes", - "create.ponder.encased_fluid_pipe.text_1": "UNLOCALIZED: Copper Casing can be used to decorate Fluid Pipes", - "create.ponder.encased_fluid_pipe.text_2": "UNLOCALIZED: Aside from being conceiled, Encased Pipes are locked into their connectivity state", - "create.ponder.encased_fluid_pipe.text_3": "UNLOCALIZED: It will no longer react to any neighbouring blocks being added or removed", - - "create.ponder.fan_direction.header": "UNLOCALIZED: Air flow of Encased Fans", - "create.ponder.fan_direction.text_1": "UNLOCALIZED: Encased Fans use Rotational Force to create an Air Current", - "create.ponder.fan_direction.text_2": "UNLOCALIZED: Strength and Direction of Flow depends on the Rotational Input", - - "create.ponder.fan_processing.header": "UNLOCALIZED: Processing Items using Encased Fans", - "create.ponder.fan_processing.text_1": "UNLOCALIZED: When passing through lava, the Air Flow becomes Heated", - "create.ponder.fan_processing.text_2": "UNLOCALIZED: Items caught in the area will be smelted", - "create.ponder.fan_processing.text_3": "UNLOCALIZED: Food items thrown here would be incinerated", - "create.ponder.fan_processing.text_4": "UNLOCALIZED: Instead, a setup for Smoking using Fire should be used for them", - "create.ponder.fan_processing.text_5": "UNLOCALIZED: Air Flows passing through water create a Washing Setup", - "create.ponder.fan_processing.text_6": "UNLOCALIZED: Some interesting new processing can be done with it", - "create.ponder.fan_processing.text_7": "UNLOCALIZED: The Speed of the Fan does NOT affect the processing speed, only its range", - "create.ponder.fan_processing.text_8": "UNLOCALIZED: Fan Processing can also be applied to Items on Depots and Belts", - - "create.ponder.fan_source.header": "UNLOCALIZED: Generating Rotational Force using Encased Fans", - "create.ponder.fan_source.text_1": "UNLOCALIZED: Fans facing down into a source of heat can provide Rotational Force", - "create.ponder.fan_source.text_2": "UNLOCALIZED: When given a Redstone Signal, the Fans will start providing power", - - "create.ponder.fluid_pipe_flow.header": "UNLOCALIZED: Moving Fluids using Copper Pipes", - "create.ponder.fluid_pipe_flow.text_1": "UNLOCALIZED: Fluid Pipes can connect two or more fluid sources and targets", - "create.ponder.fluid_pipe_flow.text_2": "UNLOCALIZED: Using a wrench, a straight pipe segment can be given a window", - "create.ponder.fluid_pipe_flow.text_3": "UNLOCALIZED: Windowed pipes will not connect to any other adjacent pipe segments", - "create.ponder.fluid_pipe_flow.text_4": "UNLOCALIZED: Powered by Mechanical Pumps, the Pipes can transport Fluids", - "create.ponder.fluid_pipe_flow.text_5": "UNLOCALIZED: No fluid is being extracted at first", - "create.ponder.fluid_pipe_flow.text_6": "UNLOCALIZED: Once the flow connects them, the endpoints gradually transfer their contents", - "create.ponder.fluid_pipe_flow.text_7": "UNLOCALIZED: Thus, the Pipe blocks themselves never 'physically' contain any fluid", - - "create.ponder.fluid_pipe_interaction.header": "UNLOCALIZED: Draining and Filling fluid containers", - "create.ponder.fluid_pipe_interaction.text_1": "UNLOCALIZED: Endpoints of a pipe network can interact with a variety of blocks", - "create.ponder.fluid_pipe_interaction.text_2": "UNLOCALIZED: Any block with fluid storage capabilities can be filled or drained", - "create.ponder.fluid_pipe_interaction.text_3": "UNLOCALIZED: Source blocks right in front of an open end can be picked up...", - "create.ponder.fluid_pipe_interaction.text_4": "UNLOCALIZED: ...while spilling into empty spaces can create fluid sources", - "create.ponder.fluid_pipe_interaction.text_5": "UNLOCALIZED: Pipes can also extract fluids from a handful of other blocks directly", - - "create.ponder.fluid_tank_sizes.header": "UNLOCALIZED: Dimensions of a Fluid tank", - "create.ponder.fluid_tank_sizes.text_1": "UNLOCALIZED: Fluid Tanks can be combined to increase the total capacity", - "create.ponder.fluid_tank_sizes.text_2": "UNLOCALIZED: Their base square can be up to 3 blocks wide...", - "create.ponder.fluid_tank_sizes.text_3": "UNLOCALIZED: ...and grow in height by more than 30 additional layers", - "create.ponder.fluid_tank_sizes.text_4": "UNLOCALIZED: Using a Wrench, a tanks' window can be toggled", - - "create.ponder.fluid_tank_storage.header": "UNLOCALIZED: Storing Fluids in Fluid Tanks", - "create.ponder.fluid_tank_storage.text_1": "UNLOCALIZED: Fluid Tanks can be used to store large amounts of fluid", - "create.ponder.fluid_tank_storage.text_2": "UNLOCALIZED: Pipe networks can push and pull fluids from any side", - "create.ponder.fluid_tank_storage.text_3": "UNLOCALIZED: The contained fluid can be measured by a Comparator", - "create.ponder.fluid_tank_storage.text_4": "UNLOCALIZED: However, in Survival Mode Fluids cannot be added or taken manually", - "create.ponder.fluid_tank_storage.text_5": "UNLOCALIZED: You can use Basins, Item Drains and Spouts to drain or fill fluid containing items", - - "create.ponder.flywheel.header": "UNLOCALIZED: Generating Rotational Force using the Flywheel", - "create.ponder.flywheel.text_1": "UNLOCALIZED: Flywheels are required for generating rotational force with the Furnace Engine", - "create.ponder.flywheel.text_2": "UNLOCALIZED: The provided Rotational Force has a very large stress capacity", - "create.ponder.flywheel.text_3": "UNLOCALIZED: Using a Blast Furnace will double the efficiency of the Engine", - - "create.ponder.funnel_compat.header": "UNLOCALIZED: Funnel compatibility", - "create.ponder.funnel_compat.text_1": "UNLOCALIZED: Funnels should also interact nicely with a handful of other components.", - "create.ponder.funnel_compat.text_2": "UNLOCALIZED: Vertical Saws", - "create.ponder.funnel_compat.text_3": "UNLOCALIZED: Depots", - "create.ponder.funnel_compat.text_4": "UNLOCALIZED: Item Drains", - - "create.ponder.funnel_direction.header": "UNLOCALIZED: Direction of Transfer", - "create.ponder.funnel_direction.text_1": "UNLOCALIZED: Placed normally, it pulls items from the inventory.", - "create.ponder.funnel_direction.text_2": "UNLOCALIZED: Placed while sneaking, it puts items into the inventory.", - "create.ponder.funnel_direction.text_3": "UNLOCALIZED: Using a wrench, the funnel can be flipped after placement.", - "create.ponder.funnel_direction.text_4": "UNLOCALIZED: Same rules will apply for most orientations.", - "create.ponder.funnel_direction.text_5": "UNLOCALIZED: Funnels on belts will extract/insert depending on its movement direction.", - - "create.ponder.funnel_intro.header": "UNLOCALIZED: Using funnels", - "create.ponder.funnel_intro.text_1": "UNLOCALIZED: Funnels are ideal for transferring items from and to inventories.", - - "create.ponder.funnel_redstone.header": "UNLOCALIZED: Redstone control", - "create.ponder.funnel_redstone.text_1": "UNLOCALIZED: Redstone power will prevent any funnel from acting", - - "create.ponder.funnel_transfer.header": "UNLOCALIZED: Direct transfer", - "create.ponder.funnel_transfer.text_1": "UNLOCALIZED: Funnels cannot ever transfer between closed inventories directly.", - "create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.", - "create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement. A mechanical belt should help here.", - - "create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine", - "create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running", - "create.ponder.furnace_engine.text_2": "UNLOCALIZED: The provided Rotational Force has a very large stress capacity", - "create.ponder.furnace_engine.text_3": "UNLOCALIZED: Using a Blast Furnace will double the efficiency of the Engine", - - "create.ponder.gantry_carriage.header": "UNLOCALIZED: Using Gantry Carriages", - "create.ponder.gantry_carriage.text_1": "UNLOCALIZED: Gantry Carriages can mount to and slide along a Gantry Shaft.", - "create.ponder.gantry_carriage.text_2": "UNLOCALIZED: Gantry setups can move attached Blocks.", - - "create.ponder.gantry_cascaded.header": "UNLOCALIZED: Cascaded Gantries", - "create.ponder.gantry_cascaded.text_1": "UNLOCALIZED: Gantry shafts attach to a carriage without the need of super glue", - "create.ponder.gantry_cascaded.text_2": "UNLOCALIZED: Same applies for carriages on moved Gantry Shafts", - "create.ponder.gantry_cascaded.text_3": "UNLOCALIZED: Thus, a gantry system can be cascaded to cover multiple axes of movement", - - "create.ponder.gantry_direction.header": "UNLOCALIZED: Gantry Movement Direction", - "create.ponder.gantry_direction.text_1": "UNLOCALIZED: Gantry Shafts can have opposite orientations", - "create.ponder.gantry_direction.text_2": "UNLOCALIZED: The movement direction of carriages depend on their shafts' orientation", - "create.ponder.gantry_direction.text_3": "UNLOCALIZED: ...as well as the rotation direction of the shaft", - "create.ponder.gantry_direction.text_4": "UNLOCALIZED: Same rules apply for the propagated rotation", - - "create.ponder.gantry_redstone.header": "UNLOCALIZED: Gantry Power Propagation", - "create.ponder.gantry_redstone.text_1": "UNLOCALIZED: Redstone-powered gantry shafts stop moving their carriages", - "create.ponder.gantry_redstone.text_2": "UNLOCALIZED: Instead, its rotational force is relayed to the carriages' output shaft", - - "create.ponder.gantry_shaft.header": "UNLOCALIZED: Using Gantry Shafts", - "create.ponder.gantry_shaft.text_1": "UNLOCALIZED: Gantry Shafts form the basis of a gantry setup. Attached Carriages will move along them.", - "create.ponder.gantry_shaft.text_2": "UNLOCALIZED: Gantry setups can move attached Blocks.", - - "create.ponder.gearbox.header": "UNLOCALIZED: Relaying rotational force using Gearboxes", - "create.ponder.gearbox.text_1": "UNLOCALIZED: Jumping between axes of rotation can get bulky quickly", - "create.ponder.gearbox.text_2": "UNLOCALIZED: A gearbox is the more compact equivalent of this setup", - "create.ponder.gearbox.text_3": "UNLOCALIZED: Shafts around corners rotate in mirrored directions", - "create.ponder.gearbox.text_4": "UNLOCALIZED: Straight connections will be reversed", - - "create.ponder.gearshift.header": "UNLOCALIZED: Controlling rotational force using a Gearshift", - "create.ponder.gearshift.text_1": "UNLOCALIZED: Gearshifts will relay rotation in a straight line", - "create.ponder.gearshift.text_2": "UNLOCALIZED: When powered by Redstone, it reverses the transmission", - - "create.ponder.hand_crank.header": "UNLOCALIZED: Generating Rotational Force using Hand Cranks", - "create.ponder.hand_crank.text_1": "UNLOCALIZED: Hand Cranks can be used by players to apply rotational force manually", - "create.ponder.hand_crank.text_2": "UNLOCALIZED: Hold Right-Click to rotate it Counter-Clockwise", - "create.ponder.hand_crank.text_3": "UNLOCALIZED: Its conveyed speed is relatively high", - "create.ponder.hand_crank.text_4": "UNLOCALIZED: Sneak and Hold Right-Click to rotate it Clockwise", - - "create.ponder.hose_pulley.header": "UNLOCALIZED: Source Filling and Draining using Hose Pulleys", - "create.ponder.hose_pulley.text_1": "UNLOCALIZED: Hose Pulleys can be used to fill or drain large bodies of Fluid", - "create.ponder.hose_pulley.text_2": "UNLOCALIZED: With the Kinetic Input, the height of the pulleys' hose can be controlled", - "create.ponder.hose_pulley.text_3": "UNLOCALIZED: The Pulley retracts while the input rotation is inverted", - "create.ponder.hose_pulley.text_4": "UNLOCALIZED: On the opposite side, pipes can be connected", - "create.ponder.hose_pulley.text_5": "UNLOCALIZED: Attached pipe networks can either provide fluid to the hose...", - "create.ponder.hose_pulley.text_6": "UNLOCALIZED: ...or pull from it, draining the pool instead", - "create.ponder.hose_pulley.text_7": "UNLOCALIZED: Fill and Drain speed of the pulley depends entirely on the fluid networks' throughput", - - "create.ponder.hose_pulley_infinite.header": "UNLOCALIZED: Passively Filling and Draining large bodies of Fluid", - "create.ponder.hose_pulley_infinite.text_1": "UNLOCALIZED: When deploying the Hose Pulley into a large enough ocean...", - "create.ponder.hose_pulley_infinite.text_2": "UNLOCALIZED: It will provide/dispose fluids without affecting the source", - "create.ponder.hose_pulley_infinite.text_3": "UNLOCALIZED: Pipe networks can limitlessly take fluids from/to such pulleys", - - "create.ponder.hose_pulley_level.header": "UNLOCALIZED: Fill and Drain level of Hose Pulleys", - "create.ponder.hose_pulley_level.text_1": "UNLOCALIZED: While fully retracted, the Hose Pulley cannot operate", - "create.ponder.hose_pulley_level.text_2": "UNLOCALIZED: Draining runs from top to bottom", - "create.ponder.hose_pulley_level.text_3": "UNLOCALIZED: The surface level will end up just below where the hose ends", - "create.ponder.hose_pulley_level.text_4": "UNLOCALIZED: Filling runs from bottom to top", - "create.ponder.hose_pulley_level.text_5": "UNLOCALIZED: The filled pool will not grow beyond the layer above the hose end", - - "create.ponder.item_drain.header": "UNLOCALIZED: Emptying Fluid Containers using Item Drains", - "create.ponder.item_drain.text_1": "UNLOCALIZED: Item Drains can extract fluids from items", - "create.ponder.item_drain.text_2": "UNLOCALIZED: Right-click it to pour fluids from your held item into it", - "create.ponder.item_drain.text_3": "UNLOCALIZED: When items are inserted from the side...", - "create.ponder.item_drain.text_4": "UNLOCALIZED: ...they roll across, emptying out their contained fluid", - "create.ponder.item_drain.text_5": "UNLOCALIZED: Pipe Networks can now pull the fluid from the drains' internal buffer", - - "create.ponder.large_cogwheel.header": "UNLOCALIZED: Relaying rotational force using Large Cogwheels", - "create.ponder.large_cogwheel.text_1": "UNLOCALIZED: Large cogwheels can connect to each other at right angles", - "create.ponder.large_cogwheel.text_2": "UNLOCALIZED: It will help relaying conveyed speed to other axes of rotation", - - "create.ponder.linear_chassis_attachment.header": "UNLOCALIZED: Attaching blocks using Linear Chassis", - "create.ponder.linear_chassis_attachment.text_1": "UNLOCALIZED: The open faces of a Linear Chassis can be made Sticky", - "create.ponder.linear_chassis_attachment.text_2": "UNLOCALIZED: Click again to make the opposite side sticky", - "create.ponder.linear_chassis_attachment.text_3": "UNLOCALIZED: Sneak and Right-Click with an empty hand to remove the slime", - "create.ponder.linear_chassis_attachment.text_4": "UNLOCALIZED: Stickied faces of the Linear Chassis will attach a line of blocks in front of it", - "create.ponder.linear_chassis_attachment.text_5": "UNLOCALIZED: Using a Wrench, a precise Range can be specified for this chassis", - "create.ponder.linear_chassis_attachment.text_6": "UNLOCALIZED: Holding CTRL and scrolling adjusts the range of all attached Chassis Blocks", - "create.ponder.linear_chassis_attachment.text_7": "UNLOCALIZED: Attaching blocks to any other side requires the use of Super Glue", - "create.ponder.linear_chassis_attachment.text_8": "UNLOCALIZED: Using these mechanics, structures of any shape can move as a Contraption", - - "create.ponder.linear_chassis_group.header": "UNLOCALIZED: Moving Linear Chassis in groups", - "create.ponder.linear_chassis_group.text_1": "UNLOCALIZED: Linear Chassis connect to identical Chassis blocks next to them", - "create.ponder.linear_chassis_group.text_2": "UNLOCALIZED: When one is moved by a Contraption, the others are dragged with it", - "create.ponder.linear_chassis_group.text_3": "UNLOCALIZED: Chassis of a different type or facing another direction will not attach", - - "create.ponder.mechanical_arm.header": "UNLOCALIZED: Setting up Mechanical Arms", - "create.ponder.mechanical_arm.text_1": "UNLOCALIZED: Mechanical Arms have to be assigned their in- and outputs before they are placed", - "create.ponder.mechanical_arm.text_2": "UNLOCALIZED: Right-Click inventories while holding the Arm to assign them as Targets", - "create.ponder.mechanical_arm.text_3": "UNLOCALIZED: Right-Click again to toggle between Input (Blue) and Output (Orange)", - "create.ponder.mechanical_arm.text_4": "UNLOCALIZED: Left-Click components to remove their Selection", - "create.ponder.mechanical_arm.text_5": "UNLOCALIZED: Once placed, the Mechanical Arm will target the blocks selected previously", - "create.ponder.mechanical_arm.text_6": "UNLOCALIZED: They can have any amount of in- and outputs within their range", - "create.ponder.mechanical_arm.text_7": "UNLOCALIZED: However, not every type of Inventory can be interacted with directly", - "create.ponder.mechanical_arm.text_8": "UNLOCALIZED: Funnels and Depots can help to Bridge that gap", - - "create.ponder.mechanical_arm_filtering.header": "UNLOCALIZED: Filtering Outputs of the Mechanical Arm", - "create.ponder.mechanical_arm_filtering.text_1": "UNLOCALIZED: Inputs", - "create.ponder.mechanical_arm_filtering.text_2": "UNLOCALIZED: Outputs", - "create.ponder.mechanical_arm_filtering.text_3": "UNLOCALIZED: Sometimes it is desirable to restrict targets of the Arm by matching a filter", - "create.ponder.mechanical_arm_filtering.text_4": "UNLOCALIZED: Mechanical Arms by themselves do not provide any options for filtering", - "create.ponder.mechanical_arm_filtering.text_5": "UNLOCALIZED: Brass Funnels as Targets do however communicate their own filter to the Arm", - "create.ponder.mechanical_arm_filtering.text_6": "UNLOCALIZED: The Arm is smart enough not to pick up items it couldn't distribute", - - "create.ponder.mechanical_arm_modes.header": "UNLOCALIZED: Distribution modes of the Mechanical Arm", - "create.ponder.mechanical_arm_modes.text_1": "UNLOCALIZED: Input", - "create.ponder.mechanical_arm_modes.text_2": "UNLOCALIZED: Outputs", - "create.ponder.mechanical_arm_modes.text_3": "UNLOCALIZED: Whenever an Arm has to choose between multiple valid outputs...", - "create.ponder.mechanical_arm_modes.text_4": "UNLOCALIZED: ...it will act according to its setting", - "create.ponder.mechanical_arm_modes.text_5": "UNLOCALIZED: Scrolling with a Wrench will allow you to configure it", - "create.ponder.mechanical_arm_modes.text_6": "UNLOCALIZED: Round Robin mode simply cycles through all outputs that are available", - "create.ponder.mechanical_arm_modes.text_7": "UNLOCALIZED: If an output is unable to take more items, it will be skipped", - "create.ponder.mechanical_arm_modes.text_8": "UNLOCALIZED: Forced Round Robin mode will never skip outputs, and instead wait until they are free", - "create.ponder.mechanical_arm_modes.text_9": "UNLOCALIZED: Prefer First prioritizes the outputs selected earliest when configuring this Arm", - - "create.ponder.mechanical_arm_redstone.header": "UNLOCALIZED: Controlling Mechanical Arms with Redstone", - "create.ponder.mechanical_arm_redstone.text_1": "UNLOCALIZED: When powered by Redstone, Mechanical Arms will not activate", - "create.ponder.mechanical_arm_redstone.text_2": "UNLOCALIZED: Before stopping, it will finish any started cycles", - "create.ponder.mechanical_arm_redstone.text_3": "UNLOCALIZED: Thus, a negative pulse can be used to trigger exactly one activation cycle", - - "create.ponder.mechanical_bearing.header": "UNLOCALIZED: Movings Structures using the Mechanical Bearing", - "create.ponder.mechanical_bearing.text_1": "UNLOCALIZED: Mechanical Bearings attach to the block in front of them", - "create.ponder.mechanical_bearing.text_2": "UNLOCALIZED: Upon receiving Rotational Force, it will assemble it into a Rotating Contraption", - - "create.ponder.mechanical_crafter.header": "UNLOCALIZED: Setting up Mechanical Crafters", - "create.ponder.mechanical_crafter.text_1": "UNLOCALIZED: An array of Mechanical Crafters can be used to automate any Crafting Recipe", - "create.ponder.mechanical_crafter.text_2": "UNLOCALIZED: Using a Wrench, the Crafters' paths can be arranged", - "create.ponder.mechanical_crafter.text_3": "UNLOCALIZED: For a valid setup, all paths have to converge into one exit at any side", - "create.ponder.mechanical_crafter.text_4": "UNLOCALIZED: The outputs will be placed into the inventory at the exit", - "create.ponder.mechanical_crafter.text_5": "UNLOCALIZED: Mechanical Crafters require Rotational Force to operate", - "create.ponder.mechanical_crafter.text_6": "UNLOCALIZED: Right-Click the front to insert Items manually", - "create.ponder.mechanical_crafter.text_7": "UNLOCALIZED: Once every slot of a path contains an Item, the crafting process will begin", - "create.ponder.mechanical_crafter.text_8": "UNLOCALIZED: For recipes not fully occupying the crafter setup, the start can be forced using a Redstone Pulse", - - "create.ponder.mechanical_crafter_connect.header": "UNLOCALIZED: Connecting Inventories of Crafters", - "create.ponder.mechanical_crafter_connect.text_1": "UNLOCALIZED: Items can be inserted to Crafters automatically", - "create.ponder.mechanical_crafter_connect.text_2": "UNLOCALIZED: Using the Wrench at their backs, Mechanical Crafter inputs can be combined", - "create.ponder.mechanical_crafter_connect.text_3": "UNLOCALIZED: All connected Crafters can now be accessed by the same input location", - - "create.ponder.mechanical_crafter_covers.header": "UNLOCALIZED: Covering slots of Mechanical Crafters", - "create.ponder.mechanical_crafter_covers.text_1": "UNLOCALIZED: Some recipes will require additional Crafters to bridge gaps in the path", - "create.ponder.mechanical_crafter_covers.text_2": "UNLOCALIZED: Using Slot Covers, Crafters can be set to act as an Empty Slot in the arrangement", - "create.ponder.mechanical_crafter_covers.text_3": "UNLOCALIZED: Shared Inputs created with the Wrench at the back can also reach across covered Crafters", - - "create.ponder.mechanical_drill.header": "UNLOCALIZED: Breaking Blocks with the Mechanical Drill", - "create.ponder.mechanical_drill.text_1": "UNLOCALIZED: When given Rotational Force, a Mechanical Drill will break blocks directly in front of it", - "create.ponder.mechanical_drill.text_2": "UNLOCALIZED: Its mining speed depends on the Rotational Input", - - "create.ponder.mechanical_drill_contraption.header": "UNLOCALIZED: Using Mechanical Drills on Contraptions", - "create.ponder.mechanical_drill_contraption.text_1": "UNLOCALIZED: Whenever Drills are moved as part of an animated Contraption...", - "create.ponder.mechanical_drill_contraption.text_2": "UNLOCALIZED: ...they will break blocks the contraption runs them into", - - "create.ponder.mechanical_harvester.header": "UNLOCALIZED: Using Mechanical Harvesters on Contraptions", - "create.ponder.mechanical_harvester.text_1": "UNLOCALIZED: Whenever Harvesters are moved as part of an animated Contraption...", - "create.ponder.mechanical_harvester.text_2": "UNLOCALIZED: They will harvest and reset any mature crops on their way", - - "create.ponder.mechanical_mixer.header": "UNLOCALIZED: Processing Items with the Mechanical Mixer", - "create.ponder.mechanical_mixer.text_1": "UNLOCALIZED: With a Mixer and Basin, some Crafting Recipes can be automated", - "create.ponder.mechanical_mixer.text_2": "UNLOCALIZED: Available recipes include any Shapeless Crafting Recipe, plus a couple extra ones", - "create.ponder.mechanical_mixer.text_3": "UNLOCALIZED: Some of those recipes may require the heat of a Blaze Burner", - "create.ponder.mechanical_mixer.text_4": "UNLOCALIZED: The filter slot can be used in case two recipes are conflicting.", - - "create.ponder.mechanical_piston.header": "UNLOCALIZED: Moving Structures using Mechanical Pistons", - "create.ponder.mechanical_piston.text_1": "UNLOCALIZED: Mechanical Pistons can move blocks in front of them", - "create.ponder.mechanical_piston.text_2": "UNLOCALIZED: Speed and direction of movement depend on the Rotational Input", - "create.ponder.mechanical_piston.text_3": "UNLOCALIZED: Sticky Mechanical Pistons can pull the attached blocks back", - - "create.ponder.mechanical_piston_modes.header": "UNLOCALIZED: Movement Modes of the Mechanical Piston", - "create.ponder.mechanical_piston_modes.text_1": "UNLOCALIZED: Whenever Pistons stop moving, the moved structure reverts to blocks", - "create.ponder.mechanical_piston_modes.text_2": "UNLOCALIZED: It can be configured never to revert to solid blocks, or only at the location it started at", - - "create.ponder.mechanical_plough.header": "UNLOCALIZED: Using Mechanical Ploughs on Contraptions", - "create.ponder.mechanical_plough.text_1": "UNLOCALIZED: Whenever Ploughs are moved as part of an animated Contraption...", - "create.ponder.mechanical_plough.text_2": "UNLOCALIZED: ...they will break blocks without a solid collision hitbox", - "create.ponder.mechanical_plough.text_3": "UNLOCALIZED: Additionally, ploughs can create farmland", - "create.ponder.mechanical_plough.text_4": "UNLOCALIZED: ...they can also launch entities without hurting them", - - "create.ponder.mechanical_press.header": "UNLOCALIZED: Processing Items with the Mechanical Press", - "create.ponder.mechanical_press.text_1": "UNLOCALIZED: The Mechanical Press can process items provided beneath it", - "create.ponder.mechanical_press.text_2": "UNLOCALIZED: The Input items can be dropped or placed on a Depot under the Press", - "create.ponder.mechanical_press.text_3": "UNLOCALIZED: When items are provided on a belt...", - "create.ponder.mechanical_press.text_4": "UNLOCALIZED: The Press will hold and process them automatically", - - "create.ponder.mechanical_press_compacting.header": "UNLOCALIZED: Compacting items with the Mechanical Press", - "create.ponder.mechanical_press_compacting.text_1": "UNLOCALIZED: Pressing items held in a Basin will cause them to be Compacted", - "create.ponder.mechanical_press_compacting.text_2": "UNLOCALIZED: Compacting includes any filled 2x2 or 3x3 Crafting Recipe, plus a couple extra ones", - "create.ponder.mechanical_press_compacting.text_3": "UNLOCALIZED: Some of those recipes may require the heat of a Blaze Burner", - "create.ponder.mechanical_press_compacting.text_4": "UNLOCALIZED: The filter slot can be used in case two recipes are conflicting.", - - "create.ponder.mechanical_pump_flow.header": "UNLOCALIZED: Fluid Transportation using Mechanical Pumps", - "create.ponder.mechanical_pump_flow.text_1": "UNLOCALIZED: Mechanical Pumps govern the flow of their attached pipe networks", - "create.ponder.mechanical_pump_flow.text_2": "UNLOCALIZED: When powered, their arrow indicates the direction of flow", - "create.ponder.mechanical_pump_flow.text_3": "UNLOCALIZED: The network behind is now pulling fluids...", - "create.ponder.mechanical_pump_flow.text_4": "UNLOCALIZED: ...while the network in front is transferring it outward", - "create.ponder.mechanical_pump_flow.text_5": "UNLOCALIZED: Reversing the input rotation reverses the direction of flow", - "create.ponder.mechanical_pump_flow.text_6": "UNLOCALIZED: Use a Wrench to reverse the orientation of pumps manually", - - "create.ponder.mechanical_pump_speed.header": "UNLOCALIZED: Throughput of Mechanical Pumps", - "create.ponder.mechanical_pump_speed.text_1": "UNLOCALIZED: Regardless of speed, Mechanical Pumps affect pipes connected up to 16 blocks away", - "create.ponder.mechanical_pump_speed.text_2": "UNLOCALIZED: Speeding up the input rotation changes the speed of flow propagation...", - "create.ponder.mechanical_pump_speed.text_3": "UNLOCALIZED: ...aswell as how quickly fluids are transferred", - "create.ponder.mechanical_pump_speed.text_4": "UNLOCALIZED: Pumps can combine their throughputs within shared pipe networks", - "create.ponder.mechanical_pump_speed.text_5": "UNLOCALIZED: Alternating their orientation can help align their flow directions", - - "create.ponder.mechanical_saw_breaker.header": "UNLOCALIZED: Cutting Trees with the Mechanical Saw", - "create.ponder.mechanical_saw_breaker.text_1": "UNLOCALIZED: When given Rotational Force, a Mechanical Saw will cut trees directly in front of it", - "create.ponder.mechanical_saw_breaker.text_2": "UNLOCALIZED: In order to cut the tree fully, the Saw has to break the last block connecting it to the ground", - - "create.ponder.mechanical_saw_contraption.header": "UNLOCALIZED: Using Mechanical Saws on Contraptions", - "create.ponder.mechanical_saw_contraption.text_1": "UNLOCALIZED: Whenever Saws are moved as part of an animated Contraption...", - "create.ponder.mechanical_saw_contraption.text_2": "UNLOCALIZED: ...they will cut any trees the contraption runs them into", - - "create.ponder.mechanical_saw_processing.header": "UNLOCALIZED: Processing Items on the Mechanical Saw", - "create.ponder.mechanical_saw_processing.text_1": "UNLOCALIZED: Upward facing Mechanical Saws can process a variety of items", - "create.ponder.mechanical_saw_processing.text_2": "UNLOCALIZED: The processed item always moves against the rotational input to the saw", - "create.ponder.mechanical_saw_processing.text_3": "UNLOCALIZED: Saws can work in-line with Mechanical Belts", - "create.ponder.mechanical_saw_processing.text_4": "UNLOCALIZED: When an ingredient has multiple possible outcomes, the filter slot can specify it", - "create.ponder.mechanical_saw_processing.text_5": "UNLOCALIZED: Without filter, the Saw would cycle through all outcomes instead", - - "create.ponder.millstone.header": "UNLOCALIZED: Processing Items in the Millstone", - "create.ponder.millstone.text_1": "UNLOCALIZED: Millstones process items by grinding them", - "create.ponder.millstone.text_2": "UNLOCALIZED: They can be powered from the side using cogwheels", - "create.ponder.millstone.text_3": "UNLOCALIZED: Throw or Insert items at the top", - "create.ponder.millstone.text_4": "UNLOCALIZED: After some time, the result can be obtained via Right-click", - "create.ponder.millstone.text_5": "UNLOCALIZED: The outputs can also be extracted by automation", - - "create.ponder.nixie_tube.header": "UNLOCALIZED: Using Nixie Tubes", - "create.ponder.nixie_tube.text_1": "UNLOCALIZED: When powered by Redstone, Nixie Tubes will display the redstone signals' strength", - "create.ponder.nixie_tube.text_2": "UNLOCALIZED: Using name tags edited with an anvil, custom text can be displayed", - "create.ponder.nixie_tube.text_3": "UNLOCALIZED: Right-Click with Dye to change their display colour", - - "create.ponder.piston_pole.header": "UNLOCALIZED: Piston Extension Poles", - "create.ponder.piston_pole.text_1": "UNLOCALIZED: Without attached Poles, a Mechanical Piston cannot move", - "create.ponder.piston_pole.text_2": "UNLOCALIZED: The Length of pole added at its back determines the Extension Range", - - "create.ponder.portable_fluid_interface.header": "UNLOCALIZED: Contraption Fluid Exchange", - "create.ponder.portable_fluid_interface.text_1": "UNLOCALIZED: Fluid Tanks on moving contraptions cannot be accessed by any pipes", - "create.ponder.portable_fluid_interface.text_2": "UNLOCALIZED: This component can interact with fluid tanks without the need to stop the contraption", - "create.ponder.portable_fluid_interface.text_3": "UNLOCALIZED: Place a second one with a gap of 1 or 2 blocks inbetween", - "create.ponder.portable_fluid_interface.text_4": "UNLOCALIZED: Whenever they pass by each other, they will engage in a connection", - "create.ponder.portable_fluid_interface.text_5": "UNLOCALIZED: While engaged, the stationary interface will represent ALL Tanks on the contraption", - "create.ponder.portable_fluid_interface.text_6": "UNLOCALIZED: Fluid can now be inserted...", - "create.ponder.portable_fluid_interface.text_7": "UNLOCALIZED: ...or extracted from the contraption", - "create.ponder.portable_fluid_interface.text_8": "UNLOCALIZED: After no contents have been exchanged for a while, the contraption will continue on its way", - - "create.ponder.portable_storage_interface.header": "UNLOCALIZED: Contraption Storage Exchange", - "create.ponder.portable_storage_interface.text_1": "UNLOCALIZED: Inventories on moving contraptions cannot be accessed by players.", - "create.ponder.portable_storage_interface.text_2": "UNLOCALIZED: This component can interact with storage without the need to stop the contraption.", - "create.ponder.portable_storage_interface.text_3": "UNLOCALIZED: Place a second one with a gap of 1 or 2 blocks inbetween", - "create.ponder.portable_storage_interface.text_4": "UNLOCALIZED: Whenever they pass by each other, they will engage in a connection", - "create.ponder.portable_storage_interface.text_5": "UNLOCALIZED: While engaged, the stationary interface will represent ALL inventories on the contraption", - "create.ponder.portable_storage_interface.text_6": "UNLOCALIZED: Items can now be inserted...", - "create.ponder.portable_storage_interface.text_7": "UNLOCALIZED: ...or extracted from the contraption", - "create.ponder.portable_storage_interface.text_8": "UNLOCALIZED: After no items have been exchanged for a while, the contraption will continue on its way", - - "create.ponder.portable_storage_interface_redstone.header": "UNLOCALIZED: Redstone Control", - "create.ponder.portable_storage_interface_redstone.text_1": "UNLOCALIZED: Redstone power will prevent the stationary interface from engaging", - - "create.ponder.powered_latch.header": "UNLOCALIZED: Controlling signals using the Powered Latch", - "create.ponder.powered_latch.text_1": "UNLOCALIZED: Powered Latches are redstone controllable Levers", - "create.ponder.powered_latch.text_2": "UNLOCALIZED: Signals at the back switch it on", - "create.ponder.powered_latch.text_3": "UNLOCALIZED: Signals from the side switch it back off", - "create.ponder.powered_latch.text_4": "UNLOCALIZED: Powered latches can also be toggled manually", - - "create.ponder.powered_toggle_latch.header": "UNLOCALIZED: Controlling signals using the Powered Toggle Latch", - "create.ponder.powered_toggle_latch.text_1": "UNLOCALIZED: Powered Toggle Latches are redstone controllable Levers", - "create.ponder.powered_toggle_latch.text_2": "UNLOCALIZED: Signals at the back will toggle its state", - "create.ponder.powered_toggle_latch.text_3": "UNLOCALIZED: ...on and back off", - "create.ponder.powered_toggle_latch.text_4": "UNLOCALIZED: Powered toggle latches can also be toggled manually", - - "create.ponder.pulse_repeater.header": "UNLOCALIZED: Controlling signals using Pulse Repeaters", - "create.ponder.pulse_repeater.text_1": "UNLOCALIZED: Pulse Repeaters will shorten any redstone signal to a single pulse", - - "create.ponder.radial_chassis.header": "UNLOCALIZED: Attaching blocks using Radial Chassis", - "create.ponder.radial_chassis.text_1": "UNLOCALIZED: Radial Chassis connect to identical Chassis blocks in a row", - "create.ponder.radial_chassis.text_2": "UNLOCALIZED: When one is moved by a Contraption, the others are dragged with it", - "create.ponder.radial_chassis.text_3": "UNLOCALIZED: The side faces of a Radial Chassis can be made Sticky", - "create.ponder.radial_chassis.text_4": "UNLOCALIZED: Click again to make all other sides sticky", - "create.ponder.radial_chassis.text_5": "UNLOCALIZED: Sneak and Right-Click with an empty hand to remove the slime", - "create.ponder.radial_chassis.text_6": "UNLOCALIZED: Whenever a Block is next to a sticky face...", - "create.ponder.radial_chassis.text_7": "UNLOCALIZED: ...it will attach all reachable blocks within a radius on that layer", - "create.ponder.radial_chassis.text_8": "UNLOCALIZED: Using a Wrench, a precise Radius can be specified for this chassis", - "create.ponder.radial_chassis.text_9": "UNLOCALIZED: Blocks not reachable by any sticky face will not attach", - - "create.ponder.redstone_contact.header": "UNLOCALIZED: Redstone Contacts", - "create.ponder.redstone_contact.text_1": "UNLOCALIZED: Redstone Contacts facing each other will emit a redstone signal", - "create.ponder.redstone_contact.text_2": "UNLOCALIZED: This still applies when one of them is part of a moving Contraption", - - "create.ponder.redstone_link.header": "UNLOCALIZED: Using Redstone Links", - "create.ponder.redstone_link.text_1": "UNLOCALIZED: Redstone Links can transmit redstone signals wirelessly", - "create.ponder.redstone_link.text_2": "UNLOCALIZED: Right-click while Sneaking to toggle receive mode", - "create.ponder.redstone_link.text_3": "UNLOCALIZED: A simple Right-click with a Wrench can do the same", - "create.ponder.redstone_link.text_4": "UNLOCALIZED: Receivers emit the redstone power of transmitters within 128 blocks", - "create.ponder.redstone_link.text_5": "UNLOCALIZED: Placing items in the two slots can specify a Frequency", - "create.ponder.redstone_link.text_6": "UNLOCALIZED: Only the links with matching Frequencies will communicate", - - "create.ponder.rope_pulley.header": "UNLOCALIZED: Moving Structures using Rope Pulleys", - "create.ponder.rope_pulley.text_1": "UNLOCALIZED: Rope Pulleys can move blocks vertically when given Rotational Force", - "create.ponder.rope_pulley.text_2": "UNLOCALIZED: Direction and Speed of movement depend on the Rotational Input", - - "create.ponder.rope_pulley_attachment.header": "UNLOCALIZED: Moving Pulleys as part of a Contraption", - "create.ponder.rope_pulley_attachment.text_1": "UNLOCALIZED: Whenever Pulleys are themselves being moved by a Contraption...", - "create.ponder.rope_pulley_attachment.text_2": "UNLOCALIZED: ...its attached structure will be dragged with it", - "create.ponder.rope_pulley_attachment.text_3": "UNLOCALIZED: Mind that pulleys are only movable while stopped", - - "create.ponder.rope_pulley_modes.header": "UNLOCALIZED: Movement Modes of the Rope Pulley", - "create.ponder.rope_pulley_modes.text_1": "UNLOCALIZED: Whenever Pulleys stop moving, the moved structure reverts to blocks", - "create.ponder.rope_pulley_modes.text_2": "UNLOCALIZED: It can be configured never to revert to solid blocks, or only at the location it started at", - - "create.ponder.rotation_speed_controller.header": "UNLOCALIZED: Using the Rotational Speed Controller", - "create.ponder.rotation_speed_controller.text_1": "UNLOCALIZED: Rot. Speed Controllers relay rotation from their axis to a Large Cogwheel above them", - "create.ponder.rotation_speed_controller.text_2": "UNLOCALIZED: Using the scroll input on its side, the conveyed speed can be configured", - - "create.ponder.sail.header": "UNLOCALIZED: Assembling Windmills using Sails", - "create.ponder.sail.text_1": "UNLOCALIZED: Sails are handy blocks to create Windmills with", - "create.ponder.sail.text_2": "UNLOCALIZED: They will attach to blocks and each other without the need of Super Glue or Chassis Blocks", - "create.ponder.sail.text_3": "UNLOCALIZED: Right-Click with Dye to paint them", - "create.ponder.sail.text_4": "UNLOCALIZED: Right-Click with Shears to turn them back into frames", - - "create.ponder.sail_frame.header": "UNLOCALIZED: Assembling Windmills using Sail Frames", - "create.ponder.sail_frame.text_1": "UNLOCALIZED: Sail Frames are handy blocks to create Windmills with", - "create.ponder.sail_frame.text_2": "UNLOCALIZED: They will attach to blocks and each other without the need of Super Glue or Chassis Blocks", - - "create.ponder.sequenced_gearshift.header": "UNLOCALIZED: Controlling Rotational Speed using Sequenced Gearshifts", - "create.ponder.sequenced_gearshift.text_1": "UNLOCALIZED: Seq. Gearshifts relay rotation by following a timed list of instructions", - "create.ponder.sequenced_gearshift.text_2": "UNLOCALIZED: Right-click it to open the Configuration UI", - "create.ponder.sequenced_gearshift.text_3": "UNLOCALIZED: Upon receiving a Redstone Signal, it will start running its configured sequence", - "create.ponder.sequenced_gearshift.text_4": "UNLOCALIZED: Once finished, it waits for the next Redstone Signal and starts over", - "create.ponder.sequenced_gearshift.text_5": "UNLOCALIZED: A redstone comparator can be used to read the current progress", - - "create.ponder.shaft.header": "UNLOCALIZED: Relaying rotational force using Shafts", - "create.ponder.shaft.text_1": "UNLOCALIZED: Shafts will relay rotation in a straight line.", - - "create.ponder.shaft_casing.header": "UNLOCALIZED: Encasing Shafts", - "create.ponder.shaft_casing.text_1": "UNLOCALIZED: Brass or Andesite Casing can be used to decorate Shafts", - - "create.ponder.smart_chute.header": "UNLOCALIZED: Filtering Items using Smart Chutes", - "create.ponder.smart_chute.text_1": "UNLOCALIZED: Smart Chutes are vertical chutes with additional control", - "create.ponder.smart_chute.text_2": "UNLOCALIZED: Items in the filter slot specify what exactly they can extract and transfer", - "create.ponder.smart_chute.text_3": "UNLOCALIZED: Use the Mouse Wheel to specify the extracted stack size", - "create.ponder.smart_chute.text_4": "UNLOCALIZED: Redstone power will prevent Smart Chutes from acting.", - - "create.ponder.smart_pipe.header": "UNLOCALIZED: Controlling Fluid flow using Smart Pipes", - "create.ponder.smart_pipe.text_1": "UNLOCALIZED: Smart pipes can help control flows by fluid type", - "create.ponder.smart_pipe.text_2": "UNLOCALIZED: When placed directly at the source, they can specify the type of fluid to extract", - "create.ponder.smart_pipe.text_3": "UNLOCALIZED: Simply Right-Click their filter slot with any item containing the desired fluid", - "create.ponder.smart_pipe.text_4": "UNLOCALIZED: When placed further down a pipe network, smart pipes will only let matching fluids continue", - - "create.ponder.speedometer.header": "UNLOCALIZED: Monitoring Kinetic information using the Speedometer", - "create.ponder.speedometer.text_1": "UNLOCALIZED: The Speedometer displays the current Speed of the attached components", - "create.ponder.speedometer.text_2": "UNLOCALIZED: When wearing Engineers' Goggles, the player can get more detailed information from the Gauge", - "create.ponder.speedometer.text_3": "UNLOCALIZED: Comparators can emit analog Restone Signals relative to the Speedometer's measurements", - - "create.ponder.spout_filling.header": "UNLOCALIZED: Filling Items using a Spout", - "create.ponder.spout_filling.text_1": "UNLOCALIZED: The Spout can fill fluid holding items provided beneath it", - "create.ponder.spout_filling.text_2": "UNLOCALIZED: The content of a Spout cannot be accessed manually", - "create.ponder.spout_filling.text_3": "UNLOCALIZED: Instead, Pipes can be used to supply it with fluids", - "create.ponder.spout_filling.text_4": "UNLOCALIZED: The Input items can be placed on a Depot under the Spout", - "create.ponder.spout_filling.text_5": "UNLOCALIZED: When items are provided on a belt...", - "create.ponder.spout_filling.text_6": "UNLOCALIZED: The Spout will hold and process them automatically", - - "create.ponder.stabilized_bearings.header": "UNLOCALIZED: Stabilized Contraptions", - "create.ponder.stabilized_bearings.text_1": "UNLOCALIZED: Whenever Mechanical Bearings are themselves part of a moving Structure..", - "create.ponder.stabilized_bearings.text_2": "UNLOCALIZED: ..they will attempt to keep themselves upright", - "create.ponder.stabilized_bearings.text_3": "UNLOCALIZED: Once again, the bearing will attach to the block in front of it", - "create.ponder.stabilized_bearings.text_4": "UNLOCALIZED: As a result, the entire sub-Contraption will stay upright", - - "create.ponder.sticker.header": "UNLOCALIZED: Attaching blocks using the Sticker", - "create.ponder.sticker.text_1": "UNLOCALIZED: Stickers are ideal for Redstone-controlled block attachment", - "create.ponder.sticker.text_2": "UNLOCALIZED: Upon receiving a signal, it will toggle its state", - "create.ponder.sticker.text_3": "UNLOCALIZED: If it is now moved in a contraption, the block will move with it", - "create.ponder.sticker.text_4": "UNLOCALIZED: Toggled once again, the block is no longer attached", - - "create.ponder.stressometer.header": "UNLOCALIZED: Monitoring Kinetic information using the Stressometer", - "create.ponder.stressometer.text_1": "UNLOCALIZED: The Stressometer displays the current Stress Capacity of the attached kinetic network", - "create.ponder.stressometer.text_2": "UNLOCALIZED: When wearing Engineers' Goggles, the player can get more detailed information from the Gauge", - "create.ponder.stressometer.text_3": "UNLOCALIZED: Comparators can emit analog Restone Signals relative to the Stressometer's measurements", - - "create.ponder.super_glue.header": "UNLOCALIZED: Attaching blocks using Super Glue", - "create.ponder.super_glue.text_1": "UNLOCALIZED: Super Glue can be used between any two blocks", - "create.ponder.super_glue.text_2": "UNLOCALIZED: The attached blocks will move together when assembled into a Contraption", - "create.ponder.super_glue.text_3": "UNLOCALIZED: Whenever Super Glue is held in the off-hand...", - "create.ponder.super_glue.text_4": "UNLOCALIZED: ...added blocks will be glued to the face they were placed on automatically", - "create.ponder.super_glue.text_5": "UNLOCALIZED: Super Glue can be removed with Left-Click", - - "create.ponder.valve_handle.header": "UNLOCALIZED: Generating Rotational Force using Valve Handles", - "create.ponder.valve_handle.text_1": "UNLOCALIZED: Valve Handles can be used by players to apply rotational force manually", - "create.ponder.valve_handle.text_2": "UNLOCALIZED: Hold Right-Click to rotate it Counter-Clockwise", - "create.ponder.valve_handle.text_3": "UNLOCALIZED: Its conveyed speed is slow and precise", - "create.ponder.valve_handle.text_4": "UNLOCALIZED: Sneak and Hold Right-Click to rotate it Clockwise", - "create.ponder.valve_handle.text_5": "UNLOCALIZED: Valve handles can be dyed for aesthetic purposes", - - "create.ponder.valve_pipe.header": "UNLOCALIZED: Controlling Fluid flow using Valves", - "create.ponder.valve_pipe.text_1": "UNLOCALIZED: Valve pipes help control fluids propagating through pipe networks", - "create.ponder.valve_pipe.text_2": "UNLOCALIZED: Their shaft input controls whether fluid is currently allowed through", - "create.ponder.valve_pipe.text_3": "UNLOCALIZED: Given Rotational Force in the opening direction, the valve will open up", - "create.ponder.valve_pipe.text_4": "UNLOCALIZED: It can be closed again by reversing the input rotation", - - "create.ponder.water_wheel.header": "UNLOCALIZED: Generating Rotational Force using Water Wheels", - "create.ponder.water_wheel.text_1": "UNLOCALIZED: Water Wheels draw force from adjacent Water Currents", - "create.ponder.water_wheel.text_2": "UNLOCALIZED: The more faces are powered, the faster the Water Wheel will rotate", - "create.ponder.water_wheel.text_3": "UNLOCALIZED: The Wheels' blades should be oriented against the flow", - "create.ponder.water_wheel.text_4": "UNLOCALIZED: Facing the opposite way, they will not be as effective", - - "create.ponder.weighted_ejector.header": "UNLOCALIZED: Using Weighted Ejectors", - "create.ponder.weighted_ejector.text_1": "UNLOCALIZED: Sneak and Right-Click holding an Ejector to select its target location", - "create.ponder.weighted_ejector.text_10": "UNLOCALIZED: It is now limited to this stack size, and only activates when its held stack reaches this amount", - "create.ponder.weighted_ejector.text_11": "UNLOCALIZED: Other Entities will always trigger an Ejector when stepping on it", - "create.ponder.weighted_ejector.text_2": "UNLOCALIZED: The placed ejector will now launch objects to the marked location", - "create.ponder.weighted_ejector.text_3": "UNLOCALIZED: A valid target can be at any height or distance within range", - "create.ponder.weighted_ejector.text_4": "UNLOCALIZED: They cannot however be off to a side", - "create.ponder.weighted_ejector.text_5": "UNLOCALIZED: If no valid Target was selected, it will simply target the block directly in front", - "create.ponder.weighted_ejector.text_6": "UNLOCALIZED: Supply Rotational Force in order to charge it up", - "create.ponder.weighted_ejector.text_7": "UNLOCALIZED: Items placed on the ejector cause it to trigger", - "create.ponder.weighted_ejector.text_8": "UNLOCALIZED: If Inventories are targeted, the ejector will wait until there is space", - "create.ponder.weighted_ejector.text_9": "UNLOCALIZED: Using the Wrench, a required Stack Size can be configured", - - "create.ponder.weighted_ejector_redstone.header": "UNLOCALIZED: Controlling Weighted Ejectors with Redstone", - "create.ponder.weighted_ejector_redstone.text_1": "UNLOCALIZED: When powered by Redstone, Ejectors will not activate", - "create.ponder.weighted_ejector_redstone.text_2": "UNLOCALIZED: Furthermore, Observers can detect when Ejectors activate", - - "create.ponder.weighted_ejector_tunnel.header": "UNLOCALIZED: Splitting item stacks using Weighted Ejectors", - "create.ponder.weighted_ejector_tunnel.text_1": "UNLOCALIZED: Combined with Brass Tunnels, Ejectors can split item stacks by specific amounts", - "create.ponder.weighted_ejector_tunnel.text_2": "UNLOCALIZED: First, configure the Brass Tunnel to 'Prefer Nearest', in order to prioritize its side output", - "create.ponder.weighted_ejector_tunnel.text_3": "UNLOCALIZED: The Stack Size set on the Ejector now determines the amount to be split off", - "create.ponder.weighted_ejector_tunnel.text_4": "UNLOCALIZED: While a new stack of the configured size exits the side output...", - "create.ponder.weighted_ejector_tunnel.text_5": "UNLOCALIZED: ...the remainder will continue on its path", - - "create.ponder.windmill_source.header": "UNLOCALIZED: Generating Rotational Force using Windmill Bearings", - "create.ponder.windmill_source.text_1": "UNLOCALIZED: Windmill Bearings attach to the block in front of them", - "create.ponder.windmill_source.text_2": "UNLOCALIZED: If enough Sail-like blocks are attached to the block, it can act as a Windmill", - "create.ponder.windmill_source.text_3": "UNLOCALIZED: Activated with Right-Click, the Windmill Bearing will start providing Rotational Force", - "create.ponder.windmill_source.text_4": "UNLOCALIZED: The Amount of Sail Blocks determine its Rotation Speed", - "create.ponder.windmill_source.text_5": "UNLOCALIZED: Use a Wrench to configure its rotation direction", - "create.ponder.windmill_source.text_6": "UNLOCALIZED: Right-click the Bearing anytime to stop and edit the Structure again", - - "create.ponder.windmill_structure.header": "UNLOCALIZED: Windmill Contraptions", - "create.ponder.windmill_structure.text_1": "UNLOCALIZED: Any Structure can count as a valid Windmill, as long as it contains at least 8 sail-like Blocks.", - - "_": "Thank you for translating Create!" - -} \ No newline at end of file diff --git a/src/main/java/com/simibubi/create/Create.java b/src/main/java/com/simibubi/create/Create.java index f2ada3c6a..26dffcdb9 100644 --- a/src/main/java/com/simibubi/create/Create.java +++ b/src/main/java/com/simibubi/create/Create.java @@ -7,10 +7,10 @@ import org.apache.logging.log4j.Logger; import com.google.gson.Gson; import com.google.gson.GsonBuilder; +import com.simibubi.create.api.behaviour.BlockSpoutingBehaviour; import com.simibubi.create.content.CreateItemGroup; import com.simibubi.create.content.contraptions.TorquePropagator; import com.simibubi.create.content.contraptions.components.structureMovement.train.capability.CapabilityMinecartController; -import com.simibubi.create.content.contraptions.fluids.actors.BlockSpoutingBehaviour; import com.simibubi.create.content.curiosities.weapons.PotatoCannonProjectileTypes; import com.simibubi.create.content.logistics.RedstoneLinkNetworkHandler; import com.simibubi.create.content.palettes.AllPaletteBlocks; diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/BlockSpoutingBehaviour.java b/src/main/java/com/simibubi/create/api/behaviour/BlockSpoutingBehaviour.java similarity index 94% rename from src/main/java/com/simibubi/create/content/contraptions/fluids/actors/BlockSpoutingBehaviour.java rename to src/main/java/com/simibubi/create/api/behaviour/BlockSpoutingBehaviour.java index 9279b770e..61b11e4fa 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/BlockSpoutingBehaviour.java +++ b/src/main/java/com/simibubi/create/api/behaviour/BlockSpoutingBehaviour.java @@ -1,10 +1,11 @@ -package com.simibubi.create.content.contraptions.fluids.actors; +package com.simibubi.create.api.behaviour; import java.util.HashMap; import java.util.function.Consumer; import com.simibubi.create.Create; import com.simibubi.create.compat.tconstruct.SpoutCasting; +import com.simibubi.create.content.contraptions.fluids.actors.SpoutTileEntity; import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.BlockPos; diff --git a/src/main/java/com/simibubi/create/compat/event/TileEntityBehaviourEvent.java b/src/main/java/com/simibubi/create/api/event/TileEntityBehaviourEvent.java similarity index 97% rename from src/main/java/com/simibubi/create/compat/event/TileEntityBehaviourEvent.java rename to src/main/java/com/simibubi/create/api/event/TileEntityBehaviourEvent.java index ad9d14bab..03e6e4dc9 100644 --- a/src/main/java/com/simibubi/create/compat/event/TileEntityBehaviourEvent.java +++ b/src/main/java/com/simibubi/create/api/event/TileEntityBehaviourEvent.java @@ -1,4 +1,4 @@ -package com.simibubi.create.compat.event; +package com.simibubi.create.api.event; import java.lang.reflect.Type; import java.util.Map; diff --git a/src/main/java/com/simibubi/create/compat/tconstruct/SpoutCasting.java b/src/main/java/com/simibubi/create/compat/tconstruct/SpoutCasting.java index d297d892a..88f47a402 100644 --- a/src/main/java/com/simibubi/create/compat/tconstruct/SpoutCasting.java +++ b/src/main/java/com/simibubi/create/compat/tconstruct/SpoutCasting.java @@ -1,7 +1,7 @@ package com.simibubi.create.compat.tconstruct; +import com.simibubi.create.api.behaviour.BlockSpoutingBehaviour; import com.simibubi.create.compat.Mods; -import com.simibubi.create.content.contraptions.fluids.actors.BlockSpoutingBehaviour; import com.simibubi.create.content.contraptions.fluids.actors.SpoutTileEntity; import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.fluid.FluidHelper; diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/SpoutTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/SpoutTileEntity.java index df4f69f40..8d3c6515a 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/SpoutTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/SpoutTileEntity.java @@ -6,6 +6,7 @@ import static com.simibubi.create.foundation.tileEntity.behaviour.belt.BeltProce import java.util.ArrayList; import java.util.List; +import com.simibubi.create.api.behaviour.BlockSpoutingBehaviour; import com.simibubi.create.content.contraptions.fluids.FluidFX; import com.simibubi.create.content.contraptions.goggles.IHaveGoggleInformation; import com.simibubi.create.content.contraptions.relays.belt.transport.TransportedItemStack; diff --git a/src/main/java/com/simibubi/create/foundation/tileEntity/SmartTileEntity.java b/src/main/java/com/simibubi/create/foundation/tileEntity/SmartTileEntity.java index 80f5a0fda..2b7541bb4 100644 --- a/src/main/java/com/simibubi/create/foundation/tileEntity/SmartTileEntity.java +++ b/src/main/java/com/simibubi/create/foundation/tileEntity/SmartTileEntity.java @@ -6,7 +6,7 @@ import java.util.List; import java.util.Map; import java.util.function.Consumer; -import com.simibubi.create.compat.event.TileEntityBehaviourEvent; +import com.simibubi.create.api.event.TileEntityBehaviourEvent; import com.simibubi.create.content.schematics.ItemRequirement; import com.simibubi.create.foundation.gui.IInteractionChecker; import com.simibubi.create.foundation.tileEntity.behaviour.BehaviourType; From f026cd144cd57453d7e2563430e8a6dab6e28837 Mon Sep 17 00:00:00 2001 From: simibubi <31564874+simibubi@users.noreply.github.com> Date: Wed, 25 Aug 2021 21:12:25 +0200 Subject: [PATCH 38/79] Servers need flywheel too --- src/main/resources/META-INF/mods.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/mods.toml index 147bf6833..b2ed3b126 100644 --- a/src/main/resources/META-INF/mods.toml +++ b/src/main/resources/META-INF/mods.toml @@ -34,4 +34,4 @@ Technology that empowers the player.''' mandatory=true versionRange="[1.16-0.2.3,1.16-0.3)" ordering="AFTER" - side="CLIENT" + side="BOTH" From 2b9c48b215359a0c94da8c08fda62aba682f9117 Mon Sep 17 00:00:00 2001 From: PepperBell <44146161+PepperCode1@users.noreply.github.com> Date: Sat, 28 Aug 2021 11:20:02 -0700 Subject: [PATCH 39/79] Add cake to upright tag - Add missing override annotation --- src/generated/resources/.cache/cache | 4 ++-- .../resources/data/create/advancements/aesthetics.json | 4 ++-- .../resources/data/create/tags/items/upright_on_belt.json | 3 ++- src/main/java/com/simibubi/create/AllRecipeTypes.java | 1 + src/main/java/com/simibubi/create/AllTags.java | 2 +- 5 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/generated/resources/.cache/cache b/src/generated/resources/.cache/cache index f6fd50974..b0bc41e77 100644 --- a/src/generated/resources/.cache/cache +++ b/src/generated/resources/.cache/cache @@ -1699,7 +1699,7 @@ d080b1b25e5bc8baf5aee68691b08c7f12ece3b0 assets/create/models/item/windmill_bear a80fb25a0b655e76be986b5b49fcb0f03461a1ab assets/create/models/item/zinc_nugget.json b1689617190c05ef34bd18456b0c7ae09bb3210f assets/create/models/item/zinc_ore.json 58880e397902f8ca5b3b59ed4423e626109ddc4c assets/create/sounds.json -5d0cc4c0255dc241e61c173b31ddca70c88d08e4 data/create/advancements/aesthetics.json +0f1b4b980afba9bf2caf583b88e261bba8b10313 data/create/advancements/aesthetics.json 187921fa131b06721bfaf63f2623a28c141aae9a data/create/advancements/andesite_alloy.json 0ea2db7173b5be28b289ea7c9a6a0cf5805c60c7 data/create/advancements/andesite_casing.json 83c046bd200623933545c9e4326f782fb02c87fa data/create/advancements/arm_blaze_burner.json @@ -3755,7 +3755,7 @@ eac71740fb12bdb38b5dfaa2268613d7ba82b809 data/create/tags/blocks/windmill_sails. 94c62bf22678ef55b2b8a5398a7960e5b00682dc data/create/tags/items/crushed_ores.json bce28787b0271382842823d04a977912a88b01c2 data/create/tags/items/sandpaper.json 6cdeeac1689f7b5bfd9bc40b462143d8eaf3ad0b data/create/tags/items/seats.json -f1092005b5d01e1f29457e90f75e5750f7f0226b data/create/tags/items/upright_on_belt.json +2f4044c2989b9a8aa394c88617d67a6a310e6b1b data/create/tags/items/upright_on_belt.json 50936b211d94167a35ec78c89954082a336b6269 data/create/tags/items/valve_handles.json 16bcb8fcbe9170c2c11f1ca8d99d8b36cd812bbd data/forge/tags/blocks/glass/colorless.json 81d3eb40b048160fcc2d6bb7ff12b49276297efd data/forge/tags/blocks/glass_panes.json diff --git a/src/generated/resources/data/create/advancements/aesthetics.json b/src/generated/resources/data/create/advancements/aesthetics.json index 59a86f429..d723cbe38 100644 --- a/src/generated/resources/data/create/advancements/aesthetics.json +++ b/src/generated/resources/data/create/advancements/aesthetics.json @@ -28,8 +28,8 @@ "trigger": "create:bracket_apply", "conditions": { "accepted_entries": [ - "create:large_cogwheel", - "create:cogwheel" + "create:cogwheel", + "create:large_cogwheel" ] } }, diff --git a/src/generated/resources/data/create/tags/items/upright_on_belt.json b/src/generated/resources/data/create/tags/items/upright_on_belt.json index 1f236d151..76dfebfa3 100644 --- a/src/generated/resources/data/create/tags/items/upright_on_belt.json +++ b/src/generated/resources/data/create/tags/items/upright_on_belt.json @@ -9,6 +9,7 @@ "minecraft:potion", "minecraft:splash_potion", "minecraft:lingering_potion", - "minecraft:honey_bottle" + "minecraft:honey_bottle", + "minecraft:cake" ] } \ No newline at end of file diff --git a/src/main/java/com/simibubi/create/AllRecipeTypes.java b/src/main/java/com/simibubi/create/AllRecipeTypes.java index ee9ccfb2d..0ec2ecdf3 100644 --- a/src/main/java/com/simibubi/create/AllRecipeTypes.java +++ b/src/main/java/com/simibubi/create/AllRecipeTypes.java @@ -120,6 +120,7 @@ public enum AllRecipeTypes implements IRecipeTypeInfo { public static > IRecipeType simpleType(ResourceLocation id) { String stringId = id.toString(); return Registry.register(Registry.RECIPE_TYPE, id, new IRecipeType() { + @Override public String toString() { return stringId; } diff --git a/src/main/java/com/simibubi/create/AllTags.java b/src/main/java/com/simibubi/create/AllTags.java index f0328a5e6..0e1668c51 100644 --- a/src/main/java/com/simibubi/create/AllTags.java +++ b/src/main/java/com/simibubi/create/AllTags.java @@ -207,7 +207,7 @@ public class AllTags { AllItemTags.CREATE_INGOTS.includeIn(AllItemTags.INGOTS); AllItemTags.UPRIGHT_ON_BELT.add(Items.GLASS_BOTTLE, Items.POTION, Items.SPLASH_POTION, Items.LINGERING_POTION, - Items.HONEY_BOTTLE); + Items.HONEY_BOTTLE, Items.CAKE); AllBlockTags.WINDMILL_SAILS.includeAll(BlockTags.WOOL); From 20b2ec4b633aaec154bf4157e1a8e8475b98c16d Mon Sep 17 00:00:00 2001 From: PepperBell <44146161+PepperCode1@users.noreply.github.com> Date: Sat, 28 Aug 2021 11:53:45 -0700 Subject: [PATCH 40/79] Add CreateCustomRenderedItemModel - Allows Create's classes to not have to pass the namespace every time --- .../content/contraptions/wrench/WrenchModel.java | 6 +++--- .../symmetry/client/SymmetryWandModel.java | 6 +++--- .../content/curiosities/tools/ExtendoGripModel.java | 6 +++--- .../curiosities/tools/SandPaperItemRenderer.java | 6 +++--- .../curiosities/weapons/PotatoCannonModel.java | 6 +++--- .../zapper/terrainzapper/WorldshaperModel.java | 6 +++--- .../logistics/item/LinkedControllerModel.java | 6 +++--- .../item/render/CreateCustomRenderedItemModel.java | 13 +++++++++++++ .../item/render/CustomRenderedItemModel.java | 1 - 9 files changed, 34 insertions(+), 22 deletions(-) create mode 100644 src/main/java/com/simibubi/create/foundation/item/render/CreateCustomRenderedItemModel.java diff --git a/src/main/java/com/simibubi/create/content/contraptions/wrench/WrenchModel.java b/src/main/java/com/simibubi/create/content/contraptions/wrench/WrenchModel.java index 2989dbe6d..eec309f87 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/wrench/WrenchModel.java +++ b/src/main/java/com/simibubi/create/content/contraptions/wrench/WrenchModel.java @@ -1,14 +1,14 @@ package com.simibubi.create.content.contraptions.wrench; -import com.simibubi.create.foundation.item.render.CustomRenderedItemModel; +import com.simibubi.create.foundation.item.render.CreateCustomRenderedItemModel; import net.minecraft.client.renderer.model.IBakedModel; import net.minecraft.client.renderer.tileentity.ItemStackTileEntityRenderer; -public class WrenchModel extends CustomRenderedItemModel { +public class WrenchModel extends CreateCustomRenderedItemModel { public WrenchModel(IBakedModel template) { - super(template, "create", "wrench"); + super(template, "wrench"); addPartials("gear"); } diff --git a/src/main/java/com/simibubi/create/content/curiosities/symmetry/client/SymmetryWandModel.java b/src/main/java/com/simibubi/create/content/curiosities/symmetry/client/SymmetryWandModel.java index aac4957b9..df3a54952 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/symmetry/client/SymmetryWandModel.java +++ b/src/main/java/com/simibubi/create/content/curiosities/symmetry/client/SymmetryWandModel.java @@ -1,14 +1,14 @@ package com.simibubi.create.content.curiosities.symmetry.client; -import com.simibubi.create.foundation.item.render.CustomRenderedItemModel; +import com.simibubi.create.foundation.item.render.CreateCustomRenderedItemModel; import net.minecraft.client.renderer.model.IBakedModel; import net.minecraft.client.renderer.tileentity.ItemStackTileEntityRenderer; -public class SymmetryWandModel extends CustomRenderedItemModel { +public class SymmetryWandModel extends CreateCustomRenderedItemModel { public SymmetryWandModel(IBakedModel template) { - super(template, "create", "wand_of_symmetry"); + super(template, "wand_of_symmetry"); addPartials("bits", "core", "core_glow"); } diff --git a/src/main/java/com/simibubi/create/content/curiosities/tools/ExtendoGripModel.java b/src/main/java/com/simibubi/create/content/curiosities/tools/ExtendoGripModel.java index 274a1f350..c43102214 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/tools/ExtendoGripModel.java +++ b/src/main/java/com/simibubi/create/content/curiosities/tools/ExtendoGripModel.java @@ -1,14 +1,14 @@ package com.simibubi.create.content.curiosities.tools; -import com.simibubi.create.foundation.item.render.CustomRenderedItemModel; +import com.simibubi.create.foundation.item.render.CreateCustomRenderedItemModel; import net.minecraft.client.renderer.model.IBakedModel; import net.minecraft.client.renderer.tileentity.ItemStackTileEntityRenderer; -public class ExtendoGripModel extends CustomRenderedItemModel { +public class ExtendoGripModel extends CreateCustomRenderedItemModel { public ExtendoGripModel(IBakedModel template) { - super(template, "create", "extendo_grip"); + super(template, "extendo_grip"); addPartials("cog", "thin_short", "wide_short", "thin_long", "wide_long"); } diff --git a/src/main/java/com/simibubi/create/content/curiosities/tools/SandPaperItemRenderer.java b/src/main/java/com/simibubi/create/content/curiosities/tools/SandPaperItemRenderer.java index f3f450b93..cfbdd5f41 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/tools/SandPaperItemRenderer.java +++ b/src/main/java/com/simibubi/create/content/curiosities/tools/SandPaperItemRenderer.java @@ -1,7 +1,7 @@ package com.simibubi.create.content.curiosities.tools; import com.mojang.blaze3d.matrix.MatrixStack; -import com.simibubi.create.foundation.item.render.CustomRenderedItemModel; +import com.simibubi.create.foundation.item.render.CreateCustomRenderedItemModel; import com.simibubi.create.foundation.utility.AnimationTickHolder; import net.minecraft.client.Minecraft; @@ -79,10 +79,10 @@ public class SandPaperItemRenderer extends ItemStackTileEntityRenderer { ms.popPose(); } - public static class SandPaperModel extends CustomRenderedItemModel { + public static class SandPaperModel extends CreateCustomRenderedItemModel { public SandPaperModel(IBakedModel template) { - super(template, "create",""); + super(template, ""); } @Override diff --git a/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoCannonModel.java b/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoCannonModel.java index 43645055b..29018ffa0 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoCannonModel.java +++ b/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoCannonModel.java @@ -1,14 +1,14 @@ package com.simibubi.create.content.curiosities.weapons; -import com.simibubi.create.foundation.item.render.CustomRenderedItemModel; +import com.simibubi.create.foundation.item.render.CreateCustomRenderedItemModel; import net.minecraft.client.renderer.model.IBakedModel; import net.minecraft.client.renderer.tileentity.ItemStackTileEntityRenderer; -public class PotatoCannonModel extends CustomRenderedItemModel { +public class PotatoCannonModel extends CreateCustomRenderedItemModel { public PotatoCannonModel(IBakedModel template) { - super(template, "create", "potato_cannon"); + super(template, "potato_cannon"); addPartials("cog"); } diff --git a/src/main/java/com/simibubi/create/content/curiosities/zapper/terrainzapper/WorldshaperModel.java b/src/main/java/com/simibubi/create/content/curiosities/zapper/terrainzapper/WorldshaperModel.java index 283005e3e..a9c6b89bc 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/zapper/terrainzapper/WorldshaperModel.java +++ b/src/main/java/com/simibubi/create/content/curiosities/zapper/terrainzapper/WorldshaperModel.java @@ -1,14 +1,14 @@ package com.simibubi.create.content.curiosities.zapper.terrainzapper; -import com.simibubi.create.foundation.item.render.CustomRenderedItemModel; +import com.simibubi.create.foundation.item.render.CreateCustomRenderedItemModel; import net.minecraft.client.renderer.model.IBakedModel; import net.minecraft.client.renderer.tileentity.ItemStackTileEntityRenderer; -public class WorldshaperModel extends CustomRenderedItemModel { +public class WorldshaperModel extends CreateCustomRenderedItemModel { public WorldshaperModel(IBakedModel template) { - super(template, "create", "handheld_worldshaper"); + super(template, "handheld_worldshaper"); addPartials("core", "core_glow", "accelerator"); } diff --git a/src/main/java/com/simibubi/create/content/logistics/item/LinkedControllerModel.java b/src/main/java/com/simibubi/create/content/logistics/item/LinkedControllerModel.java index acbf99129..e864ed5e5 100644 --- a/src/main/java/com/simibubi/create/content/logistics/item/LinkedControllerModel.java +++ b/src/main/java/com/simibubi/create/content/logistics/item/LinkedControllerModel.java @@ -1,14 +1,14 @@ package com.simibubi.create.content.logistics.item; -import com.simibubi.create.foundation.item.render.CustomRenderedItemModel; +import com.simibubi.create.foundation.item.render.CreateCustomRenderedItemModel; import net.minecraft.client.renderer.model.IBakedModel; import net.minecraft.client.renderer.tileentity.ItemStackTileEntityRenderer; -public class LinkedControllerModel extends CustomRenderedItemModel { +public class LinkedControllerModel extends CreateCustomRenderedItemModel { public LinkedControllerModel(IBakedModel template) { - super(template, "create", "linked_controller"); + super(template, "linked_controller"); addPartials("powered", "button"); } diff --git a/src/main/java/com/simibubi/create/foundation/item/render/CreateCustomRenderedItemModel.java b/src/main/java/com/simibubi/create/foundation/item/render/CreateCustomRenderedItemModel.java new file mode 100644 index 000000000..e5e128ca6 --- /dev/null +++ b/src/main/java/com/simibubi/create/foundation/item/render/CreateCustomRenderedItemModel.java @@ -0,0 +1,13 @@ +package com.simibubi.create.foundation.item.render; + +import com.simibubi.create.Create; + +import net.minecraft.client.renderer.model.IBakedModel; + +public abstract class CreateCustomRenderedItemModel extends CustomRenderedItemModel { + + public CreateCustomRenderedItemModel(IBakedModel template, String basePath) { + super(template, Create.ID, basePath); + } + +} diff --git a/src/main/java/com/simibubi/create/foundation/item/render/CustomRenderedItemModel.java b/src/main/java/com/simibubi/create/foundation/item/render/CustomRenderedItemModel.java index dfb8097cd..3324b383a 100644 --- a/src/main/java/com/simibubi/create/foundation/item/render/CustomRenderedItemModel.java +++ b/src/main/java/com/simibubi/create/foundation/item/render/CustomRenderedItemModel.java @@ -6,7 +6,6 @@ import java.util.Map; import java.util.stream.Collectors; import com.mojang.blaze3d.matrix.MatrixStack; -import com.simibubi.create.Create; import net.minecraft.client.renderer.model.IBakedModel; import net.minecraft.client.renderer.model.ItemCameraTransforms; From 53774d64afd71d9b44e68628b4e86dea560c0860 Mon Sep 17 00:00:00 2001 From: reidbhuntley Date: Sat, 28 Aug 2021 20:07:57 -0400 Subject: [PATCH 41/79] Fix infinite source blacklist being ignored --- .../contraptions/fluids/actors/FluidManipulationBehaviour.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/FluidManipulationBehaviour.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/FluidManipulationBehaviour.java index d3ecf1394..69f013bc4 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/FluidManipulationBehaviour.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/FluidManipulationBehaviour.java @@ -6,6 +6,7 @@ import java.util.List; import java.util.Set; import java.util.function.BiConsumer; +import com.simibubi.create.AllTags; import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.fluid.FluidHelper; import com.simibubi.create.foundation.networking.AllPackets; @@ -205,7 +206,7 @@ public abstract class FluidManipulationBehaviour extends TileEntityBehaviour { } protected boolean canDrainInfinitely(Fluid fluid) { - return maxBlocks() != -1; // && !AllFluidTags.NO_INFINITE_DRAINING.matches(fluid); + return maxBlocks() != -1 && !AllTags.AllFluidTags.NO_INFINITE_DRAINING.matches(fluid); } @Override From b734f73db39374c7b4a81e683f0520cefd8f27ea Mon Sep 17 00:00:00 2001 From: grimmauld Date: Sun, 29 Aug 2021 12:27:33 +0200 Subject: [PATCH 42/79] made armor stands in ponder scenes less likely to break to null worlds --- .../simibubi/create/foundation/ponder/PonderScene.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/simibubi/create/foundation/ponder/PonderScene.java b/src/main/java/com/simibubi/create/foundation/ponder/PonderScene.java index 0befcd501..b91839fd8 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/PonderScene.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/PonderScene.java @@ -52,6 +52,8 @@ import net.minecraft.util.math.vector.Vector3d; import net.minecraft.util.math.vector.Vector3i; import net.minecraft.util.math.vector.Vector4f; +import javax.annotation.Nullable; + public class PonderScene { public static final String TITLE_KEY = "header"; @@ -79,6 +81,7 @@ public class PonderScene { Vector3d pointOfInterest; Vector3d chasingPointOfInterest; WorldSectionElement baseWorldSection; + @Nullable Entity renderViewEntity; int basePlateOffsetX; @@ -112,7 +115,7 @@ public class PonderScene { basePlateSize = getBounds().getXSpan(); info = new SceneRenderInfo(); baseWorldSection = new WorldSectionElement(); - renderViewEntity = new ArmorStandEntity(world, 0, 0, 0); + renderViewEntity = world != null ? new ArmorStandEntity(world, 0, 0, 0) : null; keyframeTimes = new IntArrayList(4); scaleFactor = 1; yOffset = 0; @@ -486,7 +489,8 @@ public class PonderScene { public void updateSceneRVE(float pt) { Vector3d v = screenToScene(width / 2, height / 2, 500, pt); - renderViewEntity.setPos(v.x, v.y, v.z); + if (renderViewEntity != null) + renderViewEntity.setPos(v.x, v.y, v.z); } public Vector3d screenToScene(double x, double y, int depth, float pt) { From 35e4956c028e097258aa0142fd1639c86e54e978 Mon Sep 17 00:00:00 2001 From: Stephen Barnes Date: Sun, 29 Aug 2021 21:56:28 -0500 Subject: [PATCH 43/79] Add config option for windmill sails per RPM --- .../structureMovement/bearing/WindmillBearingTileEntity.java | 4 +++- .../java/com/simibubi/create/foundation/config/CKinetics.java | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/WindmillBearingTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/WindmillBearingTileEntity.java index ff43fe15d..d61a227ed 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/WindmillBearingTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/WindmillBearingTileEntity.java @@ -2,6 +2,7 @@ package com.simibubi.create.content.contraptions.components.structureMovement.be import java.util.List; +import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.gui.AllIcons; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.scrollvalue.INamedIconOptions; @@ -41,7 +42,8 @@ public class WindmillBearingTileEntity extends MechanicalBearingTileEntity { return 0; if (movedContraption == null) return lastGeneratedSpeed; - int sails = ((BearingContraption) movedContraption.getContraption()).getSailBlocks() / 8; + int sails = ((BearingContraption) movedContraption.getContraption()).getSailBlocks() + / AllConfigs.SERVER.kinetics.windmillSailsPerRPM.get(); return MathHelper.clamp(sails, 1, 16) * getAngleSpeedDirection(); } diff --git a/src/main/java/com/simibubi/create/foundation/config/CKinetics.java b/src/main/java/com/simibubi/create/foundation/config/CKinetics.java index 8739dd8e0..1ee7ec82c 100644 --- a/src/main/java/com/simibubi/create/foundation/config/CKinetics.java +++ b/src/main/java/com/simibubi/create/foundation/config/CKinetics.java @@ -18,6 +18,7 @@ public class CKinetics extends ConfigBase { i(60, 5, "kineticValidationFrequency", Comments.kineticValidationFrequency); public ConfigFloat crankHungerMultiplier = f(.01f, 0, 1, "crankHungerMultiplier", Comments.crankHungerMultiplier); public ConfigInt minimumWindmillSails = i(8, 0, "minimumWindmillSails", Comments.minimumWindmillSails); + public ConfigInt windmillSailsPerRPM = i(8, 1, "windmillSailsPerRPM", Comments.windmillSailsPerRPM); public ConfigInt maxEjectorDistance = i(32, 0, "maxEjectorDistance", Comments.maxEjectorDistance); public ConfigInt ejectorScanInterval = i(120, 10, "ejectorScanInterval", Comments.ejectorScanInterval); @@ -93,6 +94,7 @@ public class CKinetics extends ConfigBase { "Game ticks between Kinetic Blocks checking whether their source is still valid."; static String minimumWindmillSails = "Amount of sail-type blocks required for a windmill to assemble successfully."; + static String windmillSailsPerRPM = "Number of sail-type blocks required to increase windmill speed by 1RPM."; static String maxEjectorDistance = "Max Distance in blocks a Weighted Ejector can throw"; static String ejectorScanInterval = "Time in ticks until the next item launched by an ejector scans blocks for potential collisions"; From aecd98838497a01aae7c75acc817e1841c0e0926 Mon Sep 17 00:00:00 2001 From: simibubi <31564874+simibubi@users.noreply.github.com> Date: Tue, 31 Aug 2021 13:46:28 +0200 Subject: [PATCH 44/79] Foliage Machine - Mechanical Harvesters can now be used to gather Leaves - Mechanical Harvesters can now be used to gather Weeping and Twisting Vines - Fixed JEI integration of Basin recipes with multiple and/or stochastic outputs --- .../compat/jei/category/BasinCategory.java | 62 +++++++++++-------- .../actors/HarvesterMovementBehaviour.java | 23 ++++--- 2 files changed, 53 insertions(+), 32 deletions(-) diff --git a/src/main/java/com/simibubi/create/compat/jei/category/BasinCategory.java b/src/main/java/com/simibubi/create/compat/jei/category/BasinCategory.java index 60bd73223..ddbec7c2c 100644 --- a/src/main/java/com/simibubi/create/compat/jei/category/BasinCategory.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/BasinCategory.java @@ -6,7 +6,6 @@ import java.util.stream.Collectors; import org.apache.commons.lang3.mutable.MutableInt; -import com.google.common.collect.ImmutableList; import com.mojang.blaze3d.matrix.MatrixStack; import com.simibubi.create.AllBlocks; import com.simibubi.create.AllItems; @@ -73,17 +72,10 @@ public class BasinCategory extends CreateRecipeCategory { IGuiItemStackGroup itemStacks = recipeLayout.getItemStacks(); IGuiFluidStackGroup fluidStacks = recipeLayout.getFluidStacks(); - ItemStack itemOutput = recipe.getRollableResultsAsItemStacks() - .isEmpty() ? ItemStack.EMPTY - : recipe.getRollableResultsAsItemStacks() - .get(0); - FluidStack fluidOutput = recipe.getFluidResults() - .isEmpty() ? FluidStack.EMPTY - : recipe.getFluidResults() - .get(0); - NonNullList fluidIngredients = recipe.getFluidIngredients(); List> ingredients = ItemHelper.condenseIngredients(recipe.getIngredients()); + List itemOutputs = recipe.getRollableResultsAsItemStacks(); + NonNullList fluidOutputs = recipe.getFluidResults(); int size = ingredients.size() + fluidIngredients.size(); int xOffset = size < 3 ? (3 - size) * 19 / 2 : 0; @@ -115,28 +107,41 @@ public class BasinCategory extends CreateRecipeCategory { fluidStacks.set(j, withImprovedVisibility(stacks)); } - if (!itemOutput.isEmpty()) { - itemStacks.init(i, false, 141, 50 + yOffset); - itemStacks.set(i, recipe.getResultItem() - .getStack()); - yOffset -= 19; + int outSize = fluidOutputs.size() + recipe.getRollableResults() + .size(); + int outputIndex = 0; + + if (!itemOutputs.isEmpty()) + addStochasticTooltip(itemStacks, recipe.getRollableResults(), i); + + for (; outputIndex < outSize; outputIndex++) { + int xPosition = 141 - (outSize % 2 != 0 && outputIndex == outSize - 1 ? 0 : outputIndex % 2 == 0 ? 10 : -9); + int yPosition = -19 * (outputIndex / 2) + 50 + yOffset; + + if (itemOutputs.size() > outputIndex) { + itemStacks.init(i, false, xPosition, yPosition + yOffset); + itemStacks.set(i, itemOutputs.get(outputIndex)); + i++; + } else { + fluidStacks.init(j, false, xPosition + 1, yPosition + 1 + yOffset); + fluidStacks.set(j, withImprovedVisibility(fluidOutputs.get(outputIndex - itemOutputs.size()))); + j++; + } + } - if (!fluidOutput.isEmpty()) { - fluidStacks.init(j, false, 142, 51 + yOffset); - fluidStacks.set(j, withImprovedVisibility(fluidOutput)); - } - - addFluidTooltip(fluidStacks, fluidIngredients, ImmutableList.of(fluidOutput)); + addFluidTooltip(fluidStacks, fluidIngredients, fluidOutputs); HeatCondition requiredHeat = recipe.getRequiredHeat(); if (!requiredHeat.testBlazeBurner(HeatLevel.NONE)) { - itemStacks.init(++i, true, 133, 80); + itemStacks.init(i, true, 133, 80); itemStacks.set(i, AllBlocks.BLAZE_BURNER.asStack()); + i++; } if (!requiredHeat.testBlazeBurner(HeatLevel.KINDLED)) { - itemStacks.init(++i, true, 152, 80); + itemStacks.init(i, true, 152, 80); itemStacks.set(i, AllItems.BLAZE_CAKE.asStack()); + i++; } } @@ -146,6 +151,8 @@ public class BasinCategory extends CreateRecipeCategory { int size = actualIngredients.size() + recipe.getFluidIngredients() .size(); + int outSize = recipe.getFluidResults().size() + recipe.getRollableResults().size(); + int xOffset = size < 3 ? (3 - size) * 19 / 2 : 0; HeatCondition requiredHeat = recipe.getRequiredHeat(); int yOffset = 0; @@ -154,8 +161,13 @@ public class BasinCategory extends CreateRecipeCategory { AllGuiTextures.JEI_SLOT.draw(matrixStack, 16 + xOffset + (i % 3) * 19, 50 - (i / 3) * 19 + yOffset); boolean noHeat = requiredHeat == HeatCondition.NONE; - AllGuiTextures.JEI_SLOT.draw(matrixStack, 141, 50 + yOffset); - AllGuiTextures.JEI_DOWN_ARROW.draw(matrixStack, 136, 32 + yOffset); + + int vRows = (1 + outSize) / 2; + for (int i = 0; i < outSize; i++) + AllGuiTextures.JEI_SLOT.draw(matrixStack, + 141 - (outSize % 2 != 0 && i == outSize - 1 ? 0 : i % 2 == 0 ? 10 : -9), -19 * (i / 2) + 50 + yOffset); + if (vRows <= 2) + AllGuiTextures.JEI_DOWN_ARROW.draw(matrixStack, 136, -19 * (vRows - 1) + 32 + yOffset); AllGuiTextures shadow = noHeat ? AllGuiTextures.JEI_SHADOW : AllGuiTextures.JEI_LIGHT; shadow.draw(matrixStack, 81, 58 + (noHeat ? 10 : 30)); diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/actors/HarvesterMovementBehaviour.java b/src/main/java/com/simibubi/create/content/contraptions/components/actors/HarvesterMovementBehaviour.java index 87eee9790..5b144822e 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/actors/HarvesterMovementBehaviour.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/actors/HarvesterMovementBehaviour.java @@ -16,19 +16,20 @@ import com.simibubi.create.foundation.utility.BlockHelper; import com.simibubi.create.foundation.utility.VecHelper; import com.simibubi.create.foundation.utility.worldWrappers.PlacementSimulationWorld; +import net.minecraft.block.AbstractPlantBlock; import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; import net.minecraft.block.CocoaBlock; import net.minecraft.block.CropsBlock; -import net.minecraft.block.KelpBlock; -import net.minecraft.block.KelpTopBlock; import net.minecraft.block.SugarCaneBlock; import net.minecraft.client.renderer.IRenderTypeBuffer; import net.minecraft.item.ItemStack; +import net.minecraft.item.Items; import net.minecraft.state.IntegerProperty; import net.minecraft.state.Property; import net.minecraft.state.properties.BlockStateProperties; +import net.minecraft.tags.BlockTags; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.vector.Vector3d; import net.minecraft.world.World; @@ -83,9 +84,17 @@ public class HarvesterMovementBehaviour extends MovementBehaviour { return; } + ItemStack item = ItemStack.EMPTY; + float effectChance = 1; + + if (stateVisited.getBlock().is(BlockTags.LEAVES)) { + item = new ItemStack(Items.SHEARS); + effectChance = .45f; + } + MutableBoolean seedSubtracted = new MutableBoolean(notCropButCuttable); BlockState state = stateVisited; - BlockHelper.destroyBlock(world, pos, 1, stack -> { + BlockHelper.destroyBlockAs(world, pos, null, item, effectChance, stack -> { if (!seedSubtracted.getValue() && stack.sameItem(new ItemStack(state.getBlock()))) { stack.shrink(1); seedSubtracted.setTrue(); @@ -127,12 +136,12 @@ public class HarvesterMovementBehaviour extends MovementBehaviour { return false; if (state.getBlock() instanceof SugarCaneBlock) return true; + if (state.getBlock().is(BlockTags.LEAVES)) + return true; if (state.getCollisionShape(world, pos) .isEmpty() || state.getBlock() instanceof CocoaBlock) { - if (state.getBlock() instanceof KelpBlock) - return true; - if (state.getBlock() instanceof KelpTopBlock) + if (state.getBlock() instanceof AbstractPlantBlock) return true; for (Property property : state.getProperties()) { @@ -160,7 +169,7 @@ public class HarvesterMovementBehaviour extends MovementBehaviour { if (block == Blocks.SWEET_BERRY_BUSH) { return state.setValue(BlockStateProperties.AGE_3, Integer.valueOf(1)); } - if (block == Blocks.SUGAR_CANE || block == Blocks.KELP) { + if (block == Blocks.SUGAR_CANE || block instanceof AbstractPlantBlock) { if (state.getFluidState() .isEmpty()) return Blocks.AIR.defaultBlockState(); From 31c951be65d38443016edade61a3a4d20d3bad9e Mon Sep 17 00:00:00 2001 From: simibubi <31564874+simibubi@users.noreply.github.com> Date: Thu, 2 Sep 2021 23:08:03 +0200 Subject: [PATCH 45/79] Streamline Chromatics - Crafters no longer display item sprites vertically flipped - Crafters now arrange overlapping items less randomly - Chromatic Compound can now absorb light emitting blocks from belts & depots --- .../crafter/MechanicalCrafterRenderer.java | 54 +++++++++++------ .../curiosities/ChromaticCompoundItem.java | 60 +++++++++++++++++-- .../curiosities/RefinedRadianceItem.java | 2 +- 3 files changed, 91 insertions(+), 25 deletions(-) diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/crafter/MechanicalCrafterRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/crafter/MechanicalCrafterRenderer.java index d589cd999..67e38873d 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/crafter/MechanicalCrafterRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/crafter/MechanicalCrafterRenderer.java @@ -17,6 +17,7 @@ import com.simibubi.create.foundation.render.SuperByteBuffer; import com.simibubi.create.foundation.tileEntity.renderer.SafeTileEntityRenderer; import com.simibubi.create.foundation.utility.AngleHelper; import com.simibubi.create.foundation.utility.AnimationTickHolder; +import com.simibubi.create.foundation.utility.Pointing; import net.minecraft.block.BlockState; import net.minecraft.client.Minecraft; @@ -43,14 +44,16 @@ public class MechanicalCrafterRenderer extends SafeTileEntityRenderer { + + ItemStack heldStack = ts.stack; + if (!(heldStack.getItem() instanceof BlockItem)) + return TransportedResult.doNothing(); + + BlockItem blockItem = (BlockItem) heldStack.getItem(); + if (blockItem.getBlock() == null) + return TransportedResult.doNothing(); + + BlockState stateToCheck = blockItem.getBlock() + .defaultBlockState(); + + if (!success.getValue() + && checkLight(stack, entity, world, itemData, positionVec, randomOffset, stateToCheck)) { + success.setTrue(); + if (ts.stack.getCount() == 1) + return TransportedResult.removeItem(); + TransportedItemStack left = ts.copy(); + left.stack.shrink(1); + return TransportedResult.convertTo(left); + } + + return TransportedResult.doNothing(); + + }); + return false; + } + + public boolean checkLight(ItemStack stack, ItemEntity entity, World world, CompoundNBT itemData, + Vector3d positionVec, BlockPos randomOffset, BlockState state) { if (state.getLightValue(world, randomOffset) == 0) return false; if (state.getDestroySpeed(world, randomOffset) == -1) @@ -166,14 +217,12 @@ public class ChromaticCompoundItem extends Item { if (state.getBlock() == Blocks.BEACON) return false; - RayTraceContext context = new RayTraceContext(positionVec, VecHelper.getCenterOf(randomOffset), - BlockMode.COLLIDER, FluidMode.NONE, entity); + RayTraceContext context = new RayTraceContext(positionVec.add(new Vector3d(0, 0.5, 0)), + VecHelper.getCenterOf(randomOffset), BlockMode.COLLIDER, FluidMode.NONE, entity); if (!randomOffset.equals(world.clip(context) .getBlockPos())) return false; - world.destroyBlock(randomOffset, false); - ItemStack newStack = stack.split(1); newStack.getOrCreateTag() .putInt("CollectingLight", itemData.getInt("CollectingLight") + 1); @@ -184,8 +233,7 @@ public class ChromaticCompoundItem extends Item { entity.lifespan = 6000; if (stack.isEmpty()) entity.remove(); - - return false; + return true; } } diff --git a/src/main/java/com/simibubi/create/content/curiosities/RefinedRadianceItem.java b/src/main/java/com/simibubi/create/content/curiosities/RefinedRadianceItem.java index 3cb9584e7..c6aab3c8c 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/RefinedRadianceItem.java +++ b/src/main/java/com/simibubi/create/content/curiosities/RefinedRadianceItem.java @@ -19,7 +19,7 @@ public class RefinedRadianceItem extends NoGravMagicalDohickyItem { protected void onCreated(ItemEntity entity, CompoundNBT persistentData) { super.onCreated(entity, persistentData); entity.setDeltaMovement(entity.getDeltaMovement() - .add(0, .15f, 0)); + .add(0, .25f, 0)); } } From b05506ad4694031ae208884d303851a71eddde47 Mon Sep 17 00:00:00 2001 From: simibubi <31564874+simibubi@users.noreply.github.com> Date: Thu, 2 Sep 2021 23:58:38 +0200 Subject: [PATCH 46/79] Mechanicalacinahcem - Added the option to prevent a Mechanical Crafting recipe from matching a vertically flipped arrangement --- src/generated/resources/.cache/cache | 10 ++-- .../mechanical_crafting/crushing_wheel.json | 3 +- .../mechanical_crafting/extendo_grip.json | 3 +- .../recipes/mechanical_crafting/flywheel.json | 3 +- .../mechanical_crafting/furnace_engine.json | 3 +- .../mechanical_crafting/potato_cannon.json | 3 +- .../crafter/MechanicalCraftingRecipe.java | 59 +++++++++++++++++-- .../MechanicalCraftingRecipeBuilder.java | 18 +++++- .../recipe/MechanicalCraftingRecipeGen.java | 6 +- 9 files changed, 88 insertions(+), 20 deletions(-) diff --git a/src/generated/resources/.cache/cache b/src/generated/resources/.cache/cache index b0bc41e77..3af0320b7 100644 --- a/src/generated/resources/.cache/cache +++ b/src/generated/resources/.cache/cache @@ -3377,11 +3377,11 @@ bbf64f7eb3868e354756e57348493e2b1ae6b0d9 data/create/recipes/limestone_cobblesto 88fa2b1ab746d5e13a8afd6e7e7d80ad843e0016 data/create/recipes/limestone_cobblestone_wall_from_limestone_cobblestone_stonecutting.json 327bb8a6535b60bb65d0dda9d5205e988bc82526 data/create/recipes/limestone_pillar.json c2e15ac0c9109bad3face6d13efc32d7116b4c25 data/create/recipes/limestone_pillar_from_limestone_stonecutting.json -88173753ceaf121c5430bbf928a40e3c046dbfe0 data/create/recipes/mechanical_crafting/crushing_wheel.json -14e322d4de8fae35d952274376497740bb3d5962 data/create/recipes/mechanical_crafting/extendo_grip.json -de7fea84434753873dfa2b929d9b5f5f86ac6a5c data/create/recipes/mechanical_crafting/flywheel.json -e491fd8a8873308270f9dc2a57ac8f2c70431dcc data/create/recipes/mechanical_crafting/furnace_engine.json -8e5224d22b228f69473ca48ca0d874b34660b573 data/create/recipes/mechanical_crafting/potato_cannon.json +66674d07de63aada0991d2fdff07e22e00450135 data/create/recipes/mechanical_crafting/crushing_wheel.json +599f8b87c24c131350ba7ceb69a0c8b9829c62bc data/create/recipes/mechanical_crafting/extendo_grip.json +f26ed47c10cc63613759b0f8ae4ef349000de60d data/create/recipes/mechanical_crafting/flywheel.json +2dc00d6e4c159e06ab2a705e666e83e4238a7814 data/create/recipes/mechanical_crafting/furnace_engine.json +b77911c169b6205a09001a09ca074eb2234f0d29 data/create/recipes/mechanical_crafting/potato_cannon.json 98f877bf8f3f8a686fc6cf7479a0fba5744248ce data/create/recipes/milling/allium.json 8c7e1cbc87c7ca7df2bf949957e89422fef8ad94 data/create/recipes/milling/aluminum_ore.json bcff4d30ae09a0729bce8b2dbde4ddd6719a998b data/create/recipes/milling/andesite.json diff --git a/src/generated/resources/data/create/recipes/mechanical_crafting/crushing_wheel.json b/src/generated/resources/data/create/recipes/mechanical_crafting/crushing_wheel.json index a8c1170ec..34ad9ea72 100644 --- a/src/generated/resources/data/create/recipes/mechanical_crafting/crushing_wheel.json +++ b/src/generated/resources/data/create/recipes/mechanical_crafting/crushing_wheel.json @@ -21,5 +21,6 @@ "result": { "item": "create:crushing_wheel", "count": 2 - } + }, + "acceptMirrored": false } \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/mechanical_crafting/extendo_grip.json b/src/generated/resources/data/create/recipes/mechanical_crafting/extendo_grip.json index c7fc84b1c..2d69859ee 100644 --- a/src/generated/resources/data/create/recipes/mechanical_crafting/extendo_grip.json +++ b/src/generated/resources/data/create/recipes/mechanical_crafting/extendo_grip.json @@ -23,5 +23,6 @@ }, "result": { "item": "create:extendo_grip" - } + }, + "acceptMirrored": false } \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/mechanical_crafting/flywheel.json b/src/generated/resources/data/create/recipes/mechanical_crafting/flywheel.json index 010b2fbae..dee9cffd7 100644 --- a/src/generated/resources/data/create/recipes/mechanical_crafting/flywheel.json +++ b/src/generated/resources/data/create/recipes/mechanical_crafting/flywheel.json @@ -15,5 +15,6 @@ }, "result": { "item": "create:flywheel" - } + }, + "acceptMirrored": true } \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/mechanical_crafting/furnace_engine.json b/src/generated/resources/data/create/recipes/mechanical_crafting/furnace_engine.json index 45765aebe..3842209f0 100644 --- a/src/generated/resources/data/create/recipes/mechanical_crafting/furnace_engine.json +++ b/src/generated/resources/data/create/recipes/mechanical_crafting/furnace_engine.json @@ -26,5 +26,6 @@ }, "result": { "item": "create:furnace_engine" - } + }, + "acceptMirrored": true } \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/mechanical_crafting/potato_cannon.json b/src/generated/resources/data/create/recipes/mechanical_crafting/potato_cannon.json index fffb05d24..a21d9bd04 100644 --- a/src/generated/resources/data/create/recipes/mechanical_crafting/potato_cannon.json +++ b/src/generated/resources/data/create/recipes/mechanical_crafting/potato_cannon.json @@ -20,5 +20,6 @@ }, "result": { "item": "create:potato_cannon" - } + }, + "acceptMirrored": true } \ No newline at end of file diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/crafter/MechanicalCraftingRecipe.java b/src/main/java/com/simibubi/create/content/contraptions/components/crafter/MechanicalCraftingRecipe.java index 2022cccf2..4eef6c570 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/crafter/MechanicalCraftingRecipe.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/crafter/MechanicalCraftingRecipe.java @@ -10,25 +10,58 @@ import net.minecraft.item.crafting.IRecipeType; import net.minecraft.item.crafting.Ingredient; import net.minecraft.item.crafting.ShapedRecipe; import net.minecraft.network.PacketBuffer; +import net.minecraft.util.JSONUtils; import net.minecraft.util.NonNullList; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; public class MechanicalCraftingRecipe extends ShapedRecipe { + private boolean acceptMirrored; + public MechanicalCraftingRecipe(ResourceLocation idIn, String groupIn, int recipeWidthIn, int recipeHeightIn, - NonNullList recipeItemsIn, ItemStack recipeOutputIn) { + NonNullList recipeItemsIn, ItemStack recipeOutputIn, boolean acceptMirrored) { super(idIn, groupIn, recipeWidthIn, recipeHeightIn, recipeItemsIn, recipeOutputIn); + this.acceptMirrored = acceptMirrored; } - private static MechanicalCraftingRecipe fromShaped(ShapedRecipe recipe) { + private static MechanicalCraftingRecipe fromShaped(ShapedRecipe recipe, boolean acceptMirrored) { return new MechanicalCraftingRecipe(recipe.getId(), recipe.getGroup(), recipe.getWidth(), recipe.getHeight(), - recipe.getIngredients(), recipe.getResultItem()); + recipe.getIngredients(), recipe.getResultItem(), acceptMirrored); } @Override public boolean matches(CraftingInventory inv, World worldIn) { - return inv instanceof MechanicalCraftingInventory && super.matches(inv, worldIn); + if (!(inv instanceof MechanicalCraftingInventory)) + return false; + if (acceptsMirrored()) + return super.matches(inv, worldIn); + + // From ShapedRecipe except the symmetry + for (int i = 0; i <= inv.getWidth() - this.getWidth(); ++i) + for (int j = 0; j <= inv.getHeight() - this.getHeight(); ++j) + if (this.matchesSpecific(inv, i, j)) + return true; + return false; + } + + // From ShapedRecipe + private boolean matchesSpecific(CraftingInventory inv, int p_77573_2_, int p_77573_3_) { + NonNullList ingredients = getIngredients(); + int width = getWidth(); + int height = getHeight(); + for (int i = 0; i < inv.getWidth(); ++i) { + for (int j = 0; j < inv.getHeight(); ++j) { + int k = i - p_77573_2_; + int l = j - p_77573_3_; + Ingredient ingredient = Ingredient.EMPTY; + if (k >= 0 && l >= 0 && k < width && l < height) + ingredient = ingredients.get(k + l * width); + if (!ingredient.test(inv.getItem(i + j * inv.getWidth()))) + return false; + } + } + return true; } @Override @@ -46,16 +79,30 @@ public class MechanicalCraftingRecipe extends ShapedRecipe { return AllRecipeTypes.MECHANICAL_CRAFTING.getSerializer(); } + public boolean acceptsMirrored() { + return acceptMirrored; + } + public static class Serializer extends ShapedRecipe.Serializer { @Override public ShapedRecipe fromJson(ResourceLocation recipeId, JsonObject json) { - return fromShaped(super.fromJson(recipeId, json)); + return fromShaped(super.fromJson(recipeId, json), JSONUtils.getAsBoolean(json, "acceptMirrored", true)); } @Override public ShapedRecipe fromNetwork(ResourceLocation recipeId, PacketBuffer buffer) { - return fromShaped(super.fromNetwork(recipeId, buffer)); + return fromShaped(super.fromNetwork(recipeId, buffer), buffer.readBoolean() && buffer.readBoolean()); + } + + @Override + public void toNetwork(PacketBuffer p_199427_1_, ShapedRecipe p_199427_2_) { + super.toNetwork(p_199427_1_, p_199427_2_); + if (p_199427_2_ instanceof MechanicalCraftingRecipe) { + p_199427_1_.writeBoolean(true); + p_199427_1_.writeBoolean(((MechanicalCraftingRecipe) p_199427_2_).acceptsMirrored()); + } else + p_199427_1_.writeBoolean(false); } } diff --git a/src/main/java/com/simibubi/create/foundation/data/recipe/MechanicalCraftingRecipeBuilder.java b/src/main/java/com/simibubi/create/foundation/data/recipe/MechanicalCraftingRecipeBuilder.java index 3f806faf7..2b75c2f4a 100644 --- a/src/main/java/com/simibubi/create/foundation/data/recipe/MechanicalCraftingRecipeBuilder.java +++ b/src/main/java/com/simibubi/create/foundation/data/recipe/MechanicalCraftingRecipeBuilder.java @@ -30,10 +30,12 @@ public class MechanicalCraftingRecipeBuilder { private final int count; private final List pattern = Lists.newArrayList(); private final Map key = Maps.newLinkedHashMap(); + private boolean acceptMirrored; public MechanicalCraftingRecipeBuilder(IItemProvider p_i48261_1_, int p_i48261_2_) { result = p_i48261_1_.asItem(); count = p_i48261_2_; + acceptMirrored = true; } /** @@ -91,6 +93,14 @@ public class MechanicalCraftingRecipeBuilder { } } + /** + * Prevents the crafters from matching a vertically flipped version of the recipe + */ + public MechanicalCraftingRecipeBuilder disallowMirrored() { + acceptMirrored = false; + return this; + } + /** * Builds this recipe into an {@link IFinishedRecipe}. */ @@ -116,7 +126,8 @@ public class MechanicalCraftingRecipeBuilder { */ public void build(Consumer p_200467_1_, ResourceLocation p_200467_2_) { validate(p_200467_2_); - p_200467_1_.accept(new MechanicalCraftingRecipeBuilder.Result(p_200467_2_, result, count, pattern, key)); + p_200467_1_ + .accept(new MechanicalCraftingRecipeBuilder.Result(p_200467_2_, result, count, pattern, key, acceptMirrored)); } /** @@ -151,14 +162,16 @@ public class MechanicalCraftingRecipeBuilder { private final int count; private final List pattern; private final Map key; + private final boolean acceptMirrored; public Result(ResourceLocation p_i48271_2_, Item p_i48271_3_, int p_i48271_4_, List p_i48271_6_, - Map p_i48271_7_) { + Map p_i48271_7_, boolean asymmetrical) { this.id = p_i48271_2_; this.result = p_i48271_3_; this.count = p_i48271_4_; this.pattern = p_i48271_6_; this.key = p_i48271_7_; + this.acceptMirrored = asymmetrical; } public void serializeRecipeData(JsonObject p_218610_1_) { @@ -180,6 +193,7 @@ public class MechanicalCraftingRecipeBuilder { jsonobject1.addProperty("count", this.count); p_218610_1_.add("result", jsonobject1); + p_218610_1_.addProperty("acceptMirrored", acceptMirrored); } public IRecipeSerializer getType() { diff --git a/src/main/java/com/simibubi/create/foundation/data/recipe/MechanicalCraftingRecipeGen.java b/src/main/java/com/simibubi/create/foundation/data/recipe/MechanicalCraftingRecipeGen.java index d4e5c5eb5..b15d1ac64 100644 --- a/src/main/java/com/simibubi/create/foundation/data/recipe/MechanicalCraftingRecipeGen.java +++ b/src/main/java/com/simibubi/create/foundation/data/recipe/MechanicalCraftingRecipeGen.java @@ -27,7 +27,8 @@ public class MechanicalCraftingRecipeGen extends CreateRecipeProvider { .patternLine("AAPAA") .patternLine("APSPA") .patternLine("AAPAA") - .patternLine(" AAA ")), + .patternLine(" AAA ") + .disallowMirrored()), EXTENDO_GRIP = create(AllItems.EXTENDO_GRIP::get).returns(1) .recipe(b -> b.key('L', Ingredient.of(I.brass())) @@ -38,7 +39,8 @@ public class MechanicalCraftingRecipeGen extends CreateRecipeProvider { .patternLine(" R ") .patternLine("SSS") .patternLine("SSS") - .patternLine(" H ")), + .patternLine(" H ") + .disallowMirrored()), POTATO_CANNON = create(AllItems.POTATO_CANNON::get).returns(1) .recipe(b -> b.key('L', I.andesite()) From aa3d656445680f007895a84977333b3c48a89446 Mon Sep 17 00:00:00 2001 From: simibubi <31564874+simibubi@users.noreply.github.com> Date: Fri, 3 Sep 2021 05:12:44 +0200 Subject: [PATCH 47/79] Hot belt replace - The Wrench can now be used to shorten or divide Mechanical Belts - Belt Connectors can now be used to extend or merge Mechanical Belts --- .../contraptions/relays/belt/BeltBlock.java | 57 +-- .../contraptions/relays/belt/BeltHelper.java | 16 +- .../relays/belt/BeltRenderer.java | 4 +- .../contraptions/relays/belt/BeltSlicer.java | 472 ++++++++++++++++++ .../relays/belt/BeltTileEntity.java | 15 +- .../relays/belt/item/BeltConnectorItem.java | 14 +- .../simibubi/create/events/ClientEvents.java | 2 + 7 files changed, 532 insertions(+), 48 deletions(-) create mode 100644 src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltSlicer.java diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltBlock.java b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltBlock.java index d72e079f6..45a30857e 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltBlock.java @@ -13,6 +13,7 @@ import com.simibubi.create.Create; import com.simibubi.create.content.contraptions.base.HorizontalKineticBlock; import com.simibubi.create.content.contraptions.base.KineticTileEntity; import com.simibubi.create.content.contraptions.processing.EmptyingByBasin; +import com.simibubi.create.content.contraptions.relays.belt.BeltSlicer.Feedback; import com.simibubi.create.content.contraptions.relays.belt.BeltTileEntity.CasingType; import com.simibubi.create.content.contraptions.relays.belt.transport.BeltMovementHandler.TransportedEntityInfo; import com.simibubi.create.content.contraptions.relays.belt.transport.BeltTunnelInteractionHandler; @@ -96,7 +97,8 @@ public class BeltBlock extends HorizontalKineticBlock implements ITE getDrops(BlockState state, net.minecraft.loot.LootContext.Builder builder) { @@ -241,6 +234,9 @@ public class BeltBlock extends HorizontalKineticBlock implements ITE { protected int getPackedLight(BeltTileEntity controller, float beltPos) { int segment = (int) Math.floor(beltPos) * 2; - - if (controller.light == null || segment >= controller.light.length) return 0; + if (controller.light == null || segment >= controller.light.length || segment < 0) + return 0; return (controller.light[segment + 1] << 20) | (controller.light[segment] << 4); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltSlicer.java b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltSlicer.java new file mode 100644 index 000000000..40d842bad --- /dev/null +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltSlicer.java @@ -0,0 +1,472 @@ +package com.simibubi.create.content.contraptions.relays.belt; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Optional; + +import com.simibubi.create.AllBlocks; +import com.simibubi.create.AllItems; +import com.simibubi.create.CreateClient; +import com.simibubi.create.content.contraptions.base.KineticTileEntity; +import com.simibubi.create.content.contraptions.relays.belt.BeltTileEntity.CasingType; +import com.simibubi.create.content.contraptions.relays.belt.item.BeltConnectorItem; +import com.simibubi.create.content.contraptions.relays.belt.transport.BeltInventory; +import com.simibubi.create.content.contraptions.relays.belt.transport.TransportedItemStack; +import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.VecHelper; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; +import net.minecraft.client.Minecraft; +import net.minecraft.client.world.ClientWorld; +import net.minecraft.entity.item.ItemEntity; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.DyeColor; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ActionResultType; +import net.minecraft.util.Direction; +import net.minecraft.util.Direction.Axis; +import net.minecraft.util.Hand; +import net.minecraft.util.SoundCategory; +import net.minecraft.util.SoundEvents; +import net.minecraft.util.math.AxisAlignedBB; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.BlockRayTraceResult; +import net.minecraft.util.math.RayTraceResult; +import net.minecraft.util.math.vector.Vector3d; +import net.minecraft.util.text.StringTextComponent; +import net.minecraft.util.text.TextFormatting; +import net.minecraft.world.World; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.api.distmarker.OnlyIn; +import net.minecraftforge.common.util.Constants.BlockFlags; + +public class BeltSlicer { + + public static class Feedback { + int color = 0xffffff; + AxisAlignedBB bb; + String langKey; + TextFormatting formatting = TextFormatting.WHITE; + } + + public static ActionResultType useWrench(BlockState state, World world, BlockPos pos, PlayerEntity player, + Hand handIn, BlockRayTraceResult hit, Feedback feedBack) { + BeltTileEntity controllerTE = BeltHelper.getControllerTE(world, pos); + if (controllerTE == null) + return ActionResultType.PASS; + if (state.getValue(BeltBlock.CASING) && hit.getDirection() != Direction.UP) + return ActionResultType.PASS; + if (state.getValue(BeltBlock.PART) == BeltPart.PULLEY && hit.getDirection() + .getAxis() != Axis.Y) + return ActionResultType.PASS; + + int beltLength = controllerTE.beltLength; + if (beltLength == 2) + return ActionResultType.FAIL; + + BlockPos beltVector = new BlockPos(BeltHelper.getBeltVector(state)); + BeltPart part = state.getValue(BeltBlock.PART); + List beltChain = BeltBlock.getBeltChain(world, controllerTE.getBlockPos()); + boolean creative = player.isCreative(); + + // Shorten from End + if (hoveringEnd(state, hit)) { + if (world.isClientSide) + return ActionResultType.SUCCESS; + + for (BlockPos blockPos : beltChain) { + BeltTileEntity belt = BeltHelper.getSegmentTE(world, blockPos); + if (belt == null) + continue; + belt.detachKinetics(); + belt.invalidateItemHandler(); + belt.beltLength = 0; + } + + BeltInventory inventory = controllerTE.inventory; + BlockPos next = part == BeltPart.END ? pos.subtract(beltVector) : pos.offset(beltVector); + BlockState replacedState = world.getBlockState(next); + BeltTileEntity segmentTE = BeltHelper.getSegmentTE(world, next); + KineticTileEntity.switchToBlockState(world, next, + state.setValue(BeltBlock.CASING, segmentTE != null && segmentTE.casing != CasingType.NONE)); + world.setBlock(pos, Blocks.AIR.defaultBlockState(), 3 | BlockFlags.IS_MOVING); + world.removeBlockEntity(pos); + world.levelEvent(2001, pos, Block.getId(state)); + + if (!creative && AllBlocks.BELT.has(replacedState) + && replacedState.getValue(BeltBlock.PART) == BeltPart.PULLEY) + player.inventory.placeItemBackInInventory(world, AllBlocks.SHAFT.asStack()); + + // Eject overshooting items + if (part == BeltPart.END && inventory != null) { + List toEject = new ArrayList<>(); + for (TransportedItemStack transportedItemStack : inventory.getTransportedItems()) + if (transportedItemStack.beltPosition > beltLength - 1) + toEject.add(transportedItemStack); + toEject.forEach(inventory::eject); + toEject.forEach(inventory.getTransportedItems()::remove); + } + + // Transfer items to new controller + if (part == BeltPart.START && segmentTE != null && inventory != null) { + controllerTE.inventory = null; + segmentTE.inventory = null; + segmentTE.setController(next); + for (TransportedItemStack transportedItemStack : inventory.getTransportedItems()) { + transportedItemStack.beltPosition -= 1; + if (transportedItemStack.beltPosition <= 0) { + ItemEntity entity = new ItemEntity(world, pos.getX() + .5f, pos.getY() + 11 / 16f, + pos.getZ() + .5f, transportedItemStack.stack); + entity.setDeltaMovement(Vector3d.ZERO); + entity.setDefaultPickUpDelay(); + entity.hurtMarked = true; + world.addFreshEntity(entity); + } else + segmentTE.getInventory() + .addItem(transportedItemStack); + } + } + + return ActionResultType.SUCCESS; + } + + BeltTileEntity segmentTE = BeltHelper.getSegmentTE(world, pos); + if (segmentTE == null) + return ActionResultType.PASS; + + // Split in half + int hitSegment = segmentTE.index; + Vector3d centerOf = VecHelper.getCenterOf(hit.getBlockPos()); + Vector3d subtract = hit.getLocation() + .subtract(centerOf); + boolean towardPositive = subtract.dot(Vector3d.atLowerCornerOf(beltVector)) > 0; + BlockPos next = !towardPositive ? pos.subtract(beltVector) : pos.offset(beltVector); + + if (hitSegment == 0 || hitSegment == 1 && !towardPositive) + return ActionResultType.FAIL; + if (hitSegment == controllerTE.beltLength - 1 || hitSegment == controllerTE.beltLength - 2 && towardPositive) + return ActionResultType.FAIL; + + // Look for shafts + if (!creative) { + int requiredShafts = 0; + if (!segmentTE.hasPulley()) + requiredShafts++; + BlockState other = world.getBlockState(next); + if (AllBlocks.BELT.has(other) && other.getValue(BeltBlock.PART) == BeltPart.MIDDLE) + requiredShafts++; + + int amountRetrieved = 0; + Search: while (true) { + for (int i = 0; i < player.inventory.getContainerSize(); ++i) { + if (amountRetrieved == requiredShafts) + break Search; + + ItemStack itemstack = player.inventory.getItem(i); + if (itemstack.isEmpty()) + continue; + int count = itemstack.getCount(); + if (AllBlocks.SHAFT.isIn(itemstack)) { + int taken = Math.min(count, requiredShafts - amountRetrieved); + if (taken == count) + player.inventory.setItem(i, ItemStack.EMPTY); + else + itemstack.shrink(taken); + amountRetrieved += taken; + } + } + + player.inventory.placeItemBackInInventory(world, AllBlocks.SHAFT.asStack(amountRetrieved)); + return ActionResultType.FAIL; + } + } + + if (!world.isClientSide) { + for (BlockPos blockPos : beltChain) { + BeltTileEntity belt = BeltHelper.getSegmentTE(world, blockPos); + if (belt == null) + continue; + belt.detachKinetics(); + belt.invalidateItemHandler(); + belt.beltLength = 0; + } + + BeltInventory inventory = controllerTE.inventory; + KineticTileEntity.switchToBlockState(world, pos, + state.setValue(BeltBlock.PART, towardPositive ? BeltPart.END : BeltPart.START)); + KineticTileEntity.switchToBlockState(world, next, world.getBlockState(next) + .setValue(BeltBlock.PART, towardPositive ? BeltPart.START : BeltPart.END)); + world.playSound(null, pos, SoundEvents.WOOL_HIT, + player == null ? SoundCategory.BLOCKS : SoundCategory.PLAYERS, 0.5F, 2.3F); + + // Transfer items to new controller + BeltTileEntity newController = towardPositive ? BeltHelper.getSegmentTE(world, next) : segmentTE; + if (newController != null && inventory != null) { + newController.inventory = null; + newController.setController(newController.getBlockPos()); + for (Iterator iterator = inventory.getTransportedItems() + .iterator(); iterator.hasNext();) { + TransportedItemStack transportedItemStack = iterator.next(); + float newPosition = transportedItemStack.beltPosition - hitSegment - (towardPositive ? 1 : 0); + if (newPosition <= 0) + continue; + transportedItemStack.beltPosition = newPosition; + iterator.remove(); + newController.getInventory() + .addItem(transportedItemStack); + } + } + } + + return ActionResultType.SUCCESS; + } + + public static ActionResultType useConnector(BlockState state, World world, BlockPos pos, PlayerEntity player, + Hand handIn, BlockRayTraceResult hit, Feedback feedBack) { + BeltTileEntity controllerTE = BeltHelper.getControllerTE(world, pos); + if (controllerTE == null) + return ActionResultType.PASS; + + int beltLength = controllerTE.beltLength; + if (beltLength == BeltConnectorItem.maxLength()) + return ActionResultType.FAIL; + + BlockPos beltVector = new BlockPos(BeltHelper.getBeltVector(state)); + BeltPart part = state.getValue(BeltBlock.PART); + Direction facing = state.getValue(BeltBlock.HORIZONTAL_FACING); + List beltChain = BeltBlock.getBeltChain(world, controllerTE.getBlockPos()); + boolean creative = player.isCreative(); + + if (!hoveringEnd(state, hit)) + return ActionResultType.PASS; + + BlockPos next = part == BeltPart.START ? pos.subtract(beltVector) : pos.offset(beltVector); + BeltTileEntity mergedController = null; + int mergedBeltLength = 0; + + // Merge Belts / Extend at End + BlockState nextState = world.getBlockState(next); + if (!nextState.getMaterial() + .isReplaceable()) { + if (!AllBlocks.BELT.has(nextState)) + return ActionResultType.FAIL; + if (!beltStatesCompatible(state, nextState)) + return ActionResultType.FAIL; + + mergedController = BeltHelper.getControllerTE(world, next); + if (mergedController == null) + return ActionResultType.FAIL; + if (mergedController.beltLength + beltLength > BeltConnectorItem.maxLength()) + return ActionResultType.FAIL; + + mergedBeltLength = mergedController.beltLength; + + if (!world.isClientSide) { + boolean flipBelt = facing != nextState.getValue(BeltBlock.HORIZONTAL_FACING); + Optional color = controllerTE.color; + for (BlockPos blockPos : BeltBlock.getBeltChain(world, mergedController.getBlockPos())) { + BeltTileEntity belt = BeltHelper.getSegmentTE(world, blockPos); + if (belt == null) + continue; + belt.detachKinetics(); + belt.invalidateItemHandler(); + belt.beltLength = 0; + belt.color = color; + if (flipBelt) + world.setBlock(blockPos, flipBelt(world.getBlockState(blockPos)), 3 | BlockFlags.IS_MOVING); + } + + // Reverse items + if (flipBelt && mergedController.inventory != null) { + List transportedItems = mergedController.inventory.getTransportedItems(); + for (TransportedItemStack transportedItemStack : transportedItems) { + transportedItemStack.beltPosition = mergedBeltLength - transportedItemStack.beltPosition; + transportedItemStack.prevBeltPosition = + mergedBeltLength - transportedItemStack.prevBeltPosition; + } + } + } + } + + if (!world.isClientSide) { + for (BlockPos blockPos : beltChain) { + BeltTileEntity belt = BeltHelper.getSegmentTE(world, blockPos); + if (belt == null) + continue; + belt.detachKinetics(); + belt.invalidateItemHandler(); + belt.beltLength = 0; + } + + BeltInventory inventory = controllerTE.inventory; + KineticTileEntity.switchToBlockState(world, pos, state.setValue(BeltBlock.PART, BeltPart.MIDDLE)); + + if (mergedController == null) { + // Attach at end + world.setBlock(next, state.setValue(BeltBlock.CASING, false), 3 | BlockFlags.IS_MOVING); + BeltTileEntity segmentTE = BeltHelper.getSegmentTE(world, next); + if (segmentTE != null) + segmentTE.color = controllerTE.color; + world.playSound(null, pos, SoundEvents.WOOL_PLACE, + player == null ? SoundCategory.BLOCKS : SoundCategory.PLAYERS, 0.5F, 1F); + + // Transfer items to new controller + if (part == BeltPart.START && segmentTE != null && inventory != null) { + segmentTE.setController(next); + for (TransportedItemStack transportedItemStack : inventory.getTransportedItems()) { + transportedItemStack.beltPosition += 1; + segmentTE.getInventory() + .addItem(transportedItemStack); + } + } + + } else { + // Merge with other + BeltInventory mergedInventory = mergedController.inventory; + world.playSound(null, pos, SoundEvents.WOOL_HIT, + player == null ? SoundCategory.BLOCKS : SoundCategory.PLAYERS, 0.5F, 1.3F); + BeltTileEntity segmentTE = BeltHelper.getSegmentTE(world, next); + KineticTileEntity.switchToBlockState(world, next, + state.setValue(BeltBlock.CASING, segmentTE != null && segmentTE.casing != CasingType.NONE) + .setValue(BeltBlock.PART, BeltPart.MIDDLE)); + + if (!creative) + player.inventory.placeItemBackInInventory(world, AllBlocks.SHAFT.asStack(2)); + + // Transfer items to other controller + BlockPos search = controllerTE.getBlockPos(); + for (int i = 0; i < 10000; i++) { + BlockState blockState = world.getBlockState(search); + if (!AllBlocks.BELT.has(blockState)) + break; + if (blockState.getValue(BeltBlock.PART) != BeltPart.START) { + search = search.subtract(beltVector); + continue; + } + + BeltTileEntity newController = BeltHelper.getSegmentTE(world, search); + + if (newController != controllerTE && inventory != null) { + newController.setController(search); + controllerTE.inventory = null; + for (TransportedItemStack transportedItemStack : inventory.getTransportedItems()) { + transportedItemStack.beltPosition += mergedBeltLength; + newController.getInventory() + .addItem(transportedItemStack); + } + } + + if (newController != mergedController && mergedInventory != null) { + newController.setController(search); + mergedController.inventory = null; + for (TransportedItemStack transportedItemStack : mergedInventory.getTransportedItems()) { + if (newController == controllerTE) + transportedItemStack.beltPosition += beltLength; + newController.getInventory() + .addItem(transportedItemStack); + } + } + + break; + } + } + } + return ActionResultType.SUCCESS; + } + + static boolean beltStatesCompatible(BlockState state, BlockState nextState) { + Direction facing1 = state.getValue(BeltBlock.HORIZONTAL_FACING); + BeltSlope slope1 = state.getValue(BeltBlock.SLOPE); + Direction facing2 = nextState.getValue(BeltBlock.HORIZONTAL_FACING); + BeltSlope slope2 = nextState.getValue(BeltBlock.SLOPE); + + switch (slope1) { + case UPWARD: + if (slope2 == BeltSlope.DOWNWARD) + return facing1 == facing2.getOpposite(); + return slope2 == slope1 && facing1 == facing2; + case DOWNWARD: + if (slope2 == BeltSlope.UPWARD) + return facing1 == facing2.getOpposite(); + return slope2 == slope1 && facing1 == facing2; + default: + return slope2 == slope1 && facing2.getAxis() == facing1.getAxis(); + } + } + + static BlockState flipBelt(BlockState state) { + Direction facing = state.getValue(BeltBlock.HORIZONTAL_FACING); + BeltSlope slope = state.getValue(BeltBlock.SLOPE); + BeltPart part = state.getValue(BeltBlock.PART); + + if (slope == BeltSlope.UPWARD) + state = state.setValue(BeltBlock.SLOPE, BeltSlope.DOWNWARD); + else if (slope == BeltSlope.DOWNWARD) + state = state.setValue(BeltBlock.SLOPE, BeltSlope.UPWARD); + + if (part == BeltPart.END) + state = state.setValue(BeltBlock.PART, BeltPart.START); + else if (part == BeltPart.START) + state = state.setValue(BeltBlock.PART, BeltPart.END); + + return state.setValue(BeltBlock.HORIZONTAL_FACING, facing.getOpposite()); + } + + static boolean hoveringEnd(BlockState state, BlockRayTraceResult hit) { + BeltPart part = state.getValue(BeltBlock.PART); + if (part == BeltPart.MIDDLE || part == BeltPart.PULLEY) + return false; + + Vector3d beltVector = BeltHelper.getBeltVector(state); + Vector3d centerOf = VecHelper.getCenterOf(hit.getBlockPos()); + Vector3d subtract = hit.getLocation() + .subtract(centerOf); + + return subtract.dot(beltVector) > 0 == (part == BeltPart.END); + } + + @OnlyIn(Dist.CLIENT) + public static void tickHoveringInformation() { + Minecraft mc = Minecraft.getInstance(); + RayTraceResult target = mc.hitResult; + if (target == null || !(target instanceof BlockRayTraceResult)) + return; + + BlockRayTraceResult result = (BlockRayTraceResult) target; + ClientWorld world = mc.level; + BlockPos pos = result.getBlockPos(); + BlockState state = world.getBlockState(pos); + ItemStack held = mc.player.getItemInHand(Hand.MAIN_HAND); + ItemStack heldOffHand = mc.player.getItemInHand(Hand.OFF_HAND); + + if (mc.player.isShiftKeyDown()) + return; + if (!AllBlocks.BELT.has(state)) + return; + + Feedback feedback = new Feedback(); + + // TODO: Populate feedback in the methods for clientside + if (AllItems.WRENCH.isIn(held) || AllItems.WRENCH.isIn(heldOffHand)) + useWrench(state, world, pos, mc.player, Hand.MAIN_HAND, result, feedback); + else if (AllItems.BELT_CONNECTOR.isIn(held) || AllItems.BELT_CONNECTOR.isIn(heldOffHand)) + useConnector(state, world, pos, mc.player, Hand.MAIN_HAND, result, feedback); + else + return; + + if (feedback.langKey != null) + mc.player.displayClientMessage(Lang.translate(feedback.langKey) + .withStyle(feedback.formatting), true); + else + mc.player.displayClientMessage(new StringTextComponent(""), true); + + if (feedback.bb != null) + CreateClient.OUTLINER.chaseAABB("BeltSlicer", feedback.bb) + .lineWidth(1 / 16f) + .colored(feedback.color); + } + +} diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltTileEntity.java index 30ac4da87..a9a3d4c98 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltTileEntity.java @@ -223,8 +223,15 @@ public class BeltTileEntity extends KineticTileEntity implements ILightUpdateLis if (!isController()) controller = NBTUtil.readBlockPos(compound.getCompound("Controller")); trackerUpdateTag = compound; - beltLength = compound.getInt("Length"); index = compound.getInt("Index"); + int length = compound.getInt("Length"); + if (beltLength != length) { + beltLength = length; + if (level != null) + initializeLight(); + else + light = null; + } } if (isController()) @@ -516,6 +523,10 @@ public class BeltTileEntity extends KineticTileEntity implements ILightUpdateLis return getController().equals(((BeltTileEntity) target).getController()) ? 1 : 0; return 0; } + + public void invalidateItemHandler() { + itemHandler.invalidate(); + } @Override public boolean shouldRenderNormally() { @@ -524,7 +535,7 @@ public class BeltTileEntity extends KineticTileEntity implements ILightUpdateLis BlockState state = getBlockState(); return state != null && state.hasProperty(BeltBlock.PART) && state.getValue(BeltBlock.PART) == BeltPart.START; } - + @Override public boolean onLightUpdate(IBlockDisplayReader world, LightType type, GridAlignedBB changed) { if (this.remove) { diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/item/BeltConnectorItem.java b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/item/BeltConnectorItem.java index e9f63918c..45507b9fd 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/item/BeltConnectorItem.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/item/BeltConnectorItem.java @@ -15,6 +15,7 @@ import com.simibubi.create.content.contraptions.relays.elementary.AbstractShaftB import com.simibubi.create.content.contraptions.relays.elementary.ShaftBlock; import com.simibubi.create.foundation.advancement.AllTriggers; import com.simibubi.create.foundation.config.AllConfigs; +import com.simibubi.create.foundation.utility.VecHelper; import net.minecraft.block.BlockState; import net.minecraft.entity.player.PlayerEntity; @@ -31,6 +32,8 @@ import net.minecraft.util.Direction; import net.minecraft.util.Direction.Axis; import net.minecraft.util.Direction.AxisDirection; import net.minecraft.util.NonNullList; +import net.minecraft.util.SoundCategory; +import net.minecraft.util.SoundEvents; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; @@ -118,6 +121,8 @@ public class BeltConnectorItem extends BlockItem { } public static void createBelts(World world, BlockPos start, BlockPos end) { + world.playSound(null, new BlockPos(VecHelper.getCenterOf(start.offset(end)) + .scale(.5f)), SoundEvents.WOOL_PLACE, SoundCategory.BLOCKS, 0.5F, 1F); BeltSlope slope = getSlopeBetween(start, end); Direction facing = getFacingFromTo(start, end); @@ -152,8 +157,8 @@ public class BeltConnectorItem extends BlockItem { if (diff.getX() == 0 && diff.getZ() == 0) axisDirection = diff.getY() > 0 ? AxisDirection.POSITIVE : AxisDirection.NEGATIVE; else - axisDirection = beltAxis.choose(diff.getX(), 0, diff.getZ()) > 0 ? AxisDirection.POSITIVE - : AxisDirection.NEGATIVE; + axisDirection = + beltAxis.choose(diff.getX(), 0, diff.getZ()) > 0 ? AxisDirection.POSITIVE : AxisDirection.NEGATIVE; return Direction.get(axisDirection, beltAxis); } @@ -169,7 +174,8 @@ public class BeltConnectorItem extends BlockItem { return BeltSlope.HORIZONTAL; } - private static List getBeltChainBetween(BlockPos start, BlockPos end, BeltSlope slope, Direction direction) { + private static List getBeltChainBetween(BlockPos start, BlockPos end, BeltSlope slope, + Direction direction) { List positions = new LinkedList<>(); int limit = 1000; BlockPos current = start; @@ -249,7 +255,7 @@ public class BeltConnectorItem extends BlockItem { } - protected static Integer maxLength() { + public static Integer maxLength() { return AllConfigs.SERVER.kinetics.maxBeltLength.get(); } diff --git a/src/main/java/com/simibubi/create/events/ClientEvents.java b/src/main/java/com/simibubi/create/events/ClientEvents.java index 8e666c35b..c25d99b98 100644 --- a/src/main/java/com/simibubi/create/events/ClientEvents.java +++ b/src/main/java/com/simibubi/create/events/ClientEvents.java @@ -24,6 +24,7 @@ import com.simibubi.create.content.contraptions.components.turntable.TurntableHa import com.simibubi.create.content.contraptions.goggles.GoggleOverlayRenderer; import com.simibubi.create.content.contraptions.goggles.IHaveGoggleInformation; import com.simibubi.create.content.contraptions.itemAssembly.SequencedAssemblyRecipe; +import com.simibubi.create.content.contraptions.relays.belt.BeltSlicer; import com.simibubi.create.content.contraptions.relays.belt.item.BeltConnectorHandler; import com.simibubi.create.content.curiosities.armor.CopperBacktankArmorLayer; import com.simibubi.create.content.curiosities.tools.BlueprintOverlayRenderer; @@ -125,6 +126,7 @@ public class ClientEvents { // ScreenOpener.tick(); ServerSpeedProvider.clientTick(); BeltConnectorHandler.tick(); + BeltSlicer.tickHoveringInformation(); FilteringRenderer.tick(); LinkRenderer.tick(); ScrollValueRenderer.tick(); From 6800c24c589e53c140d16abef89389858afad58b Mon Sep 17 00:00:00 2001 From: PepperBell <44146161+PepperCode1@users.noreply.github.com> Date: Sun, 5 Sep 2021 21:14:41 -0700 Subject: [PATCH 48/79] Fix command permission requirements - Commands glue, highlight, and replaceInCommandBlocks now require OP level 2 instead of 0 --- .../com/simibubi/create/foundation/command/AllCommands.java | 3 ++- .../create/foundation/command/FabulousWarningCommand.java | 2 +- .../com/simibubi/create/foundation/command/GlueCommand.java | 2 +- .../create/foundation/command/HighlightCommand.java | 2 +- .../simibubi/create/foundation/command/HighlightPacket.java | 6 +++--- .../foundation/command/ReplaceInCommandBlocksCommand.java | 2 +- 6 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/simibubi/create/foundation/command/AllCommands.java b/src/main/java/com/simibubi/create/foundation/command/AllCommands.java index e8534da84..2e5aa57b7 100644 --- a/src/main/java/com/simibubi/create/foundation/command/AllCommands.java +++ b/src/main/java/com/simibubi/create/foundation/command/AllCommands.java @@ -14,7 +14,7 @@ import net.minecraft.entity.player.PlayerEntity; public class AllCommands { - public static Predicate sourceIsPlayer = (cs) -> cs.getEntity() instanceof PlayerEntity; + public static final Predicate SOURCE_IS_PLAYER = cs -> cs.getEntity() instanceof PlayerEntity; public static void register(CommandDispatcher dispatcher) { @@ -88,4 +88,5 @@ public class AllCommands { } return builder.build(); } + } diff --git a/src/main/java/com/simibubi/create/foundation/command/FabulousWarningCommand.java b/src/main/java/com/simibubi/create/foundation/command/FabulousWarningCommand.java index c85496e46..f8cd53f06 100644 --- a/src/main/java/com/simibubi/create/foundation/command/FabulousWarningCommand.java +++ b/src/main/java/com/simibubi/create/foundation/command/FabulousWarningCommand.java @@ -13,7 +13,7 @@ public class FabulousWarningCommand { public static ArgumentBuilder register() { return Commands.literal("dismissFabulousWarning") - .requires(AllCommands.sourceIsPlayer) + .requires(AllCommands.SOURCE_IS_PLAYER) .executes(ctx -> { ServerPlayerEntity player = ctx.getSource() .getPlayerOrException(); diff --git a/src/main/java/com/simibubi/create/foundation/command/GlueCommand.java b/src/main/java/com/simibubi/create/foundation/command/GlueCommand.java index c3535e5a4..68cc8bc1b 100644 --- a/src/main/java/com/simibubi/create/foundation/command/GlueCommand.java +++ b/src/main/java/com/simibubi/create/foundation/command/GlueCommand.java @@ -13,7 +13,7 @@ import net.minecraft.world.server.ServerWorld; public class GlueCommand { public static ArgumentBuilder register() { return Commands.literal("glue") - .requires(cs -> cs.hasPermission(0)) + .requires(cs -> cs.hasPermission(2)) .then(Commands.argument("pos", BlockPosArgument.blockPos()) //.then(Commands.argument("direction", EnumArgument.enumArgument(Direction.class)) .executes(ctx -> { diff --git a/src/main/java/com/simibubi/create/foundation/command/HighlightCommand.java b/src/main/java/com/simibubi/create/foundation/command/HighlightCommand.java index 44dc55900..44604195a 100644 --- a/src/main/java/com/simibubi/create/foundation/command/HighlightCommand.java +++ b/src/main/java/com/simibubi/create/foundation/command/HighlightCommand.java @@ -28,7 +28,7 @@ public class HighlightCommand { public static ArgumentBuilder register() { return Commands.literal("highlight") - .requires(cs -> cs.hasPermission(0)) + .requires(cs -> cs.hasPermission(2)) .then(Commands.argument("pos", BlockPosArgument.blockPos()) .then(Commands.argument("players", EntityArgument.players()) .executes(ctx -> { diff --git a/src/main/java/com/simibubi/create/foundation/command/HighlightPacket.java b/src/main/java/com/simibubi/create/foundation/command/HighlightPacket.java index 61422c598..06cfddb9a 100644 --- a/src/main/java/com/simibubi/create/foundation/command/HighlightPacket.java +++ b/src/main/java/com/simibubi/create/foundation/command/HighlightPacket.java @@ -24,12 +24,12 @@ public class HighlightPacket extends SimplePacketBase { } public HighlightPacket(PacketBuffer buffer) { - this.pos = BlockPos.of(buffer.readLong()); + this.pos = buffer.readBlockPos(); } @Override public void write(PacketBuffer buffer) { - buffer.writeLong(pos.asLong()); + buffer.writeBlockPos(pos); } @Override @@ -55,6 +55,6 @@ public class HighlightPacket extends SimplePacketBase { .colored(0xEeEeEe) // .colored(0x243B50) .withFaceTexture(AllSpecialTextures.SELECTION); - } + } diff --git a/src/main/java/com/simibubi/create/foundation/command/ReplaceInCommandBlocksCommand.java b/src/main/java/com/simibubi/create/foundation/command/ReplaceInCommandBlocksCommand.java index 02f62bcc5..8bdd9b5ec 100644 --- a/src/main/java/com/simibubi/create/foundation/command/ReplaceInCommandBlocksCommand.java +++ b/src/main/java/com/simibubi/create/foundation/command/ReplaceInCommandBlocksCommand.java @@ -21,7 +21,7 @@ public class ReplaceInCommandBlocksCommand { public static ArgumentBuilder register() { return Commands.literal("replaceInCommandBlocks") - .requires(cs -> cs.hasPermission(0)) + .requires(cs -> cs.hasPermission(2)) .then(Commands.argument("begin", BlockPosArgument.blockPos()) .then(Commands.argument("end", BlockPosArgument.blockPos()) .then(Commands.argument("toReplace", StringArgumentType.string()) From 72a8e24cf743101dc4b36d3c6d2d10bd696267b1 Mon Sep 17 00:00:00 2001 From: Tooster Date: Mon, 13 Sep 2021 17:28:29 +0200 Subject: [PATCH 49/79] Extract CClient strings to constants (#2042) Making it uniform with other config classes using static string holders. --- .../create/foundation/config/CClient.java | 149 ++++++++++++------ 1 file changed, 105 insertions(+), 44 deletions(-) diff --git a/src/main/java/com/simibubi/create/foundation/config/CClient.java b/src/main/java/com/simibubi/create/foundation/config/CClient.java index bad04216f..a88b30df8 100644 --- a/src/main/java/com/simibubi/create/foundation/config/CClient.java +++ b/src/main/java/com/simibubi/create/foundation/config/CClient.java @@ -5,70 +5,73 @@ import com.simibubi.create.foundation.config.ui.ConfigAnnotations; public class CClient extends ConfigBase { public ConfigGroup client = group(0, "client", - "Client-only settings - If you're looking for general settings, look inside your worlds serverconfig folder!"); + Comments.client); + //no group - public ConfigBool tooltips = b(true, "enableTooltips", "Show item descriptions on Shift and controls on Ctrl."); - public ConfigBool enableOverstressedTooltip = - b(true, "enableOverstressedTooltip", "Display a tooltip when looking at overstressed components."); - public ConfigBool explainRenderErrors = - b(false, "explainRenderErrors", "Log a stack-trace when rendering issues happen within a moving contraption."); - public ConfigFloat fanParticleDensity = f(.5f, 0, 1, "fanParticleDensity"); - public ConfigFloat filterItemRenderDistance = f(10f, 1, "filterItemRenderDistance", "[in Blocks]", "Maximum Distance to the player at which items in Blocks' filter slots will be displayed"); - public ConfigBool rainbowDebug = - b(true, "enableRainbowDebug", "Show colourful debug information while the F3-Menu is open."); - public ConfigBool experimentalRendering = - b(true, "experimentalRendering", "Use modern OpenGL features to drastically increase performance."); + public ConfigBool tooltips = b(true, "enableTooltips", + Comments.tooltips); + public ConfigBool enableOverstressedTooltip = b(true, "enableOverstressedTooltip", + Comments.enableOverstressedTooltip); + public ConfigBool explainRenderErrors = b(false, "explainRenderErrors", + Comments.explainRenderErrors); + public ConfigFloat fanParticleDensity = f(.5f, 0, 1, "fanParticleDensity", + Comments.fanParticleDensity); + public ConfigFloat filterItemRenderDistance = f(10f, 1, "filterItemRenderDistance", Comments.filterItemRenderDistance); + public ConfigBool rainbowDebug = b(true, "enableRainbowDebug", + Comments.rainbowDebug); + public ConfigBool experimentalRendering = b(true, "experimentalRendering", + Comments.experimentalRendering); public ConfigInt maxContraptionLightVolume = i(16384, 0, Integer.MAX_VALUE, "maximumContraptionLightVolume", - "The maximum amount of blocks for which to try and calculate dynamic contraption lighting. Decrease if large contraption cause too much lag");//no group + Comments.maxContraptionLightVolume); + // no group public ConfigInt mainMenuConfigButtonRow = i(2, 0, 4, "mainMenuConfigButtonRow", - "Choose the menu row that the Create config button appears on in the main menu", - "Set to 0 to disable the button altogether"); + Comments.mainMenuConfigButtonRow); public ConfigInt mainMenuConfigButtonOffsetX = i(-4, Integer.MIN_VALUE, Integer.MAX_VALUE, "mainMenuConfigButtonOffsetX", - "Offset the Create config button in the main menu by this many pixels on the X axis", - "The sign (+/-) of this value determines what side of the row the button appears on (right/left)"); - + Comments.mainMenuConfigButtonOffsetX); public ConfigInt ingameMenuConfigButtonRow = i(3, 0, 5, "ingameMenuConfigButtonRow", - "Choose the menu row that the Create config button appears on in the in-game menu", - "Set to 0 to disable the button altogether"); + Comments.ingameMenuConfigButtonRow); public ConfigInt ingameMenuConfigButtonOffsetX = i(-4, Integer.MIN_VALUE, Integer.MAX_VALUE, "ingameMenuConfigButtonOffsetX", - "Offset the Create config button in the in-game menu by this many pixels on the X axis", - "The sign (+/-) of this value determines what side of the row the button appears on (right/left)"); - + Comments.ingameMenuConfigButtonOffsetX); public ConfigBool ignoreFabulousWarning = b(false, "ignoreFabulousWarning", - "Setting this to true will prevent Create from sending you a warning when playing with Fabulous graphics enabled"); + Comments.ignoreFabulousWarning); //overlay group - public ConfigGroup overlay = group(1, "goggleOverlay", "Settings for the Goggle Overlay"); + public ConfigGroup overlay = group(1, "goggleOverlay", + Comments.overlay); public ConfigInt overlayOffsetX = i(20, Integer.MIN_VALUE, Integer.MAX_VALUE, "overlayOffsetX", - "Offset the overlay from goggle- and hover- information by this many pixels on the X axis; Use /create overlay"); + Comments.overlayOffset); public ConfigInt overlayOffsetY = i(0, Integer.MIN_VALUE, Integer.MAX_VALUE, "overlayOffsetY", - "Offset the overlay from goggle- and hover- information by this many pixels on the Y axis; Use /create overlay"); - public ConfigBool overlayCustomColor = b(false, "customColorsOverlay", "Enable this to use your custom colors for the Goggle- and Hover- Overlay"); + Comments.overlayOffset); + public ConfigBool overlayCustomColor = b(false, "customColorsOverlay", + Comments.overlayCustomColor); public ConfigInt overlayBackgroundColor = i(0xf0_100010, Integer.MIN_VALUE, Integer.MAX_VALUE, "customBackgroundOverlay", - "The custom background color to use for the Goggle- and Hover- Overlays, if enabled", "[in Hex: #AaRrGgBb]", ConfigAnnotations.IntDisplay.HEX.asComment()); + Comments.overlayBackgroundColor); public ConfigInt overlayBorderColorTop = i(0x50_5000ff, Integer.MIN_VALUE, Integer.MAX_VALUE, "customBorderTopOverlay", - "The custom top color of the border gradient to use for the Goggle- and Hover- Overlays, if enabled", "[in Hex: #AaRrGgBb]", ConfigAnnotations.IntDisplay.HEX.asComment()); + Comments.overlayBorderColorTop); public ConfigInt overlayBorderColorBot = i(0x50_28007f, Integer.MIN_VALUE, Integer.MAX_VALUE, "customBorderBotOverlay", - "The custom bot color of the border gradient to use for the Goggle- and Hover- Overlays, if enabled", "[in Hex: #AaRrGgBb]", ConfigAnnotations.IntDisplay.HEX.asComment()); + Comments.overlayBorderColorBot); //placement assist group - public ConfigGroup placementAssist = group(1, "placementAssist", "Settings for the Placement Assist"); - public ConfigEnum placementIndicator = e(PlacementIndicatorSetting.TEXTURE, - "indicatorType", - "What indicator should be used when showing where the assisted placement ends up relative to your crosshair", - "Choose 'NONE' to disable the Indicator altogether"); - public ConfigFloat indicatorScale = - f(1.0f, 0f, "indicatorScale", "Change the size of the Indicator by this multiplier"); + public ConfigGroup placementAssist = group(1, "placementAssist", + Comments.placementAssist); + public ConfigEnum placementIndicator = e(PlacementIndicatorSetting.TEXTURE, "indicatorType", + Comments.placementIndicator); + public ConfigFloat indicatorScale = f(1.0f, 0f, "indicatorScale", + Comments.indicatorScale); //ponder group - public ConfigGroup ponder = group(1, "ponder", "Ponder settings"); - public ConfigBool comfyReading = - b(false, "comfyReading", "Slow down a ponder scene whenever there is text on screen."); + public ConfigGroup ponder = group(1, "ponder", + Comments.ponder); + public ConfigBool comfyReading = b(false, "comfyReading", + Comments.comfyReading); //sound group - public ConfigGroup sound = group(1, "sound", "Sound settings"); - public ConfigBool enableAmbientSounds = b(true, "enableAmbientSounds", "Make cogs rumble and machines clatter."); - public ConfigFloat ambientVolumeCap = f(.1f, 0, 1, "ambientVolumeCap", "Maximum volume modifier of Ambient noise"); + public ConfigGroup sound = group(1, "sound", + Comments.sound); + public ConfigBool enableAmbientSounds = b(true, "enableAmbientSounds", + Comments.enableAmbientSounds); + public ConfigFloat ambientVolumeCap = f(.1f, 0, 1, "ambientVolumeCap", + Comments.ambientVolumeCap); @Override public String getName() { @@ -78,4 +81,62 @@ public class CClient extends ConfigBase { public enum PlacementIndicatorSetting { TEXTURE, TRIANGLE, NONE } + + private static class Comments { + static String client = "Client-only settings - If you're looking for general settings, look inside your worlds serverconfig folder!"; + static String tooltips = "Show item descriptions on Shift and controls on Ctrl."; + static String enableOverstressedTooltip = "Display a tooltip when looking at overstressed components."; + static String explainRenderErrors = "Log a stack-trace when rendering issues happen within a moving contraption."; + static String fanParticleDensity = "Higher density means more spawned particles."; + static String[] filterItemRenderDistance = new String[]{ + "[in Blocks]", + "Maximum Distance to the player at which items in Blocks' filter slots will be displayed" + }; + static String rainbowDebug = "Show colourful debug information while the F3-Menu is open."; + static String experimentalRendering = "Use modern OpenGL features to drastically increase performance."; + static String maxContraptionLightVolume = "The maximum amount of blocks for which to try and calculate dynamic contraption lighting. Decrease if large contraption cause too much lag"; + static String[] mainMenuConfigButtonRow = new String[]{ + "Choose the menu row that the Create config button appears on in the main menu", + "Set to 0 to disable the button altogether" + }; + static String[] mainMenuConfigButtonOffsetX = new String[]{ + "Offset the Create config button in the main menu by this many pixels on the X axis", + "The sign (-/+) of this value determines what side of the row the button appears on (left/right)" + }; + static String[] ingameMenuConfigButtonRow = new String[]{ + "Choose the menu row that the Create config button appears on in the in-game menu", + "Set to 0 to disable the button altogether" + }; + static String[] ingameMenuConfigButtonOffsetX = new String[]{ + "Offset the Create config button in the in-game menu by this many pixels on the X axis", + "The sign (-/+) of this value determines what side of the row the button appears on (left/right)" + }; + static String ignoreFabulousWarning = "Setting this to true will prevent Create from sending you a warning when playing with Fabulous graphics enabled"; + static String overlay = "Settings for the Goggle Overlay"; + static String overlayOffset = "Offset the overlay from goggle- and hover- information by this many pixels on the respective axis; Use /create overlay"; + static String overlayCustomColor = "Enable this to use your custom colors for the Goggle- and Hover- Overlay"; + static String[] overlayBackgroundColor = new String[]{ + "The custom background color to use for the Goggle- and Hover- Overlays, if enabled", + "[in Hex: #AaRrGgBb]", ConfigAnnotations.IntDisplay.HEX.asComment() + }; + static String[] overlayBorderColorTop = new String[]{ + "The custom top color of the border gradient to use for the Goggle- and Hover- Overlays, if enabled", + "[in Hex: #AaRrGgBb]", ConfigAnnotations.IntDisplay.HEX.asComment() + }; + static String[] overlayBorderColorBot = new String[]{ + "The custom bot color of the border gradient to use for the Goggle- and Hover- Overlays, if enabled", + "[in Hex: #AaRrGgBb]", ConfigAnnotations.IntDisplay.HEX.asComment() + }; + static String placementAssist = "Settings for the Placement Assist"; + static String[] placementIndicator = new String[]{ + "What indicator should be used when showing where the assisted placement ends up relative to your crosshair", + "Choose 'NONE' to disable the Indicator altogether" + }; + static String indicatorScale = "Change the size of the Indicator by this multiplier"; + static String ponder = "Ponder settings"; + static String comfyReading = "Slow down a ponder scene whenever there is text on screen."; + static String sound = "Sound settings"; + static String enableAmbientSounds = "Make cogs rumble and machines clatter."; + static String ambientVolumeCap = "Maximum volume modifier of Ambient noise"; + } } From 2d3b1e36f98bc00fcb414fa6819871d363b2ec13 Mon Sep 17 00:00:00 2001 From: khj xiaogu <54445543+khjxiaogu@users.noreply.github.com> Date: Mon, 13 Sep 2021 23:30:31 +0800 Subject: [PATCH 50/79] Added Option to fill infinite resources (#2071) - Added fill infinite config option - Option to make hose pulley fill infinite sources --- .../contraptions/fluids/actors/FluidFillingBehaviour.java | 2 +- .../fluids/actors/FluidManipulationBehaviour.java | 6 +++++- .../java/com/simibubi/create/foundation/config/CFluids.java | 2 ++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/FluidFillingBehaviour.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/FluidFillingBehaviour.java index 7ac14a5e9..612b82201 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/FluidFillingBehaviour.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/FluidFillingBehaviour.java @@ -127,7 +127,7 @@ public class FluidFillingBehaviour extends FluidManipulationBehaviour { boolean evaporate = world.dimensionType() .ultraWarm() && fluid.is(FluidTags.WATER); - if (infinite || evaporate) { + if ((!fillInfinite() && infinite) || evaporate) { FluidState fluidState = world.getFluidState(rootPos); boolean equivalentTo = fluidState.getType() .isSame(fluid); diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/FluidManipulationBehaviour.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/FluidManipulationBehaviour.java index 69f013bc4..a417ef747 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/FluidManipulationBehaviour.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/FluidManipulationBehaviour.java @@ -90,7 +90,11 @@ public abstract class FluidManipulationBehaviour extends TileEntityBehaviour { protected int maxBlocks() { return AllConfigs.SERVER.fluids.hosePulleyBlockThreshold.get(); } - + + protected boolean fillInfinite() { + return AllConfigs.SERVER.fluids.fillInfinite.get(); + } + public void reset() { if (affectedArea != null) scheduleUpdatesInAffectedArea(); diff --git a/src/main/java/com/simibubi/create/foundation/config/CFluids.java b/src/main/java/com/simibubi/create/foundation/config/CFluids.java index ad8684da1..f0c3c251c 100644 --- a/src/main/java/com/simibubi/create/foundation/config/CFluids.java +++ b/src/main/java/com/simibubi/create/foundation/config/CFluids.java @@ -9,6 +9,7 @@ public class CFluids extends ConfigBase { public ConfigInt hosePulleyBlockThreshold = i(10000, -1, "hosePulleyBlockThreshold", Comments.blocks, Comments.toDisable, Comments.hosePulleyBlockThreshold); + public ConfigBool fillInfinite = b(false, "fillInfinite",Comments.fillInfinite); public ConfigInt hosePulleyRange = i(128, 1, "hosePulleyRange", Comments.blocks, Comments.hosePulleyRange); @Override @@ -28,6 +29,7 @@ public class CFluids extends ConfigBase { static String toDisable = "[-1 to disable this behaviour]"; static String hosePulleyBlockThreshold = "The minimum amount of fluid blocks the hose pulley needs to find before deeming it an infinite source."; + static String fillInfinite="Does hose pulley poor fluids to the world even if it is an infinite source?"; } } From 8df1394ab9285dd356bba4100ce0f85fac0cc0ff Mon Sep 17 00:00:00 2001 From: Clefal <1716976420@qq.com> Date: Mon, 13 Sep 2021 23:32:49 +0800 Subject: [PATCH 51/79] Updates to zh_cn.json by TUsama (#2100) --- .../resources/assets/create/lang/zh_cn.json | 679 ++++++------------ 1 file changed, 220 insertions(+), 459 deletions(-) diff --git a/src/main/resources/assets/create/lang/zh_cn.json b/src/main/resources/assets/create/lang/zh_cn.json index ce3ae9214..4880457e5 100644 --- a/src/main/resources/assets/create/lang/zh_cn.json +++ b/src/main/resources/assets/create/lang/zh_cn.json @@ -1,10 +1,6 @@ { - - - "_": "->------------------------] Game Elements [------------------------<-", - - "block.create.acacia_window": "金合欢窗户", - "block.create.acacia_window_pane": "金合欢窗户板", + "block.create.acacia_window": "金合欢木窗户", + "block.create.acacia_window_pane": "金合欢木窗户板", "block.create.adjustable_chain_gearshift": "可调节链式传动箱", "block.create.adjustable_crate": "可调节板条箱", "block.create.adjustable_pulse_repeater": "可调节脉冲中继器", @@ -26,8 +22,8 @@ "block.create.andesite_tunnel": "安山岩隧道", "block.create.basin": "工作盆", "block.create.belt": "传送带", - "block.create.birch_window": "白桦窗户", - "block.create.birch_window_pane": "白桦窗户板", + "block.create.birch_window": "白桦木窗户", + "block.create.birch_window_pane": "白桦木窗户板", "block.create.black_nixie_tube": "黑色辉光管", "block.create.black_sail": "黑色风帆", "block.create.black_seat": "黑色坐垫", @@ -56,12 +52,12 @@ "block.create.chiseled_weathered_limestone": "錾制风化石灰岩", "block.create.chocolate": "巧克力", "block.create.chute": "溜槽", - "block.create.clockwork_bearing": "时钟轴承", + "block.create.clockwork_bearing": "发条轴承", "block.create.clutch": "离合器", "block.create.cogwheel": "齿轮", "block.create.content_observer": "物品侦测器", "block.create.controller_rail": "控制铁轨", - "block.create.copper_backtank": "铜制背罐", + "block.create.copper_backtank": "Copper Backtank", "block.create.copper_block": "铜块", "block.create.copper_casing": "铜机壳", "block.create.copper_ore": "铜矿石", @@ -71,8 +67,8 @@ "block.create.creative_crate": "创造板条箱", "block.create.creative_fluid_tank": "创造流体储罐", "block.create.creative_motor": "创造马达", - "block.create.crimson_window": "绯红窗户", - "block.create.crimson_window_pane": "绯红窗户板", + "block.create.crimson_window": "绯红木窗户", + "block.create.crimson_window_pane": "绯红木窗户板", "block.create.crushing_wheel": "粉碎轮", "block.create.crushing_wheel_controller": "粉碎轮控制器", "block.create.cuckoo_clock": "布谷鸟闹钟", @@ -192,14 +188,14 @@ "block.create.green_seat": "绿色坐垫", "block.create.green_valve_handle": "绿色阀门手轮", "block.create.hand_crank": "手摇曲柄", - "block.create.haunted_bell": "怪异钟", + "block.create.haunted_bell": "森魂钟", "block.create.honey": "蜂蜜", "block.create.horizontal_framed_glass": "竖直边框玻璃", "block.create.horizontal_framed_glass_pane": "竖直边框玻璃板", "block.create.hose_pulley": "软管滑轮", "block.create.item_drain": "分液池", - "block.create.jungle_window": "丛林窗户", - "block.create.jungle_window_pane": "丛林窗户板", + "block.create.jungle_window": "丛林木窗户", + "block.create.jungle_window_pane": "丛林木窗户板", "block.create.large_cogwheel": "大齿轮", "block.create.layered_andesite": "层叠安山岩", "block.create.layered_dark_scoria": "层叠深色熔渣", @@ -255,15 +251,15 @@ "block.create.metal_bracket": "金属支架", "block.create.millstone": "石磨", "block.create.minecart_anchor": "矿车锚", - "block.create.mossy_andesite": "生苔安山岩", - "block.create.mossy_dark_scoria": "生苔深色熔渣", - "block.create.mossy_diorite": "生苔闪长岩", - "block.create.mossy_dolomite": "生苔白云岩", - "block.create.mossy_gabbro": "生苔辉长岩", - "block.create.mossy_granite": "生苔花岗岩", - "block.create.mossy_limestone": "生苔石灰岩", - "block.create.mossy_scoria": "生苔熔渣", - "block.create.mossy_weathered_limestone": "生苔风化石灰岩", + "block.create.mossy_andesite": "覆苔安山岩", + "block.create.mossy_dark_scoria": "覆苔深色熔渣", + "block.create.mossy_diorite": "覆苔闪长岩", + "block.create.mossy_dolomite": "覆苔白云岩", + "block.create.mossy_gabbro": "覆苔辉长岩", + "block.create.mossy_granite": "覆苔花岗岩", + "block.create.mossy_limestone": "覆苔石灰岩", + "block.create.mossy_scoria": "覆苔熔渣", + "block.create.mossy_weathered_limestone": "覆苔风化石灰岩", "block.create.mysterious_cuckoo_clock": "布谷鸟闹钟", "block.create.natural_scoria": "天然熔渣", "block.create.nixie_tube": "辉光管", @@ -275,15 +271,15 @@ "block.create.orange_valve_handle": "橙色阀门手轮", "block.create.ornate_iron_window": "华丽铁窗户", "block.create.ornate_iron_window_pane": "华丽铁窗户板", - "block.create.overgrown_andesite": "生草安山岩", - "block.create.overgrown_dark_scoria": "生草深色熔渣", - "block.create.overgrown_diorite": "生草闪长岩", - "block.create.overgrown_dolomite": "生草白云岩", - "block.create.overgrown_gabbro": "生草辉长岩", - "block.create.overgrown_granite": "生草花岗岩", - "block.create.overgrown_limestone": "生草石灰岩", - "block.create.overgrown_scoria": "生草熔渣", - "block.create.overgrown_weathered_limestone": "生草风化石灰岩", + "block.create.overgrown_andesite": "覆草安山岩", + "block.create.overgrown_dark_scoria": "覆草深色熔渣", + "block.create.overgrown_diorite": "覆草闪长岩", + "block.create.overgrown_dolomite": "覆草白云岩", + "block.create.overgrown_gabbro": "覆草辉长岩", + "block.create.overgrown_granite": "覆草花岗岩", + "block.create.overgrown_limestone": "覆草石灰岩", + "block.create.overgrown_scoria": "覆草熔渣", + "block.create.overgrown_weathered_limestone": "覆草风化石灰岩", "block.create.paved_andesite": "安山岩铺路石", "block.create.paved_andesite_slab": "安山岩铺路石台阶", "block.create.paved_andesite_stairs": "安山岩铺路石楼梯", @@ -321,7 +317,7 @@ "block.create.paved_weathered_limestone_stairs": "风化石灰岩铺路石楼梯", "block.create.paved_weathered_limestone_wall": "风化石灰岩铺路石墙", "block.create.peculiar_bell": "奇异钟", - "block.create.pink_nixie_tube": "粉色辉光管", + "block.create.pink_nixie_tube": "粉红色辉光管", "block.create.pink_sail": "粉红色风帆", "block.create.pink_seat": "粉红色坐垫", "block.create.pink_valve_handle": "粉红色阀门手轮", @@ -385,7 +381,7 @@ "block.create.scoria_cobblestone_stairs": "熔渣圆石楼梯", "block.create.scoria_cobblestone_wall": "熔渣圆石墙", "block.create.scoria_pillar": "竖纹熔渣", - "block.create.secondary_linear_chassis": "机壳底盘2号", + "block.create.secondary_linear_chassis": "机壳底盘 2 号", "block.create.sequenced_gearshift": "可编程齿轮箱", "block.create.shadow_steel_casing": "暗影机壳", "block.create.shaft": "传动杆", @@ -393,8 +389,8 @@ "block.create.smart_fluid_pipe": "智能流体管道", "block.create.speedometer": "速度表", "block.create.spout": "注液器", - "block.create.spruce_window": "云杉窗户", - "block.create.spruce_window_pane": "云杉窗户板", + "block.create.spruce_window": "云杉木窗户", + "block.create.spruce_window_pane": "云杉木窗户板", "block.create.sticker": "黏着器", "block.create.sticky_mechanical_piston": "黏性动力活塞", "block.create.stockpile_switch": "存量转换器", @@ -430,10 +426,8 @@ "block.create.yellow_valve_handle": "黄色阀门手轮", "block.create.zinc_block": "锌块", "block.create.zinc_ore": "锌矿石", - "enchantment.create.capacity": "扩容", "enchantment.create.potato_recovery": "土豆回收", - "entity.create.contraption": "装置", "entity.create.crafting_blueprint": "合成蓝图", "entity.create.gantry_contraption": "起重机装置", @@ -441,11 +435,8 @@ "entity.create.seat": "坐垫", "entity.create.stationary_contraption": "固定装置", "entity.create.super_glue": "强力胶", - - "fluid.create.milk": "牛奶", "fluid.create.potion": "药水", "fluid.create.tea": "茶", - "item.create.andesite_alloy": "安山合金", "item.create.attribute_filter": "属性过滤器", "item.create.bar_of_chocolate": "巧克力棒", @@ -468,7 +459,7 @@ "item.create.copper_sheet": "铜板", "item.create.crafter_slot_cover": "合成器盖板", "item.create.crafting_blueprint": "合成蓝图", - "item.create.creative_cake": "创造烈焰蛋糕", + "item.create.creative_blaze_cake": "创造模式烈焰蛋糕", "item.create.crushed_aluminum_ore": "粉碎铝矿石", "item.create.crushed_brass": "粉碎黄铜", "item.create.crushed_copper_ore": "粉碎铜矿石", @@ -499,7 +490,7 @@ "item.create.honeyed_apple": "蜜渍苹果", "item.create.incomplete_cogwheel": "齿轮(半成品)", "item.create.incomplete_large_cogwheel": "大齿轮(半成品)", - "item.create.incomplete_precision_mechanism": "精密机构(半成品)", + "item.create.incomplete_precision_mechanism": "精密构件(半成品)", "item.create.iron_sheet": "铁板", "item.create.linked_controller": "无线红石遥控器", "item.create.minecart_contraption": "装配过的矿车", @@ -507,7 +498,7 @@ "item.create.polished_rose_quartz": "磨制玫瑰石英", "item.create.potato_cannon": "土豆加农炮", "item.create.powdered_obsidian": "黑曜石粉末", - "item.create.precision_mechanism": "精密机构", + "item.create.precision_mechanism": "精密构件", "item.create.propeller": "扇叶", "item.create.red_sand_paper": "红沙砂纸", "item.create.refined_radiance": "光辉石", @@ -526,23 +517,19 @@ "item.create.wrench": "扳手", "item.create.zinc_ingot": "锌锭", "item.create.zinc_nugget": "锌粒", - - - "_": "->------------------------] Advancements [------------------------<-", - "advancement.create.root": "欢迎来到机械动力", - "advancement.create.root.desc": "是时候来制作一些超赞的机械结构了!", - "advancement.create.andesite_alloy": "头韵狂魔(Alliterations Aplenty)", + "advancement.create.root.desc": "是时候来制作一些超赞的机械装置了!", + "advancement.create.andesite_alloy": "头韵狂魔(Alliterations Aplenty)", "advancement.create.andesite_alloy.desc": "机械动力的材料名字都很古怪,安山合金(Andesite Alloy)就是其中之一。", "advancement.create.its_alive": "鲜活的机械生命", - "advancement.create.its_alive.desc": "首次激活齿轮结构的旋转。", + "advancement.create.its_alive.desc": "首次激活动力学组件。", "advancement.create.shifting_gears": "换挡,加速,起飞!", - "advancement.create.shifting_gears.desc": "将大齿轮连接到小齿轮上,可以改变结构的转速。", + "advancement.create.shifting_gears.desc": "将大齿轮连接到小齿轮上,可以改变装置的转速。", "advancement.create.overstressed": "过载", "advancement.create.overstressed.desc": "首次使能量网络过载。", "advancement.create.belt": "海带传动", "advancement.create.belt.desc": "用传送带连接两个传动杆", - "advancement.create.tunnel": "找掩护!", + "advancement.create.tunnel": "躲起来!", "advancement.create.tunnel.desc": "用隧道装饰传送带。", "advancement.create.splitter_tunnel": "分而治之", "advancement.create.splitter_tunnel.desc": "用黄铜隧道设计一个分流器。", @@ -559,7 +546,7 @@ "advancement.create.fan_lava": "地热取暖", "advancement.create.fan_lava.desc": "被熔炼气流烤的酥脆。", "advancement.create.fan_water": "奇妙的洗涤流程", - "advancement.create.fan_water.desc": "被洗涤气流洗了个澡。", + "advancement.create.fan_water.desc": "在洗涤气流里洗了个澡。", "advancement.create.fan_smoke": "动力风箱", "advancement.create.fan_smoke.desc": "被烟熏气流熏得满脸黑。", "advancement.create.wrench": "细节调整", @@ -570,25 +557,25 @@ "advancement.create.speedometer.desc": "放置一个速度表,并且带上工程师护目镜来读取速度数据", "advancement.create.stressometer": "精密的应力控制", "advancement.create.stressometer.desc": "放置一个应力表,并且带上工程师护目镜来读取应力数据", - "advancement.create.aesthetics": "美观,即是一切!", + "advancement.create.aesthetics": "什么叫美学,这就叫美学!", "advancement.create.aesthetics.desc": "将支架放在传动杆,管道和齿轮上。", - "advancement.create.reinforced": "Boom~ 加强!", + "advancement.create.reinforced": "什么叫强化,这就叫强化!", "advancement.create.reinforced.desc": "在传动杆,管道和传送带上使用机壳加固。", - "advancement.create.water_wheel": "治水", + "advancement.create.water_wheel": "掌控水流", "advancement.create.water_wheel.desc": "放置一个水车并且让它开始旋转", - "advancement.create.chocolate_wheel": "味美动力", + "advancement.create.chocolate_wheel": "美味动力", "advancement.create.chocolate_wheel.desc": "用熔融巧克力驱动水车。", "advancement.create.lava_wheel": "风火轮", - "advancement.create.lava_wheel.desc": "它本不应该起作用的......", - "advancement.create.cuckoo": "到点了吗?", - "advancement.create.cuckoo.desc": "目睹布谷鸟钟宣布就寝时间。", + "advancement.create.lava_wheel.desc": "按理说根本不可能运转得起来。", + "advancement.create.cuckoo": "到点儿了吗?", + "advancement.create.cuckoo.desc": "目睹布谷鸟钟提醒你该睡觉觉了。", "advancement.create.millstone": "便携式粉碎机", "advancement.create.millstone.desc": "放置一个石磨并且为其供能", "advancement.create.windmill": "微风吹拂", "advancement.create.windmill.desc": "组装风车。", "advancement.create.maxed_windmill": "强风肆虐", "advancement.create.maxed_windmill.desc": "组装最大强度的风车。", - "advancement.create.andesite_casing": "安山纪元", + "advancement.create.andesite_casing": "安山时代", "advancement.create.andesite_casing.desc": "使用安山合金和木头来合成一个安山机壳", "advancement.create.mechanical_drill": "坚如磐石,势如破竹", "advancement.create.mechanical_drill.desc": "放置一个动力钻头并且为其供能", @@ -610,13 +597,13 @@ "advancement.create.compact.desc": "使用辊压机在工作盆中压缩一些物品", "advancement.create.brass": "真正的合金", "advancement.create.brass.desc": "使用粉碎锌矿石和粉碎铜矿石来制作粉碎黄铜", - "advancement.create.brass_casing": "黄铜纪元", + "advancement.create.brass_casing": "黄铜时代", "advancement.create.brass_casing.desc": "用黄铜和木头制作一个黄铜机壳", - "advancement.create.copper_casing": "铜之纪元", + "advancement.create.copper_casing": "铜器时代", "advancement.create.copper_casing.desc": "使用铜和木头制作一个铜制机壳", "advancement.create.spout": "哗啦啦", "advancement.create.spout.desc": "观察注液器灌满物品。", - "advancement.create.spout_potion": "全球啤酒厂", + "advancement.create.spout_potion": "环球酿造厂", "advancement.create.spout_potion.desc": "观察注液器注入药水到玻璃瓶。", "advancement.create.chocolate": "幻想世界", "advancement.create.chocolate.desc": "获取一桶熔融巧克力。", @@ -632,29 +619,29 @@ "advancement.create.pipe_spill.desc": "观察管道的开口端将流体排放或放置到世界中。", "advancement.create.hose_pulley": "工业泄漏", "advancement.create.hose_pulley.desc": "放下一个软管滑轮,观察它排干或填充一大片液体。", - "advancement.create.infinite_water": "排干海洋", + "advancement.create.infinite_water": "抽干大海", "advancement.create.infinite_water.desc": "从大到足以被认为是无限的水源中抽水。", "advancement.create.infinite_lava": "汲取行星核心", "advancement.create.infinite_lava.desc": "从广阔的熔岩湖中抽出熔岩。", - "advancement.create.infinite_chocolate": "幻想沉溺", + "advancement.create.infinite_chocolate": "美梦不饶人", "advancement.create.infinite_chocolate.desc": "从大到足以被被视为无限的巧克力海中抽取巧克力。", "advancement.create.crafter": "自动化装配", "advancement.create.crafter.desc": "放置一些机械合成台并且为其供能", "advancement.create.clockwork_bearing": "巧械时钟", - "advancement.create.clockwork_bearing.desc": "组装安装在发条轴承上的结构。", + "advancement.create.clockwork_bearing.desc": "组装安装在发条轴承上的装置。", "advancement.create.nixie_tube": "花样符号", "advancement.create.nixie_tube.desc": "获取并放下一对辉光管。", "advancement.create.deployer": "我就指着你了咋地?", "advancement.create.deployer.desc": "放置并且功能一个机械手。这可是你右手的完美复制品", - "advancement.create.speed_controller": "工程师讨厌他!", + "advancement.create.speed_controller": "工程师的眼中钉", "advancement.create.speed_controller.desc": "放置一个转速控制器,这是换档的终极装置。", "advancement.create.flywheel": "工厂之心", "advancement.create.flywheel.desc": "将引擎成功连接到飞轮。", - "advancement.create.overstress_flywheel": "高压", + "advancement.create.overstress_flywheel": "压力山大", "advancement.create.overstress_flywheel.desc": "过载熔炉引擎。", "advancement.create.precision_mechanism": "高新技术", - "advancement.create.precision_mechanism.desc": "装配一个精密机构。", - "advancement.create.mechanical_arm": "忙碌的手!", + "advancement.create.precision_mechanism.desc": "装配一个精密构件。", + "advancement.create.mechanical_arm": "飞转的手!", "advancement.create.mechanical_arm.desc": "制作机械臂,选择输入和输出,放置并给予它动力,然后看着它为你完成所有工作。", "advancement.create.musical_arm": "没人能在我的 BGM 里打败我!", "advancement.create.musical_arm.desc": "使用动力臂播放唱片。", @@ -674,7 +661,7 @@ "advancement.create.shadow_steel.desc": "制作一些暗影钢", "advancement.create.refined_radiance": "明亮而启灵", "advancement.create.refined_radiance.desc": "制作一个光辉石", - "advancement.create.chromatic_age": "异彩纪元", + "advancement.create.chromatic_age": "异彩时代", "advancement.create.chromatic_age.desc": "创造出光与影的机壳。", "advancement.create.wand_of_symmetry": "简单的镜面几何学", "advancement.create.wand_of_symmetry.desc": "制作一个对称之杖", @@ -686,13 +673,8 @@ "advancement.create.dual_extendo_grip.desc": "双持伸缩机械手,超人般的触碰距离。", "advancement.create.eob": "Beta 版结束", "advancement.create.eob.desc": "期待未来会有更多的内容。<3", - - - "_": "->------------------------] UI & Messages [------------------------<-", - "itemGroup.create.base": "机械动力", - "itemGroup.create.palettes": "机械动力建筑方块", - + "itemGroup.create.palettes": "机械动力丨建筑方块", "death.attack.create.crush": "%1$s被压扁了", "death.attack.create.crush.player": "%1$s被%2$s推进了粉碎机", "death.attack.create.fan_fire": "%1$s试图接受热风的洗礼", @@ -707,10 +689,8 @@ "death.attack.create.potato_cannon.item": "%1$s被%2$s用%3$s射死了", "death.attack.create.cuckoo_clock_explosion": "%1$s被布谷鸟钟炸得粉身碎骨", "death.attack.create.cuckoo_clock_explosion.player": "%1$s被布谷鸟钟炸得粉身碎骨", - "create.block.deployer.damage_source_name": "二五仔机械手", "create.block.cart_assembler.invalid": "请将矿车装配器放置在铁轨上", - "create.menu.return": "返回上一级菜单", "create.menu.configure": "配置...", "create.menu.ponder_index": "思索内容清单", @@ -718,7 +698,6 @@ "create.menu.project_page": "在CurseForge上查看", "create.menu.report_bugs": "报告Create的漏洞", "create.menu.support": "支持我们", - "create.recipe.crushing": "粉碎", "create.recipe.milling": "研磨", "create.recipe.fan_washing": "批量洗涤", @@ -729,13 +708,13 @@ "create.recipe.fan_blasting.fan": "在熔岩后放置鼓风机", "create.recipe.pressing": "金属压片", "create.recipe.mixing": "混合搅拌", - "create.recipe.deploying": "自动使用", + "create.recipe.deploying": "使用", "create.recipe.automatic_shapeless": "自动搅拌", "create.recipe.automatic_brewing": "自动酿造", "create.recipe.packing": "压块塑形", "create.recipe.automatic_packing": "自动打包", - "create.recipe.sawing": "板材切割", - "create.recipe.mechanical_crafting": "自动合成", + "create.recipe.sawing": "切割", + "create.recipe.mechanical_crafting": "动力合成", "create.recipe.automatic_shaped": "自动合成", "create.recipe.block_cutting": "方块切割", "create.recipe.wood_cutting": "木材切割", @@ -743,21 +722,20 @@ "create.recipe.mystery_conversion": "神秘转化", "create.recipe.spout_filling": "注液", "create.recipe.draining": "分液", - "create.recipe.sequenced_assembly": "流水线装配", + "create.recipe.sequenced_assembly": "序列组装", "create.recipe.assembly.next": "下一步:%1$s", "create.recipe.assembly.step": "第%1$s步:", "create.recipe.assembly.progress": "组装进度:%1$s/%2$s", - "create.recipe.assembly.pressing": "用辊压机辊压", + "create.recipe.assembly.pressing": "进行辊压", "create.recipe.assembly.spout_filling_fluid": "注入%1$s", "create.recipe.assembly.deploying_item": "安装%1$s", "create.recipe.assembly.cutting": "用动力锯切割", - "create.recipe.assembly.repeat": "该序列需要重复%1$s次", + "create.recipe.assembly.repeat": "该序列需要重复 %1$s 次", "create.recipe.assembly.junk": "随机废料", "create.recipe.processing.chance": "%1$s%%概率", "create.recipe.heat_requirement.none": "无需加热", "create.recipe.heat_requirement.heated": "加热", "create.recipe.heat_requirement.superheated": "超级加热", - "create.generic.range": "范围", "create.generic.radius": "半径", "create.generic.width": "宽度", @@ -774,47 +752,41 @@ "create.generic.unit.millibuckets": "%1$smB", "create.generic.clockwise": "顺时针方向", "create.generic.counter_clockwise": "逆时针方向", - "create.action.scroll": "滚轮", "create.action.confirm": "确认", "create.action.abort": "退出", "create.action.saveToFile": "保存", "create.action.discard": "放弃", - "create.keyinfo.toolmenu": "工具菜单", "create.keyinfo.scrollup": "(游戏中)向上鼠标滚轮", "create.keyinfo.scrolldown": "(游戏中)向下鼠标滚轮", - "create.gui.scrollInput.defaultTitle": "选择一个选项:", "create.gui.scrollInput.scrollToModify": "滚动修改", "create.gui.scrollInput.scrollToAdjustAmount": "滚动修改数量", "create.gui.scrollInput.scrollToSelect": "滚动选择", - "create.gui.scrollInput.shiftScrollsFaster": "按住Shift滚动更快", + "create.gui.scrollInput.shiftScrollsFaster": "按住 Shift 滚动更快", "create.gui.toolmenu.focusKey": "按住 [%1$s] 鼠标滚轮选择", "create.gui.toolmenu.cycle": "[SCROLL] 循环", "create.gui.symmetryWand.mirrorType": "镜子类型", "create.gui.symmetryWand.orientation": "方向", - "create.symmetry.mirror.plane": "镜像", "create.symmetry.mirror.doublePlane": "矩形", "create.symmetry.mirror.triplePlane": "八角", - "create.orientation.orthogonal": "垂直", "create.orientation.diagonal": "对角线", "create.orientation.horizontal": "水平", "create.orientation.alongZ": "以z轴对齐", "create.orientation.alongX": "以x轴对齐", - "create.gui.terrainzapper.title": "手持式环境塑形器", "create.gui.terrainzapper.searchDiagonal": "对角线延伸", - "create.gui.terrainzapper.searchFuzzy": "模糊模式(忽略材料分界)", + "create.gui.terrainzapper.searchFuzzy": "忽略质料分界", "create.gui.terrainzapper.patternSection": "样式", "create.gui.terrainzapper.pattern.solid": "填满", "create.gui.terrainzapper.pattern.checkered": "棋盘格", "create.gui.terrainzapper.pattern.inversecheckered": "反转棋盘格", - "create.gui.terrainzapper.pattern.chance25": "随机填充25%", - "create.gui.terrainzapper.pattern.chance50": "随机填充50%", - "create.gui.terrainzapper.pattern.chance75": "随机填充75%", + "create.gui.terrainzapper.pattern.chance25": "随机填充 25%", + "create.gui.terrainzapper.pattern.chance50": "随机填充 50%", + "create.gui.terrainzapper.pattern.chance75": "随机填充 75%", "create.gui.terrainzapper.placement": "放置模式", "create.gui.terrainzapper.placement.merged": "结合", "create.gui.terrainzapper.placement.attached": "依附", @@ -823,8 +795,8 @@ "create.gui.terrainzapper.brush.cuboid": "矩形体", "create.gui.terrainzapper.brush.sphere": "球体", "create.gui.terrainzapper.brush.cylinder": "圆柱体", - "create.gui.terrainzapper.brush.surface": "连接的面", - "create.gui.terrainzapper.brush.cluster": "连接的立体区域", + "create.gui.terrainzapper.brush.surface": "表面", + "create.gui.terrainzapper.brush.cluster": "簇状", "create.gui.terrainzapper.tool": "填充类型", "create.gui.terrainzapper.tool.fill": "填充", "create.gui.terrainzapper.tool.place": "复写", @@ -832,17 +804,14 @@ "create.gui.terrainzapper.tool.clear": "清除", "create.gui.terrainzapper.tool.overlay": "覆盖", "create.gui.terrainzapper.tool.flatten": "平整", - - "create.terrainzapper.shiftRightClickToSet": "Shift+鼠标右击以设置塑形类型", - "create.terrainzapper.usingBlock": "填充材料:%1$s", + "create.terrainzapper.shiftRightClickToSet": "按住 Shift 右击以设置塑形类型", + "create.terrainzapper.usingBlock": "使用:%1$s", "create.terrainzapper.leftClickToSet": "鼠标左击一个方块以设置填充材料", - "create.minecart_coupling.two_couplings_max": "矿车无法被连接两个以上的矿车连轴器", "create.minecart_coupling.unloaded": "有一部分火车存在于未加载区块中", "create.minecart_coupling.no_loops": "矿车连轴器不能连成一个环", "create.minecart_coupling.removed": "从矿车上移除所有矿车连轴器", "create.minecart_coupling.too_far": "矿车距离你太远了", - "create.contraptions.movement_mode": "运动模式", "create.contraptions.movement_mode.move_place": "停止时总是将装置方块化", "create.contraptions.movement_mode.move_place_returned": "停止时只在初始位置才将装置方块化", @@ -851,37 +820,33 @@ "create.contraptions.movement_mode.rotate_place_returned": "停止时只在接近初始角度才将装置方块化", "create.contraptions.movement_mode.rotate_never_place": "只有在旋转轴摧毁后才将装置方块化", "create.contraptions.cart_movement_mode": "矿车运动模式", - "create.contraptions.cart_movement_mode.rotate": "装置与矿车保持相同方向", + "create.contraptions.cart_movement_mode.rotate": "始终面朝前进方向", "create.contraptions.cart_movement_mode.rotate_paused": "矿车转向时机器停止工作", - "create.contraptions.cart_movement_mode.rotation_locked": "装置方向保持不变", + "create.contraptions.cart_movement_mode.rotation_locked": "旋转锁定", "create.contraptions.windmill.rotation_direction": "旋转方向", "create.contraptions.clockwork.clock_hands": "钟表指针", "create.contraptions.clockwork.hour_first": "时针优先", "create.contraptions.clockwork.minute_first": "分针优先", - "create.contraptions.clockwork.hour_first_24": "24小时制优先", - + "create.contraptions.clockwork.hour_first_24": "24 小时制优先", "create.logistics.filter": "过滤器", "create.logistics.recipe_filter": "配方过滤器", "create.logistics.fluid_filter": "流体过滤器", - "create.logistics.firstFrequency": "频道. #1", - "create.logistics.secondFrequency": "频道. #2", "create.logistics.filter.apply": "已将过滤应用于%1$s。", "create.logistics.filter.apply_click_again": "已将过滤应用于%1$s,再次点击可将手持物品数量复制到过滤器上。", "create.logistics.filter.apply_count": "已将提取数量应用至过滤器。", - "create.gui.goggles.generator_stats": "应力发生器状态:", "create.gui.goggles.kinetic_stats": "动力学状态:", "create.gui.goggles.at_current_speed": "当前速度应力值", "create.gui.goggles.pole_length": "活塞杆长度:", "create.gui.goggles.fluid_container": "流体容器信息:", "create.gui.goggles.fluid_container.capacity": "容量:", - "create.gui.assembly.exception": "无法组装该结构:", + "create.gui.assembly.exception": "无法组装该装置:", "create.gui.assembly.exception.unmovableBlock": "无法移动的方块:(%4$s)位于 [%1$s,%2$s,%3$s]", - "create.gui.assembly.exception.chunkNotLoaded": "位于 [%1$s,%2$s,%3$s] 的方块未处于加载区块", - "create.gui.assembly.exception.structureTooLarge": "结构中的方块数量过多。\n配置中的最大数量限制为:%1$s", - "create.gui.assembly.exception.tooManyPistonPoles": "活塞加装的活塞杆数量过多。\n配置中的最大数量限制为:%1$s", + "create.gui.assembly.exception.chunkNotLoaded": "位于 [%1$s,%2$s,%3$s] 的方块未处于加载区块", + "create.gui.assembly.exception.structureTooLarge": "装置中的方块数量过多。", + "create.gui.assembly.exception.tooManyPistonPoles": "活塞加装的活塞杆数量过多。", "create.gui.assembly.exception.noPistonPoles": "活塞缺失部分活塞杆", - "create.gui.assembly.exception.not_enough_sails": "相接的结构所包含的类风帆方块的数量不足。%1$s\n最低需要 %2$s 个方块", + "create.gui.assembly.exception.not_enough_sails": "相接的结构所包含的类风帆方块的数量不足。%1$s", "create.gui.gauge.info_header": "仪表信息:", "create.gui.speedometer.title": "旋转速度", "create.gui.stressometer.title": "网络应力", @@ -916,17 +881,15 @@ "create.gui.sequenced_gearshift.speed.forward_fast": "两倍速,正向", "create.gui.sequenced_gearshift.speed.back": "一倍速,反向", "create.gui.sequenced_gearshift.speed.back_fast": "两倍速,反向", - "create.schematicAndQuill.dimensions": "蓝图尺寸:%1$sx%2$sx%3$s", "create.schematicAndQuill.firstPos": "第一个位置。", "create.schematicAndQuill.secondPos": "第二个位置。", - "create.schematicAndQuill.noTarget": "按住Ctrl选择空气方块。", + "create.schematicAndQuill.noTarget": "按住 Ctrl 选择空气方块。", "create.schematicAndQuill.abort": "删除选择。", "create.schematicAndQuill.title": "蓝图名:", "create.schematicAndQuill.convert": "立即保存并部署", "create.schematicAndQuill.fallbackName": "我的蓝图", "create.schematicAndQuill.saved": "另存为%1$s", - "create.schematic.invalid": "[!] 无效的项目", "create.schematic.position": "位置", "create.schematic.rotation": "旋转", @@ -946,18 +909,18 @@ "create.schematic.tool.flip": "翻转", "create.schematic.tool.deploy.description.0": "将结构移到某个位置。", "create.schematic.tool.deploy.description.1": "在地面上单击鼠标右击以放置。", - "create.schematic.tool.deploy.description.2": "按住Ctrl以固定距离选择。", - "create.schematic.tool.deploy.description.3": "按住Ctrl鼠标滚动更改距离。", + "create.schematic.tool.deploy.description.2": "按住 Ctrl 以固定距离选择。", + "create.schematic.tool.deploy.description.3": "按住 Ctrl 鼠标滚动更改距离。", "create.schematic.tool.move.description.0": "水平移动蓝图", - "create.schematic.tool.move.description.1": "选定蓝图,然后按住Ctrl鼠标滚动移动。", + "create.schematic.tool.move.description.1": "选定蓝图,然后按住 Ctrl 鼠标滚动移动。", "create.schematic.tool.move.description.2": "", "create.schematic.tool.move.description.3": "", "create.schematic.tool.movey.description.0": "垂直移动蓝图", - "create.schematic.tool.movey.description.1": "按住Ctrl鼠标滚动上下移动", + "create.schematic.tool.movey.description.1": "按住 Ctrl 鼠标滚动上下移动", "create.schematic.tool.movey.description.2": "", "create.schematic.tool.movey.description.3": "", "create.schematic.tool.rotate.description.0": "围绕蓝图中心旋转蓝图。", - "create.schematic.tool.rotate.description.1": "按住Ctrl鼠标滚动旋转90度", + "create.schematic.tool.rotate.description.1": "按住 Ctrl 鼠标滚动旋转90度", "create.schematic.tool.rotate.description.2": "", "create.schematic.tool.rotate.description.3": "", "create.schematic.tool.print.description.0": "立即将结构放置在世界上", @@ -965,14 +928,12 @@ "create.schematic.tool.print.description.2": "该工具仅适用于创造模式。", "create.schematic.tool.print.description.3": "", "create.schematic.tool.flip.description.0": "沿你选择的面翻转蓝图。", - "create.schematic.tool.flip.description.1": "指向蓝图,然后按住Ctrl鼠标滚动将其翻转。", + "create.schematic.tool.flip.description.1": "指向蓝图,然后按住 Ctrl 鼠标滚动将其翻转。", "create.schematic.tool.flip.description.2": "", "create.schematic.tool.flip.description.3": "", - "create.schematics.synchronizing": "正在同步..", "create.schematics.uploadTooLarge": "你的蓝图太大", "create.schematics.maxAllowedSize": "允许的最大蓝图文件大小为:", - "create.gui.schematicTable.refresh": "刷新文件", "create.gui.schematicTable.open_folder": "打开文件夹", "create.gui.schematicTable.title": "蓝图桌", @@ -992,7 +953,7 @@ "create.gui.schematicannon.option.replaceWithSolid": "用固体方块替换工作区域内的方块", "create.gui.schematicannon.option.replaceWithAny": "用任何方块替换工作区域内的方块", "create.gui.schematicannon.option.replaceWithEmpty": "用空气替换工作区域内的方块", - "create.gui.schematicannon.option.skipMissing": "绕过缺少的方块", + "create.gui.schematicannon.option.skipMissing": "跳过缺少的方块", "create.gui.schematicannon.option.skipTileEntities": "保护存储方块", "create.gui.schematicannon.slot.gunpowder": "向蓝图加农炮添加火药以提供动力", "create.gui.schematicannon.slot.listPrinter": "在此处放置书以打印蓝图所需的材料清单", @@ -1003,28 +964,25 @@ "create.gui.schematicannon.option.replaceWithSolid.description": "蓝图加农炮会使用所提供的固体方块来替换工作区域内的其他固体方块", "create.gui.schematicannon.option.replaceWithAny.description": "蓝图加农炮会使用任何所提供的方块来替换工作区域内的固体方块", "create.gui.schematicannon.option.replaceWithEmpty.description": "蓝图加农炮将清理和替换工作区域内所有原本的方块。", - - "create.schematicannon.status.idle": "闲置", - "create.schematicannon.status.ready": "准备", - "create.schematicannon.status.running": "运行", - "create.schematicannon.status.finished": "完成", + "create.schematicannon.status.idle": "闲置中", + "create.schematicannon.status.ready": "准备中", + "create.schematicannon.status.running": "运行中", + "create.schematicannon.status.finished": "已完成", "create.schematicannon.status.paused": "已暂停", - "create.schematicannon.status.stopped": "停止", - "create.schematicannon.status.noGunpowder": "火药消耗完毕", - "create.schematicannon.status.targetNotLoaded": "方块未加载", - "create.schematicannon.status.targetOutsideRange": "定位目标太远", - "create.schematicannon.status.searching": "搜索", - "create.schematicannon.status.skipping": "跳过", + "create.schematicannon.status.stopped": "已停止", + "create.schematicannon.status.noGunpowder": "火药已耗尽", + "create.schematicannon.status.targetNotLoaded": "目标未被加载", + "create.schematicannon.status.targetOutsideRange": "目标太远", + "create.schematicannon.status.searching": "正在搜索", + "create.schematicannon.status.skipping": "正在跳过", "create.schematicannon.status.missingBlock": "缺少方块:", "create.schematicannon.status.placing": "建筑中", "create.schematicannon.status.clearing": "清除方块中", "create.schematicannon.status.schematicInvalid": "蓝图无效", "create.schematicannon.status.schematicNotPlaced": "蓝图未部署", "create.schematicannon.status.schematicExpired": "蓝图文件已过期", - "create.materialChecklist": "材料清单", - "create.materialChecklist.blocksNotLoaded": "*免责声明* \n\n由于未加载相关区块,材料清单可能不正确。", - + "create.materialChecklist.blocksNotLoaded": "*免责声明* ", "create.gui.filter.deny_list": "黑名单", "create.gui.filter.deny_list.description": "只通过不在黑名单中的物品,如果黑名单为空,所有物品都可以通过", "create.gui.filter.allow_list": "白名单", @@ -1033,7 +991,6 @@ "create.gui.filter.respect_data.description": "只有物品的耐久、附魔等其他属性相同时才可以匹配", "create.gui.filter.ignore_data": "忽视物品属性", "create.gui.filter.ignore_data.description": "匹配时忽视物品的耐久、附魔等其他属性", - "create.item_attributes.placeable": "可放置", "create.item_attributes.placeable.inverted": "不可放置", "create.item_attributes.consumable": "可食用", @@ -1065,20 +1022,20 @@ "create.item_attributes.in_item_group": "属于%1$s", "create.item_attributes.in_item_group.inverted": "不属于%1$s", "create.item_attributes.added_by": "由%1$s添加", - "create.item_attributes.added_by.inverted": "不是由%1$s添加", + "create.item_attributes.added_by.inverted": "不由%1$s添加", "create.item_attributes.shulker_level": "潜影盒是%1$s的", "create.item_attributes.shulker_level.inverted": "潜影盒不是%1$s的", "create.item_attributes.shulker_level.full": "满", "create.item_attributes.shulker_level.empty": "空", - "create.item_attributes.shulker_level.partial": "半满", + "create.item_attributes.shulker_level.partial": "部分填充", "create.item_attributes.has_enchant": "有附魔效果%1$s", "create.item_attributes.has_enchant.inverted": "没有附魔效果%1$s", "create.item_attributes.color": "染色为%1$s", "create.item_attributes.color.inverted": "未被染成%1$s", - "create.item_attributes.max_enchanted": "已达到最高附魔等", + "create.item_attributes.max_enchanted": "已达到最高附魔等级", "create.item_attributes.max_enchanted.inverted": "并未达到最高附魔等级", - "create.item_attributes.has_fluid": "包含%1$s", - "create.item_attributes.has_fluid.inverted": "不包含%1$s", + "create.item_attributes.has_fluid": "含有%1$s", + "create.item_attributes.has_fluid.inverted": "不含有%1$s", "create.item_attributes.has_name": "有自定义名称%1$s", "create.item_attributes.has_name.inverted": "没有自定义名称%1$s", "create.item_attributes.book_author": "由%1$s编写", @@ -1099,9 +1056,8 @@ "create.item_attributes.astralsorcery_perk_gem.inverted": "不带有星能力属性%1$s", "create.item_attributes.astralsorcery_amulet": "璀璨棱镜增强%1$s", "create.item_attributes.astralsorcery_amulet.inverted": "璀璨棱镜未增强%1$s", - - "create.gui.attribute_filter.no_selected_attributes": "没有标记任何属性", - "create.gui.attribute_filter.selected_attributes": "已选择的属性:", + "create.gui.attribute_filter.no_selected_attributes": "未选择任何属性", + "create.gui.attribute_filter.selected_attributes": "已选择的属性:", "create.gui.attribute_filter.add_attribute": "向列表中添加属性", "create.gui.attribute_filter.add_inverted_attribute": "向列表中添加相反属性", "create.gui.attribute_filter.allow_list_disjunctive": "任意匹配白名单(任何)", @@ -1111,7 +1067,6 @@ "create.gui.attribute_filter.deny_list": "黑名单", "create.gui.attribute_filter.deny_list.description": "只要没有上述属性,就可以通过", "create.gui.attribute_filter.add_reference_item": "添加参考物品", - "create.tooltip.holdForDescription": "按住 [%1$s] 可查看概要", "create.tooltip.holdForControls": "按住 [%1$s] 可查看控制方法", "create.tooltip.keyShift": "Shift", @@ -1131,24 +1086,19 @@ "create.tooltip.capacityProvided.high": "大", "create.tooltip.generationSpeed": "产生于%1$s %2$s", "create.tooltip.analogStrength": "模拟信号强度:%1$s/15", - "create.mechanical_arm.extract_from": "从%1$s中拿取物品", - "create.mechanical_arm.deposit_to": "向%1$s存储物品", - "create.mechanical_arm.summary": "动力臂当前有%1$s个输入,%2$s个输出。", + "create.mechanical_arm.deposit_to": "将物品存储至%1$s", + "create.mechanical_arm.summary": "动力臂当前有 %1$s 个输入,%2$s 个输出。", "create.mechanical_arm.points_outside_range": "由于距离限制,选定的交互点%1$s已被移除。", - "create.weighted_ejector.target_set": "目标已选取", "create.weighted_ejector.target_not_valid": "弹射至临近方块(目标无效)", "create.weighted_ejector.no_target": "弹射至临近方块(未选择目标)", - "create.weighted_ejector.targeting": "弹射至[%1$s,%2$s,%3$s]", + "create.weighted_ejector.targeting": "弹射至 [%1$s,%2$s,%3$s]", "create.weighted_ejector.stack_size": "弹射物品堆数量", - "create.logistics.when_multiple_outputs_available": "当多个输出可用时", - "create.mechanical_arm.selection_mode.round_robin": "轮询调度", "create.mechanical_arm.selection_mode.forced_round_robin": "强制轮询调度", "create.mechanical_arm.selection_mode.prefer_first": "第一目标优先", - "create.tunnel.selection_mode.split": "分流", "create.tunnel.selection_mode.forced_split": "强制分流", "create.tunnel.selection_mode.round_robin": "轮询调度", @@ -1156,7 +1106,6 @@ "create.tunnel.selection_mode.prefer_nearest": "最近优先", "create.tunnel.selection_mode.randomize": "随机", "create.tunnel.selection_mode.synchronize": "同步输入", - "create.tooltip.chute.header": "溜槽信息", "create.tooltip.chute.items_move_down": "物品下行", "create.tooltip.chute.items_move_up": "物品上行", @@ -1166,37 +1115,30 @@ "create.tooltip.chute.fans_pull_up": "鼓风机从上方进行吸引", "create.tooltip.chute.fans_pull_down": "鼓风机从下方进行吸引", "create.tooltip.chute.contains": "内含物品:%1$s x%2$s", - "create.tooltip.brass_tunnel.contains": "等待分配的物品:", - "create.tooltip.brass_tunnel.contains_entry": "> %2$s个%1$s", + "create.tooltip.brass_tunnel.contains": "目前分配:", + "create.tooltip.brass_tunnel.contains_entry": "> %1$s x%2$s", "create.tooltip.brass_tunnel.retrieve": "鼠标右击取出", - "create.linked_controller.bind_mode": "绑定模式激活", - "create.linked_controller.press_keybind": "按%1$s,%2$s,%3$s,%4$s,%5$s或%6$s选择要将该频率绑定到哪个按键。", + "create.linked_controller.press_keybind": "按下%1$s、%2$s、%3$s、%4$s、%5$s或%6$s,可以将该频率绑定到按下的按键上。", "create.linked_controller.key_bound": "该频率已绑定到%1$s", - "create.linked_controller.frequency_slot_1": "按键:%1$s,频道 #1", - "create.linked_controller.frequency_slot_2": "按键:%1$s,频道 #2", - - "create.crafting_blueprint.crafting_slot": "合成材料格", + "create.crafting_blueprint.crafting_slot": "原料槽", "create.crafting_blueprint.filter_items_viable": "可以使用过滤器", - "create.crafting_blueprint.display_slot": "展示的图标", + "create.crafting_blueprint.display_slot": "展示槽", "create.crafting_blueprint.inferred": "已根据合成配方自动设定", "create.crafting_blueprint.manually_assigned": "手动设定", - "create.crafting_blueprint.secondary_display_slot": "展示的图标角标", + "create.crafting_blueprint.secondary_display_slot": "次要展示槽", "create.crafting_blueprint.optional": "可选", - "create.potato_cannon.ammo.attack_damage": "%1$s 攻击伤害", "create.potato_cannon.ammo.reload_ticks": "%1$s 装弹时间(Ticks)", "create.potato_cannon.ammo.knockback": "%1$s 击退", - "create.hint.hose_pulley.title": "无限供应", "create.hint.hose_pulley": "目标液体对象被视为无限量的。", "create.hint.mechanical_arm_no_targets.title": "没有目标", "create.hint.mechanical_arm_no_targets": "看起来这个_动力臂_没有被分配给任何_目标_。在手持机械臂的同时,右击选取传送带、置物台、漏斗或其他设备来设置目标。", "create.hint.empty_bearing.title": "更新轴承", - "create.hint.empty_bearing": "_空手右击_轴承来_激活_你新建造的结构。", + "create.hint.empty_bearing": "_空手右击_轴承,可以将你新建造的结构_接到_轴承上。", "create.hint.full_deployer.title": "机械手物品溢出", "create.hint.full_deployer": "_机械手_包含_过剩的物品,_需要被_提取。你需要_使用_料斗,__漏斗_或其他方法将溢出释放出来。", - "create.gui.config.overlay1": "Hi :)", "create.gui.config.overlay2": "这是一个实例层", "create.gui.config.overlay3": "点击拖拽你的鼠标", @@ -1205,21 +1147,15 @@ "create.gui.config.overlay6": "并保存新的位置", "create.gui.config.overlay7": "输入/create overlay reset", "create.gui.config.overlay8": "重置到默认位置", - "create.command.killTPSCommand": "killtps", - "create.command.killTPSCommand.status.slowed_by.0": "[Create]: 服务器每秒tick速被降低为 %s ms :o", - "create.command.killTPSCommand.status.slowed_by.1": "[Create]: 服务器现在每秒tick速被降低为 >:)", - "create.command.killTPSCommand.status.slowed_by.2": "[Create]: 服务器恢复到正常速度 :D", - "create.command.killTPSCommand.status.usage.0": "[Create]: 用 /killtps stop 来让服务器的TPS速度变回正常", - "create.command.killTPSCommand.status.usage.1": "[Create]: 用 /killtps start 来手动降低服务器TPS速度", + "create.command.killTPSCommand.status.slowed_by.0": "[Create]: 服务器现在的 TPS 速度被降低为 %s ms :o", + "create.command.killTPSCommand.status.slowed_by.1": "[Create]: 服务器现在的 TPS 速度被降低为 >:)", + "create.command.killTPSCommand.status.slowed_by.2": "[Create]: 服务器恢复到正常的 TPS 速度 :D", + "create.command.killTPSCommand.status.usage.0": "[Create]: 用 /killtps stop 来让服务器的 TPS 速度变回正常", + "create.command.killTPSCommand.status.usage.1": "[Create]: 用 /killtps start 来手动降低服务器 TPS 速度", "create.command.killTPSCommand.argument.tickTime": "tickTime", - "create.contraption.minecart_contraption_too_big": "这一矿车装置似乎太大了,无法变为拾捡状态", - "create.contraption.minecart_contraption_illegal_pickup": "神秘的力量阻止你拾取这个矿车装置。", - - - "_": "->------------------------] Subtitles [------------------------<-", - + "create.contraption.minecart_contraption_illegal_pickup": "一股神秘的力量将这一装置与世界牢牢绑定在了一起。", "create.subtitle.contraption_disassemble": "结构:停止移动", "create.subtitle.peculiar_bell_use": "奇异钟:鸣响", "create.subtitle.mixing": "搅拌器:搅拌声", @@ -1232,12 +1168,12 @@ "create.subtitle.blaze_munch": "烈焰人:咀嚼", "create.subtitle.funnel_flap": "漏斗:垂帘碰撞", "create.subtitle.schematicannon_finish": "蓝图加农炮:叮", - "create.subtitle.haunted_bell_use": "怪异钟:鸣响", + "create.subtitle.haunted_bell_use": "森魂钟:鸣响", "create.subtitle.scroll_value": "拨码输入:咔哒", "create.subtitle.crafter_craft": "动力合成器:合成中", "create.subtitle.controller_put": "遥控器:放进讲台", "create.subtitle.cranking": "手摇曲柄:转动", - "create.subtitle.wrench_remove": "部件:被破坏", + "create.subtitle.wrench_remove": "组件:被破坏", "create.subtitle.cogs": "齿轮:嘎吱作响", "create.subtitle.slime_added": "粘液:挤碎声", "create.subtitle.wrench_rotate": "扳手:拧动", @@ -1255,10 +1191,6 @@ "create.subtitle.crafter_click": "动力合成器:咔哒声", "create.subtitle.depot_plop": "物品:着地", "create.subtitle.confirm": "提示声:接受", - - - "_": "->------------------------] Item Descriptions [------------------------<-", - "item.create.example_item.tooltip": "EXAMPLE ITEM (just a marker that this tooltip exists)", "item.create.example_item.tooltip.summary": "A brief description of the item._Underscores_highlight a term.", "item.create.example_item.tooltip.condition1": "When this", @@ -1267,21 +1199,16 @@ "item.create.example_item.tooltip.behaviour2": "You can add as many behaviours as you like", "item.create.example_item.tooltip.control1": "When Ctrl pressed", "item.create.example_item.tooltip.action1": "These controls are displayed.", - "block.create.wooden_bracket.tooltip": "木质支架", "block.create.wooden_bracket.tooltip.summary": "用这种给人温馨感的木质支架_装饰_你的_传动杆_,_齿轮_和_管道_吧。", - "block.create.metal_bracket.tooltip": "金属支架", "block.create.metal_bracket.tooltip.summary": "用这种工业风格的金属支架_装饰_你的_传动杆_,_齿轮_和_管道_吧。", - "block.create.seat.tooltip": "坐垫", "block.create.seat.tooltip.summary": "坐下来享受旅程吧!坐垫将会把玩家固定在一个移动装置上。也可以用来作为居家装饰,毕竟他有许多颜色。", "block.create.seat.tooltip.condition1": "右击坐垫", - "block.create.seat.tooltip.behaviour1": "会使得玩家坐在_坐垫_上,L-Shift可离开_坐垫_。", - + "block.create.seat.tooltip.behaviour1": "会使得玩家坐在_坐垫_上,按下左 Shift 可离开_坐垫_。", "item.create.blaze_cake.tooltip": "烈焰蛋糕", "item.create.blaze_cake.tooltip.summary": "为辛勤劳作的_烈焰人_精心准备的美味。让他们兴奋起来吧!", - "item.create.wand_of_symmetry.tooltip": "对称之杖", "item.create.wand_of_symmetry.tooltip.summary": "完美地镜面复制工作区域内的方块到另一边", "item.create.wand_of_symmetry.tooltip.condition1": "当在快捷栏时", @@ -1292,7 +1219,6 @@ "item.create.wand_of_symmetry.tooltip.action2": "_删除_镜面。", "item.create.wand_of_symmetry.tooltip.control3": "当潜行右击时", "item.create.wand_of_symmetry.tooltip.action3": "打开_配置界面_。", - "item.create.handheld_worldshaper.tooltip": "手持式环境塑形器", "item.create.handheld_worldshaper.tooltip.summary": "_创造_大陆和山脉的手持工具", "item.create.handheld_worldshaper.tooltip.control1": "当左击方块时", @@ -1301,50 +1227,42 @@ "item.create.handheld_worldshaper.tooltip.action2": "_放置_或_替换_目标方块。", "item.create.handheld_worldshaper.tooltip.control3": "当潜行右击时", "item.create.handheld_worldshaper.tooltip.action3": "打开工具的_配置界面_。", - "item.create.tree_fertilizer.tooltip": "树木肥料", "item.create.tree_fertilizer.tooltip.summary": "由多种矿物质复合而成的强大生长剂,能够加速普通树种的生长速度。", "item.create.tree_fertilizer.tooltip.condition1": "在树苗上使用时", "item.create.tree_fertilizer.tooltip.behaviour1": "使得该树_无视_它的_生长空间条件_,立刻长大。", - "item.create.extendo_grip.tooltip": "伸缩机械手", "item.create.extendo_grip.tooltip.summary": "biubiubiu! 大幅度_增加了_使用者的_触碰距离_。", "item.create.extendo_grip.tooltip.condition1": "放置于副手栏时", "item.create.extendo_grip.tooltip.behaviour1": "增加_主手_所使用物品的_接触距离_。", "item.create.extendo_grip.tooltip.condition2": "当装备铜制背罐时", "item.create.extendo_grip.tooltip.behaviour2": "使用罐中_气压_来_抵消_伸缩机械手的_耐久_损耗。", - "item.create.potato_cannon.tooltip": "土豆加农炮", "item.create.potato_cannon.tooltip.summary": "噗!把你亲手栽培的蔬菜砸向你的敌人。可以使用_铜制背罐_供能。", "item.create.potato_cannon.tooltip.condition1": "当右击时", - "item.create.potato_cannon.tooltip.behaviour1": "_发射_你_物品栏_中任一可做弹药的物品。", + "item.create.potato_cannon.tooltip.behaviour1": "_发射_你_物品栏_中任一可作为弹药的物品。", "item.create.potato_cannon.tooltip.condition2": "当装备铜制背罐时", "item.create.potato_cannon.tooltip.behaviour2": "使用罐中_气压_来_抵消_土豆加农炮的_耐久_损耗。", - "item.create.filter.tooltip": "过滤器", "item.create.filter.tooltip.summary": "可用于_精确_控制物流设备的_输出_以及_输入_,使得通过的物品流与_一组_物品或者数个_相嵌套的过滤器_相匹配。", "item.create.filter.tooltip.condition1": "放置于过滤插槽中时", "item.create.filter.tooltip.behaviour1": "根据_过滤器_的配置,来_决定_物品流是否能够通过。", "item.create.filter.tooltip.condition2": "当右击时", "item.create.filter.tooltip.behaviour2": "打开_配置面板_。", - "item.create.attribute_filter.tooltip": "属性过滤器", "item.create.attribute_filter.tooltip.summary": "可用于_精确_控制物流设备的_输出_以及_输入_,使得通过的物品流与_一组_物品_属性_以及_分类_相匹配。", "item.create.attribute_filter.tooltip.condition1": "放置于过滤插槽中时", "item.create.attribute_filter.tooltip.behaviour1": "根据_过滤器_的配置,来_决定_物品流是否能够通过。", "item.create.attribute_filter.tooltip.condition2": "当右击时", "item.create.attribute_filter.tooltip.behaviour2": "打开_配置面板_。", - "item.create.empty_schematic.tooltip": "空白蓝图", "item.create.empty_schematic.tooltip.summary": "可作为合成材料或在_蓝图桌_使用", - "item.create.schematic.tooltip": "蓝图", "item.create.schematic.tooltip.summary": "可将结构部署并放置到世界中,将蓝图全息影像部署完毕后,使用_蓝图加农炮_进行结构建造。", "item.create.schematic.tooltip.condition1": "当手持蓝图时", "item.create.schematic.tooltip.behaviour1": "可以使用屏幕上的工具调整位置", "item.create.schematic.tooltip.control1": "当潜行右击时", "item.create.schematic.tooltip.action1": "打开一个用于输入_精确坐标_的界面。", - "item.create.schematic_and_quill.tooltip": "蓝图与笔", "item.create.schematic_and_quill.tooltip.summary": "用于将世界中的结构保存到 .nbt 文件。", "item.create.schematic_and_quill.tooltip.condition1": "第一步", @@ -1357,17 +1275,14 @@ "item.create.schematic_and_quill.tooltip.action2": "可在_空中_选择点,_滑动滚轮_可调整距离。", "item.create.schematic_and_quill.tooltip.control3": "当潜行右击时", "item.create.schematic_and_quill.tooltip.action3": "_重置_并删除选区。", - "block.create.schematicannon.tooltip": "蓝图加农炮", "block.create.schematicannon.tooltip.summary": "发射方块,重新构建已在世界中部署的_蓝图_,会使用相邻箱子中的物品进行填充,_火药_作为燃料。", - "block.create.schematicannon.tooltip.condition1": "当右击时", - "block.create.schematicannon.tooltip.behaviour1": "打开_配置面板_。", - + "block.create.schematicannon.tooltip.condition1": "When R-Clicked", + "block.create.schematicannon.tooltip.behaviour1": "Opens the _Interface_", "block.create.schematic_table.tooltip": "蓝图桌", "block.create.schematic_table.tooltip.summary": "将保存的蓝图图写入_空白蓝图_", "block.create.schematic_table.tooltip.condition1": "放入空白蓝图时", "block.create.schematic_table.tooltip.behaviour1": "可从 Schematics 文件夹中上传所选文件。", - "item.create.goggles.tooltip": "工程师护目镜", "item.create.goggles.tooltip.summary": "一副可以扩增显示_动力学信息_的实用眼镜。", "item.create.goggles.tooltip.condition1": "当装备时", @@ -1376,122 +1291,96 @@ "item.create.goggles.tooltip.behaviour2": "将会显示与仪表相连的网络的_转速_、_应力_等详细信息。", "item.create.goggles.tooltip.condition3": "当看向流体容器时", "item.create.goggles.tooltip.behaviour3": "显示出方块的_容量_细节,以及其中包含的所有_流体_。", - "item.create.wrench.tooltip": "扳手", "item.create.wrench.tooltip.summary": "操控动力组件的使用工具。可用于_旋转_,_拆除_以及_配置_组件。", "item.create.wrench.tooltip.control1": "当右击_动力方块_时", "item.create.wrench.tooltip.action1": "以点击的面为轴心_旋转_点击的方块", "item.create.wrench.tooltip.control2": "当潜行右击时", "item.create.wrench.tooltip.action2": "会_拆除动力组件_并将其移动到你的背包中。", - "block.create.nozzle.tooltip": "分散网", "block.create.nozzle.tooltip.summary": "依附在鼓风机上,能够将鼓风机的效果分散到_各个方向_。", - "block.create.cuckoo_clock.tooltip": "布谷鸟闹钟", "block.create.cuckoo_clock.tooltip.summary": "精致的工艺品,能够记录时间", "block.create.cuckoo_clock.tooltip.condition1": "接入动力时", "block.create.cuckoo_clock.tooltip.behaviour1": "显示_当前时间_并且一天会咕咕两次。_中午_咕咕一次,_黄昏可以睡觉_的时候咕咕一次 ", - "block.create.turntable.tooltip": "转盘", "block.create.turntable.tooltip.summary": "让旋转力给你带来一场刺激的旋转风车体验。", - "block.create.stockpile_switch.tooltip": "存量转换器", "block.create.stockpile_switch.tooltip.summary": "根据连接的容器中_储存物品_的数量切换红石信号强度。自带有过滤槽,与_比较器_不同的是,你可以配置_存量转换器_信号反转的_阈值_。", "block.create.stockpile_switch.tooltip.condition1": "当右击时", "block.create.stockpile_switch.tooltip.behaviour1": "打开_配置界面_。", - "block.create.content_observer.tooltip": "物品侦测器", "block.create.content_observer.tooltip.summary": "检测_容器_和_传送带_中过滤器匹配的物品。当在_物品栏_,_传送带_或者_溜槽所容物_中侦测到匹配的物品时,此组件将发出_红石信号_。当观察到的漏斗_转移匹配的物品_时,此组件将发出_红石脉冲_。", - "block.create.adjustable_crate.tooltip": "可调节板条箱", "block.create.adjustable_crate.tooltip.summary": "该箱子支持玩家对其容量进行调整,最大可以容纳_16组_物品。支持_红石比较器_。", "block.create.adjustable_crate.tooltip.condition1": "当右击时", "block.create.adjustable_crate.tooltip.behaviour1": "打开_配置面板_。", - "block.create.creative_crate.tooltip": "创造板条箱", "block.create.creative_crate.tooltip.summary": "这种_储存容器_可以无限地复制任何物品。它还可以移除附近的_蓝图加农炮_的材料需求。", "block.create.creative_crate.tooltip.condition1": "当标记了物品时", "block.create.creative_crate.tooltip.behaviour1": "任何从容器中_提取_的物品都是_无限量的_,而任何_放置_到容器中的物品都会被_送入虚空_", - - "item.create.creative_cake.tooltip": "创造烈焰蛋糕", - "item.create.creative_cake.tooltip.summary": "为辛勤劳作的_烈焰人_精心准备的特别的美味。烈焰人吃了这个以后将_再也不需要燃料_。", - "item.create.creative_cake.tooltip.condition1": "对烈焰人燃烧室右击使用时", - "item.create.creative_cake.tooltip.behaviour1": "_固定_烈焰人燃烧室当前的燃料量。再次右击可以在不同燃料量之间_切换_。", - + "item.create.creative_blaze_cake.tooltip": "创造蛋糕", + "item.create.creative_blaze_cake.tooltip.summary": "为_烈焰人燃烧室_特制的小食,可以让你_控制燃烧室的热量等级_。吃下这个蛋糕之后,烈焰人燃烧室将_不再耗尽燃料_。", + "item.create.creative_blaze_cake.tooltip.condition1": "对着烈焰人燃烧室使用", + "item.create.creative_blaze_cake.tooltip.behaviour1": "_锁定_烈焰人燃烧室的热量等级。如果再次使用,会使得燃烧室的热量等级开始_循环_变化。", "block.create.controller_rail.tooltip": "控制铁轨", "block.create.controller_rail.tooltip.summary": "一种_汇流的,受红石信号影响的_铁轨,可以_较好地控制_经过矿车的_移动速度_。", "block.create.controller_rail.tooltip.condition1": "通入红石信号时时", "block.create.controller_rail.tooltip.behaviour1": "根据信号强度_加速_或_减速_经过的矿车。还会将红石信号传递到相邻的控制铁轨。向两个控制铁轨通入不同等级的红石信号,两者中间的轨道会受到以此为区间的连续等级的红石信号的激活。", - "item.create.sand_paper.tooltip": "砂纸", "item.create.sand_paper.tooltip.summary": "用来_打磨_物品的砂纸,可以用_机械手_来实现自动化。", "item.create.sand_paper.tooltip.condition1": "使用时", "item.create.sand_paper.tooltip.behaviour1": "打磨_副手_上或者_准心所指_的物品。", - "item.create.builders_tea.tooltip": "建造工茶饮", - "item.create.builders_tea.tooltip.summary": "饮下这杯完美茶饮,开启神清气爽的一天。可以回复_饥饿值_并获得_急迫_效果。", - + "item.create.builders_tea.tooltip.summary": "饮下这杯完美茶饮,开启神清气爽的一天。可以恢复_饥饿值_并获得_急迫_效果。", "item.create.refined_radiance.tooltip": "光辉石", "item.create.refined_radiance.tooltip.summary": "一种用_光辉_锻造的化合物材料。", "item.create.refined_radiance.tooltip.condition1": "尚未完工", "item.create.refined_radiance.tooltip.behaviour1": "该材料在未来可能会有更多的用途。", - "item.create.shadow_steel.tooltip": "暗影钢", "item.create.shadow_steel.tooltip.summary": "一种用_虚空_锻造的化合物材料。", "item.create.shadow_steel.tooltip.condition1": "尚未完工", "item.create.shadow_steel.tooltip.behaviour1": "该材料在未来可能会有更多的用途。", - "item.create.linked_controller.tooltip": "无线红石遥控器", "item.create.linked_controller.tooltip.summary": "提供_六个_可以绑定_无线红石_频道的按钮,用于_遥控_附近的_无线红石信号终端_。", "item.create.linked_controller.tooltip.condition1": "右击时", - "item.create.linked_controller.tooltip.behaviour1": "_拿起_或_放下_遥控器。拿起遥控器时,_移动_按键将被用来_操作遥控器_而不是移动玩家。", + "item.create.linked_controller.tooltip.behaviour1": "_拿起_或_放下_遥控器。拿起遥控器时,_控制移动_将被用来_操作遥控器_,而不是移动玩家。", "item.create.linked_controller.tooltip.condition2": "潜行右击时", "item.create.linked_controller.tooltip.behaviour2": "打开手动_配置界面_。", "item.create.linked_controller.tooltip.condition3": "右击无线红石信号终端时", - "item.create.linked_controller.tooltip.behaviour3": "启用_配对模式_,按_六个按键_中的一个来配对_无线红石信号终端_的_频率_。", + "item.create.linked_controller.tooltip.behaviour3": "启用_绑定模式_,按下_六个按键_中的一个,即可将此按键与_无线红石信号终端的频率_绑定。", "item.create.linked_controller.tooltip.condition4": "右击讲台时", - "item.create.linked_controller.tooltip.behaviour4": "将遥控器放在讲台上以便使用。(潜行右击来取回遥控器。)", - + "item.create.linked_controller.tooltip.behaviour4": "将遥控器放在讲台上以便使用(潜行右击来取回遥控器)。", "item.create.diving_helmet.tooltip": "潜水头盔", "item.create.diving_helmet.tooltip.summary": "与_铜制背罐_配合使用,为穿戴者提供在_水下_行动一段时间所需的_空气_。", "item.create.diving_helmet.tooltip.condition1": "戴在头上时", "item.create.diving_helmet.tooltip.behaviour1": "提供_水下呼吸_效果。缓慢消耗背罐中的_压缩空气_。", - "item.create.copper_backtank.tooltip": "铜制背罐", "item.create.copper_backtank.tooltip.summary": "一个可以_背在背上_的_铜罐_,用于携带一定量的压缩空气。", "item.create.copper_backtank.tooltip.condition1": "背在背上时", "item.create.copper_backtank.tooltip.behaviour1": "为其他需要_压缩空气_的装备提供所需的空气。", "item.create.copper_backtank.tooltip.condition2": "当放下并接入动力时", "item.create.copper_backtank.tooltip.behaviour2": "基于转速从周围环境中_收集_并_加压空气_。", - "item.create.diving_boots.tooltip": "潜水靴", "item.create.diving_boots.tooltip.summary": "一双_沉重的靴子_,让穿戴者可以更方便的探索海底。", "item.create.diving_boots.tooltip.condition1": "穿在脚上时", "item.create.diving_boots.tooltip.behaviour1": "穿戴者_下沉更快_并_无法游泳_。穿戴者可以在水下_行走_和_跳跃_。穿戴者不会被_传送带_移走。", - "item.create.crafting_blueprint.tooltip": "合成蓝图", - "item.create.crafting_blueprint.tooltip.summary": "_放在_墙上。设置特定的_原料排布_以便更快地手搓物品。每个格子都可以设定一个配方。", + "item.create.crafting_blueprint.tooltip.summary": "_放在_墙上,便可用它来设置特定的_原料排布_,以便更快地制作物品。每个格子都可以设定一个配方。", "item.create.crafting_blueprint.condition1": "当右击空的格子时", - "item.create.crafting_blueprint.behaviour1": "打开一个_配方设置界面_,用于_设置_一个_合成配方_以及设置显示的图标。", + "item.create.crafting_blueprint.behaviour1": "打开一个_配方设置界面_,用于_设置_一个_合成配方_以及展示的物品。", "item.create.crafting_blueprint.condition2": "当右击设置好的格子时", - "item.create.crafting_blueprint.behaviour2": "使用_物品栏_中的物品制作_设置的配方_。_潜行_以一次合成_一组_。", - + "item.create.crafting_blueprint.behaviour2": "使用_物品栏_中的物品制作_设置的配方_。_潜行_可以一次合成_一组_。", "item.create.minecart_coupling.tooltip": "矿车连轴器", - "item.create.minecart_coupling.tooltip.summary": "将多个_矿车_或运输结构链接在一起,构成雄伟的火车。", + "item.create.minecart_coupling.tooltip.summary": "将多个_矿车_或_连接运输装置_链接在一起,构成雄伟的火车。", "item.create.minecart_coupling.tooltip.condition1": "作用与矿车时", "item.create.minecart_coupling.tooltip.behaviour1": "将两个矿车耦合在一起,在移动时将它们保持_恒定的距离_。", - "block.create.peculiar_bell.tooltip": "奇异钟", - "block.create.peculiar_bell.tooltip.summary": "装饰用的_黄铜质钟_。放在_灵魂火_的正上方可能会产生意料之外的后果……", - - "block.create.haunted_bell.tooltip": "怪异钟", - "block.create.haunted_bell.tooltip.summary": "_被诅咒_的钟,其中充满了来自下界的迷失的灵魂。", + "block.create.peculiar_bell.tooltip.summary": "装饰用的_黄铜质钟_。放在_灵魂火_的正上方可能会产生意料之外的后果......", + "block.create.haunted_bell.tooltip": "森魂钟", + "block.create.haunted_bell.tooltip.summary": "_被诅咒_的钟,来自下界的迷失的灵魂缠绕于其上。", "block.create.haunted_bell.tooltip.condition1": "当手持或鸣响时", - "block.create.haunted_bell.tooltip.behaviour1": "标识出附近可能生成_敌对生物_的_黑暗_的地方。", - - - "_": "->------------------------] Ponder Content [------------------------<-", - + "block.create.haunted_bell.tooltip.behaviour1": "标识出附近可能生成_敌对生物_的_亮度不足_之处。", "create.ponder.hold_to_ponder": "按住 [%1$s] 开始思索", "create.ponder.subject": "情景主题", "create.ponder.pondering": "思索...", @@ -1505,10 +1394,10 @@ "create.ponder.think_back": "回想", "create.ponder.slow_text": "舒适阅读", "create.ponder.exit": "退出", - "create.ponder.welcome": "欢迎来到思索项目列表", + "create.ponder.welcome": "欢迎来到思索界面", "create.ponder.categories": "机械动力中包含的条目", "create.ponder.index_description": "点击一个图标来查看相关的物品和方块。", - "create.ponder.index_title": "思索项目列表", + "create.ponder.index_title": "思索索引", "create.ponder.shared.rpm16": "16 RPM", "create.ponder.shared.behaviour_modify_wrench": "可以用扳手调整它的行为。", "create.ponder.shared.storage_on_contraption": "与装置相接的存储空间,会自动将装置遇到的掉落物拾取到空间内。", @@ -1516,12 +1405,12 @@ "create.ponder.shared.rpm8": "8 RPM", "create.ponder.shared.ctrl_and": "Ctrl +", "create.ponder.shared.rpm32": "32 RPM", - "create.ponder.shared.rpm16_source": "动力源:16 R", + "create.ponder.shared.rpm16_source": "动力源:16 RPM", "create.ponder.shared.movement_anchors": "有了底盘和强力胶,移动起大型结构轻轻松松。", "create.ponder.tag.redstone": "逻辑组件", "create.ponder.tag.redstone.description": "这些组件会在红石工程中发挥大用处。", - "create.ponder.tag.contraption_assembly": "方块连接物件", - "create.ponder.tag.contraption_assembly.description": "将各个组件连接以便同时运动的物件", + "create.ponder.tag.contraption_assembly": "方块连接功能", + "create.ponder.tag.contraption_assembly.description": "将各个组件连接以便同时运动的工具以及组件", "create.ponder.tag.fluids": "流体操纵器械", "create.ponder.tag.fluids.description": "这些组件可以用于传递流体,以及利用流体进行工作。", "create.ponder.tag.decoration": "装饰", @@ -1544,30 +1433,25 @@ "create.ponder.tag.creative.description": "总有些东西是生存模式得不到的。", "create.ponder.tag.logistics": "物品运输", "create.ponder.tag.logistics.description": "该组件可以协助物品运输", - "create.ponder.adjustable_pulse_repeater.header": "使用可调节脉冲中继器控制信号发送", "create.ponder.adjustable_pulse_repeater.text_1": "可调节脉冲中继器在一段延时之后会发出一道短时脉冲", "create.ponder.adjustable_pulse_repeater.text_2": "滑动滚轮即可更改延时时间", "create.ponder.adjustable_pulse_repeater.text_3": "延时配置范围的上限为 30 分钟", - "create.ponder.adjustable_repeater.header": "使用可调节中继器控制信号发送", "create.ponder.adjustable_repeater.text_1": "可调节中继器与常规的中继器的行为较为相似", "create.ponder.adjustable_repeater.text_2": "它们会进行一段时间的充能,时长为设定的时间...", "create.ponder.adjustable_repeater.text_3": "...然后以同样的时长逐渐退出充能状态", "create.ponder.adjustable_repeater.text_4": "滑动滚轮即可更改充能时间", "create.ponder.adjustable_repeater.text_5": "延时配置范围的上限为 30 分钟", - "create.ponder.analog_lever.header": "使用模拟拉杆控制信号发送", "create.ponder.analog_lever.text_1": "要想使得红石信号源信号强度精确且占地面积小,模拟拉杆不可少。", "create.ponder.analog_lever.text_2": "右击可以提升输出模拟信号的强度", "create.ponder.analog_lever.text_3": "潜行右击将会减少输出模拟信号的强度", - "create.ponder.andesite_tunnel.header": "安山隧道用法", "create.ponder.andesite_tunnel.text_1": "安山隧道可用于遮掩传送带", "create.ponder.andesite_tunnel.text_2": "只要在漏斗的侧边加装上安山隧道...", "create.ponder.andesite_tunnel.text_3": "...路过的所有物品堆都会被精准地拣出一个物品", "create.ponder.andesite_tunnel.text_4": "剩下的物品则不受影响,继续前进", - "create.ponder.basin.header": "工作盆内物品处理", "create.ponder.basin.text_1": "一个可以对放入的物品以及流体进行处理的盆", "create.ponder.basin.text_2": "处理完毕后,工作盆会尝试从它的底面进行产物输出", @@ -1578,15 +1462,12 @@ "create.ponder.basin.text_7": "这在产物需要作为新一轮处理的原料时相当有用", "create.ponder.basin.text_8": "需要输出的产物仍需从盆内取出", "create.ponder.basin.text_9": "若是加装过滤,那么你便无需担心会将未被处理的物品抽取出来了", - "create.ponder.bearing_modes.header": "动力轴承的运动模式", - "create.ponder.bearing_modes.text_1": "当结构停止时,轴承会控制结构以特定的角度停在最近的与格相对齐之处", + "create.ponder.bearing_modes.text_1": "停止时,轴承会控制结构以特定的角度停在最近的与格相对齐之处", "create.ponder.bearing_modes.text_2": "你可以调整整个结构永不方块化,或者仅在结构的起始位置方块化", - "create.ponder.belt_casing.header": "带机壳的传送带", "create.ponder.belt_casing.text_1": "你可以用黄铜或者安山机壳装饰你的传送带", "create.ponder.belt_casing.text_2": "使用扳手即可移除机壳", - "create.ponder.belt_connector.header": "传送带用法", "create.ponder.belt_connector.text_1": "手持传送带右击两根传动杆,可以将两根杆连接起来。", "create.ponder.belt_connector.text_2": "如果不小心选错了,潜行右击即可取消选择", @@ -1594,7 +1475,6 @@ "create.ponder.belt_connector.text_4": "通过传送带相连的传动杆,会以相同的转速以及方向进行旋转", "create.ponder.belt_connector.text_5": "加装的传动杆可以用扳手拆下来", "create.ponder.belt_connector.text_6": "传送带亦可染色", - "create.ponder.belt_directions.header": "传送带的有效连接方向", "create.ponder.belt_directions.text_1": "传送带的连接方向并不是任意的", "create.ponder.belt_directions.text_2": "1. 可以水平连接", @@ -1602,23 +1482,19 @@ "create.ponder.belt_directions.text_4": "3. 可以垂直连接", "create.ponder.belt_directions.text_5": "4. 还可以水平连接竖直放置的传动杆", "create.ponder.belt_directions.text_6": "以上为所有可能的连接方向。传送带的连接范围为 2 到 20 格", - "create.ponder.belt_transport.header": "在物流中使用传送带", "create.ponder.belt_transport.text_1": "运动的传送带可以运输物品以及其他实体", "create.ponder.belt_transport.text_2": "空手右击传送带,即可将其上的物品拿下来。", - "create.ponder.blaze_burner.header": "烈焰人燃烧室补喂", "create.ponder.blaze_burner.text_1": "烈焰人燃烧室可以为工作盆的物品处理提供热量", "create.ponder.blaze_burner.text_2": "因而,你需要喂给室内的烈焰人一些可燃物品", "create.ponder.blaze_burner.text_3": "如果喂给了它烈焰蛋糕,它还能达到更强的热力等级", "create.ponder.blaze_burner.text_4": "你可以用机械手或者机械臂进行自动化补喂", - "create.ponder.brass_funnel.header": "黄铜漏斗", "create.ponder.brass_funnel.text_1": "安山岩漏斗一次只能提取出一个物品。", "create.ponder.brass_funnel.text_2": "黄铜漏斗可以一次提取一组物品。", "create.ponder.brass_funnel.text_3": "对着过滤槽滑动滚轮,还可以精确调节黄铜漏斗的提取数量。", "create.ponder.brass_funnel.text_4": "对着过滤槽使用某个物品,可以限制漏斗的行为,使其只传输匹配的物品。", - "create.ponder.brass_tunnel.header": "黄铜隧道用法", "create.ponder.brass_tunnel.text_1": "黄铜隧道可以遮掩住你的传送带", "create.ponder.brass_tunnel.text_2": "隧道的每一个开口面都有过滤槽", @@ -1628,7 +1504,6 @@ "create.ponder.brass_tunnel.text_6": "连接了平行传送带的黄铜隧道,会将隧道、传送带组成一个组", "create.ponder.brass_tunnel.text_7": "输入组内的物品会被分配到所有组内连接的对象中", "create.ponder.brass_tunnel.text_8": "在这一情况下,你仍可以将物品直接输入到隧道方块中", - "create.ponder.brass_tunnel_modes.header": "黄铜隧道的分配模式", "create.ponder.brass_tunnel_modes.text_1": "使用扳手即可调节隧道的分配模式", "create.ponder.brass_tunnel_modes.text_10": "“同步输入”是黄铜隧道的一种特殊设定", @@ -1642,33 +1517,27 @@ "create.ponder.brass_tunnel_modes.text_7": "“强制轮询调度”不会跳过输出口", "create.ponder.brass_tunnel_modes.text_8": "“最近优先”会将物品优先送入距离输入口更近的输出口", "create.ponder.brass_tunnel_modes.text_9": "“随机”会随机选择一个输出口,一次性送入所有物品", - - "create.ponder.cart_assembler.header": "使用矿车装配站组装运动结构", + "create.ponder.cart_assembler.header": "使用矿车装配站控制结构移动", "create.ponder.cart_assembler.text_1": "矿车装配站会将它所连接的结构安装到矿车上", "create.ponder.cart_assembler.text_2": "若没有通入红石信号,它会将矿车装置解散为方块的形式", "create.ponder.cart_assembler.text_3": "对着矿车使用你的扳手,装置会变为可搬运的形式", - - "create.ponder.cart_assembler_dual.header": "组装连接结构", + "create.ponder.cart_assembler_dual.header": "组装连接运输装置", "create.ponder.cart_assembler_dual.text_1": "若两个装配矿车分享了同一个结构", - "create.ponder.cart_assembler_dual.text_2": "给其中的任意一方的矿车装配站通入红石信号,都会创建出连接装置", + "create.ponder.cart_assembler_dual.text_2": "给其中的任意一方的矿车装配站通入红石信号,都会创建出连接运输装置", "create.ponder.cart_assembler_dual.text_3": "两辆矿车的此时行为与用矿车连轴器连接在一起时十分相似", - "create.ponder.cart_assembler_modes.header": "矿车装置的方向设定", "create.ponder.cart_assembler_modes.text_1": "矿车装置会随着矿车的运动而发生转向", "create.ponder.cart_assembler_modes.text_2": "矿车装置上的箭头表明了哪一侧是“前面”", - "create.ponder.cart_assembler_modes.text_3": "如果装配结构的方向锁定了,那么结构的方向将不再改变", - + "create.ponder.cart_assembler_modes.text_3": "如果装配站的配置为“旋转锁定”,那么装置的方向将不会改变", "create.ponder.cart_assembler_rails.header": "另外几种矿车以及铁轨", "create.ponder.cart_assembler_rails.text_1": "放置在普通轨道上的矿车装配站并不会影响路过矿车装置的运动", "create.ponder.cart_assembler_rails.text_2": "如果放置在充能或控制铁轨上且没有通入红石信号,那么路过的矿车将会停在此处", "create.ponder.cart_assembler_rails.text_3": "另外的几种矿车可以当作锚来使用", "create.ponder.cart_assembler_rails.text_4": "熔炉矿车会试图始终保持燃烧状态,并试图从路过的存储空间内抽取燃料", - "create.ponder.chain_drive.header": "使用链式传动箱传动旋转力", "create.ponder.chain_drive.text_1": "同一行上的链式传动箱会相互间传递旋转", "create.ponder.chain_drive.text_2": "所有以此种方式连接的传动杆都会以相同的方向进行旋转", "create.ponder.chain_drive.text_3": "同一行的传动箱内的任意一个传动箱,旋转 90 度之后仍可以正常工作", - "create.ponder.chain_gearshift.header": "利用可调节链式传动箱进行转速调节", "create.ponder.chain_gearshift.text_1": "未充能的可调节链式传动箱与普通链式传动箱无异", "create.ponder.chain_gearshift.text_2": "当被充能时,它将会把旋转力以双倍转速传动至其他链式传动箱", @@ -1676,56 +1545,46 @@ "create.ponder.chain_gearshift.text_4": "在这两种情况中,同一组的其他链式传动箱的转速都为被充能的可调节链式传动箱的两倍", "create.ponder.chain_gearshift.text_5": "转速的倍率可在 x1 和 x2 间根据红石信号的强弱来精确调整", "create.ponder.chain_gearshift.text_6": "12 RPM", - "create.ponder.chute.header": "使用溜槽向下运输物品", "create.ponder.chute.text_1": "溜槽可在两个存储空间之间垂直传送物品", "create.ponder.chute.text_2": "使用扳手右击可以在溜槽上设置观察窗", "create.ponder.chute.text_3": "对着另一个溜槽的侧面放置另一个溜槽,将会放置下一个呈对角状的溜槽", - "create.ponder.chute_upward.header": "使用溜槽向上运输物品", "create.ponder.chute_upward.text_1": "在溜槽上或下方使用鼓风机时,物品会根据风的方向向上或下移动", "create.ponder.chute_upward.text_2": "佩戴工程师护目镜时,你可以看见物品的移动方向", "create.ponder.chute_upward.text_3": "在溜槽“被挡住的”底端,物品只能从侧边进行提取或输入", - - "create.ponder.clockwork_bearing.header": "使用时钟轴承来移动结构", - "create.ponder.clockwork_bearing.text_1": "时钟轴承黏附其正前方的方块", + "create.ponder.clockwork_bearing.header": "使用发条轴承来使结构运动", + "create.ponder.clockwork_bearing.text_1": "发条轴承黏附其正前方的方块", "create.ponder.clockwork_bearing.text_2": "当接受旋转力时,其附着结构会根据游戏内时间来进行旋转", "create.ponder.clockwork_bearing.text_3": "3:00", "create.ponder.clockwork_bearing.text_4": "4:00", - "create.ponder.clockwork_bearing.text_5": "右击可以来激活/停止结构运动", + "create.ponder.clockwork_bearing.text_5": "右击可以激活/停止结构运动", "create.ponder.clockwork_bearing.text_6": "在时针前方可添加第二个结构", "create.ponder.clockwork_bearing.text_7": "请确保这两个结构没有互相被例如强力胶等方式黏附", "create.ponder.clockwork_bearing.text_8": "第二个结构将会作为分针进行旋转", - "create.ponder.clutch.header": "使用离合器控制旋转力", "create.ponder.clutch.text_1": "离合器能将旋转力直线传递", "create.ponder.clutch.text_2": "当被红石充能,离合器会断开动力传递", - "create.ponder.cog_speedup.header": "使用齿轮来换挡变速", "create.ponder.cog_speedup.text_1": "大齿轮与小齿轮可以斜向传递动力", "create.ponder.cog_speedup.text_2": "从大齿轮传递动力至小齿轮时,转速翻倍", "create.ponder.cog_speedup.text_3": "从小齿轮传递动力至大齿轮时,转速减半", - "create.ponder.cogwheel.header": "使用齿轮来传递旋转力", "create.ponder.cogwheel.text_1": "齿轮会将动力传递至临近的齿轮", "create.ponder.cogwheel.text_2": "以此方式连接的齿轮,旋转方向相反", - "create.ponder.creative_fluid_tank.header": "创造流体储罐", - "create.ponder.creative_fluid_tank.text_1": "创造流体储罐可以提供无限数量的流体", - "create.ponder.creative_fluid_tank.text_2": "使用一个含有流体的容器右击它来设置它提供的流体", - "create.ponder.creative_fluid_tank.text_3": "流体管道可以从中无限提取设置的流体", + "create.ponder.creative_fluid_tank.text_1": "创造流体储罐可以提供无限量的流体", + "create.ponder.creative_fluid_tank.text_2": "使用一个含有流体的容器右击它,即可指定它提供特定的流体", + "create.ponder.creative_fluid_tank.text_3": "流体管道可以从中无限提取指定的流体", "create.ponder.creative_fluid_tank.text_4": "任何被输入创造流体储罐的液体都将被销毁", - "create.ponder.creative_motor.header": "使用创造马达发生旋转", "create.ponder.creative_motor.text_1": "创造马达不仅能够手动调配输出旋转力,而且体积相当小巧", "create.ponder.creative_motor.text_2": "对其背侧面板滚动滑轮,可以改变马达的输出旋转转速", - "create.ponder.crushing_wheels.header": "使用粉碎轮处理物品", "create.ponder.crushing_wheels.text_1": "一对粉碎轮,磨物快又准", "create.ponder.crushing_wheels.text_2": "接入的旋转必须使得这两个轮子从上到下啮合转动", "create.ponder.crushing_wheels.text_3": "扔入或者放入的物品都会被粉碎处理", "create.ponder.crushing_wheels.text_4": "你也可以使用自动化方案进行物品的输入以及拾取", - "create.ponder.deployer.header": "使用机械手", "create.ponder.deployer.text_1": "接入旋转力,机械手便可以模仿玩家的交互行为", "create.ponder.deployer.text_10": "对着机械手的前部右击,即可将手上的物品给予它使用", @@ -1742,50 +1601,41 @@ "create.ponder.deployer.text_7": "激活方块", "create.ponder.deployer.text_8": "采收方块", "create.ponder.deployer.text_9": "以及攻击生物", - "create.ponder.deployer_contraption.header": "在装置上使用机械手", - "create.ponder.deployer_contraption.text_1": "当机械手在移动的结构上时...", + "create.ponder.deployer_contraption.text_1": "当机械手在移动的装置上时...", "create.ponder.deployer_contraption.text_2": "机械手会对每一个经过的方块使用装置中任意容器内的物品", "create.ponder.deployer_contraption.text_3": "可以通过过滤槽来指定其从存储空间中抽取的物品", - "create.ponder.deployer_modes.header": "机械手的模式", "create.ponder.deployer_modes.text_1": "在默认情况下,机械手模仿玩家的右击交互", "create.ponder.deployer_modes.text_2": "使用扳手可以将模式调整为模仿玩家的左击交互", - "create.ponder.deployer_processing.header": "使用机械手处理物品", "create.ponder.deployer_processing.text_1": "当机械手持有合适的物品时,它可以自动处理下方的物品", "create.ponder.deployer_processing.text_2": "物品可以被丢在机械手下方,或放在置物台上", "create.ponder.deployer_processing.text_3": "当传送带上的物品经过机械手下方时...", "create.ponder.deployer_processing.text_4": "...机械手会使物品停下,然后处理这个物品", - "create.ponder.deployer_redstone.header": "使用红石控制机械手", "create.ponder.deployer_redstone.text_1": "当被红石充能时,机械手会停止工作", "create.ponder.deployer_redstone.text_2": "在停止工作前,机械手会完成当前正在进行的工作周期", "create.ponder.deployer_redstone.text_3": "因此,通入单次负红石脉冲可以精确控制机械手,使其每次只进行单个周期的工作", - "create.ponder.depot.header": "使用置物台", "create.ponder.depot.text_1": "置物台可以被当成一个“静止的”传送带原件使用", "create.ponder.depot.text_2": "右击可以手动放置或取下物品", "create.ponder.depot.text_3": "与传送带一样,它也可以将其内的物品转送到其他设备中进行加工...", "create.ponder.depot.text_4": "...同时物品也可以被机械手存取", - "create.ponder.empty_blaze_burner.header": "使用空的烈焰人燃烧室", "create.ponder.empty_blaze_burner.text_1": "手持空的烈焰人燃烧室右击烈焰人来抓取烈焰人", "create.ponder.empty_blaze_burner.text_2": "或者,也可以通过右击烈焰人刷怪笼来填充激活烈焰人燃烧室", "create.ponder.empty_blaze_burner.text_3": "这样,你便有了一个可供部分机器加工的热源", "create.ponder.empty_blaze_burner.text_4": "如果是为了美观,空的烈焰人燃烧室也可以被打火石点燃", - "create.ponder.empty_blaze_burner.text_5": "使用包含灵魂的物品可以将火焰变为灵魂火", - "create.ponder.empty_blaze_burner.text_6": "但是,这样的热源不足以给机器提加工供足够的热量", - - "create.ponder.encased_fluid_pipe.header": "遮掩流体管道", + "create.ponder.empty_blaze_burner.text_5": "你可以使用注入了灵魂的物品转化这种火焰", + "create.ponder.empty_blaze_burner.text_6": "但是,没有烈焰人,这样的火焰并不足以用于工业级加热工作", + "create.ponder.encased_fluid_pipe.header": "流体管道箱", "create.ponder.encased_fluid_pipe.text_1": "铜机壳可以用于装饰流体管道", - "create.ponder.encased_fluid_pipe.text_2": "除了遮掩流体管道之外,装有铜机壳的流体管道将不会改变其连接状态", + "create.ponder.encased_fluid_pipe.text_2": "除了遮掩流体管道之外,装箱的流体管道将不会改变其连接状态", "create.ponder.encased_fluid_pipe.text_3": "它将不会对旁边新增加或移除的管道做出反应", - "create.ponder.fan_direction.header": "鼓风机的气流", "create.ponder.fan_direction.text_1": "鼓风机使用旋转力来制造气流", "create.ponder.fan_direction.text_2": "流速以及方向由所接收旋转力的强弱以及方向而定", - "create.ponder.fan_processing.header": "使用鼓风机加工物品", "create.ponder.fan_processing.text_1": "当气流吹过熔岩时,气流会被加热", "create.ponder.fan_processing.text_2": "热气流中的物品会被冶炼", @@ -1795,145 +1645,119 @@ "create.ponder.fan_processing.text_6": "这种加工方法可以做到不少有趣的事情", "create.ponder.fan_processing.text_7": "鼓风机的转速对加工的速度没有影响,只影响气流的吹拂距离", "create.ponder.fan_processing.text_8": "而那些放置在置物台或者传送带上的物品,鼓风机也是可以处理的", - "create.ponder.fan_source.header": "使用鼓风机来产生旋转力", "create.ponder.fan_source.text_1": "如鼓风机的扇叶向下朝着热源放置,鼓风机可以借此产生旋转力", "create.ponder.fan_source.text_2": "当鼓风机接受红石信号后,它便会向外供给旋转力", - "create.ponder.fluid_pipe_flow.header": "使用管道运输流体", "create.ponder.fluid_pipe_flow.text_1": "流体管道可以用于连接两个或多个流体容器", - "create.ponder.fluid_pipe_flow.text_2": "使用扳手为直的管道增加观察窗", - "create.ponder.fluid_pipe_flow.text_3": "带有观察窗的管道不会建立侧向连接", - "create.ponder.fluid_pipe_flow.text_4": "通过使用动力泵,流体管道可以传输流体", - "create.ponder.fluid_pipe_flow.text_5": "一开始,流体不会真正被消耗", - "create.ponder.fluid_pipe_flow.text_6": "当管道内的液体流彻底联通之后,流体才会开始逐渐从一个容器中转移到另一个", + "create.ponder.fluid_pipe_flow.text_2": "使用扳手,可以为直管道安装观察窗", + "create.ponder.fluid_pipe_flow.text_3": "带有观察窗的管道不会建立侧向管道连接", + "create.ponder.fluid_pipe_flow.text_4": "使用动力泵,流体管道可以传输流体", + "create.ponder.fluid_pipe_flow.text_5": "一开始,流体不会真正地被抽出", + "create.ponder.fluid_pipe_flow.text_6": "只有当管道内的液体流彻底连通之后,流体才会开始逐渐从一个容器中转移到另一个", "create.ponder.fluid_pipe_flow.text_7": "这意味着流体管道本身并不真正存储任何流体", - "create.ponder.fluid_pipe_interaction.header": "抽取和填充流体容器", "create.ponder.fluid_pipe_interaction.text_1": "流体管道的末端可以与许多种容器连接", "create.ponder.fluid_pipe_interaction.text_2": "任何可以容纳流体的容器都可以被填充或从中抽取", - "create.ponder.fluid_pipe_interaction.text_3": "开放的管道口可以吸走流体源块...", + "create.ponder.fluid_pipe_interaction.text_3": "开放的管道口可以吸走流体源方块...", "create.ponder.fluid_pipe_interaction.text_4": "...或者将流体源排放出来", - "create.ponder.fluid_pipe_interaction.text_5": "管道也可以从许多其他方块中直接抽取流体", - + "create.ponder.fluid_pipe_interaction.text_5": "管道也可以从许多种其他方块中直接抽取流体", "create.ponder.fluid_tank_sizes.header": "流体储罐的大小", - "create.ponder.fluid_tank_sizes.text_1": "多格流体储罐可以被放置在一起来提供更大的容量", - "create.ponder.fluid_tank_sizes.text_2": "流体储罐最大可以有3x3的横截面...", - "create.ponder.fluid_tank_sizes.text_3": "...并且可以有超过30格高", + "create.ponder.fluid_tank_sizes.text_1": "流体储罐可以多格连接,提供更大的存储量", + "create.ponder.fluid_tank_sizes.text_2": "流体储罐最大横截面为 3x3...", + "create.ponder.fluid_tank_sizes.text_3": "...并且可以超过 30 格高", "create.ponder.fluid_tank_sizes.text_4": "使用扳手可以打开或关闭观察窗", - "create.ponder.fluid_tank_storage.header": "使用流体储罐存储流体", "create.ponder.fluid_tank_storage.text_1": "流体储罐可以存储大量的流体", - "create.ponder.fluid_tank_storage.text_2": "流体管道可以从任何一面将流体输入/输出流体储罐", + "create.ponder.fluid_tank_storage.text_2": "流体管道可以在流体储罐的任何一面将流体输入/输出", "create.ponder.fluid_tank_storage.text_3": "使用比较器可以检测储罐中的流体储量", - "create.ponder.fluid_tank_storage.text_4": "在生存模式中,无法直接用容器将流体装入或取出储罐", + "create.ponder.fluid_tank_storage.text_4": "在生存模式中,无法直接用容器向储罐中存入流体,或是取出流体", "create.ponder.fluid_tank_storage.text_5": "要装满/倒空流体容器,可以使用工作盆,分液池或注液器。", - "create.ponder.flywheel.header": "使用飞轮来产生旋转力", "create.ponder.flywheel.text_1": "飞轮和熔炉引擎必须配套使用,方可产生旋转力", "create.ponder.flywheel.text_2": "如此产生的旋转力具有非常大的应力值", "create.ponder.flywheel.text_3": "使用高炉会使得引擎的效率翻倍", - "create.ponder.funnel_compat.header": "漏斗的兼容性", "create.ponder.funnel_compat.text_1": "漏斗可以与一些其他组件互动", "create.ponder.funnel_compat.text_2": "动力锯", "create.ponder.funnel_compat.text_3": "置物台", "create.ponder.funnel_compat.text_4": "分液池", - "create.ponder.funnel_direction.header": "物流方向", "create.ponder.funnel_direction.text_1": "直接放置时,漏斗会将物品从容器中取出", "create.ponder.funnel_direction.text_2": "潜行时放置时,漏斗会将物品置入容器中", "create.ponder.funnel_direction.text_3": "使用扳手可以改变漏斗的存/取模式", "create.ponder.funnel_direction.text_4": "对大多数朝向放置的漏斗都具有此特性", "create.ponder.funnel_direction.text_5": "在传送带末端放置的漏斗会根据传送带的传动方向存/取物品", - "create.ponder.funnel_intro.header": "使用漏斗", "create.ponder.funnel_intro.text_1": "用漏斗来存取物品栏内的物品,可谓又快又好", - "create.ponder.funnel_redstone.header": "红石信号控制", "create.ponder.funnel_redstone.text_1": "红石信号会使漏斗停止工作", - "create.ponder.funnel_transfer.header": "直接运输", "create.ponder.funnel_transfer.text_1": "漏斗无法将物品传输到非开放式的物品栏中", "create.ponder.funnel_transfer.text_2": "溜槽和智能溜槽更适用于这样的场景", "create.ponder.funnel_transfer.text_3": "水平传输也是如此,也许传送带更方便快捷", - "create.ponder.furnace_engine.header": "使用熔炉引擎生产旋转力", "create.ponder.furnace_engine.text_1": "熔炉引擎会在与其相连熔炉工作时生产旋转力", "create.ponder.furnace_engine.text_2": "如此产生的旋转力具有非常大的应力值", "create.ponder.furnace_engine.text_3": "使用高炉会使得引擎的效率翻倍", - "create.ponder.gantry_carriage.header": "使用起重机取物器", "create.ponder.gantry_carriage.text_1": "起重机取物器可以被放置在起重机杆上,并且可以沿着起重机杆运动", "create.ponder.gantry_carriage.text_2": "起重机可以移动其黏附的方块", - "create.ponder.gantry_cascaded.header": "串联起重机", "create.ponder.gantry_cascaded.text_1": "无需强力胶,取物器便可与起重机杆相连", "create.ponder.gantry_cascaded.text_2": "即使是在移动的起重机杆上也是如此", "create.ponder.gantry_cascaded.text_3": "因此,起重机系统可以串联起来,如此可以影响到多轴向的运动", - "create.ponder.gantry_direction.header": "起重机移动方向", "create.ponder.gantry_direction.text_1": "起重机杆可以有相反的方向", "create.ponder.gantry_direction.text_2": "取物器的移动方向取决于起重机杆的方向", "create.ponder.gantry_direction.text_3": "......以及起重机杆的旋转方向", "create.ponder.gantry_direction.text_4": "在旋转传递中,此规则同样适用", - "create.ponder.gantry_redstone.header": "起重机的力传递", "create.ponder.gantry_redstone.text_1": "被红石信号激活的起重机,将不会移动其上的取物器", "create.ponder.gantry_redstone.text_2": "作为替代,杆上的旋转力会传递到取物器的输出杆上", - "create.ponder.gantry_shaft.header": "使用起重机杆", - "create.ponder.gantry_shaft.text_1": "起重机杆组成了起重机结构的基础。与其相接的载物器可以沿着杆进行移动。", - "create.ponder.gantry_shaft.text_2": "起重机结构可以移动与其相接的方块。", - + "create.ponder.gantry_shaft.text_1": "起重机杆组成了起重机系统的基础。与其相接的载物器可以沿着杆进行移动。", + "create.ponder.gantry_shaft.text_2": "起重机系统可以移动与其相接的方块。", "create.ponder.gearbox.header": "使用十字齿轮箱传递旋转力", "create.ponder.gearbox.text_1": "更改旋转轴,很容易使得整个旋转体系变得臃肿不堪", "create.ponder.gearbox.text_2": "十字齿轮箱则是替代方案,它的体积更为小巧紧", "create.ponder.gearbox.text_3": "侧边连接的传动杆,旋转方向与输入端一致", "create.ponder.gearbox.text_4": "直线连接的传动杆,旋转方向会被反转", - "create.ponder.gearshift.header": "使用反转齿轮箱控制旋转力", "create.ponder.gearshift.text_1": "反转齿轮箱可以直线传输旋转", "create.ponder.gearshift.text_2": "通入红石信号后,输出端的旋转方向会被反转", - "create.ponder.hand_crank.header": "使用手摇曲柄产生旋转力", "create.ponder.hand_crank.text_1": "玩家可以使用手摇曲柄来手动产生旋转力", "create.ponder.hand_crank.text_2": "按住右键可以逆时针旋转它", "create.ponder.hand_crank.text_3": "它产生的转速相对较高", "create.ponder.hand_crank.text_4": "潜行长按右键可以顺时针旋转它", - "create.ponder.hose_pulley.header": "使用软管滑轮抽取或排放流体", - "create.ponder.hose_pulley.text_1": "软管滑轮可以用于方便的抽取或填满一个较大区域中的流体", + "create.ponder.hose_pulley.text_1": "软管滑轮可以用于方便地对一个较大区域进行抽取液体或填满液体的操作", "create.ponder.hose_pulley.text_2": "通过输入动力可以调节软管末端的高度", "create.ponder.hose_pulley.text_3": "翻转动力输入的方向可以收起软管", "create.ponder.hose_pulley.text_4": "管道可以连接在另一侧", - "create.ponder.hose_pulley.text_5": "连接的管道可以将流体输入软管滑轮以在下方放置流体源...", + "create.ponder.hose_pulley.text_5": "连接的管道可以将流体输入到软管滑轮中,软管会在下方排出口处放置流体源...", "create.ponder.hose_pulley.text_6": "...或者提供吸力来抽取世界中的流体", "create.ponder.hose_pulley.text_7": "软管滑轮的抽取/排放速度取决于连接管道中流体的流速", - - "create.ponder.hose_pulley_infinite.header": "从大型水体中抽取或向其排放", - "create.ponder.hose_pulley_infinite.text_1": "当软管被放进足够大的水体中时...", + "create.ponder.hose_pulley_infinite.header": "被动抽取或排放从大体量流体中", + "create.ponder.hose_pulley_infinite.text_1": "当软管被放进足够大的流体中时...", "create.ponder.hose_pulley_infinite.text_2": "...它在抽取或排放液体时将不会影响流体源", - "create.ponder.hose_pulley_infinite.text_3": "可以从这些软管滑轮中无限的抽取或向其排放流体", - + "create.ponder.hose_pulley_infinite.text_3": "可以从这些软管滑轮中无限量地抽取或向其排放流体", "create.ponder.hose_pulley_level.header": "软管滑轮的排水/抽水机制", "create.ponder.hose_pulley_level.text_1": "当软管彻底收回时,软管滑轮无法工作。", - "create.ponder.hose_pulley_level.text_2": "流体会由上至下被抽取", + "create.ponder.hose_pulley_level.text_2": "抽取流体的顺序为从上到下", "create.ponder.hose_pulley_level.text_3": "流体表面最终将会被抽取到刚好低于软管开口", - "create.ponder.hose_pulley_level.text_4": "流体将会由下至上被填充", + "create.ponder.hose_pulley_level.text_4": "填充流体的顺序为从下到上", "create.ponder.hose_pulley_level.text_5": "流体最多只能被填充至软管开口所在的高度", - "create.ponder.item_drain.header": "使用分液池提取物品中的流体", - "create.ponder.item_drain.text_1": "分液池可以提取容器中的流体", - "create.ponder.item_drain.text_2": "右键点击可以将手持的容器中的流体倒入分液池", + "create.ponder.item_drain.text_1": "分液池可以提取物品中的流体", + "create.ponder.item_drain.text_2": "右击可以将手持物品中的流体倒入分液池中", "create.ponder.item_drain.text_3": "当物品从侧面输入时...", - "create.ponder.item_drain.text_4": "...物品将会经过分液池顶部,并在过程中将其包含的液体排入分液池", - "create.ponder.item_drain.text_5": "流体管到可以从分液池中抽取液体", - + "create.ponder.item_drain.text_4": "...物品将会经过分液池顶部,并在此过程中将其包含的液体排入分液池内", + "create.ponder.item_drain.text_5": "流体管道可以从分液池中抽取液体", "create.ponder.large_cogwheel.header": "使用大齿轮传递旋转力", "create.ponder.large_cogwheel.text_1": "大齿轮可以以特定的角度相互连接", "create.ponder.large_cogwheel.text_2": "可以利用大齿轮变更旋转轴向", - "create.ponder.linear_chassis_attachment.header": "使用机壳底盘黏合方块", "create.ponder.linear_chassis_attachment.text_1": "它的开放面可以变为黏性面", "create.ponder.linear_chassis_attachment.text_2": "再次点击黏性面,可以将它的相反面也变得具有黏性", @@ -1943,12 +1767,10 @@ "create.ponder.linear_chassis_attachment.text_6": "按住 Ctrl 滑动滚轮,你可以一次性调节所有底盘的影响范围", "create.ponder.linear_chassis_attachment.text_7": "若想让底盘的其他面也能粘方块,你需要用到强力胶", "create.ponder.linear_chassis_attachment.text_8": "利用这些机制,任何形状的机制都可以像装置那样移动", - "create.ponder.linear_chassis_group.header": "成组移动机壳底盘", "create.ponder.linear_chassis_group.text_1": "相邻的机壳底盘可以相互连接在一起", "create.ponder.linear_chassis_group.text_2": "其中的一个底盘若被移动,其余的底盘也会跟着移动", "create.ponder.linear_chassis_group.text_3": "不同种类的底盘,或者是朝向不一致的底盘,将不会相连", - "create.ponder.mechanical_arm.header": "配置动力臂", "create.ponder.mechanical_arm.text_1": "你得在放置动力臂之前就配置好它的输入以及输出端", "create.ponder.mechanical_arm.text_2": "手持动力臂右击某个存储空间,可以将其指定为目标", @@ -1958,7 +1780,6 @@ "create.ponder.mechanical_arm.text_6": "在有效范围内,机械臂可以有任意数量的输出以及输入端", "create.ponder.mechanical_arm.text_7": "然而,并不是所有的存储空间可以被直接交互", "create.ponder.mechanical_arm.text_8": "在此情况下,漏斗和置物台可以解决此问题", - "create.ponder.mechanical_arm_filtering.header": "过滤动力臂的输出端", "create.ponder.mechanical_arm_filtering.text_1": "输入", "create.ponder.mechanical_arm_filtering.text_2": "输出", @@ -1966,7 +1787,6 @@ "create.ponder.mechanical_arm_filtering.text_4": "动力臂自身并不提供任何过滤选项", "create.ponder.mechanical_arm_filtering.text_5": "然而,若将黄铜漏斗作为目标,则漏斗的过滤槽则可以应用至动力臂上", "create.ponder.mechanical_arm_filtering.text_6": "动力臂足够智能,它不会去拿取那些它无法分配的物品", - "create.ponder.mechanical_arm_modes.header": "动力臂的分配模式", "create.ponder.mechanical_arm_modes.text_1": "输入", "create.ponder.mechanical_arm_modes.text_2": "输出", @@ -1977,16 +1797,13 @@ "create.ponder.mechanical_arm_modes.text_7": "如果某个输出端无法容纳更多物品,则它会被跳过", "create.ponder.mechanical_arm_modes.text_8": "强制轮询调度不会跳过任何输出端,动力臂会一直等待,直到输出端有空位容纳物品输入", "create.ponder.mechanical_arm_modes.text_9": "最近优先模式会使得动力臂先将物品输出至更早被选择的输出端", - "create.ponder.mechanical_arm_redstone.header": "利用红石信号控制动力臂", "create.ponder.mechanical_arm_redstone.text_1": "通入红石信号后,动力臂会停止工作", "create.ponder.mechanical_arm_redstone.text_2": "在停止工作前,它会完成当前正在进行的工作周期", "create.ponder.mechanical_arm_redstone.text_3": "因此,通入单次负红石脉冲可以精确控制动力臂,使其每次只进行单个周期的工作", - "create.ponder.mechanical_bearing.header": "使用动力轴承移动结构", "create.ponder.mechanical_bearing.text_1": "动力轴承会与其前方的方块黏合在一起", "create.ponder.mechanical_bearing.text_2": "接收到旋转力后,它会将这一黏合结构组装为旋转装置", - "create.ponder.mechanical_crafter.header": "设置动力合成器", "create.ponder.mechanical_crafter.text_1": "动力合成器阵列可用于自动化任何合成配方的制作", "create.ponder.mechanical_crafter.text_2": "使用扳手可以调控合成器的合成通路", @@ -1996,108 +1813,88 @@ "create.ponder.mechanical_crafter.text_6": "右击合成器正面,可以手动放入物品", "create.ponder.mechanical_crafter.text_7": "一旦合成通路上的所有合成槽位都有了物品,合成就会开始", "create.ponder.mechanical_crafter.text_8": "而对于那些没有完全占满所有合成器槽位的配方,你可以通入红石信号强制开启合成", - "create.ponder.mechanical_crafter_connect.header": "为合成器连接物品栏", "create.ponder.mechanical_crafter_connect.text_1": "合成器可以自动接受向其输入的物品", "create.ponder.mechanical_crafter_connect.text_2": "对其背面使用扳手,可以连接合成器", "create.ponder.mechanical_crafter_connect.text_3": "所有相连的合成器可以访问同一个位置的输入", - "create.ponder.mechanical_crafter_covers.header": "盖住动力合成器的合成槽", "create.ponder.mechanical_crafter_covers.text_1": "有些配方需要额外的合成器,来补足合成通路上的间隙", "create.ponder.mechanical_crafter_covers.text_2": "使用合成槽盖板,合成器会在合成进行时的行为就如同一个空的合成槽位", "create.ponder.mechanical_crafter_covers.text_3": "被盖住的合成器并不会阻断共享输入端的影响", - "create.ponder.mechanical_drill.header": "使用动力钻头破坏方块", "create.ponder.mechanical_drill.text_1": "当向其通入旋转力后,动力钻头会破坏它面前的方块", "create.ponder.mechanical_drill.text_2": "它的挖掘速度取决于通入的旋转力转速", - "create.ponder.mechanical_drill_contraption.header": "在装置中使用动力钻头", "create.ponder.mechanical_drill_contraption.text_1": "在运动装置中使用动力钻头时...", "create.ponder.mechanical_drill_contraption.text_2": "...它会破坏掉它撞上的方块", - "create.ponder.mechanical_harvester.header": "在装置中使用动力收割机", "create.ponder.mechanical_harvester.text_1": "在运动装置中使用动力收割机时...", "create.ponder.mechanical_harvester.text_2": "它会采收其路径上的作物,并重置这些作物的生长进度", - "create.ponder.mechanical_mixer.header": "使用动力搅拌器处理物品", "create.ponder.mechanical_mixer.text_1": "使用搅拌器和工作盆,你可以自动化某些合成配方", "create.ponder.mechanical_mixer.text_2": "有效配方包括各种无序合成配方,以及一些额外的配方", "create.ponder.mechanical_mixer.text_3": "一些配方可能需要使用烈焰人燃烧室提供热量", "create.ponder.mechanical_mixer.text_4": "过滤槽可用于解决两个配方相互冲突的情况", - "create.ponder.mechanical_piston.header": "使用动力活塞移动结构", "create.ponder.mechanical_piston.text_1": "动力活塞可以移动它前方的方块", "create.ponder.mechanical_piston.text_2": "移动速度和方向取决于通入活塞的旋转力", "create.ponder.mechanical_piston.text_3": "黏性动力活塞可以将相接的方块拉回来", - "create.ponder.mechanical_piston_modes.header": "动力活塞的移动模式", "create.ponder.mechanical_piston_modes.text_1": "一旦活塞停下,被移动的结构就会回退到方块状态", "create.ponder.mechanical_piston_modes.text_2": "你也可以将其配置为从不方块化,或者只在起始位置方块化", - "create.ponder.mechanical_plough.header": "在装置中使用动力犁", "create.ponder.mechanical_plough.text_1": "在运动装置中使用动力犁时...", "create.ponder.mechanical_plough.text_2": "...它会破坏掉那些不具有固体碰撞箱的方块", "create.ponder.mechanical_plough.text_3": "此外,动力犁可以耕地", "create.ponder.mechanical_plough.text_4": "...它也可以在不伤害实体的情况下推动它们", - "create.ponder.mechanical_press.header": "使用动力辊压机处理物品", "create.ponder.mechanical_press.text_1": "动力辊压机可以处理位于其下方的物品", "create.ponder.mechanical_press.text_2": "在其下方丢入物品,或者将物品放在置物台上,都算作有效的物品输入", - "create.ponder.mechanical_press.text_3": "当传送带上的物品经过辊压机下方时....", + "create.ponder.mechanical_press.text_3": "若物品位于传送带上...", "create.ponder.mechanical_press.text_4": "辊压机会使物品停下,然后自动处理这一物品", - "create.ponder.mechanical_press_compacting.header": "使用动力辊压机压缩物品", - "create.ponder.mechanical_press_compacting.text_1": "对放置于工作盆内的物品进行辊轧,可以将这些物品压缩在一起", + "create.ponder.mechanical_press_compacting.text_1": "对放置于工作盆内的物品进行辊压,可以将这些物品压缩在一起", "create.ponder.mechanical_press_compacting.text_2": "压缩意指任何同种物品填满了 2x2 或者 3x3 网格的配方,以及一些额外的配方", "create.ponder.mechanical_press_compacting.text_3": "一些配方可能需要烈焰人燃烧室提供热量", "create.ponder.mechanical_press_compacting.text_4": "过滤槽可用于解决两个配方相互冲突的情况", - "create.ponder.mechanical_pump_flow.header": "使用动力泵传输流体", - "create.ponder.mechanical_pump_flow.text_1": "动力泵可以控制管道中的液体流向", - "create.ponder.mechanical_pump_flow.text_2": "当接入动力时,其上的箭头指示液体流向", - "create.ponder.mechanical_pump_flow.text_3": "后方的管道中将会产生吸力...", - "create.ponder.mechanical_pump_flow.text_4": "...而液体将被输入前方的管道", - "create.ponder.mechanical_pump_flow.text_5": "反转动力方向将会改变液体流向", + "create.ponder.mechanical_pump_flow.text_1": "动力泵可以控制管道网络中的流体", + "create.ponder.mechanical_pump_flow.text_2": "当接入动力时,其上的箭头指示流体流向", + "create.ponder.mechanical_pump_flow.text_3": "泵后的管道网络正在抽取流体...", + "create.ponder.mechanical_pump_flow.text_4": "...而泵前的网络则把这些液体排到世界当中", + "create.ponder.mechanical_pump_flow.text_5": "反转动力方向将会改变流体流向", "create.ponder.mechanical_pump_flow.text_6": "使用扳手可以手动改变动力泵的朝向", - "create.ponder.mechanical_pump_speed.header": "动力泵的传输机制", - "create.ponder.mechanical_pump_speed.text_1": "动力泵的压力最多沿管线传递16格,与输入动力无关", - "create.ponder.mechanical_pump_speed.text_2": "输入动力将会影响压力改变速度...", + "create.ponder.mechanical_pump_speed.text_1": "动力泵的压力最多沿管线传递 16 格,与输入动力无关", + "create.ponder.mechanical_pump_speed.text_2": "提高输入动力,可以加快流的蔓延速度...", "create.ponder.mechanical_pump_speed.text_3": "...以及流体的传输速度", - "create.ponder.mechanical_pump_speed.text_4": "多个并联动力泵的传输量可以叠加", - "create.ponder.mechanical_pump_speed.text_5": "交替摆放动力泵可以方便的控制液体流动", - + "create.ponder.mechanical_pump_speed.text_4": "同一管道网络中的多个并联动力泵,它们的传输量可以叠加", + "create.ponder.mechanical_pump_speed.text_5": "使泵的传输方向相互交替,可以方便地控制流体流向", "create.ponder.mechanical_saw_breaker.header": "使用动力锯伐木", "create.ponder.mechanical_saw_breaker.text_1": "向其通入旋转力后,动力锯可以直接砍伐掉它面前的树木", "create.ponder.mechanical_saw_breaker.text_2": "想要一次性砍掉整棵树,锯子必须破坏掉树与地面连接的最后一个方块", - "create.ponder.mechanical_saw_contraption.header": "在装置中使用动力锯", "create.ponder.mechanical_saw_contraption.text_1": "若在运动装置中使用动力锯...", "create.ponder.mechanical_saw_contraption.text_2": "...它会将撞到它的树木破坏掉", - "create.ponder.mechanical_saw_processing.header": "使用动力锯处理物品", "create.ponder.mechanical_saw_processing.text_1": "面向朝上的动力锯可以将物品处理为其变种", "create.ponder.mechanical_saw_processing.text_2": "处理过后的物品的弹出方向始终与通入锯中的旋转转向相反", - "create.ponder.mechanical_saw_processing.text_3": "锯子可以配合其两侧的传送带输入输出", + "create.ponder.mechanical_saw_processing.text_3": "锯子可以与传送带放置在一条直线上,相互配合工作", "create.ponder.mechanical_saw_processing.text_4": "若输入原料有多种可能产物,你可以用动力锯上的过滤槽指定只产出某种产物", "create.ponder.mechanical_saw_processing.text_5": "若没有使用过滤槽,动力锯会在各产物中按顺序循环输出", - "create.ponder.millstone.header": "使用石磨处理物品", "create.ponder.millstone.text_1": "石磨会对输入的物品进行磨制", "create.ponder.millstone.text_2": "在其侧边使用齿轮与其相耦合,方可为其通入动力", "create.ponder.millstone.text_3": "顶部可以丢入或者塞入物品", "create.ponder.millstone.text_4": "一段时间过后,右击石磨可以拿出其中的产物", "create.ponder.millstone.text_5": "产物的提取也是可以自动化的", - "create.ponder.nixie_tube.header": "使用辉光管", "create.ponder.nixie_tube.text_1": "通入红石信号后,辉光管会显示出红石信号的强度", - "create.ponder.nixie_tube.text_2": "在其上右键使用更改过名称的命名牌,可以自定义它的显示文本", - "create.ponder.nixie_tube.text_3": "使用染料右键以更改辉光管的显示颜色", - + "create.ponder.nixie_tube.text_2": "在着它使用更改过名称的命名牌,可以自定义它的显示文本", + "create.ponder.nixie_tube.text_3": "使用染料右击,便可更改辉光管的显示颜色", "create.ponder.piston_pole.header": "活塞延长杆", "create.ponder.piston_pole.text_1": "若无相接的延长杆,动力活塞无法移动其他方块", "create.ponder.piston_pole.text_2": "在其背面安装的延长杆长度,决定了活塞的推动范围", - "create.ponder.portable_fluid_interface.header": "装置流体交换", "create.ponder.portable_fluid_interface.text_1": "管道无法与运动装置内的流体储罐直接交互", "create.ponder.portable_fluid_interface.text_2": "这一组件可以在不停止装置的情况下与装置内的流体存储进行交互", @@ -2107,7 +1904,6 @@ "create.ponder.portable_fluid_interface.text_6": "流体可被泵入到装置内....", "create.ponder.portable_fluid_interface.text_7": "...或是从装置中抽取出来", "create.ponder.portable_fluid_interface.text_8": "如果一小段时间内没有流体交换,接口将会断开连接,然后装置重新开始运动", - "create.ponder.portable_storage_interface.header": "装置存储交换", "create.ponder.portable_storage_interface.text_1": "玩家无法与运动装置内的存储空间进行交互", "create.ponder.portable_storage_interface.text_2": "这一组件可以在不停止装置的情况下与装置内的存储空间进行交互", @@ -2117,25 +1913,20 @@ "create.ponder.portable_storage_interface.text_6": "物品可被输入到装置内...", "create.ponder.portable_storage_interface.text_7": "...或是从装置中提取出来", "create.ponder.portable_storage_interface.text_8": "如果一小段时间内没有物品交换,接口将会断开连接,然后装置重新开始运动", - "create.ponder.portable_storage_interface_redstone.header": "红石控制", "create.ponder.portable_storage_interface_redstone.text_1": "通入红石信号可以阻止固定侧接口的连接行为", - "create.ponder.powered_latch.header": "使用锁存器控制信号", "create.ponder.powered_latch.text_1": "锁存器是一种可以用红石信号控制的拉杆", "create.ponder.powered_latch.text_2": "后方输入的信号会将其设为开启状态", "create.ponder.powered_latch.text_3": "侧边输入的信号会将其设为关闭状态", "create.ponder.powered_latch.text_4": "你也可以手动切换其状态", - "create.ponder.powered_toggle_latch.header": "使用转换锁存器控制信号", "create.ponder.powered_toggle_latch.text_1": "转换锁存器是一种可以用红石信号控制的拉杆", "create.ponder.powered_toggle_latch.text_2": "后方信号输入可以改变它的状态", "create.ponder.powered_toggle_latch.text_3": "...开启或者是关闭", "create.ponder.powered_toggle_latch.text_4": "你也可以手动切换其状态", - "create.ponder.pulse_repeater.header": "使用脉冲中继器控制信号", "create.ponder.pulse_repeater.text_1": "脉冲中继器会将所有通入的红石信号缩减为一次脉冲", - "create.ponder.radial_chassis.header": "使用旋转底盘黏着方块", "create.ponder.radial_chassis.text_1": "同一行上的旋转底盘会相互连接在一起", "create.ponder.radial_chassis.text_2": "当其中的一个底盘被装置带动时,其余的底盘也会被带动", @@ -2146,11 +1937,9 @@ "create.ponder.radial_chassis.text_7": "...底盘便会与同层且位于半径内的所有可及方块黏着在一起", "create.ponder.radial_chassis.text_8": "使用扳手可以精确指定底盘的影响范围", "create.ponder.radial_chassis.text_9": "黏性面一侧的不可及方块不会被黏着", - "create.ponder.redstone_contact.header": "接触式红石信号发生器", "create.ponder.redstone_contact.text_1": "当两个接触式红石信号发生器面对面时,它们会发出红石信号", "create.ponder.redstone_contact.text_2": "并且,若有一方位于运动装置上,此特性也能正常生效", - "create.ponder.redstone_link.header": "使用无线红石信号终端", "create.ponder.redstone_link.text_1": "无线红石信号终端可以无线传输红石信号", "create.ponder.redstone_link.text_2": "潜行右击可以改变其接收模式", @@ -2158,115 +1947,94 @@ "create.ponder.redstone_link.text_4": "接收端会发出由传输端发来的信号,有效距离为 128 格", "create.ponder.redstone_link.text_5": "在它们所带的槽位中放上物品,可以为它们指定频道", "create.ponder.redstone_link.text_6": "只有频道相互匹配的终端方可互通", - "create.ponder.rope_pulley.header": "使用绳索滑轮移动结构", "create.ponder.rope_pulley.text_1": "绳索滑轮在接受旋转力时可以垂直移动方块结构", "create.ponder.rope_pulley.text_2": "移动的方向及速度取决于提供的转速", - "create.ponder.rope_pulley_attachment.header": "绳索滑轮与装置一同运动", "create.ponder.rope_pulley_attachment.text_1": "当绳索滑轮本身在装置中被带动时...", "create.ponder.rope_pulley_attachment.text_2": "...它附着在滑轮上的结构会被滑轮拉着一同移动", "create.ponder.rope_pulley_attachment.text_3": "注意,只有绳索滑轮停止工作时才能被移动", - "create.ponder.rope_pulley_modes.header": "绳索滑轮的运动模式", "create.ponder.rope_pulley_modes.text_1": "当绳索滑轮停止运动时,它所附属的移动结构便会方块化", "create.ponder.rope_pulley_modes.text_2": "你可以调整整个结构永不方块化,或者仅在结构的初始位置方块化", - "create.ponder.rotation_speed_controller.header": "使用转速控制器", "create.ponder.rotation_speed_controller.text_1": "转速控制器将旋转力从其转轴传递至它上方的大齿轮", "create.ponder.rotation_speed_controller.text_2": "在其侧面滚动鼠标滚轮,可以调节输出转速", - "create.ponder.sail.header": "使用风帆来组装风车", "create.ponder.sail.text_1": "风帆是制作风车的趁手材料", "create.ponder.sail.text_2": "无需强力胶等黏附手段,它们便可自行互相连结", "create.ponder.sail.text_3": "手持染料右击可对其染色", "create.ponder.sail.text_4": "手持剪刀右击可剪除帆布,使其变回风帆框架", - "create.ponder.sail_frame.header": "使用风帆框架来组装风车", "create.ponder.sail_frame.text_1": "风帆框架是制作风车的趁手材料", "create.ponder.sail_frame.text_2": "无需强力胶等黏附手段,它们便可自行互相连结", - "create.ponder.sequenced_gearshift.header": "使用可编程齿轮箱来控制转速", "create.ponder.sequenced_gearshift.text_1": "可编程齿轮箱能够根据玩家设置的预设时序表来传递旋转", "create.ponder.sequenced_gearshift.text_2": "对其右击可以打开设置面板", "create.ponder.sequenced_gearshift.text_3": "接受红石信号时,它会开始执行其内部已配置好的时序指令表", "create.ponder.sequenced_gearshift.text_4": "当完成时序指令表后,它会进入待机状态,再次接受红石信号后,它才会再次执行时序指令表内容", "create.ponder.sequenced_gearshift.text_5": "红石比较器可以读取当前时序指令表完成进度", - "create.ponder.shaft.header": "使用传动杆传递旋转力", "create.ponder.shaft.text_1": "传动杆能直线传递旋转力", - "create.ponder.shaft_casing.header": "传动杆箱", "create.ponder.shaft_casing.text_1": "安山或黄铜机壳,装饰传动杆的好伙伴", - "create.ponder.smart_chute.header": "使用智能溜槽过滤物品", "create.ponder.smart_chute.text_1": "智能溜槽是垂直溜槽的升级控制版", "create.ponder.smart_chute.text_2": "当在其过滤槽内指定了物品后,溜槽只会传输这一指定标记的物品", "create.ponder.smart_chute.text_3": "使用鼠标滚轮可以指定被过滤的物品数量", "create.ponder.smart_chute.text_4": "通入红石信号,智能溜槽将会完全暂停工作", - - "create.ponder.smart_pipe.header": "使用智能流体管道控制液体流动", + "create.ponder.smart_pipe.header": "使用智能流体管道控制流体流动", "create.ponder.smart_pipe.text_1": "智能流体管道可以限制通过它的流体种类", "create.ponder.smart_pipe.text_2": "当紧邻流体源放置时,管道只会抽取设置的流体种类", - "create.ponder.smart_pipe.text_3": "使用任何包含流体的容器右键过滤槽来标记过滤的流体", - "create.ponder.smart_pipe.text_4": "当放在管线中时,只有匹配过滤器的流体才能流入它后方的管道", - + "create.ponder.smart_pipe.text_3": "使用任何包含流体的容器右击过滤槽,可以标记过滤的流体", + "create.ponder.smart_pipe.text_4": "当放在管道网络中时,只有匹配过滤器的流体才能通过此管道", "create.ponder.speedometer.header": "使用速度表来监测转速", "create.ponder.speedometer.text_1": "速度表能显示相接组件的转速", "create.ponder.speedometer.text_2": "当佩戴工程师护目镜时,可以看到仪表所显示的更详细的数据", "create.ponder.speedometer.text_3": "红石比较器可以根据速度表的数值输出不同强弱的红石信号", - "create.ponder.spout_filling.header": "使用注液器填充物品", - "create.ponder.spout_filling.text_1": "注液器可以将流体装入下方经过的,可以接受该流体的物品", + "create.ponder.spout_filling.text_1": "注液器可以将流体装入下方经过且可以接受该流体的物品", "create.ponder.spout_filling.text_2": "注液器的流体存储无法直接手动交互", - "create.ponder.spout_filling.text_3": "使用管线可以将流体输入注液器", - "create.ponder.spout_filling.text_4": "要被处理的物品可以被放置在其下方的置物台上", + "create.ponder.spout_filling.text_3": "使用管道可以将流体输入到注液器内", + "create.ponder.spout_filling.text_4": "输入的物品可以被放置在其下方的置物台上", "create.ponder.spout_filling.text_5": "当传送带上的物品经过注液器下方时...", "create.ponder.spout_filling.text_6": "注液器会使物品停下,然后自动处理这一物品", - "create.ponder.stabilized_bearings.header": "装置固定朝向", "create.ponder.stabilized_bearings.text_1": "当动力轴承在结构被带动时...", "create.ponder.stabilized_bearings.text_2": "...它会确保它转盘的垂直朝向不变", "create.ponder.stabilized_bearings.text_3": "跟默认的一样,动力轴承会黏着它前方的方块", - "create.ponder.stabilized_bearings.text_4": "这种情况下,它所黏着的子结构的垂直朝向也不会改变", - + "create.ponder.stabilized_bearings.text_4": "这种情况下,它所黏着的子装置的垂直朝向也不会改变", "create.ponder.sticker.header": "使用黏着器来黏附方块", "create.ponder.sticker.text_1": "你可以用红石信号来控制黏着器的行为", "create.ponder.sticker.text_2": "当接受红石信号时,黏着器会黏着前方的方块", "create.ponder.sticker.text_3": "如果黏着器以装置的形式移动,那么被黏着的方块也会一同移动", "create.ponder.sticker.text_4": "再次接受红石信号时,它会断开与方块的黏连", - "create.ponder.stressometer.header": "使用应力表来监测应力", "create.ponder.stressometer.text_1": "应力表能显示当前动能网络内的应力信息", "create.ponder.stressometer.text_2": "当佩戴工程师护目镜时,可以看到仪表所显示的更详细的数据", "create.ponder.stressometer.text_3": "红石比较器可以根据应力表的数值输出不同强弱的红石信号", - "create.ponder.super_glue.header": "使用强力胶来黏附方块", "create.ponder.super_glue.text_1": "强力胶可以在任意两个方块间使用", "create.ponder.super_glue.text_2": "当被粘合的方块被组装为装置时,他们会一起运动", "create.ponder.super_glue.text_3": "当强力胶在副手时...", "create.ponder.super_glue.text_4": "...新放置的方块会自动被黏附在所放置方块的面上", "create.ponder.super_glue.text_5": "左击可以清除强力胶", - "create.ponder.valve_handle.header": "使用阀门手轮产生旋转力", "create.ponder.valve_handle.text_1": "玩家可以手动使用阀门手轮来产生旋转力", "create.ponder.valve_handle.text_2": "右击可使它逆时针旋转", "create.ponder.valve_handle.text_3": "它的转速慢而精确", "create.ponder.valve_handle.text_4": "潜行右击可使它顺时针旋转", "create.ponder.valve_handle.text_5": "可以通过染色来美化阀门手轮", - "create.ponder.valve_pipe.header": "使用阀门管道控制液体流", - "create.ponder.valve_pipe.text_1": "阀门管道可以控制管道网中液体的去处", + "create.ponder.valve_pipe.text_1": "阀门管道可以控制管道网络中流体的蔓延", "create.ponder.valve_pipe.text_2": "通过其上的传动杆输入动力可以控制它的开关", - "create.ponder.valve_pipe.text_3": "提供旋转向‘打开’方向的力会打开阀门,使得流体可以通过", + "create.ponder.valve_pipe.text_3": "提供向“打开”方向的旋转力会打开阀门,使得流体可以通过", "create.ponder.valve_pipe.text_4": "提供另一方向的旋转力可以关闭阀门,阻止流体通过", - "create.ponder.water_wheel.header": "使用水车产生旋转力", "create.ponder.water_wheel.text_1": "水车利用临近的水流来进行应力发生", "create.ponder.water_wheel.text_2": "水车接触水流的面越多,它的转速越高", "create.ponder.water_wheel.text_3": "水车叶片应逆着水流方向摆放", "create.ponder.water_wheel.text_4": "如果顺着水流摆放,它的效率则会降低", - "create.ponder.weighted_ejector.header": "使用弹射置物台", "create.ponder.weighted_ejector.text_1": "手持弹射置物台时,潜行时右击可以设置弹射目标位置", "create.ponder.weighted_ejector.text_10": "现在,只有等被放置的物品数量等于所设定数量时,弹射置物台才会弹射物品", @@ -2279,18 +2047,15 @@ "create.ponder.weighted_ejector.text_7": "蓄力完毕后,放置在它上方的物品会被立刻弹射出去", "create.ponder.weighted_ejector.text_8": "如果目标为容器,则弹射置物台会等待容器有位置后再弹射物品", "create.ponder.weighted_ejector.text_9": "使用扳手可以调整弹射所要求的物品数量", - "create.ponder.weighted_ejector_redstone.header": "使用红石控制弹射置物台", "create.ponder.weighted_ejector_redstone.text_1": "当被红石充能时,弹射置物台停止工作", "create.ponder.weighted_ejector_redstone.text_2": "此外,置物台弹射的瞬间可以被侦测器侦测", - "create.ponder.weighted_ejector_tunnel.header": "使用弹射置物台来分流物品", "create.ponder.weighted_ejector_tunnel.text_1": "与黄铜隧道搭配使用时,弹射置物台可以将物品以特定数量进行分流", "create.ponder.weighted_ejector_tunnel.text_2": "首先,将黄铜隧道调整为“最近优先”模式,从而让它优先侧面输出", "create.ponder.weighted_ejector_tunnel.text_3": "置物台上所设置的物品数量则为被分流出去的物品数量", "create.ponder.weighted_ejector_tunnel.text_4": "当所设置的物品数量被分流出去后...", "create.ponder.weighted_ejector_tunnel.text_5": "...剩余的物品则会继续前进", - "create.ponder.windmill_source.header": "使用风车轴承产生旋转力", "create.ponder.windmill_source.text_1": "在风车轴承会黏附它前方的方块", "create.ponder.windmill_source.text_2": "如果有足够多的风帆方块黏附于其上,那么整体结构便可被视为风车", @@ -2298,10 +2063,6 @@ "create.ponder.windmill_source.text_4": "产生的转速取决于风帆方块的数量", "create.ponder.windmill_source.text_5": "使用扳手可以调整风车的旋转方向", "create.ponder.windmill_source.text_6": "任何时候右击轴承,都可以将其停止,这样方便于你修改风车的结构", - "create.ponder.windmill_structure.header": "风车装置", - "create.ponder.windmill_structure.text_1": "任何有至少 8 个风帆方块的结构,都被视为一个有效的风车", - - "_": "Thank you for translating Create!" - -} + "create.ponder.windmill_structure.text_1": "任何有至少 8 个风帆方块的结构,都被视为一个有效的风车" + } \ No newline at end of file From 1ec299deff1bc16862472339b45dcda3a56a6916 Mon Sep 17 00:00:00 2001 From: simibubi <31564874+simibubi@users.noreply.github.com> Date: Mon, 13 Sep 2021 18:11:04 +0200 Subject: [PATCH 52/79] Post-PR Datagen --- src/generated/resources/.cache/cache | 2 +- .../assets/create/lang/unfinished/zh_cn.json | 446 +++++++++--------- .../actors/FluidManipulationBehaviour.java | 14 +- .../create/foundation/config/CFluids.java | 4 +- 4 files changed, 234 insertions(+), 232 deletions(-) diff --git a/src/generated/resources/.cache/cache b/src/generated/resources/.cache/cache index 3af0320b7..28f03b4a8 100644 --- a/src/generated/resources/.cache/cache +++ b/src/generated/resources/.cache/cache @@ -437,7 +437,7 @@ dbc823d8cb38598e75871a2187b2a58d7f77f86a assets/create/lang/unfinished/nl_nl.jso ac609477c295be1705d3efc07848ffe6779fd397 assets/create/lang/unfinished/pl_pl.json 95e17b968103e0ef62411489e699d39ac7ff0b64 assets/create/lang/unfinished/pt_br.json b37f50f613b0df44032fe5d618a5ce7227be8087 assets/create/lang/unfinished/ru_ru.json -2254cfb88d58f6932451a1548341f10749deb2df assets/create/lang/unfinished/zh_cn.json +fa465cd2c595bcd71449ad432a1908e27897177a assets/create/lang/unfinished/zh_cn.json 6192a7ede669ae6b6f8de6701b8a924d6a756c4a assets/create/lang/unfinished/zh_tw.json 487a511a01b2a4531fb672f917922312db78f958 assets/create/models/block/acacia_window.json b48060cba1a382f373a05bf0039054053eccf076 assets/create/models/block/acacia_window_pane_noside.json diff --git a/src/generated/resources/assets/create/lang/unfinished/zh_cn.json b/src/generated/resources/assets/create/lang/unfinished/zh_cn.json index 2d31c18df..0d0f8f5bc 100644 --- a/src/generated/resources/assets/create/lang/unfinished/zh_cn.json +++ b/src/generated/resources/assets/create/lang/unfinished/zh_cn.json @@ -1,10 +1,10 @@ { - "_": "Missing Localizations: 5", + "_": "Missing Localizations: 4", "_": "->------------------------] Game Elements [------------------------<-", - "block.create.acacia_window": "金合欢窗户", - "block.create.acacia_window_pane": "金合欢窗户板", + "block.create.acacia_window": "金合欢木窗户", + "block.create.acacia_window_pane": "金合欢木窗户板", "block.create.adjustable_chain_gearshift": "可调节链式传动箱", "block.create.adjustable_crate": "可调节板条箱", "block.create.adjustable_pulse_repeater": "可调节脉冲中继器", @@ -26,8 +26,8 @@ "block.create.andesite_tunnel": "安山岩隧道", "block.create.basin": "工作盆", "block.create.belt": "传送带", - "block.create.birch_window": "白桦窗户", - "block.create.birch_window_pane": "白桦窗户板", + "block.create.birch_window": "白桦木窗户", + "block.create.birch_window_pane": "白桦木窗户板", "block.create.black_nixie_tube": "黑色辉光管", "block.create.black_sail": "黑色风帆", "block.create.black_seat": "黑色坐垫", @@ -56,12 +56,12 @@ "block.create.chiseled_weathered_limestone": "錾制风化石灰岩", "block.create.chocolate": "巧克力", "block.create.chute": "溜槽", - "block.create.clockwork_bearing": "时钟轴承", + "block.create.clockwork_bearing": "发条轴承", "block.create.clutch": "离合器", "block.create.cogwheel": "齿轮", "block.create.content_observer": "物品侦测器", "block.create.controller_rail": "控制铁轨", - "block.create.copper_backtank": "铜制背罐", + "block.create.copper_backtank": "Copper Backtank", "block.create.copper_block": "铜块", "block.create.copper_casing": "铜机壳", "block.create.copper_ore": "铜矿石", @@ -71,8 +71,8 @@ "block.create.creative_crate": "创造板条箱", "block.create.creative_fluid_tank": "创造流体储罐", "block.create.creative_motor": "创造马达", - "block.create.crimson_window": "绯红窗户", - "block.create.crimson_window_pane": "绯红窗户板", + "block.create.crimson_window": "绯红木窗户", + "block.create.crimson_window_pane": "绯红木窗户板", "block.create.crushing_wheel": "粉碎轮", "block.create.crushing_wheel_controller": "粉碎轮控制器", "block.create.cuckoo_clock": "布谷鸟闹钟", @@ -192,14 +192,14 @@ "block.create.green_seat": "绿色坐垫", "block.create.green_valve_handle": "绿色阀门手轮", "block.create.hand_crank": "手摇曲柄", - "block.create.haunted_bell": "怪异钟", + "block.create.haunted_bell": "森魂钟", "block.create.honey": "蜂蜜", "block.create.horizontal_framed_glass": "竖直边框玻璃", "block.create.horizontal_framed_glass_pane": "竖直边框玻璃板", "block.create.hose_pulley": "软管滑轮", "block.create.item_drain": "分液池", - "block.create.jungle_window": "丛林窗户", - "block.create.jungle_window_pane": "丛林窗户板", + "block.create.jungle_window": "丛林木窗户", + "block.create.jungle_window_pane": "丛林木窗户板", "block.create.large_cogwheel": "大齿轮", "block.create.layered_andesite": "层叠安山岩", "block.create.layered_dark_scoria": "层叠深色熔渣", @@ -255,15 +255,15 @@ "block.create.metal_bracket": "金属支架", "block.create.millstone": "石磨", "block.create.minecart_anchor": "矿车锚", - "block.create.mossy_andesite": "生苔安山岩", - "block.create.mossy_dark_scoria": "生苔深色熔渣", - "block.create.mossy_diorite": "生苔闪长岩", - "block.create.mossy_dolomite": "生苔白云岩", - "block.create.mossy_gabbro": "生苔辉长岩", - "block.create.mossy_granite": "生苔花岗岩", - "block.create.mossy_limestone": "生苔石灰岩", - "block.create.mossy_scoria": "生苔熔渣", - "block.create.mossy_weathered_limestone": "生苔风化石灰岩", + "block.create.mossy_andesite": "覆苔安山岩", + "block.create.mossy_dark_scoria": "覆苔深色熔渣", + "block.create.mossy_diorite": "覆苔闪长岩", + "block.create.mossy_dolomite": "覆苔白云岩", + "block.create.mossy_gabbro": "覆苔辉长岩", + "block.create.mossy_granite": "覆苔花岗岩", + "block.create.mossy_limestone": "覆苔石灰岩", + "block.create.mossy_scoria": "覆苔熔渣", + "block.create.mossy_weathered_limestone": "覆苔风化石灰岩", "block.create.mysterious_cuckoo_clock": "布谷鸟闹钟", "block.create.natural_scoria": "天然熔渣", "block.create.nixie_tube": "辉光管", @@ -275,15 +275,15 @@ "block.create.orange_valve_handle": "橙色阀门手轮", "block.create.ornate_iron_window": "华丽铁窗户", "block.create.ornate_iron_window_pane": "华丽铁窗户板", - "block.create.overgrown_andesite": "生草安山岩", - "block.create.overgrown_dark_scoria": "生草深色熔渣", - "block.create.overgrown_diorite": "生草闪长岩", - "block.create.overgrown_dolomite": "生草白云岩", - "block.create.overgrown_gabbro": "生草辉长岩", - "block.create.overgrown_granite": "生草花岗岩", - "block.create.overgrown_limestone": "生草石灰岩", - "block.create.overgrown_scoria": "生草熔渣", - "block.create.overgrown_weathered_limestone": "生草风化石灰岩", + "block.create.overgrown_andesite": "覆草安山岩", + "block.create.overgrown_dark_scoria": "覆草深色熔渣", + "block.create.overgrown_diorite": "覆草闪长岩", + "block.create.overgrown_dolomite": "覆草白云岩", + "block.create.overgrown_gabbro": "覆草辉长岩", + "block.create.overgrown_granite": "覆草花岗岩", + "block.create.overgrown_limestone": "覆草石灰岩", + "block.create.overgrown_scoria": "覆草熔渣", + "block.create.overgrown_weathered_limestone": "覆草风化石灰岩", "block.create.paved_andesite": "安山岩铺路石", "block.create.paved_andesite_slab": "安山岩铺路石台阶", "block.create.paved_andesite_stairs": "安山岩铺路石楼梯", @@ -321,7 +321,7 @@ "block.create.paved_weathered_limestone_stairs": "风化石灰岩铺路石楼梯", "block.create.paved_weathered_limestone_wall": "风化石灰岩铺路石墙", "block.create.peculiar_bell": "奇异钟", - "block.create.pink_nixie_tube": "粉色辉光管", + "block.create.pink_nixie_tube": "粉红色辉光管", "block.create.pink_sail": "粉红色风帆", "block.create.pink_seat": "粉红色坐垫", "block.create.pink_valve_handle": "粉红色阀门手轮", @@ -385,7 +385,7 @@ "block.create.scoria_cobblestone_stairs": "熔渣圆石楼梯", "block.create.scoria_cobblestone_wall": "熔渣圆石墙", "block.create.scoria_pillar": "竖纹熔渣", - "block.create.secondary_linear_chassis": "机壳底盘2号", + "block.create.secondary_linear_chassis": "机壳底盘 2 号", "block.create.sequenced_gearshift": "可编程齿轮箱", "block.create.shadow_steel_casing": "暗影机壳", "block.create.shaft": "传动杆", @@ -393,8 +393,8 @@ "block.create.smart_fluid_pipe": "智能流体管道", "block.create.speedometer": "速度表", "block.create.spout": "注液器", - "block.create.spruce_window": "云杉窗户", - "block.create.spruce_window_pane": "云杉窗户板", + "block.create.spruce_window": "云杉木窗户", + "block.create.spruce_window_pane": "云杉木窗户板", "block.create.sticker": "黏着器", "block.create.sticky_mechanical_piston": "黏性动力活塞", "block.create.stockpile_switch": "存量转换器", @@ -467,7 +467,7 @@ "item.create.copper_sheet": "铜板", "item.create.crafter_slot_cover": "合成器盖板", "item.create.crafting_blueprint": "合成蓝图", - "item.create.creative_blaze_cake": "UNLOCALIZED: Creative Blaze Cake", + "item.create.creative_blaze_cake": "创造模式烈焰蛋糕", "item.create.crushed_aluminum_ore": "粉碎铝矿石", "item.create.crushed_brass": "粉碎黄铜", "item.create.crushed_copper_ore": "粉碎铜矿石", @@ -498,7 +498,7 @@ "item.create.honeyed_apple": "蜜渍苹果", "item.create.incomplete_cogwheel": "齿轮(半成品)", "item.create.incomplete_large_cogwheel": "大齿轮(半成品)", - "item.create.incomplete_precision_mechanism": "精密机构(半成品)", + "item.create.incomplete_precision_mechanism": "精密构件(半成品)", "item.create.iron_sheet": "铁板", "item.create.linked_controller": "无线红石遥控器", "item.create.minecart_contraption": "装配过的矿车", @@ -506,7 +506,7 @@ "item.create.polished_rose_quartz": "磨制玫瑰石英", "item.create.potato_cannon": "土豆加农炮", "item.create.powdered_obsidian": "黑曜石粉末", - "item.create.precision_mechanism": "精密机构", + "item.create.precision_mechanism": "精密构件", "item.create.propeller": "扇叶", "item.create.red_sand_paper": "红沙砂纸", "item.create.refined_radiance": "光辉石", @@ -530,18 +530,18 @@ "_": "->------------------------] Advancements [------------------------<-", "advancement.create.root": "欢迎来到机械动力", - "advancement.create.root.desc": "是时候来制作一些超赞的机械结构了!", - "advancement.create.andesite_alloy": "头韵狂魔(Alliterations Aplenty)", + "advancement.create.root.desc": "是时候来制作一些超赞的机械装置了!", + "advancement.create.andesite_alloy": "头韵狂魔(Alliterations Aplenty)", "advancement.create.andesite_alloy.desc": "机械动力的材料名字都很古怪,安山合金(Andesite Alloy)就是其中之一。", "advancement.create.its_alive": "鲜活的机械生命", - "advancement.create.its_alive.desc": "首次激活齿轮结构的旋转。", + "advancement.create.its_alive.desc": "首次激活动力学组件。", "advancement.create.shifting_gears": "换挡,加速,起飞!", - "advancement.create.shifting_gears.desc": "将大齿轮连接到小齿轮上,可以改变结构的转速。", + "advancement.create.shifting_gears.desc": "将大齿轮连接到小齿轮上,可以改变装置的转速。", "advancement.create.overstressed": "过载", "advancement.create.overstressed.desc": "首次使能量网络过载。", "advancement.create.belt": "海带传动", "advancement.create.belt.desc": "用传送带连接两个传动杆", - "advancement.create.tunnel": "找掩护!", + "advancement.create.tunnel": "躲起来!", "advancement.create.tunnel.desc": "用隧道装饰传送带。", "advancement.create.splitter_tunnel": "分而治之", "advancement.create.splitter_tunnel.desc": "用黄铜隧道设计一个分流器。", @@ -558,7 +558,7 @@ "advancement.create.fan_lava": "地热取暖", "advancement.create.fan_lava.desc": "被熔炼气流烤的酥脆。", "advancement.create.fan_water": "奇妙的洗涤流程", - "advancement.create.fan_water.desc": "被洗涤气流洗了个澡。", + "advancement.create.fan_water.desc": "在洗涤气流里洗了个澡。", "advancement.create.fan_smoke": "动力风箱", "advancement.create.fan_smoke.desc": "被烟熏气流熏得满脸黑。", "advancement.create.wrench": "细节调整", @@ -569,25 +569,25 @@ "advancement.create.speedometer.desc": "放置一个速度表,并且带上工程师护目镜来读取速度数据", "advancement.create.stressometer": "精密的应力控制", "advancement.create.stressometer.desc": "放置一个应力表,并且带上工程师护目镜来读取应力数据", - "advancement.create.aesthetics": "美观,即是一切!", + "advancement.create.aesthetics": "什么叫美学,这就叫美学!", "advancement.create.aesthetics.desc": "将支架放在传动杆,管道和齿轮上。", - "advancement.create.reinforced": "Boom~ 加强!", + "advancement.create.reinforced": "什么叫强化,这就叫强化!", "advancement.create.reinforced.desc": "在传动杆,管道和传送带上使用机壳加固。", - "advancement.create.water_wheel": "治水", + "advancement.create.water_wheel": "掌控水流", "advancement.create.water_wheel.desc": "放置一个水车并且让它开始旋转", - "advancement.create.chocolate_wheel": "味美动力", + "advancement.create.chocolate_wheel": "美味动力", "advancement.create.chocolate_wheel.desc": "用熔融巧克力驱动水车。", "advancement.create.lava_wheel": "风火轮", - "advancement.create.lava_wheel.desc": "它本不应该起作用的......", - "advancement.create.cuckoo": "到点了吗?", - "advancement.create.cuckoo.desc": "目睹布谷鸟钟宣布就寝时间。", + "advancement.create.lava_wheel.desc": "按理说根本不可能运转得起来。", + "advancement.create.cuckoo": "到点儿了吗?", + "advancement.create.cuckoo.desc": "目睹布谷鸟钟提醒你该睡觉觉了。", "advancement.create.millstone": "便携式粉碎机", "advancement.create.millstone.desc": "放置一个石磨并且为其供能", "advancement.create.windmill": "微风吹拂", "advancement.create.windmill.desc": "组装风车。", "advancement.create.maxed_windmill": "强风肆虐", "advancement.create.maxed_windmill.desc": "组装最大强度的风车。", - "advancement.create.andesite_casing": "安山纪元", + "advancement.create.andesite_casing": "安山时代", "advancement.create.andesite_casing.desc": "使用安山合金和木头来合成一个安山机壳", "advancement.create.mechanical_drill": "坚如磐石,势如破竹", "advancement.create.mechanical_drill.desc": "放置一个动力钻头并且为其供能", @@ -609,13 +609,13 @@ "advancement.create.compact.desc": "使用辊压机在工作盆中压缩一些物品", "advancement.create.brass": "真正的合金", "advancement.create.brass.desc": "使用粉碎锌矿石和粉碎铜矿石来制作粉碎黄铜", - "advancement.create.brass_casing": "黄铜纪元", + "advancement.create.brass_casing": "黄铜时代", "advancement.create.brass_casing.desc": "用黄铜和木头制作一个黄铜机壳", - "advancement.create.copper_casing": "铜之纪元", + "advancement.create.copper_casing": "铜器时代", "advancement.create.copper_casing.desc": "使用铜和木头制作一个铜制机壳", "advancement.create.spout": "哗啦啦", "advancement.create.spout.desc": "观察注液器灌满物品。", - "advancement.create.spout_potion": "全球啤酒厂", + "advancement.create.spout_potion": "环球酿造厂", "advancement.create.spout_potion.desc": "观察注液器注入药水到玻璃瓶。", "advancement.create.chocolate": "幻想世界", "advancement.create.chocolate.desc": "获取一桶熔融巧克力。", @@ -631,29 +631,29 @@ "advancement.create.pipe_spill.desc": "观察管道的开口端将流体排放或放置到世界中。", "advancement.create.hose_pulley": "工业泄漏", "advancement.create.hose_pulley.desc": "放下一个软管滑轮,观察它排干或填充一大片液体。", - "advancement.create.infinite_water": "排干海洋", + "advancement.create.infinite_water": "抽干大海", "advancement.create.infinite_water.desc": "从大到足以被认为是无限的水源中抽水。", "advancement.create.infinite_lava": "汲取行星核心", "advancement.create.infinite_lava.desc": "从广阔的熔岩湖中抽出熔岩。", - "advancement.create.infinite_chocolate": "幻想沉溺", + "advancement.create.infinite_chocolate": "美梦不饶人", "advancement.create.infinite_chocolate.desc": "从大到足以被被视为无限的巧克力海中抽取巧克力。", "advancement.create.crafter": "自动化装配", "advancement.create.crafter.desc": "放置一些机械合成台并且为其供能", "advancement.create.clockwork_bearing": "巧械时钟", - "advancement.create.clockwork_bearing.desc": "组装安装在发条轴承上的结构。", + "advancement.create.clockwork_bearing.desc": "组装安装在发条轴承上的装置。", "advancement.create.nixie_tube": "花样符号", "advancement.create.nixie_tube.desc": "获取并放下一对辉光管。", "advancement.create.deployer": "我就指着你了咋地?", "advancement.create.deployer.desc": "放置并且功能一个机械手。这可是你右手的完美复制品", - "advancement.create.speed_controller": "工程师讨厌他!", + "advancement.create.speed_controller": "工程师的眼中钉", "advancement.create.speed_controller.desc": "放置一个转速控制器,这是换档的终极装置。", "advancement.create.flywheel": "工厂之心", "advancement.create.flywheel.desc": "将引擎成功连接到飞轮。", - "advancement.create.overstress_flywheel": "高压", + "advancement.create.overstress_flywheel": "压力山大", "advancement.create.overstress_flywheel.desc": "过载熔炉引擎。", "advancement.create.precision_mechanism": "高新技术", - "advancement.create.precision_mechanism.desc": "装配一个精密机构。", - "advancement.create.mechanical_arm": "忙碌的手!", + "advancement.create.precision_mechanism.desc": "装配一个精密构件。", + "advancement.create.mechanical_arm": "飞转的手!", "advancement.create.mechanical_arm.desc": "制作机械臂,选择输入和输出,放置并给予它动力,然后看着它为你完成所有工作。", "advancement.create.musical_arm": "没人能在我的 BGM 里打败我!", "advancement.create.musical_arm.desc": "使用动力臂播放唱片。", @@ -673,7 +673,7 @@ "advancement.create.shadow_steel.desc": "制作一些暗影钢", "advancement.create.refined_radiance": "明亮而启灵", "advancement.create.refined_radiance.desc": "制作一个光辉石", - "advancement.create.chromatic_age": "异彩纪元", + "advancement.create.chromatic_age": "异彩时代", "advancement.create.chromatic_age.desc": "创造出光与影的机壳。", "advancement.create.wand_of_symmetry": "简单的镜面几何学", "advancement.create.wand_of_symmetry.desc": "制作一个对称之杖", @@ -690,7 +690,7 @@ "_": "->------------------------] UI & Messages [------------------------<-", "itemGroup.create.base": "机械动力", - "itemGroup.create.palettes": "机械动力建筑方块", + "itemGroup.create.palettes": "机械动力丨建筑方块", "death.attack.create.crush": "%1$s被压扁了", "death.attack.create.crush.player": "%1$s被%2$s推进了粉碎机", @@ -728,13 +728,13 @@ "create.recipe.fan_blasting.fan": "在熔岩后放置鼓风机", "create.recipe.pressing": "金属压片", "create.recipe.mixing": "混合搅拌", - "create.recipe.deploying": "自动使用", + "create.recipe.deploying": "使用", "create.recipe.automatic_shapeless": "自动搅拌", "create.recipe.automatic_brewing": "自动酿造", "create.recipe.packing": "压块塑形", "create.recipe.automatic_packing": "自动打包", - "create.recipe.sawing": "板材切割", - "create.recipe.mechanical_crafting": "自动合成", + "create.recipe.sawing": "切割", + "create.recipe.mechanical_crafting": "动力合成", "create.recipe.automatic_shaped": "自动合成", "create.recipe.block_cutting": "方块切割", "create.recipe.wood_cutting": "木材切割", @@ -742,15 +742,15 @@ "create.recipe.mystery_conversion": "神秘转化", "create.recipe.spout_filling": "注液", "create.recipe.draining": "分液", - "create.recipe.sequenced_assembly": "流水线装配", + "create.recipe.sequenced_assembly": "序列组装", "create.recipe.assembly.next": "下一步:%1$s", "create.recipe.assembly.step": "第%1$s步:", "create.recipe.assembly.progress": "组装进度:%1$s/%2$s", - "create.recipe.assembly.pressing": "用辊压机辊压", + "create.recipe.assembly.pressing": "进行辊压", "create.recipe.assembly.spout_filling_fluid": "注入%1$s", "create.recipe.assembly.deploying_item": "安装%1$s", "create.recipe.assembly.cutting": "用动力锯切割", - "create.recipe.assembly.repeat": "该序列需要重复%1$s次", + "create.recipe.assembly.repeat": "该序列需要重复 %1$s 次", "create.recipe.assembly.junk": "随机废料", "create.recipe.processing.chance": "%1$s%%概率", "create.recipe.heat_requirement.none": "无需加热", @@ -788,7 +788,7 @@ "create.gui.scrollInput.scrollToModify": "滚动修改", "create.gui.scrollInput.scrollToAdjustAmount": "滚动修改数量", "create.gui.scrollInput.scrollToSelect": "滚动选择", - "create.gui.scrollInput.shiftScrollsFaster": "按住Shift滚动更快", + "create.gui.scrollInput.shiftScrollsFaster": "按住 Shift 滚动更快", "create.gui.toolmenu.focusKey": "按住 [%1$s] 鼠标滚轮选择", "create.gui.toolmenu.cycle": "[SCROLL] 循环", "create.gui.symmetryWand.mirrorType": "镜子类型", @@ -806,14 +806,14 @@ "create.gui.terrainzapper.title": "手持式环境塑形器", "create.gui.terrainzapper.searchDiagonal": "对角线延伸", - "create.gui.terrainzapper.searchFuzzy": "模糊模式(忽略材料分界)", + "create.gui.terrainzapper.searchFuzzy": "忽略质料分界", "create.gui.terrainzapper.patternSection": "样式", "create.gui.terrainzapper.pattern.solid": "填满", "create.gui.terrainzapper.pattern.checkered": "棋盘格", "create.gui.terrainzapper.pattern.inversecheckered": "反转棋盘格", - "create.gui.terrainzapper.pattern.chance25": "随机填充25%", - "create.gui.terrainzapper.pattern.chance50": "随机填充50%", - "create.gui.terrainzapper.pattern.chance75": "随机填充75%", + "create.gui.terrainzapper.pattern.chance25": "随机填充 25%", + "create.gui.terrainzapper.pattern.chance50": "随机填充 50%", + "create.gui.terrainzapper.pattern.chance75": "随机填充 75%", "create.gui.terrainzapper.placement": "放置模式", "create.gui.terrainzapper.placement.merged": "结合", "create.gui.terrainzapper.placement.attached": "依附", @@ -822,8 +822,8 @@ "create.gui.terrainzapper.brush.cuboid": "矩形体", "create.gui.terrainzapper.brush.sphere": "球体", "create.gui.terrainzapper.brush.cylinder": "圆柱体", - "create.gui.terrainzapper.brush.surface": "连接的面", - "create.gui.terrainzapper.brush.cluster": "连接的立体区域", + "create.gui.terrainzapper.brush.surface": "表面", + "create.gui.terrainzapper.brush.cluster": "簇状", "create.gui.terrainzapper.tool": "填充类型", "create.gui.terrainzapper.tool.fill": "填充", "create.gui.terrainzapper.tool.place": "复写", @@ -832,8 +832,8 @@ "create.gui.terrainzapper.tool.overlay": "覆盖", "create.gui.terrainzapper.tool.flatten": "平整", - "create.terrainzapper.shiftRightClickToSet": "Shift+鼠标右击以设置塑形类型", - "create.terrainzapper.usingBlock": "填充材料:%1$s", + "create.terrainzapper.shiftRightClickToSet": "按住 Shift 右击以设置塑形类型", + "create.terrainzapper.usingBlock": "使用:%1$s", "create.terrainzapper.leftClickToSet": "鼠标左击一个方块以设置填充材料", "create.minecart_coupling.two_couplings_max": "矿车无法被连接两个以上的矿车连轴器", @@ -850,20 +850,20 @@ "create.contraptions.movement_mode.rotate_place_returned": "停止时只在接近初始角度才将装置方块化", "create.contraptions.movement_mode.rotate_never_place": "只有在旋转轴摧毁后才将装置方块化", "create.contraptions.cart_movement_mode": "矿车运动模式", - "create.contraptions.cart_movement_mode.rotate": "装置与矿车保持相同方向", + "create.contraptions.cart_movement_mode.rotate": "始终面朝前进方向", "create.contraptions.cart_movement_mode.rotate_paused": "矿车转向时机器停止工作", - "create.contraptions.cart_movement_mode.rotation_locked": "装置方向保持不变", + "create.contraptions.cart_movement_mode.rotation_locked": "旋转锁定", "create.contraptions.windmill.rotation_direction": "旋转方向", "create.contraptions.clockwork.clock_hands": "钟表指针", "create.contraptions.clockwork.hour_first": "时针优先", "create.contraptions.clockwork.minute_first": "分针优先", - "create.contraptions.clockwork.hour_first_24": "24小时制优先", + "create.contraptions.clockwork.hour_first_24": "24 小时制优先", "create.logistics.filter": "过滤器", "create.logistics.recipe_filter": "配方过滤器", "create.logistics.fluid_filter": "流体过滤器", - "create.logistics.firstFrequency": "频道. #1", - "create.logistics.secondFrequency": "频道. #2", + "create.logistics.firstFrequency": "UNLOCALIZED: Freq. #1", + "create.logistics.secondFrequency": "UNLOCALIZED: Freq. #2", "create.logistics.filter.apply": "已将过滤应用于%1$s。", "create.logistics.filter.apply_click_again": "已将过滤应用于%1$s,再次点击可将手持物品数量复制到过滤器上。", "create.logistics.filter.apply_count": "已将提取数量应用至过滤器。", @@ -874,13 +874,13 @@ "create.gui.goggles.pole_length": "活塞杆长度:", "create.gui.goggles.fluid_container": "流体容器信息:", "create.gui.goggles.fluid_container.capacity": "容量:", - "create.gui.assembly.exception": "无法组装该结构:", + "create.gui.assembly.exception": "无法组装该装置:", "create.gui.assembly.exception.unmovableBlock": "无法移动的方块:(%4$s)位于 [%1$s,%2$s,%3$s]", - "create.gui.assembly.exception.chunkNotLoaded": "位于 [%1$s,%2$s,%3$s] 的方块未处于加载区块", - "create.gui.assembly.exception.structureTooLarge": "结构中的方块数量过多。\n配置中的最大数量限制为:%1$s", - "create.gui.assembly.exception.tooManyPistonPoles": "活塞加装的活塞杆数量过多。\n配置中的最大数量限制为:%1$s", + "create.gui.assembly.exception.chunkNotLoaded": "位于 [%1$s,%2$s,%3$s] 的方块未处于加载区块", + "create.gui.assembly.exception.structureTooLarge": "装置中的方块数量过多。", + "create.gui.assembly.exception.tooManyPistonPoles": "活塞加装的活塞杆数量过多。", "create.gui.assembly.exception.noPistonPoles": "活塞缺失部分活塞杆", - "create.gui.assembly.exception.not_enough_sails": "相接的结构所包含的类风帆方块的数量不足。%1$s\n最低需要 %2$s 个方块", + "create.gui.assembly.exception.not_enough_sails": "相接的结构所包含的类风帆方块的数量不足。%1$s", "create.gui.gauge.info_header": "仪表信息:", "create.gui.speedometer.title": "旋转速度", "create.gui.stressometer.title": "网络应力", @@ -919,7 +919,7 @@ "create.schematicAndQuill.dimensions": "蓝图尺寸:%1$sx%2$sx%3$s", "create.schematicAndQuill.firstPos": "第一个位置。", "create.schematicAndQuill.secondPos": "第二个位置。", - "create.schematicAndQuill.noTarget": "按住Ctrl选择空气方块。", + "create.schematicAndQuill.noTarget": "按住 Ctrl 选择空气方块。", "create.schematicAndQuill.abort": "删除选择。", "create.schematicAndQuill.title": "蓝图名:", "create.schematicAndQuill.convert": "立即保存并部署", @@ -945,18 +945,18 @@ "create.schematic.tool.flip": "翻转", "create.schematic.tool.deploy.description.0": "将结构移到某个位置。", "create.schematic.tool.deploy.description.1": "在地面上单击鼠标右击以放置。", - "create.schematic.tool.deploy.description.2": "按住Ctrl以固定距离选择。", - "create.schematic.tool.deploy.description.3": "按住Ctrl鼠标滚动更改距离。", + "create.schematic.tool.deploy.description.2": "按住 Ctrl 以固定距离选择。", + "create.schematic.tool.deploy.description.3": "按住 Ctrl 鼠标滚动更改距离。", "create.schematic.tool.move.description.0": "水平移动蓝图", - "create.schematic.tool.move.description.1": "选定蓝图,然后按住Ctrl鼠标滚动移动。", + "create.schematic.tool.move.description.1": "选定蓝图,然后按住 Ctrl 鼠标滚动移动。", "create.schematic.tool.move.description.2": "", "create.schematic.tool.move.description.3": "", "create.schematic.tool.movey.description.0": "垂直移动蓝图", - "create.schematic.tool.movey.description.1": "按住Ctrl鼠标滚动上下移动", + "create.schematic.tool.movey.description.1": "按住 Ctrl 鼠标滚动上下移动", "create.schematic.tool.movey.description.2": "", "create.schematic.tool.movey.description.3": "", "create.schematic.tool.rotate.description.0": "围绕蓝图中心旋转蓝图。", - "create.schematic.tool.rotate.description.1": "按住Ctrl鼠标滚动旋转90度", + "create.schematic.tool.rotate.description.1": "按住 Ctrl 鼠标滚动旋转90度", "create.schematic.tool.rotate.description.2": "", "create.schematic.tool.rotate.description.3": "", "create.schematic.tool.print.description.0": "立即将结构放置在世界上", @@ -964,7 +964,7 @@ "create.schematic.tool.print.description.2": "该工具仅适用于创造模式。", "create.schematic.tool.print.description.3": "", "create.schematic.tool.flip.description.0": "沿你选择的面翻转蓝图。", - "create.schematic.tool.flip.description.1": "指向蓝图,然后按住Ctrl鼠标滚动将其翻转。", + "create.schematic.tool.flip.description.1": "指向蓝图,然后按住 Ctrl 鼠标滚动将其翻转。", "create.schematic.tool.flip.description.2": "", "create.schematic.tool.flip.description.3": "", @@ -991,7 +991,7 @@ "create.gui.schematicannon.option.replaceWithSolid": "用固体方块替换工作区域内的方块", "create.gui.schematicannon.option.replaceWithAny": "用任何方块替换工作区域内的方块", "create.gui.schematicannon.option.replaceWithEmpty": "用空气替换工作区域内的方块", - "create.gui.schematicannon.option.skipMissing": "绕过缺少的方块", + "create.gui.schematicannon.option.skipMissing": "跳过缺少的方块", "create.gui.schematicannon.option.skipTileEntities": "保护存储方块", "create.gui.schematicannon.slot.gunpowder": "向蓝图加农炮添加火药以提供动力", "create.gui.schematicannon.slot.listPrinter": "在此处放置书以打印蓝图所需的材料清单", @@ -1003,17 +1003,17 @@ "create.gui.schematicannon.option.replaceWithAny.description": "蓝图加农炮会使用任何所提供的方块来替换工作区域内的固体方块", "create.gui.schematicannon.option.replaceWithEmpty.description": "蓝图加农炮将清理和替换工作区域内所有原本的方块。", - "create.schematicannon.status.idle": "闲置", - "create.schematicannon.status.ready": "准备", - "create.schematicannon.status.running": "运行", - "create.schematicannon.status.finished": "完成", + "create.schematicannon.status.idle": "闲置中", + "create.schematicannon.status.ready": "准备中", + "create.schematicannon.status.running": "运行中", + "create.schematicannon.status.finished": "已完成", "create.schematicannon.status.paused": "已暂停", - "create.schematicannon.status.stopped": "停止", - "create.schematicannon.status.noGunpowder": "火药消耗完毕", - "create.schematicannon.status.targetNotLoaded": "方块未加载", - "create.schematicannon.status.targetOutsideRange": "定位目标太远", - "create.schematicannon.status.searching": "搜索", - "create.schematicannon.status.skipping": "跳过", + "create.schematicannon.status.stopped": "已停止", + "create.schematicannon.status.noGunpowder": "火药已耗尽", + "create.schematicannon.status.targetNotLoaded": "目标未被加载", + "create.schematicannon.status.targetOutsideRange": "目标太远", + "create.schematicannon.status.searching": "正在搜索", + "create.schematicannon.status.skipping": "正在跳过", "create.schematicannon.status.missingBlock": "缺少方块:", "create.schematicannon.status.placing": "建筑中", "create.schematicannon.status.clearing": "清除方块中", @@ -1022,7 +1022,7 @@ "create.schematicannon.status.schematicExpired": "蓝图文件已过期", "create.materialChecklist": "材料清单", - "create.materialChecklist.blocksNotLoaded": "*免责声明* \n\n由于未加载相关区块,材料清单可能不正确。", + "create.materialChecklist.blocksNotLoaded": "*免责声明* ", "create.gui.filter.deny_list": "黑名单", "create.gui.filter.deny_list.description": "只通过不在黑名单中的物品,如果黑名单为空,所有物品都可以通过", @@ -1064,20 +1064,20 @@ "create.item_attributes.in_item_group": "属于%1$s", "create.item_attributes.in_item_group.inverted": "不属于%1$s", "create.item_attributes.added_by": "由%1$s添加", - "create.item_attributes.added_by.inverted": "不是由%1$s添加", + "create.item_attributes.added_by.inverted": "不由%1$s添加", "create.item_attributes.shulker_level": "潜影盒是%1$s的", "create.item_attributes.shulker_level.inverted": "潜影盒不是%1$s的", "create.item_attributes.shulker_level.full": "满", "create.item_attributes.shulker_level.empty": "空", - "create.item_attributes.shulker_level.partial": "半满", + "create.item_attributes.shulker_level.partial": "部分填充", "create.item_attributes.has_enchant": "有附魔效果%1$s", "create.item_attributes.has_enchant.inverted": "没有附魔效果%1$s", "create.item_attributes.color": "染色为%1$s", "create.item_attributes.color.inverted": "未被染成%1$s", - "create.item_attributes.max_enchanted": "已达到最高附魔等", + "create.item_attributes.max_enchanted": "已达到最高附魔等级", "create.item_attributes.max_enchanted.inverted": "并未达到最高附魔等级", - "create.item_attributes.has_fluid": "包含%1$s", - "create.item_attributes.has_fluid.inverted": "不包含%1$s", + "create.item_attributes.has_fluid": "含有%1$s", + "create.item_attributes.has_fluid.inverted": "不含有%1$s", "create.item_attributes.has_name": "有自定义名称%1$s", "create.item_attributes.has_name.inverted": "没有自定义名称%1$s", "create.item_attributes.book_author": "由%1$s编写", @@ -1099,8 +1099,8 @@ "create.item_attributes.astralsorcery_amulet": "璀璨棱镜增强%1$s", "create.item_attributes.astralsorcery_amulet.inverted": "璀璨棱镜未增强%1$s", - "create.gui.attribute_filter.no_selected_attributes": "没有标记任何属性", - "create.gui.attribute_filter.selected_attributes": "已选择的属性:", + "create.gui.attribute_filter.no_selected_attributes": "未选择任何属性", + "create.gui.attribute_filter.selected_attributes": "已选择的属性:", "create.gui.attribute_filter.add_attribute": "向列表中添加属性", "create.gui.attribute_filter.add_inverted_attribute": "向列表中添加相反属性", "create.gui.attribute_filter.allow_list_disjunctive": "任意匹配白名单(任何)", @@ -1132,14 +1132,14 @@ "create.tooltip.analogStrength": "模拟信号强度:%1$s/15", "create.mechanical_arm.extract_from": "从%1$s中拿取物品", - "create.mechanical_arm.deposit_to": "向%1$s存储物品", - "create.mechanical_arm.summary": "动力臂当前有%1$s个输入,%2$s个输出。", + "create.mechanical_arm.deposit_to": "将物品存储至%1$s", + "create.mechanical_arm.summary": "动力臂当前有 %1$s 个输入,%2$s 个输出。", "create.mechanical_arm.points_outside_range": "由于距离限制,选定的交互点%1$s已被移除。", "create.weighted_ejector.target_set": "目标已选取", "create.weighted_ejector.target_not_valid": "弹射至临近方块(目标无效)", "create.weighted_ejector.no_target": "弹射至临近方块(未选择目标)", - "create.weighted_ejector.targeting": "弹射至[%1$s,%2$s,%3$s]", + "create.weighted_ejector.targeting": "弹射至 [%1$s,%2$s,%3$s]", "create.weighted_ejector.stack_size": "弹射物品堆数量", "create.logistics.when_multiple_outputs_available": "当多个输出可用时", @@ -1165,22 +1165,22 @@ "create.tooltip.chute.fans_pull_up": "鼓风机从上方进行吸引", "create.tooltip.chute.fans_pull_down": "鼓风机从下方进行吸引", "create.tooltip.chute.contains": "内含物品:%1$s x%2$s", - "create.tooltip.brass_tunnel.contains": "等待分配的物品:", - "create.tooltip.brass_tunnel.contains_entry": "> %2$s个%1$s", + "create.tooltip.brass_tunnel.contains": "目前分配:", + "create.tooltip.brass_tunnel.contains_entry": "> %1$s x%2$s", "create.tooltip.brass_tunnel.retrieve": "鼠标右击取出", "create.linked_controller.bind_mode": "绑定模式激活", - "create.linked_controller.press_keybind": "按%1$s,%2$s,%3$s,%4$s,%5$s或%6$s选择要将该频率绑定到哪个按键。", + "create.linked_controller.press_keybind": "按下%1$s、%2$s、%3$s、%4$s、%5$s或%6$s,可以将该频率绑定到按下的按键上。", "create.linked_controller.key_bound": "该频率已绑定到%1$s", - "create.linked_controller.frequency_slot_1": "按键:%1$s,频道 #1", - "create.linked_controller.frequency_slot_2": "按键:%1$s,频道 #2", + "create.linked_controller.frequency_slot_1": "UNLOCALIZED: Keybind: %1$s, Freq. #1", + "create.linked_controller.frequency_slot_2": "UNLOCALIZED: Keybind: %1$s, Freq. #2", - "create.crafting_blueprint.crafting_slot": "合成材料格", + "create.crafting_blueprint.crafting_slot": "原料槽", "create.crafting_blueprint.filter_items_viable": "可以使用过滤器", - "create.crafting_blueprint.display_slot": "展示的图标", + "create.crafting_blueprint.display_slot": "展示槽", "create.crafting_blueprint.inferred": "已根据合成配方自动设定", "create.crafting_blueprint.manually_assigned": "手动设定", - "create.crafting_blueprint.secondary_display_slot": "展示的图标角标", + "create.crafting_blueprint.secondary_display_slot": "次要展示槽", "create.crafting_blueprint.optional": "可选", "create.potato_cannon.ammo.attack_damage": "%1$s 攻击伤害", @@ -1192,7 +1192,7 @@ "create.hint.mechanical_arm_no_targets.title": "没有目标", "create.hint.mechanical_arm_no_targets": "看起来这个_动力臂_没有被分配给任何_目标_。在手持机械臂的同时,右击选取传送带、置物台、漏斗或其他设备来设置目标。", "create.hint.empty_bearing.title": "更新轴承", - "create.hint.empty_bearing": "_空手右击_轴承来_激活_你新建造的结构。", + "create.hint.empty_bearing": "_空手右击_轴承,可以将你新建造的结构_接到_轴承上。", "create.hint.full_deployer.title": "机械手物品溢出", "create.hint.full_deployer": "_机械手_包含_过剩的物品,_需要被_提取。你需要_使用_料斗,__漏斗_或其他方法将溢出释放出来。", @@ -1206,15 +1206,15 @@ "create.gui.config.overlay8": "重置到默认位置", "create.command.killTPSCommand": "killtps", - "create.command.killTPSCommand.status.slowed_by.0": "[Create]: 服务器每秒tick速被降低为 %s ms :o", - "create.command.killTPSCommand.status.slowed_by.1": "[Create]: 服务器现在每秒tick速被降低为 >:)", - "create.command.killTPSCommand.status.slowed_by.2": "[Create]: 服务器恢复到正常速度 :D", - "create.command.killTPSCommand.status.usage.0": "[Create]: 用 /killtps stop 来让服务器的TPS速度变回正常", - "create.command.killTPSCommand.status.usage.1": "[Create]: 用 /killtps start 来手动降低服务器TPS速度", + "create.command.killTPSCommand.status.slowed_by.0": "[Create]: 服务器现在的 TPS 速度被降低为 %s ms :o", + "create.command.killTPSCommand.status.slowed_by.1": "[Create]: 服务器现在的 TPS 速度被降低为 >:)", + "create.command.killTPSCommand.status.slowed_by.2": "[Create]: 服务器恢复到正常的 TPS 速度 :D", + "create.command.killTPSCommand.status.usage.0": "[Create]: 用 /killtps stop 来让服务器的 TPS 速度变回正常", + "create.command.killTPSCommand.status.usage.1": "[Create]: 用 /killtps start 来手动降低服务器 TPS 速度", "create.command.killTPSCommand.argument.tickTime": "tickTime", "create.contraption.minecart_contraption_too_big": "这一矿车装置似乎太大了,无法变为拾捡状态", - "create.contraption.minecart_contraption_illegal_pickup": "神秘的力量阻止你拾取这个矿车装置。", + "create.contraption.minecart_contraption_illegal_pickup": "一股神秘的力量将这一装置与世界牢牢绑定在了一起。", "_": "->------------------------] Subtitles [------------------------<-", @@ -1231,12 +1231,12 @@ "create.subtitle.blaze_munch": "烈焰人:咀嚼", "create.subtitle.funnel_flap": "漏斗:垂帘碰撞", "create.subtitle.schematicannon_finish": "蓝图加农炮:叮", - "create.subtitle.haunted_bell_use": "怪异钟:鸣响", + "create.subtitle.haunted_bell_use": "森魂钟:鸣响", "create.subtitle.scroll_value": "拨码输入:咔哒", "create.subtitle.crafter_craft": "动力合成器:合成中", "create.subtitle.controller_put": "遥控器:放进讲台", "create.subtitle.cranking": "手摇曲柄:转动", - "create.subtitle.wrench_remove": "部件:被破坏", + "create.subtitle.wrench_remove": "组件:被破坏", "create.subtitle.cogs": "齿轮:嘎吱作响", "create.subtitle.slime_added": "粘液:挤碎声", "create.subtitle.wrench_rotate": "扳手:拧动", @@ -1276,7 +1276,7 @@ "block.create.seat.tooltip": "坐垫", "block.create.seat.tooltip.summary": "坐下来享受旅程吧!坐垫将会把玩家固定在一个移动装置上。也可以用来作为居家装饰,毕竟他有许多颜色。", "block.create.seat.tooltip.condition1": "右击坐垫", - "block.create.seat.tooltip.behaviour1": "会使得玩家坐在_坐垫_上,L-Shift可离开_坐垫_。", + "block.create.seat.tooltip.behaviour1": "会使得玩家坐在_坐垫_上,按下左 Shift 可离开_坐垫_。", "item.create.blaze_cake.tooltip": "烈焰蛋糕", "item.create.blaze_cake.tooltip.summary": "为辛勤劳作的_烈焰人_精心准备的美味。让他们兴奋起来吧!", @@ -1316,7 +1316,7 @@ "item.create.potato_cannon.tooltip": "土豆加农炮", "item.create.potato_cannon.tooltip.summary": "噗!把你亲手栽培的蔬菜砸向你的敌人。可以使用_铜制背罐_供能。", "item.create.potato_cannon.tooltip.condition1": "当右击时", - "item.create.potato_cannon.tooltip.behaviour1": "_发射_你_物品栏_中任一可做弹药的物品。", + "item.create.potato_cannon.tooltip.behaviour1": "_发射_你_物品栏_中任一可作为弹药的物品。", "item.create.potato_cannon.tooltip.condition2": "当装备铜制背罐时", "item.create.potato_cannon.tooltip.behaviour2": "使用罐中_气压_来_抵消_土豆加农炮的_耐久_损耗。", @@ -1359,8 +1359,8 @@ "block.create.schematicannon.tooltip": "蓝图加农炮", "block.create.schematicannon.tooltip.summary": "发射方块,重新构建已在世界中部署的_蓝图_,会使用相邻箱子中的物品进行填充,_火药_作为燃料。", - "block.create.schematicannon.tooltip.condition1": "当右击时", - "block.create.schematicannon.tooltip.behaviour1": "打开_配置面板_。", + "block.create.schematicannon.tooltip.condition1": "When R-Clicked", + "block.create.schematicannon.tooltip.behaviour1": "Opens the _Interface_", "block.create.schematic_table.tooltip": "蓝图桌", "block.create.schematic_table.tooltip.summary": "将保存的蓝图图写入_空白蓝图_", @@ -1412,10 +1412,10 @@ "block.create.creative_crate.tooltip.condition1": "当标记了物品时", "block.create.creative_crate.tooltip.behaviour1": "任何从容器中_提取_的物品都是_无限量的_,而任何_放置_到容器中的物品都会被_送入虚空_", - "item.create.creative_blaze_cake.tooltip": "UNLOCALIZED: CREATIVE CAKE", - "item.create.creative_blaze_cake.tooltip.summary": "UNLOCALIZED: A very special treat for _Blaze Burners_ that allows _controlling their heat level_. After eating this cake, Blaze Burners will _never run out of fuel_.", - "item.create.creative_blaze_cake.tooltip.condition1": "UNLOCALIZED: R-Click on Blaze Burner", - "item.create.creative_blaze_cake.tooltip.behaviour1": "UNLOCALIZED: _Locks_ the Blaze Burner's heat level. If used again, _cycles_ the Blaze Burner's heat level.", + "item.create.creative_blaze_cake.tooltip": "创造蛋糕", + "item.create.creative_blaze_cake.tooltip.summary": "为_烈焰人燃烧室_特制的小食,可以让你_控制燃烧室的热量等级_。吃下这个蛋糕之后,烈焰人燃烧室将_不再耗尽燃料_。", + "item.create.creative_blaze_cake.tooltip.condition1": "对着烈焰人燃烧室使用", + "item.create.creative_blaze_cake.tooltip.behaviour1": "_锁定_烈焰人燃烧室的热量等级。如果再次使用,会使得燃烧室的热量等级开始_循环_变化。", "block.create.controller_rail.tooltip": "控制铁轨", "block.create.controller_rail.tooltip.summary": "一种_汇流的,受红石信号影响的_铁轨,可以_较好地控制_经过矿车的_移动速度_。", @@ -1428,7 +1428,7 @@ "item.create.sand_paper.tooltip.behaviour1": "打磨_副手_上或者_准心所指_的物品。", "item.create.builders_tea.tooltip": "建造工茶饮", - "item.create.builders_tea.tooltip.summary": "饮下这杯完美茶饮,开启神清气爽的一天。可以回复_饥饿值_并获得_急迫_效果。", + "item.create.builders_tea.tooltip.summary": "饮下这杯完美茶饮,开启神清气爽的一天。可以恢复_饥饿值_并获得_急迫_效果。", "item.create.refined_radiance.tooltip": "光辉石", "item.create.refined_radiance.tooltip.summary": "一种用_光辉_锻造的化合物材料。", @@ -1443,13 +1443,13 @@ "item.create.linked_controller.tooltip": "无线红石遥控器", "item.create.linked_controller.tooltip.summary": "提供_六个_可以绑定_无线红石_频道的按钮,用于_遥控_附近的_无线红石信号终端_。", "item.create.linked_controller.tooltip.condition1": "右击时", - "item.create.linked_controller.tooltip.behaviour1": "_拿起_或_放下_遥控器。拿起遥控器时,_移动_按键将被用来_操作遥控器_而不是移动玩家。", + "item.create.linked_controller.tooltip.behaviour1": "_拿起_或_放下_遥控器。拿起遥控器时,_控制移动_将被用来_操作遥控器_,而不是移动玩家。", "item.create.linked_controller.tooltip.condition2": "潜行右击时", "item.create.linked_controller.tooltip.behaviour2": "打开手动_配置界面_。", "item.create.linked_controller.tooltip.condition3": "右击无线红石信号终端时", - "item.create.linked_controller.tooltip.behaviour3": "启用_配对模式_,按_六个按键_中的一个来配对_无线红石信号终端_的_频率_。", + "item.create.linked_controller.tooltip.behaviour3": "启用_绑定模式_,按下_六个按键_中的一个,即可将此按键与_无线红石信号终端的频率_绑定。", "item.create.linked_controller.tooltip.condition4": "右击讲台时", - "item.create.linked_controller.tooltip.behaviour4": "将遥控器放在讲台上以便使用。(潜行右击来取回遥控器。)", + "item.create.linked_controller.tooltip.behaviour4": "将遥控器放在讲台上以便使用(潜行右击来取回遥控器)。", "item.create.diving_helmet.tooltip": "潜水头盔", "item.create.diving_helmet.tooltip.summary": "与_铜制背罐_配合使用,为穿戴者提供在_水下_行动一段时间所需的_空气_。", @@ -1469,24 +1469,24 @@ "item.create.diving_boots.tooltip.behaviour1": "穿戴者_下沉更快_并_无法游泳_。穿戴者可以在水下_行走_和_跳跃_。穿戴者不会被_传送带_移走。", "item.create.crafting_blueprint.tooltip": "合成蓝图", - "item.create.crafting_blueprint.tooltip.summary": "_放在_墙上。设置特定的_原料排布_以便更快地手搓物品。每个格子都可以设定一个配方。", + "item.create.crafting_blueprint.tooltip.summary": "_放在_墙上,便可用它来设置特定的_原料排布_,以便更快地制作物品。每个格子都可以设定一个配方。", "item.create.crafting_blueprint.condition1": "当右击空的格子时", - "item.create.crafting_blueprint.behaviour1": "打开一个_配方设置界面_,用于_设置_一个_合成配方_以及设置显示的图标。", + "item.create.crafting_blueprint.behaviour1": "打开一个_配方设置界面_,用于_设置_一个_合成配方_以及展示的物品。", "item.create.crafting_blueprint.condition2": "当右击设置好的格子时", - "item.create.crafting_blueprint.behaviour2": "使用_物品栏_中的物品制作_设置的配方_。_潜行_以一次合成_一组_。", + "item.create.crafting_blueprint.behaviour2": "使用_物品栏_中的物品制作_设置的配方_。_潜行_可以一次合成_一组_。", "item.create.minecart_coupling.tooltip": "矿车连轴器", - "item.create.minecart_coupling.tooltip.summary": "将多个_矿车_或运输结构链接在一起,构成雄伟的火车。", + "item.create.minecart_coupling.tooltip.summary": "将多个_矿车_或_连接运输装置_链接在一起,构成雄伟的火车。", "item.create.minecart_coupling.tooltip.condition1": "作用与矿车时", "item.create.minecart_coupling.tooltip.behaviour1": "将两个矿车耦合在一起,在移动时将它们保持_恒定的距离_。", "block.create.peculiar_bell.tooltip": "奇异钟", - "block.create.peculiar_bell.tooltip.summary": "装饰用的_黄铜质钟_。放在_灵魂火_的正上方可能会产生意料之外的后果……", + "block.create.peculiar_bell.tooltip.summary": "装饰用的_黄铜质钟_。放在_灵魂火_的正上方可能会产生意料之外的后果......", - "block.create.haunted_bell.tooltip": "怪异钟", - "block.create.haunted_bell.tooltip.summary": "_被诅咒_的钟,其中充满了来自下界的迷失的灵魂。", + "block.create.haunted_bell.tooltip": "森魂钟", + "block.create.haunted_bell.tooltip.summary": "_被诅咒_的钟,来自下界的迷失的灵魂缠绕于其上。", "block.create.haunted_bell.tooltip.condition1": "当手持或鸣响时", - "block.create.haunted_bell.tooltip.behaviour1": "标识出附近可能生成_敌对生物_的_黑暗_的地方。", + "block.create.haunted_bell.tooltip.behaviour1": "标识出附近可能生成_敌对生物_的_亮度不足_之处。", "_": "->------------------------] Ponder Content [------------------------<-", @@ -1504,10 +1504,10 @@ "create.ponder.think_back": "回想", "create.ponder.slow_text": "舒适阅读", "create.ponder.exit": "退出", - "create.ponder.welcome": "欢迎来到思索项目列表", + "create.ponder.welcome": "欢迎来到思索界面", "create.ponder.categories": "机械动力中包含的条目", "create.ponder.index_description": "点击一个图标来查看相关的物品和方块。", - "create.ponder.index_title": "思索项目列表", + "create.ponder.index_title": "思索索引", "create.ponder.shared.rpm16": "16 RPM", "create.ponder.shared.behaviour_modify_wrench": "可以用扳手调整它的行为。", "create.ponder.shared.storage_on_contraption": "与装置相接的存储空间,会自动将装置遇到的掉落物拾取到空间内。", @@ -1515,12 +1515,12 @@ "create.ponder.shared.rpm8": "8 RPM", "create.ponder.shared.ctrl_and": "Ctrl +", "create.ponder.shared.rpm32": "32 RPM", - "create.ponder.shared.rpm16_source": "动力源:16 R", + "create.ponder.shared.rpm16_source": "动力源:16 RPM", "create.ponder.shared.movement_anchors": "有了底盘和强力胶,移动起大型结构轻轻松松。", "create.ponder.tag.redstone": "逻辑组件", "create.ponder.tag.redstone.description": "这些组件会在红石工程中发挥大用处。", - "create.ponder.tag.contraption_assembly": "方块连接物件", - "create.ponder.tag.contraption_assembly.description": "将各个组件连接以便同时运动的物件", + "create.ponder.tag.contraption_assembly": "方块连接功能", + "create.ponder.tag.contraption_assembly.description": "将各个组件连接以便同时运动的工具以及组件", "create.ponder.tag.fluids": "流体操纵器械", "create.ponder.tag.fluids.description": "这些组件可以用于传递流体,以及利用流体进行工作。", "create.ponder.tag.decoration": "装饰", @@ -1579,7 +1579,7 @@ "create.ponder.basin.text_9": "若是加装过滤,那么你便无需担心会将未被处理的物品抽取出来了", "create.ponder.bearing_modes.header": "动力轴承的运动模式", - "create.ponder.bearing_modes.text_1": "当结构停止时,轴承会控制结构以特定的角度停在最近的与格相对齐之处", + "create.ponder.bearing_modes.text_1": "停止时,轴承会控制结构以特定的角度停在最近的与格相对齐之处", "create.ponder.bearing_modes.text_2": "你可以调整整个结构永不方块化,或者仅在结构的起始位置方块化", "create.ponder.belt_casing.header": "带机壳的传送带", @@ -1642,20 +1642,20 @@ "create.ponder.brass_tunnel_modes.text_8": "“最近优先”会将物品优先送入距离输入口更近的输出口", "create.ponder.brass_tunnel_modes.text_9": "“随机”会随机选择一个输出口,一次性送入所有物品", - "create.ponder.cart_assembler.header": "使用矿车装配站组装运动结构", + "create.ponder.cart_assembler.header": "使用矿车装配站控制结构移动", "create.ponder.cart_assembler.text_1": "矿车装配站会将它所连接的结构安装到矿车上", "create.ponder.cart_assembler.text_2": "若没有通入红石信号,它会将矿车装置解散为方块的形式", "create.ponder.cart_assembler.text_3": "对着矿车使用你的扳手,装置会变为可搬运的形式", - "create.ponder.cart_assembler_dual.header": "组装连接结构", + "create.ponder.cart_assembler_dual.header": "组装连接运输装置", "create.ponder.cart_assembler_dual.text_1": "若两个装配矿车分享了同一个结构", - "create.ponder.cart_assembler_dual.text_2": "给其中的任意一方的矿车装配站通入红石信号,都会创建出连接装置", + "create.ponder.cart_assembler_dual.text_2": "给其中的任意一方的矿车装配站通入红石信号,都会创建出连接运输装置", "create.ponder.cart_assembler_dual.text_3": "两辆矿车的此时行为与用矿车连轴器连接在一起时十分相似", "create.ponder.cart_assembler_modes.header": "矿车装置的方向设定", "create.ponder.cart_assembler_modes.text_1": "矿车装置会随着矿车的运动而发生转向", "create.ponder.cart_assembler_modes.text_2": "矿车装置上的箭头表明了哪一侧是“前面”", - "create.ponder.cart_assembler_modes.text_3": "如果装配结构的方向锁定了,那么结构的方向将不再改变", + "create.ponder.cart_assembler_modes.text_3": "如果装配站的配置为“旋转锁定”,那么装置的方向将不会改变", "create.ponder.cart_assembler_rails.header": "另外几种矿车以及铁轨", "create.ponder.cart_assembler_rails.text_1": "放置在普通轨道上的矿车装配站并不会影响路过矿车装置的运动", @@ -1686,12 +1686,12 @@ "create.ponder.chute_upward.text_2": "佩戴工程师护目镜时,你可以看见物品的移动方向", "create.ponder.chute_upward.text_3": "在溜槽“被挡住的”底端,物品只能从侧边进行提取或输入", - "create.ponder.clockwork_bearing.header": "使用时钟轴承来移动结构", - "create.ponder.clockwork_bearing.text_1": "时钟轴承黏附其正前方的方块", + "create.ponder.clockwork_bearing.header": "使用发条轴承来使结构运动", + "create.ponder.clockwork_bearing.text_1": "发条轴承黏附其正前方的方块", "create.ponder.clockwork_bearing.text_2": "当接受旋转力时,其附着结构会根据游戏内时间来进行旋转", "create.ponder.clockwork_bearing.text_3": "3:00", "create.ponder.clockwork_bearing.text_4": "4:00", - "create.ponder.clockwork_bearing.text_5": "右击可以来激活/停止结构运动", + "create.ponder.clockwork_bearing.text_5": "右击可以激活/停止结构运动", "create.ponder.clockwork_bearing.text_6": "在时针前方可添加第二个结构", "create.ponder.clockwork_bearing.text_7": "请确保这两个结构没有互相被例如强力胶等方式黏附", "create.ponder.clockwork_bearing.text_8": "第二个结构将会作为分针进行旋转", @@ -1710,9 +1710,9 @@ "create.ponder.cogwheel.text_2": "以此方式连接的齿轮,旋转方向相反", "create.ponder.creative_fluid_tank.header": "创造流体储罐", - "create.ponder.creative_fluid_tank.text_1": "创造流体储罐可以提供无限数量的流体", - "create.ponder.creative_fluid_tank.text_2": "使用一个含有流体的容器右击它来设置它提供的流体", - "create.ponder.creative_fluid_tank.text_3": "流体管道可以从中无限提取设置的流体", + "create.ponder.creative_fluid_tank.text_1": "创造流体储罐可以提供无限量的流体", + "create.ponder.creative_fluid_tank.text_2": "使用一个含有流体的容器右击它,即可指定它提供特定的流体", + "create.ponder.creative_fluid_tank.text_3": "流体管道可以从中无限提取指定的流体", "create.ponder.creative_fluid_tank.text_4": "任何被输入创造流体储罐的液体都将被销毁", "create.ponder.creative_motor.header": "使用创造马达发生旋转", @@ -1743,7 +1743,7 @@ "create.ponder.deployer.text_9": "以及攻击生物", "create.ponder.deployer_contraption.header": "在装置上使用机械手", - "create.ponder.deployer_contraption.text_1": "当机械手在移动的结构上时...", + "create.ponder.deployer_contraption.text_1": "当机械手在移动的装置上时...", "create.ponder.deployer_contraption.text_2": "机械手会对每一个经过的方块使用装置中任意容器内的物品", "create.ponder.deployer_contraption.text_3": "可以通过过滤槽来指定其从存储空间中抽取的物品", @@ -1773,12 +1773,12 @@ "create.ponder.empty_blaze_burner.text_2": "或者,也可以通过右击烈焰人刷怪笼来填充激活烈焰人燃烧室", "create.ponder.empty_blaze_burner.text_3": "这样,你便有了一个可供部分机器加工的热源", "create.ponder.empty_blaze_burner.text_4": "如果是为了美观,空的烈焰人燃烧室也可以被打火石点燃", - "create.ponder.empty_blaze_burner.text_5": "使用包含灵魂的物品可以将火焰变为灵魂火", - "create.ponder.empty_blaze_burner.text_6": "但是,这样的热源不足以给机器提加工供足够的热量", + "create.ponder.empty_blaze_burner.text_5": "你可以使用注入了灵魂的物品转化这种火焰", + "create.ponder.empty_blaze_burner.text_6": "但是,没有烈焰人,这样的火焰并不足以用于工业级加热工作", - "create.ponder.encased_fluid_pipe.header": "遮掩流体管道", + "create.ponder.encased_fluid_pipe.header": "流体管道箱", "create.ponder.encased_fluid_pipe.text_1": "铜机壳可以用于装饰流体管道", - "create.ponder.encased_fluid_pipe.text_2": "除了遮掩流体管道之外,装有铜机壳的流体管道将不会改变其连接状态", + "create.ponder.encased_fluid_pipe.text_2": "除了遮掩流体管道之外,装箱的流体管道将不会改变其连接状态", "create.ponder.encased_fluid_pipe.text_3": "它将不会对旁边新增加或移除的管道做出反应", "create.ponder.fan_direction.header": "鼓风机的气流", @@ -1801,31 +1801,31 @@ "create.ponder.fluid_pipe_flow.header": "使用管道运输流体", "create.ponder.fluid_pipe_flow.text_1": "流体管道可以用于连接两个或多个流体容器", - "create.ponder.fluid_pipe_flow.text_2": "使用扳手为直的管道增加观察窗", - "create.ponder.fluid_pipe_flow.text_3": "带有观察窗的管道不会建立侧向连接", - "create.ponder.fluid_pipe_flow.text_4": "通过使用动力泵,流体管道可以传输流体", - "create.ponder.fluid_pipe_flow.text_5": "一开始,流体不会真正被消耗", - "create.ponder.fluid_pipe_flow.text_6": "当管道内的液体流彻底联通之后,流体才会开始逐渐从一个容器中转移到另一个", + "create.ponder.fluid_pipe_flow.text_2": "使用扳手,可以为直管道安装观察窗", + "create.ponder.fluid_pipe_flow.text_3": "带有观察窗的管道不会建立侧向管道连接", + "create.ponder.fluid_pipe_flow.text_4": "使用动力泵,流体管道可以传输流体", + "create.ponder.fluid_pipe_flow.text_5": "一开始,流体不会真正地被抽出", + "create.ponder.fluid_pipe_flow.text_6": "只有当管道内的液体流彻底连通之后,流体才会开始逐渐从一个容器中转移到另一个", "create.ponder.fluid_pipe_flow.text_7": "这意味着流体管道本身并不真正存储任何流体", "create.ponder.fluid_pipe_interaction.header": "抽取和填充流体容器", "create.ponder.fluid_pipe_interaction.text_1": "流体管道的末端可以与许多种容器连接", "create.ponder.fluid_pipe_interaction.text_2": "任何可以容纳流体的容器都可以被填充或从中抽取", - "create.ponder.fluid_pipe_interaction.text_3": "开放的管道口可以吸走流体源块...", + "create.ponder.fluid_pipe_interaction.text_3": "开放的管道口可以吸走流体源方块...", "create.ponder.fluid_pipe_interaction.text_4": "...或者将流体源排放出来", - "create.ponder.fluid_pipe_interaction.text_5": "管道也可以从许多其他方块中直接抽取流体", + "create.ponder.fluid_pipe_interaction.text_5": "管道也可以从许多种其他方块中直接抽取流体", "create.ponder.fluid_tank_sizes.header": "流体储罐的大小", - "create.ponder.fluid_tank_sizes.text_1": "多格流体储罐可以被放置在一起来提供更大的容量", - "create.ponder.fluid_tank_sizes.text_2": "流体储罐最大可以有3x3的横截面...", - "create.ponder.fluid_tank_sizes.text_3": "...并且可以有超过30格高", + "create.ponder.fluid_tank_sizes.text_1": "流体储罐可以多格连接,提供更大的存储量", + "create.ponder.fluid_tank_sizes.text_2": "流体储罐最大横截面为 3x3...", + "create.ponder.fluid_tank_sizes.text_3": "...并且可以超过 30 格高", "create.ponder.fluid_tank_sizes.text_4": "使用扳手可以打开或关闭观察窗", "create.ponder.fluid_tank_storage.header": "使用流体储罐存储流体", "create.ponder.fluid_tank_storage.text_1": "流体储罐可以存储大量的流体", - "create.ponder.fluid_tank_storage.text_2": "流体管道可以从任何一面将流体输入/输出流体储罐", + "create.ponder.fluid_tank_storage.text_2": "流体管道可以在流体储罐的任何一面将流体输入/输出", "create.ponder.fluid_tank_storage.text_3": "使用比较器可以检测储罐中的流体储量", - "create.ponder.fluid_tank_storage.text_4": "在生存模式中,无法直接用容器将流体装入或取出储罐", + "create.ponder.fluid_tank_storage.text_4": "在生存模式中,无法直接用容器向储罐中存入流体,或是取出流体", "create.ponder.fluid_tank_storage.text_5": "要装满/倒空流体容器,可以使用工作盆,分液池或注液器。", "create.ponder.flywheel.header": "使用飞轮来产生旋转力", @@ -1882,8 +1882,8 @@ "create.ponder.gantry_redstone.text_2": "作为替代,杆上的旋转力会传递到取物器的输出杆上", "create.ponder.gantry_shaft.header": "使用起重机杆", - "create.ponder.gantry_shaft.text_1": "起重机杆组成了起重机结构的基础。与其相接的载物器可以沿着杆进行移动。", - "create.ponder.gantry_shaft.text_2": "起重机结构可以移动与其相接的方块。", + "create.ponder.gantry_shaft.text_1": "起重机杆组成了起重机系统的基础。与其相接的载物器可以沿着杆进行移动。", + "create.ponder.gantry_shaft.text_2": "起重机系统可以移动与其相接的方块。", "create.ponder.gearbox.header": "使用十字齿轮箱传递旋转力", "create.ponder.gearbox.text_1": "更改旋转轴,很容易使得整个旋转体系变得臃肿不堪", @@ -1902,32 +1902,32 @@ "create.ponder.hand_crank.text_4": "潜行长按右键可以顺时针旋转它", "create.ponder.hose_pulley.header": "使用软管滑轮抽取或排放流体", - "create.ponder.hose_pulley.text_1": "软管滑轮可以用于方便的抽取或填满一个较大区域中的流体", + "create.ponder.hose_pulley.text_1": "软管滑轮可以用于方便地对一个较大区域进行抽取液体或填满液体的操作", "create.ponder.hose_pulley.text_2": "通过输入动力可以调节软管末端的高度", "create.ponder.hose_pulley.text_3": "翻转动力输入的方向可以收起软管", "create.ponder.hose_pulley.text_4": "管道可以连接在另一侧", - "create.ponder.hose_pulley.text_5": "连接的管道可以将流体输入软管滑轮以在下方放置流体源...", + "create.ponder.hose_pulley.text_5": "连接的管道可以将流体输入到软管滑轮中,软管会在下方排出口处放置流体源...", "create.ponder.hose_pulley.text_6": "...或者提供吸力来抽取世界中的流体", "create.ponder.hose_pulley.text_7": "软管滑轮的抽取/排放速度取决于连接管道中流体的流速", - "create.ponder.hose_pulley_infinite.header": "从大型水体中抽取或向其排放", - "create.ponder.hose_pulley_infinite.text_1": "当软管被放进足够大的水体中时...", + "create.ponder.hose_pulley_infinite.header": "被动抽取或排放从大体量流体中", + "create.ponder.hose_pulley_infinite.text_1": "当软管被放进足够大的流体中时...", "create.ponder.hose_pulley_infinite.text_2": "...它在抽取或排放液体时将不会影响流体源", - "create.ponder.hose_pulley_infinite.text_3": "可以从这些软管滑轮中无限的抽取或向其排放流体", + "create.ponder.hose_pulley_infinite.text_3": "可以从这些软管滑轮中无限量地抽取或向其排放流体", "create.ponder.hose_pulley_level.header": "软管滑轮的排水/抽水机制", "create.ponder.hose_pulley_level.text_1": "当软管彻底收回时,软管滑轮无法工作。", - "create.ponder.hose_pulley_level.text_2": "流体会由上至下被抽取", + "create.ponder.hose_pulley_level.text_2": "抽取流体的顺序为从上到下", "create.ponder.hose_pulley_level.text_3": "流体表面最终将会被抽取到刚好低于软管开口", - "create.ponder.hose_pulley_level.text_4": "流体将会由下至上被填充", + "create.ponder.hose_pulley_level.text_4": "填充流体的顺序为从下到上", "create.ponder.hose_pulley_level.text_5": "流体最多只能被填充至软管开口所在的高度", "create.ponder.item_drain.header": "使用分液池提取物品中的流体", - "create.ponder.item_drain.text_1": "分液池可以提取容器中的流体", - "create.ponder.item_drain.text_2": "右键点击可以将手持的容器中的流体倒入分液池", + "create.ponder.item_drain.text_1": "分液池可以提取物品中的流体", + "create.ponder.item_drain.text_2": "右击可以将手持物品中的流体倒入分液池中", "create.ponder.item_drain.text_3": "当物品从侧面输入时...", - "create.ponder.item_drain.text_4": "...物品将会经过分液池顶部,并在过程中将其包含的液体排入分液池", - "create.ponder.item_drain.text_5": "流体管到可以从分液池中抽取液体", + "create.ponder.item_drain.text_4": "...物品将会经过分液池顶部,并在此过程中将其包含的液体排入分液池内", + "create.ponder.item_drain.text_5": "流体管道可以从分液池中抽取液体", "create.ponder.large_cogwheel.header": "使用大齿轮传递旋转力", "create.ponder.large_cogwheel.text_1": "大齿轮可以以特定的角度相互连接", @@ -2042,29 +2042,29 @@ "create.ponder.mechanical_press.header": "使用动力辊压机处理物品", "create.ponder.mechanical_press.text_1": "动力辊压机可以处理位于其下方的物品", "create.ponder.mechanical_press.text_2": "在其下方丢入物品,或者将物品放在置物台上,都算作有效的物品输入", - "create.ponder.mechanical_press.text_3": "当传送带上的物品经过辊压机下方时....", + "create.ponder.mechanical_press.text_3": "若物品位于传送带上...", "create.ponder.mechanical_press.text_4": "辊压机会使物品停下,然后自动处理这一物品", "create.ponder.mechanical_press_compacting.header": "使用动力辊压机压缩物品", - "create.ponder.mechanical_press_compacting.text_1": "对放置于工作盆内的物品进行辊轧,可以将这些物品压缩在一起", + "create.ponder.mechanical_press_compacting.text_1": "对放置于工作盆内的物品进行辊压,可以将这些物品压缩在一起", "create.ponder.mechanical_press_compacting.text_2": "压缩意指任何同种物品填满了 2x2 或者 3x3 网格的配方,以及一些额外的配方", "create.ponder.mechanical_press_compacting.text_3": "一些配方可能需要烈焰人燃烧室提供热量", "create.ponder.mechanical_press_compacting.text_4": "过滤槽可用于解决两个配方相互冲突的情况", "create.ponder.mechanical_pump_flow.header": "使用动力泵传输流体", - "create.ponder.mechanical_pump_flow.text_1": "动力泵可以控制管道中的液体流向", - "create.ponder.mechanical_pump_flow.text_2": "当接入动力时,其上的箭头指示液体流向", - "create.ponder.mechanical_pump_flow.text_3": "后方的管道中将会产生吸力...", - "create.ponder.mechanical_pump_flow.text_4": "...而液体将被输入前方的管道", - "create.ponder.mechanical_pump_flow.text_5": "反转动力方向将会改变液体流向", + "create.ponder.mechanical_pump_flow.text_1": "动力泵可以控制管道网络中的流体", + "create.ponder.mechanical_pump_flow.text_2": "当接入动力时,其上的箭头指示流体流向", + "create.ponder.mechanical_pump_flow.text_3": "泵后的管道网络正在抽取流体...", + "create.ponder.mechanical_pump_flow.text_4": "...而泵前的网络则把这些液体排到世界当中", + "create.ponder.mechanical_pump_flow.text_5": "反转动力方向将会改变流体流向", "create.ponder.mechanical_pump_flow.text_6": "使用扳手可以手动改变动力泵的朝向", "create.ponder.mechanical_pump_speed.header": "动力泵的传输机制", - "create.ponder.mechanical_pump_speed.text_1": "动力泵的压力最多沿管线传递16格,与输入动力无关", - "create.ponder.mechanical_pump_speed.text_2": "输入动力将会影响压力改变速度...", + "create.ponder.mechanical_pump_speed.text_1": "动力泵的压力最多沿管线传递 16 格,与输入动力无关", + "create.ponder.mechanical_pump_speed.text_2": "提高输入动力,可以加快流的蔓延速度...", "create.ponder.mechanical_pump_speed.text_3": "...以及流体的传输速度", - "create.ponder.mechanical_pump_speed.text_4": "多个并联动力泵的传输量可以叠加", - "create.ponder.mechanical_pump_speed.text_5": "交替摆放动力泵可以方便的控制液体流动", + "create.ponder.mechanical_pump_speed.text_4": "同一管道网络中的多个并联动力泵,它们的传输量可以叠加", + "create.ponder.mechanical_pump_speed.text_5": "使泵的传输方向相互交替,可以方便地控制流体流向", "create.ponder.mechanical_saw_breaker.header": "使用动力锯伐木", "create.ponder.mechanical_saw_breaker.text_1": "向其通入旋转力后,动力锯可以直接砍伐掉它面前的树木", @@ -2077,7 +2077,7 @@ "create.ponder.mechanical_saw_processing.header": "使用动力锯处理物品", "create.ponder.mechanical_saw_processing.text_1": "面向朝上的动力锯可以将物品处理为其变种", "create.ponder.mechanical_saw_processing.text_2": "处理过后的物品的弹出方向始终与通入锯中的旋转转向相反", - "create.ponder.mechanical_saw_processing.text_3": "锯子可以配合其两侧的传送带输入输出", + "create.ponder.mechanical_saw_processing.text_3": "锯子可以与传送带放置在一条直线上,相互配合工作", "create.ponder.mechanical_saw_processing.text_4": "若输入原料有多种可能产物,你可以用动力锯上的过滤槽指定只产出某种产物", "create.ponder.mechanical_saw_processing.text_5": "若没有使用过滤槽,动力锯会在各产物中按顺序循环输出", @@ -2090,8 +2090,8 @@ "create.ponder.nixie_tube.header": "使用辉光管", "create.ponder.nixie_tube.text_1": "通入红石信号后,辉光管会显示出红石信号的强度", - "create.ponder.nixie_tube.text_2": "在其上右键使用更改过名称的命名牌,可以自定义它的显示文本", - "create.ponder.nixie_tube.text_3": "使用染料右键以更改辉光管的显示颜色", + "create.ponder.nixie_tube.text_2": "在着它使用更改过名称的命名牌,可以自定义它的显示文本", + "create.ponder.nixie_tube.text_3": "使用染料右击,便可更改辉光管的显示颜色", "create.ponder.piston_pole.header": "活塞延长杆", "create.ponder.piston_pole.text_1": "若无相接的延长杆,动力活塞无法移动其他方块", @@ -2204,11 +2204,11 @@ "create.ponder.smart_chute.text_3": "使用鼠标滚轮可以指定被过滤的物品数量", "create.ponder.smart_chute.text_4": "通入红石信号,智能溜槽将会完全暂停工作", - "create.ponder.smart_pipe.header": "使用智能流体管道控制液体流动", + "create.ponder.smart_pipe.header": "使用智能流体管道控制流体流动", "create.ponder.smart_pipe.text_1": "智能流体管道可以限制通过它的流体种类", "create.ponder.smart_pipe.text_2": "当紧邻流体源放置时,管道只会抽取设置的流体种类", - "create.ponder.smart_pipe.text_3": "使用任何包含流体的容器右键过滤槽来标记过滤的流体", - "create.ponder.smart_pipe.text_4": "当放在管线中时,只有匹配过滤器的流体才能流入它后方的管道", + "create.ponder.smart_pipe.text_3": "使用任何包含流体的容器右击过滤槽,可以标记过滤的流体", + "create.ponder.smart_pipe.text_4": "当放在管道网络中时,只有匹配过滤器的流体才能通过此管道", "create.ponder.speedometer.header": "使用速度表来监测转速", "create.ponder.speedometer.text_1": "速度表能显示相接组件的转速", @@ -2216,10 +2216,10 @@ "create.ponder.speedometer.text_3": "红石比较器可以根据速度表的数值输出不同强弱的红石信号", "create.ponder.spout_filling.header": "使用注液器填充物品", - "create.ponder.spout_filling.text_1": "注液器可以将流体装入下方经过的,可以接受该流体的物品", + "create.ponder.spout_filling.text_1": "注液器可以将流体装入下方经过且可以接受该流体的物品", "create.ponder.spout_filling.text_2": "注液器的流体存储无法直接手动交互", - "create.ponder.spout_filling.text_3": "使用管线可以将流体输入注液器", - "create.ponder.spout_filling.text_4": "要被处理的物品可以被放置在其下方的置物台上", + "create.ponder.spout_filling.text_3": "使用管道可以将流体输入到注液器内", + "create.ponder.spout_filling.text_4": "输入的物品可以被放置在其下方的置物台上", "create.ponder.spout_filling.text_5": "当传送带上的物品经过注液器下方时...", "create.ponder.spout_filling.text_6": "注液器会使物品停下,然后自动处理这一物品", @@ -2227,7 +2227,7 @@ "create.ponder.stabilized_bearings.text_1": "当动力轴承在结构被带动时...", "create.ponder.stabilized_bearings.text_2": "...它会确保它转盘的垂直朝向不变", "create.ponder.stabilized_bearings.text_3": "跟默认的一样,动力轴承会黏着它前方的方块", - "create.ponder.stabilized_bearings.text_4": "这种情况下,它所黏着的子结构的垂直朝向也不会改变", + "create.ponder.stabilized_bearings.text_4": "这种情况下,它所黏着的子装置的垂直朝向也不会改变", "create.ponder.sticker.header": "使用黏着器来黏附方块", "create.ponder.sticker.text_1": "你可以用红石信号来控制黏着器的行为", @@ -2255,9 +2255,9 @@ "create.ponder.valve_handle.text_5": "可以通过染色来美化阀门手轮", "create.ponder.valve_pipe.header": "使用阀门管道控制液体流", - "create.ponder.valve_pipe.text_1": "阀门管道可以控制管道网中液体的去处", + "create.ponder.valve_pipe.text_1": "阀门管道可以控制管道网络中流体的蔓延", "create.ponder.valve_pipe.text_2": "通过其上的传动杆输入动力可以控制它的开关", - "create.ponder.valve_pipe.text_3": "提供旋转向‘打开’方向的力会打开阀门,使得流体可以通过", + "create.ponder.valve_pipe.text_3": "提供向“打开”方向的旋转力会打开阀门,使得流体可以通过", "create.ponder.valve_pipe.text_4": "提供另一方向的旋转力可以关闭阀门,阻止流体通过", "create.ponder.water_wheel.header": "使用水车产生旋转力", diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/FluidManipulationBehaviour.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/FluidManipulationBehaviour.java index a417ef747..186aa9589 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/FluidManipulationBehaviour.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/FluidManipulationBehaviour.java @@ -90,11 +90,11 @@ public abstract class FluidManipulationBehaviour extends TileEntityBehaviour { protected int maxBlocks() { return AllConfigs.SERVER.fluids.hosePulleyBlockThreshold.get(); } - + protected boolean fillInfinite() { return AllConfigs.SERVER.fluids.fillInfinite.get(); } - + public void reset() { if (affectedArea != null) scheduleUpdatesInAffectedArea(); @@ -113,7 +113,9 @@ public abstract class FluidManipulationBehaviour extends TileEntityBehaviour { protected void scheduleUpdatesInAffectedArea() { World world = getWorld(); - BlockPos.betweenClosedStream(new BlockPos(affectedArea.x0 - 1, affectedArea.y0 - 1, affectedArea.z0 - 1), new BlockPos(affectedArea.x1 + 1, affectedArea.y1 + 1, affectedArea.z1 + 1)) + BlockPos + .betweenClosedStream(new BlockPos(affectedArea.x0 - 1, affectedArea.y0 - 1, affectedArea.z0 - 1), + new BlockPos(affectedArea.x1 + 1, affectedArea.y1 + 1, affectedArea.z1 + 1)) .forEach(pos -> { FluidState nextFluidState = world.getFluidState(pos); if (nextFluidState.isEmpty()) @@ -200,9 +202,9 @@ public abstract class FluidManipulationBehaviour extends TileEntityBehaviour { : fluid.getAttributes() .getEmptySound(); if (soundevent == null) - soundevent = fluid.is(FluidTags.LAVA) - ? fillSound ? SoundEvents.BUCKET_FILL_LAVA : SoundEvents.BUCKET_EMPTY_LAVA - : fillSound ? SoundEvents.BUCKET_FILL : SoundEvents.BUCKET_EMPTY; + soundevent = + fluid.is(FluidTags.LAVA) ? fillSound ? SoundEvents.BUCKET_FILL_LAVA : SoundEvents.BUCKET_EMPTY_LAVA + : fillSound ? SoundEvents.BUCKET_FILL : SoundEvents.BUCKET_EMPTY; world.playSound(null, splooshPos, soundevent, SoundCategory.BLOCKS, 0.3F, 1.0F); if (world instanceof ServerWorld) diff --git a/src/main/java/com/simibubi/create/foundation/config/CFluids.java b/src/main/java/com/simibubi/create/foundation/config/CFluids.java index f0c3c251c..2b56185d2 100644 --- a/src/main/java/com/simibubi/create/foundation/config/CFluids.java +++ b/src/main/java/com/simibubi/create/foundation/config/CFluids.java @@ -9,7 +9,7 @@ public class CFluids extends ConfigBase { public ConfigInt hosePulleyBlockThreshold = i(10000, -1, "hosePulleyBlockThreshold", Comments.blocks, Comments.toDisable, Comments.hosePulleyBlockThreshold); - public ConfigBool fillInfinite = b(false, "fillInfinite",Comments.fillInfinite); + public ConfigBool fillInfinite = b(false, "fillInfinite", Comments.fillInfinite); public ConfigInt hosePulleyRange = i(128, 1, "hosePulleyRange", Comments.blocks, Comments.hosePulleyRange); @Override @@ -29,7 +29,7 @@ public class CFluids extends ConfigBase { static String toDisable = "[-1 to disable this behaviour]"; static String hosePulleyBlockThreshold = "The minimum amount of fluid blocks the hose pulley needs to find before deeming it an infinite source."; - static String fillInfinite="Does hose pulley poor fluids to the world even if it is an infinite source?"; + static String fillInfinite = "Whether hose pulleys should continue filling up above-threshold sources"; } } From 896ab016445cbbf38f2945f2e2ad42224ece5fd7 Mon Sep 17 00:00:00 2001 From: simibubi <31564874+simibubi@users.noreply.github.com> Date: Thu, 16 Sep 2021 04:10:34 +0200 Subject: [PATCH 53/79] Packing Up - Added the Toolbox --- src/generated/resources/.cache/cache | 31 +- .../assets/create/blockstates/toolbox.json | 34 ++ .../resources/assets/create/lang/en_ud.json | 1 + .../resources/assets/create/lang/en_us.json | 6 + .../assets/create/lang/unfinished/de_de.json | 8 +- .../assets/create/lang/unfinished/es_es.json | 8 +- .../assets/create/lang/unfinished/fr_fr.json | 8 +- .../assets/create/lang/unfinished/it_it.json | 8 +- .../assets/create/lang/unfinished/ja_jp.json | 8 +- .../assets/create/lang/unfinished/ko_kr.json | 8 +- .../assets/create/lang/unfinished/nl_nl.json | 8 +- .../assets/create/lang/unfinished/pl_pl.json | 8 +- .../assets/create/lang/unfinished/pt_br.json | 8 +- .../assets/create/lang/unfinished/ru_ru.json | 8 +- .../assets/create/lang/unfinished/zh_cn.json | 8 +- .../assets/create/lang/unfinished/zh_tw.json | 8 +- .../assets/create/models/item/toolbox.json | 3 + .../create/loot_tables/blocks/toolbox.json | 36 +++ .../com/simibubi/create/AllBlockPartials.java | 30 +- .../java/com/simibubi/create/AllBlocks.java | 238 +++++++------- .../simibubi/create/AllContainerTypes.java | 5 + .../java/com/simibubi/create/AllKeys.java | 1 + .../java/com/simibubi/create/AllShapes.java | 7 +- .../com/simibubi/create/AllTileEntities.java | 8 + .../simibubi/create/compat/jei/CreateJEI.java | 2 + .../toolbox/ItemReturnInvWrapper.java | 23 ++ .../toolbox/RadialToolboxMenu.java | 257 ++++++++++++++++ .../curiosities/toolbox/ToolboxBlock.java | 137 +++++++++ .../curiosities/toolbox/ToolboxContainer.java | 162 ++++++++++ .../toolbox/ToolboxEquipPacket.java | 117 +++++++ .../curiosities/toolbox/ToolboxHandler.java | 79 +++++ .../toolbox/ToolboxHandlerClient.java | 123 ++++++++ .../curiosities/toolbox/ToolboxInventory.java | 145 +++++++++ .../curiosities/toolbox/ToolboxRenderer.java | 59 ++++ .../curiosities/toolbox/ToolboxScreen.java | 162 ++++++++++ .../curiosities/toolbox/ToolboxSlot.java | 20 ++ .../toolbox/ToolboxTileEntity.java | 291 ++++++++++++++++++ .../curiosities/tools/BlueprintContainer.java | 3 +- .../AdjustableCrateTileEntity.java | 6 - .../item/filter/AttributeFilterContainer.java | 3 +- .../item/filter/FilterContainer.java | 3 +- .../simibubi/create/events/ClientEvents.java | 3 + .../simibubi/create/events/InputEvents.java | 2 + .../create/foundation/gui/AllGuiTextures.java | 18 +- .../create/foundation/gui/ContainerBase.java | 69 +++++ .../foundation/gui/GhostItemContainer.java | 46 +-- .../foundation/networking/AllPackets.java | 2 + .../networking/ISyncPersistentData.java | 25 +- .../tileEntity/SmartTileEntity.java | 12 +- .../create/foundation/utility/NBTHelper.java | 2 +- .../assets/create/lang/default/messages.json | 4 + .../create/models/block/toolbox/block.json | 24 ++ .../create/models/block/toolbox/drawer.json | 23 ++ .../create/models/block/toolbox/item.json | 132 ++++++++ .../create/models/block/toolbox/lid.json | 59 ++++ .../assets/create/textures/block/toolbox.png | Bin 0 -> 1124 bytes .../assets/create/textures/gui/toolbox.png | Bin 0 -> 1470 bytes .../assets/create/textures/gui/widgets.png | Bin 4222 -> 6635 bytes 58 files changed, 2291 insertions(+), 218 deletions(-) create mode 100644 src/generated/resources/assets/create/blockstates/toolbox.json create mode 100644 src/generated/resources/assets/create/models/item/toolbox.json create mode 100644 src/generated/resources/data/create/loot_tables/blocks/toolbox.json create mode 100644 src/main/java/com/simibubi/create/content/curiosities/toolbox/ItemReturnInvWrapper.java create mode 100644 src/main/java/com/simibubi/create/content/curiosities/toolbox/RadialToolboxMenu.java create mode 100644 src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxBlock.java create mode 100644 src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxContainer.java create mode 100644 src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxEquipPacket.java create mode 100644 src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxHandler.java create mode 100644 src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxHandlerClient.java create mode 100644 src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxInventory.java create mode 100644 src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxRenderer.java create mode 100644 src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxScreen.java create mode 100644 src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxSlot.java create mode 100644 src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxTileEntity.java create mode 100644 src/main/java/com/simibubi/create/foundation/gui/ContainerBase.java create mode 100644 src/main/resources/assets/create/models/block/toolbox/block.json create mode 100644 src/main/resources/assets/create/models/block/toolbox/drawer.json create mode 100644 src/main/resources/assets/create/models/block/toolbox/item.json create mode 100644 src/main/resources/assets/create/models/block/toolbox/lid.json create mode 100644 src/main/resources/assets/create/textures/block/toolbox.png create mode 100644 src/main/resources/assets/create/textures/gui/toolbox.png diff --git a/src/generated/resources/.cache/cache b/src/generated/resources/.cache/cache index 28f03b4a8..9c30843cb 100644 --- a/src/generated/resources/.cache/cache +++ b/src/generated/resources/.cache/cache @@ -396,6 +396,7 @@ f385988cb6fa9c48b5d59a6942ec50ed2b60c8bf assets/create/blockstates/stockpile_swi e815bfd854c2653f10828bb11950f7fb991d7efc assets/create/blockstates/stressometer.json 8b0c2c7ac72529565b3339aa8df7565858100afa assets/create/blockstates/tiled_glass.json a2454400b1cf9889f70aebdc89c52a1be25f543c assets/create/blockstates/tiled_glass_pane.json +a00f2e1bf002bd5c961d3571c67bdb1dab803bc7 assets/create/blockstates/toolbox.json a8094531617e27a545c4815ab2062bf0ffca3633 assets/create/blockstates/turntable.json 69dfe8afaa8eb6105dae9f76ab8b7847bf90b8c6 assets/create/blockstates/vertical_framed_glass.json c4db76b9d36cfb098df0d158cb6f8b82768ebe14 assets/create/blockstates/vertical_framed_glass_pane.json @@ -425,20 +426,20 @@ a3a11524cd3515fc01d905767b4b7ea782adaf03 assets/create/blockstates/yellow_seat.j 6801fa1f466f172700e573e5b8ee8ee5f9ca4583 assets/create/blockstates/yellow_valve_handle.json 7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json -fb760b12b4bc8114744d3acc6a597b2fad88d988 assets/create/lang/en_ud.json -66e8ae18a98d86c66393c908ab51eae5060b8e04 assets/create/lang/en_us.json -9e94c2420840c516e24dfd7968aaad61da24b5a2 assets/create/lang/unfinished/de_de.json -f1a6ed9a5812c89e7c7152c9abf2b64c133fd27d assets/create/lang/unfinished/es_es.json -23a46ae0bc7b2181f26eeed70801714a254d2587 assets/create/lang/unfinished/fr_fr.json -5e95153e640edc367b963489df8c92c459badcd3 assets/create/lang/unfinished/it_it.json -a951315b2591051dad6c53739fe554fe78595250 assets/create/lang/unfinished/ja_jp.json -419a1fc9af7d7ea0ccd612847df74e0b45380864 assets/create/lang/unfinished/ko_kr.json -dbc823d8cb38598e75871a2187b2a58d7f77f86a assets/create/lang/unfinished/nl_nl.json -ac609477c295be1705d3efc07848ffe6779fd397 assets/create/lang/unfinished/pl_pl.json -95e17b968103e0ef62411489e699d39ac7ff0b64 assets/create/lang/unfinished/pt_br.json -b37f50f613b0df44032fe5d618a5ce7227be8087 assets/create/lang/unfinished/ru_ru.json -fa465cd2c595bcd71449ad432a1908e27897177a assets/create/lang/unfinished/zh_cn.json -6192a7ede669ae6b6f8de6701b8a924d6a756c4a assets/create/lang/unfinished/zh_tw.json +337227971382d97fbaa69170e0b6bcc621bdc494 assets/create/lang/en_ud.json +307e88153d5288781e906e566f73ccd59fbcd945 assets/create/lang/en_us.json +5268c9117961dabecdae27b3190d02a8c0ea1077 assets/create/lang/unfinished/de_de.json +2e2002aefd045f492b7232884bd63c7a68d41480 assets/create/lang/unfinished/es_es.json +78836cc1527a95e7e40bc7f50faa95f8cdf5cd9d assets/create/lang/unfinished/fr_fr.json +b83a58ff24f2eca59c628c9a49e286d2feeece35 assets/create/lang/unfinished/it_it.json +5e3e878fe3fd58ba7911877609bf4f0be5a7c71d assets/create/lang/unfinished/ja_jp.json +ff6560eef8744197ab55334392df0a91898d80b2 assets/create/lang/unfinished/ko_kr.json +d0637cc0fa640b328dcdbaf74ae6967a7e15b980 assets/create/lang/unfinished/nl_nl.json +a23c910164b9d295f7c1f5a5e4d9a08094f1f00c assets/create/lang/unfinished/pl_pl.json +bb56417e9607b45350f329f865d2caa7038ebcec assets/create/lang/unfinished/pt_br.json +b643778faf6706b85ad567066de7176272df73d9 assets/create/lang/unfinished/ru_ru.json +45f4a765689a28da8fa267c2845fcf59135c6034 assets/create/lang/unfinished/zh_cn.json +3ac73d1173b450a4fa4eb5622b903cf4b52fbd0b assets/create/lang/unfinished/zh_tw.json 487a511a01b2a4531fb672f917922312db78f958 assets/create/models/block/acacia_window.json b48060cba1a382f373a05bf0039054053eccf076 assets/create/models/block/acacia_window_pane_noside.json 3066db1bf03cffa1a9c7fbacf47ae586632f4eb3 assets/create/models/block/acacia_window_pane_noside_alt.json @@ -1664,6 +1665,7 @@ bab8f78c319b2a79ed55c5d2a94b521ddaa44996 assets/create/models/item/stressometer. 088af343cda8a949f1d950e15e72b51ffca20a1d assets/create/models/item/sweet_roll.json b1d3d00ff05908feacad06a86800da96cc9bc65d assets/create/models/item/tiled_glass.json a7d0b746637897209bd86b1a6501ecbfb46d8270 assets/create/models/item/tiled_glass_pane.json +e3c708122fc5a5455bf7b4f8ac48e9d6c00278a9 assets/create/models/item/toolbox.json f8a4fa1ccecb16a3941cc46db7481ed8e8429a5e assets/create/models/item/tree_fertilizer.json fb24881c4e92bbb7ffa54a71e0af6b1c66d84829 assets/create/models/item/turntable.json 2a6be52ddedd614dc3b8a6b659bfbd7a4be54252 assets/create/models/item/vertical_framed_glass.json @@ -2829,6 +2831,7 @@ ec2889e712702644092197a4b41a682fb953817d data/create/loot_tables/blocks/stockpil 3479775008a256bc35f98b31655975f7d5c836b2 data/create/loot_tables/blocks/stressometer.json 05e843ca6eb5e299bf41de123977a1045c120ad4 data/create/loot_tables/blocks/tiled_glass.json e999969f05d2625e61757aa82092d232b99f6e0a data/create/loot_tables/blocks/tiled_glass_pane.json +ef939c8c30e7f6235290e85ff7afd96478c20408 data/create/loot_tables/blocks/toolbox.json 7b66ad2c48449bafd0cdbd086ac41218cb73a814 data/create/loot_tables/blocks/turntable.json 028e293b5cd694017962f67dc80dba719f904e28 data/create/loot_tables/blocks/vertical_framed_glass.json d0156602dd5f4a274c293df67e19374820c72890 data/create/loot_tables/blocks/vertical_framed_glass_pane.json diff --git a/src/generated/resources/assets/create/blockstates/toolbox.json b/src/generated/resources/assets/create/blockstates/toolbox.json new file mode 100644 index 000000000..37c3e2a2c --- /dev/null +++ b/src/generated/resources/assets/create/blockstates/toolbox.json @@ -0,0 +1,34 @@ +{ + "variants": { + "facing=north,waterlogged=false": { + "model": "create:block/toolbox/block" + }, + "facing=south,waterlogged=false": { + "model": "create:block/toolbox/block", + "y": 180 + }, + "facing=west,waterlogged=false": { + "model": "create:block/toolbox/block", + "y": 270 + }, + "facing=east,waterlogged=false": { + "model": "create:block/toolbox/block", + "y": 90 + }, + "facing=north,waterlogged=true": { + "model": "create:block/toolbox/block" + }, + "facing=south,waterlogged=true": { + "model": "create:block/toolbox/block", + "y": 180 + }, + "facing=west,waterlogged=true": { + "model": "create:block/toolbox/block", + "y": 270 + }, + "facing=east,waterlogged=true": { + "model": "create:block/toolbox/block", + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/lang/en_ud.json b/src/generated/resources/assets/create/lang/en_ud.json index 9bdbea809..8f30bb79b 100644 --- a/src/generated/resources/assets/create/lang/en_ud.json +++ b/src/generated/resources/assets/create/lang/en_ud.json @@ -397,6 +397,7 @@ "block.create.stressometer": "\u0279\u01DD\u0287\u01DD\u026Foss\u01DD\u0279\u0287S", "block.create.tiled_glass": "ss\u0250\u05DF\u2141 p\u01DD\u05DF\u0131\u27D8", "block.create.tiled_glass_pane": "\u01DDu\u0250\u0500 ss\u0250\u05DF\u2141 p\u01DD\u05DF\u0131\u27D8", + "block.create.toolbox": "xoq\u05DFoo\u27D8", "block.create.turntable": "\u01DD\u05DFq\u0250\u0287u\u0279n\u27D8", "block.create.vertical_framed_glass": "ss\u0250\u05DF\u2141 p\u01DD\u026F\u0250\u0279\u2132 \u05DF\u0250\u0254\u0131\u0287\u0279\u01DD\u039B", "block.create.vertical_framed_glass_pane": "\u01DDu\u0250\u0500 ss\u0250\u05DF\u2141 p\u01DD\u026F\u0250\u0279\u2132 \u05DF\u0250\u0254\u0131\u0287\u0279\u01DD\u039B", diff --git a/src/generated/resources/assets/create/lang/en_us.json b/src/generated/resources/assets/create/lang/en_us.json index 268153180..7b6b6dca1 100644 --- a/src/generated/resources/assets/create/lang/en_us.json +++ b/src/generated/resources/assets/create/lang/en_us.json @@ -400,6 +400,7 @@ "block.create.stressometer": "Stressometer", "block.create.tiled_glass": "Tiled Glass", "block.create.tiled_glass_pane": "Tiled Glass Pane", + "block.create.toolbox": "Toolbox", "block.create.turntable": "Turntable", "block.create.vertical_framed_glass": "Vertical Framed Glass", "block.create.vertical_framed_glass_pane": "Vertical Framed Glass Pane", @@ -790,6 +791,11 @@ "create.gui.scrollInput.shiftScrollsFaster": "Shift to Scroll Faster", "create.gui.toolmenu.focusKey": "Hold [%1$s] to Focus", "create.gui.toolmenu.cycle": "[SCROLL] to Cycle", + + "create.toolbox.unequip": "Unequip: %1$s", + "create.toolbox.outOfRange": "Toolbox of held item not in Range", + "create.toolbox.detach": "Stop tracking and keep item", + "create.gui.symmetryWand.mirrorType": "Mirror", "create.gui.symmetryWand.orientation": "Orientation", diff --git a/src/generated/resources/assets/create/lang/unfinished/de_de.json b/src/generated/resources/assets/create/lang/unfinished/de_de.json index ce55f9519..5f096580d 100644 --- a/src/generated/resources/assets/create/lang/unfinished/de_de.json +++ b/src/generated/resources/assets/create/lang/unfinished/de_de.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1134", + "_": "Missing Localizations: 1138", "_": "->------------------------] Game Elements [------------------------<-", @@ -401,6 +401,7 @@ "block.create.stressometer": "Stressometer", "block.create.tiled_glass": "Glasfliesen", "block.create.tiled_glass_pane": "Glasfliesenscheibe", + "block.create.toolbox": "UNLOCALIZED: Toolbox", "block.create.turntable": "Drehtisch", "block.create.vertical_framed_glass": "Vertikal Gerahmtes Glas", "block.create.vertical_framed_glass_pane": "Vertikal Gerahmte Glasscheibe", @@ -791,6 +792,11 @@ "create.gui.scrollInput.shiftScrollsFaster": "Shift zum schnelleren Auswählen", "create.gui.toolmenu.focusKey": "Halte [%1$s] zum Fokussieren", "create.gui.toolmenu.cycle": "[Mausrad] zum Wechseln", + + "create.toolbox.unequip": "UNLOCALIZED: Unequip: %1$s", + "create.toolbox.outOfRange": "UNLOCALIZED: Toolbox of held item not in Range", + "create.toolbox.detach": "UNLOCALIZED: Stop tracking and keep item", + "create.gui.symmetryWand.mirrorType": "Spiegeln", "create.gui.symmetryWand.orientation": "Orientierung", diff --git a/src/generated/resources/assets/create/lang/unfinished/es_es.json b/src/generated/resources/assets/create/lang/unfinished/es_es.json index 79a683627..44d35f9f9 100644 --- a/src/generated/resources/assets/create/lang/unfinished/es_es.json +++ b/src/generated/resources/assets/create/lang/unfinished/es_es.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 0", + "_": "Missing Localizations: 4", "_": "->------------------------] Game Elements [------------------------<-", @@ -401,6 +401,7 @@ "block.create.stressometer": "Estresómetro", "block.create.tiled_glass": "Vidrio esmaltado", "block.create.tiled_glass_pane": "Panel de vidrio esmaltado", + "block.create.toolbox": "UNLOCALIZED: Toolbox", "block.create.turntable": "Plataforma giratoria mecánica", "block.create.vertical_framed_glass": "Vidrio esmaltado vertical", "block.create.vertical_framed_glass_pane": "Panel de vidrio esmaltado vertical", @@ -791,6 +792,11 @@ "create.gui.scrollInput.shiftScrollsFaster": "Mayús izdo para usar la rueda del ratón más rápido", "create.gui.toolmenu.focusKey": "Mantén [%1$s] para enfocar", "create.gui.toolmenu.cycle": "[RUEDA DEL RATÓN] para el ciclo", + + "create.toolbox.unequip": "UNLOCALIZED: Unequip: %1$s", + "create.toolbox.outOfRange": "UNLOCALIZED: Toolbox of held item not in Range", + "create.toolbox.detach": "UNLOCALIZED: Stop tracking and keep item", + "create.gui.symmetryWand.mirrorType": "Espejado", "create.gui.symmetryWand.orientation": "Orientación", diff --git a/src/generated/resources/assets/create/lang/unfinished/fr_fr.json b/src/generated/resources/assets/create/lang/unfinished/fr_fr.json index 2e0c26dd4..78e9c4a2a 100644 --- a/src/generated/resources/assets/create/lang/unfinished/fr_fr.json +++ b/src/generated/resources/assets/create/lang/unfinished/fr_fr.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1386", + "_": "Missing Localizations: 1390", "_": "->------------------------] Game Elements [------------------------<-", @@ -401,6 +401,7 @@ "block.create.stressometer": "Stressomètre", "block.create.tiled_glass": "Verre carrelé", "block.create.tiled_glass_pane": "Vitre carrelé", + "block.create.toolbox": "UNLOCALIZED: Toolbox", "block.create.turntable": "Plaque tournante", "block.create.vertical_framed_glass": "Fenêtre en verre verticale", "block.create.vertical_framed_glass_pane": "Vitre encadrée verticale", @@ -791,6 +792,11 @@ "create.gui.scrollInput.shiftScrollsFaster": "Maj pour défiler plus rapidement", "create.gui.toolmenu.focusKey": "Enfoncez [%1$s] pour focus", "create.gui.toolmenu.cycle": "[SCROLL] pour cycler", + + "create.toolbox.unequip": "UNLOCALIZED: Unequip: %1$s", + "create.toolbox.outOfRange": "UNLOCALIZED: Toolbox of held item not in Range", + "create.toolbox.detach": "UNLOCALIZED: Stop tracking and keep item", + "create.gui.symmetryWand.mirrorType": "Mirroir", "create.gui.symmetryWand.orientation": "Orientation", diff --git a/src/generated/resources/assets/create/lang/unfinished/it_it.json b/src/generated/resources/assets/create/lang/unfinished/it_it.json index 8108827f1..e8def88f1 100644 --- a/src/generated/resources/assets/create/lang/unfinished/it_it.json +++ b/src/generated/resources/assets/create/lang/unfinished/it_it.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 914", + "_": "Missing Localizations: 918", "_": "->------------------------] Game Elements [------------------------<-", @@ -401,6 +401,7 @@ "block.create.stressometer": "Stressometro", "block.create.tiled_glass": "Vetro piastrellato", "block.create.tiled_glass_pane": "Pannello di vetro piastrellato", + "block.create.toolbox": "UNLOCALIZED: Toolbox", "block.create.turntable": "Piatto", "block.create.vertical_framed_glass": "Finestra di vetro verticale", "block.create.vertical_framed_glass_pane": "Pannello di finestra di vetro verticale", @@ -791,6 +792,11 @@ "create.gui.scrollInput.shiftScrollsFaster": "Premi shift per scorrere più velocemente", "create.gui.toolmenu.focusKey": "Premi [%1$s] per aprire il menù", "create.gui.toolmenu.cycle": "[SCORRI] per navigare", + + "create.toolbox.unequip": "UNLOCALIZED: Unequip: %1$s", + "create.toolbox.outOfRange": "UNLOCALIZED: Toolbox of held item not in Range", + "create.toolbox.detach": "UNLOCALIZED: Stop tracking and keep item", + "create.gui.symmetryWand.mirrorType": "Specchio", "create.gui.symmetryWand.orientation": "Orientamento", diff --git a/src/generated/resources/assets/create/lang/unfinished/ja_jp.json b/src/generated/resources/assets/create/lang/unfinished/ja_jp.json index 5650fe7dd..5c6496fab 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ja_jp.json +++ b/src/generated/resources/assets/create/lang/unfinished/ja_jp.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 9", + "_": "Missing Localizations: 13", "_": "->------------------------] Game Elements [------------------------<-", @@ -401,6 +401,7 @@ "block.create.stressometer": "応力メーター", "block.create.tiled_glass": "タイルガラス", "block.create.tiled_glass_pane": "タイルガラス板", + "block.create.toolbox": "UNLOCALIZED: Toolbox", "block.create.turntable": "ターンテーブル", "block.create.vertical_framed_glass": "縦型ガラス窓", "block.create.vertical_framed_glass_pane": "縦型ガラス窓板", @@ -791,6 +792,11 @@ "create.gui.scrollInput.shiftScrollsFaster": "シフトを押してスクロールを加速", "create.gui.toolmenu.focusKey": "[%1$s] 長押しでフォーカスする", "create.gui.toolmenu.cycle": "[スクロール] で循環", + + "create.toolbox.unequip": "UNLOCALIZED: Unequip: %1$s", + "create.toolbox.outOfRange": "UNLOCALIZED: Toolbox of held item not in Range", + "create.toolbox.detach": "UNLOCALIZED: Stop tracking and keep item", + "create.gui.symmetryWand.mirrorType": "ミラーの種類", "create.gui.symmetryWand.orientation": "方向", diff --git a/src/generated/resources/assets/create/lang/unfinished/ko_kr.json b/src/generated/resources/assets/create/lang/unfinished/ko_kr.json index b45ee1cfb..987018999 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ko_kr.json +++ b/src/generated/resources/assets/create/lang/unfinished/ko_kr.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 24", + "_": "Missing Localizations: 28", "_": "->------------------------] Game Elements [------------------------<-", @@ -401,6 +401,7 @@ "block.create.stressometer": "피로도 계측기", "block.create.tiled_glass": "타일 유리", "block.create.tiled_glass_pane": "타일 유리판", + "block.create.toolbox": "UNLOCALIZED: Toolbox", "block.create.turntable": "돌림판", "block.create.vertical_framed_glass": "수직 유리", "block.create.vertical_framed_glass_pane": "수직 유리판", @@ -791,6 +792,11 @@ "create.gui.scrollInput.shiftScrollsFaster": "쉬프트-스크롤로 빨리 수정하기", "create.gui.toolmenu.focusKey": "[%1$s]를 눌러 세부정보 보기", "create.gui.toolmenu.cycle": "스크롤로 순환", + + "create.toolbox.unequip": "UNLOCALIZED: Unequip: %1$s", + "create.toolbox.outOfRange": "UNLOCALIZED: Toolbox of held item not in Range", + "create.toolbox.detach": "UNLOCALIZED: Stop tracking and keep item", + "create.gui.symmetryWand.mirrorType": "거울의 형태", "create.gui.symmetryWand.orientation": "거울의 방향", diff --git a/src/generated/resources/assets/create/lang/unfinished/nl_nl.json b/src/generated/resources/assets/create/lang/unfinished/nl_nl.json index 2a8d48fd3..39010143c 100644 --- a/src/generated/resources/assets/create/lang/unfinished/nl_nl.json +++ b/src/generated/resources/assets/create/lang/unfinished/nl_nl.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1766", + "_": "Missing Localizations: 1770", "_": "->------------------------] Game Elements [------------------------<-", @@ -401,6 +401,7 @@ "block.create.stressometer": "Stressmeter", "block.create.tiled_glass": "Getegeld Glas", "block.create.tiled_glass_pane": "Getegeld Glazen Paneel", + "block.create.toolbox": "UNLOCALIZED: Toolbox", "block.create.turntable": "Draaischijf", "block.create.vertical_framed_glass": "UNLOCALIZED: Vertical Framed Glass", "block.create.vertical_framed_glass_pane": "UNLOCALIZED: Vertical Framed Glass Pane", @@ -791,6 +792,11 @@ "create.gui.scrollInput.shiftScrollsFaster": "Shift om sneller te Scrollen", "create.gui.toolmenu.focusKey": "Hou [%1$s] ingedrukt om te Focusen", "create.gui.toolmenu.cycle": "[SCROLL] om te Cycleën", + + "create.toolbox.unequip": "UNLOCALIZED: Unequip: %1$s", + "create.toolbox.outOfRange": "UNLOCALIZED: Toolbox of held item not in Range", + "create.toolbox.detach": "UNLOCALIZED: Stop tracking and keep item", + "create.gui.symmetryWand.mirrorType": "Spiegelen", "create.gui.symmetryWand.orientation": "Orientatie", diff --git a/src/generated/resources/assets/create/lang/unfinished/pl_pl.json b/src/generated/resources/assets/create/lang/unfinished/pl_pl.json index 010fcaa58..45022fd4f 100644 --- a/src/generated/resources/assets/create/lang/unfinished/pl_pl.json +++ b/src/generated/resources/assets/create/lang/unfinished/pl_pl.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 256", + "_": "Missing Localizations: 260", "_": "->------------------------] Game Elements [------------------------<-", @@ -401,6 +401,7 @@ "block.create.stressometer": "Miernik obciążenia", "block.create.tiled_glass": "Kafelkowane szkło", "block.create.tiled_glass_pane": "Kafelkowana szyba", + "block.create.toolbox": "UNLOCALIZED: Toolbox", "block.create.turntable": "Talerz obrotowy", "block.create.vertical_framed_glass": "Pionowe oprawione szkło", "block.create.vertical_framed_glass_pane": "Pionowa oprawiona szyba", @@ -791,6 +792,11 @@ "create.gui.scrollInput.shiftScrollsFaster": "Naciśnij Shift, aby przewijać szybciej", "create.gui.toolmenu.focusKey": "Przytrzymaj [%1$s], aby skupić", "create.gui.toolmenu.cycle": "[SCROLL] przewijać", + + "create.toolbox.unequip": "UNLOCALIZED: Unequip: %1$s", + "create.toolbox.outOfRange": "UNLOCALIZED: Toolbox of held item not in Range", + "create.toolbox.detach": "UNLOCALIZED: Stop tracking and keep item", + "create.gui.symmetryWand.mirrorType": "Odbicie lustrzane", "create.gui.symmetryWand.orientation": "Orientacja", diff --git a/src/generated/resources/assets/create/lang/unfinished/pt_br.json b/src/generated/resources/assets/create/lang/unfinished/pt_br.json index 6d34e640a..8538ed5fa 100644 --- a/src/generated/resources/assets/create/lang/unfinished/pt_br.json +++ b/src/generated/resources/assets/create/lang/unfinished/pt_br.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1807", + "_": "Missing Localizations: 1811", "_": "->------------------------] Game Elements [------------------------<-", @@ -401,6 +401,7 @@ "block.create.stressometer": "UNLOCALIZED: Stressometer", "block.create.tiled_glass": "Vidro Entalhado", "block.create.tiled_glass_pane": "Vidraça Entalhada", + "block.create.toolbox": "UNLOCALIZED: Toolbox", "block.create.turntable": "Mesa giratória", "block.create.vertical_framed_glass": "UNLOCALIZED: Vertical Framed Glass", "block.create.vertical_framed_glass_pane": "UNLOCALIZED: Vertical Framed Glass Pane", @@ -791,6 +792,11 @@ "create.gui.scrollInput.shiftScrollsFaster": "UNLOCALIZED: Shift to Scroll Faster", "create.gui.toolmenu.focusKey": "Segure [%1$s] para Focar", "create.gui.toolmenu.cycle": "[SCROLL] para Circular", + + "create.toolbox.unequip": "UNLOCALIZED: Unequip: %1$s", + "create.toolbox.outOfRange": "UNLOCALIZED: Toolbox of held item not in Range", + "create.toolbox.detach": "UNLOCALIZED: Stop tracking and keep item", + "create.gui.symmetryWand.mirrorType": "Espelhar", "create.gui.symmetryWand.orientation": "Orientação", diff --git a/src/generated/resources/assets/create/lang/unfinished/ru_ru.json b/src/generated/resources/assets/create/lang/unfinished/ru_ru.json index 35b858bb2..8374dffca 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ru_ru.json +++ b/src/generated/resources/assets/create/lang/unfinished/ru_ru.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 5", + "_": "Missing Localizations: 9", "_": "->------------------------] Game Elements [------------------------<-", @@ -401,6 +401,7 @@ "block.create.stressometer": "Стрессометр", "block.create.tiled_glass": "Плиточное стекло", "block.create.tiled_glass_pane": "Плиточная стеклянная панель", + "block.create.toolbox": "UNLOCALIZED: Toolbox", "block.create.turntable": "Поворотный стол", "block.create.vertical_framed_glass": "Вертикальное обрамлённое стекло", "block.create.vertical_framed_glass_pane": "Вертикальная обрамлённая стеклянная панель", @@ -791,6 +792,11 @@ "create.gui.scrollInput.shiftScrollsFaster": "Нажмите Shift для быстрой прокрутки", "create.gui.toolmenu.focusKey": "Удерживайте [%1$s] для смены задач", "create.gui.toolmenu.cycle": "[Прокрутка] для переключения", + + "create.toolbox.unequip": "UNLOCALIZED: Unequip: %1$s", + "create.toolbox.outOfRange": "UNLOCALIZED: Toolbox of held item not in Range", + "create.toolbox.detach": "UNLOCALIZED: Stop tracking and keep item", + "create.gui.symmetryWand.mirrorType": "Зеркало", "create.gui.symmetryWand.orientation": "Ориентация", diff --git a/src/generated/resources/assets/create/lang/unfinished/zh_cn.json b/src/generated/resources/assets/create/lang/unfinished/zh_cn.json index 0d0f8f5bc..318b583d9 100644 --- a/src/generated/resources/assets/create/lang/unfinished/zh_cn.json +++ b/src/generated/resources/assets/create/lang/unfinished/zh_cn.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 4", + "_": "Missing Localizations: 8", "_": "->------------------------] Game Elements [------------------------<-", @@ -401,6 +401,7 @@ "block.create.stressometer": "应力表", "block.create.tiled_glass": "十字玻璃窗", "block.create.tiled_glass_pane": "十字玻璃窗户板", + "block.create.toolbox": "UNLOCALIZED: Toolbox", "block.create.turntable": "转盘", "block.create.vertical_framed_glass": "竖直边框玻璃", "block.create.vertical_framed_glass_pane": "竖直边框玻璃板", @@ -791,6 +792,11 @@ "create.gui.scrollInput.shiftScrollsFaster": "按住 Shift 滚动更快", "create.gui.toolmenu.focusKey": "按住 [%1$s] 鼠标滚轮选择", "create.gui.toolmenu.cycle": "[SCROLL] 循环", + + "create.toolbox.unequip": "UNLOCALIZED: Unequip: %1$s", + "create.toolbox.outOfRange": "UNLOCALIZED: Toolbox of held item not in Range", + "create.toolbox.detach": "UNLOCALIZED: Stop tracking and keep item", + "create.gui.symmetryWand.mirrorType": "镜子类型", "create.gui.symmetryWand.orientation": "方向", diff --git a/src/generated/resources/assets/create/lang/unfinished/zh_tw.json b/src/generated/resources/assets/create/lang/unfinished/zh_tw.json index 9ec60092a..644d74902 100644 --- a/src/generated/resources/assets/create/lang/unfinished/zh_tw.json +++ b/src/generated/resources/assets/create/lang/unfinished/zh_tw.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 19", + "_": "Missing Localizations: 23", "_": "->------------------------] Game Elements [------------------------<-", @@ -401,6 +401,7 @@ "block.create.stressometer": "動能錶", "block.create.tiled_glass": "十字玻璃窗", "block.create.tiled_glass_pane": "十字玻璃窗戶片", + "block.create.toolbox": "UNLOCALIZED: Toolbox", "block.create.turntable": "轉盤", "block.create.vertical_framed_glass": "豎直邊框玻璃", "block.create.vertical_framed_glass_pane": "豎直邊框玻璃片", @@ -791,6 +792,11 @@ "create.gui.scrollInput.shiftScrollsFaster": "按住Shift滾動更快", "create.gui.toolmenu.focusKey": "按住 [%1$s] 滑鼠滾輪選擇", "create.gui.toolmenu.cycle": "[SCROLL] 循環", + + "create.toolbox.unequip": "UNLOCALIZED: Unequip: %1$s", + "create.toolbox.outOfRange": "UNLOCALIZED: Toolbox of held item not in Range", + "create.toolbox.detach": "UNLOCALIZED: Stop tracking and keep item", + "create.gui.symmetryWand.mirrorType": "鏡子類型", "create.gui.symmetryWand.orientation": "方向", diff --git a/src/generated/resources/assets/create/models/item/toolbox.json b/src/generated/resources/assets/create/models/item/toolbox.json new file mode 100644 index 000000000..719de98e9 --- /dev/null +++ b/src/generated/resources/assets/create/models/item/toolbox.json @@ -0,0 +1,3 @@ +{ + "parent": "create:block/toolbox/item" +} \ No newline at end of file diff --git a/src/generated/resources/data/create/loot_tables/blocks/toolbox.json b/src/generated/resources/data/create/loot_tables/blocks/toolbox.json new file mode 100644 index 000000000..f25ecaa38 --- /dev/null +++ b/src/generated/resources/data/create/loot_tables/blocks/toolbox.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_name", + "source": "block_entity" + }, + { + "function": "minecraft:copy_nbt", + "source": "block_entity", + "ops": [ + { + "source": "Inventory", + "target": "Inventory", + "op": "replace" + } + ] + } + ], + "name": "create:toolbox" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/java/com/simibubi/create/AllBlockPartials.java b/src/main/java/com/simibubi/create/AllBlockPartials.java index 8fb10077e..56b2a569e 100644 --- a/src/main/java/com/simibubi/create/AllBlockPartials.java +++ b/src/main/java/com/simibubi/create/AllBlockPartials.java @@ -93,27 +93,29 @@ public class AllBlockPartials { SPOUT_TOP = get("spout/top"), SPOUT_MIDDLE = get("spout/middle"), SPOUT_BOTTOM = get("spout/bottom"), - PECULIAR_BELL = get("peculiar_bell"), - HAUNTED_BELL = get("haunted_bell"), + PECULIAR_BELL = get("peculiar_bell"), HAUNTED_BELL = get("haunted_bell"), - SPEED_CONTROLLER_BRACKET = get("rotation_speed_controller/bracket"), + TOOLBOX_LID = get("toolbox/lid"), TOOLBOX_DRAWER = get("toolbox/drawer"), - GOGGLES = get("goggles"), + SPEED_CONTROLLER_BRACKET = get("rotation_speed_controller/bracket"), - EJECTOR_TOP = get("weighted_ejector/top"), + GOGGLES = get("goggles"), - COPPER_BACKTANK_SHAFT = get("copper_backtank/block_shaft_input"), - COPPER_BACKTANK_COGS = get("copper_backtank/block_cogs"), + EJECTOR_TOP = get("weighted_ejector/top"), - CRAFTING_BLUEPRINT_1x1 = getEntity("crafting_blueprint_small"), - CRAFTING_BLUEPRINT_2x2 = getEntity("crafting_blueprint_medium"), - CRAFTING_BLUEPRINT_3x3 = getEntity("crafting_blueprint_large"), + COPPER_BACKTANK_SHAFT = get("copper_backtank/block_shaft_input"), + COPPER_BACKTANK_COGS = get("copper_backtank/block_cogs"), - COUPLING_ATTACHMENT = getEntity("minecart_coupling/attachment"), - COUPLING_RING = getEntity("minecart_coupling/ring"), - COUPLING_CONNECTOR = getEntity("minecart_coupling/connector"); + CRAFTING_BLUEPRINT_1x1 = getEntity("crafting_blueprint_small"), + CRAFTING_BLUEPRINT_2x2 = getEntity("crafting_blueprint_medium"), + CRAFTING_BLUEPRINT_3x3 = getEntity("crafting_blueprint_large"), - public static final Map> PIPE_ATTACHMENTS = new HashMap<>(); + COUPLING_ATTACHMENT = getEntity("minecart_coupling/attachment"), + COUPLING_RING = getEntity("minecart_coupling/ring"), + COUPLING_CONNECTOR = getEntity("minecart_coupling/connector"); + + public static final Map> PIPE_ATTACHMENTS = + new HashMap<>(); public static final Map BLAZES = new HashMap<>(); static { diff --git a/src/main/java/com/simibubi/create/AllBlocks.java b/src/main/java/com/simibubi/create/AllBlocks.java index a990a6d10..230e2c0bd 100644 --- a/src/main/java/com/simibubi/create/AllBlocks.java +++ b/src/main/java/com/simibubi/create/AllBlocks.java @@ -118,6 +118,7 @@ import com.simibubi.create.content.curiosities.armor.CopperBacktankBlock; import com.simibubi.create.content.curiosities.bell.HauntedBellBlock; import com.simibubi.create.content.curiosities.bell.HauntedBellMovementBehaviour; import com.simibubi.create.content.curiosities.bell.PeculiarBellBlock; +import com.simibubi.create.content.curiosities.toolbox.ToolboxBlock; import com.simibubi.create.content.logistics.block.belts.tunnel.BeltTunnelBlock; import com.simibubi.create.content.logistics.block.belts.tunnel.BrassTunnelBlock; import com.simibubi.create.content.logistics.block.belts.tunnel.BrassTunnelCTBehaviour; @@ -160,9 +161,9 @@ import com.simibubi.create.content.logistics.block.redstone.StockpileSwitchBlock import com.simibubi.create.content.logistics.item.LecternControllerBlock; import com.simibubi.create.content.schematics.block.SchematicTableBlock; import com.simibubi.create.content.schematics.block.SchematicannonBlock; +import com.simibubi.create.foundation.block.BlockStressDefaults; import com.simibubi.create.foundation.block.DyedBlockList; import com.simibubi.create.foundation.block.ItemUseOverrides; -import com.simibubi.create.foundation.block.BlockStressDefaults; import com.simibubi.create.foundation.data.AssetLookup; import com.simibubi.create.foundation.data.BlockStateGen; import com.simibubi.create.foundation.data.BuilderTransformers; @@ -208,7 +209,7 @@ import net.minecraftforge.common.ToolType; public class AllBlocks { private static final CreateRegistrate REGISTRATE = Create.registrate() - .itemGroup(() -> Create.BASE_CREATIVE_TAB); + .itemGroup(() -> Create.BASE_CREATIVE_TAB); // Schematics @@ -224,11 +225,12 @@ public class AllBlocks { Builder builder = LootTable.lootTable(); IBuilder survivesExplosion = SurvivesExplosion.survivesExplosion(); lt.add(block, builder.withPool(LootPool.lootPool() - .when(survivesExplosion) - .setRolls(ConstantRange.exactly(1)) - .add(ItemLootEntry.lootTableItem(AllBlocks.SCHEMATICANNON.get().asItem()) - .apply(CopyNbt.copyData(CopyNbt.Source.BLOCK_ENTITY) - .copy("Options", "BlockEntityTag.Options"))))); + .when(survivesExplosion) + .setRolls(ConstantRange.exactly(1)) + .add(ItemLootEntry.lootTableItem(AllBlocks.SCHEMATICANNON.get() + .asItem()) + .apply(CopyNbt.copyData(CopyNbt.Source.BLOCK_ENTITY) + .copy("Options", "BlockEntityTag.Options"))))); }) .item() .transform(customItemModel()) @@ -501,11 +503,13 @@ public class AllBlocks { .addLayer(() -> RenderType::cutoutMipped) .tag(AllBlockTags.FAN_TRANSPARENT.tag, AllBlockTags.FAN_HEATERS.tag) .loot((lt, block) -> lt.dropOther(block, AllItems.EMPTY_BLAZE_BURNER.get())) - .blockstate((c, p) -> p.getVariantBuilder(c.get()).forAllStates(state -> - ConfiguredModel.builder() - .modelFile(p.models().getExistingFile(p.modLoc( - "block/blaze_burner/" + (state.getValue(LitBlazeBurnerBlock.FLAME_TYPE) == LitBlazeBurnerBlock.FlameType.SOUL ? "block_with_soul_fire" : "block_with_fire") - ))) + .blockstate((c, p) -> p.getVariantBuilder(c.get()) + .forAllStates(state -> ConfiguredModel.builder() + .modelFile(p.models() + .getExistingFile(p.modLoc("block/blaze_burner/" + + (state.getValue(LitBlazeBurnerBlock.FLAME_TYPE) == LitBlazeBurnerBlock.FlameType.SOUL + ? "block_with_soul_fire" + : "block_with_fire")))) .build())) .register(); @@ -598,7 +602,8 @@ public class AllBlocks { .initialProperties(SharedProperties::softMetal) .addLayer(() -> RenderType::cutoutMipped) .blockstate((c, p) -> BlockStateGen.axisBlock(c, p, s -> p.models() - .getExistingFile(p.modLoc("block/fluid_pipe/window" + (s.getValue(GlassFluidPipeBlock.ALT) ? "_alt" : ""))))) + .getExistingFile( + p.modLoc("block/fluid_pipe/window" + (s.getValue(GlassFluidPipeBlock.ALT) ? "_alt" : ""))))) .onRegister(CreateRegistrate.blockModel(() -> PipeAttachmentModel::new)) .loot((p, b) -> p.dropOther(b, FLUID_PIPE.get())) .register(); @@ -626,39 +631,39 @@ public class AllBlocks { .blockstate((c, p) -> BlockStateGen.directionalAxisBlock(c, p, (state, vertical) -> AssetLookup.partialBaseModel(c, p, vertical ? "vertical" : "horizontal", state.getValue(FluidValveBlock.ENABLED) ? "open" : "closed"))) - .onRegister(CreateRegistrate.blockModel(() -> PipeAttachmentModel::new)) - .item() - .transform(customItemModel()) - .register(); + .onRegister(CreateRegistrate.blockModel(() -> PipeAttachmentModel::new)) + .item() + .transform(customItemModel()) + .register(); public static final BlockEntry COPPER_VALVE_HANDLE = - REGISTRATE.block("copper_valve_handle", ValveHandleBlock::copper) - .transform(BuilderTransformers.valveHandle(null)) - .register(); + REGISTRATE.block("copper_valve_handle", ValveHandleBlock::copper) + .transform(BuilderTransformers.valveHandle(null)) + .register(); public static final DyedBlockList DYED_VALVE_HANDLES = new DyedBlockList<>(colour -> { String colourName = colour.getSerializedName(); return REGISTRATE.block(colourName + "_valve_handle", ValveHandleBlock::dyed) - .transform(BuilderTransformers.valveHandle(colour)) - .recipe((c, p) -> ShapedRecipeBuilder.shaped(c.get()) - .pattern("#") - .pattern("-") - .define('#', DyeHelper.getTagOfDye(colour)) - .define('-', AllItemTags.VALVE_HANDLES.tag) - .unlockedBy("has_valve", RegistrateRecipeProvider.hasItem(AllItemTags.VALVE_HANDLES.tag)) - .save(p, Create.asResource("crafting/kinetics/" + c.getName() + "_from_other_valve_handle"))) - .register(); + .transform(BuilderTransformers.valveHandle(colour)) + .recipe((c, p) -> ShapedRecipeBuilder.shaped(c.get()) + .pattern("#") + .pattern("-") + .define('#', DyeHelper.getTagOfDye(colour)) + .define('-', AllItemTags.VALVE_HANDLES.tag) + .unlockedBy("has_valve", RegistrateRecipeProvider.hasItem(AllItemTags.VALVE_HANDLES.tag)) + .save(p, Create.asResource("crafting/kinetics/" + c.getName() + "_from_other_valve_handle"))) + .register(); }); public static final BlockEntry FLUID_TANK = REGISTRATE.block("fluid_tank", FluidTankBlock::regular) - .initialProperties(SharedProperties::softMetal) - .properties(AbstractBlock.Properties::noOcclusion) - .blockstate(new FluidTankGenerator()::generate) - .onRegister(CreateRegistrate.blockModel(() -> FluidTankModel::standard)) - .addLayer(() -> RenderType::cutoutMipped) - .item(FluidTankItem::new) - .model(AssetLookup.customBlockItemModel("_", "block_single_window")) - .build() + .initialProperties(SharedProperties::softMetal) + .properties(AbstractBlock.Properties::noOcclusion) + .blockstate(new FluidTankGenerator()::generate) + .onRegister(CreateRegistrate.blockModel(() -> FluidTankModel::standard)) + .addLayer(() -> RenderType::cutoutMipped) + .item(FluidTankItem::new) + .model(AssetLookup.customBlockItemModel("_", "block_single_window")) + .build() .register(); public static final BlockEntry CREATIVE_FLUID_TANK = @@ -844,11 +849,11 @@ public class AllBlocks { .register(); public static final BlockEntry CONTROLLER_RAIL = - REGISTRATE.block("controller_rail", ControllerRailBlock::new) - .initialProperties(() -> Blocks.POWERED_RAIL) - .blockstate(new ControllerRailGenerator()::generate) - .addLayer(() -> RenderType::cutoutMipped) - .color(() -> ColorHandlers::getRedstonePower) + REGISTRATE.block("controller_rail", ControllerRailBlock::new) + .initialProperties(() -> Blocks.POWERED_RAIL) + .blockstate(new ControllerRailGenerator()::generate) + .addLayer(() -> RenderType::cutoutMipped) + .color(() -> ColorHandlers::getRedstonePower) .tag(BlockTags.RAILS) .item() .model((c, p) -> p.generated(c, Create.asResource("block/" + c.getName()))) @@ -957,68 +962,68 @@ public class AllBlocks { .addLayer(() -> RenderType::cutoutMipped) .item() .transform(customItemModel()) - .register(); + .register(); public static final BlockEntry MECHANICAL_PLOUGH = - REGISTRATE.block("mechanical_plough", PloughBlock::new) - .initialProperties(SharedProperties::stone) - .onRegister(addMovementBehaviour(new PloughMovementBehaviour())) - .blockstate(BlockStateGen.horizontalBlockProvider(false)) - .simpleItem() - .register(); + REGISTRATE.block("mechanical_plough", PloughBlock::new) + .initialProperties(SharedProperties::stone) + .onRegister(addMovementBehaviour(new PloughMovementBehaviour())) + .blockstate(BlockStateGen.horizontalBlockProvider(false)) + .simpleItem() + .register(); public static final DyedBlockList SEATS = new DyedBlockList<>(colour -> { String colourName = colour.getSerializedName(); SeatMovementBehaviour movementBehaviour = new SeatMovementBehaviour(); return REGISTRATE.block(colourName + "_seat", p -> new SeatBlock(p, colour == DyeColor.RED)) - .initialProperties(SharedProperties::wooden) - .onRegister(addMovementBehaviour(movementBehaviour)) - .blockstate((c, p) -> { - p.simpleBlock(c.get(), p.models() - .withExistingParent(colourName + "_seat", p.modLoc("block/seat")) - .texture("1", p.modLoc("block/seat/top_" + colourName)) - .texture("2", p.modLoc("block/seat/side_" + colourName))); - }) - .recipe((c, p) -> { - ShapedRecipeBuilder.shaped(c.get()) - .pattern("#") - .pattern("-") - .define('#', DyeHelper.getWoolOfDye(colour)) - .define('-', ItemTags.WOODEN_SLABS) - .unlockedBy("has_wool", RegistrateRecipeProvider.hasItem(ItemTags.WOOL)) - .save(p, Create.asResource("crafting/kinetics/" + c.getName())); - ShapedRecipeBuilder.shaped(c.get()) - .pattern("#") - .pattern("-") - .define('#', DyeHelper.getTagOfDye(colour)) - .define('-', AllItemTags.SEATS.tag) - .unlockedBy("has_seat", RegistrateRecipeProvider.hasItem(AllItemTags.SEATS.tag)) - .save(p, Create.asResource("crafting/kinetics/" + c.getName() + "_from_other_seat")); - }) - .onRegisterAfter(Item.class, v -> TooltipHelper.referTo(v, "block.create.seat")) - .tag(AllBlockTags.SEATS.tag) - .item() - .tag(AllItemTags.SEATS.tag) - .build() - .register(); + .initialProperties(SharedProperties::wooden) + .onRegister(addMovementBehaviour(movementBehaviour)) + .blockstate((c, p) -> { + p.simpleBlock(c.get(), p.models() + .withExistingParent(colourName + "_seat", p.modLoc("block/seat")) + .texture("1", p.modLoc("block/seat/top_" + colourName)) + .texture("2", p.modLoc("block/seat/side_" + colourName))); + }) + .recipe((c, p) -> { + ShapedRecipeBuilder.shaped(c.get()) + .pattern("#") + .pattern("-") + .define('#', DyeHelper.getWoolOfDye(colour)) + .define('-', ItemTags.WOODEN_SLABS) + .unlockedBy("has_wool", RegistrateRecipeProvider.hasItem(ItemTags.WOOL)) + .save(p, Create.asResource("crafting/kinetics/" + c.getName())); + ShapedRecipeBuilder.shaped(c.get()) + .pattern("#") + .pattern("-") + .define('#', DyeHelper.getTagOfDye(colour)) + .define('-', AllItemTags.SEATS.tag) + .unlockedBy("has_seat", RegistrateRecipeProvider.hasItem(AllItemTags.SEATS.tag)) + .save(p, Create.asResource("crafting/kinetics/" + c.getName() + "_from_other_seat")); + }) + .onRegisterAfter(Item.class, v -> TooltipHelper.referTo(v, "block.create.seat")) + .tag(AllBlockTags.SEATS.tag) + .item() + .tag(AllItemTags.SEATS.tag) + .build() + .register(); }); public static final BlockEntry SAIL_FRAME = REGISTRATE.block("sail_frame", p -> SailBlock.frame(p)) - .initialProperties(SharedProperties::wooden) - .properties(AbstractBlock.Properties::noOcclusion) - .blockstate(BlockStateGen.directionalBlockProvider(false)) - .tag(AllBlockTags.WINDMILL_SAILS.tag) - .tag(AllBlockTags.FAN_TRANSPARENT.tag) - .simpleItem() - .register(); + .initialProperties(SharedProperties::wooden) + .properties(AbstractBlock.Properties::noOcclusion) + .blockstate(BlockStateGen.directionalBlockProvider(false)) + .tag(AllBlockTags.WINDMILL_SAILS.tag) + .tag(AllBlockTags.FAN_TRANSPARENT.tag) + .simpleItem() + .register(); public static final BlockEntry SAIL = REGISTRATE.block("white_sail", p -> SailBlock.withCanvas(p)) - .initialProperties(SharedProperties::wooden) - .properties(AbstractBlock.Properties::noOcclusion) - .blockstate(BlockStateGen.directionalBlockProvider(false)) - .tag(AllBlockTags.WINDMILL_SAILS.tag) - .simpleItem() - .register(); + .initialProperties(SharedProperties::wooden) + .properties(AbstractBlock.Properties::noOcclusion) + .blockstate(BlockStateGen.directionalBlockProvider(false)) + .tag(AllBlockTags.WINDMILL_SAILS.tag) + .simpleItem() + .register(); public static final DyedBlockList DYED_SAILS = new DyedBlockList<>(colour -> { if (colour == DyeColor.WHITE) { @@ -1026,24 +1031,24 @@ public class AllBlocks { } String colourName = colour.getSerializedName(); return REGISTRATE.block(colourName + "_sail", p -> SailBlock.withCanvas(p)) - .properties(AbstractBlock.Properties::noOcclusion) - .initialProperties(SharedProperties::wooden) - .blockstate((c, p) -> p.directionalBlock(c.get(), p.models() - .withExistingParent(colourName + "_sail", p.modLoc("block/white_sail")) - .texture("0", p.modLoc("block/sail/canvas_" + colourName)))) - .tag(AllBlockTags.WINDMILL_SAILS.tag) - .tag(AllBlockTags.SAILS.tag) - .loot((p, b) -> p.dropOther(b, SAIL.get())) - .register(); + .properties(AbstractBlock.Properties::noOcclusion) + .initialProperties(SharedProperties::wooden) + .blockstate((c, p) -> p.directionalBlock(c.get(), p.models() + .withExistingParent(colourName + "_sail", p.modLoc("block/white_sail")) + .texture("0", p.modLoc("block/sail/canvas_" + colourName)))) + .tag(AllBlockTags.WINDMILL_SAILS.tag) + .tag(AllBlockTags.SAILS.tag) + .loot((p, b) -> p.dropOther(b, SAIL.get())) + .register(); }); public static final BlockEntry ANDESITE_CASING = REGISTRATE.block("andesite_casing", CasingBlock::new) - .transform(BuilderTransformers.casing(AllSpriteShifts.ANDESITE_CASING)) - .register(); + .transform(BuilderTransformers.casing(AllSpriteShifts.ANDESITE_CASING)) + .register(); public static final BlockEntry BRASS_CASING = REGISTRATE.block("brass_casing", CasingBlock::new) - .transform(BuilderTransformers.casing(AllSpriteShifts.BRASS_CASING)) - .register(); + .transform(BuilderTransformers.casing(AllSpriteShifts.BRASS_CASING)) + .register(); public static final BlockEntry COPPER_CASING = REGISTRATE.block("copper_casing", CasingBlock::new) .transform(BuilderTransformers.casing(AllSpriteShifts.COPPER_CASING)) @@ -1301,12 +1306,11 @@ public class AllBlocks { public static final BlockEntry LECTERN_CONTROLLER = REGISTRATE.block("lectern_controller", LecternControllerBlock::new) .initialProperties(() -> Blocks.LECTERN) - .blockstate((c,p) -> p.horizontalBlock(c.get(), p.models() + .blockstate((c, p) -> p.horizontalBlock(c.get(), p.models() .getExistingFile(p.mcLoc("block/lectern")))) .loot((lt, block) -> lt.dropOther(block, Blocks.LECTERN)) .register(); - // Curiosities static { @@ -1346,6 +1350,26 @@ public class AllBlocks { .onRegister(addMovementBehaviour(new HauntedBellMovementBehaviour())) .register(); + public static final BlockEntry TOOLBOX = REGISTRATE.block("toolbox", ToolboxBlock::new) + .blockstate((c, p) -> p.horizontalBlock(c.get(), AssetLookup.partialBaseModel(c, p))) + .initialProperties(SharedProperties::wooden) + .properties(p -> p.sound(SoundType.WOOD)) + .addLayer(() -> RenderType::cutoutMipped) + .loot((lt, block) -> { + Builder builder = LootTable.lootTable(); + IBuilder survivesExplosion = SurvivesExplosion.survivesExplosion(); + lt.add(block, builder.withPool(LootPool.lootPool() + .when(survivesExplosion) + .setRolls(ConstantRange.exactly(1)) + .add(ItemLootEntry.lootTableItem(AllBlocks.TOOLBOX.get()) + .apply(CopyName.copyName(CopyName.Source.BLOCK_ENTITY)) + .apply(CopyNbt.copyData(CopyNbt.Source.BLOCK_ENTITY) + .copy("Inventory", "Inventory"))))); + }) + .item() + .transform(customItemModel()) + .register(); + // Materials static { diff --git a/src/main/java/com/simibubi/create/AllContainerTypes.java b/src/main/java/com/simibubi/create/AllContainerTypes.java index 14d498753..79e5745f3 100644 --- a/src/main/java/com/simibubi/create/AllContainerTypes.java +++ b/src/main/java/com/simibubi/create/AllContainerTypes.java @@ -1,5 +1,7 @@ package com.simibubi.create; +import com.simibubi.create.content.curiosities.toolbox.ToolboxContainer; +import com.simibubi.create.content.curiosities.toolbox.ToolboxScreen; import com.simibubi.create.content.curiosities.tools.BlueprintContainer; import com.simibubi.create.content.curiosities.tools.BlueprintScreen; import com.simibubi.create.content.logistics.block.inventories.AdjustableCrateContainer; @@ -45,6 +47,9 @@ public class AllContainerTypes { public static final ContainerEntry LINKED_CONTROLLER = register("linked_controller", LinkedControllerContainer::new, () -> LinkedControllerScreen::new); + + public static final ContainerEntry TOOLBOX = + register("toolbox", ToolboxContainer::new, () -> ToolboxScreen::new); private static > ContainerEntry register(String name, ForgeContainerFactory factory, NonNullSupplier> screenFactory) { return Create.registrate().container(name, factory, screenFactory).register(); diff --git a/src/main/java/com/simibubi/create/AllKeys.java b/src/main/java/com/simibubi/create/AllKeys.java index 6253094c1..e323ba47c 100644 --- a/src/main/java/com/simibubi/create/AllKeys.java +++ b/src/main/java/com/simibubi/create/AllKeys.java @@ -11,6 +11,7 @@ public enum AllKeys { TOOL_MENU("toolmenu", GLFW.GLFW_KEY_LEFT_ALT), ACTIVATE_TOOL("", GLFW.GLFW_KEY_LEFT_CONTROL), + TOOLBELT("toolbelt", GLFW.GLFW_KEY_LEFT_ALT), ; diff --git a/src/main/java/com/simibubi/create/AllShapes.java b/src/main/java/com/simibubi/create/AllShapes.java index 9ba3acccd..09bfd18cc 100644 --- a/src/main/java/com/simibubi/create/AllShapes.java +++ b/src/main/java/com/simibubi/create/AllShapes.java @@ -87,6 +87,7 @@ public class AllShapes { .forHorizontal(NORTH), FLUID_VALVE = shape(3, -1, 3, 13, 17, 13).add(2, 2, 2, 14, 14, 14) .forAxis(), + TOOLBOX = shape(1, 0, 4, 15, 9, 12).forHorizontal(NORTH), SMART_FLUID_PIPE_FLOOR = shape(4, 4, 0, 12, 12, 16).add(3, 3, 3, 13, 13, 13) .add(5, 13, 3, 11, 14, 11) .add(5, 14, 4, 11, 15, 10) @@ -110,7 +111,8 @@ public class AllShapes { .forDirectional(Direction.UP), CRUSHING_WHEEL_CONTROLLER_COLLISION = shape(0, 0, 0, 16, 13, 16).forDirectional(Direction.DOWN), - BELL_FLOOR = shape(0, 0, 5, 16, 11, 11).add(3, 1, 3, 13, 13, 13).forHorizontal(SOUTH), + BELL_FLOOR = shape(0, 0, 5, 16, 11, 11).add(3, 1, 3, 13, 13, 13) + .forHorizontal(SOUTH), BELL_WALL = shape(5, 5, 8, 11, 11, 16).add(3, 1, 3, 13, 13, 13) .forHorizontal(SOUTH), BELL_DOUBLE_WALL = shape(5, 5, 0, 11, 11, 16).add(3, 1, 3, 13, 13, 13) @@ -258,8 +260,7 @@ public class AllShapes { } public Builder erase(double x1, double y1, double z1, double x2, double y2, double z2) { - this.shape = - VoxelShapes.join(shape, cuboid(x1, y1, z1, x2, y2, z2), IBooleanFunction.ONLY_FIRST); + this.shape = VoxelShapes.join(shape, cuboid(x1, y1, z1, x2, y2, z2), IBooleanFunction.ONLY_FIRST); return this; } diff --git a/src/main/java/com/simibubi/create/AllTileEntities.java b/src/main/java/com/simibubi/create/AllTileEntities.java index b426c3421..1b5c74d5b 100644 --- a/src/main/java/com/simibubi/create/AllTileEntities.java +++ b/src/main/java/com/simibubi/create/AllTileEntities.java @@ -123,6 +123,8 @@ import com.simibubi.create.content.curiosities.armor.CopperBacktankTileEntity; import com.simibubi.create.content.curiosities.bell.BellRenderer; import com.simibubi.create.content.curiosities.bell.HauntedBellTileEntity; import com.simibubi.create.content.curiosities.bell.PeculiarBellTileEntity; +import com.simibubi.create.content.curiosities.toolbox.ToolboxRenderer; +import com.simibubi.create.content.curiosities.toolbox.ToolboxTileEntity; import com.simibubi.create.content.logistics.block.belts.tunnel.BeltTunnelInstance; import com.simibubi.create.content.logistics.block.belts.tunnel.BeltTunnelRenderer; import com.simibubi.create.content.logistics.block.belts.tunnel.BeltTunnelTileEntity; @@ -690,6 +692,12 @@ public class AllTileEntities { .validBlocks(AllBlocks.HAUNTED_BELL) .renderer(() -> BellRenderer::new) .register(); + + public static final TileEntityEntry TOOLBOX = Create.registrate() + .tileEntity("toolbox", ToolboxTileEntity::new) + .validBlocks(AllBlocks.TOOLBOX) + .renderer(() -> ToolboxRenderer::new) + .register(); public static void register() {} } diff --git a/src/main/java/com/simibubi/create/compat/jei/CreateJEI.java b/src/main/java/com/simibubi/create/compat/jei/CreateJEI.java index 2cf7dcf90..9ab838d65 100644 --- a/src/main/java/com/simibubi/create/compat/jei/CreateJEI.java +++ b/src/main/java/com/simibubi/create/compat/jei/CreateJEI.java @@ -40,6 +40,7 @@ import com.simibubi.create.content.contraptions.components.press.MechanicalPress import com.simibubi.create.content.contraptions.components.saw.SawTileEntity; import com.simibubi.create.content.contraptions.fluids.recipe.PotionMixingRecipeManager; import com.simibubi.create.content.contraptions.processing.BasinRecipe; +import com.simibubi.create.content.curiosities.toolbox.ToolboxScreen; import com.simibubi.create.content.curiosities.tools.BlueprintScreen; import com.simibubi.create.content.logistics.block.inventories.AdjustableCrateScreen; import com.simibubi.create.content.logistics.item.LinkedControllerScreen; @@ -254,6 +255,7 @@ public class CreateJEI implements IModPlugin { registration.addGuiContainerHandler(AttributeFilterScreen.class, slotMover); registration.addGuiContainerHandler(BlueprintScreen.class, slotMover); registration.addGuiContainerHandler(LinkedControllerScreen.class, slotMover); + registration.addGuiContainerHandler(ToolboxScreen.class, slotMover); registration.addGhostIngredientHandler(AbstractFilterScreen.class, new GhostIngredientHandler()); registration.addGhostIngredientHandler(BlueprintScreen.class, new GhostIngredientHandler()); diff --git a/src/main/java/com/simibubi/create/content/curiosities/toolbox/ItemReturnInvWrapper.java b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ItemReturnInvWrapper.java new file mode 100644 index 000000000..3b4f24dc3 --- /dev/null +++ b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ItemReturnInvWrapper.java @@ -0,0 +1,23 @@ +package com.simibubi.create.content.curiosities.toolbox; + +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraftforge.items.wrapper.InvWrapper; + +/** + * For inserting items into a players' inventory anywhere except the hotbar + */ +public class ItemReturnInvWrapper extends InvWrapper { + + public ItemReturnInvWrapper(IInventory inv) { + super(inv); + } + + @Override + public ItemStack insertItem(int slot, ItemStack stack, boolean simulate) { + if (slot >= 0 && slot < 9) + return stack; + return super.insertItem(slot, stack, simulate); + } + +} diff --git a/src/main/java/com/simibubi/create/content/curiosities/toolbox/RadialToolboxMenu.java b/src/main/java/com/simibubi/create/content/curiosities/toolbox/RadialToolboxMenu.java new file mode 100644 index 000000000..d0156fbd7 --- /dev/null +++ b/src/main/java/com/simibubi/create/content/curiosities/toolbox/RadialToolboxMenu.java @@ -0,0 +1,257 @@ +package com.simibubi.create.content.curiosities.toolbox; + +import java.util.List; + +import com.jozufozu.flywheel.util.transform.MatrixTransformStack; +import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.systems.RenderSystem; +import com.simibubi.create.AllBlocks; +import com.simibubi.create.AllKeys; +import com.simibubi.create.foundation.gui.AbstractSimiScreen; +import com.simibubi.create.foundation.gui.AllGuiTextures; +import com.simibubi.create.foundation.gui.AllIcons; +import com.simibubi.create.foundation.gui.GuiGameElement; +import com.simibubi.create.foundation.networking.AllPackets; +import com.simibubi.create.foundation.utility.AngleHelper; +import com.simibubi.create.foundation.utility.AnimationTickHolder; +import com.simibubi.create.foundation.utility.Lang; + +import net.minecraft.client.MainWindow; +import net.minecraft.client.Minecraft; +import net.minecraft.client.util.InputMappings; +import net.minecraft.item.ItemStack; +import net.minecraft.util.math.MathHelper; +import net.minecraft.util.text.ITextComponent; +import net.minecraft.util.text.TextFormatting; + +public class RadialToolboxMenu extends AbstractSimiScreen { + + public static enum State { + SELECT_BOX, SELECT_ITEM, SELECT_ITEM_UNEQUIP, DETACH + } + + private State state; + private int ticksOpen; + private int hoveredSlot; + + private List toolboxes; + private ToolboxTileEntity selectedBox; + final int UNEQUIP = -5; + + public RadialToolboxMenu(List toolboxes, State state) { + this.toolboxes = toolboxes; + this.state = state; + hoveredSlot = -1; + + if (state == State.SELECT_ITEM_UNEQUIP || state == State.SELECT_ITEM) + selectedBox = toolboxes.get(0); + } + + @Override + protected void renderWindow(MatrixStack ms, int mouseX, int mouseY, float partialTicks) { + float fade = MathHelper.clamp((ticksOpen + AnimationTickHolder.getPartialTicks()) / 10f, 1 / 512f, 1); + + hoveredSlot = -1; + MainWindow window = getMinecraft().getWindow(); + float hoveredX = mouseX - window.getGuiScaledWidth() / 2; + float hoveredY = mouseY - window.getGuiScaledHeight() / 2; + + float distance = hoveredX * hoveredX + hoveredY * hoveredY; + if (distance > 25 && distance < 20000) + hoveredSlot = + (MathHelper.floor((AngleHelper.deg(MathHelper.atan2(hoveredY, hoveredX)) + 360 + 180 - 22.5f)) % 360) + / 45; + boolean renderCenterSlot = state == State.SELECT_ITEM_UNEQUIP; + if (renderCenterSlot && distance <= 150) + hoveredSlot = UNEQUIP; + + ms.pushPose(); + ms.translate(width / 2, height / 2, 0); + ITextComponent tip = null; + + if (state == State.DETACH) { + + tip = Lang.translate("toolbox.outOfRange"); + if (hoveredX > -20 && hoveredX < 20 && hoveredY > -80 && hoveredY < -20) + hoveredSlot = UNEQUIP; + + ms.pushPose(); + AllGuiTextures.TOOLBELT_INACTIVE_SLOT.draw(ms, this, -12, -12); + GuiGameElement.of(AllBlocks.TOOLBOX.asStack()) + .at(-9, -9) + .render(ms); + + ms.translate(0, -40 + (10 * (1 - fade) * (1 - fade)), 0); + AllGuiTextures.TOOLBELT_SLOT.draw(ms, this, -12, -12); + ms.translate(-0.5, 0.5, 0); + AllIcons.I_DISABLE.draw(ms, this, -9, -9); + ms.translate(0.5, -0.5, 0); + if (hoveredSlot == UNEQUIP) { + AllGuiTextures.TOOLBELT_SLOT_HIGHLIGHT.draw(ms, this, -13, -13); + tip = Lang.translate("toolbox.detach") + .withStyle(TextFormatting.GOLD); + } + ms.popPose(); + + } else { + for (int slot = 0; slot < 8; slot++) { + ms.pushPose(); + MatrixTransformStack.of(ms) + .rotateZ(slot * 45 - 45) + .translate(0, -40 + (10 * (1 - fade) * (1 - fade)), 0) + .rotateZ(-slot * 45 + 45); + ms.translate(-12, -12, 0); + + if (state == State.SELECT_ITEM || state == State.SELECT_ITEM_UNEQUIP) { + ToolboxInventory inv = selectedBox.inventory; + ItemStack stackInSlot = inv.filters.get(slot); + + if (!stackInSlot.isEmpty()) { + boolean empty = inv.getStackInSlot(slot * ToolboxInventory.STACKS_PER_COMPARTMENT) + .isEmpty(); + + (empty ? AllGuiTextures.TOOLBELT_INACTIVE_SLOT : AllGuiTextures.TOOLBELT_SLOT).draw(ms, this, 0, + 0); + GuiGameElement.of(stackInSlot) + .at(3, 3) + .render(ms); + + if (slot == hoveredSlot && !empty) { + AllGuiTextures.TOOLBELT_SLOT_HIGHLIGHT.draw(ms, this, -1, -1); + tip = stackInSlot.getHoverName(); + } + } else + AllGuiTextures.TOOLBELT_EMPTY_SLOT.draw(ms, this, 0, 0); + + } else if (state == State.SELECT_BOX) { + + if (slot < toolboxes.size()) { + AllGuiTextures.TOOLBELT_SLOT.draw(ms, this, 0, 0); + GuiGameElement.of(AllBlocks.TOOLBOX.asStack()) + .at(3, 3) + .render(ms); + + if (slot == hoveredSlot) { + AllGuiTextures.TOOLBELT_SLOT_HIGHLIGHT.draw(ms, this, -1, -1); + tip = toolboxes.get(slot) + .getDisplayName(); + } + } else + AllGuiTextures.TOOLBELT_EMPTY_SLOT.draw(ms, this, 0, 0); + + } + + ms.popPose(); + } + + if (renderCenterSlot) { + ms.pushPose(); + AllGuiTextures.TOOLBELT_SLOT.draw(ms, this, -12, -12); + AllIcons.I_TRASH.draw(ms, this, -9, -9); + if (UNEQUIP == hoveredSlot) { + AllGuiTextures.TOOLBELT_SLOT_HIGHLIGHT.draw(ms, this, -13, -13); + tip = Lang.translate("toolbox.unequip", minecraft.player.getMainHandItem() + .getHoverName()) + .withStyle(TextFormatting.GOLD); + } + ms.popPose(); + } + } + ms.popPose(); + + if (tip != null) { + int i1 = (int) (fade * 255.0F); + if (i1 > 255) + i1 = 255; + + if (i1 > 8) { + ms.pushPose(); + ms.translate((float) (width / 2), (float) (height - 68), 0.0F); + RenderSystem.enableBlend(); + RenderSystem.defaultBlendFunc(); + int k1 = 16777215; + int k = i1 << 24 & -16777216; + int l = font.width(tip); +// this.drawBackdrop(ms, font, -4, l, 16777215 | k); + font.draw(ms, tip, (float) (-l / 2), -4.0F, k1 | k); + RenderSystem.disableBlend(); + ms.popPose(); + } + } + + } + + @Override + public void renderBackground(MatrixStack p_238651_1_, int p_238651_2_) { + int a = ((int) (0x50 * Math.min(1, (ticksOpen + AnimationTickHolder.getPartialTicks()) / 20f))) << 24; + fillGradient(p_238651_1_, 0, 0, this.width, this.height, 0x101010 | a, 0x101010 | a); + } + + @Override + public void tick() { + ticksOpen++; + super.tick(); + } + + @Override + public void removed() { + super.removed(); + + if (state == State.SELECT_BOX) + return; + + if (state == State.DETACH) { + if (hoveredSlot == UNEQUIP) + AllPackets.channel.sendToServer( + new ToolboxEquipPacket(null, hoveredSlot, Minecraft.getInstance().player.inventory.selected)); + return; + } + + if (hoveredSlot == UNEQUIP) + AllPackets.channel.sendToServer(new ToolboxEquipPacket(selectedBox.getBlockPos(), hoveredSlot, + Minecraft.getInstance().player.inventory.selected)); + + if (hoveredSlot < 0) + return; + ToolboxInventory inv = selectedBox.inventory; + ItemStack stackInSlot = inv.filters.get(hoveredSlot); + if (stackInSlot.isEmpty()) + return; + if (inv.getStackInSlot(hoveredSlot * ToolboxInventory.STACKS_PER_COMPARTMENT) + .isEmpty()) + return; + + AllPackets.channel.sendToServer(new ToolboxEquipPacket(selectedBox.getBlockPos(), hoveredSlot, + Minecraft.getInstance().player.inventory.selected)); + } + + @Override + public boolean mouseClicked(double x, double y, int button) { + if (state == State.SELECT_BOX && hoveredSlot >= 0 && hoveredSlot < toolboxes.size()) { + state = State.SELECT_ITEM; + selectedBox = toolboxes.get(hoveredSlot); + return true; + } + + if (state == State.SELECT_ITEM || state == State.SELECT_ITEM_UNEQUIP) { + if (hoveredSlot == UNEQUIP || hoveredSlot >= 0) { + onClose(); + ToolboxHandlerClient.COOLDOWN = 10; + } + } + + return super.mouseClicked(x, y, button); + } + + @Override + public boolean keyReleased(int code, int p_keyPressed_2_, int p_keyPressed_3_) { + InputMappings.Input mouseKey = InputMappings.getKey(code, p_keyPressed_2_); + if (AllKeys.TOOLBELT.getKeybind() + .isActiveAndMatches(mouseKey)) { + this.onClose(); + return true; + } + return super.keyReleased(code, p_keyPressed_2_, p_keyPressed_3_); + } + +} \ No newline at end of file diff --git a/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxBlock.java b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxBlock.java new file mode 100644 index 000000000..c56351184 --- /dev/null +++ b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxBlock.java @@ -0,0 +1,137 @@ +package com.simibubi.create.content.curiosities.toolbox; + +import static net.minecraft.state.properties.BlockStateProperties.WATERLOGGED; + +import com.simibubi.create.AllShapes; +import com.simibubi.create.AllTileEntities; +import com.simibubi.create.foundation.block.ITE; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.block.HorizontalBlock; +import net.minecraft.block.IWaterLoggable; +import net.minecraft.entity.LivingEntity; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.entity.player.ServerPlayerEntity; +import net.minecraft.fluid.FluidState; +import net.minecraft.fluid.Fluids; +import net.minecraft.item.BlockItemUseContext; +import net.minecraft.item.ItemStack; +import net.minecraft.state.StateContainer.Builder; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ActionResultType; +import net.minecraft.util.Direction; +import net.minecraft.util.Hand; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.BlockRayTraceResult; +import net.minecraft.util.math.shapes.ISelectionContext; +import net.minecraft.util.math.shapes.VoxelShape; +import net.minecraft.world.IBlockReader; +import net.minecraft.world.IWorld; +import net.minecraft.world.World; +import net.minecraft.world.server.ServerWorld; +import net.minecraftforge.common.util.FakePlayer; +import net.minecraftforge.fml.network.NetworkHooks; + +public class ToolboxBlock extends HorizontalBlock implements IWaterLoggable, ITE { + + public ToolboxBlock(Properties p_i48377_1_) { + super(p_i48377_1_); + registerDefaultState(super.defaultBlockState().setValue(WATERLOGGED, false)); + } + + @Override + public FluidState getFluidState(BlockState state) { + return state.getValue(WATERLOGGED) ? Fluids.WATER.getSource(false) : Fluids.EMPTY.defaultFluidState(); + } + + @Override + protected void createBlockStateDefinition(Builder builder) { + super.createBlockStateDefinition(builder.add(WATERLOGGED) + .add(FACING)); + } + + @Override + public void setPlacedBy(World worldIn, BlockPos pos, BlockState state, LivingEntity placer, ItemStack stack) { + super.setPlacedBy(worldIn, pos, state, placer, stack); + if (worldIn.isClientSide) + return; + if (stack == null) + return; + withTileEntityDo(worldIn, pos, te -> { + te.readInventory(stack.getOrCreateTag() + .getCompound("Inventory")); + if (stack.hasCustomHoverName()) + te.setCustomName(stack.getHoverName()); + }); + } + + @Override + public void attack(BlockState state, World world, BlockPos pos, PlayerEntity player) { + if (player instanceof FakePlayer) + return; + if (world.isClientSide) + return; + if (world instanceof ServerWorld) { + for (ItemStack itemStack : Block.getDrops(state, (ServerWorld) world, pos, world.getBlockEntity(pos))) + player.inventory.placeItemBackInInventory(world, itemStack); + world.destroyBlock(pos, false); + } + } + + @Override + public BlockState updateShape(BlockState state, Direction direction, BlockState neighbourState, IWorld world, + BlockPos pos, BlockPos neighbourPos) { + if (state.getValue(WATERLOGGED)) + world.getLiquidTicks() + .scheduleTick(pos, Fluids.WATER, Fluids.WATER.getTickDelay(world)); + return state; + } + + @Override + public VoxelShape getShape(BlockState state, IBlockReader p_220053_2_, BlockPos p_220053_3_, + ISelectionContext p_220053_4_) { + return AllShapes.TOOLBOX.get(state.getValue(FACING)); + } + + @Override + public boolean hasTileEntity(BlockState state) { + return true; + } + + @Override + public ActionResultType use(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, + BlockRayTraceResult ray) { + + if (player == null || player.isCrouching()) + return ActionResultType.PASS; + if (player instanceof FakePlayer) + return ActionResultType.PASS; + if (world.isClientSide) + return ActionResultType.SUCCESS; + + withTileEntityDo(world, pos, + toolbox -> NetworkHooks.openGui((ServerPlayerEntity) player, toolbox, toolbox::sendToContainer)); + return ActionResultType.SUCCESS; + } + + @Override + public TileEntity createTileEntity(BlockState state, IBlockReader world) { + return AllTileEntities.TOOLBOX.create(); + } + + @Override + public BlockState getStateForPlacement(BlockItemUseContext context) { + FluidState ifluidstate = context.getLevel() + .getFluidState(context.getClickedPos()); + return super.getStateForPlacement(context).setValue(FACING, context.getHorizontalDirection() + .getOpposite()) + .setValue(WATERLOGGED, Boolean.valueOf(ifluidstate.getType() == Fluids.WATER)); + } + + @Override + public Class getTileEntityClass() { + return ToolboxTileEntity.class; + } + +} diff --git a/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxContainer.java b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxContainer.java new file mode 100644 index 000000000..c97fe1fad --- /dev/null +++ b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxContainer.java @@ -0,0 +1,162 @@ +package com.simibubi.create.content.curiosities.toolbox; + +import static com.simibubi.create.content.curiosities.toolbox.ToolboxInventory.STACKS_PER_COMPARTMENT; + +import com.simibubi.create.AllContainerTypes; +import com.simibubi.create.foundation.gui.ContainerBase; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.world.ClientWorld; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.entity.player.PlayerInventory; +import net.minecraft.inventory.container.ClickType; +import net.minecraft.inventory.container.ContainerType; +import net.minecraft.inventory.container.Slot; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.CompoundNBT; +import net.minecraft.network.PacketBuffer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.math.BlockPos; +import net.minecraftforge.items.ItemHandlerHelper; +import net.minecraftforge.items.SlotItemHandler; + +public class ToolboxContainer extends ContainerBase { + + public static ToolboxContainer create(int id, PlayerInventory inv, ToolboxTileEntity te) { + return new ToolboxContainer(AllContainerTypes.TOOLBOX.get(), id, inv, te); + } + + public ToolboxContainer(ContainerType type, int id, PlayerInventory inv, PacketBuffer extraData) { + super(type, id, inv, extraData); + } + + public ToolboxContainer(ContainerType type, int id, PlayerInventory inv, ToolboxTileEntity te) { + super(type, id, inv, te); + te.startOpen(player); + } + + @Override + protected ToolboxTileEntity createOnClient(PacketBuffer extraData) { + BlockPos readBlockPos = extraData.readBlockPos(); + CompoundNBT readNbt = extraData.readNbt(); + + ClientWorld world = Minecraft.getInstance().level; + TileEntity tileEntity = world.getBlockEntity(readBlockPos); + if (tileEntity instanceof ToolboxTileEntity) { + ToolboxTileEntity toolbox = (ToolboxTileEntity) tileEntity; + toolbox.handleUpdateTag(toolbox.getBlockState(), readNbt); + return toolbox; + } + + return null; + } + + @Override + public ItemStack quickMoveStack(PlayerEntity player, int index) { + Slot clickedSlot = getSlot(index); + if (!clickedSlot.hasItem()) + return ItemStack.EMPTY; + + ItemStack stack = clickedSlot.getItem(); + int size = contentHolder.inventory.getSlots(); + if (index < size) { + moveItemStackTo(stack, size, slots.size(), false); + contentHolder.inventory.onContentsChanged(index); + } else + moveItemStackTo(stack, 0, size - 1, false); + + return ItemStack.EMPTY; + } + + @Override + protected void initAndReadInventory(ToolboxTileEntity contentHolder) { + + } + + @Override + public ItemStack clicked(int index, int flags, ClickType type, PlayerEntity player) { + int size = contentHolder.inventory.getSlots(); + + if (index >= 0 && index < size) { + + ItemStack itemInClickedSlot = getSlot(index).getItem(); + PlayerInventory playerInv = player.inventory; + ItemStack carried = playerInv.getCarried(); + + if (type == ClickType.PICKUP && !carried.isEmpty() && !itemInClickedSlot.isEmpty() + && ItemHandlerHelper.canItemStacksStack(itemInClickedSlot, carried)) { + int subIndex = index % STACKS_PER_COMPARTMENT; + if (subIndex != STACKS_PER_COMPARTMENT - 1) + return clicked(index - subIndex + STACKS_PER_COMPARTMENT - 1, flags, type, player); + } + + if (type == ClickType.PICKUP && !carried.isEmpty() && itemInClickedSlot.isEmpty()) + contentHolder.inventory.filters.set(index / STACKS_PER_COMPARTMENT, carried); + + if (type == ClickType.PICKUP && carried.isEmpty() && itemInClickedSlot.isEmpty()) + if (!player.level.isClientSide) { + contentHolder.inventory.filters.set(index / STACKS_PER_COMPARTMENT, ItemStack.EMPTY); + contentHolder.sendData(); + } + + } + return super.clicked(index, flags, type, player); + } + + @Override + public boolean canDragTo(Slot slot) { + return slot.index > contentHolder.inventory.getSlots() && super.canDragTo(slot); + } + + public ItemStack getFilter(int compartment) { + return contentHolder.inventory.filters.get(compartment); + } + + public int totalCountInCompartment(int compartment) { + int count = 0; + int baseSlot = compartment * STACKS_PER_COMPARTMENT; + for (int i = 0; i < STACKS_PER_COMPARTMENT; i++) + count += getSlot(baseSlot + i).getItem() + .getCount(); + return count; + } + + public boolean renderPass; + + @Override + protected void addSlots() { + ToolboxInventory inventory = contentHolder.inventory; + + int x = 59; + int y = 37; + + int[] xOffsets = { x, x + 33, x + 66, x + 66 + 6, x + 66, x + 33, x, x - 6 }; + int[] yOffsets = { y, y - 6, y, y + 33, y + 66, y + 66 + 6, y + 66, y + 33 }; + + for (int compartment = 0; compartment < 8; compartment++) { + int baseIndex = compartment * STACKS_PER_COMPARTMENT; + + // Representative Slots + addSlot(new ToolboxSlot(this, inventory, baseIndex, xOffsets[compartment], yOffsets[compartment])); + + // Hidden Slots + for (int i = 1; i < STACKS_PER_COMPARTMENT; i++) + addSlot(new SlotItemHandler(inventory, baseIndex + i, -100, -100)); + } + + addPlayerSlots(-12, 166); + } + + @Override + protected void saveData(ToolboxTileEntity contentHolder) { + + } + + @Override + public void removed(PlayerEntity playerIn) { + super.removed(playerIn); + if (!playerIn.level.isClientSide) + contentHolder.stopOpen(playerIn); + } + +} diff --git a/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxEquipPacket.java b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxEquipPacket.java new file mode 100644 index 000000000..078d23ff8 --- /dev/null +++ b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxEquipPacket.java @@ -0,0 +1,117 @@ +package com.simibubi.create.content.curiosities.toolbox; + +import java.util.function.Supplier; + +import com.simibubi.create.foundation.networking.AllPackets; +import com.simibubi.create.foundation.networking.ISyncPersistentData; +import com.simibubi.create.foundation.networking.SimplePacketBase; + +import net.minecraft.entity.player.ServerPlayerEntity; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.CompoundNBT; +import net.minecraft.nbt.NBTUtil; +import net.minecraft.network.PacketBuffer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; +import net.minecraftforge.fml.network.NetworkEvent.Context; +import net.minecraftforge.fml.network.PacketDistributor; +import net.minecraftforge.items.ItemHandlerHelper; + +public class ToolboxEquipPacket extends SimplePacketBase { + + private BlockPos toolboxPos; + private int slot; + private int hotbarSlot; + + public ToolboxEquipPacket(BlockPos toolboxPos, int slot, int hotbarSlot) { + this.toolboxPos = toolboxPos; + this.slot = slot; + this.hotbarSlot = hotbarSlot; + } + + public ToolboxEquipPacket(PacketBuffer buffer) { + if (buffer.readBoolean()) + toolboxPos = buffer.readBlockPos(); + slot = buffer.readVarInt(); + hotbarSlot = buffer.readVarInt(); + } + + @Override + public void write(PacketBuffer buffer) { + buffer.writeBoolean(toolboxPos != null); + if (toolboxPos != null) + buffer.writeBlockPos(toolboxPos); + buffer.writeVarInt(slot); + buffer.writeVarInt(hotbarSlot); + } + + @Override + public void handle(Supplier context) { + Context ctx = context.get(); + ctx.enqueueWork(() -> { + ServerPlayerEntity player = ctx.getSender(); + World world = player.level; + + if (toolboxPos == null) { + player.getPersistentData() + .getCompound("CreateToolboxData") + .remove(String.valueOf(hotbarSlot)); + sendData(player); + return; + } + + TileEntity blockEntity = world.getBlockEntity(toolboxPos); + + double maxRange = ToolboxHandler.getMaxRange(player); + if (ctx.getSender() + .distanceToSqr(toolboxPos.getX() + 0.5, toolboxPos.getY(), + toolboxPos.getZ() + 0.5) > maxRange * maxRange) + return; + if (!(blockEntity instanceof ToolboxTileEntity)) + return; + + ToolboxHandler.unequip(player, hotbarSlot); + + if (slot < 0 || slot >= 8) { + sendData(player); + return; + } + + ToolboxTileEntity toolboxTileEntity = (ToolboxTileEntity) blockEntity; + + ItemStack playerStack = player.inventory.getItem(hotbarSlot); + if (!playerStack.isEmpty() + && !ItemHandlerHelper.canItemStacksStack(playerStack, toolboxTileEntity.inventory.filters.get(slot))) { + ItemStack remainder = + ItemHandlerHelper.insertItemStacked(toolboxTileEntity.inventory, playerStack, false); + if (!remainder.isEmpty()) + remainder = ItemHandlerHelper.insertItemStacked(new ItemReturnInvWrapper(player.inventory), + remainder, false); + if (remainder.getCount() != playerStack.getCount()) + player.inventory.setItem(hotbarSlot, remainder); + } + + CompoundNBT compound = player.getPersistentData() + .getCompound("CreateToolboxData"); + String key = String.valueOf(hotbarSlot); + + CompoundNBT data = new CompoundNBT(); + data.putInt("Slot", slot); + data.put("Pos", NBTUtil.writeBlockPos(toolboxPos)); + compound.put(key, data); + + player.getPersistentData() + .put("CreateToolboxData", compound); + sendData(player); + + toolboxTileEntity.connectPlayer(slot, player, hotbarSlot); + }); + ctx.setPacketHandled(true); + } + + private void sendData(ServerPlayerEntity player) { + AllPackets.channel.send(PacketDistributor.PLAYER.with(() -> player), new ISyncPersistentData.Packet(player)); + } + +} diff --git a/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxHandler.java b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxHandler.java new file mode 100644 index 000000000..9daef8f34 --- /dev/null +++ b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxHandler.java @@ -0,0 +1,79 @@ +package com.simibubi.create.content.curiosities.toolbox; + +import java.util.List; +import java.util.WeakHashMap; +import java.util.stream.Collectors; + +import com.simibubi.create.foundation.utility.WorldAttached; + +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.nbt.CompoundNBT; +import net.minecraft.nbt.NBTUtil; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.vector.Vector3d; +import net.minecraft.world.IWorld; +import net.minecraft.world.World; + +public class ToolboxHandler { + + public static final WorldAttached> toolboxes = + new WorldAttached<>(w -> new WeakHashMap<>()); + + public static void onLoad(ToolboxTileEntity te) { + toolboxes.get(te.getLevel()) + .put(te.getBlockPos(), te); + } + + public static void onUnload(ToolboxTileEntity te) { + toolboxes.get(te.getLevel()) + .remove(te.getBlockPos()); + } + + public static List getNearest(IWorld world, PlayerEntity player, int maxAmount) { + Vector3d location = player.position(); + double maxRange = getMaxRange(player); + return toolboxes.get(world) + .keySet() + .stream() + .filter(p -> distance(location, p) < maxRange * maxRange) + .sorted((p1, p2) -> Double.compare(distance(location, p1), distance(location, p2))) + .limit(maxAmount) + .map(toolboxes.get(world)::get) + .collect(Collectors.toList()); + } + + public static void unequip(PlayerEntity player, int hotbarSlot) { + CompoundNBT compound = player.getPersistentData() + .getCompound("CreateToolboxData"); + World world = player.level; + String key = String.valueOf(hotbarSlot); + if (!compound.contains(key)) + return; + + CompoundNBT prevData = compound.getCompound(key); + BlockPos prevPos = NBTUtil.readBlockPos(prevData.getCompound("Pos")); + int prevSlot = prevData.getInt("Slot"); + + TileEntity prevBlockEntity = world.getBlockEntity(prevPos); + if (prevBlockEntity instanceof ToolboxTileEntity) + ((ToolboxTileEntity) prevBlockEntity).unequip(prevSlot, player, hotbarSlot); + compound.remove(key); + } + + public static boolean withinRange(PlayerEntity player, ToolboxTileEntity box) { + if (player.level != box.getLevel()) + return false; + double maxRange = getMaxRange(player); + return distance(player.position(), box.getBlockPos()) < maxRange * maxRange; + } + + public static double distance(Vector3d location, BlockPos p) { + return location.distanceToSqr(p.getX() + 0.5f, p.getY(), p.getZ() + 0.5f); + } + + public static double getMaxRange(PlayerEntity player) { + return 10; + } + +} diff --git a/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxHandlerClient.java b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxHandlerClient.java new file mode 100644 index 000000000..7ac4b05d9 --- /dev/null +++ b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxHandlerClient.java @@ -0,0 +1,123 @@ +package com.simibubi.create.content.curiosities.toolbox; + +import static com.simibubi.create.foundation.gui.AllGuiTextures.TOOLBELT_HOTBAR_OFF; +import static com.simibubi.create.foundation.gui.AllGuiTextures.TOOLBELT_HOTBAR_ON; +import static com.simibubi.create.foundation.gui.AllGuiTextures.TOOLBELT_SELECTED_OFF; +import static com.simibubi.create.foundation.gui.AllGuiTextures.TOOLBELT_SELECTED_ON; + +import java.util.List; + +import com.google.common.collect.ImmutableList; +import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.systems.RenderSystem; +import com.simibubi.create.AllKeys; +import com.simibubi.create.foundation.gui.AllGuiTextures; +import com.simibubi.create.foundation.gui.ScreenOpener; + +import net.minecraft.client.MainWindow; +import net.minecraft.client.Minecraft; +import net.minecraft.client.entity.player.ClientPlayerEntity; +import net.minecraft.client.renderer.IRenderTypeBuffer; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.nbt.CompoundNBT; +import net.minecraft.nbt.NBTUtil; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; + +public class ToolboxHandlerClient { + + static int COOLDOWN = 0; + + public static void clientTick() { + if (COOLDOWN > 0 && !AllKeys.TOOLBELT.isPressed()) + COOLDOWN--; + } + + public static void onKeyInput(int key, boolean pressed) { + if (key != AllKeys.TOOLBELT.getBoundCode()) + return; + if (COOLDOWN > 0) + return; + ClientPlayerEntity player = Minecraft.getInstance().player; + if (player == null) + return; + World level = player.level; + + List toolboxes = ToolboxHandler.getNearest(player.level, player, 8); + CompoundNBT compound = player.getPersistentData() + .getCompound("CreateToolboxData"); + + String slotKey = String.valueOf(player.inventory.selected); + boolean equipped = compound.contains(slotKey); + + if (equipped) { + BlockPos pos = NBTUtil.readBlockPos(compound.getCompound(slotKey) + .getCompound("Pos")); + double max = ToolboxHandler.getMaxRange(player); + boolean canReachToolbox = ToolboxHandler.distance(player.position(), pos) < max * max; + + if (canReachToolbox) { + TileEntity blockEntity = level.getBlockEntity(pos); + if (blockEntity instanceof ToolboxTileEntity) { + ScreenOpener.open(new RadialToolboxMenu(ImmutableList.of((ToolboxTileEntity) blockEntity), + RadialToolboxMenu.State.SELECT_ITEM_UNEQUIP)); + return; + } + } + + ScreenOpener.open(new RadialToolboxMenu(ImmutableList.of(), RadialToolboxMenu.State.DETACH)); + return; + } + + if (toolboxes.isEmpty()) + return; + +// ItemStack itemStackFromSlot = player.getItemStackFromSlot(EquipmentSlotType.LEGS); +// if (!AllItems.TOOLBELT.isIn(itemStackFromSlot)) +// return; + + if (toolboxes.size() == 1) + ScreenOpener.open(new RadialToolboxMenu(toolboxes, RadialToolboxMenu.State.SELECT_ITEM)); + else + ScreenOpener.open(new RadialToolboxMenu(toolboxes, RadialToolboxMenu.State.SELECT_BOX)); + } + + public static void renderOverlay(MatrixStack ms, IRenderTypeBuffer buffer, int light, int overlay, + float partialTicks) { + MainWindow mainWindow = Minecraft.getInstance() + .getWindow(); + int x = mainWindow.getGuiScaledWidth() / 2 - 90; + int y = mainWindow.getGuiScaledHeight() - 23; + RenderSystem.enableDepthTest(); + + PlayerEntity player = Minecraft.getInstance().player; + CompoundNBT persistentData = player.getPersistentData(); + if (!persistentData.contains("CreateToolboxData")) + return; + + CompoundNBT compound = player.getPersistentData() + .getCompound("CreateToolboxData"); + + if (compound.isEmpty()) + return; + + ms.pushPose(); + for (int slot = 0; slot < 9; slot++) { + String key = String.valueOf(slot); + if (!compound.contains(key)) + continue; + BlockPos pos = NBTUtil.readBlockPos(compound.getCompound(key) + .getCompound("Pos")); + double max = ToolboxHandler.getMaxRange(player); + boolean selected = player.inventory.selected == slot; + int offset = selected ? 1 : 0; + AllGuiTextures texture = ToolboxHandler.distance(player.position(), pos) < max * max + ? selected ? TOOLBELT_SELECTED_ON : TOOLBELT_HOTBAR_ON + : selected ? TOOLBELT_SELECTED_OFF : TOOLBELT_HOTBAR_OFF; + texture.draw(ms, x + 20 * slot - offset, y + offset); + } + ms.popPose(); + } + +} diff --git a/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxInventory.java b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxInventory.java new file mode 100644 index 000000000..741c77eb1 --- /dev/null +++ b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxInventory.java @@ -0,0 +1,145 @@ +package com.simibubi.create.content.curiosities.toolbox; + +import java.util.ArrayList; +import java.util.List; + +import javax.annotation.Nonnull; + +import com.simibubi.create.foundation.utility.NBTHelper; + +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.CompoundNBT; +import net.minecraftforge.common.util.Constants.NBT; +import net.minecraftforge.items.ItemHandlerHelper; +import net.minecraftforge.items.ItemStackHandler; + +public class ToolboxInventory extends ItemStackHandler { + + public static final int STACKS_PER_COMPARTMENT = 4; + List filters; + boolean settling; + private ToolboxTileEntity te; + + public ToolboxInventory(ToolboxTileEntity te) { + super(8 * STACKS_PER_COMPARTMENT); + this.te = te; + filters = new ArrayList<>(); + settling = false; + for (int i = 0; i < 8; i++) + filters.add(ItemStack.EMPTY); + } + + public void settle(int compartment) { + int totalCount = 0; + boolean valid = true; + boolean shouldBeEmpty = false; + ItemStack sample = ItemStack.EMPTY; + + for (int i = 0; i < STACKS_PER_COMPARTMENT; i++) { + ItemStack stackInSlot = getStackInSlot(compartment * STACKS_PER_COMPARTMENT + i); + totalCount += stackInSlot.getCount(); + if (!shouldBeEmpty) + shouldBeEmpty = stackInSlot.isEmpty() || stackInSlot.getCount() != stackInSlot.getMaxStackSize(); + else if (!stackInSlot.isEmpty()) { + valid = false; + sample = stackInSlot; + } + } + + if (valid) + return; + + settling = true; + for (int i = 0; i < STACKS_PER_COMPARTMENT; i++) { + ItemStack copy = totalCount <= 0 ? ItemStack.EMPTY + : ItemHandlerHelper.copyStackWithSize(sample, Math.min(totalCount, sample.getMaxStackSize())); + setStackInSlot(compartment * STACKS_PER_COMPARTMENT + i, copy); + totalCount -= copy.getCount(); + } + settling = false; + te.sendData(); + } + + @Override + public boolean isItemValid(int slot, ItemStack stack) { + if (slot < 0 || slot >= getSlots()) + return false; + int compartment = slot / STACKS_PER_COMPARTMENT; + ItemStack filter = filters.get(compartment); + if (!filter.isEmpty() && ItemHandlerHelper.canItemStacksStack(filter, stack)) + return super.isItemValid(slot, stack); + return false; + } + + @Override + public void setStackInSlot(int slot, ItemStack stack) { + super.setStackInSlot(slot, stack); + int compartment = slot / STACKS_PER_COMPARTMENT; + if (!stack.isEmpty() && filters.get(compartment) + .isEmpty()) + filters.set(compartment, ItemHandlerHelper.copyStackWithSize(stack, 1)); + } + + @Override + public CompoundNBT serializeNBT() { + CompoundNBT compound = super.serializeNBT(); + compound.put("Compartments", NBTHelper.writeItemList(filters)); + return compound; + } + + @Override + protected void onContentsChanged(int slot) { + if (!settling && !te.getWorld().isClientSide) + settle(slot / STACKS_PER_COMPARTMENT); + super.onContentsChanged(slot); + } + + @Override + public void deserializeNBT(CompoundNBT nbt) { + filters = NBTHelper.readItemList(nbt.getList("Compartments", NBT.TAG_COMPOUND)); + if (filters.size() != 8) { + filters.clear(); + for (int i = 0; i < 8; i++) + filters.add(ItemStack.EMPTY); + } + super.deserializeNBT(nbt); + } + + public ItemStack distributeToCompartment(@Nonnull ItemStack stack, int compartment, boolean simulate) { + if (stack.isEmpty()) + return stack; + + for (int i = STACKS_PER_COMPARTMENT - 1; i >= 0; i--) { + int slot = compartment * STACKS_PER_COMPARTMENT + i; + stack = insertItem(slot, stack, simulate); + if (stack.isEmpty()) + return ItemStack.EMPTY; + } + + return stack; + } + + public ItemStack takeFromCompartment(int amount, int compartment, boolean simulate) { + if (amount == 0) + return ItemStack.EMPTY; + + int remaining = amount; + ItemStack lastValid = ItemStack.EMPTY; + + for (int i = STACKS_PER_COMPARTMENT - 1; i >= 0; i--) { + int slot = compartment * STACKS_PER_COMPARTMENT + i; + ItemStack extracted = extractItem(slot, amount, simulate); + remaining -= extracted.getCount(); + if (!extracted.isEmpty()) + lastValid = extracted; + if (remaining == 0) + return ItemHandlerHelper.copyStackWithSize(lastValid, amount); + } + + if (remaining == amount) + return ItemStack.EMPTY; + + return ItemHandlerHelper.copyStackWithSize(lastValid, amount - remaining); + } + +} diff --git a/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxRenderer.java b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxRenderer.java new file mode 100644 index 000000000..bb613206e --- /dev/null +++ b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxRenderer.java @@ -0,0 +1,59 @@ +package com.simibubi.create.content.curiosities.toolbox; + +import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.IVertexBuilder; +import com.simibubi.create.AllBlockPartials; +import com.simibubi.create.foundation.render.PartialBufferer; +import com.simibubi.create.foundation.render.SuperByteBuffer; +import com.simibubi.create.foundation.tileEntity.renderer.SmartTileEntityRenderer; +import com.simibubi.create.foundation.utility.Iterate; + +import net.minecraft.block.BlockState; +import net.minecraft.client.renderer.IRenderTypeBuffer; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher; +import net.minecraft.util.Direction; + +public class ToolboxRenderer extends SmartTileEntityRenderer { + + public ToolboxRenderer(TileEntityRendererDispatcher dispatcher) { + super(dispatcher); + } + + @Override + protected void renderSafe(ToolboxTileEntity tileEntityIn, float partialTicks, MatrixStack ms, + IRenderTypeBuffer buffer, int light, int overlay) { + + BlockState blockState = tileEntityIn.getBlockState(); + Direction facing = blockState.getValue(ToolboxBlock.FACING) + .getOpposite(); + SuperByteBuffer lid = PartialBufferer.get(AllBlockPartials.TOOLBOX_LID, blockState); + SuperByteBuffer drawer = PartialBufferer.get(AllBlockPartials.TOOLBOX_DRAWER, blockState); + + float lidAngle = tileEntityIn.lid.getValue(partialTicks); + float drawerOffset = tileEntityIn.drawers.getValue(partialTicks); + + IVertexBuilder layer = buffer.getBuffer(RenderType.solid()); + lid.matrixStacker() + .centre() + .rotateY(-facing.toYRot()) + .unCentre() + .translate(0, 6/16f, 12/16f) + .rotateX(135 * lidAngle) + .translate(0, -6/16f, -12/16f); + lid.light(light) + .renderInto(ms, layer); + + for (int offset : Iterate.zeroAndOne) { + drawer.matrixStacker() + .centre() + .rotateY(-facing.toYRot()) + .unCentre(); + drawer.translate(0, offset * 1 / 8f, -drawerOffset * .175f * (2 - offset)) + .light(light) + .renderInto(ms, layer); + } + + } + +} diff --git a/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxScreen.java b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxScreen.java new file mode 100644 index 000000000..986d043ec --- /dev/null +++ b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxScreen.java @@ -0,0 +1,162 @@ +package com.simibubi.create.content.curiosities.toolbox; + +import java.util.Collections; +import java.util.List; + +import com.google.common.collect.ImmutableList; +import com.jozufozu.flywheel.util.transform.MatrixTransformStack; +import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.systems.RenderSystem; +import com.simibubi.create.AllBlockPartials; +import com.simibubi.create.AllBlocks; +import com.simibubi.create.foundation.gui.AbstractSimiContainerScreen; +import com.simibubi.create.foundation.gui.AllGuiTextures; +import com.simibubi.create.foundation.gui.AllIcons; +import com.simibubi.create.foundation.gui.GuiGameElement; +import com.simibubi.create.foundation.gui.widgets.IconButton; +import com.simibubi.create.foundation.utility.Iterate; + +import net.minecraft.client.renderer.Rectangle2d; +import net.minecraft.entity.player.PlayerInventory; +import net.minecraft.inventory.container.Slot; +import net.minecraft.item.ItemStack; +import net.minecraft.util.text.ITextComponent; + +public class ToolboxScreen extends AbstractSimiContainerScreen { + + AllGuiTextures BG = AllGuiTextures.TOOLBOX; + AllGuiTextures PLAYER = AllGuiTextures.PLAYER_INVENTORY; + protected Slot hoveredToolboxSlot; + private IconButton confirmButton; + + private List extraAreas = Collections.emptyList(); + + public ToolboxScreen(ToolboxContainer container, PlayerInventory inv, ITextComponent title) { + super(container, inv, title); + init(); + } + + @Override + protected void init() { + super.init(); + widgets.clear(); + setWindowSize(BG.width, 256); + confirmButton = new IconButton(getGuiLeft() + BG.width - 23, getGuiTop() + BG.height - 24, AllIcons.I_CONFIRM); + widgets.add(confirmButton); + + extraAreas = ImmutableList.of(new Rectangle2d(118, 155, 80, 100), new Rectangle2d(308, 125, 100, 70)); + } + + @Override + public void render(MatrixStack matrixStack, int mouseX, int mouseY, float partialTicks) { + menu.renderPass = true; + super.render(matrixStack, mouseX, mouseY, partialTicks); + menu.renderPass = false; + } + + @Override + public void setBlitOffset(int p_230926_1_) { + super.setBlitOffset(p_230926_1_); + } + + @Override + protected void renderWindow(MatrixStack ms, int mouseX, int mouseY, float partialTicks) { + BG.draw(ms, this, leftPos + 10, topPos); + PLAYER.draw(ms, this, leftPos + (BG.width - PLAYER.width) / 2 - 26, topPos + imageHeight - PLAYER.height); + font.draw(ms, title, leftPos + 24, topPos + 4, 0x442000); + font.draw(ms, inventory.getDisplayName(), leftPos - 13, topPos + 154, 0x404040); + + renderToolbox(ms, mouseX, mouseY, partialTicks); + + hoveredToolboxSlot = null; + for (int compartment = 0; compartment < 8; compartment++) { + int baseIndex = compartment * ToolboxInventory.STACKS_PER_COMPARTMENT; + Slot slot = menu.slots.get(baseIndex); + ItemStack itemstack = slot.getItem(); + int i = slot.x + leftPos; + int j = slot.y + topPos; + + if (itemstack.isEmpty()) + itemstack = menu.getFilter(compartment); + + if (!itemstack.isEmpty()) { + int count = menu.totalCountInCompartment(compartment); + String s = count + ""; + setBlitOffset(100); + itemRenderer.blitOffset = 100.0F; + RenderSystem.enableDepthTest(); + itemRenderer.renderAndDecorateItem(minecraft.player, itemstack, i, j); + itemRenderer.renderGuiItemDecorations(font, itemstack, i, j, s); + setBlitOffset(0); + itemRenderer.blitOffset = 0.0F; + } + + if (isHovering(slot.x, slot.y, 16, 16, mouseX, mouseY)) { + hoveredToolboxSlot = slot; + RenderSystem.disableDepthTest(); + RenderSystem.colorMask(true, true, true, false); + int slotColor = this.getSlotColor(baseIndex); + fillGradient(ms, i, j, i + 16, j + 16, slotColor, slotColor); + RenderSystem.colorMask(true, true, true, true); + RenderSystem.enableDepthTest(); + } + } + } + + private void renderToolbox(MatrixStack ms, int mouseX, int mouseY, float partialTicks) { + ms.pushPose(); + ms.translate(397, 190, 100); + MatrixTransformStack.of(ms) + .scale(50) + .rotateX(-22) + .rotateY(-202); + + GuiGameElement.of(AllBlocks.TOOLBOX.getDefaultState()) + .render(ms); + + ms.pushPose(); + MatrixTransformStack.of(ms) + .translate(0, -6 / 16f, 12 / 16f) + .rotateX(-105 * menu.contentHolder.lid.getValue(partialTicks)) + .translate(0, 6 / 16f, -12 / 16f); + GuiGameElement.of(AllBlockPartials.TOOLBOX_LID) + .render(ms); + ms.popPose(); + + for (int offset : Iterate.zeroAndOne) { + ms.pushPose(); + ms.translate(0, -offset * 1 / 8f, menu.contentHolder.drawers.getValue(partialTicks) * -.175f * (2 - offset)); + GuiGameElement.of(AllBlockPartials.TOOLBOX_DRAWER) + .render(ms); + ms.popPose(); + } + ms.popPose(); + } + + @Override + protected void renderWindowForeground(MatrixStack matrixStack, int mouseX, int mouseY, float partialTicks) { + if (hoveredToolboxSlot != null) + hoveredSlot = hoveredToolboxSlot; + super.renderWindowForeground(matrixStack, mouseX, mouseY, partialTicks); + } + + @Override + public boolean mouseClicked(double x, double y, int button) { + boolean mouseClicked = super.mouseClicked(x, y, button); + + if (button == 0) { + if (confirmButton.isHovered()) { + minecraft.player.closeContainer(); + return true; + } + } + + return mouseClicked; + } + + @Override + public List getExtraAreas() { + return extraAreas; + } + +} diff --git a/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxSlot.java b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxSlot.java new file mode 100644 index 000000000..b14d0573f --- /dev/null +++ b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxSlot.java @@ -0,0 +1,20 @@ +package com.simibubi.create.content.curiosities.toolbox; + +import net.minecraftforge.items.IItemHandler; +import net.minecraftforge.items.SlotItemHandler; + +public class ToolboxSlot extends SlotItemHandler { + + private ToolboxContainer toolboxMenu; + + public ToolboxSlot(ToolboxContainer container, IItemHandler itemHandler, int index, int xPosition, int yPosition) { + super(itemHandler, index, xPosition, yPosition); + this.toolboxMenu = container; + } + + @Override + public boolean isActive() { + return !toolboxMenu.renderPass && super.isActive(); + } + +} diff --git a/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxTileEntity.java b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxTileEntity.java new file mode 100644 index 000000000..91bdd62d9 --- /dev/null +++ b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxTileEntity.java @@ -0,0 +1,291 @@ +package com.simibubi.create.content.curiosities.toolbox; + +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.WeakHashMap; + +import com.simibubi.create.foundation.networking.AllPackets; +import com.simibubi.create.foundation.networking.ISyncPersistentData; +import com.simibubi.create.foundation.tileEntity.SmartTileEntity; +import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; +import com.simibubi.create.foundation.utility.VecHelper; +import com.simibubi.create.foundation.utility.animation.LerpedFloat; +import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser; + +import net.minecraft.block.BlockState; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.entity.player.PlayerInventory; +import net.minecraft.entity.player.ServerPlayerEntity; +import net.minecraft.inventory.container.Container; +import net.minecraft.inventory.container.INamedContainerProvider; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.CompoundNBT; +import net.minecraft.tileentity.TileEntityType; +import net.minecraft.util.Direction; +import net.minecraft.util.INameable; +import net.minecraft.util.SoundCategory; +import net.minecraft.util.SoundEvents; +import net.minecraft.util.math.AxisAlignedBB; +import net.minecraft.util.math.vector.Vector3d; +import net.minecraft.util.text.ITextComponent; +import net.minecraft.util.text.TranslationTextComponent; +import net.minecraftforge.common.capabilities.Capability; +import net.minecraftforge.common.util.LazyOptional; +import net.minecraftforge.fml.network.PacketDistributor; +import net.minecraftforge.items.IItemHandler; +import net.minecraftforge.items.ItemHandlerHelper; + +public class ToolboxTileEntity extends SmartTileEntity implements INamedContainerProvider, INameable { + + public LerpedFloat lid = LerpedFloat.linear() + .startWithValue(0); + + public LerpedFloat drawers = LerpedFloat.linear() + .startWithValue(0); + + ToolboxInventory inventory; + LazyOptional inventoryProvider; + protected int openCount; + + Map> connectedPlayers; + + private ITextComponent customName; + + public ToolboxTileEntity(TileEntityType tileEntityTypeIn) { + super(tileEntityTypeIn); + connectedPlayers = new HashMap<>(); + inventory = new ToolboxInventory(this); + inventoryProvider = LazyOptional.of(() -> inventory); + setLazyTickRate(10); + } + + @Override + public void addBehaviours(List behaviours) {} + + @Override + public void initialize() { + super.initialize(); + ToolboxHandler.onLoad(this); + } + + @Override + public void setRemoved() { + super.setRemoved(); + ToolboxHandler.onUnload(this); + } + + @Override + public void tick() { + super.tick(); + + if (level.isClientSide) + tickAudio(); + if (!level.isClientSide) + tickPlayers(); + + lid.chase(openCount > 0 ? 1 : 0, 0.2f, Chaser.LINEAR); + drawers.chase(openCount > 0 ? 1 : 0, 0.2f, Chaser.EXP); + lid.tickChaser(); + drawers.tickChaser(); + } + + private void tickPlayers() { + for (Iterator>> toolboxSlots = connectedPlayers.entrySet() + .iterator(); toolboxSlots.hasNext();) { + + Entry> toolboxSlotEntry = toolboxSlots.next(); + WeakHashMap set = toolboxSlotEntry.getValue(); + int slot = toolboxSlotEntry.getKey(); + + ItemStack referenceItem = inventory.filters.get(slot); + boolean clear = referenceItem.isEmpty(); + + for (Iterator> playerEntries = set.entrySet() + .iterator(); playerEntries.hasNext();) { + Entry playerEntry = playerEntries.next(); + + PlayerEntity player = playerEntry.getKey(); + int hotbarSlot = playerEntry.getValue(); + + if (!clear && !ToolboxHandler.withinRange(player, this)) + continue; + + ItemStack playerStack = player.inventory.getItem(hotbarSlot); + + if (clear + || !playerStack.isEmpty() && !ItemHandlerHelper.canItemStacksStack(playerStack, referenceItem)) { + player.getPersistentData() + .getCompound("CreateToolboxData") + .remove(String.valueOf(hotbarSlot)); + playerEntries.remove(); + if (player instanceof ServerPlayerEntity) + AllPackets.channel.send(PacketDistributor.PLAYER.with(() -> (ServerPlayerEntity) player), + new ISyncPersistentData.Packet(player)); + continue; + } + + int count = playerStack.getCount(); + int targetAmount = (referenceItem.getMaxStackSize() + 1) / 2; + + if (count < targetAmount) { + int amountToReplenish = targetAmount - count; + ItemStack extracted = inventory.takeFromCompartment(amountToReplenish, slot, false); + if (!extracted.isEmpty()) + player.inventory.setItem(hotbarSlot, + ItemHandlerHelper.copyStackWithSize(extracted, count + extracted.getCount())); + } + + if (count > targetAmount) { + int amountToDeposit = count - targetAmount; + ItemStack toDistribute = ItemHandlerHelper.copyStackWithSize(playerStack, amountToDeposit); + int deposited = amountToDeposit - inventory.distributeToCompartment(toDistribute, slot, false) + .getCount(); + if (deposited > 0) + player.inventory.setItem(hotbarSlot, + ItemHandlerHelper.copyStackWithSize(playerStack, count - deposited)); + } + } + + if (clear) + toolboxSlots.remove(); + } + } + + public void unequip(int slot, PlayerEntity player, int hotbarSlot) { + if (!connectedPlayers.containsKey(slot)) + return; + connectedPlayers.get(slot) + .remove(player); + if (!ToolboxHandler.withinRange(player, this)) + return; + + ItemStack playerStack = player.inventory.getItem(hotbarSlot); + ItemStack remainder = inventory.distributeToCompartment(playerStack, slot, false); + + if (remainder.getCount() != playerStack.getCount()) + player.inventory.setItem(hotbarSlot, remainder); + } + + private void tickAudio() { + Vector3d vec = VecHelper.getCenterOf(worldPosition); + if (lid.settled()) { + if (openCount > 0 && lid.getChaseTarget() == 0) { + level.playLocalSound(vec.x, vec.y, vec.z, SoundEvents.IRON_DOOR_OPEN, SoundCategory.BLOCKS, 0.25F, + level.random.nextFloat() * 0.1F + 1.2F, true); + level.playLocalSound(vec.x, vec.y, vec.z, SoundEvents.CHEST_OPEN, SoundCategory.BLOCKS, 0.1F, + level.random.nextFloat() * 0.1F + 1.1F, true); + } + if (openCount == 0 && lid.getChaseTarget() == 1) + level.playLocalSound(vec.x, vec.y, vec.z, SoundEvents.CHEST_CLOSE, SoundCategory.BLOCKS, 0.1F, + level.random.nextFloat() * 0.1F + 1.1F, true); + + } else if (openCount == 0 && lid.getChaseTarget() == 0 && lid.getValue(0) > 1 / 16f + && lid.getValue(1) < 1 / 16f) + level.playLocalSound(vec.x, vec.y, vec.z, SoundEvents.IRON_DOOR_CLOSE, SoundCategory.BLOCKS, 0.25F, + level.random.nextFloat() * 0.1F + 1.2F, true); + } + + @Override + public LazyOptional getCapability(Capability cap, Direction side) { + if (isItemHandlerCap(cap)) + return inventoryProvider.cast(); + return super.getCapability(cap, side); + } + + @Override + protected void fromTag(BlockState state, CompoundNBT compound, boolean clientPacket) { + inventory.deserializeNBT(compound.getCompound("Inventory")); + super.fromTag(state, compound, clientPacket); + if (compound.contains("CustomName", 8)) + this.customName = ITextComponent.Serializer.fromJson(compound.getString("CustomName")); + if (clientPacket) + openCount = compound.getInt("OpenCount"); + } + + @Override + protected void write(CompoundNBT compound, boolean clientPacket) { + compound.put("Inventory", inventory.serializeNBT()); + if (customName != null) + compound.putString("CustomName", ITextComponent.Serializer.toJson(customName)); + super.write(compound, clientPacket); + if (clientPacket) + compound.putInt("OpenCount", openCount); + } + + @Override + public Container createMenu(int id, PlayerInventory inv, PlayerEntity player) { + return ToolboxContainer.create(id, inv, this); + } + + @Override + public ITextComponent getDisplayName() { + return customName != null ? customName : new TranslationTextComponent("block.create.toolbox"); + } + + @Override + public void lazyTick() { + updateOpenCount(); + // keep re-advertising active TEs + ToolboxHandler.onLoad(this); + super.lazyTick(); + } + + void updateOpenCount() { + if (level.isClientSide) + return; + if (openCount == 0) + return; + + int prevOpenCount = openCount; + openCount = 0; + + for (PlayerEntity playerentity : level.getEntitiesOfClass(PlayerEntity.class, + new AxisAlignedBB(worldPosition).inflate(8))) + if (playerentity.containerMenu instanceof ToolboxContainer + && ((ToolboxContainer) playerentity.containerMenu).contentHolder == this) + openCount++; + + if (prevOpenCount != openCount) + sendData(); + } + + public void startOpen(PlayerEntity player) { + if (player.isSpectator()) + return; + if (openCount < 0) + openCount = 0; + openCount++; + sendData(); + } + + public void stopOpen(PlayerEntity player) { + if (player.isSpectator()) + return; + openCount--; + sendData(); + } + + public void connectPlayer(int slot, PlayerEntity player, int hotbarSlot) { + if (level.isClientSide) + return; + WeakHashMap map = connectedPlayers.computeIfAbsent(slot, WeakHashMap::new); + map.put(player, hotbarSlot); + } + + public void readInventory(CompoundNBT compound) { + inventory.deserializeNBT(compound); + } + + public void setCustomName(ITextComponent customName) { + this.customName = customName; + } + + @Override + public ITextComponent getName() { + return customName; + } + +} diff --git a/src/main/java/com/simibubi/create/content/curiosities/tools/BlueprintContainer.java b/src/main/java/com/simibubi/create/content/curiosities/tools/BlueprintContainer.java index bf08dde69..966e65579 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/tools/BlueprintContainer.java +++ b/src/main/java/com/simibubi/create/content/curiosities/tools/BlueprintContainer.java @@ -112,7 +112,8 @@ public class BlueprintContainer extends GhostItemContainer { } @Override - protected void readData(BlueprintSection contentHolder) { + protected void initAndReadInventory(BlueprintSection contentHolder) { + super.initAndReadInventory(contentHolder); } @Override diff --git a/src/main/java/com/simibubi/create/content/logistics/block/inventories/AdjustableCrateTileEntity.java b/src/main/java/com/simibubi/create/content/logistics/block/inventories/AdjustableCrateTileEntity.java index 9ec1fbf31..978cac44b 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/inventories/AdjustableCrateTileEntity.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/inventories/AdjustableCrateTileEntity.java @@ -11,7 +11,6 @@ import net.minecraft.inventory.container.Container; import net.minecraft.inventory.container.INamedContainerProvider; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; -import net.minecraft.network.PacketBuffer; import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntityType; import net.minecraft.util.Direction; @@ -162,11 +161,6 @@ public class AdjustableCrateTileEntity extends CrateTileEntity implements INamed return Lang.translate("gui.adjustable_crate.title"); } - public void sendToContainer(PacketBuffer buffer) { - buffer.writeBlockPos(getBlockPos()); - buffer.writeNbt(getUpdateTag()); - } - @Override public void setRemoved() { super.setRemoved(); diff --git a/src/main/java/com/simibubi/create/content/logistics/item/filter/AttributeFilterContainer.java b/src/main/java/com/simibubi/create/content/logistics/item/filter/AttributeFilterContainer.java index 8d0691975..3902a50a9 100644 --- a/src/main/java/com/simibubi/create/content/logistics/item/filter/AttributeFilterContainer.java +++ b/src/main/java/com/simibubi/create/content/logistics/item/filter/AttributeFilterContainer.java @@ -126,7 +126,8 @@ public class AttributeFilterContainer extends AbstractFilterContainer { } @Override - protected void readData(ItemStack filterItem) { + protected void initAndReadInventory(ItemStack filterItem) { + super.initAndReadInventory(filterItem); selectedAttributes = new ArrayList<>(); whitelistMode = WhitelistMode.values()[filterItem.getOrCreateTag() .getInt("WhitelistMode")]; diff --git a/src/main/java/com/simibubi/create/content/logistics/item/filter/FilterContainer.java b/src/main/java/com/simibubi/create/content/logistics/item/filter/FilterContainer.java index b0b19f5dc..0cc9acc13 100644 --- a/src/main/java/com/simibubi/create/content/logistics/item/filter/FilterContainer.java +++ b/src/main/java/com/simibubi/create/content/logistics/item/filter/FilterContainer.java @@ -52,7 +52,8 @@ public class FilterContainer extends AbstractFilterContainer { } @Override - protected void readData(ItemStack filterItem) { + protected void initAndReadInventory(ItemStack filterItem) { + super.initAndReadInventory(filterItem); CompoundNBT tag = filterItem.getOrCreateTag(); respectNBT = tag.getBoolean("RespectNBT"); blacklist = tag.getBoolean("Blacklist"); diff --git a/src/main/java/com/simibubi/create/events/ClientEvents.java b/src/main/java/com/simibubi/create/events/ClientEvents.java index c25d99b98..8ea90bf26 100644 --- a/src/main/java/com/simibubi/create/events/ClientEvents.java +++ b/src/main/java/com/simibubi/create/events/ClientEvents.java @@ -27,6 +27,7 @@ import com.simibubi.create.content.contraptions.itemAssembly.SequencedAssemblyRe import com.simibubi.create.content.contraptions.relays.belt.BeltSlicer; import com.simibubi.create.content.contraptions.relays.belt.item.BeltConnectorHandler; import com.simibubi.create.content.curiosities.armor.CopperBacktankArmorLayer; +import com.simibubi.create.content.curiosities.toolbox.ToolboxHandlerClient; import com.simibubi.create.content.curiosities.tools.BlueprintOverlayRenderer; import com.simibubi.create.content.curiosities.tools.ExtendoGripRenderHandler; import com.simibubi.create.content.curiosities.zapper.ZapperItem; @@ -145,6 +146,7 @@ public class ClientEvents { CreateClient.GHOST_BLOCKS.tickGhosts(); ContraptionRenderDispatcher.tick(world); BlueprintOverlayRenderer.tick(); + ToolboxHandlerClient.clientTick(); } @SubscribeEvent @@ -225,6 +227,7 @@ public class ClientEvents { LinkedControllerClientHandler.renderOverlay(ms, buffer, light, overlay, partialTicks); BlueprintOverlayRenderer.renderOverlay(ms, buffer, light, overlay, partialTicks); GoggleOverlayRenderer.renderOverlay(ms, buffer, light, overlay, partialTicks); + ToolboxHandlerClient.renderOverlay(ms, buffer, light, overlay, partialTicks); } @SubscribeEvent diff --git a/src/main/java/com/simibubi/create/events/InputEvents.java b/src/main/java/com/simibubi/create/events/InputEvents.java index 2b97cb343..f9decbf84 100644 --- a/src/main/java/com/simibubi/create/events/InputEvents.java +++ b/src/main/java/com/simibubi/create/events/InputEvents.java @@ -1,6 +1,7 @@ package com.simibubi.create.events; import com.simibubi.create.CreateClient; +import com.simibubi.create.content.curiosities.toolbox.ToolboxHandlerClient; import com.simibubi.create.content.logistics.item.LinkedControllerClientHandler; import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringHandler; import com.simibubi.create.foundation.tileEntity.behaviour.scrollvalue.ScrollValueHandler; @@ -26,6 +27,7 @@ public class InputEvents { return; CreateClient.SCHEMATIC_HANDLER.onKeyInput(key, pressed); + ToolboxHandlerClient.onKeyInput(key, pressed); } @SubscribeEvent diff --git a/src/main/java/com/simibubi/create/foundation/gui/AllGuiTextures.java b/src/main/java/com/simibubi/create/foundation/gui/AllGuiTextures.java index 3998c7258..67b52074c 100644 --- a/src/main/java/com/simibubi/create/foundation/gui/AllGuiTextures.java +++ b/src/main/java/com/simibubi/create/foundation/gui/AllGuiTextures.java @@ -52,6 +52,18 @@ public enum AllGuiTextures implements IScreenRenderable { FILTER("filters.png", 214, 97), ATTRIBUTE_FILTER("filters.png", 0, 97, 241, 83), + TOOLBOX("toolbox.png", 188, 171), + TOOLBELT_SLOT("minecraft", "widgets.png", 24, 23, 22, 22), + TOOLBELT_SLOT_HIGHLIGHT("minecraft", "widgets.png", 0, 22, 24, 24), + TOOLBELT_MAIN_SLOT("widgets.png", 0, 97, 24, 24), + TOOLBELT_EMPTY_SLOT("widgets.png", 27, 98, 22, 22), + TOOLBELT_INACTIVE_SLOT("widgets.png", 52, 98, 22, 22), + + TOOLBELT_HOTBAR_OFF("widgets.png", 0, 130, 20, 24), + TOOLBELT_HOTBAR_ON("widgets.png", 20, 130, 20, 24), + TOOLBELT_SELECTED_OFF("widgets.png", 0, 155, 22, 22), + TOOLBELT_SELECTED_ON("widgets.png", 22, 155, 22, 22), + SEQUENCER("sequencer.png", 173, 159), SEQUENCER_INSTRUCTION("sequencer.png", 0, 14, 162, 22), SEQUENCER_DELAY("sequencer.png", 0, 58, 162, 22), @@ -120,7 +132,11 @@ public enum AllGuiTextures implements IScreenRenderable { } private AllGuiTextures(String location, int startX, int startY, int width, int height) { - this.location = new ResourceLocation(Create.ID, "textures/gui/" + location); + this(Create.ID, location, startX, startY, width, height); + } + + private AllGuiTextures(String namespace, String location, int startX, int startY, int width, int height) { + this.location = new ResourceLocation(namespace, "textures/gui/" + location); this.width = width; this.height = height; this.startX = startX; diff --git a/src/main/java/com/simibubi/create/foundation/gui/ContainerBase.java b/src/main/java/com/simibubi/create/foundation/gui/ContainerBase.java new file mode 100644 index 000000000..fff1ae447 --- /dev/null +++ b/src/main/java/com/simibubi/create/foundation/gui/ContainerBase.java @@ -0,0 +1,69 @@ +package com.simibubi.create.foundation.gui; + +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.entity.player.PlayerInventory; +import net.minecraft.inventory.container.Container; +import net.minecraft.inventory.container.ContainerType; +import net.minecraft.inventory.container.Slot; +import net.minecraft.network.PacketBuffer; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.api.distmarker.OnlyIn; + +public abstract class ContainerBase extends Container { + + public PlayerEntity player; + public PlayerInventory playerInventory; + public T contentHolder; + + protected ContainerBase(ContainerType type, int id, PlayerInventory inv, PacketBuffer extraData) { + super(type, id); + init(inv, createOnClient(extraData)); + } + + protected ContainerBase(ContainerType type, int id, PlayerInventory inv, T contentHolder) { + super(type, id); + init(inv, contentHolder); + } + + protected void init(PlayerInventory inv, T contentHolderIn) { + player = inv.player; + playerInventory = inv; + contentHolder = contentHolderIn; + initAndReadInventory(contentHolder); + addSlots(); + broadcastChanges(); + } + + @OnlyIn(Dist.CLIENT) + protected abstract T createOnClient(PacketBuffer extraData); + + protected abstract void addSlots(); + + protected abstract void initAndReadInventory(T contentHolder); + + protected abstract void saveData(T contentHolder); + + protected void addPlayerSlots(int x, int y) { + for (int hotbarSlot = 0; hotbarSlot < 9; ++hotbarSlot) + this.addSlot(new Slot(playerInventory, hotbarSlot, x + hotbarSlot * 18, y + 58)); + for (int row = 0; row < 3; ++row) + for (int col = 0; col < 9; ++col) + this.addSlot(new Slot(playerInventory, col + row * 9 + 9, x + col * 18, y + row * 18)); + } + + @Override + public void removed(PlayerEntity playerIn) { + super.removed(playerIn); + saveData(contentHolder); + } + + @Override + public boolean stillValid(PlayerEntity player) { + if (contentHolder == null) + return false; + if (contentHolder instanceof IInteractionChecker) + return ((IInteractionChecker) contentHolder).canPlayerUse(player); + return true; + } + +} diff --git a/src/main/java/com/simibubi/create/foundation/gui/GhostItemContainer.java b/src/main/java/com/simibubi/create/foundation/gui/GhostItemContainer.java index d2b00bea3..7b7f1903c 100644 --- a/src/main/java/com/simibubi/create/foundation/gui/GhostItemContainer.java +++ b/src/main/java/com/simibubi/create/foundation/gui/GhostItemContainer.java @@ -3,54 +3,32 @@ package com.simibubi.create.foundation.gui; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.PlayerInventory; import net.minecraft.inventory.container.ClickType; -import net.minecraft.inventory.container.Container; import net.minecraft.inventory.container.ContainerType; import net.minecraft.inventory.container.Slot; import net.minecraft.item.ItemStack; import net.minecraft.network.PacketBuffer; -import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.items.ItemHandlerHelper; import net.minecraftforge.items.ItemStackHandler; -public abstract class GhostItemContainer extends Container implements IClearableContainer { +public abstract class GhostItemContainer extends ContainerBase implements IClearableContainer { - public PlayerEntity player; - public PlayerInventory playerInventory; public ItemStackHandler ghostInventory; - public T contentHolder; protected GhostItemContainer(ContainerType type, int id, PlayerInventory inv, PacketBuffer extraData) { - super(type, id); - init(inv, createOnClient(extraData)); + super(type, id, inv, extraData); } protected GhostItemContainer(ContainerType type, int id, PlayerInventory inv, T contentHolder) { - super(type, id); - init(inv, contentHolder); + super(type, id, inv, contentHolder); } - @OnlyIn(Dist.CLIENT) - protected abstract T createOnClient(PacketBuffer extraData); - - protected abstract void addSlots(); - protected abstract ItemStackHandler createGhostInventory(); - protected abstract void readData(T contentHolder); - - protected abstract void saveData(T contentHolder); - protected abstract boolean allowRepeats(); - protected void init(PlayerInventory inv, T contentHolder) { - player = inv.player; - playerInventory = inv; - this.contentHolder = contentHolder; + @Override + protected void initAndReadInventory(T contentHolder) { ghostInventory = createGhostInventory(); - readData(contentHolder); - addSlots(); - broadcastChanges(); } @Override @@ -59,14 +37,6 @@ public abstract class GhostItemContainer extends Container implements ICleara ghostInventory.setStackInSlot(i, ItemStack.EMPTY); } - protected void addPlayerSlots(int x, int y) { - for (int hotbarSlot = 0; hotbarSlot < 9; ++hotbarSlot) - this.addSlot(new Slot(playerInventory, hotbarSlot, x + hotbarSlot * 18, y + 58)); - for (int row = 0; row < 3; ++row) - for (int col = 0; col < 9; ++col) - this.addSlot(new Slot(playerInventory, col + row * 9 + 9, x + col * 18, y + row * 18)); - } - @Override public boolean canTakeItemForPickAll(ItemStack stack, Slot slotIn) { return slotIn.container == playerInventory; @@ -135,10 +105,6 @@ public abstract class GhostItemContainer extends Container implements ICleara return ItemStack.EMPTY; } - @Override - public void removed(PlayerEntity playerIn) { - super.removed(playerIn); - saveData(contentHolder); - } + } diff --git a/src/main/java/com/simibubi/create/foundation/networking/AllPackets.java b/src/main/java/com/simibubi/create/foundation/networking/AllPackets.java index 079bc0cbd..e26663161 100644 --- a/src/main/java/com/simibubi/create/foundation/networking/AllPackets.java +++ b/src/main/java/com/simibubi/create/foundation/networking/AllPackets.java @@ -23,6 +23,7 @@ import com.simibubi.create.content.contraptions.fluids.actors.FluidSplashPacket; import com.simibubi.create.content.contraptions.relays.advanced.sequencer.ConfigureSequencedGearshiftPacket; import com.simibubi.create.content.curiosities.bell.SoulPulseEffectPacket; import com.simibubi.create.content.curiosities.symmetry.SymmetryEffectPacket; +import com.simibubi.create.content.curiosities.toolbox.ToolboxEquipPacket; import com.simibubi.create.content.curiosities.tools.BlueprintAssignCompleteRecipePacket; import com.simibubi.create.content.curiosities.tools.ExtendoGripInteractionPacket; import com.simibubi.create.content.curiosities.weapons.PotatoCannonPacket; @@ -96,6 +97,7 @@ public enum AllPackets { C_CONFIGURE_CONFIG(CConfigureConfigPacket.class, CConfigureConfigPacket::new, PLAY_TO_SERVER), SUBMIT_GHOST_ITEM(GhostItemSubmitPacket.class, GhostItemSubmitPacket::new, PLAY_TO_SERVER), BLUEPRINT_COMPLETE_RECIPE(BlueprintAssignCompleteRecipePacket.class, BlueprintAssignCompleteRecipePacket::new, PLAY_TO_SERVER), + TOOLBOX_EQUIP(ToolboxEquipPacket.class, ToolboxEquipPacket::new, PLAY_TO_SERVER), // Server to Client SYMMETRY_EFFECT(SymmetryEffectPacket.class, SymmetryEffectPacket::new, PLAY_TO_CLIENT), diff --git a/src/main/java/com/simibubi/create/foundation/networking/ISyncPersistentData.java b/src/main/java/com/simibubi/create/foundation/networking/ISyncPersistentData.java index 77d3ccfde..1226eaabd 100644 --- a/src/main/java/com/simibubi/create/foundation/networking/ISyncPersistentData.java +++ b/src/main/java/com/simibubi/create/foundation/networking/ISyncPersistentData.java @@ -1,6 +1,6 @@ package com.simibubi.create.foundation.networking; -import java.util.Iterator; +import java.util.HashSet; import java.util.function.Supplier; import net.minecraft.client.Minecraft; @@ -43,20 +43,17 @@ public interface ISyncPersistentData { @Override public void handle(Supplier context) { context.get() - .enqueueWork(() -> { - Entity entityByID = Minecraft.getInstance().level.getEntity(entityId); - if (!(entityByID instanceof ISyncPersistentData)) - return; - CompoundNBT data = entityByID.getPersistentData(); - for (Iterator iterator = data.getAllKeys() - .iterator(); iterator.hasNext(); ) { - data.remove(iterator.next()); - } - data.merge(readData); - ((ISyncPersistentData) entityByID).onPersistentDataUpdated(); - }); + .enqueueWork(() -> { + Entity entityByID = Minecraft.getInstance().level.getEntity(entityId); + CompoundNBT data = entityByID.getPersistentData(); + new HashSet<>(data.getAllKeys()).forEach(data::remove); + data.merge(readData); + if (!(entityByID instanceof ISyncPersistentData)) + return; + ((ISyncPersistentData) entityByID).onPersistentDataUpdated(); + }); context.get() - .setPacketHandled(true); + .setPacketHandled(true); } } diff --git a/src/main/java/com/simibubi/create/foundation/tileEntity/SmartTileEntity.java b/src/main/java/com/simibubi/create/foundation/tileEntity/SmartTileEntity.java index 2b7541bb4..7d88ca00f 100644 --- a/src/main/java/com/simibubi/create/foundation/tileEntity/SmartTileEntity.java +++ b/src/main/java/com/simibubi/create/foundation/tileEntity/SmartTileEntity.java @@ -15,6 +15,7 @@ import com.simibubi.create.foundation.utility.IPartialSafeNBT; import net.minecraft.block.BlockState; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.nbt.CompoundNBT; +import net.minecraft.network.PacketBuffer; import net.minecraft.tileentity.ITickableTileEntity; import net.minecraft.tileentity.TileEntityType; import net.minecraft.world.World; @@ -214,10 +215,15 @@ public abstract class SmartTileEntity extends SyncedTileEntity implements ITicka @Override public boolean canPlayerUse(PlayerEntity player) { - if (level == null || level.getBlockEntity(worldPosition) != this) { + if (level == null || level.getBlockEntity(worldPosition) != this) return false; - } - return player.distanceToSqr(worldPosition.getX() + 0.5D, worldPosition.getY() + 0.5D, worldPosition.getZ() + 0.5D) <= 64.0D; + return player.distanceToSqr(worldPosition.getX() + 0.5D, worldPosition.getY() + 0.5D, + worldPosition.getZ() + 0.5D) <= 64.0D; + } + + public void sendToContainer(PacketBuffer buffer) { + buffer.writeBlockPos(getBlockPos()); + buffer.writeNbt(getUpdateTag()); } public World getWorld() { diff --git a/src/main/java/com/simibubi/create/foundation/utility/NBTHelper.java b/src/main/java/com/simibubi/create/foundation/utility/NBTHelper.java index 34d32c713..880f7e4ed 100644 --- a/src/main/java/com/simibubi/create/foundation/utility/NBTHelper.java +++ b/src/main/java/com/simibubi/create/foundation/utility/NBTHelper.java @@ -53,7 +53,7 @@ public class NBTHelper { listNBT.forEach(inbt -> consumer.accept((CompoundNBT) inbt)); } - public static ListNBT writeItemList(List stacks) { + public static ListNBT writeItemList(Iterable stacks) { return writeCompoundList(stacks, ItemStack::serializeNBT); } diff --git a/src/main/resources/assets/create/lang/default/messages.json b/src/main/resources/assets/create/lang/default/messages.json index 1df9899de..24ae8105f 100644 --- a/src/main/resources/assets/create/lang/default/messages.json +++ b/src/main/resources/assets/create/lang/default/messages.json @@ -104,6 +104,10 @@ "create.gui.toolmenu.focusKey": "Hold [%1$s] to Focus", "create.gui.toolmenu.cycle": "[SCROLL] to Cycle", + + "create.toolbox.unequip": "Unequip: %1$s", + "create.toolbox.outOfRange": "Toolbox of held item not in Range", + "create.toolbox.detach": "Stop tracking and keep item", "create.gui.symmetryWand.mirrorType": "Mirror", "create.gui.symmetryWand.orientation": "Orientation", diff --git a/src/main/resources/assets/create/models/block/toolbox/block.json b/src/main/resources/assets/create/models/block/toolbox/block.json new file mode 100644 index 000000000..5263d8999 --- /dev/null +++ b/src/main/resources/assets/create/models/block/toolbox/block.json @@ -0,0 +1,24 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "create:block/toolbox", + "particle": "block/dark_oak_planks" + }, + "elements": [ + { + "from": [1, 0, 4], + "to": [15, 6, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [0, 1.5, 7, 4.5], "texture": "#0"}, + "east": {"uv": [6, 6, 10, 9], "texture": "#0"}, + "south": {"uv": [7, 1.5, 14, 4.5], "texture": "#0"}, + "west": {"uv": [6, 6, 10, 9], "texture": "#0"}, + "up": {"uv": [0, 11.5, 7, 15.5], "texture": "#0"}, + "down": {"uv": [7, 11.5, 14, 15.5], "texture": "#0"} + } + } + ], + "display": {} +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/toolbox/drawer.json b/src/main/resources/assets/create/models/block/toolbox/drawer.json new file mode 100644 index 000000000..0cb557f1f --- /dev/null +++ b/src/main/resources/assets/create/models/block/toolbox/drawer.json @@ -0,0 +1,23 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "create:block/toolbox", + "particle": "block/dark_oak_planks" + }, + "elements": [ + { + "from": [2, 1, 4], + "to": [14, 3, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [0, 4.5, 6, 5.5], "texture": "#0"}, + "east": {"uv": [6, 9, 9, 10], "texture": "#0"}, + "west": {"uv": [9, 9, 6, 10], "texture": "#0"}, + "up": {"uv": [0, 5.5, 6, 8.5], "rotation": 180, "texture": "#0"}, + "down": {"uv": [0, 8.5, 6, 11.5], "texture": "#0"} + } + } + ], + "display": {} +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/toolbox/item.json b/src/main/resources/assets/create/models/block/toolbox/item.json new file mode 100644 index 000000000..5c2b40a1c --- /dev/null +++ b/src/main/resources/assets/create/models/block/toolbox/item.json @@ -0,0 +1,132 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "create:block/toolbox", + "particle": "block/dark_oak_planks" + }, + "elements": [ + { + "from": [1, 0, 4], + "to": [15, 6, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [0, 1.5, 7, 4.5], "texture": "#0"}, + "east": {"uv": [6, 6, 10, 9], "texture": "#0"}, + "south": {"uv": [7, 1.5, 14, 4.5], "texture": "#0"}, + "west": {"uv": [6, 6, 10, 9], "texture": "#0"}, + "up": {"uv": [0, 11.5, 7, 15.5], "texture": "#0"}, + "down": {"uv": [7, 11.5, 14, 15.5], "texture": "#0"} + } + }, + { + "from": [1, 6, 4], + "to": [15, 9, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [0, 0, 7, 1.5], "texture": "#0"}, + "east": {"uv": [6, 4.5, 10, 6], "texture": "#0"}, + "south": {"uv": [7, 0, 14, 1.5], "texture": "#0"}, + "west": {"uv": [6, 4.5, 10, 6], "texture": "#0"}, + "up": {"uv": [10, 4.5, 14, 11.5], "rotation": 90, "texture": "#0"}, + "down": {"uv": [7, 11.5, 14, 15.5], "texture": "#0"} + } + }, + { + "from": [11, 5, 3], + "to": [13, 8, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [9, 9, 10, 10.5], "texture": "#0"}, + "east": {"uv": [9, 9, 9.5, 10.5], "texture": "#0"}, + "south": {"uv": [10, 9, 9, 10.5], "texture": "#0"}, + "west": {"uv": [9.5, 9, 10, 10.5], "texture": "#0"}, + "up": {"uv": [9, 9, 10, 9.5], "rotation": 180, "texture": "#0"}, + "down": {"uv": [9, 10, 10, 10.5], "rotation": 180, "texture": "#0"} + } + }, + { + "from": [4, 9, 8], + "to": [12, 11, 8], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [6, 10.5, 10, 11.5], "texture": "#0"}, + "south": {"uv": [6, 10.5, 10, 11.5], "texture": "#0"} + } + }, + { + "from": [1.95, 1.1, 3.7], + "to": [14.05, 3, 9.7], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [0, 4.5, 6, 5.5], "texture": "#0"}, + "east": {"uv": [6, 9, 9, 10], "texture": "#0"}, + "west": {"uv": [9, 9, 6, 10], "texture": "#0"}, + "up": {"uv": [0, 5.5, 6, 8.5], "rotation": 180, "texture": "#0"}, + "down": {"uv": [0, 8.5, 6, 11.5], "texture": "#0"} + } + }, + { + "from": [1.95, 3, 3.7], + "to": [14.05, 5.05, 9.7], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [0, 4.5, 6, 5.5], "texture": "#0"}, + "east": {"uv": [6, 9, 9, 10], "texture": "#0"}, + "west": {"uv": [9, 9, 6, 10], "texture": "#0"}, + "up": {"uv": [0, 5.5, 6, 8.5], "rotation": 180, "texture": "#0"}, + "down": {"uv": [0, 8.5, 6, 11.5], "texture": "#0"} + } + }, + { + "from": [3, 5, 3], + "to": [5, 8, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [9, 9, 10, 10.5], "texture": "#0"}, + "east": {"uv": [9, 9, 9.5, 10.5], "texture": "#0"}, + "south": {"uv": [10, 9, 9, 10.5], "texture": "#0"}, + "west": {"uv": [9.5, 9, 10, 10.5], "texture": "#0"}, + "up": {"uv": [9, 9, 10, 9.5], "rotation": 180, "texture": "#0"}, + "down": {"uv": [9, 10, 10, 10.5], "rotation": 180, "texture": "#0"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [75, -77, 2], + "translation": [0, -2.5, -0.75], + "scale": [0.64, 0.64, 0.64] + }, + "thirdperson_lefthand": { + "rotation": [75, -77, 2], + "translation": [0, -2.5, -0.75], + "scale": [0.64, 0.64, 0.64] + }, + "firstperson_righthand": { + "rotation": [-5, 86, 0], + "translation": [1, -1.25, 0], + "scale": [0.88, 0.88, 0.88] + }, + "firstperson_lefthand": { + "rotation": [-5, 86, 0], + "translation": [1, -1.25, 0], + "scale": [0.88, 0.88, 0.88] + }, + "ground": { + "translation": [0, 2, 0], + "scale": [0.5, 0.5, 0.5] + }, + "gui": { + "rotation": [30, 225, 0], + "translation": [0.25, 2.25, 0], + "scale": [0.79, 0.79, 0.79] + }, + "head": { + "translation": [0, 2.75, 0] + }, + "fixed": { + "scale": [0.5, 0.5, 0.5] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/toolbox/lid.json b/src/main/resources/assets/create/models/block/toolbox/lid.json new file mode 100644 index 000000000..70afceaa4 --- /dev/null +++ b/src/main/resources/assets/create/models/block/toolbox/lid.json @@ -0,0 +1,59 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "create:block/toolbox", + "particle": "block/dark_oak_planks" + }, + "elements": [ + { + "from": [1, 6, 4], + "to": [15, 9, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [0, 0, 7, 1.5], "texture": "#0"}, + "east": {"uv": [6, 4.5, 10, 6], "texture": "#0"}, + "south": {"uv": [7, 0, 14, 1.5], "texture": "#0"}, + "west": {"uv": [6, 4.5, 10, 6], "texture": "#0"}, + "up": {"uv": [10, 4.5, 14, 11.5], "rotation": 90, "texture": "#0"}, + "down": {"uv": [7, 11.5, 14, 15.5], "texture": "#0"} + } + }, + { + "from": [11, 5, 3], + "to": [13, 8, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [9, 9, 10, 10.5], "texture": "#0"}, + "east": {"uv": [9, 9, 9.5, 10.5], "texture": "#0"}, + "south": {"uv": [10, 9, 9, 10.5], "texture": "#0"}, + "west": {"uv": [9.5, 9, 10, 10.5], "texture": "#0"}, + "up": {"uv": [9, 9, 10, 9.5], "rotation": 180, "texture": "#0"}, + "down": {"uv": [9, 10, 10, 10.5], "rotation": 180, "texture": "#0"} + } + }, + { + "from": [4, 9, 8], + "to": [12, 11, 8], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [6, 10.5, 10, 11.5], "texture": "#0"}, + "south": {"uv": [6, 10.5, 10, 11.5], "texture": "#0"} + } + }, + { + "from": [3, 5, 3], + "to": [5, 8, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [9, 9, 10, 10.5], "texture": "#0"}, + "east": {"uv": [9, 9, 9.5, 10.5], "texture": "#0"}, + "south": {"uv": [10, 9, 9, 10.5], "texture": "#0"}, + "west": {"uv": [9.5, 9, 10, 10.5], "texture": "#0"}, + "up": {"uv": [9, 9, 10, 9.5], "rotation": 180, "texture": "#0"}, + "down": {"uv": [9, 10, 10, 10.5], "rotation": 180, "texture": "#0"} + } + } + ], + "display": {} +} \ No newline at end of file diff --git a/src/main/resources/assets/create/textures/block/toolbox.png b/src/main/resources/assets/create/textures/block/toolbox.png new file mode 100644 index 0000000000000000000000000000000000000000..62993288720d3c35c2f14b6a5da6b41feb1bebbf GIT binary patch literal 1124 zcmV-q1e^PbP)Px(9!W$&R9J<@mrZC~RTRg6Z|2TRXGR)Q8q=r{QcD+wSa72h7vds=8;h8&3m3Z3 zjf7pQrw9t*Xb5rQ565>KkkRn(l5ftNK3aQK(vC(uOafZHm%zba>xp=vE?tSmg zM~mQpGw0rO&OIOZoO9neuRZ@n1Q5y|!p)%&${r??Jhe9E%)KOExH&@EWA&%M9qZh- z-^G&w0Of80K(7J9Aky??*|lW9y1vNH-6ro|-i-JCv^=2Y-u&=3Nr=A=eZ6QjrNx{O z{ir)(kHdD~v6cwA^2s&;zc;*0y|(n}ggq^nJRd;Joh;F4b+oqtZoZ!-;pS-jUA^CE zb(lUr0l@OrmtlXGTh%`)74vb%j#4hWk=9Xix3}+cXYYaSK%>>+``-?&dl`ibXQm>6 zwNJkV;wv++&4g#jHCmk%-??yRDtc50+A_|}>{PLDPzIFUf?hX0spU#;J{7DGg@>{o zD=8frAKLWnyKM$i%ZP%*@q(b`g=E9oAis-0x?>RME1WZ80(=~O7Wc}*vI zir`Jx6`(fXg?2 zwTjh}oj-p95*bj&lJxxf6Etq5hlw&829chUo(%YM<(}rdc_;P2fsp|P74a~r2+M8( zPX>fRL>NSRU(qWYHLWANku~D=S@o@hOydiuZAYp#pZeB;PNf>ZWw!t>nWK2J?BeDf z{VpWC20&Dn=Bd2%qP@Gn+oz9Ov~tvjtfHegq1M99Ssfs|QEEV04!r%=Ca{^wjA8T4 z=Q|5e7yCt;%t~ernAJZHK3;qVhzk;+zI8xlX&yiiDu^@k(!x^!aV=ywL0p966duGK zvATXgZrRO#?Nn<%3#W@zYjJkMAOaU&dG$%^TL-LckXeA*frr6o8#|dNEmzJ($-Or| z_zviQnq?Lt#F354f|>_kUwR>`EY0iUGz)g^W}W)_KZt^ZCj;vnauCGKbTQR(Sx_mi z)_lHs??VG000038$lZxy-8q?;Kn_c~qpu?a z!^VE@KZ&eBer$kGh%1n0Wo2bzVq#-s`*bjuk&$u#ESGRihBzZe78aHX6DCwtRP5NX z!%9U^Q;Nsj+`OxIdUtpC|Ns9xd!{~m^r)nyq`$xa*s)`wp`mGMX*X`%ym8~k_3PJ{ zELj3H`3>LmR3If^666;Q)Pe^voRusS04n7y@Q5sCVBk9h!i=ICUJXEZ@Aq_Z45^5F zJGZy!vVlMg>y{-`92T0WWM10yKl#yo-$ge%m-bEb`t+ef{F5cJ}Z!Pwz?)Q$X*S8k;RWG0W_~E`k{s-BAJD+{`oH_8^-B9)Ro0>)6%gf_e zUrJiYU|{Xa<-n-Hz}j$bst1_9shO4EdU2GI$A-hH**`u#Sbq3<5Z?GIn-{_59l zhH3V7*FwDO7~;Njy|QO{P`ZABO9RJ&7c!j;f(lG74cBegs=d>c|ND8;suZSa{@cHF zPcJ&jqBFnl{sm*hr;9ibRJm7)G5)LcRAu@kXiz%w{W%UHfj0tylAJSkohVOd;p8am zSkc4cvWEY+awEgB>mFfD25&t!zUD6L&;VLsVCAmlz|z4W_@H$DnlE2jtzD*Y2rx>_ zRR&wm@nM&L*sotrvPxb+H9hA9r#IN2-=5Ok@a6t2w~&)8EZOf^SiFH!HHSP(1q=!& zem}oE_NDA5p$Y%~FhAz(>S37zbcn`csE-;nm?XmA7cVV6?Zoi?=k_gmksJwk4$jqH z8?DA<@X+I9dBJn9*I`zS;rkA>pSM3dyW#2SfYlFIJ@Y;ADb@6X#>1V$4W;u;SS*H&gc z$R%_D8fh_1EBr6tT``F>!REifnn|2LCTPuU;MYVAjP(nCF#6otKUL#f{l2)xz+`vs z;qs|nF8m3xbIgQ|bGLIbYz|(+AmXr-@j-4$`r2EIr!gJazu*4kR`>0`|opD zUU4jl-!IRg+jxlig?QiBc$N(}b8=V;{v-=9WdA){&uP+azxFh*FJr*<_(X;~U&Un){McJ^_xOs}`c@6EgBXCBF`=w$ zPIYzmy49hbG7hbW-iQRwzN*2>V6Hs`@T$WP<^67-P>VaiSprzTF?hQAxvX?O_E8v8`{u|_C6 z4YJF=%-9Wv@%lZ_`~LIZf9@amIp==Py=VEHL%+Nt`(6iZ0)R73kg5+JWB|B`(a}&h z3$!DTqu$z(g4#A@*OZAXJIWPJt+ygY;0#xCG&0PO!>+lRZ$>DvYOgC zVcS!TM1s!b=exA98JdEhOY7#=XTP30>e!z!2B!RCb+yB3j&X~I15%*dd>NKTAxhhQ zx{FGAH+rU3FDtfToWJL8rN55LJw=IXRL}9)$2Trv$#Yy7DB;}75CK^sgrrKN&k;U; z^Z}1nyt_Whvx_Cf+^lIwZ4vnmF3u)+i9sAxLG8AIKv2Q5$p(s^Dg4d}Kkzw^b9(w??L=rT7m1Ts=Ua(y@mpuQu z61-x!G8Pum=J6}TE}nTbY#;ZE3-0_#=UNzwHn|=BG*cvl+!)$h$}*K?!4b!{`IgoT zb7`|q4?#>CH{7(0|F1+2M}U3s+5E$XEA;?Mx?od*4f@ba*>BG?Ir)npHxV@c*Pf z+*erH{8)(PExnr(hrcan^D=@bNmxzF`r@~J$A$p!=I1H2p+Acrvqer)(oUm=u9|&s z(CEL_AJi8l7)J8^6jpS*L6x0UznEhbUh3^{m(Lw}*`~$sJ-(Z~@Pdu@Xp>YMJSQD{ z+0U>K``;NMz4wb-^P{}36kuWTGg$r?BVAm--LJRtuTy1r*pV_^;)qtgc=)NJvXW?X z^NbbS9-WRB+Kz~bD4*gGv$w6HW7u3Pj^kEcP6EWTw+N4^e zPy0Pmo0NH!eLr-x5eEzT6^{D$jAm4VIvuMq>V$g5h^cO?1k557@3YKyDNg!_?5=Kf z=mI~V^&t?5eK!{u5WljxxIUU~CQ&^xVK+21WRWJpvO3u?se;(qp|tp94&@XjOIekb zTb7l(jU@a1yx-l!!4X##Z%&9{XhthJ7+aJwU%J6T{1VaaRde85x$?_Z?IK%$H>?}+ zWNEdu(bnlhp%u~9veD|?uCoQ1-yfyYy|beJtJJbGLsmFG%Ns?-Kj)0}gN%IOBgLU~fcfP+(uyN5@9 z9Ck3Fgb^n)6|&+bgtik+Dy5pEE>=)EIJCATcElmsB+p7**Rl*;(o<+RN)#yg8WlxW zep2uwoCL;RJ}eXTzzi>p{&7DpB;QA}FB2ElP;qZ|9f|z?^@WoO^QOmHD!{?<{J z=N$+$3fP8B)wxKpV8AMP44=v!CYiO*w;_*qXK}wOAb~zcXAK`OpHgb#D2sJ!6w}kc zJ;j2?$%`oOwKDDKq=UliJt|ZirBh+N*#JHO!j$lmgBP6YWMv5XoX|0M#=V_l8ZFrS zAs{bNu>V#-z0J+ICzf8)Ay6rtSl7 z2>5hVgzc$b|`<3AOC)AMqBuPSC8>QKrVRpXExol zV-8h1T(MB?3s80i#ApE4l^P@8Quu3hG zx#*OBbFDawKN3mw37z4$DkO8kXAYa{p~WV7dp!AMgxsX@f7}BR>*l8BDc>425^D6{oE zEMyXQhAGn>WemEs?y$S6cC+edPBk3UY4UpO4BuPC0L1T|-CZjqyve>zw~x5xD^*Y9 z;%>Mo42HfV*FI;Wddsz%2oBFB-S~IM{EFMDaG_L`Dug>m6WkV=85)sNS<8Sag{4?Bj|Yo5I_Cnh+dDMjK^des(Tk? zy8e0l99lHc^?-gB{!v}@YYF6lMw<}@{L&49dgn?JhXJdi(E)oz^HrrmLJeIV7V_te zk>pd?s`zE;1(Rx-~Wk zF4%D*^7ex=C5#(0#Lwy>tl~j5`|ib|MQ1Q0?=(DrPizjN1oO96UXJ}F7F~e1ap-WhM5xUp z(=>{84^Hc6hx^p+Bsaj9TB5n=5}L63=0J+l>K?v+s^ftHS}o5ey{Y@X4P6ftt{Ug+AG|65=9+eo8KpvRl@WG5b5H3b>|W%kSaL2LU8mfK%iEL zAB@A~)9!u2YF`L1?CTkr>&Tou5f5dXN=Hr@lhaKuU1#g`H*@d;u?8{<2SFQ|YifWD z3jGK!3h}6s+zpjcxGnKbY55wL`!TMshe5{g#1++DPLkw_V$}MeowdC$(Em`)u+^Rm za99pya|rG2KGApAoDGhZS9RsT`05E>9Pyj8ahoJ~`dOHD2b8sJqDg%D&t++6lj3{v zn^}w=W)214K-6W47d!cLF`E_lOw0%FjY-O!t20zjlN;z^6Np`IVU$79r>x6MMWI-L z?;_6=JOrWi^7gcI)_ToDEn!~UFy<4hpv*-8?1|Rnf=o1oRJpc2T2fc!*0B&u=Fbg? z4PMJ?B#GZ|ixv2uTC{WhPmbil9}}Y`D@Y z!Cz?a2KfEtd<$zD*4X*S3P5Kx8HW|=*pq_L<mR3*GFxor^NaGbRby{<`XUQ>0t9?zU0|3idVr zdG?QG>JOF+yiXj^Jfusf4N`H;PUHYpkX_$TSgoEku|;t*iCJSyi9mQRa3$9nyO?=J ze!p3~h0i8(1HgPV&ZZfMsnP!SeB};hb=T*?WIAx~R7kFu>+Ac#3ZQoS`?(Ca^6M16 z$8wFsyDKU$ZTLJgf(|2IEXeaU8zw%In@!opQ{U|7m`3K4c7mq2L`7c7kiZ3NXWvml zFq{$Sgu8}gla0fY0Ls{lHu?M#QU8f|LcTUGtlYyhG_Gxd#2fx2(s#M5Ie!`Y9CL62 zGWz9?>jO@|EuCH)P}d;9|E+o4ixJNXgPxaGXHuKFaij$-I3c|{P8>3vYyYr#zdlLQ zVsIWm^YgsDKN1{!8Rgug!TH4D`R|#?rOc~Iv!OOMGX;EYvCq$xF=GM2z$pllzP~`@ z5oVE#2e=Pw5~*K8D1HBy3;=^{w?7DxT2I z$rL$DKJ6-8&Ul$$(RaB4Yk~H(ks-Q>2<9Y9TPF#p}#ru|LXi+dhR5j5Y4mIgjG^9@?yMcl0%{{1GW zPws}xjf}q@?$7_mmq;<;c=j1_GoeX$To2EVse=|;zvFuFV%ulj@1fJ&gIeg;gYp#g zk^8plco*LH>*BYTPgHuxUeiOzV9pXkThX5StC^rWUt?mISWD04i+;+td)-^h0PZ{L z-LX+QL}|X59wt=iqjWtNn*_Jtc9`)#4}&%jXdzWDhXg-5a%{htK`3ALL4v@oEFEPaQeow_Rliy(t2hRBn4$R)E_$ zQugxY8?&2(y8jvEC{XUb;yM@KmmJ<*UeMX1ft3|twUR7vCn+u&`p=&yyCjqGX}^}fN2|JAyRQc?uLHlR7CH>YnPV}*N2CogcOF+;SN2>XKN)Xfr|*`N zdCX<`w^%Me!R4~49PqvuJCIOqk9ieJeuNQM-|5xM^rz2@_8w zGOgnOn#qHkT#1(xnKedt)~DC^UgFH(=>Wm*aaI)8U}JUyFTCm|TmZ#t1PTZ;F3YS^ z;_TF1&G9!GKP|a6{!(>OGNTpj@*YchR_0HWzKORQo-@_Ls_J9U`s)9*8{_BDC_MF+ z+#Epqtijl+>3GHSaHE(*o2KT!9rSp#AmZDgj!TCgv6LPh*6W_CBZe!!ZRP`(ex}xo zqWKz}tbX{gsOiYp9!qVMf-d$JQB0z20Y9tjk225bK@T)S(kJxP0IR>LjJOrRzrEmV zt^H$r42(u(F!rLP&AoiDWw@$Oa}1ClXM0Ju%`?7MMes5;K;!Zn)8TURGt+Ra|=K=9Qn}wivVx&A& zpEt#4Dav+fmkZ){b=W+bo3xkB6lK> zLH??T6bnvNKNSQt+IBJ&Rf9UEbDH8C_QY<41O&fbo@Q;zf2j;S`N27>D;&{G! zfjh@()X9A7@IY4XiqXzyhcuFpT|A|O-TIvmRtN>_0wsl?B-HPw|EQ+-x@1gdr)8EE z&VVZ5dT+*q@rv5s2H?Nh8#iSEM13U&Z#*!Hj0%)kEH@a9zj|tE`)Qruyo)%*f8-_Y z1F66Q8M#IX z+!O>2fPU}EjsL(()}l{0-T1YCy`~uGX7vA+wg2561am|3C_?sC z*(2lU$1hza@ApmD9dz^^L2Lyqsgu$TDmi+nv^q7Q>!nGfc^tZ6IhKON9vnJbj2wMk z`G%2}nnhT%K=|A9vz>C0W|T}dfU-J}C@JvvvRh~3%xtu%|^v5J(57kVL* z2rb4DY(TMp)$(?Y6mc@upAkDt&sUkNxeE1a&;D9_@+hX270-=~PEg>?bLcChpc$zX zWTWY#e@6949^@S!jT2|854v{Oj!2?trHPr*$p8z`KN{<^iyk`m<%nW|C+snPh}l6iRFT4yj$Yv!>50Vz*cvN{ zzTeKL)&l1nt1GRBHnUVke%d<=h--KmeQz#;u>Z~69vtd9dXl>;S=KmGa zBRo-6GBK3x8bm|n40Wl)9@~QKl{q+lL7xWy*}d$ZQ&oX;{kOu3sjpGLoM`E*7aR0%XiRJ2v!^U#*QI6{a%A*G7aJOnkAzEyomK~3yh6-Z7Sl`5blwJ8~ck!%$c zJ9#j!jh$kH4UrXBc5Mf2d|__qKBw#V-+PabhZ&D&&J3NL`G0=k?|nOG?-^;<`d{`w z{}Y`%cdlg}dhWUB?8zseOt$7u=h?Y)XRO)AlC7zez^#%5uoQIdUwST^4Q11Y z&n0`zF8u1+O+l{Go+R3j14}^{w*aDva^I%kNcNhYJAZ#=A~{TzB+}!+QqaW-AbV43 zPXcGoUJ8j}x+J0Fz*5k)3E+d%7bgXI);@pV-N{k2(`P;k``SzUabPLv>dx-T4=z|H z%7l_8f(JgoHaR*~lDPRe(CxZ@wCmmX|JVEUaS}+&7r(GBIeK%FnCdvt&AK)LJpACs zWX7Lz?wtJmvRtJSPhso0StN9@%H|1>!gE9P=m$mYVbn9ExsSxUXxuxdl4 z9+ovP6<@#nj@jTt4~N%G(2r5@lJmTf>+zx;B`^B*Yi8qBvqnWHHS<*~n;qO^w&Gup z`hUg^g{)a#B@ebaxSouo4p3g^? z^JvTGGjS=zOR3k#tzPq@rI&_BTfKfGmw)|j=;@i;Ad?3a99OR4&$ z%VY7f;z3{0y61z`hue?Z`Js5d=$G!%xpKblrR2X-G5Od))q}n4!Cr0nIaK@{)$#b4 zY;BMLu=s=)fNJngD1ltMbjePgIu*8+07|8j4Gau~Wq*Ia_4W0IV^S`cZDeG`Mt?^~ zCzeVAXV0FsgI{{WuKgl@UB+wKl1E#QM_Z4UJ$Wk?^I^T&9JjJpuhmL3EGr&$WsksW zt!cyO&GvrjVLSe__&iw;(*9*;eO~$pJaF&uNLH;~@+{!32!FG+MyobDY&JS#Hheu^ ze&BiWi*FpYLrEf$<=$}U^|DN*lz*|lg8zP=P1G70t5s~c;^*<;AM-NgNk!`)d`tqs z;#{*NaBucn(#{~5eh;lb)Xh_IZBH$eRQzVzBZ=cmx825v;MaqK_*P}gKqvTt?$I9b?PWrHz!UsHcW58rn;g`i8vIKGfBpLP3=9HYNC8gm z4wGRS7JtD1uXJLMwfTJhyr%4)N&E#J8H*x)Nyp9WwOVc5%RTFrUA^1EAeQ>;ItTNnow7 zk_3Q7F7m)09~&EszWUc+318EtVAmIV=nFgaWq%%N&`TQl+NainzV=J+QSC2(@@Ic+ zdtTpbJHGcHN&-wd4lHufz`#K3qst%JUq1a+8~pxj-)+Sd*vaa|y0-$%6N8z)nM>cH zr`(X{hh@w9bNi3K`Soqz{wLe@;%*xn8oH4=04z!w)#yEixEWumlp6!fE6uy^tTxx) zRev8}v9i(Hux`AyX+vaRxUXRA?v8BJZ$@FcdX0tkjecz7`pE9_eJfV12~7+ z#V@n~Qi@yk?{nU#R}hbkh1j-n4|F$u!LRS*mneLVzP|n5U+7CEh;l=Ne#uwjCNv1BaRRMt@Nn`u=VI^Py;_h2fCUt~ z0HdR$VM77l@ZfEFkSp+4_UjAv<0KGkg|EX_cc5LRTDNkoy(Q6k++MhF!M1JNrhiqE z0I)zp3!tyBFWHPWTV8{E*oA(-2lH6nd;Urk)%bWC-x+TkX#cQx6^hwbxJ@Wiv;g#= zk=`|J(eYxj*eaDut=`^V-(@y1FhCLj7Lcm;mIeX8{r6k!hu_`t{Jk5a5ZFVNaqI8V z=$`-YrRGJoe<7FmL{RsxLL8I&w|^&J2+3ma(f7Xb58wKZeQ)avI+QjW^bpbbYp=Z) zUA%ZPB#f(9uZCv`RRpk=x)N&-VeL-y2DPib@FoB%o(I{ON^MxzmS zsJ2&czONY9@EYK2MJ>yF!0UAi^t>kmwFcBR&}%C7T6k}{T)ruIQ?*(x+JCicm%a7Y zTXyKsAv<&Cj2%CI-1hI^Z|}bQt{pyn*xr8o?dFLSCmP3&9jj}fitn?72M^kjBS(@m z0hmvr1#sk-2W`u<|7fqi^!oGnZt!Nk>h+|q9jUZJGAI`ER;ks)U|>oEhV?LBpjtj> zJN6&?#&@3CYA-(j108O!t$#nA6=v|*V~>TdiIU2W9XqtE{d@rCL1+Oe&{nQo>3#T2 z6mIW%s44I>t;mBv3N?ML-UzjQ-0u(XwMKJ1yiT_WYqhuqF%1RpY)bf?@t~fl)>qhN+iHAKu#Z;N9f+&-JNmOWTG4uv73PV8|9|C|U)CzY4=j+7 z05m8!GBV;p9YuwFJ{%}}h2Hci*I=NMf&xG78szg)NDSH@8f#iX$s&nUC6f6-@B<4k zB!E(>WO|G@<4piH^$Yo&m69M=7eIBpA~7BG)7=1d6*L~u*Q4$DVIe&Pq%se}<>FNU z3ne4~-G)m)?;l3`J%0%(`V{28D~?93cqY(3eRwEz0hAe35}F%eY-}vq0%+m=4W z17Pt}z_(6*_)eJMLr?N45s21x3r^d5Xh$FLNuTtaOcRH!>wn)A)-|ud6t@8ZEJ6y> zyS@2;{?EVmSO{1JvuG4v0iRC!m2Rg=KrI3t(+on(moK+ZKKUdhj8|WJU9$mcUcigt zg#Z?J{<^!BA_;33pb405Hn1wW8K9gC2y(=;3*VwEN3*F8H zq-u?%Ka*M>>VJkzH4*92BggD7zWlXajYi|k$u0o5K?xwt3Ov(?byU(;KzoazeO({g zdG^_7)dg7Rn-{{)Hc9{UR9(js5ncf8I#~0A?x73cPLGw&=u(6B9G}sDI{FV5K#?f=^3L`r-Rp$$((^ z_^tU}WyY1VzuQoV1_=4BK5`sOEu6s?b8ruVTnpuIL zc;YKx*MCGFJ9qBXt|=3Mx&SY|{%^K_-+_6Vh4`JH9}nju0RXcX<^)tT--D;)S%K9g zSB-uvntLFffMmXAAx^sl0A?qQ`m2xawQgvAcQPxmR@?jY(@Ccw>-2hhd|C860GPed z0=Rztx@zx8ailCT*I9ved^W+@>GhJ$Fn$1F_J6{hfJy@1bXV+!VC-a8U=7sWN?QA; zI=vo%xeHwY1)U2mfKFxw4#7L|+NrfqK-%f`Wb!is0B&Ds0Zb0sxy}kKGqnJ8t;s># z$t=XWMX6hs0A_FEi$OeaC$fM7ZKN7Uof_n&Y-F|ZD9jS9S%JO64uPn^)vMOrQSj~Y zmVcV&>1PF|qxUIj+s*ZQ>42jKF#*h8=zObI_Cyd8Kqs>T>o%ZnC*Df>VWaeQoz6lm zdIAx^?1co7wgMDjeL3xl#|2d1ULW(mz3=HMAPpI@zj>7*Yup08Pmb=QG00AOxzN&pHt)xL9`6E8-=S8s>%w<+!e|reew$pryS_hgrSj$eYr&)-VyqJm{ zm>UIP>zQYs2{Z6`)4Z0;c|$wIr55cnk%Cget3JGHU2Us2U$tsg*j6x}K7HB-2M1gJ znosou{QQF_E*#tZ_Ti)U;6uL~nt$&~1fq4_*VneX2&&nqd#FfF{&W^%O)kQG0KnWR z(!;F4k3ar+q~KFfYpDPf1*2%RU4gG-YI-YJ74T}x#{-CQ?Y(>VZp{*Ox4-4X@WwVu z0LRZC-K;tMM9D-`e(8LAujpL5MW|X`*GsQ2X;Mg+y1r*7JMiXDNdUkcq&`jX&tz6$ zC4d(O|7EjkY)J?2CQmu8I|T~t$>Rz78I&w^+pm2pawU=05D4veelo7ZD)}= t`mBE+lVKTflW-YflW-X&8K6^U{|D(Y&HW<+OuqmC002ovPDHLkV1hsR(TV^7 From 4dc3629f5dcd8894047ca78cafbad12edd227fe4 Mon Sep 17 00:00:00 2001 From: simibubi <31564874+simibubi@users.noreply.github.com> Date: Thu, 16 Sep 2021 20:14:38 +0200 Subject: [PATCH 54/79] Packing Up, Part II - Toolboxes keep nbt on pickup - Toolbox radial menu supports mouse wheel - Added Dispose-all buttons - Synced slots detach when moving stacks back into the toolbox - Fixed missing data on client on login --- src/generated/resources/.cache/cache | 26 ++-- .../resources/assets/create/lang/en_us.json | 2 + .../assets/create/lang/unfinished/de_de.json | 4 +- .../assets/create/lang/unfinished/es_es.json | 4 +- .../assets/create/lang/unfinished/fr_fr.json | 4 +- .../assets/create/lang/unfinished/it_it.json | 4 +- .../assets/create/lang/unfinished/ja_jp.json | 4 +- .../assets/create/lang/unfinished/ko_kr.json | 4 +- .../assets/create/lang/unfinished/nl_nl.json | 4 +- .../assets/create/lang/unfinished/pl_pl.json | 4 +- .../assets/create/lang/unfinished/pt_br.json | 4 +- .../assets/create/lang/unfinished/ru_ru.json | 4 +- .../assets/create/lang/unfinished/zh_cn.json | 4 +- .../assets/create/lang/unfinished/zh_tw.json | 4 +- .../toolbox/RadialToolboxMenu.java | 130 ++++++++++++++---- .../curiosities/toolbox/ToolboxBlock.java | 34 ++++- .../curiosities/toolbox/ToolboxContainer.java | 6 +- .../toolbox/ToolboxDisposeAllPacket.java | 81 +++++++++++ .../toolbox/ToolboxEquipPacket.java | 28 ++-- .../curiosities/toolbox/ToolboxHandler.java | 82 ++++++++++- .../toolbox/ToolboxHandlerClient.java | 15 +- .../curiosities/toolbox/ToolboxInventory.java | 68 +++++++-- .../curiosities/toolbox/ToolboxScreen.java | 13 +- .../toolbox/ToolboxTileEntity.java | 113 ++++++++++++--- .../simibubi/create/events/CommonEvents.java | 13 +- .../foundation/config/CCuriosities.java | 3 + .../create/foundation/gui/AllIcons.java | 1 + .../foundation/networking/AllPackets.java | 2 + .../assets/create/lang/default/messages.json | 2 + .../assets/create/textures/gui/icons.png | Bin 4737 -> 4865 bytes 30 files changed, 554 insertions(+), 113 deletions(-) create mode 100644 src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxDisposeAllPacket.java diff --git a/src/generated/resources/.cache/cache b/src/generated/resources/.cache/cache index 9c30843cb..68fbd2312 100644 --- a/src/generated/resources/.cache/cache +++ b/src/generated/resources/.cache/cache @@ -427,19 +427,19 @@ a3a11524cd3515fc01d905767b4b7ea782adaf03 assets/create/blockstates/yellow_seat.j 7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json 337227971382d97fbaa69170e0b6bcc621bdc494 assets/create/lang/en_ud.json -307e88153d5288781e906e566f73ccd59fbcd945 assets/create/lang/en_us.json -5268c9117961dabecdae27b3190d02a8c0ea1077 assets/create/lang/unfinished/de_de.json -2e2002aefd045f492b7232884bd63c7a68d41480 assets/create/lang/unfinished/es_es.json -78836cc1527a95e7e40bc7f50faa95f8cdf5cd9d assets/create/lang/unfinished/fr_fr.json -b83a58ff24f2eca59c628c9a49e286d2feeece35 assets/create/lang/unfinished/it_it.json -5e3e878fe3fd58ba7911877609bf4f0be5a7c71d assets/create/lang/unfinished/ja_jp.json -ff6560eef8744197ab55334392df0a91898d80b2 assets/create/lang/unfinished/ko_kr.json -d0637cc0fa640b328dcdbaf74ae6967a7e15b980 assets/create/lang/unfinished/nl_nl.json -a23c910164b9d295f7c1f5a5e4d9a08094f1f00c assets/create/lang/unfinished/pl_pl.json -bb56417e9607b45350f329f865d2caa7038ebcec assets/create/lang/unfinished/pt_br.json -b643778faf6706b85ad567066de7176272df73d9 assets/create/lang/unfinished/ru_ru.json -45f4a765689a28da8fa267c2845fcf59135c6034 assets/create/lang/unfinished/zh_cn.json -3ac73d1173b450a4fa4eb5622b903cf4b52fbd0b assets/create/lang/unfinished/zh_tw.json +4da832d10fb5bacf10c564bc4f828cdc6592d56c assets/create/lang/en_us.json +31064dd15c813975de6dbe771a94b2fff87d7c84 assets/create/lang/unfinished/de_de.json +785119499208f5a35c4f77a1d189ac78394a133a assets/create/lang/unfinished/es_es.json +7fb3d9f560b08e7d7e4b0e51f7f789ac2eeb3af8 assets/create/lang/unfinished/fr_fr.json +e418df14fbcd15e4b87024dbe4bda97ef1544f47 assets/create/lang/unfinished/it_it.json +95d0baec2d79b914b3aecbfdc6dde970722c552c assets/create/lang/unfinished/ja_jp.json +4fa09f736a742db2d843b0880edc5d607f28d80e assets/create/lang/unfinished/ko_kr.json +757ac709807bdb1322da17f27e0853de552638d1 assets/create/lang/unfinished/nl_nl.json +9b5bc245e4795d86eb27fa35670cd4f261c07576 assets/create/lang/unfinished/pl_pl.json +aaa1e873003b446858fc8bae839db4d0b293472e assets/create/lang/unfinished/pt_br.json +9745c2d6a2e8fc50648399785eb10cc8b125bd1d assets/create/lang/unfinished/ru_ru.json +b04454180b5b4af323009e33c3ba5b163b4e63c1 assets/create/lang/unfinished/zh_cn.json +ce4759ba4aa4ec9e0c24242796ac04b43f4b9a04 assets/create/lang/unfinished/zh_tw.json 487a511a01b2a4531fb672f917922312db78f958 assets/create/models/block/acacia_window.json b48060cba1a382f373a05bf0039054053eccf076 assets/create/models/block/acacia_window_pane_noside.json 3066db1bf03cffa1a9c7fbacf47ae586632f4eb3 assets/create/models/block/acacia_window_pane_noside_alt.json diff --git a/src/generated/resources/assets/create/lang/en_us.json b/src/generated/resources/assets/create/lang/en_us.json index 7b6b6dca1..627f017ce 100644 --- a/src/generated/resources/assets/create/lang/en_us.json +++ b/src/generated/resources/assets/create/lang/en_us.json @@ -795,6 +795,8 @@ "create.toolbox.unequip": "Unequip: %1$s", "create.toolbox.outOfRange": "Toolbox of held item not in Range", "create.toolbox.detach": "Stop tracking and keep item", + "create.toolbox.depositAll": "Return items to nearby Toolboxes", + "create.toolbox.depositBox": "Return items to Toolbox", "create.gui.symmetryWand.mirrorType": "Mirror", "create.gui.symmetryWand.orientation": "Orientation", diff --git a/src/generated/resources/assets/create/lang/unfinished/de_de.json b/src/generated/resources/assets/create/lang/unfinished/de_de.json index 5f096580d..64ff7100e 100644 --- a/src/generated/resources/assets/create/lang/unfinished/de_de.json +++ b/src/generated/resources/assets/create/lang/unfinished/de_de.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1138", + "_": "Missing Localizations: 1140", "_": "->------------------------] Game Elements [------------------------<-", @@ -796,6 +796,8 @@ "create.toolbox.unequip": "UNLOCALIZED: Unequip: %1$s", "create.toolbox.outOfRange": "UNLOCALIZED: Toolbox of held item not in Range", "create.toolbox.detach": "UNLOCALIZED: Stop tracking and keep item", + "create.toolbox.depositAll": "UNLOCALIZED: Return items to nearby Toolboxes", + "create.toolbox.depositBox": "UNLOCALIZED: Return items to Toolbox", "create.gui.symmetryWand.mirrorType": "Spiegeln", "create.gui.symmetryWand.orientation": "Orientierung", diff --git a/src/generated/resources/assets/create/lang/unfinished/es_es.json b/src/generated/resources/assets/create/lang/unfinished/es_es.json index 44d35f9f9..827e5c1ba 100644 --- a/src/generated/resources/assets/create/lang/unfinished/es_es.json +++ b/src/generated/resources/assets/create/lang/unfinished/es_es.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 4", + "_": "Missing Localizations: 6", "_": "->------------------------] Game Elements [------------------------<-", @@ -796,6 +796,8 @@ "create.toolbox.unequip": "UNLOCALIZED: Unequip: %1$s", "create.toolbox.outOfRange": "UNLOCALIZED: Toolbox of held item not in Range", "create.toolbox.detach": "UNLOCALIZED: Stop tracking and keep item", + "create.toolbox.depositAll": "UNLOCALIZED: Return items to nearby Toolboxes", + "create.toolbox.depositBox": "UNLOCALIZED: Return items to Toolbox", "create.gui.symmetryWand.mirrorType": "Espejado", "create.gui.symmetryWand.orientation": "Orientación", diff --git a/src/generated/resources/assets/create/lang/unfinished/fr_fr.json b/src/generated/resources/assets/create/lang/unfinished/fr_fr.json index 78e9c4a2a..2b6bcbc93 100644 --- a/src/generated/resources/assets/create/lang/unfinished/fr_fr.json +++ b/src/generated/resources/assets/create/lang/unfinished/fr_fr.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1390", + "_": "Missing Localizations: 1392", "_": "->------------------------] Game Elements [------------------------<-", @@ -796,6 +796,8 @@ "create.toolbox.unequip": "UNLOCALIZED: Unequip: %1$s", "create.toolbox.outOfRange": "UNLOCALIZED: Toolbox of held item not in Range", "create.toolbox.detach": "UNLOCALIZED: Stop tracking and keep item", + "create.toolbox.depositAll": "UNLOCALIZED: Return items to nearby Toolboxes", + "create.toolbox.depositBox": "UNLOCALIZED: Return items to Toolbox", "create.gui.symmetryWand.mirrorType": "Mirroir", "create.gui.symmetryWand.orientation": "Orientation", diff --git a/src/generated/resources/assets/create/lang/unfinished/it_it.json b/src/generated/resources/assets/create/lang/unfinished/it_it.json index e8def88f1..dbd9a681f 100644 --- a/src/generated/resources/assets/create/lang/unfinished/it_it.json +++ b/src/generated/resources/assets/create/lang/unfinished/it_it.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 918", + "_": "Missing Localizations: 920", "_": "->------------------------] Game Elements [------------------------<-", @@ -796,6 +796,8 @@ "create.toolbox.unequip": "UNLOCALIZED: Unequip: %1$s", "create.toolbox.outOfRange": "UNLOCALIZED: Toolbox of held item not in Range", "create.toolbox.detach": "UNLOCALIZED: Stop tracking and keep item", + "create.toolbox.depositAll": "UNLOCALIZED: Return items to nearby Toolboxes", + "create.toolbox.depositBox": "UNLOCALIZED: Return items to Toolbox", "create.gui.symmetryWand.mirrorType": "Specchio", "create.gui.symmetryWand.orientation": "Orientamento", diff --git a/src/generated/resources/assets/create/lang/unfinished/ja_jp.json b/src/generated/resources/assets/create/lang/unfinished/ja_jp.json index 5c6496fab..2ae28fc30 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ja_jp.json +++ b/src/generated/resources/assets/create/lang/unfinished/ja_jp.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 13", + "_": "Missing Localizations: 15", "_": "->------------------------] Game Elements [------------------------<-", @@ -796,6 +796,8 @@ "create.toolbox.unequip": "UNLOCALIZED: Unequip: %1$s", "create.toolbox.outOfRange": "UNLOCALIZED: Toolbox of held item not in Range", "create.toolbox.detach": "UNLOCALIZED: Stop tracking and keep item", + "create.toolbox.depositAll": "UNLOCALIZED: Return items to nearby Toolboxes", + "create.toolbox.depositBox": "UNLOCALIZED: Return items to Toolbox", "create.gui.symmetryWand.mirrorType": "ミラーの種類", "create.gui.symmetryWand.orientation": "方向", diff --git a/src/generated/resources/assets/create/lang/unfinished/ko_kr.json b/src/generated/resources/assets/create/lang/unfinished/ko_kr.json index 987018999..363d949ec 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ko_kr.json +++ b/src/generated/resources/assets/create/lang/unfinished/ko_kr.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 28", + "_": "Missing Localizations: 30", "_": "->------------------------] Game Elements [------------------------<-", @@ -796,6 +796,8 @@ "create.toolbox.unequip": "UNLOCALIZED: Unequip: %1$s", "create.toolbox.outOfRange": "UNLOCALIZED: Toolbox of held item not in Range", "create.toolbox.detach": "UNLOCALIZED: Stop tracking and keep item", + "create.toolbox.depositAll": "UNLOCALIZED: Return items to nearby Toolboxes", + "create.toolbox.depositBox": "UNLOCALIZED: Return items to Toolbox", "create.gui.symmetryWand.mirrorType": "거울의 형태", "create.gui.symmetryWand.orientation": "거울의 방향", diff --git a/src/generated/resources/assets/create/lang/unfinished/nl_nl.json b/src/generated/resources/assets/create/lang/unfinished/nl_nl.json index 39010143c..fd3a9ee6f 100644 --- a/src/generated/resources/assets/create/lang/unfinished/nl_nl.json +++ b/src/generated/resources/assets/create/lang/unfinished/nl_nl.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1770", + "_": "Missing Localizations: 1772", "_": "->------------------------] Game Elements [------------------------<-", @@ -796,6 +796,8 @@ "create.toolbox.unequip": "UNLOCALIZED: Unequip: %1$s", "create.toolbox.outOfRange": "UNLOCALIZED: Toolbox of held item not in Range", "create.toolbox.detach": "UNLOCALIZED: Stop tracking and keep item", + "create.toolbox.depositAll": "UNLOCALIZED: Return items to nearby Toolboxes", + "create.toolbox.depositBox": "UNLOCALIZED: Return items to Toolbox", "create.gui.symmetryWand.mirrorType": "Spiegelen", "create.gui.symmetryWand.orientation": "Orientatie", diff --git a/src/generated/resources/assets/create/lang/unfinished/pl_pl.json b/src/generated/resources/assets/create/lang/unfinished/pl_pl.json index 45022fd4f..06ba15521 100644 --- a/src/generated/resources/assets/create/lang/unfinished/pl_pl.json +++ b/src/generated/resources/assets/create/lang/unfinished/pl_pl.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 260", + "_": "Missing Localizations: 262", "_": "->------------------------] Game Elements [------------------------<-", @@ -796,6 +796,8 @@ "create.toolbox.unequip": "UNLOCALIZED: Unequip: %1$s", "create.toolbox.outOfRange": "UNLOCALIZED: Toolbox of held item not in Range", "create.toolbox.detach": "UNLOCALIZED: Stop tracking and keep item", + "create.toolbox.depositAll": "UNLOCALIZED: Return items to nearby Toolboxes", + "create.toolbox.depositBox": "UNLOCALIZED: Return items to Toolbox", "create.gui.symmetryWand.mirrorType": "Odbicie lustrzane", "create.gui.symmetryWand.orientation": "Orientacja", diff --git a/src/generated/resources/assets/create/lang/unfinished/pt_br.json b/src/generated/resources/assets/create/lang/unfinished/pt_br.json index 8538ed5fa..09cbfe400 100644 --- a/src/generated/resources/assets/create/lang/unfinished/pt_br.json +++ b/src/generated/resources/assets/create/lang/unfinished/pt_br.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1811", + "_": "Missing Localizations: 1813", "_": "->------------------------] Game Elements [------------------------<-", @@ -796,6 +796,8 @@ "create.toolbox.unequip": "UNLOCALIZED: Unequip: %1$s", "create.toolbox.outOfRange": "UNLOCALIZED: Toolbox of held item not in Range", "create.toolbox.detach": "UNLOCALIZED: Stop tracking and keep item", + "create.toolbox.depositAll": "UNLOCALIZED: Return items to nearby Toolboxes", + "create.toolbox.depositBox": "UNLOCALIZED: Return items to Toolbox", "create.gui.symmetryWand.mirrorType": "Espelhar", "create.gui.symmetryWand.orientation": "Orientação", diff --git a/src/generated/resources/assets/create/lang/unfinished/ru_ru.json b/src/generated/resources/assets/create/lang/unfinished/ru_ru.json index 8374dffca..ca208f43b 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ru_ru.json +++ b/src/generated/resources/assets/create/lang/unfinished/ru_ru.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 9", + "_": "Missing Localizations: 11", "_": "->------------------------] Game Elements [------------------------<-", @@ -796,6 +796,8 @@ "create.toolbox.unequip": "UNLOCALIZED: Unequip: %1$s", "create.toolbox.outOfRange": "UNLOCALIZED: Toolbox of held item not in Range", "create.toolbox.detach": "UNLOCALIZED: Stop tracking and keep item", + "create.toolbox.depositAll": "UNLOCALIZED: Return items to nearby Toolboxes", + "create.toolbox.depositBox": "UNLOCALIZED: Return items to Toolbox", "create.gui.symmetryWand.mirrorType": "Зеркало", "create.gui.symmetryWand.orientation": "Ориентация", diff --git a/src/generated/resources/assets/create/lang/unfinished/zh_cn.json b/src/generated/resources/assets/create/lang/unfinished/zh_cn.json index 318b583d9..55ef615ae 100644 --- a/src/generated/resources/assets/create/lang/unfinished/zh_cn.json +++ b/src/generated/resources/assets/create/lang/unfinished/zh_cn.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 8", + "_": "Missing Localizations: 10", "_": "->------------------------] Game Elements [------------------------<-", @@ -796,6 +796,8 @@ "create.toolbox.unequip": "UNLOCALIZED: Unequip: %1$s", "create.toolbox.outOfRange": "UNLOCALIZED: Toolbox of held item not in Range", "create.toolbox.detach": "UNLOCALIZED: Stop tracking and keep item", + "create.toolbox.depositAll": "UNLOCALIZED: Return items to nearby Toolboxes", + "create.toolbox.depositBox": "UNLOCALIZED: Return items to Toolbox", "create.gui.symmetryWand.mirrorType": "镜子类型", "create.gui.symmetryWand.orientation": "方向", diff --git a/src/generated/resources/assets/create/lang/unfinished/zh_tw.json b/src/generated/resources/assets/create/lang/unfinished/zh_tw.json index 644d74902..508e4d3b8 100644 --- a/src/generated/resources/assets/create/lang/unfinished/zh_tw.json +++ b/src/generated/resources/assets/create/lang/unfinished/zh_tw.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 23", + "_": "Missing Localizations: 25", "_": "->------------------------] Game Elements [------------------------<-", @@ -796,6 +796,8 @@ "create.toolbox.unequip": "UNLOCALIZED: Unequip: %1$s", "create.toolbox.outOfRange": "UNLOCALIZED: Toolbox of held item not in Range", "create.toolbox.detach": "UNLOCALIZED: Stop tracking and keep item", + "create.toolbox.depositAll": "UNLOCALIZED: Return items to nearby Toolboxes", + "create.toolbox.depositBox": "UNLOCALIZED: Return items to Toolbox", "create.gui.symmetryWand.mirrorType": "鏡子類型", "create.gui.symmetryWand.orientation": "方向", diff --git a/src/main/java/com/simibubi/create/content/curiosities/toolbox/RadialToolboxMenu.java b/src/main/java/com/simibubi/create/content/curiosities/toolbox/RadialToolboxMenu.java index d0156fbd7..4a878883d 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/toolbox/RadialToolboxMenu.java +++ b/src/main/java/com/simibubi/create/content/curiosities/toolbox/RadialToolboxMenu.java @@ -33,10 +33,13 @@ public class RadialToolboxMenu extends AbstractSimiScreen { private State state; private int ticksOpen; private int hoveredSlot; - + private boolean scrollMode; + private int scrollSlot = 0; private List toolboxes; private ToolboxTileEntity selectedBox; - final int UNEQUIP = -5; + + private static final int DEPOSIT = -7; + private static final int UNEQUIP = -5; public RadialToolboxMenu(List toolboxes, State state) { this.toolboxes = toolboxes; @@ -47,6 +50,10 @@ public class RadialToolboxMenu extends AbstractSimiScreen { selectedBox = toolboxes.get(0); } + public void prevSlot(int slot) { + scrollSlot = slot; + } + @Override protected void renderWindow(MatrixStack ms, int mouseX, int mouseY, float partialTicks) { float fade = MathHelper.clamp((ticksOpen + AnimationTickHolder.getPartialTicks()) / 10f, 1 / 512f, 1); @@ -57,11 +64,13 @@ public class RadialToolboxMenu extends AbstractSimiScreen { float hoveredY = mouseY - window.getGuiScaledHeight() / 2; float distance = hoveredX * hoveredX + hoveredY * hoveredY; - if (distance > 25 && distance < 20000) + if (distance > 25 && distance < 10000) hoveredSlot = (MathHelper.floor((AngleHelper.deg(MathHelper.atan2(hoveredY, hoveredX)) + 360 + 180 - 22.5f)) % 360) / 45; boolean renderCenterSlot = state == State.SELECT_ITEM_UNEQUIP; + if (scrollMode && distance > 150) + scrollMode = false; if (renderCenterSlot && distance <= 150) hoveredSlot = UNEQUIP; @@ -86,7 +95,7 @@ public class RadialToolboxMenu extends AbstractSimiScreen { ms.translate(-0.5, 0.5, 0); AllIcons.I_DISABLE.draw(ms, this, -9, -9); ms.translate(0.5, -0.5, 0); - if (hoveredSlot == UNEQUIP) { + if (!scrollMode && hoveredSlot == UNEQUIP) { AllGuiTextures.TOOLBELT_SLOT_HIGHLIGHT.draw(ms, this, -13, -13); tip = Lang.translate("toolbox.detach") .withStyle(TextFormatting.GOLD); @@ -94,6 +103,23 @@ public class RadialToolboxMenu extends AbstractSimiScreen { ms.popPose(); } else { + + if (hoveredX > 60 && hoveredX < 100 && hoveredY > -20 && hoveredY < 20) + hoveredSlot = DEPOSIT; + + ms.pushPose(); + ms.translate(80 + (-5 * (1 - fade) * (1 - fade)), 0, 0); + AllGuiTextures.TOOLBELT_SLOT.draw(ms, this, -12, -12); + ms.translate(-0.5, 0.5, 0); + AllIcons.I_TOOLBOX.draw(ms, this, -9, -9); + ms.translate(0.5, -0.5, 0); + if (!scrollMode && hoveredSlot == DEPOSIT) { + AllGuiTextures.TOOLBELT_SLOT_HIGHLIGHT.draw(ms, this, -13, -13); + tip = Lang.translate(state == State.SELECT_BOX ? "toolbox.depositAll" : "toolbox.depositBox") + .withStyle(TextFormatting.GOLD); + } + ms.popPose(); + for (int slot = 0; slot < 8; slot++) { ms.pushPose(); MatrixTransformStack.of(ms) @@ -116,7 +142,7 @@ public class RadialToolboxMenu extends AbstractSimiScreen { .at(3, 3) .render(ms); - if (slot == hoveredSlot && !empty) { + if (slot == (scrollMode ? scrollSlot : hoveredSlot) && !empty) { AllGuiTextures.TOOLBELT_SLOT_HIGHLIGHT.draw(ms, this, -1, -1); tip = stackInSlot.getHoverName(); } @@ -131,7 +157,7 @@ public class RadialToolboxMenu extends AbstractSimiScreen { .at(3, 3) .render(ms); - if (slot == hoveredSlot) { + if (slot == (scrollMode ? scrollSlot : hoveredSlot)) { AllGuiTextures.TOOLBELT_SLOT_HIGHLIGHT.draw(ms, this, -1, -1); tip = toolboxes.get(slot) .getDisplayName(); @@ -147,8 +173,8 @@ public class RadialToolboxMenu extends AbstractSimiScreen { if (renderCenterSlot) { ms.pushPose(); AllGuiTextures.TOOLBELT_SLOT.draw(ms, this, -12, -12); - AllIcons.I_TRASH.draw(ms, this, -9, -9); - if (UNEQUIP == hoveredSlot) { + (scrollMode ? AllIcons.I_REFRESH : AllIcons.I_FLIP).draw(ms, this, -9, -9); + if (!scrollMode && UNEQUIP == hoveredSlot) { AllGuiTextures.TOOLBELT_SLOT_HIGHLIGHT.draw(ms, this, -13, -13); tip = Lang.translate("toolbox.unequip", minecraft.player.getMainHandItem() .getHoverName()) @@ -172,7 +198,6 @@ public class RadialToolboxMenu extends AbstractSimiScreen { int k1 = 16777215; int k = i1 << 24 & -16777216; int l = font.width(tip); -// this.drawBackdrop(ms, font, -4, l, 16777215 | k); font.draw(ms, tip, (float) (-l / 2), -4.0F, k1 | k); RenderSystem.disableBlend(); ms.popPose(); @@ -197,46 +222,103 @@ public class RadialToolboxMenu extends AbstractSimiScreen { public void removed() { super.removed(); + int selected = (scrollMode ? scrollSlot : hoveredSlot); + + if (selected == DEPOSIT) { + if (state == State.DETACH) + return; + else if (state == State.SELECT_BOX) + toolboxes.forEach(te -> AllPackets.channel.sendToServer(new ToolboxDisposeAllPacket(te.getBlockPos()))); + else + AllPackets.channel.sendToServer(new ToolboxDisposeAllPacket(selectedBox.getBlockPos())); + return; + } + if (state == State.SELECT_BOX) return; if (state == State.DETACH) { - if (hoveredSlot == UNEQUIP) + if (selected == UNEQUIP) AllPackets.channel.sendToServer( - new ToolboxEquipPacket(null, hoveredSlot, Minecraft.getInstance().player.inventory.selected)); + new ToolboxEquipPacket(null, selected, Minecraft.getInstance().player.inventory.selected)); return; } - if (hoveredSlot == UNEQUIP) - AllPackets.channel.sendToServer(new ToolboxEquipPacket(selectedBox.getBlockPos(), hoveredSlot, + if (selected == UNEQUIP) + AllPackets.channel.sendToServer(new ToolboxEquipPacket(selectedBox.getBlockPos(), selected, Minecraft.getInstance().player.inventory.selected)); - if (hoveredSlot < 0) + if (selected < 0) return; ToolboxInventory inv = selectedBox.inventory; - ItemStack stackInSlot = inv.filters.get(hoveredSlot); + ItemStack stackInSlot = inv.filters.get(selected); if (stackInSlot.isEmpty()) return; - if (inv.getStackInSlot(hoveredSlot * ToolboxInventory.STACKS_PER_COMPARTMENT) + if (inv.getStackInSlot(selected * ToolboxInventory.STACKS_PER_COMPARTMENT) .isEmpty()) return; - AllPackets.channel.sendToServer(new ToolboxEquipPacket(selectedBox.getBlockPos(), hoveredSlot, + AllPackets.channel.sendToServer(new ToolboxEquipPacket(selectedBox.getBlockPos(), selected, Minecraft.getInstance().player.inventory.selected)); } @Override - public boolean mouseClicked(double x, double y, int button) { - if (state == State.SELECT_BOX && hoveredSlot >= 0 && hoveredSlot < toolboxes.size()) { - state = State.SELECT_ITEM; - selectedBox = toolboxes.get(hoveredSlot); + public boolean mouseScrolled(double mouseX, double mouseY, double delta) { + MainWindow window = getMinecraft().getWindow(); + double hoveredX = mouseX - window.getGuiScaledWidth() / 2; + double hoveredY = mouseY - window.getGuiScaledHeight() / 2; + double distance = hoveredX * hoveredX + hoveredY * hoveredY; + if (distance <= 150) { + scrollMode = true; + scrollSlot = (((int) (scrollSlot - delta)) + 8) % 8; + for (int i = 0; i < 10; i++) { + + if (state == State.SELECT_ITEM || state == State.SELECT_ITEM_UNEQUIP) { + ToolboxInventory inv = selectedBox.inventory; + ItemStack stackInSlot = inv.filters.get(scrollSlot); + if (!stackInSlot.isEmpty() + && !inv.getStackInSlot(scrollSlot * ToolboxInventory.STACKS_PER_COMPARTMENT) + .isEmpty()) + break; + } + + if (state == State.SELECT_BOX) + if (scrollSlot < toolboxes.size()) + break; + + if (state == State.DETACH) + break; + + scrollSlot -= MathHelper.sign(delta); + scrollSlot = (scrollSlot + 8) % 8; + } return true; } - if (state == State.SELECT_ITEM || state == State.SELECT_ITEM_UNEQUIP) { - if (hoveredSlot == UNEQUIP || hoveredSlot >= 0) { + return super.mouseScrolled(mouseX, mouseY, delta); + } + + @Override + public boolean mouseClicked(double x, double y, int button) { + int selected = (scrollMode ? scrollSlot : hoveredSlot); + + if (selected == DEPOSIT) { + onClose(); + ToolboxHandlerClient.COOLDOWN = 2; + return true; + } + + if (state == State.SELECT_BOX && selected >= 0 && selected < toolboxes.size()) { + state = State.SELECT_ITEM; + selectedBox = toolboxes.get(selected); + return true; + } + + if (state == State.DETACH || state == State.SELECT_ITEM || state == State.SELECT_ITEM_UNEQUIP) { + if (selected == UNEQUIP || selected >= 0) { onClose(); - ToolboxHandlerClient.COOLDOWN = 10; + ToolboxHandlerClient.COOLDOWN = 2; + return true; } } diff --git a/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxBlock.java b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxBlock.java index c56351184..37c33a5fc 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxBlock.java +++ b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxBlock.java @@ -2,6 +2,9 @@ package com.simibubi.create.content.curiosities.toolbox; import static net.minecraft.state.properties.BlockStateProperties.WATERLOGGED; +import java.util.Optional; + +import com.simibubi.create.AllBlocks; import com.simibubi.create.AllShapes; import com.simibubi.create.AllTileEntities; import com.simibubi.create.foundation.block.ITE; @@ -17,6 +20,7 @@ import net.minecraft.fluid.FluidState; import net.minecraft.fluid.Fluids; import net.minecraft.item.BlockItemUseContext; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.CompoundNBT; import net.minecraft.state.StateContainer.Builder; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ActionResultType; @@ -26,6 +30,7 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockRayTraceResult; import net.minecraft.util.math.shapes.ISelectionContext; import net.minecraft.util.math.shapes.VoxelShape; +import net.minecraft.util.text.ITextComponent; import net.minecraft.world.IBlockReader; import net.minecraft.world.IWorld; import net.minecraft.world.World; @@ -66,19 +71,44 @@ public class ToolboxBlock extends HorizontalBlock implements IWaterLoggable, ITE }); } + @Override + public void onRemove(BlockState state, World world, BlockPos pos, BlockState newState, boolean moving) { + if (state.hasTileEntity() && (!state.is(newState.getBlock()) || !newState.hasTileEntity())) + world.removeBlockEntity(pos); + } + @Override public void attack(BlockState state, World world, BlockPos pos, PlayerEntity player) { if (player instanceof FakePlayer) return; if (world.isClientSide) return; + withTileEntityDo(world, pos, ToolboxTileEntity::unequipTracked); if (world instanceof ServerWorld) { - for (ItemStack itemStack : Block.getDrops(state, (ServerWorld) world, pos, world.getBlockEntity(pos))) - player.inventory.placeItemBackInInventory(world, itemStack); + ItemStack cloneItemStack = getCloneItemStack(world, pos, state); world.destroyBlock(pos, false); + if (world.getBlockState(pos) != state) + player.inventory.placeItemBackInInventory(world, cloneItemStack); } } + @Override + public ItemStack getCloneItemStack(IBlockReader world, BlockPos pos, BlockState state) { + ItemStack item = AllBlocks.TOOLBOX.asStack(); + Optional tileEntityOptional = getTileEntityOptional(world, pos); + + CompoundNBT tag = item.getOrCreateTag(); + CompoundNBT inv = tileEntityOptional.map(tb -> tb.inventory.serializeNBT()) + .orElse(new CompoundNBT()); + tag.put("Inventory", inv); + + ITextComponent customName = tileEntityOptional.map(ToolboxTileEntity::getCustomName) + .orElse(null); + if (customName != null) + item.setHoverName(customName); + return item; + } + @Override public BlockState updateShape(BlockState state, Direction direction, BlockState neighbourState, IWorld world, BlockPos pos, BlockPos neighbourPos) { diff --git a/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxContainer.java b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxContainer.java index c97fe1fad..7856d3bec 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxContainer.java +++ b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxContainer.java @@ -17,7 +17,6 @@ import net.minecraft.nbt.CompoundNBT; import net.minecraft.network.PacketBuffer; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.math.BlockPos; -import net.minecraftforge.items.ItemHandlerHelper; import net.minecraftforge.items.SlotItemHandler; public class ToolboxContainer extends ContainerBase { @@ -84,15 +83,12 @@ public class ToolboxContainer extends ContainerBase { ItemStack carried = playerInv.getCarried(); if (type == ClickType.PICKUP && !carried.isEmpty() && !itemInClickedSlot.isEmpty() - && ItemHandlerHelper.canItemStacksStack(itemInClickedSlot, carried)) { + && ToolboxInventory.canItemsShareCompartment(itemInClickedSlot, carried)) { int subIndex = index % STACKS_PER_COMPARTMENT; if (subIndex != STACKS_PER_COMPARTMENT - 1) return clicked(index - subIndex + STACKS_PER_COMPARTMENT - 1, flags, type, player); } - if (type == ClickType.PICKUP && !carried.isEmpty() && itemInClickedSlot.isEmpty()) - contentHolder.inventory.filters.set(index / STACKS_PER_COMPARTMENT, carried); - if (type == ClickType.PICKUP && carried.isEmpty() && itemInClickedSlot.isEmpty()) if (!player.level.isClientSide) { contentHolder.inventory.filters.set(index / STACKS_PER_COMPARTMENT, ItemStack.EMPTY); diff --git a/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxDisposeAllPacket.java b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxDisposeAllPacket.java new file mode 100644 index 000000000..071c61df6 --- /dev/null +++ b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxDisposeAllPacket.java @@ -0,0 +1,81 @@ +package com.simibubi.create.content.curiosities.toolbox; + +import java.util.function.Supplier; + +import org.apache.commons.lang3.mutable.MutableBoolean; + +import com.simibubi.create.foundation.networking.SimplePacketBase; + +import net.minecraft.entity.player.ServerPlayerEntity; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.CompoundNBT; +import net.minecraft.nbt.NBTUtil; +import net.minecraft.network.PacketBuffer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; +import net.minecraftforge.fml.network.NetworkEvent.Context; +import net.minecraftforge.items.ItemHandlerHelper; + +public class ToolboxDisposeAllPacket extends SimplePacketBase { + + private BlockPos toolboxPos; + + public ToolboxDisposeAllPacket(BlockPos toolboxPos) { + this.toolboxPos = toolboxPos; + } + + public ToolboxDisposeAllPacket(PacketBuffer buffer) { + toolboxPos = buffer.readBlockPos(); + } + + @Override + public void write(PacketBuffer buffer) { + buffer.writeBlockPos(toolboxPos); + } + + @Override + public void handle(Supplier context) { + Context ctx = context.get(); + ctx.enqueueWork(() -> { + ServerPlayerEntity player = ctx.getSender(); + World world = player.level; + TileEntity blockEntity = world.getBlockEntity(toolboxPos); + + double maxRange = ToolboxHandler.getMaxRange(player); + if (player.distanceToSqr(toolboxPos.getX() + 0.5, toolboxPos.getY(), toolboxPos.getZ() + 0.5) > maxRange + * maxRange) + return; + if (!(blockEntity instanceof ToolboxTileEntity)) + return; + ToolboxTileEntity toolbox = (ToolboxTileEntity) blockEntity; + + CompoundNBT compound = player.getPersistentData() + .getCompound("CreateToolboxData"); + MutableBoolean sendData = new MutableBoolean(false); + + toolbox.inventory.inLimitedMode(inventory -> { + for (int i = 0; i < 36; i++) { + String key = String.valueOf(i); + if (compound.contains(key) && NBTUtil.readBlockPos(compound.getCompound(key) + .getCompound("Pos")) + .equals(toolboxPos)) { + ToolboxHandler.unequip(player, i, true); + sendData.setTrue(); + } + + ItemStack itemStack = player.inventory.getItem(i); + ItemStack remainder = ItemHandlerHelper.insertItemStacked(toolbox.inventory, itemStack, false); + if (remainder.getCount() != itemStack.getCount()) + player.inventory.setItem(i, remainder); + } + }); + + if (sendData.booleanValue()) + ToolboxHandler.syncData(player); + + }); + ctx.setPacketHandled(true); + } + +} diff --git a/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxEquipPacket.java b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxEquipPacket.java index 078d23ff8..db63a5daa 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxEquipPacket.java +++ b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxEquipPacket.java @@ -2,8 +2,6 @@ package com.simibubi.create.content.curiosities.toolbox; import java.util.function.Supplier; -import com.simibubi.create.foundation.networking.AllPackets; -import com.simibubi.create.foundation.networking.ISyncPersistentData; import com.simibubi.create.foundation.networking.SimplePacketBase; import net.minecraft.entity.player.ServerPlayerEntity; @@ -15,7 +13,6 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import net.minecraftforge.fml.network.NetworkEvent.Context; -import net.minecraftforge.fml.network.PacketDistributor; import net.minecraftforge.items.ItemHandlerHelper; public class ToolboxEquipPacket extends SimplePacketBase { @@ -54,35 +51,32 @@ public class ToolboxEquipPacket extends SimplePacketBase { World world = player.level; if (toolboxPos == null) { - player.getPersistentData() - .getCompound("CreateToolboxData") - .remove(String.valueOf(hotbarSlot)); - sendData(player); + ToolboxHandler.unequip(player, hotbarSlot, false); + ToolboxHandler.syncData(player); return; } TileEntity blockEntity = world.getBlockEntity(toolboxPos); double maxRange = ToolboxHandler.getMaxRange(player); - if (ctx.getSender() - .distanceToSqr(toolboxPos.getX() + 0.5, toolboxPos.getY(), - toolboxPos.getZ() + 0.5) > maxRange * maxRange) + if (player.distanceToSqr(toolboxPos.getX() + 0.5, toolboxPos.getY(), toolboxPos.getZ() + 0.5) > maxRange + * maxRange) return; if (!(blockEntity instanceof ToolboxTileEntity)) return; - ToolboxHandler.unequip(player, hotbarSlot); + ToolboxHandler.unequip(player, hotbarSlot, false); if (slot < 0 || slot >= 8) { - sendData(player); + ToolboxHandler.syncData(player); return; } ToolboxTileEntity toolboxTileEntity = (ToolboxTileEntity) blockEntity; ItemStack playerStack = player.inventory.getItem(hotbarSlot); - if (!playerStack.isEmpty() - && !ItemHandlerHelper.canItemStacksStack(playerStack, toolboxTileEntity.inventory.filters.get(slot))) { + if (!playerStack.isEmpty() && !ToolboxInventory.canItemsShareCompartment(playerStack, + toolboxTileEntity.inventory.filters.get(slot))) { ItemStack remainder = ItemHandlerHelper.insertItemStacked(toolboxTileEntity.inventory, playerStack, false); if (!remainder.isEmpty()) @@ -103,15 +97,11 @@ public class ToolboxEquipPacket extends SimplePacketBase { player.getPersistentData() .put("CreateToolboxData", compound); - sendData(player); toolboxTileEntity.connectPlayer(slot, player, hotbarSlot); + ToolboxHandler.syncData(player); }); ctx.setPacketHandled(true); } - private void sendData(ServerPlayerEntity player) { - AllPackets.channel.send(PacketDistributor.PLAYER.with(() -> player), new ISyncPersistentData.Packet(player)); - } - } diff --git a/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxHandler.java b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxHandler.java index 9daef8f34..e21a775be 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxHandler.java +++ b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxHandler.java @@ -4,9 +4,14 @@ import java.util.List; import java.util.WeakHashMap; import java.util.stream.Collectors; +import com.simibubi.create.foundation.config.AllConfigs; +import com.simibubi.create.foundation.networking.AllPackets; +import com.simibubi.create.foundation.networking.ISyncPersistentData; import com.simibubi.create.foundation.utility.WorldAttached; +import net.minecraft.entity.Entity; import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.entity.player.ServerPlayerEntity; import net.minecraft.nbt.CompoundNBT; import net.minecraft.nbt.NBTUtil; import net.minecraft.tileentity.TileEntity; @@ -14,6 +19,8 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.vector.Vector3d; import net.minecraft.world.IWorld; import net.minecraft.world.World; +import net.minecraft.world.server.ServerWorld; +import net.minecraftforge.fml.network.PacketDistributor; public class ToolboxHandler { @@ -30,6 +37,70 @@ public class ToolboxHandler { .remove(te.getBlockPos()); } + static int validationTimer = 20; + + public static void entityTick(Entity entity, World world) { + if (world.isClientSide) + return; + if (!(world instanceof ServerWorld)) + return; + if (!(entity instanceof ServerPlayerEntity)) + return; + if (entity.tickCount % validationTimer != 0) + return; + + ServerPlayerEntity player = (ServerPlayerEntity) entity; + if (!player.getPersistentData() + .contains("CreateToolboxData")) + return; + + boolean sendData = false; + CompoundNBT compound = player.getPersistentData() + .getCompound("CreateToolboxData"); + for (int i = 0; i < 9; i++) { + String key = String.valueOf(i); + if (!compound.contains(key)) + continue; + + CompoundNBT data = compound.getCompound(key); + BlockPos pos = NBTUtil.readBlockPos(data.getCompound("Pos")); + int slot = data.getInt("Slot"); + + if (!world.isAreaLoaded(pos, 0)) + continue; + if (!(world.getBlockState(pos) + .getBlock() instanceof ToolboxBlock)) { + compound.remove(key); + sendData = true; + continue; + } + + TileEntity prevBlockEntity = world.getBlockEntity(pos); + if (prevBlockEntity instanceof ToolboxTileEntity) + ((ToolboxTileEntity) prevBlockEntity).connectPlayer(slot, player, i); + } + + if (sendData) + syncData(player); + } + + public static void playerLogin(PlayerEntity player) { + if (!(player instanceof ServerPlayerEntity)) + return; + if (player.getPersistentData() + .contains("CreateToolboxData") + && !player.getPersistentData() + .getCompound("CreateToolboxData") + .isEmpty()) { + syncData(player); + } + } + + public static void syncData(PlayerEntity player) { + AllPackets.channel.send(PacketDistributor.PLAYER.with(() -> (ServerPlayerEntity) player), + new ISyncPersistentData.Packet(player)); + } + public static List getNearest(IWorld world, PlayerEntity player, int maxAmount) { Vector3d location = player.position(); double maxRange = getMaxRange(player); @@ -43,7 +114,7 @@ public class ToolboxHandler { .collect(Collectors.toList()); } - public static void unequip(PlayerEntity player, int hotbarSlot) { + public static void unequip(PlayerEntity player, int hotbarSlot, boolean keepItems) { CompoundNBT compound = player.getPersistentData() .getCompound("CreateToolboxData"); World world = player.level; @@ -56,8 +127,10 @@ public class ToolboxHandler { int prevSlot = prevData.getInt("Slot"); TileEntity prevBlockEntity = world.getBlockEntity(prevPos); - if (prevBlockEntity instanceof ToolboxTileEntity) - ((ToolboxTileEntity) prevBlockEntity).unequip(prevSlot, player, hotbarSlot); + if (prevBlockEntity instanceof ToolboxTileEntity) { + ToolboxTileEntity toolbox = (ToolboxTileEntity) prevBlockEntity; + toolbox.unequip(prevSlot, player, hotbarSlot, keepItems || !ToolboxHandler.withinRange(player, toolbox)); + } compound.remove(key); } @@ -73,7 +146,8 @@ public class ToolboxHandler { } public static double getMaxRange(PlayerEntity player) { - return 10; + return AllConfigs.SERVER.curiosities.toolboxRange.get() + .doubleValue(); } } diff --git a/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxHandlerClient.java b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxHandlerClient.java index 7ac4b05d9..1997912d6 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxHandlerClient.java +++ b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxHandlerClient.java @@ -33,11 +33,11 @@ public class ToolboxHandlerClient { if (COOLDOWN > 0 && !AllKeys.TOOLBELT.isPressed()) COOLDOWN--; } - + public static void onKeyInput(int key, boolean pressed) { if (key != AllKeys.TOOLBELT.getBoundCode()) return; - if (COOLDOWN > 0) + if (COOLDOWN > 0) return; ClientPlayerEntity player = Minecraft.getInstance().player; if (player == null) @@ -60,8 +60,11 @@ public class ToolboxHandlerClient { if (canReachToolbox) { TileEntity blockEntity = level.getBlockEntity(pos); if (blockEntity instanceof ToolboxTileEntity) { - ScreenOpener.open(new RadialToolboxMenu(ImmutableList.of((ToolboxTileEntity) blockEntity), - RadialToolboxMenu.State.SELECT_ITEM_UNEQUIP)); + RadialToolboxMenu screen = new RadialToolboxMenu(ImmutableList.of((ToolboxTileEntity) blockEntity), + RadialToolboxMenu.State.SELECT_ITEM_UNEQUIP); + screen.prevSlot(compound.getCompound(slotKey) + .getInt("Slot")); + ScreenOpener.open(screen); return; } } @@ -73,10 +76,6 @@ public class ToolboxHandlerClient { if (toolboxes.isEmpty()) return; -// ItemStack itemStackFromSlot = player.getItemStackFromSlot(EquipmentSlotType.LEGS); -// if (!AllItems.TOOLBELT.isIn(itemStackFromSlot)) -// return; - if (toolboxes.size() == 1) ScreenOpener.open(new RadialToolboxMenu(toolboxes, RadialToolboxMenu.State.SELECT_ITEM)); else diff --git a/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxInventory.java b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxInventory.java index 741c77eb1..4581bef86 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxInventory.java +++ b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxInventory.java @@ -2,9 +2,11 @@ package com.simibubi.create.content.curiosities.toolbox; import java.util.ArrayList; import java.util.List; +import java.util.function.Consumer; import javax.annotation.Nonnull; +import com.simibubi.create.AllBlocks; import com.simibubi.create.foundation.utility.NBTHelper; import net.minecraft.item.ItemStack; @@ -19,15 +21,24 @@ public class ToolboxInventory extends ItemStackHandler { List filters; boolean settling; private ToolboxTileEntity te; + + private boolean limitedMode; public ToolboxInventory(ToolboxTileEntity te) { super(8 * STACKS_PER_COMPARTMENT); this.te = te; + limitedMode = false; filters = new ArrayList<>(); settling = false; for (int i = 0; i < 8; i++) filters.add(ItemStack.EMPTY); } + + public void inLimitedMode(Consumer action) { + limitedMode = true; + action.accept(this); + limitedMode = false; + } public void settle(int compartment) { int totalCount = 0; @@ -50,11 +61,26 @@ public class ToolboxInventory extends ItemStackHandler { return; settling = true; - for (int i = 0; i < STACKS_PER_COMPARTMENT; i++) { - ItemStack copy = totalCount <= 0 ? ItemStack.EMPTY - : ItemHandlerHelper.copyStackWithSize(sample, Math.min(totalCount, sample.getMaxStackSize())); - setStackInSlot(compartment * STACKS_PER_COMPARTMENT + i, copy); - totalCount -= copy.getCount(); + if (!sample.isStackable()) { + for (int i = 0; i < STACKS_PER_COMPARTMENT; i++) { + if (!getStackInSlot(compartment * STACKS_PER_COMPARTMENT + i).isEmpty()) + continue; + for (int j = i + 1; j < STACKS_PER_COMPARTMENT; j++) { + ItemStack stackInSlot = getStackInSlot(compartment * STACKS_PER_COMPARTMENT + j); + if (stackInSlot.isEmpty()) + continue; + setStackInSlot(compartment * STACKS_PER_COMPARTMENT + i, stackInSlot); + setStackInSlot(compartment * STACKS_PER_COMPARTMENT + j, ItemStack.EMPTY); + break; + } + } + } else { + for (int i = 0; i < STACKS_PER_COMPARTMENT; i++) { + ItemStack copy = totalCount <= 0 ? ItemStack.EMPTY + : ItemHandlerHelper.copyStackWithSize(sample, Math.min(totalCount, sample.getMaxStackSize())); + setStackInSlot(compartment * STACKS_PER_COMPARTMENT + i, copy); + totalCount -= copy.getCount(); + } } settling = false; te.sendData(); @@ -62,11 +88,15 @@ public class ToolboxInventory extends ItemStackHandler { @Override public boolean isItemValid(int slot, ItemStack stack) { + if (AllBlocks.TOOLBOX.isIn(stack)) + return false; if (slot < 0 || slot >= getSlots()) return false; int compartment = slot / STACKS_PER_COMPARTMENT; ItemStack filter = filters.get(compartment); - if (!filter.isEmpty() && ItemHandlerHelper.canItemStacksStack(filter, stack)) + if (limitedMode && filter.isEmpty()) + return false; + if (filter.isEmpty() || ToolboxInventory.canItemsShareCompartment(filter, stack)) return super.isItemValid(slot, stack); return false; } @@ -76,8 +106,24 @@ public class ToolboxInventory extends ItemStackHandler { super.setStackInSlot(slot, stack); int compartment = slot / STACKS_PER_COMPARTMENT; if (!stack.isEmpty() && filters.get(compartment) - .isEmpty()) + .isEmpty()) { filters.set(compartment, ItemHandlerHelper.copyStackWithSize(stack, 1)); + te.sendData(); + } + } + + @Override + public ItemStack insertItem(int slot, ItemStack stack, boolean simulate) { + ItemStack insertItem = super.insertItem(slot, stack, simulate); + if (insertItem.getCount() != stack.getCount()) { + int compartment = slot / STACKS_PER_COMPARTMENT; + if (!stack.isEmpty() && filters.get(compartment) + .isEmpty()) { + filters.set(compartment, ItemHandlerHelper.copyStackWithSize(stack, 1)); + te.sendData(); + } + } + return insertItem; } @Override @@ -128,7 +174,7 @@ public class ToolboxInventory extends ItemStackHandler { for (int i = STACKS_PER_COMPARTMENT - 1; i >= 0; i--) { int slot = compartment * STACKS_PER_COMPARTMENT + i; - ItemStack extracted = extractItem(slot, amount, simulate); + ItemStack extracted = extractItem(slot, remaining, simulate); remaining -= extracted.getCount(); if (!extracted.isEmpty()) lastValid = extracted; @@ -142,4 +188,10 @@ public class ToolboxInventory extends ItemStackHandler { return ItemHandlerHelper.copyStackWithSize(lastValid, amount - remaining); } + public static boolean canItemsShareCompartment(ItemStack stack1, ItemStack stack2) { + if (!stack1.isStackable() && !stack2.isStackable() && stack1.isDamageableItem() && stack2.isDamageableItem()) + return stack1.getItem() == stack2.getItem(); + return ItemHandlerHelper.canItemStacksStack(stack1, stack2); + } + } diff --git a/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxScreen.java b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxScreen.java index 986d043ec..7a7d66bcb 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxScreen.java +++ b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxScreen.java @@ -14,7 +14,9 @@ import com.simibubi.create.foundation.gui.AllGuiTextures; import com.simibubi.create.foundation.gui.AllIcons; import com.simibubi.create.foundation.gui.GuiGameElement; import com.simibubi.create.foundation.gui.widgets.IconButton; +import com.simibubi.create.foundation.networking.AllPackets; import com.simibubi.create.foundation.utility.Iterate; +import com.simibubi.create.foundation.utility.Lang; import net.minecraft.client.renderer.Rectangle2d; import net.minecraft.entity.player.PlayerInventory; @@ -28,6 +30,7 @@ public class ToolboxScreen extends AbstractSimiContainerScreen AllGuiTextures PLAYER = AllGuiTextures.PLAYER_INVENTORY; protected Slot hoveredToolboxSlot; private IconButton confirmButton; + private IconButton disposeButton; private List extraAreas = Collections.emptyList(); @@ -42,7 +45,10 @@ public class ToolboxScreen extends AbstractSimiContainerScreen widgets.clear(); setWindowSize(BG.width, 256); confirmButton = new IconButton(getGuiLeft() + BG.width - 23, getGuiTop() + BG.height - 24, AllIcons.I_CONFIRM); + disposeButton = new IconButton(getGuiLeft() + 91, getGuiTop() + 69, AllIcons.I_TOOLBOX); + disposeButton.setToolTip(Lang.translate("toolbox.depositBox")); widgets.add(confirmButton); + widgets.add(disposeButton); extraAreas = ImmutableList.of(new Rectangle2d(118, 155, 80, 100), new Rectangle2d(308, 125, 100, 70)); } @@ -125,7 +131,8 @@ public class ToolboxScreen extends AbstractSimiContainerScreen for (int offset : Iterate.zeroAndOne) { ms.pushPose(); - ms.translate(0, -offset * 1 / 8f, menu.contentHolder.drawers.getValue(partialTicks) * -.175f * (2 - offset)); + ms.translate(0, -offset * 1 / 8f, + menu.contentHolder.drawers.getValue(partialTicks) * -.175f * (2 - offset)); GuiGameElement.of(AllBlockPartials.TOOLBOX_DRAWER) .render(ms); ms.popPose(); @@ -149,6 +156,10 @@ public class ToolboxScreen extends AbstractSimiContainerScreen minecraft.player.closeContainer(); return true; } + if (disposeButton.isHovered()) { + AllPackets.channel.sendToServer(new ToolboxDisposeAllPacket(menu.contentHolder.getBlockPos())); + return true; + } } return mouseClicked; diff --git a/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxTileEntity.java b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxTileEntity.java index 91bdd62d9..644d34fd2 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxTileEntity.java +++ b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxTileEntity.java @@ -1,14 +1,14 @@ package com.simibubi.create.content.curiosities.toolbox; import java.util.HashMap; +import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Entry; +import java.util.Set; import java.util.WeakHashMap; -import com.simibubi.create.foundation.networking.AllPackets; -import com.simibubi.create.foundation.networking.ISyncPersistentData; import com.simibubi.create.foundation.tileEntity.SmartTileEntity; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.utility.VecHelper; @@ -34,7 +34,6 @@ import net.minecraft.util.text.ITextComponent; import net.minecraft.util.text.TranslationTextComponent; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.util.LazyOptional; -import net.minecraftforge.fml.network.PacketDistributor; import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.ItemHandlerHelper; @@ -93,6 +92,8 @@ public class ToolboxTileEntity extends SmartTileEntity implements INamedContaine } private void tickPlayers() { + boolean update = false; + for (Iterator>> toolboxSlots = connectedPlayers.entrySet() .iterator(); toolboxSlots.hasNext();) { @@ -115,15 +116,14 @@ public class ToolboxTileEntity extends SmartTileEntity implements INamedContaine ItemStack playerStack = player.inventory.getItem(hotbarSlot); - if (clear - || !playerStack.isEmpty() && !ItemHandlerHelper.canItemStacksStack(playerStack, referenceItem)) { + if (clear || !playerStack.isEmpty() + && !ToolboxInventory.canItemsShareCompartment(playerStack, referenceItem)) { player.getPersistentData() .getCompound("CreateToolboxData") .remove(String.valueOf(hotbarSlot)); playerEntries.remove(); if (player instanceof ServerPlayerEntity) - AllPackets.channel.send(PacketDistributor.PLAYER.with(() -> (ServerPlayerEntity) player), - new ISyncPersistentData.Packet(player)); + ToolboxHandler.syncData(player); continue; } @@ -132,34 +132,99 @@ public class ToolboxTileEntity extends SmartTileEntity implements INamedContaine if (count < targetAmount) { int amountToReplenish = targetAmount - count; + + if (isOpenInContainer(player)) { + ItemStack extracted = inventory.takeFromCompartment(amountToReplenish, slot, true); + if (!extracted.isEmpty()) { + ToolboxHandler.unequip(player, hotbarSlot, false); + ToolboxHandler.syncData(player); + continue; + } + } + ItemStack extracted = inventory.takeFromCompartment(amountToReplenish, slot, false); - if (!extracted.isEmpty()) + if (!extracted.isEmpty()) { + update = true; player.inventory.setItem(hotbarSlot, ItemHandlerHelper.copyStackWithSize(extracted, count + extracted.getCount())); + } } if (count > targetAmount) { int amountToDeposit = count - targetAmount; ItemStack toDistribute = ItemHandlerHelper.copyStackWithSize(playerStack, amountToDeposit); + + if (isOpenInContainer(player)) { + int deposited = amountToDeposit - inventory.distributeToCompartment(toDistribute, slot, true) + .getCount(); + if (deposited > 0) { + ToolboxHandler.unequip(player, hotbarSlot, true); + ToolboxHandler.syncData(player); + continue; + } + } + int deposited = amountToDeposit - inventory.distributeToCompartment(toDistribute, slot, false) .getCount(); - if (deposited > 0) + if (deposited > 0) { + update = true; player.inventory.setItem(hotbarSlot, ItemHandlerHelper.copyStackWithSize(playerStack, count - deposited)); + } } } if (clear) toolboxSlots.remove(); } + + if (update) + + sendData(); + } - public void unequip(int slot, PlayerEntity player, int hotbarSlot) { + private boolean isOpenInContainer(PlayerEntity player) { + return player.containerMenu instanceof ToolboxContainer + && ((ToolboxContainer) player.containerMenu).contentHolder == this; + } + + public void unequipTracked() { + if (level.isClientSide) + return; + + Set affected = new HashSet<>(); + + for (Iterator>> toolboxSlots = connectedPlayers.entrySet() + .iterator(); toolboxSlots.hasNext();) { + + Entry> toolboxSlotEntry = toolboxSlots.next(); + WeakHashMap set = toolboxSlotEntry.getValue(); + + for (Iterator> playerEntries = set.entrySet() + .iterator(); playerEntries.hasNext();) { + Entry playerEntry = playerEntries.next(); + + PlayerEntity player = playerEntry.getKey(); + int hotbarSlot = playerEntry.getValue(); + + ToolboxHandler.unequip(player, hotbarSlot, false); + if (player instanceof ServerPlayerEntity) + affected.add((ServerPlayerEntity) player); + } + } + + for (ServerPlayerEntity player : affected) + ToolboxHandler.syncData(player); + connectedPlayers.clear(); + } + + public void unequip(int slot, PlayerEntity player, int hotbarSlot, boolean keepItems) { if (!connectedPlayers.containsKey(slot)) return; connectedPlayers.get(slot) .remove(player); - if (!ToolboxHandler.withinRange(player, this)) + if (keepItems) return; ItemStack playerStack = player.inventory.getItem(hotbarSlot); @@ -220,11 +285,6 @@ public class ToolboxTileEntity extends SmartTileEntity implements INamedContaine return ToolboxContainer.create(id, inv, this); } - @Override - public ITextComponent getDisplayName() { - return customName != null ? customName : new TranslationTextComponent("block.create.toolbox"); - } - @Override public void lazyTick() { updateOpenCount(); @@ -272,6 +332,12 @@ public class ToolboxTileEntity extends SmartTileEntity implements INamedContaine if (level.isClientSide) return; WeakHashMap map = connectedPlayers.computeIfAbsent(slot, WeakHashMap::new); + Integer previous = map.get(player); + if (previous != null) { + if (previous == hotbarSlot) + return; + ToolboxHandler.unequip(player, previous, false); + } map.put(player, hotbarSlot); } @@ -283,6 +349,21 @@ public class ToolboxTileEntity extends SmartTileEntity implements INamedContaine this.customName = customName; } + @Override + public ITextComponent getDisplayName() { + return customName != null ? customName : new TranslationTextComponent("block.create.toolbox"); + } + + @Override + public ITextComponent getCustomName() { + return customName; + } + + @Override + public boolean hasCustomName() { + return customName != null; + } + @Override public ITextComponent getName() { return customName; diff --git a/src/main/java/com/simibubi/create/events/CommonEvents.java b/src/main/java/com/simibubi/create/events/CommonEvents.java index 3631e9b0b..b2d29b6e2 100644 --- a/src/main/java/com/simibubi/create/events/CommonEvents.java +++ b/src/main/java/com/simibubi/create/events/CommonEvents.java @@ -8,6 +8,7 @@ import com.simibubi.create.content.contraptions.components.structureMovement.tra import com.simibubi.create.content.contraptions.fluids.recipe.FluidTransferRecipes; import com.simibubi.create.content.contraptions.fluids.recipe.PotionMixingRecipeManager; import com.simibubi.create.content.contraptions.wrench.WrenchItem; +import com.simibubi.create.content.curiosities.toolbox.ToolboxHandler; import com.simibubi.create.content.curiosities.zapper.ZapperInteractionHandler; import com.simibubi.create.content.curiosities.zapper.ZapperItem; import com.simibubi.create.content.logistics.item.LinkedControllerServerHandler; @@ -21,6 +22,7 @@ import com.simibubi.create.foundation.utility.recipe.RecipeFinder; import net.minecraft.block.BlockState; import net.minecraft.entity.Entity; import net.minecraft.entity.LivingEntity; +import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.ServerPlayerEntity; import net.minecraft.fluid.FluidState; import net.minecraft.item.ItemStack; @@ -39,6 +41,7 @@ import net.minecraftforge.event.entity.EntityJoinWorldEvent; import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; import net.minecraftforge.event.entity.player.AttackEntityEvent; import net.minecraftforge.event.entity.player.PlayerEvent; +import net.minecraftforge.event.entity.player.PlayerEvent.PlayerLoggedInEvent; import net.minecraftforge.event.world.BlockEvent.FluidPlaceBlockEvent; import net.minecraftforge.event.world.ChunkEvent; import net.minecraftforge.event.world.WorldEvent; @@ -64,6 +67,12 @@ public class CommonEvents { CapabilityMinecartController.onChunkUnloaded(event); } + @SubscribeEvent + public static void playerLoggedIn(PlayerLoggedInEvent event) { + PlayerEntity player = event.getPlayer(); + ToolboxHandler.playerLogin(player); + } + @SubscribeEvent public static void whenFluidsMeet(FluidPlaceBlockEvent event) { BlockState blockState = event.getOriginalState(); @@ -75,7 +84,8 @@ public class CommonEvents { return; for (Direction direction : Iterate.directions) { - FluidState metFluidState = fluidState.isSource() ? fluidState : world.getFluidState(pos.relative(direction)); + FluidState metFluidState = + fluidState.isSource() ? fluidState : world.getFluidState(pos.relative(direction)); if (!metFluidState.is(FluidTags.WATER)) continue; BlockState lavaInteraction = AllFluids.getLavaInteraction(metFluidState); @@ -104,6 +114,7 @@ public class CommonEvents { if (world == null) return; ContraptionHandler.entitiesWhoJustDismountedGetSentToTheRightLocation(entityLiving, world); + ToolboxHandler.entityTick(entityLiving, world); } @SubscribeEvent diff --git a/src/main/java/com/simibubi/create/foundation/config/CCuriosities.java b/src/main/java/com/simibubi/create/foundation/config/CCuriosities.java index 2ba15eaea..24f38f7b9 100644 --- a/src/main/java/com/simibubi/create/foundation/config/CCuriosities.java +++ b/src/main/java/com/simibubi/create/foundation/config/CCuriosities.java @@ -4,6 +4,7 @@ public class CCuriosities extends ConfigBase { public ConfigInt maxSymmetryWandRange = i(50, 10, "maxSymmetryWandRange", Comments.symmetryRange); public ConfigInt placementAssistRange = i(12, 3, "placementAssistRange", Comments.placementRange); + public ConfigInt toolboxRange = i(10, 1, "toolboxRange", Comments.toolboxRange); public ConfigInt airInBacktank = i(900, 1, "airInBacktank", Comments.maxAirInBacktank); public ConfigInt enchantedBacktankCapacity = i(300, 1, "enchantedBacktankCapacity", Comments.enchantedBacktankCapacity); @@ -25,6 +26,8 @@ public class CCuriosities extends ConfigBase { "The volume of Air added by each level of the backtanks Capacity Enchantment"; static String placementRange = "The Maximum Distance a Block placed by Create's placement assist will have to its interaction point."; + static String toolboxRange = + "The Maximum Distance at which a Toolbox can interact with Players' Inventories."; static String maxExtendoGripActions = "Amount of free Extendo Grip actions provided by one filled Copper Backtank. Set to 0 makes Extendo Grips unbreakable"; static String maxPotatoCannonShots = diff --git a/src/main/java/com/simibubi/create/foundation/gui/AllIcons.java b/src/main/java/com/simibubi/create/foundation/gui/AllIcons.java index 59799ab63..6a07a5f57 100644 --- a/src/main/java/com/simibubi/create/foundation/gui/AllIcons.java +++ b/src/main/java/com/simibubi/create/foundation/gui/AllIcons.java @@ -86,6 +86,7 @@ public class AllIcons implements IScreenRenderable { I_TUNNEL_PREFER_NEAREST = next(), I_TUNNEL_RANDOMIZE = next(), I_TUNNEL_SYNCHRONIZE = next(), + I_TOOLBOX = next(), I_TOOL_MOVE_XZ = newRow(), I_TOOL_MOVE_Y = next(), diff --git a/src/main/java/com/simibubi/create/foundation/networking/AllPackets.java b/src/main/java/com/simibubi/create/foundation/networking/AllPackets.java index e26663161..20fffe6bb 100644 --- a/src/main/java/com/simibubi/create/foundation/networking/AllPackets.java +++ b/src/main/java/com/simibubi/create/foundation/networking/AllPackets.java @@ -23,6 +23,7 @@ import com.simibubi.create.content.contraptions.fluids.actors.FluidSplashPacket; import com.simibubi.create.content.contraptions.relays.advanced.sequencer.ConfigureSequencedGearshiftPacket; import com.simibubi.create.content.curiosities.bell.SoulPulseEffectPacket; import com.simibubi.create.content.curiosities.symmetry.SymmetryEffectPacket; +import com.simibubi.create.content.curiosities.toolbox.ToolboxDisposeAllPacket; import com.simibubi.create.content.curiosities.toolbox.ToolboxEquipPacket; import com.simibubi.create.content.curiosities.tools.BlueprintAssignCompleteRecipePacket; import com.simibubi.create.content.curiosities.tools.ExtendoGripInteractionPacket; @@ -98,6 +99,7 @@ public enum AllPackets { SUBMIT_GHOST_ITEM(GhostItemSubmitPacket.class, GhostItemSubmitPacket::new, PLAY_TO_SERVER), BLUEPRINT_COMPLETE_RECIPE(BlueprintAssignCompleteRecipePacket.class, BlueprintAssignCompleteRecipePacket::new, PLAY_TO_SERVER), TOOLBOX_EQUIP(ToolboxEquipPacket.class, ToolboxEquipPacket::new, PLAY_TO_SERVER), + TOOLBOX_DISPOSE_ALL(ToolboxDisposeAllPacket.class, ToolboxDisposeAllPacket::new, PLAY_TO_SERVER), // Server to Client SYMMETRY_EFFECT(SymmetryEffectPacket.class, SymmetryEffectPacket::new, PLAY_TO_CLIENT), diff --git a/src/main/resources/assets/create/lang/default/messages.json b/src/main/resources/assets/create/lang/default/messages.json index 24ae8105f..1d7bd4148 100644 --- a/src/main/resources/assets/create/lang/default/messages.json +++ b/src/main/resources/assets/create/lang/default/messages.json @@ -108,6 +108,8 @@ "create.toolbox.unequip": "Unequip: %1$s", "create.toolbox.outOfRange": "Toolbox of held item not in Range", "create.toolbox.detach": "Stop tracking and keep item", + "create.toolbox.depositAll": "Return items to nearby Toolboxes", + "create.toolbox.depositBox": "Return items to Toolbox", "create.gui.symmetryWand.mirrorType": "Mirror", "create.gui.symmetryWand.orientation": "Orientation", diff --git a/src/main/resources/assets/create/textures/gui/icons.png b/src/main/resources/assets/create/textures/gui/icons.png index 9c862ea807efd75c7ea0dad2f5d1343ed01d1980..503558349f5ba7de42a0f2f2e849e7f344c36455 100644 GIT binary patch delta 3599 zcmcgvc{mj87N5abMnqXc7>Sf+s?YM-8Eb0nTb8kF24ibPwizMfE5@G49$6Y>&n}eI z*kzw&H%MWov0ZiV{hs^W=l*^Fde8a2=bY!9^PY2_^G1k8h$mj;2i`T+g8^QBI=>14 z02uCQ!ZiVassz>pClFr56=;ipXhg>b#*d-t*}#xwEg%eZazY@lqk&{Px!>dorxJwr zg~OHfQFk#u{`b}X4WC^2ySgixx%vGE1WAr(XvIRH{{g8$|65E2`oApxQ%>9Mu8Tj) z7lZQg{%zx*sHwK@33sBWbfSrN!#Mro)PsDTTs++{5I1jE)eHU?)YWY0_g(@3r?6jd zXlt4WAvUrHg9Q|sqm#waLtb;o_j%cw7&7@1vfplh9-7;32VNA(Y&zU?&pBfIbRK~2 zP1Xp^&fYmBQ5tq&MYC^pY)724>tT%p0$Ke~E5hb-Ro22PjDeb1#8aQT&(4*5g=>J@ zm`%R+cC*%-ze3&lY|A{JEfkt3F=M}pU?!7HrFZy&P2eF^Bco%9^u}bu9`}IshD|m= zfG3TU)UivR$o+zr%?6W-ai!-6oEb{Er>~!-C|rC79$IqcyCxg=1J~Vf+tx&GjqHMd zAu_{qS*Tk2V<;M_1g(9t!-a0qU3Yq?r<($MetGR)QS{Yw+ znBRRUvX@5R88wH8098UDm$_Jxf7P<8Ai$xlefE`MYFb3K#^x6RwLKDpBcB*e&3;%9 zPwxzMZnUVFT=CLjmBw6qaBpg;Gp;|vaD6ua0wkYn!A2+G$!N0#p0?*}Z@+C<4-&2} zmP<-C7Ry9&Ql)W))kRn_7;lDmo(vQw+;D1S7ep*aSGAOu@fz|_to@`q+(3QNV*phb zBgrOUm$N1Koku5+5A=+o_|_x6#@^zm^tpm*ihxPU*HqmN;-SBAh=8}C@23uBtVmYZ zJT$*sqk5BQyOLVB|L*xcgXXO`qO*?>1ty6t_((#5MA^NuR5c@-P)_s*^tlxl>@ti4T}$ zk;2%cZG`8rT0bmMc}E$#%88a&M&m)&nPWF?EX-|tL`OWz^T#2Lq^P>ZO|La%3FMlj zWU>`u!U<5!ec5$W`#9rY{;&hZTUOm z4hP{wy0(0|rdWA76mP=@C$7{&R4G-ehkRZMsYh7JU|{r+Y?vE1%xWm7ft)LptCux$ zNK@VL>TY{>q;y9iNG4<-y>UExckB5{rk(DSfg@7^fpUDB0S4Xk@vXypdT-E&mZ`2+ z-h(6tOErdB;m3){H;eb|DJfzZCaLK-1XFklIiOg9<@8L^obl+D=2bY_bUWpB z0X87)$&O9qMM4yho|3r=sgF+QdP+2DlHPXjHAxMX+_GPhU2hLnR#!bX?XCIjkgqfG zlt$a_XK!`~#&GSZ@;shTk+wO%X8C|4tcc7QT!HVeR^y=DfS#)=#uAN)%w}si3C`+0 zev1vy37znw&wNef2$iscwM?_M@c6iUSj`e_+jH_IToQf0#veu5thKtX1*U#BQ#?DV zI<3P7>4f$D!*JF0si@C)2J@wIeNMdtsg3kS+t?j+b|tPl=Dm4{FD7K=tp{u5Wo&U; zNnO4nM>UpA_b3_q^1M|^o>To=3J3!?v<(UW2G>ff~ryalmG(zpNUWb#G&&;2sGc;!0;?Er?}{A7{TAYzEW_y;KV~ zYh|xn?AhGE9L#J_1a5!3dLx~%fY95=^H8r(Guze*&J^h4S?@XzN>@g<6$9-a+7=0} zkG*JGm{|VNE74%Qo)Fvx3k_sdk0$3$O>X*O>g$E|t=C5@Hv(V+Wmu&_OpagBfhFz2 zr^&AZPrBA>bO<4)t&Nw~)ITbCO(=X`?`hgBfPlW#jVs)ZmWD3!k1OTSpCZ-u0|(eY zOwd!`7T!Ddo!c{N+g=5l&m4=fWILDrwDbMrlQ;0#I-h{y%@4@^0YD1wr;j-?LagXx zF?|xpvf47m>0OEyoY=uY26%vuI^C0n_+ABW;Exu~b4w|$KI1KL41HzxX$4$&w0+rC ztJSI5@usS<+%L9vyTl86^J?xZ#)`;OMsM@2SN9R)oEz0mEf05Qio*elDa-SQD}^tI zj5iFqc;n2>lx?71&upikR8fec#ovWIR*at((;0K5iitZLDPYMGtbSWrN1FK{5Z(|i zf+DQOQ)=383*%nzTO&j&S^Hur)5D!70ed=Lj3G&cP5eQnS_R zhT)fNMZOPcuwa!ZL@@cDTLK_s+}LsVtgixo>ej_%jMo@P4XnTECU~5_MwqT*&KnQ> zP%!;Z;TGjLVNm9VMg6W6zuk4$BGsa^|!wpfOH$;nd+(FE+@mt4_+m%y*7- zDj0hdf;xTsr{FA4;3sO5ehvL8qqeXLodDpS!{yr=};z+sY95x3EYjkBd!F-^Hx+KlXq?EbT5#gV#JKgX1w5l;+t&?)79N`Vw}fpFgbJ94 zYe(_$_RuF##2R9_r5Sx^=ObOLZeV>bT-Z5a33B~A!cYLTrmF+k+h;_?=Hhip@ z>h$qNTF(An5$*N^a}5IzIHcC54c~H&Z1Bv7zCCR5EPh#q4fOJ!Sb&F)rD<8|2KHh( z9Idb$vyV+PRtL&-O{K*nxvih`rgX>9Jw_20DZQJ|v}PDcdblT^Ey`86D2}2(xsV>) zdefU4a~v~_57Z&6!M>vH!Vr8Fow^XZBSORI@bsUqY@_Q}7lDGgutO=!6vc-#tyz8? z2ja-jCMH@uA{^k_(Is%94PvPLPa*QlwpR?Y+StdgjfQ92UD;o3b4(PR76i7rw933O z3M{cgAPluWI7UvKn~5fRcwHnU{s4Tc7RmpY@M6*vHZDOadkyi5tG$Za*tfdBOG85Hq|*P z9uuLMw%rU+Kv5O#lb-J}H{1BC`kPUubWZz^<)j7?P>rL;x;XHOL((7ac8tbqHH8~! z*oEABYSO>ERG^VP-S$&jV*+ex!Di1|=WLD46Kn5H;S+0wag`*e4f_E5EOYad?K?&t zCH>QmuIF-y4A3%$E+Vxd3jrU@I(7%N79`%}Mf=LCjlBDEZSm1k`->-E z#M#t~Zzf%U`5JU^cf6p!<=AJQb}c3w5vVTr46NDeQ@eT6@n){$)3$3Yg^4={GY`ViM+6sI#tw7*m-W2%;}DXxQ``DN&Oj z$`25PdOqJ`K7-}dXW;)M8O`-lO+HxErnUTjtEj#vAVz8=f?6dpOYNriENah|QdOh2QmRW^ zRT_J=Mo<)w-|rd!>-xWZuIIe^p6|KOd2z0Df9?|{7A2Z4lA+}Si<=STsz<3>mKNGKG6)py103}2MW0Rq11(NLYf*MR;Eh;0Qzo2 zT`jASg3ViR?~rO3zrj=@+CQG*tDh`AJHQ(U@YCC}aDMe=QK1bVZ^=yYHKa+W9E{qU z(Y`orqJ$fX>0ue0P#nu z+k(vsiM1@_NLRgD)vS#xvYbl@Cl5T|<%sxZ8nD6Del`;W1R_sd%v-mAuzy;u_sI=+ z*-0fLhl2Rh6L$}Lw58KUVSdRh&T<$^SQFH*A7%U$Og{Ns)gXD660ZejFC^T?l^2`M zRg5q%Y~~1X>y`#wFfb8tzN#qef%kxnT~TZJLRm*u*P9pknDt7d?5(OAe|!D}Um`N^ z*w{jI@}Yb0#iorsF|8dAxX*9VzAkH;+ShVHXpwct&uR6VAEA`=OpDZ5KMQ%~*EN6a zSdp?{oo1$gBTk4&{|@%2u=>Te6T5mt1LGxwhxPefM$;%DNFp*lX+%8G%+?1xgFgh#kbXd=-*My5%OHVZ+|XIP}>L&slMXFv+q9Q7qG~RH; ztHI+zx6dHFX$-Ge?l&)NfQ?%KO%9iPR1w1;>@$@u8N}|(c}5#3NP&svnXT4nH_$eQ zkDnv(B`v)q9eTuBD+4QQlPAna7p%dprD-qHJY<)}qW8CLXYN89d{_PiZ}jrFKQ)MrBeU z2p!PYqHB=hR(raPD$dFoWw}6q6Kwh|&6?XfcgSmHZiti6N~VJM3k}5I)-LI+(o-7j zNp_Wrav+dWOqZ$q41-(OlFBPTl?Rr!bojS1F-KK#76s2OxqZNvNXiHdij^ z6RXv!O#8C>llL3wiBP?Og>?4rF%^jiC^BW`q|5$l{dc^+lJs0pbYU|>LOfGqz(a!zC=lgUHT#YPeUZW)fa~elaHHojQ7t8zppJRN z!ql)v-jnj9B?ql6KqEwToTA{dL*h)M7D1A`g4&KT-w&U3+zB2_`xSMfR-)B(Mq!@3mC;;C~5olPRfC@cm%P9yNdOl_fnDpi#JJ<9;>Y!A%4$S5J zorldl{;6g;c!0ZhWh@<|;i<&RbEYvp@41I{ox)0bF?(1X2gW*1p{1!}GT((LjM{W2 z=3glp1Fo*OsU1ke;2J##-;zKQJscQ*{JFJ#pua)O7{y=yvHinoyTCi+_VX_{N>8x0 zcj0b1weP5_?gDT)wnU?R9zY343rAklFYoJlS#PqZcb;uU$l4L!fKgII+F>UVf@jeY zwFjH|$X2!aM_xhEDn4zGG9p?-d&k9Vii^c?%X>WLIvOdiH!dn=+;kF=<(t6Z$Bemi z7zV*U*7kJ@VnW7e@4k)HJ1fvKo9GrL(lD+6l50kcXg@@I8&TXe@-D4j8+*w!(8GPGS9p~ay!5FKi zS_g4mT3s^#2_nDj;huRz;j@cQXlIz!H0$!KT3wu+k|8Sh!cJv z9PD>L8Q~gIOq(0z6}d%s&rOIN!H(r5drjs8F@b+G`}aO(DsqD4nqVR zVE^DqMxL_70e(RFg5o@y^=}f+Z!V#B!29xSe`Vj)5xVvFA?)(Y$QV8dHm5a3SRwII0@XAZJ#W7i3|nzn@gaJelHA`(G$7_Kq5=@!)hz<@j7 zvNPe&{1;y_zhypR)c|SSwcFNeAq2oq)FTd`{D?6G;<4PX&Q2p$%e6 zk3kWOKLT`__8c63$DZiZtY>#Zz;o-df(05nzn8CdI$!483Oc$*iVc7<@XwR)ME0(d zV&5$f1;Jd}@G!kCg_s(hsxSb6m3(e6YA@ruIX^&1n4P8 zjz&fHy1Fe7GM4FnN?X>32qmx57(&&c>WJ3-DA)4|Hw_7fNO^2=m@ui&c^wYXWD%p1 zg=hO~-1a;jO#0B1KnBW)I53A-t)A@Y@2w+qDh8APkm5=%vUAH~jB2Swe;B2e_Tcar z{09KWVvTE_s2rWLpCS^zrRj|D72)7Ik-DO!Tl=X|Bdm3IaUXeI3DWX%g$Oa02BMGQ ztkF#LB1N3e8?j;_veV0-OCZ8P@j+d(j}XzzP)Ar=U`|MtcG`(7k+2lTY`3u zR4yousM!Uxdw*sclY=0txGEAv^T^Gk$2Bzk-#rjJx0I$qq5XWi8bbrdm3X@VVXz(8_seE}h6 z*GeY%^W8`^SK?*N%5&v!gcW_sC>}`u?!`g%c-Q7N&n0J8f3_z6u<+bXpiQ#|JwjDn zI)L9S^(Xb8Q%Hq#Nc0^UIRKlbs*fi02vz!r-m_l|p1gK+%ysATcro5~A>CjeD=+-~ z=Y~cjUUlYQ!Q1m6Wc|z0bK?Z%j{hUgKN)@NpDF!66I=WRvH$jH(pld^hLjC5^gZBw N80wkoHfSTG{{h{zV_5(I From 576a5922b4d45a5d365219263ed40e21faf3c665 Mon Sep 17 00:00:00 2001 From: Stephen Barnes Date: Sat, 18 Sep 2021 14:50:05 -0500 Subject: [PATCH 55/79] Add config options for harvesters --- .../actors/HarvesterMovementBehaviour.java | 22 ++++++++++++++----- .../create/foundation/config/CKinetics.java | 4 ++++ 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/actors/HarvesterMovementBehaviour.java b/src/main/java/com/simibubi/create/content/contraptions/components/actors/HarvesterMovementBehaviour.java index 5b144822e..c66f22dcb 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/actors/HarvesterMovementBehaviour.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/actors/HarvesterMovementBehaviour.java @@ -12,6 +12,7 @@ import com.simibubi.create.content.contraptions.components.structureMovement.Mov import com.simibubi.create.content.contraptions.components.structureMovement.MovementContext; import com.simibubi.create.content.contraptions.components.structureMovement.render.ActorInstance; import com.simibubi.create.content.contraptions.components.structureMovement.render.ContraptionMatrices; +import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.utility.BlockHelper; import com.simibubi.create.foundation.utility.VecHelper; import com.simibubi.create.foundation.utility.worldWrappers.PlacementSimulationWorld; @@ -95,7 +96,9 @@ public class HarvesterMovementBehaviour extends MovementBehaviour { MutableBoolean seedSubtracted = new MutableBoolean(notCropButCuttable); BlockState state = stateVisited; BlockHelper.destroyBlockAs(world, pos, null, item, effectChance, stack -> { - if (!seedSubtracted.getValue() && stack.sameItem(new ItemStack(state.getBlock()))) { + if (AllConfigs.SERVER.kinetics.harvesterReplants.get() + && !seedSubtracted.getValue() + && stack.sameItem(new ItemStack(state.getBlock()))) { stack.shrink(1); seedSubtracted.setTrue(); } @@ -108,7 +111,7 @@ public class HarvesterMovementBehaviour extends MovementBehaviour { private boolean isValidCrop(World world, BlockPos pos, BlockState state) { if (state.getBlock() instanceof CropsBlock) { CropsBlock crop = (CropsBlock) state.getBlock(); - if (!crop.isMaxAge(state)) + if (!crop.isMaxAge(state) && !AllConfigs.SERVER.kinetics.harvestPartiallyGrown.get()) return false; return true; } @@ -120,9 +123,10 @@ public class HarvesterMovementBehaviour extends MovementBehaviour { if (!property.getName() .equals(BlockStateProperties.AGE_1.getName())) continue; - if (((IntegerProperty) property).getPossibleValues() - .size() - 1 != state.getValue((IntegerProperty) property) - .intValue()) + if (!AllConfigs.SERVER.kinetics.harvestPartiallyGrown.get() + && (((IntegerProperty) property).getPossibleValues().size() - 1 + != state.getValue((IntegerProperty) property) + .intValue())) continue; return true; } @@ -161,6 +165,14 @@ public class HarvesterMovementBehaviour extends MovementBehaviour { } private BlockState cutCrop(World world, BlockPos pos, BlockState state) { + if (!AllConfigs.SERVER.kinetics.harvesterReplants.get()) { + if (state.getFluidState() + .isEmpty()) + return Blocks.AIR.defaultBlockState(); + return state.getFluidState() + .createLegacyBlock(); + } + Block block = state.getBlock(); if (block instanceof CropsBlock) { CropsBlock crop = (CropsBlock) block; diff --git a/src/main/java/com/simibubi/create/foundation/config/CKinetics.java b/src/main/java/com/simibubi/create/foundation/config/CKinetics.java index 1ee7ec82c..3662cba3e 100644 --- a/src/main/java/com/simibubi/create/foundation/config/CKinetics.java +++ b/src/main/java/com/simibubi/create/foundation/config/CKinetics.java @@ -38,6 +38,8 @@ public class CKinetics extends ConfigBase { public ConfigInt maxCartCouplingLength = i(32, 1, "maxCartCouplingLength", Comments.maxCartCouplingLength); public ConfigEnum spawnerMovement = e(SpawnerMovementSetting.NO_PICKUP, "movableSpawners", Comments.spawnerMovement); + public ConfigBool harvestPartiallyGrown = b(false, "harvestPartiallyGrown", Comments.harvestPartiallyGrown); + public ConfigBool harvesterReplants = b(true, "harvesterReplants", Comments.harvesterReplants); public CStress stressValues = nested(1, CStress::new, Comments.stress); @@ -74,6 +76,8 @@ public class CKinetics extends ConfigBase { static String maxPistonPoles = "Maximum amount of extension poles behind a Mechanical Piston."; static String maxRopeLength = "Max length of rope available off a Rope Pulley."; static String maxCartCouplingLength = "Maximum allowed distance of two coupled minecarts."; + static String harvestPartiallyGrown = "Whether harvesters should break crops that aren't fully grown."; + static String harvesterReplants = "Whether harvesters should replant crops after harvesting."; static String stats = "Configure speed/capacity levels for requirements and indicators."; static String rpm = "[in Revolutions per Minute]"; static String su = "[in Stress Units]"; From 85d64010bd062706c595ce2a57e49cede42824b5 Mon Sep 17 00:00:00 2001 From: Stephen Barnes Date: Sat, 18 Sep 2021 16:14:40 -0500 Subject: [PATCH 56/79] Config option to make mounted storage output-only --- .../components/structureMovement/MovementBehaviour.java | 7 ++++++- .../com/simibubi/create/foundation/config/CKinetics.java | 3 +++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/MovementBehaviour.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/MovementBehaviour.java index b7b3400eb..08b834108 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/MovementBehaviour.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/MovementBehaviour.java @@ -5,6 +5,7 @@ import javax.annotation.Nullable; import com.jozufozu.flywheel.backend.material.MaterialManager; import com.simibubi.create.content.contraptions.components.structureMovement.render.ActorInstance; import com.simibubi.create.content.contraptions.components.structureMovement.render.ContraptionMatrices; +import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.utility.worldWrappers.PlacementSimulationWorld; import net.minecraft.client.renderer.IRenderTypeBuffer; @@ -33,7 +34,11 @@ public abstract class MovementBehaviour { } public void dropItem(MovementContext context, ItemStack stack) { - ItemStack remainder = ItemHandlerHelper.insertItem(context.contraption.inventory, stack, false); + ItemStack remainder; + if (AllConfigs.SERVER.kinetics.moveItemsToStorage.get()) + remainder = ItemHandlerHelper.insertItem(context.contraption.inventory, stack, false); + else + remainder = stack; if (remainder.isEmpty()) return; diff --git a/src/main/java/com/simibubi/create/foundation/config/CKinetics.java b/src/main/java/com/simibubi/create/foundation/config/CKinetics.java index 3662cba3e..f476c0a3d 100644 --- a/src/main/java/com/simibubi/create/foundation/config/CKinetics.java +++ b/src/main/java/com/simibubi/create/foundation/config/CKinetics.java @@ -38,6 +38,7 @@ public class CKinetics extends ConfigBase { public ConfigInt maxCartCouplingLength = i(32, 1, "maxCartCouplingLength", Comments.maxCartCouplingLength); public ConfigEnum spawnerMovement = e(SpawnerMovementSetting.NO_PICKUP, "movableSpawners", Comments.spawnerMovement); + public ConfigBool moveItemsToStorage = b(true, "moveItemsToStorage", Comments.moveItemsToStorage); public ConfigBool harvestPartiallyGrown = b(false, "harvestPartiallyGrown", Comments.harvestPartiallyGrown); public ConfigBool harvesterReplants = b(true, "harvesterReplants", Comments.harvesterReplants); @@ -76,6 +77,8 @@ public class CKinetics extends ConfigBase { static String maxPistonPoles = "Maximum amount of extension poles behind a Mechanical Piston."; static String maxRopeLength = "Max length of rope available off a Rope Pulley."; static String maxCartCouplingLength = "Maximum allowed distance of two coupled minecarts."; + static String moveItemsToStorage = + "Whether items mined or harvested by contraptions should be placed in their mounted storage."; static String harvestPartiallyGrown = "Whether harvesters should break crops that aren't fully grown."; static String harvesterReplants = "Whether harvesters should replant crops after harvesting."; static String stats = "Configure speed/capacity levels for requirements and indicators."; From f9791243f87c196bb11e2812cf2a865481d7ce30 Mon Sep 17 00:00:00 2001 From: Stephen Barnes Date: Sat, 18 Sep 2021 16:59:27 -0500 Subject: [PATCH 57/79] Add config option to prevent placing fluid source blocks --- .../content/contraptions/fluids/OpenEndedPipe.java | 5 +++++ .../fluids/actors/FluidFillingBehaviour.java | 9 ++++++--- .../com/simibubi/create/foundation/config/CFluids.java | 5 ++++- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/OpenEndedPipe.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/OpenEndedPipe.java index f0b119fa7..47e344737 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/OpenEndedPipe.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/OpenEndedPipe.java @@ -11,6 +11,7 @@ import javax.annotation.Nullable; import com.simibubi.create.AllFluids; import com.simibubi.create.content.contraptions.fluids.potion.PotionFluidHandler; import com.simibubi.create.foundation.advancement.AllTriggers; +import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.fluid.FluidHelper; import com.simibubi.create.foundation.utility.BlockFace; @@ -214,6 +215,10 @@ public class OpenEndedPipe extends FlowSource { .scheduleTick(outputPos, Fluids.WATER, 1); return true; } + + if (!AllConfigs.SERVER.fluids.placeFluidSourceBlocks.get()) + return true; + world.setBlock(outputPos, fluid.getFluid() .defaultFluidState() .createLegacyBlock(), 3); diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/FluidFillingBehaviour.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/FluidFillingBehaviour.java index 612b82201..f3d2635a4 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/FluidFillingBehaviour.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/FluidFillingBehaviour.java @@ -7,6 +7,7 @@ import java.util.Objects; import java.util.Set; import com.simibubi.create.foundation.advancement.AllTriggers; +import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.fluid.FluidHelper; import com.simibubi.create.foundation.tileEntity.SmartTileEntity; import com.simibubi.create.foundation.tileEntity.behaviour.BehaviourType; @@ -126,12 +127,13 @@ public class FluidFillingBehaviour extends FluidManipulationBehaviour { int maxBlocks = maxBlocks(); boolean evaporate = world.dimensionType() .ultraWarm() && fluid.is(FluidTags.WATER); + boolean canPlaceSources = AllConfigs.SERVER.fluids.placeFluidSourceBlocks.get(); - if ((!fillInfinite() && infinite) || evaporate) { + if ((!fillInfinite() && infinite) || evaporate || !canPlaceSources) { FluidState fluidState = world.getFluidState(rootPos); boolean equivalentTo = fluidState.getType() .isSame(fluid); - if (!equivalentTo && !evaporate) + if (!equivalentTo && !evaporate && canPlaceSources) return false; if (simulate) return true; @@ -142,7 +144,8 @@ public class FluidFillingBehaviour extends FluidManipulationBehaviour { int k = root.getZ(); world.playSound(null, i, j, k, SoundEvents.FIRE_EXTINGUISH, SoundCategory.BLOCKS, 0.5F, 2.6F + (world.random.nextFloat() - world.random.nextFloat()) * 0.8F); - } + } else if (!canPlaceSources) + AllTriggers.triggerForNearbyPlayers(AllTriggers.HOSE_PULLEY, world, tileEntity.getBlockPos(), 8); return true; } diff --git a/src/main/java/com/simibubi/create/foundation/config/CFluids.java b/src/main/java/com/simibubi/create/foundation/config/CFluids.java index f0c3c251c..3fdc99dac 100644 --- a/src/main/java/com/simibubi/create/foundation/config/CFluids.java +++ b/src/main/java/com/simibubi/create/foundation/config/CFluids.java @@ -12,6 +12,8 @@ public class CFluids extends ConfigBase { public ConfigBool fillInfinite = b(false, "fillInfinite",Comments.fillInfinite); public ConfigInt hosePulleyRange = i(128, 1, "hosePulleyRange", Comments.blocks, Comments.hosePulleyRange); + public ConfigBool placeFluidSourceBlocks = b(true, "placeFluidSourceBlocks", Comments.placeFluidSourceBlocks); + @Override public String getName() { return "fluids"; @@ -29,7 +31,8 @@ public class CFluids extends ConfigBase { static String toDisable = "[-1 to disable this behaviour]"; static String hosePulleyBlockThreshold = "The minimum amount of fluid blocks the hose pulley needs to find before deeming it an infinite source."; - static String fillInfinite="Does hose pulley poor fluids to the world even if it is an infinite source?"; + static String fillInfinite = "Does hose pulley pour fluids into infinite sources?"; + static String placeFluidSourceBlocks = "Can open-ended pipes and hose pulleys place fluid source blocks?"; } } From cff90d6211daf865af0d4ac636587c1ea6b9e4e5 Mon Sep 17 00:00:00 2001 From: Stephen Barnes Date: Sat, 18 Sep 2021 17:12:22 -0500 Subject: [PATCH 58/79] Fix hose pulley particle position bug --- .../contraptions/fluids/actors/FluidFillingBehaviour.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/FluidFillingBehaviour.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/FluidFillingBehaviour.java index f3d2635a4..814651f9d 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/FluidFillingBehaviour.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/FluidFillingBehaviour.java @@ -137,7 +137,7 @@ public class FluidFillingBehaviour extends FluidManipulationBehaviour { return false; if (simulate) return true; - playEffect(world, null, fluid, false); + playEffect(world, root, fluid, false); if (evaporate) { int i = root.getX(); int j = root.getY(); From 173eb6b7ab3a5f01cabf63fc9d4fc0707ad284bc Mon Sep 17 00:00:00 2001 From: PepperBell <44146161+PepperCode1@users.noreply.github.com> Date: Sat, 18 Sep 2021 17:40:57 -0700 Subject: [PATCH 59/79] Add data driven potato cannon projectile types - Allow defining custom potato cannon projectile types through JSON in datapacks - Separate PotatoCannonProjectileTypes into PotatoCannonProjectileType, PotatoProjectileTypeManager, and BuiltinPotatoProjectileTypes - Allow setting a custom render mode when building a projectile type - Prevent the potato cannon itself from being used as ammo --- src/main/java/com/simibubi/create/Create.java | 4 +- ...java => BuiltinPotatoProjectileTypes.java} | 200 +----------- .../curiosities/weapons/PotatoCannonItem.java | 23 +- .../weapons/PotatoCannonProjectileType.java | 295 ++++++++++++++++++ .../weapons/PotatoProjectileEntity.java | 12 +- .../weapons/PotatoProjectileRenderMode.java | 8 +- .../weapons/PotatoProjectileTypeManager.java | 160 ++++++++++ .../simibubi/create/events/CommonEvents.java | 5 +- .../foundation/mixin/PlayerListMixin.java | 25 ++ .../foundation/networking/AllPackets.java | 2 + src/main/resources/create.mixins.json | 1 + 11 files changed, 517 insertions(+), 218 deletions(-) rename src/main/java/com/simibubi/create/content/curiosities/weapons/{PotatoCannonProjectileTypes.java => BuiltinPotatoProjectileTypes.java} (71%) create mode 100644 src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoCannonProjectileType.java create mode 100644 src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoProjectileTypeManager.java create mode 100644 src/main/java/com/simibubi/create/foundation/mixin/PlayerListMixin.java diff --git a/src/main/java/com/simibubi/create/Create.java b/src/main/java/com/simibubi/create/Create.java index 26dffcdb9..1a4302196 100644 --- a/src/main/java/com/simibubi/create/Create.java +++ b/src/main/java/com/simibubi/create/Create.java @@ -11,7 +11,7 @@ import com.simibubi.create.api.behaviour.BlockSpoutingBehaviour; import com.simibubi.create.content.CreateItemGroup; import com.simibubi.create.content.contraptions.TorquePropagator; import com.simibubi.create.content.contraptions.components.structureMovement.train.capability.CapabilityMinecartController; -import com.simibubi.create.content.curiosities.weapons.PotatoCannonProjectileTypes; +import com.simibubi.create.content.curiosities.weapons.BuiltinPotatoProjectileTypes; import com.simibubi.create.content.logistics.RedstoneLinkNetworkHandler; import com.simibubi.create.content.palettes.AllPaletteBlocks; import com.simibubi.create.content.palettes.PalettesItemGroup; @@ -121,7 +121,7 @@ public class Create { CapabilityMinecartController.register(); AllPackets.registerPackets(); SchematicInstances.register(); - PotatoCannonProjectileTypes.register(); + BuiltinPotatoProjectileTypes.register(); CHUNK_UTIL.init(); diff --git a/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoCannonProjectileTypes.java b/src/main/java/com/simibubi/create/content/curiosities/weapons/BuiltinPotatoProjectileTypes.java similarity index 71% rename from src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoCannonProjectileTypes.java rename to src/main/java/com/simibubi/create/content/curiosities/weapons/BuiltinPotatoProjectileTypes.java index cb1159fbe..c3856616c 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoCannonProjectileTypes.java +++ b/src/main/java/com/simibubi/create/content/curiosities/weapons/BuiltinPotatoProjectileTypes.java @@ -1,8 +1,5 @@ package com.simibubi.create.content.curiosities.weapons; -import java.util.HashMap; -import java.util.Map; -import java.util.Optional; import java.util.UUID; import java.util.function.BiPredicate; import java.util.function.Predicate; @@ -23,7 +20,6 @@ import net.minecraft.entity.monster.ZombieVillagerEntity; import net.minecraft.entity.passive.FoxEntity; import net.minecraft.item.Food; import net.minecraft.item.Foods; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; import net.minecraft.potion.Effect; @@ -31,8 +27,6 @@ import net.minecraft.potion.EffectInstance; import net.minecraft.potion.Effects; import net.minecraft.util.Direction; import net.minecraft.util.Hand; -import net.minecraft.util.IItemProvider; -import net.minecraft.util.ResourceLocation; import net.minecraft.util.SoundCategory; import net.minecraft.util.SoundEvent; import net.minecraft.util.SoundEvents; @@ -50,16 +44,14 @@ import net.minecraftforge.event.ForgeEventFactory; import net.minecraftforge.event.entity.living.EntityTeleportEvent; import net.minecraftforge.registries.IRegistryDelegate; -public class PotatoCannonProjectileTypes { +public class BuiltinPotatoProjectileTypes { private static final GameProfile ZOMBIE_CONVERTER_NAME = new GameProfile(UUID.fromString("be12d3dc-27d3-4992-8c97-66be53fd49c5"), "Converter"); private static final WorldAttached ZOMBIE_CONVERTERS = new WorldAttached<>(w -> new FakePlayer((ServerWorld) w, ZOMBIE_CONVERTER_NAME)); - public static final Map ALL = new HashMap<>(); - public static final Map, PotatoCannonProjectileTypes> ITEM_MAP = new HashMap<>(); - public static final PotatoCannonProjectileTypes + public static final PotatoCannonProjectileType FALLBACK = create("fallback").damage(0) .register(), @@ -250,94 +242,11 @@ public class PotatoCannonProjectileTypes { .preEntityHit(setFire(12)) .soundPitch(1.0f) .registerAndAssign(AllItems.BLAZE_CAKE.get()) + ; - public static void registerType(ResourceLocation resLoc, PotatoCannonProjectileTypes type) { - synchronized (ALL) { - ALL.put(resLoc, type); - } - } - - public static void assignType(IRegistryDelegate item, PotatoCannonProjectileTypes type) { - synchronized (ITEM_MAP) { - ITEM_MAP.put(item, type); - } - } - - public static Optional getProjectileTypeOf(ItemStack item) { - if (item.isEmpty()) - return Optional.empty(); - return Optional.ofNullable(ITEM_MAP.get(item.getItem().delegate)); - } - - public static void register() {} - - private static PotatoCannonProjectileTypes.Builder create(String name) { - return new PotatoCannonProjectileTypes.Builder(Create.asResource(name)); - } - - private float gravityMultiplier = 1; - private float velocityMultiplier = 1; - private float drag = 0.99f; - private float knockback = 1; - private int reloadTicks = 10; - private int damage = 1; - private int split = 1; - private float fwoompPitch = 1; - private boolean sticky = false; - private PotatoProjectileRenderMode renderMode = new PotatoProjectileRenderMode.Billboard(); - private Predicate preEntityHit = e -> false; // True if hit should be canceled - private Predicate onEntityHit = e -> false; // True if shouldn't recover projectile - private BiPredicate onBlockHit = (w, ray) -> false; - - public float getGravityMultiplier() { - return gravityMultiplier; - } - - public float getDrag() { - return drag; - } - - public int getSplit() { - return split; - } - - public float getVelocityMultiplier() { - return velocityMultiplier; - } - - public float getKnockback() { - return knockback; - } - - public int getReloadTicks() { - return reloadTicks; - } - - public float getSoundPitch() { - return fwoompPitch; - } - - public PotatoProjectileRenderMode getRenderMode() { - return renderMode; - } - - public int getDamage() { - return damage; - } - - public boolean isSticky() { return sticky; } - - public boolean preEntityHit(EntityRayTraceResult ray) { - return preEntityHit.test(ray); - } - - public boolean onEntityHit(EntityRayTraceResult ray) { - return onEntityHit.test(ray); - } - - public boolean onBlockHit(IWorld world, BlockRayTraceResult ray) { - return onBlockHit.test(world, ray); + private static PotatoCannonProjectileType.Builder create(String name) { + return new PotatoCannonProjectileType.Builder(Create.asResource(name)); } private static Predicate setFire(int seconds) { @@ -477,103 +386,6 @@ public class PotatoCannonProjectileTypes { }; } - public static class Builder { - - protected ResourceLocation loc; - protected PotatoCannonProjectileTypes result; - - public Builder(ResourceLocation loc) { - this.result = new PotatoCannonProjectileTypes(); - this.loc = loc; - } - - public Builder damage(int damage) { - result.damage = damage; - return this; - } - - public Builder gravity(float modifier) { - result.gravityMultiplier = modifier; - return this; - } - - public Builder knockback(float knockback) { - result.knockback = knockback; - return this; - } - - public Builder drag(float drag) { - result.drag = drag; - return this; - } - - public Builder reloadTicks(int reload) { - result.reloadTicks = reload; - return this; - } - - public Builder splitInto(int split) { - result.split = split; - return this; - } - - public Builder soundPitch(float pitch) { - result.fwoompPitch = pitch; - return this; - } - - public Builder velocity(float velocity) { - result.velocityMultiplier = velocity; - return this; - } - - public Builder renderTumbling() { - result.renderMode = new PotatoProjectileRenderMode.Tumble(); - return this; - } - - public Builder renderBillboard() { - result.renderMode = new PotatoProjectileRenderMode.Billboard(); - return this; - } - - public Builder renderTowardMotion(int spriteAngle, float spin) { - result.renderMode = new PotatoProjectileRenderMode.TowardMotion(spriteAngle, spin); - return this; - } - - public Builder sticky() { - result.sticky = true; - return this; - } - - public Builder preEntityHit(Predicate callback) { - result.preEntityHit = callback; - return this; - } - - public Builder onEntityHit(Predicate callback) { - result.onEntityHit = callback; - return this; - } - - public Builder onBlockHit(BiPredicate callback) { - result.onBlockHit = callback; - return this; - } - - public PotatoCannonProjectileTypes register() { - registerType(loc, result); - return result; - } - - public PotatoCannonProjectileTypes registerAndAssign(IItemProvider... items) { - registerType(loc, result); - for (IItemProvider provider : items) - assignType(provider.asItem().delegate, result); - return result; - } - - } + public static void register() {} } diff --git a/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoCannonItem.java b/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoCannonItem.java index 7c7db65a1..46fb0767d 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoCannonItem.java +++ b/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoCannonItem.java @@ -49,13 +49,12 @@ public class PotatoCannonItem extends ShootableItem { public static ItemStack CLIENT_CURRENT_AMMO = ItemStack.EMPTY; public static final int MAX_DAMAGE = 100; - public PotatoCannonItem(Properties p_i48487_1_) { - super(p_i48487_1_); + public PotatoCannonItem(Properties properties) { + super(properties); } @Override - public boolean canAttackBlock(BlockState p_195938_1_, World p_195938_2_, BlockPos p_195938_3_, - PlayerEntity p_195938_4_) { + public boolean canAttackBlock(BlockState state, World world, BlockPos pos, PlayerEntity player) { return false; } @@ -137,8 +136,8 @@ public class PotatoCannonItem extends ShootableItem { .subtract(player.position() .add(0, player.getEyeHeight(), 0)); - PotatoCannonProjectileTypes projectileType = PotatoCannonProjectileTypes.getProjectileTypeOf(itemStack) - .orElse(PotatoCannonProjectileTypes.FALLBACK); + PotatoCannonProjectileType projectileType = PotatoProjectileTypeManager.getTypeForStack(itemStack) + .orElse(BuiltinPotatoProjectileTypes.FALLBACK); Vector3d lookVec = player.getLookAngle(); Vector3d motion = lookVec.add(correction) .normalize() @@ -181,8 +180,8 @@ public class PotatoCannonItem extends ShootableItem { stack.hurtAndBreak(1, player, p -> p.broadcastBreakEvent(hand)); Integer cooldown = - findAmmoInInventory(world, player, stack).flatMap(PotatoCannonProjectileTypes::getProjectileTypeOf) - .map(PotatoCannonProjectileTypes::getReloadTicks) + findAmmoInInventory(world, player, stack).flatMap(PotatoProjectileTypeManager::getTypeForStack) + .map(PotatoCannonProjectileType::getReloadTicks) .orElse(10); ShootableGadgetItemMethods.applyCooldown(player, stack, hand, this::isCannon, cooldown); @@ -200,7 +199,7 @@ public class PotatoCannonItem extends ShootableItem { private Optional findAmmoInInventory(World world, PlayerEntity player, ItemStack held) { ItemStack findAmmo = player.getProjectile(held); - return PotatoCannonProjectileTypes.getProjectileTypeOf(findAmmo) + return PotatoProjectileTypeManager.getTypeForStack(findAmmo) .map($ -> findAmmo); } @@ -215,7 +214,7 @@ public class PotatoCannonItem extends ShootableItem { if (player == null) return Optional.empty(); ItemStack findAmmo = player.getProjectile(cannon); - Optional found = PotatoCannonProjectileTypes.getProjectileTypeOf(findAmmo) + Optional found = PotatoProjectileTypeManager.getTypeForStack(findAmmo) .map($ -> findAmmo); found.ifPresent(stack -> CLIENT_CURRENT_AMMO = stack); return found; @@ -237,7 +236,7 @@ public class PotatoCannonItem extends ShootableItem { tooltip.add(new StringTextComponent("")); tooltip.add(new TranslationTextComponent(ammo.getDescriptionId()).append(new StringTextComponent(":")) .withStyle(TextFormatting.GRAY)); - PotatoCannonProjectileTypes type = PotatoCannonProjectileTypes.getProjectileTypeOf(ammo) + PotatoCannonProjectileType type = PotatoProjectileTypeManager.getTypeForStack(ammo) .get(); StringTextComponent spacing = new StringTextComponent(" "); TextFormatting green = TextFormatting.GREEN; @@ -269,7 +268,7 @@ public class PotatoCannonItem extends ShootableItem { @Override public Predicate getAllSupportedProjectiles() { - return stack -> PotatoCannonProjectileTypes.getProjectileTypeOf(stack) + return stack -> PotatoProjectileTypeManager.getTypeForStack(stack) .isPresent(); } diff --git a/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoCannonProjectileType.java b/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoCannonProjectileType.java new file mode 100644 index 000000000..303d83f7e --- /dev/null +++ b/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoCannonProjectileType.java @@ -0,0 +1,295 @@ +package com.simibubi.create.content.curiosities.weapons; + +import java.util.HashSet; +import java.util.Set; +import java.util.function.BiPredicate; +import java.util.function.Consumer; +import java.util.function.Predicate; + +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonPrimitive; + +import net.minecraft.item.Item; +import net.minecraft.network.PacketBuffer; +import net.minecraft.util.IItemProvider; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.ResourceLocationException; +import net.minecraft.util.math.BlockRayTraceResult; +import net.minecraft.util.math.EntityRayTraceResult; +import net.minecraft.world.IWorld; +import net.minecraftforge.registries.ForgeRegistries; +import net.minecraftforge.registries.IRegistryDelegate; + +public class PotatoCannonProjectileType { + + private Set> items = new HashSet<>(); + + private int reloadTicks = 10; + private int damage = 1; + private int split = 1; + private float knockback = 1; + private float drag = 0.99f; + private float velocityMultiplier = 1; + private float gravityMultiplier = 1; + private float soundPitch = 1; + private boolean sticky = false; + private PotatoProjectileRenderMode renderMode = PotatoProjectileRenderMode.Billboard.INSTANCE; + + private Predicate preEntityHit = e -> false; // True if hit should be canceled + private Predicate onEntityHit = e -> false; // True if shouldn't recover projectile + private BiPredicate onBlockHit = (w, ray) -> false; + + protected PotatoCannonProjectileType() { + } + + public Set> getItems() { + return items; + } + + public int getReloadTicks() { + return reloadTicks; + } + + public int getDamage() { + return damage; + } + + public int getSplit() { + return split; + } + + public float getKnockback() { + return knockback; + } + + public float getDrag() { + return drag; + } + + public float getVelocityMultiplier() { + return velocityMultiplier; + } + + public float getGravityMultiplier() { + return gravityMultiplier; + } + + public float getSoundPitch() { + return soundPitch; + } + + public boolean isSticky() { + return sticky; + } + + public PotatoProjectileRenderMode getRenderMode() { + return renderMode; + } + + public boolean preEntityHit(EntityRayTraceResult ray) { + return preEntityHit.test(ray); + } + + public boolean onEntityHit(EntityRayTraceResult ray) { + return onEntityHit.test(ray); + } + + public boolean onBlockHit(IWorld world, BlockRayTraceResult ray) { + return onBlockHit.test(world, ray); + } + + public static PotatoCannonProjectileType fromJson(JsonObject object) { + PotatoCannonProjectileType type = new PotatoCannonProjectileType(); + try { + JsonElement itemsElement = object.get("items"); + if (itemsElement != null && itemsElement.isJsonArray()) { + for (JsonElement element : itemsElement.getAsJsonArray()) { + if (element.isJsonPrimitive()) { + JsonPrimitive primitive = element.getAsJsonPrimitive(); + if (primitive.isString()) { + try { + Item item = ForgeRegistries.ITEMS.getValue(new ResourceLocation(primitive.getAsString())); + if (item != null) { + type.items.add(item.delegate); + } + } catch (ResourceLocationException e) { + // + } + } + } + } + } + + parseJsonPrimitive(object, "reload_ticks", JsonPrimitive::isNumber, primitive -> type.reloadTicks = primitive.getAsInt()); + parseJsonPrimitive(object, "damage", JsonPrimitive::isNumber, primitive -> type.damage = primitive.getAsInt()); + parseJsonPrimitive(object, "split", JsonPrimitive::isNumber, primitive -> type.split = primitive.getAsInt()); + parseJsonPrimitive(object, "knockback", JsonPrimitive::isNumber, primitive -> type.knockback = primitive.getAsFloat()); + parseJsonPrimitive(object, "drag", JsonPrimitive::isNumber, primitive -> type.drag = primitive.getAsFloat()); + parseJsonPrimitive(object, "velocity_multiplier", JsonPrimitive::isNumber, primitive -> type.velocityMultiplier = primitive.getAsFloat()); + parseJsonPrimitive(object, "gravity_multiplier", JsonPrimitive::isNumber, primitive -> type.gravityMultiplier = primitive.getAsFloat()); + parseJsonPrimitive(object, "sound_pitch", JsonPrimitive::isNumber, primitive -> type.soundPitch = primitive.getAsFloat()); + parseJsonPrimitive(object, "sticky", JsonPrimitive::isBoolean, primitive -> type.sticky = primitive.getAsBoolean()); + } catch (Exception e) { + // + } + return type; + } + + private static void parseJsonPrimitive(JsonObject object, String key, Predicate predicate, Consumer consumer) { + JsonElement element = object.get(key); + if (element != null && element.isJsonPrimitive()) { + JsonPrimitive primitive = element.getAsJsonPrimitive(); + if (predicate.test(primitive)) { + consumer.accept(primitive); + } + } + } + + public static void toBuffer(PotatoCannonProjectileType type, PacketBuffer buffer) { + buffer.writeVarInt(type.items.size()); + for (IRegistryDelegate delegate : type.items) { + buffer.writeResourceLocation(delegate.name()); + } + buffer.writeInt(type.reloadTicks); + buffer.writeInt(type.damage); + buffer.writeInt(type.split); + buffer.writeFloat(type.knockback); + buffer.writeFloat(type.drag); + buffer.writeFloat(type.velocityMultiplier); + buffer.writeFloat(type.gravityMultiplier); + buffer.writeFloat(type.soundPitch); + buffer.writeBoolean(type.sticky); + } + + public static PotatoCannonProjectileType fromBuffer(PacketBuffer buffer) { + PotatoCannonProjectileType type = new PotatoCannonProjectileType(); + int size = buffer.readVarInt(); + for (int i = 0; i < size; i++) { + Item item = ForgeRegistries.ITEMS.getValue(buffer.readResourceLocation()); + if (item != null) { + type.items.add(item.delegate); + } + } + type.reloadTicks = buffer.readInt(); + type.damage = buffer.readInt(); + type.split = buffer.readInt(); + type.knockback = buffer.readFloat(); + type.drag = buffer.readFloat(); + type.velocityMultiplier = buffer.readFloat(); + type.gravityMultiplier = buffer.readFloat(); + type.soundPitch = buffer.readFloat(); + type.sticky = buffer.readBoolean(); + return type; + } + + public static class Builder { + + protected ResourceLocation id; + protected PotatoCannonProjectileType result; + + public Builder(ResourceLocation id) { + this.id = id; + this.result = new PotatoCannonProjectileType(); + } + + public Builder reloadTicks(int reload) { + result.reloadTicks = reload; + return this; + } + + public Builder damage(int damage) { + result.damage = damage; + return this; + } + + public Builder splitInto(int split) { + result.split = split; + return this; + } + + public Builder knockback(float knockback) { + result.knockback = knockback; + return this; + } + + public Builder drag(float drag) { + result.drag = drag; + return this; + } + + public Builder velocity(float velocity) { + result.velocityMultiplier = velocity; + return this; + } + + public Builder gravity(float modifier) { + result.gravityMultiplier = modifier; + return this; + } + + public Builder soundPitch(float pitch) { + result.soundPitch = pitch; + return this; + } + + public Builder sticky() { + result.sticky = true; + return this; + } + + public Builder renderMode(PotatoProjectileRenderMode renderMode) { + result.renderMode = renderMode; + return this; + } + + public Builder renderBillboard() { + renderMode(PotatoProjectileRenderMode.Billboard.INSTANCE); + return this; + } + + public Builder renderTumbling() { + renderMode(PotatoProjectileRenderMode.Tumble.INSTANCE); + return this; + } + + public Builder renderTowardMotion(int spriteAngle, float spin) { + renderMode(new PotatoProjectileRenderMode.TowardMotion(spriteAngle, spin)); + return this; + } + + public Builder preEntityHit(Predicate callback) { + result.preEntityHit = callback; + return this; + } + + public Builder onEntityHit(Predicate callback) { + result.onEntityHit = callback; + return this; + } + + public Builder onBlockHit(BiPredicate callback) { + result.onBlockHit = callback; + return this; + } + + public Builder addItems(IItemProvider... items) { + for (IItemProvider provider : items) + result.items.add(provider.asItem().delegate); + return this; + } + + public PotatoCannonProjectileType register() { + PotatoProjectileTypeManager.registerBuiltinType(id, result); + return result; + } + + public PotatoCannonProjectileType registerAndAssign(IItemProvider... items) { + addItems(items); + register(); + return result; + } + + } + +} diff --git a/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoProjectileEntity.java b/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoProjectileEntity.java index 0cd481f15..b6e188202 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoProjectileEntity.java +++ b/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoProjectileEntity.java @@ -39,7 +39,7 @@ import net.minecraftforge.items.ItemHandlerHelper; public class PotatoProjectileEntity extends DamagingProjectileEntity implements IEntityAdditionalSpawnData { - PotatoCannonProjectileTypes type; + PotatoCannonProjectileType type; ItemStack stack = ItemStack.EMPTY; Entity stuckEntity; @@ -63,10 +63,10 @@ public class PotatoProjectileEntity extends DamagingProjectileEntity implements this.stack = stack; } - public PotatoCannonProjectileTypes getProjectileType() { + public PotatoCannonProjectileType getProjectileType() { if (type == null) - type = PotatoCannonProjectileTypes.getProjectileTypeOf(stack) - .orElse(PotatoCannonProjectileTypes.FALLBACK); + type = PotatoProjectileTypeManager.getTypeForStack(stack) + .orElse(BuiltinPotatoProjectileTypes.FALLBACK); return type; } @@ -128,7 +128,7 @@ public class PotatoProjectileEntity extends DamagingProjectileEntity implements } public void tick() { - PotatoCannonProjectileTypes projectileType = getProjectileType(); + PotatoCannonProjectileType projectileType = getProjectileType(); Entity stuckEntity = getStuckEntity(); if (stuckEntity != null) { @@ -174,7 +174,7 @@ public class PotatoProjectileEntity extends DamagingProjectileEntity implements Vector3d hit = ray.getLocation(); Entity target = ray.getEntity(); - PotatoCannonProjectileTypes projectileType = getProjectileType(); + PotatoCannonProjectileType projectileType = getProjectileType(); float damage = projectileType.getDamage() * additionalDamageMult; float knockback = projectileType.getKnockback() + additionalKnockback; Entity owner = this.getOwner(); diff --git a/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoProjectileRenderMode.java b/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoProjectileRenderMode.java index 14908086d..799ed35e1 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoProjectileRenderMode.java +++ b/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoProjectileRenderMode.java @@ -1,7 +1,5 @@ package com.simibubi.create.content.curiosities.weapons; -import static com.simibubi.create.content.curiosities.weapons.PotatoProjectileRenderMode.entityRandom; - import com.jozufozu.flywheel.util.transform.MatrixTransformStack; import com.mojang.blaze3d.matrix.MatrixStack; import com.simibubi.create.foundation.utility.AngleHelper; @@ -20,6 +18,8 @@ public interface PotatoProjectileRenderMode { public static class Billboard implements PotatoProjectileRenderMode { + public static final Billboard INSTANCE = new Billboard(); + @Override @OnlyIn(Dist.CLIENT) public void transform(MatrixStack ms, PotatoProjectileEntity entity, float pt) { @@ -35,10 +35,13 @@ public interface PotatoProjectileRenderMode { .rotateX(180 + AngleHelper.deg(MathHelper.atan2(diff.y, -MathHelper.sqrt(diff.x * diff.x + diff.z * diff.z)))); } + } public static class Tumble extends Billboard { + public static final Tumble INSTANCE = new Tumble(); + @Override @OnlyIn(Dist.CLIENT) public void transform(MatrixStack ms, PotatoProjectileEntity entity, float pt) { @@ -47,6 +50,7 @@ public interface PotatoProjectileRenderMode { .rotateZ((entity.tickCount + pt) * 2 * entityRandom(entity, 16)) .rotateX((entity.tickCount + pt) * entityRandom(entity, 32)); } + } public static class TowardMotion implements PotatoProjectileRenderMode { diff --git a/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoProjectileTypeManager.java b/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoProjectileTypeManager.java new file mode 100644 index 000000000..86539ef5e --- /dev/null +++ b/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoProjectileTypeManager.java @@ -0,0 +1,160 @@ +package com.simibubi.create.content.curiosities.weapons; + +import java.util.HashMap; +import java.util.Map; +import java.util.Optional; +import java.util.function.Supplier; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.simibubi.create.AllItems; +import com.simibubi.create.foundation.networking.AllPackets; +import com.simibubi.create.foundation.networking.SimplePacketBase; + +import net.minecraft.client.resources.JsonReloadListener; +import net.minecraft.entity.player.ServerPlayerEntity; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.network.PacketBuffer; +import net.minecraft.profiler.IProfiler; +import net.minecraft.resources.IResourceManager; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.fml.network.NetworkEvent.Context; +import net.minecraftforge.fml.network.PacketDistributor; +import net.minecraftforge.registries.IRegistryDelegate; + +public class PotatoProjectileTypeManager { + + private static final Map BUILTIN_TYPE_MAP = new HashMap<>(); + private static final Map CUSTOM_TYPE_MAP = new HashMap<>(); + private static final Map, PotatoCannonProjectileType> ITEM_TO_TYPE_MAP = new HashMap<>(); + + public static void registerBuiltinType(ResourceLocation id, PotatoCannonProjectileType type) { + synchronized (BUILTIN_TYPE_MAP) { + BUILTIN_TYPE_MAP.put(id, type); + } + } + + public static PotatoCannonProjectileType getBuiltinType(ResourceLocation id) { + return BUILTIN_TYPE_MAP.get(id); + } + + public static PotatoCannonProjectileType getCustomType(ResourceLocation id) { + return CUSTOM_TYPE_MAP.get(id); + } + + public static PotatoCannonProjectileType getTypeForItem(IRegistryDelegate item) { + return ITEM_TO_TYPE_MAP.get(item); + } + + public static Optional getTypeForStack(ItemStack item) { + if (item.isEmpty()) + return Optional.empty(); + return Optional.ofNullable(getTypeForItem(item.getItem().delegate)); + } + + public static void clear() { + CUSTOM_TYPE_MAP.clear(); + ITEM_TO_TYPE_MAP.clear(); + } + + public static void fillItemMap() { + for (Map.Entry entry : BUILTIN_TYPE_MAP.entrySet()) { + PotatoCannonProjectileType type = entry.getValue(); + for (IRegistryDelegate delegate : type.getItems()) { + ITEM_TO_TYPE_MAP.put(delegate, type); + } + } + for (Map.Entry entry : CUSTOM_TYPE_MAP.entrySet()) { + PotatoCannonProjectileType type = entry.getValue(); + for (IRegistryDelegate delegate : type.getItems()) { + ITEM_TO_TYPE_MAP.put(delegate, type); + } + } + ITEM_TO_TYPE_MAP.remove(AllItems.POTATO_CANNON.get().delegate); + } + + public static void toBuffer(PacketBuffer buffer) { + buffer.writeVarInt(CUSTOM_TYPE_MAP.size()); + for (Map.Entry entry : CUSTOM_TYPE_MAP.entrySet()) { + buffer.writeResourceLocation(entry.getKey()); + PotatoCannonProjectileType.toBuffer(entry.getValue(), buffer); + } + } + + public static void fromBuffer(PacketBuffer buffer) { + clear(); + + int size = buffer.readVarInt(); + for (int i = 0; i < size; i++) { + CUSTOM_TYPE_MAP.put(buffer.readResourceLocation(), PotatoCannonProjectileType.fromBuffer(buffer)); + } + + fillItemMap(); + } + + public static void syncTo(ServerPlayerEntity player) { + AllPackets.channel.send(PacketDistributor.PLAYER.with(() -> player), new SyncPacket()); + } + + public static void syncToAll() { + AllPackets.channel.send(PacketDistributor.ALL.noArg(), new SyncPacket()); + } + + public static class ReloadListener extends JsonReloadListener { + + private static final Gson GSON = new Gson(); + + public static final ReloadListener INSTANCE = new ReloadListener(); + + protected ReloadListener() { + super(GSON, "potato_cannon_projectile_types"); + } + + @Override + protected void apply(Map map, IResourceManager resourceManager, IProfiler profiler) { + clear(); + + for (Map.Entry entry : map.entrySet()) { + JsonElement element = entry.getValue(); + if (element.isJsonObject()) { + ResourceLocation id = entry.getKey(); + JsonObject object = element.getAsJsonObject(); + PotatoCannonProjectileType type = PotatoCannonProjectileType.fromJson(object); + CUSTOM_TYPE_MAP.put(id, type); + } + } + + fillItemMap(); + } + + } + + public static class SyncPacket extends SimplePacketBase { + + private PacketBuffer buffer; + + public SyncPacket() { + } + + public SyncPacket(PacketBuffer buffer) { + this.buffer = buffer; + } + + @Override + public void write(PacketBuffer buffer) { + toBuffer(buffer); + } + + @Override + public void handle(Supplier context) { + context.get().enqueueWork(() -> { + fromBuffer(buffer); + }); + context.get().setPacketHandled(true); + } + + } + +} diff --git a/src/main/java/com/simibubi/create/events/CommonEvents.java b/src/main/java/com/simibubi/create/events/CommonEvents.java index 3631e9b0b..ca6acbd9f 100644 --- a/src/main/java/com/simibubi/create/events/CommonEvents.java +++ b/src/main/java/com/simibubi/create/events/CommonEvents.java @@ -8,6 +8,7 @@ import com.simibubi.create.content.contraptions.components.structureMovement.tra import com.simibubi.create.content.contraptions.fluids.recipe.FluidTransferRecipes; import com.simibubi.create.content.contraptions.fluids.recipe.PotionMixingRecipeManager; import com.simibubi.create.content.contraptions.wrench.WrenchItem; +import com.simibubi.create.content.curiosities.weapons.PotatoProjectileTypeManager; import com.simibubi.create.content.curiosities.zapper.ZapperInteractionHandler; import com.simibubi.create.content.curiosities.zapper.ZapperItem; import com.simibubi.create.content.logistics.item.LinkedControllerServerHandler; @@ -42,7 +43,6 @@ import net.minecraftforge.event.entity.player.PlayerEvent; import net.minecraftforge.event.world.BlockEvent.FluidPlaceBlockEvent; import net.minecraftforge.event.world.ChunkEvent; import net.minecraftforge.event.world.WorldEvent; -import net.minecraftforge.eventbus.api.EventPriority; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod.EventBusSubscriber; import net.minecraftforge.fml.event.server.FMLServerStoppingEvent; @@ -118,7 +118,7 @@ public class CommonEvents { WrenchItem.wrenchInstaKillsMinecarts(event); } - @SubscribeEvent(priority = EventPriority.NORMAL) + @SubscribeEvent public static void registerCommands(RegisterCommandsEvent event) { AllCommands.register(event.getDispatcher()); } @@ -128,6 +128,7 @@ public class CommonEvents { event.addListener(RecipeFinder.LISTENER); event.addListener(PotionMixingRecipeManager.LISTENER); event.addListener(FluidTransferRecipes.LISTENER); + event.addListener(PotatoProjectileTypeManager.ReloadListener.INSTANCE); } @SubscribeEvent diff --git a/src/main/java/com/simibubi/create/foundation/mixin/PlayerListMixin.java b/src/main/java/com/simibubi/create/foundation/mixin/PlayerListMixin.java new file mode 100644 index 000000000..acc2a16dc --- /dev/null +++ b/src/main/java/com/simibubi/create/foundation/mixin/PlayerListMixin.java @@ -0,0 +1,25 @@ +package com.simibubi.create.foundation.mixin; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import com.simibubi.create.content.curiosities.weapons.PotatoProjectileTypeManager; + +import net.minecraft.entity.player.ServerPlayerEntity; +import net.minecraft.network.NetworkManager; +import net.minecraft.server.management.PlayerList; + +@Mixin(PlayerList.class) +public class PlayerListMixin { + @Inject(at = @At(value = "INVOKE", target = "Lnet/minecraft/item/crafting/ServerRecipeBook;sendInitialRecipeBook(Lnet/minecraft/entity/player/ServerPlayerEntity;)V", shift = At.Shift.AFTER), method = "placeNewPlayer(Lnet/minecraft/network/NetworkManager;Lnet/minecraft/entity/player/ServerPlayerEntity;)V") + private void afterSendRecipeBookOnPlaceNewPlayer(NetworkManager networkManager, ServerPlayerEntity player, CallbackInfo ci) { + PotatoProjectileTypeManager.syncTo(player); + } + + @Inject(at = @At("TAIL"), method = "reloadResources()V") + private void onReloadResources(CallbackInfo ci) { + PotatoProjectileTypeManager.syncToAll(); + } +} diff --git a/src/main/java/com/simibubi/create/foundation/networking/AllPackets.java b/src/main/java/com/simibubi/create/foundation/networking/AllPackets.java index 079bc0cbd..81c9a9a2a 100644 --- a/src/main/java/com/simibubi/create/foundation/networking/AllPackets.java +++ b/src/main/java/com/simibubi/create/foundation/networking/AllPackets.java @@ -25,6 +25,7 @@ import com.simibubi.create.content.curiosities.bell.SoulPulseEffectPacket; import com.simibubi.create.content.curiosities.symmetry.SymmetryEffectPacket; import com.simibubi.create.content.curiosities.tools.BlueprintAssignCompleteRecipePacket; import com.simibubi.create.content.curiosities.tools.ExtendoGripInteractionPacket; +import com.simibubi.create.content.curiosities.weapons.PotatoProjectileTypeManager; import com.simibubi.create.content.curiosities.weapons.PotatoCannonPacket; import com.simibubi.create.content.curiosities.zapper.ZapperBeamPacket; import com.simibubi.create.content.logistics.block.depot.EjectorElytraPacket; @@ -117,6 +118,7 @@ public enum AllPackets { POTATO_CANNON(PotatoCannonPacket.class, PotatoCannonPacket::new, PLAY_TO_CLIENT), SOUL_PULSE(SoulPulseEffectPacket.class, SoulPulseEffectPacket::new, PLAY_TO_CLIENT), PERSISTENT_DATA(ISyncPersistentData.Packet.class, ISyncPersistentData.Packet::new, PLAY_TO_CLIENT), + SYNC_POTATO_PROJECTILE_TYPES(PotatoProjectileTypeManager.SyncPacket.class, PotatoProjectileTypeManager.SyncPacket::new, PLAY_TO_CLIENT), ; diff --git a/src/main/resources/create.mixins.json b/src/main/resources/create.mixins.json index dc2d36193..19029a55a 100644 --- a/src/main/resources/create.mixins.json +++ b/src/main/resources/create.mixins.json @@ -5,6 +5,7 @@ "compatibilityLevel": "JAVA_8", "refmap": "create.refmap.json", "mixins": [ + "PlayerListMixin" ], "client": [ "BreakProgressMixin", From a2043bebc56b1804a13abaa1686cb15daae1bec5 Mon Sep 17 00:00:00 2001 From: Stephen Barnes Date: Sun, 19 Sep 2021 01:10:38 -0500 Subject: [PATCH 60/79] Make FluidTransportBehaviour fields public --- .../contraptions/fluids/FluidTransportBehaviour.java | 6 +++--- .../create/content/contraptions/fluids/PipeConnection.java | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/FluidTransportBehaviour.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/FluidTransportBehaviour.java index 87d73c00c..0d7bb5199 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/FluidTransportBehaviour.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/FluidTransportBehaviour.java @@ -29,14 +29,14 @@ public abstract class FluidTransportBehaviour extends TileEntityBehaviour { public static BehaviourType TYPE = new BehaviourType<>(); - enum UpdatePhase { + public enum UpdatePhase { WAIT_FOR_PUMPS, // Do not run Layer II logic while pumps could still be distributing pressure FLIP_FLOWS, // Do not cut any flows until all pipes had a chance to reverse them IDLE; // Operate normally } - Map interfaces; - UpdatePhase phase; + public Map interfaces; + public UpdatePhase phase; public FluidTransportBehaviour(SmartTileEntity te) { super(te); diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/PipeConnection.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/PipeConnection.java index 240883516..3ef881ba0 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/PipeConnection.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/PipeConnection.java @@ -32,7 +32,7 @@ import net.minecraftforge.fml.DistExecutor; public class PipeConnection { - Direction side; + public Direction side; // Layer I Couple pressure; // [inbound, outward] From 994fe290215a77f3cb163ef1e97c2e47d960dd0b Mon Sep 17 00:00:00 2001 From: simibubi <31564874+simibubi@users.noreply.github.com> Date: Sun, 26 Sep 2021 20:45:24 +0200 Subject: [PATCH 61/79] Careful Deploying - Added the option to have held items not be consumed in deploying recipes --- src/generated/resources/.cache/cache | 26 +++++----- .../resources/assets/create/lang/en_us.json | 1 + .../assets/create/lang/unfinished/de_de.json | 3 +- .../assets/create/lang/unfinished/es_es.json | 3 +- .../assets/create/lang/unfinished/fr_fr.json | 3 +- .../assets/create/lang/unfinished/it_it.json | 3 +- .../assets/create/lang/unfinished/ja_jp.json | 3 +- .../assets/create/lang/unfinished/ko_kr.json | 3 +- .../assets/create/lang/unfinished/nl_nl.json | 3 +- .../assets/create/lang/unfinished/pl_pl.json | 3 +- .../assets/create/lang/unfinished/pt_br.json | 3 +- .../assets/create/lang/unfinished/ru_ru.json | 3 +- .../assets/create/lang/unfinished/zh_cn.json | 3 +- .../assets/create/lang/unfinished/zh_tw.json | 3 +- .../jei/category/DeployingCategory.java | 15 +++++- .../SequencedAssemblySubCategory.java | 17 +++++++ .../deployer/BeltDeployerCallbacks.java | 11 +++-- .../deployer/DeployerApplicationRecipe.java | 49 ++++++++++++++++--- .../ProcessingRecipeSerializer.java | 16 ++++-- .../assets/create/lang/default/messages.json | 1 + 20 files changed, 131 insertions(+), 41 deletions(-) diff --git a/src/generated/resources/.cache/cache b/src/generated/resources/.cache/cache index 28f03b4a8..a5943c70d 100644 --- a/src/generated/resources/.cache/cache +++ b/src/generated/resources/.cache/cache @@ -426,19 +426,19 @@ a3a11524cd3515fc01d905767b4b7ea782adaf03 assets/create/blockstates/yellow_seat.j 7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json fb760b12b4bc8114744d3acc6a597b2fad88d988 assets/create/lang/en_ud.json -66e8ae18a98d86c66393c908ab51eae5060b8e04 assets/create/lang/en_us.json -9e94c2420840c516e24dfd7968aaad61da24b5a2 assets/create/lang/unfinished/de_de.json -f1a6ed9a5812c89e7c7152c9abf2b64c133fd27d assets/create/lang/unfinished/es_es.json -23a46ae0bc7b2181f26eeed70801714a254d2587 assets/create/lang/unfinished/fr_fr.json -5e95153e640edc367b963489df8c92c459badcd3 assets/create/lang/unfinished/it_it.json -a951315b2591051dad6c53739fe554fe78595250 assets/create/lang/unfinished/ja_jp.json -419a1fc9af7d7ea0ccd612847df74e0b45380864 assets/create/lang/unfinished/ko_kr.json -dbc823d8cb38598e75871a2187b2a58d7f77f86a assets/create/lang/unfinished/nl_nl.json -ac609477c295be1705d3efc07848ffe6779fd397 assets/create/lang/unfinished/pl_pl.json -95e17b968103e0ef62411489e699d39ac7ff0b64 assets/create/lang/unfinished/pt_br.json -b37f50f613b0df44032fe5d618a5ce7227be8087 assets/create/lang/unfinished/ru_ru.json -fa465cd2c595bcd71449ad432a1908e27897177a assets/create/lang/unfinished/zh_cn.json -6192a7ede669ae6b6f8de6701b8a924d6a756c4a assets/create/lang/unfinished/zh_tw.json +fcd58b47e3fbe4039ea684dadd08d36bd0beaa7d assets/create/lang/en_us.json +2047ce757fe7b7d279b72c5d4d8d6f111e478b2f assets/create/lang/unfinished/de_de.json +3cb5a941527ad3981a094cb2599a28aa654c15b3 assets/create/lang/unfinished/es_es.json +008a67a90fc7d6d59d98c3ac4f4cd45cb47fbcc2 assets/create/lang/unfinished/fr_fr.json +80091dc7ed4ed81a18bce6e9fa0b5fc870a70c89 assets/create/lang/unfinished/it_it.json +a12b0fabb18a0bc7e50ad4e6760aa0a3f222edaf assets/create/lang/unfinished/ja_jp.json +e49e3d4cfcd43194e3904c94a167bc98179b40ff assets/create/lang/unfinished/ko_kr.json +47fa6e25a19d0f8c86178954da4b50aaec247ef4 assets/create/lang/unfinished/nl_nl.json +64581657991641f49c5888e379157939cb5bdc3c assets/create/lang/unfinished/pl_pl.json +d3f22a7ee26461f1369f100001098b9f165b7cb5 assets/create/lang/unfinished/pt_br.json +c2b821bd4c0b09ba0f255c40bcd379b9ad864f10 assets/create/lang/unfinished/ru_ru.json +c43f76c83bbd9c7ac9cd8ac7f82fa1b98347771b assets/create/lang/unfinished/zh_cn.json +e797c8d5e89b9ecc6bf82858a1c905f8b905da16 assets/create/lang/unfinished/zh_tw.json 487a511a01b2a4531fb672f917922312db78f958 assets/create/models/block/acacia_window.json b48060cba1a382f373a05bf0039054053eccf076 assets/create/models/block/acacia_window_pane_noside.json 3066db1bf03cffa1a9c7fbacf47ae586632f4eb3 assets/create/models/block/acacia_window_pane_noside_alt.json diff --git a/src/generated/resources/assets/create/lang/en_us.json b/src/generated/resources/assets/create/lang/en_us.json index 268153180..3b240d38c 100644 --- a/src/generated/resources/assets/create/lang/en_us.json +++ b/src/generated/resources/assets/create/lang/en_us.json @@ -752,6 +752,7 @@ "create.recipe.assembly.repeat": "Repeat Sequence %1$s Times", "create.recipe.assembly.junk": "Random salvage", "create.recipe.processing.chance": "%1$s%% Chance", + "create.recipe.deploying.not_consumed": "Not Consumed", "create.recipe.heat_requirement.none": "No Heating Required", "create.recipe.heat_requirement.heated": "Heated", "create.recipe.heat_requirement.superheated": "Super-Heated", diff --git a/src/generated/resources/assets/create/lang/unfinished/de_de.json b/src/generated/resources/assets/create/lang/unfinished/de_de.json index ce55f9519..fd2077686 100644 --- a/src/generated/resources/assets/create/lang/unfinished/de_de.json +++ b/src/generated/resources/assets/create/lang/unfinished/de_de.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1134", + "_": "Missing Localizations: 1135", "_": "->------------------------] Game Elements [------------------------<-", @@ -753,6 +753,7 @@ "create.recipe.assembly.repeat": "UNLOCALIZED: Repeat Sequence %1$s Times", "create.recipe.assembly.junk": "UNLOCALIZED: Random salvage", "create.recipe.processing.chance": "Chance: %1$s%%", + "create.recipe.deploying.not_consumed": "UNLOCALIZED: Not Consumed", "create.recipe.heat_requirement.none": "Keine Hitze benötigt", "create.recipe.heat_requirement.heated": "Wenig Hitze benötigt", "create.recipe.heat_requirement.superheated": "Viel Hitze benötigt", diff --git a/src/generated/resources/assets/create/lang/unfinished/es_es.json b/src/generated/resources/assets/create/lang/unfinished/es_es.json index 79a683627..6e7652f4d 100644 --- a/src/generated/resources/assets/create/lang/unfinished/es_es.json +++ b/src/generated/resources/assets/create/lang/unfinished/es_es.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 0", + "_": "Missing Localizations: 1", "_": "->------------------------] Game Elements [------------------------<-", @@ -753,6 +753,7 @@ "create.recipe.assembly.repeat": "Repetir la secuencia %1$s veces", "create.recipe.assembly.junk": "Basura aleatoria", "create.recipe.processing.chance": "%1$s%% Chance", + "create.recipe.deploying.not_consumed": "UNLOCALIZED: Not Consumed", "create.recipe.heat_requirement.none": "No es necesario calentar", "create.recipe.heat_requirement.heated": "Calentado", "create.recipe.heat_requirement.superheated": "Súper-Calentado", diff --git a/src/generated/resources/assets/create/lang/unfinished/fr_fr.json b/src/generated/resources/assets/create/lang/unfinished/fr_fr.json index 2e0c26dd4..73fadc258 100644 --- a/src/generated/resources/assets/create/lang/unfinished/fr_fr.json +++ b/src/generated/resources/assets/create/lang/unfinished/fr_fr.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1386", + "_": "Missing Localizations: 1387", "_": "->------------------------] Game Elements [------------------------<-", @@ -753,6 +753,7 @@ "create.recipe.assembly.repeat": "UNLOCALIZED: Repeat Sequence %1$s Times", "create.recipe.assembly.junk": "UNLOCALIZED: Random salvage", "create.recipe.processing.chance": "%1$s%% de chance", + "create.recipe.deploying.not_consumed": "UNLOCALIZED: Not Consumed", "create.recipe.heat_requirement.none": "Pas de chauffage requis", "create.recipe.heat_requirement.heated": "Chauffé", "create.recipe.heat_requirement.superheated": "Surchauffé", diff --git a/src/generated/resources/assets/create/lang/unfinished/it_it.json b/src/generated/resources/assets/create/lang/unfinished/it_it.json index 8108827f1..e6df80ea8 100644 --- a/src/generated/resources/assets/create/lang/unfinished/it_it.json +++ b/src/generated/resources/assets/create/lang/unfinished/it_it.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 914", + "_": "Missing Localizations: 915", "_": "->------------------------] Game Elements [------------------------<-", @@ -753,6 +753,7 @@ "create.recipe.assembly.repeat": "UNLOCALIZED: Repeat Sequence %1$s Times", "create.recipe.assembly.junk": "UNLOCALIZED: Random salvage", "create.recipe.processing.chance": "%1$s%% di probabilità", + "create.recipe.deploying.not_consumed": "UNLOCALIZED: Not Consumed", "create.recipe.heat_requirement.none": "Nessun riscaldamento", "create.recipe.heat_requirement.heated": "Riscaldamento", "create.recipe.heat_requirement.superheated": "Super riscaldamento", diff --git a/src/generated/resources/assets/create/lang/unfinished/ja_jp.json b/src/generated/resources/assets/create/lang/unfinished/ja_jp.json index 5650fe7dd..e6269480a 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ja_jp.json +++ b/src/generated/resources/assets/create/lang/unfinished/ja_jp.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 9", + "_": "Missing Localizations: 10", "_": "->------------------------] Game Elements [------------------------<-", @@ -753,6 +753,7 @@ "create.recipe.assembly.repeat": "%1$s回繰り返す", "create.recipe.assembly.junk": "ランダムな仕損品", "create.recipe.processing.chance": "%1$s%%チャンス", + "create.recipe.deploying.not_consumed": "UNLOCALIZED: Not Consumed", "create.recipe.heat_requirement.none": "加熱不要", "create.recipe.heat_requirement.heated": "加熱が必要", "create.recipe.heat_requirement.superheated": "極度の加熱が必要", diff --git a/src/generated/resources/assets/create/lang/unfinished/ko_kr.json b/src/generated/resources/assets/create/lang/unfinished/ko_kr.json index b45ee1cfb..2cdccc02e 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ko_kr.json +++ b/src/generated/resources/assets/create/lang/unfinished/ko_kr.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 24", + "_": "Missing Localizations: 25", "_": "->------------------------] Game Elements [------------------------<-", @@ -753,6 +753,7 @@ "create.recipe.assembly.repeat": "%1$s번 반복하기", "create.recipe.assembly.junk": "조립 실패한 조각들", "create.recipe.processing.chance": "%1$s%% 확률", + "create.recipe.deploying.not_consumed": "UNLOCALIZED: Not Consumed", "create.recipe.heat_requirement.none": "열이 필요하지 않음", "create.recipe.heat_requirement.heated": "가열됨", "create.recipe.heat_requirement.superheated": "초고온 가열됨", diff --git a/src/generated/resources/assets/create/lang/unfinished/nl_nl.json b/src/generated/resources/assets/create/lang/unfinished/nl_nl.json index 2a8d48fd3..cb8d8972e 100644 --- a/src/generated/resources/assets/create/lang/unfinished/nl_nl.json +++ b/src/generated/resources/assets/create/lang/unfinished/nl_nl.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1766", + "_": "Missing Localizations: 1767", "_": "->------------------------] Game Elements [------------------------<-", @@ -753,6 +753,7 @@ "create.recipe.assembly.repeat": "UNLOCALIZED: Repeat Sequence %1$s Times", "create.recipe.assembly.junk": "UNLOCALIZED: Random salvage", "create.recipe.processing.chance": "%1$s%% Kans", + "create.recipe.deploying.not_consumed": "UNLOCALIZED: Not Consumed", "create.recipe.heat_requirement.none": "UNLOCALIZED: No Heating Required", "create.recipe.heat_requirement.heated": "UNLOCALIZED: Heated", "create.recipe.heat_requirement.superheated": "UNLOCALIZED: Super-Heated", diff --git a/src/generated/resources/assets/create/lang/unfinished/pl_pl.json b/src/generated/resources/assets/create/lang/unfinished/pl_pl.json index 010fcaa58..727fa23c9 100644 --- a/src/generated/resources/assets/create/lang/unfinished/pl_pl.json +++ b/src/generated/resources/assets/create/lang/unfinished/pl_pl.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 256", + "_": "Missing Localizations: 257", "_": "->------------------------] Game Elements [------------------------<-", @@ -753,6 +753,7 @@ "create.recipe.assembly.repeat": "UNLOCALIZED: Repeat Sequence %1$s Times", "create.recipe.assembly.junk": "UNLOCALIZED: Random salvage", "create.recipe.processing.chance": "%1$s%% szans", + "create.recipe.deploying.not_consumed": "UNLOCALIZED: Not Consumed", "create.recipe.heat_requirement.none": "Nie wymaga podgrzewania", "create.recipe.heat_requirement.heated": "Podrzewane", "create.recipe.heat_requirement.superheated": "Silnie podgrzewane", diff --git a/src/generated/resources/assets/create/lang/unfinished/pt_br.json b/src/generated/resources/assets/create/lang/unfinished/pt_br.json index 6d34e640a..13fd43cbc 100644 --- a/src/generated/resources/assets/create/lang/unfinished/pt_br.json +++ b/src/generated/resources/assets/create/lang/unfinished/pt_br.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1807", + "_": "Missing Localizations: 1808", "_": "->------------------------] Game Elements [------------------------<-", @@ -753,6 +753,7 @@ "create.recipe.assembly.repeat": "UNLOCALIZED: Repeat Sequence %1$s Times", "create.recipe.assembly.junk": "UNLOCALIZED: Random salvage", "create.recipe.processing.chance": "%1$s%% de chance", + "create.recipe.deploying.not_consumed": "UNLOCALIZED: Not Consumed", "create.recipe.heat_requirement.none": "UNLOCALIZED: No Heating Required", "create.recipe.heat_requirement.heated": "UNLOCALIZED: Heated", "create.recipe.heat_requirement.superheated": "UNLOCALIZED: Super-Heated", diff --git a/src/generated/resources/assets/create/lang/unfinished/ru_ru.json b/src/generated/resources/assets/create/lang/unfinished/ru_ru.json index 35b858bb2..b5c391ad7 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ru_ru.json +++ b/src/generated/resources/assets/create/lang/unfinished/ru_ru.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 5", + "_": "Missing Localizations: 6", "_": "->------------------------] Game Elements [------------------------<-", @@ -753,6 +753,7 @@ "create.recipe.assembly.repeat": "Повторите последовательность %1$s раз", "create.recipe.assembly.junk": "Случайный мусор", "create.recipe.processing.chance": "%1$s%% шанса", + "create.recipe.deploying.not_consumed": "UNLOCALIZED: Not Consumed", "create.recipe.heat_requirement.none": "Не требует нагрева", "create.recipe.heat_requirement.heated": "Нагрето", "create.recipe.heat_requirement.superheated": "Перегрето", diff --git a/src/generated/resources/assets/create/lang/unfinished/zh_cn.json b/src/generated/resources/assets/create/lang/unfinished/zh_cn.json index 0d0f8f5bc..35a44fa56 100644 --- a/src/generated/resources/assets/create/lang/unfinished/zh_cn.json +++ b/src/generated/resources/assets/create/lang/unfinished/zh_cn.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 4", + "_": "Missing Localizations: 5", "_": "->------------------------] Game Elements [------------------------<-", @@ -753,6 +753,7 @@ "create.recipe.assembly.repeat": "该序列需要重复 %1$s 次", "create.recipe.assembly.junk": "随机废料", "create.recipe.processing.chance": "%1$s%%概率", + "create.recipe.deploying.not_consumed": "UNLOCALIZED: Not Consumed", "create.recipe.heat_requirement.none": "无需加热", "create.recipe.heat_requirement.heated": "加热", "create.recipe.heat_requirement.superheated": "超级加热", diff --git a/src/generated/resources/assets/create/lang/unfinished/zh_tw.json b/src/generated/resources/assets/create/lang/unfinished/zh_tw.json index 9ec60092a..28e21eea1 100644 --- a/src/generated/resources/assets/create/lang/unfinished/zh_tw.json +++ b/src/generated/resources/assets/create/lang/unfinished/zh_tw.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 19", + "_": "Missing Localizations: 20", "_": "->------------------------] Game Elements [------------------------<-", @@ -753,6 +753,7 @@ "create.recipe.assembly.repeat": "重複 %1$s 次", "create.recipe.assembly.junk": "有機率得到垃圾", "create.recipe.processing.chance": "%1$s%%概率", + "create.recipe.deploying.not_consumed": "UNLOCALIZED: Not Consumed", "create.recipe.heat_requirement.none": "不需要加熱", "create.recipe.heat_requirement.heated": "普通加熱", "create.recipe.heat_requirement.superheated": "超級加熱", diff --git a/src/main/java/com/simibubi/create/compat/jei/category/DeployingCategory.java b/src/main/java/com/simibubi/create/compat/jei/category/DeployingCategory.java index f3fc6ee9e..4e88e2ca2 100644 --- a/src/main/java/com/simibubi/create/compat/jei/category/DeployingCategory.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/DeployingCategory.java @@ -9,11 +9,13 @@ import com.simibubi.create.compat.jei.category.animations.AnimatedDeployer; import com.simibubi.create.content.contraptions.components.deployer.DeployerApplicationRecipe; import com.simibubi.create.foundation.fluid.FluidIngredient; import com.simibubi.create.foundation.gui.AllGuiTextures; +import com.simibubi.create.foundation.utility.Lang; import mezz.jei.api.constants.VanillaTypes; import mezz.jei.api.gui.IRecipeLayout; import mezz.jei.api.gui.ingredient.IGuiItemStackGroup; import mezz.jei.api.ingredients.IIngredients; +import net.minecraft.util.text.TextFormatting; public class DeployingCategory extends CreateRecipeCategory { @@ -53,7 +55,18 @@ public class DeployingCategory extends CreateRecipeCategory { + if (!input) + return; + if (slotIndex != 1) + return; + tooltip.add(1, Lang.translate("recipe.deploying.not_consumed") + .withStyle(TextFormatting.GOLD)); + }); + } + addStochasticTooltip(itemStacks, recipe.getRollableResults(), 2); } diff --git a/src/main/java/com/simibubi/create/compat/jei/category/sequencedAssembly/SequencedAssemblySubCategory.java b/src/main/java/com/simibubi/create/compat/jei/category/sequencedAssembly/SequencedAssemblySubCategory.java index 99810a1e1..bf4345225 100644 --- a/src/main/java/com/simibubi/create/compat/jei/category/sequencedAssembly/SequencedAssemblySubCategory.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/sequencedAssembly/SequencedAssemblySubCategory.java @@ -10,12 +10,16 @@ import com.simibubi.create.compat.jei.category.animations.AnimatedDeployer; import com.simibubi.create.compat.jei.category.animations.AnimatedPress; import com.simibubi.create.compat.jei.category.animations.AnimatedSaw; import com.simibubi.create.compat.jei.category.animations.AnimatedSpout; +import com.simibubi.create.content.contraptions.components.deployer.DeployerApplicationRecipe; +import com.simibubi.create.content.contraptions.itemAssembly.IAssemblyRecipe; import com.simibubi.create.content.contraptions.itemAssembly.SequencedRecipe; import com.simibubi.create.foundation.fluid.FluidIngredient; import com.simibubi.create.foundation.gui.AllGuiTextures; +import com.simibubi.create.foundation.utility.Lang; import mezz.jei.api.gui.ingredient.IGuiFluidStackGroup; import mezz.jei.api.gui.ingredient.IGuiItemStackGroup; +import net.minecraft.util.text.TextFormatting; public abstract class SequencedAssemblySubCategory { @@ -115,6 +119,19 @@ public abstract class SequencedAssemblySubCategory { .getIngredients() .get(1) .getItems())); + + IAssemblyRecipe contained = recipe.getAsAssemblyRecipe(); + if (contained instanceof DeployerApplicationRecipe && ((DeployerApplicationRecipe) contained).shouldKeepHeldItem()) { + itemStacks.addTooltipCallback((slotIndex, input, ingredient, tooltip) -> { + if (!input) + return; + if (slotIndex != index) + return; + tooltip.add(1, Lang.translate("recipe.deploying.not_consumed") + .withStyle(TextFormatting.GOLD)); + }); + } + return 1; } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/BeltDeployerCallbacks.java b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/BeltDeployerCallbacks.java index b0900e2be..dfe84ba54 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/BeltDeployerCallbacks.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/BeltDeployerCallbacks.java @@ -104,10 +104,13 @@ public class BeltDeployerCallbacks { handler.handleProcessingOnItem(transported, TransportedResult.convertToAndLeaveHeld(collect, left)); ItemStack heldItem = deployerTileEntity.player.getMainHandItem(); - if (heldItem.isDamageableItem()) - heldItem.hurtAndBreak(1, deployerTileEntity.player, s -> s.broadcastBreakEvent(Hand.MAIN_HAND)); - else - heldItem.shrink(1); + if (!(recipe instanceof DeployerApplicationRecipe) + || !((DeployerApplicationRecipe) recipe).shouldKeepHeldItem()) { + if (heldItem.isDamageableItem()) + heldItem.hurtAndBreak(1, deployerTileEntity.player, s -> s.broadcastBreakEvent(Hand.MAIN_HAND)); + else + heldItem.shrink(1); + } BlockPos pos = deployerTileEntity.getBlockPos(); World world = deployerTileEntity.getLevel(); diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerApplicationRecipe.java b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerApplicationRecipe.java index 3fb54e05f..aabfa2846 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerApplicationRecipe.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerApplicationRecipe.java @@ -5,6 +5,7 @@ import java.util.Set; import java.util.function.Supplier; import java.util.stream.Collectors; +import com.google.gson.JsonObject; import com.simibubi.create.AllBlocks; import com.simibubi.create.AllRecipeTypes; import com.simibubi.create.AllTags.AllItemTags; @@ -18,7 +19,9 @@ import com.simibubi.create.foundation.utility.Lang; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.IRecipe; import net.minecraft.item.crafting.Ingredient; +import net.minecraft.network.PacketBuffer; import net.minecraft.util.IItemProvider; +import net.minecraft.util.JSONUtils; import net.minecraft.util.ResourceLocation; import net.minecraft.util.text.ITextComponent; import net.minecraft.util.text.StringTextComponent; @@ -30,8 +33,11 @@ import net.minecraftforge.items.wrapper.RecipeWrapper; public class DeployerApplicationRecipe extends ProcessingRecipe implements IAssemblyRecipe { + private boolean keepHeldItem; + public DeployerApplicationRecipe(ProcessingRecipeParams params) { super(AllRecipeTypes.DEPLOYING, params); + keepHeldItem = false; } @Override @@ -52,6 +58,10 @@ public class DeployerApplicationRecipe extends ProcessingRecipe i return 2; } + public boolean shouldKeepHeldItem() { + return keepHeldItem; + } + public Ingredient getRequiredHeldItem() { if (ingredients.isEmpty()) throw new IllegalStateException("Deploying Recipe: " + id.toString() + " has no tool!"); @@ -66,12 +76,14 @@ public class DeployerApplicationRecipe extends ProcessingRecipe i public static List convert(List> sandpaperRecipes) { return sandpaperRecipes.stream() - .map(r -> new ProcessingRecipeBuilder<>(DeployerApplicationRecipe::new, new ResourceLocation(r.getId().getNamespace(), r.getId() - .getPath() + "_using_deployer")).require(r.getIngredients() - .get(0)) - .require(AllItemTags.SANDPAPER.tag) - .output(r.getResultItem()) - .build()) + .map(r -> new ProcessingRecipeBuilder<>(DeployerApplicationRecipe::new, new ResourceLocation(r.getId() + .getNamespace(), + r.getId() + .getPath() + "_using_deployer")).require(r.getIngredients() + .get(0)) + .require(AllItemTags.SANDPAPER.tag) + .output(r.getResultItem()) + .build()) .collect(Collectors.toList()); } @@ -80,6 +92,31 @@ public class DeployerApplicationRecipe extends ProcessingRecipe i list.add(ingredients.get(1)); } + @Override + public void readAdditional(JsonObject json) { + super.readAdditional(json); + keepHeldItem = JSONUtils.getAsBoolean(json, "keepHeldItem", false); + } + + @Override + public void writeAdditional(JsonObject json) { + super.writeAdditional(json); + if (keepHeldItem) + json.addProperty("keepHeldItem", keepHeldItem); + } + + @Override + public void readAdditional(PacketBuffer buffer) { + super.readAdditional(buffer); + keepHeldItem = buffer.readBoolean(); + } + + @Override + public void writeAdditional(PacketBuffer buffer) { + super.writeAdditional(buffer); + buffer.writeBoolean(keepHeldItem); + } + @Override @OnlyIn(Dist.CLIENT) public ITextComponent getDescriptionForAssembly() { diff --git a/src/main/java/com/simibubi/create/content/contraptions/processing/ProcessingRecipeSerializer.java b/src/main/java/com/simibubi/create/content/contraptions/processing/ProcessingRecipeSerializer.java index 9d83395c3..38404346b 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/processing/ProcessingRecipeSerializer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/processing/ProcessingRecipeSerializer.java @@ -90,7 +90,9 @@ public class ProcessingRecipeSerializer> extends F if (JSONUtils.isValidNode(json, "heatRequirement")) builder.requiresHeat(HeatCondition.deserialize(JSONUtils.getAsString(json, "heatRequirement"))); - return builder.build(); + T recipe = builder.build(); + recipe.readAdditional(json); + return recipe; } protected void writeToBuffer(PacketBuffer buffer, T recipe) { @@ -112,6 +114,8 @@ public class ProcessingRecipeSerializer> extends F buffer.writeVarInt(recipe.getProcessingDuration()); buffer.writeVarInt(recipe.getRequiredHeat() .ordinal()); + + recipe.writeAdditional(buffer); } protected T readFromBuffer(ResourceLocation recipeId, PacketBuffer buffer) { @@ -123,26 +127,28 @@ public class ProcessingRecipeSerializer> extends F int size = buffer.readVarInt(); for (int i = 0; i < size; i++) ingredients.add(Ingredient.fromNetwork(buffer)); - + size = buffer.readVarInt(); for (int i = 0; i < size; i++) fluidIngredients.add(FluidIngredient.read(buffer)); - + size = buffer.readVarInt(); for (int i = 0; i < size; i++) results.add(ProcessingOutput.read(buffer)); - + size = buffer.readVarInt(); for (int i = 0; i < size; i++) fluidResults.add(FluidStack.readFromPacket(buffer)); - return new ProcessingRecipeBuilder<>(factory, recipeId).withItemIngredients(ingredients) + T recipe = new ProcessingRecipeBuilder<>(factory, recipeId).withItemIngredients(ingredients) .withItemOutputs(results) .withFluidIngredients(fluidIngredients) .withFluidOutputs(fluidResults) .duration(buffer.readVarInt()) .requiresHeat(HeatCondition.values()[buffer.readVarInt()]) .build(); + recipe.readAdditional(buffer); + return recipe; } public final void write(JsonObject json, T recipe) { diff --git a/src/main/resources/assets/create/lang/default/messages.json b/src/main/resources/assets/create/lang/default/messages.json index 1df9899de..f67843698 100644 --- a/src/main/resources/assets/create/lang/default/messages.json +++ b/src/main/resources/assets/create/lang/default/messages.json @@ -65,6 +65,7 @@ "create.recipe.assembly.junk": "Random salvage", "create.recipe.processing.chance": "%1$s%% Chance", + "create.recipe.deploying.not_consumed": "Not Consumed", "create.recipe.heat_requirement.none": "No Heating Required", "create.recipe.heat_requirement.heated": "Heated", "create.recipe.heat_requirement.superheated": "Super-Heated", From fa7039a04a224385a6e7a0e49a95eb5b7585697d Mon Sep 17 00:00:00 2001 From: simibubi <31564874+simibubi@users.noreply.github.com> Date: Mon, 27 Sep 2021 12:49:45 +0200 Subject: [PATCH 62/79] Patient Stalling - Items on belts now stall under empty-handed Deployers targeting them --- .../deployer/BeltDeployerCallbacks.java | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/BeltDeployerCallbacks.java b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/BeltDeployerCallbacks.java index dfe84ba54..6499eaf02 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/BeltDeployerCallbacks.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/BeltDeployerCallbacks.java @@ -45,6 +45,11 @@ public class BeltDeployerCallbacks { if (deployerTileEntity.redstoneLocked) return ProcessingResult.PASS; + DeployerFakePlayer player = deployerTileEntity.getPlayer(); + ItemStack held = player == null ? ItemStack.EMPTY : player.getMainHandItem(); + + if (held.isEmpty()) + return ProcessingResult.HOLD; if (deployerTileEntity.getRecipe(s.stack) == null) return ProcessingResult.PASS; @@ -60,6 +65,12 @@ public class BeltDeployerCallbacks { BlockState blockState = deployerTileEntity.getBlockState(); if (!blockState.hasProperty(FACING) || blockState.getValue(FACING) != Direction.DOWN) return ProcessingResult.PASS; + + DeployerFakePlayer player = deployerTileEntity.getPlayer(); + ItemStack held = player == null ? ItemStack.EMPTY : player.getMainHandItem(); + if (held.isEmpty()) + return ProcessingResult.HOLD; + IRecipe recipe = deployerTileEntity.getRecipe(s.stack); if (recipe == null) return ProcessingResult.PASS; @@ -68,10 +79,10 @@ public class BeltDeployerCallbacks { activate(s, i, deployerTileEntity, recipe); return ProcessingResult.HOLD; } - + if (deployerTileEntity.state == State.WAITING) { if (deployerTileEntity.redstoneLocked) - return ProcessingResult.PASS; + return ProcessingResult.PASS; deployerTileEntity.start(); } @@ -92,6 +103,10 @@ public class BeltDeployerCallbacks { copy.angle = centered ? 180 : Create.RANDOM.nextInt(360); return copy; }) + .map(t -> { + t.locked = false; + return t; + }) .collect(Collectors.toList()); TransportedItemStack left = transported.copy(); From 34d430989c1eb67f1918f7b21082395b9052251f Mon Sep 17 00:00:00 2001 From: simibubi <31564874+simibubi@users.noreply.github.com> Date: Mon, 27 Sep 2021 13:43:59 +0200 Subject: [PATCH 63/79] Belt Shadow Legends - Fixed a lighting issue for the belt item renderer --- .../content/contraptions/relays/belt/BeltTileEntity.java | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltTileEntity.java index a9a3d4c98..940b54a14 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltTileEntity.java @@ -227,10 +227,7 @@ public class BeltTileEntity extends KineticTileEntity implements ILightUpdateLis int length = compound.getInt("Length"); if (beltLength != length) { beltLength = length; - if (level != null) - initializeLight(); - else - light = null; + light = null; } } @@ -523,7 +520,7 @@ public class BeltTileEntity extends KineticTileEntity implements ILightUpdateLis return getController().equals(((BeltTileEntity) target).getController()) ? 1 : 0; return 0; } - + public void invalidateItemHandler() { itemHandler.invalidate(); } @@ -535,7 +532,7 @@ public class BeltTileEntity extends KineticTileEntity implements ILightUpdateLis BlockState state = getBlockState(); return state != null && state.hasProperty(BeltBlock.PART) && state.getValue(BeltBlock.PART) == BeltPart.START; } - + @Override public boolean onLightUpdate(IBlockDisplayReader world, LightType type, GridAlignedBB changed) { if (this.remove) { From 4d819b6c9dbb880471b46bc0b19260f7f90a6f52 Mon Sep 17 00:00:00 2001 From: simibubi <31564874+simibubi@users.noreply.github.com> Date: Thu, 30 Sep 2021 21:31:35 +0200 Subject: [PATCH 64/79] Structure Assist - Schematic and Quill now creates Air entries in place of any "Structure Void" block --- .../relays/belt/BeltTileEntity.java | 5 +++-- .../schematics/ServerSchematicLoader.java | 2 ++ .../client/SchematicAndQuillHandler.java | 7 +++++-- .../schematics/item/SchematicAndQuillItem.java | 18 ++++++++++++++++++ 4 files changed, 28 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltTileEntity.java index 940b54a14..d5ac0c37d 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltTileEntity.java @@ -535,9 +535,10 @@ public class BeltTileEntity extends KineticTileEntity implements ILightUpdateLis @Override public boolean onLightUpdate(IBlockDisplayReader world, LightType type, GridAlignedBB changed) { - if (this.remove) { + if (this.remove) return true; - } + if (this.level == null || this.light == null) + return false; GridAlignedBB beltVolume = getBeltVolume(); diff --git a/src/main/java/com/simibubi/create/content/schematics/ServerSchematicLoader.java b/src/main/java/com/simibubi/create/content/schematics/ServerSchematicLoader.java index 9c1b40ea1..e63010098 100644 --- a/src/main/java/com/simibubi/create/content/schematics/ServerSchematicLoader.java +++ b/src/main/java/com/simibubi/create/content/schematics/ServerSchematicLoader.java @@ -17,6 +17,7 @@ import com.simibubi.create.AllBlocks; import com.simibubi.create.AllItems; import com.simibubi.create.Create; import com.simibubi.create.content.schematics.block.SchematicTableTileEntity; +import com.simibubi.create.content.schematics.item.SchematicAndQuillItem; import com.simibubi.create.content.schematics.item.SchematicItem; import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.config.CSchematics; @@ -319,6 +320,7 @@ public class ServerSchematicLoader { try (OutputStream outputStream = Files.newOutputStream(path)) { CompoundNBT nbttagcompound = t.save(new CompoundNBT()); + SchematicAndQuillItem.replaceStructureVoidWithAir(nbttagcompound); CompressedStreamTools.writeCompressed(nbttagcompound, outputStream); player.setItemInHand(Hand.MAIN_HAND, SchematicItem.create(schematic, player.getGameProfile().getName())); diff --git a/src/main/java/com/simibubi/create/content/schematics/client/SchematicAndQuillHandler.java b/src/main/java/com/simibubi/create/content/schematics/client/SchematicAndQuillHandler.java index 02243a42d..7cf0cda24 100644 --- a/src/main/java/com/simibubi/create/content/schematics/client/SchematicAndQuillHandler.java +++ b/src/main/java/com/simibubi/create/content/schematics/client/SchematicAndQuillHandler.java @@ -15,6 +15,7 @@ import com.simibubi.create.AllSpecialTextures; import com.simibubi.create.Create; import com.simibubi.create.CreateClient; import com.simibubi.create.content.schematics.ClientSchematicLoader; +import com.simibubi.create.content.schematics.item.SchematicAndQuillItem; import com.simibubi.create.content.schematics.packet.InstantSchematicPacket; import com.simibubi.create.foundation.gui.ScreenOpener; import com.simibubi.create.foundation.networking.AllPackets; @@ -126,7 +127,7 @@ public class SchematicAndQuillHandler { firstPos = selectedPos; Lang.sendStatus(player, "schematicAndQuill.firstPos"); } - + public void discard() { ClientPlayerEntity player = Minecraft.getInstance().player; firstPos = null; @@ -213,7 +214,8 @@ public class SchematicAndQuillHandler { t.fillFromWorld(Minecraft.getInstance().level, origin, bounds, true, Blocks.AIR); if (string.isEmpty()) - string = Lang.translate("schematicAndQuill.fallbackName").getString(); + string = Lang.translate("schematicAndQuill.fallbackName") + .getString(); String folderPath = "schematics"; FilesHelper.createFolderIfMissing(folderPath); @@ -225,6 +227,7 @@ public class SchematicAndQuillHandler { try { outputStream = Files.newOutputStream(path, StandardOpenOption.CREATE); CompoundNBT nbttagcompound = t.save(new CompoundNBT()); + SchematicAndQuillItem.replaceStructureVoidWithAir(nbttagcompound); CompressedStreamTools.writeCompressed(nbttagcompound, outputStream); } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/com/simibubi/create/content/schematics/item/SchematicAndQuillItem.java b/src/main/java/com/simibubi/create/content/schematics/item/SchematicAndQuillItem.java index 30e330076..591208f2d 100644 --- a/src/main/java/com/simibubi/create/content/schematics/item/SchematicAndQuillItem.java +++ b/src/main/java/com/simibubi/create/content/schematics/item/SchematicAndQuillItem.java @@ -1,6 +1,10 @@ package com.simibubi.create.content.schematics.item; +import com.simibubi.create.foundation.utility.NBTHelper; + +import net.minecraft.block.Blocks; import net.minecraft.item.Item; +import net.minecraft.nbt.CompoundNBT; public class SchematicAndQuillItem extends Item { @@ -8,4 +12,18 @@ public class SchematicAndQuillItem extends Item { super(properties); } + public static void replaceStructureVoidWithAir(CompoundNBT nbt) { + String air = Blocks.AIR.getRegistryName() + .toString(); + String structureVoid = Blocks.STRUCTURE_VOID.getRegistryName() + .toString(); + + NBTHelper.iterateCompoundList(nbt.getList("palette", 10), c -> { + if (c.contains("Name") && c.getString("Name") + .equals(structureVoid)) { + c.putString("Name", air); + } + }); + } + } From d72f343fdfa4bba1b88b42e424feb5bb97906b61 Mon Sep 17 00:00:00 2001 From: PepperBell <44146161+PepperCode1@users.noreply.github.com> Date: Sat, 2 Oct 2021 13:02:27 -0700 Subject: [PATCH 65/79] Various cleanup - Remove Create namespace restriction in CTSpriteShifter - Add method to register ponder chapter lang - Clean up palette block code; Closes #386 - Clean up tag code - Use Create.asResource in as many places as possible - Organize imports --- src/generated/resources/.cache/cache | 1 + .../data/forge/tags/blocks/cobblestone.json | 14 ++ .../java/com/simibubi/create/AllBlocks.java | 2 +- .../java/com/simibubi/create/AllItems.java | 8 +- .../simibubi/create/AllSpecialTextures.java | 2 +- .../com/simibubi/create/AllSpriteShifts.java | 2 +- .../java/com/simibubi/create/AllTags.java | 194 ++++++++++-------- .../simibubi/create/compat/jei/CreateJEI.java | 2 +- .../jei/category/CreateRecipeCategory.java | 2 +- .../base/CutoutRotatingInstance.java | 1 - .../base/KineticTileInstance.java | 2 +- .../components/flywheel/FlyWheelInstance.java | 2 +- .../flywheel/engine/EngineInstance.java | 2 +- .../BlockMovementChecks.java | 2 +- .../chassis/StickerInstance.java | 2 +- .../structureMovement/glue/GlueInstance.java | 8 +- .../glue/SuperGlueRenderer.java | 2 +- .../render/ContraptionInstanceManager.java | 2 +- .../render/ContraptionRenderDispatcher.java | 1 - .../render/LightVolumeDebugger.java | 6 - .../relays/encased/SplitShaftInstance.java | 2 +- .../relays/gearbox/GearboxInstance.java | 2 +- .../curiosities/armor/CopperArmorItem.java | 6 +- .../weapons/PotatoProjectileEntity.java | 18 +- .../weapons/PotatoProjectileRenderMode.java | 2 + .../weapons/ProperProjectileEntity.java | 40 ---- .../content/logistics/block/FlapData.java | 1 - .../belts/tunnel/BeltTunnelInstance.java | 2 +- .../block/funnel/FunnelInstance.java | 2 +- .../content/palettes/AllPaletteBlocks.java | 18 +- .../content/palettes/PaletteBlockPattern.java | 29 ++- .../palettes/PaletteStoneVariants.java | 8 +- .../palettes/PalettesVariantEntry.java | 41 ++-- .../block/SchematicannonInstance.java | 2 +- .../simibubi/create/events/ClientEvents.java | 6 +- .../advancement/CriterionTriggerBase.java | 6 +- .../block/connected/CTSpriteShiftEntry.java | 2 +- .../block/connected/CTSpriteShifter.java | 38 ++-- .../block/render/SpriteShifter.java | 21 +- .../foundation/data/BuilderTransformers.java | 2 +- .../create/foundation/data/ModelGen.java | 2 +- .../create/foundation/data/WindowGen.java | 2 +- .../create/foundation/gui/AllGuiTextures.java | 2 +- .../foundation/item/ItemDescription.java | 1 - .../foundation/networking/AllPackets.java | 6 +- .../foundation/ponder/PonderLocalization.java | 4 + .../create/foundation/ponder/PonderScene.java | 4 +- .../foundation/render/AllMaterialSpecs.java | 8 +- .../foundation/render/AllProgramSpecs.java | 17 +- .../render/RainbowDebugStateProvider.java | 2 +- .../tileEntity/TileEntityBehaviour.java | 4 +- .../foundation/utility/WorldAttached.java | 2 - 52 files changed, 292 insertions(+), 267 deletions(-) create mode 100644 src/generated/resources/data/forge/tags/blocks/cobblestone.json delete mode 100644 src/main/java/com/simibubi/create/content/curiosities/weapons/ProperProjectileEntity.java diff --git a/src/generated/resources/.cache/cache b/src/generated/resources/.cache/cache index a5943c70d..fb2fc5102 100644 --- a/src/generated/resources/.cache/cache +++ b/src/generated/resources/.cache/cache @@ -3757,6 +3757,7 @@ bce28787b0271382842823d04a977912a88b01c2 data/create/tags/items/sandpaper.json 6cdeeac1689f7b5bfd9bc40b462143d8eaf3ad0b data/create/tags/items/seats.json 2f4044c2989b9a8aa394c88617d67a6a310e6b1b data/create/tags/items/upright_on_belt.json 50936b211d94167a35ec78c89954082a336b6269 data/create/tags/items/valve_handles.json +05ca51cdc60a5e109b5a0e3b782de13d34ebcb24 data/forge/tags/blocks/cobblestone.json 16bcb8fcbe9170c2c11f1ca8d99d8b36cd812bbd data/forge/tags/blocks/glass/colorless.json 81d3eb40b048160fcc2d6bb7ff12b49276297efd data/forge/tags/blocks/glass_panes.json 4b700ee8aa748c2ec70c29ef1589844879c0deae data/forge/tags/blocks/ores.json diff --git a/src/generated/resources/data/forge/tags/blocks/cobblestone.json b/src/generated/resources/data/forge/tags/blocks/cobblestone.json new file mode 100644 index 000000000..4a5c2c1fb --- /dev/null +++ b/src/generated/resources/data/forge/tags/blocks/cobblestone.json @@ -0,0 +1,14 @@ +{ + "replace": false, + "values": [ + "create:granite_cobblestone", + "create:diorite_cobblestone", + "create:andesite_cobblestone", + "create:limestone_cobblestone", + "create:weathered_limestone_cobblestone", + "create:dolomite_cobblestone", + "create:gabbro_cobblestone", + "create:scoria_cobblestone", + "create:dark_scoria_cobblestone" + ] +} \ No newline at end of file diff --git a/src/main/java/com/simibubi/create/AllBlocks.java b/src/main/java/com/simibubi/create/AllBlocks.java index a990a6d10..aec652b71 100644 --- a/src/main/java/com/simibubi/create/AllBlocks.java +++ b/src/main/java/com/simibubi/create/AllBlocks.java @@ -160,9 +160,9 @@ import com.simibubi.create.content.logistics.block.redstone.StockpileSwitchBlock import com.simibubi.create.content.logistics.item.LecternControllerBlock; import com.simibubi.create.content.schematics.block.SchematicTableBlock; import com.simibubi.create.content.schematics.block.SchematicannonBlock; +import com.simibubi.create.foundation.block.BlockStressDefaults; import com.simibubi.create.foundation.block.DyedBlockList; import com.simibubi.create.foundation.block.ItemUseOverrides; -import com.simibubi.create.foundation.block.BlockStressDefaults; import com.simibubi.create.foundation.data.AssetLookup; import com.simibubi.create.foundation.data.BlockStateGen; import com.simibubi.create.foundation.data.BuilderTransformers; diff --git a/src/main/java/com/simibubi/create/AllItems.java b/src/main/java/com/simibubi/create/AllItems.java index 36885956c..5afe68f88 100644 --- a/src/main/java/com/simibubi/create/AllItems.java +++ b/src/main/java/com/simibubi/create/AllItems.java @@ -3,7 +3,6 @@ package com.simibubi.create; import static com.simibubi.create.AllTags.forgeItemTag; import static com.simibubi.create.AllTags.AllItemTags.CREATE_INGOTS; import static com.simibubi.create.AllTags.AllItemTags.CRUSHED_ORES; -import static com.simibubi.create.AllTags.AllItemTags.NUGGETS; import static com.simibubi.create.AllTags.AllItemTags.PLATES; import static com.simibubi.create.content.AllSections.CURIOSITIES; import static com.simibubi.create.content.AllSections.KINETICS; @@ -64,6 +63,7 @@ import net.minecraft.item.Rarity; import net.minecraft.tags.ITag; import net.minecraft.tags.ItemTags; import net.minecraft.util.ResourceLocation; +import net.minecraftforge.common.Tags; public class AllItems { @@ -167,9 +167,9 @@ public class AllItems { .register(); public static final ItemEntry COPPER_NUGGET = - taggedIngredient("copper_nugget", forgeItemTag("nuggets/copper"), NUGGETS.tag), - ZINC_NUGGET = taggedIngredient("zinc_nugget", forgeItemTag("nuggets/zinc"), NUGGETS.tag), - BRASS_NUGGET = taggedIngredient("brass_nugget", forgeItemTag("nuggets/brass"), NUGGETS.tag), + taggedIngredient("copper_nugget", forgeItemTag("nuggets/copper"), Tags.Items.NUGGETS), + ZINC_NUGGET = taggedIngredient("zinc_nugget", forgeItemTag("nuggets/zinc"), Tags.Items.NUGGETS), + BRASS_NUGGET = taggedIngredient("brass_nugget", forgeItemTag("nuggets/brass"), Tags.Items.NUGGETS), COPPER_SHEET = taggedIngredient("copper_sheet", forgeItemTag("plates/copper"), PLATES.tag), BRASS_SHEET = taggedIngredient("brass_sheet", forgeItemTag("plates/brass"), PLATES.tag), diff --git a/src/main/java/com/simibubi/create/AllSpecialTextures.java b/src/main/java/com/simibubi/create/AllSpecialTextures.java index 3f0826421..4a0117b8f 100644 --- a/src/main/java/com/simibubi/create/AllSpecialTextures.java +++ b/src/main/java/com/simibubi/create/AllSpecialTextures.java @@ -18,7 +18,7 @@ public enum AllSpecialTextures { private ResourceLocation location; private AllSpecialTextures(String filename) { - location = new ResourceLocation(Create.ID, ASSET_PATH + filename); + location = Create.asResource(ASSET_PATH + filename); } public void bind() { diff --git a/src/main/java/com/simibubi/create/AllSpriteShifts.java b/src/main/java/com/simibubi/create/AllSpriteShifts.java index 94ba43b41..dfae3fdd4 100644 --- a/src/main/java/com/simibubi/create/AllSpriteShifts.java +++ b/src/main/java/com/simibubi/create/AllSpriteShifts.java @@ -78,7 +78,7 @@ public class AllSpriteShifts { // private static void populateMaps() { - WoodType[] supportedWoodTypes = new WoodType[]{ + WoodType[] supportedWoodTypes = new WoodType[] { WoodType.OAK, WoodType.SPRUCE, WoodType.BIRCH, WoodType.ACACIA, WoodType.JUNGLE, WoodType.DARK_OAK, WoodType.CRIMSON, WoodType.WARPED }; diff --git a/src/main/java/com/simibubi/create/AllTags.java b/src/main/java/com/simibubi/create/AllTags.java index 0e1668c51..19e148d20 100644 --- a/src/main/java/com/simibubi/create/AllTags.java +++ b/src/main/java/com/simibubi/create/AllTags.java @@ -27,9 +27,11 @@ import net.minecraft.tags.FluidTags; import net.minecraft.tags.ITag; import net.minecraft.tags.ItemTags; import net.minecraft.util.ResourceLocation; +import net.minecraftforge.common.Tags; import net.minecraftforge.fml.ModList; public class AllTags { + private static final CreateRegistrate REGISTRATE = Create.registrate() .itemGroup(() -> Create.BASE_CREATIVE_TAB); @@ -61,105 +63,38 @@ public class AllTags { return wrapperFactory.apply(new ResourceLocation(domain, name).toString()); } - public static enum NameSpace { + public enum NameSpace { - MOD(Create.ID), FORGE("forge"), MC("minecraft"), TIC("tconstruct") + MOD(Create.ID), FORGE("forge"), TIC("tconstruct") ; - String id; + public final String id; private NameSpace(String id) { this.id = id; } + } - public static enum AllItemTags { - CRUSHED_ORES(MOD), - SEATS(MOD), - VALVE_HANDLES(MOD), - UPRIGHT_ON_BELT(MOD), - SANDPAPER(MOD), - CREATE_INGOTS(MOD), - BEACON_PAYMENT(FORGE), - INGOTS(FORGE), - NUGGETS(FORGE), - PLATES(FORGE), - COBBLESTONE(FORGE) + public enum AllBlockTags { - ; - - public ITag.INamedTag tag; - - private AllItemTags(NameSpace namespace) { - this(namespace, ""); - } - - private AllItemTags(NameSpace namespace, String path) { - tag = ItemTags.bind( - new ResourceLocation(namespace.id, (path.isEmpty() ? "" : path + "/") + Lang.asId(name())).toString()); - REGISTRATE.addDataGenerator(ProviderType.ITEM_TAGS, prov -> prov.tag(tag)); - } - - public boolean matches(ItemStack stack) { - return tag.contains(stack.getItem()); - } - - public void add(Item... values) { - REGISTRATE.addDataGenerator(ProviderType.ITEM_TAGS, prov -> prov.tag(tag) - .add(values)); - } - - public void includeIn(AllItemTags parent) { - REGISTRATE.addDataGenerator(ProviderType.ITEM_TAGS, prov -> prov.tag(parent.tag) - .addTag(tag)); - } - } - - public static enum AllFluidTags { - NO_INFINITE_DRAINING, - HONEY(FORGE) - - ; - - public ITag.INamedTag tag; - - private AllFluidTags() { - this(MOD, ""); - } - - private AllFluidTags(NameSpace namespace) { - this(namespace, ""); - } - - private AllFluidTags(NameSpace namespace, String path) { - tag = FluidTags.createOptional( - new ResourceLocation(namespace.id, (path.isEmpty() ? "" : path + "/") + Lang.asId(name()))); - } - - public boolean matches(Fluid fluid) { - return fluid != null && fluid.is(tag); - } - - static void loadClass() {} - } - - public static enum AllBlockTags { - WINDMILL_SAILS, - FAN_HEATERS, - WINDOWABLE, BRITTLE, - SEATS, - SAILS, - VALVE_HANDLES, + FAN_HEATERS, FAN_TRANSPARENT, SAFE_NBT, - SLIMY_LOGS(TIC), + SAILS, + SEATS, + VALVE_HANDLES, + WINDMILL_SAILS, + WINDOWABLE, WRENCH_PICKUP, + SLIMY_LOGS(TIC), + ; - public ITag.INamedTag tag; + public final ITag.INamedTag tag; private AllBlockTags() { this(MOD, ""); @@ -186,25 +121,111 @@ public class AllTags { return tag.contains(block.getBlock()); } - public void includeIn(AllBlockTags parent) { - REGISTRATE.addDataGenerator(ProviderType.BLOCK_TAGS, prov -> prov.tag(parent.tag) + public void add(Block... values) { + REGISTRATE.addDataGenerator(ProviderType.BLOCK_TAGS, prov -> prov.tag(tag) + .add(values)); + } + + public void includeIn(ITag.INamedTag parent) { + REGISTRATE.addDataGenerator(ProviderType.BLOCK_TAGS, prov -> prov.tag(parent) .addTag(tag)); } + public void includeIn(AllBlockTags parent) { + includeIn(parent.tag); + } + public void includeAll(ITag.INamedTag child) { REGISTRATE.addDataGenerator(ProviderType.BLOCK_TAGS, prov -> prov.tag(tag) .addTag(child)); } - public void add(Block... values) { - REGISTRATE.addDataGenerator(ProviderType.BLOCK_TAGS, prov -> prov.tag(tag) + } + + public enum AllItemTags { + + CREATE_INGOTS(), + CRUSHED_ORES(), + SANDPAPER(), + SEATS(), + UPRIGHT_ON_BELT(), + VALVE_HANDLES(), + + BEACON_PAYMENT(FORGE), + PLATES(FORGE) + + ; + + public final ITag.INamedTag tag; + + private AllItemTags() { + this(MOD, ""); + } + + private AllItemTags(NameSpace namespace) { + this(namespace, ""); + } + + private AllItemTags(NameSpace namespace, String path) { + tag = ItemTags.bind( + new ResourceLocation(namespace.id, (path.isEmpty() ? "" : path + "/") + Lang.asId(name())).toString()); + REGISTRATE.addDataGenerator(ProviderType.ITEM_TAGS, prov -> prov.tag(tag)); + } + + public boolean matches(ItemStack stack) { + return tag.contains(stack.getItem()); + } + + public void add(Item... values) { + REGISTRATE.addDataGenerator(ProviderType.ITEM_TAGS, prov -> prov.tag(tag) .add(values)); } + + public void includeIn(ITag.INamedTag parent) { + REGISTRATE.addDataGenerator(ProviderType.ITEM_TAGS, prov -> prov.tag(parent) + .addTag(tag)); + } + + public void includeIn(AllItemTags parent) { + includeIn(parent.tag); + } + + } + + public enum AllFluidTags { + + NO_INFINITE_DRAINING, + + HONEY(FORGE) + + ; + + public final ITag.INamedTag tag; + + private AllFluidTags() { + this(MOD, ""); + } + + private AllFluidTags(NameSpace namespace) { + this(namespace, ""); + } + + private AllFluidTags(NameSpace namespace, String path) { + tag = FluidTags.createOptional( + new ResourceLocation(namespace.id, (path.isEmpty() ? "" : path + "/") + Lang.asId(name()))); + } + + public boolean matches(Fluid fluid) { + return fluid != null && fluid.is(tag); + } + + private static void loadClass() {} + } public static void register() { AllItemTags.CREATE_INGOTS.includeIn(AllItemTags.BEACON_PAYMENT); - AllItemTags.CREATE_INGOTS.includeIn(AllItemTags.INGOTS); + AllItemTags.CREATE_INGOTS.includeIn(Tags.Items.INGOTS); AllItemTags.UPRIGHT_ON_BELT.add(Items.GLASS_BOTTLE, Items.POTION, Items.SPLASH_POTION, Items.LINGERING_POTION, Items.HONEY_BOTTLE, Items.CAKE); @@ -231,4 +252,5 @@ public class AllTags { AllFluidTags.loadClass(); } + } diff --git a/src/main/java/com/simibubi/create/compat/jei/CreateJEI.java b/src/main/java/com/simibubi/create/compat/jei/CreateJEI.java index 2cf7dcf90..3f00139d7 100644 --- a/src/main/java/com/simibubi/create/compat/jei/CreateJEI.java +++ b/src/main/java/com/simibubi/create/compat/jei/CreateJEI.java @@ -78,7 +78,7 @@ import net.minecraftforge.fml.ModList; @SuppressWarnings("unused") public class CreateJEI implements IModPlugin { - private static final ResourceLocation ID = new ResourceLocation(Create.ID, "jei_plugin"); + private static final ResourceLocation ID = Create.asResource("jei_plugin"); public IIngredientManager ingredientManager; private final List> allCategories = new ArrayList<>(); diff --git a/src/main/java/com/simibubi/create/compat/jei/category/CreateRecipeCategory.java b/src/main/java/com/simibubi/create/compat/jei/category/CreateRecipeCategory.java index 359c4ee06..a309a6955 100644 --- a/src/main/java/com/simibubi/create/compat/jei/category/CreateRecipeCategory.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/CreateRecipeCategory.java @@ -45,7 +45,7 @@ public abstract class CreateRecipeCategory> implements IRec } public void setCategoryId(String name) { - this.uid = new ResourceLocation(Create.ID, name); + this.uid = Create.asResource(name); this.name = name; } diff --git a/src/main/java/com/simibubi/create/content/contraptions/base/CutoutRotatingInstance.java b/src/main/java/com/simibubi/create/content/contraptions/base/CutoutRotatingInstance.java index c8f3d4335..65b164208 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/base/CutoutRotatingInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/base/CutoutRotatingInstance.java @@ -1,6 +1,5 @@ package com.simibubi.create.content.contraptions.base; -import com.jozufozu.flywheel.backend.instancing.Instancer; import com.jozufozu.flywheel.backend.material.InstanceMaterial; import com.jozufozu.flywheel.backend.material.MaterialManager; import com.simibubi.create.foundation.render.AllMaterialSpecs; diff --git a/src/main/java/com/simibubi/create/content/contraptions/base/KineticTileInstance.java b/src/main/java/com/simibubi/create/content/contraptions/base/KineticTileInstance.java index c845b8a48..9a2f61bd9 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/base/KineticTileInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/base/KineticTileInstance.java @@ -1,8 +1,8 @@ package com.simibubi.create.content.contraptions.base; +import com.jozufozu.flywheel.backend.instancing.tile.TileEntityInstance; import com.jozufozu.flywheel.backend.material.InstanceMaterial; import com.jozufozu.flywheel.backend.material.MaterialManager; -import com.jozufozu.flywheel.backend.instancing.tile.TileEntityInstance; import com.simibubi.create.AllBlocks; import com.simibubi.create.content.contraptions.relays.elementary.ICogWheel; import com.simibubi.create.content.contraptions.relays.elementary.ShaftBlock; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/FlyWheelInstance.java b/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/FlyWheelInstance.java index ea35ee0e3..5c20fe6db 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/FlyWheelInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/FlyWheelInstance.java @@ -8,8 +8,8 @@ import java.util.List; import com.google.common.collect.Lists; import com.jozufozu.flywheel.backend.instancing.IDynamicInstance; import com.jozufozu.flywheel.backend.instancing.InstanceData; -import com.jozufozu.flywheel.backend.material.InstanceMaterial; import com.jozufozu.flywheel.backend.instancing.Instancer; +import com.jozufozu.flywheel.backend.material.InstanceMaterial; import com.jozufozu.flywheel.backend.material.MaterialManager; import com.jozufozu.flywheel.core.materials.ModelData; import com.jozufozu.flywheel.util.transform.MatrixTransformStack; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/engine/EngineInstance.java b/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/engine/EngineInstance.java index 230960d90..cb02e4da7 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/engine/EngineInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/engine/EngineInstance.java @@ -1,7 +1,7 @@ package com.simibubi.create.content.contraptions.components.flywheel.engine; -import com.jozufozu.flywheel.backend.material.MaterialManager; import com.jozufozu.flywheel.backend.instancing.tile.TileEntityInstance; +import com.jozufozu.flywheel.backend.material.MaterialManager; import com.jozufozu.flywheel.core.PartialModel; import com.jozufozu.flywheel.core.materials.ModelData; import com.jozufozu.flywheel.util.transform.MatrixTransformStack; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/BlockMovementChecks.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/BlockMovementChecks.java index c1b5b796b..3635706fa 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/BlockMovementChecks.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/BlockMovementChecks.java @@ -74,7 +74,7 @@ public class BlockMovementChecks { private static final List BRITTLE_CHECKS = new ArrayList<>(); private static final List ATTACHED_CHECKS = new ArrayList<>(); private static final List NOT_SUPPORTIVE_CHECKS = new ArrayList<>(); - public static final ResourceLocation NON_MOVABLE = new ResourceLocation(Create.ID, "non_movable"); + public static final ResourceLocation NON_MOVABLE = Create.asResource("non_movable"); // Registration // Add new checks to the front instead of the end diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/chassis/StickerInstance.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/chassis/StickerInstance.java index 050fbc56d..250f73941 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/chassis/StickerInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/chassis/StickerInstance.java @@ -1,8 +1,8 @@ package com.simibubi.create.content.contraptions.components.structureMovement.chassis; import com.jozufozu.flywheel.backend.instancing.IDynamicInstance; -import com.jozufozu.flywheel.backend.material.MaterialManager; import com.jozufozu.flywheel.backend.instancing.tile.TileEntityInstance; +import com.jozufozu.flywheel.backend.material.MaterialManager; import com.jozufozu.flywheel.core.materials.ModelData; import com.jozufozu.flywheel.util.transform.MatrixTransformStack; import com.mojang.blaze3d.matrix.MatrixStack; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/glue/GlueInstance.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/glue/GlueInstance.java index 751fe2236..c4c560fb9 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/glue/GlueInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/glue/GlueInstance.java @@ -4,16 +4,12 @@ import com.jozufozu.flywheel.backend.gl.attrib.VertexFormat; import com.jozufozu.flywheel.backend.gl.buffer.VecBuffer; import com.jozufozu.flywheel.backend.instancing.ITickableInstance; import com.jozufozu.flywheel.backend.instancing.Instancer; -import com.jozufozu.flywheel.backend.material.MaterialManager; import com.jozufozu.flywheel.backend.instancing.entity.EntityInstance; import com.jozufozu.flywheel.backend.material.MaterialGroup; -import com.jozufozu.flywheel.backend.model.BufferedModel; -import com.jozufozu.flywheel.backend.model.ElementBuffer; -import com.jozufozu.flywheel.backend.model.IndexedModel; +import com.jozufozu.flywheel.backend.material.MaterialManager; import com.jozufozu.flywheel.backend.state.TextureRenderState; import com.jozufozu.flywheel.core.Formats; import com.jozufozu.flywheel.core.Materials; -import com.jozufozu.flywheel.core.QuadConverter; import com.jozufozu.flywheel.core.instancing.ConditionalInstance; import com.jozufozu.flywheel.core.materials.OrientedData; import com.jozufozu.flywheel.core.model.IModel; @@ -36,7 +32,7 @@ import net.minecraft.world.LightType; public class GlueInstance extends EntityInstance implements ITickableInstance { private static final boolean USE_ATLAS = false; - private static final ResourceLocation TEXTURE = new ResourceLocation(Create.ID, "textures/entity/super_glue/slime.png"); + private static final ResourceLocation TEXTURE = Create.asResource("textures/entity/super_glue/slime.png"); private final Quaternion rotation; protected ConditionalInstance model; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/glue/SuperGlueRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/glue/SuperGlueRenderer.java index 10b91afec..9c2ad5ef3 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/glue/SuperGlueRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/glue/SuperGlueRenderer.java @@ -30,7 +30,7 @@ import net.minecraftforge.api.distmarker.OnlyIn; @OnlyIn(Dist.CLIENT) public class SuperGlueRenderer extends EntityRenderer { - private ResourceLocation regular = new ResourceLocation(Create.ID, "textures/entity/super_glue/slime.png"); + private ResourceLocation regular = Create.asResource("textures/entity/super_glue/slime.png"); private float[] insideQuad; private float[] outsideQuad; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionInstanceManager.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionInstanceManager.java index 47cd9258a..261aca5d5 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionInstanceManager.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionInstanceManager.java @@ -7,8 +7,8 @@ import javax.annotation.Nullable; import org.apache.commons.lang3.tuple.Pair; -import com.jozufozu.flywheel.backend.material.MaterialManager; import com.jozufozu.flywheel.backend.instancing.tile.TileInstanceManager; +import com.jozufozu.flywheel.backend.material.MaterialManager; import com.simibubi.create.AllMovementBehaviours; import com.simibubi.create.content.contraptions.components.structureMovement.MovementBehaviour; import com.simibubi.create.content.contraptions.components.structureMovement.MovementContext; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionRenderDispatcher.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionRenderDispatcher.java index 98e5e9fbb..bb906a32f 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionRenderDispatcher.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionRenderDispatcher.java @@ -18,7 +18,6 @@ import com.simibubi.create.content.contraptions.components.structureMovement.Abs import com.simibubi.create.content.contraptions.components.structureMovement.Contraption; import com.simibubi.create.content.contraptions.components.structureMovement.MovementBehaviour; import com.simibubi.create.content.contraptions.components.structureMovement.MovementContext; -import com.simibubi.create.foundation.render.Compartment; import com.simibubi.create.foundation.render.SuperByteBuffer; import com.simibubi.create.foundation.render.TileEntityRenderHelper; import com.simibubi.create.foundation.utility.worldWrappers.PlacementSimulationWorld; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/LightVolumeDebugger.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/LightVolumeDebugger.java index 82f6e64e6..c495e0dbe 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/LightVolumeDebugger.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/LightVolumeDebugger.java @@ -1,13 +1,7 @@ package com.simibubi.create.content.contraptions.components.structureMovement.render; -import java.util.ArrayList; - -import com.jozufozu.flywheel.light.GridAlignedBB; import com.mojang.blaze3d.matrix.MatrixStack; import com.simibubi.create.foundation.renderState.SuperRenderTypeBuffer; -import com.simibubi.create.foundation.utility.AnimationTickHolder; -import com.simibubi.create.foundation.utility.Pair; -import com.simibubi.create.foundation.utility.outliner.AABBOutline; public class LightVolumeDebugger { public static void render(MatrixStack ms, SuperRenderTypeBuffer buffer) { diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/encased/SplitShaftInstance.java b/src/main/java/com/simibubi/create/content/contraptions/relays/encased/SplitShaftInstance.java index 73ed999ca..dc5193c81 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/encased/SplitShaftInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/encased/SplitShaftInstance.java @@ -3,8 +3,8 @@ package com.simibubi.create.content.contraptions.relays.encased; import java.util.ArrayList; import com.jozufozu.flywheel.backend.instancing.InstanceData; -import com.jozufozu.flywheel.backend.material.InstanceMaterial; import com.jozufozu.flywheel.backend.instancing.Instancer; +import com.jozufozu.flywheel.backend.material.InstanceMaterial; import com.jozufozu.flywheel.backend.material.MaterialManager; import com.simibubi.create.AllBlockPartials; import com.simibubi.create.content.contraptions.base.IRotate; diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/gearbox/GearboxInstance.java b/src/main/java/com/simibubi/create/content/contraptions/relays/gearbox/GearboxInstance.java index 0b86084aa..da4b1f8f6 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/gearbox/GearboxInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/gearbox/GearboxInstance.java @@ -4,8 +4,8 @@ import java.util.EnumMap; import java.util.Map; import com.jozufozu.flywheel.backend.instancing.InstanceData; -import com.jozufozu.flywheel.backend.material.InstanceMaterial; import com.jozufozu.flywheel.backend.instancing.Instancer; +import com.jozufozu.flywheel.backend.material.InstanceMaterial; import com.jozufozu.flywheel.backend.material.MaterialManager; import com.simibubi.create.AllBlockPartials; import com.simibubi.create.content.contraptions.base.KineticTileInstance; diff --git a/src/main/java/com/simibubi/create/content/curiosities/armor/CopperArmorItem.java b/src/main/java/com/simibubi/create/content/curiosities/armor/CopperArmorItem.java index 5aa6098db..d036b562e 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/armor/CopperArmorItem.java +++ b/src/main/java/com/simibubi/create/content/curiosities/armor/CopperArmorItem.java @@ -7,9 +7,13 @@ import net.minecraft.entity.LivingEntity; import net.minecraft.inventory.EquipmentSlotType; import net.minecraft.item.ArmorItem; import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; public class CopperArmorItem extends ArmorItem { + public static final ResourceLocation TEXTURE = Create.asResource("textures/models/armor/copper.png"); + private static final String TEXTURE_STRING = TEXTURE.toString(); + public CopperArmorItem(EquipmentSlotType p_i48534_2_, Properties p_i48534_3_) { super(AllArmorMaterials.COPPER, p_i48534_2_, p_i48534_3_.stacksTo(1)); } @@ -23,7 +27,7 @@ public class CopperArmorItem extends ArmorItem { @Override public String getArmorTexture(ItemStack stack, Entity entity, EquipmentSlotType slot, String type) { - return String.format("%s:textures/models/armor/copper.png", Create.ID); + return TEXTURE_STRING; } } diff --git a/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoProjectileEntity.java b/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoProjectileEntity.java index b6e188202..73c5d924d 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoProjectileEntity.java +++ b/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoProjectileEntity.java @@ -39,17 +39,17 @@ import net.minecraftforge.items.ItemHandlerHelper; public class PotatoProjectileEntity extends DamagingProjectileEntity implements IEntityAdditionalSpawnData { - PotatoCannonProjectileType type; - ItemStack stack = ItemStack.EMPTY; + protected PotatoCannonProjectileType type; + protected ItemStack stack = ItemStack.EMPTY; - Entity stuckEntity; - Vector3d stuckOffset; - PotatoProjectileRenderMode stuckRenderer; - double stuckFallSpeed; + protected Entity stuckEntity; + protected Vector3d stuckOffset; + protected PotatoProjectileRenderMode stuckRenderer; + protected double stuckFallSpeed; - float additionalDamageMult = 1; - float additionalKnockback = 0; - float recoveryChance = 0; + protected float additionalDamageMult = 1; + protected float additionalKnockback = 0; + protected float recoveryChance = 0; public PotatoProjectileEntity(EntityType type, World world) { super(type, world); diff --git a/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoProjectileRenderMode.java b/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoProjectileRenderMode.java index 799ed35e1..aa8111556 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoProjectileRenderMode.java +++ b/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoProjectileRenderMode.java @@ -1,5 +1,7 @@ package com.simibubi.create.content.curiosities.weapons; +import static com.simibubi.create.content.curiosities.weapons.PotatoProjectileRenderMode.entityRandom; + import com.jozufozu.flywheel.util.transform.MatrixTransformStack; import com.mojang.blaze3d.matrix.MatrixStack; import com.simibubi.create.foundation.utility.AngleHelper; diff --git a/src/main/java/com/simibubi/create/content/curiosities/weapons/ProperProjectileEntity.java b/src/main/java/com/simibubi/create/content/curiosities/weapons/ProperProjectileEntity.java deleted file mode 100644 index e8271d2f4..000000000 --- a/src/main/java/com/simibubi/create/content/curiosities/weapons/ProperProjectileEntity.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.simibubi.create.content.curiosities.weapons; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityType; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.network.IPacket; -import net.minecraft.world.World; - -public abstract class ProperProjectileEntity extends Entity { - - public ProperProjectileEntity(EntityType p_i48580_1_, World p_i48580_2_) { - super(p_i48580_1_, p_i48580_2_); - // TODO Auto-generated constructor stub - } - - @Override - protected void defineSynchedData() { - // TODO Auto-generated method stub - - } - - @Override - protected void readAdditionalSaveData(CompoundNBT p_70037_1_) { - // TODO Auto-generated method stub - - } - - @Override - protected void addAdditionalSaveData(CompoundNBT p_213281_1_) { - // TODO Auto-generated method stub - - } - - @Override - public IPacket getAddEntityPacket() { - // TODO Auto-generated method stub - return null; - } - -} diff --git a/src/main/java/com/simibubi/create/content/logistics/block/FlapData.java b/src/main/java/com/simibubi/create/content/logistics/block/FlapData.java index 5dfe87e95..9ce6469a3 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/FlapData.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/FlapData.java @@ -7,7 +7,6 @@ import com.jozufozu.flywheel.core.materials.IFlatLight; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.vector.Vector3f; -import net.minecraft.util.math.vector.Vector3i; public class FlapData extends InstanceData implements IFlatLight { diff --git a/src/main/java/com/simibubi/create/content/logistics/block/belts/tunnel/BeltTunnelInstance.java b/src/main/java/com/simibubi/create/content/logistics/block/belts/tunnel/BeltTunnelInstance.java index 05b4a1f78..3ad030006 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/belts/tunnel/BeltTunnelInstance.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/belts/tunnel/BeltTunnelInstance.java @@ -8,8 +8,8 @@ import java.util.Map; import com.jozufozu.flywheel.backend.instancing.IDynamicInstance; import com.jozufozu.flywheel.backend.instancing.InstanceData; import com.jozufozu.flywheel.backend.instancing.Instancer; -import com.jozufozu.flywheel.backend.material.MaterialManager; import com.jozufozu.flywheel.backend.instancing.tile.TileEntityInstance; +import com.jozufozu.flywheel.backend.material.MaterialManager; import com.simibubi.create.AllBlockPartials; import com.simibubi.create.content.logistics.block.FlapData; import com.simibubi.create.foundation.gui.widgets.InterpolatedValue; diff --git a/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelInstance.java b/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelInstance.java index 470e56bda..3be5421f1 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelInstance.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelInstance.java @@ -5,8 +5,8 @@ import java.util.ArrayList; import com.jozufozu.flywheel.backend.instancing.IDynamicInstance; import com.jozufozu.flywheel.backend.instancing.InstanceData; import com.jozufozu.flywheel.backend.instancing.Instancer; -import com.jozufozu.flywheel.backend.material.MaterialManager; import com.jozufozu.flywheel.backend.instancing.tile.TileEntityInstance; +import com.jozufozu.flywheel.backend.material.MaterialManager; import com.jozufozu.flywheel.core.PartialModel; import com.simibubi.create.AllBlockPartials; import com.simibubi.create.content.logistics.block.FlapData; diff --git a/src/main/java/com/simibubi/create/content/palettes/AllPaletteBlocks.java b/src/main/java/com/simibubi/create/content/palettes/AllPaletteBlocks.java index 0e8bae19e..8dcea9a50 100644 --- a/src/main/java/com/simibubi/create/content/palettes/AllPaletteBlocks.java +++ b/src/main/java/com/simibubi/create/content/palettes/AllPaletteBlocks.java @@ -96,13 +96,13 @@ public class AllPaletteBlocks { // Vanilla stone variant patterns public static final PalettesVariantEntry GRANITE_VARIANTS = - new PalettesVariantEntry(PaletteStoneVariants.GRANITE, PaletteBlockPattern.VANILLA_RANGE, () -> Blocks.GRANITE); + new PalettesVariantEntry(PaletteStoneVariants.GRANITE, PaletteBlockPattern.VANILLA_RANGE); public static final PalettesVariantEntry DIORITE_VARIANTS = - new PalettesVariantEntry(PaletteStoneVariants.DIORITE, PaletteBlockPattern.VANILLA_RANGE, () -> Blocks.DIORITE); + new PalettesVariantEntry(PaletteStoneVariants.DIORITE, PaletteBlockPattern.VANILLA_RANGE); public static final PalettesVariantEntry ANDESITE_VARIANTS = new PalettesVariantEntry(PaletteStoneVariants.ANDESITE, - PaletteBlockPattern.VANILLA_RANGE, () -> Blocks.ANDESITE); + PaletteBlockPattern.VANILLA_RANGE); // Create stone variants @@ -119,7 +119,7 @@ public class AllPaletteBlocks { .register(); public static final PalettesVariantEntry LIMESTONE_VARIANTS = - new PalettesVariantEntry(PaletteStoneVariants.LIMESTONE, PaletteBlockPattern.STANDARD_RANGE, LIMESTONE); + new PalettesVariantEntry(PaletteStoneVariants.LIMESTONE, PaletteBlockPattern.STANDARD_RANGE); public static final BlockEntry WEATHERED_LIMESTONE = REGISTRATE.baseBlock("weathered_limestone", Block::new, () -> Blocks.SANDSTONE, true) @@ -128,7 +128,7 @@ public class AllPaletteBlocks { .register(); public static final PalettesVariantEntry WEATHERED_LIMESTONE_VARIANTS = new PalettesVariantEntry( - PaletteStoneVariants.WEATHERED_LIMESTONE, PaletteBlockPattern.STANDARD_RANGE, WEATHERED_LIMESTONE); + PaletteStoneVariants.WEATHERED_LIMESTONE, PaletteBlockPattern.STANDARD_RANGE); public static final BlockEntry DOLOMITE = REGISTRATE.baseBlock("dolomite", Block::new, () -> Blocks.QUARTZ_BLOCK, true) @@ -137,7 +137,7 @@ public class AllPaletteBlocks { .register(); public static final PalettesVariantEntry DOLOMITE_VARIANTS = - new PalettesVariantEntry(PaletteStoneVariants.DOLOMITE, PaletteBlockPattern.STANDARD_RANGE, DOLOMITE); + new PalettesVariantEntry(PaletteStoneVariants.DOLOMITE, PaletteBlockPattern.STANDARD_RANGE); public static final BlockEntry GABBRO = REGISTRATE.baseBlock("gabbro", Block::new, () -> Blocks.ANDESITE, true) @@ -146,7 +146,7 @@ public class AllPaletteBlocks { .register(); public static final PalettesVariantEntry GABBRO_VARIANTS = - new PalettesVariantEntry(PaletteStoneVariants.GABBRO, PaletteBlockPattern.STANDARD_RANGE, GABBRO); + new PalettesVariantEntry(PaletteStoneVariants.GABBRO, PaletteBlockPattern.STANDARD_RANGE); public static final BlockEntry SCORIA = REGISTRATE.baseBlock("scoria", Block::new, () -> Blocks.ANDESITE, true) @@ -163,7 +163,7 @@ public class AllPaletteBlocks { .register(); public static final PalettesVariantEntry SCORIA_VARIANTS = - new PalettesVariantEntry(PaletteStoneVariants.SCORIA, PaletteBlockPattern.STANDARD_RANGE, SCORIA); + new PalettesVariantEntry(PaletteStoneVariants.SCORIA, PaletteBlockPattern.STANDARD_RANGE); public static final BlockEntry DARK_SCORIA = REGISTRATE.baseBlock("dark_scoria", Block::new, () -> Blocks.ANDESITE, false) @@ -171,7 +171,7 @@ public class AllPaletteBlocks { .register(); public static final PalettesVariantEntry DARK_SCORIA_VARIANTS = - new PalettesVariantEntry(PaletteStoneVariants.DARK_SCORIA, PaletteBlockPattern.STANDARD_RANGE, DARK_SCORIA); + new PalettesVariantEntry(PaletteStoneVariants.DARK_SCORIA, PaletteBlockPattern.STANDARD_RANGE); private static NonNullBiConsumer cobblestoneLoot(PaletteStoneVariants variant) { return (loot, block) -> loot.add(block, RegistrateBlockLootTables.droppingWithSilkTouch(block, diff --git a/src/main/java/com/simibubi/create/content/palettes/PaletteBlockPattern.java b/src/main/java/com/simibubi/create/content/palettes/PaletteBlockPattern.java index 91819c83d..72f3b6b56 100644 --- a/src/main/java/com/simibubi/create/content/palettes/PaletteBlockPattern.java +++ b/src/main/java/com/simibubi/create/content/palettes/PaletteBlockPattern.java @@ -30,16 +30,21 @@ import net.minecraft.block.RotatedPillarBlock; import net.minecraft.client.renderer.RenderType; import net.minecraft.data.CookingRecipeBuilder; import net.minecraft.data.ShapedRecipeBuilder; +import net.minecraft.item.Item; +import net.minecraft.tags.ITag; import net.minecraft.util.ResourceLocation; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.client.model.generators.ModelFile; +import net.minecraftforge.common.Tags; public class PaletteBlockPattern { public static final PaletteBlockPattern COBBLESTONE = create("cobblestone", SUFFIX, ALL_PARTIALS) + .blockTags(Tags.Blocks.COBBLESTONE) + .itemTags(Tags.Items.COBBLESTONE) .addRecipes(v -> (c, p) -> { DataIngredient ingredient = DataIngredient.items(c.get()); Block result = v.getBaseBlock().get(); @@ -111,6 +116,8 @@ public class PaletteBlockPattern { private String id; private boolean isTranslucent; private boolean hasFoliage; + private ITag.INamedTag[] blockTags; + private ITag.INamedTag[] itemTags; private Optional> ctBehaviour; private IPatternBlockStateGenerator blockStateGenerator; @@ -149,6 +156,14 @@ public class PaletteBlockPattern { return hasFoliage; } + public ITag.INamedTag[] getBlockTags() { + return blockTags; + } + + public ITag.INamedTag[] getItemTags() { + return itemTags; + } + public NonNullFunction getBlockFactory() { return blockFactory; } @@ -198,6 +213,18 @@ public class PaletteBlockPattern { return this; } + @SafeVarargs + private final PaletteBlockPattern blockTags(ITag.INamedTag... tags) { + blockTags = tags; + return this; + } + + @SafeVarargs + private final PaletteBlockPattern itemTags(ITag.INamedTag... tags) { + itemTags = tags; + return this; + } + private PaletteBlockPattern connectedTextures(Function factory) { this.ctBehaviour = Optional.of(factory); return this; @@ -300,7 +327,7 @@ public class PaletteBlockPattern { // Textures with connectability, used by Spriteshifter - public static enum CTs { + public enum CTs { POLISHED(CTType.OMNIDIRECTIONAL), LAYERED(CTType.HORIZONTAL) diff --git a/src/main/java/com/simibubi/create/content/palettes/PaletteStoneVariants.java b/src/main/java/com/simibubi/create/content/palettes/PaletteStoneVariants.java index f15d019f3..e7933fcf1 100644 --- a/src/main/java/com/simibubi/create/content/palettes/PaletteStoneVariants.java +++ b/src/main/java/com/simibubi/create/content/palettes/PaletteStoneVariants.java @@ -2,6 +2,8 @@ package com.simibubi.create.content.palettes; import java.util.function.Supplier; +import com.tterrag.registrate.util.nullness.NonNullSupplier; + import net.minecraft.block.Block; import net.minecraft.block.Blocks; @@ -19,15 +21,15 @@ public enum PaletteStoneVariants { ; - private Supplier> baseBlock; + private NonNullSupplier> baseBlock; private Supplier variants; - private PaletteStoneVariants(Supplier> baseBlock, Supplier variants) { + private PaletteStoneVariants(NonNullSupplier> baseBlock, Supplier variants) { this.baseBlock = baseBlock; this.variants = variants; } - public Supplier getBaseBlock() { + public NonNullSupplier getBaseBlock() { return baseBlock.get(); } diff --git a/src/main/java/com/simibubi/create/content/palettes/PalettesVariantEntry.java b/src/main/java/com/simibubi/create/content/palettes/PalettesVariantEntry.java index cecd78294..62a91346a 100644 --- a/src/main/java/com/simibubi/create/content/palettes/PalettesVariantEntry.java +++ b/src/main/java/com/simibubi/create/content/palettes/PalettesVariantEntry.java @@ -3,32 +3,35 @@ package com.simibubi.create.content.palettes; import static com.simibubi.create.foundation.data.CreateRegistrate.connectedTextures; import com.google.common.collect.ImmutableList; -import com.simibubi.create.AllTags; import com.simibubi.create.Create; import com.simibubi.create.foundation.data.CreateRegistrate; import com.simibubi.create.foundation.utility.ColorHandlers; import com.simibubi.create.foundation.utility.Lang; import com.tterrag.registrate.builders.BlockBuilder; +import com.tterrag.registrate.builders.ItemBuilder; import com.tterrag.registrate.util.DataIngredient; import com.tterrag.registrate.util.entry.BlockEntry; import com.tterrag.registrate.util.nullness.NonNullSupplier; import net.minecraft.block.Block; import net.minecraft.client.renderer.RenderType; +import net.minecraft.item.BlockItem; +import net.minecraft.item.Item; +import net.minecraft.tags.ITag; public class PalettesVariantEntry { - public ImmutableList> registeredBlocks; - public ImmutableList> registeredPartials; + public final ImmutableList> registeredBlocks; + public final ImmutableList> registeredPartials; - public PalettesVariantEntry(PaletteStoneVariants variant, PaletteBlockPattern[] patterns, - NonNullSupplier initialProperties) { + public PalettesVariantEntry(PaletteStoneVariants variant, PaletteBlockPattern[] patterns) { String name = Lang.asId(variant.name()); + NonNullSupplier initialProperties = variant.getBaseBlock(); ImmutableList.Builder> registeredBlocks = ImmutableList.builder(); ImmutableList.Builder> registeredPartials = ImmutableList.builder(); + CreateRegistrate registrate = Create.registrate(); for (PaletteBlockPattern pattern : patterns) { - CreateRegistrate registrate = Create.registrate(); BlockBuilder builder = registrate.block(pattern.createName(name), pattern.getBlockFactory()) .initialProperties(initialProperties) @@ -36,12 +39,24 @@ public class PalettesVariantEntry { .apply(pattern) .apply(name)::accept); + ItemBuilder> itemBuilder = + builder.item(); + + ITag.INamedTag[] blockTags = pattern.getBlockTags(); + if (blockTags != null) { + builder.tag(blockTags); + } + ITag.INamedTag[] itemTags = pattern.getItemTags(); + if (itemTags != null) { + itemBuilder.tag(itemTags); + } + if (pattern.isTranslucent()) builder.addLayer(() -> RenderType::translucent); - if (pattern == PaletteBlockPattern.COBBLESTONE) - builder.item().tag(AllTags.AllItemTags.COBBLESTONE.tag); - if (pattern.hasFoliage()) + if (pattern.hasFoliage()) { builder.color(() -> ColorHandlers::getGrassyBlock); + itemBuilder.color(() -> ColorHandlers::getGrassyItem); + } pattern.createCTBehaviour(variant) .ifPresent(b -> builder.onRegister(connectedTextures(b))); @@ -51,13 +66,7 @@ public class PalettesVariantEntry { pattern.addRecipes(variant, c, p); }); - if (pattern.hasFoliage()) - builder.item() - .color(() -> ColorHandlers::getGrassyItem) - .build(); - else - builder.simpleItem(); - + itemBuilder.register(); BlockEntry block = builder.register(); registeredBlocks.add(block); diff --git a/src/main/java/com/simibubi/create/content/schematics/block/SchematicannonInstance.java b/src/main/java/com/simibubi/create/content/schematics/block/SchematicannonInstance.java index 3d64468c1..0d9e73822 100644 --- a/src/main/java/com/simibubi/create/content/schematics/block/SchematicannonInstance.java +++ b/src/main/java/com/simibubi/create/content/schematics/block/SchematicannonInstance.java @@ -1,9 +1,9 @@ package com.simibubi.create.content.schematics.block; import com.jozufozu.flywheel.backend.instancing.IDynamicInstance; +import com.jozufozu.flywheel.backend.instancing.tile.TileEntityInstance; import com.jozufozu.flywheel.backend.material.InstanceMaterial; import com.jozufozu.flywheel.backend.material.MaterialManager; -import com.jozufozu.flywheel.backend.instancing.tile.TileEntityInstance; import com.jozufozu.flywheel.core.materials.ModelData; import com.jozufozu.flywheel.util.transform.MatrixTransformStack; import com.mojang.blaze3d.matrix.MatrixStack; diff --git a/src/main/java/com/simibubi/create/events/ClientEvents.java b/src/main/java/com/simibubi/create/events/ClientEvents.java index c25d99b98..41edcf514 100644 --- a/src/main/java/com/simibubi/create/events/ClientEvents.java +++ b/src/main/java/com/simibubi/create/events/ClientEvents.java @@ -92,8 +92,8 @@ import net.minecraftforge.fml.event.lifecycle.FMLLoadCompleteEvent; @EventBusSubscriber(value = Dist.CLIENT) public class ClientEvents { - private static final String itemPrefix = "item." + Create.ID; - private static final String blockPrefix = "block." + Create.ID; + private static final String ITEM_PREFIX = "item." + Create.ID; + private static final String BLOCK_PREFIX = "block." + Create.ID; @SubscribeEvent public static void onTick(ClientTickEvent event) { @@ -243,7 +243,7 @@ public class ClientEvents { String translationKey = stack.getItem() .getDescriptionId(stack); - if (translationKey.startsWith(itemPrefix) || translationKey.startsWith(blockPrefix)) + if (translationKey.startsWith(ITEM_PREFIX) || translationKey.startsWith(BLOCK_PREFIX)) if (TooltipHelper.hasTooltip(stack, event.getPlayer())) { List itemTooltip = event.getToolTip(); List toolTip = new ArrayList<>(); diff --git a/src/main/java/com/simibubi/create/foundation/advancement/CriterionTriggerBase.java b/src/main/java/com/simibubi/create/foundation/advancement/CriterionTriggerBase.java index c6389a6cb..e3ab6d356 100644 --- a/src/main/java/com/simibubi/create/foundation/advancement/CriterionTriggerBase.java +++ b/src/main/java/com/simibubi/create/foundation/advancement/CriterionTriggerBase.java @@ -26,10 +26,10 @@ import net.minecraft.util.ResourceLocation; public abstract class CriterionTriggerBase implements ICriterionTrigger { public CriterionTriggerBase(String id) { - this.ID = new ResourceLocation(Create.ID, id); + this.id = Create.asResource(id); } - private final ResourceLocation ID; + private final ResourceLocation id; protected final Map>> listeners = Maps.newHashMap(); @Override @@ -57,7 +57,7 @@ public abstract class CriterionTriggerBase> suppliers) { diff --git a/src/main/java/com/simibubi/create/foundation/block/connected/CTSpriteShiftEntry.java b/src/main/java/com/simibubi/create/foundation/block/connected/CTSpriteShiftEntry.java index 40d6bf434..c1cf56332 100644 --- a/src/main/java/com/simibubi/create/foundation/block/connected/CTSpriteShiftEntry.java +++ b/src/main/java/com/simibubi/create/foundation/block/connected/CTSpriteShiftEntry.java @@ -7,7 +7,7 @@ import com.simibubi.create.foundation.render.SuperByteBuffer; public abstract class CTSpriteShiftEntry extends SpriteShiftEntry { - int textureSheetSize; + protected int textureSheetSize; public CTSpriteShiftEntry(int sheetSize) { this.textureSheetSize = sheetSize; diff --git a/src/main/java/com/simibubi/create/foundation/block/connected/CTSpriteShifter.java b/src/main/java/com/simibubi/create/foundation/block/connected/CTSpriteShifter.java index 2b09a995a..588656377 100644 --- a/src/main/java/com/simibubi/create/foundation/block/connected/CTSpriteShifter.java +++ b/src/main/java/com/simibubi/create/foundation/block/connected/CTSpriteShifter.java @@ -7,33 +7,25 @@ import net.minecraft.util.ResourceLocation; public class CTSpriteShifter extends SpriteShifter { - public enum CTType { - OMNIDIRECTIONAL, HORIZONTAL, VERTICAL, CROSS; + public static CTSpriteShiftEntry getCT(CTType type, ResourceLocation blockTexture, ResourceLocation connectedTexture) { + String key = type.name() + ":" + blockTexture + "->" + connectedTexture; + if (ENTRY_CACHE.containsKey(key)) + return (CTSpriteShiftEntry) ENTRY_CACHE.get(key); + + CTSpriteShiftEntry entry = create(type); + entry.set(blockTexture, connectedTexture); + ENTRY_CACHE.put(key, entry); + return entry; + } + + public static CTSpriteShiftEntry getCT(CTType type, String blockTextureName, String connectedTextureName) { + return getCT(type, Create.asResource("block/" + blockTextureName), Create.asResource("block/" + connectedTextureName + "_connected")); } public static CTSpriteShiftEntry getCT(CTType type, String blockTextureName) { return getCT(type, blockTextureName, blockTextureName); } - public static CTSpriteShiftEntry getCT(CTType type, String blockTextureName, String connectedTextureName) { - return getCT(type, new ResourceLocation(Create.ID, "block/" + blockTextureName), connectedTextureName); - } - - public static CTSpriteShiftEntry getCT(CTType type, ResourceLocation blockTexture, String connectedTextureName) { - String targetLocation = "block/" + connectedTextureName + "_connected"; - String key = - type.name() + ":" + blockTexture.getNamespace() + ":" + blockTexture.getPath() + "->" + targetLocation; - if (textures.containsKey(key)) - return (CTSpriteShiftEntry) textures.get(key); - - CTSpriteShiftEntry entry = create(type); - ResourceLocation targetTextureLocation = new ResourceLocation(Create.ID, targetLocation); - entry.set(blockTexture, targetTextureLocation); - - textures.put(key, entry); - return entry; - } - private static CTSpriteShiftEntry create(CTType type) { switch (type) { case HORIZONTAL: @@ -49,4 +41,8 @@ public class CTSpriteShifter extends SpriteShifter { } } + public enum CTType { + OMNIDIRECTIONAL, HORIZONTAL, VERTICAL, CROSS; + } + } diff --git a/src/main/java/com/simibubi/create/foundation/block/render/SpriteShifter.java b/src/main/java/com/simibubi/create/foundation/block/render/SpriteShifter.java index a4f0d19c4..d1e88676e 100644 --- a/src/main/java/com/simibubi/create/foundation/block/render/SpriteShifter.java +++ b/src/main/java/com/simibubi/create/foundation/block/render/SpriteShifter.java @@ -11,26 +11,29 @@ import net.minecraft.util.ResourceLocation; public class SpriteShifter { - protected static Map textures = new HashMap<>(); + protected static final Map ENTRY_CACHE = new HashMap<>(); - public static SpriteShiftEntry get(String originalLocation, String targetLocation) { + public static SpriteShiftEntry get(ResourceLocation originalLocation, ResourceLocation targetLocation) { String key = originalLocation + "->" + targetLocation; - if (textures.containsKey(key)) - return textures.get(key); + if (ENTRY_CACHE.containsKey(key)) + return ENTRY_CACHE.get(key); SpriteShiftEntry entry = new SpriteShiftEntry(); - entry.originalTextureLocation = new ResourceLocation(Create.ID, originalLocation); - entry.targetTextureLocation = new ResourceLocation(Create.ID, targetLocation); - textures.put(key, entry); + entry.set(originalLocation, targetLocation); + ENTRY_CACHE.put(key, entry); return entry; } + public static SpriteShiftEntry get(String originalLocation, String targetLocation) { + return get(Create.asResource(originalLocation), Create.asResource(targetLocation)); + } + public static void reloadUVs() { - textures.values().forEach(SpriteShiftEntry::loadTextures); + ENTRY_CACHE.values().forEach(SpriteShiftEntry::loadTextures); } public static List getAllTargetSprites() { - return textures.values().stream().map(SpriteShiftEntry::getTargetResourceLocation).collect(Collectors.toList()); + return ENTRY_CACHE.values().stream().map(SpriteShiftEntry::getTargetResourceLocation).collect(Collectors.toList()); } } diff --git a/src/main/java/com/simibubi/create/foundation/data/BuilderTransformers.java b/src/main/java/com/simibubi/create/foundation/data/BuilderTransformers.java index be2439fb0..7f837a738 100644 --- a/src/main/java/com/simibubi/create/foundation/data/BuilderTransformers.java +++ b/src/main/java/com/simibubi/create/foundation/data/BuilderTransformers.java @@ -22,8 +22,8 @@ import com.simibubi.create.content.logistics.block.belts.tunnel.BeltTunnelBlock; import com.simibubi.create.content.logistics.block.belts.tunnel.BeltTunnelBlock.Shape; import com.simibubi.create.content.logistics.block.belts.tunnel.BeltTunnelItem; import com.simibubi.create.content.logistics.block.inventories.CrateBlock; -import com.simibubi.create.foundation.block.ItemUseOverrides; import com.simibubi.create.foundation.block.BlockStressDefaults; +import com.simibubi.create.foundation.block.ItemUseOverrides; import com.simibubi.create.foundation.block.connected.CTSpriteShiftEntry; import com.tterrag.registrate.builders.BlockBuilder; import com.tterrag.registrate.util.nullness.NonNullUnaryOperator; diff --git a/src/main/java/com/simibubi/create/foundation/data/ModelGen.java b/src/main/java/com/simibubi/create/foundation/data/ModelGen.java index ff8cf6679..b99a63bb1 100644 --- a/src/main/java/com/simibubi/create/foundation/data/ModelGen.java +++ b/src/main/java/com/simibubi/create/foundation/data/ModelGen.java @@ -21,7 +21,7 @@ public class ModelGen { public static ModelFile createOvergrown(DataGenContext ctx, BlockStateProvider prov, ResourceLocation side, ResourceLocation top, ResourceLocation bottom, ResourceLocation overlay) { return prov.models() - .withExistingParent(ctx.getName(), new ResourceLocation(Create.ID, "block/overgrown")) + .withExistingParent(ctx.getName(), Create.asResource("block/overgrown")) .texture("particle", side) .texture("side", side) .texture("top", top) diff --git a/src/main/java/com/simibubi/create/foundation/data/WindowGen.java b/src/main/java/com/simibubi/create/foundation/data/WindowGen.java index 8139a6f9b..2e3c6dbc6 100644 --- a/src/main/java/com/simibubi/create/foundation/data/WindowGen.java +++ b/src/main/java/com/simibubi/create/foundation/data/WindowGen.java @@ -213,7 +213,7 @@ public class WindowGen { .loot((t, g) -> t.dropWhenSilkTouch(g)) .item() .tag(Tags.Items.GLASS_PANES) - .model((c, p) -> p.withExistingParent(c.getName(), new ResourceLocation(Create.ID, "item/pane")) + .model((c, p) -> p.withExistingParent(c.getName(), Create.asResource("item/pane")) .texture("pane", sideTexture) .texture("edge", topTexture)) .build() diff --git a/src/main/java/com/simibubi/create/foundation/gui/AllGuiTextures.java b/src/main/java/com/simibubi/create/foundation/gui/AllGuiTextures.java index 3998c7258..9ff757fdf 100644 --- a/src/main/java/com/simibubi/create/foundation/gui/AllGuiTextures.java +++ b/src/main/java/com/simibubi/create/foundation/gui/AllGuiTextures.java @@ -120,7 +120,7 @@ public enum AllGuiTextures implements IScreenRenderable { } private AllGuiTextures(String location, int startX, int startY, int width, int height) { - this.location = new ResourceLocation(Create.ID, "textures/gui/" + location); + this.location = Create.asResource("textures/gui/" + location); this.width = width; this.height = height; this.startX = startX; diff --git a/src/main/java/com/simibubi/create/foundation/item/ItemDescription.java b/src/main/java/com/simibubi/create/foundation/item/ItemDescription.java index 571838583..2b8bac433 100644 --- a/src/main/java/com/simibubi/create/foundation/item/ItemDescription.java +++ b/src/main/java/com/simibubi/create/foundation/item/ItemDescription.java @@ -21,7 +21,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import com.simibubi.create.AllBlocks; import com.simibubi.create.AllItems; import com.simibubi.create.content.contraptions.base.IRotate; import com.simibubi.create.content.contraptions.base.IRotate.SpeedLevel; diff --git a/src/main/java/com/simibubi/create/foundation/networking/AllPackets.java b/src/main/java/com/simibubi/create/foundation/networking/AllPackets.java index 81c9a9a2a..06add7c5e 100644 --- a/src/main/java/com/simibubi/create/foundation/networking/AllPackets.java +++ b/src/main/java/com/simibubi/create/foundation/networking/AllPackets.java @@ -25,8 +25,8 @@ import com.simibubi.create.content.curiosities.bell.SoulPulseEffectPacket; import com.simibubi.create.content.curiosities.symmetry.SymmetryEffectPacket; import com.simibubi.create.content.curiosities.tools.BlueprintAssignCompleteRecipePacket; import com.simibubi.create.content.curiosities.tools.ExtendoGripInteractionPacket; -import com.simibubi.create.content.curiosities.weapons.PotatoProjectileTypeManager; import com.simibubi.create.content.curiosities.weapons.PotatoCannonPacket; +import com.simibubi.create.content.curiosities.weapons.PotatoProjectileTypeManager; import com.simibubi.create.content.curiosities.zapper.ZapperBeamPacket; import com.simibubi.create.content.logistics.block.depot.EjectorElytraPacket; import com.simibubi.create.content.logistics.block.depot.EjectorPlacementPacket; @@ -122,8 +122,8 @@ public enum AllPackets { ; - public static final ResourceLocation CHANNEL_NAME = new ResourceLocation(Create.ID, "network"); - public static final String NETWORK_VERSION = new ResourceLocation(Create.ID, "1").toString(); + public static final ResourceLocation CHANNEL_NAME = Create.asResource("network"); + public static final String NETWORK_VERSION = Create.asResource("1").toString(); public static SimpleChannel channel; private LoadedPacket packet; diff --git a/src/main/java/com/simibubi/create/foundation/ponder/PonderLocalization.java b/src/main/java/com/simibubi/create/foundation/ponder/PonderLocalization.java index 8b5bb3d97..9201555e2 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/PonderLocalization.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/PonderLocalization.java @@ -34,6 +34,10 @@ public class PonderLocalization { TAG.put(key, Couple.create(enUS, description)); } + public static void registerChapter(ResourceLocation key, String enUS) { + CHAPTER.put(key, enUS); + } + public static void registerSpecific(ResourceLocation sceneId, String key, String enUS) { SPECIFIC.computeIfAbsent(sceneId, $ -> new HashMap<>()) .put(key, enUS); diff --git a/src/main/java/com/simibubi/create/foundation/ponder/PonderScene.java b/src/main/java/com/simibubi/create/foundation/ponder/PonderScene.java index b91839fd8..c6a644f22 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/PonderScene.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/PonderScene.java @@ -13,6 +13,8 @@ import java.util.function.Consumer; import java.util.function.Function; import java.util.function.Supplier; +import javax.annotation.Nullable; + import org.apache.commons.lang3.mutable.MutableDouble; import org.apache.commons.lang3.mutable.MutableObject; @@ -52,8 +54,6 @@ import net.minecraft.util.math.vector.Vector3d; import net.minecraft.util.math.vector.Vector3i; import net.minecraft.util.math.vector.Vector4f; -import javax.annotation.Nullable; - public class PonderScene { public static final String TITLE_KEY = "header"; diff --git a/src/main/java/com/simibubi/create/foundation/render/AllMaterialSpecs.java b/src/main/java/com/simibubi/create/foundation/render/AllMaterialSpecs.java index 82e1a5928..4017777fc 100644 --- a/src/main/java/com/simibubi/create/foundation/render/AllMaterialSpecs.java +++ b/src/main/java/com/simibubi/create/foundation/render/AllMaterialSpecs.java @@ -32,9 +32,9 @@ public class AllMaterialSpecs { } public static class Locations { - public static final ResourceLocation ROTATING = new ResourceLocation(Create.ID, "rotating"); - public static final ResourceLocation BELTS = new ResourceLocation(Create.ID, "belts"); - public static final ResourceLocation ACTORS = new ResourceLocation(Create.ID, "actors"); - public static final ResourceLocation FLAPS = new ResourceLocation(Create.ID, "flaps"); + public static final ResourceLocation ROTATING = Create.asResource("rotating"); + public static final ResourceLocation BELTS = Create.asResource("belts"); + public static final ResourceLocation ACTORS = Create.asResource("actors"); + public static final ResourceLocation FLAPS = Create.asResource("flaps"); } } diff --git a/src/main/java/com/simibubi/create/foundation/render/AllProgramSpecs.java b/src/main/java/com/simibubi/create/foundation/render/AllProgramSpecs.java index 6df22f622..5dd47e831 100644 --- a/src/main/java/com/simibubi/create/foundation/render/AllProgramSpecs.java +++ b/src/main/java/com/simibubi/create/foundation/render/AllProgramSpecs.java @@ -1,19 +1,16 @@ package com.simibubi.create.foundation.render; -import com.simibubi.create.Create; +import static com.simibubi.create.Create.asResource; import net.minecraft.util.ResourceLocation; public class AllProgramSpecs { - public static final ResourceLocation ROTATING = loc("rotating"); - public static final ResourceLocation CHROMATIC = loc("chromatic"); - public static final ResourceLocation BELT = loc("belt"); - public static final ResourceLocation FLAPS = loc("flap"); - public static final ResourceLocation STRUCTURE = loc("contraption_structure"); - public static final ResourceLocation ACTOR = loc("contraption_actor"); + public static final ResourceLocation ROTATING = asResource("rotating"); + public static final ResourceLocation CHROMATIC = asResource("chromatic"); + public static final ResourceLocation BELT = asResource("belt"); + public static final ResourceLocation FLAPS = asResource("flap"); + public static final ResourceLocation STRUCTURE = asResource("contraption_structure"); + public static final ResourceLocation ACTOR = asResource("contraption_actor"); - private static ResourceLocation loc(String name) { - return new ResourceLocation(Create.ID, name); - } } diff --git a/src/main/java/com/simibubi/create/foundation/render/RainbowDebugStateProvider.java b/src/main/java/com/simibubi/create/foundation/render/RainbowDebugStateProvider.java index 59aa3eb15..9c925cd74 100644 --- a/src/main/java/com/simibubi/create/foundation/render/RainbowDebugStateProvider.java +++ b/src/main/java/com/simibubi/create/foundation/render/RainbowDebugStateProvider.java @@ -9,7 +9,7 @@ import net.minecraft.util.ResourceLocation; public class RainbowDebugStateProvider implements IBooleanStateProvider { public static final RainbowDebugStateProvider INSTANCE = new RainbowDebugStateProvider(); - public static final ResourceLocation NAME = new ResourceLocation(Create.ID, "rainbow_debug"); + public static final ResourceLocation NAME = Create.asResource("rainbow_debug"); protected RainbowDebugStateProvider() { diff --git a/src/main/java/com/simibubi/create/foundation/tileEntity/TileEntityBehaviour.java b/src/main/java/com/simibubi/create/foundation/tileEntity/TileEntityBehaviour.java index 0483e85e5..7eb8241ac 100644 --- a/src/main/java/com/simibubi/create/foundation/tileEntity/TileEntityBehaviour.java +++ b/src/main/java/com/simibubi/create/foundation/tileEntity/TileEntityBehaviour.java @@ -1,5 +1,7 @@ package com.simibubi.create.foundation.tileEntity; +import java.util.ConcurrentModificationException; + import com.simibubi.create.content.schematics.ItemRequirement; import com.simibubi.create.foundation.tileEntity.behaviour.BehaviourType; @@ -10,8 +12,6 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.world.IBlockReader; import net.minecraft.world.World; -import java.util.ConcurrentModificationException; - public abstract class TileEntityBehaviour { public SmartTileEntity tileEntity; diff --git a/src/main/java/com/simibubi/create/foundation/utility/WorldAttached.java b/src/main/java/com/simibubi/create/foundation/utility/WorldAttached.java index 04c4645e6..20555bdb3 100644 --- a/src/main/java/com/simibubi/create/foundation/utility/WorldAttached.java +++ b/src/main/java/com/simibubi/create/foundation/utility/WorldAttached.java @@ -4,10 +4,8 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.function.Function; import javax.annotation.Nonnull; -import javax.annotation.Nullable; import net.minecraft.world.IWorld; import net.minecraftforge.common.util.NonNullFunction; From 8e1a93124cd7bd7f3b4137711585a8079ec3a07b Mon Sep 17 00:00:00 2001 From: TelepathicGrunt <40846040+TelepathicGrunt@users.noreply.github.com> Date: Sun, 3 Oct 2021 12:01:22 -0400 Subject: [PATCH 66/79] Add create honey bucket to a forge tag Me and a few other bee mods are trying to standardize where honey buckets should go for better mod compat. Hence this pr to put create's honey bucket into forge:buckets/honey item tag. The Bumblezone and Productive Bee's are going to have their honey buckets in that same place too very soon --- src/main/resources/data/forge/tags/items/buckets/honey.json | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 src/main/resources/data/forge/tags/items/buckets/honey.json diff --git a/src/main/resources/data/forge/tags/items/buckets/honey.json b/src/main/resources/data/forge/tags/items/buckets/honey.json new file mode 100644 index 000000000..47f91b376 --- /dev/null +++ b/src/main/resources/data/forge/tags/items/buckets/honey.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "create:honey_bucket" + ] +} From 1abc3a8bf9e63ab22823fe78bfa3c6d2f370b19b Mon Sep 17 00:00:00 2001 From: PepperBell <44146161+PepperCode1@users.noreply.github.com> Date: Thu, 7 Oct 2021 00:05:35 -0700 Subject: [PATCH 67/79] Safe networking and more tag datagen - Remove NbtPacket and add safe packets for configuring symmetry wand and worldshaper separately - Expand internal functionality of AllTags and use optional tags in most cases - Datagen tags forge:stone, forge:wg_stone, and forge:buckets/honey - Fix attribute filter screen being shifted by one pixel - Add translations for "fluid_container" and "renamed" item attributes --- src/generated/resources/.cache/cache | 32 +-- .../resources/assets/create/lang/en_us.json | 50 +++-- .../assets/create/lang/unfinished/de_de.json | 52 +++-- .../assets/create/lang/unfinished/es_es.json | 52 +++-- .../assets/create/lang/unfinished/fr_fr.json | 52 +++-- .../assets/create/lang/unfinished/it_it.json | 52 +++-- .../assets/create/lang/unfinished/ja_jp.json | 52 +++-- .../assets/create/lang/unfinished/ko_kr.json | 52 +++-- .../assets/create/lang/unfinished/nl_nl.json | 52 +++-- .../assets/create/lang/unfinished/pl_pl.json | 52 +++-- .../assets/create/lang/unfinished/pt_br.json | 52 +++-- .../assets/create/lang/unfinished/ru_ru.json | 52 +++-- .../assets/create/lang/unfinished/zh_cn.json | 52 +++-- .../assets/create/lang/unfinished/zh_tw.json | 52 +++-- .../data/create/advancements/aesthetics.json | 4 +- .../data/forge/tags/blocks}/stone.json | 4 +- .../data/forge/tags/blocks/wg_stone.json | 2 +- .../data/forge/tags/items/buckets/honey.json | 2 +- .../data/forge/tags/items}/stone.json | 4 +- .../java/com/simibubi/create/AllFluids.java | 3 + .../java/com/simibubi/create/AllTags.java | 208 ++++++++++++------ .../symmetry/ConfigureSymmetryWandPacket.java | 50 +++++ .../symmetry/SymmetryWandItem.java | 7 +- .../symmetry/SymmetryWandScreen.java | 16 +- .../zapper/ConfigureZapperPacket.java | 51 +++++ .../curiosities/zapper/PlacementPatterns.java | 4 +- .../curiosities/zapper/ZapperItem.java | 12 +- .../curiosities/zapper/ZapperScreen.java | 49 ++--- .../ConfigureWorldshaperPacket.java | 55 +++++ .../zapper/terrainzapper/WorldshaperItem.java | 14 +- .../terrainzapper/WorldshaperScreen.java | 202 ++++++++--------- .../item/filter/AttributeFilterScreen.java | 2 +- .../logistics/item/filter/ItemAttribute.java | 6 +- .../content/palettes/AllPaletteBlocks.java | 21 +- .../content/palettes/PaletteBlockPattern.java | 2 + .../content/palettes/ScoriaVertexColor.java | 2 + .../palettes/StandardFoliageColorHandler.java | 20 -- .../foundation/data/CreateRegistrate.java | 25 ++- .../foundation/networking/AllPackets.java | 5 +- .../foundation/networking/NbtPacket.java | 73 ------ .../foundation/utility/EmptyNamedTag.java | 40 ---- .../create/foundation/utility/NBTHelper.java | 15 +- .../assets/create/lang/default/messages.json | 56 ++--- 43 files changed, 928 insertions(+), 732 deletions(-) rename src/{main/resources/data/forge/tags/items => generated/resources/data/forge/tags/blocks}/stone.json (100%) rename src/{main => generated}/resources/data/forge/tags/blocks/wg_stone.json (100%) rename src/{main => generated}/resources/data/forge/tags/items/buckets/honey.json (97%) rename src/{main/resources/data/forge/tags/blocks => generated/resources/data/forge/tags/items}/stone.json (100%) create mode 100644 src/main/java/com/simibubi/create/content/curiosities/symmetry/ConfigureSymmetryWandPacket.java create mode 100644 src/main/java/com/simibubi/create/content/curiosities/zapper/ConfigureZapperPacket.java create mode 100644 src/main/java/com/simibubi/create/content/curiosities/zapper/terrainzapper/ConfigureWorldshaperPacket.java delete mode 100644 src/main/java/com/simibubi/create/content/palettes/StandardFoliageColorHandler.java delete mode 100644 src/main/java/com/simibubi/create/foundation/networking/NbtPacket.java delete mode 100644 src/main/java/com/simibubi/create/foundation/utility/EmptyNamedTag.java diff --git a/src/generated/resources/.cache/cache b/src/generated/resources/.cache/cache index fb2fc5102..05cc63bbb 100644 --- a/src/generated/resources/.cache/cache +++ b/src/generated/resources/.cache/cache @@ -426,19 +426,19 @@ a3a11524cd3515fc01d905767b4b7ea782adaf03 assets/create/blockstates/yellow_seat.j 7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json fb760b12b4bc8114744d3acc6a597b2fad88d988 assets/create/lang/en_ud.json -fcd58b47e3fbe4039ea684dadd08d36bd0beaa7d assets/create/lang/en_us.json -2047ce757fe7b7d279b72c5d4d8d6f111e478b2f assets/create/lang/unfinished/de_de.json -3cb5a941527ad3981a094cb2599a28aa654c15b3 assets/create/lang/unfinished/es_es.json -008a67a90fc7d6d59d98c3ac4f4cd45cb47fbcc2 assets/create/lang/unfinished/fr_fr.json -80091dc7ed4ed81a18bce6e9fa0b5fc870a70c89 assets/create/lang/unfinished/it_it.json -a12b0fabb18a0bc7e50ad4e6760aa0a3f222edaf assets/create/lang/unfinished/ja_jp.json -e49e3d4cfcd43194e3904c94a167bc98179b40ff assets/create/lang/unfinished/ko_kr.json -47fa6e25a19d0f8c86178954da4b50aaec247ef4 assets/create/lang/unfinished/nl_nl.json -64581657991641f49c5888e379157939cb5bdc3c assets/create/lang/unfinished/pl_pl.json -d3f22a7ee26461f1369f100001098b9f165b7cb5 assets/create/lang/unfinished/pt_br.json -c2b821bd4c0b09ba0f255c40bcd379b9ad864f10 assets/create/lang/unfinished/ru_ru.json -c43f76c83bbd9c7ac9cd8ac7f82fa1b98347771b assets/create/lang/unfinished/zh_cn.json -e797c8d5e89b9ecc6bf82858a1c905f8b905da16 assets/create/lang/unfinished/zh_tw.json +c34c047c7d8f62efe3f9d92cdbd0b0c385ac77b8 assets/create/lang/en_us.json +26247b4e7fed5a2ec981bf5b1a42e6b338b9471c assets/create/lang/unfinished/de_de.json +57e52ca3bc790adc4e9137c3af355fe8c94cf597 assets/create/lang/unfinished/es_es.json +327f1b4f91eb83cad038c80f6dbedaba27bd9135 assets/create/lang/unfinished/fr_fr.json +ffd5ddcc1be89e5bb1ee2314791bd537a5940ef0 assets/create/lang/unfinished/it_it.json +9a7add1a53719d02edf1a2287047e88c336ece9b assets/create/lang/unfinished/ja_jp.json +a0791d3c782354a6cd8efce2e89fe0cc0fa9ffba assets/create/lang/unfinished/ko_kr.json +2d541c648e723b0749cc54d987ed6606343ce90d assets/create/lang/unfinished/nl_nl.json +d9a9dca70e96099fb3fdb2a68b9e75a63b7adb7c assets/create/lang/unfinished/pl_pl.json +1e1e951a23dbc3fab963b84b25a35b2dd1f3f1eb assets/create/lang/unfinished/pt_br.json +3ed90c03bd5e2c7f38e1939ab53a935901378431 assets/create/lang/unfinished/ru_ru.json +111ded42981e258ddc6462404eda1338c67c3aa4 assets/create/lang/unfinished/zh_cn.json +75b898e606bc74d7801b300b7e4c25a2c351be27 assets/create/lang/unfinished/zh_tw.json 487a511a01b2a4531fb672f917922312db78f958 assets/create/models/block/acacia_window.json b48060cba1a382f373a05bf0039054053eccf076 assets/create/models/block/acacia_window_pane_noside.json 3066db1bf03cffa1a9c7fbacf47ae586632f4eb3 assets/create/models/block/acacia_window_pane_noside_alt.json @@ -1699,7 +1699,7 @@ d080b1b25e5bc8baf5aee68691b08c7f12ece3b0 assets/create/models/item/windmill_bear a80fb25a0b655e76be986b5b49fcb0f03461a1ab assets/create/models/item/zinc_nugget.json b1689617190c05ef34bd18456b0c7ae09bb3210f assets/create/models/item/zinc_ore.json 58880e397902f8ca5b3b59ed4423e626109ddc4c assets/create/sounds.json -0f1b4b980afba9bf2caf583b88e261bba8b10313 data/create/advancements/aesthetics.json +5d0cc4c0255dc241e61c173b31ddca70c88d08e4 data/create/advancements/aesthetics.json 187921fa131b06721bfaf63f2623a28c141aae9a data/create/advancements/andesite_alloy.json 0ea2db7173b5be28b289ea7c9a6a0cf5805c60c7 data/create/advancements/andesite_casing.json 83c046bd200623933545c9e4326f782fb02c87fa data/create/advancements/arm_blaze_burner.json @@ -3763,14 +3763,17 @@ bce28787b0271382842823d04a977912a88b01c2 data/create/tags/items/sandpaper.json 4b700ee8aa748c2ec70c29ef1589844879c0deae data/forge/tags/blocks/ores.json 4a0b13a9835106de9a1dd0a71a02372abb48e7b6 data/forge/tags/blocks/ores/copper.json d5ea262a0f5fb210612d22521818e26cf08e591a data/forge/tags/blocks/ores/zinc.json +55196ee770ad20602211e26864dd62a58b2e985c data/forge/tags/blocks/stone.json 508730d3822c54d355329bf6a33d58071653afad data/forge/tags/blocks/storage_blocks.json ff1900963bc4cd8ceffa78d58ef1952ceacb2fb7 data/forge/tags/blocks/storage_blocks/brass.json f6c8f34ceb475546dba5cc6ff288863ea795d20b data/forge/tags/blocks/storage_blocks/copper.json 7f71a774800111e50b42de0e6159ed2d2a807d32 data/forge/tags/blocks/storage_blocks/zinc.json +2072c51afc5bbc6c9d64fd086803193d8a3c40de data/forge/tags/blocks/wg_stone.json 6b73c57912934d09233ad2966110968a6109f2c9 data/forge/tags/fluids/chocolate.json 391c9b2be5740aea943a8a5fe27eb327e2d973b0 data/forge/tags/fluids/honey.json d6a4e4fe1204b718010543a28a9b9ec4e0977bd7 data/forge/tags/fluids/tea.json d9ffc62a496946fc4848934e7c0a6e917337f8be data/forge/tags/items/beacon_payment.json +5af3164b14c92d2d6e235b5d4eebd93cbee37c0a data/forge/tags/items/buckets/honey.json 05ca51cdc60a5e109b5a0e3b782de13d34ebcb24 data/forge/tags/items/cobblestone.json 16bcb8fcbe9170c2c11f1ca8d99d8b36cd812bbd data/forge/tags/items/glass/colorless.json 81d3eb40b048160fcc2d6bb7ff12b49276297efd data/forge/tags/items/glass_panes.json @@ -3790,6 +3793,7 @@ d5ea262a0f5fb210612d22521818e26cf08e591a data/forge/tags/items/ores/zinc.json c3dab5fe379bc1b7b10d4a0ba7009eee1b75a27c data/forge/tags/items/plates/copper.json fb9bfb4c84ed9cf2da8c4b2fbc4cd4d9f37d3016 data/forge/tags/items/plates/gold.json 04d947ed7a5066f3cfe75a8dc564fe2dca8a9c93 data/forge/tags/items/plates/iron.json +55196ee770ad20602211e26864dd62a58b2e985c data/forge/tags/items/stone.json 508730d3822c54d355329bf6a33d58071653afad data/forge/tags/items/storage_blocks.json ff1900963bc4cd8ceffa78d58ef1952ceacb2fb7 data/forge/tags/items/storage_blocks/brass.json f6c8f34ceb475546dba5cc6ff288863ea795d20b data/forge/tags/items/storage_blocks/copper.json diff --git a/src/generated/resources/assets/create/lang/en_us.json b/src/generated/resources/assets/create/lang/en_us.json index 3b240d38c..44d3f3877 100644 --- a/src/generated/resources/assets/create/lang/en_us.json +++ b/src/generated/resources/assets/create/lang/en_us.json @@ -1037,18 +1037,14 @@ "create.item_attributes.placeable.inverted": "is not placeable", "create.item_attributes.consumable": "can be eaten", "create.item_attributes.consumable.inverted": "cannot be eaten", - "create.item_attributes.smeltable": "can be Smelted", - "create.item_attributes.smeltable.inverted": "cannot be Smelted", - "create.item_attributes.washable": "can be Washed", - "create.item_attributes.washable.inverted": "cannot be Washed", - "create.item_attributes.smokable": "can be Smoked", - "create.item_attributes.smokable.inverted": "cannot be Smoked", - "create.item_attributes.crushable": "can be Crushed", - "create.item_attributes.crushable.inverted": "cannot be Crushed", - "create.item_attributes.blastable": "is smeltable in Blast Furnace", - "create.item_attributes.blastable.inverted": "is not smeltable in Blast Furnace", + "create.item_attributes.fluid_container": "can store fluids", + "create.item_attributes.fluid_container.inverted": "cannot store fluids", "create.item_attributes.enchanted": "is enchanted", "create.item_attributes.enchanted.inverted": "is unenchanted", + "create.item_attributes.max_enchanted": "is enchanted at max level", + "create.item_attributes.max_enchanted.inverted": "is not enchanted at max level", + "create.item_attributes.renamed": "has a custom name", + "create.item_attributes.renamed.inverted": "does not have a custom name", "create.item_attributes.damaged": "is damaged", "create.item_attributes.damaged.inverted": "is not damaged", "create.item_attributes.badly_damaged": "is heavily damaged", @@ -1059,23 +1055,31 @@ "create.item_attributes.equipable.inverted": "cannot be equipped", "create.item_attributes.furnace_fuel": "is furnace fuel", "create.item_attributes.furnace_fuel.inverted": "is not furnace fuel", + "create.item_attributes.washable": "can be Washed", + "create.item_attributes.washable.inverted": "cannot be Washed", + "create.item_attributes.crushable": "can be Crushed", + "create.item_attributes.crushable.inverted": "cannot be Crushed", + "create.item_attributes.smeltable": "can be Smelted", + "create.item_attributes.smeltable.inverted": "cannot be Smelted", + "create.item_attributes.smokable": "can be Smoked", + "create.item_attributes.smokable.inverted": "cannot be Smoked", + "create.item_attributes.blastable": "is smeltable in Blast Furnace", + "create.item_attributes.blastable.inverted": "is not smeltable in Blast Furnace", + "create.item_attributes.shulker_level": "is shulker %1$s", + "create.item_attributes.shulker_level.inverted": "is shulker not %1$s", + "create.item_attributes.shulker_level.full": "full", + "create.item_attributes.shulker_level.empty": "empty", + "create.item_attributes.shulker_level.partial": "partially filled", "create.item_attributes.in_tag": "is tagged %1$s", "create.item_attributes.in_tag.inverted": "is not tagged %1$s", "create.item_attributes.in_item_group": "is in group '%1$s'", "create.item_attributes.in_item_group.inverted": "is not in group '%1$s'", "create.item_attributes.added_by": "was added by %1$s", "create.item_attributes.added_by.inverted": "was not added by %1$s", - "create.item_attributes.shulker_level": "is shulker %1$s", - "create.item_attributes.shulker_level.inverted": "is shulker not %1$s", - "create.item_attributes.shulker_level.full": "full", - "create.item_attributes.shulker_level.empty": "empty", - "create.item_attributes.shulker_level.partial": "partially filled", "create.item_attributes.has_enchant": "is enchanted with %1$s", "create.item_attributes.has_enchant.inverted": "is not enchanted with %1$s", "create.item_attributes.color": "is dyed %1$s", "create.item_attributes.color.inverted": "is not dyed %1$s", - "create.item_attributes.max_enchanted": "is enchanted at max level", - "create.item_attributes.max_enchanted.inverted": "is not enchanted at max level", "create.item_attributes.has_fluid": "contains %1$s", "create.item_attributes.has_fluid.inverted": "does not contain %1$s", "create.item_attributes.has_name": "has the custom name %1$s", @@ -1090,14 +1094,14 @@ "create.item_attributes.book_copy_second.inverted": "is not a second-generation copy", "create.item_attributes.book_copy_tattered": "is a tattered mess", "create.item_attributes.book_copy_tattered.inverted": "is not a tattered mess", - "create.item_attributes.astralsorcery_crystal": "has crystal attribute %1$s", - "create.item_attributes.astralsorcery_crystal.inverted": "does not have crystal attribute %1$s", - "create.item_attributes.astralsorcery_constellation": "is attuned to %1$s", - "create.item_attributes.astralsorcery_constellation.inverted": "is not attuned to %1$s", - "create.item_attributes.astralsorcery_perk_gem": "has perk attribute %1$s", - "create.item_attributes.astralsorcery_perk_gem.inverted": "does not have perk attribute %1$s", "create.item_attributes.astralsorcery_amulet": "improves %1$s", "create.item_attributes.astralsorcery_amulet.inverted": "does not improve %1$s", + "create.item_attributes.astralsorcery_constellation": "is attuned to %1$s", + "create.item_attributes.astralsorcery_constellation.inverted": "is not attuned to %1$s", + "create.item_attributes.astralsorcery_crystal": "has crystal attribute %1$s", + "create.item_attributes.astralsorcery_crystal.inverted": "does not have crystal attribute %1$s", + "create.item_attributes.astralsorcery_perk_gem": "has perk attribute %1$s", + "create.item_attributes.astralsorcery_perk_gem.inverted": "does not have perk attribute %1$s", "create.gui.attribute_filter.no_selected_attributes": "No attributes selected", "create.gui.attribute_filter.selected_attributes": "Selected attributes:", diff --git a/src/generated/resources/assets/create/lang/unfinished/de_de.json b/src/generated/resources/assets/create/lang/unfinished/de_de.json index fd2077686..8e97e08aa 100644 --- a/src/generated/resources/assets/create/lang/unfinished/de_de.json +++ b/src/generated/resources/assets/create/lang/unfinished/de_de.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1135", + "_": "Missing Localizations: 1139", "_": "->------------------------] Game Elements [------------------------<-", @@ -1038,18 +1038,14 @@ "create.item_attributes.placeable.inverted": "UNLOCALIZED: is not placeable", "create.item_attributes.consumable": "UNLOCALIZED: can be eaten", "create.item_attributes.consumable.inverted": "UNLOCALIZED: cannot be eaten", - "create.item_attributes.smeltable": "UNLOCALIZED: can be Smelted", - "create.item_attributes.smeltable.inverted": "UNLOCALIZED: cannot be Smelted", - "create.item_attributes.washable": "UNLOCALIZED: can be Washed", - "create.item_attributes.washable.inverted": "UNLOCALIZED: cannot be Washed", - "create.item_attributes.smokable": "UNLOCALIZED: can be Smoked", - "create.item_attributes.smokable.inverted": "UNLOCALIZED: cannot be Smoked", - "create.item_attributes.crushable": "UNLOCALIZED: can be Crushed", - "create.item_attributes.crushable.inverted": "UNLOCALIZED: cannot be Crushed", - "create.item_attributes.blastable": "UNLOCALIZED: is smeltable in Blast Furnace", - "create.item_attributes.blastable.inverted": "UNLOCALIZED: is not smeltable in Blast Furnace", + "create.item_attributes.fluid_container": "UNLOCALIZED: can store fluids", + "create.item_attributes.fluid_container.inverted": "UNLOCALIZED: cannot store fluids", "create.item_attributes.enchanted": "UNLOCALIZED: is enchanted", "create.item_attributes.enchanted.inverted": "UNLOCALIZED: is unenchanted", + "create.item_attributes.max_enchanted": "UNLOCALIZED: is enchanted at max level", + "create.item_attributes.max_enchanted.inverted": "UNLOCALIZED: is not enchanted at max level", + "create.item_attributes.renamed": "UNLOCALIZED: has a custom name", + "create.item_attributes.renamed.inverted": "UNLOCALIZED: does not have a custom name", "create.item_attributes.damaged": "UNLOCALIZED: is damaged", "create.item_attributes.damaged.inverted": "UNLOCALIZED: is not damaged", "create.item_attributes.badly_damaged": "UNLOCALIZED: is heavily damaged", @@ -1060,23 +1056,31 @@ "create.item_attributes.equipable.inverted": "UNLOCALIZED: cannot be equipped", "create.item_attributes.furnace_fuel": "UNLOCALIZED: is furnace fuel", "create.item_attributes.furnace_fuel.inverted": "UNLOCALIZED: is not furnace fuel", + "create.item_attributes.washable": "UNLOCALIZED: can be Washed", + "create.item_attributes.washable.inverted": "UNLOCALIZED: cannot be Washed", + "create.item_attributes.crushable": "UNLOCALIZED: can be Crushed", + "create.item_attributes.crushable.inverted": "UNLOCALIZED: cannot be Crushed", + "create.item_attributes.smeltable": "UNLOCALIZED: can be Smelted", + "create.item_attributes.smeltable.inverted": "UNLOCALIZED: cannot be Smelted", + "create.item_attributes.smokable": "UNLOCALIZED: can be Smoked", + "create.item_attributes.smokable.inverted": "UNLOCALIZED: cannot be Smoked", + "create.item_attributes.blastable": "UNLOCALIZED: is smeltable in Blast Furnace", + "create.item_attributes.blastable.inverted": "UNLOCALIZED: is not smeltable in Blast Furnace", + "create.item_attributes.shulker_level": "UNLOCALIZED: is shulker %1$s", + "create.item_attributes.shulker_level.inverted": "UNLOCALIZED: is shulker not %1$s", + "create.item_attributes.shulker_level.full": "UNLOCALIZED: full", + "create.item_attributes.shulker_level.empty": "UNLOCALIZED: empty", + "create.item_attributes.shulker_level.partial": "UNLOCALIZED: partially filled", "create.item_attributes.in_tag": "UNLOCALIZED: is tagged %1$s", "create.item_attributes.in_tag.inverted": "UNLOCALIZED: is not tagged %1$s", "create.item_attributes.in_item_group": "UNLOCALIZED: is in group '%1$s'", "create.item_attributes.in_item_group.inverted": "UNLOCALIZED: is not in group '%1$s'", "create.item_attributes.added_by": "UNLOCALIZED: was added by %1$s", "create.item_attributes.added_by.inverted": "UNLOCALIZED: was not added by %1$s", - "create.item_attributes.shulker_level": "UNLOCALIZED: is shulker %1$s", - "create.item_attributes.shulker_level.inverted": "UNLOCALIZED: is shulker not %1$s", - "create.item_attributes.shulker_level.full": "UNLOCALIZED: full", - "create.item_attributes.shulker_level.empty": "UNLOCALIZED: empty", - "create.item_attributes.shulker_level.partial": "UNLOCALIZED: partially filled", "create.item_attributes.has_enchant": "UNLOCALIZED: is enchanted with %1$s", "create.item_attributes.has_enchant.inverted": "UNLOCALIZED: is not enchanted with %1$s", "create.item_attributes.color": "UNLOCALIZED: is dyed %1$s", "create.item_attributes.color.inverted": "UNLOCALIZED: is not dyed %1$s", - "create.item_attributes.max_enchanted": "UNLOCALIZED: is enchanted at max level", - "create.item_attributes.max_enchanted.inverted": "UNLOCALIZED: is not enchanted at max level", "create.item_attributes.has_fluid": "UNLOCALIZED: contains %1$s", "create.item_attributes.has_fluid.inverted": "UNLOCALIZED: does not contain %1$s", "create.item_attributes.has_name": "UNLOCALIZED: has the custom name %1$s", @@ -1091,14 +1095,14 @@ "create.item_attributes.book_copy_second.inverted": "UNLOCALIZED: is not a second-generation copy", "create.item_attributes.book_copy_tattered": "UNLOCALIZED: is a tattered mess", "create.item_attributes.book_copy_tattered.inverted": "UNLOCALIZED: is not a tattered mess", - "create.item_attributes.astralsorcery_crystal": "UNLOCALIZED: has crystal attribute %1$s", - "create.item_attributes.astralsorcery_crystal.inverted": "UNLOCALIZED: does not have crystal attribute %1$s", - "create.item_attributes.astralsorcery_constellation": "UNLOCALIZED: is attuned to %1$s", - "create.item_attributes.astralsorcery_constellation.inverted": "UNLOCALIZED: is not attuned to %1$s", - "create.item_attributes.astralsorcery_perk_gem": "UNLOCALIZED: has perk attribute %1$s", - "create.item_attributes.astralsorcery_perk_gem.inverted": "UNLOCALIZED: does not have perk attribute %1$s", "create.item_attributes.astralsorcery_amulet": "UNLOCALIZED: improves %1$s", "create.item_attributes.astralsorcery_amulet.inverted": "UNLOCALIZED: does not improve %1$s", + "create.item_attributes.astralsorcery_constellation": "UNLOCALIZED: is attuned to %1$s", + "create.item_attributes.astralsorcery_constellation.inverted": "UNLOCALIZED: is not attuned to %1$s", + "create.item_attributes.astralsorcery_crystal": "UNLOCALIZED: has crystal attribute %1$s", + "create.item_attributes.astralsorcery_crystal.inverted": "UNLOCALIZED: does not have crystal attribute %1$s", + "create.item_attributes.astralsorcery_perk_gem": "UNLOCALIZED: has perk attribute %1$s", + "create.item_attributes.astralsorcery_perk_gem.inverted": "UNLOCALIZED: does not have perk attribute %1$s", "create.gui.attribute_filter.no_selected_attributes": "Keine Attribute ausgewählt", "create.gui.attribute_filter.selected_attributes": "Ausgewählte Attribute:", diff --git a/src/generated/resources/assets/create/lang/unfinished/es_es.json b/src/generated/resources/assets/create/lang/unfinished/es_es.json index 6e7652f4d..f7fa9d802 100644 --- a/src/generated/resources/assets/create/lang/unfinished/es_es.json +++ b/src/generated/resources/assets/create/lang/unfinished/es_es.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1", + "_": "Missing Localizations: 5", "_": "->------------------------] Game Elements [------------------------<-", @@ -1038,18 +1038,14 @@ "create.item_attributes.placeable.inverted": "no se puede colocar", "create.item_attributes.consumable": "se puede comer", "create.item_attributes.consumable.inverted": "no se puede comer", - "create.item_attributes.smeltable": "se puede fundir", - "create.item_attributes.smeltable.inverted": "no se puede fundir", - "create.item_attributes.washable": "se puede lavar", - "create.item_attributes.washable.inverted": "no se puede lavar", - "create.item_attributes.smokable": "puede ser ahumado", - "create.item_attributes.smokable.inverted": "no puede ser ahumado", - "create.item_attributes.crushable": "puede ser molido", - "create.item_attributes.crushable.inverted": "no puede ser molido", - "create.item_attributes.blastable": "es fundible en el alto horno", - "create.item_attributes.blastable.inverted": "no es fundible en el alto horno", + "create.item_attributes.fluid_container": "UNLOCALIZED: can store fluids", + "create.item_attributes.fluid_container.inverted": "UNLOCALIZED: cannot store fluids", "create.item_attributes.enchanted": "está encantado", "create.item_attributes.enchanted.inverted": "no está encantado", + "create.item_attributes.max_enchanted": "está encantado en el nivel máximo", + "create.item_attributes.max_enchanted.inverted": "no está encantado en el nivel máximo", + "create.item_attributes.renamed": "UNLOCALIZED: has a custom name", + "create.item_attributes.renamed.inverted": "UNLOCALIZED: does not have a custom name", "create.item_attributes.damaged": "está dañado", "create.item_attributes.damaged.inverted": "no está dañado", "create.item_attributes.badly_damaged": "está muy dañado", @@ -1060,23 +1056,31 @@ "create.item_attributes.equipable.inverted": "no se puede equipar", "create.item_attributes.furnace_fuel": "es combustible para hornos", "create.item_attributes.furnace_fuel.inverted": "no es combustible para hornos", + "create.item_attributes.washable": "se puede lavar", + "create.item_attributes.washable.inverted": "no se puede lavar", + "create.item_attributes.crushable": "puede ser molido", + "create.item_attributes.crushable.inverted": "no puede ser molido", + "create.item_attributes.smeltable": "se puede fundir", + "create.item_attributes.smeltable.inverted": "no se puede fundir", + "create.item_attributes.smokable": "puede ser ahumado", + "create.item_attributes.smokable.inverted": "no puede ser ahumado", + "create.item_attributes.blastable": "es fundible en el alto horno", + "create.item_attributes.blastable.inverted": "no es fundible en el alto horno", + "create.item_attributes.shulker_level": "es shulker %1$s", + "create.item_attributes.shulker_level.inverted": "no es shulker %1$s", + "create.item_attributes.shulker_level.full": "lleno", + "create.item_attributes.shulker_level.empty": "vacío", + "create.item_attributes.shulker_level.partial": "parcialmente lleno", "create.item_attributes.in_tag": "está etiquetado %1$s", "create.item_attributes.in_tag.inverted": "no está etiquetado %1$s", "create.item_attributes.in_item_group": "está en el grupo '%1$s'", "create.item_attributes.in_item_group.inverted": "no está en el grupo '%1$s'", "create.item_attributes.added_by": "fue añadido por %1$s", "create.item_attributes.added_by.inverted": "no fue añadida por %1$s", - "create.item_attributes.shulker_level": "es shulker %1$s", - "create.item_attributes.shulker_level.inverted": "no es shulker %1$s", - "create.item_attributes.shulker_level.full": "lleno", - "create.item_attributes.shulker_level.empty": "vacío", - "create.item_attributes.shulker_level.partial": "parcialmente lleno", "create.item_attributes.has_enchant": "está encantado con %1$s", "create.item_attributes.has_enchant.inverted": "no está encantado con %1$s", "create.item_attributes.color": "Está teñido %1$s", "create.item_attributes.color.inverted": "No está teñido %1$s", - "create.item_attributes.max_enchanted": "está encantado en el nivel máximo", - "create.item_attributes.max_enchanted.inverted": "no está encantado en el nivel máximo", "create.item_attributes.has_fluid": "contiene %1$s", "create.item_attributes.has_fluid.inverted": "no contiene %1$s", "create.item_attributes.has_name": "tiene el nombre personalizado %1$s", @@ -1091,14 +1095,14 @@ "create.item_attributes.book_copy_second.inverted": "no es una copia de segunda generación", "create.item_attributes.book_copy_tattered": "es un desordenado desastre", "create.item_attributes.book_copy_tattered.inverted": "no es un desordenado desastre", - "create.item_attributes.astralsorcery_crystal": "tiene el atributo de cristal %1$s", - "create.item_attributes.astralsorcery_crystal.inverted": "no tiene atributo de cristal %1$s", - "create.item_attributes.astralsorcery_constellation": "está en sintonía con %1$s", - "create.item_attributes.astralsorcery_constellation.inverted": "no está en sintonía con %1$s", - "create.item_attributes.astralsorcery_perk_gem": "tiene el atributo ventaja %1$s", - "create.item_attributes.astralsorcery_perk_gem.inverted": "no tiene el atributo ventaja %1$s", "create.item_attributes.astralsorcery_amulet": "mejora %1$s", "create.item_attributes.astralsorcery_amulet.inverted": "no mejora %1$s", + "create.item_attributes.astralsorcery_constellation": "está en sintonía con %1$s", + "create.item_attributes.astralsorcery_constellation.inverted": "no está en sintonía con %1$s", + "create.item_attributes.astralsorcery_crystal": "tiene el atributo de cristal %1$s", + "create.item_attributes.astralsorcery_crystal.inverted": "no tiene atributo de cristal %1$s", + "create.item_attributes.astralsorcery_perk_gem": "tiene el atributo ventaja %1$s", + "create.item_attributes.astralsorcery_perk_gem.inverted": "no tiene el atributo ventaja %1$s", "create.gui.attribute_filter.no_selected_attributes": "No hay atributos seleccionados", "create.gui.attribute_filter.selected_attributes": "Atributos seleccionados:", diff --git a/src/generated/resources/assets/create/lang/unfinished/fr_fr.json b/src/generated/resources/assets/create/lang/unfinished/fr_fr.json index 73fadc258..f84752e78 100644 --- a/src/generated/resources/assets/create/lang/unfinished/fr_fr.json +++ b/src/generated/resources/assets/create/lang/unfinished/fr_fr.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1387", + "_": "Missing Localizations: 1391", "_": "->------------------------] Game Elements [------------------------<-", @@ -1038,18 +1038,14 @@ "create.item_attributes.placeable.inverted": "n'est pas plaçable", "create.item_attributes.consumable": "peut être mangé", "create.item_attributes.consumable.inverted": "ne peut pas être mangé", - "create.item_attributes.smeltable": "peut être fondu", - "create.item_attributes.smeltable.inverted": "ne peut pas être fondu", - "create.item_attributes.washable": "peut être lavé", - "create.item_attributes.washable.inverted": "ne peut pas être lavé", - "create.item_attributes.smokable": "peut être fumé", - "create.item_attributes.smokable.inverted": "ne peut pas être fumé", - "create.item_attributes.crushable": "peut être concassé", - "create.item_attributes.crushable.inverted": "ne peut pas être concassé", - "create.item_attributes.blastable": "est fondable dans un Haut fourneau", - "create.item_attributes.blastable.inverted": "n'est pas fondable dans un Haut fourneau", + "create.item_attributes.fluid_container": "UNLOCALIZED: can store fluids", + "create.item_attributes.fluid_container.inverted": "UNLOCALIZED: cannot store fluids", "create.item_attributes.enchanted": "est enchanté", "create.item_attributes.enchanted.inverted": "n'est pas enchanté", + "create.item_attributes.max_enchanted": "UNLOCALIZED: is enchanted at max level", + "create.item_attributes.max_enchanted.inverted": "UNLOCALIZED: is not enchanted at max level", + "create.item_attributes.renamed": "UNLOCALIZED: has a custom name", + "create.item_attributes.renamed.inverted": "UNLOCALIZED: does not have a custom name", "create.item_attributes.damaged": "est endommagé", "create.item_attributes.damaged.inverted": "n'est pas endomagé", "create.item_attributes.badly_damaged": "est fortement damaged", @@ -1060,23 +1056,31 @@ "create.item_attributes.equipable.inverted": "ne peut pas être équipé", "create.item_attributes.furnace_fuel": "est du combustible", "create.item_attributes.furnace_fuel.inverted": "n'est pas un combustible", + "create.item_attributes.washable": "peut être lavé", + "create.item_attributes.washable.inverted": "ne peut pas être lavé", + "create.item_attributes.crushable": "peut être concassé", + "create.item_attributes.crushable.inverted": "ne peut pas être concassé", + "create.item_attributes.smeltable": "peut être fondu", + "create.item_attributes.smeltable.inverted": "ne peut pas être fondu", + "create.item_attributes.smokable": "peut être fumé", + "create.item_attributes.smokable.inverted": "ne peut pas être fumé", + "create.item_attributes.blastable": "est fondable dans un Haut fourneau", + "create.item_attributes.blastable.inverted": "n'est pas fondable dans un Haut fourneau", + "create.item_attributes.shulker_level": "UNLOCALIZED: is shulker %1$s", + "create.item_attributes.shulker_level.inverted": "UNLOCALIZED: is shulker not %1$s", + "create.item_attributes.shulker_level.full": "UNLOCALIZED: full", + "create.item_attributes.shulker_level.empty": "UNLOCALIZED: empty", + "create.item_attributes.shulker_level.partial": "UNLOCALIZED: partially filled", "create.item_attributes.in_tag": "est étiqueté %1$s", "create.item_attributes.in_tag.inverted": "n'est pas étiqueté", "create.item_attributes.in_item_group": "appartient à %1$s", "create.item_attributes.in_item_group.inverted": "n'appartient pas à %1$s'", "create.item_attributes.added_by": "a été ajouté par %1$s", "create.item_attributes.added_by.inverted": "n'a pas été ajouté par %1$s", - "create.item_attributes.shulker_level": "UNLOCALIZED: is shulker %1$s", - "create.item_attributes.shulker_level.inverted": "UNLOCALIZED: is shulker not %1$s", - "create.item_attributes.shulker_level.full": "UNLOCALIZED: full", - "create.item_attributes.shulker_level.empty": "UNLOCALIZED: empty", - "create.item_attributes.shulker_level.partial": "UNLOCALIZED: partially filled", "create.item_attributes.has_enchant": "est enchanté %1$s", "create.item_attributes.has_enchant.inverted": "n'est pas enchenté %1$s", "create.item_attributes.color": "UNLOCALIZED: is dyed %1$s", "create.item_attributes.color.inverted": "UNLOCALIZED: is not dyed %1$s", - "create.item_attributes.max_enchanted": "UNLOCALIZED: is enchanted at max level", - "create.item_attributes.max_enchanted.inverted": "UNLOCALIZED: is not enchanted at max level", "create.item_attributes.has_fluid": "contient %1$s", "create.item_attributes.has_fluid.inverted": "ne contient pas %1$s", "create.item_attributes.has_name": "est renommé %1$s", @@ -1091,14 +1095,14 @@ "create.item_attributes.book_copy_second.inverted": "UNLOCALIZED: is not a second-generation copy", "create.item_attributes.book_copy_tattered": "UNLOCALIZED: is a tattered mess", "create.item_attributes.book_copy_tattered.inverted": "UNLOCALIZED: is not a tattered mess", - "create.item_attributes.astralsorcery_crystal": "UNLOCALIZED: has crystal attribute %1$s", - "create.item_attributes.astralsorcery_crystal.inverted": "UNLOCALIZED: does not have crystal attribute %1$s", - "create.item_attributes.astralsorcery_constellation": "UNLOCALIZED: is attuned to %1$s", - "create.item_attributes.astralsorcery_constellation.inverted": "UNLOCALIZED: is not attuned to %1$s", - "create.item_attributes.astralsorcery_perk_gem": "UNLOCALIZED: has perk attribute %1$s", - "create.item_attributes.astralsorcery_perk_gem.inverted": "UNLOCALIZED: does not have perk attribute %1$s", "create.item_attributes.astralsorcery_amulet": "UNLOCALIZED: improves %1$s", "create.item_attributes.astralsorcery_amulet.inverted": "UNLOCALIZED: does not improve %1$s", + "create.item_attributes.astralsorcery_constellation": "UNLOCALIZED: is attuned to %1$s", + "create.item_attributes.astralsorcery_constellation.inverted": "UNLOCALIZED: is not attuned to %1$s", + "create.item_attributes.astralsorcery_crystal": "UNLOCALIZED: has crystal attribute %1$s", + "create.item_attributes.astralsorcery_crystal.inverted": "UNLOCALIZED: does not have crystal attribute %1$s", + "create.item_attributes.astralsorcery_perk_gem": "UNLOCALIZED: has perk attribute %1$s", + "create.item_attributes.astralsorcery_perk_gem.inverted": "UNLOCALIZED: does not have perk attribute %1$s", "create.gui.attribute_filter.no_selected_attributes": "Aucun attribut sélectionné", "create.gui.attribute_filter.selected_attributes": "Attributs sélectionnés:", diff --git a/src/generated/resources/assets/create/lang/unfinished/it_it.json b/src/generated/resources/assets/create/lang/unfinished/it_it.json index e6df80ea8..efebfb7f9 100644 --- a/src/generated/resources/assets/create/lang/unfinished/it_it.json +++ b/src/generated/resources/assets/create/lang/unfinished/it_it.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 915", + "_": "Missing Localizations: 919", "_": "->------------------------] Game Elements [------------------------<-", @@ -1038,18 +1038,14 @@ "create.item_attributes.placeable.inverted": "non è posizionabile", "create.item_attributes.consumable": "è commestibile", "create.item_attributes.consumable.inverted": "non è commestibile", - "create.item_attributes.smeltable": "può essere fuso", - "create.item_attributes.smeltable.inverted": "non può essere fuso", - "create.item_attributes.washable": "può essere lavato", - "create.item_attributes.washable.inverted": "non può essere lavato", - "create.item_attributes.smokable": "può essere affumicato", - "create.item_attributes.smokable.inverted": "non può essere affumicato", - "create.item_attributes.crushable": "può essere frantumato", - "create.item_attributes.crushable.inverted": "non può essere frantumato", - "create.item_attributes.blastable": "è fondibile in un forno fusorio", - "create.item_attributes.blastable.inverted": "non è fondibile in un forno fusorio", + "create.item_attributes.fluid_container": "UNLOCALIZED: can store fluids", + "create.item_attributes.fluid_container.inverted": "UNLOCALIZED: cannot store fluids", "create.item_attributes.enchanted": "è incantato", "create.item_attributes.enchanted.inverted": "non è incantato", + "create.item_attributes.max_enchanted": "UNLOCALIZED: is enchanted at max level", + "create.item_attributes.max_enchanted.inverted": "UNLOCALIZED: is not enchanted at max level", + "create.item_attributes.renamed": "UNLOCALIZED: has a custom name", + "create.item_attributes.renamed.inverted": "UNLOCALIZED: does not have a custom name", "create.item_attributes.damaged": "è danneggiato", "create.item_attributes.damaged.inverted": "non è danneggiato", "create.item_attributes.badly_damaged": "è gravemente danneggiato", @@ -1060,23 +1056,31 @@ "create.item_attributes.equipable.inverted": "non può essere equipaggiato", "create.item_attributes.furnace_fuel": "è un combustibile per fornace", "create.item_attributes.furnace_fuel.inverted": "non è un combustibile per fornace", + "create.item_attributes.washable": "può essere lavato", + "create.item_attributes.washable.inverted": "non può essere lavato", + "create.item_attributes.crushable": "può essere frantumato", + "create.item_attributes.crushable.inverted": "non può essere frantumato", + "create.item_attributes.smeltable": "può essere fuso", + "create.item_attributes.smeltable.inverted": "non può essere fuso", + "create.item_attributes.smokable": "può essere affumicato", + "create.item_attributes.smokable.inverted": "non può essere affumicato", + "create.item_attributes.blastable": "è fondibile in un forno fusorio", + "create.item_attributes.blastable.inverted": "non è fondibile in un forno fusorio", + "create.item_attributes.shulker_level": "UNLOCALIZED: is shulker %1$s", + "create.item_attributes.shulker_level.inverted": "UNLOCALIZED: is shulker not %1$s", + "create.item_attributes.shulker_level.full": "UNLOCALIZED: full", + "create.item_attributes.shulker_level.empty": "UNLOCALIZED: empty", + "create.item_attributes.shulker_level.partial": "UNLOCALIZED: partially filled", "create.item_attributes.in_tag": "è etichettato %1$s", "create.item_attributes.in_tag.inverted": "non è etichettato %1$s", "create.item_attributes.in_item_group": "appartiene a %1$s", "create.item_attributes.in_item_group.inverted": "non appartiene a '%1$s'", "create.item_attributes.added_by": "è stato aggiunto da %1$s", "create.item_attributes.added_by.inverted": "non è stato aggiunto da %1$s", - "create.item_attributes.shulker_level": "UNLOCALIZED: is shulker %1$s", - "create.item_attributes.shulker_level.inverted": "UNLOCALIZED: is shulker not %1$s", - "create.item_attributes.shulker_level.full": "UNLOCALIZED: full", - "create.item_attributes.shulker_level.empty": "UNLOCALIZED: empty", - "create.item_attributes.shulker_level.partial": "UNLOCALIZED: partially filled", "create.item_attributes.has_enchant": "è stato incantato con %1$s", "create.item_attributes.has_enchant.inverted": "non è stato incantato con %1$s", "create.item_attributes.color": "UNLOCALIZED: is dyed %1$s", "create.item_attributes.color.inverted": "UNLOCALIZED: is not dyed %1$s", - "create.item_attributes.max_enchanted": "UNLOCALIZED: is enchanted at max level", - "create.item_attributes.max_enchanted.inverted": "UNLOCALIZED: is not enchanted at max level", "create.item_attributes.has_fluid": "contiene %1$s", "create.item_attributes.has_fluid.inverted": "non contiene %1$s", "create.item_attributes.has_name": "è stato rinominato in %1$s", @@ -1091,14 +1095,14 @@ "create.item_attributes.book_copy_second.inverted": "non è una copia di seconda generazione", "create.item_attributes.book_copy_tattered": "è in condizioni precarie", "create.item_attributes.book_copy_tattered.inverted": "non è in condizioni precarie", - "create.item_attributes.astralsorcery_crystal": "ha l'attributo del cristallo %1$s", - "create.item_attributes.astralsorcery_crystal.inverted": "non ha l'attributo del cristallo %1$s", - "create.item_attributes.astralsorcery_constellation": "è in sintonia con %1$s", - "create.item_attributes.astralsorcery_constellation.inverted": "non è in sintonia con %1$s", - "create.item_attributes.astralsorcery_perk_gem": "ha l'attributo benefico %1$s", - "create.item_attributes.astralsorcery_perk_gem.inverted": "non ha l'attributo benefico %1$s", "create.item_attributes.astralsorcery_amulet": "migliora %1$s", "create.item_attributes.astralsorcery_amulet.inverted": "non migliora %1$s", + "create.item_attributes.astralsorcery_constellation": "è in sintonia con %1$s", + "create.item_attributes.astralsorcery_constellation.inverted": "non è in sintonia con %1$s", + "create.item_attributes.astralsorcery_crystal": "ha l'attributo del cristallo %1$s", + "create.item_attributes.astralsorcery_crystal.inverted": "non ha l'attributo del cristallo %1$s", + "create.item_attributes.astralsorcery_perk_gem": "ha l'attributo benefico %1$s", + "create.item_attributes.astralsorcery_perk_gem.inverted": "non ha l'attributo benefico %1$s", "create.gui.attribute_filter.no_selected_attributes": "Nessun attributo selezionato", "create.gui.attribute_filter.selected_attributes": "Attributi selezionati:", diff --git a/src/generated/resources/assets/create/lang/unfinished/ja_jp.json b/src/generated/resources/assets/create/lang/unfinished/ja_jp.json index e6269480a..f118de69e 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ja_jp.json +++ b/src/generated/resources/assets/create/lang/unfinished/ja_jp.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 10", + "_": "Missing Localizations: 14", "_": "->------------------------] Game Elements [------------------------<-", @@ -1038,18 +1038,14 @@ "create.item_attributes.placeable.inverted": "設置不可能か", "create.item_attributes.consumable": "食べられるか", "create.item_attributes.consumable.inverted": "食べられないか", - "create.item_attributes.smeltable": "精錬可能か", - "create.item_attributes.smeltable.inverted": "精錬不可能か", - "create.item_attributes.washable": "洗浄可能か", - "create.item_attributes.washable.inverted": "洗浄不可能か", - "create.item_attributes.smokable": "燻製器で調理可能か", - "create.item_attributes.smokable.inverted": "燻製器で調理不可能か", - "create.item_attributes.crushable": "粉砕可能か", - "create.item_attributes.crushable.inverted": "粉砕不可能か", - "create.item_attributes.blastable": "溶鉱炉で精錬可能か", - "create.item_attributes.blastable.inverted": "溶鉱炉で精錬不可能か", + "create.item_attributes.fluid_container": "UNLOCALIZED: can store fluids", + "create.item_attributes.fluid_container.inverted": "UNLOCALIZED: cannot store fluids", "create.item_attributes.enchanted": "エンチャント済みか", "create.item_attributes.enchanted.inverted": "エンチャントなしか", + "create.item_attributes.max_enchanted": "最大レベルのエンチャントがされているか", + "create.item_attributes.max_enchanted.inverted": "最大レベルのエンチャントがされていないか", + "create.item_attributes.renamed": "UNLOCALIZED: has a custom name", + "create.item_attributes.renamed.inverted": "UNLOCALIZED: does not have a custom name", "create.item_attributes.damaged": "破損してるか", "create.item_attributes.damaged.inverted": "破損していないか", "create.item_attributes.badly_damaged": "ひどく損傷してるか", @@ -1060,23 +1056,31 @@ "create.item_attributes.equipable.inverted": "装備不可能か", "create.item_attributes.furnace_fuel": "かまどの燃料か", "create.item_attributes.furnace_fuel.inverted": "かまどの燃料でないか", + "create.item_attributes.washable": "洗浄可能か", + "create.item_attributes.washable.inverted": "洗浄不可能か", + "create.item_attributes.crushable": "粉砕可能か", + "create.item_attributes.crushable.inverted": "粉砕不可能か", + "create.item_attributes.smeltable": "精錬可能か", + "create.item_attributes.smeltable.inverted": "精錬不可能か", + "create.item_attributes.smokable": "燻製器で調理可能か", + "create.item_attributes.smokable.inverted": "燻製器で調理不可能か", + "create.item_attributes.blastable": "溶鉱炉で精錬可能か", + "create.item_attributes.blastable.inverted": "溶鉱炉で精錬不可能か", + "create.item_attributes.shulker_level": "%1$sシュルカーか", + "create.item_attributes.shulker_level.inverted": "%1$sシュルカーでないか", + "create.item_attributes.shulker_level.full": "満杯の", + "create.item_attributes.shulker_level.empty": "空の", + "create.item_attributes.shulker_level.partial": "一部埋まっている", "create.item_attributes.in_tag": "%1$sのタグが付けられてるか", "create.item_attributes.in_tag.inverted": "%1$sのタグがついていないか", "create.item_attributes.in_item_group": "%1$sに属してるか", "create.item_attributes.in_item_group.inverted": "%1$sに属していないか", "create.item_attributes.added_by": "%1$sによって追加されたか", "create.item_attributes.added_by.inverted": "%1$sによって追加されていないか", - "create.item_attributes.shulker_level": "%1$sシュルカーか", - "create.item_attributes.shulker_level.inverted": "%1$sシュルカーでないか", - "create.item_attributes.shulker_level.full": "満杯の", - "create.item_attributes.shulker_level.empty": "空の", - "create.item_attributes.shulker_level.partial": "一部埋まっている", "create.item_attributes.has_enchant": "エンチャントされているか%1$s", "create.item_attributes.has_enchant.inverted": "エンチャントがされていないか", "create.item_attributes.color": "%1$sで染められているか", "create.item_attributes.color.inverted": "%1$sで染められていないか", - "create.item_attributes.max_enchanted": "最大レベルのエンチャントがされているか", - "create.item_attributes.max_enchanted.inverted": "最大レベルのエンチャントがされていないか", "create.item_attributes.has_fluid": "%1$sを含んでいるか", "create.item_attributes.has_fluid.inverted": "%1$sを含んでいないか", "create.item_attributes.has_name": "%1$sの名前が付けられているか", @@ -1091,14 +1095,14 @@ "create.item_attributes.book_copy_second.inverted": "コピーのコピーでないか", "create.item_attributes.book_copy_tattered": "ボロボロか", "create.item_attributes.book_copy_tattered.inverted": "ボロボロでないか", - "create.item_attributes.astralsorcery_crystal": "%1$s クリスタル属性を持つ", - "create.item_attributes.astralsorcery_crystal.inverted": "%1$s クリスタル属性を持たない", - "create.item_attributes.astralsorcery_constellation": "%1$s に同調している", - "create.item_attributes.astralsorcery_constellation.inverted": "%1$s に同調していない", - "create.item_attributes.astralsorcery_perk_gem": "%1$s 特典属性がある", - "create.item_attributes.astralsorcery_perk_gem.inverted": "%1$s 特典属性がない", "create.item_attributes.astralsorcery_amulet": "%1$s 改善", "create.item_attributes.astralsorcery_amulet.inverted": "%1$s 改善されない", + "create.item_attributes.astralsorcery_constellation": "%1$s に同調している", + "create.item_attributes.astralsorcery_constellation.inverted": "%1$s に同調していない", + "create.item_attributes.astralsorcery_crystal": "%1$s クリスタル属性を持つ", + "create.item_attributes.astralsorcery_crystal.inverted": "%1$s クリスタル属性を持たない", + "create.item_attributes.astralsorcery_perk_gem": "%1$s 特典属性がある", + "create.item_attributes.astralsorcery_perk_gem.inverted": "%1$s 特典属性がない", "create.gui.attribute_filter.no_selected_attributes": "属性が選択されていません", "create.gui.attribute_filter.selected_attributes": "選択された属性:", diff --git a/src/generated/resources/assets/create/lang/unfinished/ko_kr.json b/src/generated/resources/assets/create/lang/unfinished/ko_kr.json index 2cdccc02e..769273a78 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ko_kr.json +++ b/src/generated/resources/assets/create/lang/unfinished/ko_kr.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 25", + "_": "Missing Localizations: 29", "_": "->------------------------] Game Elements [------------------------<-", @@ -1038,18 +1038,14 @@ "create.item_attributes.placeable.inverted": "설치할 수 없음", "create.item_attributes.consumable": "먹을 수 있음", "create.item_attributes.consumable.inverted": "먹을 수 없음", - "create.item_attributes.smeltable": "구워질 수 있음", - "create.item_attributes.smeltable.inverted": "구워질 수 없음", - "create.item_attributes.washable": "세척될 수 있음", - "create.item_attributes.washable.inverted": "세척될 수 없음", - "create.item_attributes.smokable": "훈연될 수 있음", - "create.item_attributes.smokable.inverted": "훈연될 수 없음", - "create.item_attributes.crushable": "분쇄될 수 있음", - "create.item_attributes.crushable.inverted": "분쇄될 수 없음", - "create.item_attributes.blastable": "용광로에 녹일 수 있음", - "create.item_attributes.blastable.inverted": "용광로에 녹일 수 없음", + "create.item_attributes.fluid_container": "UNLOCALIZED: can store fluids", + "create.item_attributes.fluid_container.inverted": "UNLOCALIZED: cannot store fluids", "create.item_attributes.enchanted": "마법부여됨", "create.item_attributes.enchanted.inverted": "마법부여되지 않음", + "create.item_attributes.max_enchanted": "마법부여가 최고 레벨임", + "create.item_attributes.max_enchanted.inverted": "마법부여가 최고 레벨이 아님", + "create.item_attributes.renamed": "UNLOCALIZED: has a custom name", + "create.item_attributes.renamed.inverted": "UNLOCALIZED: does not have a custom name", "create.item_attributes.damaged": "내구도가 닮", "create.item_attributes.damaged.inverted": "내구도가 닳지 않음", "create.item_attributes.badly_damaged": "심각하게 내구도가 닮", @@ -1060,23 +1056,31 @@ "create.item_attributes.equipable.inverted": "장착할 수 없음", "create.item_attributes.furnace_fuel": "화로 연료로 쓸 수 있음", "create.item_attributes.furnace_fuel.inverted": "화로 연료로 쓸 수 없음", + "create.item_attributes.washable": "세척될 수 있음", + "create.item_attributes.washable.inverted": "세척될 수 없음", + "create.item_attributes.crushable": "분쇄될 수 있음", + "create.item_attributes.crushable.inverted": "분쇄될 수 없음", + "create.item_attributes.smeltable": "구워질 수 있음", + "create.item_attributes.smeltable.inverted": "구워질 수 없음", + "create.item_attributes.smokable": "훈연될 수 있음", + "create.item_attributes.smokable.inverted": "훈연될 수 없음", + "create.item_attributes.blastable": "용광로에 녹일 수 있음", + "create.item_attributes.blastable.inverted": "용광로에 녹일 수 없음", + "create.item_attributes.shulker_level": "셜커가 %1$s있음", + "create.item_attributes.shulker_level.inverted": "셜커가 %1$s있지 않음", + "create.item_attributes.shulker_level.full": "가득 차", + "create.item_attributes.shulker_level.empty": "비어", + "create.item_attributes.shulker_level.partial": "조금 차", "create.item_attributes.in_tag": "%1$s로 등록됨", "create.item_attributes.in_tag.inverted": "%1$s로 등록되지 않음", "create.item_attributes.in_item_group": "%1$s탭에 속함", "create.item_attributes.in_item_group.inverted": "%1$s탭에 속함", "create.item_attributes.added_by": "%1$s모드가 추가함", "create.item_attributes.added_by.inverted": "%1$s모드가 추가하지 않음", - "create.item_attributes.shulker_level": "셜커가 %1$s있음", - "create.item_attributes.shulker_level.inverted": "셜커가 %1$s있지 않음", - "create.item_attributes.shulker_level.full": "가득 차", - "create.item_attributes.shulker_level.empty": "비어", - "create.item_attributes.shulker_level.partial": "조금 차", "create.item_attributes.has_enchant": "%1$s 마법부여를 가지고 있음", "create.item_attributes.has_enchant.inverted": "%1$s 마법부여를 가지고 있지 않음", "create.item_attributes.color": "염색됨", "create.item_attributes.color.inverted": "염색되지 않음", - "create.item_attributes.max_enchanted": "마법부여가 최고 레벨임", - "create.item_attributes.max_enchanted.inverted": "마법부여가 최고 레벨이 아님", "create.item_attributes.has_fluid": "%1$s을(를) 담고 있음", "create.item_attributes.has_fluid.inverted": "%1$s을(를) 담고 있지 않음", "create.item_attributes.has_name": "%1$s이라는 이름을 갖고 있음", @@ -1091,14 +1095,14 @@ "create.item_attributes.book_copy_second.inverted": "복사본의 복사본이 아님", "create.item_attributes.book_copy_tattered": "낡고 헐었음", "create.item_attributes.book_copy_tattered.inverted": "낡고 헐지 않음", - "create.item_attributes.astralsorcery_crystal": "%1$s 수정 속성을 가짐", - "create.item_attributes.astralsorcery_crystal.inverted": "%1$s 수정 속성을 가지고 있지 않음", - "create.item_attributes.astralsorcery_constellation": "%1$s에 조율됨", - "create.item_attributes.astralsorcery_constellation.inverted": "%1$s에 조율되지 않음", - "create.item_attributes.astralsorcery_perk_gem": "%1$s 퍽 속성을 가짐", - "create.item_attributes.astralsorcery_perk_gem.inverted": "%1$s 퍽 속성을 가지고 있지 않음", "create.item_attributes.astralsorcery_amulet": "%1$s이(가) 향상됨", "create.item_attributes.astralsorcery_amulet.inverted": "%1$s이(가) 향상되지 않음", + "create.item_attributes.astralsorcery_constellation": "%1$s에 조율됨", + "create.item_attributes.astralsorcery_constellation.inverted": "%1$s에 조율되지 않음", + "create.item_attributes.astralsorcery_crystal": "%1$s 수정 속성을 가짐", + "create.item_attributes.astralsorcery_crystal.inverted": "%1$s 수정 속성을 가지고 있지 않음", + "create.item_attributes.astralsorcery_perk_gem": "%1$s 퍽 속성을 가짐", + "create.item_attributes.astralsorcery_perk_gem.inverted": "%1$s 퍽 속성을 가지고 있지 않음", "create.gui.attribute_filter.no_selected_attributes": "속성이 선택되지 않음", "create.gui.attribute_filter.selected_attributes": "선택된 속성:", diff --git a/src/generated/resources/assets/create/lang/unfinished/nl_nl.json b/src/generated/resources/assets/create/lang/unfinished/nl_nl.json index cb8d8972e..80c246620 100644 --- a/src/generated/resources/assets/create/lang/unfinished/nl_nl.json +++ b/src/generated/resources/assets/create/lang/unfinished/nl_nl.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1767", + "_": "Missing Localizations: 1771", "_": "->------------------------] Game Elements [------------------------<-", @@ -1038,18 +1038,14 @@ "create.item_attributes.placeable.inverted": "UNLOCALIZED: is not placeable", "create.item_attributes.consumable": "UNLOCALIZED: can be eaten", "create.item_attributes.consumable.inverted": "UNLOCALIZED: cannot be eaten", - "create.item_attributes.smeltable": "UNLOCALIZED: can be Smelted", - "create.item_attributes.smeltable.inverted": "UNLOCALIZED: cannot be Smelted", - "create.item_attributes.washable": "UNLOCALIZED: can be Washed", - "create.item_attributes.washable.inverted": "UNLOCALIZED: cannot be Washed", - "create.item_attributes.smokable": "UNLOCALIZED: can be Smoked", - "create.item_attributes.smokable.inverted": "UNLOCALIZED: cannot be Smoked", - "create.item_attributes.crushable": "UNLOCALIZED: can be Crushed", - "create.item_attributes.crushable.inverted": "UNLOCALIZED: cannot be Crushed", - "create.item_attributes.blastable": "UNLOCALIZED: is smeltable in Blast Furnace", - "create.item_attributes.blastable.inverted": "UNLOCALIZED: is not smeltable in Blast Furnace", + "create.item_attributes.fluid_container": "UNLOCALIZED: can store fluids", + "create.item_attributes.fluid_container.inverted": "UNLOCALIZED: cannot store fluids", "create.item_attributes.enchanted": "UNLOCALIZED: is enchanted", "create.item_attributes.enchanted.inverted": "UNLOCALIZED: is unenchanted", + "create.item_attributes.max_enchanted": "UNLOCALIZED: is enchanted at max level", + "create.item_attributes.max_enchanted.inverted": "UNLOCALIZED: is not enchanted at max level", + "create.item_attributes.renamed": "UNLOCALIZED: has a custom name", + "create.item_attributes.renamed.inverted": "UNLOCALIZED: does not have a custom name", "create.item_attributes.damaged": "UNLOCALIZED: is damaged", "create.item_attributes.damaged.inverted": "UNLOCALIZED: is not damaged", "create.item_attributes.badly_damaged": "UNLOCALIZED: is heavily damaged", @@ -1060,23 +1056,31 @@ "create.item_attributes.equipable.inverted": "UNLOCALIZED: cannot be equipped", "create.item_attributes.furnace_fuel": "UNLOCALIZED: is furnace fuel", "create.item_attributes.furnace_fuel.inverted": "UNLOCALIZED: is not furnace fuel", + "create.item_attributes.washable": "UNLOCALIZED: can be Washed", + "create.item_attributes.washable.inverted": "UNLOCALIZED: cannot be Washed", + "create.item_attributes.crushable": "UNLOCALIZED: can be Crushed", + "create.item_attributes.crushable.inverted": "UNLOCALIZED: cannot be Crushed", + "create.item_attributes.smeltable": "UNLOCALIZED: can be Smelted", + "create.item_attributes.smeltable.inverted": "UNLOCALIZED: cannot be Smelted", + "create.item_attributes.smokable": "UNLOCALIZED: can be Smoked", + "create.item_attributes.smokable.inverted": "UNLOCALIZED: cannot be Smoked", + "create.item_attributes.blastable": "UNLOCALIZED: is smeltable in Blast Furnace", + "create.item_attributes.blastable.inverted": "UNLOCALIZED: is not smeltable in Blast Furnace", + "create.item_attributes.shulker_level": "UNLOCALIZED: is shulker %1$s", + "create.item_attributes.shulker_level.inverted": "UNLOCALIZED: is shulker not %1$s", + "create.item_attributes.shulker_level.full": "UNLOCALIZED: full", + "create.item_attributes.shulker_level.empty": "UNLOCALIZED: empty", + "create.item_attributes.shulker_level.partial": "UNLOCALIZED: partially filled", "create.item_attributes.in_tag": "UNLOCALIZED: is tagged %1$s", "create.item_attributes.in_tag.inverted": "UNLOCALIZED: is not tagged %1$s", "create.item_attributes.in_item_group": "UNLOCALIZED: is in group '%1$s'", "create.item_attributes.in_item_group.inverted": "UNLOCALIZED: is not in group '%1$s'", "create.item_attributes.added_by": "UNLOCALIZED: was added by %1$s", "create.item_attributes.added_by.inverted": "UNLOCALIZED: was not added by %1$s", - "create.item_attributes.shulker_level": "UNLOCALIZED: is shulker %1$s", - "create.item_attributes.shulker_level.inverted": "UNLOCALIZED: is shulker not %1$s", - "create.item_attributes.shulker_level.full": "UNLOCALIZED: full", - "create.item_attributes.shulker_level.empty": "UNLOCALIZED: empty", - "create.item_attributes.shulker_level.partial": "UNLOCALIZED: partially filled", "create.item_attributes.has_enchant": "UNLOCALIZED: is enchanted with %1$s", "create.item_attributes.has_enchant.inverted": "UNLOCALIZED: is not enchanted with %1$s", "create.item_attributes.color": "UNLOCALIZED: is dyed %1$s", "create.item_attributes.color.inverted": "UNLOCALIZED: is not dyed %1$s", - "create.item_attributes.max_enchanted": "UNLOCALIZED: is enchanted at max level", - "create.item_attributes.max_enchanted.inverted": "UNLOCALIZED: is not enchanted at max level", "create.item_attributes.has_fluid": "UNLOCALIZED: contains %1$s", "create.item_attributes.has_fluid.inverted": "UNLOCALIZED: does not contain %1$s", "create.item_attributes.has_name": "UNLOCALIZED: has the custom name %1$s", @@ -1091,14 +1095,14 @@ "create.item_attributes.book_copy_second.inverted": "UNLOCALIZED: is not a second-generation copy", "create.item_attributes.book_copy_tattered": "UNLOCALIZED: is a tattered mess", "create.item_attributes.book_copy_tattered.inverted": "UNLOCALIZED: is not a tattered mess", - "create.item_attributes.astralsorcery_crystal": "UNLOCALIZED: has crystal attribute %1$s", - "create.item_attributes.astralsorcery_crystal.inverted": "UNLOCALIZED: does not have crystal attribute %1$s", - "create.item_attributes.astralsorcery_constellation": "UNLOCALIZED: is attuned to %1$s", - "create.item_attributes.astralsorcery_constellation.inverted": "UNLOCALIZED: is not attuned to %1$s", - "create.item_attributes.astralsorcery_perk_gem": "UNLOCALIZED: has perk attribute %1$s", - "create.item_attributes.astralsorcery_perk_gem.inverted": "UNLOCALIZED: does not have perk attribute %1$s", "create.item_attributes.astralsorcery_amulet": "UNLOCALIZED: improves %1$s", "create.item_attributes.astralsorcery_amulet.inverted": "UNLOCALIZED: does not improve %1$s", + "create.item_attributes.astralsorcery_constellation": "UNLOCALIZED: is attuned to %1$s", + "create.item_attributes.astralsorcery_constellation.inverted": "UNLOCALIZED: is not attuned to %1$s", + "create.item_attributes.astralsorcery_crystal": "UNLOCALIZED: has crystal attribute %1$s", + "create.item_attributes.astralsorcery_crystal.inverted": "UNLOCALIZED: does not have crystal attribute %1$s", + "create.item_attributes.astralsorcery_perk_gem": "UNLOCALIZED: has perk attribute %1$s", + "create.item_attributes.astralsorcery_perk_gem.inverted": "UNLOCALIZED: does not have perk attribute %1$s", "create.gui.attribute_filter.no_selected_attributes": "UNLOCALIZED: No attributes selected", "create.gui.attribute_filter.selected_attributes": "UNLOCALIZED: Selected attributes:", diff --git a/src/generated/resources/assets/create/lang/unfinished/pl_pl.json b/src/generated/resources/assets/create/lang/unfinished/pl_pl.json index 727fa23c9..6d480af80 100644 --- a/src/generated/resources/assets/create/lang/unfinished/pl_pl.json +++ b/src/generated/resources/assets/create/lang/unfinished/pl_pl.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 257", + "_": "Missing Localizations: 261", "_": "->------------------------] Game Elements [------------------------<-", @@ -1038,18 +1038,14 @@ "create.item_attributes.placeable.inverted": "nie jest stawialny", "create.item_attributes.consumable": "jadalny", "create.item_attributes.consumable.inverted": "niejadalny", - "create.item_attributes.smeltable": "może zostać przepalony", - "create.item_attributes.smeltable.inverted": "nie może zostać przepalony", - "create.item_attributes.washable": "może zostać opłukany", - "create.item_attributes.washable.inverted": "nie może zostać opłukany", - "create.item_attributes.smokable": "może być wędzony", - "create.item_attributes.smokable.inverted": "nie może być wędzony", - "create.item_attributes.crushable": "może być rozkruszony", - "create.item_attributes.crushable.inverted": "nie może być rozkruszony", - "create.item_attributes.blastable": "może być stopiony w piecu hutniczym", - "create.item_attributes.blastable.inverted": "nie może być stopiony w piecu hutniczym", + "create.item_attributes.fluid_container": "UNLOCALIZED: can store fluids", + "create.item_attributes.fluid_container.inverted": "UNLOCALIZED: cannot store fluids", "create.item_attributes.enchanted": "jest zaklęty", "create.item_attributes.enchanted.inverted": "nie jest zaklęty", + "create.item_attributes.max_enchanted": "jest zaklęte na maksymalny poziom", + "create.item_attributes.max_enchanted.inverted": "nie jest zaklęte na maksymalny poziom", + "create.item_attributes.renamed": "UNLOCALIZED: has a custom name", + "create.item_attributes.renamed.inverted": "UNLOCALIZED: does not have a custom name", "create.item_attributes.damaged": "jest uszkodzony", "create.item_attributes.damaged.inverted": "nie jest uszkodzony", "create.item_attributes.badly_damaged": "jest silnie uszkodzony", @@ -1060,23 +1056,31 @@ "create.item_attributes.equipable.inverted": "nie może zostać założony", "create.item_attributes.furnace_fuel": "jest paliwem dla pieca", "create.item_attributes.furnace_fuel.inverted": "nie jest paliwem dla pieca", + "create.item_attributes.washable": "może zostać opłukany", + "create.item_attributes.washable.inverted": "nie może zostać opłukany", + "create.item_attributes.crushable": "może być rozkruszony", + "create.item_attributes.crushable.inverted": "nie może być rozkruszony", + "create.item_attributes.smeltable": "może zostać przepalony", + "create.item_attributes.smeltable.inverted": "nie może zostać przepalony", + "create.item_attributes.smokable": "może być wędzony", + "create.item_attributes.smokable.inverted": "nie może być wędzony", + "create.item_attributes.blastable": "może być stopiony w piecu hutniczym", + "create.item_attributes.blastable.inverted": "nie może być stopiony w piecu hutniczym", + "create.item_attributes.shulker_level": "UNLOCALIZED: is shulker %1$s", + "create.item_attributes.shulker_level.inverted": "UNLOCALIZED: is shulker not %1$s", + "create.item_attributes.shulker_level.full": "UNLOCALIZED: full", + "create.item_attributes.shulker_level.empty": "UNLOCALIZED: empty", + "create.item_attributes.shulker_level.partial": "UNLOCALIZED: partially filled", "create.item_attributes.in_tag": "posiada znacznik %1$s", "create.item_attributes.in_tag.inverted": "nie posiada znacznika %1$s", "create.item_attributes.in_item_group": "jest w grupie \"%1$s\"", "create.item_attributes.in_item_group.inverted": "nie jest w grupie \"%1$s\"", "create.item_attributes.added_by": "dodany przez %1$s", "create.item_attributes.added_by.inverted": "niedodany przez %1$s", - "create.item_attributes.shulker_level": "UNLOCALIZED: is shulker %1$s", - "create.item_attributes.shulker_level.inverted": "UNLOCALIZED: is shulker not %1$s", - "create.item_attributes.shulker_level.full": "UNLOCALIZED: full", - "create.item_attributes.shulker_level.empty": "UNLOCALIZED: empty", - "create.item_attributes.shulker_level.partial": "UNLOCALIZED: partially filled", "create.item_attributes.has_enchant": "posiada zaklęcie %1$s", "create.item_attributes.has_enchant.inverted": "nie posiada zaklęcia %1$s", "create.item_attributes.color": "jest zafarbowane, kolor %1$s", "create.item_attributes.color.inverted": "nie jest zafarbowane, kolor %1$s", - "create.item_attributes.max_enchanted": "jest zaklęte na maksymalny poziom", - "create.item_attributes.max_enchanted.inverted": "nie jest zaklęte na maksymalny poziom", "create.item_attributes.has_fluid": "zawiera %1$s", "create.item_attributes.has_fluid.inverted": "nie zawiera %1$s", "create.item_attributes.has_name": "posiada nazwę %1$s", @@ -1091,14 +1095,14 @@ "create.item_attributes.book_copy_second.inverted": "nie jest kopią kopii", "create.item_attributes.book_copy_tattered": "jest postrzępiona", "create.item_attributes.book_copy_tattered.inverted": "nie jest postrzępiona", - "create.item_attributes.astralsorcery_crystal": "posiada właściwości kryształu %1$s", - "create.item_attributes.astralsorcery_crystal.inverted": "nie posiada właściwości kryształu %1$s", - "create.item_attributes.astralsorcery_constellation": "jest dopasowany do %1$s", - "create.item_attributes.astralsorcery_constellation.inverted": "nie jest dopasowany do %1$s", - "create.item_attributes.astralsorcery_perk_gem": "posiada dodatkową właściwość %1$s", - "create.item_attributes.astralsorcery_perk_gem.inverted": "nie posiada dodatkowej właściwości %1$s", "create.item_attributes.astralsorcery_amulet": "ulepsza %1$s", "create.item_attributes.astralsorcery_amulet.inverted": "nie ulepsza %1$s", + "create.item_attributes.astralsorcery_constellation": "jest dopasowany do %1$s", + "create.item_attributes.astralsorcery_constellation.inverted": "nie jest dopasowany do %1$s", + "create.item_attributes.astralsorcery_crystal": "posiada właściwości kryształu %1$s", + "create.item_attributes.astralsorcery_crystal.inverted": "nie posiada właściwości kryształu %1$s", + "create.item_attributes.astralsorcery_perk_gem": "posiada dodatkową właściwość %1$s", + "create.item_attributes.astralsorcery_perk_gem.inverted": "nie posiada dodatkowej właściwości %1$s", "create.gui.attribute_filter.no_selected_attributes": "Brak wybranych właściwości", "create.gui.attribute_filter.selected_attributes": "Wybrane właściwości:", diff --git a/src/generated/resources/assets/create/lang/unfinished/pt_br.json b/src/generated/resources/assets/create/lang/unfinished/pt_br.json index 13fd43cbc..e018f33f6 100644 --- a/src/generated/resources/assets/create/lang/unfinished/pt_br.json +++ b/src/generated/resources/assets/create/lang/unfinished/pt_br.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1808", + "_": "Missing Localizations: 1812", "_": "->------------------------] Game Elements [------------------------<-", @@ -1038,18 +1038,14 @@ "create.item_attributes.placeable.inverted": "UNLOCALIZED: is not placeable", "create.item_attributes.consumable": "UNLOCALIZED: can be eaten", "create.item_attributes.consumable.inverted": "UNLOCALIZED: cannot be eaten", - "create.item_attributes.smeltable": "UNLOCALIZED: can be Smelted", - "create.item_attributes.smeltable.inverted": "UNLOCALIZED: cannot be Smelted", - "create.item_attributes.washable": "UNLOCALIZED: can be Washed", - "create.item_attributes.washable.inverted": "UNLOCALIZED: cannot be Washed", - "create.item_attributes.smokable": "UNLOCALIZED: can be Smoked", - "create.item_attributes.smokable.inverted": "UNLOCALIZED: cannot be Smoked", - "create.item_attributes.crushable": "UNLOCALIZED: can be Crushed", - "create.item_attributes.crushable.inverted": "UNLOCALIZED: cannot be Crushed", - "create.item_attributes.blastable": "UNLOCALIZED: is smeltable in Blast Furnace", - "create.item_attributes.blastable.inverted": "UNLOCALIZED: is not smeltable in Blast Furnace", + "create.item_attributes.fluid_container": "UNLOCALIZED: can store fluids", + "create.item_attributes.fluid_container.inverted": "UNLOCALIZED: cannot store fluids", "create.item_attributes.enchanted": "UNLOCALIZED: is enchanted", "create.item_attributes.enchanted.inverted": "UNLOCALIZED: is unenchanted", + "create.item_attributes.max_enchanted": "UNLOCALIZED: is enchanted at max level", + "create.item_attributes.max_enchanted.inverted": "UNLOCALIZED: is not enchanted at max level", + "create.item_attributes.renamed": "UNLOCALIZED: has a custom name", + "create.item_attributes.renamed.inverted": "UNLOCALIZED: does not have a custom name", "create.item_attributes.damaged": "UNLOCALIZED: is damaged", "create.item_attributes.damaged.inverted": "UNLOCALIZED: is not damaged", "create.item_attributes.badly_damaged": "UNLOCALIZED: is heavily damaged", @@ -1060,23 +1056,31 @@ "create.item_attributes.equipable.inverted": "UNLOCALIZED: cannot be equipped", "create.item_attributes.furnace_fuel": "UNLOCALIZED: is furnace fuel", "create.item_attributes.furnace_fuel.inverted": "UNLOCALIZED: is not furnace fuel", + "create.item_attributes.washable": "UNLOCALIZED: can be Washed", + "create.item_attributes.washable.inverted": "UNLOCALIZED: cannot be Washed", + "create.item_attributes.crushable": "UNLOCALIZED: can be Crushed", + "create.item_attributes.crushable.inverted": "UNLOCALIZED: cannot be Crushed", + "create.item_attributes.smeltable": "UNLOCALIZED: can be Smelted", + "create.item_attributes.smeltable.inverted": "UNLOCALIZED: cannot be Smelted", + "create.item_attributes.smokable": "UNLOCALIZED: can be Smoked", + "create.item_attributes.smokable.inverted": "UNLOCALIZED: cannot be Smoked", + "create.item_attributes.blastable": "UNLOCALIZED: is smeltable in Blast Furnace", + "create.item_attributes.blastable.inverted": "UNLOCALIZED: is not smeltable in Blast Furnace", + "create.item_attributes.shulker_level": "UNLOCALIZED: is shulker %1$s", + "create.item_attributes.shulker_level.inverted": "UNLOCALIZED: is shulker not %1$s", + "create.item_attributes.shulker_level.full": "UNLOCALIZED: full", + "create.item_attributes.shulker_level.empty": "UNLOCALIZED: empty", + "create.item_attributes.shulker_level.partial": "UNLOCALIZED: partially filled", "create.item_attributes.in_tag": "UNLOCALIZED: is tagged %1$s", "create.item_attributes.in_tag.inverted": "UNLOCALIZED: is not tagged %1$s", "create.item_attributes.in_item_group": "UNLOCALIZED: is in group '%1$s'", "create.item_attributes.in_item_group.inverted": "UNLOCALIZED: is not in group '%1$s'", "create.item_attributes.added_by": "UNLOCALIZED: was added by %1$s", "create.item_attributes.added_by.inverted": "UNLOCALIZED: was not added by %1$s", - "create.item_attributes.shulker_level": "UNLOCALIZED: is shulker %1$s", - "create.item_attributes.shulker_level.inverted": "UNLOCALIZED: is shulker not %1$s", - "create.item_attributes.shulker_level.full": "UNLOCALIZED: full", - "create.item_attributes.shulker_level.empty": "UNLOCALIZED: empty", - "create.item_attributes.shulker_level.partial": "UNLOCALIZED: partially filled", "create.item_attributes.has_enchant": "UNLOCALIZED: is enchanted with %1$s", "create.item_attributes.has_enchant.inverted": "UNLOCALIZED: is not enchanted with %1$s", "create.item_attributes.color": "UNLOCALIZED: is dyed %1$s", "create.item_attributes.color.inverted": "UNLOCALIZED: is not dyed %1$s", - "create.item_attributes.max_enchanted": "UNLOCALIZED: is enchanted at max level", - "create.item_attributes.max_enchanted.inverted": "UNLOCALIZED: is not enchanted at max level", "create.item_attributes.has_fluid": "UNLOCALIZED: contains %1$s", "create.item_attributes.has_fluid.inverted": "UNLOCALIZED: does not contain %1$s", "create.item_attributes.has_name": "UNLOCALIZED: has the custom name %1$s", @@ -1091,14 +1095,14 @@ "create.item_attributes.book_copy_second.inverted": "UNLOCALIZED: is not a second-generation copy", "create.item_attributes.book_copy_tattered": "UNLOCALIZED: is a tattered mess", "create.item_attributes.book_copy_tattered.inverted": "UNLOCALIZED: is not a tattered mess", - "create.item_attributes.astralsorcery_crystal": "UNLOCALIZED: has crystal attribute %1$s", - "create.item_attributes.astralsorcery_crystal.inverted": "UNLOCALIZED: does not have crystal attribute %1$s", - "create.item_attributes.astralsorcery_constellation": "UNLOCALIZED: is attuned to %1$s", - "create.item_attributes.astralsorcery_constellation.inverted": "UNLOCALIZED: is not attuned to %1$s", - "create.item_attributes.astralsorcery_perk_gem": "UNLOCALIZED: has perk attribute %1$s", - "create.item_attributes.astralsorcery_perk_gem.inverted": "UNLOCALIZED: does not have perk attribute %1$s", "create.item_attributes.astralsorcery_amulet": "UNLOCALIZED: improves %1$s", "create.item_attributes.astralsorcery_amulet.inverted": "UNLOCALIZED: does not improve %1$s", + "create.item_attributes.astralsorcery_constellation": "UNLOCALIZED: is attuned to %1$s", + "create.item_attributes.astralsorcery_constellation.inverted": "UNLOCALIZED: is not attuned to %1$s", + "create.item_attributes.astralsorcery_crystal": "UNLOCALIZED: has crystal attribute %1$s", + "create.item_attributes.astralsorcery_crystal.inverted": "UNLOCALIZED: does not have crystal attribute %1$s", + "create.item_attributes.astralsorcery_perk_gem": "UNLOCALIZED: has perk attribute %1$s", + "create.item_attributes.astralsorcery_perk_gem.inverted": "UNLOCALIZED: does not have perk attribute %1$s", "create.gui.attribute_filter.no_selected_attributes": "UNLOCALIZED: No attributes selected", "create.gui.attribute_filter.selected_attributes": "UNLOCALIZED: Selected attributes:", diff --git a/src/generated/resources/assets/create/lang/unfinished/ru_ru.json b/src/generated/resources/assets/create/lang/unfinished/ru_ru.json index b5c391ad7..3bda0b160 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ru_ru.json +++ b/src/generated/resources/assets/create/lang/unfinished/ru_ru.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 6", + "_": "Missing Localizations: 10", "_": "->------------------------] Game Elements [------------------------<-", @@ -1038,18 +1038,14 @@ "create.item_attributes.placeable.inverted": "нельзя разместить", "create.item_attributes.consumable": "можно съесть", "create.item_attributes.consumable.inverted": "нельзя съесть", - "create.item_attributes.smeltable": "можно расплавить", - "create.item_attributes.smeltable.inverted": "нельзя расплавить", - "create.item_attributes.washable": "можно промыть", - "create.item_attributes.washable.inverted": "нельзя промыть", - "create.item_attributes.smokable": "можно прокоптить", - "create.item_attributes.smokable.inverted": "нельзя прокоптить", - "create.item_attributes.crushable": "можно измельчить", - "create.item_attributes.crushable.inverted": "нельзя разместить", - "create.item_attributes.blastable": "плавится в доменной печи", - "create.item_attributes.blastable.inverted": "не плавится в доменной печи", + "create.item_attributes.fluid_container": "UNLOCALIZED: can store fluids", + "create.item_attributes.fluid_container.inverted": "UNLOCALIZED: cannot store fluids", "create.item_attributes.enchanted": "зачарован", "create.item_attributes.enchanted.inverted": "не зачарован", + "create.item_attributes.max_enchanted": "Зачаровано за максимальный уровень", + "create.item_attributes.max_enchanted.inverted": "Не зачаровано за максимальный уровень", + "create.item_attributes.renamed": "UNLOCALIZED: has a custom name", + "create.item_attributes.renamed.inverted": "UNLOCALIZED: does not have a custom name", "create.item_attributes.damaged": "повреждён", "create.item_attributes.damaged.inverted": "не повреждён", "create.item_attributes.badly_damaged": "сильно повреждён", @@ -1060,23 +1056,31 @@ "create.item_attributes.equipable.inverted": "не может быть надет", "create.item_attributes.furnace_fuel": "является топливом", "create.item_attributes.furnace_fuel.inverted": "не является топливом", + "create.item_attributes.washable": "можно промыть", + "create.item_attributes.washable.inverted": "нельзя промыть", + "create.item_attributes.crushable": "можно измельчить", + "create.item_attributes.crushable.inverted": "нельзя разместить", + "create.item_attributes.smeltable": "можно расплавить", + "create.item_attributes.smeltable.inverted": "нельзя расплавить", + "create.item_attributes.smokable": "можно прокоптить", + "create.item_attributes.smokable.inverted": "нельзя прокоптить", + "create.item_attributes.blastable": "плавится в доменной печи", + "create.item_attributes.blastable.inverted": "не плавится в доменной печи", + "create.item_attributes.shulker_level": "шалкер %1$s", + "create.item_attributes.shulker_level.inverted": "шалкер не %1$s", + "create.item_attributes.shulker_level.full": "полный", + "create.item_attributes.shulker_level.empty": "пустой", + "create.item_attributes.shulker_level.partial": "частично заполнен", "create.item_attributes.in_tag": "помечен %1$s", "create.item_attributes.in_tag.inverted": "не помечен %1$s", "create.item_attributes.in_item_group": "принадлежит %1$s", "create.item_attributes.in_item_group.inverted": "не принадлежит '%1$s'", "create.item_attributes.added_by": "был добавлен %1$s", "create.item_attributes.added_by.inverted": "не был добавлен %1$s", - "create.item_attributes.shulker_level": "шалкер %1$s", - "create.item_attributes.shulker_level.inverted": "шалкер не %1$s", - "create.item_attributes.shulker_level.full": "полный", - "create.item_attributes.shulker_level.empty": "пустой", - "create.item_attributes.shulker_level.partial": "частично заполнен", "create.item_attributes.has_enchant": "зачарован на %1$s", "create.item_attributes.has_enchant.inverted": "не зачарован на %1$s", "create.item_attributes.color": "Покрашено в %1$s", "create.item_attributes.color.inverted": "Не покрашено в %1$s", - "create.item_attributes.max_enchanted": "Зачаровано за максимальный уровень", - "create.item_attributes.max_enchanted.inverted": "Не зачаровано за максимальный уровень", "create.item_attributes.has_fluid": "содержит %1$s", "create.item_attributes.has_fluid.inverted": "не содержит %1$s", "create.item_attributes.has_name": "имеет нестандартное имя %1$s", @@ -1091,14 +1095,14 @@ "create.item_attributes.book_copy_second.inverted": "не копия второго порядка", "create.item_attributes.book_copy_tattered": "полный беспорядок", "create.item_attributes.book_copy_tattered.inverted": "не полный беспорядок", - "create.item_attributes.astralsorcery_crystal": "имеет характеристики кристалла %1$s", - "create.item_attributes.astralsorcery_crystal.inverted": "не имеет характеристики кристалла %1$s", - "create.item_attributes.astralsorcery_constellation": "настроено на %1$s", - "create.item_attributes.astralsorcery_constellation.inverted": "не настроено на %1$s", - "create.item_attributes.astralsorcery_perk_gem": "имеет характеристики перка %1$s", - "create.item_attributes.astralsorcery_perk_gem.inverted": "не имеет характеристики перка %1$s", "create.item_attributes.astralsorcery_amulet": "исправляет %1$s", "create.item_attributes.astralsorcery_amulet.inverted": "не исправляет %1$s", + "create.item_attributes.astralsorcery_constellation": "настроено на %1$s", + "create.item_attributes.astralsorcery_constellation.inverted": "не настроено на %1$s", + "create.item_attributes.astralsorcery_crystal": "имеет характеристики кристалла %1$s", + "create.item_attributes.astralsorcery_crystal.inverted": "не имеет характеристики кристалла %1$s", + "create.item_attributes.astralsorcery_perk_gem": "имеет характеристики перка %1$s", + "create.item_attributes.astralsorcery_perk_gem.inverted": "не имеет характеристики перка %1$s", "create.gui.attribute_filter.no_selected_attributes": "Атрибуты не выбраны", "create.gui.attribute_filter.selected_attributes": "Выбранные атрибуты:", diff --git a/src/generated/resources/assets/create/lang/unfinished/zh_cn.json b/src/generated/resources/assets/create/lang/unfinished/zh_cn.json index 35a44fa56..1d231dc9e 100644 --- a/src/generated/resources/assets/create/lang/unfinished/zh_cn.json +++ b/src/generated/resources/assets/create/lang/unfinished/zh_cn.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 5", + "_": "Missing Localizations: 9", "_": "->------------------------] Game Elements [------------------------<-", @@ -1038,18 +1038,14 @@ "create.item_attributes.placeable.inverted": "不可放置", "create.item_attributes.consumable": "可食用", "create.item_attributes.consumable.inverted": "不可食用", - "create.item_attributes.smeltable": "可被熔炉烧制", - "create.item_attributes.smeltable.inverted": "不可被熔炉烧制", - "create.item_attributes.washable": "可被洗涤", - "create.item_attributes.washable.inverted": "不可被洗涤", - "create.item_attributes.smokable": "可被烟熏", - "create.item_attributes.smokable.inverted": "不可被烟熏", - "create.item_attributes.crushable": "可被粉碎", - "create.item_attributes.crushable.inverted": "不可被粉碎", - "create.item_attributes.blastable": "可被高炉冶炼", - "create.item_attributes.blastable.inverted": "不可被高炉冶炼", + "create.item_attributes.fluid_container": "UNLOCALIZED: can store fluids", + "create.item_attributes.fluid_container.inverted": "UNLOCALIZED: cannot store fluids", "create.item_attributes.enchanted": "已被附魔", "create.item_attributes.enchanted.inverted": "未被附魔", + "create.item_attributes.max_enchanted": "已达到最高附魔等级", + "create.item_attributes.max_enchanted.inverted": "并未达到最高附魔等级", + "create.item_attributes.renamed": "UNLOCALIZED: has a custom name", + "create.item_attributes.renamed.inverted": "UNLOCALIZED: does not have a custom name", "create.item_attributes.damaged": "已损坏", "create.item_attributes.damaged.inverted": "未损坏", "create.item_attributes.badly_damaged": "严重受损", @@ -1060,23 +1056,31 @@ "create.item_attributes.equipable.inverted": "不可装备", "create.item_attributes.furnace_fuel": "可作为燃料", "create.item_attributes.furnace_fuel.inverted": "不可作为燃料", + "create.item_attributes.washable": "可被洗涤", + "create.item_attributes.washable.inverted": "不可被洗涤", + "create.item_attributes.crushable": "可被粉碎", + "create.item_attributes.crushable.inverted": "不可被粉碎", + "create.item_attributes.smeltable": "可被熔炉烧制", + "create.item_attributes.smeltable.inverted": "不可被熔炉烧制", + "create.item_attributes.smokable": "可被烟熏", + "create.item_attributes.smokable.inverted": "不可被烟熏", + "create.item_attributes.blastable": "可被高炉冶炼", + "create.item_attributes.blastable.inverted": "不可被高炉冶炼", + "create.item_attributes.shulker_level": "潜影盒是%1$s的", + "create.item_attributes.shulker_level.inverted": "潜影盒不是%1$s的", + "create.item_attributes.shulker_level.full": "满", + "create.item_attributes.shulker_level.empty": "空", + "create.item_attributes.shulker_level.partial": "部分填充", "create.item_attributes.in_tag": "标签是%1$s", "create.item_attributes.in_tag.inverted": "标签不是%1$s", "create.item_attributes.in_item_group": "属于%1$s", "create.item_attributes.in_item_group.inverted": "不属于%1$s", "create.item_attributes.added_by": "由%1$s添加", "create.item_attributes.added_by.inverted": "不由%1$s添加", - "create.item_attributes.shulker_level": "潜影盒是%1$s的", - "create.item_attributes.shulker_level.inverted": "潜影盒不是%1$s的", - "create.item_attributes.shulker_level.full": "满", - "create.item_attributes.shulker_level.empty": "空", - "create.item_attributes.shulker_level.partial": "部分填充", "create.item_attributes.has_enchant": "有附魔效果%1$s", "create.item_attributes.has_enchant.inverted": "没有附魔效果%1$s", "create.item_attributes.color": "染色为%1$s", "create.item_attributes.color.inverted": "未被染成%1$s", - "create.item_attributes.max_enchanted": "已达到最高附魔等级", - "create.item_attributes.max_enchanted.inverted": "并未达到最高附魔等级", "create.item_attributes.has_fluid": "含有%1$s", "create.item_attributes.has_fluid.inverted": "不含有%1$s", "create.item_attributes.has_name": "有自定义名称%1$s", @@ -1091,14 +1095,14 @@ "create.item_attributes.book_copy_second.inverted": "不是第二代拷贝", "create.item_attributes.book_copy_tattered": "拷贝次数已不可查", "create.item_attributes.book_copy_tattered.inverted": "不是拷贝次数已不可查", - "create.item_attributes.astralsorcery_crystal": "有水晶石属性%1$s", - "create.item_attributes.astralsorcery_crystal.inverted": "没有水晶石属性%1$s", - "create.item_attributes.astralsorcery_constellation": "与%1$s共鸣", - "create.item_attributes.astralsorcery_constellation.inverted": "不与%1$s共鸣", - "create.item_attributes.astralsorcery_perk_gem": "带有有星能力属性%1$s", - "create.item_attributes.astralsorcery_perk_gem.inverted": "不带有星能力属性%1$s", "create.item_attributes.astralsorcery_amulet": "璀璨棱镜增强%1$s", "create.item_attributes.astralsorcery_amulet.inverted": "璀璨棱镜未增强%1$s", + "create.item_attributes.astralsorcery_constellation": "与%1$s共鸣", + "create.item_attributes.astralsorcery_constellation.inverted": "不与%1$s共鸣", + "create.item_attributes.astralsorcery_crystal": "有水晶石属性%1$s", + "create.item_attributes.astralsorcery_crystal.inverted": "没有水晶石属性%1$s", + "create.item_attributes.astralsorcery_perk_gem": "带有有星能力属性%1$s", + "create.item_attributes.astralsorcery_perk_gem.inverted": "不带有星能力属性%1$s", "create.gui.attribute_filter.no_selected_attributes": "未选择任何属性", "create.gui.attribute_filter.selected_attributes": "已选择的属性:", diff --git a/src/generated/resources/assets/create/lang/unfinished/zh_tw.json b/src/generated/resources/assets/create/lang/unfinished/zh_tw.json index 28e21eea1..e8104a4a5 100644 --- a/src/generated/resources/assets/create/lang/unfinished/zh_tw.json +++ b/src/generated/resources/assets/create/lang/unfinished/zh_tw.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 20", + "_": "Missing Localizations: 24", "_": "->------------------------] Game Elements [------------------------<-", @@ -1038,18 +1038,14 @@ "create.item_attributes.placeable.inverted": "不可放置", "create.item_attributes.consumable": "可食用", "create.item_attributes.consumable.inverted": "不可食用", - "create.item_attributes.smeltable": "可被熔爐融煉", - "create.item_attributes.smeltable.inverted": "不可被熔爐融煉", - "create.item_attributes.washable": "可被篩洗", - "create.item_attributes.washable.inverted": "不可被篩洗", - "create.item_attributes.smokable": "可被煙熏", - "create.item_attributes.smokable.inverted": "不可被煙熏", - "create.item_attributes.crushable": "可被粉碎", - "create.item_attributes.crushable.inverted": "不可被粉碎", - "create.item_attributes.blastable": "可被高爐融煉", - "create.item_attributes.blastable.inverted": "不可被高爐融煉", + "create.item_attributes.fluid_container": "UNLOCALIZED: can store fluids", + "create.item_attributes.fluid_container.inverted": "UNLOCALIZED: cannot store fluids", "create.item_attributes.enchanted": "已被附魔", "create.item_attributes.enchanted.inverted": "未被附魔", + "create.item_attributes.max_enchanted": "已達到最高附魔等級", + "create.item_attributes.max_enchanted.inverted": "未達到最高附魔等級", + "create.item_attributes.renamed": "UNLOCALIZED: has a custom name", + "create.item_attributes.renamed.inverted": "UNLOCALIZED: does not have a custom name", "create.item_attributes.damaged": "已損壞", "create.item_attributes.damaged.inverted": "未損壞", "create.item_attributes.badly_damaged": "嚴重受損", @@ -1060,23 +1056,31 @@ "create.item_attributes.equipable.inverted": "不可裝備", "create.item_attributes.furnace_fuel": "是燃料", "create.item_attributes.furnace_fuel.inverted": "不是燃料", + "create.item_attributes.washable": "可被篩洗", + "create.item_attributes.washable.inverted": "不可被篩洗", + "create.item_attributes.crushable": "可被粉碎", + "create.item_attributes.crushable.inverted": "不可被粉碎", + "create.item_attributes.smeltable": "可被熔爐融煉", + "create.item_attributes.smeltable.inverted": "不可被熔爐融煉", + "create.item_attributes.smokable": "可被煙熏", + "create.item_attributes.smokable.inverted": "不可被煙熏", + "create.item_attributes.blastable": "可被高爐融煉", + "create.item_attributes.blastable.inverted": "不可被高爐融煉", + "create.item_attributes.shulker_level": "界伏盒是 %1$s", + "create.item_attributes.shulker_level.inverted": "界伏盒不是 %1$s", + "create.item_attributes.shulker_level.full": "滿的", + "create.item_attributes.shulker_level.empty": "空的", + "create.item_attributes.shulker_level.partial": "有裝東西但沒滿", "create.item_attributes.in_tag": "標籤是%1$s", "create.item_attributes.in_tag.inverted": "標籤不是%1$s", "create.item_attributes.in_item_group": "屬於%1$s", "create.item_attributes.in_item_group.inverted": "不屬於%1$s", "create.item_attributes.added_by": "由%1$s添加", "create.item_attributes.added_by.inverted": "不是由%1$s添加", - "create.item_attributes.shulker_level": "界伏盒是 %1$s", - "create.item_attributes.shulker_level.inverted": "界伏盒不是 %1$s", - "create.item_attributes.shulker_level.full": "滿的", - "create.item_attributes.shulker_level.empty": "空的", - "create.item_attributes.shulker_level.partial": "有裝東西但沒滿", "create.item_attributes.has_enchant": "有附魔效果%1$s", "create.item_attributes.has_enchant.inverted": "沒有附魔效果%1$s", "create.item_attributes.color": "已被染色成 %1$s", "create.item_attributes.color.inverted": "未被染色成 %1$s", - "create.item_attributes.max_enchanted": "已達到最高附魔等級", - "create.item_attributes.max_enchanted.inverted": "未達到最高附魔等級", "create.item_attributes.has_fluid": "包含%1$s", "create.item_attributes.has_fluid.inverted": "不包含%1$s", "create.item_attributes.has_name": "有自定義名稱%1$s", @@ -1091,14 +1095,14 @@ "create.item_attributes.book_copy_second.inverted": "不是第二份複製", "create.item_attributes.book_copy_tattered": "是第三份複製", "create.item_attributes.book_copy_tattered.inverted": "不是第三份複製", - "create.item_attributes.astralsorcery_crystal": "具有晶體屬性%1$s", - "create.item_attributes.astralsorcery_crystal.inverted": "不具有晶體屬性%1$s", - "create.item_attributes.astralsorcery_constellation": "與%1$s調諧", - "create.item_attributes.astralsorcery_constellation.inverted": "未與%1$s調諧", - "create.item_attributes.astralsorcery_perk_gem": "具有特殊屬性%1$s", - "create.item_attributes.astralsorcery_perk_gem.inverted": "不具有特殊屬性%1$s", "create.item_attributes.astralsorcery_amulet": "提升%1$s", "create.item_attributes.astralsorcery_amulet.inverted": "不提升%1$s", + "create.item_attributes.astralsorcery_constellation": "與%1$s調諧", + "create.item_attributes.astralsorcery_constellation.inverted": "未與%1$s調諧", + "create.item_attributes.astralsorcery_crystal": "具有晶體屬性%1$s", + "create.item_attributes.astralsorcery_crystal.inverted": "不具有晶體屬性%1$s", + "create.item_attributes.astralsorcery_perk_gem": "具有特殊屬性%1$s", + "create.item_attributes.astralsorcery_perk_gem.inverted": "不具有特殊屬性%1$s", "create.gui.attribute_filter.no_selected_attributes": "沒有標記任何屬性", "create.gui.attribute_filter.selected_attributes": "已選擇的屬性:", diff --git a/src/generated/resources/data/create/advancements/aesthetics.json b/src/generated/resources/data/create/advancements/aesthetics.json index d723cbe38..59a86f429 100644 --- a/src/generated/resources/data/create/advancements/aesthetics.json +++ b/src/generated/resources/data/create/advancements/aesthetics.json @@ -28,8 +28,8 @@ "trigger": "create:bracket_apply", "conditions": { "accepted_entries": [ - "create:cogwheel", - "create:large_cogwheel" + "create:large_cogwheel", + "create:cogwheel" ] } }, diff --git a/src/main/resources/data/forge/tags/items/stone.json b/src/generated/resources/data/forge/tags/blocks/stone.json similarity index 100% rename from src/main/resources/data/forge/tags/items/stone.json rename to src/generated/resources/data/forge/tags/blocks/stone.json index 2b4996602..5a5395c1f 100644 --- a/src/main/resources/data/forge/tags/items/stone.json +++ b/src/generated/resources/data/forge/tags/blocks/stone.json @@ -5,10 +5,10 @@ "create:polished_limestone", "create:weathered_limestone", "create:polished_weathered_limestone", - "create:gabbro", - "create:polished_gabbro", "create:dolomite", "create:polished_dolomite", + "create:gabbro", + "create:polished_gabbro", "create:scoria", "create:polished_scoria", "create:dark_scoria", diff --git a/src/main/resources/data/forge/tags/blocks/wg_stone.json b/src/generated/resources/data/forge/tags/blocks/wg_stone.json similarity index 100% rename from src/main/resources/data/forge/tags/blocks/wg_stone.json rename to src/generated/resources/data/forge/tags/blocks/wg_stone.json index d49e3fbd6..39e5fd569 100644 --- a/src/main/resources/data/forge/tags/blocks/wg_stone.json +++ b/src/generated/resources/data/forge/tags/blocks/wg_stone.json @@ -3,8 +3,8 @@ "values": [ "create:limestone", "create:weathered_limestone", - "create:gabbro", "create:dolomite", + "create:gabbro", "create:natural_scoria" ] } \ No newline at end of file diff --git a/src/main/resources/data/forge/tags/items/buckets/honey.json b/src/generated/resources/data/forge/tags/items/buckets/honey.json similarity index 97% rename from src/main/resources/data/forge/tags/items/buckets/honey.json rename to src/generated/resources/data/forge/tags/items/buckets/honey.json index 47f91b376..215063f0f 100644 --- a/src/main/resources/data/forge/tags/items/buckets/honey.json +++ b/src/generated/resources/data/forge/tags/items/buckets/honey.json @@ -3,4 +3,4 @@ "values": [ "create:honey_bucket" ] -} +} \ No newline at end of file diff --git a/src/main/resources/data/forge/tags/blocks/stone.json b/src/generated/resources/data/forge/tags/items/stone.json similarity index 100% rename from src/main/resources/data/forge/tags/blocks/stone.json rename to src/generated/resources/data/forge/tags/items/stone.json index 2b4996602..5a5395c1f 100644 --- a/src/main/resources/data/forge/tags/blocks/stone.json +++ b/src/generated/resources/data/forge/tags/items/stone.json @@ -5,10 +5,10 @@ "create:polished_limestone", "create:weathered_limestone", "create:polished_weathered_limestone", - "create:gabbro", - "create:polished_gabbro", "create:dolomite", "create:polished_dolomite", + "create:gabbro", + "create:polished_gabbro", "create:scoria", "create:polished_scoria", "create:dark_scoria", diff --git a/src/main/java/com/simibubi/create/AllFluids.java b/src/main/java/com/simibubi/create/AllFluids.java index e12816477..5cc52de55 100644 --- a/src/main/java/com/simibubi/create/AllFluids.java +++ b/src/main/java/com/simibubi/create/AllFluids.java @@ -46,6 +46,9 @@ public class AllFluids { .slopeFindDistance(3) .explosionResistance(100f)) .tag(AllFluidTags.HONEY.tag) + .bucket() + .tag(AllTags.forgeItemTag("buckets/honey")) + .build() .register(); public static final FluidEntry CHOCOLATE = diff --git a/src/main/java/com/simibubi/create/AllTags.java b/src/main/java/com/simibubi/create/AllTags.java index 19e148d20..7436f3407 100644 --- a/src/main/java/com/simibubi/create/AllTags.java +++ b/src/main/java/com/simibubi/create/AllTags.java @@ -7,7 +7,6 @@ import static com.simibubi.create.AllTags.NameSpace.TIC; import java.util.function.Function; import com.simibubi.create.foundation.data.CreateRegistrate; -import com.simibubi.create.foundation.utility.EmptyNamedTag; import com.simibubi.create.foundation.utility.Lang; import com.tterrag.registrate.builders.BlockBuilder; import com.tterrag.registrate.builders.ItemBuilder; @@ -28,51 +27,60 @@ import net.minecraft.tags.ITag; import net.minecraft.tags.ItemTags; import net.minecraft.util.ResourceLocation; import net.minecraftforge.common.Tags; -import net.minecraftforge.fml.ModList; public class AllTags { private static final CreateRegistrate REGISTRATE = Create.registrate() - .itemGroup(() -> Create.BASE_CREATIVE_TAB); + .itemGroup(() -> Create.BASE_CREATIVE_TAB); + + public static ITag.INamedTag tag(Function> wrapperFactory, String namespace, + String path) { + return wrapperFactory.apply(new ResourceLocation(namespace, path)); + } + + public static ITag.INamedTag forgeTag(Function> wrapperFactory, String path) { + return tag(wrapperFactory, "forge", path); + } + + public static ITag.INamedTag forgeBlockTag(String path) { + return forgeTag(BlockTags::createOptional, path); + } + + public static ITag.INamedTag forgeItemTag(String path) { + return forgeTag(ItemTags::createOptional, path); + } + + public static ITag.INamedTag forgeFluidTag(String path) { + return forgeTag(FluidTags::createOptional, path); + } public static NonNullFunction, ItemBuilder>> tagBlockAndItem( - String tagName) { - return b -> b.tag(forgeBlockTag(tagName)) + String path) { + return b -> b.tag(forgeBlockTag(path)) .item() - .tag(forgeItemTag(tagName)); - } - - public static ITag.INamedTag forgeBlockTag(String name) { - return forgeTag(BlockTags::bind, name); - } - - public static ITag.INamedTag forgeItemTag(String name) { - return forgeTag(ItemTags::bind, name); - } - - public static ITag.INamedTag forgeFluidTag(String name) { - return forgeTag(FluidTags::bind, name); - } - - public static ITag.INamedTag forgeTag(Function> wrapperFactory, String name) { - return tag(wrapperFactory, "forge", name); - } - - public static ITag.INamedTag tag(Function> wrapperFactory, String domain, - String name) { - return wrapperFactory.apply(new ResourceLocation(domain, name).toString()); + .tag(forgeItemTag(path)); } public enum NameSpace { - MOD(Create.ID), FORGE("forge"), TIC("tconstruct") + MOD(Create.ID, false, true), + FORGE("forge"), + TIC("tconstruct") ; public final String id; + public final boolean optionalDefault; + public final boolean alwaysDatagenDefault; - private NameSpace(String id) { + NameSpace(String id) { + this(id, true, false); + } + + NameSpace(String id, boolean optionalDefault, boolean alwaysDatagenDefault) { this.id = id; + this.optionalDefault = optionalDefault; + this.alwaysDatagenDefault = alwaysDatagenDefault; } } @@ -90,37 +98,50 @@ public class AllTags { WINDOWABLE, WRENCH_PICKUP, + WG_STONE(FORGE), + SLIMY_LOGS(TIC), ; public final ITag.INamedTag tag; - private AllBlockTags() { - this(MOD, ""); + AllBlockTags() { + this(MOD); } - private AllBlockTags(NameSpace namespace) { - this(namespace, ""); + AllBlockTags(NameSpace namespace) { + this(namespace, namespace.optionalDefault, namespace.alwaysDatagenDefault); } - private AllBlockTags(NameSpace namespace, String path) { - ResourceLocation id = - new ResourceLocation(namespace.id, (path.isEmpty() ? "" : path + "/") + Lang.asId(name())); - if (ModList.get() - .isLoaded(namespace.id)) { - tag = BlockTags.bind(id.toString()); - REGISTRATE.addDataGenerator(ProviderType.BLOCK_TAGS, prov -> prov.tag(tag)); + AllBlockTags(NameSpace namespace, String path) { + this(namespace, path, namespace.optionalDefault, namespace.alwaysDatagenDefault); + } + + AllBlockTags(NameSpace namespace, boolean optional, boolean alwaysDatagen) { + this(namespace, null, optional, alwaysDatagen); + } + + AllBlockTags(NameSpace namespace, String path, boolean optional, boolean alwaysDatagen) { + ResourceLocation id = new ResourceLocation(namespace.id, path == null ? Lang.asId(name()) : path); + if (optional) { + tag = BlockTags.createOptional(id); } else { - tag = new EmptyNamedTag<>(id); + tag = BlockTags.bind(id.toString()); + } + if (alwaysDatagen) { + REGISTRATE.addDataGenerator(ProviderType.BLOCK_TAGS, prov -> prov.tag(tag)); } } - - public boolean matches(BlockState block) { + public boolean matches(Block block) { return tag.contains(block.getBlock()); } + public boolean matches(BlockState state) { + return matches(state.getBlock()); + } + public void add(Block... values) { REGISTRATE.addDataGenerator(ProviderType.BLOCK_TAGS, prov -> prov.tag(tag) .add(values)); @@ -144,12 +165,12 @@ public class AllTags { public enum AllItemTags { - CREATE_INGOTS(), - CRUSHED_ORES(), - SANDPAPER(), - SEATS(), - UPRIGHT_ON_BELT(), - VALVE_HANDLES(), + CREATE_INGOTS, + CRUSHED_ORES, + SANDPAPER, + SEATS, + UPRIGHT_ON_BELT, + VALVE_HANDLES, BEACON_PAYMENT(FORGE), PLATES(FORGE) @@ -158,18 +179,32 @@ public class AllTags { public final ITag.INamedTag tag; - private AllItemTags() { - this(MOD, ""); + AllItemTags() { + this(MOD); } - private AllItemTags(NameSpace namespace) { - this(namespace, ""); + AllItemTags(NameSpace namespace) { + this(namespace, namespace.optionalDefault, namespace.alwaysDatagenDefault); } - private AllItemTags(NameSpace namespace, String path) { - tag = ItemTags.bind( - new ResourceLocation(namespace.id, (path.isEmpty() ? "" : path + "/") + Lang.asId(name())).toString()); - REGISTRATE.addDataGenerator(ProviderType.ITEM_TAGS, prov -> prov.tag(tag)); + AllItemTags(NameSpace namespace, String path) { + this(namespace, path, namespace.optionalDefault, namespace.alwaysDatagenDefault); + } + + AllItemTags(NameSpace namespace, boolean optional, boolean alwaysDatagen) { + this(namespace, null, optional, alwaysDatagen); + } + + AllItemTags(NameSpace namespace, String path, boolean optional, boolean alwaysDatagen) { + ResourceLocation id = new ResourceLocation(namespace.id, path == null ? Lang.asId(name()) : path); + if (optional) { + tag = ItemTags.createOptional(id); + } else { + tag = ItemTags.bind(id.toString()); + } + if (alwaysDatagen) { + REGISTRATE.addDataGenerator(ProviderType.ITEM_TAGS, prov -> prov.tag(tag)); + } } public boolean matches(ItemStack stack) { @@ -190,11 +225,16 @@ public class AllTags { includeIn(parent.tag); } + public void includeAll(ITag.INamedTag child) { + REGISTRATE.addDataGenerator(ProviderType.ITEM_TAGS, prov -> prov.tag(tag) + .addTag(child)); + } + } public enum AllFluidTags { - NO_INFINITE_DRAINING, + NO_INFINITE_DRAINING(MOD, true, false), HONEY(FORGE) @@ -202,28 +242,64 @@ public class AllTags { public final ITag.INamedTag tag; - private AllFluidTags() { - this(MOD, ""); + AllFluidTags() { + this(MOD); } - private AllFluidTags(NameSpace namespace) { - this(namespace, ""); + AllFluidTags(NameSpace namespace) { + this(namespace, namespace.optionalDefault, namespace.alwaysDatagenDefault); } - private AllFluidTags(NameSpace namespace, String path) { - tag = FluidTags.createOptional( - new ResourceLocation(namespace.id, (path.isEmpty() ? "" : path + "/") + Lang.asId(name()))); + AllFluidTags(NameSpace namespace, String path) { + this(namespace, path, namespace.optionalDefault, namespace.alwaysDatagenDefault); + } + + AllFluidTags(NameSpace namespace, boolean optional, boolean alwaysDatagen) { + this(namespace, null, optional, alwaysDatagen); + } + + AllFluidTags(NameSpace namespace, String path, boolean optional, boolean alwaysDatagen) { + ResourceLocation id = new ResourceLocation(namespace.id, path == null ? Lang.asId(name()) : path); + if (optional) { + tag = FluidTags.createOptional(id); + } else { + tag = FluidTags.bind(id.toString()); + } + if (alwaysDatagen) { + REGISTRATE.addDataGenerator(ProviderType.FLUID_TAGS, prov -> prov.tag(tag)); + } } public boolean matches(Fluid fluid) { return fluid != null && fluid.is(tag); } + public void add(Fluid... values) { + REGISTRATE.addDataGenerator(ProviderType.FLUID_TAGS, prov -> prov.tag(tag) + .add(values)); + } + + public void includeIn(ITag.INamedTag parent) { + REGISTRATE.addDataGenerator(ProviderType.FLUID_TAGS, prov -> prov.tag(parent) + .addTag(tag)); + } + + public void includeIn(AllFluidTags parent) { + includeIn(parent.tag); + } + + public void includeAll(ITag.INamedTag child) { + REGISTRATE.addDataGenerator(ProviderType.FLUID_TAGS, prov -> prov.tag(tag) + .addTag(child)); + } + private static void loadClass() {} } public static void register() { + AllFluidTags.loadClass(); + AllItemTags.CREATE_INGOTS.includeIn(AllItemTags.BEACON_PAYMENT); AllItemTags.CREATE_INGOTS.includeIn(Tags.Items.INGOTS); @@ -249,8 +325,6 @@ public class AllTags { AllBlockTags.WRENCH_PICKUP.add(Blocks.REDSTONE_WIRE, Blocks.REDSTONE_TORCH, Blocks.REPEATER, Blocks.LEVER, Blocks.COMPARATOR, Blocks.OBSERVER, Blocks.REDSTONE_WALL_TORCH, Blocks.PISTON, Blocks.STICKY_PISTON, Blocks.TRIPWIRE, Blocks.TRIPWIRE_HOOK, Blocks.DAYLIGHT_DETECTOR, Blocks.TARGET); - - AllFluidTags.loadClass(); } } diff --git a/src/main/java/com/simibubi/create/content/curiosities/symmetry/ConfigureSymmetryWandPacket.java b/src/main/java/com/simibubi/create/content/curiosities/symmetry/ConfigureSymmetryWandPacket.java new file mode 100644 index 000000000..9484111cc --- /dev/null +++ b/src/main/java/com/simibubi/create/content/curiosities/symmetry/ConfigureSymmetryWandPacket.java @@ -0,0 +1,50 @@ +package com.simibubi.create.content.curiosities.symmetry; + +import java.util.function.Supplier; + +import com.simibubi.create.content.curiosities.symmetry.mirror.SymmetryMirror; +import com.simibubi.create.foundation.networking.SimplePacketBase; + +import net.minecraft.entity.player.ServerPlayerEntity; +import net.minecraft.item.ItemStack; +import net.minecraft.network.PacketBuffer; +import net.minecraft.util.Hand; +import net.minecraftforge.fml.network.NetworkEvent.Context; + +public class ConfigureSymmetryWandPacket extends SimplePacketBase { + + protected Hand hand; + protected SymmetryMirror mirror; + + public ConfigureSymmetryWandPacket(Hand hand, SymmetryMirror mirror) { + this.hand = hand; + this.mirror = mirror; + } + + public ConfigureSymmetryWandPacket(PacketBuffer buffer) { + hand = buffer.readEnum(Hand.class); + mirror = SymmetryMirror.fromNBT(buffer.readNbt()); + } + + @Override + public void write(PacketBuffer buffer) { + buffer.writeEnum(hand); + buffer.writeNbt(mirror.writeToNbt()); + } + + @Override + public void handle(Supplier context) { + context.get().enqueueWork(() -> { + ServerPlayerEntity player = context.get().getSender(); + if (player == null) { + return; + } + ItemStack stack = player.getItemInHand(hand); + if (stack.getItem() instanceof SymmetryWandItem) { + SymmetryWandItem.configureSettings(stack, mirror); + } + }); + context.get().setPacketHandled(true); + } + +} diff --git a/src/main/java/com/simibubi/create/content/curiosities/symmetry/SymmetryWandItem.java b/src/main/java/com/simibubi/create/content/curiosities/symmetry/SymmetryWandItem.java index f912de98b..c2a39906a 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/symmetry/SymmetryWandItem.java +++ b/src/main/java/com/simibubi/create/content/curiosities/symmetry/SymmetryWandItem.java @@ -181,10 +181,15 @@ public class SymmetryWandItem extends Item { public static SymmetryMirror getMirror(ItemStack stack) { checkNBT(stack); - return SymmetryMirror.fromNBT((CompoundNBT) stack.getTag() + return SymmetryMirror.fromNBT(stack.getTag() .getCompound(SYMMETRY)); } + public static void configureSettings(ItemStack stack, SymmetryMirror mirror) { + checkNBT(stack); + stack.getTag().put(SYMMETRY, mirror.writeToNbt()); + } + public static void apply(World world, ItemStack wand, PlayerEntity player, BlockPos pos, BlockState block) { checkNBT(wand); if (!isEnabled(wand)) diff --git a/src/main/java/com/simibubi/create/content/curiosities/symmetry/SymmetryWandScreen.java b/src/main/java/com/simibubi/create/content/curiosities/symmetry/SymmetryWandScreen.java index 7760f56b2..875326f8b 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/symmetry/SymmetryWandScreen.java +++ b/src/main/java/com/simibubi/create/content/curiosities/symmetry/SymmetryWandScreen.java @@ -15,17 +15,14 @@ import com.simibubi.create.foundation.gui.widgets.Label; import com.simibubi.create.foundation.gui.widgets.ScrollInput; import com.simibubi.create.foundation.gui.widgets.SelectionScrollInput; import com.simibubi.create.foundation.networking.AllPackets; -import com.simibubi.create.foundation.networking.NbtPacket; import com.simibubi.create.foundation.utility.Lang; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; import net.minecraft.util.Hand; import net.minecraft.util.math.vector.Vector3d; import net.minecraft.util.math.vector.Vector3f; import net.minecraft.util.text.ITextComponent; import net.minecraft.util.text.StringTextComponent; -import net.minecraftforge.fml.network.PacketDistributor; public class SymmetryWandScreen extends AbstractSimiScreen { @@ -45,8 +42,6 @@ public class SymmetryWandScreen extends AbstractSimiScreen { private Hand hand; public SymmetryWandScreen(ItemStack wand, Hand hand) { - super(); - background = AllGuiTextures.WAND_OF_SYMMETRY; currentElement = SymmetryWandItem.getMirror(wand); @@ -150,19 +145,14 @@ public class SymmetryWandScreen extends AbstractSimiScreen { @Override public void removed() { - ItemStack heldItem = minecraft.player.getItemInHand(hand); - CompoundNBT compound = heldItem.getTag(); - compound.put(SymmetryWandItem.SYMMETRY, currentElement.writeToNbt()); - heldItem.setTag(compound); - AllPackets.channel.send(PacketDistributor.SERVER.noArg(), new NbtPacket(heldItem, hand)); - minecraft.player.setItemInHand(hand, heldItem); - super.removed(); + SymmetryWandItem.configureSettings(wand, currentElement); + AllPackets.channel.sendToServer(new ConfigureSymmetryWandPacket(hand, currentElement)); } @Override public boolean mouseClicked(double x, double y, int button) { if (confirmButton.isHovered()) { - minecraft.player.closeContainer(); + onClose(); return true; } diff --git a/src/main/java/com/simibubi/create/content/curiosities/zapper/ConfigureZapperPacket.java b/src/main/java/com/simibubi/create/content/curiosities/zapper/ConfigureZapperPacket.java new file mode 100644 index 000000000..ee0026820 --- /dev/null +++ b/src/main/java/com/simibubi/create/content/curiosities/zapper/ConfigureZapperPacket.java @@ -0,0 +1,51 @@ +package com.simibubi.create.content.curiosities.zapper; + +import java.util.function.Supplier; + +import com.simibubi.create.foundation.networking.SimplePacketBase; + +import net.minecraft.entity.player.ServerPlayerEntity; +import net.minecraft.item.ItemStack; +import net.minecraft.network.PacketBuffer; +import net.minecraft.util.Hand; +import net.minecraftforge.fml.network.NetworkEvent.Context; + +public abstract class ConfigureZapperPacket extends SimplePacketBase { + + protected Hand hand; + protected PlacementPatterns pattern; + + public ConfigureZapperPacket(Hand hand, PlacementPatterns pattern) { + this.hand = hand; + this.pattern = pattern; + } + + public ConfigureZapperPacket(PacketBuffer buffer) { + hand = buffer.readEnum(Hand.class); + pattern = buffer.readEnum(PlacementPatterns.class); + } + + @Override + public void write(PacketBuffer buffer) { + buffer.writeEnum(hand); + buffer.writeEnum(pattern); + } + + @Override + public void handle(Supplier context) { + context.get().enqueueWork(() -> { + ServerPlayerEntity player = context.get().getSender(); + if (player == null) { + return; + } + ItemStack stack = player.getItemInHand(hand); + if (stack.getItem() instanceof ZapperItem) { + configureZapper(stack); + } + }); + context.get().setPacketHandled(true); + } + + public abstract void configureZapper(ItemStack stack); + +} diff --git a/src/main/java/com/simibubi/create/content/curiosities/zapper/PlacementPatterns.java b/src/main/java/com/simibubi/create/content/curiosities/zapper/PlacementPatterns.java index 416400af0..9a8f85b9e 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/zapper/PlacementPatterns.java +++ b/src/main/java/com/simibubi/create/content/curiosities/zapper/PlacementPatterns.java @@ -21,8 +21,8 @@ public enum PlacementPatterns { Chance50(AllIcons.I_PATTERN_CHANCE_50), Chance75(AllIcons.I_PATTERN_CHANCE_75); - public String translationKey; - public AllIcons icon; + public final String translationKey; + public final AllIcons icon; private PlacementPatterns(AllIcons icon) { this.translationKey = Lang.asId(name()); diff --git a/src/main/java/com/simibubi/create/content/curiosities/zapper/ZapperItem.java b/src/main/java/com/simibubi/create/content/curiosities/zapper/ZapperItem.java index c8f895948..a42370581 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/zapper/ZapperItem.java +++ b/src/main/java/com/simibubi/create/content/curiosities/zapper/ZapperItem.java @@ -10,6 +10,7 @@ import com.simibubi.create.CreateClient; import com.simibubi.create.foundation.item.ItemDescription; import com.simibubi.create.foundation.utility.BlockHelper; import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.NBTHelper; import com.simibubi.create.foundation.utility.NBTProcessors; import net.minecraft.block.BlockState; @@ -90,7 +91,7 @@ public abstract class ZapperItem extends Item { .isShiftKeyDown()) { if (context.getLevel().isClientSide) { DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> { - openHandgunGUI(context.getItemInHand(), context.getHand() == Hand.OFF_HAND); + openHandgunGUI(context.getItemInHand(), context.getHand()); }); context.getPlayer() .getCooldowns() @@ -112,7 +113,7 @@ public abstract class ZapperItem extends Item { if (player.isShiftKeyDown()) { if (world.isClientSide) { DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> { - openHandgunGUI(item, hand == Hand.OFF_HAND); + openHandgunGUI(item, hand); }); player.getCooldowns() .addCooldown(item.getItem(), 10); @@ -187,7 +188,7 @@ public abstract class ZapperItem extends Item { BlockRayTraceResult raytrace, CompoundNBT data); @OnlyIn(Dist.CLIENT) - protected abstract void openHandgunGUI(ItemStack item, boolean b); + protected abstract void openHandgunGUI(ItemStack item, Hand hand); protected abstract int getCooldownDelay(ItemStack item); @@ -212,6 +213,11 @@ public abstract class ZapperItem extends Item { return UseAction.NONE; } + public static void configureSettings(ItemStack stack, PlacementPatterns pattern) { + CompoundNBT nbt = stack.getOrCreateTag(); + NBTHelper.writeEnum(nbt, "Pattern", pattern); + } + public static void setTileData(World world, BlockPos pos, BlockState state, CompoundNBT data, PlayerEntity player) { if (data != null && AllBlockTags.SAFE_NBT.matches(state)) { TileEntity tile = world.getBlockEntity(pos); diff --git a/src/main/java/com/simibubi/create/content/curiosities/zapper/ZapperScreen.java b/src/main/java/com/simibubi/create/content/curiosities/zapper/ZapperScreen.java index a546067d2..feaf0561e 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/zapper/ZapperScreen.java +++ b/src/main/java/com/simibubi/create/content/curiosities/zapper/ZapperScreen.java @@ -9,8 +9,8 @@ import com.simibubi.create.foundation.gui.AllIcons; import com.simibubi.create.foundation.gui.GuiGameElement; import com.simibubi.create.foundation.gui.widgets.IconButton; import com.simibubi.create.foundation.networking.AllPackets; -import com.simibubi.create.foundation.networking.NbtPacket; import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.NBTHelper; import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; @@ -22,29 +22,34 @@ import net.minecraft.util.math.vector.Vector3f; import net.minecraft.util.text.ITextComponent; import net.minecraft.util.text.StringTextComponent; -public class ZapperScreen extends AbstractSimiScreen { - - protected ItemStack zapper; - protected boolean offhand; - protected float animationProgress; - protected AllGuiTextures background; - private IconButton confirmButton; +public abstract class ZapperScreen extends AbstractSimiScreen { protected final ITextComponent patternSection = Lang.translate("gui.terrainzapper.patternSection"); + protected AllGuiTextures background; + protected ItemStack zapper; + protected Hand hand; + + protected float animationProgress; + protected ITextComponent title; - protected Vector patternButtons; + protected Vector patternButtons = new Vector<>(6); + private IconButton confirmButton; protected int brightColor; protected int fontColor; - public ZapperScreen(AllGuiTextures background, ItemStack zapper, boolean offhand) { - super(); + protected PlacementPatterns currentPattern; + + public ZapperScreen(AllGuiTextures background, ItemStack zapper, Hand hand) { this.background = background; this.zapper = zapper; - this.offhand = offhand; + this.hand = hand; title = StringTextComponent.EMPTY; brightColor = 0xFEFEFE; fontColor = AllGuiTextures.FONT_COLOR; + + CompoundNBT nbt = zapper.getOrCreateTag(); + currentPattern = NBTHelper.readEnum(nbt, "Pattern", PlacementPatterns.class); } @Override @@ -63,9 +68,7 @@ public class ZapperScreen extends AbstractSimiScreen { new IconButton(x + background.width - 33, y + background.height - 24, AllIcons.I_CONFIRM); widgets.add(confirmButton); - CompoundNBT nbt = zapper.getOrCreateTag(); - - patternButtons = new Vector<>(6); + patternButtons.clear(); for (int row = 0; row <= 1; row++) { for (int col = 0; col <= 2; col++) { int id = patternButtons.size(); @@ -77,9 +80,7 @@ public class ZapperScreen extends AbstractSimiScreen { } } - if (nbt.contains("Pattern")) - patternButtons.get(PlacementPatterns.valueOf(nbt.getString("Pattern")) - .ordinal()).active = false; + patternButtons.get(currentPattern.ordinal()).active = false; widgets.addAll(patternButtons); } @@ -108,21 +109,19 @@ public class ZapperScreen extends AbstractSimiScreen { @Override public void removed() { - CompoundNBT nbt = zapper.getTag(); - writeAdditionalOptions(nbt); - AllPackets.channel.sendToServer(new NbtPacket(zapper, offhand ? Hand.OFF_HAND : Hand.MAIN_HAND)); + ConfigureZapperPacket packet = getConfigurationPacket(); + packet.configureZapper(zapper); + AllPackets.channel.sendToServer(packet); } @Override public boolean mouseClicked(double x, double y, int button) { - CompoundNBT nbt = zapper.getTag(); - for (IconButton patternButton : patternButtons) { if (patternButton.isHovered()) { patternButtons.forEach(b -> b.active = true); patternButton.active = false; patternButton.playDownSound(minecraft.getSoundManager()); - nbt.putString("Pattern", PlacementPatterns.values()[patternButtons.indexOf(patternButton)].name()); + currentPattern = PlacementPatterns.values()[patternButtons.indexOf(patternButton)]; } } @@ -159,6 +158,6 @@ public class ZapperScreen extends AbstractSimiScreen { ms.popPose(); } - protected void writeAdditionalOptions(CompoundNBT nbt) {} + protected abstract ConfigureZapperPacket getConfigurationPacket(); } diff --git a/src/main/java/com/simibubi/create/content/curiosities/zapper/terrainzapper/ConfigureWorldshaperPacket.java b/src/main/java/com/simibubi/create/content/curiosities/zapper/terrainzapper/ConfigureWorldshaperPacket.java new file mode 100644 index 000000000..a5b849c85 --- /dev/null +++ b/src/main/java/com/simibubi/create/content/curiosities/zapper/terrainzapper/ConfigureWorldshaperPacket.java @@ -0,0 +1,55 @@ +package com.simibubi.create.content.curiosities.zapper.terrainzapper; + +import com.simibubi.create.content.curiosities.zapper.ConfigureZapperPacket; +import com.simibubi.create.content.curiosities.zapper.PlacementPatterns; + +import net.minecraft.item.ItemStack; +import net.minecraft.network.PacketBuffer; +import net.minecraft.util.Hand; + +public class ConfigureWorldshaperPacket extends ConfigureZapperPacket { + + protected TerrainBrushes brush; + protected int brushParamX; + protected int brushParamY; + protected int brushParamZ; + protected TerrainTools tool; + protected PlacementOptions placement; + + public ConfigureWorldshaperPacket(Hand hand, PlacementPatterns pattern, TerrainBrushes brush, int brushParamX, int brushParamY, int brushParamZ, TerrainTools tool, PlacementOptions placement) { + super(hand, pattern); + this.brush = brush; + this.brushParamX = brushParamX; + this.brushParamY = brushParamY; + this.brushParamZ = brushParamZ; + this.tool = tool; + this.placement = placement; + } + + public ConfigureWorldshaperPacket(PacketBuffer buffer) { + super(buffer); + brush = buffer.readEnum(TerrainBrushes.class); + brushParamX = buffer.readVarInt(); + brushParamY = buffer.readVarInt(); + brushParamZ = buffer.readVarInt(); + tool = buffer.readEnum(TerrainTools.class); + placement = buffer.readEnum(PlacementOptions.class); + } + + @Override + public void write(PacketBuffer buffer) { + super.write(buffer); + buffer.writeEnum(brush); + buffer.writeVarInt(brushParamX); + buffer.writeVarInt(brushParamY); + buffer.writeVarInt(brushParamZ); + buffer.writeEnum(tool); + buffer.writeEnum(placement); + } + + @Override + public void configureZapper(ItemStack stack) { + WorldshaperItem.configureSettings(stack, pattern, brush, brushParamX, brushParamY, brushParamZ, tool, placement); + } + +} diff --git a/src/main/java/com/simibubi/create/content/curiosities/zapper/terrainzapper/WorldshaperItem.java b/src/main/java/com/simibubi/create/content/curiosities/zapper/terrainzapper/WorldshaperItem.java index 107aa9a8b..4aa0da531 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/zapper/terrainzapper/WorldshaperItem.java +++ b/src/main/java/com/simibubi/create/content/curiosities/zapper/terrainzapper/WorldshaperItem.java @@ -14,6 +14,7 @@ import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; import net.minecraft.nbt.NBTUtil; +import net.minecraft.util.Hand; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockRayTraceResult; import net.minecraft.util.text.ITextComponent; @@ -29,8 +30,8 @@ public class WorldshaperItem extends ZapperItem { @Override @OnlyIn(value = Dist.CLIENT) - protected void openHandgunGUI(ItemStack item, boolean b) { - ScreenOpener.open(new WorldshaperScreen(item, b)); + protected void openHandgunGUI(ItemStack item, Hand hand) { + ScreenOpener.open(new WorldshaperScreen(item, hand)); } @Override @@ -82,4 +83,13 @@ public class WorldshaperItem extends ZapperItem { return true; } + public static void configureSettings(ItemStack stack, PlacementPatterns pattern, TerrainBrushes brush, int brushParamX, int brushParamY, int brushParamZ, TerrainTools tool, PlacementOptions placement) { + ZapperItem.configureSettings(stack, pattern); + CompoundNBT nbt = stack.getOrCreateTag(); + NBTHelper.writeEnum(nbt, "Brush", brush); + nbt.put("BrushParams", NBTUtil.writeBlockPos(new BlockPos(brushParamX, brushParamY, brushParamZ))); + nbt.putString("Tool", tool.name()); + nbt.putString("Placement", placement.name()); + } + } diff --git a/src/main/java/com/simibubi/create/content/curiosities/zapper/terrainzapper/WorldshaperScreen.java b/src/main/java/com/simibubi/create/content/curiosities/zapper/terrainzapper/WorldshaperScreen.java index 2203efdca..cc970b875 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/zapper/terrainzapper/WorldshaperScreen.java +++ b/src/main/java/com/simibubi/create/content/curiosities/zapper/terrainzapper/WorldshaperScreen.java @@ -4,6 +4,7 @@ import java.util.List; import java.util.Vector; import com.mojang.blaze3d.matrix.MatrixStack; +import com.simibubi.create.content.curiosities.zapper.ConfigureZapperPacket; import com.simibubi.create.content.curiosities.zapper.ZapperScreen; import com.simibubi.create.foundation.gui.AllGuiTextures; import com.simibubi.create.foundation.gui.AllIcons; @@ -16,13 +17,14 @@ import com.simibubi.create.foundation.gui.widgets.SelectionScrollInput; import com.simibubi.create.foundation.utility.Lang; import com.simibubi.create.foundation.utility.NBTHelper; -import net.minecraft.client.Minecraft; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; import net.minecraft.nbt.NBTUtil; +import net.minecraft.util.Hand; import net.minecraft.util.math.BlockPos; import net.minecraft.util.text.ITextComponent; import net.minecraft.util.text.StringTextComponent; +import net.minecraftforge.common.util.Constants; public class WorldshaperScreen extends ZapperScreen { @@ -36,20 +38,41 @@ public class WorldshaperScreen extends ZapperScreen { protected ScrollInput brushInput; protected Label brushLabel; - protected Vector brushParams; - protected Vector