Compare commits

...

8 Commits

Author SHA1 Message Date
yueh 17bdd085b1 Merge pull request #2010 from yueh/feature-logger-refactoring
Refactored the logging
2015-12-27 12:53:01 +01:00
yueh 684cda58c2 Merge pull request #2074 from yueh/backport-1.8-cleanup
Backport some 1.8 cleanups
2015-12-27 12:50:11 +01:00
yueh 740324913e Merge pull request #2073 from yueh/fix-1905-followup
Interfaces now slow down with failed crafting attempts.
2015-12-27 12:50:01 +01:00
yueh dae5e888e9 Merge pull request #2059 from wlhlm/update-german-translation
Update and extend German translation
2015-12-27 12:49:49 +01:00
yueh a3abc7a1f0 Backport some 1.8 cleanups 2015-12-27 12:33:50 +01:00
yueh dd1ae4a9b5 Interfaces now slow down with failed crafting attempts.
Cleanup of unneeded tracking of failed attempts of MultiCraftingTracker.
Followup of #1905
2015-12-27 00:00:12 +01:00
yueh c9ef1beea1 Refactored the logging
Using LogManager instead of FMLRelaunchLog to access the logger instance.
Added logging of the name of failed exports instead of exception.
Improved crafting log to include issuer including their location and the
requested item.
Removed superfluous FMLRelaunchLog instance.
Removed superfluous parameters for PlayerData constructor.

