Compare commits

...

13 Commits

16 changed files with 197 additions and 115 deletions
+1 -1
View File
@@ -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 #
+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}"
@@ -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();
}
@@ -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 )
@@ -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();
@@ -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++ )
@@ -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 );
}
@@ -160,7 +160,7 @@ final class AESharedItemStack implements Comparable<AESharedItemStack>
public Bounds( final ItemStack stack, final FuzzyMode fuzzy, final boolean ignoreMeta )
{
Preconditions.checkState( stack.isEmpty(), "ItemStack#isEmpty() has to be false" );
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;
@@ -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