Bug Fixes, Updated zh_cn localization

- Mechanical Crafter JEI no longer adds other mods' custom crafting recipe types, addresses #114
- Potential fix for #125
- Blacklisted a few entities from contraption collision, addresses #120
- Contraption Entities no longer spawn water particles, addresses #107
- Fixed floating point errors in RSC, addresses #118
- Added rendering safety check for belts, addresses #108
- Update Chinese translation
This commit is contained in:
simibubi 2020-03-25 23:42:38 +01:00
parent f9b9659bc6
commit 30bb98468f
13 changed files with 1330 additions and 706 deletions

View file

@ -133,12 +133,12 @@ public class CreateJEI implements IModPlugin {
registration.addRecipes(findRecipes( registration.addRecipes(findRecipes(
r -> (r instanceof MechanicalCraftingRecipe) && MechanicalCraftingCategory.isSmall((ShapedRecipe) r)), r -> (r instanceof MechanicalCraftingRecipe) && MechanicalCraftingCategory.isSmall((ShapedRecipe) r)),
smallMechanicalCraftingCategory.getUid()); smallMechanicalCraftingCategory.getUid());
registration.addRecipes( registration.addRecipes(findRecipes(r -> r.getType() == IRecipeType.CRAFTING && (r instanceof ShapedRecipe)
findRecipes(r -> (r instanceof ShapedRecipe) && !(r instanceof MechanicalCraftingRecipe) && !(r instanceof MechanicalCraftingRecipe) && MechanicalCraftingCategory.isSmall((ShapedRecipe) r)),
&& MechanicalCraftingCategory.isSmall((ShapedRecipe) r)),
smallMechanicalCraftingCategory.getUid()); smallMechanicalCraftingCategory.getUid());
registration.addRecipes( registration.addRecipes(
findRecipes(r -> (r instanceof ShapedRecipe) && !MechanicalCraftingCategory.isSmall((ShapedRecipe) r)), findRecipes(r -> r.getType() == IRecipeType.CRAFTING && (r instanceof ShapedRecipe)
&& !MechanicalCraftingCategory.isSmall((ShapedRecipe) r)),
largeMechanicalCraftingCategory.getUid()); largeMechanicalCraftingCategory.getUid());
} }

View file