Closes #2009
Refs #2069
2015-12-26 23:14:29 +01:00
Wilhelm Schuster 276480519e Update and extend German translation
Add translated achievements.
2015-12-20 14:23:42 +01:00
81 changed files with 715 additions and 317 deletions
@@ -413,7 +413,7 @@ public class ClientHelper extends ServerHelper
} }
catch( final IOException e ) catch( final IOException e )
{ {
AELog.error( e ); AELog.debug( e );
} }
} }
} }
@@ -410,7 +410,7 @@ public abstract class AEBaseGui extends GuiContainer
} }
catch( final IOException e ) catch( final IOException e )
{ {
AELog.error( e ); AELog.debug( e );
} }
} }
else if( slot instanceof SlotCraftingTerm ) else if( slot instanceof SlotCraftingTerm )
@@ -779,7 +779,7 @@ public abstract class AEBaseGui extends GuiContainer
} }
catch( final Exception err ) 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 ); this.setItemRender( pIR );
return; return;
@@ -846,7 +846,7 @@ public abstract class AEBaseGui extends GuiContainer
} }
catch( final Exception err ) catch( final Exception err )
{ {
AELog.error( err ); AELog.debug( err );
} }
} }
( (AppEngSlot) s ).setIsValid( isValid ? hasCalculatedValidness.Valid : hasCalculatedValidness.Invalid ); ( (AppEngSlot) s ).setIsValid( isValid ? hasCalculatedValidness.Valid : hasCalculatedValidness.Invalid );
@@ -880,7 +880,7 @@ public abstract class AEBaseGui extends GuiContainer
} }
catch( final Exception err ) 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. // do the usual for non-ME Slots.
@@ -556,7 +556,7 @@ public class GuiCraftConfirm extends AEBaseGui
} }
catch( final IOException e ) catch( final IOException e )
{ {
AELog.error( e ); AELog.debug( e );
} }
} }
@@ -573,7 +573,7 @@ public class GuiCraftConfirm extends AEBaseGui
} }
catch( final Throwable e ) 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 ) catch( final IOException e )
{ {
AELog.error( e ); AELog.debug( e );
} }
} }
} }
@@ -121,7 +121,7 @@ public class GuiCraftingStatus extends GuiCraftingCPU
} }
catch( final IOException e ) catch( final IOException e )
{ {
AELog.error( e ); AELog.debug( e );
} }
} }
@@ -233,7 +233,7 @@ public class GuiLevelEmitter extends GuiUpgradeable
} }
catch( final IOException e ) catch( final IOException e )
{ {
AELog.error( e ); AELog.debug( e );
} }
} }
@@ -269,7 +269,7 @@ public class GuiLevelEmitter extends GuiUpgradeable
} }
catch( final IOException e ) catch( final IOException e )
{ {
AELog.error( e ); AELog.debug( e );
} }
} }
else else
@@ -199,7 +199,7 @@ public class GuiMEMonitorable extends AEBaseMEGui implements ISortSource, IConfi
} }
catch( final IOException e ) catch( final IOException e )
{ {
AELog.error( e ); AELog.debug( e );
} }
} }
@@ -59,7 +59,7 @@ public class GuiNetworkTool extends AEBaseGui
} }
catch( final IOException e ) catch( final IOException e )
{ {
AELog.error( e ); AELog.debug( e );
} }
} }
@@ -240,7 +240,7 @@ public class GuiPriority extends AEBaseGui
} }
catch( final IOException e ) catch( final IOException e )
{ {
AELog.error( e ); AELog.debug( e );
} }
} }
@@ -276,7 +276,7 @@ public class GuiPriority extends AEBaseGui
} }
catch( final IOException e ) catch( final IOException e )
{ {
AELog.error( e ); AELog.debug( e );
} }
} }
else else
@@ -85,7 +85,7 @@ public class GuiQuartzKnife extends AEBaseGui
} }
catch( final IOException e ) catch( final IOException e )
{ {
AELog.error( e ); AELog.debug( e );
} }
} }
else else
@@ -90,7 +90,7 @@ public class GuiSecurity extends GuiMEMonitorable
} }
catch( final IOException e ) catch( final IOException e )
{ {
AELog.error( e ); AELog.debug( e );
} }
} }
} }
@@ -137,7 +137,7 @@ public class GuiStorageBus extends GuiUpgradeable
} }
catch( final IOException e ) catch( final IOException e )
{ {
AELog.error( e ); AELog.debug( e );
} }
} }
} }
@@ -209,7 +209,7 @@ public class RenderBlocksWorkaround extends RenderBlocks
} }
catch( final Throwable t ) catch( final Throwable t )
{ {
AELog.error( t ); AELog.debug( t );
// meh // meh
} }
return false; return false;
@@ -77,9 +77,9 @@ public class TESRWrapper extends TileEntitySpecialRenderer
} }
catch( final Throwable t ) 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(); t.printStackTrace();
AELog.severe( "MC will now crash ( probably )!" ); AELog.error( "MC will now crash ( probably )!" );
throw new IllegalStateException( t ); throw new IllegalStateException( t );
} }
} }
@@ -104,9 +104,9 @@ public final class WorldRender implements ISimpleBlockRenderingHandler
if( !this.hasError ) if( !this.hasError )
{ {
this.hasError = true; this.hasError = true;
AELog.severe( "Invalid render - item/block mismatch" ); AELog.error( "Invalid render - item/block mismatch" );
AELog.severe( " item: " + item.getUnlocalizedName() ); AELog.error( " item: " + item.getUnlocalizedName() );
AELog.severe( " block: " + blk.getUnlocalizedName() ); AELog.error( " block: " + blk.getUnlocalizedName() );
} }
} }
} }
@@ -169,7 +169,7 @@ public class RenderBlockCharger extends BaseBlockRender<BlockCharger, TileCharge
} }
catch( final Exception err ) catch( final Exception err )
{ {
AELog.error( err ); AELog.debug( err );
} }
finally finally
{ {
@@ -165,7 +165,7 @@ public class RenderBlockCraftingCPUMonitor extends RenderBlockCraftingCPU<BlockC
} }
catch( final Exception e ) catch( final Exception e )
{ {
AELog.error( e ); AELog.debug( e );
} }
finally finally
{ {
@@ -318,7 +318,7 @@ public class RenderBlockInscriber extends BaseBlockRender<BlockInscriber, TileIn
} }
catch( final Exception err ) catch( final Exception err )
{ {
AELog.error( err ); AELog.debug( err );
} }
GL11.glPopMatrix(); GL11.glPopMatrix();
@@ -146,7 +146,7 @@ public abstract class AEBaseContainer extends Container
final GuiSync annotation = f.getAnnotation( GuiSync.class ); final GuiSync annotation = f.getAnnotation( GuiSync.class );
if( this.syncData.containsKey( annotation.value() ) ) 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 else
{ {
@@ -208,7 +208,7 @@ public abstract class AEBaseContainer extends Container
} }
catch( final IOException e ) catch( final IOException e )
{ {
AELog.error( e ); AELog.debug( e );
} }
this.dataChunks.clear(); this.dataChunks.clear();
@@ -270,7 +270,7 @@ public abstract class AEBaseContainer extends Container
} }
catch( final IOException e ) catch( final IOException e )
{ {
AELog.error( e ); AELog.debug( e );
return; return;
} }
} }
@@ -1109,7 +1109,7 @@ public abstract class AEBaseContainer extends Container
} }
catch( final IOException e ) catch( final IOException e )
{ {
AELog.error( e ); AELog.debug( e );
} }
} }
} }
@@ -1178,7 +1178,7 @@ public abstract class AEBaseContainer extends Container
} }
catch( final IOException e ) catch( final IOException e )
{ {
AELog.error( e ); AELog.debug( e );
} }
} }
} }
@@ -70,15 +70,15 @@ public class SyncData
} }
catch( final IllegalArgumentException e ) catch( final IllegalArgumentException e )
{ {
AELog.error( e ); AELog.debug( e );
} }
catch( final IllegalAccessException e ) catch( final IllegalAccessException e )
{ {
AELog.error( e ); AELog.debug( e );
} }
catch( final IOException e ) catch( final IOException e )
{ {
AELog.error( e ); AELog.debug( e );
} }
} }
@@ -127,11 +127,11 @@ public class SyncData
} }
catch( final IllegalArgumentException e ) catch( final IllegalArgumentException e )
{ {
AELog.error( e ); AELog.debug( e );
} }
catch( final IllegalAccessException e ) catch( final IllegalAccessException e )
{ {
AELog.error( e ); AELog.debug( e );
} }
} }
@@ -143,11 +143,11 @@ public class SyncData
} }
catch( final IllegalArgumentException e ) catch( final IllegalArgumentException e )
{ {
AELog.error( e ); AELog.debug( e );
} }
catch( final IllegalAccessException e ) catch( final IllegalAccessException e )
{ {
AELog.error( e ); AELog.debug( e );
} }
} }
@@ -199,11 +199,11 @@ public class SyncData
} }
catch( final IllegalArgumentException e ) catch( final IllegalArgumentException e )
{ {
AELog.error( e ); AELog.debug( e );
} }
catch( final IllegalAccessException e ) catch( final IllegalAccessException e )
{ {
AELog.error( e ); AELog.debug( e );
} }
} }
} }
@@ -280,7 +280,7 @@ public class ContainerCraftConfirm extends AEBaseContainer
catch( final Throwable e ) catch( final Throwable e )
{ {
this.getPlayerInv().player.addChatMessage( new ChatComponentText( "Error: " + e.toString() ) ); this.getPlayerInv().player.addChatMessage( new ChatComponentText( "Error: " + e.toString() ) );
AELog.error( e ); AELog.debug( e );
this.setValidContainer( false ); this.setValidContainer( false );
this.result = null; this.result = null;
} }
@@ -121,7 +121,7 @@ public class ContainerCraftingCPU extends AEBaseContainer implements IMEMonitorH
} }
catch( final IOException e ) 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 ) 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 ) 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 ) catch( final IOException e )
{ {
AELog.error( e ); AELog.debug( e );
} }
} }
} }
+319 -38
View File
@@ -19,93 +19,374 @@
package appeng.core; 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.core.features.AEFeature;
import appeng.tile.AEBaseTile; import appeng.tile.AEBaseTile;
import appeng.util.Platform; import appeng.util.Platform;
/**
* Utility class for easier logging.
*/
public final class AELog 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() 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 ) ) log( Level.INFO, format, params );
{
error( exception );
}
} }
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 ) ) log( Level.INFO, exception, DEFAULT_EXCEPTION_MESSAGE );
{
severe( "Error: " + e.getClass().getName() + " : " + e.getMessage() );
e.printStackTrace();
}
} }
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 ) ) log( Level.WARN, format, params );
{
info( aeBaseTile.getClass().getName() + " @ " + xCoord + ", " + yCoord + ", " + zCoord );
}
} }
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.WARN, exception, message );
{
log( Level.INFO, format, data );
}
} }
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( 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 );
}
}
} }
+2 -2
View File
@@ -95,8 +95,8 @@ public class IMCHandler
} }
catch( final Exception t ) catch( final Exception t )
{ {
AELog.warning( "Problem detected when processing IMC " + key + " from " + message.getSender() ); AELog.warn( "Problem detected when processing IMC " + key + " from " + message.getSender() );
AELog.error( t ); AELog.debug( t );
} }
} }
} }
+2 -2
View File
@@ -100,12 +100,12 @@ public class RecipeLoader implements Runnable
// on failure use jar parsing // on failure use jar parsing
catch( final IOException e ) catch( final IOException e )
{ {
AELog.error( e ); AELog.debug( e );
this.handler.parseRecipes( new JarLoader( ASSETS_RECIPE_PATH ), "index.recipe" ); this.handler.parseRecipes( new JarLoader( ASSETS_RECIPE_PATH ), "index.recipe" );
} }
catch( final URISyntaxException e ) catch( final URISyntaxException e )
{ {
AELog.error( e ); AELog.debug( e );
this.handler.parseRecipes( new JarLoader( ASSETS_RECIPE_PATH ), "index.recipe" ); this.handler.parseRecipes( new JarLoader( ASSETS_RECIPE_PATH ), "index.recipe" );
} }
} }
+11 -11
View File
@@ -109,7 +109,7 @@ public class ApiPart implements IPartHelper
} }
catch( final ClassNotFoundException e ) catch( final ClassNotFoundException e )
{ {
AELog.error( e ); AELog.debug( e );
} }
Class myCLass; Class myCLass;
@@ -134,8 +134,8 @@ public class ApiPart implements IPartHelper
} }
catch( final Throwable t ) catch( final Throwable t )
{ {
AELog.warning( "Error loading " + name ); AELog.warn( "Error loading " + name );
AELog.error( t ); AELog.debug( t );
// throw new RuntimeException( t ); // throw new RuntimeException( t );
} }
f = myCLass.getName(); f = myCLass.getName();
@@ -164,7 +164,7 @@ public class ApiPart implements IPartHelper
} }
catch( final Throwable t ) catch( final Throwable t )
{ {
AELog.error( t ); AELog.debug( t );
} }
for( final MethodNode mn : n.methods ) for( final MethodNode mn : n.methods )
@@ -197,13 +197,13 @@ public class ApiPart implements IPartHelper
if( !rootC.isInstance( fish ) ) if( !rootC.isInstance( fish ) )
{ {
hasError = true; 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 ) if( fish instanceof LayerBase )
{ {
hasError = true; 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." ) ) if( !fullPath.contains( ".fmp." ) )
@@ -211,13 +211,13 @@ public class ApiPart implements IPartHelper
if( !( fish instanceof TileCableBus ) ) if( !( fish instanceof TileCableBus ) )
{ {
hasError = true; 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 ) ) if( !( fish instanceof TileEntity ) )
{ {
hasError = true; 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 ) catch( final Throwable t )
{ {
AELog.severe( "Layer: " + n.name + " Failed." ); AELog.error( "Layer: " + n.name + " Failed." );
AELog.error( t ); AELog.debug( t );
} }
this.roots.put( fullPath, clazz ); this.roots.put( fullPath, clazz );
@@ -297,7 +297,7 @@ public class ApiPart implements IPartHelper
} }
catch( final Exception e ) catch( final Exception e )
{ {
AELog.error( e ); AELog.debug( e );
throw new IllegalStateException( "Unable to manage part API.", e ); throw new IllegalStateException( "Unable to manage part API.", e );
} }
return clazz; return clazz;
@@ -61,22 +61,22 @@ public final class GridCacheRegistry implements IGridCacheRegistry
} }
catch( final NoSuchMethodException e ) 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 ); throw new IllegalArgumentException( e );
} }
catch( final InvocationTargetException 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 ); throw new IllegalStateException( e );
} }
catch( final InstantiationException 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 ); throw new IllegalStateException( e );
} }
catch( final IllegalAccessException 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 ); throw new IllegalStateException( e );
} }
} }
@@ -72,8 +72,8 @@ public class RecipeHandlerRegistry implements IRecipeHandlerRegistry
} }
catch( final Throwable e ) catch( final Throwable e )
{ {
AELog.severe( "Error Caused when trying to construct " + clz.getName() ); AELog.error( "Error Caused when trying to construct " + clz.getName() );
AELog.error( e ); AELog.debug( e );
this.handlers.put( name, null ); // clear it.. this.handlers.put( name, null ); // clear it..
@@ -101,7 +101,7 @@ public class RecipeHandlerRegistry implements IRecipeHandlerRegistry
} }
catch( final Throwable t ) catch( final Throwable t )
{ {
AELog.error( t ); AELog.debug( t );
} }
if( rr != null ) if( rr != null )
@@ -51,19 +51,19 @@ public class AppEngClientPacketHandler extends AppEngPacketHandlerBase implement
} }
catch( final InstantiationException e ) catch( final InstantiationException e )
{ {
AELog.error( e ); AELog.debug( e );
} }
catch( final IllegalAccessException e ) catch( final IllegalAccessException e )
{ {
AELog.error( e ); AELog.debug( e );
} }
catch( final IllegalArgumentException e ) catch( final IllegalArgumentException e )
{ {
AELog.error( e ); AELog.debug( e );
} }
catch( final InvocationTargetException 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 ) catch( final InstantiationException e )
{ {
AELog.error( e ); AELog.debug( e );
} }
catch( final IllegalAccessException e ) catch( final IllegalAccessException e )
{ {
AELog.error( e ); AELog.debug( e );
} }
catch( final IllegalArgumentException e ) catch( final IllegalArgumentException e )
{ {
AELog.error( e ); AELog.debug( e );
} }
catch( final InvocationTargetException e ) catch( final InvocationTargetException e )
{ {
AELog.error( e ); AELog.debug( e );
} }
} }
} }
@@ -121,7 +121,7 @@ public class PacketCraftRequest extends AppEngPacket
{ {
futureJob.cancel( true ); futureJob.cancel( true );
} }
AELog.error( e ); AELog.debug( e );
} }
} }
} }
@@ -186,7 +186,7 @@ public class PacketMEInventoryUpdate extends AppEngPacket
} }
catch( final IOException e ) catch( final IOException e )
{ {
AELog.error( e ); AELog.debug( e );
} }
return null; return null;
@@ -33,7 +33,6 @@ import net.minecraftforge.common.config.ConfigCategory;
import net.minecraftforge.common.config.Configuration; import net.minecraftforge.common.config.Configuration;
import net.minecraftforge.common.config.Property; import net.minecraftforge.common.config.Property;
import appeng.core.AELog;
import appeng.core.CommonHelper; import appeng.core.CommonHelper;
@@ -64,7 +63,7 @@ final class PlayerData implements IWorldPlayerData, IOnWorldStartable, IOnWorldS
this.config = configFile; this.config = configFile;
final ConfigCategory playerList = this.config.getCategory( "players" ); final ConfigCategory playerList = this.config.getCategory( "players" );
this.playerMapping = new PlayerMapping( playerList, AELog.INSTANCE ); this.playerMapping = new PlayerMapping( playerList );
} }
@Nullable @Nullable
@@ -29,8 +29,6 @@ import com.google.common.base.Preconditions;
import net.minecraftforge.common.config.ConfigCategory; import net.minecraftforge.common.config.ConfigCategory;
import cpw.mods.fml.relauncher.FMLRelaunchLog;
/** /**
* Wrapper class for the player mappings. * Wrapper class for the player mappings.
@@ -46,9 +44,9 @@ final class PlayerMapping implements IWorldPlayerMapping
*/ */
private final Map<Integer, UUID> mappings; 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(); this.mappings = init.getPlayerMappings();
} }
@@ -26,8 +26,6 @@ import java.util.UUID;
import net.minecraftforge.common.config.ConfigCategory; import net.minecraftforge.common.config.ConfigCategory;
import net.minecraftforge.common.config.Property; import net.minecraftforge.common.config.Property;
import cpw.mods.fml.relauncher.FMLRelaunchLog;
import appeng.core.AELog; import appeng.core.AELog;
import appeng.util.UUIDMatcher; 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 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 * @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 // Matcher for UUIDs
final UUIDMatcher matcher = new UUIDMatcher(); final UUIDMatcher matcher = new UUIDMatcher();
@@ -78,7 +76,7 @@ class PlayerMappingsInitializer
} }
else 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 ) catch( final Throwable e )
{ {
data = new NBTTagCompound(); data = new NBTTagCompound();
AELog.error( e ); AELog.debug( e );
} }
finally finally
{ {
@@ -165,7 +165,7 @@ final class SpawnData implements IWorldSpawnData
} }
catch( final IOException e ) catch( final IOException e )
{ {
AELog.error( e ); AELog.debug( e );
} }
} }
} }
@@ -196,7 +196,7 @@ final class SpawnData implements IWorldSpawnData
} }
catch( final Throwable e ) catch( final Throwable e )
{ {
AELog.error( e ); AELog.debug( e );
} }
finally finally
{ {
@@ -208,7 +208,7 @@ final class SpawnData implements IWorldSpawnData
} }
catch( final IOException e ) 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 ) 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; this.lastGridStorage = 0;
} }
+52 -16
View File
@@ -24,26 +24,35 @@ import java.util.concurrent.TimeUnit;
import com.google.common.base.Stopwatch; import com.google.common.base.Stopwatch;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World; import net.minecraft.world.World;
import appeng.api.AEApi; import appeng.api.AEApi;
import appeng.api.config.Actionable; import appeng.api.config.Actionable;
import appeng.api.networking.IGrid; 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.ICraftingCallback;
import appeng.api.networking.crafting.ICraftingGrid; import appeng.api.networking.crafting.ICraftingGrid;
import appeng.api.networking.crafting.ICraftingJob; import appeng.api.networking.crafting.ICraftingJob;
import appeng.api.networking.crafting.ICraftingPatternDetails; import appeng.api.networking.crafting.ICraftingPatternDetails;
import appeng.api.networking.security.BaseActionSource; 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.networking.storage.IStorageGrid;
import appeng.api.storage.data.IAEItemStack; import appeng.api.storage.data.IAEItemStack;
import appeng.api.storage.data.IItemList; import appeng.api.storage.data.IItemList;
import appeng.api.util.DimensionalCoord;
import appeng.core.AELog; import appeng.core.AELog;
import appeng.hooks.TickHandler; import appeng.hooks.TickHandler;
public class CraftingJob implements Runnable, ICraftingJob 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 MECraftingInventory original;
private final World world; 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( 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 ) // if ( mode == Actionable.MODULATE )
// craftingInventory.moveItemsToStorage( storage ); // craftingInventory.moveItemsToStorage( storage );
} }
@@ -171,15 +180,15 @@ public class CraftingJob implements Runnable, ICraftingJob
AELog.crafting( s + " * " + ti.times + " = " + ( ti.perOp * ti.times ) ); 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 ) catch( final CraftBranchFailure e1 )
{ {
AELog.error( e1 ); AELog.debug( e1 );
} }
catch( final CraftingCalculationFailure f ) catch( final CraftingCalculationFailure f )
{ {
AELog.error( f ); AELog.debug( f );
} }
catch( final InterruptedException e1 ) catch( final InterruptedException e1 )
{ {
@@ -190,7 +199,7 @@ public class CraftingJob implements Runnable, ICraftingJob
} }
catch( final CraftingCalculationFailure f ) catch( final CraftingCalculationFailure f )
{ {
AELog.error( f ); AELog.debug( f );
} }
catch( final InterruptedException e1 ) catch( final InterruptedException e1 )
{ {
@@ -199,7 +208,7 @@ public class CraftingJob implements Runnable, ICraftingJob
return; return;
} }
this.log( "crafting job now done" ); AELog.craftingDebug( "crafting job now done" );
} }
catch( final Throwable t ) catch( final Throwable t )
{ {
@@ -227,14 +236,14 @@ public class CraftingJob implements Runnable, ICraftingJob
if( !this.running ) if( !this.running )
{ {
this.log( "crafting job will now sleep" ); AELog.craftingDebug( "crafting job will now sleep" );
while( !this.running ) while( !this.running )
{ {
this.monitor.wait(); 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 @Override
public boolean isSimulation() public boolean isSimulation()
{ {
@@ -327,7 +331,7 @@ public class CraftingJob implements Runnable, ICraftingJob
this.watch.start(); this.watch.start();
this.running = true; this.running = true;
this.log( "main thread is now going to sleep" ); AELog.craftingDebug( "main thread is now going to sleep" );
this.monitor.notify(); 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; return true;
@@ -363,9 +367,41 @@ public class CraftingJob implements Runnable, ICraftingJob
this.tree = tree; 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 static class TwoIntegers
{ {
private final long perOp = 0; private final long perOp = 0;
private final long times = 0; private final long times = 0;
} }
+1 -1
View File
@@ -339,7 +339,7 @@ public class FacadePart implements IFacadePart, IBoxProvider
} }
catch( final Throwable t ) catch( final Throwable t )
{ {
AELog.error( t ); AELog.debug( t );
} }
} }
} }
+2 -2
View File
@@ -259,7 +259,7 @@ public class CableBusPart extends JCuboidPart implements JNormalOcclusion, IMask
} }
catch( final IOException e ) 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 ) catch( final IOException e )
{ {
AELog.error( e ); AELog.debug( e );
} }
} }
@@ -46,7 +46,6 @@ public class MultiCraftingTracker
private Future<ICraftingJob>[] jobs = null; private Future<ICraftingJob>[] jobs = null;
private ICraftingLink[] links = null; private ICraftingLink[] links = null;
private int failedCraftingAttempts = 0;
public MultiCraftingTracker( final ICraftingRequester o, final int size ) public MultiCraftingTracker( final ICraftingRequester o, final int size )
{ {
@@ -54,11 +53,6 @@ public class MultiCraftingTracker
this.size = size; this.size = size;
} }
public int getFailedCraftingAttempts()
{
return this.failedCraftingAttempts;
}
public void readFromNBT( final NBTTagCompound extra ) public void readFromNBT( final NBTTagCompound extra )
{ {
for( int x = 0; x < this.size; x++ ) for( int x = 0; x < this.size; x++ )
@@ -115,15 +109,10 @@ public class MultiCraftingTracker
if( link != null ) if( link != null )
{ {
this.failedCraftingAttempts = Math.max( 0, this.failedCraftingAttempts - 1 );
this.setLink( x, link ); this.setLink( x, link );
return true;
} }
else
{
this.failedCraftingAttempts = Math.min( 10, this.failedCraftingAttempts + 1 );
}
return true;
} }
} }
catch( final InterruptedException e ) catch( final InterruptedException e )
+1 -1
View File
@@ -289,7 +289,7 @@ public class TickHandler
} }
catch( final Exception e ) catch( final Exception e )
{ {
AELog.error( e ); AELog.debug( e );
} }
} }
@@ -119,11 +119,11 @@ public class BuildCraftBuilder implements IIntegrationModule
} }
catch( final InvocationTargetException ignore ) 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 ) 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 ) catch( final Throwable t )
{ {
AELog.error( t ); AELog.debug( t );
} }
return null; return null;
} }
@@ -211,8 +211,8 @@ public class FMP implements IIntegrationModule, IPartFactory, IPartConverter, IF
} }
catch( final Throwable t ) catch( final Throwable t )
{ {
AELog.severe( "Failed to register " + layerInterface.getName() + " with FMP, some features may not work with MultiParts." ); AELog.error( "Failed to register " + layerInterface.getName() + " with FMP, some features may not work with MultiParts." );
AELog.error( t ); AELog.debug( t );
} }
} }
@@ -72,7 +72,7 @@ public class ImmibisMicroblocks implements IImmibisMicroblocks, IIntegrationModu
} }
catch( final Throwable t ) 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 ) catch( final Exception err )
{ {
AELog.error( err ); AELog.debug( err );
} }
if( pos != null && type != null && type.getItem() instanceof ItemPaintBall ) if( pos != null && type != null && type.getItem() instanceof ItemPaintBall )
@@ -385,7 +385,7 @@ public class ToolMassCannon extends AEBasePoweredItem implements IStorageCell
} }
catch( final Exception err ) catch( final Exception err )
{ {
AELog.error( err ); AELog.debug( err );
} }
if( pos != null ) if( pos != null )
+1 -1
View File
@@ -110,7 +110,7 @@ public class GridStorage implements IGridStorage
} }
catch( final IOException e ) catch( final IOException e )
{ {
AELog.error( e ); AELog.debug( e );
} }
return ""; return "";
+4 -4
View File
@@ -184,10 +184,10 @@ public class NetworkEventBus
} }
catch( final Throwable e1 ) catch( final Throwable e1 )
{ {
AELog.severe( "[AppEng] Network Event caused exception:" ); AELog.error( "[AppEng] Network Event caused exception:" );
AELog.severe( "Offending Class: " + obj.getClass().getName() ); AELog.error( "Offending Class: " + obj.getClass().getName() );
AELog.severe( "Offending Object: " + obj.toString() ); AELog.error( "Offending Object: " + obj.toString() );
AELog.error( e1 ); AELog.debug( e1 );
throw new IllegalStateException( e1 ); throw new IllegalStateException( e1 );
} }
@@ -116,7 +116,7 @@ public abstract class MBCalculator
} }
catch( final Throwable err ) catch( final Throwable err )
{ {
AELog.error( err ); AELog.debug( err );
} }
this.disconnect(); this.disconnect();
@@ -83,6 +83,8 @@ import appeng.util.item.AEItemStack;
public final class CraftingCPUCluster implements IAECluster, ICraftingCPU 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 min;
private final WorldCoord max; private final WorldCoord max;
private final int[] usedOps = new int[3]; private final int[] usedOps = new int[3];
@@ -427,12 +429,19 @@ public final class CraftingCPUCluster implements IAECluster, ICraftingCPU
( (CraftingLink) this.myLastLink ).markDone(); ( (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.remainingItemCount = 0;
this.startItemCount = 0; this.startItemCount = 0;
this.lastTime = 0; this.lastTime = 0;
this.elapsedTime = 0; this.elapsedTime = 0;
this.isComplete = true; this.isComplete = true;
} }
private void updateCPU() private void updateCPU()
@@ -1074,7 +1074,7 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I
} }
else 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 // :P
} }
final int failedAttempts = this.craftingTracker.getFailedCraftingAttempts();
if( this.isCraftingEnabled() && failedAttempts > 0 )
{
return this.getFailedCraftingPenalty( failedAttempts );
}
return this.didSomething ? TickRateModulation.FASTER : TickRateModulation.SLOWER; return this.didSomething ? TickRateModulation.FASTER : TickRateModulation.SLOWER;
} }
@@ -306,7 +299,7 @@ public class PartExportBus extends PartSharedItemBus implements ICraftingRequest
} }
catch( final GridAccessException e ) catch( final GridAccessException e )
{ {
AELog.error( e ); AELog.debug( e );
} }
return items; return items;
@@ -388,18 +381,4 @@ public class PartExportBus extends PartSharedItemBus implements ICraftingRequest
this.nextSlot = ( this.nextSlot + x ) % this.availableSlots(); 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;
}
} }
@@ -194,7 +194,7 @@ public final class PartP2POpenComputers extends PartP2PTunnel<PartP2POpenCompute
} }
catch( final GridAccessException e ) 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 start = this.getTile();
final TileEntity end = me.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 ) 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 ) catch( final Exception e )
{ {
AELog.error( e ); AELog.debug( e );
} }
finally finally
{ {
+13 -13
View File
@@ -257,10 +257,10 @@ public class RecipeHandler implements IRecipeHandler
} }
catch( final Exception err ) catch( final Exception err )
{ {
AELog.warning( "Error Loading Recipe File:" + path ); AELog.warn( "Error Loading Recipe File:" + path );
if( this.data.exceptions ) if( this.data.exceptions )
{ {
AELog.error( err ); AELog.debug( err );
} }
return; return;
} }
@@ -360,7 +360,7 @@ public class RecipeHandler implements IRecipeHandler
} }
catch( final Throwable e ) catch( final Throwable e )
{ {
AELog.error( e ); AELog.debug( e );
if( this.data.crash ) if( this.data.crash )
{ {
throw new IllegalStateException( e ); throw new IllegalStateException( e );
@@ -398,10 +398,10 @@ public class RecipeHandler implements IRecipeHandler
} }
catch( final RegistrationError e ) 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 ) if( this.data.exceptions )
{ {
AELog.error( e ); AELog.debug( e );
} }
if( this.data.crash ) if( this.data.crash )
{ {
@@ -412,10 +412,10 @@ public class RecipeHandler implements IRecipeHandler
{ {
if( this.data.errorOnMissing ) 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 ) if( this.data.exceptions )
{ {
AELog.error( e ); AELog.debug( e );
} }
if( this.data.crash ) if( this.data.crash )
{ {
@@ -429,7 +429,7 @@ public class RecipeHandler implements IRecipeHandler
{ {
if( this.data.exceptions ) if( this.data.exceptions )
{ {
AELog.error( e ); AELog.debug( e );
} }
if( this.data.crash ) if( this.data.crash )
{ {
@@ -505,11 +505,11 @@ public class RecipeHandler implements IRecipeHandler
} }
catch( final FileNotFoundException e1 ) catch( final FileNotFoundException e1 )
{ {
AELog.error( e1 ); AELog.debug( e1 );
} }
catch( final IOException e1 ) catch( final IOException e1 )
{ {
AELog.error( e1 ); AELog.debug( e1 );
} }
} }
} }
@@ -529,7 +529,7 @@ public class RecipeHandler implements IRecipeHandler
} }
catch( final Throwable t ) catch( final Throwable t )
{ {
AELog.error( t ); AELog.debug( t );
} }
} }
@@ -678,10 +678,10 @@ public class RecipeHandler implements IRecipeHandler
} }
catch( final RecipeError e ) 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 ) if( this.data.exceptions )
{ {
AELog.error( e ); AELog.debug( e );
} }
if( this.data.crash ) if( this.data.crash )
{ {
@@ -118,7 +118,7 @@ public class Shaped implements ICraftHandler, IWebsiteSerializer
} }
catch( final Throwable e ) catch( final Throwable e )
{ {
AELog.error( e ); AELog.debug( e );
throw new RegistrationError( "Error while adding shaped recipe." ); throw new RegistrationError( "Error while adding shaped recipe." );
} }
} }
@@ -81,7 +81,7 @@ public class Shapeless implements ICraftHandler, IWebsiteSerializer
} }
catch( final Throwable e ) catch( final Throwable e )
{ {
AELog.error( e ); AELog.debug( e );
throw new RegistrationError( "Error while adding shapeless recipe." ); throw new RegistrationError( "Error while adding shapeless recipe." );
} }
} }
@@ -89,7 +89,7 @@ public class OreDictionaryHandler
} }
catch( final Throwable e ) catch( final Throwable e )
{ {
AELog.error( e ); AELog.debug( e );
} }
} }
} }
@@ -102,7 +102,7 @@ public final class VersionChecker implements Runnable
catch( Exception exception ) catch( Exception exception )
{ {
// Log any unhandled exception to prevent the JVM from reporting them as unhandled. // Log any unhandled exception to prevent the JVM from reporting them as unhandled.
AELog.error( exception ); AELog.debug( exception );
} }
AELog.info( "Stopping AE2 VersionChecker" ); 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 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) * phase when all items are determined)
* @param mode mode in which the export should be operated. Resulting CSV will change depending on this. * @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 ); 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; final String header = this.mode == ExportMode.MINIMAL ? MINIMAL_HEADER : VERBOSE_HEADER;
writer.write( header ); writer.write( header );
@@ -116,8 +117,8 @@ final class MinecraftItemCSVExporter implements Exporter
} }
catch( final IOException e ) catch( final IOException e )
{ {
AELog.warning( EXPORT_UNSUCCESSFUL_MESSAGE ); AELog.warn( EXPORT_UNSUCCESSFUL_MESSAGE );
AELog.error( e ); AELog.debug( e );
} }
} }
@@ -186,7 +187,6 @@ final class MinecraftItemCSVExporter implements Exporter
} }
} }
/** /**
* transforms an item into a row representation of the CSV file * 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 LOCALIZATION_NAME_EXTENSION = ".name";
private static final String EXPORTING_NOTHING_MESSAGE = "Exporting nothing"; 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_MESSAGE = "Exporting input %s with subtypes: %b";
private static final String EXPORTING_SUBTYPES_FAILED_MESSAGE = "Could not export subtypes of: %s";
@Nonnull @Nonnull
private final FMLControlledNamespacedRegistry<Item> itemRegistry; private final FMLControlledNamespacedRegistry<Item> itemRegistry;
@@ -243,7 +244,8 @@ final class MinecraftItemCSVExporter implements Exporter
} }
catch( final Exception ignored ) 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 // ignore if mods do bullshit in their code
return null; return null;
@@ -67,7 +67,7 @@ public final class ModVersionFetcher implements VersionFetcher
} }
catch( final VersionCheckerException e ) catch( final VersionCheckerException e )
{ {
AELog.error( e ); AELog.debug( e );
return EXCEPTIONAL_VERSION; return EXCEPTIONAL_VERSION;
} }
@@ -75,15 +75,15 @@ public final class ReleaseFetcher
} }
catch( final VersionCheckerException e ) catch( final VersionCheckerException e )
{ {
AELog.error( e ); AELog.debug( e );
} }
catch( MalformedURLException e ) catch( MalformedURLException e )
{ {
AELog.error( e ); AELog.debug( e );
} }
catch( IOException e ) catch( IOException e )
{ {
AELog.error( e ); AELog.debug( e );
} }
return EXCEPTIONAL_RELEASE; return EXCEPTIONAL_RELEASE;
@@ -178,7 +178,7 @@ public class CachedPlane
} }
catch( final Exception e ) catch( final Exception e )
{ {
AELog.error( e ); AELog.debug( e );
} }
} }
} }
@@ -292,7 +292,7 @@ public class CachedPlane
} }
catch( final Throwable e ) catch( final Throwable e )
{ {
AELog.error( e ); AELog.debug( e );
// attempt recovery... // attempt recovery...
te.setWorldObj( this.getWorld() ); te.setWorldObj( this.getWorld() );
@@ -319,7 +319,7 @@ public class CachedPlane
} }
catch( final Throwable e ) catch( final Throwable e )
{ {
AELog.error( e ); AELog.debug( e );
} }
} }
+3 -3
View File
@@ -199,7 +199,7 @@ public class AEBaseTile extends TileEntity implements IOrientable, ICommonTile,
} }
catch( final Throwable t ) catch( final Throwable t )
{ {
AELog.error( t ); AELog.debug( t );
} }
stream.capacity( stream.readableBytes() ); stream.capacity( stream.readableBytes() );
@@ -279,7 +279,7 @@ public class AEBaseTile extends TileEntity implements IOrientable, ICommonTile,
} }
catch( final Throwable t ) catch( final Throwable t )
{ {
AELog.error( t ); AELog.debug( t );
} }
return output; return output;
@@ -319,7 +319,7 @@ public class AEBaseTile extends TileEntity implements IOrientable, ICommonTile,
} }
catch( final Throwable t ) 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 = new ConfigManager( this );
this.settings.registerSetting( Settings.REDSTONE_CONTROLLED, RedstoneMode.IGNORE ); this.settings.registerSetting( Settings.REDSTONE_CONTROLLED, RedstoneMode.IGNORE );
this.inv.setMaxStackSize( 1 ); this.inv.setMaxStackSize( 1 );
this.getGridProxy().setIdlePowerUsage( 0.0 ); this.getProxy().setIdlePowerUsage( 0.0 );
this.upgrades = new DefinitionUpgradeInventory( assembler, this, this.getUpgradeSlots() ); this.upgrades = new DefinitionUpgradeInventory( assembler, this, this.getUpgradeSlots() );
this.craftingInv = new InventoryCrafting( new ContainerNull(), 3, 3 ); this.craftingInv = new InventoryCrafting( new ContainerNull(), 3, 3 );
} }
@@ -152,11 +152,11 @@ public class TileMolecularAssembler extends AENetworkInvTile implements IUpgrade
{ {
if( this.isAwake ) if( this.isAwake )
{ {
this.getGridProxy().getTick().wakeDevice( this.getGridProxy().getNode() ); this.getProxy().getTick().wakeDevice( this.getProxy().getNode() );
} }
else else
{ {
this.getGridProxy().getTick().sleepDevice( this.getGridProxy().getNode() ); this.getProxy().getTick().sleepDevice( this.getProxy().getNode() );
} }
} }
catch( final GridAccessException e ) catch( final GridAccessException e )
@@ -553,7 +553,7 @@ public class TileMolecularAssembler extends AENetworkInvTile implements IUpgrade
{ {
try 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 ) catch( final GridAccessException e )
{ {
@@ -629,7 +629,7 @@ public class TileMolecularAssembler extends AENetworkInvTile implements IUpgrade
try 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 ) catch( final GridAccessException ignored )
{ {
@@ -39,19 +39,19 @@ public abstract class AENetworkInvTile extends AEBaseInvTile implements IActionH
@TileEvent( TileEventType.WORLD_NBT_READ ) @TileEvent( TileEventType.WORLD_NBT_READ )
public void readFromNBT_AENetwork( final NBTTagCompound data ) public void readFromNBT_AENetwork( final NBTTagCompound data )
{ {
this.getGridProxy().readFromNBT( data ); this.getProxy().readFromNBT( data );
} }
@TileEvent( TileEventType.WORLD_NBT_WRITE ) @TileEvent( TileEventType.WORLD_NBT_WRITE )
public void writeToNBT_AENetwork( final NBTTagCompound data ) public void writeToNBT_AENetwork( final NBTTagCompound data )
{ {
this.getGridProxy().writeToNBT( data ); this.getProxy().writeToNBT( data );
} }
@Override @Override
public AENetworkProxy getProxy() public AENetworkProxy getProxy()
{ {
return this.getGridProxy(); return this.gridProxy;
} }
@Override @Override
@@ -63,45 +63,41 @@ public abstract class AENetworkInvTile extends AEBaseInvTile implements IActionH
@Override @Override
public IGridNode getGridNode( final ForgeDirection dir ) public IGridNode getGridNode( final ForgeDirection dir )
{ {
return this.getGridProxy().getNode(); return this.getProxy().getNode();
} }
@Override @Override
public void onChunkUnload() public void onChunkUnload()
{ {
super.onChunkUnload(); super.onChunkUnload();
this.getGridProxy().onChunkUnload(); this.getProxy().onChunkUnload();
} }
@Override @Override
public void onReady() public void onReady()
{ {
super.onReady(); super.onReady();
this.getGridProxy().onReady(); this.getProxy().onReady();
} }
@Override @Override
public void invalidate() public void invalidate()
{ {
super.invalidate(); super.invalidate();
this.getGridProxy().invalidate(); this.getProxy().invalidate();
} }
@Override @Override
public void validate() public void validate()
{ {
super.validate(); super.validate();
this.getGridProxy().validate(); this.getProxy().validate();
} }
@Override @Override
public IGridNode getActionableNode() 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 ) 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 ) 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 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; private ForgeDirection pointAt = ForgeDirection.UNKNOWN;
@MENetworkEventSubscribe @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.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.markForUpdate();
this.markDirty(); this.markDirty();
} }
@@ -141,7 +141,7 @@ public class TileInterface extends AENetworkInvTile implements IGridTickable, IT
@Override @Override
public void onReady() public void onReady()
{ {
this.getGridProxy().setValidSides( EnumSet.complementOf( EnumSet.of( this.pointAt ) ) ); this.getProxy().setValidSides( EnumSet.complementOf( EnumSet.of( this.pointAt ) ) );
super.onReady(); super.onReady();
this.duality.initialize(); this.duality.initialize();
} }
@@ -66,8 +66,8 @@ public class TileVibrationChamber extends AENetworkInvTile implements IGridTicka
public TileVibrationChamber() public TileVibrationChamber()
{ {
this.getGridProxy().setIdlePowerUsage( 0 ); this.getProxy().setIdlePowerUsage( 0 );
this.getGridProxy().setFlags(); this.getProxy().setFlags();
} }
@Override @Override
@@ -131,7 +131,7 @@ public class TileVibrationChamber extends AENetworkInvTile implements IGridTicka
{ {
try try
{ {
this.getGridProxy().getTick().wakeDevice( this.getGridProxy().getNode() ); this.getProxy().getTick().wakeDevice( this.getProxy().getNode() );
} }
catch( final GridAccessException e ) catch( final GridAccessException e )
{ {
@@ -213,7 +213,7 @@ public class TileVibrationChamber extends AENetworkInvTile implements IGridTicka
try try
{ {
final IEnergyGrid grid = this.getGridProxy().getEnergy(); final IEnergyGrid grid = this.getProxy().getEnergy();
final double newPower = timePassed * POWER_PER_TICK; final double newPower = timePassed * POWER_PER_TICK;
final double overFlow = grid.injectPower( newPower, Actionable.SIMULATE ); final double overFlow = grid.injectPower( newPower, Actionable.SIMULATE );
@@ -275,7 +275,7 @@ public class TileVibrationChamber extends AENetworkInvTile implements IGridTicka
{ {
try try
{ {
this.getGridProxy().getTick().wakeDevice( this.getGridProxy().getNode() ); this.getProxy().getTick().wakeDevice( this.getProxy().getNode() );
} }
catch( final GridAccessException e ) catch( final GridAccessException e )
{ {
@@ -60,15 +60,15 @@ public class TileWireless extends AENetworkInvTile implements IWirelessAccessPoi
public TileWireless() public TileWireless()
{ {
this.getGridProxy().setFlags( GridFlags.REQUIRE_CHANNEL ); this.getProxy().setFlags( GridFlags.REQUIRE_CHANNEL );
this.getGridProxy().setValidSides( EnumSet.noneOf( ForgeDirection.class ) ); this.getProxy().setValidSides( EnumSet.noneOf( ForgeDirection.class ) );
} }
@Override @Override
public void setOrientation( final ForgeDirection inForward, final ForgeDirection inUp ) public void setOrientation( final ForgeDirection inForward, final ForgeDirection inUp )
{ {
super.setOrientation( inForward, inUp ); super.setOrientation( inForward, inUp );
this.getGridProxy().setValidSides( EnumSet.of( this.getForward().getOpposite() ) ); this.getProxy().setValidSides( EnumSet.of( this.getForward().getOpposite() ) );
} }
@MENetworkEventSubscribe @MENetworkEventSubscribe
@@ -99,12 +99,12 @@ public class TileWireless extends AENetworkInvTile implements IWirelessAccessPoi
try try
{ {
if( this.getGridProxy().getEnergy().isNetworkPowered() ) if( this.getProxy().getEnergy().isNetworkPowered() )
{ {
this.setClientFlags( this.getClientFlags() | POWERED_FLAG ); this.setClientFlags( this.getClientFlags() | POWERED_FLAG );
} }
if( this.getGridProxy().getNode().meetsChannelRequirements() ) if( this.getProxy().getNode().meetsChannelRequirements() )
{ {
this.setClientFlags( this.getClientFlags() | CHANNEL_FLAG ); this.setClientFlags( this.getClientFlags() | CHANNEL_FLAG );
} }
@@ -162,7 +162,7 @@ public class TileWireless extends AENetworkInvTile implements IWirelessAccessPoi
private void updatePower() private void updatePower()
{ {
this.getGridProxy().setIdlePowerUsage( AEConfig.instance.wireless_getPowerDrain( this.getBoosters() ) ); this.getProxy().setIdlePowerUsage( AEConfig.instance.wireless_getPowerDrain( this.getBoosters() ) );
} }
private int 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.isPowered() && ( CHANNEL_FLAG == ( this.getClientFlags() & CHANNEL_FLAG ) );
} }
return this.getGridProxy().isActive(); return this.getProxy().isActive();
} }
@Override @Override
@@ -199,7 +199,7 @@ public class TileWireless extends AENetworkInvTile implements IWirelessAccessPoi
{ {
try try
{ {
return this.getGridProxy().getGrid(); return this.getProxy().getGrid();
} }
catch( final GridAccessException e ) catch( final GridAccessException e )
{ {
@@ -68,9 +68,9 @@ public class TileQuantumBridge extends AENetworkInvTile implements IAEMultiBlock
public TileQuantumBridge() public TileQuantumBridge()
{ {
this.getGridProxy().setValidSides( EnumSet.noneOf( ForgeDirection.class ) ); this.getProxy().setValidSides( EnumSet.noneOf( ForgeDirection.class ) );
this.getGridProxy().setFlags( GridFlags.DENSE_CAPACITY ); this.getProxy().setFlags( GridFlags.DENSE_CAPACITY );
this.getGridProxy().setIdlePowerUsage( 22 ); this.getProxy().setIdlePowerUsage( 22 );
this.internalInventory.setMaxStackSize( 1 ); this.internalInventory.setMaxStackSize( 1 );
} }
@@ -98,7 +98,7 @@ public class TileQuantumBridge extends AENetworkInvTile implements IAEMultiBlock
out |= this.hasSingularity; out |= this.hasSingularity;
} }
if( this.getGridProxy().isActive() && this.constructed != -1 ) if( this.getProxy().isActive() && this.constructed != -1 )
{ {
out |= this.powered; out |= this.powered;
} }
@@ -177,7 +177,7 @@ public class TileQuantumBridge extends AENetworkInvTile implements IAEMultiBlock
{ {
final ItemStack linkStack = maybeLinkStack.get(); 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 ) 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() ) if( this.isCorner() || this.isCenter() )
{ {
this.getGridProxy().setValidSides( this.getConnections() ); this.getProxy().setValidSides( this.getConnections() );
} }
else 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 try
{ {
return this.getGridProxy().getEnergy().isNetworkPowered(); return this.getProxy().getEnergy().isNetworkPowered();
} }
catch( final GridAccessException e ) catch( final GridAccessException e )
{ {
@@ -58,7 +58,7 @@ public class TileSpatialIOPort extends AENetworkInvTile implements IWorldCallabl
public TileSpatialIOPort() public TileSpatialIOPort()
{ {
this.getGridProxy().setFlags( GridFlags.REQUIRE_CHANNEL ); this.getProxy().setFlags( GridFlags.REQUIRE_CHANNEL );
} }
@TileEvent( TileEventType.WORLD_NBT_WRITE ) @TileEvent( TileEventType.WORLD_NBT_WRITE )
@@ -127,8 +127,8 @@ public class TileSpatialIOPort extends AENetworkInvTile implements IWorldCallabl
final ItemStack cell = this.getStackInSlot( 0 ); final ItemStack cell = this.getStackInSlot( 0 );
if( this.isSpatialCell( cell ) && this.getStackInSlot( 1 ) == null ) if( this.isSpatialCell( cell ) && this.getStackInSlot( 1 ) == null )
{ {
final IGrid gi = this.getGridProxy().getGrid(); final IGrid gi = this.getProxy().getGrid();
final IEnergyGrid energy = this.getGridProxy().getEnergy(); final IEnergyGrid energy = this.getProxy().getEnergy();
final ISpatialStorageCell sc = (ISpatialStorageCell) cell.getItem(); final ISpatialStorageCell sc = (ISpatialStorageCell) cell.getItem();
@@ -78,7 +78,7 @@ public class TileDrive extends AENetworkInvTile implements IChestOrDrive, IPrior
public TileDrive() public TileDrive()
{ {
this.mySrc = new MachineSource( this ); this.mySrc = new MachineSource( this );
this.getGridProxy().setFlags( GridFlags.REQUIRE_CHANNEL ); this.getProxy().setFlags( GridFlags.REQUIRE_CHANNEL );
} }
@TileEvent( TileEventType.NETWORK_WRITE ) @TileEvent( TileEventType.NETWORK_WRITE )
@@ -93,7 +93,7 @@ public class TileDrive extends AENetworkInvTile implements IChestOrDrive, IPrior
this.state &= 0x24924924; // just keep the blinks... this.state &= 0x24924924; // just keep the blinks...
} }
if( this.getGridProxy().isActive() ) if( this.getProxy().isActive() )
{ {
this.state |= 0x80000000; this.state |= 0x80000000;
} }
@@ -160,7 +160,7 @@ public class TileDrive extends AENetworkInvTile implements IChestOrDrive, IPrior
return ( this.state & 0x80000000 ) == 0x80000000; return ( this.state & 0x80000000 ) == 0x80000000;
} }
return this.getGridProxy().isActive(); return this.getProxy().isActive();
} }
@Override @Override
@@ -205,7 +205,7 @@ public class TileDrive extends AENetworkInvTile implements IChestOrDrive, IPrior
private void recalculateDisplay() private void recalculateDisplay()
{ {
final boolean currentActive = this.getGridProxy().isActive(); final boolean currentActive = this.getProxy().isActive();
if( currentActive ) if( currentActive )
{ {
this.state |= 0x80000000; this.state |= 0x80000000;
@@ -220,7 +220,7 @@ public class TileDrive extends AENetworkInvTile implements IChestOrDrive, IPrior
this.wasActive = currentActive; this.wasActive = currentActive;
try try
{ {
this.getGridProxy().getGrid().postEvent( new MENetworkCellArrayUpdate() ); this.getProxy().getGrid().postEvent( new MENetworkCellArrayUpdate() );
} }
catch( final GridAccessException e ) catch( final GridAccessException e )
{ {
@@ -281,9 +281,9 @@ public class TileDrive extends AENetworkInvTile implements IChestOrDrive, IPrior
try 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 ); Platform.postChanges( gs, removed, added, this.mySrc );
} }
catch( final GridAccessException ignored ) 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; this.isCached = true;
} }
@@ -365,7 +365,7 @@ public class TileDrive extends AENetworkInvTile implements IChestOrDrive, IPrior
@Override @Override
public List<IMEInventoryHandler> getCellArray( final StorageChannel channel ) public List<IMEInventoryHandler> getCellArray( final StorageChannel channel )
{ {
if( this.getGridProxy().isActive() ) if( this.getProxy().isActive() )
{ {
this.updateState(); this.updateState();
return (List) ( channel == StorageChannel.ITEMS ? this.items : this.fluids ); return (List) ( channel == StorageChannel.ITEMS ? this.items : this.fluids );
@@ -390,7 +390,7 @@ public class TileDrive extends AENetworkInvTile implements IChestOrDrive, IPrior
try try
{ {
this.getGridProxy().getGrid().postEvent( new MENetworkCellArrayUpdate() ); this.getProxy().getGrid().postEvent( new MENetworkCellArrayUpdate() );
} }
catch( final GridAccessException e ) catch( final GridAccessException e )
{ {
@@ -106,7 +106,7 @@ public class TileIOPort extends AENetworkInvTile implements IUpgradeableHost, IC
@Reflected @Reflected
public TileIOPort() public TileIOPort()
{ {
this.getGridProxy().setFlags( GridFlags.REQUIRE_CHANNEL ); this.getProxy().setFlags( GridFlags.REQUIRE_CHANNEL );
this.manager = new ConfigManager( this ); this.manager = new ConfigManager( this );
this.manager.registerSetting( Settings.REDSTONE_CONTROLLED, RedstoneMode.IGNORE ); this.manager.registerSetting( Settings.REDSTONE_CONTROLLED, RedstoneMode.IGNORE );
this.manager.registerSetting( Settings.FULLNESS_MODE, FullnessMode.EMPTY ); this.manager.registerSetting( Settings.FULLNESS_MODE, FullnessMode.EMPTY );
@@ -158,11 +158,11 @@ public class TileIOPort extends AENetworkInvTile implements IUpgradeableHost, IC
{ {
if( this.hasWork() ) if( this.hasWork() )
{ {
this.getGridProxy().getTick().wakeDevice( this.getGridProxy().getNode() ); this.getProxy().getTick().wakeDevice( this.getProxy().getNode() );
} }
else else
{ {
this.getGridProxy().getTick().sleepDevice( this.getGridProxy().getNode() ); this.getProxy().getTick().sleepDevice( this.getProxy().getNode() );
} }
} }
catch( final GridAccessException e ) catch( final GridAccessException e )
@@ -313,7 +313,7 @@ public class TileIOPort extends AENetworkInvTile implements IUpgradeableHost, IC
@Override @Override
public TickRateModulation tickingRequest( final IGridNode node, final int ticksSinceLastCall ) public TickRateModulation tickingRequest( final IGridNode node, final int ticksSinceLastCall )
{ {
if( !this.getGridProxy().isActive() ) if( !this.getProxy().isActive() )
{ {
return TickRateModulation.IDLE; return TickRateModulation.IDLE;
} }
@@ -335,9 +335,9 @@ public class TileIOPort extends AENetworkInvTile implements IUpgradeableHost, IC
try try
{ {
final IMEInventory<IAEItemStack> itemNet = this.getGridProxy().getStorage().getItemInventory(); final IMEInventory<IAEItemStack> itemNet = this.getProxy().getStorage().getItemInventory();
final IMEInventory<IAEFluidStack> fluidNet = this.getGridProxy().getStorage().getFluidInventory(); final IMEInventory<IAEFluidStack> fluidNet = this.getProxy().getStorage().getFluidInventory();
final IEnergySource energy = this.getGridProxy().getEnergy(); final IEnergySource energy = this.getProxy().getEnergy();
for( int x = 0; x < 6; x++ ) for( int x = 0; x < 6; x++ )
{ {
final ItemStack is = this.cells.getStackInSlot( x ); final ItemStack is = this.cells.getStackInSlot( x );
@@ -113,7 +113,7 @@ public class ClassInstantiation<T>
} }
catch( final Throwable t ) catch( final Throwable t )
{ {
AELog.error( t ); AELog.debug( t );
} }
} }
} }
+1 -1
View File
@@ -125,7 +125,7 @@ public final class ConfigManager implements IConfigManager
} }
catch( final IllegalArgumentException e ) catch( final IllegalArgumentException e )
{ {
AELog.error( e ); AELog.debug( e );
} }
} }
} }
+4 -4
View File
@@ -576,8 +576,8 @@ public class Platform
} }
catch( final Throwable z ) catch( final Throwable z )
{ {
AELog.error( t ); AELog.debug( t );
AELog.error( z ); AELog.debug( z );
} }
} }
} }
@@ -589,7 +589,7 @@ public class Platform
} }
catch( final Throwable t ) catch( final Throwable t )
{ {
AELog.error( t ); AELog.debug( t );
} }
return new ArrayList<NBTBase>(); return new ArrayList<NBTBase>();
@@ -2010,7 +2010,7 @@ public class Platform
} }
catch( final Throwable t ) 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.BlockCableBus.name=AE2-Kabel und/oder Bus
tile.appliedenergistics2.BlockCellWorkbench.name=Speicherzellenwerkbank tile.appliedenergistics2.BlockCellWorkbench.name=Speicherzellenwerkbank
tile.appliedenergistics2.BlockCharger.name=Ladegerät tile.appliedenergistics2.BlockCharger.name=Ladegerät
@@ -50,12 +51,36 @@ tile.appliedenergistics2.BlockCraftingAccelerator.name=Fertigungs-Prozessoreinhe
tile.appliedenergistics2.BlockCraftingUnit.name=Fertigungseinheit tile.appliedenergistics2.BlockCraftingUnit.name=Fertigungseinheit
tile.appliedenergistics2.BlockMolecularAssembler.name=Molekularassembler 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.ChestCannotReadStorageCell=ME-Truhe kann die Speicherzelle nicht einlesen.
chat.appliedenergistics2.SettingCleared=Einstellung gelöscht. chat.appliedenergistics2.SettingCleared=Einstellung gelöscht.
chat.appliedenergistics2.OutOfRange=Drahtloser Zugangspunkt außer Reichweite. chat.appliedenergistics2.OutOfRange=Drahtloser Zugangspunkt außer Reichweite.
chat.appliedenergistics2.InvalidMachine=Ungültige Maschine. chat.appliedenergistics2.InvalidMachine=Ungültige Maschine.
chat.appliedenergistics2.LoadedSettings=Einstellungen erfolgreich geladen. chat.appliedenergistics2.LoadedSettings=Einstellungen erfolgreich geladen.
chat.appliedenergistics2.DeviceNotPowered=Gerät hat zu wenig Energie 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.MachineNotPowered=Maschine bekommt keine Energie.
chat.appliedenergistics2.CommunicationError=Fehler beim Kommunizieren mit dem Netzwerk. chat.appliedenergistics2.CommunicationError=Fehler beim Kommunizieren mit dem Netzwerk.
chat.appliedenergistics2.SavedSettings=Einstellungen erfolgreich gespeichert. chat.appliedenergistics2.SavedSettings=Einstellungen erfolgreich gespeichert.
@@ -63,9 +88,11 @@ chat.appliedenergistics2.AmmoDepleted=Munition verbraucht.
chat.appliedenergistics2.isNowLocked=Monitor ist nun gesperrt. chat.appliedenergistics2.isNowLocked=Monitor ist nun gesperrt.
chat.appliedenergistics2.isNowUnlocked=Monitor ist nun entsperrt. chat.appliedenergistics2.isNowUnlocked=Monitor ist nun entsperrt.
// Creative Tabs
itemGroup.appliedenergistics2=Applied Energistics 2 itemGroup.appliedenergistics2=Applied Energistics 2
itemGroup.appliedenergistics2.facades=Applied Energistics 2 - Fassaden itemGroup.appliedenergistics2.facades=Applied Energistics 2 - Fassaden
// GUI
gui.appliedenergistics2.CraftingTerminal=Fertigungskonsole gui.appliedenergistics2.CraftingTerminal=Fertigungskonsole
gui.appliedenergistics2.METunnel=ME gui.appliedenergistics2.METunnel=ME
gui.appliedenergistics2.ItemTunnel=Item gui.appliedenergistics2.ItemTunnel=Item
@@ -74,6 +101,8 @@ gui.appliedenergistics2.RedstoneTunnel=Redstone
gui.appliedenergistics2.EUTunnel=EU gui.appliedenergistics2.EUTunnel=EU
gui.appliedenergistics2.RFTunnel=RF gui.appliedenergistics2.RFTunnel=RF
gui.appliedenergistics2.LightTunnel=Licht gui.appliedenergistics2.LightTunnel=Licht
gui.appliedenergistics2.OCTunnel=OpenComputers
gui.appliedenergistics2.PressureTunnel=Druck
gui.appliedenergistics2.security.extract.name=Extrahieren gui.appliedenergistics2.security.extract.name=Extrahieren
gui.appliedenergistics2.security.inject.name=Deponieren gui.appliedenergistics2.security.inject.name=Deponieren
@@ -148,6 +177,9 @@ gui.appliedenergistics2.Crafts=Fertigt
gui.appliedenergistics2.And=und gui.appliedenergistics2.And=und
gui.appliedenergistics2.Creates=Kreiert gui.appliedenergistics2.Creates=Kreiert
gui.appliedenergistics2.With=mit 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.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.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. 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.Partitioned=Partitioniert
gui.appliedenergistics2.Precise=Präzise gui.appliedenergistics2.Precise=Präzise
gui.appliedenergistics2.Fuzzy=Ungenau 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.Stash=Items lagern
gui.tooltips.appliedenergistics2.StashDesc=Items aus dem Fertigungsgitter in Netzwerkspeicher zurücksenden. gui.tooltips.appliedenergistics2.StashDesc=Items aus dem Fertigungsgitter in Netzwerkspeicher zurücksenden.
gui.tooltips.appliedenergistics2.Substitutions=Ore-Dict-Ersetzung gui.tooltips.appliedenergistics2.Substitutions=Ore-Dict-Substitution
gui.tooltips.appliedenergistics2.SubstitutionsDesc=Ersetzungsoptionen für Eingangskomponenten ändern 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.SubstitutionsOn=Ersetzung aktiviert
gui.tooltips.appliedenergistics2.SubstitutionsOff=Ersetzung deaktiviert gui.tooltips.appliedenergistics2.SubstitutionsOff=Ersetzung deaktiviert
gui.tooltips.appliedenergistics2.Encode=Schablone kodieren 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.ReportInaccessibleItems=Melde unerreichbare Items
gui.tooltips.appliedenergistics2.ReportInaccessibleItemsYes=Ja: Items, die nicht extrahiert werden können, werden sichtbar. 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.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.appliedenergstics=AE
gui.appliedenergistics2.units.ic2=Energy Units gui.appliedenergistics2.units.ic2=Energy Units
gui.appliedenergistics2.units.mekanism=Joules gui.appliedenergistics2.units.mekanism=Joules
gui.appliedenergistics2.units.rotarycraft=Watt gui.appliedenergistics2.units.rotarycraft=Watt
gui.appliedenergistics2.units.thermalexpansion=Redstone Flux gui.appliedenergistics2.units.thermalexpansion=Redstone Flux
// Colors
gui.appliedenergistics2.White=Weiß gui.appliedenergistics2.White=Weiß
gui.appliedenergistics2.Orange=Orange gui.appliedenergistics2.Orange=Orange
gui.appliedenergistics2.Magenta=Magenta gui.appliedenergistics2.Magenta=Magenta
@@ -302,6 +350,8 @@ gui.appliedenergistics2.Red=Rot
gui.appliedenergistics2.Black=Schwarz gui.appliedenergistics2.Black=Schwarz
gui.appliedenergistics2.Fluix=Fluix gui.appliedenergistics2.Fluix=Fluix
// Waila
waila.appliedenergistics2.Crafting=Fertigung
waila.appliedenergistics2.DeviceOnline=Gerät Online waila.appliedenergistics2.DeviceOnline=Gerät Online
waila.appliedenergistics2.DeviceOffline=Gerät Offline waila.appliedenergistics2.DeviceOffline=Gerät Offline
waila.appliedenergistics2.DeviceMissingChannel=Gerät ohne Kanal waila.appliedenergistics2.DeviceMissingChannel=Gerät ohne Kanal
@@ -311,6 +361,7 @@ waila.appliedenergistics2.Showing=Zeigt
waila.appliedenergistics2.Contains=Enthält waila.appliedenergistics2.Contains=Enthält
waila.appliedenergistics2.Channels=%1$d von %2$d Kanälen waila.appliedenergistics2.Channels=%1$d von %2$d Kanälen
// Items
item.appliedenergistics2.ItemBasicStorageCell.1k.name=1k-ME-Speicherzelle item.appliedenergistics2.ItemBasicStorageCell.1k.name=1k-ME-Speicherzelle
item.appliedenergistics2.ItemBasicStorageCell.4k.name=4k-ME-Speicherzelle item.appliedenergistics2.ItemBasicStorageCell.4k.name=4k-ME-Speicherzelle
item.appliedenergistics2.ItemBasicStorageCell.16k.name=16k-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.CardInverter.name=Umkehrungskarte
item.appliedenergistics2.ItemMaterial.CardRedstone.name=Redstone-Karte item.appliedenergistics2.ItemMaterial.CardRedstone.name=Redstone-Karte
item.appliedenergistics2.ItemMaterial.CardSpeed.name=Beschleunigungskarte item.appliedenergistics2.ItemMaterial.CardSpeed.name=Beschleunigungskarte
item.appliedenergistics2.ItemMaterial.Cell2SpatialPart.name=2³ Spatial Component item.appliedenergistics2.ItemMaterial.Cell2SpatialPart.name=2³ Raumkomponente
item.appliedenergistics2.ItemMaterial.Cell16SpatialPart.name=16³ Spatial Component item.appliedenergistics2.ItemMaterial.Cell16SpatialPart.name=16³ Raumkomponente
item.appliedenergistics2.ItemMaterial.Cell128SpatialPart.name=128³ Spatial Component item.appliedenergistics2.ItemMaterial.Cell128SpatialPart.name=128³ Raumkomponente
item.appliedenergistics2.ItemMaterial.Cell1kPart.name=1k-ME-Speicherkomponente item.appliedenergistics2.ItemMaterial.Cell1kPart.name=1k-ME-Speicherkomponente
item.appliedenergistics2.ItemMaterial.Cell4kPart.name=4k-ME-Speicherkomponente item.appliedenergistics2.ItemMaterial.Cell4kPart.name=4k-ME-Speicherkomponente
item.appliedenergistics2.ItemMaterial.Cell16kPart.name=16k-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.ItemMaterial.CardCrafting.name=Fertigungskarte
item.appliedenergistics2.ItemPart.AnnihilationPlane.name=ME-Annihilationsfeld item.appliedenergistics2.ItemPart.AnnihilationPlane.name=ME-Annihilationsfeld
item.appliedenergistics2.ItemPart.IdentityAnnihilationPlane.name=ME-Identitätsannihilationsfelds
item.appliedenergistics2.ItemPart.CableAnchor.name=Kabelanker item.appliedenergistics2.ItemPart.CableAnchor.name=Kabelanker
item.appliedenergistics2.ItemPart.CableCovered.name=Verdecktes ME-Kabel item.appliedenergistics2.ItemPart.CableCovered.name=Verdecktes ME-Kabel
item.appliedenergistics2.ItemPart.CableGlass.name=ME-Glaskabel 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.ToggleBus.name=Schaltbarer ME-Bus
item.appliedenergistics2.ItemPart.CraftingMonitor.name=ME-Fertigungsmonitor item.appliedenergistics2.ItemPart.CraftingMonitor.name=ME-Fertigungsmonitor
item.appliedenergistics2.ItemPart.InterfaceTerminal.name=ME-Schnittstellenkonsole item.appliedenergistics2.ItemPart.InterfaceTerminal.name=ME-Schnittstellenkonsole
item.appliedenergistics2.ItemPart.InvalidType.name=Deaktiviertes Item
item.appliedenergistics2.ItemSpatialStorageCell.128Cubed.name=128³-Raumspeicherzelle item.appliedenergistics2.ItemSpatialStorageCell.128Cubed.name=128³-Raumspeicherzelle
item.appliedenergistics2.ItemSpatialStorageCell.16Cubed.name=16³-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.ToolDebugCard.name=Dev.Debug-Karte
item.appliedenergistics2.ToolReplicatorCard.name=Dev.Replikator-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.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.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.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.ChunkLoggerOn=Chunk Logging ist aktiviert
commands.ae2.ChunkLoggerOff=Chunk Logging is nun deaktiviert commands.ae2.ChunkLoggerOff=Chunk Logging ist deaktiviert
commands.ae2.Supporters=Zeigt eine Liste aller AE2-Unterstützer 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