Compare commits
14 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 17bdd085b1 | |||
| 684cda58c2 | |||
| 740324913e | |||
| dae5e888e9 | |||
| a3abc7a1f0 | |||
| dd1ae4a9b5 | |||
| c9ef1beea1 | |||
| 276480519e | |||
| 04b1ca3485 | |||
| c14f688100 | |||
| 8bf98919e2 | |||
| 1862ab3562 | |||
| df6070ecbd | |||
| 8c62e1e7a6 |
@@ -413,7 +413,7 @@ public class ClientHelper extends ServerHelper
|
||||
}
|
||||
catch( final IOException e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -410,7 +410,7 @@ public abstract class AEBaseGui extends GuiContainer
|
||||
}
|
||||
catch( final IOException e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
}
|
||||
else if( slot instanceof SlotCraftingTerm )
|
||||
@@ -779,7 +779,7 @@ public abstract class AEBaseGui extends GuiContainer
|
||||
}
|
||||
catch( final Exception err )
|
||||
{
|
||||
AELog.warning( "[AppEng] AE prevented crash while drawing slot: " + err.toString() );
|
||||
AELog.warn( "[AppEng] AE prevented crash while drawing slot: " + err.toString() );
|
||||
}
|
||||
this.setItemRender( pIR );
|
||||
return;
|
||||
@@ -846,7 +846,7 @@ public abstract class AEBaseGui extends GuiContainer
|
||||
}
|
||||
catch( final Exception err )
|
||||
{
|
||||
AELog.error( err );
|
||||
AELog.debug( err );
|
||||
}
|
||||
}
|
||||
( (AppEngSlot) s ).setIsValid( isValid ? hasCalculatedValidness.Valid : hasCalculatedValidness.Invalid );
|
||||
@@ -880,7 +880,7 @@ public abstract class AEBaseGui extends GuiContainer
|
||||
}
|
||||
catch( final Exception err )
|
||||
{
|
||||
AELog.warning( "[AppEng] AE prevented crash while drawing slot: " + err.toString() );
|
||||
AELog.warn( "[AppEng] AE prevented crash while drawing slot: " + err.toString() );
|
||||
}
|
||||
}
|
||||
// do the usual for non-ME Slots.
|
||||
|
||||
@@ -556,7 +556,7 @@ public class GuiCraftConfirm extends AEBaseGui
|
||||
}
|
||||
catch( final IOException e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -573,7 +573,7 @@ public class GuiCraftConfirm extends AEBaseGui
|
||||
}
|
||||
catch( final Throwable e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -129,7 +129,7 @@ public class GuiCraftingCPU extends AEBaseGui implements ISortSource
|
||||
}
|
||||
catch( final IOException e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -121,7 +121,7 @@ public class GuiCraftingStatus extends GuiCraftingCPU
|
||||
}
|
||||
catch( final IOException e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -233,7 +233,7 @@ public class GuiLevelEmitter extends GuiUpgradeable
|
||||
}
|
||||
catch( final IOException e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -269,7 +269,7 @@ public class GuiLevelEmitter extends GuiUpgradeable
|
||||
}
|
||||
catch( final IOException e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
@@ -199,7 +199,7 @@ public class GuiMEMonitorable extends AEBaseMEGui implements ISortSource, IConfi
|
||||
}
|
||||
catch( final IOException e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -59,7 +59,7 @@ public class GuiNetworkTool extends AEBaseGui
|
||||
}
|
||||
catch( final IOException e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -240,7 +240,7 @@ public class GuiPriority extends AEBaseGui
|
||||
}
|
||||
catch( final IOException e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -276,7 +276,7 @@ public class GuiPriority extends AEBaseGui
|
||||
}
|
||||
catch( final IOException e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
@@ -85,7 +85,7 @@ public class GuiQuartzKnife extends AEBaseGui
|
||||
}
|
||||
catch( final IOException e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
@@ -90,7 +90,7 @@ public class GuiSecurity extends GuiMEMonitorable
|
||||
}
|
||||
catch( final IOException e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -137,7 +137,7 @@ public class GuiStorageBus extends GuiUpgradeable
|
||||
}
|
||||
catch( final IOException e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -209,7 +209,7 @@ public class RenderBlocksWorkaround extends RenderBlocks
|
||||
}
|
||||
catch( final Throwable t )
|
||||
{
|
||||
AELog.error( t );
|
||||
AELog.debug( t );
|
||||
// meh
|
||||
}
|
||||
return false;
|
||||
|
||||
@@ -77,9 +77,9 @@ public class TESRWrapper extends TileEntitySpecialRenderer
|
||||
}
|
||||
catch( final Throwable t )
|
||||
{
|
||||
AELog.severe( "Hi, Looks like there was a crash while rendering something..." );
|
||||
AELog.error( "Hi, Looks like there was a crash while rendering something..." );
|
||||
t.printStackTrace();
|
||||
AELog.severe( "MC will now crash ( probably )!" );
|
||||
AELog.error( "MC will now crash ( probably )!" );
|
||||
throw new IllegalStateException( t );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -104,9 +104,9 @@ public final class WorldRender implements ISimpleBlockRenderingHandler
|
||||
if( !this.hasError )
|
||||
{
|
||||
this.hasError = true;
|
||||
AELog.severe( "Invalid render - item/block mismatch" );
|
||||
AELog.severe( " item: " + item.getUnlocalizedName() );
|
||||
AELog.severe( " block: " + blk.getUnlocalizedName() );
|
||||
AELog.error( "Invalid render - item/block mismatch" );
|
||||
AELog.error( " item: " + item.getUnlocalizedName() );
|
||||
AELog.error( " block: " + blk.getUnlocalizedName() );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -169,7 +169,7 @@ public class RenderBlockCharger extends BaseBlockRender<BlockCharger, TileCharge
|
||||
}
|
||||
catch( final Exception err )
|
||||
{
|
||||
AELog.error( err );
|
||||
AELog.debug( err );
|
||||
}
|
||||
finally
|
||||
{
|
||||
|
||||
@@ -165,7 +165,7 @@ public class RenderBlockCraftingCPUMonitor extends RenderBlockCraftingCPU<BlockC
|
||||
}
|
||||
catch( final Exception e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
finally
|
||||
{
|
||||
|
||||
@@ -318,7 +318,7 @@ public class RenderBlockInscriber extends BaseBlockRender<BlockInscriber, TileIn
|
||||
}
|
||||
catch( final Exception err )
|
||||
{
|
||||
AELog.error( err );
|
||||
AELog.debug( err );
|
||||
}
|
||||
|
||||
GL11.glPopMatrix();
|
||||
|
||||
@@ -146,7 +146,7 @@ public abstract class AEBaseContainer extends Container
|
||||
final GuiSync annotation = f.getAnnotation( GuiSync.class );
|
||||
if( this.syncData.containsKey( annotation.value() ) )
|
||||
{
|
||||
AELog.warning( "Channel already in use: " + annotation.value() + " for " + f.getName() );
|
||||
AELog.warn( "Channel already in use: " + annotation.value() + " for " + f.getName() );
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -208,7 +208,7 @@ public abstract class AEBaseContainer extends Container
|
||||
}
|
||||
catch( final IOException e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
|
||||
this.dataChunks.clear();
|
||||
@@ -270,7 +270,7 @@ public abstract class AEBaseContainer extends Container
|
||||
}
|
||||
catch( final IOException e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -1109,7 +1109,7 @@ public abstract class AEBaseContainer extends Container
|
||||
}
|
||||
catch( final IOException e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1178,7 +1178,7 @@ public abstract class AEBaseContainer extends Container
|
||||
}
|
||||
catch( final IOException e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -70,15 +70,15 @@ public class SyncData
|
||||
}
|
||||
catch( final IllegalArgumentException e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
catch( final IllegalAccessException e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
catch( final IOException e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -127,11 +127,11 @@ public class SyncData
|
||||
}
|
||||
catch( final IllegalArgumentException e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
catch( final IllegalAccessException e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -143,11 +143,11 @@ public class SyncData
|
||||
}
|
||||
catch( final IllegalArgumentException e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
catch( final IllegalAccessException e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -199,11 +199,11 @@ public class SyncData
|
||||
}
|
||||
catch( final IllegalArgumentException e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
catch( final IllegalAccessException e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -280,7 +280,7 @@ public class ContainerCraftConfirm extends AEBaseContainer
|
||||
catch( final Throwable e )
|
||||
{
|
||||
this.getPlayerInv().player.addChatMessage( new ChatComponentText( "Error: " + e.toString() ) );
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
this.setValidContainer( false );
|
||||
this.result = null;
|
||||
}
|
||||
|
||||
@@ -121,7 +121,7 @@ public class ContainerCraftingCPU extends AEBaseContainer implements IMEMonitorH
|
||||
}
|
||||
catch( final IOException e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -194,7 +194,7 @@ public class ContainerMEMonitorable extends AEBaseContainer implements IConfigMa
|
||||
}
|
||||
catch( final IOException e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -237,7 +237,7 @@ public class ContainerMEMonitorable extends AEBaseContainer implements IConfigMa
|
||||
}
|
||||
catch( final IOException e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -335,7 +335,7 @@ public class ContainerMEMonitorable extends AEBaseContainer implements IConfigMa
|
||||
}
|
||||
catch( final IOException e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,93 +19,374 @@
|
||||
package appeng.core;
|
||||
|
||||
|
||||
import org.apache.logging.log4j.Level;
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
import cpw.mods.fml.relauncher.FMLRelaunchLog;
|
||||
import org.apache.logging.log4j.Level;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.apache.logging.log4j.message.ParameterizedMessage;
|
||||
|
||||
import appeng.core.features.AEFeature;
|
||||
import appeng.tile.AEBaseTile;
|
||||
import appeng.util.Platform;
|
||||
|
||||
|
||||
/**
|
||||
* Utility class for easier logging.
|
||||
*/
|
||||
public final class AELog
|
||||
{
|
||||
|
||||
public static final FMLRelaunchLog INSTANCE = FMLRelaunchLog.log;
|
||||
private static final String LOGGER_PREFIX = "AE2:";
|
||||
private static final String SERVER_SUFFIX = "S";
|
||||
private static final String CLIENT_SUFFIX = "C";
|
||||
|
||||
private static final String BLOCK_UPDATE = "Block Update of %s @ ( %d, %d, %d )";
|
||||
|
||||
private static final String DEFAULT_EXCEPTION_MESSAGE = "Exception: ";
|
||||
|
||||
private AELog()
|
||||
{
|
||||
}
|
||||
|
||||
public static void warning( final String format, final Object... data )
|
||||
/**
|
||||
* Returns a {@link Logger} logger suitable for the effective side (client/server).
|
||||
*
|
||||
* @return a suitable logger instance
|
||||
*/
|
||||
private static Logger getLogger()
|
||||
{
|
||||
log( Level.WARN, format, data );
|
||||
final String loggerName = LOGGER_PREFIX + ( Platform.isServer() ? SERVER_SUFFIX : CLIENT_SUFFIX );
|
||||
final Logger logger = LogManager.getLogger( loggerName );
|
||||
|
||||
return logger;
|
||||
}
|
||||
|
||||
private static void log( final Level level, final String format, final Object... data )
|
||||
/**
|
||||
* Indicates of the global log is enabled or disabled.
|
||||
*
|
||||
* By default it is enabled.
|
||||
*
|
||||
* @return true when the log is enabled.
|
||||
*/
|
||||
public static boolean isLogEnabled()
|
||||
{
|
||||
if( AEConfig.instance == null || AEConfig.instance.isFeatureEnabled( AEFeature.Logging ) )
|
||||
return AEConfig.instance == null || AEConfig.instance.isFeatureEnabled( AEFeature.Logging );
|
||||
}
|
||||
|
||||
/**
|
||||
* Logs a formatted message with a specific log level.
|
||||
*
|
||||
* This uses {@link String#format(String, Object...)} as opposed to the {@link ParameterizedMessage} to allow a more
|
||||
* flexible formatting.
|
||||
*
|
||||
* The output can be globally disabled via the configuration file.
|
||||
*
|
||||
* @param level the intended level.
|
||||
* @param message the message to be formatted.
|
||||
* @param params the parameters used for {@link String#format(String, Object...)}.
|
||||
*/
|
||||
public static void log( @Nonnull final Level level, @Nonnull final String message, final Object... params )
|
||||
{
|
||||
if( AELog.isLogEnabled() )
|
||||
{
|
||||
FMLRelaunchLog.log( "AE2:" + ( Platform.isServer() ? "S" : "C" ), level, format, data );
|
||||
final String formattedMessage = String.format( message, params );
|
||||
final Logger logger = getLogger();
|
||||
|
||||
logger.log( level, formattedMessage );
|
||||
}
|
||||
}
|
||||
|
||||
public static void grinder( final String o )
|
||||
/**
|
||||
* Log an exception with a custom message formated via {@link String#format(String, Object...)}
|
||||
*
|
||||
* Similar to {@link AELog#log(Level, String, Object...)}.
|
||||
*
|
||||
* @see AELog#log(Level, String, Object...)
|
||||
*
|
||||
* @param level the intended level.
|
||||
* @param exception
|
||||
* @param message the message to be formatted.
|
||||
* @param params the parameters used for {@link String#format(String, Object...)}.
|
||||
*/
|
||||
public static void log( @Nonnull final Level level, @Nonnull final Throwable exception, @Nonnull String message, final Object... params )
|
||||
{
|
||||
if( AEConfig.instance.isFeatureEnabled( AEFeature.GrinderLogging ) )
|
||||
if( AELog.isLogEnabled() )
|
||||
{
|
||||
log( Level.DEBUG, "grinder: " + o );
|
||||
final String formattedMessage = String.format( message, params );
|
||||
final Logger logger = getLogger();
|
||||
|
||||
logger.log( level, formattedMessage, exception );
|
||||
}
|
||||
}
|
||||
|
||||
public static void integration( final Throwable exception )
|
||||
/**
|
||||
* @see AELog#log(Level, String, Object...)
|
||||
* @param format
|
||||
* @param params
|
||||
*/
|
||||
public static void info( @Nonnull final String format, final Object... params )
|
||||
{
|
||||
if( AEConfig.instance.isFeatureEnabled( AEFeature.IntegrationLogging ) )
|
||||
{
|
||||
error( exception );
|
||||
}
|
||||
log( Level.INFO, format, params );
|
||||
}
|
||||
|
||||
public static void error( final Throwable e )
|
||||
/**
|
||||
* Log exception as {@link Level#INFO}
|
||||
*
|
||||
* @see AELog#log(Level, Throwable, String, Object...)
|
||||
*
|
||||
* @param exception
|
||||
*/
|
||||
public static void info( @Nonnull final Throwable exception )
|
||||
{
|
||||
if( AEConfig.instance.isFeatureEnabled( AEFeature.Logging ) )
|
||||
{
|
||||
severe( "Error: " + e.getClass().getName() + " : " + e.getMessage() );
|
||||
e.printStackTrace();
|
||||
}
|
||||
log( Level.INFO, exception, DEFAULT_EXCEPTION_MESSAGE );
|
||||
}
|
||||
|
||||
public static void severe( final String format, final Object... data )
|
||||
/**
|
||||
* Log exception as {@link Level#INFO}
|
||||
*
|
||||
* @see AELog#log(Level, Throwable, String, Object...)
|
||||
*
|
||||
* @param exception
|
||||
* @param message
|
||||
*/
|
||||
public static void info( @Nonnull final Throwable exception, @Nonnull final String message )
|
||||
{
|
||||
log( Level.ERROR, format, data );
|
||||
log( Level.INFO, exception, message );
|
||||
}
|
||||
|
||||
public static void blockUpdate( final int xCoord, final int yCoord, final int zCoord, final AEBaseTile aeBaseTile )
|
||||
/**
|
||||
* @see AELog#log(Level, String, Object...)
|
||||
* @param format
|
||||
* @param params
|
||||
*/
|
||||
public static void warn( @Nonnull final String format, final Object... params )
|
||||
{
|
||||
if( AEConfig.instance.isFeatureEnabled( AEFeature.UpdateLogging ) )
|
||||
{
|
||||
info( aeBaseTile.getClass().getName() + " @ " + xCoord + ", " + yCoord + ", " + zCoord );
|
||||
}
|
||||
log( Level.WARN, format, params );
|
||||
}
|
||||
|
||||
public static void info( final String format, final Object... data )
|
||||
/**
|
||||
* Log exception as {@link Level#WARN}
|
||||
*
|
||||
* @see AELog#log(Level, Throwable, String, Object...)
|
||||
*
|
||||
* @param exception
|
||||
*/
|
||||
public static void warn( @Nonnull final Throwable exception )
|
||||
{
|
||||
log( Level.INFO, format, data );
|
||||
log( Level.WARN, exception, DEFAULT_EXCEPTION_MESSAGE );
|
||||
}
|
||||
|
||||
public static void crafting( final String format, final Object... data )
|
||||
/**
|
||||
* Log exception as {@link Level#WARN}
|
||||
*
|
||||
* @see AELog#log(Level, Throwable, String, Object...)
|
||||
*
|
||||
* @param exception
|
||||
* @param message
|
||||
*/
|
||||
public static void warn( @Nonnull final Throwable exception, @Nonnull final String message )
|
||||
{
|
||||
if( AEConfig.instance.isFeatureEnabled( AEFeature.CraftingLog ) )
|
||||
{
|
||||
log( Level.INFO, format, data );
|
||||
}
|
||||
log( Level.WARN, exception, message );
|
||||
}
|
||||
|
||||
public static void debug( final String format, final Object... data )
|
||||
/**
|
||||
* @see AELog#log(Level, String, Object...)
|
||||
* @param format
|
||||
* @param params
|
||||
*/
|
||||
public static void error( @Nonnull final String format, final Object... params )
|
||||
{
|
||||
if( AEConfig.instance.isFeatureEnabled( AEFeature.DebugLogging ) )
|
||||
log( Level.ERROR, format, params );
|
||||
}
|
||||
|
||||
/**
|
||||
* Log exception as {@link Level#ERROR}
|
||||
*
|
||||
* @see AELog#log(Level, Throwable, String, Object...)
|
||||
*
|
||||
* @param exception
|
||||
*/
|
||||
public static void error( @Nonnull final Throwable exception )
|
||||
{
|
||||
log( Level.ERROR, exception, DEFAULT_EXCEPTION_MESSAGE );
|
||||
}
|
||||
|
||||
/**
|
||||
* Log exception as {@link Level#ERROR}
|
||||
*
|
||||
* @see AELog#log(Level, Throwable, String, Object...)
|
||||
*
|
||||
* @param exception
|
||||
* @param message
|
||||
*/
|
||||
public static void error( @Nonnull final Throwable exception, @Nonnull final String message )
|
||||
{
|
||||
log( Level.ERROR, exception, message );
|
||||
}
|
||||
|
||||
/**
|
||||
* Log message as {@link Level#DEBUG}
|
||||
*
|
||||
* @see AELog#log(Level, String, Object...)
|
||||
* @param format
|
||||
* @param data
|
||||
*/
|
||||
public static void debug( @Nonnull final String format, final Object... data )
|
||||
{
|
||||
if( AELog.isDebugLogEnabled() )
|
||||
{
|
||||
log( Level.DEBUG, format, data );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Log exception as {@link Level#DEBUG}
|
||||
*
|
||||
* @see AELog#log(Level, Throwable, String, Object...)
|
||||
*
|
||||
* @param exception
|
||||
*/
|
||||
public static void debug( @Nonnull final Throwable exception )
|
||||
{
|
||||
if( AELog.isDebugLogEnabled() )
|
||||
{
|
||||
log( Level.DEBUG, exception, DEFAULT_EXCEPTION_MESSAGE );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Log exception as {@link Level#DEBUG}
|
||||
*
|
||||
* @see AELog#log(Level, Throwable, String, Object...)
|
||||
*
|
||||
* @param exception
|
||||
* @param message
|
||||
*/
|
||||
public static void debug( @Nonnull final Throwable exception, @Nonnull final String message )
|
||||
{
|
||||
if( AELog.isDebugLogEnabled() )
|
||||
{
|
||||
log( Level.DEBUG, exception, message );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Use to check for an enabled debug log.
|
||||
*
|
||||
* Can be used to prevent the execution of debug logic.
|
||||
*
|
||||
* @return true when the debug log is enabled.
|
||||
*/
|
||||
public static boolean isDebugLogEnabled()
|
||||
{
|
||||
return AEConfig.instance.isFeatureEnabled( AEFeature.DebugLogging );
|
||||
}
|
||||
|
||||
//
|
||||
// Specialized handlers
|
||||
//
|
||||
|
||||
/**
|
||||
* A specialized logging for grinder recipes, can be disabled inside configuration file.
|
||||
*
|
||||
* @param message String to be logged
|
||||
*/
|
||||
public static void grinder( @Nonnull final String message )
|
||||
{
|
||||
if( AEConfig.instance.isFeatureEnabled( AEFeature.GrinderLogging ) )
|
||||
{
|
||||
log( Level.DEBUG, "grinder: " + message );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* A specialized logging for mod integration errors, can be disabled inside configuration file.
|
||||
*
|
||||
* @param exception
|
||||
*/
|
||||
public static void integration( @Nonnull final Throwable exception )
|
||||
{
|
||||
if( AEConfig.instance.isFeatureEnabled( AEFeature.IntegrationLogging ) )
|
||||
{
|
||||
debug( exception );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Logging of block updates.
|
||||
*
|
||||
* Off by default, can be enabled inside the configuration file.
|
||||
*
|
||||
* @see AELog#log(Level, String, Object...)
|
||||
* @param xCoord
|
||||
* @param yCoord
|
||||
* @param zCoord
|
||||
* @param aeBaseTile
|
||||
*/
|
||||
public static void blockUpdate( final int xCoord, final int yCoord, final int zCoord, @Nonnull final AEBaseTile aeBaseTile )
|
||||
{
|
||||
if( AEConfig.instance.isFeatureEnabled( AEFeature.UpdateLogging ) )
|
||||
{
|
||||
info( BLOCK_UPDATE, aeBaseTile.getClass().getName(), xCoord, +yCoord, +zCoord );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Use to check for an enabled crafting log.
|
||||
*
|
||||
* Can be used to prevent the execution of unneeded logic.
|
||||
*
|
||||
* @return true when the crafting log is enabled.
|
||||
*/
|
||||
public static boolean isCraftingLogEnabled()
|
||||
{
|
||||
return AEConfig.instance.isFeatureEnabled( AEFeature.CraftingLog );
|
||||
}
|
||||
|
||||
/**
|
||||
* Logging for autocrafting.
|
||||
*
|
||||
* Off by default, can be enabled inside the configuration file.
|
||||
*
|
||||
* @see AELog#log(Level, String, Object...)
|
||||
* @param message
|
||||
* @param params
|
||||
*/
|
||||
public static void crafting( @Nonnull final String message, final Object... params )
|
||||
{
|
||||
if( AELog.isCraftingLogEnabled() )
|
||||
{
|
||||
log( Level.INFO, message, params );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Use to check for an enabled crafting debug log.
|
||||
*
|
||||
* Can be used to prevent the execution of unneeded logic.
|
||||
*
|
||||
* @return true when the crafting debug log is enabled.
|
||||
*/
|
||||
public static boolean isCraftingDebugLogEnabled()
|
||||
{
|
||||
return AEConfig.instance.isFeatureEnabled( AEFeature.CraftingLog ) && AEConfig.instance.isFeatureEnabled( AEFeature.DebugLogging );
|
||||
}
|
||||
|
||||
/**
|
||||
* Debug logging for autocrafting.
|
||||
*
|
||||
* Off by default, can be enabled inside the configuration file.
|
||||
*
|
||||
* @see AELog#log(Level, String, Object...)
|
||||
* @param message
|
||||
* @param params
|
||||
*/
|
||||
public static void craftingDebug( @Nonnull final String message, final Object... params )
|
||||
{
|
||||
if( AELog.isCraftingDebugLogEnabled() )
|
||||
{
|
||||
log( Level.DEBUG, message, params );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -95,8 +95,8 @@ public class IMCHandler
|
||||
}
|
||||
catch( final Exception t )
|
||||
{
|
||||
AELog.warning( "Problem detected when processing IMC " + key + " from " + message.getSender() );
|
||||
AELog.error( t );
|
||||
AELog.warn( "Problem detected when processing IMC " + key + " from " + message.getSender() );
|
||||
AELog.debug( t );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -100,12 +100,12 @@ public class RecipeLoader implements Runnable
|
||||
// on failure use jar parsing
|
||||
catch( final IOException e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
this.handler.parseRecipes( new JarLoader( ASSETS_RECIPE_PATH ), "index.recipe" );
|
||||
}
|
||||
catch( final URISyntaxException e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
this.handler.parseRecipes( new JarLoader( ASSETS_RECIPE_PATH ), "index.recipe" );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -109,7 +109,7 @@ public class ApiPart implements IPartHelper
|
||||
}
|
||||
catch( final ClassNotFoundException e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
Class myCLass;
|
||||
|
||||
@@ -134,8 +134,8 @@ public class ApiPart implements IPartHelper
|
||||
}
|
||||
catch( final Throwable t )
|
||||
{
|
||||
AELog.warning( "Error loading " + name );
|
||||
AELog.error( t );
|
||||
AELog.warn( "Error loading " + name );
|
||||
AELog.debug( t );
|
||||
// throw new RuntimeException( t );
|
||||
}
|
||||
f = myCLass.getName();
|
||||
@@ -164,7 +164,7 @@ public class ApiPart implements IPartHelper
|
||||
}
|
||||
catch( final Throwable t )
|
||||
{
|
||||
AELog.error( t );
|
||||
AELog.debug( t );
|
||||
}
|
||||
|
||||
for( final MethodNode mn : n.methods )
|
||||
@@ -197,13 +197,13 @@ public class ApiPart implements IPartHelper
|
||||
if( !rootC.isInstance( fish ) )
|
||||
{
|
||||
hasError = true;
|
||||
AELog.severe( "Error, Expected layer to implement " + root + " did not." );
|
||||
AELog.error( "Error, Expected layer to implement " + root + " did not." );
|
||||
}
|
||||
|
||||
if( fish instanceof LayerBase )
|
||||
{
|
||||
hasError = true;
|
||||
AELog.severe( "Error, Expected layer to NOT implement LayerBase but it DID." );
|
||||
AELog.error( "Error, Expected layer to NOT implement LayerBase but it DID." );
|
||||
}
|
||||
|
||||
if( !fullPath.contains( ".fmp." ) )
|
||||
@@ -211,13 +211,13 @@ public class ApiPart implements IPartHelper
|
||||
if( !( fish instanceof TileCableBus ) )
|
||||
{
|
||||
hasError = true;
|
||||
AELog.severe( "Error, Expected layer to implement TileCableBus did not." );
|
||||
AELog.error( "Error, Expected layer to implement TileCableBus did not." );
|
||||
}
|
||||
|
||||
if( !( fish instanceof TileEntity ) )
|
||||
{
|
||||
hasError = true;
|
||||
AELog.severe( "Error, Expected layer to implement TileEntity did not." );
|
||||
AELog.error( "Error, Expected layer to implement TileEntity did not." );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -228,8 +228,8 @@ public class ApiPart implements IPartHelper
|
||||
}
|
||||
catch( final Throwable t )
|
||||
{
|
||||
AELog.severe( "Layer: " + n.name + " Failed." );
|
||||
AELog.error( t );
|
||||
AELog.error( "Layer: " + n.name + " Failed." );
|
||||
AELog.debug( t );
|
||||
}
|
||||
|
||||
this.roots.put( fullPath, clazz );
|
||||
@@ -297,7 +297,7 @@ public class ApiPart implements IPartHelper
|
||||
}
|
||||
catch( final Exception e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
throw new IllegalStateException( "Unable to manage part API.", e );
|
||||
}
|
||||
return clazz;
|
||||
|
||||
@@ -61,22 +61,22 @@ public final class GridCacheRegistry implements IGridCacheRegistry
|
||||
}
|
||||
catch( final NoSuchMethodException e )
|
||||
{
|
||||
AELog.severe( "Grid Caches must have a constructor with IGrid as the single param." );
|
||||
AELog.error( "Grid Caches must have a constructor with IGrid as the single param." );
|
||||
throw new IllegalArgumentException( e );
|
||||
}
|
||||
catch( final InvocationTargetException e )
|
||||
{
|
||||
AELog.severe( "Grid Caches must have a constructor with IGrid as the single param." );
|
||||
AELog.error( "Grid Caches must have a constructor with IGrid as the single param." );
|
||||
throw new IllegalStateException( e );
|
||||
}
|
||||
catch( final InstantiationException e )
|
||||
{
|
||||
AELog.severe( "Grid Caches must have a constructor with IGrid as the single param." );
|
||||
AELog.error( "Grid Caches must have a constructor with IGrid as the single param." );
|
||||
throw new IllegalStateException( e );
|
||||
}
|
||||
catch( final IllegalAccessException e )
|
||||
{
|
||||
AELog.severe( "Grid Caches must have a constructor with IGrid as the single param." );
|
||||
AELog.error( "Grid Caches must have a constructor with IGrid as the single param." );
|
||||
throw new IllegalStateException( e );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -72,8 +72,8 @@ public class RecipeHandlerRegistry implements IRecipeHandlerRegistry
|
||||
}
|
||||
catch( final Throwable e )
|
||||
{
|
||||
AELog.severe( "Error Caused when trying to construct " + clz.getName() );
|
||||
AELog.error( e );
|
||||
AELog.error( "Error Caused when trying to construct " + clz.getName() );
|
||||
AELog.debug( e );
|
||||
|
||||
this.handlers.put( name, null ); // clear it..
|
||||
|
||||
@@ -101,7 +101,7 @@ public class RecipeHandlerRegistry implements IRecipeHandlerRegistry
|
||||
}
|
||||
catch( final Throwable t )
|
||||
{
|
||||
AELog.error( t );
|
||||
AELog.debug( t );
|
||||
}
|
||||
|
||||
if( rr != null )
|
||||
|
||||
@@ -51,19 +51,19 @@ public class AppEngClientPacketHandler extends AppEngPacketHandlerBase implement
|
||||
}
|
||||
catch( final InstantiationException e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
catch( final IllegalAccessException e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
catch( final IllegalArgumentException e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
catch( final InvocationTargetException e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -48,19 +48,19 @@ public final class AppEngServerPacketHandler extends AppEngPacketHandlerBase imp
|
||||
}
|
||||
catch( final InstantiationException e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
catch( final IllegalAccessException e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
catch( final IllegalArgumentException e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
catch( final InvocationTargetException e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -121,7 +121,7 @@ public class PacketCraftRequest extends AppEngPacket
|
||||
{
|
||||
futureJob.cancel( true );
|
||||
}
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -186,7 +186,7 @@ public class PacketMEInventoryUpdate extends AppEngPacket
|
||||
}
|
||||
catch( final IOException e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
|
||||
return null;
|
||||
|
||||
@@ -33,7 +33,6 @@ import net.minecraftforge.common.config.ConfigCategory;
|
||||
import net.minecraftforge.common.config.Configuration;
|
||||
import net.minecraftforge.common.config.Property;
|
||||
|
||||
import appeng.core.AELog;
|
||||
import appeng.core.CommonHelper;
|
||||
|
||||
|
||||
@@ -64,7 +63,7 @@ final class PlayerData implements IWorldPlayerData, IOnWorldStartable, IOnWorldS
|
||||
this.config = configFile;
|
||||
|
||||
final ConfigCategory playerList = this.config.getCategory( "players" );
|
||||
this.playerMapping = new PlayerMapping( playerList, AELog.INSTANCE );
|
||||
this.playerMapping = new PlayerMapping( playerList );
|
||||
}
|
||||
|
||||
@Nullable
|
||||
|
||||
@@ -29,8 +29,6 @@ import com.google.common.base.Preconditions;
|
||||
|
||||
import net.minecraftforge.common.config.ConfigCategory;
|
||||
|
||||
import cpw.mods.fml.relauncher.FMLRelaunchLog;
|
||||
|
||||
|
||||
/**
|
||||
* Wrapper class for the player mappings.
|
||||
@@ -46,9 +44,9 @@ final class PlayerMapping implements IWorldPlayerMapping
|
||||
*/
|
||||
private final Map<Integer, UUID> mappings;
|
||||
|
||||
public PlayerMapping( final ConfigCategory category, final FMLRelaunchLog log )
|
||||
public PlayerMapping( final ConfigCategory category )
|
||||
{
|
||||
final PlayerMappingsInitializer init = new PlayerMappingsInitializer( category, log );
|
||||
final PlayerMappingsInitializer init = new PlayerMappingsInitializer( category );
|
||||
|
||||
this.mappings = init.getPlayerMappings();
|
||||
}
|
||||
|
||||
@@ -26,8 +26,6 @@ import java.util.UUID;
|
||||
import net.minecraftforge.common.config.ConfigCategory;
|
||||
import net.minecraftforge.common.config.Property;
|
||||
|
||||
import cpw.mods.fml.relauncher.FMLRelaunchLog;
|
||||
|
||||
import appeng.core.AELog;
|
||||
import appeng.util.UUIDMatcher;
|
||||
|
||||
@@ -53,7 +51,7 @@ class PlayerMappingsInitializer
|
||||
* @param playerList the category for the player list, generally extracted using the "players" tag
|
||||
* @param log the logger used to warn the server or user of faulty entries
|
||||
*/
|
||||
PlayerMappingsInitializer( final ConfigCategory playerList, final FMLRelaunchLog log )
|
||||
PlayerMappingsInitializer( final ConfigCategory playerList )
|
||||
{
|
||||
// Matcher for UUIDs
|
||||
final UUIDMatcher matcher = new UUIDMatcher();
|
||||
@@ -78,7 +76,7 @@ class PlayerMappingsInitializer
|
||||
}
|
||||
else
|
||||
{
|
||||
AELog.warning( "The configuration for players contained an outdated entry instead an expected UUID " + maybeUUID + " for the player " + id + ". Please clean this up." );
|
||||
AELog.warn( "The configuration for players contained an outdated entry instead an expected UUID " + maybeUUID + " for the player " + id + ". Please clean this up." );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -153,7 +153,7 @@ final class SpawnData implements IWorldSpawnData
|
||||
catch( final Throwable e )
|
||||
{
|
||||
data = new NBTTagCompound();
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
finally
|
||||
{
|
||||
@@ -165,7 +165,7 @@ final class SpawnData implements IWorldSpawnData
|
||||
}
|
||||
catch( final IOException e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -196,7 +196,7 @@ final class SpawnData implements IWorldSpawnData
|
||||
}
|
||||
catch( final Throwable e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
finally
|
||||
{
|
||||
@@ -208,7 +208,7 @@ final class SpawnData implements IWorldSpawnData
|
||||
}
|
||||
catch( final IOException e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -140,7 +140,7 @@ final class StorageData implements IWorldGridStorageData, IOnWorldStartable, IOn
|
||||
}
|
||||
catch( final NumberFormatException err )
|
||||
{
|
||||
AELog.warning( "The config contained a value which was not represented as a Long: %s", lastString );
|
||||
AELog.warn( "The config contained a value which was not represented as a Long: %s", lastString );
|
||||
|
||||
this.lastGridStorage = 0;
|
||||
}
|
||||
|
||||
@@ -24,26 +24,35 @@ import java.util.concurrent.TimeUnit;
|
||||
|
||||
import com.google.common.base.Stopwatch;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import appeng.api.AEApi;
|
||||
import appeng.api.config.Actionable;
|
||||
import appeng.api.networking.IGrid;
|
||||
import appeng.api.networking.IGridHost;
|
||||
import appeng.api.networking.IGridNode;
|
||||
import appeng.api.networking.crafting.ICraftingCallback;
|
||||
import appeng.api.networking.crafting.ICraftingGrid;
|
||||
import appeng.api.networking.crafting.ICraftingJob;
|
||||
import appeng.api.networking.crafting.ICraftingPatternDetails;
|
||||
import appeng.api.networking.security.BaseActionSource;
|
||||
import appeng.api.networking.security.IActionHost;
|
||||
import appeng.api.networking.security.MachineSource;
|
||||
import appeng.api.networking.security.PlayerSource;
|
||||
import appeng.api.networking.storage.IStorageGrid;
|
||||
import appeng.api.storage.data.IAEItemStack;
|
||||
import appeng.api.storage.data.IItemList;
|
||||
import appeng.api.util.DimensionalCoord;
|
||||
import appeng.core.AELog;
|
||||
import appeng.hooks.TickHandler;
|
||||
|
||||
|
||||
public class CraftingJob implements Runnable, ICraftingJob
|
||||
{
|
||||
private static final String LOG_CRAFTING_JOB = "CraftingJob (%s) issued by %s requesting [%s] using %s bytes took %s ms";
|
||||
private static final String LOG_MACHINE_SOURCE_DETAILS = "Machine[object=%s, %s]";
|
||||
|
||||
private final MECraftingInventory original;
|
||||
private final World world;
|
||||
@@ -145,7 +154,7 @@ public class CraftingJob implements Runnable, ICraftingJob
|
||||
AELog.crafting( s + " * " + ti.times + " = " + ( ti.perOp * ti.times ) );
|
||||
}
|
||||
|
||||
AELog.crafting( "------------- " + this.bytes + "b real" + timer.elapsed( TimeUnit.MILLISECONDS ) + "ms" );
|
||||
this.logCraftingJob( "real", timer );
|
||||
// if ( mode == Actionable.MODULATE )
|
||||
// craftingInventory.moveItemsToStorage( storage );
|
||||
}
|
||||
@@ -171,15 +180,15 @@ public class CraftingJob implements Runnable, ICraftingJob
|
||||
AELog.crafting( s + " * " + ti.times + " = " + ( ti.perOp * ti.times ) );
|
||||
}
|
||||
|
||||
AELog.crafting( "------------- " + this.bytes + "b simulate" + timer.elapsed( TimeUnit.MILLISECONDS ) + "ms" );
|
||||
this.logCraftingJob( "simulate", timer );
|
||||
}
|
||||
catch( final CraftBranchFailure e1 )
|
||||
{
|
||||
AELog.error( e1 );
|
||||
AELog.debug( e1 );
|
||||
}
|
||||
catch( final CraftingCalculationFailure f )
|
||||
{
|
||||
AELog.error( f );
|
||||
AELog.debug( f );
|
||||
}
|
||||
catch( final InterruptedException e1 )
|
||||
{
|
||||
@@ -190,7 +199,7 @@ public class CraftingJob implements Runnable, ICraftingJob
|
||||
}
|
||||
catch( final CraftingCalculationFailure f )
|
||||
{
|
||||
AELog.error( f );
|
||||
AELog.debug( f );
|
||||
}
|
||||
catch( final InterruptedException e1 )
|
||||
{
|
||||
@@ -199,7 +208,7 @@ public class CraftingJob implements Runnable, ICraftingJob
|
||||
return;
|
||||
}
|
||||
|
||||
this.log( "crafting job now done" );
|
||||
AELog.craftingDebug( "crafting job now done" );
|
||||
}
|
||||
catch( final Throwable t )
|
||||
{
|
||||
@@ -227,14 +236,14 @@ public class CraftingJob implements Runnable, ICraftingJob
|
||||
|
||||
if( !this.running )
|
||||
{
|
||||
this.log( "crafting job will now sleep" );
|
||||
AELog.craftingDebug( "crafting job will now sleep" );
|
||||
|
||||
while( !this.running )
|
||||
{
|
||||
this.monitor.wait();
|
||||
}
|
||||
|
||||
this.log( "crafting job now active" );
|
||||
AELog.craftingDebug( "crafting job now active" );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -263,11 +272,6 @@ public class CraftingJob implements Runnable, ICraftingJob
|
||||
}
|
||||
}
|
||||
|
||||
private void log( final String string )
|
||||
{
|
||||
// AELog.crafting( string );
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isSimulation()
|
||||
{
|
||||
@@ -327,7 +331,7 @@ public class CraftingJob implements Runnable, ICraftingJob
|
||||
this.watch.start();
|
||||
this.running = true;
|
||||
|
||||
this.log( "main thread is now going to sleep" );
|
||||
AELog.craftingDebug( "main thread is now going to sleep" );
|
||||
|
||||
this.monitor.notify();
|
||||
|
||||
@@ -342,7 +346,7 @@ public class CraftingJob implements Runnable, ICraftingJob
|
||||
}
|
||||
}
|
||||
|
||||
this.log( "main thread is now active" );
|
||||
AELog.craftingDebug( "main thread is now active" );
|
||||
}
|
||||
|
||||
return true;
|
||||
@@ -363,9 +367,41 @@ public class CraftingJob implements Runnable, ICraftingJob
|
||||
this.tree = tree;
|
||||
}
|
||||
|
||||
private void logCraftingJob( String type, Stopwatch timer )
|
||||
{
|
||||
if( AELog.isCraftingLogEnabled() )
|
||||
{
|
||||
final String itemToOutput = this.output.toString();
|
||||
final long elapsedTime = timer.elapsed( TimeUnit.MILLISECONDS );
|
||||
final String actionSource;
|
||||
|
||||
if( this.actionSrc instanceof MachineSource )
|
||||
{
|
||||
final IActionHost machineSource = ( (MachineSource) this.actionSrc ).via;
|
||||
final IGridNode actionableNode = machineSource.getActionableNode();
|
||||
final IGridHost machine = actionableNode.getMachine();
|
||||
final DimensionalCoord location = actionableNode.getGridBlock().getLocation();
|
||||
|
||||
actionSource = String.format( LOG_MACHINE_SOURCE_DETAILS, machine, location );
|
||||
}
|
||||
else if( this.actionSrc instanceof PlayerSource )
|
||||
{
|
||||
final PlayerSource source = (PlayerSource) this.actionSrc;
|
||||
final EntityPlayer player = source.player;
|
||||
|
||||
actionSource = player.toString();
|
||||
}
|
||||
else
|
||||
{
|
||||
actionSource = "[unknown source]";
|
||||
}
|
||||
|
||||
AELog.crafting( LOG_CRAFTING_JOB, type, actionSource, itemToOutput, this.bytes, elapsedTime );
|
||||
}
|
||||
}
|
||||
|
||||
private static class TwoIntegers
|
||||
{
|
||||
|
||||
private final long perOp = 0;
|
||||
private final long times = 0;
|
||||
}
|
||||
|
||||
@@ -339,7 +339,7 @@ public class FacadePart implements IFacadePart, IBoxProvider
|
||||
}
|
||||
catch( final Throwable t )
|
||||
{
|
||||
AELog.error( t );
|
||||
AELog.debug( t );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -259,7 +259,7 @@ public class CableBusPart extends JCuboidPart implements JNormalOcclusion, IMask
|
||||
}
|
||||
catch( final IOException e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -322,7 +322,7 @@ public class CableBusPart extends JCuboidPart implements JNormalOcclusion, IMask
|
||||
}
|
||||
catch( final IOException e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -46,7 +46,6 @@ public class MultiCraftingTracker
|
||||
|
||||
private Future<ICraftingJob>[] jobs = null;
|
||||
private ICraftingLink[] links = null;
|
||||
private int failedCraftingAttempts = 0;
|
||||
|
||||
public MultiCraftingTracker( final ICraftingRequester o, final int size )
|
||||
{
|
||||
@@ -54,11 +53,6 @@ public class MultiCraftingTracker
|
||||
this.size = size;
|
||||
}
|
||||
|
||||
public int getFailedCraftingAttempts()
|
||||
{
|
||||
return this.failedCraftingAttempts;
|
||||
}
|
||||
|
||||
public void readFromNBT( final NBTTagCompound extra )
|
||||
{
|
||||
for( int x = 0; x < this.size; x++ )
|
||||
@@ -115,15 +109,10 @@ public class MultiCraftingTracker
|
||||
|
||||
if( link != null )
|
||||
{
|
||||
this.failedCraftingAttempts = Math.max( 0, this.failedCraftingAttempts - 1 );
|
||||
|
||||
this.setLink( x, link );
|
||||
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.failedCraftingAttempts = Math.min( 10, this.failedCraftingAttempts + 1 );
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
catch( final InterruptedException e )
|
||||
|
||||
@@ -289,7 +289,7 @@ public class TickHandler
|
||||
}
|
||||
catch( final Exception e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -119,11 +119,11 @@ public class BuildCraftBuilder implements IIntegrationModule
|
||||
}
|
||||
catch( final InvocationTargetException ignore )
|
||||
{
|
||||
AELog.warning( "Encountered problems while initializing the BuildCraft Builder support. Can not invoke the method %s", blockDefinition );
|
||||
AELog.warn( "Encountered problems while initializing the BuildCraft Builder support. Can not invoke the method %s", blockDefinition );
|
||||
}
|
||||
catch( final IllegalAccessException ignore )
|
||||
{
|
||||
AELog.warning( "Encountered problems while initializing the BuildCraft Builder support. Can not access the method %s", blockDefinition );
|
||||
AELog.warn( "Encountered problems while initializing the BuildCraft Builder support. Can not access the method %s", blockDefinition );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -178,7 +178,7 @@ public class FMP implements IIntegrationModule, IPartFactory, IPartConverter, IF
|
||||
}
|
||||
catch( final Throwable t )
|
||||
{
|
||||
AELog.error( t );
|
||||
AELog.debug( t );
|
||||
}
|
||||
return null;
|
||||
}
|
||||
@@ -211,8 +211,8 @@ public class FMP implements IIntegrationModule, IPartFactory, IPartConverter, IF
|
||||
}
|
||||
catch( final Throwable t )
|
||||
{
|
||||
AELog.severe( "Failed to register " + layerInterface.getName() + " with FMP, some features may not work with MultiParts." );
|
||||
AELog.error( t );
|
||||
AELog.error( "Failed to register " + layerInterface.getName() + " with FMP, some features may not work with MultiParts." );
|
||||
AELog.debug( t );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -72,7 +72,7 @@ public class ImmibisMicroblocks implements IImmibisMicroblocks, IIntegrationModu
|
||||
}
|
||||
catch( final Throwable t )
|
||||
{
|
||||
AELog.error( t );
|
||||
AELog.debug( t );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -263,7 +263,7 @@ public class ToolMassCannon extends AEBasePoweredItem implements IStorageCell
|
||||
}
|
||||
catch( final Exception err )
|
||||
{
|
||||
AELog.error( err );
|
||||
AELog.debug( err );
|
||||
}
|
||||
|
||||
if( pos != null && type != null && type.getItem() instanceof ItemPaintBall )
|
||||
@@ -385,7 +385,7 @@ public class ToolMassCannon extends AEBasePoweredItem implements IStorageCell
|
||||
}
|
||||
catch( final Exception err )
|
||||
{
|
||||
AELog.error( err );
|
||||
AELog.debug( err );
|
||||
}
|
||||
|
||||
if( pos != null )
|
||||
|
||||
@@ -110,7 +110,7 @@ public class GridStorage implements IGridStorage
|
||||
}
|
||||
catch( final IOException e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
|
||||
return "";
|
||||
|
||||
@@ -184,10 +184,10 @@ public class NetworkEventBus
|
||||
}
|
||||
catch( final Throwable e1 )
|
||||
{
|
||||
AELog.severe( "[AppEng] Network Event caused exception:" );
|
||||
AELog.severe( "Offending Class: " + obj.getClass().getName() );
|
||||
AELog.severe( "Offending Object: " + obj.toString() );
|
||||
AELog.error( e1 );
|
||||
AELog.error( "[AppEng] Network Event caused exception:" );
|
||||
AELog.error( "Offending Class: " + obj.getClass().getName() );
|
||||
AELog.error( "Offending Object: " + obj.toString() );
|
||||
AELog.debug( e1 );
|
||||
throw new IllegalStateException( e1 );
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -239,8 +239,8 @@ public class GridStorageCache implements IStorageGrid
|
||||
}
|
||||
}
|
||||
|
||||
this.itemMonitor.forceUpdate( false );
|
||||
this.fluidMonitor.forceUpdate( false );
|
||||
this.itemMonitor.forceUpdate();
|
||||
this.fluidMonitor.forceUpdate();
|
||||
|
||||
tracker.applyChanges();
|
||||
}
|
||||
|
||||
+79
-286
@@ -21,321 +21,41 @@ package appeng.me.cache;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Deque;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.LinkedList;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
|
||||
import appeng.api.config.AccessRestriction;
|
||||
import appeng.api.config.Actionable;
|
||||
import appeng.api.networking.events.MENetworkStorageEvent;
|
||||
import appeng.api.networking.security.BaseActionSource;
|
||||
import appeng.api.storage.IMEInventoryHandler;
|
||||
import appeng.api.storage.IMEMonitor;
|
||||
import appeng.api.storage.IMEMonitorHandlerReceiver;
|
||||
import appeng.api.storage.MEMonitorHandler;
|
||||
import appeng.api.storage.StorageChannel;
|
||||
import appeng.api.storage.data.IAEStack;
|
||||
import appeng.api.storage.data.IItemList;
|
||||
import appeng.me.storage.ItemWatcher;
|
||||
|
||||
|
||||
public class NetworkMonitor<T extends IAEStack<T>> implements IMEMonitor<T>
|
||||
public class NetworkMonitor<T extends IAEStack<T>> extends MEMonitorHandler<T>
|
||||
{
|
||||
@Nonnull
|
||||
private static final Deque<NetworkMonitor<?>> GLOBAL_DEPTH = new LinkedList<NetworkMonitor<?>>();
|
||||
|
||||
@Nonnull
|
||||
private static final Deque<NetworkMonitor<?>> DEPTH = new LinkedList<NetworkMonitor<?>>();
|
||||
private final GridStorageCache myGridCache;
|
||||
@Nonnull
|
||||
private final StorageChannel myChannel;
|
||||
@Nonnull
|
||||
private final IItemList<T> cachedList;
|
||||
@Nonnull
|
||||
private final Map<IMEMonitorHandlerReceiver<T>, Object> listeners = new HashMap<IMEMonitorHandlerReceiver<T>, Object>();
|
||||
|
||||
private boolean sendEvent = false;
|
||||
private boolean hasChanged = false;
|
||||
private int localDepthSemaphore = 0;
|
||||
|
||||
public NetworkMonitor( final GridStorageCache cache, final StorageChannel chan )
|
||||
{
|
||||
super( null, chan );
|
||||
this.myGridCache = cache;
|
||||
this.myChannel = chan;
|
||||
this.cachedList = (IItemList<T>) chan.createList();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addListener( final IMEMonitorHandlerReceiver<T> l, final Object verificationToken )
|
||||
void forceUpdate()
|
||||
{
|
||||
this.listeners.put( l, verificationToken );
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canAccept( final T input )
|
||||
{
|
||||
return this.getHandler().canAccept( input );
|
||||
}
|
||||
|
||||
@Override
|
||||
public T extractItems( final T request, final Actionable mode, final BaseActionSource src )
|
||||
{
|
||||
if( mode == Actionable.SIMULATE )
|
||||
{
|
||||
return this.getHandler().extractItems( request, mode, src );
|
||||
}
|
||||
|
||||
localDepthSemaphore++;
|
||||
final T leftover = this.getHandler().extractItems( request, mode, src );
|
||||
localDepthSemaphore--;
|
||||
|
||||
if( localDepthSemaphore == 0 )
|
||||
{
|
||||
this.monitorDifference( request.copy(), leftover, true, src );
|
||||
}
|
||||
|
||||
return leftover;
|
||||
}
|
||||
|
||||
@Override
|
||||
public AccessRestriction getAccess()
|
||||
{
|
||||
return this.getHandler().getAccess();
|
||||
}
|
||||
|
||||
@Override
|
||||
public IItemList<T> getAvailableItems( final IItemList out )
|
||||
{
|
||||
return this.getHandler().getAvailableItems( out );
|
||||
}
|
||||
|
||||
@Override
|
||||
public StorageChannel getChannel()
|
||||
{
|
||||
return this.getHandler().getChannel();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getPriority()
|
||||
{
|
||||
return this.getHandler().getPriority();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSlot()
|
||||
{
|
||||
return this.getHandler().getSlot();
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
@Override
|
||||
public IItemList<T> getStorageList()
|
||||
{
|
||||
if( this.hasChanged )
|
||||
{
|
||||
this.hasChanged = false;
|
||||
this.cachedList.resetStatus();
|
||||
return this.getAvailableItems( this.cachedList );
|
||||
}
|
||||
|
||||
return this.cachedList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public T injectItems( final T input, final Actionable mode, final BaseActionSource src )
|
||||
{
|
||||
if( mode == Actionable.SIMULATE )
|
||||
{
|
||||
return this.getHandler().injectItems( input, mode, src );
|
||||
}
|
||||
|
||||
localDepthSemaphore++;
|
||||
final T leftover = this.getHandler().injectItems( input, mode, src );
|
||||
localDepthSemaphore--;
|
||||
|
||||
if( localDepthSemaphore == 0 )
|
||||
{
|
||||
this.monitorDifference( input.copy(), leftover, false, src );
|
||||
}
|
||||
|
||||
return leftover;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isPrioritized( final T input )
|
||||
{
|
||||
return this.getHandler().isPrioritized( input );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeListener( final IMEMonitorHandlerReceiver<T> l )
|
||||
{
|
||||
this.listeners.remove( l );
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean validForPass( final int i )
|
||||
{
|
||||
return this.getHandler().validForPass( i );
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@SuppressWarnings( "unchecked" )
|
||||
private IMEInventoryHandler<T> getHandler()
|
||||
{
|
||||
switch( this.myChannel )
|
||||
{
|
||||
case ITEMS:
|
||||
return (IMEInventoryHandler<T>) this.myGridCache.getItemInventoryHandler();
|
||||
case FLUIDS:
|
||||
return (IMEInventoryHandler<T>) this.myGridCache.getFluidInventoryHandler();
|
||||
default:
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private Iterator<Entry<IMEMonitorHandlerReceiver<T>, Object>> getListeners()
|
||||
{
|
||||
return this.listeners.entrySet().iterator();
|
||||
}
|
||||
|
||||
private T monitorDifference( final IAEStack original, final T leftOvers, final boolean extraction, final BaseActionSource src )
|
||||
{
|
||||
final T diff = (T) original.copy();
|
||||
|
||||
if( extraction )
|
||||
{
|
||||
diff.setStackSize( leftOvers == null ? 0 : -leftOvers.getStackSize() );
|
||||
}
|
||||
else if( leftOvers != null )
|
||||
{
|
||||
diff.decStackSize( leftOvers.getStackSize() );
|
||||
}
|
||||
|
||||
if( diff.getStackSize() != 0 )
|
||||
{
|
||||
this.postChangesToListeners( ImmutableList.of( diff ), src );
|
||||
}
|
||||
|
||||
return leftOvers;
|
||||
}
|
||||
|
||||
private void notifyListenersOfChange( final Iterable<T> diff, final BaseActionSource src )
|
||||
{
|
||||
final Iterator<Entry<IMEMonitorHandlerReceiver<T>, Object>> i = this.getListeners();
|
||||
|
||||
while( i.hasNext() )
|
||||
{
|
||||
final Entry<IMEMonitorHandlerReceiver<T>, Object> o = i.next();
|
||||
final IMEMonitorHandlerReceiver<T> receiver = o.getKey();
|
||||
if( receiver.isValid( o.getValue() ) )
|
||||
{
|
||||
receiver.postChange( this, diff, src );
|
||||
}
|
||||
else
|
||||
{
|
||||
i.remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void postChangesToListeners( final Iterable<T> changes, final BaseActionSource src )
|
||||
{
|
||||
this.postChange( true, changes, src );
|
||||
}
|
||||
|
||||
private void updateCache( Iterable<T> changes, boolean add )
|
||||
{
|
||||
for( final T changedItem : changes )
|
||||
{
|
||||
T difference = changedItem;
|
||||
|
||||
if( !add && changedItem != null )
|
||||
{
|
||||
difference = changedItem.copy();
|
||||
difference.setStackSize( -changedItem.getStackSize() );
|
||||
}
|
||||
|
||||
this.cachedList.add( difference );
|
||||
}
|
||||
}
|
||||
|
||||
protected void postChange( final boolean add, final Iterable<T> changes, final BaseActionSource src )
|
||||
{
|
||||
if( localDepthSemaphore > 0 || GLOBAL_DEPTH.contains( this ) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
GLOBAL_DEPTH.push( this );
|
||||
localDepthSemaphore++;
|
||||
|
||||
this.sendEvent = true;
|
||||
|
||||
this.updateCache( changes, add );
|
||||
this.notifyListenersOfChange( changes, src );
|
||||
|
||||
for( final T changedItem : changes )
|
||||
{
|
||||
T difference = changedItem;
|
||||
|
||||
if( !add && changedItem != null )
|
||||
{
|
||||
difference = changedItem.copy();
|
||||
difference.setStackSize( -changedItem.getStackSize() );
|
||||
}
|
||||
|
||||
if( this.myGridCache.getInterestManager().containsKey( changedItem ) )
|
||||
{
|
||||
final Collection<ItemWatcher> list = this.myGridCache.getInterestManager().get( changedItem );
|
||||
|
||||
if( !list.isEmpty() )
|
||||
{
|
||||
IAEStack fullStack = this.getStorageList().findPrecise( changedItem );
|
||||
|
||||
if( fullStack == null )
|
||||
{
|
||||
fullStack = changedItem.copy();
|
||||
fullStack.setStackSize( 0 );
|
||||
}
|
||||
|
||||
this.myGridCache.getInterestManager().enableTransactions();
|
||||
|
||||
for( final ItemWatcher iw : list )
|
||||
{
|
||||
iw.getHost().onStackChange( this.getStorageList(), fullStack, difference, src, this.getChannel() );
|
||||
}
|
||||
|
||||
this.myGridCache.getInterestManager().disableTransactions();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
final NetworkMonitor<?> last = GLOBAL_DEPTH.pop();
|
||||
localDepthSemaphore--;
|
||||
|
||||
if( last != this )
|
||||
{
|
||||
throw new IllegalStateException( "Invalid Access to Networked Storage API detected." );
|
||||
}
|
||||
}
|
||||
|
||||
void forceUpdate( boolean reset )
|
||||
{
|
||||
if( reset )
|
||||
{
|
||||
this.hasChanged = true;
|
||||
this.cachedList.resetStatus();
|
||||
this.getAvailableItems( this.cachedList );
|
||||
}
|
||||
this.hasChanged = true;
|
||||
|
||||
final Iterator<Entry<IMEMonitorHandlerReceiver<T>, Object>> i = this.getListeners();
|
||||
|
||||
while( i.hasNext() )
|
||||
{
|
||||
final Entry<IMEMonitorHandlerReceiver<T>, Object> o = i.next();
|
||||
@@ -361,4 +81,77 @@ public class NetworkMonitor<T extends IAEStack<T>> implements IMEMonitor<T>
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected IMEInventoryHandler getHandler()
|
||||
{
|
||||
switch( this.myChannel )
|
||||
{
|
||||
case ITEMS:
|
||||
return this.myGridCache.getItemInventoryHandler();
|
||||
case FLUIDS:
|
||||
return this.myGridCache.getFluidInventoryHandler();
|
||||
default:
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void postChangesToListeners( final Iterable<T> changes, final BaseActionSource src )
|
||||
{
|
||||
this.postChange( true, changes, src );
|
||||
}
|
||||
|
||||
protected void postChange( final boolean add, final Iterable<T> changes, final BaseActionSource src )
|
||||
{
|
||||
if( DEPTH.contains( this ) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
DEPTH.push( this );
|
||||
|
||||
this.sendEvent = true;
|
||||
this.notifyListenersOfChange( changes, src );
|
||||
|
||||
final IItemList<T> myStorageList = this.getStorageList();
|
||||
|
||||
for( final T changedItem : changes )
|
||||
{
|
||||
T difference = changedItem;
|
||||
|
||||
if( !add && changedItem != null )
|
||||
{
|
||||
( difference = changedItem.copy() ).setStackSize( -changedItem.getStackSize() );
|
||||
}
|
||||
|
||||
if( this.myGridCache.getInterestManager().containsKey( changedItem ) )
|
||||
{
|
||||
final Collection<ItemWatcher> list = this.myGridCache.getInterestManager().get( changedItem );
|
||||
if( !list.isEmpty() )
|
||||
{
|
||||
IAEStack fullStack = myStorageList.findPrecise( changedItem );
|
||||
if( fullStack == null )
|
||||
{
|
||||
fullStack = changedItem.copy();
|
||||
fullStack.setStackSize( 0 );
|
||||
}
|
||||
|
||||
this.myGridCache.getInterestManager().enableTransactions();
|
||||
|
||||
for( final ItemWatcher iw : list )
|
||||
{
|
||||
iw.getHost().onStackChange( myStorageList, fullStack, difference, src, this.getChannel() );
|
||||
}
|
||||
|
||||
this.myGridCache.getInterestManager().disableTransactions();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
final NetworkMonitor<?> last = DEPTH.pop();
|
||||
if( last != this )
|
||||
{
|
||||
throw new IllegalStateException( "Invalid Access to Networked Storage API detected." );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -116,7 +116,7 @@ public abstract class MBCalculator
|
||||
}
|
||||
catch( final Throwable err )
|
||||
{
|
||||
AELog.error( err );
|
||||
AELog.debug( err );
|
||||
}
|
||||
|
||||
this.disconnect();
|
||||
|
||||
@@ -83,6 +83,8 @@ import appeng.util.item.AEItemStack;
|
||||
public final class CraftingCPUCluster implements IAECluster, ICraftingCPU
|
||||
{
|
||||
|
||||
private static final String LOG_MARK_AS_COMPLETE = "Completed job for %s.";
|
||||
|
||||
private final WorldCoord min;
|
||||
private final WorldCoord max;
|
||||
private final int[] usedOps = new int[3];
|
||||
@@ -427,12 +429,19 @@ public final class CraftingCPUCluster implements IAECluster, ICraftingCPU
|
||||
( (CraftingLink) this.myLastLink ).markDone();
|
||||
}
|
||||
|
||||
AELog.crafting( "marking job as complete" );
|
||||
if( AELog.isCraftingLogEnabled() )
|
||||
{
|
||||
final IAEItemStack logStack = this.finalOutput.copy();
|
||||
logStack.setStackSize( this.startItemCount );
|
||||
AELog.crafting( LOG_MARK_AS_COMPLETE, logStack );
|
||||
}
|
||||
|
||||
this.remainingItemCount = 0;
|
||||
this.startItemCount = 0;
|
||||
this.lastTime = 0;
|
||||
this.elapsedTime = 0;
|
||||
this.isComplete = true;
|
||||
|
||||
}
|
||||
|
||||
private void updateCPU()
|
||||
|
||||
@@ -1074,7 +1074,7 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I
|
||||
}
|
||||
else
|
||||
{
|
||||
AELog.warning( "Invalid NBT For CableBus Container: " + iss.getItem().getClass().getName() + " is not a valid part; it was ignored." );
|
||||
AELog.warn( "Invalid NBT For CableBus Container: " + iss.getItem().getClass().getName() + " is not a valid part; it was ignored." );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -176,13 +176,6 @@ public class PartExportBus extends PartSharedItemBus implements ICraftingRequest
|
||||
// :P
|
||||
}
|
||||
|
||||
final int failedAttempts = this.craftingTracker.getFailedCraftingAttempts();
|
||||
|
||||
if( this.isCraftingEnabled() && failedAttempts > 0 )
|
||||
{
|
||||
return this.getFailedCraftingPenalty( failedAttempts );
|
||||
}
|
||||
|
||||
return this.didSomething ? TickRateModulation.FASTER : TickRateModulation.SLOWER;
|
||||
}
|
||||
|
||||
@@ -306,7 +299,7 @@ public class PartExportBus extends PartSharedItemBus implements ICraftingRequest
|
||||
}
|
||||
catch( final GridAccessException e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
|
||||
return items;
|
||||
@@ -388,18 +381,4 @@ public class PartExportBus extends PartSharedItemBus implements ICraftingRequest
|
||||
this.nextSlot = ( this.nextSlot + x ) % this.availableSlots();
|
||||
}
|
||||
}
|
||||
|
||||
private TickRateModulation getFailedCraftingPenalty( final int failedAttempts )
|
||||
{
|
||||
if( failedAttempts > 5 )
|
||||
{
|
||||
return TickRateModulation.SLOWER;
|
||||
}
|
||||
else if( failedAttempts > 1 )
|
||||
{
|
||||
return TickRateModulation.SAME;
|
||||
}
|
||||
|
||||
return TickRateModulation.FASTER;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -378,11 +378,10 @@ public class PartStorageBus extends PartUpgradeable implements IGridTickable, IC
|
||||
|
||||
final IMEInventory<IAEItemStack> out = this.getInternalHandler();
|
||||
|
||||
// TODO: evaluate, if this is really (not) necessary.
|
||||
// if( this.monitor != null )
|
||||
// {
|
||||
// this.monitor.onTick();
|
||||
// }
|
||||
if( this.monitor != null )
|
||||
{
|
||||
this.monitor.onTick();
|
||||
}
|
||||
|
||||
IItemList<IAEItemStack> after = AEApi.instance().storage().createItemList();
|
||||
if( out != null )
|
||||
|
||||
@@ -194,7 +194,7 @@ public final class PartP2POpenComputers extends PartP2PTunnel<PartP2POpenCompute
|
||||
}
|
||||
catch( final GridAccessException e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -233,14 +233,14 @@ public class PartP2PTunnelME extends PartP2PTunnel<PartP2PTunnelME> implements I
|
||||
{
|
||||
final TileEntity start = this.getTile();
|
||||
final TileEntity end = me.getTile();
|
||||
AELog.warning( "Failed to establish a ME P2P Tunnel between the tunnels at [x=%d, y=%d, z=%d] and [x=%d, y=%d, z=%d]", start.xCoord, start.yCoord, start.zCoord, end.xCoord, end.yCoord, end.zCoord );
|
||||
AELog.warn( "Failed to establish a ME P2P Tunnel between the tunnels at [x=%d, y=%d, z=%d] and [x=%d, y=%d, z=%d]", start.xCoord, start.yCoord, start.zCoord, end.xCoord, end.yCoord, end.zCoord );
|
||||
// :(
|
||||
}
|
||||
}
|
||||
}
|
||||
catch( final GridAccessException e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -370,7 +370,7 @@ public abstract class AbstractPartMonitor extends AbstractPartDisplay implements
|
||||
}
|
||||
catch( final Exception e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
finally
|
||||
{
|
||||
|
||||
@@ -257,10 +257,10 @@ public class RecipeHandler implements IRecipeHandler
|
||||
}
|
||||
catch( final Exception err )
|
||||
{
|
||||
AELog.warning( "Error Loading Recipe File:" + path );
|
||||
AELog.warn( "Error Loading Recipe File:" + path );
|
||||
if( this.data.exceptions )
|
||||
{
|
||||
AELog.error( err );
|
||||
AELog.debug( err );
|
||||
}
|
||||
return;
|
||||
}
|
||||
@@ -360,7 +360,7 @@ public class RecipeHandler implements IRecipeHandler
|
||||
}
|
||||
catch( final Throwable e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
if( this.data.crash )
|
||||
{
|
||||
throw new IllegalStateException( e );
|
||||
@@ -398,10 +398,10 @@ public class RecipeHandler implements IRecipeHandler
|
||||
}
|
||||
catch( final RegistrationError e )
|
||||
{
|
||||
AELog.warning( "Unable to register a recipe: " + e.getMessage() );
|
||||
AELog.warn( "Unable to register a recipe: " + e.getMessage() );
|
||||
if( this.data.exceptions )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
if( this.data.crash )
|
||||
{
|
||||
@@ -412,10 +412,10 @@ public class RecipeHandler implements IRecipeHandler
|
||||
{
|
||||
if( this.data.errorOnMissing )
|
||||
{
|
||||
AELog.warning( "Unable to register a recipe:" + e.getMessage() );
|
||||
AELog.warn( "Unable to register a recipe:" + e.getMessage() );
|
||||
if( this.data.exceptions )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
if( this.data.crash )
|
||||
{
|
||||
@@ -429,7 +429,7 @@ public class RecipeHandler implements IRecipeHandler
|
||||
{
|
||||
if( this.data.exceptions )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
if( this.data.crash )
|
||||
{
|
||||
@@ -505,11 +505,11 @@ public class RecipeHandler implements IRecipeHandler
|
||||
}
|
||||
catch( final FileNotFoundException e1 )
|
||||
{
|
||||
AELog.error( e1 );
|
||||
AELog.debug( e1 );
|
||||
}
|
||||
catch( final IOException e1 )
|
||||
{
|
||||
AELog.error( e1 );
|
||||
AELog.debug( e1 );
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -529,7 +529,7 @@ public class RecipeHandler implements IRecipeHandler
|
||||
}
|
||||
catch( final Throwable t )
|
||||
{
|
||||
AELog.error( t );
|
||||
AELog.debug( t );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -678,10 +678,10 @@ public class RecipeHandler implements IRecipeHandler
|
||||
}
|
||||
catch( final RecipeError e )
|
||||
{
|
||||
AELog.warning( "Recipe Error '" + e.getMessage() + "' near line:" + line + " in " + file + " with: " + this.tokens.toString() );
|
||||
AELog.warn( "Recipe Error '" + e.getMessage() + "' near line:" + line + " in " + file + " with: " + this.tokens.toString() );
|
||||
if( this.data.exceptions )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
if( this.data.crash )
|
||||
{
|
||||
|
||||
@@ -118,7 +118,7 @@ public class Shaped implements ICraftHandler, IWebsiteSerializer
|
||||
}
|
||||
catch( final Throwable e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
throw new RegistrationError( "Error while adding shaped recipe." );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -81,7 +81,7 @@ public class Shapeless implements ICraftHandler, IWebsiteSerializer
|
||||
}
|
||||
catch( final Throwable e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
throw new RegistrationError( "Error while adding shapeless recipe." );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -89,7 +89,7 @@ public class OreDictionaryHandler
|
||||
}
|
||||
catch( final Throwable e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -102,7 +102,7 @@ public final class VersionChecker implements Runnable
|
||||
catch( Exception exception )
|
||||
{
|
||||
// Log any unhandled exception to prevent the JVM from reporting them as unhandled.
|
||||
AELog.error( exception );
|
||||
AELog.debug( exception );
|
||||
}
|
||||
|
||||
AELog.info( "Stopping AE2 VersionChecker" );
|
||||
|
||||
@@ -73,7 +73,8 @@ final class MinecraftItemCSVExporter implements Exporter
|
||||
|
||||
/**
|
||||
* @param exportDirectory directory of the resulting export file. Non-null required.
|
||||
* @param itemRegistry the registry with minecraft items. Needs to be populated at that time, thus the exporting can only happen in init (pre-init is the
|
||||
* @param itemRegistry the registry with minecraft items. Needs to be populated at that time, thus the exporting can
|
||||
* only happen in init (pre-init is the
|
||||
* phase when all items are determined)
|
||||
* @param mode mode in which the export should be operated. Resulting CSV will change depending on this.
|
||||
*/
|
||||
@@ -103,7 +104,7 @@ final class MinecraftItemCSVExporter implements Exporter
|
||||
{
|
||||
FileUtils.forceMkdir( this.exportDirectory );
|
||||
|
||||
final Writer writer = new BufferedWriter( new OutputStreamWriter( new FileOutputStream( file ), Charset.forName("UTF-8") ) );
|
||||
final Writer writer = new BufferedWriter( new OutputStreamWriter( new FileOutputStream( file ), Charset.forName( "UTF-8" ) ) );
|
||||
|
||||
final String header = this.mode == ExportMode.MINIMAL ? MINIMAL_HEADER : VERBOSE_HEADER;
|
||||
writer.write( header );
|
||||
@@ -116,8 +117,8 @@ final class MinecraftItemCSVExporter implements Exporter
|
||||
}
|
||||
catch( final IOException e )
|
||||
{
|
||||
AELog.warning( EXPORT_UNSUCCESSFUL_MESSAGE );
|
||||
AELog.error( e );
|
||||
AELog.warn( EXPORT_UNSUCCESSFUL_MESSAGE );
|
||||
AELog.debug( e );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -186,7 +187,6 @@ final class MinecraftItemCSVExporter implements Exporter
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* transforms an item into a row representation of the CSV file
|
||||
*/
|
||||
@@ -198,6 +198,7 @@ final class MinecraftItemCSVExporter implements Exporter
|
||||
private static final String LOCALIZATION_NAME_EXTENSION = ".name";
|
||||
private static final String EXPORTING_NOTHING_MESSAGE = "Exporting nothing";
|
||||
private static final String EXPORTING_SUBTYPES_MESSAGE = "Exporting input %s with subtypes: %b";
|
||||
private static final String EXPORTING_SUBTYPES_FAILED_MESSAGE = "Could not export subtypes of: %s";
|
||||
|
||||
@Nonnull
|
||||
private final FMLControlledNamespacedRegistry<Item> itemRegistry;
|
||||
@@ -243,7 +244,8 @@ final class MinecraftItemCSVExporter implements Exporter
|
||||
}
|
||||
catch( final Exception ignored )
|
||||
{
|
||||
AELog.error( ignored );
|
||||
AELog.warn( EXPORTING_SUBTYPES_FAILED_MESSAGE, input.getUnlocalizedName() );
|
||||
AELog.debug( ignored );
|
||||
|
||||
// ignore if mods do bullshit in their code
|
||||
return null;
|
||||
|
||||
@@ -67,7 +67,7 @@ public final class ModVersionFetcher implements VersionFetcher
|
||||
}
|
||||
catch( final VersionCheckerException e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
|
||||
return EXCEPTIONAL_VERSION;
|
||||
}
|
||||
|
||||
@@ -59,7 +59,7 @@ public final class VersionCheckerConfig
|
||||
public VersionCheckerConfig( @Nonnull final File file )
|
||||
{
|
||||
Preconditions.checkNotNull( file );
|
||||
Preconditions.checkState( file.isFile() );
|
||||
Preconditions.checkState( !file.isDirectory() );
|
||||
|
||||
this.config = new Configuration( file );
|
||||
|
||||
|
||||
@@ -75,15 +75,15 @@ public final class ReleaseFetcher
|
||||
}
|
||||
catch( final VersionCheckerException e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
catch( MalformedURLException e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
catch( IOException e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
|
||||
return EXCEPTIONAL_RELEASE;
|
||||
|
||||
@@ -178,7 +178,7 @@ public class CachedPlane
|
||||
}
|
||||
catch( final Exception e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -292,7 +292,7 @@ public class CachedPlane
|
||||
}
|
||||
catch( final Throwable e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
|
||||
// attempt recovery...
|
||||
te.setWorldObj( this.getWorld() );
|
||||
@@ -319,7 +319,7 @@ public class CachedPlane
|
||||
}
|
||||
catch( final Throwable e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -199,7 +199,7 @@ public class AEBaseTile extends TileEntity implements IOrientable, ICommonTile,
|
||||
}
|
||||
catch( final Throwable t )
|
||||
{
|
||||
AELog.error( t );
|
||||
AELog.debug( t );
|
||||
}
|
||||
|
||||
stream.capacity( stream.readableBytes() );
|
||||
@@ -279,7 +279,7 @@ public class AEBaseTile extends TileEntity implements IOrientable, ICommonTile,
|
||||
}
|
||||
catch( final Throwable t )
|
||||
{
|
||||
AELog.error( t );
|
||||
AELog.debug( t );
|
||||
}
|
||||
|
||||
return output;
|
||||
@@ -319,7 +319,7 @@ public class AEBaseTile extends TileEntity implements IOrientable, ICommonTile,
|
||||
}
|
||||
catch( final Throwable t )
|
||||
{
|
||||
AELog.error( t );
|
||||
AELog.debug( t );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -102,7 +102,7 @@ public class TileMolecularAssembler extends AENetworkInvTile implements IUpgrade
|
||||
this.settings = new ConfigManager( this );
|
||||
this.settings.registerSetting( Settings.REDSTONE_CONTROLLED, RedstoneMode.IGNORE );
|
||||
this.inv.setMaxStackSize( 1 );
|
||||
this.getGridProxy().setIdlePowerUsage( 0.0 );
|
||||
this.getProxy().setIdlePowerUsage( 0.0 );
|
||||
this.upgrades = new DefinitionUpgradeInventory( assembler, this, this.getUpgradeSlots() );
|
||||
this.craftingInv = new InventoryCrafting( new ContainerNull(), 3, 3 );
|
||||
}
|
||||
@@ -152,11 +152,11 @@ public class TileMolecularAssembler extends AENetworkInvTile implements IUpgrade
|
||||
{
|
||||
if( this.isAwake )
|
||||
{
|
||||
this.getGridProxy().getTick().wakeDevice( this.getGridProxy().getNode() );
|
||||
this.getProxy().getTick().wakeDevice( this.getProxy().getNode() );
|
||||
}
|
||||
else
|
||||
{
|
||||
this.getGridProxy().getTick().sleepDevice( this.getGridProxy().getNode() );
|
||||
this.getProxy().getTick().sleepDevice( this.getProxy().getNode() );
|
||||
}
|
||||
}
|
||||
catch( final GridAccessException e )
|
||||
@@ -553,7 +553,7 @@ public class TileMolecularAssembler extends AENetworkInvTile implements IUpgrade
|
||||
{
|
||||
try
|
||||
{
|
||||
return (int) ( this.getGridProxy().getEnergy().extractAEPower( ticksPassed * bonusValue * acceleratorTax, Actionable.MODULATE, PowerMultiplier.CONFIG ) / acceleratorTax );
|
||||
return (int) ( this.getProxy().getEnergy().extractAEPower( ticksPassed * bonusValue * acceleratorTax, Actionable.MODULATE, PowerMultiplier.CONFIG ) / acceleratorTax );
|
||||
}
|
||||
catch( final GridAccessException e )
|
||||
{
|
||||
@@ -629,7 +629,7 @@ public class TileMolecularAssembler extends AENetworkInvTile implements IUpgrade
|
||||
|
||||
try
|
||||
{
|
||||
newState = this.getGridProxy().isActive() && this.getGridProxy().getEnergy().extractAEPower( 1, Actionable.SIMULATE, PowerMultiplier.CONFIG ) > 0.0001;
|
||||
newState = this.getProxy().isActive() && this.getProxy().getEnergy().extractAEPower( 1, Actionable.SIMULATE, PowerMultiplier.CONFIG ) > 0.0001;
|
||||
}
|
||||
catch( final GridAccessException ignored )
|
||||
{
|
||||
|
||||
@@ -39,19 +39,19 @@ public abstract class AENetworkInvTile extends AEBaseInvTile implements IActionH
|
||||
@TileEvent( TileEventType.WORLD_NBT_READ )
|
||||
public void readFromNBT_AENetwork( final NBTTagCompound data )
|
||||
{
|
||||
this.getGridProxy().readFromNBT( data );
|
||||
this.getProxy().readFromNBT( data );
|
||||
}
|
||||
|
||||
@TileEvent( TileEventType.WORLD_NBT_WRITE )
|
||||
public void writeToNBT_AENetwork( final NBTTagCompound data )
|
||||
{
|
||||
this.getGridProxy().writeToNBT( data );
|
||||
this.getProxy().writeToNBT( data );
|
||||
}
|
||||
|
||||
@Override
|
||||
public AENetworkProxy getProxy()
|
||||
{
|
||||
return this.getGridProxy();
|
||||
return this.gridProxy;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -63,45 +63,41 @@ public abstract class AENetworkInvTile extends AEBaseInvTile implements IActionH
|
||||
@Override
|
||||
public IGridNode getGridNode( final ForgeDirection dir )
|
||||
{
|
||||
return this.getGridProxy().getNode();
|
||||
return this.getProxy().getNode();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onChunkUnload()
|
||||
{
|
||||
super.onChunkUnload();
|
||||
this.getGridProxy().onChunkUnload();
|
||||
this.getProxy().onChunkUnload();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onReady()
|
||||
{
|
||||
super.onReady();
|
||||
this.getGridProxy().onReady();
|
||||
this.getProxy().onReady();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void invalidate()
|
||||
{
|
||||
super.invalidate();
|
||||
this.getGridProxy().invalidate();
|
||||
this.getProxy().invalidate();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void validate()
|
||||
{
|
||||
super.validate();
|
||||
this.getGridProxy().validate();
|
||||
this.getProxy().validate();
|
||||
}
|
||||
|
||||
@Override
|
||||
public IGridNode getActionableNode()
|
||||
{
|
||||
return this.getGridProxy().getNode();
|
||||
return this.getProxy().getNode();
|
||||
}
|
||||
|
||||
public AENetworkProxy getGridProxy()
|
||||
{
|
||||
return this.gridProxy;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -125,7 +125,7 @@ public class AppEngInternalAEInventory implements IInventory, Iterable<ItemStack
|
||||
}
|
||||
catch( final Exception e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -272,7 +272,7 @@ public class AppEngInternalInventory implements IInventory, Iterable<ItemStack>
|
||||
}
|
||||
catch( final Exception e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -67,7 +67,7 @@ import appeng.util.inv.IInventoryDestination;
|
||||
public class TileInterface extends AENetworkInvTile implements IGridTickable, ITileStorageMonitorable, IStorageMonitorable, IInventoryDestination, IInterfaceHost, IPriorityHost
|
||||
{
|
||||
|
||||
private final DualityInterface duality = new DualityInterface( this.getGridProxy(), this );
|
||||
private final DualityInterface duality = new DualityInterface( this.getProxy(), this );
|
||||
private ForgeDirection pointAt = ForgeDirection.UNKNOWN;
|
||||
|
||||
@MENetworkEventSubscribe
|
||||
@@ -115,7 +115,7 @@ public class TileInterface extends AENetworkInvTile implements IGridTickable, IT
|
||||
this.setOrientation( this.pointAt.offsetY != 0 ? ForgeDirection.SOUTH : ForgeDirection.UP, this.pointAt.getOpposite() );
|
||||
}
|
||||
|
||||
this.getGridProxy().setValidSides( EnumSet.complementOf( EnumSet.of( this.pointAt ) ) );
|
||||
this.getProxy().setValidSides( EnumSet.complementOf( EnumSet.of( this.pointAt ) ) );
|
||||
this.markForUpdate();
|
||||
this.markDirty();
|
||||
}
|
||||
@@ -141,7 +141,7 @@ public class TileInterface extends AENetworkInvTile implements IGridTickable, IT
|
||||
@Override
|
||||
public void onReady()
|
||||
{
|
||||
this.getGridProxy().setValidSides( EnumSet.complementOf( EnumSet.of( this.pointAt ) ) );
|
||||
this.getProxy().setValidSides( EnumSet.complementOf( EnumSet.of( this.pointAt ) ) );
|
||||
super.onReady();
|
||||
this.duality.initialize();
|
||||
}
|
||||
|
||||
@@ -66,8 +66,8 @@ public class TileVibrationChamber extends AENetworkInvTile implements IGridTicka
|
||||
|
||||
public TileVibrationChamber()
|
||||
{
|
||||
this.getGridProxy().setIdlePowerUsage( 0 );
|
||||
this.getGridProxy().setFlags();
|
||||
this.getProxy().setIdlePowerUsage( 0 );
|
||||
this.getProxy().setFlags();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -131,7 +131,7 @@ public class TileVibrationChamber extends AENetworkInvTile implements IGridTicka
|
||||
{
|
||||
try
|
||||
{
|
||||
this.getGridProxy().getTick().wakeDevice( this.getGridProxy().getNode() );
|
||||
this.getProxy().getTick().wakeDevice( this.getProxy().getNode() );
|
||||
}
|
||||
catch( final GridAccessException e )
|
||||
{
|
||||
@@ -213,7 +213,7 @@ public class TileVibrationChamber extends AENetworkInvTile implements IGridTicka
|
||||
|
||||
try
|
||||
{
|
||||
final IEnergyGrid grid = this.getGridProxy().getEnergy();
|
||||
final IEnergyGrid grid = this.getProxy().getEnergy();
|
||||
final double newPower = timePassed * POWER_PER_TICK;
|
||||
final double overFlow = grid.injectPower( newPower, Actionable.SIMULATE );
|
||||
|
||||
@@ -275,7 +275,7 @@ public class TileVibrationChamber extends AENetworkInvTile implements IGridTicka
|
||||
{
|
||||
try
|
||||
{
|
||||
this.getGridProxy().getTick().wakeDevice( this.getGridProxy().getNode() );
|
||||
this.getProxy().getTick().wakeDevice( this.getProxy().getNode() );
|
||||
}
|
||||
catch( final GridAccessException e )
|
||||
{
|
||||
|
||||
@@ -60,15 +60,15 @@ public class TileWireless extends AENetworkInvTile implements IWirelessAccessPoi
|
||||
|
||||
public TileWireless()
|
||||
{
|
||||
this.getGridProxy().setFlags( GridFlags.REQUIRE_CHANNEL );
|
||||
this.getGridProxy().setValidSides( EnumSet.noneOf( ForgeDirection.class ) );
|
||||
this.getProxy().setFlags( GridFlags.REQUIRE_CHANNEL );
|
||||
this.getProxy().setValidSides( EnumSet.noneOf( ForgeDirection.class ) );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setOrientation( final ForgeDirection inForward, final ForgeDirection inUp )
|
||||
{
|
||||
super.setOrientation( inForward, inUp );
|
||||
this.getGridProxy().setValidSides( EnumSet.of( this.getForward().getOpposite() ) );
|
||||
this.getProxy().setValidSides( EnumSet.of( this.getForward().getOpposite() ) );
|
||||
}
|
||||
|
||||
@MENetworkEventSubscribe
|
||||
@@ -99,12 +99,12 @@ public class TileWireless extends AENetworkInvTile implements IWirelessAccessPoi
|
||||
|
||||
try
|
||||
{
|
||||
if( this.getGridProxy().getEnergy().isNetworkPowered() )
|
||||
if( this.getProxy().getEnergy().isNetworkPowered() )
|
||||
{
|
||||
this.setClientFlags( this.getClientFlags() | POWERED_FLAG );
|
||||
}
|
||||
|
||||
if( this.getGridProxy().getNode().meetsChannelRequirements() )
|
||||
if( this.getProxy().getNode().meetsChannelRequirements() )
|
||||
{
|
||||
this.setClientFlags( this.getClientFlags() | CHANNEL_FLAG );
|
||||
}
|
||||
@@ -162,7 +162,7 @@ public class TileWireless extends AENetworkInvTile implements IWirelessAccessPoi
|
||||
|
||||
private void updatePower()
|
||||
{
|
||||
this.getGridProxy().setIdlePowerUsage( AEConfig.instance.wireless_getPowerDrain( this.getBoosters() ) );
|
||||
this.getProxy().setIdlePowerUsage( AEConfig.instance.wireless_getPowerDrain( this.getBoosters() ) );
|
||||
}
|
||||
|
||||
private int getBoosters()
|
||||
@@ -191,7 +191,7 @@ public class TileWireless extends AENetworkInvTile implements IWirelessAccessPoi
|
||||
return this.isPowered() && ( CHANNEL_FLAG == ( this.getClientFlags() & CHANNEL_FLAG ) );
|
||||
}
|
||||
|
||||
return this.getGridProxy().isActive();
|
||||
return this.getProxy().isActive();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -199,7 +199,7 @@ public class TileWireless extends AENetworkInvTile implements IWirelessAccessPoi
|
||||
{
|
||||
try
|
||||
{
|
||||
return this.getGridProxy().getGrid();
|
||||
return this.getProxy().getGrid();
|
||||
}
|
||||
catch( final GridAccessException e )
|
||||
{
|
||||
|
||||
@@ -68,9 +68,9 @@ public class TileQuantumBridge extends AENetworkInvTile implements IAEMultiBlock
|
||||
|
||||
public TileQuantumBridge()
|
||||
{
|
||||
this.getGridProxy().setValidSides( EnumSet.noneOf( ForgeDirection.class ) );
|
||||
this.getGridProxy().setFlags( GridFlags.DENSE_CAPACITY );
|
||||
this.getGridProxy().setIdlePowerUsage( 22 );
|
||||
this.getProxy().setValidSides( EnumSet.noneOf( ForgeDirection.class ) );
|
||||
this.getProxy().setFlags( GridFlags.DENSE_CAPACITY );
|
||||
this.getProxy().setIdlePowerUsage( 22 );
|
||||
this.internalInventory.setMaxStackSize( 1 );
|
||||
}
|
||||
|
||||
@@ -98,7 +98,7 @@ public class TileQuantumBridge extends AENetworkInvTile implements IAEMultiBlock
|
||||
out |= this.hasSingularity;
|
||||
}
|
||||
|
||||
if( this.getGridProxy().isActive() && this.constructed != -1 )
|
||||
if( this.getProxy().isActive() && this.constructed != -1 )
|
||||
{
|
||||
out |= this.powered;
|
||||
}
|
||||
@@ -177,7 +177,7 @@ public class TileQuantumBridge extends AENetworkInvTile implements IAEMultiBlock
|
||||
{
|
||||
final ItemStack linkStack = maybeLinkStack.get();
|
||||
|
||||
this.getGridProxy().setVisualRepresentation( linkStack );
|
||||
this.getProxy().setVisualRepresentation( linkStack );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -205,7 +205,7 @@ public class TileQuantumBridge extends AENetworkInvTile implements IAEMultiBlock
|
||||
|
||||
if( affectWorld )
|
||||
{
|
||||
this.getGridProxy().setValidSides( EnumSet.noneOf( ForgeDirection.class ) );
|
||||
this.getProxy().setValidSides( EnumSet.noneOf( ForgeDirection.class ) );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -235,11 +235,11 @@ public class TileQuantumBridge extends AENetworkInvTile implements IAEMultiBlock
|
||||
|
||||
if( this.isCorner() || this.isCenter() )
|
||||
{
|
||||
this.getGridProxy().setValidSides( this.getConnections() );
|
||||
this.getProxy().setValidSides( this.getConnections() );
|
||||
}
|
||||
else
|
||||
{
|
||||
this.getGridProxy().setValidSides( EnumSet.allOf( ForgeDirection.class ) );
|
||||
this.getProxy().setValidSides( EnumSet.allOf( ForgeDirection.class ) );
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -288,7 +288,7 @@ public class TileQuantumBridge extends AENetworkInvTile implements IAEMultiBlock
|
||||
|
||||
try
|
||||
{
|
||||
return this.getGridProxy().getEnergy().isNetworkPowered();
|
||||
return this.getProxy().getEnergy().isNetworkPowered();
|
||||
}
|
||||
catch( final GridAccessException e )
|
||||
{
|
||||
|
||||
@@ -58,7 +58,7 @@ public class TileSpatialIOPort extends AENetworkInvTile implements IWorldCallabl
|
||||
|
||||
public TileSpatialIOPort()
|
||||
{
|
||||
this.getGridProxy().setFlags( GridFlags.REQUIRE_CHANNEL );
|
||||
this.getProxy().setFlags( GridFlags.REQUIRE_CHANNEL );
|
||||
}
|
||||
|
||||
@TileEvent( TileEventType.WORLD_NBT_WRITE )
|
||||
@@ -127,8 +127,8 @@ public class TileSpatialIOPort extends AENetworkInvTile implements IWorldCallabl
|
||||
final ItemStack cell = this.getStackInSlot( 0 );
|
||||
if( this.isSpatialCell( cell ) && this.getStackInSlot( 1 ) == null )
|
||||
{
|
||||
final IGrid gi = this.getGridProxy().getGrid();
|
||||
final IEnergyGrid energy = this.getGridProxy().getEnergy();
|
||||
final IGrid gi = this.getProxy().getGrid();
|
||||
final IEnergyGrid energy = this.getProxy().getEnergy();
|
||||
|
||||
final ISpatialStorageCell sc = (ISpatialStorageCell) cell.getItem();
|
||||
|
||||
|
||||
@@ -78,7 +78,7 @@ public class TileDrive extends AENetworkInvTile implements IChestOrDrive, IPrior
|
||||
public TileDrive()
|
||||
{
|
||||
this.mySrc = new MachineSource( this );
|
||||
this.getGridProxy().setFlags( GridFlags.REQUIRE_CHANNEL );
|
||||
this.getProxy().setFlags( GridFlags.REQUIRE_CHANNEL );
|
||||
}
|
||||
|
||||
@TileEvent( TileEventType.NETWORK_WRITE )
|
||||
@@ -93,7 +93,7 @@ public class TileDrive extends AENetworkInvTile implements IChestOrDrive, IPrior
|
||||
this.state &= 0x24924924; // just keep the blinks...
|
||||
}
|
||||
|
||||
if( this.getGridProxy().isActive() )
|
||||
if( this.getProxy().isActive() )
|
||||
{
|
||||
this.state |= 0x80000000;
|
||||
}
|
||||
@@ -160,7 +160,7 @@ public class TileDrive extends AENetworkInvTile implements IChestOrDrive, IPrior
|
||||
return ( this.state & 0x80000000 ) == 0x80000000;
|
||||
}
|
||||
|
||||
return this.getGridProxy().isActive();
|
||||
return this.getProxy().isActive();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -205,7 +205,7 @@ public class TileDrive extends AENetworkInvTile implements IChestOrDrive, IPrior
|
||||
|
||||
private void recalculateDisplay()
|
||||
{
|
||||
final boolean currentActive = this.getGridProxy().isActive();
|
||||
final boolean currentActive = this.getProxy().isActive();
|
||||
if( currentActive )
|
||||
{
|
||||
this.state |= 0x80000000;
|
||||
@@ -220,7 +220,7 @@ public class TileDrive extends AENetworkInvTile implements IChestOrDrive, IPrior
|
||||
this.wasActive = currentActive;
|
||||
try
|
||||
{
|
||||
this.getGridProxy().getGrid().postEvent( new MENetworkCellArrayUpdate() );
|
||||
this.getProxy().getGrid().postEvent( new MENetworkCellArrayUpdate() );
|
||||
}
|
||||
catch( final GridAccessException e )
|
||||
{
|
||||
@@ -281,9 +281,9 @@ public class TileDrive extends AENetworkInvTile implements IChestOrDrive, IPrior
|
||||
|
||||
try
|
||||
{
|
||||
this.getGridProxy().getGrid().postEvent( new MENetworkCellArrayUpdate() );
|
||||
this.getProxy().getGrid().postEvent( new MENetworkCellArrayUpdate() );
|
||||
|
||||
final IStorageGrid gs = this.getGridProxy().getStorage();
|
||||
final IStorageGrid gs = this.getProxy().getStorage();
|
||||
Platform.postChanges( gs, removed, added, this.mySrc );
|
||||
}
|
||||
catch( final GridAccessException ignored )
|
||||
@@ -349,7 +349,7 @@ public class TileDrive extends AENetworkInvTile implements IChestOrDrive, IPrior
|
||||
}
|
||||
}
|
||||
|
||||
this.getGridProxy().setIdlePowerUsage( power );
|
||||
this.getProxy().setIdlePowerUsage( power );
|
||||
|
||||
this.isCached = true;
|
||||
}
|
||||
@@ -365,7 +365,7 @@ public class TileDrive extends AENetworkInvTile implements IChestOrDrive, IPrior
|
||||
@Override
|
||||
public List<IMEInventoryHandler> getCellArray( final StorageChannel channel )
|
||||
{
|
||||
if( this.getGridProxy().isActive() )
|
||||
if( this.getProxy().isActive() )
|
||||
{
|
||||
this.updateState();
|
||||
return (List) ( channel == StorageChannel.ITEMS ? this.items : this.fluids );
|
||||
@@ -390,7 +390,7 @@ public class TileDrive extends AENetworkInvTile implements IChestOrDrive, IPrior
|
||||
|
||||
try
|
||||
{
|
||||
this.getGridProxy().getGrid().postEvent( new MENetworkCellArrayUpdate() );
|
||||
this.getProxy().getGrid().postEvent( new MENetworkCellArrayUpdate() );
|
||||
}
|
||||
catch( final GridAccessException e )
|
||||
{
|
||||
|
||||
@@ -106,7 +106,7 @@ public class TileIOPort extends AENetworkInvTile implements IUpgradeableHost, IC
|
||||
@Reflected
|
||||
public TileIOPort()
|
||||
{
|
||||
this.getGridProxy().setFlags( GridFlags.REQUIRE_CHANNEL );
|
||||
this.getProxy().setFlags( GridFlags.REQUIRE_CHANNEL );
|
||||
this.manager = new ConfigManager( this );
|
||||
this.manager.registerSetting( Settings.REDSTONE_CONTROLLED, RedstoneMode.IGNORE );
|
||||
this.manager.registerSetting( Settings.FULLNESS_MODE, FullnessMode.EMPTY );
|
||||
@@ -158,11 +158,11 @@ public class TileIOPort extends AENetworkInvTile implements IUpgradeableHost, IC
|
||||
{
|
||||
if( this.hasWork() )
|
||||
{
|
||||
this.getGridProxy().getTick().wakeDevice( this.getGridProxy().getNode() );
|
||||
this.getProxy().getTick().wakeDevice( this.getProxy().getNode() );
|
||||
}
|
||||
else
|
||||
{
|
||||
this.getGridProxy().getTick().sleepDevice( this.getGridProxy().getNode() );
|
||||
this.getProxy().getTick().sleepDevice( this.getProxy().getNode() );
|
||||
}
|
||||
}
|
||||
catch( final GridAccessException e )
|
||||
@@ -313,7 +313,7 @@ public class TileIOPort extends AENetworkInvTile implements IUpgradeableHost, IC
|
||||
@Override
|
||||
public TickRateModulation tickingRequest( final IGridNode node, final int ticksSinceLastCall )
|
||||
{
|
||||
if( !this.getGridProxy().isActive() )
|
||||
if( !this.getProxy().isActive() )
|
||||
{
|
||||
return TickRateModulation.IDLE;
|
||||
}
|
||||
@@ -335,9 +335,9 @@ public class TileIOPort extends AENetworkInvTile implements IUpgradeableHost, IC
|
||||
|
||||
try
|
||||
{
|
||||
final IMEInventory<IAEItemStack> itemNet = this.getGridProxy().getStorage().getItemInventory();
|
||||
final IMEInventory<IAEFluidStack> fluidNet = this.getGridProxy().getStorage().getFluidInventory();
|
||||
final IEnergySource energy = this.getGridProxy().getEnergy();
|
||||
final IMEInventory<IAEItemStack> itemNet = this.getProxy().getStorage().getItemInventory();
|
||||
final IMEInventory<IAEFluidStack> fluidNet = this.getProxy().getStorage().getFluidInventory();
|
||||
final IEnergySource energy = this.getProxy().getEnergy();
|
||||
for( int x = 0; x < 6; x++ )
|
||||
{
|
||||
final ItemStack is = this.cells.getStackInSlot( x );
|
||||
|
||||
@@ -113,7 +113,7 @@ public class ClassInstantiation<T>
|
||||
}
|
||||
catch( final Throwable t )
|
||||
{
|
||||
AELog.error( t );
|
||||
AELog.debug( t );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -125,7 +125,7 @@ public final class ConfigManager implements IConfigManager
|
||||
}
|
||||
catch( final IllegalArgumentException e )
|
||||
{
|
||||
AELog.error( e );
|
||||
AELog.debug( e );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -576,8 +576,8 @@ public class Platform
|
||||
}
|
||||
catch( final Throwable z )
|
||||
{
|
||||
AELog.error( t );
|
||||
AELog.error( z );
|
||||
AELog.debug( t );
|
||||
AELog.debug( z );
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -589,7 +589,7 @@ public class Platform
|
||||
}
|
||||
catch( final Throwable t )
|
||||
{
|
||||
AELog.error( t );
|
||||
AELog.debug( t );
|
||||
}
|
||||
|
||||
return new ArrayList<NBTBase>();
|
||||
@@ -2010,7 +2010,7 @@ public class Platform
|
||||
}
|
||||
catch( final Throwable t )
|
||||
{
|
||||
AELog.error( t );
|
||||
AELog.debug( t );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
//Blocks
|
||||
tile.appliedenergistics2.BlockCableBus.name=AE2-Kabel und/oder Bus
|
||||
tile.appliedenergistics2.BlockCellWorkbench.name=Speicherzellenwerkbank
|
||||
tile.appliedenergistics2.BlockCharger.name=Ladegerät
|
||||
@@ -50,12 +51,36 @@ tile.appliedenergistics2.BlockCraftingAccelerator.name=Fertigungs-Prozessoreinhe
|
||||
tile.appliedenergistics2.BlockCraftingUnit.name=Fertigungseinheit
|
||||
tile.appliedenergistics2.BlockMolecularAssembler.name=Molekularassembler
|
||||
|
||||
// Stairs
|
||||
tile.appliedenergistics2.ChiseledQuartzStairBlock.name=Gemeißelte Certusquartztreppe
|
||||
tile.appliedenergistics2.FluixStairBlock.name=Fluixtreppe
|
||||
tile.appliedenergistics2.QuartzPillarStairBlock.name=Certusquartzsäulentreppe
|
||||
tile.appliedenergistics2.QuartzStairBlock.name=Certusquartztreppe
|
||||
tile.appliedenergistics2.SkyStoneBlockStairBlock.name=Himmelssteinblocktreppe
|
||||
tile.appliedenergistics2.SkyStoneBrickStairBlock.name=Himmelssteinziegeltreppe
|
||||
tile.appliedenergistics2.SkyStoneSmallBrickStairBlock.name=Himmelssteinkleinziegeltreppe
|
||||
tile.appliedenergistics2.SkyStoneStairBlock.name=Himmelssteintreppe
|
||||
|
||||
// Slabs
|
||||
tile.appliedenergistics2.ChiseledQuartzSlabBlock.name=Gemeißelte Certusquartzstufe
|
||||
tile.appliedenergistics2.FluixSlabBlock.name=Fluixstufe
|
||||
tile.appliedenergistics2.QuartzPillarSlabBlock.name=Certusquartzsäulenstufe
|
||||
tile.appliedenergistics2.QuartzSlabBlock.name=Certusquartzstufe
|
||||
tile.appliedenergistics2.SkyStoneBlockSlabBlock.name=Himmelssteinblockstufe
|
||||
tile.appliedenergistics2.SkyStoneBrickSlabBlock.name=Himmelssteinziegelstufe
|
||||
tile.appliedenergistics2.SkyStoneSmallBrickSlabBlock.name=Himmelssteinkleinziegelstufe
|
||||
tile.appliedenergistics2.SkyStoneSlabBlock.name=Himmelssteinstufe
|
||||
|
||||
// Chat Messages
|
||||
chat.appliedenergistics2.ChestCannotReadStorageCell=ME-Truhe kann die Speicherzelle nicht einlesen.
|
||||
chat.appliedenergistics2.SettingCleared=Einstellung gelöscht.
|
||||
chat.appliedenergistics2.OutOfRange=Drahtloser Zugangspunkt außer Reichweite.
|
||||
chat.appliedenergistics2.InvalidMachine=Ungültige Maschine.
|
||||
chat.appliedenergistics2.LoadedSettings=Einstellungen erfolgreich geladen.
|
||||
chat.appliedenergistics2.DeviceNotPowered=Gerät hat zu wenig Energie
|
||||
chat.appliedenergistics2.DeviceNotWirelessTerminal=Gerät ist keine Drahtloskonsole.
|
||||
chat.appliedenergistics2.DeviceNotLinked=Gerät ist nicht verbunden.
|
||||
chat.appliedenergistics2.StationCanNotBeLocated=Station kann nicht lokalisiert werden.
|
||||
chat.appliedenergistics2.MachineNotPowered=Maschine bekommt keine Energie.
|
||||
chat.appliedenergistics2.CommunicationError=Fehler beim Kommunizieren mit dem Netzwerk.
|
||||
chat.appliedenergistics2.SavedSettings=Einstellungen erfolgreich gespeichert.
|
||||
@@ -63,9 +88,11 @@ chat.appliedenergistics2.AmmoDepleted=Munition verbraucht.
|
||||
chat.appliedenergistics2.isNowLocked=Monitor ist nun gesperrt.
|
||||
chat.appliedenergistics2.isNowUnlocked=Monitor ist nun entsperrt.
|
||||
|
||||
// Creative Tabs
|
||||
itemGroup.appliedenergistics2=Applied Energistics 2
|
||||
itemGroup.appliedenergistics2.facades=Applied Energistics 2 - Fassaden
|
||||
|
||||
// GUI
|
||||
gui.appliedenergistics2.CraftingTerminal=Fertigungskonsole
|
||||
gui.appliedenergistics2.METunnel=ME
|
||||
gui.appliedenergistics2.ItemTunnel=Item
|
||||
@@ -74,6 +101,8 @@ gui.appliedenergistics2.RedstoneTunnel=Redstone
|
||||
gui.appliedenergistics2.EUTunnel=EU
|
||||
gui.appliedenergistics2.RFTunnel=RF
|
||||
gui.appliedenergistics2.LightTunnel=Licht
|
||||
gui.appliedenergistics2.OCTunnel=OpenComputers
|
||||
gui.appliedenergistics2.PressureTunnel=Druck
|
||||
|
||||
gui.appliedenergistics2.security.extract.name=Extrahieren
|
||||
gui.appliedenergistics2.security.inject.name=Deponieren
|
||||
@@ -148,6 +177,9 @@ gui.appliedenergistics2.Crafts=Fertigt
|
||||
gui.appliedenergistics2.And=und
|
||||
gui.appliedenergistics2.Creates=Kreiert
|
||||
gui.appliedenergistics2.With=mit
|
||||
gui.appliedenergistics2.Substitute=Nutze Substitution:
|
||||
gui.appliedenergistics2.Yes=Ja
|
||||
gui.appliedenergistics2.No=Nein
|
||||
gui.appliedenergistics2.InWorldCrafting=AE2 In-Welt-Fertigung
|
||||
gui.appliedenergistics2.inWorldFluix=Wirf 1 Geladenes Certusquarzstück + 1 Netherquarz + Redstone-Staub nebeneinander in eine Pfütze und warte einen Moment.
|
||||
gui.appliedenergistics2.inWorldPurificationCertus=Wirf einen Certusquarzkeim, gemacht aus Certusquarzstaub und Sand, in eine Pfütze Wasser; um den Prozess zu beschleunigen, füge Kristallwachstumsbeschleuniger hinzu.
|
||||
@@ -195,11 +227,16 @@ gui.appliedenergistics2.Excluded=Ausschließlich
|
||||
gui.appliedenergistics2.Partitioned=Partitioniert
|
||||
gui.appliedenergistics2.Precise=Präzise
|
||||
gui.appliedenergistics2.Fuzzy=Ungenau
|
||||
gui.appliedenergistics2.SmallFontCraft=Craft
|
||||
gui.appliedenergistics2.LargeFontCraft=+
|
||||
gui.appliedenergistics2.Nothing=Nichts
|
||||
|
||||
// GUI Tooltips
|
||||
gui.tooltips.appliedenergistics2.Stash=Items lagern
|
||||
gui.tooltips.appliedenergistics2.StashDesc=Items aus dem Fertigungsgitter in Netzwerkspeicher zurücksenden.
|
||||
gui.tooltips.appliedenergistics2.Substitutions=Ore-Dict-Ersetzung
|
||||
gui.tooltips.appliedenergistics2.SubstitutionsDesc=Ersetzungsoptionen für Eingangskomponenten ändern
|
||||
gui.tooltips.appliedenergistics2.Substitutions=Ore-Dict-Substitution
|
||||
gui.tooltips.appliedenergistics2.SubstitutionsDescEnabled=Erlaube Substitution der Eingangskomponenten.
|
||||
gui.tooltips.appliedenergistics2.SubstitutionsDescDisabled=Verbiete Substitution der Eingangskomponenten.
|
||||
gui.tooltips.appliedenergistics2.SubstitutionsOn=Ersetzung aktiviert
|
||||
gui.tooltips.appliedenergistics2.SubstitutionsOff=Ersetzung deaktiviert
|
||||
gui.tooltips.appliedenergistics2.Encode=Schablone kodieren
|
||||
@@ -277,13 +314,24 @@ gui.tooltips.appliedenergistics2.EmitWhenCrafting=Stoße Redstone-Signal aus, w
|
||||
gui.tooltips.appliedenergistics2.ReportInaccessibleItems=Melde unerreichbare Items
|
||||
gui.tooltips.appliedenergistics2.ReportInaccessibleItemsYes=Ja: Items, die nicht extrahiert werden können, werden sichtbar.
|
||||
gui.tooltips.appliedenergistics2.ReportInaccessibleItemsNo=Nein: Nur extrahierbare Items werden sichtbar.
|
||||
gui.tooltips.appliedenergistics2.BlockPlacement=Blockplatzierung
|
||||
gui.tooltips.appliedenergistics2.BlockPlacementYes=Block wird als Block plaziert.
|
||||
gui.tooltips.appliedenergistics2.BlockPlacementNo=Block wird als Item plaziert.
|
||||
gui.tooltips.appliedenergistics2.SchedulingMode=Planungsmodus
|
||||
gui.tooltips.appliedenergistics2.SchedulingModeDefault=Exportiere das erste Item bis das Netzwerk leer ist, probiere dann das nächste Item.
|
||||
gui.tooltips.appliedenergistics2.SchedulingModeRoundRobin=Exportiere im Round-Robin-Modus.
|
||||
gui.tooltips.appliedenergistics2.SchedulingModeRandom=Exportiere im Zufallsmodus.
|
||||
gui.tooltips.appliedenergistics2.ItemsStored=Items gespeichert: %s
|
||||
gui.tooltips.appliedenergistics2.ItemsRequestable=Anfragbare Items: %s
|
||||
|
||||
// Units
|
||||
gui.appliedenergistics2.units.appliedenergstics=AE
|
||||
gui.appliedenergistics2.units.ic2=Energy Units
|
||||
gui.appliedenergistics2.units.mekanism=Joules
|
||||
gui.appliedenergistics2.units.rotarycraft=Watt
|
||||
gui.appliedenergistics2.units.thermalexpansion=Redstone Flux
|
||||
|
||||
// Colors
|
||||
gui.appliedenergistics2.White=Weiß
|
||||
gui.appliedenergistics2.Orange=Orange
|
||||
gui.appliedenergistics2.Magenta=Magenta
|
||||
@@ -302,6 +350,8 @@ gui.appliedenergistics2.Red=Rot
|
||||
gui.appliedenergistics2.Black=Schwarz
|
||||
gui.appliedenergistics2.Fluix=Fluix
|
||||
|
||||
// Waila
|
||||
waila.appliedenergistics2.Crafting=Fertigung
|
||||
waila.appliedenergistics2.DeviceOnline=Gerät Online
|
||||
waila.appliedenergistics2.DeviceOffline=Gerät Offline
|
||||
waila.appliedenergistics2.DeviceMissingChannel=Gerät ohne Kanal
|
||||
@@ -311,6 +361,7 @@ waila.appliedenergistics2.Showing=Zeigt
|
||||
waila.appliedenergistics2.Contains=Enthält
|
||||
waila.appliedenergistics2.Channels=%1$d von %2$d Kanälen
|
||||
|
||||
// Items
|
||||
item.appliedenergistics2.ItemBasicStorageCell.1k.name=1k-ME-Speicherzelle
|
||||
item.appliedenergistics2.ItemBasicStorageCell.4k.name=4k-ME-Speicherzelle
|
||||
item.appliedenergistics2.ItemBasicStorageCell.16k.name=16k-ME-Speicherzelle
|
||||
@@ -334,9 +385,9 @@ item.appliedenergistics2.ItemMaterial.CardFuzzy.name=Ungenauigkeitskarte
|
||||
item.appliedenergistics2.ItemMaterial.CardInverter.name=Umkehrungskarte
|
||||
item.appliedenergistics2.ItemMaterial.CardRedstone.name=Redstone-Karte
|
||||
item.appliedenergistics2.ItemMaterial.CardSpeed.name=Beschleunigungskarte
|
||||
item.appliedenergistics2.ItemMaterial.Cell2SpatialPart.name=2³ Spatial Component
|
||||
item.appliedenergistics2.ItemMaterial.Cell16SpatialPart.name=16³ Spatial Component
|
||||
item.appliedenergistics2.ItemMaterial.Cell128SpatialPart.name=128³ Spatial Component
|
||||
item.appliedenergistics2.ItemMaterial.Cell2SpatialPart.name=2³ Raumkomponente
|
||||
item.appliedenergistics2.ItemMaterial.Cell16SpatialPart.name=16³ Raumkomponente
|
||||
item.appliedenergistics2.ItemMaterial.Cell128SpatialPart.name=128³ Raumkomponente
|
||||
item.appliedenergistics2.ItemMaterial.Cell1kPart.name=1k-ME-Speicherkomponente
|
||||
item.appliedenergistics2.ItemMaterial.Cell4kPart.name=4k-ME-Speicherkomponente
|
||||
item.appliedenergistics2.ItemMaterial.Cell16kPart.name=16k-ME-Speicherkomponente
|
||||
@@ -381,6 +432,7 @@ item.appliedenergistics2.ItemMaterial.SkyDust.name=Himmelssteinstaub
|
||||
item.appliedenergistics2.ItemMaterial.CardCrafting.name=Fertigungskarte
|
||||
|
||||
item.appliedenergistics2.ItemPart.AnnihilationPlane.name=ME-Annihilationsfeld
|
||||
item.appliedenergistics2.ItemPart.IdentityAnnihilationPlane.name=ME-Identitätsannihilationsfelds
|
||||
item.appliedenergistics2.ItemPart.CableAnchor.name=Kabelanker
|
||||
item.appliedenergistics2.ItemPart.CableCovered.name=Verdecktes ME-Kabel
|
||||
item.appliedenergistics2.ItemPart.CableGlass.name=ME-Glaskabel
|
||||
@@ -406,6 +458,7 @@ item.appliedenergistics2.ItemPart.InvertedToggleBus.name=Invertierter schaltbare
|
||||
item.appliedenergistics2.ItemPart.ToggleBus.name=Schaltbarer ME-Bus
|
||||
item.appliedenergistics2.ItemPart.CraftingMonitor.name=ME-Fertigungsmonitor
|
||||
item.appliedenergistics2.ItemPart.InterfaceTerminal.name=ME-Schnittstellenkonsole
|
||||
item.appliedenergistics2.ItemPart.InvalidType.name=Deaktiviertes Item
|
||||
|
||||
item.appliedenergistics2.ItemSpatialStorageCell.128Cubed.name=128³-Raumspeicherzelle
|
||||
item.appliedenergistics2.ItemSpatialStorageCell.16Cubed.name=16³-Raumspeicherzelle
|
||||
@@ -441,9 +494,67 @@ item.appliedenergistics2.ToolBiometricCard.name=Biometriekarte
|
||||
item.appliedenergistics2.ToolDebugCard.name=Dev.Debug-Karte
|
||||
item.appliedenergistics2.ToolReplicatorCard.name=Dev.Replikator-Karte
|
||||
|
||||
// Commands
|
||||
commands.ae2.usage=Befehle verfügbar in Applied Energistics 2 - Verwende '/ae2 list' für eine Liste und '/ae2 help _____' für Hilfe zu einem Befehl.
|
||||
commands.ae2.permissions=Du hast nicht die erforderlichen Berechtigungen, um diesen Befehl auszuführen.
|
||||
commands.ae2.ChunkLogger=Schalted das Berichten von Chunk-Loading und Chunk-Unloading im Server-log um. ( OP )
|
||||
commands.ae2.ChunkLoggerOn=Chunk Logging ist nun aktiviert
|
||||
commands.ae2.ChunkLoggerOff=Chunk Logging is nun deaktiviert
|
||||
commands.ae2.ChunkLoggerOn=Chunk Logging ist aktiviert
|
||||
commands.ae2.ChunkLoggerOff=Chunk Logging ist deaktiviert
|
||||
commands.ae2.Supporters=Zeigt eine Liste aller AE2-Unterstützer
|
||||
|
||||
// Achievements
|
||||
achievement.ae2.Compass=Meteoritenjäger
|
||||
achievement.ae2.Compass.desc=Fertige einen Meteoritenkompass
|
||||
achievement.ae2.Presses=Unbekannte Technologie
|
||||
achievement.ae2.Presses.desc=Finde eine Prozessorenpresse
|
||||
achievement.ae2.SpatialIO=Raumkoordinaten
|
||||
achievement.ae2.SpatialIO.desc=Fertige einen IO-Raumport
|
||||
achievement.ae2.SpatialIOExplorer=To boldly go
|
||||
achievement.ae2.SpatialIOExplorer.desc=Werde in einer Raumspeicherzelle gespeichert
|
||||
achievement.ae2.StorageCell=Besser als Truhen
|
||||
achievement.ae2.StorageCell.desc=Fertige eine Speicherzelle
|
||||
achievement.ae2.IOPort=Fertigungszellenshuffle
|
||||
achievement.ae2.IOPort.desc=Fertige einen ME-IO-Port
|
||||
achievement.ae2.CraftingTerminal=Eine (viel) größere Bank
|
||||
achievement.ae2.CraftingTerminal.desc=Fertige eine Fertigungskonsole
|
||||
achievement.ae2.PatternTerminal=Crafting Maestro
|
||||
achievement.ae2.PatternTerminal.desc=Fertige eine Schablonenkonsole
|
||||
achievement.ae2.ChargedQuartz=Schockierend
|
||||
achievement.ae2.ChargedQuartz.desc=Finde geladenen Certusquartz
|
||||
achievement.ae2.Fluix=Unnatürlich
|
||||
achievement.ae2.Fluix.desc=Stelle Fluixkristalle her
|
||||
achievement.ae2.Charger=Fluixproduktion
|
||||
achievement.ae2.Charger.desc=Fertige ein Ladegerät
|
||||
achievement.ae2.CrystalGrowthAccelerator=Beschleuniger ist eine Untertreibung
|
||||
achievement.ae2.CrystalGrowthAccelerator.desc=Fertige einen Kristallwachstumsbeschleuniger
|
||||
achievement.ae2.GlassCable=Fluix-Energie-Verbingung
|
||||
achievement.ae2.GlassCable.desc=Fertige ME-Glaskabel
|
||||
achievement.ae2.Networking1=Netzwerklehrling
|
||||
achievement.ae2.Networking1.desc=Erreiche 8 Kanäle mit Geräten in einem Netzwerk
|
||||
achievement.ae2.Controller=Netzwerkzentrale
|
||||
achievement.ae2.Controller.desc=Fertige einen ME-Controller
|
||||
achievement.ae2.Networking2=Netzwerkingeneur
|
||||
achievement.ae2.Networking2.desc=Erreiche 128 Kanäle mit Geräten in einem Netzwerk
|
||||
achievement.ae2.Networking3=Netzwerkadministrator
|
||||
achievement.ae2.Networking3.desc=Erreiche 2048 Kanäle mit Geräten in einem Netzwerk
|
||||
achievement.ae2.P2P=Punkt-zu-Punkt-Verbindung
|
||||
achievement.ae2.P2P.desc=Fertige einen P2P-Tunnel
|
||||
achievement.ae2.Recursive=Rekursives Netzwerken
|
||||
achievement.ae2.Recursive.desc=Platziere eine ME-Schnittstelle auf einen Speicherbus
|
||||
achievement.ae2.CraftingCPU=NextGen-Fertigung
|
||||
achievement.ae2.CraftingCPU.desc=Fertige eine Fertigungs-CPU
|
||||
achievement.ae2.Facade=Netzwerkästhetik
|
||||
achievement.ae2.Facade.desc=Fertige eine Kabelfassade
|
||||
achievement.ae2.NetworkTool=Netzwerkdiagnose
|
||||
achievement.ae2.NetworkTool.desc=Fertige eine Netzwerksonde
|
||||
achievement.ae2.PortableCell=Speichernomade
|
||||
achievement.ae2.PortableCell.desc=Fertige eine Tragbare Zelle
|
||||
achievement.ae2.StorageBus=Uneingeschränktes Potential
|
||||
achievement.ae2.StorageBus.desc=Fertige einen Speicherbus
|
||||
achievement.ae2.QNB=Quantum Tunneling
|
||||
achievement.ae2.QNB.desc=Fertige einen Quantenlink
|
||||
|
||||
// Stats
|
||||
stat.ae2.ItemsInserted=Items zu ME Speicher hinzugefügt
|
||||
stat.ae2.ItemsExtracted=Items aus ME Speicher entfernt
|
||||
stat.ae2.TurnedCranks=Runden gekurbelt
|
||||
|
||||
@@ -80,7 +80,7 @@ chat.appliedenergistics2.InvalidMachine=Érvénytelen gép.
|
||||
chat.appliedenergistics2.LoadedSettings=Beállítások sikeresen beolvasva.
|
||||
chat.appliedenergistics2.DeviceNotPowered=A készülékenergia szintje alacsony.
|
||||
chat.appliedenergistics2.DeviceNotWirelessTerminal=A készülék nem egy Vezetéknélküli Terminál.
|
||||
chat.appliedenergistics2.DeviceNotLinked=Az eszköz nem összekötve.
|
||||
chat.appliedenergistics2.DeviceNotLinked=Az eszköz nincs összekötve.
|
||||
chat.appliedenergistics2.SavedSettings=Beállítások sikeresen elmentve.
|
||||
chat.appliedenergistics2.MachineNotPowered=A gép nem kap energiát.
|
||||
chat.appliedenergistics2.CommunicationError=Hiba a hálózattal való kommunikáció közben.
|
||||
@@ -139,7 +139,7 @@ gui.appliedenergistics2.PortableCell=Szállítható Cella
|
||||
gui.appliedenergistics2.Security=Biztonsági Szabályzat
|
||||
gui.appliedenergistics2.CellWorkbench=Cella Munkaasztal
|
||||
gui.appliedenergistics2.QuantumLinkChamber=Kvantum összekötő kamra
|
||||
gui.appliedenergistics2.IOPort=ME Be/Ki Port
|
||||
gui.appliedenergistics2.IOPort=ME IO Port
|
||||
gui.appliedenergistics2.Chest=ME Láda
|
||||
gui.appliedenergistics2.Condenser=Anyag Sűrítő
|
||||
gui.appliedenergistics2.Config=Konfiguráció
|
||||
@@ -149,7 +149,7 @@ gui.appliedenergistics2.GrindStone=Daráló
|
||||
gui.appliedenergistics2.ImportBus=ME Import Busz
|
||||
gui.appliedenergistics2.Interface=ME Interfész
|
||||
gui.appliedenergistics2.LevelEmitter=ME Szint Kibocsátó
|
||||
gui.appliedenergistics2.Of=-ból
|
||||
gui.appliedenergistics2.Of=-ból/-ből
|
||||
gui.appliedenergistics2.Patterns=Minták
|
||||
gui.appliedenergistics2.SpatialIOPort=Tér-IO Port
|
||||
gui.appliedenergistics2.StoredEnergy=Tárolt Energia
|
||||
@@ -176,8 +176,8 @@ gui.appliedenergistics2.MolecularAssembler=Molekuláris Összeállító
|
||||
gui.appliedenergistics2.ProcessingPattern=Feldolgozó Minta
|
||||
gui.appliedenergistics2.Crafts=Barkácsol
|
||||
gui.appliedenergistics2.And=és
|
||||
gui.appliedenergistics2.Creates=Készít
|
||||
gui.appliedenergistics2.With=-val/-vel
|
||||
gui.appliedenergistics2.Creates=Amít készít
|
||||
gui.appliedenergistics2.With=Az alábbiakkal
|
||||
gui.appliedenergistics2.Substitute=Pótlékokat használ:
|
||||
gui.appliedenergistics2.Yes=Igen
|
||||
gui.appliedenergistics2.No=Nem
|
||||
@@ -201,7 +201,7 @@ gui.appliedenergistics2.Empty=Üres
|
||||
gui.appliedenergistics2.Stored=Tárolva
|
||||
gui.appliedenergistics2.Cancel=Mégse
|
||||
gui.appliedenergistics2.ETAFormat=HH:mm:ss
|
||||
gui.appliedenergistics2.Crafting=Barkácsolás
|
||||
gui.appliedenergistics2.Crafting=Barkácsolás alatt
|
||||
gui.appliedenergistics2.Scheduled=Ütemezett
|
||||
gui.appliedenergistics2.CraftingStatus=Barkácsolási Státusz
|
||||
gui.appliedenergistics2.FromStorage=Rendelkezésre áll
|
||||
@@ -229,7 +229,7 @@ gui.appliedenergistics2.Included=Tartalmazott
|
||||
gui.appliedenergistics2.Excluded=Kihagyott
|
||||
gui.appliedenergistics2.Partitioned=Particionált
|
||||
gui.appliedenergistics2.Precise=Precíz
|
||||
gui.appliedenergistics2.Fuzzy=Homályos
|
||||
gui.appliedenergistics2.Fuzzy=Megkülönböztető
|
||||
gui.appliedenergistics2.SmallFontCraft=Barkács
|
||||
gui.appliedenergistics2.LargeFontCraft=+
|
||||
gui.appliedenergistics2.Nothing=Semmi
|
||||
@@ -244,25 +244,25 @@ gui.tooltips.appliedenergistics2.SubstitutionsOn=Pótlékok engedélyezve.
|
||||
gui.tooltips.appliedenergistics2.SubstitutionsOff=Pótlékok tiltva.
|
||||
gui.tooltips.appliedenergistics2.Encode=Minta kódolása
|
||||
gui.tooltips.appliedenergistics2.EncodeDescription=A betáplált minta jelenlegi Kódolt Mintára, vagy elérhető Üres Mintára írása.
|
||||
gui.tooltips.appliedenergistics2.FuzzyMode=Homályos összehasonlítás
|
||||
gui.tooltips.appliedenergistics2.FuzzyMode=Megkülönböztető összehasonlítás
|
||||
gui.tooltips.appliedenergistics2.FZPercent_25=25% sérülésnél való elválasztás
|
||||
gui.tooltips.appliedenergistics2.FZPercent_50=50% sérülésnél való elválasztás
|
||||
gui.tooltips.appliedenergistics2.FZPercent_75=75% sérülésnél való elválasztás
|
||||
gui.tooltips.appliedenergistics2.FZPercent_99=99% sérülésnél való elválasztás
|
||||
gui.tooltips.appliedenergistics2.SortOrder=Rendezési sorrend
|
||||
gui.tooltips.appliedenergistics2.SortBy=Rendezés ... szerint
|
||||
gui.tooltips.appliedenergistics2.SortOrder=Rendezési irány
|
||||
gui.tooltips.appliedenergistics2.SortBy=Rendezés
|
||||
gui.tooltips.appliedenergistics2.FZIgnoreAll=Akármelyikkel egyező
|
||||
gui.tooltips.appliedenergistics2.TransferDirection=Átviteli irány
|
||||
gui.tooltips.appliedenergistics2.TransferToNetwork=Az adat hálózat felé való átvitele
|
||||
gui.tooltips.appliedenergistics2.TransferToStorageCell=Az adat Taroló Cella felé való átvitele
|
||||
gui.tooltips.appliedenergistics2.ToggleSortDirection=Rendezési irány kapcsolása
|
||||
gui.tooltips.appliedenergistics2.ToggleSortDirection=Rendezés fel/le váltogatása
|
||||
gui.tooltips.appliedenergistics2.StoredItems=Tárolt tárgyak
|
||||
gui.tooltips.appliedenergistics2.StoredCraftable=Tárolt / Barkácsolható
|
||||
gui.tooltips.appliedenergistics2.View=Megtekintés
|
||||
gui.tooltips.appliedenergistics2.StoredCraftable=Tárolt / Barkácsolható tárgyak
|
||||
gui.tooltips.appliedenergistics2.View=Nézett:
|
||||
gui.tooltips.appliedenergistics2.RedstoneMode=Vöröskő Mód
|
||||
gui.tooltips.appliedenergistics2.OperationMode=Művelet Mód
|
||||
gui.tooltips.appliedenergistics2.NumberOfItems=Tárgyak száma
|
||||
gui.tooltips.appliedenergistics2.ItemName=Tárgy neve
|
||||
gui.tooltips.appliedenergistics2.NumberOfItems=Tárgyak száma szerint
|
||||
gui.tooltips.appliedenergistics2.ItemName=Tárgy neve szerint
|
||||
gui.tooltips.appliedenergistics2.PowerUnits=Energia egységek
|
||||
gui.tooltips.appliedenergistics2.IOMode=Bemenet/Kimenet Mód
|
||||
gui.tooltips.appliedenergistics2.CondenserOutput=ME Sűrítő - Kimenet
|
||||
@@ -277,7 +277,7 @@ gui.tooltips.appliedenergistics2.Singularity=Szingularitássá sűrítés \n%s d
|
||||
gui.tooltips.appliedenergistics2.Read=Csak eltávolítás
|
||||
gui.tooltips.appliedenergistics2.Write=Csak behelyezés
|
||||
gui.tooltips.appliedenergistics2.ReadWrite=Két irányú
|
||||
gui.tooltips.appliedenergistics2.AlwaysActive=MIndig aktív
|
||||
gui.tooltips.appliedenergistics2.AlwaysActive=Mindig aktív
|
||||
gui.tooltips.appliedenergistics2.ActiveWithoutSignal=Jel nélkül aktív
|
||||
gui.tooltips.appliedenergistics2.ActiveWithSignal=Jellel aktív
|
||||
gui.tooltips.appliedenergistics2.ActiveOnPulse=Pulzusonként aktív
|
||||
@@ -291,9 +291,9 @@ gui.tooltips.appliedenergistics2.SearchMode=Keresési rublika mód
|
||||
gui.tooltips.appliedenergistics2.PartitionStorageHint=A jelenleg tárolt tárgyak szerint konfigurálja a particiót.
|
||||
gui.tooltips.appliedenergistics2.ClearSettings=Beállítások konfigurálása/törlése
|
||||
gui.tooltips.appliedenergistics2.Craftable=Barkácsolható
|
||||
gui.tooltips.appliedenergistics2.MoveWhenEmpty=Mozgassa a kimenetfelé mikor üres.
|
||||
gui.tooltips.appliedenergistics2.MoveWhenWorkIsDone=Mozgassa a kimenetfelé mikor a feladat kész van.
|
||||
gui.tooltips.appliedenergistics2.MoveWhenFull=Mozgassa a kimenetfelé mikor teli van.
|
||||
gui.tooltips.appliedenergistics2.MoveWhenEmpty=Helyezze a kimenetfelé mikor üres.
|
||||
gui.tooltips.appliedenergistics2.MoveWhenWorkIsDone=Helyezze a kimenetfelé mikor a feladat kész van.
|
||||
gui.tooltips.appliedenergistics2.MoveWhenFull=Helyezze a kimenetfelé mikor megtelt.
|
||||
gui.tooltips.appliedenergistics2.Disabled=Tiltott
|
||||
gui.tooltips.appliedenergistics2.Enable=Engedélyezett
|
||||
gui.tooltips.appliedenergistics2.Blocking=Ne helyezzen barkácsoló tárgyakat a tárolóba ha az tartalmaz tárgyakat.
|
||||
@@ -304,8 +304,8 @@ gui.tooltips.appliedenergistics2.CraftEither=Használjon tárolt tárgyakat, vag
|
||||
gui.tooltips.appliedenergistics2.LevelType=Szint Típus
|
||||
gui.tooltips.appliedenergistics2.LevelType_Energy=Energia
|
||||
gui.tooltips.appliedenergistics2.LevelType_Item=Tárgy
|
||||
gui.tooltips.appliedenergistics2.InventoryTweaks=Inventory Tweaks
|
||||
gui.tooltips.appliedenergistics2.Mod=Mod
|
||||
gui.tooltips.appliedenergistics2.InventoryTweaks=Inventory Tweaks szerint
|
||||
gui.tooltips.appliedenergistics2.Mod=Mod szerint
|
||||
gui.tooltips.appliedenergistics2.TerminalStyle=Terminál Stílus
|
||||
gui.tooltips.appliedenergistics2.TerminalStyle_Full=Teljes képernyős Terminál
|
||||
gui.tooltips.appliedenergistics2.TerminalStyle_Tall=Magas Középreigazított Terminál
|
||||
@@ -360,8 +360,8 @@ waila.appliedenergistics2.DeviceOffline=Eszköz Offline
|
||||
waila.appliedenergistics2.DeviceMissingChannel=Hiányzó Csatorna
|
||||
waila.appliedenergistics2.Locked=Zárolva
|
||||
waila.appliedenergistics2.Unlocked=Feloldva
|
||||
waila.appliedenergistics2.Showing=Mutatni
|
||||
waila.appliedenergistics2.Contains=Tartalmaz
|
||||
waila.appliedenergistics2.Showing=Mutatott tárgy
|
||||
waila.appliedenergistics2.Contains=Energiaszint
|
||||
waila.appliedenergistics2.Channels=%2$d Csatornából %1$d használatban
|
||||
|
||||
// Items
|
||||
@@ -369,7 +369,7 @@ item.appliedenergistics2.ItemBasicStorageCell.1k.name=1k ME Tároló Cella
|
||||
item.appliedenergistics2.ItemBasicStorageCell.4k.name=4k ME Tároló Cella
|
||||
item.appliedenergistics2.ItemBasicStorageCell.16k.name=16k ME Tároló Cella
|
||||
item.appliedenergistics2.ItemBasicStorageCell.64k.name=64k Tároló Cella
|
||||
item.appliedenergistics2.ItemCreativeStorageCell.name=Kreatív ME Tároló Cella
|
||||
item.appliedenergistics2.ItemCreativeStorageCell.name=Kreatív ME Tároló Cella
|
||||
item.appliedenergistics2.ItemEncodedPattern.name=Kódolt Minta
|
||||
item.appliedenergistics2.ItemViewCell.name=Nézet Cella
|
||||
item.appliedenergistics2.ItemFacade.name=Kábel Látszat
|
||||
@@ -384,7 +384,7 @@ item.appliedenergistics2.ItemMaterial.BasicCard.name=Egyszerű Kártya
|
||||
item.appliedenergistics2.ItemMaterial.BlankPattern.name=Üres Minta
|
||||
item.appliedenergistics2.ItemMaterial.CalcProcessor.name=Kalkulációs Processzor
|
||||
item.appliedenergistics2.ItemMaterial.CardCapacity.name=Kapacitás Kártya
|
||||
item.appliedenergistics2.ItemMaterial.CardFuzzy.name=Fuzzy Kártya
|
||||
item.appliedenergistics2.ItemMaterial.CardFuzzy.name=Megkülönböztető Kártya
|
||||
item.appliedenergistics2.ItemMaterial.CardInverter.name=Inverter Kártya
|
||||
item.appliedenergistics2.ItemMaterial.CardRedstone.name=Vöröskő Kártya
|
||||
item.appliedenergistics2.ItemMaterial.CardSpeed.name=Gyorsító Kártya
|
||||
@@ -422,9 +422,9 @@ item.appliedenergistics2.ItemMaterial.Singularity.name=Szingularitás
|
||||
item.appliedenergistics2.ItemMaterial.Wireless.name=Vezetéknélküli Fogadó
|
||||
item.appliedenergistics2.ItemMaterial.WirelessBooster.name=Vezetéknélküli Erősítő
|
||||
item.appliedenergistics2.ItemMaterial.WoodenGear.name=Fa fogaskerék
|
||||
item.appliedenergistics2.ItemMaterial.EngProcessorPress.name=Vésett Műszaki Nyomat
|
||||
item.appliedenergistics2.ItemMaterial.CalcProcessorPress.name=Vésett Kalkulációs Nyomat
|
||||
item.appliedenergistics2.ItemMaterial.LogicProcessorPress.name=Vésett Logikai Nyomat
|
||||
item.appliedenergistics2.ItemMaterial.EngProcessorPress.name=Műszaki Processzor Nyomat
|
||||
item.appliedenergistics2.ItemMaterial.CalcProcessorPress.name=Kalkulációs Processzor Nyomat
|
||||
item.appliedenergistics2.ItemMaterial.LogicProcessorPress.name=Logikai Processzor Nyomat
|
||||
item.appliedenergistics2.ItemMaterial.EngProcessorPrint.name=Nyomtatott Műszaki Áramkör
|
||||
item.appliedenergistics2.ItemMaterial.CalcProcessorPrint.name=Nyomtatott Kalkulációs Áramkör
|
||||
item.appliedenergistics2.ItemMaterial.LogicProcessorPrint.name=Nyomtatott Logikai Áramkör
|
||||
|
||||
Reference in New Issue
Block a user