Compare commits

..

30 Commits

Author SHA1 Message Date
yueh c483bd17f5 Fixes #4089: Render cable core on straight lines of different types. (#4103) 2019-07-23 21:12:17 +02:00
yueh 92536fceb4 Fixes #4090 Portable cell incorrect empty itemstack handling (#4093) 2019-07-23 20:13:15 +02:00
yueh ded71cb2bd Fixes #4062: Rounding error due to float precision. (#4064) 2019-06-20 10:47:28 +02:00
yueh 41a4518c5b Fixes #4005: Persist cell after cleanup. (#4009) 2019-04-21 22:30:45 +02:00
yueh 87643094c3 Fixes #3925: Incorrect API JavaDoc (#4008)
`IGridBlock#getMachineRepresentation()` must be non null.
2019-04-21 22:30:35 +02:00
yueh 8a4c9b58e6 Fixes #3911: Incorrectly used string format. (#4007) 2019-04-21 22:30:21 +02:00
InterPlay 5436e6bf08 Added support for fluids in pt-BR lang file (#3904) 2019-04-21 13:20:57 +02:00
yueh 078112d97b Disable modmaven due to build issues for now (#4011) 2019-04-21 13:10:02 +02:00
yueh 46355a4e9b Fixes #3899: Put fluid interface into configured mode when needed. (#3903) 2019-01-15 12:52:12 +01:00
yueh eb389971a3 Fixes #3901: Ensure fluid terminal respects reported stacksizes. (#3902) 2019-01-15 12:52:00 +01:00
yueh a38ebf7c4d Fixes #3886: Initialise sleeping import bus in pulse mode. (#3887) 2018-12-26 23:28:17 +01:00
yueh dfcba264f3 Fixes #3880: Incorrect compare with empty itemstack. (#3882) 2018-12-25 21:21:19 +01:00
yueh d343ac47f5 Added CTM as actual soft dependency. (#3881) 2018-12-25 21:21:08 +01:00
yueh 05db930a4e Fixes #3821: Unconfigured level emitter now report all fluids. (#3875) 2018-12-24 14:44:40 +01:00
yueh 33bc0a6a3f Fixes #3776: Fixes dupe bug with cell upgrades. (#3874) 2018-12-24 14:11:45 +01:00
yueh f2f48a8d59 Fixes #3767: Fluid Annihilation plane too strict about leftover (#3872) 2018-12-23 23:33:15 +01:00
yueh 0f0af2349b Fixes #3866: Use blockstates to avoid the missing fluid block. (#3869) 2018-12-23 22:42:25 +01:00
yueh 32a4fcab77 Fixes #3768: Damageable items with nbt and without damage could crash. (#3867) 2018-12-23 22:42:09 +01:00
yueh a847a01d8a Feature #3832: Made onRequestChange() less ambiguous (#3833) 2018-12-23 22:41:52 +01:00
yueh ed643787df Updated gradle scripts (#3871)
Includes #3819
2018-12-23 22:41:11 +01:00
covers1624 524b26d2a2 Implement caching for facade item models. 2018-12-19 12:46:43 +01:00
covers1624 184b1f8efb Guard against models providing quads with null orientations. 2018-12-19 12:46:43 +01:00
E. Kim 06cca13087 Update ko_kr.lang (#3674) 2018-11-17 10:31:29 +01:00
徐晨曦 8e735e72ff Update zh_cn.lang (#3570) 2018-11-17 10:31:01 +01:00
yueh d3dd137570 Fixes #3817: Missing 1k Crafting Storage and Monitor from Network Status (#3818) 2018-11-11 13:11:45 +01:00
yueh 78e1126c38 Fixes #3814: IO Port no longer put to sleep on load when having work. (#3816) 2018-11-11 11:52:13 +01:00
yueh ebe3ff045d Fixes #3811: Display crafting unit as themself in the network monitor. (#3815) 2018-11-11 11:52:03 +01:00
yueh 6291a545c3 Fixes #3793: Limit filling fluid inventories to their max capacity. (#3794) 2018-10-21 11:18:02 +02:00
yueh 99fd5a9d53 Fixes #3790: Correctly handle fluids with NBT data. (#3791) 2018-10-21 11:17:27 +02:00
yueh 416c7d2683 Input P2P tunnels can now be assigned a new frequency. (#3765)
Shift right clicking an existing tunnel only allowed to copied the
stored frequency.

When shift right clicking now and the stored frequency being the same as
already stored one, it will now create a new one and save it to the memory
card. In other words doubling clicking will reset now, otherwise the old
behaviour is still kept.
2018-10-21 11:17:01 +02:00
43 changed files with 1141 additions and 715 deletions
+2 -2
View File
@@ -1,4 +1,4 @@
aeversion=rv5
aeversion=rv6
aechannel=alpha
aebuild=0
aegroup=appeng
@@ -26,7 +26,7 @@ top_version=1.12-1.4.23-16
cofhcore_version=1.12.2-4.5.2.19
crafttweaker_version=4.1.8.9
inventorytweaks_version=1.63
ctm_version=0.3.0.15
ctm_version=MC1.12.2-0.3.1.16
#########################################################
# Deployment #
+24 -16
View File
@@ -24,36 +24,44 @@ allprojects {
}
javadoc {
options.encoding = 'UTF-8'
options.charSet = 'UTF-8'
options.encoding = 'UTF-8'
options.charSet = 'UTF-8'
}
task javadocs(type: Javadoc) {
source = sourceSets.api.java
include "appeng/api/**"
source = sourceSets.api.java
include "appeng/api/**"
// Due to ForgeGradle having to be a special snowflake,
// we have to add some custom configurations to the normal compile configuration and hope it does not break.
classpath = configurations.compile + configurations.forgeGradleMc + configurations.forgeGradleMcDeps
// Due to ForgeGradle having to be a special snowflake,
// we have to add some custom configurations to the normal compile configuration and hope it does not break.
classpath = configurations.compile + configurations.forgeGradleMc + configurations.forgeGradleMcDeps
}
task javadocJar(type: Jar, dependsOn: javadocs) {
from javadoc.destinationDir
classifier = 'javadoc'
classifier = 'javadoc'
}
task apiJar(type: Jar) {
from sourceSets.api.java
include "appeng/api/**"
from sourceSets.api.java
include "appeng/api/**"
from sourceSets.api.output
include "appeng/api/**"
from sourceSets.api.output
include "appeng/api/**"
classifier = 'api'
classifier = 'api'
}
task sourceJar(type: Jar, overwrite: true) {
from sourceSets.api.allSource
from sourceSets.main.allSource
classifier = 'sources'
}
artifacts {
archives apiJar
archives javadocJar
archives sourceJar
archives apiJar
archives javadocJar
archives sourceJar
}
+5 -5
View File
@@ -64,10 +64,10 @@ repositories {
url "http://maven.blamejared.com/"
}
maven { // modmaven, maven proxy
name 'modmaven'
url "https://modmaven.k-4u.nl/"
}
//maven { // modmaven, maven proxy
// name 'modmaven'
// url "https://modmaven.k-4u.nl/"
//}
maven {
name = "CurseForge"
@@ -94,7 +94,7 @@ dependencies {
compileOnly "cofh:CoFHCore:${cofhcore_version}:deobf"
compileOnly "CraftTweaker2:CraftTweaker2-API:${crafttweaker_version}"
compileOnly "inventory-tweaks:InventoryTweaks:${inventorytweaks_version}:api"
compileOnly "team.chisel.ctm:CTM:MC1.12-${ctm_version}"
compileOnly "team.chisel.ctm:CTM:${ctm_version}"
// at runtime, use the full JEI jar
runtime "mezz.jei:jei_${minecraft_version}:${jei_version}"
@@ -29,5 +29,5 @@ package appeng.api.implementations.items;
*/
public enum MemoryCardMessages
{
INVALID_MACHINE, SETTINGS_LOADED, SETTINGS_SAVED, SETTINGS_CLEARED
INVALID_MACHINE, SETTINGS_LOADED, SETTINGS_SAVED, SETTINGS_RESET, SETTINGS_CLEARED
}
@@ -28,7 +28,6 @@ import java.util.EnumSet;
import javax.annotation.Nonnegative;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumFacing;
@@ -126,6 +125,6 @@ public interface IGridBlock
*
* @return the render item stack to use to render this node, null is valid, and will not show this node.
*/
@Nullable
@Nonnull
ItemStack getMachineRepresentation();
}
@@ -99,9 +99,18 @@ public interface ICraftingGrid extends IGridCache
/**
* is this item being crafted?
*
* @param aeStackInSlot item being crafted
* @param what item being crafted
*
* @return true if it is being crafting
*/
boolean isRequesting( IAEItemStack aeStackInSlot );
boolean isRequesting( IAEItemStack what );
/**
* The total amount being requested across all crafting cpus of a grid.
*
* @param what item being requested, ignores stacksize
*
* @return The total amount being requested.
*/
long requesting( IAEItemStack what );
}
@@ -45,6 +45,7 @@ public class FacadeBakedItemModel extends DelegateBakedModel
private final ItemStack textureStack;
private final FacadeBuilder facadeBuilder;
private List<BakedQuad> quads = null;
protected FacadeBakedItemModel( IBakedModel base, ItemStack textureStack, FacadeBuilder facadeBuilder )
{
@@ -60,9 +61,13 @@ public class FacadeBakedItemModel extends DelegateBakedModel
{
return Collections.emptyList();
}
List<BakedQuad> quads = new ArrayList<>();
quads.addAll( this.facadeBuilder.buildFacadeItemQuads( this.textureStack, EnumFacing.NORTH ) );
quads.addAll( this.getBaseModel().getQuads( state, side, rand ) );
if( quads == null )
{
quads = new ArrayList<>();
quads.addAll( this.facadeBuilder.buildFacadeItemQuads( this.textureStack, EnumFacing.NORTH ) );
quads.addAll( this.getBaseModel().getQuads( state, side, rand ) );
quads = Collections.unmodifiableList( quads );
}
return quads;
}
@@ -21,9 +21,12 @@ package appeng.client.render;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import javax.annotation.Nullable;
import it.unimi.dsi.fastutil.ints.Int2ObjectArrayMap;
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
import net.minecraft.block.state.IBlockState;
import net.minecraft.client.renderer.block.model.BakedQuad;
import net.minecraft.client.renderer.block.model.IBakedModel;
@@ -47,6 +50,7 @@ public class FacadeDispatcherBakedModel extends DelegateBakedModel
{
private final VertexFormat format;
private final FacadeBuilder facadeBuilder;
private final Int2ObjectMap<FacadeBakedItemModel> cache = new Int2ObjectArrayMap<>();
public FacadeDispatcherBakedModel( IBakedModel baseModel, VertexFormat format, FacadeBuilder facadeBuilder )
{
@@ -91,7 +95,15 @@ public class FacadeDispatcherBakedModel extends DelegateBakedModel
ItemStack textureItem = itemFacade.getTextureItem( stack );
return new FacadeBakedItemModel( FacadeDispatcherBakedModel.this.getBaseModel(), textureItem, FacadeDispatcherBakedModel.this.facadeBuilder );
int hash = Objects.hash( textureItem.getItem().getRegistryName(), textureItem.getMetadata(), textureItem.getTagCompound() );
FacadeBakedItemModel model = FacadeDispatcherBakedModel.this.cache.get( hash );
if( model == null )
{
model = new FacadeBakedItemModel(FacadeDispatcherBakedModel.this.getBaseModel(), textureItem, FacadeDispatcherBakedModel.this.facadeBuilder);
FacadeDispatcherBakedModel.this.cache.put(hash, model);
}
return model;
}
};
}
@@ -493,6 +493,11 @@ class CableBuilder
this.addCoveredConnection( facing, cableColor, connectionType, cableBusAdjacent, quadsOut );
return;
}
else if( connectionType == AECableType.DENSE_COVERED )
{
this.addDenseCoveredConnection( facing, cableColor, connectionType, cableBusAdjacent, quadsOut );
return;
}
CubeBuilder cubeBuilder = new CubeBuilder( this.format, quadsOut );
@@ -172,7 +172,7 @@ public class CableBusBakedModel implements IBakedModel
final AECableType secondType = sides.get( firstSide.getOpposite() );
return firstType == secondType;
return firstType == secondType && cableType == firstType && cableType == secondType;
}
private void addCableQuads( CableBusRenderState renderState, List<BakedQuad> quadsOut )
@@ -47,7 +47,7 @@ import appeng.container.slot.SlotRestrictedInput;
import appeng.tile.misc.TileCellWorkbench;
import appeng.util.Platform;
import appeng.util.helpers.ItemHandlerUtil;
import appeng.util.inv.WrapperLazyItemHandler;
import appeng.util.inv.WrapperSupplierItemHandler;
import appeng.util.iterators.NullIterator;
@@ -97,7 +97,7 @@ public class ContainerCellWorkbench extends ContainerUpgradeable
this.addSlotToContainer( new SlotRestrictedInput( SlotRestrictedInput.PlacableItemType.WORKBENCH_CELL, cell, 0, 152, 8, this.getPlayerInv() ) );
final IItemHandler inv = this.getUpgradeable().getInventoryByName( "config" );
final WrapperLazyItemHandler upgradeInventory = new WrapperLazyItemHandler( this::getCellUpgradeInventory );
final WrapperSupplierItemHandler upgradeInventory = new WrapperSupplierItemHandler( this::getCellUpgradeInventory );
// null, 3 * 8 );
int offset = 0;
@@ -60,31 +60,21 @@ public class ContainerMEPortableCell extends ContainerMEMonitorable
{
final ItemStack currentItem = this.slot < 0 ? this.getPlayerInv().getCurrentItem() : this.getPlayerInv().getStackInSlot( this.slot );
if( this.civ != null )
{
if( currentItem != this.civ.getItemStack() )
{
if( !currentItem.isEmpty() )
{
if( ItemStack.areItemsEqual( this.civ.getItemStack(), currentItem ) )
{
this.getPlayerInv().setInventorySlotContents( this.getPlayerInv().currentItem, this.civ.getItemStack() );
}
else
{
this.setValidContainer( false );
}
}
else
{
this.setValidContainer( false );
}
}
}
else
if( this.civ == null || currentItem.isEmpty() )
{
this.setValidContainer( false );
}
else if( this.civ != null && !this.civ.getItemStack().isEmpty() && currentItem != this.civ.getItemStack() )
{
if( ItemStack.areItemsEqual( this.civ.getItemStack(), currentItem ) )
{
this.getPlayerInv().setInventorySlotContents( this.getPlayerInv().currentItem, this.civ.getItemStack() );
}
else
{
this.setValidContainer( false );
}
}
// drain 1 ae t
this.ticks++;
+3 -1
View File
@@ -47,6 +47,8 @@ import net.minecraftforge.fml.common.event.FMLServerStoppedEvent;
import net.minecraftforge.fml.common.event.FMLServerStoppingEvent;
import net.minecraftforge.fml.common.network.NetworkRegistry;
import team.chisel.ctm.CTM;
import appeng.api.AEApi;
import appeng.core.crash.CrashInfo;
import appeng.core.crash.IntegrationCrashEnhancement;
@@ -81,7 +83,7 @@ public final class AppEng
private static final String FORGE_CURRENT_VERSION = ForgeVersion.majorVersion + "." + ForgeVersion.minorVersion + "." + ForgeVersion.revisionVersion + "." + ForgeVersion.buildVersion;
private static final String FORGE_MAX_VERSION = ( ForgeVersion.majorVersion + 1 ) + ".0.0.0";
public static final String MOD_DEPENDENCIES = "required-after:forge@[" + FORGE_CURRENT_VERSION + "," + FORGE_MAX_VERSION + ")";
public static final String MOD_DEPENDENCIES = "required-after:forge@[" + FORGE_CURRENT_VERSION + "," + FORGE_MAX_VERSION + ");after:ctm@[" + CTM.VERSION + ",);";
@Nonnull
private static final AppEng INSTANCE = new AppEng();
@@ -29,6 +29,7 @@ public enum PlayerMessages
InvalidMachine,
LoadedSettings,
SavedSettings,
ResetSettings,
MachineNotPowered,
isNowLocked,
@@ -128,7 +128,7 @@ public class FluidStackSizeRenderer
format.setDecimalFormatSymbols( symbols );
format.setRoundingMode( RoundingMode.DOWN );
return format.format( originalSize / 1000f );
return format.format( originalSize / 1000d );
}
}
@@ -27,11 +27,8 @@ import javax.annotation.Nonnull;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.init.Items;
import net.minecraft.inventory.IContainerListener;
import net.minecraft.item.ItemStack;
import net.minecraftforge.common.ForgeModContainer;
import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.FluidUtil;
import net.minecraftforge.fluids.capability.IFluidHandlerItem;
@@ -353,32 +350,24 @@ public class ContainerFluidTerminal extends AEBaseContainer implements IConfigMa
super.doAction( player, action, slot, id );
return;
}
ItemStack held = player.inventory.getItemStack();
final ItemStack held = player.inventory.getItemStack();
if( held.getCount() != 1 )
{
// only support stacksize 1 for now
return;
}
IFluidHandlerItem fh = FluidUtil.getFluidHandler( held );
final IFluidHandlerItem fh = FluidUtil.getFluidHandler( held );
if( fh == null )
{
// only fluid handlers items
return;
}
boolean isBucket = held.getItem() == Items.BUCKET || held.getItem() == Items.WATER_BUCKET || held.getItem() == Items.LAVA_BUCKET || held
.getItem() == Items.MILK_BUCKET || held.getItem() == ForgeModContainer.getInstance().universalBucket;
if( action == InventoryAction.FILL_ITEM && this.clientRequestedTargetFluid != null )
{
AEFluidStack stack = (AEFluidStack) this.clientRequestedTargetFluid.copy();
AELog.debug( "Filling %s with %s, %s mb", held.getDisplayName(), this.clientRequestedTargetFluid.getFluidStack().getLocalizedName(),
stack.getStackSize() );
if( isBucket && stack.getStackSize() < Fluid.BUCKET_VOLUME )
{ // Although buckets support less than a buckets worth of fluid, it does not display how much it holds
return;
}
final IAEFluidStack stack = this.clientRequestedTargetFluid.copy();
// Check how much we can store in the item
stack.setStackSize( Integer.MAX_VALUE );
@@ -386,16 +375,22 @@ public class ContainerFluidTerminal extends AEBaseContainer implements IConfigMa
stack.setStackSize( amountAllowed );
// Check if we can pull out of the system
IAEFluidStack canPull = Platform.poweredExtraction( this.getPowerSource(), this.monitor, stack, this.getActionSource(), Actionable.SIMULATE );
if( canPull == null || canPull.getStackSize() < 1 || ( isBucket && canPull.getStackSize() != Fluid.BUCKET_VOLUME ) )
final IAEFluidStack canPull = Platform.poweredExtraction( this.getPowerSource(), this.monitor, stack, this.getActionSource(), Actionable.SIMULATE );
if( canPull == null || canPull.getStackSize() < 1 )
{
return;
}
// How much could fit into the container
final int canFill = fh.fill( canPull.getFluidStack(), false );
if( canFill == 0 )
{
// Either we couldn't pull out of the system,
// or we are using a bucket and can only pull out less than a buckets worth of fluid
return;
}
// Now actually pull out of the system
IAEFluidStack pulled = Platform.poweredExtraction( this.getPowerSource(), this.monitor, stack, this.getActionSource() );
stack.setStackSize( canFill );
final IAEFluidStack pulled = Platform.poweredExtraction( this.getPowerSource(), this.monitor, stack, this.getActionSource() );
if( pulled == null || pulled.getStackSize() < 1 )
{
// Something went wrong
@@ -404,42 +399,55 @@ public class ContainerFluidTerminal extends AEBaseContainer implements IConfigMa
}
// Actually fill
fh.fill( pulled.getFluidStack(), true );
final int used = fh.fill( pulled.getFluidStack(), true );
if( used != canFill )
{
AELog.error( "Fluid item [%s] reported a different possible amount than it actually accepted.", held.getDisplayName() );
}
player.inventory.setItemStack( fh.getContainer() );
this.updateHeld( player );
}
else if( action == InventoryAction.EMPTY_ITEM )
{
// Empty held item
AELog.debug( "Emptying %s", held.getDisplayName() );
// See how much we can drain from the item
FluidStack extract = fh.drain( Integer.MAX_VALUE, false );
final FluidStack extract = fh.drain( Integer.MAX_VALUE, false );
if( extract == null || extract.amount < 1 )
{
return;
}
// Check if we can push into the system
IAEFluidStack notPushed = Platform.poweredInsert( this.getPowerSource(), this.monitor, AEFluidStack.fromFluidStack( extract ),
final IAEFluidStack notStorable = Platform.poweredInsert( this.getPowerSource(), this.monitor, AEFluidStack.fromFluidStack( extract ),
this.getActionSource(), Actionable.SIMULATE );
if( isBucket && notPushed != null && notPushed.getStackSize() > 0 )
{
// We can't push enough for the bucket
return;
}
IAEFluidStack notInserted = Platform.poweredInsert( this.getPowerSource(), this.monitor, AEFluidStack.fromFluidStack( extract ),
this.getActionSource() );
if( notInserted != null && notInserted.getStackSize() > 0 )
if( notStorable != null && notStorable.getStackSize() > 0 )
{
// Only try to extract the amount we DID insert
extract.amount -= Math.toIntExact( notInserted.getStackSize() );
final int toStore = (int) ( extract.amount - notStorable.getStackSize() );
final FluidStack storable = fh.drain( toStore, false );
if( storable == null || storable.amount == 0 )
{
return;
}
else
{
extract.amount = storable.amount;
}
}
// Actually drain
fh.drain( extract, true );
final FluidStack drained = fh.drain( extract, true );
extract.amount = drained.amount;
final IAEFluidStack notInserted = Platform.poweredInsert( this.getPowerSource(), this.monitor, AEFluidStack.fromFluidStack( extract ),
this.getActionSource() );
if( notInserted != null && notInserted.getStackSize() > 0 )
{
AELog.error( "Fluid item [%s] reported a different possible amount to drain than it actually provided.", held.getDisplayName() );
}
player.inventory.setItemStack( fh.getContainer() );
this.updateHeld( player );
@@ -255,6 +255,17 @@ public class DualityFluidInterface implements IGridTickable, IStorageMonitorable
private void readConfig()
{
this.hasConfig = false;
for( int i = 0; i < this.config.getSlots(); i++ )
{
if( this.config.getFluidInSlot( i ) != null )
{
this.hasConfig = true;
break;
}
}
final boolean had = this.hasWorkToDo();
for( int x = 0; x < NUMBER_OF_TANKS; x++ )
@@ -304,7 +304,8 @@ public class PartFluidAnnihilationPlane extends PartBasicState implements IGridT
{
return false;
}
return inv.injectItems( stack, Actionable.SIMULATE, this.mySrc ) == null;
final IAEFluidStack leftOver = inv.injectItems( stack, Actionable.SIMULATE, this.mySrc );
return leftOver == null || leftOver.getStackSize() == 0;
}
}
catch( final GridAccessException e )
@@ -22,11 +22,13 @@ import appeng.api.networking.events.MENetworkChannelsChanged;
import appeng.api.networking.events.MENetworkEventSubscribe;
import appeng.api.networking.events.MENetworkPowerStatusChange;
import appeng.api.networking.security.IActionSource;
import appeng.api.networking.storage.IBaseMonitor;
import appeng.api.networking.storage.IStackWatcher;
import appeng.api.networking.storage.IStackWatcherHost;
import appeng.api.parts.IPartCollisionHelper;
import appeng.api.parts.IPartModel;
import appeng.api.storage.IMEMonitor;
import appeng.api.storage.IMEMonitorHandlerReceiver;
import appeng.api.storage.IStorageChannel;
import appeng.api.storage.channels.IFluidStorageChannel;
import appeng.api.storage.data.IAEFluidStack;
@@ -48,7 +50,7 @@ import appeng.util.IConfigManagerHost;
import appeng.util.Platform;
public class PartFluidLevelEmitter extends PartUpgradeable implements IStackWatcherHost, IConfigManagerHost, IAEFluidInventory
public class PartFluidLevelEmitter extends PartUpgradeable implements IStackWatcherHost, IConfigManagerHost, IAEFluidInventory, IMEMonitorHandlerReceiver<IAEFluidStack>
{
@PartModels
public static final ResourceLocation MODEL_BASE_OFF = new ResourceLocation( AppEng.MOD_ID, "part/level_emitter_base_off" );
@@ -153,6 +155,41 @@ public class PartFluidLevelEmitter extends PartUpgradeable implements IStackWatc
return cf | ( this.prevState ? FLAG_ON : 0 );
}
@Override
public boolean isValid( final Object effectiveGrid )
{
try
{
return this.getProxy().getGrid() == effectiveGrid;
}
catch( final GridAccessException e )
{
return false;
}
}
@Override
public void postChange( final IBaseMonitor<IAEFluidStack> monitor, final Iterable<IAEFluidStack> change, final IActionSource actionSource )
{
this.updateReportingValue( (IMEMonitor<IAEFluidStack>) monitor );
}
@Override
public void onListUpdate()
{
try
{
final IStorageChannel<IAEFluidStack> channel = AEApi.instance().storage().getStorageChannel( IFluidStorageChannel.class );
final IMEMonitor<IAEFluidStack> inventory = this.getProxy().getStorage().getInventory( channel );
this.updateReportingValue( inventory );
}
catch( final GridAccessException e )
{
// ;P
}
}
private void updateState()
{
final boolean isOn = this.isLevelEmitterOn();
@@ -168,31 +205,53 @@ public class PartFluidLevelEmitter extends PartUpgradeable implements IStackWatc
private void configureWatchers()
{
final IFluidStorageChannel channel = AEApi.instance().storage().getStorageChannel( IFluidStorageChannel.class );
if( this.stackWatcher != null )
{
this.stackWatcher.reset();
final IAEFluidStack myStack = this.config.getFluidInSlot( 0 );
if( myStack != null )
try
{
this.stackWatcher.add( myStack );
if( myStack != null )
{
this.getProxy().getStorage().getInventory( channel ).removeListener( this );
this.stackWatcher.add( myStack );
}
else
{
this.getProxy()
.getStorage()
.getInventory( channel )
.addListener( this, this.getProxy().getGrid() );
}
final IMEMonitor<IAEFluidStack> inventory = this.getProxy().getStorage().getInventory( channel );
this.updateReportingValue( inventory );
}
catch( GridAccessException e )
{
// NOP
}
}
try
{
this.updateReportingValue(
this.getProxy().getStorage().getInventory( AEApi.instance().storage().getStorageChannel( IFluidStorageChannel.class ) ) );
}
catch( GridAccessException e )
{
// x.x
}
}
private void updateReportingValue( final IMEMonitor<IAEFluidStack> monitor )
{
final IAEFluidStack myStack = this.config.getFluidInSlot( 0 );
if( myStack != null )
if( myStack == null )
{
this.lastReportedValue = 0;
for( final IAEFluidStack st : monitor.getStorageList() )
{
this.lastReportedValue += st.getStackSize();
}
}
else
{
final IAEFluidStack r = monitor.getStorageList().findPrecise( myStack );
if( r == null )
@@ -17,10 +17,10 @@ public class AEFluidInventory implements IAEFluidTank
{
private final IAEFluidStack[] fluids;
private final IAEFluidInventory handler;
private final long capacity;
private final int capacity;
private IFluidTankProperties[] props = null;
public AEFluidInventory( final IAEFluidInventory handler, final int slots, final long capcity )
public AEFluidInventory( final IAEFluidInventory handler, final int slots, final int capcity )
{
this.fluids = new IAEFluidStack[slots];
this.handler = handler;
@@ -29,7 +29,7 @@ public class AEFluidInventory implements IAEFluidTank
public AEFluidInventory( final IAEFluidInventory handler, final int slots )
{
this( handler, slots, Long.MAX_VALUE );
this( handler, slots, Integer.MAX_VALUE );
}
@Override
@@ -110,45 +110,34 @@ public class AEFluidInventory implements IAEFluidTank
final IAEFluidStack fluid = this.fluids[slot];
if( !doFill )
{
if( fluid == null )
{
return resource.amount;
}
if( !fluid.equals( resource ) )
{
return 0;
}
return (int) Math.min( Math.min( this.capacity - fluid.getStackSize(), resource.amount ), Integer.MAX_VALUE );
}
if( fluid == null )
{
this.setFluidInSlot( slot, AEFluidStack.fromFluidStack( resource ) );
return resource.amount;
}
if( !fluid.equals( resource ) )
if( fluid != null && !fluid.equals( resource ) )
{
return 0;
}
long filled = this.capacity - fluid.getStackSize();
if( resource.amount < filled )
int amountToStore = this.capacity;
if( fluid != null )
{
fluid.setStackSize( fluid.getStackSize() + resource.amount );
filled = resource.amount;
}
else
{
fluid.setStackSize( this.capacity );
amountToStore -= fluid.getStackSize();
}
this.onContentChanged( slot );
return (int) filled;
amountToStore = Math.min( amountToStore, resource.amount );
if( doFill )
{
if( fluid == null )
{
this.setFluidInSlot( slot, AEFluidStack.fromFluidStack( resource ) );
}
else
{
fluid.setStackSize( fluid.getStackSize() + amountToStore );
this.onContentChanged( slot );
}
}
return amountToStore;
}
public FluidStack drain( final int slot, final FluidStack resource, final boolean doDrain )
@@ -363,7 +352,7 @@ public class AEFluidInventory implements IAEFluidTank
@Override
public int getCapacity()
{
return (int) Math.min( AEFluidInventory.this.capacity, Integer.MAX_VALUE );
return Math.min( AEFluidInventory.this.capacity, Integer.MAX_VALUE );
}
@Override
@@ -49,37 +49,41 @@ import appeng.util.item.AEStack;
public final class AEFluidStack extends AEStack<IAEFluidStack> implements IAEFluidStack, Comparable<AEFluidStack>
{
private final int myHash;
private final Fluid fluid;
private NBTTagCompound tagCompound;
private AEFluidStack( final AEFluidStack is )
private AEFluidStack( final AEFluidStack fluidStack )
{
this.fluid = is.fluid;
this.setStackSize( is.getStackSize() );
this.fluid = fluidStack.fluid;
this.setStackSize( fluidStack.getStackSize() );
// priority = is.priority;
this.setCraftable( is.isCraftable() );
this.setCountRequestable( is.getCountRequestable() );
this.setCraftable( fluidStack.isCraftable() );
this.setCountRequestable( fluidStack.getCountRequestable() );
this.myHash = is.myHash;
if( fluidStack.hasTagCompound() )
{
this.tagCompound = fluidStack.tagCompound.copy();
}
}
private AEFluidStack( @Nonnull final FluidStack is )
private AEFluidStack( @Nonnull final FluidStack fluidStack )
{
this.fluid = is.getFluid();
this.fluid = fluidStack.getFluid();
if( this.fluid == null )
{
throw new IllegalArgumentException( "Fluid is null." );
}
this.setStackSize( is.amount );
this.setStackSize( fluidStack.amount );
this.setCraftable( false );
this.setCountRequestable( 0 );
this.myHash = this.fluid.hashCode() ^ ( this.tagCompound == null ? 0 : System.identityHashCode( this.tagCompound ) );
if( fluidStack.tag != null )
{
this.tagCompound = fluidStack.tag.copy();
}
}
public static AEFluidStack fromFluidStack( final FluidStack input )
@@ -92,9 +96,9 @@ public final class AEFluidStack extends AEStack<IAEFluidStack> implements IAEFlu
return new AEFluidStack( input );
}
public static IAEFluidStack fromNBT( final NBTTagCompound i )
public static IAEFluidStack fromNBT( final NBTTagCompound data )
{
final FluidStack fluidStack = FluidStack.loadFluidStackFromNBT( i );
final FluidStack fluidStack = FluidStack.loadFluidStackFromNBT( data );
if( fluidStack == null )
{
@@ -102,15 +106,21 @@ public final class AEFluidStack extends AEStack<IAEFluidStack> implements IAEFlu
}
final AEFluidStack fluid = AEFluidStack.fromFluidStack( fluidStack );
fluid.setStackSize( i.getLong( "Cnt" ) );
fluid.setCountRequestable( i.getLong( "Req" ) );
fluid.setCraftable( i.getBoolean( "Craft" ) );
fluid.setStackSize( data.getLong( "Cnt" ) );
fluid.setCountRequestable( data.getLong( "Req" ) );
fluid.setCraftable( data.getBoolean( "Craft" ) );
if( fluid.hasTagCompound() )
{
fluid.tagCompound = fluid.tagCompound.copy();
}
return fluid;
}
public static IAEFluidStack fromPacket( final ByteBuf data ) throws IOException
public static IAEFluidStack fromPacket( final ByteBuf buffer ) throws IOException
{
final byte mask = data.readByte();
final byte mask = buffer.readByte();
final byte stackType = (byte) ( ( mask & 0x0C ) >> 2 );
final byte countReqType = (byte) ( ( mask & 0x30 ) >> 4 );
final boolean isCraftable = ( mask & 0x40 ) > 0;
@@ -119,26 +129,26 @@ public final class AEFluidStack extends AEStack<IAEFluidStack> implements IAEFlu
// don't send this...
final NBTTagCompound d = new NBTTagCompound();
final byte len2 = data.readByte();
final byte len2 = buffer.readByte();
final byte[] name = new byte[len2];
data.readBytes( name, 0, len2 );
buffer.readBytes( name, 0, len2 );
d.setString( "FluidName", new String( name, "UTF-8" ) );
d.setByte( "Count", (byte) 0 );
if( hasTagCompound )
{
final int len = data.readInt();
final int len = buffer.readInt();
final byte[] bd = new byte[len];
data.readBytes( bd );
buffer.readBytes( bd );
final DataInputStream di = new DataInputStream( new ByteArrayInputStream( bd ) );
d.setTag( "tag", CompressedStreamTools.read( di ) );
d.setTag( "Tag", CompressedStreamTools.read( di ) );
}
final long stackSize = getPacketValue( stackType, data );
final long countRequestable = getPacketValue( countReqType, data );
final long stackSize = getPacketValue( stackType, buffer );
final long countRequestable = getPacketValue( countReqType, buffer );
final FluidStack fluidStack = FluidStack.loadFluidStackFromNBT( d );
@@ -168,51 +178,21 @@ public final class AEFluidStack extends AEStack<IAEFluidStack> implements IAEFlu
}
@Override
public void writeToNBT( final NBTTagCompound i )
public void writeToNBT( final NBTTagCompound data )
{
/*
* Mojang Fucked this over ; GC Optimization - Ugly Yes, but it saves a lot in the memory department.
*/
data.setString( "FluidName", this.fluid.getName() );
data.setByte( "Count", (byte) 0 );
data.setLong( "Cnt", this.getStackSize() );
data.setLong( "Req", this.getCountRequestable() );
data.setBoolean( "Craft", this.isCraftable() );
/*
* NBTBase FluidName = i.getTag( "FluidName" ); NBTBase Count = i.getTag( "Count" ); NBTBase Cnt = i.getTag(
* "Cnt" ); NBTBase Req = i.getTag( "Req" ); NBTBase Craft = i.getTag( "Craft" );
*/
/*
* if ( FluidName != null && FluidName instanceof NBTTagString ) ((NBTTagString) FluidName).data = (String)
* this.fluid.getName(); else
*/
i.setString( "FluidName", this.fluid.getName() );
/*
* if ( Count != null && Count instanceof NBTTagByte ) ((NBTTagByte) Count).data = (byte) 0; else
*/
i.setByte( "Count", (byte) 0 );
/*
* if ( Cnt != null && Cnt instanceof NBTTagLong ) ((NBTTagLong) Cnt).data = this.stackSize; else
*/
i.setLong( "Cnt", this.getStackSize() );
/*
* if ( Req != null && Req instanceof NBTTagLong ) ((NBTTagLong) Req).data = this.stackSize; else
*/
i.setLong( "Req", this.getCountRequestable() );
/*
* if ( Craft != null && Craft instanceof NBTTagByte ) ((NBTTagByte) Craft).data = (byte) (this.isCraftable() ?
* 1 : 0); else
*/
i.setBoolean( "Craft", this.isCraftable() );
if( this.tagCompound != null )
if( this.hasTagCompound() )
{
i.setTag( "tag", this.tagCompound );
data.setTag( "Tag", this.tagCompound );
}
else
{
i.removeTag( "tag" );
data.removeTag( "Tag" );
}
}
@@ -255,29 +235,43 @@ public final class AEFluidStack extends AEStack<IAEFluidStack> implements IAEFlu
}
@Override
public int compareTo( final AEFluidStack b )
public int compareTo( final AEFluidStack other )
{
final int diff = this.hashCode() - b.hashCode();
return diff > 0 ? 1 : ( diff < 0 ? -1 : 0 );
if( this.fluid != other.fluid )
{
return this.fluid.getName().compareTo( other.fluid.getName() );
}
if( Platform.itemComparisons().isNbtTagEqual( this.tagCompound, other.tagCompound ) )
{
return 0;
}
return this.tagCompound.hashCode() - other.tagCompound.hashCode();
}
@Override
public int hashCode()
{
return this.myHash;
final int prime = 31;
int result = 1;
result = prime * result + ( ( this.fluid == null ) ? 0 : this.fluid.hashCode() );
result = prime * result + ( ( this.tagCompound == null ) ? 0 : this.tagCompound.hashCode() );
return result;
}
@Override
public boolean equals( final Object ia )
public boolean equals( final Object other )
{
if( ia instanceof AEFluidStack )
if( other instanceof AEFluidStack )
{
final AEFluidStack is = (AEFluidStack) ia;
final AEFluidStack is = (AEFluidStack) other;
return is.fluid == this.fluid && Platform.itemComparisons().isNbtTagEqual( this.tagCompound, is.tagCompound );
}
else if( ia instanceof FluidStack )
else if( other instanceof FluidStack )
{
final FluidStack is = (FluidStack) ia;
final FluidStack is = (FluidStack) other;
return is.getFluid() == this.fluid && Platform.itemComparisons().isNbtTagEqual( this.tagCompound, is.tag );
}
return false;
@@ -286,7 +280,7 @@ public final class AEFluidStack extends AEStack<IAEFluidStack> implements IAEFlu
@Override
public String toString()
{
return this.getFluidStack().toString();
return this.getStackSize() + "x" + this.getFluidStack().getFluid().getName() + " " + this.tagCompound;
}
@Override
@@ -298,11 +292,8 @@ public final class AEFluidStack extends AEStack<IAEFluidStack> implements IAEFlu
@Override
public FluidStack getFluidStack()
{
final FluidStack is = new FluidStack( this.fluid, (int) Math.min( Integer.MAX_VALUE, this.getStackSize() ) );
if( this.tagCompound != null )
{
is.tag = this.tagCompound.copy();
}
final int amount = (int) Math.min( Integer.MAX_VALUE, this.getStackSize() );
final FluidStack is = new FluidStack( this.fluid, amount, this.tagCompound );
return is;
}
@@ -327,24 +318,24 @@ public final class AEFluidStack extends AEStack<IAEFluidStack> implements IAEFlu
}
@Override
public void writeToPacket( final ByteBuf i ) throws IOException
public void writeToPacket( final ByteBuf buffer ) throws IOException
{
final byte mask = (byte) ( ( this.getType( this.getStackSize() ) << 2 ) | ( this
.getType( this.getCountRequestable() ) << 4 ) | ( (byte) ( this.isCraftable() ? 1 : 0 ) << 6 ) | ( this.hasTagCompound() ? 1 : 0 ) << 7 );
i.writeByte( mask );
buffer.writeByte( mask );
this.writeToStream( i );
this.writeToStream( buffer );
this.putPacketValue( i, this.getStackSize() );
this.putPacketValue( i, this.getCountRequestable() );
this.putPacketValue( buffer, this.getStackSize() );
this.putPacketValue( buffer, this.getCountRequestable() );
}
private void writeToStream( final ByteBuf i ) throws IOException
private void writeToStream( final ByteBuf buffer ) throws IOException
{
final byte[] name = this.fluid.getName().getBytes( "UTF-8" );
i.writeByte( (byte) name.length );
i.writeBytes( name );
buffer.writeByte( (byte) name.length );
buffer.writeBytes( name );
if( this.hasTagCompound() )
{
final ByteArrayOutputStream bytes = new ByteArrayOutputStream();
@@ -355,8 +346,8 @@ public final class AEFluidStack extends AEStack<IAEFluidStack> implements IAEFlu
final byte[] tagBytes = bytes.toByteArray();
final int size = tagBytes.length;
i.writeInt( size );
i.writeBytes( tagBytes );
buffer.writeInt( size );
buffer.writeBytes( tagBytes );
}
}
}
@@ -25,6 +25,7 @@ import net.minecraft.client.util.ITooltipFlag;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.ActionResult;
import net.minecraft.util.EnumActionResult;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.EnumHand;
@@ -174,6 +175,9 @@ public class ToolMemoryCard extends AEBaseItem implements IMemoryCard
case SETTINGS_SAVED:
player.sendMessage( PlayerMessages.SavedSettings.get() );
break;
case SETTINGS_RESET:
player.sendMessage( PlayerMessages.ResetSettings.get() );
break;
default:
}
}
@@ -185,9 +189,7 @@ public class ToolMemoryCard extends AEBaseItem implements IMemoryCard
{
if( !w.isRemote )
{
final IMemoryCard mem = (IMemoryCard) player.getHeldItem( hand ).getItem();
mem.notifyUser( player, MemoryCardMessages.SETTINGS_CLEARED );
player.getHeldItem( hand ).setTagCompound( null );
this.clearCard( player, w, hand );
}
return EnumActionResult.SUCCESS;
}
@@ -197,9 +199,31 @@ public class ToolMemoryCard extends AEBaseItem implements IMemoryCard
}
}
@Override
public ActionResult<ItemStack> onItemRightClick( World w, EntityPlayer player, EnumHand hand )
{
if( player.isSneaking() )
{
if( !w.isRemote )
{
this.clearCard( player, w, hand );
}
}
return super.onItemRightClick( w, player, hand );
}
@Override
public boolean doesSneakBypassUse( final ItemStack itemstack, final IBlockAccess world, final BlockPos pos, final EntityPlayer player )
{
return true;
}
private void clearCard( final EntityPlayer player, final World w, final EnumHand hand )
{
final IMemoryCard mem = (IMemoryCard) player.getHeldItem( hand ).getItem();
mem.notifyUser( player, MemoryCardMessages.SETTINGS_CLEARED );
player.getHeldItem( hand ).setTagCompound( null );
}
}
@@ -68,23 +68,24 @@ public class ToolEntropyManipulator extends AEBasePoweredItem implements IBlockT
this.coolDown = new HashMap<>();
this.coolDown.put( new InWorldToolOperationIngredient( Blocks.STONE.getDefaultState() ),
new InWorldToolOperationResult( new ItemStack( Blocks.COBBLESTONE ) ) );
new InWorldToolOperationResult( Blocks.COBBLESTONE.getDefaultState() ) );
this.coolDown.put( new InWorldToolOperationIngredient( Blocks.STONEBRICK.getDefaultState() ),
new InWorldToolOperationResult( new ItemStack( Blocks.STONEBRICK, 1, 2 ) ) );
this.coolDown.put( new InWorldToolOperationIngredient( Blocks.LAVA, true ), new InWorldToolOperationResult( new ItemStack( Blocks.OBSIDIAN ) ) );
new InWorldToolOperationResult( Blocks.STONEBRICK.getStateFromMeta( 2 ) ) );
this.coolDown.put( new InWorldToolOperationIngredient( Blocks.LAVA, true ), new InWorldToolOperationResult( Blocks.OBSIDIAN.getDefaultState() ) );
this.coolDown.put( new InWorldToolOperationIngredient( Blocks.FLOWING_LAVA, true ),
new InWorldToolOperationResult( new ItemStack( Blocks.OBSIDIAN ) ) );
this.coolDown.put( new InWorldToolOperationIngredient( Blocks.GRASS, true ), new InWorldToolOperationResult( new ItemStack( Blocks.DIRT ) ) );
new InWorldToolOperationResult( Blocks.OBSIDIAN.getDefaultState() ) );
this.coolDown.put( new InWorldToolOperationIngredient( Blocks.GRASS, true ), new InWorldToolOperationResult( Blocks.DIRT.getDefaultState() ) );
final List<ItemStack> snowBalls = new ArrayList<>();
snowBalls.add( new ItemStack( Items.SNOWBALL ) );
this.coolDown.put( new InWorldToolOperationIngredient( Blocks.FLOWING_WATER, true ), new InWorldToolOperationResult( ItemStack.EMPTY, snowBalls ) );
this.coolDown.put( new InWorldToolOperationIngredient( Blocks.WATER, true ), new InWorldToolOperationResult( new ItemStack( Blocks.ICE ) ) );
this.coolDown.put( new InWorldToolOperationIngredient( Blocks.FLOWING_WATER, true ), new InWorldToolOperationResult( null, snowBalls ) );
this.coolDown.put( new InWorldToolOperationIngredient( Blocks.WATER, true ), new InWorldToolOperationResult( Blocks.ICE.getDefaultState() ) );
this.heatUp.put( new InWorldToolOperationIngredient( Blocks.ICE.getDefaultState() ), new InWorldToolOperationResult( new ItemStack( Blocks.WATER ) ) );
this.heatUp.put( new InWorldToolOperationIngredient( Blocks.ICE.getDefaultState() ), new InWorldToolOperationResult( Blocks.WATER.getDefaultState() ) );
this.heatUp.put( new InWorldToolOperationIngredient( Blocks.FLOWING_WATER, true ), new InWorldToolOperationResult() );
this.heatUp.put( new InWorldToolOperationIngredient( Blocks.WATER, true ), new InWorldToolOperationResult() );
this.heatUp.put( new InWorldToolOperationIngredient( Blocks.SNOW, true ), new InWorldToolOperationResult( new ItemStack( Blocks.FLOWING_WATER ) ) );
this.heatUp.put( new InWorldToolOperationIngredient( Blocks.SNOW, true ),
new InWorldToolOperationResult( Blocks.FLOWING_WATER.getStateFromMeta( 7 ) ) );
}
private static class InWorldToolOperationIngredient
@@ -135,10 +136,9 @@ public class ToolEntropyManipulator extends AEBasePoweredItem implements IBlockT
r = this.heatUp.get( new InWorldToolOperationIngredient( state.getBlock(), true ) );
}
if( !r.getBlockItem().isEmpty() )
if( r.getBlockState() != null )
{
final Block blk = Block.getBlockFromItem( r.getBlockItem().getItem() );
w.setBlockState( pos, blk.getStateFromMeta( r.getBlockItem().getItemDamage() ), 3 );
w.setBlockState( pos, r.getBlockState(), 3 );
}
else
{
@@ -172,10 +172,9 @@ public class ToolEntropyManipulator extends AEBasePoweredItem implements IBlockT
r = this.coolDown.get( new InWorldToolOperationIngredient( state.getBlock(), true ) );
}
if( !r.getBlockItem().isEmpty() )
if( r.getBlockState() != null )
{
final Block blk = Block.getBlockFromItem( r.getBlockItem().getItem() );
w.setBlockState( pos, blk.getStateFromMeta( r.getBlockItem().getItemDamage() ), 3 );
w.setBlockState( pos, r.getBlockState(), 3 );
}
else
{
@@ -326,14 +325,13 @@ public class ToolEntropyManipulator extends AEBasePoweredItem implements IBlockT
w.playSound( p, pos.getX() + 0.5D, pos.getY() + 0.5D, pos.getZ() + 0.5D, SoundEvents.ITEM_FLINTANDSTEEL_USE, SoundCategory.PLAYERS, 1.0F,
itemRand.nextFloat() * 0.4F + 0.8F );
if( or.getBlockItem().isEmpty() )
if( or.getBlockState() == null )
{
w.setBlockState( pos, Platform.AIR_BLOCK.getDefaultState(), 3 );
}
else
{
final Block blk = Block.getBlockFromItem( or.getBlockItem().getItem() );
w.setBlockState( pos, blk.getStateFromMeta( or.getBlockItem().getItemDamage() ), 3 );
w.setBlockState( pos, or.getBlockState(), 3 );
}
if( or.getDrops() != null )
+11 -5
View File
@@ -576,15 +576,21 @@ public class CraftingGridCache implements ICraftingGrid, ICraftingProviderHelper
@Override
public boolean isRequesting( final IAEItemStack what )
{
return this.requesting( what ) > 0;
}
@Override
public long requesting( IAEItemStack what )
{
long requested = 0;
for( final CraftingCPUCluster cluster : this.craftingCPUClusters )
{
if( cluster.isMaking( what ) )
{
return true;
}
final IAEItemStack stack = cluster.making( what );
requested += stack != null ? stack.getStackSize() : 0;
}
return false;
return requested;
}
public List<ICraftingMedium> getMediums( final ICraftingPatternDetails key )
@@ -28,7 +28,6 @@ import java.util.Map;
import java.util.Map.Entry;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import net.minecraft.inventory.InventoryCrafting;
import net.minecraft.item.ItemStack;
@@ -300,7 +299,7 @@ public final class CraftingCPUCluster implements IAECluster, ICraftingCPU
this.updateElapsedTime( what );
this.markDirty();
this.postCraftingStatusChange( is );
this.postCraftingStatusChange( what.copy().setStackSize( -what.getStackSize() ) );
if( this.finalOutput.equals( what ) )
{
@@ -332,6 +331,7 @@ public final class CraftingCPUCluster implements IAECluster, ICraftingCPU
what.decStackSize( is.getStackSize() );
is.setStackSize( 0 );
this.postCraftingStatusChange( insert.copy().setStackSize( -insert.getStackSize() ) );
if( this.finalOutput.equals( insert ) )
{
@@ -556,7 +556,9 @@ public final class CraftingCPUCluster implements IAECluster, ICraftingCPU
this.myLastLink = null;
this.tasks.clear();
final ImmutableSet<IAEItemStack> items = ImmutableSet.copyOf( this.waitingFor );
// final ImmutableSet<IAEItemStack> items = ImmutableSet.copyOf( this.waitingFor );
final List<IAEItemStack> items = new ArrayList<>( this.waitingFor.size() );
this.waitingFor.forEach( stack -> items.add( stack.copy().setStackSize( -stack.getStackSize() ) ) );
this.waitingFor.resetStatus();
@@ -1304,10 +1306,9 @@ public final class CraftingCPUCluster implements IAECluster, ICraftingCPU
return this.getCore().getWorld();
}
public boolean isMaking( final IAEItemStack what )
public IAEItemStack making( final IAEItemStack what )
{
final IAEItemStack wat = this.waitingFor.findPrecise( what );
return wat != null && wat.getStackSize() > 0;
return this.waitingFor.findPrecise( what );
}
public void breakCluster()
@@ -192,16 +192,29 @@ public abstract class AbstractCellInventory<T extends IAEStack<T>> implements IC
this.cellItems.resetStatus(); // clears totals and stuff.
final int types = (int) this.getStoredItemTypes();
boolean needsUpdate = false;
for( int slot = 0; slot < types; slot++ )
{
NBTTagCompound compoundTag = this.tagCompound.getCompoundTag( ITEM_SLOT_KEYS[slot] );
int stackSize = this.tagCompound.getInteger( ITEM_SLOT_COUNT_KEYS[slot] );
this.loadCellItem( compoundTag, stackSize );
needsUpdate |= !this.loadCellItem( compoundTag, stackSize );
}
if( needsUpdate )
{
this.saveChanges();
}
}
protected abstract void loadCellItem( NBTTagCompound compoundTag, int stackSize );
/**
* Load a single item.
*
* @param compoundTag
* @param stackSize
* @return true when successfully loaded
*/
protected abstract boolean loadCellItem( NBTTagCompound compoundTag, int stackSize );
@Override
public IItemList<T> getAvailableItems( final IItemList<T> out )
@@ -253,7 +253,7 @@ public class BasicCellInventory<T extends IAEStack<T>> extends AbstractCellInven
}
@Override
protected void loadCellItem( NBTTagCompound compoundTag, int stackSize )
protected boolean loadCellItem( NBTTagCompound compoundTag, int stackSize )
{
// Now load the item stack
final T t;
@@ -263,7 +263,7 @@ public class BasicCellInventory<T extends IAEStack<T>> extends AbstractCellInven
if( t == null )
{
AELog.warn( "Removing item " + compoundTag + " from storage cell because the associated item type couldn't be found." );
return;
return false;
}
}
catch( Throwable ex )
@@ -271,7 +271,7 @@ public class BasicCellInventory<T extends IAEStack<T>> extends AbstractCellInven
if( AEConfig.instance().isRemoveCrashingItemsOnLoad() )
{
AELog.warn( ex, "Removing item " + compoundTag + " from storage cell because loading the ItemStack crashed." );
return;
return false;
}
throw ex;
}
@@ -282,5 +282,7 @@ public class BasicCellInventory<T extends IAEStack<T>> extends AbstractCellInven
{
this.cellItems.add( t );
}
return true;
}
}
@@ -140,7 +140,7 @@ public class PartImportBus extends PartSharedItemBus implements IInventoryDestin
@Override
public TickingRequest getTickingRequest( final IGridNode node )
{
return new TickingRequest( TickRates.ImportBus.getMin(), TickRates.ImportBus.getMax(), this.getHandler() == null, false );
return new TickingRequest( TickRates.ImportBus.getMin(), TickRates.ImportBus.getMax(), this.isSleeping(), false );
}
@Override
@@ -138,8 +138,8 @@ class ItemHandlerAdapter implements IMEInventory<IAEItemStack>, IBaseMonitor<IAE
{
// Something broke. It should never return more than we requested...
// We're going to silently eat the remainder
AELog.warn( "Mod that provided item handler %1 is broken. Returned %2 items, even though we requested %3.",
this.itemHandler.getClass().getSimpleName(), extracted.getCount(), remainingCurrentSlot );
AELog.warn( "Mod that provided item handler %s is broken. Returned %s items while only requesting %d.",
this.itemHandler.getClass().getName(), extracted.toString(), remainingCurrentSlot );
extracted.setCount( remainingCurrentSlot );
}
@@ -336,15 +336,18 @@ public abstract class PartP2PTunnel<T extends PartP2PTunnel> extends PartBasicSt
}
final IMemoryCard mc = (IMemoryCard) is.getItem();
final NBTTagCompound data = new NBTTagCompound();
final NBTTagCompound data = mc.getData( is );
final short storedFrequency = data.getShort( "freq" );
short newFreq = this.getFrequency();
final boolean wasOutput = this.isOutput();
this.setOutput( false );
final boolean needsNewFrequency = wasOutput || this.getFrequency() == 0 || storedFrequency == newFreq;
try
{
if( wasOutput || this.getFrequency() == 0 )
if( needsNewFrequency )
{
newFreq = this.getProxy().getP2P().newFrequency();
}
@@ -373,7 +376,14 @@ public abstract class PartP2PTunnel<T extends PartP2PTunnel> extends PartBasicSt
data.setIntArray( "colorCode", colorCode );
mc.setMemoryCardContents( is, type + ".name", data );
mc.notifyUser( player, MemoryCardMessages.SETTINGS_SAVED );
if( needsNewFrequency )
{
mc.notifyUser( player, MemoryCardMessages.SETTINGS_RESET );
}
else
{
mc.notifyUser( player, MemoryCardMessages.SETTINGS_SAVED );
}
return true;
}
return false;
@@ -46,7 +46,6 @@ public class Quad implements IVertexProducer, ISmartVertexConsumer
public CachedFormat format;
public int tintIndex = -1;
// TODO, sometimes this is null because people don't do models properly.
public EnumFacing orientation;
public boolean diffuseLighting = true;
public TextureAtlasSprite sprite;
@@ -130,6 +129,10 @@ public class Quad implements IVertexProducer, ISmartVertexConsumer
{
this.vertexIndex = 0;
this.full = true;
if(orientation == null)
{
calculateOrientation(false);
}
}
}
}
@@ -195,31 +198,41 @@ public class Quad implements IVertexProducer, ISmartVertexConsumer
vec[1] = (float) MathHelper.clamp( vec[1], bb.minY, bb.maxY );
vec[2] = (float) MathHelper.clamp( vec[2], bb.minZ, bb.maxZ );
}
this.v1.set( this.vertices[3].vec );
this.t.set( this.vertices[1].vec );
this.v1.sub( this.t );
this.v2.set( this.vertices[2].vec );
this.t.set( this.vertices[0].vec );
this.v2.sub( this.t );
this.normal.cross( this.v2, this.v1 );
this.normal.normalize();
if( this.format.hasNormal )
{
for( Vertex vertex : this.vertices )
{
vertex.normal[0] = this.normal.x;
vertex.normal[1] = this.normal.y;
vertex.normal[2] = this.normal.z;
vertex.normal[3] = 0;
}
}
this.orientation = EnumFacing.getFacingFromVector( this.normal.x, this.normal.y, this.normal.z );
calculateOrientation(true);
}
/**
* Re-calculates the Orientation of this quad,
* optionally the normal vector.
*
* @param setNormal If the normal vector should be updated.
*/
public void calculateOrientation( boolean setNormal )
{
this.v1.set( this.vertices[3].vec );
this.t.set( this.vertices[1].vec );
this.v1.sub( this.t );
this.v2.set( this.vertices[2].vec );
this.t.set( this.vertices[0].vec );
this.v2.sub( this.t );
this.normal.cross( this.v2, this.v1 );
this.normal.normalize();
if( this.format.hasNormal && setNormal)
{
for( Vertex vertex : this.vertices )
{
vertex.normal[0] = this.normal.x;
vertex.normal[1] = this.normal.y;
vertex.normal[2] = this.normal.z;
vertex.normal[3] = 0;
}
}
this.orientation = EnumFacing.getFacingFromVector( this.normal.x, this.normal.y, this.normal.z );
}
/**
* Used to create a new quad complete copy of this one.
*
@@ -20,15 +20,18 @@ package appeng.tile.crafting;
import java.io.IOException;
import java.util.Optional;
import io.netty.buffer.ByteBuf;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.EnumFacing;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import appeng.api.AEApi;
import appeng.api.implementations.tiles.IColorableTile;
import appeng.api.storage.data.IAEItemStack;
import appeng.api.util.AEColor;
@@ -183,4 +186,12 @@ public class TileCraftingMonitorTile extends TileCraftingTile implements IColora
{
this.updateList = updateList;
}
@Override
protected ItemStack getItemFromTile( final Object obj )
{
final Optional<ItemStack> is = AEApi.instance().definitions().blocks().craftingMonitor().maybeStack( 1 );
return is.orElseGet( () -> super.getItemFromTile( obj ) );
}
}
@@ -42,6 +42,9 @@ public class TileCraftingStorageTile extends TileCraftingTile
switch( storage )
{
case 1:
is = blocks.craftingStorage1k().maybeStack( 1 );
break;
case 4:
is = blocks.craftingStorage4k().maybeStack( 1 );
break;
@@ -85,6 +85,10 @@ public class TileCraftingTile extends AENetworkTile implements IAEMultiBlock, IP
{
is = AEApi.instance().definitions().blocks().craftingAccelerator().maybeStack( 1 );
}
else
{
is = AEApi.instance().definitions().blocks().craftingUnit().maybeStack( 1 );
}
return is.orElseGet( () -> super.getItemFromTile( obj ) );
}
@@ -266,7 +266,7 @@ public class TileIOPort extends AENetworkInvTile implements IUpgradeableHost, IC
@Override
public TickingRequest getTickingRequest( final IGridNode node )
{
return new TickingRequest( TickRates.IOPort.getMin(), TickRates.IOPort.getMax(), this.hasWork(), false );
return new TickingRequest( TickRates.IOPort.getMin(), TickRates.IOPort.getMax(), !this.hasWork(), false );
}
@Override
@@ -24,47 +24,48 @@ import java.util.List;
import net.minecraft.block.Block;
import net.minecraft.block.BlockAir;
import net.minecraft.block.state.IBlockState;
import net.minecraft.item.ItemStack;
public class InWorldToolOperationResult
{
private final ItemStack BlockItem;
private final List<ItemStack> Drops;
private final IBlockState blockState;
private final List<ItemStack> drops;
public InWorldToolOperationResult()
{
this.BlockItem = ItemStack.EMPTY;
this.Drops = null;
this.blockState = null;
this.drops = null;
}
public InWorldToolOperationResult( final ItemStack block, final List<ItemStack> drops )
public InWorldToolOperationResult( final IBlockState block, final List<ItemStack> drops )
{
this.BlockItem = block;
this.Drops = drops;
this.blockState = block;
this.drops = drops;
}
public InWorldToolOperationResult( final ItemStack block )
public InWorldToolOperationResult( final IBlockState block )
{
this.BlockItem = block;
this.Drops = null;
this.blockState = block;
this.drops = null;
}
public static InWorldToolOperationResult getBlockOperationResult( final ItemStack[] items )
{
final List<ItemStack> temp = new ArrayList<>();
ItemStack b = ItemStack.EMPTY;
IBlockState b = null;
for( final ItemStack l : items )
{
if( b.isEmpty() )
if( b == null )
{
final Block bl = Block.getBlockFromItem( l.getItem() );
if( bl != null && !( bl instanceof BlockAir ) )
{
b = l;
b = bl.getDefaultState();
continue;
}
}
@@ -75,13 +76,13 @@ public class InWorldToolOperationResult
return new InWorldToolOperationResult( b, temp );
}
public ItemStack getBlockItem()
public IBlockState getBlockState()
{
return this.BlockItem;
return this.blockState;
}
public List<ItemStack> getDrops()
{
return this.Drops;
return this.drops;
}
}
@@ -25,17 +25,16 @@ import net.minecraft.item.ItemStack;
import net.minecraftforge.items.IItemHandler;
import net.minecraftforge.items.IItemHandlerModifiable;
import appeng.util.Lazy;
import appeng.util.helpers.ItemHandlerUtil;
public class WrapperLazyItemHandler implements IItemHandlerModifiable
public class WrapperSupplierItemHandler implements IItemHandlerModifiable
{
private final Lazy<IItemHandler> sourceHandler;
private final Supplier<IItemHandler> sourceHandler;
public WrapperLazyItemHandler( Supplier<IItemHandler> source )
public WrapperSupplierItemHandler( Supplier<IItemHandler> source )
{
this.sourceHandler = new Lazy<>( source );
this.sourceHandler = source;
}
@Override
@@ -46,6 +46,11 @@ final class AESharedItemStack implements Comparable<AESharedItemStack>
this.itemDamage = itemStack.getItemDamage();
}
Bounds getBounds( final FuzzyMode fuzzy, final boolean ignoreMeta )
{
return new Bounds( this.itemStack, fuzzy, ignoreMeta );
}
ItemStack getDefinition()
{
return this.itemStack;
@@ -139,83 +144,122 @@ final class AESharedItemStack implements Comparable<AESharedItemStack>
return System.identityHashCode( this.itemStack.getTagCompound() ) - System.identityHashCode( b.getTagCompound() );
}
public AESharedItemStack getLowerBound( final FuzzyMode fuzzy, final boolean ignoreMeta )
/**
* Creates the lower and upper bounds for a specific shared itemstack.
*/
public static final class Bounds
{
Preconditions.checkState( this.itemStack.getCount() == 1, "ItemStack#getCount() has to be 1" );
final ItemStack newDef = this.itemStack.copy();
/**
* Bounds enforced by {@link ItemStack#isEmpty()}
*/
private static final int MIN_DAMAGE_VALUE = 0;
private static final int MAX_DAMAGE_VALUE = 65535;
if( ignoreMeta )
private final AESharedItemStack lower;
private final AESharedItemStack upper;
public Bounds( final ItemStack stack, final FuzzyMode fuzzy, final boolean ignoreMeta )
{
newDef.setItemDamage( 0 );
Preconditions.checkState( !stack.isEmpty(), "ItemStack#isEmpty() has to be false" );
Preconditions.checkState( stack.getCount() == 1, "ItemStack#getCount() has to be 1" );
final NBTTagCompound tag = stack.hasTagCompound() ? stack.getTagCompound() : null;
this.lower = this.makeLowerBound( stack, tag, fuzzy, ignoreMeta );
this.upper = this.makeUpperBound( stack, tag, fuzzy, ignoreMeta );
}
else
public AESharedItemStack lower()
{
if( newDef.getItem().isDamageable() )
return this.lower;
}
public AESharedItemStack upper()
{
return this.upper;
}
private AESharedItemStack makeLowerBound( final ItemStack itemStack, final NBTTagCompound tag, final FuzzyMode fuzzy, final boolean ignoreMeta )
{
final ItemStack newDef = itemStack.copy();
if( ignoreMeta )
{
if( fuzzy == FuzzyMode.IGNORE_ALL )
newDef.setItemDamage( MIN_DAMAGE_VALUE );
newDef.setTagCompound( tag );
}
else
{
if( newDef.getItem().isDamageable() )
{
newDef.setItemDamage( 0 );
}
else if( fuzzy == FuzzyMode.PERCENT_99 )
{
if( this.itemStack.getItemDamage() == 0 )
if( fuzzy == FuzzyMode.IGNORE_ALL )
{
newDef.setItemDamage( 0 );
newDef.setItemDamage( MIN_DAMAGE_VALUE );
}
else if( fuzzy == FuzzyMode.PERCENT_99 )
{
if( itemStack.getItemDamage() == MIN_DAMAGE_VALUE )
{
newDef.setItemDamage( MIN_DAMAGE_VALUE );
}
else
{
newDef.setItemDamage( MIN_DAMAGE_VALUE + 1 );
}
}
else
{
newDef.setItemDamage( 1 );
final int breakpoint = fuzzy.calculateBreakPoint( itemStack.getMaxDamage() );
final int damage = breakpoint <= itemStack.getItemDamage() ? breakpoint : 0;
newDef.setItemDamage( damage );
}
}
else
{
final int breakpoint = fuzzy.calculateBreakPoint( this.itemStack.getMaxDamage() );
newDef.setItemDamage( breakpoint <= this.itemDamage ? breakpoint : 0 );
}
newDef.setTagCompound( LOW_TAG );
}
newDef.setTagCompound( LOW_TAG );
return new AESharedItemStack( newDef );
}
return new AESharedItemStack( newDef );
}
public AESharedItemStack getUpperBound( final FuzzyMode fuzzy, final boolean ignoreMeta )
{
Preconditions.checkState( this.itemStack.getCount() == 1, "ItemStack#getCount() has to be 1" );
final ItemStack newDef = this.itemStack.copy();
if( ignoreMeta )
private AESharedItemStack makeUpperBound( final ItemStack itemStack, final NBTTagCompound tag, final FuzzyMode fuzzy, final boolean ignoreMeta )
{
newDef.setItemDamage( Integer.MAX_VALUE );
}
else
{
if( newDef.getItem().isDamageable() )
final ItemStack newDef = itemStack.copy();
if( ignoreMeta )
{
if( fuzzy == FuzzyMode.IGNORE_ALL )
newDef.setItemDamage( MAX_DAMAGE_VALUE );
newDef.setTagCompound( tag );
}
else
{
if( newDef.getItem().isDamageable() )
{
newDef.setItemDamage( this.itemStack.getMaxDamage() + 1 );
}
else if( fuzzy == FuzzyMode.PERCENT_99 )
{
if( this.itemStack.getItemDamage() == 0 )
if( fuzzy == FuzzyMode.IGNORE_ALL )
{
newDef.setItemDamage( 0 );
newDef.setItemDamage( itemStack.getMaxDamage() + 1 );
}
else if( fuzzy == FuzzyMode.PERCENT_99 )
{
if( itemStack.getItemDamage() == MIN_DAMAGE_VALUE )
{
newDef.setItemDamage( MIN_DAMAGE_VALUE );
}
else
{
newDef.setItemDamage( itemStack.getMaxDamage() + 1 );
}
}
else
{
newDef.setItemDamage( this.itemStack.getMaxDamage() + 1 );
final int breakpoint = fuzzy.calculateBreakPoint( itemStack.getMaxDamage() );
final int damage = itemStack.getItemDamage() < breakpoint ? breakpoint - 1 : itemStack.getMaxDamage() + 1;
newDef.setItemDamage( damage );
}
}
else
{
final int breakpoint = fuzzy.calculateBreakPoint( this.itemStack.getMaxDamage() );
newDef.setItemDamage( this.itemDamage < breakpoint ? breakpoint - 1 : this.itemStack.getMaxDamage() + 1 );
}
newDef.setTagCompound( HIGH_TAG );
}
newDef.setTagCompound( HIGH_TAG );
return new AESharedItemStack( newDef );
}
return new AESharedItemStack( newDef );
}
}
+4 -5
View File
@@ -31,6 +31,7 @@ import net.minecraftforge.oredict.OreDictionary;
import appeng.api.config.FuzzyMode;
import appeng.api.storage.data.IAEItemStack;
import appeng.api.storage.data.IItemList;
import appeng.util.item.AESharedItemStack.Bounds;
public final class ItemList implements IItemList<IAEItemStack>
@@ -99,8 +100,7 @@ public final class ItemList implements IItemList<IAEItemStack>
return output;
}
} )
.orElse( this.findFuzzyDamage( ais, fuzzy, false ) );
} ).orElse( this.findFuzzyDamage( ais, fuzzy, false ) );
}
@Override
@@ -222,9 +222,8 @@ public final class ItemList implements IItemList<IAEItemStack>
private Collection<IAEItemStack> findFuzzyDamage( final IAEItemStack filter, final FuzzyMode fuzzy, final boolean ignoreMeta )
{
final AEItemStack itemStack = (AEItemStack) filter;
final AESharedItemStack low = itemStack.getSharedStack().getLowerBound( fuzzy, ignoreMeta );
final AESharedItemStack high = itemStack.getSharedStack().getUpperBound( fuzzy, ignoreMeta );
final Bounds bounds = itemStack.getSharedStack().getBounds( fuzzy, ignoreMeta );
return this.records.subMap( low, true, high, true ).descendingMap().values();
return this.records.subMap( bounds.lower(), true, bounds.upper(), true ).descendingMap().values();
}
}
@@ -84,7 +84,8 @@ chat.appliedenergistics2.DeviceNotLinked=Device is not linked.
chat.appliedenergistics2.StationCanNotBeLocated=Station can not be located.
chat.appliedenergistics2.MachineNotPowered=Machine is not powered.
chat.appliedenergistics2.CommunicationError=Error Communicating with Network.
chat.appliedenergistics2.SavedSettings=Copied device configuration to memory card.
chat.appliedenergistics2.SavedSettings=Copied current device configuration to memory card.
chat.appliedenergistics2.ResetSettings=New device configuration created and copied to memory card.
chat.appliedenergistics2.AmmoDepleted=Ammo Depleted.
chat.appliedenergistics2.isNowLocked=Monitor is now Locked.
chat.appliedenergistics2.isNowUnlocked=Monitor is now Unlocked.
@@ -1,4 +1,5 @@
tile.appliedenergistics2.cable_bus.name=AE2 케이블 and/or 버스
// Blocks
tile.appliedenergistics2.cable_bus.name=AE2 케이블 and/or 버스
tile.appliedenergistics2.cell_workbench.name=셀 작업대
tile.appliedenergistics2.charger.name=충전기
tile.appliedenergistics2.chest.name=ME 상자
@@ -12,34 +13,35 @@ tile.appliedenergistics2.drive.name=ME 드라이브
tile.appliedenergistics2.energy_acceptor.name=에너지 수용기
tile.appliedenergistics2.grindstone.name=석영 맷돌
tile.appliedenergistics2.matrix_frame.name=행렬 프레임
tile.appliedenergistics2.io_port.name=ME IO 포트
tile.appliedenergistics2.io_port.name=ME 입출력 포트
tile.appliedenergistics2.inscriber.name=회로 인쇄기
tile.appliedenergistics2.interface.name=ME 인터페이스
tile.appliedenergistics2.fluid_interface.name=ME 유체 인터페이스
tile.appliedenergistics2.quantum_link.name=ME 양자 연결기
tile.appliedenergistics2.quantum_ring.name=ME 양자 고리
tile.appliedenergistics2.fluix_block.name=액정 블럭
tile.appliedenergistics2.quartz_block.name=투스 석영 블
tile.appliedenergistics2.chiseled_quartz_block.name=조각된 투스 석영 블
tile.appliedenergistics2.quartz_block.name=투스 석영 블
tile.appliedenergistics2.chiseled_quartz_block.name=조각된 투스 석영 블
tile.appliedenergistics2.quartz_glass.name=석영 유리
tile.appliedenergistics2.quartz_vibrant_glass.name=공명 석영 유리
tile.appliedenergistics2.quartz_pillar.name=투스 석영 기둥
tile.appliedenergistics2.quartz_vibrant_glass.name=공명 석영 유리
tile.appliedenergistics2.quartz_pillar.name=투스 석영 기둥
tile.appliedenergistics2.quartz_fixture.name=충전된 석영 설비
tile.appliedenergistics2.light_detector.name=빛 감지 설비
tile.appliedenergistics2.spatial_io_port.name=시공 IO 포트
tile.appliedenergistics2.spatial_io_port.name=시공 입출력 포트
tile.appliedenergistics2.spatial_pylon.name=시공 지시탑
tile.appliedenergistics2.tiny_tnt.name=소형 TNT
tile.appliedenergistics2.vibration_chamber.name=공명
tile.appliedenergistics2.vibration_chamber.name=진동
tile.appliedenergistics2.wireless_access_point.name=ME 무선 액세스 포인트
tile.appliedenergistics2.quartz_ore.name=투스 석영 광석
tile.appliedenergistics2.charged_quartz_ore.name=충전된 투스 석영 광석
tile.appliedenergistics2.quartz_ore.name=투스 석영 광석
tile.appliedenergistics2.charged_quartz_ore.name=충전된 투스 석영 광석
tile.appliedenergistics2.security_station.name=ME 보안 단말기
tile.appliedenergistics2.quartz_growth_accelerator.name=결정 성장 촉진기
tile.appliedenergistics2.sky_stone_block.name=천령석
tile.appliedenergistics2.smooth_sky_stone_block.name=천령석 블럭
tile.appliedenergistics2.smooth_sky_stone_block.name=부드러운 천령석
tile.appliedenergistics2.sky_stone_brick.name=천령석 벽돌
tile.appliedenergistics2.sky_stone_small_brick.name=천령석 작은 벽돌
tile.appliedenergistics2.sky_stone_chest.name=천령석 창고
tile.appliedenergistics2.smooth_sky_stone_chest.name=천령석 블럭 창고
tile.appliedenergistics2.sky_stone_chest.name=천령석 상자
tile.appliedenergistics2.smooth_sky_stone_chest.name=천령석 블록 상자
tile.appliedenergistics2.sky_compass.name=운석 탐지기
tile.appliedenergistics2.crafting_monitor.name=조합 모니터
tile.appliedenergistics2.crafting_storage_1k.name=1k 조합법 저장고
@@ -51,31 +53,47 @@ tile.appliedenergistics2.crafting_unit.name=조합 유닛
tile.appliedenergistics2.molecular_assembler.name=분자 조합기
// Stairs
tile.appliedenergistics2.ChiseledQuartzStairBlock.name=Chiseled Certus Quartz Stairs
tile.appliedenergistics2.fluix_stairs.name=Fluix Stairs
tile.appliedenergistics2.QuartzPillarStairBlock.name=Certus Quartz Pillar Stairs
tile.appliedenergistics2.QuartzStairBlock.name=투스 석영 계단
tile.appliedenergistics2.SkyStoneBlockStairBlock.name=스카이 스톤 블록 계단
tile.appliedenergistics2.SkyStoneBrickStairBlock.name=스카이 스톤 벽돌 계단
tile.appliedenergistics2.SkyStoneSmallBrickStairBlock.name=Sky Stone Small Brick Stairs
tile.appliedenergistics2.SkyStoneStairBlock.name=스카이 스톤 계단
tile.appliedenergistics2.fluix_stairs.name=액정 계단
tile.appliedenergistics2.quartz_stairs.name=서투스 석영 계단
tile.appliedenergistics2.chiseled_quartz_stairs.name=조각된 서투스 석영 계단
tile.appliedenergistics2.quartz_pillar_stairs.name=투스 석영 기둥 계단
tile.appliedenergistics2.smooth_sky_stone_stairs.name=부드러운 천령석 계단
tile.appliedenergistics2.sky_stone_brick_stairs.name=천령석 벽돌 계단
tile.appliedenergistics2.sky_stone_small_brick_stairs.name=천령석 작은 벽돌 계단
tile.appliedenergistics2.sky_stone_stairs.name=천령석 계단
chat.appliedenergistics2.ChestCannotReadStorageCell=ME 창고가 셀을 읽을 수 없습니다.
// Slabs
tile.appliedenergistics2.chiseled_quartz_slab.name=조각된 서투스 석영 반 블록
tile.appliedenergistics2.fluix_slab.name=액정 반 블록
tile.appliedenergistics2.quartz_pillar_slab.name=서투스 석영 기둥 반 블록
tile.appliedenergistics2.quartz_slab.name=서투스 석영 반 블록
tile.appliedenergistics2.smooth_sky_stone_slab.name=부드러운 천령석 반 블록
tile.appliedenergistics2.sky_stone_brick_slab.name=천령석 벽돌 반 블록
tile.appliedenergistics2.sky_stone_small_brick_slab.name=천령석 작은 벽돌 반 블록
tile.appliedenergistics2.sky_stone_slab.name=천령석 반 블록
// Chat Messages
chat.appliedenergistics2.ChestCannotReadStorageCell=ME 상자가 셀을 읽을 수 없습니다.
chat.appliedenergistics2.SettingCleared=설정이 초기화 되었습니다.
chat.appliedenergistics2.OutOfRange=무선 신호 범위 밖입니다.
chat.appliedenergistics2.InvalidMachine=알 수 없는/잘못된 기계입니다.
chat.appliedenergistics2.OutOfRange=무선 신호 범위를 이탈했습니다.
chat.appliedenergistics2.InvalidMachine=알 수 없는 기계입니다.
chat.appliedenergistics2.LoadedSettings=설정을 성공적으로 복사했습니다.
chat.appliedenergistics2.DeviceNotPowered=기기의 전력이 부족합니다.
chat.appliedenergistics2.MachineNotPowered=기기가 전력을 받고 있지 않습니다.
chat.appliedenergistics2.DeviceNotPowered=장치의 전력이 부족합니다.
chat.appliedenergistics2.DeviceNotWirelessTerminal=장치가 무선 단말기가 아닙니다.
chat.appliedenergistics2.DeviceNotLinked=장치가 연결되지 않았습니다.
chat.appliedenergistics2.StationCanNotBeLocated=기지가 없습니다.
chat.appliedenergistics2.MachineNotPowered=장치가 전력을 받고 있지 않습니다.
chat.appliedenergistics2.CommunicationError=네트워크와 소통하는 데 문제가 발생했습니다.
chat.appliedenergistics2.SavedSettings=설정을 성공적으로 저장했습니다.
chat.appliedenergistics2.AmmoDepleted=Ammo Depleted.
chat.appliedenergistics2.isNowLocked=Monitor is now Locked.
chat.appliedenergistics2.isNowUnlocked=Monitor is now Unlocked.
chat.appliedenergistics2.AmmoDepleted=암모가 고갈되었습니다.
chat.appliedenergistics2.isNowLocked=모니터가 잠금 상태입니다.
chat.appliedenergistics2.isNowUnlocked=모니터가 잠금 해제되었습니다.
itemGroup.appliedenergistics2=응용 에너지학 2
itemGroup.appliedenergistics2.facades=응용 에너지학 2 - 덮개
// Creative Tabs
itemGroup.appliedenergistics2=응용 에너지학
itemGroup.appliedenergistics2.facades=응용 에너지학(덮개)
// GUI
gui.appliedenergistics2.CraftingTerminal=조합 단말기
gui.appliedenergistics2.METunnel=ME
gui.appliedenergistics2.ItemTunnel=아이템
@@ -84,20 +102,24 @@ gui.appliedenergistics2.RedstoneTunnel=레드스톤
gui.appliedenergistics2.EUTunnel=EU
gui.appliedenergistics2.FETunnel=FE
gui.appliedenergistics2.LightTunnel=빛
gui.appliedenergistics2.OCTunnel=오픈컴퓨터즈
gui.appliedenergistics2.PressureTunnel=압력
gui.appliedenergistics2.security.extract.name=Withdraw
gui.appliedenergistics2.security.inject.name=Deposit
gui.appliedenergistics2.security.craft.name=Craft
gui.appliedenergistics2.security.build.name=Build
gui.appliedenergistics2.security.security.name=Security
gui.appliedenergistics2.security.extract.name=추출
gui.appliedenergistics2.security.inject.name=주입
gui.appliedenergistics2.security.craft.name=조합
gui.appliedenergistics2.security.build.name=건설
gui.appliedenergistics2.security.security.name=보안
gui.appliedenergistics2.security.extract.tip=유저는 저장소에서 아이템을 빼갈 수 있습니다.
gui.appliedenergistics2.security.inject.tip=유저는 저장소에 아이템을 집어 넣을 수 있습니다.
gui.appliedenergistics2.security.craft.tip=유저는 자동 조합을 명령할 수 있습니다.
gui.appliedenergistics2.security.build.tip=User can modify the physical structure of the network, and make configuration changes.
gui.appliedenergistics2.security.security.tip=User can access and modify the security terminal of the network.
gui.appliedenergistics2.security.build.tip=유저는 네트워크의 물리적 구조를 수정하고 구성을 변경할 수 있습니다.
gui.appliedenergistics2.security.security.tip=유저는 네트워크의 보안 단말기에 액세스하여 수정할 수 있습니다.
gui.appliedenergistics2.Efficiency=효율
gui.appliedenergistics2.SCSSize=SCS 규모
gui.appliedenergistics2.SCSInvalid=무효
gui.appliedenergistics2.RequiredPower=전력 요구량
gui.appliedenergistics2.StoredPower=전력 저장량
gui.appliedenergistics2.MaxPower=최대 전력량
@@ -109,8 +131,9 @@ gui.appliedenergistics2.NoPermissions=아무 권한이 선택되지 않음
gui.appliedenergistics2.SecurityCardEditor=바이오메트릭 카드 에디터
gui.appliedenergistics2.Encoded=기록됨
gui.appliedenergistics2.Priority=우선 순위
gui.appliedenergistics2.StorageBus=스토리지 버스
gui.appliedenergistics2.EnergyDrain=Passive Drain
gui.appliedenergistics2.StorageBus=저장 버스
gui.appliedenergistics2.StorageBusFluids=액체 저장 버스
gui.appliedenergistics2.EnergyDrain=수동 배수기
gui.appliedenergistics2.Installed=설치됨
gui.appliedenergistics2.NetworkTool=네트워크 도구
gui.appliedenergistics2.PowerUsageRate=에너지 사용량
@@ -119,229 +142,293 @@ gui.appliedenergistics2.PortableCell=휴대용 셀
gui.appliedenergistics2.Security=보안 터미널
gui.appliedenergistics2.CellWorkbench=셀 작업대
gui.appliedenergistics2.QuantumLinkChamber=ME 양자 연결기
gui.appliedenergistics2.IOPort=ME IO 포트
gui.appliedenergistics2.IOPort=ME 입출력 포트
gui.appliedenergistics2.Chest=ME 상자
gui.appliedenergistics2.Condenser=Matter Condenser
gui.appliedenergistics2.Condenser=물질 응축기
gui.appliedenergistics2.Config=설정
gui.appliedenergistics2.Drive=ME 드라이브
gui.appliedenergistics2.ExportBus=ME 반출 버스
gui.appliedenergistics2.GrindStone=그라인더
gui.appliedenergistics2.ExportBusFluids=ME 액체 반출 버스
gui.appliedenergistics2.GrindStone=맷돌
gui.appliedenergistics2.ImportBus=ME 반입 버스
gui.appliedenergistics2.ImportBusFluids=ME 액체 반입 버스
gui.appliedenergistics2.Interface=ME 인터페이스
gui.appliedenergistics2.FluidInterface=ME 액체 인터페이스
gui.appliedenergistics2.LevelEmitter=ME 레벨 측정기
gui.appliedenergistics2.Of=Of
gui.appliedenergistics2.Patterns=패턴
gui.appliedenergistics2.SpatialIOPort=시공 IO 포트
gui.appliedenergistics2.Of=
gui.appliedenergistics2.Patterns=패턴
gui.appliedenergistics2.SpatialIOPort=시공 입출력 포트
gui.appliedenergistics2.StoredEnergy=저장된 전력량
gui.appliedenergistics2.StoredItems=저장된 아이템
gui.appliedenergistics2.StoredFluids=저장된 액체
gui.appliedenergistics2.Terminal=터미널
gui.appliedenergistics2.InterfaceTerminal=인터페이스 터미널
gui.appliedenergistics2.InterfaceTerminalHint=인터페이스 터미널에서 보여주거나 숨깁니다
gui.appliedenergistics2.FormationPlane=Formation Plane
gui.appliedenergistics2.VibrationChamber=진동 발전기
gui.appliedenergistics2.NetworkDetails=네트워크 더 보
gui.appliedenergistics2.StorageCells=ME 스토리지 셀
gui.appliedenergistics2.InterfaceTerminalHint=인터페이스 터미널에서 보여주거나 숨깁니다.
gui.appliedenergistics2.FormationPlane=생성면
gui.appliedenergistics2.FluidFormationPlane=액체 생성면
gui.appliedenergistics2.VibrationChamber=진동
gui.appliedenergistics2.NetworkDetails=네트워크 세부 사항
gui.appliedenergistics2.StorageCells=ME 저장 셀
gui.appliedenergistics2.IOBuses=ME 반입/반출 버스
gui.appliedenergistics2.Stores=Stores
gui.appliedenergistics2.BytesUsed=바이트 사용 중
gui.appliedenergistics2.Types=종류들
gui.appliedenergistics2.Blank=Blank
gui.appliedenergistics2.IOBusesFluids=ME 액체 반입/반출 버스
gui.appliedenergistics2.Stores=저장
gui.appliedenergistics2.BytesUsed=사용된 바이트
gui.appliedenergistics2.Types=유형
gui.appliedenergistics2.Blank=공백
gui.appliedenergistics2.Unlinked=연결되지 않음
gui.appliedenergistics2.Linked=연결됨
gui.appliedenergistics2.StoredSize=저장된 사이즈
gui.appliedenergistics2.SkyChest=천령석 창고
gui.appliedenergistics2.StoredSize=저장된 규모
gui.appliedenergistics2.CellId=셀 ID
gui.appliedenergistics2.SkyChest=천령석 상자
gui.appliedenergistics2.PatternTerminal=패턴 터미널
gui.appliedenergistics2.CraftingPattern=조합 터미널
gui.appliedenergistics2.CraftingPattern=조합 패턴
gui.appliedenergistics2.MolecularAssembler=분자 조합기
gui.appliedenergistics2.ProcessingPattern=패턴 제작하기
gui.appliedenergistics2.Crafts=다음을 조합:
gui.appliedenergistics2.And=와(과)
gui.appliedenergistics2.Creates=다음으로 조합:
gui.appliedenergistics2.With=와(과)
gui.appliedenergistics2.Substitute=대리 사용:
gui.appliedenergistics2.Yes=예
gui.appliedenergistics2.No=아니오
gui.appliedenergistics2.InWorldCrafting=AE2 월드 내 조합
gui.appliedenergistics2.inWorldFluix=물 웅덩이에다 1개의 충전된 투스 석영 아이템을 드롭하고 지옥 석영과 래드스톤 가루를 놓고 기다리세요.
gui.appliedenergistics2.inWorldPurificationCertus=물 웅덩이에다 1개의 세투스 석영 씨앗을 드롭하고 모래를 놓고 기다리세요.; 만들어지는 속도를 가속하시려면 결정 성장 촉진기를 넣으세요.
gui.appliedenergistics2.inWorldPurificationNether=Drop a Nether Quartz Seed made from Nether Quartz Dust and Sand into a puddle of water; to make the process faster add Crystal Growth Accelerators.
gui.appliedenergistics2.inWorldPurificationFluix=Drop a 액정 씨앗 made from 액정 가루 and Sand into a puddle of water; to make the process faster add Crystal Growth Accelerators.
gui.appliedenergistics2.inWorldSingularity=To create drop 1 Singularity and 1 Ender Dust and cause an explosion within range of the items.
gui.appliedenergistics2.ChargedQuartz=Charged Certus Quartz is crafted by inserting an uncharged Certus Quartz Crystal into the Charger, and powering it.
gui.appliedenergistics2.ChargedQuartzFind=Charged Certus Quartz can be found in world semi rarely, it appears similar to normal Certus Quartz, except it sparkles.
gui.appliedenergistics2.OfSecondOutput=%1$d%% Chance for second output.
gui.appliedenergistics2.NoSecondOutput=No Secondary Output
gui.appliedenergistics2.SelectAmount=Select Amount
gui.appliedenergistics2.inWorldFluix=물 웅덩이에 충전된 투스 석영 1개를 던지고 지옥 석영과 래드스톤 가루를 놓고 기다리세요.
gui.appliedenergistics2.inWorldPurificationCertus=물 웅덩이에다 서투스 석영 가루로 만든 서투스 석영 씨앗 1개를 던지고 모래를 놓고 기다리세요.; 만들어지는 속도를 가속하시려면 결정 성장 촉진기를 넣으세요.
gui.appliedenergistics2.inWorldPurificationNether=물 웅덩이에다 지옥 석영 가루로 만든 지옥 석영 씨앗 1개를 던지고 모래를 놓고 기다리세요.; 만들어지는 속도를 가속하시려면 결정 성장 촉진기를 넣으세요.
gui.appliedenergistics2.inWorldPurificationFluix=물 웅덩이에다 액정 가루로 만든 액정 씨앗 1개를 던지고 모래를 놓고 기다리세요.; 만들어지는 속도를 가속하시려면 결정 성장 촉진기를 넣으세요.
gui.appliedenergistics2.inWorldSingularity=특이점 1개와 엔더 가루 1개를 아이템 범위 내에서 던지는 것은 폭발을 발생합니다.
gui.appliedenergistics2.ChargedQuartz=충전된 서투스 석영은 충전이 안된 서투스 석영 수정을 충전기에 삽입하여 만들어지고 전력을 내뿜습니다.
gui.appliedenergistics2.ChargedQuartzFind=충전된 서투스 석영은 드물게 발견할 수 있으며, 스파크를 일으키는 것을 제외하고는 평범한 서투스 석영과 비슷하게 나타납니다.
gui.appliedenergistics2.NoSecondOutput=2차 출력 없음
gui.appliedenergistics2.OfSecondOutput=%1$d%%이 2차 출력을 할 수 있습니다.
gui.appliedenergistics2.MultipleOutputs=%1$d%%이 2차 출력, %2$d%%이 3차 출력을 합니다.
gui.appliedenergistics2.SelectAmount=양 선택
gui.appliedenergistics2.CopyMode=복사 모드
gui.appliedenergistics2.CopyModeDesc=Controls if the contents of the configuration pane are cleared when you remove the cell.
gui.appliedenergistics2.CopyModeDesc=셀을 제거할 때 환경설정 창의 내용을 지울지 여부를 제어합니다.
gui.appliedenergistics2.Next=다음
gui.appliedenergistics2.Lumen=Lumen
gui.appliedenergistics2.Empty=Empty
gui.appliedenergistics2.Lumen=루멘
gui.appliedenergistics2.Empty=비어있음
gui.appliedenergistics2.Stored=저장됨
gui.appliedenergistics2.Cancel=취소
gui.appliedenergistics2.ETAFormat=HH:mm:ss
gui.appliedenergistics2.Crafting=제작
gui.appliedenergistics2.Scheduled=예정됨
gui.appliedenergistics2.CraftingStatus=제작 상황
gui.appliedenergistics2.FromStorage=활성화
gui.appliedenergistics2.ToCraft=제작하기
gui.appliedenergistics2.CraftingPlan=Crafting Plan
gui.appliedenergistics2.CraftingPlan=제작 계획
gui.appliedenergistics2.Automatic=자동
gui.appliedenergistics2.Start=시작
gui.appliedenergistics2.Missing=부족
gui.appliedenergistics2.Bytes=저장소
gui.appliedenergistics2.Simulation=시뮬레이션
gui.appliedenergistics2.CoProcessors=Co Processors
gui.appliedenergistics2.CoProcessors=프로세서
gui.appliedenergistics2.CraftingCPU=제작용 CPU
gui.appliedenergistics2.NoCraftingCPUs=제작용 CPU를 사용할 수 없습니다.
gui.appliedenergistics2.CalculatingWait=계산중입니다...
gui.appliedenergistics2.Clean=Clean
gui.appliedenergistics2.Clean=청소
gui.appliedenergistics2.InvalidPattern=알 수 없는 패턴
gui.appliedenergistics2.Range=범위
gui.appliedenergistics2.TransparentFacades=Transparent Facades
gui.appliedenergistics2.TransparentFacadesHint=Controls visibility of facades while the network tool is on your toolbar.
gui.appliedenergistics2.TransparentFacades=투명 덮개
gui.appliedenergistics2.TransparentFacadesHint=도구 모음에 네트워크 도구가 있는 동안 덮개의 가시성을 제어합니다.
gui.appliedenergistics2.CPUs=CPU
gui.appliedenergistics2.NoCraftingJobs=No Crafting Job Active
gui.appliedenergistics2.NoCraftingJobs=조합 작업 활성 없음
gui.appliedenergistics2.FacadeCrafting=덮개 제작
gui.appliedenergistics2.inWorldCraftingPresses=Crafting Presses are found in the center of meteorites which can be found in around the world, they can be located by using a meteorite compass.
gui.appliedenergistics2.Included=Included
gui.appliedenergistics2.Excluded=Excluded
gui.appliedenergistics2.Partitioned=Partitioned
gui.appliedenergistics2.Precise=Precise
gui.appliedenergistics2.Fuzzy=Fuzzy
gui.appliedenergistics2.inWorldCraftingPresses=프레스 조합은 세계 곳곳에서 볼 수 있는 운석 중심에 있으며 운석 탐지기를 이용해 위치를 파악할 수 있습니다.
gui.appliedenergistics2.Included=포함됨
gui.appliedenergistics2.Excluded=제외됨
gui.appliedenergistics2.Partitioned=분할됨
gui.appliedenergistics2.Precise=정밀화
gui.appliedenergistics2.Fuzzy=퍼지
gui.appliedenergistics2.SmallFontCraft=조합
gui.appliedenergistics2.LargeFontCraft=+
gui.appliedenergistics2.Nothing=없음
gui.tooltips.appliedenergistics2.Stash=Store Items
gui.tooltips.appliedenergistics2.StashDesc=Return items on the crafting grid to network storage.
gui.tooltips.appliedenergistics2.Substitutions=Ore-Dict Substitutions
gui.tooltips.appliedenergistics2.SubstitutionsDesc=Edit substitution options for input components.
gui.tooltips.appliedenergistics2.SubstitutionsOn=Substitutions Enabled
gui.tooltips.appliedenergistics2.SubstitutionsOff=Substitutions Disabled
gui.tooltips.appliedenergistics2.Encode=Encode Pattern
gui.tooltips.appliedenergistics2.EncodeDescription=Write the entered pattern to the current encoded pattern, or to available blank pattern.
gui.tooltips.appliedenergistics2.FuzzyMode=Fuzzy Comparison
gui.tooltips.appliedenergistics2.FZPercent_25=Split Damage at 25%
gui.tooltips.appliedenergistics2.FZPercent_50=Split Damage at 50%
gui.tooltips.appliedenergistics2.FZPercent_75=Split Damage at 75%
gui.tooltips.appliedenergistics2.FZPercent_99=Split Damage at 99%
gui.tooltips.appliedenergistics2.SortOrder=Sort Order
gui.tooltips.appliedenergistics2.SortBy=Sort By
gui.tooltips.appliedenergistics2.FZIgnoreAll=Match Any
gui.tooltips.appliedenergistics2.TransferDirection=Transfer Direction
gui.tooltips.appliedenergistics2.TransferToNetwork=Transfer data to Network
gui.tooltips.appliedenergistics2.TransferToStorageCell=Transfer data to Storage Cell
gui.tooltips.appliedenergistics2.ToggleSortDirection=Toggle sorting direction
gui.tooltips.appliedenergistics2.StoredItems=Stored Items
gui.tooltips.appliedenergistics2.StoredCraftable=Stored / Craftable
gui.tooltips.appliedenergistics2.View=View
gui.tooltips.appliedenergistics2.RedstoneMode=Redstone Mode
gui.tooltips.appliedenergistics2.OperationMode=Operation Mode
gui.tooltips.appliedenergistics2.NumberOfItems=Number of items
gui.tooltips.appliedenergistics2.ItemName=Item name
gui.tooltips.appliedenergistics2.PowerUnits=Power Units
gui.tooltips.appliedenergistics2.IOMode=Input/Output Mode
gui.tooltips.appliedenergistics2.CondenserOutput=ME Condenser - Output
gui.tooltips.appliedenergistics2.PartitionStorage=Partition Storage
gui.tooltips.appliedenergistics2.Clear=Clear
gui.tooltips.appliedenergistics2.TrashController=Deletion via Shift / Space Clicking.
gui.tooltips.appliedenergistics2.InterfaceBlockingMode=Blocking Mode
gui.tooltips.appliedenergistics2.InterfaceCraftingMode=Crafting Mode
gui.tooltips.appliedenergistics2.Trash=Destroy Items
gui.tooltips.appliedenergistics2.MatterBalls=Condense Into Matter Balls\n%s per item
gui.tooltips.appliedenergistics2.Singularity=Condense Into Singularities\n%s per item
gui.tooltips.appliedenergistics2.Read=Extract Only
gui.tooltips.appliedenergistics2.Write=Insert Only
gui.tooltips.appliedenergistics2.ReadWrite=Bi-Directional
gui.tooltips.appliedenergistics2.AlwaysActive=Always active
gui.tooltips.appliedenergistics2.ActiveWithoutSignal=Active without signal
gui.tooltips.appliedenergistics2.ActiveWithSignal=Active with signal
gui.tooltips.appliedenergistics2.ActiveOnPulse=Activate once per pulse
gui.tooltips.appliedenergistics2.EmitLevelsBelow=Emit when levels are below or equal to limit.
gui.tooltips.appliedenergistics2.EmitLevelAbove=Emit when levels are above or equal to limit.
gui.tooltips.appliedenergistics2.SearchMode_Auto=Auto Search
gui.tooltips.appliedenergistics2.SearchMode_Standard=Standard Search
gui.tooltips.appliedenergistics2.SearchMode_JEIAuto=JEI Syncronized Auto
gui.tooltips.appliedenergistics2.SearchMode_JEIStandard=JEI Syncronized Standard
gui.tooltips.appliedenergistics2.SearchMode=Search Box Mode
gui.tooltips.appliedenergistics2.PartitionStorageHint=Configures Partition based on currently stored items.
gui.tooltips.appliedenergistics2.ClearSettings=Clear Config/Settings
gui.tooltips.appliedenergistics2.Craftable=Craftable
gui.tooltips.appliedenergistics2.MoveWhenEmpty=Move to output when empty.
gui.tooltips.appliedenergistics2.MoveWhenWorkIsDone=Move to output when work is done.
gui.tooltips.appliedenergistics2.MoveWhenFull=Move to output when full.
gui.tooltips.appliedenergistics2.Disabled=Disabled
gui.tooltips.appliedenergistics2.Enable=Enabled
gui.tooltips.appliedenergistics2.Blocking=Do not push crafing items if inventory contains items.
gui.tooltips.appliedenergistics2.NonBlocking=Ignore the contents of the target inventory.
gui.tooltips.appliedenergistics2.Craft=Crafting Behavior
gui.tooltips.appliedenergistics2.CraftOnly=Do not use stocked items, only craft items while exporting.
gui.tooltips.appliedenergistics2.CraftEither=Use stocked items, or craft items while exporting.
gui.tooltips.appliedenergistics2.LevelType=Level Type
gui.tooltips.appliedenergistics2.LevelType_Energy=Energy
gui.tooltips.appliedenergistics2.LevelType_Item=Item
gui.tooltips.appliedenergistics2.InventoryTweaks=인벤토리 트윅
// GUI Tooltips
gui.tooltips.appliedenergistics2.Stash=아이템 저장
gui.tooltips.appliedenergistics2.StashDesc=조합대의 아이템을 네트워크 저장고로 반환합니다.
gui.tooltips.appliedenergistics2.Substitutions=오어딕셔네리 대체
gui.tooltips.appliedenergistics2.SubstitutionsDescEnabled=요소 입력의 대체를 허용합니다.
gui.tooltips.appliedenergistics2.SubstitutionsDescDisabled=요소 입력의 대체를 불허합니다.
gui.tooltips.appliedenergistics2.SubstitutionsDesc=요소 삽입을 위해 대체 설정을 수정합니다.
gui.tooltips.appliedenergistics2.SubstitutionsOn=대체 활성화
gui.tooltips.appliedenergistics2.SubstitutionsOff=대체 비활성화
gui.tooltips.appliedenergistics2.Encode=패턴 인코딩
gui.tooltips.appliedenergistics2.EncodeDescription=입력된 패턴을 현재 인코딩된 패턴 또는 사용 가능한 빈 패턴에 기록합니다.
gui.tooltips.appliedenergistics2.FuzzyMode=퍼지 비교
gui.tooltips.appliedenergistics2.FZPercent_25=분할 손상도 25%
gui.tooltips.appliedenergistics2.FZPercent_50=분할 손상도 50%
gui.tooltips.appliedenergistics2.FZPercent_75=분할 손상도 75%
gui.tooltips.appliedenergistics2.FZPercent_99=분할 손상도 99%
gui.tooltips.appliedenergistics2.SortOrder=정렬 순서
gui.tooltips.appliedenergistics2.SortBy=정렬 기준
gui.tooltips.appliedenergistics2.FZIgnoreAll=일치
gui.tooltips.appliedenergistics2.TransferDirection=전송 방향
gui.tooltips.appliedenergistics2.TransferToNetwork=데이터를 네트워크로 전송
gui.tooltips.appliedenergistics2.TransferToStorageCell=데이터를 저장 셀로 전송
gui.tooltips.appliedenergistics2.ToggleSortDirection=방향 정렬을 토글하기
gui.tooltips.appliedenergistics2.StoredItems=저장된 아이템
gui.tooltips.appliedenergistics2.StoredCraftable=저장 / 조합 가능
gui.tooltips.appliedenergistics2.View=보기
gui.tooltips.appliedenergistics2.RedstoneMode=레드스톤 모드
gui.tooltips.appliedenergistics2.OperationMode=운용 모드
gui.tooltips.appliedenergistics2.NumberOfItems=아이템 갯수
gui.tooltips.appliedenergistics2.ItemName=아이템 이름
gui.tooltips.appliedenergistics2.PowerUnits=파워 유닛
gui.tooltips.appliedenergistics2.IOMode=입출력 모드
gui.tooltips.appliedenergistics2.CondenserOutput=ME 콘덴서 - 출력
gui.tooltips.appliedenergistics2.PartitionStorage=부분 저장고
gui.tooltips.appliedenergistics2.Clear=청소
gui.tooltips.appliedenergistics2.TrashController=Shift/Space를 눌러 삭제하세요.
gui.tooltips.appliedenergistics2.InterfaceBlockingMode=차단 모드
gui.tooltips.appliedenergistics2.InterfaceCraftingMode=조합 모드
gui.tooltips.appliedenergistics2.Trash=아이템 파괴
gui.tooltips.appliedenergistics2.MatterBalls=재료공에 냉각하기\n아이템 당 %s
gui.tooltips.appliedenergistics2.Singularity=특이점에 냉각하기\n아이템 당 %s
gui.tooltips.appliedenergistics2.Read=추출 한정
gui.tooltips.appliedenergistics2.Write=주입 한정
gui.tooltips.appliedenergistics2.ReadWrite=쌍방향
gui.tooltips.appliedenergistics2.AlwaysActive=항상 활성화
gui.tooltips.appliedenergistics2.ActiveWithoutSignal=신호없는 활성화
gui.tooltips.appliedenergistics2.ActiveWithSignal=신호있는 활성화
gui.tooltips.appliedenergistics2.ActiveOnPulse=한 파동 당 활성화
gui.tooltips.appliedenergistics2.EmitLevelsBelow=레벨이 제한보다 낮거나 같은 경우 수신합니다.
gui.tooltips.appliedenergistics2.EmitLevelAbove=레벨이 한계 이상일 때 발생합니다.
gui.tooltips.appliedenergistics2.SearchMode_Auto=자동 검색
gui.tooltips.appliedenergistics2.SearchMode_Standard=표준 검색
gui.tooltips.appliedenergistics2.SearchMode_JEIAuto=JEI 자동 동기화
gui.tooltips.appliedenergistics2.SearchMode_JEIStandard=JEI 표준 동기화
gui.tooltips.appliedenergistics2.SearchMode=검색 상자 모드
gui.tooltips.appliedenergistics2.PartitionStorageHint=현재 저장된 아이템을 기준으로 파티션을 구성합니다.
gui.tooltips.appliedenergistics2.ClearSettings=설정 지우기
gui.tooltips.appliedenergistics2.Craftable=조합 가능
gui.tooltips.appliedenergistics2.MoveWhenEmpty=비어있을 때 출력을 위해 움직입니다.
gui.tooltips.appliedenergistics2.MoveWhenWorkIsDone=작동할 때 출력을 위해 움직입니다.
gui.tooltips.appliedenergistics2.MoveWhenFull=채워질 때 출력을 위해 움직입니다.
gui.tooltips.appliedenergistics2.Disabled=비활성화
gui.tooltips.appliedenergistics2.Enable=비활성화
gui.tooltips.appliedenergistics2.Blocking=인벤토리에 아이템이 있다면 아이템 조합을 넣지 마세요.
gui.tooltips.appliedenergistics2.NonBlocking=타겟 인벤토리의 내용을 무시하세요.
gui.tooltips.appliedenergistics2.Craft=행동 조합
gui.tooltips.appliedenergistics2.CraftOnly=유출하는 동안 쌓은 아이템을 사용하지 않고, 오직 아이템만 조합 하세요.
gui.tooltips.appliedenergistics2.CraftEither=유출하는 동안 쌓은 아이템을 사용하거나 아이템을 조합하세요.
gui.tooltips.appliedenergistics2.LevelType=레벨 유형
gui.tooltips.appliedenergistics2.LevelType_Energy=에너지
gui.tooltips.appliedenergistics2.LevelType_Item=아이템
gui.tooltips.appliedenergistics2.InventoryTweaks=인벤토리 트위크
gui.tooltips.appliedenergistics2.Mod=모드
gui.tooltips.appliedenergistics2.TerminalStyle=Terminal Style
gui.tooltips.appliedenergistics2.TerminalStyle_Full=Full Screen Terminal
gui.tooltips.appliedenergistics2.TerminalStyle_Tall=Tall Centered Terminal
gui.tooltips.appliedenergistics2.TerminalStyle_Small=Small Centered Terminal
gui.tooltips.appliedenergistics2.DoesntDespawn=This item won't de-spawn.
gui.tooltips.appliedenergistics2.EmitterMode=Crafting Emitter Mode
gui.tooltips.appliedenergistics2.CraftViaRedstone=Emit Redstone to craft item.
gui.tooltips.appliedenergistics2.EmitWhenCrafting=Emit Redstone while item is crafting.
gui.tooltips.appliedenergistics2.ReportInaccessibleItems=Report Inaccessible Items
gui.tooltips.appliedenergistics2.ReportInaccessibleItemsYes=Yes: Items that cannot be extracted will be visible.
gui.tooltips.appliedenergistics2.ReportInaccessibleItemsNo=No: Only extractable items will be visible.
gui.tooltips.appliedenergistics2.TerminalStyle=터미널 방식
gui.tooltips.appliedenergistics2.TerminalStyle_Full=풀 스크린 터미널
gui.tooltips.appliedenergistics2.TerminalStyle_Tall=긴 집중 터미널
gui.tooltips.appliedenergistics2.TerminalStyle_Small=짧은 집중 터미널
gui.tooltips.appliedenergistics2.DoesntDespawn=이 아이템은 디스폰하지 않을 것입니다.
gui.tooltips.appliedenergistics2.EmitterMode=처리 조합 모드
gui.tooltips.appliedenergistics2.CraftViaRedstone=레드스톤을 꺼내어 아이템을 조합하세요.
gui.tooltips.appliedenergistics2.EmitWhenCrafting=아이템을 조합하는 동안 레드스톤을 꺼내세요.
gui.tooltips.appliedenergistics2.ReportInaccessibleItems=액세스할 수 없는 아이템 보고
gui.tooltips.appliedenergistics2.ReportInaccessibleItemsYes=예: 추출될 수 없는 아이템은 보일 것입니다.
gui.tooltips.appliedenergistics2.ReportInaccessibleItemsNo=아니오: 추출 가능한 아이템은 보일 것입니다.
gui.tooltips.appliedenergistics2.ReportInaccessibleFluids=엑세스할 수 없는 액체 보고
gui.tooltips.appliedenergistics2.ReportInaccessibleFluidsYes=예: 추출될 수 없는 액체는 보일 것입니다.
gui.tooltips.appliedenergistics2.ReportInaccessibleFluidsNo=아니오: 추출 가능한 아이템은 보일 것입니다.
gui.tooltips.appliedenergistics2.BlockPlacement=블록 설치
gui.tooltips.appliedenergistics2.BlockPlacementYes=블록은 블록으로서 설치될 수 있습니다.
gui.tooltips.appliedenergistics2.BlockPlacementNo=블록은 아이템으로서 드롭될 수 있습니다.
gui.tooltips.appliedenergistics2.SchedulingMode=일정 모드
gui.tooltips.appliedenergistics2.SchedulingModeDefault=네트워크가 비어 있을 때까지 첫 번째 아이템을 내보낸 후 다음 아이템을 시도해 보세요.
gui.tooltips.appliedenergistics2.SchedulingModeRoundRobin=라운드 로빈 모드를 사용하여 내보냅니다.
gui.tooltips.appliedenergistics2.SchedulingModeRandom=아이템을 임의 모드로 내보냅니다.
gui.tooltips.appliedenergistics2.FilterMode=검색 필터 모드
gui.tooltips.appliedenergistics2.FilterModeKeep=이전 검색 필터를 복원합니다.
gui.tooltips.appliedenergistics2.FilterModeClear=각 오픈마다 청소합니다.
gui.tooltips.appliedenergistics2.ItemsStored=아이템 저장: %s
gui.tooltips.appliedenergistics2.ItemsRequestable=아이템 요청: %s
gui.tooltips.appliedenergistics2.P2PFrequency=빈도: %s
// Units
gui.appliedenergistics2.units.appliedenergstics=AE
gui.appliedenergistics2.units.ic2=에너지 단위(EU)
gui.appliedenergistics2.units.rf=레드스톤 유율(RF)
gui.appliedenergistics2.units.ic2=EU
gui.appliedenergistics2.units.rf=RF
gui.appliedenergistics2.White=하양
// Colors
gui.appliedenergistics2.White=흰색
gui.appliedenergistics2.Orange=주황
gui.appliedenergistics2.Magenta=자홍색
gui.appliedenergistics2.LightBlue=밝은 파랑
gui.appliedenergistics2.Yellow=노랑
gui.appliedenergistics2.LightBlue=하늘색
gui.appliedenergistics2.Yellow=노랑
gui.appliedenergistics2.Lime=연두색
gui.appliedenergistics2.Pink=분홍색
gui.appliedenergistics2.Gray=회색
gui.appliedenergistics2.LightGray=회색
gui.appliedenergistics2.LightGray=밝은 회색
gui.appliedenergistics2.Cyan=청록색
gui.appliedenergistics2.Purple=보라
gui.appliedenergistics2.Blue=파랑
gui.appliedenergistics2.Purple=보라
gui.appliedenergistics2.Blue=파랑
gui.appliedenergistics2.Brown=갈색
gui.appliedenergistics2.Green=초록색
gui.appliedenergistics2.Red=빨강
gui.appliedenergistics2.Black=검정
gui.appliedenergistics2.Red=빨강
gui.appliedenergistics2.Black=검정
gui.appliedenergistics2.Fluix=액정
// Waila
waila.appliedenergistics2.Crafting=조합
waila.appliedenergistics2.DeviceOnline=장치 켜짐
waila.appliedenergistics2.DeviceOffline=장치 꺼짐
waila.appliedenergistics2.DeviceMissingChannel=Device Missing Channel
waila.appliedenergistics2.Locked=잠겨있음
waila.appliedenergistics2.DeviceMissingChannel=채널을 잃은 장치
waila.appliedenergistics2.Locked=잠겨 있음
waila.appliedenergistics2.Unlocked=잠겨있지 않음
waila.appliedenergistics2.Showing=Showing
waila.appliedenergistics2.Contains=Contains
waila.appliedenergistics2.Channels=%1$d of %2$d 채널
waila.appliedenergistics2.Showing=공개
waila.appliedenergistics2.Contains=포함
waila.appliedenergistics2.Channels=%1$d %2$d 채널
waila.appliedenergistics2.P2PUnlinked=접속 안됨
waila.appliedenergistics2.P2PInputOneOutput=접속됨 (입력면)
waila.appliedenergistics2.P2PInputManyOutputs=접속됨 (입력면) - %d 출력
waila.appliedenergistics2.P2POutput=접속됨 (출력면)
item.appliedenergistics2.storage_cell_1k.name=1k ME 저장용 셀
item.appliedenergistics2.storage_cell_4k.name=4k ME 저장용 셀
item.appliedenergistics2.storage_cell_16k.name=16k ME 저장용 셀
item.appliedenergistics2.storage_cell_64k.name=64k ME 저장용 셀
item.appliedenergistics2.creative_storage_cell.name=크리에이티브 ME 저장용 셀
item.appliedenergistics2.encoded_pattern.name=쓰여진 패턴
item.appliedenergistics2.view_cell.name=View Cell
// TheOneProbe
theoneprobe.appliedenergistics2.crafting=조합: %1$s
theoneprobe.appliedenergistics2.device_online=장치 켜짐
theoneprobe.appliedenergistics2.device_offline=장치 꺼짐
theoneprobe.appliedenergistics2.device_missing_channel=채널을 잃은 장치
theoneprobe.appliedenergistics2.locked=잠겨 있음
theoneprobe.appliedenergistics2.unlocked=잠겨있지 않음
theoneprobe.appliedenergistics2.showing=공개
theoneprobe.appliedenergistics2.contains=포함
theoneprobe.appliedenergistics2.channels=%1$d의 %2$d 채널
theoneprobe.appliedenergistics2.p2p_unlinked=접속 안됨
theoneprobe.appliedenergistics2.p2p_input_one_output=접속됨 (입력면)
theoneprobe.appliedenergistics2.p2p_input_many_outputs=접속됨 (입력면) - %d 출력
theoneprobe.appliedenergistics2.p2p_output=접속됨 (출력면)
theoneprobe.appliedenergistics2.p2p_frequency=빈도: %1$s
theoneprobe.appliedenergistics2.stored_energy=%1$d / %2$d
// Items
item.appliedenergistics2.storage_cell_1k.name=1k ME 저장 셀
item.appliedenergistics2.storage_cell_4k.name=4k ME 저장 셀
item.appliedenergistics2.storage_cell_16k.name=16k ME 저장 셀
item.appliedenergistics2.storage_cell_64k.name=64k ME 저장 셀
item.appliedenergistics2.fluid_storage_cell_1k.name=1k ME 액체 저장 셀
item.appliedenergistics2.fluid_storage_cell_4k.name=4k ME 액체 저장 셀
item.appliedenergistics2.fluid_storage_cell_16k.name=16k ME 액체 저장 셀
item.appliedenergistics2.fluid_storage_cell_64k.name=64k ME 액체 저장 셀
item.appliedenergistics2.creative_storage_cell.name=크리에이티브 ME 저장 셀
item.appliedenergistics2.encoded_pattern.name=인코딩된 패턴
item.appliedenergistics2.view_cell.name=뷰 셀
item.appliedenergistics2.facade.name=케이블 덮개
item.appliedenergistics2.crystal_seed.certus.name=투스 석영 씨앗
item.appliedenergistics2.crystal_seed.certus.name=투스 석영 씨앗
item.appliedenergistics2.crystal_seed.nether.name=지옥 석영 씨앗
item.appliedenergistics2.crystal_seed.fluix.name=액정 씨앗
item.appliedenergistics2.material.invalid_type.name=이 아이템은 비활성화됨
item.appliedenergistics2.material.advanced_card.name=Advanced Card
item.appliedenergistics2.material.annihilation_core.name=Annihilation Core
item.appliedenergistics2.material.advanced_card.name=고급 카드
item.appliedenergistics2.material.annihilation_core.name=소멸 코어
item.appliedenergistics2.material.basic_card.name=기본 카드
item.appliedenergistics2.material.blank_pattern.name=빈 패턴
item.appliedenergistics2.material.calculation_processor.name=Calculation Processor
item.appliedenergistics2.material.card_capacity.name=Capacity Card
item.appliedenergistics2.material.card_fuzzy.name=Fuzzy Card
item.appliedenergistics2.material.card_inverter.name=Inverter Card
item.appliedenergistics2.material.calculation_processor.name=계산 프로세서
item.appliedenergistics2.material.card_capacity.name=용량 카드
item.appliedenergistics2.material.card_fuzzy.name=퍼지 카드
item.appliedenergistics2.material.card_inverter.name=변환 카드
item.appliedenergistics2.material.card_redstone.name=레드스톤 카드
item.appliedenergistics2.material.card_speed.name=Acceleration Card
item.appliedenergistics2.material.card_speed.name=가속 카드
item.appliedenergistics2.material.cell2_spatial_part.name=2³ 시공 요소
item.appliedenergistics2.material.cell16_spatial_part.name=16³ 시공 요소
item.appliedenergistics2.material.cell128_spatial_part.name=128³ 시공 요소
@@ -349,26 +436,30 @@ item.appliedenergistics2.material.cell1k_part.name=1k ME 저장 요소
item.appliedenergistics2.material.cell4k_part.name=4k ME 저장 요소
item.appliedenergistics2.material.cell16k_part.name=16k ME 저장 요소
item.appliedenergistics2.material.cell64k_part.name=64k ME 저장 요소
item.appliedenergistics2.material.certus_quartz_crystal.name=세투스 석영 결정체
item.appliedenergistics2.material.certus_quartz_crystal_charged.name=충전된 세투스 석영 결정체
item.appliedenergistics2.material.certus_quartz_dust.name=세투스 석영 가루
item.appliedenergistics2.material.fluid_cell1k_part.name=1k ME 액체 저장 요소
item.appliedenergistics2.material.fluid_cell4k_part.name=4k ME 액체 저장 요소
item.appliedenergistics2.material.fluid_cell16k_part.name=16k ME 액체 저장 요소
item.appliedenergistics2.material.fluid_cell64k_part.name=64k ME 액체 저장 요소
item.appliedenergistics2.material.certus_quartz_crystal.name=서투스 석영 수정
item.appliedenergistics2.material.certus_quartz_crystal_charged.name=충전된 서투스 석영 수정
item.appliedenergistics2.material.certus_quartz_dust.name=서투스 석영 가루
item.appliedenergistics2.material.empty_storage_cell.name=빈 ME 저장 셀
item.appliedenergistics2.material.ender_dust.name=엔더 가루
item.appliedenergistics2.material.engineering_processor.name=공학 처리기
item.appliedenergistics2.material.flour.name=Flour
item.appliedenergistics2.material.fluix_crystal.name=액정 결정체
item.appliedenergistics2.material.engineering_processor.name=공학 프로세서
item.appliedenergistics2.material.flour.name=가루
item.appliedenergistics2.material.fluix_crystal.name=액정 수정
item.appliedenergistics2.material.fluix_dust.name=액정 가루
item.appliedenergistics2.material.fluix_pearl.name=액정 진주
item.appliedenergistics2.material.formation_core.name=형성 코어
item.appliedenergistics2.material.gold_dust.name=금 가루
item.appliedenergistics2.material.iron_dust.name=철 가루
item.appliedenergistics2.material.logic_processor.name=논리 처리기
item.appliedenergistics2.material.logic_processor_asm.name=미완성된 논리 처리기
item.appliedenergistics2.material.logic_processor.name=논리 프로세서
item.appliedenergistics2.material.logic_processor_asm.name=미완성된 논리 프로세서
item.appliedenergistics2.material.matter_ball.name=물질 공
item.appliedenergistics2.material.nether_quartz_dust.name=지옥 석영 가루
item.appliedenergistics2.material.purified_certus_quartz_crystal.name=순수한 투스 석영 결정체
item.appliedenergistics2.material.purified_fluix_crystal.name=순수한 액정 결정체
item.appliedenergistics2.material.purified_nether_quartz_crystal.name=순수한 지옥 석영 결정체
item.appliedenergistics2.material.purified_certus_quartz_crystal.name=순수한 투스 석영 수정
item.appliedenergistics2.material.purified_fluix_crystal.name=순수한 액정 수정
item.appliedenergistics2.material.purified_nether_quartz_crystal.name=순수한 지옥 석영 수정
item.appliedenergistics2.material.quantum_entangled_singularity.name=양자얽힘 특이점
item.appliedenergistics2.material.silicon.name=실리콘
item.appliedenergistics2.material.singularity.name=특이점
@@ -388,43 +479,54 @@ item.appliedenergistics2.material.sky_dust.name=천령석 가루
item.appliedenergistics2.material.card_crafting.name=조합 카드
item.appliedenergistics2.multi_part.annihilation_plane.name=ME 소멸 평면
item.appliedenergistics2.multi_part.fluid_annihilation_plane.name=ME 액체 소멸 평면
item.appliedenergistics2.multi_part.identity_annihilation_plane.name=ME 확인 소멸 평면
item.appliedenergistics2.multi_part.cable_anchor.name=케이블 앵커
item.appliedenergistics2.multi_part.cable_covered.name=ME 차폐 케이블
item.appliedenergistics2.multi_part.cable_glass.name=ME 유리 케이블
item.appliedenergistics2.multi_part.cable_smart.name=ME 스마트 케이블
item.appliedenergistics2.multi_part.cable_dense_smart.name=ME 조밀 케이블
item.appliedenergistics2.multi_part.cable_dense_smart.name=ME 조밀 스마트 케이블
item.appliedenergistics2.multi_part.storage_monitor.name=ME 저장고 모니터
item.appliedenergistics2.multi_part.conversion_monitor.name=ME 변환 모니터
item.appliedenergistics2.multi_part.crafting_terminal.name=ME 조합 단말기
item.appliedenergistics2.multi_part.crafting_terminal.name=ME 조합 터미널
item.appliedenergistics2.multi_part.semi_dark_monitor.name=조명판
item.appliedenergistics2.multi_part.monitor.name=밝은 조명판
item.appliedenergistics2.multi_part.dark_monitor.name=어두운 조명판
item.appliedenergistics2.multi_part.export_bus.name=ME Export 버스
item.appliedenergistics2.multi_part.formation_plane.name=ME 생성 평면
item.appliedenergistics2.multi_part.import_bus.name=ME 입력 버스
item.appliedenergistics2.multi_part.export_bus.name=ME 유출 버스
item.appliedenergistics2.multi_part.fluid_export_bus.name=ME 액체 유출 버스
item.appliedenergistics2.multi_part.formation_plane.name=ME 생성면
item.appliedenergistics2.multi_part.fluid_formation_plane.name=ME 액체 생성면
item.appliedenergistics2.multi_part.import_bus.name=ME 유입 버스
item.appliedenergistics2.multi_part.fluid_import_bus.name=ME 액체 유입 버스
item.appliedenergistics2.multi_part.interface.name=ME 인터페이스
item.appliedenergistics2.multi_part.fluid_interface.name=ME 액체 인터페이스
item.appliedenergistics2.multi_part.level_emitter.name=ME 레벨 측정기
item.appliedenergistics2.multi_part.fluid_level_emitter.name=ME 액체 레벨 측정기
item.appliedenergistics2.multi_part.p2p_tunnel.name=P2P 터널
item.appliedenergistics2.multi_part.pattern_terminal.name=ME 패턴 터미널
item.appliedenergistics2.multi_part.quartz_fiber.name=Quartz Fiber
item.appliedenergistics2.multi_part.storage_bus.name=ME 저장 요소
item.appliedenergistics2.multi_part.quartz_fiber.name=석영 섬유
item.appliedenergistics2.multi_part.storage_bus.name=ME 저장 버스
item.appliedenergistics2.multi_part.fluid_storage_bus.name=ME 액체 저장 버스
item.appliedenergistics2.multi_part.terminal.name=ME 터미널
item.appliedenergistics2.multi_part.inverted_toggle_bus.name=ME 반전된 토글 버스
item.appliedenergistics2.multi_part.toggle_bus.name=ME 토글 버스
item.appliedenergistics2.multi_part.crafting_monitor.name=ME 제작 과정 모니터
item.appliedenergistics2.multi_part.crafting_monitor.name=ME 조합 모니터
item.appliedenergistics2.multi_part.interface_terminal.name=ME 인터페이스 터미널
item.appliedenergistics2.multi_part.fluid_terminal.name=ME 액체 터미널
item.appliedenergistics2.multi_part.invalid_type.name=비활성화된 아이템
item.appliedenergistics2.spatial_storage_cell_128_cubed.name=128³ 시공 셀
item.appliedenergistics2.spatial_storage_cell_16_cubed.name=16³ 시공 셀
item.appliedenergistics2.spatial_storage_cell_2_cubed.name=2³ 시공 셀
item.appliedenergistics2.certus_quartz_axe.name=투스 석영 도끼
item.appliedenergistics2.certus_quartz_cutting_knife.name=투스 석영 커터칼
item.appliedenergistics2.certus_quartz_hoe.name=투스 석영 괭이
item.appliedenergistics2.certus_quartz_pickaxe.name=투스 석영 곡괭이
item.appliedenergistics2.certus_quartz_spade.name=투스 석영 삽
item.appliedenergistics2.certus_quartz_sword.name=투스 석영 검
item.appliedenergistics2.certus_quartz_wrench.name=투스 석영 렌치
item.appliedenergistics2.certus_quartz_axe.name=투스 석영 도끼
item.appliedenergistics2.certus_quartz_cutting_knife.name=투스 석영 커터칼
item.appliedenergistics2.certus_quartz_hoe.name=투스 석영 괭이
item.appliedenergistics2.certus_quartz_pickaxe.name=투스 석영 곡괭이
item.appliedenergistics2.certus_quartz_spade.name=투스 석영 삽
item.appliedenergistics2.certus_quartz_sword.name=투스 석영 검
item.appliedenergistics2.certus_quartz_wrench.name=투스 석영 렌치
item.appliedenergistics2.nether_quartz_axe.name=지옥 석영 도끼
item.appliedenergistics2.nether_quartz_cutting_knife.name=지옥 석영 커터칼
@@ -438,74 +540,83 @@ item.appliedenergistics2.paint_ball.name=페인트 공
item.appliedenergistics2.portable_cell.name=휴대용 셀
item.appliedenergistics2.network_tool.name=네트워크 도구
item.appliedenergistics2.charged_staff.name=충전된 스태프
item.appliedenergistics2.entropy_manipulator.name=Entropy Manipulator
item.appliedenergistics2.matter_cannon.name=메터 캐논
item.appliedenergistics2.entropy_manipulator.name=엔트로피 조종기
item.appliedenergistics2.matter_cannon.name=물질 대포
item.appliedenergistics2.memory_card.name=메모리 카드
item.appliedenergistics2.color_applicator.name=Color Applicator
item.appliedenergistics2.color_applicator.name=색상 적용기
item.appliedenergistics2.wireless_terminal.name무선 터미널
item.appliedenergistics2.biometric_card.name=바이오메트릭 카드
item.appliedenergistics2.debug_card.name=Dev.DebugCard
item.appliedenergistics2.debug_replicator_card.name=Dev.ReplicatorCard
item.appliedenergistics2.debug_card.name=디버그 카드
item.appliedenergistics2.debug_replicator_card.name=복제 카드
commands.ae2.usage=Commands provided by Applied Energistics 2 - use /ae2 list for a list, and /ae2 help _____ for help with a command.
commands.ae2.permissions=You do not have adequate permissions to run this command.
commands.ae2.ChunkLogger=Toggles Chunk Loading and unloading to the server log. ( OP )
commands.ae2.ChunkLoggerOn=청크 로깅이 켜졌습니다
commands.ae2.ChunkLoggerOff=청크 로깅이 졌습니다
commands.ae2.Supporters=Displays a list of AE2 Supporters
// Commands
commands.ae2.usage=응용 에너지학 모드에서 제공되는 명령어는 다음과 같습니다. - 목록은 /ae2 list를 사용하고, 명령어 도움말은 /ae2 help _____를 사용하세요.
commands.ae2.permissions=이 명령어를 실행할 수 있는 적절한 권한이 없습니다.
commands.ae2.ChunkLogger=청크 로드 및 서버 로그 로딩을 전환합니다. (OP)
commands.ae2.ChunkLoggerOn=청크 로깅이 졌습니다.
commands.ae2.ChunkLoggerOff=청크 로깅이 꺼졌습니다.
commands.ae2.Supporters=응용 에너지학 모드의 지원자 목록을 공개합니다.
achievement.ae2.Compass=Meteorite Hunter
achievement.ae2.Compass.desc=Craft a Meteorite Compass
achievement.ae2.Presses=Unknown Technology
achievement.ae2.Presses.desc=Find a Processor Press
achievement.ae2.SpatialIO=Spatial Coordination
achievement.ae2.SpatialIO.desc=Craft a Spatial IO Port
achievement.ae2.SpatialIOExplorer=To boldly go
achievement.ae2.SpatialIOExplorer.desc=Get stored in a spatial storage cell
achievement.ae2.StorageCell=Better Then Chests
achievement.ae2.StorageCell.desc=Craft a Storage Cell
achievement.ae2.IOPort=Storage Cell Shuffle
achievement.ae2.IOPort.desc=Craft a IO Port
achievement.ae2.CraftingTerminal=A (Much) Bigger Table
achievement.ae2.CraftingTerminal.desc=Craft a Crafting Terminal
achievement.ae2.PatternTerminal=Crafting Maestro
achievement.ae2.PatternTerminal.desc=Craft a Pattern Terminal
achievement.ae2.ChargedQuartz=Shocking
achievement.ae2.ChargedQuartz.desc=Find Charged Quartz
achievement.ae2.Fluix=Unnatural
achievement.ae2.Fluix.desc=Create Fluix Crystals
achievement.ae2.Charger=Fluix Production
achievement.ae2.Charger.desc=Craft a Charger
achievement.ae2.CrystalGrowthAccelerator=Accelerator is an understatement
achievement.ae2.CrystalGrowthAccelerator.desc=Craft a Crystal Growth Accelerator
// Achievements
achievement.ae2.Root=응용 에너지학
achievement.ae2.Root.desc=상자가 충분치 않을 때
achievement.ae2.Compass=운석 사냥꾼
achievement.ae2.Compass.desc=운석 탐지기 조합
achievement.ae2.Presses=알려지지 않은 기술
achievement.ae2.Presses.desc=프로세서 프레스 발견
achievement.ae2.SpatialIO=공간 조정
achievement.ae2.SpatialIO.desc=시공 입출력 포트 조합
achievement.ae2.SpatialIOExplorer=대담하게 가다
achievement.ae2.SpatialIOExplorer.desc=시공 저장 셀에 저장
achievement.ae2.StorageCell=상자보다 그뤠잇
achievement.ae2.StorageCell.desc=저장 셀 조합
achievement.ae2.IOPort=저장 셀 순서 섞기
achievement.ae2.IOPort.desc=입출력 포트 조합
achievement.ae2.CraftingTerminal=더 큰 탁자
achievement.ae2.CraftingTerminal.desc=조합 터미널 조합
achievement.ae2.PatternTerminal=마에스트로 조합
achievement.ae2.PatternTerminal.desc=패턴 터미널 조합
achievement.ae2.ChargedQuartz=슈퍼그뤠잇!
achievement.ae2.ChargedQuartz.desc=충전된 수정 발견
achievement.ae2.Fluix=비자연
achievement.ae2.Fluix.desc=액정 수정 발견
achievement.ae2.Charger=액정 생산
achievement.ae2.Charger.desc=충전기 조합
achievement.ae2.CrystalGrowthAccelerator=가속기는 절제
achievement.ae2.CrystalGrowthAccelerator.desc=결정 성장 촉진기 조합
achievement.ae2.GlassCable=유동 에너지 연결
achievement.ae2.GlassCable.desc=ME 유리 케이블을 제작
achievement.ae2.Networking1=Network Apprentice
achievement.ae2.Networking1.desc=Reach 8 channel using devices on a network.
achievement.ae2.Controller=Networking Switchboard
achievement.ae2.Controller.desc=제어기를 제작
achievement.ae2.GlassCable.desc=ME 유리 케이블 조합
achievement.ae2.Networking1=네트워크 견습생
achievement.ae2.Networking1.desc=네트워크에 사용하는 장치를 8채널에 도달
achievement.ae2.Controller=네트워크 교환대
achievement.ae2.Controller.desc=제어기 조합
achievement.ae2.Networking2=네트워크 엔지니어
achievement.ae2.Networking2.desc=Reach 128 channel using devices on a network.
achievement.ae2.Networking3=Network Administrator
achievement.ae2.Networking3.desc=Reach 2048 channel using devices on a network.
achievement.ae2.P2P=Point to Point Networking
achievement.ae2.P2P.desc=Craft a P2P Tunnel
achievement.ae2.Recursive=Recursive Networking
achievement.ae2.Recursive.desc=Place a Interface on a storage Bus.
achievement.ae2.CraftingCPU=Next Gen Crafting
achievement.ae2.CraftingCPU.desc=Craft a Crafting Unit
achievement.ae2.Facade=Network Aesthetics
achievement.ae2.Facade.desc=Craft a Cable Facade
achievement.ae2.NetworkTool=Network Diagnostics
achievement.ae2.NetworkTool.desc=Craft a Network Tool
achievement.ae2.PortableCell=Storage Nomad
achievement.ae2.PortableCell.desc=Craft a Portable Cell
achievement.ae2.StorageBus=Limitless Potential
achievement.ae2.StorageBus.desc=Craft a Storage Bus
achievement.ae2.QNB=Quantum Tunneling
achievement.ae2.QNB.desc=Craft a Quantum Link
achievement.ae2.Networking2.desc=네트워크에 사용하는 장치를 128채널에 도달
achievement.ae2.Networking3=네트워크 관리자
achievement.ae2.Networking3.desc=네트워크에 사용하는 장치를 2048채널에 도달
achievement.ae2.P2P=P2P 네트워크
achievement.ae2.P2P.desc=P2P 터널 조합
achievement.ae2.Recursive=재귀적 네트워킹
achievement.ae2.Recursive.desc=저장 버스에 인터페이스 설치
achievement.ae2.CraftingCPU=차세대 조합
achievement.ae2.CraftingCPU.desc=조합 유닛 조합
achievement.ae2.Facade=네트워크 미학
achievement.ae2.Facade.desc=케이블 덮개 조합
achievement.ae2.NetworkTool=네트워크 진단
achievement.ae2.NetworkTool.desc=네트워크 도구 제작
achievement.ae2.PortableCell=저장 유목민
achievement.ae2.PortableCell.desc=휴대용 셀 제작
achievement.ae2.StorageBus=한계없는 잠재력
achievement.ae2.StorageBus.desc=저장 버스 조합
achievement.ae2.QNB=양자 터널링
achievement.ae2.QNB.desc=양자 링크 조합
stat.ae2.ItemsInserted=Items added to ME Storage
stat.ae2.ItemsExtracted=Items extracted from ME Storage
stat.ae2.TurnedCranks=Turned Cranks
// Stats
stat.ae2.ItemsInserted=아이템이 ME 저장고에 추가되었습니다.
stat.ae2.ItemsExtracted=아이템이 ME 저장고로부터 추출되었습니다.
stat.ae2.TurnedCranks=전환된 크랭크
//Keys
key.appliedenergistics2.category=응용 에너지학
key.toggle_focus.desc=상자를 집중적으로 토글하면서 검색하세요.
@@ -1,8 +1,9 @@
//versão pt-BR atualizada por _InterPlay_ em 31/12/2018
//Blocos
tile.appliedenergistics2.cable_bus.name=Cabos e/ou Barramentos do AE2
tile.appliedenergistics2.cell_workbench.name=Bancada de Células
tile.appliedenergistics2.charger.name=Carregador
tile.appliedenergistics2.chest.name=Báu ME
tile.appliedenergistics2.chest.name=Báu de Matéria para Energia (ME)
tile.appliedenergistics2.condenser.name=Condensador de Matéria
tile.appliedenergistics2.controller.name=Controlador ME
tile.appliedenergistics2.crank.name=Manivela de Madeira
@@ -13,9 +14,10 @@ tile.appliedenergistics2.drive.name=Acionador ME
tile.appliedenergistics2.energy_acceptor.name=Aceitador de Energia
tile.appliedenergistics2.grindstone.name=Rebolo de Quartzo
tile.appliedenergistics2.matrix_frame.name=Armação de Matriz
tile.appliedenergistics2.io_port.name=Porta de Entrada-Saída ME
tile.appliedenergistics2.io_port.name=Porta de Entrada/Saída ME
tile.appliedenergistics2.inscriber.name=Inscritor
tile.appliedenergistics2.interface.name=Interface ME
tile.appliedenergistics2.fluid_interface.name=Interface de Fluidos ME
tile.appliedenergistics2.quantum_link.name=Câmara de Ligação Quântica ME
tile.appliedenergistics2.quantum_ring.name=Anel Quântico ME
tile.appliedenergistics2.fluix_block.name=Bloco de Fluix
@@ -73,18 +75,19 @@ tile.appliedenergistics2.sky_stone_slab.name=Laje de Pedra do Céu
// Chat Messages
chat.appliedenergistics2.ChestCannotReadStorageCell=Baú ME não consegue ler a célula de armazenamento.
chat.appliedenergistics2.SettingCleared=Configuração limpa.
chat.appliedenergistics2.SettingCleared=Cartão de Memória limpo.
chat.appliedenergistics2.OutOfRange=Fora de área do sinal
chat.appliedenergistics2.InvalidMachine=Máquina inválida.
chat.appliedenergistics2.LoadedSettings=Configurações carregadas com sucesso.
chat.appliedenergistics2.LoadedSettings=Configuração de dispositivo carregada a partir do cartão de memória.
chat.appliedenergistics2.DeviceNotPowered=Dispositivo está com baixa energia.
chat.appliedenergistics2.DeviceNotWirelessTerminal=Dispositivo não é um terminal sem fios.
chat.appliedenergistics2.DeviceNotLinked=Dispositivo não conectado
chat.appliedenergistics2.StationCanNotBeLocated=Estação não pode ser encontrada.
chat.appliedenergistics2.MachineNotPowered=Máquina não está sendo alimentada.
chat.appliedenergistics2.CommunicationError=Erro comunicando com a rede.
chat.appliedenergistics2.SavedSettings=Configurações salvas com sucesso.
chat.appliedenergistics2.AmmoDepleted=Munição depletada.
chat.appliedenergistics2.CommunicationError=Erro ao comunicar com a rede.
chat.appliedenergistics2.SavedSettings=Configurações atuais do dispositivo copiadas ao cartão de memória.
chat.appliedenergistics2.ResetSettings=Criada nova configuração de dispositivo e copiada ao cartão de memória.
chat.appliedenergistics2.AmmoDepleted=Munição esgotada.
chat.appliedenergistics2.isNowLocked=O monitor agora está Bloqueado.
chat.appliedenergistics2.isNowUnlocked=O monitor agora está Desbloqueado.
@@ -117,9 +120,11 @@ gui.appliedenergistics2.security.build.tip=O usuário pode modificar a estutura
gui.appliedenergistics2.security.security.tip=O usuário pode acessar e modificar o terminal de segurança da rede.
gui.appliedenergistics2.Efficiency=Eficiência
gui.appliedenergistics2.RequiredPower=Poder Requerido
gui.appliedenergistics2.StoredPower=Poder Armazenado
gui.appliedenergistics2.MaxPower=Poder Máximo
gui.appliedenergistics2.SCSSize=Tamanho SCS
gui.appliedenergistics2.SCSInvalid=Inválido
gui.appliedenergistics2.RequiredPower=Energia Requerida
gui.appliedenergistics2.StoredPower=Energia Armazenada
gui.appliedenergistics2.MaxPower=Energia Máxima
gui.appliedenergistics2.QuartzCuttingKnife=Faca de Corte de Quartzo
gui.appliedenergistics2.Inscriber=Inscritor
gui.appliedenergistics2.Wireless=Ponto de Acesso Sem Fio
@@ -129,6 +134,7 @@ gui.appliedenergistics2.SecurityCardEditor=Editor de Cartão Biométrico
gui.appliedenergistics2.Encoded=Codificado
gui.appliedenergistics2.Priority=Prioridade
gui.appliedenergistics2.StorageBus=Barramento de Armazenamento
gui.appliedenergistics2.StorageBusFluids=Barramento de Armazenamento de Fluido
gui.appliedenergistics2.EnergyDrain=Drenagem Passiva
gui.appliedenergistics2.Installed=Instalado
gui.appliedenergistics2.NetworkTool=Ferramenta de Rede
@@ -138,36 +144,44 @@ gui.appliedenergistics2.PortableCell=Célula Portátil
gui.appliedenergistics2.Security=Term. de Segurança
gui.appliedenergistics2.CellWorkbench=Bancada de Células
gui.appliedenergistics2.QuantumLinkChamber=Câmara de Ligação Quântica
gui.appliedenergistics2.IOPort=Porta de ES ME
gui.appliedenergistics2.IOPort=Porta de E/S ME
gui.appliedenergistics2.Chest=Baú ME
gui.appliedenergistics2.Condenser=Condensador de Matéria
gui.appliedenergistics2.Config=Config.
gui.appliedenergistics2.Drive=Acionador ME
gui.appliedenergistics2.ExportBus=Barramento de Exportação ME
gui.appliedenergistics2.ExportBus=Barramento ME de Exportação
gui.appliedenergistics2.ExportBusFluids=Barramento ME de Exportação de Fluidos
gui.appliedenergistics2.GrindStone=Rebolo
gui.appliedenergistics2.ImportBus=Barramento de Importação ME
gui.appliedenergistics2.ImportBus=Barramento ME de Importação
gui.appliedenergistics2.ImportBusFluids=Barramento ME de Importação de Fluido
gui.appliedenergistics2.Interface=Interface ME
gui.appliedenergistics2.LevelEmitter=Emissor de Nível ME
gui.appliedenergistics2.Of=De
gui.appliedenergistics2.FluidInterface=Interface ME de Fluido
gui.appliedenergistics2.LevelEmitter=Emissor ME de Nível
gui.appliedenergistics2.FluidLevelEmitter=Emissor ME de Nível de Fluido
gui.appliedenergistics2.Of=de
gui.appliedenergistics2.Patterns=Padrões
gui.appliedenergistics2.SpatialIOPort=Porta de ES Espacial
gui.appliedenergistics2.SpatialIOPort=Porta de E/S Espacial
gui.appliedenergistics2.StoredEnergy=Energia Armazenada
gui.appliedenergistics2.StoredItems=Itens Armazenados
gui.appliedenergistics2.StoredFluids=Fluidos Armazenados
gui.appliedenergistics2.Terminal=Terminal
gui.appliedenergistics2.InterfaceTerminal=Terminal de Interface
gui.appliedenergistics2.InterfaceTerminalHint=Mostrar ou Esconder no Terminal de Interface
gui.appliedenergistics2.FormationPlane=Plano de Formação
gui.appliedenergistics2.FluidFormationPlane=Plano de Formação de Fluido
gui.appliedenergistics2.VibrationChamber=Câmara de Vibração
gui.appliedenergistics2.NetworkDetails=Detalhes de Rede
gui.appliedenergistics2.StorageCells=Células de Armazenamento ME
gui.appliedenergistics2.IOBuses=Barramento de Ex/Importação ME
gui.appliedenergistics2.IOBuses=Barramento ME de Exp/Importação
gui.appliedenergistics2.IOBusesFluids=Barramento ME de Exp/Importação de Fluido
gui.appliedenergistics2.Stores=Guarda
gui.appliedenergistics2.BytesUsed=Bytes Usados
gui.appliedenergistics2.Types=Tipos
gui.appliedenergistics2.Blank=Branco
gui.appliedenergistics2.Unlinked=Não Conectado
gui.appliedenergistics2.Blank=Em Branco
gui.appliedenergistics2.Unlinked=Desconectado
gui.appliedenergistics2.Linked=Conectado
gui.appliedenergistics2.StoredSize=Tamanho Armazenado
gui.appliedenergistics2.CellId=ID da Célula
gui.appliedenergistics2.SkyChest=Baú de Pedra do Céu
gui.appliedenergistics2.PatternTerminal=Terminal de Padrões
gui.appliedenergistics2.CraftingPattern=Padrão de Fabricação
@@ -283,9 +297,13 @@ gui.tooltips.appliedenergistics2.ActiveOnPulse=Ativar uma vez por pulso
gui.tooltips.appliedenergistics2.EmitLevelsBelow=Emitir quando níveis são iguais ou estão abaixo do limite
gui.tooltips.appliedenergistics2.EmitLevelAbove=Emitir quando níveis são iguais ou estão acima do limite.
gui.tooltips.appliedenergistics2.SearchMode_Auto=Auto Procura
gui.tooltips.appliedenergistics2.SearchMode_Standard=Procura Normal
gui.tooltips.appliedenergistics2.SearchMode_JEIAuto=Auto Sincronizado ao JEI
gui.tooltips.appliedenergistics2.SearchMode_JEIStandard=Sincronizado ao JEI Normalmente
gui.tooltips.appliedenergistics2.SearchMode_Standard=Procura Padrão
gui.tooltips.appliedenergistics2.SearchMode_JEIAuto=Auto Procura, Sincronizado com o JEI
gui.tooltips.appliedenergistics2.SearchMode_JEIStandard=Procura Padrão, Sincronizado com o JEI
gui.tooltips.appliedenergistics2.SearchMode_AutoKeep=Auto Procura (Manter)
gui.tooltips.appliedenergistics2.SearchMode_StandardKeep=Procura Padrão (Manter)
gui.tooltips.appliedenergistics2.SearchMode_JEIAutoKeep=Auto Procura, Sincronizado com o JEI (Manter)
gui.tooltips.appliedenergistics2.SearchMode_JEIStandardKeep=Procura Padrão, Sincronizado com o JEI (Manter)
gui.tooltips.appliedenergistics2.SearchMode=Modo de Caixa de Procura
gui.tooltips.appliedenergistics2.PartitionStorageHint=Configura a Partição baseado em itens atualmente armazenados.
gui.tooltips.appliedenergistics2.ClearSettings=Limpar Configurações
@@ -314,8 +332,11 @@ gui.tooltips.appliedenergistics2.EmitterMode=Modo de Fabricação Emissor
gui.tooltips.appliedenergistics2.CraftViaRedstone=Emite sinal para fazer um item.
gui.tooltips.appliedenergistics2.EmitWhenCrafting=Emite sinal enquanto o item está sendo fabricado.
gui.tooltips.appliedenergistics2.ReportInaccessibleItems=Reportar Itens Inacessíveis
gui.tooltips.appliedenergistics2.ReportInaccessibleItemsYes=Sim: Itens que não podem ser extraídos vão estar visíveis.
gui.tooltips.appliedenergistics2.ReportInaccessibleItemsYes=Sim: Itens que não podem ser extraídos estarão visíveis.
gui.tooltips.appliedenergistics2.ReportInaccessibleItemsNo=Não: Apenas itens extraíveis vão estar visíveis.
gui.tooltips.appliedenergistics2.ReportInaccessibleFluids=Reportar Fluidos Inacessíveis
gui.tooltips.appliedenergistics2.ReportInaccessibleFluidsYes=Sim: Fluidos que não podem ser extraídos estarão visíveis.
gui.tooltips.appliedenergistics2.ReportInaccessibleFluidsNo=Não: Apenas fluidos extraíveis estarão visíveis.
gui.tooltips.appliedenergistics2.BlockPlacement=Colocação de Blocos
gui.tooltips.appliedenergistics2.BlockPlacementYes=Blocks serão colocados como blocos.
gui.tooltips.appliedenergistics2.BlockPlacementNo=Blocos serão jogados como itens.
@@ -323,12 +344,16 @@ gui.tooltips.appliedenergistics2.SchedulingMode=Modo Planejado
gui.tooltips.appliedenergistics2.SchedulingModeDefault=Exportar o primeiro item até que a rede esteja vazia, e depois tentar o próximo.
gui.tooltips.appliedenergistics2.SchedulingModeRoundRobin=Exportar usando mode modo de turnos.
gui.tooltips.appliedenergistics2.SchedulingModeRandom=Exportar items usando modo aleatório.
gui.tooltips.appliedenergistics2.FilterMode=Modo Filtro de Procura
gui.tooltips.appliedenergistics2.FilterModeKeep=Restaura o Filtro de Procura Anterior.
gui.tooltips.appliedenergistics2.FilterModeClear=Limpa em cada abertura.
gui.tooltips.appliedenergistics2.ItemsStored=Items Guardados: %s
gui.tooltips.appliedenergistics2.ItemsRequestable=Items Solicitáveis: %s
gui.tooltips.appliedenergistics2.P2PFrequency=Frequência: %s
// Units
gui.appliedenergistics2.units.appliedenergstics=AE
gui.appliedenergistics2.units.ic2=Energy Units
gui.appliedenergistics2.units.ic2=Unidades de Energia
gui.appliedenergistics2.units.rf=Redstone Flux
// Cores
@@ -360,15 +385,23 @@ waila.appliedenergistics2.Unlocked=Destrancado
waila.appliedenergistics2.Showing=Mostrando
waila.appliedenergistics2.Contains=Contém
waila.appliedenergistics2.Channels=%1$d de %2$d Canais
waila.appliedenergistics2.P2PUnlinked=Desconectado
waila.appliedenergistics2.P2PInputOneOutput=Conectado (Lado de Entrada)
waila.appliedenergistics2.P2PInputManyOutputs=Conectado (Lado de Entrada) - %d Saídas
waila.appliedenergistics2.P2POutput=Conectado (Lado de Saída)
// Items
item.appliedenergistics2.storage_cell_1k.name=Célula de Armazenamento ME de 1k
item.appliedenergistics2.storage_cell_4k.name=Célula de Armazenamento ME de 4k
item.appliedenergistics2.storage_cell_16k.name=Célula de Armazenamento ME de 16k
item.appliedenergistics2.storage_cell_64k.name=Célula de Armazenamento ME de 64k
item.appliedenergistics2.fluid_storage_cell_1k.name=Célula de Armazenamento ME de 1k para Fluidos
item.appliedenergistics2.fluid_storage_cell_4k.name=Célula de Armazenamento ME de 4k para Fluidos
item.appliedenergistics2.fluid_storage_cell_16k.name=Célula de Armazenamento ME de 16k para Fluidos
item.appliedenergistics2.fluid_storage_cell_64k.name=Célula de Armazenamento ME de 64k para Fluidos
item.appliedenergistics2.creative_storage_cell.name=Célula de Armazenamento ME Criativa
item.appliedenergistics2.encoded_pattern.name=Padrão Codificado
item.appliedenergistics2.view_cell.name=Ver Célula
item.appliedenergistics2.view_cell.name=Célula de Visualização
item.appliedenergistics2.facade.name=Fachada de Cabos
item.appliedenergistics2.crystal_seed.certus.name=Semente de Quartzo Certus
@@ -392,11 +425,15 @@ item.appliedenergistics2.material.cell1k_part.name=Componente de Armazenamento M
item.appliedenergistics2.material.cell4k_part.name=Componente de Armazenamento ME de 4k
item.appliedenergistics2.material.cell16k_part.name=Componente de Armazenamento ME de 16k
item.appliedenergistics2.material.cell64k_part.name=Componente de Armazenamento ME de 64k
item.appliedenergistics2.material.fluid_cell1k_part.name=Componente de Armazenamento ME de Fluidos de 1k
item.appliedenergistics2.material.fluid_cell4k_part.name=Componente de Armazenamento ME de Fluidos de 4k
item.appliedenergistics2.material.fluid_cell16k_part.name=Componente de Armazenamento ME de Fluidos de 16k
item.appliedenergistics2.material.fluid_cell64k_part.name=Componente de Armazenamento ME de Fluidos de 64k
item.appliedenergistics2.material.certus_quartz_crystal.name=Cristal de Quartzo Certus
item.appliedenergistics2.material.certus_quartz_crystal_charged.name=Cristal Carregado de Quartzo Certus
item.appliedenergistics2.material.certus_quartz_dust.name=Pó de Quartzo Certus
item.appliedenergistics2.material.empty_storage_cell.name=Encaixe de Armazenamento ME
item.appliedenergistics2.material.ender_dust.name=Pó do Fim
item.appliedenergistics2.material.ender_dust.name=Pó do End
item.appliedenergistics2.material.engineering_processor.name=Processador de Engenharia
item.appliedenergistics2.material.flour.name=Farinha
item.appliedenergistics2.material.fluix_crystal.name=Cristal de Fluix
@@ -431,32 +468,41 @@ item.appliedenergistics2.material.sky_dust.name=Pó de Pedra do Céu
item.appliedenergistics2.material.card_crafting.name=Cartão de Fabricação
item.appliedenergistics2.multi_part.annihilation_plane.name=Plano de Aniquilação ME
item.appliedenergistics2.multi_part.fluid_annihilation_plane.name=Plano de Aniquilação ME para Fluidos
item.appliedenergistics2.multi_part.identity_annihilation_plane.name=Plano de Aniquilação de identidade ME
item.appliedenergistics2.multi_part.cable_anchor.name=Cabo Âncora
item.appliedenergistics2.multi_part.cable_covered.name=Cabo Coberto ME
item.appliedenergistics2.multi_part.cable_glass.name=Cabo de Vidro ME
item.appliedenergistics2.multi_part.cable_smart.name=Cabo Inteligente ME
item.appliedenergistics2.multi_part.cable_dense_smart.name=Cabo Denso ME
item.appliedenergistics2.multi_part.cable_dense_smart.name=Cabo Denso Coberto ME
item.appliedenergistics2.multi_part.cable_dense_smart.name=Cabo Denso Coberto Inteligente ME
item.appliedenergistics2.multi_part.storage_monitor.name=Monitor de Armazenamento ME
item.appliedenergistics2.multi_part.conversion_monitor.name=Monitor de Conversão ME
item.appliedenergistics2.multi_part.crafting_terminal.name=Terminal de Fabricação ME
item.appliedenergistics2.multi_part.semi_dark_monitor.name=Painel Iluminado
item.appliedenergistics2.multi_part.monitor.name=Painel Brilhante Iluminado
item.appliedenergistics2.multi_part.dark_monitor.name=Painel Escuro Iluminado
item.appliedenergistics2.multi_part.export_bus.name=Barramento de Exportação ME
item.appliedenergistics2.multi_part.export_bus.name=Barramento ME de Exportação
item.appliedenergistics2.multi_part.fluid_export_bus.name=Barramento ME de Exportação de Fluidos
item.appliedenergistics2.multi_part.formation_plane.name=Plano de Formação ME
item.appliedenergistics2.multi_part.import_bus.name=Barramento de Importação ME
item.appliedenergistics2.multi_part.fluid_formation_plane.name=Plano de Formação ME para Fluidos
item.appliedenergistics2.multi_part.import_bus.name=Barramento ME de Importação
item.appliedenergistics2.multi_part.fluid_import_bus.name=Barramento ME de Importação de Fluidos
item.appliedenergistics2.multi_part.interface.name=Interface ME
item.appliedenergistics2.multi_part.fluid_interface.name=Interface ME de Fluidos
item.appliedenergistics2.multi_part.level_emitter.name=Emissor de Nível ME
item.appliedenergistics2.multi_part.fluid_level_emitter.name=Emissor de Nível ME para Fluidos
item.appliedenergistics2.multi_part.p2p_tunnel.name=Tùnel P2P
item.appliedenergistics2.multi_part.pattern_terminal.name=Terminal de Padrões ME
item.appliedenergistics2.multi_part.quartz_fiber.name=Fibra de Quartzo
item.appliedenergistics2.multi_part.storage_bus.name=Barramento de Armazenamento ME
item.appliedenergistics2.multi_part.storage_bus.name=Barramento ME de Armazenamento
item.appliedenergistics2.multi_part.fluid_storage_bus.name=Barramento ME de Armazenamento de Fluidos
item.appliedenergistics2.multi_part.terminal.name=Terminal ME
item.appliedenergistics2.multi_part.inverted_toggle_bus.name=Barramento de Alternância Invertido ME
item.appliedenergistics2.multi_part.toggle_bus.name=Barramento de Alternância ME
item.appliedenergistics2.multi_part.crafting_monitor.name=Monitor de Fabricação ME
item.appliedenergistics2.multi_part.interface_terminal.name=Terminal de Interface ME
item.appliedenergistics2.multi_part.fluid_terminal.name=Terminal ME de Fluidos
item.appliedenergistics2.multi_part.invalid_type.name=Item Desabilitado
item.appliedenergistics2.spatial_storage_cell_128_cubed.name=Célula de Armazenamento Espacial 128³
@@ -502,18 +548,20 @@ commands.ae2.ChunkLoggerOff=O registro de agora está desligado.
commands.ae2.Supporters=Mostra uma lista de Apoiadores do AE2
// Conquistas
achievement.ae2.Root=Energistica Aplicada
achievement.ae2.Root.desc=Quando baús não são o suficiente.
achievement.ae2.Compass=Caça-Meteoritos
achievement.ae2.Compass.desc=Faça uma Bússola de Meteoritos
achievement.ae2.Presses=Tecnologia Desconhecida
achievement.ae2.Presses.desc=Ache uma Prensa de Processador
achievement.ae2.SpatialIO=Coordenação Espacial
achievement.ae2.SpatialIO.desc=Crie uma Porta de ES Espacial
achievement.ae2.SpatialIO.desc=Crie uma Porta de E/S Espacial
achievement.ae2.SpatialIOExplorer=Ir audaciosamente
achievement.ae2.SpatialIOExplorer.desc=Fique armazenado em uma Célula de Armazenamento Espacial.
achievement.ae2.SpatialIOExplorer.desc=Seja armazenado em uma Célula de Armazenamento Espacial.
achievement.ae2.StorageCell=Melhor que Baús
achievement.ae2.StorageCell.desc=Faça uma Célula de Armazenamento
achievement.ae2.IOPort=Embaralhamento de Células de Armazenamentos
achievement.ae2.IOPort.desc=Faça uma Porta de ES
achievement.ae2.StorageCell.desc=Faça uma Célula de Armazenamento de Matéria para Energia
achievement.ae2.IOPort=Embaralhamento de Células de Armazenamento
achievement.ae2.IOPort.desc=Faça uma Porta de E/S
achievement.ae2.CraftingTerminal=Uma Bancada (Muito) Maior
achievement.ae2.CraftingTerminal.desc=Faça um Terminal de Fabricação
achievement.ae2.PatternTerminal=Maestro da Fabricação
@@ -557,3 +605,7 @@ achievement.ae2.QNB.desc=Faça uma Ligação Quântica
stat.ae2.ItemsInserted=Itens adicionados ao Armazenamento ME
stat.ae2.ItemsExtracted=Itens extraídos do Armazenamento ME
stat.ae2.TurnedCranks=Manivelas Giradas
//Keys
key.appliedenergistics2.category=Applied Energistics 2
key.toggle_focus.desc=Alterar foco da caixa de procura
@@ -1,4 +1,4 @@
// 方块
// Blocks (方块)
tile.appliedenergistics2.cable_bus.name=AE2线缆和(或)总线
tile.appliedenergistics2.cell_workbench.name=元件工作台
tile.appliedenergistics2.charger.name=充能器
@@ -16,6 +16,7 @@ tile.appliedenergistics2.matrix_frame.name=矩阵框架
tile.appliedenergistics2.io_port.name=ME-IO端口
tile.appliedenergistics2.inscriber.name=压印器
tile.appliedenergistics2.interface.name=ME接口
tile.appliedenergistics2.fluid_interface.name=ME流体接口
tile.appliedenergistics2.quantum_link.name=ME量子链接仓
tile.appliedenergistics2.quantum_ring.name=ME量子环
tile.appliedenergistics2.fluix_block.name=福鲁伊克斯块
@@ -51,7 +52,7 @@ tile.appliedenergistics2.crafting_accelerator.name=并行处理单元
tile.appliedenergistics2.crafting_unit.name=合成单元
tile.appliedenergistics2.molecular_assembler.name=分子装配室
// 楼梯
// Stairs (楼梯)
tile.appliedenergistics2.fluix_stairs.name=錾制赛特斯石英楼梯
tile.appliedenergistics2.quartz_stairs.name=福鲁伊克斯楼梯
tile.appliedenergistics2.chiseled_quartz_stairs.name=竖纹赛特斯石英楼梯
@@ -61,7 +62,7 @@ tile.appliedenergistics2.sky_stone_brick_stairs.name=陨石石砖楼梯
tile.appliedenergistics2.sky_stone_small_brick_stairs.name=陨石砖块楼梯
tile.appliedenergistics2.sky_stone_stairs.name=陨石楼梯
// Slabs
// Slabs (台阶)
tile.appliedenergistics2.chiseled_quartz_slab.name=錾制赛特斯石英台阶
tile.appliedenergistics2.fluix_slab.name=福鲁伊克斯台阶
tile.appliedenergistics2.quartz_pillar_slab.name=竖纹赛特斯石英台阶
@@ -71,7 +72,7 @@ tile.appliedenergistics2.sky_stone_brick_slab.name=陨石石砖台阶
tile.appliedenergistics2.sky_stone_small_brick_slab.name=陨石砖块台阶
tile.appliedenergistics2.sky_stone_slab.name=陨石台阶
// Chat Messages
// Chat Messages (聊天信息)
chat.appliedenergistics2.ChestCannotReadStorageCell=ME箱子无法读取存储元件.
chat.appliedenergistics2.SettingCleared=设置已清除.
chat.appliedenergistics2.OutOfRange=超出无线信号范围.
@@ -83,20 +84,21 @@ chat.appliedenergistics2.DeviceNotLinked=设备未连接.
chat.appliedenergistics2.StationCanNotBeLocated=无法定位安全终端.
chat.appliedenergistics2.MachineNotPowered=机器未供能.
chat.appliedenergistics2.CommunicationError=网络交互错误.
chat.appliedenergistics2.SavedSettings=成功保存设定.
chat.appliedenergistics2.SavedSettings=已将当前设备的配置保存到内存卡中.
chat.appliedenergistics2.ResetSettings=新的设备配置已被创建并保存到内存卡中.
chat.appliedenergistics2.AmmoDepleted=弹药告罄.
chat.appliedenergistics2.isNowLocked=监控器已锁定.
chat.appliedenergistics2.isNowUnlocked=监控器已解锁.
// Creative Tabs
// Creative Tabs (创造模式物品栏)
itemGroup.appliedenergistics2=应用能源2
itemGroup.appliedenergistics2.facades=应用能源2-伪装板
// GUI
// GUI (图形用户界面相关)
gui.appliedenergistics2.CraftingTerminal=合成终端
gui.appliedenergistics2.METunnel=ME
gui.appliedenergistics2.ItemTunnel=物品
gui.appliedenergistics2.FluidTunnel=
gui.appliedenergistics2.FluidTunnel=
gui.appliedenergistics2.RedstoneTunnel=红石
gui.appliedenergistics2.EUTunnel=EU
gui.appliedenergistics2.FETunnel=FE
@@ -131,6 +133,7 @@ gui.appliedenergistics2.SecurityCardEditor=身份卡编辑
gui.appliedenergistics2.Encoded=已编码
gui.appliedenergistics2.Priority=优先级
gui.appliedenergistics2.StorageBus=存储总线
gui.appliedenergistics2.StorageBusFluids=流体储存总线
gui.appliedenergistics2.EnergyDrain=被动流失
gui.appliedenergistics2.Installed=已安装
gui.appliedenergistics2.NetworkTool=网络工具
@@ -146,23 +149,30 @@ gui.appliedenergistics2.Condenser=物质聚合器
gui.appliedenergistics2.Config=配置
gui.appliedenergistics2.Drive=ME驱动器
gui.appliedenergistics2.ExportBus=ME输出总线
gui.appliedenergistics2.ExportBusFluids=ME流体输出总线
gui.appliedenergistics2.GrindStone=磨具
gui.appliedenergistics2.ImportBus=ME输入总线
gui.appliedenergistics2.ImportBusFluids=ME流体输入总线
gui.appliedenergistics2.Interface=ME接口
gui.appliedenergistics2.FluidInterface=ME流体接口
gui.appliedenergistics2.LevelEmitter=ME标准发信器
gui.appliedenergistics2.FluidLevelEmitter=ME流体标准发信器
gui.appliedenergistics2.Of=/
gui.appliedenergistics2.Patterns=样板
gui.appliedenergistics2.SpatialIOPort=空间IO端口
gui.appliedenergistics2.StoredEnergy=已存储能源
gui.appliedenergistics2.StoredItems=已存储物品
gui.appliedenergistics2.StoredFluids=已存储流体
gui.appliedenergistics2.Terminal=终端
gui.appliedenergistics2.InterfaceTerminal=接口终端
gui.appliedenergistics2.InterfaceTerminalHint=在接口终端显示或隐藏.
gui.appliedenergistics2.FormationPlane=成型面板
gui.appliedenergistics2.FluidFormationPlane=流体成型面板
gui.appliedenergistics2.VibrationChamber=谐振仓
gui.appliedenergistics2.NetworkDetails=网络信息
gui.appliedenergistics2.StorageCells=ME存储元件
gui.appliedenergistics2.IOBuses=ME输入/输出总线
gui.appliedenergistics2.IOBusesFluids=ME流体输入/输出总线
gui.appliedenergistics2.Stores=存储
gui.appliedenergistics2.BytesUsed=字节已使用
gui.appliedenergistics2.Types=类型
@@ -236,7 +246,7 @@ gui.appliedenergistics2.SmallFontCraft=Craft
gui.appliedenergistics2.LargeFontCraft=+
gui.appliedenergistics2.Nothing=无
// GUI提示
// GUI Tooltips (GUI提示)
gui.tooltips.appliedenergistics2.Stash=存储物品
gui.tooltips.appliedenergistics2.StashDesc=将合成槽的物品返回网络
gui.tooltips.appliedenergistics2.Substitutions=矿物词典替换
@@ -289,6 +299,10 @@ gui.tooltips.appliedenergistics2.SearchMode_Auto=自动搜索
gui.tooltips.appliedenergistics2.SearchMode_Standard=标准搜索
gui.tooltips.appliedenergistics2.SearchMode_JEIAuto=JEI自动同步
gui.tooltips.appliedenergistics2.SearchMode_JEIStandard=JEI标准同步
gui.tooltips.appliedenergistics2.SearchMode_AutoKeep=保持自动搜索
gui.tooltips.appliedenergistics2.SearchMode_StandardKeep=保持标准搜索
gui.tooltips.appliedenergistics2.SearchMode_JEIAutoKeep=保持JEI自动同步
gui.tooltips.appliedenergistics2.SearchMode_JEIStandardKeep=保持JEI标准同步
gui.tooltips.appliedenergistics2.SearchMode=搜索框模式
gui.tooltips.appliedenergistics2.PartitionStorageHint=基于当前已存储物品进行分区编辑.
gui.tooltips.appliedenergistics2.ClearSettings=清除配置
@@ -316,9 +330,12 @@ gui.tooltips.appliedenergistics2.DoesntDespawn=该物品不会消失.
gui.tooltips.appliedenergistics2.EmitterMode=合成发信模式
gui.tooltips.appliedenergistics2.CraftViaRedstone=发射红石信号来合成物品.
gui.tooltips.appliedenergistics2.EmitWhenCrafting=在物品合成时发射红石信号.
gui.tooltips.appliedenergistics2.ReportInaccessibleItems=报告不可交互的物品
gui.tooltips.appliedenergistics2.ReportInaccessibleItems=显示不可交互的物品
gui.tooltips.appliedenergistics2.ReportInaccessibleItemsYes=是: 显示无法取出的物品.
gui.tooltips.appliedenergistics2.ReportInaccessibleItemsNo=否: 只显示可以取出的物品.
gui.tooltips.appliedenergistics2.ReportInaccessibleFluids=显示不可交互的流体
gui.tooltips.appliedenergistics2.ReportInaccessibleFluidsYes=是: 显示无法取出的流体.
gui.tooltips.appliedenergistics2.ReportInaccessibleFluidsNo=否: 只显示可以取出的流体.
gui.tooltips.appliedenergistics2.BlockPlacement=方块放置方式
gui.tooltips.appliedenergistics2.BlockPlacementYes=方块将被放置.
gui.tooltips.appliedenergistics2.BlockPlacementNo=方块将以物品形式掉落.
@@ -326,15 +343,19 @@ gui.tooltips.appliedenergistics2.SchedulingMode=调度模式
gui.tooltips.appliedenergistics2.SchedulingModeDefault=输出第一个物品直到系统中没有该物品,再输出下一个.
gui.tooltips.appliedenergistics2.SchedulingModeRoundRobin=循环输出模式.
gui.tooltips.appliedenergistics2.SchedulingModeRandom=随机输出模式.
gui.tooltips.appliedenergistics2.FilterMode=搜索过滤器模式
gui.tooltips.appliedenergistics2.FilterModeKeep=重载上一个搜索过滤器.
gui.tooltips.appliedenergistics2.FilterModeClear=在每次打开时清空.
gui.tooltips.appliedenergistics2.ItemsStored=存储物品: %s
gui.tooltips.appliedenergistics2.ItemsRequestable=可请求: %s
gui.tooltips.appliedenergistics2.P2PFrequency=频率: %s
// 单位
// Units (单位)
gui.appliedenergistics2.units.appliedenergstics=AE
gui.appliedenergistics2.units.ic2=EU
gui.appliedenergistics2.units.rf=RF
// 颜色
// Colors (颜色)
gui.appliedenergistics2.White=白色
gui.appliedenergistics2.Orange=橙色
gui.appliedenergistics2.Magenta=品红色
@@ -382,13 +403,18 @@ theoneprobe.appliedenergistics2.p2p_unlinked=未连接
theoneprobe.appliedenergistics2.p2p_input_one_output=已连接(输入端)
theoneprobe.appliedenergistics2.p2p_input_many_outputs=已连接(输入端)- %d 输出
theoneprobe.appliedenergistics2.p2p_output=已连接(输出端)
theoneprobe.appliedenergistics2.p2p_frequency=频率: %1$s
theoneprobe.appliedenergistics2.stored_energy=%1$d / %2$d
// 物品
// Items (物品)
item.appliedenergistics2.storage_cell_1k.name=1k-ME存储元件
item.appliedenergistics2.storage_cell_4k.name=4k-ME存储元件
item.appliedenergistics2.storage_cell_16k.name=16k-ME存储元件
item.appliedenergistics2.storage_cell_64k.name=64k-ME存储元件
item.appliedenergistics2.fluid_storage_cell_1k.name=1k-ME流体储存元件
item.appliedenergistics2.fluid_storage_cell_4k.name=4k-ME流体储存元件
item.appliedenergistics2.fluid_storage_cell_16k.name=16k-ME流体储存元件
item.appliedenergistics2.fluid_storage_cell_64k.name=64k-ME流体储存元件
item.appliedenergistics2.creative_storage_cell.name=创造型ME存储元件
item.appliedenergistics2.encoded_pattern.name=编码样板
item.appliedenergistics2.view_cell.name=显示元件
@@ -415,6 +441,10 @@ item.appliedenergistics2.material.cell1k_part.name=1k-ME存储组件
item.appliedenergistics2.material.cell4k_part.name=4k-ME存储组件
item.appliedenergistics2.material.cell16k_part.name=16k-ME存储组件
item.appliedenergistics2.material.cell64k_part.name=64k-ME存储组件
item.appliedenergistics2.material.fluid_cell1k_part.name=1k-ME流体存储组件
item.appliedenergistics2.material.fluid_cell4k_part.name=4k-ME流体存储组件
item.appliedenergistics2.material.fluid_cell16k_part.name=16k-ME流体存储组件
item.appliedenergistics2.material.fluid_cell64k_part.name=64k-ME流体存储组件
item.appliedenergistics2.material.certus_quartz_crystal.name=赛特斯石英水晶
item.appliedenergistics2.material.certus_quartz_crystal_charged.name=充能赛特斯石英水晶
item.appliedenergistics2.material.certus_quartz_dust.name=赛特斯石英粉
@@ -454,6 +484,7 @@ item.appliedenergistics2.material.sky_dust.name=陨石粉
item.appliedenergistics2.material.card_crafting.name=合成卡
item.appliedenergistics2.multi_part.annihilation_plane.name=ME破坏面板
item.appliedenergistics2.multi_part.fluid_annihilation_plane.name=ME流体破坏面板
item.appliedenergistics2.multi_part.identity_annihilation_plane.name=ME精准破坏面板
item.appliedenergistics2.multi_part.cable_anchor.name=线缆锚
item.appliedenergistics2.multi_part.cable_covered.name=ME包层线缆
@@ -468,19 +499,26 @@ item.appliedenergistics2.multi_part.semi_dark_monitor.name=照明面板
item.appliedenergistics2.multi_part.monitor.name=亮色照明面板
item.appliedenergistics2.multi_part.dark_monitor.name=暗色照明面板
item.appliedenergistics2.multi_part.export_bus.name=ME输出总线
item.appliedenergistics2.multi_part.fluid_export_bus.name=ME流体输出总线
item.appliedenergistics2.multi_part.formation_plane.name=ME成型面板
item.appliedenergistics2.multi_part.fluid_formation_plane.name=ME流体成型面板
item.appliedenergistics2.multi_part.import_bus.name=ME输入总线
item.appliedenergistics2.multi_part.fluid_import_bus.name=ME流体输入总线
item.appliedenergistics2.multi_part.interface.name=ME接口
item.appliedenergistics2.multi_part.fluid_interface.name=ME流体接口
item.appliedenergistics2.multi_part.level_emitter.name=ME标准发信器
item.appliedenergistics2.multi_part.fluid_level_emitter.name=ME流体标准发信器
item.appliedenergistics2.multi_part.p2p_tunnel.name=P2P通道
item.appliedenergistics2.multi_part.pattern_terminal.name=ME样板终端
item.appliedenergistics2.multi_part.quartz_fiber.name=石英纤维
item.appliedenergistics2.multi_part.storage_bus.name=ME存储总线
item.appliedenergistics2.multi_part.fluid_storage_bus.name=ME流体储存总线
item.appliedenergistics2.multi_part.terminal.name=ME终端
item.appliedenergistics2.multi_part.inverted_toggle_bus.name=ME反相触发总线
item.appliedenergistics2.multi_part.toggle_bus.name=ME触发总线
item.appliedenergistics2.multi_part.crafting_monitor.name=ME合成监控器
item.appliedenergistics2.multi_part.interface_terminal.name=ME接口终端
item.appliedenergistics2.multi_part.fluid_terminal.name=ME流体终端
item.appliedenergistics2.multi_part.invalid_type.name=已禁用
item.appliedenergistics2.spatial_storage_cell_128_cubed.name=128³-空间存储元件
@@ -517,7 +555,7 @@ item.appliedenergistics2.biometric_card.name=身份卡
item.appliedenergistics2.debug_card.name=Dev.调试卡
item.appliedenergistics2.debug_replicator_card.name=Dev.复制卡
// 命令
// Commands (指令)
commands.ae2.usage=ae2提供的指令 - 输入/ae2 list查看指令列表,/ae2 help _____查看指令帮助.
commands.ae2.permissions=你没有足够的权限来执行该指令.
commands.ae2.ChunkLogger=是否向服务器日志打开区块载入与载出信息.(OP)
@@ -525,15 +563,17 @@ commands.ae2.ChunkLoggerOn=区块日志已打开
commands.ae2.ChunkLoggerOff=区块日志已关闭
commands.ae2.Supporters=显示ae2支持者列表
// 成就
// Achievements (进度)
achievement.ae2.Root=Applied Energistics
achievement.ae2.Root.desc=当箱子只是不够用的时候.
achievement.ae2.Compass=陨石猎手
achievement.ae2.Compass.desc=制作一个陨石罗盘
achievement.ae2.Presses=未知科技
achievement.ae2.Presses.desc=发现一个处理器模板
achievement.ae2.SpatialIO=空间协调
achievement.ae2.SpatialIO.desc=制作一个空间IO端口
achievement.ae2.SpatialIOExplorerer=大胆去
achievement.ae2.SpatialIOExplorerer.desc=被存入空间存储元件
achievement.ae2.SpatialIOExplorer=大胆去
achievement.ae2.SpatialIOExplorer.desc=被存储在一个空间储存元件
achievement.ae2.StorageCell=比箱子更好
achievement.ae2.StorageCell.desc=制作一个存储元件
achievement.ae2.IOPort=元件互通
@@ -577,7 +617,11 @@ achievement.ae2.StorageBus.desc=制作一个存储总线
achievement.ae2.QNB=量子隧道
achievement.ae2.QNB.desc=制作一个链接室
// 统计
// Stats (统计)
stat.ae2.ItemsInserted=物品已加入ME存储
stat.ae2.ItemsExtracted=物品已取出ME存储
stat.ae2.TurnedCranks=转动曲柄
// Keys (键盘)
key.appliedenergistics2.category=Applied Energistics 2
key.toggle_focus.desc=打开/关闭搜索框聚焦