@ -20,6 +20,7 @@ import com.simibubi.create.modules.contraptions.relays.encased.SplitShaftTileEnt
import com.simibubi.create.modules.contraptions.relays.gearbox.GearboxTileEntity; import com.simibubi.create.modules.contraptions.relays.gearbox.GearboxTileEntity;
import net.minecraft.block.BlockState; import net.minecraft.block.BlockState;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.Direction; import net.minecraft.util.Direction;
import net.minecraft.util.Direction.Axis; import net.minecraft.util.Direction.Axis;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
@ -95,12 +96,6 @@ public class RotationPropagator {
if (isLargeToSmallGear(stateTo, stateFrom, diff)) if (isLargeToSmallGear(stateTo, stateFrom, diff))
return -.5f; return -.5f;
// Rotation Speed Controller <-> Large Gear
if (isLargeGearToSpeedController(stateFrom, stateTo, diff))
return SpeedControllerTileEntity.getSpeedModifier(from, to, true);
if (isLargeGearToSpeedController(stateTo, stateFrom, diff))
return SpeedControllerTileEntity.getSpeedModifier(to, from, false);
// Gear <-> Gear // Gear <-> Gear
if (connectedByGears) { if (connectedByGears) {
if (diff.manhattanDistance(BlockPos.ZERO) != 1) if (diff.manhattanDistance(BlockPos.ZERO) != 1)
@ -114,6 +109,20 @@ public class RotationPropagator {
return 0; return 0;
} }
private static float getConveyedSpeed(KineticTileEntity from, KineticTileEntity to) {
final BlockState stateFrom = from.getBlockState();
final BlockState stateTo = to.getBlockState();
final BlockPos diff = to.getPos().subtract(from.getPos());
// Rotation Speed Controller <-> Large Gear
if (isLargeGearToSpeedController(stateFrom, stateTo, diff))
return SpeedControllerTileEntity.getConveyedSpeed(from, to, true);
if (isLargeGearToSpeedController(stateTo, stateFrom, diff))
return SpeedControllerTileEntity.getConveyedSpeed(to, from, false);
return from.getTheoreticalSpeed() * getRotationSpeedModifier(from, to);
}
private static boolean isLargeToLargeGear(BlockState from, BlockState to, BlockPos diff) { private static boolean isLargeToLargeGear(BlockState from, BlockState to, BlockPos diff) {
if (!LARGE_COGWHEEL.typeOf(from) || !LARGE_COGWHEEL.typeOf(to)) if (!LARGE_COGWHEEL.typeOf(from) || !LARGE_COGWHEEL.typeOf(to))
return false; return false;
@ -184,31 +193,7 @@ public class RotationPropagator {
return; return;
if (!worldIn.isBlockPresent(pos)) if (!worldIn.isBlockPresent(pos))
return; return;
if (addedTE.getTheoreticalSpeed() != 0) {
propagateNewSource(addedTE); propagateNewSource(addedTE);
return;
}
for (KineticTileEntity neighbourTE : getConnectedNeighbours(addedTE)) {
final float speedModifier = getRotationSpeedModifier(neighbourTE, addedTE);
float neighbourSpeed = neighbourTE.getTheoreticalSpeed();
if (neighbourSpeed == 0)
continue;
if (neighbourTE.hasSource() && neighbourTE.source.equals(addedTE.getPos())) {
addedTE.setSpeed(neighbourSpeed * speedModifier);
addedTE.onSpeedChanged(0);
addedTE.sendData();
continue;
}
addedTE.setSpeed(neighbourSpeed * speedModifier);
addedTE.setSource(neighbourTE.getPos());
addedTE.onSpeedChanged(0);
addedTE.sendData();
propagateNewSource(addedTE);
return;
}
} }
/** /**
@ -221,12 +206,10 @@ public class RotationPropagator {
World world = currentTE.getWorld(); World world = currentTE.getWorld();
for (KineticTileEntity neighbourTE : getConnectedNeighbours(currentTE)) { for (KineticTileEntity neighbourTE : getConnectedNeighbours(currentTE)) {
float modFromTo = getRotationSpeedModifier(currentTE, neighbourTE);
float modToFrom = getRotationSpeedModifier(neighbourTE, currentTE);
float speedOfCurrent = currentTE.getTheoreticalSpeed(); float speedOfCurrent = currentTE.getTheoreticalSpeed();
float speedOfNeighbour = neighbourTE.getTheoreticalSpeed(); float speedOfNeighbour = neighbourTE.getTheoreticalSpeed();
float newSpeed = speedOfCurrent * modFromTo; float newSpeed = getConveyedSpeed(currentTE, neighbourTE);
float oppositeSpeed = speedOfNeighbour * modToFrom; float oppositeSpeed = getConveyedSpeed(neighbourTE, currentTE);
boolean incompatible = boolean incompatible =
Math.signum(newSpeed) != Math.signum(speedOfNeighbour) && (newSpeed != 0 && speedOfNeighbour != 0); Math.signum(newSpeed) != Math.signum(speedOfNeighbour) && (newSpeed != 0 && speedOfNeighbour != 0);
@ -249,7 +232,7 @@ public class RotationPropagator {
// Neighbour faster, overpower the incoming tree // Neighbour faster, overpower the incoming tree
if (Math.abs(oppositeSpeed) > Math.abs(speedOfCurrent)) { if (Math.abs(oppositeSpeed) > Math.abs(speedOfCurrent)) {
float prevSpeed = currentTE.getSpeed(); float prevSpeed = currentTE.getSpeed();
currentTE.setSpeed(speedOfNeighbour * getRotationSpeedModifier(neighbourTE, currentTE)); currentTE.setSpeed(oppositeSpeed);
currentTE.setSource(neighbourTE.getPos()); currentTE.setSource(neighbourTE.getPos());
currentTE.onSpeedChanged(prevSpeed); currentTE.onSpeedChanged(prevSpeed);
currentTE.sendData(); currentTE.sendData();
@ -272,7 +255,7 @@ public class RotationPropagator {
currentTE.removeSource(); currentTE.removeSource();
float prevSpeed = neighbourTE.getSpeed(); float prevSpeed = neighbourTE.getSpeed();
neighbourTE.setSpeed(speedOfCurrent * getRotationSpeedModifier(currentTE, neighbourTE)); neighbourTE.setSpeed(newSpeed);
neighbourTE.setSource(currentTE.getPos()); neighbourTE.setSource(currentTE.getPos());
neighbourTE.onSpeedChanged(prevSpeed); neighbourTE.onSpeedChanged(prevSpeed);
neighbourTE.sendData(); neighbourTE.sendData();
@ -370,17 +353,33 @@ public class RotationPropagator {
} }
} }
private static KineticTileEntity findConnectedNeighbour(KineticTileEntity te, BlockPos neighbourPos) { private static KineticTileEntity findConnectedNeighbour(KineticTileEntity currentTE, BlockPos neighbourPos) {
BlockState neighbourState = te.getWorld().getBlockState(neighbourPos); BlockState neighbourState = currentTE.getWorld().getBlockState(neighbourPos);
if (!(neighbourState.getBlock() instanceof IRotate)) if (!(neighbourState.getBlock() instanceof IRotate))
return null; return null;
if (!neighbourState.hasTileEntity()) if (!neighbourState.hasTileEntity())
return null; return null;
TileEntity neighbourTE = currentTE.getWorld().getTileEntity(neighbourPos);
KineticTileEntity neighbour = (KineticTileEntity) te.getWorld().getTileEntity(neighbourPos); if (!(neighbourTE instanceof KineticTileEntity))
if (getRotationSpeedModifier(te, neighbour) == 0)
return null; return null;
return neighbour; KineticTileEntity neighbourKTE = (KineticTileEntity) neighbourTE;
if (!(neighbourKTE.getBlockState().getBlock() instanceof IRotate))
return null;
if (!isConnected(currentTE, neighbourKTE))
return null;
return neighbourKTE;
}
public static boolean isConnected(KineticTileEntity from, KineticTileEntity to) {
final BlockState stateFrom = from.getBlockState();
final BlockState stateTo = to.getBlockState();
final BlockPos diff = to.getPos().subtract(from.getPos());
if (isLargeGearToSpeedController(stateFrom, stateTo, diff))
return true;
if (isLargeGearToSpeedController(stateTo, stateFrom, diff))
return true;
return getRotationSpeedModifier(from, to) != 0;
} }
private static List<KineticTileEntity> getConnectedNeighbours(KineticTileEntity te) { private static List<KineticTileEntity> getConnectedNeighbours(KineticTileEntity te) {

View file

@ -68,9 +68,9 @@ public interface IRotate extends IWrenchable {
String level = color + ItemDescription.makeProgressBar(3, speedLevel.ordinal()); String level = color + ItemDescription.makeProgressBar(3, speedLevel.ordinal());
if (speedLevel == SpeedLevel.MEDIUM) if (speedLevel == SpeedLevel.MEDIUM)
level += Lang.translate("tooltip.speedRequirements.medium"); level += Lang.translate("tooltip.speedRequirement.medium");
if (speedLevel == SpeedLevel.FAST) if (speedLevel == SpeedLevel.FAST)
level += Lang.translate("tooltip.speedRequirements.high"); level += Lang.translate("tooltip.speedRequirement.high");
level += String.format(" (%s%s) ", IHaveGoggleInformation.format(Math.abs(speed)), Lang.translate("generic.unit.rpm")); level += String.format(" (%s%s) ", IHaveGoggleInformation.format(Math.abs(speed)), Lang.translate("generic.unit.rpm"));

View file

@ -11,6 +11,7 @@ import net.minecraft.block.material.PushReaction;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityType; import net.minecraft.entity.EntityType;
import net.minecraft.entity.IProjectile;
import net.minecraft.entity.MoverType; import net.minecraft.entity.MoverType;
import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.util.Direction; import net.minecraft.util.Direction;
@ -52,7 +53,7 @@ public class ContraptionCollider {
return; return;
for (Entity entity : world.getEntitiesWithinAABB((EntityType<?>) null, bounds.grow(1), for (Entity entity : world.getEntitiesWithinAABB((EntityType<?>) null, bounds.grow(1),
e -> e.getPushReaction() == PushReaction.NORMAL)) { e -> canBeCollidedWith(e))) {
ReuseableStream<VoxelShape> potentialHits = ReuseableStream<VoxelShape> potentialHits =
getPotentiallyCollidedShapes(world, contraption, contraptionPosition, entity); getPotentiallyCollidedShapes(world, contraption, contraptionPosition, entity);
@ -88,6 +89,16 @@ public class ContraptionCollider {
} }
public static boolean canBeCollidedWith(Entity e) {
if (e instanceof PlayerEntity && e.isSpectator())
return false;
if (e.noClip)
return false;
if (e instanceof IProjectile)
return false;
return e.getPushReaction() == PushReaction.NORMAL;
}
@OnlyIn(Dist.CLIENT) @OnlyIn(Dist.CLIENT)
private static void checkForClientPlayerCollision(Entity entity) { private static void checkForClientPlayerCollision(Entity entity) {
if (entity != Minecraft.getInstance().player) if (entity != Minecraft.getInstance().player)

View file

@ -54,7 +54,6 @@ public class ContraptionEntity extends Entity implements IEntityAdditionalSpawnD
protected Contraption contraption; protected Contraption contraption;
protected float initialAngle; protected float initialAngle;
protected BlockPos controllerPos; protected BlockPos controllerPos;
protected IControlContraption controllerTE;
protected Vec3d motionBeforeStall; protected Vec3d motionBeforeStall;
protected boolean stationary; protected boolean stationary;
@ -103,12 +102,22 @@ public class ContraptionEntity extends Entity implements IEntityAdditionalSpawnD
public <T extends TileEntity & IControlContraption> ContraptionEntity controlledBy(T controller) { public <T extends TileEntity & IControlContraption> ContraptionEntity controlledBy(T controller) {
this.controllerPos = controller.getPos(); this.controllerPos = controller.getPos();
this.controllerTE = controller;
return this; return this;
} }
private IControlContraption getController() {
if (controllerPos == null)
return null;
if (!world.isBlockPresent(controllerPos))
return null;
TileEntity te = world.getTileEntity(controllerPos);
if (!(te instanceof IControlContraption))
return null;
return (IControlContraption) te;
}
public boolean collisionEnabled() { public boolean collisionEnabled() {
return stationary && controllerTE instanceof LinearActuatorTileEntity; return getController() instanceof LinearActuatorTileEntity;
} }
@Override @Override
@ -118,7 +127,7 @@ public class ContraptionEntity extends Entity implements IEntityAdditionalSpawnD
return; return;
} }
attachToController(); checkController();
Entity mountedEntity = getRidingEntity(); Entity mountedEntity = getRidingEntity();
if (mountedEntity != null) { if (mountedEntity != null) {
@ -131,7 +140,7 @@ public class ContraptionEntity extends Entity implements IEntityAdditionalSpawnD
move(getMotion().x, getMotion().y, getMotion().z); move(getMotion().x, getMotion().y, getMotion().z);
if (ContraptionCollider.collideBlocks(this)) if (ContraptionCollider.collideBlocks(this))
controllerTE.collided(); getController().collided();
tickActors(new Vec3d(posX - prevPosX, posY - prevPosY, posZ - prevPosZ)); tickActors(new Vec3d(posX - prevPosX, posY - prevPosY, posZ - prevPosZ));
@ -256,8 +265,8 @@ public class ContraptionEntity extends Entity implements IEntityAdditionalSpawnD
if (!world.isRemote) { if (!world.isRemote) {
if (!stalledPreviously && contraption.stalled) { if (!stalledPreviously && contraption.stalled) {
setMotion(Vec3d.ZERO); setMotion(Vec3d.ZERO);
if (controllerTE != null) if (getController() != null)
controllerTE.onStall(); getController().onStall();
AllPackets.channel.send(PacketDistributor.TRACKING_ENTITY.with(() -> this), AllPackets.channel.send(PacketDistributor.TRACKING_ENTITY.with(() -> this),
new ContraptionStallPacket(getEntityId(), posX, posY, posZ, yaw, pitch, roll)); new ContraptionStallPacket(getEntityId(), posX, posY, posZ, yaw, pitch, roll));
} }
@ -368,23 +377,22 @@ public class ContraptionEntity extends Entity implements IEntityAdditionalSpawnD
controllerPos = NBTUtil.readBlockPos(compound.getCompound("Controller")); controllerPos = NBTUtil.readBlockPos(compound.getCompound("Controller"));
} }
public void attachToController() { public void checkController() {
if (controllerPos != null && (controllerTE == null || !controllerTE.isValid())) { if (controllerPos == null)
return;
if (!world.isBlockPresent(controllerPos)) if (!world.isBlockPresent(controllerPos))
return; return;
TileEntity te = world.getTileEntity(controllerPos); IControlContraption controller = getController();
if (te == null || !(te instanceof IControlContraption)) { if (controller == null) {
remove(); remove();
return; return;
} }
IControlContraption controllerTE = (IControlContraption) te; if (controller.isAttachedTo(this))
this.controllerTE = controllerTE; return;
controllerTE.attach(this); controller.attach(this);
if (world.isRemote) if (world.isRemote)
setPosition(posX, posY, posZ); setPosition(posX, posY, posZ);
} }
}
@Override @Override
protected void writeAdditional(CompoundNBT compound) { protected void writeAdditional(CompoundNBT compound) {
@ -425,6 +433,10 @@ public class ContraptionEntity extends Entity implements IEntityAdditionalSpawnD
remove(); remove();
} }
@Override
protected void doWaterSplashEffect() {
}
public void preventMovedEntitiesFromGettingStuck() { public void preventMovedEntitiesFromGettingStuck() {
Vec3d stuckTest = new Vec3d(0, -2, 0); Vec3d stuckTest = new Vec3d(0, -2, 0);
for (Entity e : collidingEntities) { for (Entity e : collidingEntities) {

View file

@ -6,6 +6,8 @@ import com.simibubi.create.foundation.utility.Lang;
public interface IControlContraption { public interface IControlContraption {
public boolean isAttachedTo(ContraptionEntity contraption);
public void attach(ContraptionEntity contraption); public void attach(ContraptionEntity contraption);
public void onStall(); public void onStall();

View file

@ -203,7 +203,9 @@ public class ClockworkBearingTileEntity extends KineticTileEntity implements IBe
@Override @Override
public void attach(ContraptionEntity contraption) { public void attach(ContraptionEntity contraption) {
if (contraption.getContraption() instanceof ClockworkContraption) { if (!(contraption.getContraption() instanceof ClockworkContraption))
return;
ClockworkContraption cc = (ClockworkContraption) contraption.getContraption(); ClockworkContraption cc = (ClockworkContraption) contraption.getContraption();
markDirty(); markDirty();
Direction facing = getBlockState().get(BlockStateProperties.FACING); Direction facing = getBlockState().get(BlockStateProperties.FACING);
@ -218,7 +220,6 @@ public class ClockworkBearingTileEntity extends KineticTileEntity implements IBe
if (!world.isRemote) if (!world.isRemote)
sendData(); sendData();
} }
}
@Override @Override
public CompoundNBT write(CompoundNBT tag) { public CompoundNBT write(CompoundNBT tag) {
@ -287,4 +288,15 @@ public class ClockworkBearingTileEntity extends KineticTileEntity implements IBe
public void collided() { public void collided() {
} }
@Override
public boolean isAttachedTo(ContraptionEntity contraption) {
if (!(contraption.getContraption() instanceof ClockworkContraption))
return false;
ClockworkContraption cc = (ClockworkContraption) contraption.getContraption();
if (cc.handType == HandType.HOUR)
return this.hourHand == contraption;
else
return this.minuteHand == contraption;
}
} }

View file

@ -1,5 +1,7 @@
package com.simibubi.create.modules.contraptions.components.contraptions.bearing; package com.simibubi.create.modules.contraptions.components.contraptions.bearing;
import static net.minecraft.state.properties.BlockStateProperties.FACING;
import java.util.List; import java.util.List;
import com.simibubi.create.AllTileEntities; import com.simibubi.create.AllTileEntities;
@ -14,8 +16,8 @@ import com.simibubi.create.modules.contraptions.components.contraptions.Contrapt
import com.simibubi.create.modules.contraptions.components.contraptions.ContraptionEntity; import com.simibubi.create.modules.contraptions.components.contraptions.ContraptionEntity;
import com.simibubi.create.modules.contraptions.components.contraptions.DirectionalExtenderScrollOptionSlot; import com.simibubi.create.modules.contraptions.components.contraptions.DirectionalExtenderScrollOptionSlot;
import net.minecraft.block.BlockState;
import net.minecraft.nbt.CompoundNBT; import net.minecraft.nbt.CompoundNBT;
import net.minecraft.state.properties.BlockStateProperties;
import net.minecraft.util.Direction; import net.minecraft.util.Direction;
import net.minecraft.util.Direction.Axis; import net.minecraft.util.Direction.Axis;
import net.minecraft.util.Direction.AxisDirection; import net.minecraft.util.Direction.AxisDirection;
@ -145,7 +147,7 @@ public class MechanicalBearingTileEntity extends GeneratingKineticTileEntity imp
} }
public void assemble() { public void assemble() {
Direction direction = getBlockState().get(BlockStateProperties.FACING); Direction direction = getBlockState().get(FACING);
// Collect Construct // Collect Construct
BearingContraption contraption = BearingContraption.assembleBearingAt(world, pos, direction); BearingContraption contraption = BearingContraption.assembleBearingAt(world, pos, direction);
@ -237,7 +239,7 @@ public class MechanicalBearingTileEntity extends GeneratingKineticTileEntity imp
protected void applyRotation() { protected void applyRotation() {
if (movedContraption != null) { if (movedContraption != null) {
Axis axis = getBlockState().get(BlockStateProperties.FACING).getAxis(); Axis axis = getBlockState().get(FACING).getAxis();
Direction direction = Direction.getFacingFromAxis(AxisDirection.POSITIVE, axis); Direction direction = Direction.getFacingFromAxis(AxisDirection.POSITIVE, axis);
Vec3d vec = new Vec3d(1, 1, 1).scale(angle).mul(new Vec3d(direction.getDirectionVec())); Vec3d vec = new Vec3d(1, 1, 1).scale(angle).mul(new Vec3d(direction.getDirectionVec()));
movedContraption.rotateTo(vec.x, vec.y, vec.z); movedContraption.rotateTo(vec.x, vec.y, vec.z);
@ -246,15 +248,19 @@ public class MechanicalBearingTileEntity extends GeneratingKineticTileEntity imp
@Override @Override
public void attach(ContraptionEntity contraption) { public void attach(ContraptionEntity contraption) {
if (contraption.getContraption() instanceof BearingContraption) { BlockState blockState = getBlockState();
if (!(contraption.getContraption() instanceof BearingContraption))
return;
if (!blockState.has(FACING))
return;
this.movedContraption = contraption; this.movedContraption = contraption;
markDirty(); markDirty();
BlockPos anchor = pos.offset(getBlockState().get(BlockStateProperties.FACING)); BlockPos anchor = pos.offset(blockState.get(FACING));
movedContraption.setPosition(anchor.getX(), anchor.getY(), anchor.getZ()); movedContraption.setPosition(anchor.getX(), anchor.getY(), anchor.getZ());
if (!world.isRemote) if (!world.isRemote)
sendData(); sendData();
} }
}
@Override @Override
public void onStall() { public void onStall() {
@ -279,4 +285,9 @@ public class MechanicalBearingTileEntity extends GeneratingKineticTileEntity imp
public void collided() { public void collided() {
} }
@Override
public boolean isAttachedTo(ContraptionEntity contraption) {
return movedContraption == contraption;
}
} }

View file

@ -297,4 +297,9 @@ public abstract class LinearActuatorTileEntity extends KineticTileEntity impleme
sendData(); sendData();
} }
@Override
public boolean isAttachedTo(ContraptionEntity contraption) {
return movedContraption == contraption;
}
} }

View file

@ -31,8 +31,8 @@ public class SpeedControllerTileEntity extends KineticTileEntity {
super.addBehaviours(behaviours); super.addBehaviours(behaviours);
Integer max = AllConfigs.SERVER.kinetics.maxRotationSpeed.get(); Integer max = AllConfigs.SERVER.kinetics.maxRotationSpeed.get();
targetSpeed = new ScrollValueBehaviour(Lang.translate("generic.speed"), this, targetSpeed =
new ControllerValueBoxTransform()); new ScrollValueBehaviour(Lang.translate("generic.speed"), this, new ControllerValueBoxTransform());
targetSpeed.between(-max, max); targetSpeed.between(-max, max);
targetSpeed.value = DEFAULT_SPEED; targetSpeed.value = DEFAULT_SPEED;
targetSpeed.moveText(new Vec3d(9, 0, 10)); targetSpeed.moveText(new Vec3d(9, 0, 10));
@ -55,37 +55,37 @@ public class SpeedControllerTileEntity extends KineticTileEntity {
return false; return false;
} }
public static float getSpeedModifier(KineticTileEntity cogWheel, KineticTileEntity speedControllerIn, public static float getConveyedSpeed(KineticTileEntity cogWheel, KineticTileEntity speedControllerIn,
boolean targetingController) { boolean targetingController) {
if (!(speedControllerIn instanceof SpeedControllerTileEntity)) if (!(speedControllerIn instanceof SpeedControllerTileEntity))
return 1; return 0;
SpeedControllerTileEntity speedController = (SpeedControllerTileEntity) speedControllerIn; SpeedControllerTileEntity speedController = (SpeedControllerTileEntity) speedControllerIn;
float targetSpeed = speedController.targetSpeed.getValue(); float targetSpeed = speedController.targetSpeed.getValue();
float speed = speedControllerIn.getSpeed(); float speed = speedControllerIn.getSpeed();
float wheelSpeed = cogWheel.getTheoreticalSpeed();
if (targetSpeed == 0) if (targetSpeed == 0)
return 0; return 0;
float wheelSpeed = cogWheel.getTheoreticalSpeed();
if (targetingController && wheelSpeed == 0) if (targetingController && wheelSpeed == 0)
return 1; return 0;
if (!speedController.hasSource()) { if (!speedController.hasSource()) {
if (targetingController) if (targetingController)
return targetSpeed / wheelSpeed; return targetSpeed;
return 1; return 0;
} }
boolean wheelPowersController = speedController.source.equals(cogWheel.getPos()); boolean wheelPowersController = speedController.source.equals(cogWheel.getPos());
if (wheelPowersController) { if (wheelPowersController) {
if (targetingController) if (targetingController)
return targetSpeed / wheelSpeed; return targetSpeed;
return wheelSpeed / targetSpeed; return wheelSpeed;
} }
if (targetingController) if (targetingController)
return speed / targetSpeed; return speed;
return targetSpeed / speed; return targetSpeed;
} }
private class ControllerValueBoxTransform extends ValueBoxTransform.Sided { private class ControllerValueBoxTransform extends ValueBoxTransform.Sided {

View file

@ -1,6 +1,5 @@
package com.simibubi.create.modules.contraptions.relays.belt; package com.simibubi.create.modules.contraptions.relays.belt;
import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
@ -55,7 +54,6 @@ import net.minecraft.util.math.shapes.VoxelShape;
import net.minecraft.world.IBlockReader; import net.minecraft.world.IBlockReader;
import net.minecraft.world.IWorldReader; import net.minecraft.world.IWorldReader;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraft.world.storage.loot.LootParameter;
import net.minecraft.world.storage.loot.LootParameters; import net.minecraft.world.storage.loot.LootParameters;
import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.api.distmarker.OnlyIn;

View file

@ -13,6 +13,8 @@ class BeltColor implements IBlockColor {
@Override @Override
public int getColor(BlockState state, IEnviromentBlockReader reader, BlockPos pos, int layer) { public int getColor(BlockState state, IEnviromentBlockReader reader, BlockPos pos, int layer) {
if (reader == null)
return 0;
TileEntity tileEntity = reader.getTileEntity(pos); TileEntity tileEntity = reader.getTileEntity(pos);
if (tileEntity instanceof BeltTileEntity) { if (tileEntity instanceof BeltTileEntity) {
BeltTileEntity te = (BeltTileEntity) tileEntity; BeltTileEntity te = (BeltTileEntity) tileEntity;

View file

@ -4,39 +4,84 @@
"item.create.symmetry_wand": "对称法杖", "item.create.symmetry_wand": "对称法杖",
"item.create.placement_handgun": "手持式方块放置器", "item.create.placement_handgun": "手持式方块放置器",
"item.create.terrain_zapper": "手持式环境塑形器",
"item.create.tree_fertilizer": "树木肥料", "item.create.tree_fertilizer": "树木肥料",
"item.create.empty_blueprint": "空白原理图", "item.create.empty_blueprint": "空白原理图",
"item.create.andesite_alloy_cube": "安山合金", "item.create.andesite_alloy": "安山合金",
"item.create.blaze_brass_cube": "烈焰合金", "item.create.chromatic_compound": "谜之化合物",
"item.create.chorus_chrome_cube": "紫颂合金", "item.create.shadow_steel": "暗影金属",
"item.create.chromatic_compound_cube": "Chromatic Compound",
"item.create.shadow_steel_cube": "Shadow Steel",
"item.create.blueprint_and_quill": "原理图与笔", "item.create.blueprint_and_quill": "原理图与笔",
"item.create.blueprint": "原理图", "item.create.blueprint": "原理图",
"item.create.belt_connector": "传送带", "item.create.belt_connector": "传送带",
"item.create.filter": "Filter", "item.create.goggles": "工程师护目镜",
"item.create.rose_quartz": "Rose Quartz", "item.create.filter": "过滤器",
"item.create.refined_rose_quartz": "Refined Rose Quartz", "item.create.property_filter": "属性过滤器",
"item.create.refined_radiance_cube": "Refined Radiance", "item.create.logistical_filter": "Address Filter",
"item.create.rose_quartz": "玫瑰石英",
"item.create.polished_rose_quartz": "磨制玫瑰石英",
"item.create.refined_radiance": "光辉石",
"item.create.iron_sheet": "铁板", "item.create.iron_sheet": "铁板",
"item.create.gold_sheet": "金板", "item.create.gold_sheet": "金板",
"item.create.lapis_plate": "青金石电镀版",
"item.create.obsidian_dust": "黑曜石粉",
"item.create.propeller": "扇叶", "item.create.propeller": "扇叶",
"item.create.whisk": "搅拌器",
"item.create.brass_hand": "机械手部零件",
"item.create.slot_cover": "制造器盖板",
"item.create.zinc_handle": "锌工具手柄",
"item.create.flour": "小麦粉", "item.create.flour": "小麦粉",
"item.create.dough": "面团", "item.create.dough": "面团",
"item.create.wrench": "扳手",
"item.create.deforester": "树林毁灭者",
"item.create.crushed_iron": "碎铁矿",
"item.create.crushed_gold": "碎金矿",
"item.create.sand_paper": "砂纸",
"item.create.red_sand_paper": "红砂纸",
"item.create.blazing_pickaxe": "Blazing Pickaxe", "item.create.brass_ingot": "黄铜锭",
"item.create.blazing_shovel": "Blazing Shovel", "item.create.brass_sheet": "黄铜板",
"item.create.blazing_axe": "Blazing Axe", "item.create.brass_nugget": "黄铜粒",
"item.create.blazing_sword": "Blazing Longsword", "item.create.crushed_brass": "碎黄铜",
"item.create.zinc_ingot": "锌锭",
"item.create.zinc_nugget": "锌粒",
"item.create.crushed_zinc": "碎锌",
"item.create.copper_sheet": "铜板",
"item.create.copper_ingot": "铜锭",
"item.create.copper_nugget": "铜粒",
"item.create.crushed_copper": "碎铜",
"item.create.shadow_steel_pickaxe": "Shadow Steel Pickaxe", "item.create.electron_tube": "电子管",
"item.create.shadow_steel_mattock": "Shadow Steel Garden Mattock", "item.create.integrated_circuit": "集成电路",
"item.create.shadow_steel_sword": "Shadow Steel Sword",
"item.create.rose_quartz_pickaxe": "Gilded Quartz Pickaxe", "item.create.logistical_controller_supply": "Item Supply",
"item.create.rose_quartz_shovel": "Gilded Quartz Shovel", "item.create.logistical_controller_request": "Item Request",
"item.create.rose_quartz_axe": "Gilded Quartz Axe", "item.create.logistical_controller_storage": "Item Storage",
"item.create.rose_quartz_sword": "Gilded Quartz Blade", "item.create.logistical_controller_calculation": "Ingredient Calculator",
"item.create.logistical_controller_transactions": "Task Manager",
"item.create.logistical_dial": "Logistical Dial",
"item.create.blazing_pickaxe": "烈焰稿",
"item.create.blazing_shovel": "烈焰铲",
"item.create.blazing_axe": "烈焰斧",
"item.create.blazing_sword": "烈焰长剑",
"item.create.shadow_steel_pickaxe": "暗影金属稿",
"item.create.shadow_steel_mattock": "暗影金属鹤嘴锄",
"item.create.shadow_steel_sword": "暗影金属剑",
"item.create.rose_quartz_pickaxe": "玫瑰石英稿",
"item.create.rose_quartz_shovel": "玫瑰石英铲",
"item.create.rose_quartz_axe": "玫瑰石英斧",
"item.create.rose_quartz_sword": "玫瑰石英剑",
"block.create.copper_ore": "铜矿",
"block.create.copper_block": "铜块",
"block.create.copper_shingles": "铜瓦堆",
"block.create.zinc_ore": "锌矿",
"block.create.andesite_casing": "安山箱",
"block.create.brass_casing": "黄铜箱",
"block.create.copper_casing": "铜箱",
"block.create.cogwheel": "齿轮", "block.create.cogwheel": "齿轮",
"block.create.large_cogwheel": "大齿轮", "block.create.large_cogwheel": "大齿轮",
@ -48,20 +93,40 @@
"block.create.encased_belt": "连携齿轮箱", "block.create.encased_belt": "连携齿轮箱",
"block.create.encased_shaft": "齿轮箱", "block.create.encased_shaft": "齿轮箱",
"block.create.encased_fan": "鼓风机", "block.create.encased_fan": "鼓风机",
"block.create.motor": "动力马达", "block.create.adjustable_pulley": "高级连携齿轮箱",
"block.create.belt": "Mechanical Belt", "block.create.nozzle": "分散网",
"block.create.hand_crank": "曲柄",
"block.create.cuckoo_clock": "布谷鸟鸣钟",
"block.create.creative_motor": "动力马达",
"block.create.belt": "传送带",
"block.create.crushing_wheel": "粉碎轮", "block.create.crushing_wheel": "粉碎轮",
"block.create.drill": "动力钻头", "block.create.drill": "动力钻头",
"block.create.portable_storage_interface": "移动式储物接口",
"block.create.harvester": "收割机", "block.create.harvester": "收割机",
"block.create.saw": "切割机",
"block.create.water_wheel": "水车", "block.create.water_wheel": "水车",
"block.create.belt_support": "传送带支撑",
"block.create.mechanical_press": "辊压机", "block.create.mechanical_press": "辊压机",
"block.create.mechanical_mixer": "搅拌器",
"block.create.deployer": "机械手",
"block.create.basin": "工作盆",
"block.create.mechanical_crafter": "机械制造机",
"block.create.flywheel": "飞轮",
"block.create.furnace_engine": "熔炉引擎",
"block.create.speed_gauge": "速度表",
"block.create.stress_gauge": "应力表",
"block.create.cart_assembler": "矿车装配器",
"block.create.analog_lever": "可调节推杆",
"block.create.rotation_speed_controller": "旋转速度控制器",
"block.create.sticky_mechanical_piston": "粘性动力活塞", "block.create.sticky_mechanical_piston": "粘性动力活塞",
"block.create.mechanical_piston": "动力活塞", "block.create.mechanical_piston": "动力活塞",
"block.create.mechanical_piston_head": "Mechanical Piston Head", "block.create.mechanical_piston_head": "Mechanical Piston Head",
"block.create.piston_pole": "活塞杆", "block.create.piston_pole": "活塞杆",
"block.create.mechanical_bearing": "动力轴承", "block.create.mechanical_bearing": "动力轴承",
"block.create.clockwork_bearing": "时钟轴承",
"block.create.rope_pulley": "绳索滑轮",
"block.create.rope": "Rope",
"block.create.pulley_magnet": "Pulley Magnet",
"block.create.translation_chassis": "机壳底盘", "block.create.translation_chassis": "机壳底盘",
"block.create.rotation_chassis": "旋转底盘", "block.create.rotation_chassis": "旋转底盘",
@ -72,13 +137,53 @@
"block.create.extractor": "提取器", "block.create.extractor": "提取器",
"block.create.belt_funnel": "传送带漏斗", "block.create.belt_funnel": "传送带漏斗",
"block.create.linked_extractor": "无线提取器", "block.create.linked_extractor": "无线提取器",
"block.create.transposer": "传输器",
"block.create.linked_transposer": "无线传输器",
"block.create.pulse_repeater": "脉冲中继器", "block.create.pulse_repeater": "脉冲中继器",
"block.create.flexpulsepeater": "高级脉冲中继器",
"block.create.redstone_latch": "锁存器",
"block.create.toggle_latch": "T触发器",
"block.create.flexpeater": "高级中继器", "block.create.flexpeater": "高级中继器",
"block.create.entity_detector": "传送带观察者", "block.create.entity_detector": "传送带观察者",
"block.create.logistical_casing": "Logistical Casing",
"block.create.logistical_controller": "Logistical Controller",
"block.create.logistical_index": "Logistical Index",
"block.create.logisticians_table": "Logistician's Table",
"block.create.package_funnel": "Package Funnel",
"block.create.belt_tunnel": "传送带隧道",
"block.create.sequenced_gearshift": "可编程齿轮箱",
"block.create.tiled_glass": "玻璃瓦",
"block.create.framed_glass": "大型玻璃窗",
"block.create.vertical_framed_glass": "竖直玻璃窗",
"block.create.horizontal_framed_glass": "水平玻璃窗",
"block.create.oak_glass": "橡木窗",
"block.create.spruce_glass": "云杉木窗",
"block.create.birch_glass": "桦木窗",
"block.create.jungle_glass": "从林木窗",
"block.create.dark_oak_glass": "深色橡木窗",
"block.create.acacia_glass": "合金欢木窗",
"block.create.iron_glass": "华丽的铁窗",
"block.create.tiled_glass_pane": "玻璃瓦片板",
"block.create.framed_glass_pane": "大型玻璃窗板",
"block.create.vertical_framed_glass_pane": "竖直玻璃窗板",
"block.create.horizontal_framed_glass_pane": "水平玻璃窗板",
"block.create.oak_glass_pane": "橡木窗板",
"block.create.spruce_glass_pane": "云杉木窗板",
"block.create.birch_glass_pane": "桦木窗板",
"block.create.jungle_glass_pane": "从林木窗板",
"block.create.dark_oak_glass_pane": "深色橡木窗板",
"block.create.acacia_glass_pane": "合金欢木窗板",
"block.create.iron_glass_pane": "华丽的铁窗板",
"block.create.window_in_a_block": "玻璃板块",
"block.create.andesite_bricks": "安山岩石砖", "block.create.andesite_bricks": "安山岩石砖",
"block.create.andesite_layers": "层叠安山岩",
"block.create.diorite_bricks": "闪长岩石砖", "block.create.diorite_bricks": "闪长岩石砖",
"block.create.diorite_layers": "层叠闪长岩",
"block.create.granite_bricks": "花岗岩石砖", "block.create.granite_bricks": "花岗岩石砖",
"block.create.granite_layers": "层叠花岗岩",
"block.create.gabbro": "辉长岩", "block.create.gabbro": "辉长岩",
"block.create.gabbro_stairs": "辉长岩楼梯", "block.create.gabbro_stairs": "辉长岩楼梯",
@ -94,6 +199,7 @@
"block.create.indented_gabbro_slab": "平滑辉长岩石砖台阶", "block.create.indented_gabbro_slab": "平滑辉长岩石砖台阶",
"block.create.slightly_mossy_gabbro_bricks": "辉长岩苔石砖", "block.create.slightly_mossy_gabbro_bricks": "辉长岩苔石砖",
"block.create.mossy_gabbro_bricks": "辉长岩苔藓石砖", "block.create.mossy_gabbro_bricks": "辉长岩苔藓石砖",
"block.create.gabbro_layers": "层叠辉长岩",
"block.create.weathered_limestone": "风化石灰石", "block.create.weathered_limestone": "风化石灰石",
"block.create.weathered_limestone_stairs": "风化石灰石楼梯", "block.create.weathered_limestone_stairs": "风化石灰石楼梯",
@ -106,6 +212,7 @@
"block.create.weathered_limestone_bricks_wall": "风化石灰石砖墙", "block.create.weathered_limestone_bricks_wall": "风化石灰石砖墙",
"block.create.weathered_limestone_bricks_slab": "风化石灰石砖台阶", "block.create.weathered_limestone_bricks_slab": "风化石灰石砖台阶",
"block.create.weathered_limestone_pillar": "风化石灰石柱", "block.create.weathered_limestone_pillar": "风化石灰石柱",
"block.create.weathered_limestone_layers": "层叠风化石灰石",
"block.create.dolomite_pillar": "白云岩柱", "block.create.dolomite_pillar": "白云岩柱",
"block.create.dolomite": "白云岩", "block.create.dolomite": "白云岩",
@ -117,7 +224,9 @@
"block.create.dolomite_bricks_stairs": "白云岩石砖楼梯", "block.create.dolomite_bricks_stairs": "白云岩石砖楼梯",
"block.create.dolomite_bricks_slab": "白云岩石砖台阶", "block.create.dolomite_bricks_slab": "白云岩石砖台阶",
"block.create.polished_dolomite": "磨制白云岩", "block.create.polished_dolomite": "磨制白云岩",
"block.create.dolomite_layers": "层叠白云岩",
"block.create.limesand": "石灰沙",
"block.create.limestone": "石灰石", "block.create.limestone": "石灰石",
"block.create.limestone_stairs": "石灰石楼梯", "block.create.limestone_stairs": "石灰石楼梯",
"block.create.limestone_slab": "石灰石台阶", "block.create.limestone_slab": "石灰石台阶",
@ -129,6 +238,28 @@
"block.create.polished_limestone": "磨制石灰石", "block.create.polished_limestone": "磨制石灰石",
"block.create.polished_limestone_slab": "磨制石灰石台阶", "block.create.polished_limestone_slab": "磨制石灰石台阶",
"block.create.limestone_pillar": "石灰石柱", "block.create.limestone_pillar": "石灰石柱",
"block.create.limestone_layers": "层叠石灰石",
"block.create.natural_scoria": "天然熔渣",
"block.create.scoria": "熔渣",
"block.create.scoria_stairs": "熔渣楼梯",
"block.create.scoria_slab": "熔渣台阶",
"block.create.scoria_wall": "熔渣墙",
"block.create.scoria_bricks": "熔渣砖块",
"block.create.polished_scoria": "磨制熔渣",
"block.create.polished_scoria_slab": "磨制熔渣台阶",
"block.create.scoria_pillar": "熔渣柱",
"block.create.scoria_layers": "层叠熔渣",
"block.create.dark_scoria": "深色熔渣",
"block.create.polished_dark_scoria": "磨制深色熔渣",
"block.create.dark_scoria_tiles": "深色熔渣瓦",
"block.create.dark_scoria_tiles_stairs": "深色熔渣瓦楼梯",
"block.create.dark_scoria_tiles_slab": "深色熔渣瓦台阶",
"block.create.dark_scoria_bricks": "深色熔渣砖",
"block.create.dark_scoria_bricks_stairs": "深色熔渣砖楼梯",
"block.create.dark_scoria_bricks_slab": "深色熔渣砖台阶",
"block.create.dark_scoria_bricks_wall": "深色熔渣砖墙",
"block.create.schematicannon": "加农炮", "block.create.schematicannon": "加农炮",
"block.create.schematic_table": "Schematic桌", "block.create.schematic_table": "Schematic桌",
@ -144,6 +275,10 @@
"death.attack.create.fan_fire": "%1$s 试图接受热风的洗礼", "death.attack.create.fan_fire": "%1$s 试图接受热风的洗礼",
"death.attack.create.fan_lava": "%1$s 在接受热风的洗礼中欲火焚身", "death.attack.create.fan_lava": "%1$s 在接受热风的洗礼中欲火焚身",
"death.attack.create.drill": "%1$s 的钻头是突破天际的钻头", "death.attack.create.drill": "%1$s 的钻头是突破天际的钻头",
"death.attack.create.saw": "%1$s 被圆锯切成了两截",
"create.block.deployer.damage_source_name": "a rogue Deployer",
"death.attack.create.curse_polish": "%1$s 试图祛魔时受到了诅咒",
"death.attack.create.cuckoo_clock_explosion": "%1$s被布谷鸟闹钟炸得粉身碎骨",
"create.recipe.crushing": "批量粉碎", "create.recipe.crushing": "批量粉碎",
"create.recipe.splashing": "批量洗涤", "create.recipe.splashing": "批量洗涤",
@ -152,17 +287,32 @@
"create.recipe.smokingViaFan.fan": "在鼓风机前方点火", "create.recipe.smokingViaFan.fan": "在鼓风机前方点火",
"create.recipe.blastingViaFan": "批量冶炼", "create.recipe.blastingViaFan": "批量冶炼",
"create.recipe.blastingViaFan.fan": "在鼓风机前方倒岩浆", "create.recipe.blastingViaFan.fan": "在鼓风机前方倒岩浆",
"create.recipe.pressing": "金属成型机", "create.recipe.pressing": "金属压片",
"create.recipe.mixing": "混合搅拌",
"create.recipe.packing": "压块塑形",
"create.recipe.sawing": "木材切割",
"create.recipe.mechanical_crafting": "自动合成",
"create.recipe.block_cutting": "方块切割",
"create.recipe.blockzapperUpgrade": "手持式方块放置器", "create.recipe.blockzapperUpgrade": "手持式方块放置器",
"create.recipe.sandpaper_polishing": "砂纸抛光",
"create.recipe.mystery_conversion": "化合物变异",
"create.recipe.processing.catalyst": "催化剂",
"create.recipe.processing.chance": "%1$s%% 概率", "create.recipe.processing.chance": "%1$s%% 概率",
"create.recipe.processing.chanceToReturn": "%1$s%% 概率返还",
"create.generic.range": "范围", "create.generic.range": "范围",
"create.generic.radius": "半径", "create.generic.radius": "半径",
"create.generic.width": "宽度",
"create.generic.height": "高度",
"create.generic.length": "长度",
"create.generic.speed": "速度", "create.generic.speed": "速度",
"create.generic.delay": "延时", "create.generic.delay": "延时",
"create.generic.unit.ticks": "Ticks", "create.generic.unit.ticks": "Ticks",
"create.generic.unit.seconds": "Seconds", "create.generic.unit.seconds": "Seconds",
"create.generic.unit.minutes": "Minutes", "create.generic.unit.minutes": "Minutes",
"create.generic.unit.rpm": "RPM",
"create.generic.unit.stress": "su",
"create.generic.unit.degrees": "°",
"create.action.scroll": "滚轮", "create.action.scroll": "滚轮",
"create.action.confirm": "确认", "create.action.confirm": "确认",
@ -174,8 +324,9 @@
"create.gui.scrollInput.defaultTitle": "选择一个选项:", "create.gui.scrollInput.defaultTitle": "选择一个选项:",
"create.gui.scrollInput.scrollToModify": "滚动修改", "create.gui.scrollInput.scrollToModify": "滚动修改",
"create.gui.scrollInput.scrollToAdjustAmount": "滚动修改数量",
"create.gui.scrollInput.scrollToSelect": "滚动选择", "create.gui.scrollInput.scrollToSelect": "滚动选择",
"create.gui.scrollInput.shiftScrollsFaster": "潜行时滚动更快", "create.gui.scrollInput.shiftScrollsFaster": "按住Shift滚动更快",
"create.gui.toolmenu.focusKey": "按住 [%1$s] 鼠标滚轮选择", "create.gui.toolmenu.focusKey": "按住 [%1$s] 鼠标滚轮选择",
"create.gui.toolmenu.cycle": "[SCROLL] 循环", "create.gui.toolmenu.cycle": "[SCROLL] 循环",
@ -196,6 +347,7 @@
"create.gui.blockzapper.searchDiagonal": "根据对角线", "create.gui.blockzapper.searchDiagonal": "根据对角线",
"create.gui.blockzapper.searchFuzzy": "忽视边界", "create.gui.blockzapper.searchFuzzy": "忽视边界",
"create.gui.blockzapper.range": "扩散范围", "create.gui.blockzapper.range": "扩散范围",
"create.gui.blockzapper.needsUpgradedAmplifier": "需要升级扩散器",
"create.gui.blockzapper.patternSection": "模式", "create.gui.blockzapper.patternSection": "模式",
"create.gui.blockzapper.pattern.solid": "实心", "create.gui.blockzapper.pattern.solid": "实心",
"create.gui.blockzapper.pattern.checkered": "棋盘", "create.gui.blockzapper.pattern.checkered": "棋盘",
@ -204,6 +356,24 @@
"create.gui.blockzapper.pattern.chance50": "50% ", "create.gui.blockzapper.pattern.chance50": "50% ",
"create.gui.blockzapper.pattern.chance75": "75% ", "create.gui.blockzapper.pattern.chance75": "75% ",
"create.gui.terrainzapper.title": "手持式环境塑形器",
"create.gui.terrainzapper.placement": "放置模式",
"create.gui.terrainzapper.placement.merged": "结合",
"create.gui.terrainzapper.placement.attached": "依附",
"create.gui.terrainzapper.placement.inserted": "插入",
"create.gui.terrainzapper.brush": "塑形类型",
"create.gui.terrainzapper.brush.cuboid": "矩形体",
"create.gui.terrainzapper.brush.sphere": "球体",
"create.gui.terrainzapper.brush.cylinder": "圆柱体",
"create.gui.terrainzapper.tool": "填充类型",
"create.gui.terrainzapper.tool.fill": "填充",
"create.gui.terrainzapper.tool.place": "复写",
"create.gui.terrainzapper.tool.replace": "替换",
"create.gui.terrainzapper.tool.clear": "清除",
"create.gui.terrainzapper.tool.overlay": "覆盖",
"create.gui.terrainzapper.tool.flatten": "平整",
"create.terrainzapper.shiftRightClickToSet": "Shift+鼠标右键 以设置塑形类型",
"create.blockzapper.usingBlock": "使用: %1$s", "create.blockzapper.usingBlock": "使用: %1$s",
"create.blockzapper.componentUpgrades": "组件升级:", "create.blockzapper.componentUpgrades": "组件升级:",
"create.blockzapper.component.body": "机体", "create.blockzapper.component.body": "机体",
@ -217,10 +387,32 @@
"create.blockzapper.leftClickToSet": "左键点击方块以设定方块", "create.blockzapper.leftClickToSet": "左键点击方块以设定方块",
"create.blockzapper.empty": "出击!", "create.blockzapper.empty": "出击!",
"create.contraptions.movement_mode": "Movement Mode",
"create.contraptions.movement_mode.move_place": "Always Place when Stopped",
"create.contraptions.movement_mode.move_place_returned": "Place only in Starting Position",
"create.contraptions.movement_mode.move_never_place": "Place only when Anchor Destroyed",
"create.contraptions.movement_mode.rotate_place": "Always Place when Stopped",
"create.contraptions.movement_mode.rotate_place_returned": "Only Place near Initial Angle",
"create.contraptions.movement_mode.rotate_never_place": "Only Place when Anchor Destroyed",
"create.logistics.filter": "过滤器", "create.logistics.filter": "过滤器",
"create.logistics.firstFrequency": "频道. #1", "create.logistics.firstFrequency": "频道. #1",
"create.logistics.secondFrequency": "频道. #2", "create.logistics.secondFrequency": "频道. #2",
"create.gui.goggles.generator_stats": "Generator 状态:",
"create.gui.goggles.kinetic_stats": "Kinetic 状态:",
"create.gui.goggles.at_current_speed": "当前速度应力值",
"create.gui.goggles.base_value": "应力基础值",
"create.gui.gauge.info_header": "仪表信息:",
"create.gui.speed_gauge.title": "旋转速度",
"create.gui.stress_gauge.title": "网络应力",
"create.gui.stress_gauge.capacity": "剩余应力",
"create.gui.stress_gauge.overstressed": "超载",
"create.gui.stress_gauge.no_rotation": "无旋转",
"create.gui.contraptions.not_fast_enough": "显然 %1$s 没有足够的转速.",
"create.gui.flexcrate.title": "板条箱", "create.gui.flexcrate.title": "板条箱",
"create.gui.flexcrate.storageSpace": "储存空间", "create.gui.flexcrate.storageSpace": "储存空间",
@ -232,6 +424,21 @@
"create.gui.stockswitch.stopAt": "停止信号", "create.gui.stockswitch.stopAt": "停止信号",
"create.gui.stockswitch.stopBelow": "Stop Signal below", "create.gui.stockswitch.stopBelow": "Stop Signal below",
"create.gui.sequenced_gearshift.title": "可编程齿轮箱",
"create.gui.sequenced_gearshift.instruction": "指令",
"create.gui.sequenced_gearshift.instruction.turn_angle": "旋转",
"create.gui.sequenced_gearshift.instruction.turn_angle.angle": "角度",
"create.gui.sequenced_gearshift.instruction.turn_distance": "驱动活塞",
"create.gui.sequenced_gearshift.instruction.turn_distance.distance": "距离",
"create.gui.sequenced_gearshift.instruction.wait": "等待",
"create.gui.sequenced_gearshift.instruction.wait.duration": "间隔",
"create.gui.sequenced_gearshift.instruction.end": "停止",
"create.gui.sequenced_gearshift.speed": "速度, 速度方向",
"create.gui.sequenced_gearshift.speed.forward": "一倍速, 正向",
"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.dimensions": "原理图尺寸: %1$sx%2$sx%3$s",
"create.schematicAndQuill.firstPos": "第一个位置.", "create.schematicAndQuill.firstPos": "第一个位置.",
"create.schematicAndQuill.secondPos": "第二个位置.", "create.schematicAndQuill.secondPos": "第二个位置.",
@ -335,11 +542,149 @@
"create.schematicannon.status.schematicNotPlaced": "原理图未部署", "create.schematicannon.status.schematicNotPlaced": "原理图未部署",
"create.schematicannon.status.schematicExpired": "原理图文件已过期", "create.schematicannon.status.schematicExpired": "原理图文件已过期",
"create.gui.index.title": "Logistical Index",
"create.gui.index.targetAddressSelect": "Destination Address",
"create.gui.index.confirmOrder": "Confirm Order",
"create.logistics.priority": "Priority",
"create.logistics.priority.lowest": "Lowest",
"create.logistics.priority.low": "Low",
"create.logistics.priority.high": "High",
"create.logistics.priority.highest": "Highest",
"create.gui.logistical_controller.active_mode": "Active Mode",
"create.gui.logistical_controller.passive_mode": "Passive Mode",
"create.gui.requester.requestedItemCount": "Requested Amount",
"create.gui.storage.passiveModeOnly": "Item Storage is Passive Only",
"create.gui.filter.blacklist": "黑名单",
"create.gui.filter.blacklist.description": "只通过不在黑名单中的物品,如果黑名单为空,所有物品都可以通过",
"create.gui.filter.whitelist": "白名单",
"create.gui.filter.whitelist.description": "只通过在白名单中的物品,如果白名单为空,所有物品都无法通过",
"create.gui.filter.respect_data": "匹配物品属性",
"create.gui.filter.respect_data.description": "只有物品的耐久、附魔等其他属性相同时才可以匹配",
"create.gui.filter.ignore_data": "忽视物品属性",
"create.gui.filter.ignore_data.description": "就是跟属性无关",
"create.item_attributes.placeable": "可放置",
"create.item_attributes.consumable": "可食用",
"create.item_attributes.enchanted": "已被附魔",
"create.item_attributes.damaged": "已损坏",
"create.item_attributes.badly_damaged": "严重受损",
"create.item_attributes.not_stackable": "无法堆叠",
"create.item_attributes.equipable": "可装备",
"create.item_attributes.furnace_fuel": "是燃料",
"create.item_attributes.in_tag": "标签是%1$s",
"create.item_attributes.in_item_group": "属于 %1$s",
"create.item_attributes.added_by": "由%1$s添加",
"create.gui.attribute_filter.no_selected_attributes": "没有任何属性",
"create.gui.attribute_filter.selected_attributes": "已选择的属性:",
"create.gui.attribute_filter.whitelist_disjunctive": "任意匹配白名单 (Any)",
"create.gui.attribute_filter.whitelist_disjunctive.description": "只要有其中一项属性符合,就可以通过",
"create.gui.attribute_filter.whitelist_conjunctive": "全匹配白名单 (All)",
"create.gui.attribute_filter.whitelist_conjunctive.description": "只有所有属性都匹配才可以通过",
"create.gui.attribute_filter.blacklist": "黑名单",
"create.gui.attribute_filter.blacklist.description": "只要没有上述属性,就可以通过",
"create.gui.attribute_filter.add_reference_item": "添加参考物品",
"create.tooltip.holdKey": "按住 [%1$s]", "create.tooltip.holdKey": "按住 [%1$s]",
"create.tooltip.holdKeyOrKey": "按住 [%1$s] 或 [%2$s]", "create.tooltip.holdKeyOrKey": "按住 [%1$s] 或 [%2$s]",
"create.tooltip.keyShift": "Shift", "create.tooltip.keyShift": "Shift",
"create.tooltip.keyCtrl": "Ctrl", "create.tooltip.keyCtrl": "Ctrl",
"create.tooltip.speedRequirement": "需求速度: %1$s",
"create.tooltip.speedRequirement.none": "无",
"create.tooltip.speedRequirement.medium": "适当的",
"create.tooltip.speedRequirement.high": "飞快的",
"create.tooltip.stressImpact": "应力消耗: %1$s",
"create.tooltip.stressImpact.low": "低",
"create.tooltip.stressImpact.medium": "中",
"create.tooltip.stressImpact.high": "高",
"create.tooltip.capacityProvided": "应力容量: %1$s",
"create.tooltip.capacityProvided.low": "小",
"create.tooltip.capacityProvided.medium": "中",
"create.tooltip.capacityProvided.high": "大",
"create.tooltip.capacityProvided.asGenerator": "(作为 Generator)",
"create.tooltip.generationSpeed": "产生 %1$s %2$s",
"create.tooltip.analogStrength": "Analog Strength: %1$s/15",
"create.tooltip.wip": "WIP",
"create.tooltip.workInProgress": "Work in progress!",
"create.tooltip.randomWipDescription0": "Please keep this item away from children.",
"create.tooltip.randomWipDescription1": "A baby panda dies every time you use this item. Every. Time.",
"create.tooltip.randomWipDescription2": "Use at your own risk.",
"create.tooltip.randomWipDescription3": "This is not the item you are looking for, *finger-wiggles* please disperse.",
"create.tooltip.randomWipDescription4": "This item will self-destruct in 10 seconds. 10, 9, 8...",
"create.tooltip.randomWipDescription5": "Believe me, it's useless.",
"create.tooltip.randomWipDescription6": "By using this item, you hereby consent to our disclaimer and agree to its terms.",
"create.tooltip.randomWipDescription7": "This one maybe isn't for you. What about that one?",
"create.tooltip.randomWipDescription8": "Use it and regret your decision immediately.",
"create.mechanical_mixer.min_ingredients": "最小的物品数",
"create.command.killTPSCommand": "killtps",
"create.command.killTPSCommand.status.slowed_by.0": "[Create]: Server tick is currently slowed by %s ms :o",
"create.command.killTPSCommand.status.slowed_by.1": "[Create]: Server tick is slowed by %s ms now >:)",
"create.command.killTPSCommand.status.slowed_by.2": "[Create]: Server tick is back to regular speed :D",
"create.command.killTPSCommand.status.usage.0": "[Create]: use /killtps stop to bring back server tick to regular speed",
"create.command.killTPSCommand.status.usage.1": "[Create]: use /killtps start <tickTime> to artificially slow down the server tick",
"create.command.killTPSCommand.argument.tickTime": "tickTime",
"advancement.create:root": "机械纪元的开始",
"advancement.create:root.desc": "是时候开始创造各种机械了!",
"advancement.create:andesite_alloy": "新的材料",
"advancement.create:andesite_alloy.desc": "机械动力中有许多的材料,例如安山合金.",
"advancement.create:andesite_casing": "安山纪元",
"advancement.create:andesite_casing.desc": "使用安山合金、原木、木板可以合成一个基础箱子",
"advancement.create:crushing_wheel": "巨人兄弟",
"advancement.create:crushing_wheel.desc": "合成两个粉碎轮,用粉碎轮碾碎一些材料",
"advancement.create:rotation": "动起来了!",
"advancement.create:rotation.desc": "看看你的第一个运动的齿轮",
"advancement.create:overstressed": "超载",
"advancement.create:overstressed.desc": "第一次尝到超载的滋味",
"advancement.create:sand_paper": "抛光",
"advancement.create:sand_paper.desc": "用砂纸让方块更加光滑",
"advancement.create:polished_rose_quartz": "粉色钻石",
"advancement.create:polished_rose_quartz.desc": "将玫瑰石英抛光到能够透过光线",
"advancement.create:sand_paper_secret": "升级抛光",
"advancement.create:sand_paper_secret.desc": "用你的砂纸去抛光砂纸",
"advancement.create:press": "Duang",
"advancement.create:press.desc": "用压片机去碾压你的材料",
"advancement.create:mixer": "搅拌~搅拌~",
"advancement.create:mixer.desc": "制造一个搅拌器",
"advancement.create:brass": "真的合金",
"advancement.create:brass.desc": "使用铜和锌合成黄铜",
"advancement.create:brass_casing": "黄铜纪元",
"advancement.create:brass_casing.desc": "用黄铜来合成新的箱子",
"advancement.create:deployer": "第三只手",
"advancement.create:deployer.desc": "创造一个机械手,让它工作起来",
"advancement.create:deployer_secret": "别打了别打了!",
"advancement.create:deployer_secret.desc": "让两个机械手互相挥拳",
"advancement.create:chromatic_compound": "两极材料",
"advancement.create:chromatic_compound.desc": "创造一个谜之化合物",
"advancement.create:shadow_steel": "没有收获?",
"advancement.create:shadow_steel.desc": "获得一种来自虚空的材料——暗影金属",
"advancement.create:refined_radiance": "光辉照耀",
"advancement.create:refined_radiance.desc": "获得一个光辉石, 充满着光辉的物质",
"advancement.create:refined_radiance_secret": "用光明来锻造",
"advancement.create:refined_radiance_secret.desc": "找到另一种获得光辉石的方法",
"advancement.create:speed_secret": "车速太快了",
"advancement.create:speed_secret.desc": "速度表显示的数值超过69 rpm.",
"create.subtitle.schematicannon_launch_block": "Schematicannon shoots",
"create.subtitle.schematicannon_finish": "Schematicannon finishes",
"create.subtitle.slime_added": "Slime squishes",
"create.subtitle.mechanical_press_activation": "Mechanical Press activates",
"create.subtitle.mechanical_press_item_break": "Metal clanks",
"create.subtitle.blockzapper_place": "Blocks zap into place",
"create.subtitle.blockzapper_confirm": "Affirmative Ding",
"create.subtitle.blockzapper_deny": "Declining Boop",
"create.subtitle.block_funnel_eat": "Funnel CHOMPS",
"_comment": "-------------------------] ITEM DESCRIPTIONS [------------------------------------------------", "_comment": "-------------------------] ITEM DESCRIPTIONS [------------------------------------------------",
"item.create.example_item.tooltip": "EXAMPLE ITEM (just a marker that this tooltip exists)", "item.create.example_item.tooltip": "EXAMPLE ITEM (just a marker that this tooltip exists)",
@ -371,11 +716,37 @@
"item.create.placement_handgun.tooltip.control3": "当潜行右键时", "item.create.placement_handgun.tooltip.control3": "当潜行右键时",
"item.create.placement_handgun.tooltip.action3": "打开gui界面", "item.create.placement_handgun.tooltip.action3": "打开gui界面",
"item.create.terrain_zapper.tooltip": "HANDHELD WORLDSHAPER",
"item.create.terrain_zapper.tooltip.summary": "创造大陆和山脉的手持工具",
"item.create.terrain_zapper.tooltip.control1": "当左键方块时",
"item.create.terrain_zapper.tooltip.action1": "设定放置此方块",
"item.create.terrain_zapper.tooltip.control2": "当右键方块时",
"item.create.terrain_zapper.tooltip.action2": "放置或替换目标方块",
"item.create.terrain_zapper.tooltip.control3": "当潜行右键时",
"item.create.terrain_zapper.tooltip.action3": "打开工具的_gui界面_",
"item.create.tree_fertilizer.tooltip": "TREE FERTILIZER", "item.create.tree_fertilizer.tooltip": "TREE FERTILIZER",
"item.create.tree_fertilizer.tooltip.summary": "适用于常见树木的快速肥料", "item.create.tree_fertilizer.tooltip.summary": "适用于常见树木的快速肥料",
"item.create.tree_fertilizer.tooltip.condition1": "在树苗上使用时", "item.create.tree_fertilizer.tooltip.condition1": "在树苗上使用时",
"item.create.tree_fertilizer.tooltip.behaviour1": "无论生长时间多少,直接长大", "item.create.tree_fertilizer.tooltip.behaviour1": "无论生长时间多少,直接长大",
"item.create.deforester.tooltip": "DEFORESTER",
"item.create.deforester.tooltip.summary": "树林毁灭者能够瞬间_砍倒_一棵树",
"item.create.filter.tooltip": "FILTER",
"item.create.filter.tooltip.summary": "以更高的精度控制后勤设备的输出和输入将它们与一组item或多个嵌套过滤器相匹配.(机翻)",
"item.create.filter.tooltip.condition1": "当处于过滤器槽中",
"item.create.filter.tooltip.behaviour1": "根据过滤器的配置,控制物品流经过滤器",
"item.create.filter.tooltip.condition2": "当右键时",
"item.create.filter.tooltip.behaviour2": "打开_配置面板_",
"item.create.property_filter.tooltip": "ATTRIBUTE FILTER",
"item.create.property_filter.tooltip.summary": "以更高的精度控制物流设备的输出和输入将它们与一组itme属性匹配.(机翻)",
"item.create.property_filter.tooltip.condition1": "当处于过滤器槽中",
"item.create.property_filter.tooltip.behaviour1": "根据过滤器的配置,控制物品流经过滤器",
"item.create.property_filter.tooltip.condition2": "当右键时",
"item.create.property_filter.tooltip.behaviour2": "打开_配置面板_",
"block.create.cocoa_log.tooltip": "COCOA LOG", "block.create.cocoa_log.tooltip": "COCOA LOG",
"block.create.cocoa_log.tooltip.summary": "增强的可可豆丛林木,更方便实现可可豆自动化", "block.create.cocoa_log.tooltip.summary": "增强的可可豆丛林木,更方便实现可可豆自动化",
"block.create.cocoa_log.tooltip.condition1": "成熟时", "block.create.cocoa_log.tooltip.condition1": "成熟时",
@ -400,9 +771,9 @@
"item.create.blueprint_and_quill.tooltip.control1": "右键", "item.create.blueprint_and_quill.tooltip.control1": "右键",
"item.create.blueprint_and_quill.tooltip.action1": "选取点/确认保存", "item.create.blueprint_and_quill.tooltip.action1": "选取点/确认保存",
"item.create.blueprint_and_quill.tooltip.control2": "按住Ctrl鼠标滚轮", "item.create.blueprint_and_quill.tooltip.control2": "按住Ctrl鼠标滚轮",
"item.create.blueprint_and_quill.tooltip.action2": "在空中选择点滚动以调整距离。", "item.create.blueprint_and_quill.tooltip.action2": "在_空中_选择点滚动以调整距离。",
"item.create.blueprint_and_quill.tooltip.control3": "当潜行右键时", "item.create.blueprint_and_quill.tooltip.control3": "当潜行右键时",
"item.create.blueprint_and_quill.tooltip.action3": "重置并删除选区.", "item.create.blueprint_and_quill.tooltip.action3": "_重置_并删除选区.",
"block.create.creative_crate.tooltip": "CREATIVE CRATE", "block.create.creative_crate.tooltip": "CREATIVE CRATE",
"block.create.creative_crate.tooltip.summary": "为相邻的原理图加农炮提供无限能量的方块", "block.create.creative_crate.tooltip.summary": "为相邻的原理图加农炮提供无限能量的方块",
@ -435,18 +806,23 @@
"block.create.gearshift.tooltip": "GEARSHIFT", "block.create.gearshift.tooltip": "GEARSHIFT",
"block.create.gearshift.tooltip.summary": "用于传动的可控旋转开关.", "block.create.gearshift.tooltip.summary": "用于传动的可控旋转开关.",
"block.create.gearshift.tooltip.condition1": "当提供红石信号时", "block.create.gearshift.tooltip.condition1": "当提供红石信号时",
"block.create.gearshift.tooltip.behaviour1": "更改旋转方向.", "block.create.gearshift.tooltip.behaviour1": "_更改_旋转方向.",
"block.create.clutch.tooltip": "CLUTCH", "block.create.clutch.tooltip": "CLUTCH",
"block.create.clutch.tooltip.summary": "传动控制装置.", "block.create.clutch.tooltip.summary": "传动控制装置.",
"block.create.clutch.tooltip.condition1": "当提供红石信号时", "block.create.clutch.tooltip.condition1": "当提供红石信号时",
"block.create.clutch.tooltip.behaviour1": "停止另一侧的旋转.", "block.create.clutch.tooltip.behaviour1": "_停止_另一侧的旋转.",
"block.create.encased_belt.tooltip": "ENCASED_BELT", "block.create.encased_belt.tooltip": "ENCASED_BELT",
"block.create.encased_belt.tooltip.summary": "通过此方块传递动力,比如将动力传递到连接的传送带.", "block.create.encased_belt.tooltip.summary": "通过此方块传递动力,比如将动力传递到连接的传送带.",
"block.create.encased_belt.tooltip.condition1": "连接到其他传动或装置时", "block.create.encased_belt.tooltip.condition1": "连接到其他传动或装置时",
"block.create.encased_belt.tooltip.behaviour1": "将具有完全相同的转速和方向.", "block.create.encased_belt.tooltip.behaviour1": "将具有完全相同的转速和方向.",
"block.create.adjustable_pulley.tooltip": "ANALOG BELT PULLEY",
"block.create.adjustable_pulley.tooltip.summary": "通过此方块传递动力,比如将动力传递到连接的传送带.当方块接收到信号时旋转速度将会改变",
"block.create.adjustable_pulley.tooltip.condition1": "当提供不同红石信号强度时",
"block.create.adjustable_pulley.tooltip.behaviour1": "如果没有红石信号_不会加速_,最强的红石信号将会提升至_两倍速_",
"item.create.belt_connector.tooltip": "BELT CONNECTOR", "item.create.belt_connector.tooltip": "BELT CONNECTOR",
"item.create.belt_connector.tooltip.summary": "用传送带连接传动杆,连接的传动杆将具有完全相同的转速和方向.传送带可以传输实体.", "item.create.belt_connector.tooltip.summary": "用传送带连接传动杆,连接的传动杆将具有完全相同的转速和方向.传送带可以传输实体.",
"item.create.belt_connector.tooltip.control1": "当右键传动杆时", "item.create.belt_connector.tooltip.control1": "当右键传动杆时",
@ -454,13 +830,22 @@
"item.create.belt_connector.tooltip.control2": "当潜行右键时", "item.create.belt_connector.tooltip.control2": "当潜行右键时",
"item.create.belt_connector.tooltip.action2": "重置传送带的第一个选定位置", "item.create.belt_connector.tooltip.action2": "重置传送带的第一个选定位置",
"block.create.belt_support.tooltip": "BELT SUPPORT", "item.create.goggles.tooltip": "GOGGLES",
"block.create.belt_support.tooltip.summary": "纯粹的装饰块.", "item.create.goggles.tooltip.summary": "一副特殊的眼镜,能够让你看见 _Kinetic_ 的信息.",
"block.create.belt_support.tooltip.condition1": "当放置在传送带下方时", "item.create.goggles.tooltip.condition1": "当装备时",
"block.create.belt_support.tooltip.behaviour1": "支撑传送带顶部,隐藏下半部分.", "item.create.goggles.tooltip.behaviour1": "将会展示Kinetic的速度、应力等信息",
"item.create.goggles.tooltip.condition2": "当看向仪表时",
"item.create.goggles.tooltip.behaviour2": "将会展示仪表连接网络的速度、应力等信息.",
"block.create.motor.tooltip": "MOTOR", "item.create.wrench.tooltip": "WRENCH",
"block.create.motor.tooltip.summary": "可以配置的无限动力来源", "item.create.wrench.tooltip.summary": "一种有用的工具能够调整_Kinetic_的_方向_、_配置_等.",
"item.create.wrench.tooltip.control1": "当右键Kinetic时",
"item.create.wrench.tooltip.action1": "旋转Kinetic的方向至你点击的面",
"item.create.wrench.tooltip.control2": "当潜行右键时",
"item.create.wrench.tooltip.action2": "将物品取下并移动到你的背包中.",
"block.create.creative_motor.tooltip": "CREATIVE MOTOR",
"block.create.creative_motor.tooltip.summary": "可以配置的_无限动力_来源",
"block.create.water_wheel.tooltip": "WATER WHEEL", "block.create.water_wheel.tooltip": "WATER WHEEL",
"block.create.water_wheel.tooltip.summary": "从相邻的流水中获得动力", "block.create.water_wheel.tooltip.summary": "从相邻的流水中获得动力",
@ -474,6 +859,19 @@
"block.create.encased_fan.tooltip.condition3": "当气流通过火,水,岩浆时", "block.create.encased_fan.tooltip.condition3": "当气流通过火,水,岩浆时",
"block.create.encased_fan.tooltip.behaviour3": "获得相应产物(建议配合jei查看).", "block.create.encased_fan.tooltip.behaviour3": "获得相应产物(建议配合jei查看).",
"block.create.nozzle.tooltip": "NOZZLE",
"block.create.nozzle.tooltip.summary": "依附在鼓风机上,能够将鼓风机的风到_分散_各个方向.",
"block.create.hand_crank.tooltip": "HAND CRANK",
"block.create.hand_crank.tooltip.summary": "一种简单的旋转能源,需要人工转动.",
"block.create.hand_crank.tooltip.condition1": "当使用时",
"block.create.hand_crank.tooltip.behaviour1": "向依附的结构提供动力,潜行时将会提供反向的旋转动力",
"block.create.cuckoo_clock.tooltip": "CUCKOO CLOCK",
"block.create.cuckoo_clock.tooltip.summary": "精致的工艺品,能够记录时间",
"block.create.cuckoo_clock.tooltip.condition1": "当旋转时",
"block.create.cuckoo_clock.tooltip.behaviour1": "显示 _当前时间_ 并且一天会咕咕_两次_. ",
"block.create.turntable.tooltip": "TURNTABLE", "block.create.turntable.tooltip": "TURNTABLE",
"block.create.turntable.tooltip.summary": "一个普通的转盘.", "block.create.turntable.tooltip.summary": "一个普通的转盘.",
@ -483,11 +881,52 @@
"block.create.crushing_wheel.tooltip.behaviour1": "粉碎物品并获得相应产物(建议配合jei查看)", "block.create.crushing_wheel.tooltip.behaviour1": "粉碎物品并获得相应产物(建议配合jei查看)",
"block.create.mechanical_press.tooltip": "MECHANICAL PRESS", "block.create.mechanical_press.tooltip": "MECHANICAL PRESS",
"block.create.mechanical_press.tooltip.summary": "一个强里的活塞,用于压制其下方的物品.", "block.create.mechanical_press.tooltip.summary": "一个强力的活塞,用于压制其下方的物品.",
"block.create.mechanical_press.tooltip.condition1": "当提供红石信号时", "block.create.mechanical_press.tooltip.condition1": "当提供红石信号时",
"block.create.mechanical_press.tooltip.behaviour1": "压制其下方的物品.", "block.create.mechanical_press.tooltip.behaviour1": "压制其下方的物品.",
"block.create.mechanical_press.tooltip.condition2": "在传送带上方时", "block.create.mechanical_press.tooltip.condition2": "在传送带上方时",
"block.create.mechanical_press.tooltip.behaviour2": "自动压缩经过传送带的物品.", "block.create.mechanical_press.tooltip.behaviour2": "自动压缩经过传送带的物品.",
"block.create.mechanical_mixer.tooltip.condition3": "当下方是工作盆时",
"block.create.mechanical_mixer.tooltip.behaviour3": "只要盆中有必要的物品,就会将物品压缩组合.",
"block.create.basin.tooltip": "BASIN",
"block.create.basin.tooltip.summary": "一种方便的物品容器,常常用于辊压机和搅拌机,可以被红石比较器检测",
"block.create.mechanical_mixer.tooltip": "MECHANICAL MIXER",
"block.create.mechanical_mixer.tooltip.summary": "一种能够动态进行搅拌的机器,需要恒定的速度并且下方需要放置工作盆(中间需要一格宽)",
"block.create.mechanical_mixer.tooltip.condition1": "当位于工作盆上方",
"block.create.mechanical_mixer.tooltip.behaviour1": "只要工作盆中有必要的物品,就会将物品进行搅拌",
"block.create.mechanical_mixer.tooltip.condition2": "当使用扳手时",
"block.create.mechanical_mixer.tooltip.behaviour2": "配置配方中物品的最小数目,通过这个配置能够避免不需要的、相似的配方",
"block.create.mechanical_crafter.tooltip": "MECHANICAL CRAFTER",
"block.create.mechanical_crafter.tooltip.summary": "一种动态制作的工作台,根据你配置的配方进行合成.",
"block.create.mechanical_crafter.tooltip.condition1": "当旋转时",
"block.create.mechanical_crafter.tooltip.behaviour1": "当机器中的物品槽有物品时,将会启动所有的制造机来工作.",
"block.create.mechanical_crafter.tooltip.control1": "当前方使用扳手时",
"block.create.mechanical_crafter.tooltip.action1": "将会改变物品移动的方向.为了构建一个工作网格,需要将网格中所有的物品,移动到最后的网格,最后的网格需要离开工作网格",
"block.create.mechanical_crafter.tooltip.control2": "当后方使用扳手时",
"block.create.mechanical_crafter.tooltip.action2": "连接相邻的制造机的物品栏..",
"block.create.furnace_engine.tooltip": "FURNACE ENGINE",
"block.create.furnace_engine.tooltip.summary": "一种强力的能量旋转能量来源,但是需要正在工作的炉",
"block.create.furnace_engine.tooltip.condition1": "当连接正在燃烧的炉",
"block.create.furnace_engine.tooltip.behaviour1": "将会带动相连的飞轮(需要间隔一格),用高炉速度更快",
"block.create.flywheel.tooltip": "FLYWHEEL",
"block.create.flywheel.tooltip.summary": "一种大型的金属轮,能过够提供稳定的旋转动力,动力来自熔炉引擎,需要与熔炉引擎间隔一个方块",
"block.create.flywheel.tooltip.condition1": "当连接正在燃烧的炉",
"block.create.flywheel.tooltip.behaviour1": "将会提供相应的旋转力.",
"block.create.portable_storage_interface.tooltip": "PORTABLE STORAGE INTERFACE",
"block.create.portable_storage_interface.tooltip.summary": "一种便携的物品接口,能够将移动的结构上的物品进行交换移动",
"block.create.portable_storage_interface.tooltip.condition1": "当处于移动时",
"block.create.portable_storage_interface.tooltip.behaviour1": "与固定的_传输器_ 交互.",
"block.create.rotation_speed_controller.tooltip": "ROTATION SPEED CONTROLLER",
"block.create.rotation_speed_controller.tooltip.summary": "一个可以变换绑定的齿轮旋转速度的方块",
"block.create.rotation_speed_controller.tooltip.condition1": "当连接大齿轮时",
"block.create.rotation_speed_controller.tooltip.behaviour1": "将输入的旋转改变速度后,传递给绑定的齿轮,绑定的齿轮要放在上方.",
"block.create.mechanical_piston.tooltip": "MECHANICAL PISTON", "block.create.mechanical_piston.tooltip": "MECHANICAL PISTON",
"block.create.mechanical_piston.tooltip.summary": "活塞的高级版本,使用机械动力精确移动粘贴的方块,背面可放置活塞杆延长活塞范围,没有活塞杆将不会工作,使用机壳底盘可以移动多行.", "block.create.mechanical_piston.tooltip.summary": "活塞的高级版本,使用机械动力精确移动粘贴的方块,背面可放置活塞杆延长活塞范围,没有活塞杆将不会工作,使用机壳底盘可以移动多行.",
@ -511,10 +950,34 @@
"block.create.mechanical_bearing.tooltip.condition2": "给予红石信号时", "block.create.mechanical_bearing.tooltip.condition2": "给予红石信号时",
"block.create.mechanical_bearing.tooltip.behaviour2": "开始旋转并为连接的传动方块提供动力(此结构需使用羊毛建造).", "block.create.mechanical_bearing.tooltip.behaviour2": "开始旋转并为连接的传动方块提供动力(此结构需使用羊毛建造).",
"block.create.clockwork_bearing.tooltip": "CLOCKWORK BEARING",
"block.create.clockwork_bearing.tooltip.summary": "一种高级的机械轴承,可以根据当前游戏时间旋转两个时针",
"block.create.clockwork_bearing.tooltip.condition1": "当旋转时",
"block.create.clockwork_bearing.tooltip.behaviour1": "旋转第一个连接的结构作为时针,第二个连接的结构作为分针",
"block.create.sequenced_gearshift.tooltip": "SEQUENCED GEARSHIFT",
"block.create.sequenced_gearshift.tooltip.summary": "一种可编程的组件,可以根据内部的指令改变旋转的角度.使用机械轴承,活塞等物品时可以控制他们的速度和时间.高速旋转时可能会变得不精确.",
"block.create.sequenced_gearshift.tooltip.condition1": "当给予红石信号时",
"block.create.sequenced_gearshift.tooltip.behaviour1": "在输入旋转速度下,执行指令.",
"block.create.sequenced_gearshift.tooltip.condition2": "当右键时",
"block.create.sequenced_gearshift.tooltip.behaviour2": "将打开配置指令的界面_",
"block.create.cart_assembler.tooltip": "CART ASSEMBLER",
"block.create.cart_assembler.tooltip.summary": "将连接当前方块的结构连接在矿车上",
"block.create.cart_assembler.tooltip.condition1": "当给予红石信号时",
"block.create.cart_assembler.tooltip.behaviour1": "将解除已连接的矿车上的结构.",
"block.create.rope_pulley.tooltip": "ROPE PULLEY",
"block.create.rope_pulley.tooltip.summary": "移动绳索相连的结构.",
"block.create.rope_pulley.tooltip.condition1": "当旋转时",
"block.create.rope_pulley.tooltip.behaviour1": "根据输入的旋转速度,移动链接的结构.",
"block.create.translation_chassis.tooltip": "TRANSLATION CHASSIS", "block.create.translation_chassis.tooltip": "TRANSLATION CHASSIS",
"block.create.translation_chassis.tooltip.summary": "动力活塞移动的多方块结构基础,这种方块须在活塞前面第一层放置.", "block.create.translation_chassis.tooltip.summary": "动力活塞移动的多方块结构基础,这种方块须在活塞前面第一层放置.",
"block.create.translation_chassis.tooltip.condition1": "由动力活塞推动时", "block.create.translation_chassis.tooltip.condition1": "由动力活塞推动时",
"block.create.translation_chassis.tooltip.behaviour1": "朝相同的方向移动所有连接在一起的机壳底盘;当活塞缩回时,只拉回底盘表面设置数量的方块(详情见Ctrl).", "block.create.translation_chassis.tooltip.behaviour1": "朝相同的方向移动所有连接在一起的机壳底盘;当活塞缩回时,只拉回底盘表面设置数量的方块(详情见Ctrl).",
"block.create.translation_chassis.tooltip.condition2": "当使用扳手时",
"block.create.translation_chassis.tooltip.behaviour2": "配置连接的方块的范围.按住_Ctrl_可以同时配置相连的其他方块.",
"block.create.translation_chassis.tooltip.control1": "当用史莱姆球右键时", "block.create.translation_chassis.tooltip.control1": "当用史莱姆球右键时",
"block.create.translation_chassis.tooltip.action1": "变为粘性机壳底盘.", "block.create.translation_chassis.tooltip.action1": "变为粘性机壳底盘.",
@ -522,6 +985,8 @@
"block.create.rotation_chassis.tooltip.summary": "使用旋转底盘是旋转结构必须的", "block.create.rotation_chassis.tooltip.summary": "使用旋转底盘是旋转结构必须的",
"block.create.rotation_chassis.tooltip.condition1": "当旋转时", "block.create.rotation_chassis.tooltip.condition1": "当旋转时",
"block.create.rotation_chassis.tooltip.behaviour1": "在其周围的配置范围内旋转所有粘贴到粘性面的方块(详情见Ctrl).", "block.create.rotation_chassis.tooltip.behaviour1": "在其周围的配置范围内旋转所有粘贴到粘性面的方块(详情见Ctrl).",
"block.create.rotation_chassis.tooltip.condition2": "当使用扳手时",
"block.create.rotation_chassis.tooltip.behaviour2": "配置连接的方块的范围.按住_Ctrl_可以同时配置相连的其他方块.",
"block.create.rotation_chassis.tooltip.control1": "当用史莱姆球右键时", "block.create.rotation_chassis.tooltip.control1": "当用史莱姆球右键时",
"block.create.rotation_chassis.tooltip.action1": "当底盘旋转同时旋转所有粘贴到粘性面的方块.", "block.create.rotation_chassis.tooltip.action1": "当底盘旋转同时旋转所有粘贴到粘性面的方块.",
@ -537,6 +1002,15 @@
"block.create.harvester.tooltip.condition1": "由动力活塞推动时", "block.create.harvester.tooltip.condition1": "由动力活塞推动时",
"block.create.harvester.tooltip.behaviour1": "收割机移动至成熟作物收割作物并将作物变为初始生长状态.", "block.create.harvester.tooltip.behaviour1": "收割机移动至成熟作物收割作物并将作物变为初始生长状态.",
"block.create.saw.tooltip": "MECHANICAL SAW",
"block.create.saw.tooltip.summary": "可以用于砍树,也可以用于切割方块.",
"block.create.saw.tooltip.condition1": "当方向向上时",
"block.create.saw.tooltip.behaviour1": "可以切割各种物品(建议配合jei查看)",
"block.create.saw.tooltip.condition2": "当方向在水平面时",
"block.create.saw.tooltip.behaviour2": "可以砍到面前的树木",
"block.create.saw.tooltip.condition3": "当移动时",
"block.create.saw.tooltip.behaviour3": "将会切割碰撞到的树木.",
"block.create.stockswitch.tooltip": "STOCKSWITCH", "block.create.stockswitch.tooltip": "STOCKSWITCH",
"block.create.stockswitch.tooltip.summary": "根据连接的容器存储空间大小切换红石信号强度.", "block.create.stockswitch.tooltip.summary": "根据连接的容器存储空间大小切换红石信号强度.",
"block.create.stockswitch.tooltip.condition1": "低于下限时", "block.create.stockswitch.tooltip.condition1": "低于下限时",
@ -544,6 +1018,7 @@
"block.create.stockswitch.tooltip.condition2": "超过上限时", "block.create.stockswitch.tooltip.condition2": "超过上限时",
"block.create.stockswitch.tooltip.behaviour2": "开始提供红石信号,直到再次到达下限.", "block.create.stockswitch.tooltip.behaviour2": "开始提供红石信号,直到再次到达下限.",
"block.create.stockswitch.tooltip.control1": "当右键方块时", "block.create.stockswitch.tooltip.control1": "当右键方块时",
"block.create.stockswitch.tooltip.action1": "打开配置面板",
"block.create.redstone_bridge.tooltip": "REDSTONE LINK", "block.create.redstone_bridge.tooltip": "REDSTONE LINK",
"block.create.redstone_bridge.tooltip.summary": "无线红石信号终端,可以使用任何物品编辑终端频道,但距离有限.", "block.create.redstone_bridge.tooltip.summary": "无线红石信号终端,可以使用任何物品编辑终端频道,但距离有限.",
@ -558,8 +1033,8 @@
"block.create.contact.tooltip.summary": "一种用于高级红石装置的设备.", "block.create.contact.tooltip.summary": "一种用于高级红石装置的设备.",
"block.create.contact.tooltip.condition1": "当正对面放置也放置信号检测器时", "block.create.contact.tooltip.condition1": "当正对面放置也放置信号检测器时",
"block.create.contact.tooltip.behaviour1": "提供红石信号", "block.create.contact.tooltip.behaviour1": "提供红石信号",
"block.create.contact.tooltip.condition2": "", "block.create.contact.tooltip.condition2": "当移动时",
"block.create.contact.tooltip.behaviour2": "", "block.create.contact.tooltip.behaviour2": "将会触发途径的固定触发点",
"block.create.flexcrate.tooltip": "FLEXCRATE", "block.create.flexcrate.tooltip": "FLEXCRATE",
"block.create.flexcrate.tooltip.summary": "该箱子允许对其容量进行调整,最大可以容纳16组物品.", "block.create.flexcrate.tooltip.summary": "该箱子允许对其容量进行调整,最大可以容纳16组物品.",
@ -570,8 +1045,27 @@
"block.create.extractor.tooltip.summary": "从连接的箱子里自动将物品输出到外面,可以设置白名单过滤.", "block.create.extractor.tooltip.summary": "从连接的箱子里自动将物品输出到外面,可以设置白名单过滤.",
"block.create.extractor.tooltip.condition1": "当提供红石信号时", "block.create.extractor.tooltip.condition1": "当提供红石信号时",
"block.create.extractor.tooltip.behaviour1": "暂停自动输出", "block.create.extractor.tooltip.behaviour1": "暂停自动输出",
"block.create.extractor.tooltip.condition2": "放置在传送带上时",
"block.create.extractor.tooltip.behaviour2": "当传送带被黄铜箱加固时,使用提取器可以将传送带上的物品提取出来. 当提取器堵塞时,传送带将会停下.",
"block.create.extractor.tooltip.control1": "当右键过滤框时",
"block.create.extractor.tooltip.action1": "将当前持有的物品设置为物品过滤白名单", "block.create.extractor.tooltip.action1": "将当前持有的物品设置为物品过滤白名单",
"block.create.transposer.tooltip": "TRANSPOSER",
"block.create.transposer.tooltip.summary": "将绑定的物品栏中的物品传送到指定的物品栏.",
"block.create.transposer.tooltip.condition1": "当给予红石信号时",
"block.create.transposer.tooltip.behaviour1": "暂停传输.",
"block.create.transposer.tooltip.condition2": "放置在传送带上时",
"block.create.transposer.tooltip.behaviour2": "当传送带被黄铜箱加固时,使用传输器可以将传送带上的物品提取出来. 当传输器堵塞时,传送带将会停下.",
"block.create.transposer.tooltip.control1": "当右键过滤框时",
"block.create.transposer.tooltip.action1": "将当前持有的物品设置为物品过滤白名单.",
"block.create.deployer.tooltip": "DEPLOYER",
"block.create.deployer.tooltip.summary": "它是一个机械手,将尽可能模仿玩家的行为,能够将物品拿出来,也可以将物品放入物品栏中. 可以设置白名单.",
"block.create.deployer.tooltip.condition1": "当旋转时",
"block.create.deployer.tooltip.behaviour1": "将可以伸出手臂2m长",
"block.create.deployer.tooltip.condition2": "当使用扳手时",
"block.create.deployer.tooltip.behaviour2": "将会启用拳头模式,在拳头模式之下,机械臂将会试图使用手中的物品破坏方块,或者攻击实体.",
"block.create.linked_extractor.tooltip": "LINKED EXTRACTOR", "block.create.linked_extractor.tooltip": "LINKED EXTRACTOR",
"block.create.linked_extractor.tooltip.summary": "从连接的箱子里自动将物品输出到外面,可以设置白名单过滤,直到上一次输出的物品被清空才会再次输出,可以使用无线红石信号终端控制.", "block.create.linked_extractor.tooltip.summary": "从连接的箱子里自动将物品输出到外面,可以设置白名单过滤,直到上一次输出的物品被清空才会再次输出,可以使用无线红石信号终端控制.",
"block.create.linked_extractor.tooltip.condition1": "当无线红石信号激活时", "block.create.linked_extractor.tooltip.condition1": "当无线红石信号激活时",
@ -581,15 +1075,42 @@
"block.create.linked_extractor.tooltip.control2": "当右键方块侧面时", "block.create.linked_extractor.tooltip.control2": "当右键方块侧面时",
"block.create.linked_extractor.tooltip.action2": "手持任意物品为其设置频道,将接收无线红石终端相应频道,可以组合两个物品.", "block.create.linked_extractor.tooltip.action2": "手持任意物品为其设置频道,将接收无线红石终端相应频道,可以组合两个物品.",
"block.create.belt_funnel.tooltip": "BELT FUNNEL", "block.create.linked_transposer.tooltip": "LINKED TRANSPOSER",
"block.create.linked_transposer.tooltip.summary": "将绑定的物品栏中的物品传送到指定的物品栏.能够使用无线红石信号控制",
"block.create.linked_transposer.tooltip.condition1": "当无线红石信号触发时",
"block.create.linked_transposer.tooltip.behaviour1": "暂停传输",
"block.create.linked_transposer.tooltip.control1": "当右键过滤框时",
"block.create.linked_transposer.tooltip.action1": "将当前持有的物品数量的物品设置为物品过滤白名单且输出此数量的物品.",
"block.create.linked_transposer.tooltip.control2": "当右键频道框时",
"block.create.linked_transposer.tooltip.action2": "手持任意物品为其设置频道,将接收无线红石终端相应频道,可以组合两个物品.",
"block.create.belt_funnel.tooltip": "FUNNEL",
"block.create.belt_funnel.tooltip.summary": "接收传送带上的物品到连接的储存空间,必须放置在正对传送带的方向及高度.", "block.create.belt_funnel.tooltip.summary": "接收传送带上的物品到连接的储存空间,必须放置在正对传送带的方向及高度.",
"block.create.belt_funnel.tooltip.condition1": "接收传送带物品",
"block.create.belt_funnel.tooltip.behaviour1": "位于传送带边上或者终点时,传送带漏斗可以将物品从传送带上拿出. 如果在传送带边上且传动带漏斗阻塞时,不会阻塞传送带.",
"block.create.belt_tunnel.tooltip": "BELT TUNNEL",
"block.create.belt_tunnel.tooltip.summary": "这是一种美观的方块,能够让传送带穿过墙壁,但是传送带必须被黄铜箱包装.如果启动了同步模式,且旁边有传送带隧道时,将会等待另一个周围的传送带隧道的物品,一起通过. [Ctrl]",
"block.create.belt_tunnel.tooltip.control1": "当使用扳手右键前面时",
"block.create.belt_tunnel.tooltip.action1": "启动同步模式",
"block.create.belt_tunnel.tooltip.control2": "当使用扳手右键边上时",
"block.create.belt_tunnel.tooltip.action2": "当传送带隧道出现玻璃窗时,右键将会关闭玻璃窗",
"block.create.brass_casing.tooltip": "BRASS CASING",
"block.create.brass_casing.tooltip.summary": "一种坚固的外壳,有多种用处.",
"block.create.brass_casing.tooltip.condition1": "当被使用在传送带上时",
"block.create.brass_casing.tooltip.behaviour1": "当传送带上装配有黄铜箱时,可以提供传送带两侧安装传送带隧道、提取器、传输器、传送带漏斗等物品",
"block.create.entity_detector.tooltip": "BELT OBSERVER", "block.create.entity_detector.tooltip": "BELT OBSERVER",
"block.create.entity_detector.tooltip.summary": "检测前方传送带上的物品经过时输出红石信号,比如在上方放置活塞.", "block.create.entity_detector.tooltip.summary": "检测传送带上经过观察者的物品、实体. 使用扳手将可以修改它的模式.",
"block.create.entity_detector.tooltip.condition1": "当物品和过滤器相匹配时", "block.create.entity_detector.tooltip.condition1": "观测模式",
"block.create.entity_detector.tooltip.behaviour1": "提供一个短暂的红石信号,空置过滤器匹配所有通过的物品.", "block.create.entity_detector.tooltip.behaviour1": "当观测到传送带上有物品或者实体时,将会提供红石信号",
"block.create.entity_detector.tooltip.control1": "右键方块时", "block.create.entity_detector.tooltip.condition2": "脉冲模式",
"block.create.entity_detector.tooltip.action1": "将当前持有的物品设置为物品过滤白名单,将只会对此物品做出反应(指红石信号.", "block.create.entity_detector.tooltip.behaviour2": "当观察者中心线匹配到物品时,将会发出脉冲",
"block.create.entity_detector.tooltip.condition3": "弹射模式",
"block.create.entity_detector.tooltip.behaviour3": "将匹配的物品弹射出传送带. 如果目标位置被堵塞,物品将会停下等待弹射.",
"block.create.entity_detector.tooltip.condition4": "分裂模式",
"block.create.entity_detector.tooltip.behaviour4": "将匹配的物品分成两部分,一部分弹射到传送带出.",
"block.create.pulse_repeater.tooltip": "PULSE REPEATER", "block.create.pulse_repeater.tooltip": "PULSE REPEATER",
"block.create.pulse_repeater.tooltip.summary": "一个简单的电路,将通过的红石信号变为1tick.", "block.create.pulse_repeater.tooltip.summary": "一个简单的电路,将通过的红石信号变为1tick.",
@ -597,5 +1118,56 @@
"block.create.flexpeater.tooltip": "FLEX REPEATER", "block.create.flexpeater.tooltip": "FLEX REPEATER",
"block.create.flexpeater.tooltip.summary": "高级中继器,最大可设置30分钟延迟", "block.create.flexpeater.tooltip.summary": "高级中继器,最大可设置30分钟延迟",
"block.create.flexpulsepeater.tooltip": "FLEX PULSE REPEATER",
"block.create.flexpulsepeater.tooltip.summary": "一种红石中继器可以调节延时至30m",
"block.create.analog_lever.tooltip": "ANALOG LEVER",
"block.create.analog_lever.tooltip.summary": "一种可以调节信号强度的推杆",
"block.create.toggle_latch.tooltip": "POWERED TOGGLE LATCH",
"block.create.toggle_latch.tooltip.summary": "一种拉杆,在红石电路中可以用作触发器",
"block.create.redstone_latch.tooltip": "POWERED LATCH",
"block.create.redstone_latch.tooltip.summary": "一种拉杆,在红石电路中用作锁存器,从后方输入将会启用这个拉杆,从侧边输入将会重置这个拉杆.",
"block.create.speed_gauge.tooltip": "SPEEDOMETER",
"block.create.speed_gauge.tooltip.summary": "测量并展示连接网络的旋转速度,支持使用红石比较器",
"block.create.speed_gauge.tooltip.condition1": "当旋转时",
"block.create.speed_gauge.tooltip.behaviour1": "将会用颜色展示速度的大小,绿-慢、蓝-中、紫-快.",
"block.create.stress_gauge.tooltip": "STRESSOMETER",
"block.create.stress_gauge.tooltip.summary": "测量并展示连接网络的应力值,支持红石比较器",
"block.create.stress_gauge.tooltip.condition1": "当旋转时",
"block.create.stress_gauge.tooltip.behaviour1": "将会用颜色展示承受的应力",
"item.create.refined_radiance.tooltip": "REFINED RADIANCE",
"item.create.refined_radiance.tooltip.summary": "一种用光辉锻造的化合物材料.",
"item.create.shadow_steel.tooltip": "SHADOW STEEL",
"item.create.shadow_steel.tooltip.summary": "一种用虚空锻造的化合物材料.",
"item.create.slot_cover.tooltip": "SLOT COVER",
"item.create.slot_cover.tooltip.summary": "用来标记制造机不放入物品.",
"tool.create.shadow_steel.tooltip": "SHADOW STEEL TOOLS",
"tool.create.shadow_steel.tooltip.summary": "一种强力的武器,破坏方块将会掉落更多物品. 杀死怪物将会掉落更多经验值",
"tool.create.blazing.tooltip": "BLAZING TOOLS",
"tool.create.blazing.tooltip.summary": "将会融化破坏的方块,并且点燃怪物,在地狱中不会减少耐久",
"tool.create.rose_quartz.tooltip": "ROSE QUARTZ TOOLS",
"tool.create.rose_quartz.tooltip.summary": "这个工具将会让你更容易使用副手放置或破坏方块.",
"item.create.logistical_controller_calculation.tooltip": "WIP",
"item.create.logistical_controller_request.tooltip": "WIP",
"item.create.logistical_controller_storage.tooltip": "WIP",
"item.create.logistical_controller_supply.tooltip": "WIP",
"item.create.logistical_controller_transactions.tooltip": "WIP",
"block.create.logistical_index.tooltip": "WIP",
"block.create.package_funnel.tooltip": "WIP",
"block.create.logisticians_table.tooltip": "WIP",
"item.create.logistical_dial.tooltip": "WIP",
"item.create.logistical_filter.tooltip": "WIP",
"itemGroup.create": "机械动力" "itemGroup.create": "机械动力"
} }