Compare commits

...

31 Commits

Author SHA1 Message Date
yueh ac45095cb4 Merge pull request #2100 from yueh/fix-2099
Fixes #2099: No neighbor update of Pressure P2P before IAirHandler is validated.
2016-01-13 14:57:59 +01:00
yueh 68d3025fac Fixes #2099: No neighbor update of Pressure P2P before IAirHandler is validated. 2016-01-10 21:01:02 +01:00
yueh a62e157e7c Merge pull request #2091 from Adaptivity/master
Ore Dictionary support for recipes
2016-01-08 21:00:34 +01:00
yueh 106b823827 Merge pull request #2088 from fnuecke/master
Reworked computer P2P tunnel for #2087
2016-01-08 20:48:27 +01:00
yueh 8406c00e22 Merge pull request #2092 from GWYOG/master_patch_1
Update zh_CN.lang, fix #2090
2016-01-08 20:36:29 +01:00
JJN 22f05428be fixed #2090
fixed #2090
2016-01-07 09:29:49 +08:00
Adaptivity bd0bf26f30 Ore Dictionary support for recipes
Added missing changes to oredict.recipe
2016-01-06 20:29:33 +03:00
Florian Nücke 2ea05bce5f Reworked computer P2P tunnel to use events, and cleaned up reconnection, fixes #2087.
Just `onTunnelNetworkChange` with tickable is apparently less exhaustive, and less stable. This now avoids issues with network splits and reconnects not being handled in some cases. Also simplified reconnection; there was some duplicate logic in there, with a missing validity check which potentially led to invalid connections.
2016-01-05 19:05:25 +01:00
yueh f47fd1957a Merge pull request #2075 from yueh/fix-2043
Fixes #2043: Storage buses updates should happen in the correct order.
2016-01-05 13:53:01 +01:00
yueh a890e57e44 Merge pull request #2085 from yueh/fix-wrong-api-version
Changed outdated API version to rv3
2016-01-04 08:09:58 +01:00
thatsIch 6e61627d7c Merge pull request #2006 from Mazdallier/patch-1
Update fr_FR.lang
2016-01-03 14:42:59 +01:00
thatsIch 580a17987b Merge pull request #2079 from Honon/patch-1
Japanese translation files
2016-01-03 14:42:07 +01:00
yueh bfe2e6ecb3 API version will be replaced during build with the correct rv. 2016-01-03 14:28:37 +01:00
yueh 38e7e579fa Fixes #2043: Storage buses updates should happen in the correct order.
This is loosely based on #2032 and should prevent any duplicated event,
but still does a refresh the whole cache due to potentially issues with
some inventories.

It also ensures that storage buses will not announce a CellArrayUpdate
before they are fully initialized, thus no longer causing them to return
null during an update.

Fixes #2403
2016-01-03 13:23:51 +01:00
Tier 6aa91c3f65 Japanese translation files
Hello!!
As we have created a Japanese translation files , and you sure you want to got to add when it is good?
2015-12-29 17:46:20 +09:00
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
yueh 04b1ca3485 Merge pull request #2050 from XFRGod/patch-7
Update hu_HU.lang
2015-12-11 22:39:14 +01:00
yueh c14f688100 Merge pull request #1997 from thatsIch/b-1995-versionchecker-config
Fixes #1995: Allows creation of version checker config file after start up
2015-12-11 22:38:54 +01:00
yueh 8bf98919e2 Merge pull request #2053 from AppliedEnergistics/revert-2032-feature-cached-networkmonitor
Revert "Changed NetworkMonitor to update its cache."
2015-12-11 22:31:46 +01:00
yueh 1862ab3562 Revert "Changed NetworkMonitor to update its cache." 2015-12-11 22:26:21 +01:00
XFRGod df6070ecbd Update hu_HU.lang
This is a language "correction"(?) and typo fixing update for the lang file and now it's 110% localized:D
2015-12-11 16:04:16 +01:00
Mazdallier 5bb0ac7833 Update fr_FR.lang
thanks Pyeroh
2015-11-17 10:27:12 +01:00
Mazdallier 55c0e6aa56 Update fr_FR.lang 2015-11-16 09:47:36 +01:00
thatsIch 8c62e1e7a6 Fixes #1995: Allows creation of version checker config file after start up 2015-11-11 21:39:29 +01:00
134 changed files with 1449 additions and 637 deletions
+4
View File
@@ -78,8 +78,12 @@ minecraft {
version = minecraft_version + "-" + forge_version
replaceIn "AEConfig.java"
replaceIn "package-info.java"
replace "@version@", project.version
replace "@aeversion@", aeversion
replace "@aechannel@", aechannel
replace "@aebuild@", aebuild
// used when launching minecraft in dev env
runDir = "run"
+1 -1
View File
@@ -21,7 +21,7 @@
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
@API( apiVersion = "rv2", owner = "appliedenergistics2", provides = "appliedenergistics2|API" ) package appeng.api;
@API( apiVersion = "@aeversion@", owner = "appliedenergistics2", provides = "appliedenergistics2|API" ) package appeng.api;
import cpw.mods.fml.common.API;
@@ -413,7 +413,7 @@ public class ClientHelper extends ServerHelper
}
catch( final IOException e )
{
AELog.error( e );
AELog.debug( e );
}
}
}
@@ -410,7 +410,7 @@ public abstract class AEBaseGui extends GuiContainer
}
catch( final IOException e )
{
AELog.error( e );
AELog.debug( e );
}
}
else if( slot instanceof SlotCraftingTerm )
@@ -779,7 +779,7 @@ public abstract class AEBaseGui extends GuiContainer
}
catch( final Exception err )
{
AELog.warning( "[AppEng] AE prevented crash while drawing slot: " + err.toString() );
AELog.warn( "[AppEng] AE prevented crash while drawing slot: " + err.toString() );
}
this.setItemRender( pIR );
return;
@@ -846,7 +846,7 @@ public abstract class AEBaseGui extends GuiContainer
}
catch( final Exception err )
{
AELog.error( err );
AELog.debug( err );
}
}
( (AppEngSlot) s ).setIsValid( isValid ? hasCalculatedValidness.Valid : hasCalculatedValidness.Invalid );
@@ -880,7 +880,7 @@ public abstract class AEBaseGui extends GuiContainer
}
catch( final Exception err )
{
AELog.warning( "[AppEng] AE prevented crash while drawing slot: " + err.toString() );
AELog.warn( "[AppEng] AE prevented crash while drawing slot: " + err.toString() );
}
}
// do the usual for non-ME Slots.
@@ -556,7 +556,7 @@ public class GuiCraftConfirm extends AEBaseGui
}
catch( final IOException e )
{
AELog.error( e );
AELog.debug( e );
}
}
@@ -573,7 +573,7 @@ public class GuiCraftConfirm extends AEBaseGui
}
catch( final Throwable e )
{
AELog.error( e );
AELog.debug( e );
}
}
}
@@ -129,7 +129,7 @@ public class GuiCraftingCPU extends AEBaseGui implements ISortSource
}
catch( final IOException e )
{
AELog.error( e );
AELog.debug( e );
}
}
}
@@ -121,7 +121,7 @@ public class GuiCraftingStatus extends GuiCraftingCPU
}
catch( final IOException e )
{
AELog.error( e );
AELog.debug( e );
}
}
@@ -233,7 +233,7 @@ public class GuiLevelEmitter extends GuiUpgradeable
}
catch( final IOException e )
{
AELog.error( e );
AELog.debug( e );
}
}
@@ -269,7 +269,7 @@ public class GuiLevelEmitter extends GuiUpgradeable
}
catch( final IOException e )
{
AELog.error( e );
AELog.debug( e );
}
}
else
@@ -199,7 +199,7 @@ public class GuiMEMonitorable extends AEBaseMEGui implements ISortSource, IConfi
}
catch( final IOException e )
{
AELog.error( e );
AELog.debug( e );
}
}
@@ -59,7 +59,7 @@ public class GuiNetworkTool extends AEBaseGui
}
catch( final IOException e )
{
AELog.error( e );
AELog.debug( e );
}
}
@@ -240,7 +240,7 @@ public class GuiPriority extends AEBaseGui
}
catch( final IOException e )
{
AELog.error( e );
AELog.debug( e );
}
}
@@ -276,7 +276,7 @@ public class GuiPriority extends AEBaseGui
}
catch( final IOException e )
{
AELog.error( e );
AELog.debug( e );
}
}
else
@@ -85,7 +85,7 @@ public class GuiQuartzKnife extends AEBaseGui
}
catch( final IOException e )
{
AELog.error( e );
AELog.debug( e );
}
}
else
@@ -90,7 +90,7 @@ public class GuiSecurity extends GuiMEMonitorable
}
catch( final IOException e )
{
AELog.error( e );
AELog.debug( e );
}
}
}
@@ -137,7 +137,7 @@ public class GuiStorageBus extends GuiUpgradeable
}
catch( final IOException e )
{
AELog.error( e );
AELog.debug( e );
}
}
}
@@ -209,7 +209,7 @@ public class RenderBlocksWorkaround extends RenderBlocks
}
catch( final Throwable t )
{
AELog.error( t );
AELog.debug( t );
// meh
}
return false;
@@ -77,9 +77,9 @@ public class TESRWrapper extends TileEntitySpecialRenderer
}
catch( final Throwable t )
{
AELog.severe( "Hi, Looks like there was a crash while rendering something..." );
AELog.error( "Hi, Looks like there was a crash while rendering something..." );
t.printStackTrace();
AELog.severe( "MC will now crash ( probably )!" );
AELog.error( "MC will now crash ( probably )!" );
throw new IllegalStateException( t );
}
}
@@ -104,9 +104,9 @@ public final class WorldRender implements ISimpleBlockRenderingHandler
if( !this.hasError )
{
this.hasError = true;
AELog.severe( "Invalid render - item/block mismatch" );
AELog.severe( " item: " + item.getUnlocalizedName() );
AELog.severe( " block: " + blk.getUnlocalizedName() );
AELog.error( "Invalid render - item/block mismatch" );
AELog.error( " item: " + item.getUnlocalizedName() );
AELog.error( " block: " + blk.getUnlocalizedName() );
}
}
}
@@ -169,7 +169,7 @@ public class RenderBlockCharger extends BaseBlockRender<BlockCharger, TileCharge
}
catch( final Exception err )
{
AELog.error( err );
AELog.debug( err );
}
finally
{
@@ -165,7 +165,7 @@ public class RenderBlockCraftingCPUMonitor extends RenderBlockCraftingCPU<BlockC
}
catch( final Exception e )
{
AELog.error( e );
AELog.debug( e );
}
finally
{
@@ -318,7 +318,7 @@ public class RenderBlockInscriber extends BaseBlockRender<BlockInscriber, TileIn
}
catch( final Exception err )
{
AELog.error( err );
AELog.debug( err );
}
GL11.glPopMatrix();
@@ -146,7 +146,7 @@ public abstract class AEBaseContainer extends Container
final GuiSync annotation = f.getAnnotation( GuiSync.class );
if( this.syncData.containsKey( annotation.value() ) )
{
AELog.warning( "Channel already in use: " + annotation.value() + " for " + f.getName() );
AELog.warn( "Channel already in use: " + annotation.value() + " for " + f.getName() );
}
else
{
@@ -208,7 +208,7 @@ public abstract class AEBaseContainer extends Container
}
catch( final IOException e )
{
AELog.error( e );
AELog.debug( e );
}
this.dataChunks.clear();
@@ -270,7 +270,7 @@ public abstract class AEBaseContainer extends Container
}
catch( final IOException e )
{
AELog.error( e );
AELog.debug( e );
return;
}
}
@@ -1109,7 +1109,7 @@ public abstract class AEBaseContainer extends Container
}
catch( final IOException e )
{
AELog.error( e );
AELog.debug( e );
}
}
}
@@ -1178,7 +1178,7 @@ public abstract class AEBaseContainer extends Container
}
catch( final IOException e )
{
AELog.error( e );
AELog.debug( e );
}
}
}
@@ -70,15 +70,15 @@ public class SyncData
}
catch( final IllegalArgumentException e )
{
AELog.error( e );
AELog.debug( e );
}
catch( final IllegalAccessException e )
{
AELog.error( e );
AELog.debug( e );
}
catch( final IOException e )
{
AELog.error( e );
AELog.debug( e );
}
}
@@ -127,11 +127,11 @@ public class SyncData
}
catch( final IllegalArgumentException e )
{
AELog.error( e );
AELog.debug( e );
}
catch( final IllegalAccessException e )
{
AELog.error( e );
AELog.debug( e );
}
}
@@ -143,11 +143,11 @@ public class SyncData
}
catch( final IllegalArgumentException e )
{
AELog.error( e );
AELog.debug( e );
}
catch( final IllegalAccessException e )
{
AELog.error( e );
AELog.debug( e );
}
}
@@ -199,11 +199,11 @@ public class SyncData
}
catch( final IllegalArgumentException e )
{
AELog.error( e );
AELog.debug( e );
}
catch( final IllegalAccessException e )
{
AELog.error( e );
AELog.debug( e );
}
}
}
@@ -280,7 +280,7 @@ public class ContainerCraftConfirm extends AEBaseContainer
catch( final Throwable e )
{
this.getPlayerInv().player.addChatMessage( new ChatComponentText( "Error: " + e.toString() ) );
AELog.error( e );
AELog.debug( e );
this.setValidContainer( false );
this.result = null;
}
@@ -121,7 +121,7 @@ public class ContainerCraftingCPU extends AEBaseContainer implements IMEMonitorH
}
catch( final IOException e )
{
AELog.error( e );
AELog.debug( e );
}
}
}
@@ -194,7 +194,7 @@ public class ContainerMEMonitorable extends AEBaseContainer implements IConfigMa
}
catch( final IOException e )
{
AELog.error( e );
AELog.debug( e );
}
}
}
@@ -237,7 +237,7 @@ public class ContainerMEMonitorable extends AEBaseContainer implements IConfigMa
}
catch( final IOException e )
{
AELog.error( e );
AELog.debug( e );
}
}
@@ -335,7 +335,7 @@ public class ContainerMEMonitorable extends AEBaseContainer implements IConfigMa
}
catch( final IOException e )
{
AELog.error( e );
AELog.debug( e );
}
}
}
+319 -38
View File
@@ -19,93 +19,374 @@
package appeng.core;
import org.apache.logging.log4j.Level;
import javax.annotation.Nonnull;
import cpw.mods.fml.relauncher.FMLRelaunchLog;
import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.message.ParameterizedMessage;
import appeng.core.features.AEFeature;
import appeng.tile.AEBaseTile;
import appeng.util.Platform;
/**
* Utility class for easier logging.
*/
public final class AELog
{
public static final FMLRelaunchLog INSTANCE = FMLRelaunchLog.log;
private static final String LOGGER_PREFIX = "AE2:";
private static final String SERVER_SUFFIX = "S";
private static final String CLIENT_SUFFIX = "C";
private static final String BLOCK_UPDATE = "Block Update of %s @ ( %d, %d, %d )";
private static final String DEFAULT_EXCEPTION_MESSAGE = "Exception: ";
private AELog()
{
}
public static void warning( final String format, final Object... data )
/**
* Returns a {@link Logger} logger suitable for the effective side (client/server).
*
* @return a suitable logger instance
*/
private static Logger getLogger()
{
log( Level.WARN, format, data );
final String loggerName = LOGGER_PREFIX + ( Platform.isServer() ? SERVER_SUFFIX : CLIENT_SUFFIX );
final Logger logger = LogManager.getLogger( loggerName );
return logger;
}
private static void log( final Level level, final String format, final Object... data )
/**
* Indicates of the global log is enabled or disabled.
*
* By default it is enabled.
*
* @return true when the log is enabled.
*/
public static boolean isLogEnabled()
{
if( AEConfig.instance == null || AEConfig.instance.isFeatureEnabled( AEFeature.Logging ) )
return AEConfig.instance == null || AEConfig.instance.isFeatureEnabled( AEFeature.Logging );
}
/**
* Logs a formatted message with a specific log level.
*
* This uses {@link String#format(String, Object...)} as opposed to the {@link ParameterizedMessage} to allow a more
* flexible formatting.
*
* The output can be globally disabled via the configuration file.
*
* @param level the intended level.
* @param message the message to be formatted.
* @param params the parameters used for {@link String#format(String, Object...)}.
*/
public static void log( @Nonnull final Level level, @Nonnull final String message, final Object... params )
{
if( AELog.isLogEnabled() )
{
FMLRelaunchLog.log( "AE2:" + ( Platform.isServer() ? "S" : "C" ), level, format, data );
final String formattedMessage = String.format( message, params );
final Logger logger = getLogger();
logger.log( level, formattedMessage );
}
}
public static void grinder( final String o )
/**
* Log an exception with a custom message formated via {@link String#format(String, Object...)}
*
* Similar to {@link AELog#log(Level, String, Object...)}.
*
* @see AELog#log(Level, String, Object...)
*
* @param level the intended level.
* @param exception
* @param message the message to be formatted.
* @param params the parameters used for {@link String#format(String, Object...)}.
*/
public static void log( @Nonnull final Level level, @Nonnull final Throwable exception, @Nonnull String message, final Object... params )
{
if( AEConfig.instance.isFeatureEnabled( AEFeature.GrinderLogging ) )
if( AELog.isLogEnabled() )
{
log( Level.DEBUG, "grinder: " + o );
final String formattedMessage = String.format( message, params );
final Logger logger = getLogger();
logger.log( level, formattedMessage, exception );
}
}
public static void integration( final Throwable exception )
/**
* @see AELog#log(Level, String, Object...)
* @param format
* @param params
*/
public static void info( @Nonnull final String format, final Object... params )
{
if( AEConfig.instance.isFeatureEnabled( AEFeature.IntegrationLogging ) )
{
error( exception );
}
log( Level.INFO, format, params );
}
public static void error( final Throwable e )
/**
* Log exception as {@link Level#INFO}
*
* @see AELog#log(Level, Throwable, String, Object...)
*
* @param exception
*/
public static void info( @Nonnull final Throwable exception )
{
if( AEConfig.instance.isFeatureEnabled( AEFeature.Logging ) )
{
severe( "Error: " + e.getClass().getName() + " : " + e.getMessage() );
e.printStackTrace();
}
log( Level.INFO, exception, DEFAULT_EXCEPTION_MESSAGE );
}
public static void severe( final String format, final Object... data )
/**
* Log exception as {@link Level#INFO}
*
* @see AELog#log(Level, Throwable, String, Object...)
*
* @param exception
* @param message
*/
public static void info( @Nonnull final Throwable exception, @Nonnull final String message )
{
log( Level.ERROR, format, data );
log( Level.INFO, exception, message );
}
public static void blockUpdate( final int xCoord, final int yCoord, final int zCoord, final AEBaseTile aeBaseTile )
/**
* @see AELog#log(Level, String, Object...)
* @param format
* @param params
*/
public static void warn( @Nonnull final String format, final Object... params )
{
if( AEConfig.instance.isFeatureEnabled( AEFeature.UpdateLogging ) )
{
info( aeBaseTile.getClass().getName() + " @ " + xCoord + ", " + yCoord + ", " + zCoord );
}
log( Level.WARN, format, params );
}
public static void info( final String format, final Object... data )
/**
* Log exception as {@link Level#WARN}
*
* @see AELog#log(Level, Throwable, String, Object...)
*
* @param exception
*/
public static void warn( @Nonnull final Throwable exception )
{
log( Level.INFO, format, data );
log( Level.WARN, exception, DEFAULT_EXCEPTION_MESSAGE );
}
public static void crafting( final String format, final Object... data )
/**
* Log exception as {@link Level#WARN}
*
* @see AELog#log(Level, Throwable, String, Object...)
*
* @param exception
* @param message
*/
public static void warn( @Nonnull final Throwable exception, @Nonnull final String message )
{
if( AEConfig.instance.isFeatureEnabled( AEFeature.CraftingLog ) )
{
log( Level.INFO, format, data );
}
log( Level.WARN, exception, message );
}
public static void debug( final String format, final Object... data )
/**
* @see AELog#log(Level, String, Object...)
* @param format
* @param params
*/
public static void error( @Nonnull final String format, final Object... params )
{
if( AEConfig.instance.isFeatureEnabled( AEFeature.DebugLogging ) )
log( Level.ERROR, format, params );
}
/**
* Log exception as {@link Level#ERROR}
*
* @see AELog#log(Level, Throwable, String, Object...)
*
* @param exception
*/
public static void error( @Nonnull final Throwable exception )
{
log( Level.ERROR, exception, DEFAULT_EXCEPTION_MESSAGE );
}
/**
* Log exception as {@link Level#ERROR}
*
* @see AELog#log(Level, Throwable, String, Object...)
*
* @param exception
* @param message
*/
public static void error( @Nonnull final Throwable exception, @Nonnull final String message )
{
log( Level.ERROR, exception, message );
}
/**
* Log message as {@link Level#DEBUG}
*
* @see AELog#log(Level, String, Object...)
* @param format
* @param data
*/
public static void debug( @Nonnull final String format, final Object... data )
{
if( AELog.isDebugLogEnabled() )
{
log( Level.DEBUG, format, data );
}
}
/**
* Log exception as {@link Level#DEBUG}
*
* @see AELog#log(Level, Throwable, String, Object...)
*
* @param exception
*/
public static void debug( @Nonnull final Throwable exception )
{
if( AELog.isDebugLogEnabled() )
{
log( Level.DEBUG, exception, DEFAULT_EXCEPTION_MESSAGE );
}
}
/**
* Log exception as {@link Level#DEBUG}
*
* @see AELog#log(Level, Throwable, String, Object...)
*
* @param exception
* @param message
*/
public static void debug( @Nonnull final Throwable exception, @Nonnull final String message )
{
if( AELog.isDebugLogEnabled() )
{
log( Level.DEBUG, exception, message );
}
}
/**
* Use to check for an enabled debug log.
*
* Can be used to prevent the execution of debug logic.
*
* @return true when the debug log is enabled.
*/
public static boolean isDebugLogEnabled()
{
return AEConfig.instance.isFeatureEnabled( AEFeature.DebugLogging );
}
//
// Specialized handlers
//
/**
* A specialized logging for grinder recipes, can be disabled inside configuration file.
*
* @param message String to be logged
*/
public static void grinder( @Nonnull final String message )
{
if( AEConfig.instance.isFeatureEnabled( AEFeature.GrinderLogging ) )
{
log( Level.DEBUG, "grinder: " + message );
}
}
/**
* A specialized logging for mod integration errors, can be disabled inside configuration file.
*
* @param exception
*/
public static void integration( @Nonnull final Throwable exception )
{
if( AEConfig.instance.isFeatureEnabled( AEFeature.IntegrationLogging ) )
{
debug( exception );
}
}
/**
* Logging of block updates.
*
* Off by default, can be enabled inside the configuration file.
*
* @see AELog#log(Level, String, Object...)
* @param xCoord
* @param yCoord
* @param zCoord
* @param aeBaseTile
*/
public static void blockUpdate( final int xCoord, final int yCoord, final int zCoord, @Nonnull final AEBaseTile aeBaseTile )
{
if( AEConfig.instance.isFeatureEnabled( AEFeature.UpdateLogging ) )
{
info( BLOCK_UPDATE, aeBaseTile.getClass().getName(), xCoord, +yCoord, +zCoord );
}
}
/**
* Use to check for an enabled crafting log.
*
* Can be used to prevent the execution of unneeded logic.
*
* @return true when the crafting log is enabled.
*/
public static boolean isCraftingLogEnabled()
{
return AEConfig.instance.isFeatureEnabled( AEFeature.CraftingLog );
}
/**
* Logging for autocrafting.
*
* Off by default, can be enabled inside the configuration file.
*
* @see AELog#log(Level, String, Object...)
* @param message
* @param params
*/
public static void crafting( @Nonnull final String message, final Object... params )
{
if( AELog.isCraftingLogEnabled() )
{
log( Level.INFO, message, params );
}
}
/**
* Use to check for an enabled crafting debug log.
*
* Can be used to prevent the execution of unneeded logic.
*
* @return true when the crafting debug log is enabled.
*/
public static boolean isCraftingDebugLogEnabled()
{
return AEConfig.instance.isFeatureEnabled( AEFeature.CraftingLog ) && AEConfig.instance.isFeatureEnabled( AEFeature.DebugLogging );
}
/**
* Debug logging for autocrafting.
*
* Off by default, can be enabled inside the configuration file.
*
* @see AELog#log(Level, String, Object...)
* @param message
* @param params
*/
public static void craftingDebug( @Nonnull final String message, final Object... params )
{
if( AELog.isCraftingDebugLogEnabled() )
{
log( Level.DEBUG, message, params );
}
}
}
+2 -2
View File
@@ -95,8 +95,8 @@ public class IMCHandler
}
catch( final Exception t )
{
AELog.warning( "Problem detected when processing IMC " + key + " from " + message.getSender() );
AELog.error( t );
AELog.warn( "Problem detected when processing IMC " + key + " from " + message.getSender() );
AELog.debug( t );
}
}
}
+2 -2
View File
@@ -100,12 +100,12 @@ public class RecipeLoader implements Runnable
// on failure use jar parsing
catch( final IOException e )
{
AELog.error( e );
AELog.debug( e );
this.handler.parseRecipes( new JarLoader( ASSETS_RECIPE_PATH ), "index.recipe" );
}
catch( final URISyntaxException e )
{
AELog.error( e );
AELog.debug( e );
this.handler.parseRecipes( new JarLoader( ASSETS_RECIPE_PATH ), "index.recipe" );
}
}
+11 -11
View File
@@ -109,7 +109,7 @@ public class ApiPart implements IPartHelper
}
catch( final ClassNotFoundException e )
{
AELog.error( e );
AELog.debug( e );
}
Class myCLass;
@@ -134,8 +134,8 @@ public class ApiPart implements IPartHelper
}
catch( final Throwable t )
{
AELog.warning( "Error loading " + name );
AELog.error( t );
AELog.warn( "Error loading " + name );
AELog.debug( t );
// throw new RuntimeException( t );
}
f = myCLass.getName();
@@ -164,7 +164,7 @@ public class ApiPart implements IPartHelper
}
catch( final Throwable t )
{
AELog.error( t );
AELog.debug( t );
}
for( final MethodNode mn : n.methods )
@@ -197,13 +197,13 @@ public class ApiPart implements IPartHelper
if( !rootC.isInstance( fish ) )
{
hasError = true;
AELog.severe( "Error, Expected layer to implement " + root + " did not." );
AELog.error( "Error, Expected layer to implement " + root + " did not." );
}
if( fish instanceof LayerBase )
{
hasError = true;
AELog.severe( "Error, Expected layer to NOT implement LayerBase but it DID." );
AELog.error( "Error, Expected layer to NOT implement LayerBase but it DID." );
}
if( !fullPath.contains( ".fmp." ) )
@@ -211,13 +211,13 @@ public class ApiPart implements IPartHelper
if( !( fish instanceof TileCableBus ) )
{
hasError = true;
AELog.severe( "Error, Expected layer to implement TileCableBus did not." );
AELog.error( "Error, Expected layer to implement TileCableBus did not." );
}
if( !( fish instanceof TileEntity ) )
{
hasError = true;
AELog.severe( "Error, Expected layer to implement TileEntity did not." );
AELog.error( "Error, Expected layer to implement TileEntity did not." );
}
}
@@ -228,8 +228,8 @@ public class ApiPart implements IPartHelper
}
catch( final Throwable t )
{
AELog.severe( "Layer: " + n.name + " Failed." );
AELog.error( t );
AELog.error( "Layer: " + n.name + " Failed." );
AELog.debug( t );
}
this.roots.put( fullPath, clazz );
@@ -297,7 +297,7 @@ public class ApiPart implements IPartHelper
}
catch( final Exception e )
{
AELog.error( e );
AELog.debug( e );
throw new IllegalStateException( "Unable to manage part API.", e );
}
return clazz;
@@ -61,22 +61,22 @@ public final class GridCacheRegistry implements IGridCacheRegistry
}
catch( final NoSuchMethodException e )
{
AELog.severe( "Grid Caches must have a constructor with IGrid as the single param." );
AELog.error( "Grid Caches must have a constructor with IGrid as the single param." );
throw new IllegalArgumentException( e );
}
catch( final InvocationTargetException e )
{
AELog.severe( "Grid Caches must have a constructor with IGrid as the single param." );
AELog.error( "Grid Caches must have a constructor with IGrid as the single param." );
throw new IllegalStateException( e );
}
catch( final InstantiationException e )
{
AELog.severe( "Grid Caches must have a constructor with IGrid as the single param." );
AELog.error( "Grid Caches must have a constructor with IGrid as the single param." );
throw new IllegalStateException( e );
}
catch( final IllegalAccessException e )
{
AELog.severe( "Grid Caches must have a constructor with IGrid as the single param." );
AELog.error( "Grid Caches must have a constructor with IGrid as the single param." );
throw new IllegalStateException( e );
}
}
@@ -72,8 +72,8 @@ public class RecipeHandlerRegistry implements IRecipeHandlerRegistry
}
catch( final Throwable e )
{
AELog.severe( "Error Caused when trying to construct " + clz.getName() );
AELog.error( e );
AELog.error( "Error Caused when trying to construct " + clz.getName() );
AELog.debug( e );
this.handlers.put( name, null ); // clear it..
@@ -101,7 +101,7 @@ public class RecipeHandlerRegistry implements IRecipeHandlerRegistry
}
catch( final Throwable t )
{
AELog.error( t );
AELog.debug( t );
}
if( rr != null )
@@ -51,19 +51,19 @@ public class AppEngClientPacketHandler extends AppEngPacketHandlerBase implement
}
catch( final InstantiationException e )
{
AELog.error( e );
AELog.debug( e );
}
catch( final IllegalAccessException e )
{
AELog.error( e );
AELog.debug( e );
}
catch( final IllegalArgumentException e )
{
AELog.error( e );
AELog.debug( e );
}
catch( final InvocationTargetException e )
{
AELog.error( e );
AELog.debug( e );
}
}
}
@@ -48,19 +48,19 @@ public final class AppEngServerPacketHandler extends AppEngPacketHandlerBase imp
}
catch( final InstantiationException e )
{
AELog.error( e );
AELog.debug( e );
}
catch( final IllegalAccessException e )
{
AELog.error( e );
AELog.debug( e );
}
catch( final IllegalArgumentException e )
{
AELog.error( e );
AELog.debug( e );
}
catch( final InvocationTargetException e )
{
AELog.error( e );
AELog.debug( e );
}
}
}
@@ -121,7 +121,7 @@ public class PacketCraftRequest extends AppEngPacket
{
futureJob.cancel( true );
}
AELog.error( e );
AELog.debug( e );
}
}
}
@@ -186,7 +186,7 @@ public class PacketMEInventoryUpdate extends AppEngPacket
}
catch( final IOException e )
{
AELog.error( e );
AELog.debug( e );
}
return null;
@@ -33,7 +33,6 @@ import net.minecraftforge.common.config.ConfigCategory;
import net.minecraftforge.common.config.Configuration;
import net.minecraftforge.common.config.Property;
import appeng.core.AELog;
import appeng.core.CommonHelper;
@@ -64,7 +63,7 @@ final class PlayerData implements IWorldPlayerData, IOnWorldStartable, IOnWorldS
this.config = configFile;
final ConfigCategory playerList = this.config.getCategory( "players" );
this.playerMapping = new PlayerMapping( playerList, AELog.INSTANCE );
this.playerMapping = new PlayerMapping( playerList );
}
@Nullable
@@ -29,8 +29,6 @@ import com.google.common.base.Preconditions;
import net.minecraftforge.common.config.ConfigCategory;
import cpw.mods.fml.relauncher.FMLRelaunchLog;
/**
* Wrapper class for the player mappings.
@@ -46,9 +44,9 @@ final class PlayerMapping implements IWorldPlayerMapping
*/
private final Map<Integer, UUID> mappings;
public PlayerMapping( final ConfigCategory category, final FMLRelaunchLog log )
public PlayerMapping( final ConfigCategory category )
{
final PlayerMappingsInitializer init = new PlayerMappingsInitializer( category, log );
final PlayerMappingsInitializer init = new PlayerMappingsInitializer( category );
this.mappings = init.getPlayerMappings();
}
@@ -26,8 +26,6 @@ import java.util.UUID;
import net.minecraftforge.common.config.ConfigCategory;
import net.minecraftforge.common.config.Property;
import cpw.mods.fml.relauncher.FMLRelaunchLog;
import appeng.core.AELog;
import appeng.util.UUIDMatcher;
@@ -53,7 +51,7 @@ class PlayerMappingsInitializer
* @param playerList the category for the player list, generally extracted using the "players" tag
* @param log the logger used to warn the server or user of faulty entries
*/
PlayerMappingsInitializer( final ConfigCategory playerList, final FMLRelaunchLog log )
PlayerMappingsInitializer( final ConfigCategory playerList )
{
// Matcher for UUIDs
final UUIDMatcher matcher = new UUIDMatcher();
@@ -78,7 +76,7 @@ class PlayerMappingsInitializer
}
else
{
AELog.warning( "The configuration for players contained an outdated entry instead an expected UUID " + maybeUUID + " for the player " + id + ". Please clean this up." );
AELog.warn( "The configuration for players contained an outdated entry instead an expected UUID " + maybeUUID + " for the player " + id + ". Please clean this up." );
}
}
}
@@ -153,7 +153,7 @@ final class SpawnData implements IWorldSpawnData
catch( final Throwable e )
{
data = new NBTTagCompound();
AELog.error( e );
AELog.debug( e );
}
finally
{
@@ -165,7 +165,7 @@ final class SpawnData implements IWorldSpawnData
}
catch( final IOException e )
{
AELog.error( e );
AELog.debug( e );
}
}
}
@@ -196,7 +196,7 @@ final class SpawnData implements IWorldSpawnData
}
catch( final Throwable e )
{
AELog.error( e );
AELog.debug( e );
}
finally
{
@@ -208,7 +208,7 @@ final class SpawnData implements IWorldSpawnData
}
catch( final IOException e )
{
AELog.error( e );
AELog.debug( e );
}
}
}
@@ -140,7 +140,7 @@ final class StorageData implements IWorldGridStorageData, IOnWorldStartable, IOn
}
catch( final NumberFormatException err )
{
AELog.warning( "The config contained a value which was not represented as a Long: %s", lastString );
AELog.warn( "The config contained a value which was not represented as a Long: %s", lastString );
this.lastGridStorage = 0;
}
+52 -16
View File
@@ -24,26 +24,35 @@ import java.util.concurrent.TimeUnit;
import com.google.common.base.Stopwatch;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World;
import appeng.api.AEApi;
import appeng.api.config.Actionable;
import appeng.api.networking.IGrid;
import appeng.api.networking.IGridHost;
import appeng.api.networking.IGridNode;
import appeng.api.networking.crafting.ICraftingCallback;
import appeng.api.networking.crafting.ICraftingGrid;
import appeng.api.networking.crafting.ICraftingJob;
import appeng.api.networking.crafting.ICraftingPatternDetails;
import appeng.api.networking.security.BaseActionSource;
import appeng.api.networking.security.IActionHost;
import appeng.api.networking.security.MachineSource;
import appeng.api.networking.security.PlayerSource;
import appeng.api.networking.storage.IStorageGrid;
import appeng.api.storage.data.IAEItemStack;
import appeng.api.storage.data.IItemList;
import appeng.api.util.DimensionalCoord;
import appeng.core.AELog;
import appeng.hooks.TickHandler;
public class CraftingJob implements Runnable, ICraftingJob
{
private static final String LOG_CRAFTING_JOB = "CraftingJob (%s) issued by %s requesting [%s] using %s bytes took %s ms";
private static final String LOG_MACHINE_SOURCE_DETAILS = "Machine[object=%s, %s]";
private final MECraftingInventory original;
private final World world;
@@ -145,7 +154,7 @@ public class CraftingJob implements Runnable, ICraftingJob
AELog.crafting( s + " * " + ti.times + " = " + ( ti.perOp * ti.times ) );
}
AELog.crafting( "------------- " + this.bytes + "b real" + timer.elapsed( TimeUnit.MILLISECONDS ) + "ms" );
this.logCraftingJob( "real", timer );
// if ( mode == Actionable.MODULATE )
// craftingInventory.moveItemsToStorage( storage );
}
@@ -171,15 +180,15 @@ public class CraftingJob implements Runnable, ICraftingJob
AELog.crafting( s + " * " + ti.times + " = " + ( ti.perOp * ti.times ) );
}
AELog.crafting( "------------- " + this.bytes + "b simulate" + timer.elapsed( TimeUnit.MILLISECONDS ) + "ms" );
this.logCraftingJob( "simulate", timer );
}
catch( final CraftBranchFailure e1 )
{
AELog.error( e1 );
AELog.debug( e1 );
}
catch( final CraftingCalculationFailure f )
{
AELog.error( f );
AELog.debug( f );
}
catch( final InterruptedException e1 )
{
@@ -190,7 +199,7 @@ public class CraftingJob implements Runnable, ICraftingJob
}
catch( final CraftingCalculationFailure f )
{
AELog.error( f );
AELog.debug( f );
}
catch( final InterruptedException e1 )
{
@@ -199,7 +208,7 @@ public class CraftingJob implements Runnable, ICraftingJob
return;
}
this.log( "crafting job now done" );
AELog.craftingDebug( "crafting job now done" );
}
catch( final Throwable t )
{
@@ -227,14 +236,14 @@ public class CraftingJob implements Runnable, ICraftingJob
if( !this.running )
{
this.log( "crafting job will now sleep" );
AELog.craftingDebug( "crafting job will now sleep" );
while( !this.running )
{
this.monitor.wait();
}
this.log( "crafting job now active" );
AELog.craftingDebug( "crafting job now active" );
}
}
@@ -263,11 +272,6 @@ public class CraftingJob implements Runnable, ICraftingJob
}
}
private void log( final String string )
{
// AELog.crafting( string );
}
@Override
public boolean isSimulation()
{
@@ -327,7 +331,7 @@ public class CraftingJob implements Runnable, ICraftingJob
this.watch.start();
this.running = true;
this.log( "main thread is now going to sleep" );
AELog.craftingDebug( "main thread is now going to sleep" );
this.monitor.notify();
@@ -342,7 +346,7 @@ public class CraftingJob implements Runnable, ICraftingJob
}
}
this.log( "main thread is now active" );
AELog.craftingDebug( "main thread is now active" );
}
return true;
@@ -363,9 +367,41 @@ public class CraftingJob implements Runnable, ICraftingJob
this.tree = tree;
}
private void logCraftingJob( String type, Stopwatch timer )
{
if( AELog.isCraftingLogEnabled() )
{
final String itemToOutput = this.output.toString();
final long elapsedTime = timer.elapsed( TimeUnit.MILLISECONDS );
final String actionSource;
if( this.actionSrc instanceof MachineSource )
{
final IActionHost machineSource = ( (MachineSource) this.actionSrc ).via;
final IGridNode actionableNode = machineSource.getActionableNode();
final IGridHost machine = actionableNode.getMachine();
final DimensionalCoord location = actionableNode.getGridBlock().getLocation();
actionSource = String.format( LOG_MACHINE_SOURCE_DETAILS, machine, location );
}
else if( this.actionSrc instanceof PlayerSource )
{
final PlayerSource source = (PlayerSource) this.actionSrc;
final EntityPlayer player = source.player;
actionSource = player.toString();
}
else
{
actionSource = "[unknown source]";
}
AELog.crafting( LOG_CRAFTING_JOB, type, actionSource, itemToOutput, this.bytes, elapsedTime );
}
}
private static class TwoIntegers
{
private final long perOp = 0;
private final long times = 0;
}
+1 -1
View File
@@ -339,7 +339,7 @@ public class FacadePart implements IFacadePart, IBoxProvider
}
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 )
{
AELog.error( e );
AELog.debug( e );
}
}
@@ -322,7 +322,7 @@ public class CableBusPart extends JCuboidPart implements JNormalOcclusion, IMask
}
catch( final IOException e )
{
AELog.error( e );
AELog.debug( e );
}
}
@@ -46,7 +46,6 @@ public class MultiCraftingTracker
private Future<ICraftingJob>[] jobs = null;
private ICraftingLink[] links = null;
private int failedCraftingAttempts = 0;
public MultiCraftingTracker( final ICraftingRequester o, final int size )
{
@@ -54,11 +53,6 @@ public class MultiCraftingTracker
this.size = size;
}
public int getFailedCraftingAttempts()
{
return this.failedCraftingAttempts;
}
public void readFromNBT( final NBTTagCompound extra )
{
for( int x = 0; x < this.size; x++ )
@@ -115,15 +109,10 @@ public class MultiCraftingTracker
if( link != null )
{
this.failedCraftingAttempts = Math.max( 0, this.failedCraftingAttempts - 1 );
this.setLink( x, link );
return true;
}
else
{
this.failedCraftingAttempts = Math.min( 10, this.failedCraftingAttempts + 1 );
}
return true;
}
}
catch( final InterruptedException e )
+1 -1
View File
@@ -289,7 +289,7 @@ public class TickHandler
}
catch( final Exception e )
{
AELog.error( e );
AELog.debug( e );
}
}
@@ -119,11 +119,11 @@ public class BuildCraftBuilder implements IIntegrationModule
}
catch( final InvocationTargetException ignore )
{
AELog.warning( "Encountered problems while initializing the BuildCraft Builder support. Can not invoke the method %s", blockDefinition );
AELog.warn( "Encountered problems while initializing the BuildCraft Builder support. Can not invoke the method %s", blockDefinition );
}
catch( final IllegalAccessException ignore )
{
AELog.warning( "Encountered problems while initializing the BuildCraft Builder support. Can not access the method %s", blockDefinition );
AELog.warn( "Encountered problems while initializing the BuildCraft Builder support. Can not access the method %s", blockDefinition );
}
}
}
@@ -178,7 +178,7 @@ public class FMP implements IIntegrationModule, IPartFactory, IPartConverter, IF
}
catch( final Throwable t )
{
AELog.error( t );
AELog.debug( t );
}
return null;
}
@@ -211,8 +211,8 @@ public class FMP implements IIntegrationModule, IPartFactory, IPartConverter, IF
}
catch( final Throwable t )
{
AELog.severe( "Failed to register " + layerInterface.getName() + " with FMP, some features may not work with MultiParts." );
AELog.error( t );
AELog.error( "Failed to register " + layerInterface.getName() + " with FMP, some features may not work with MultiParts." );
AELog.debug( t );
}
}
@@ -72,7 +72,7 @@ public class ImmibisMicroblocks implements IImmibisMicroblocks, IIntegrationModu
}
catch( final Throwable t )
{
AELog.error( t );
AELog.debug( t );
}
}
@@ -263,7 +263,7 @@ public class ToolMassCannon extends AEBasePoweredItem implements IStorageCell
}
catch( final Exception err )
{
AELog.error( err );
AELog.debug( err );
}
if( pos != null && type != null && type.getItem() instanceof ItemPaintBall )
@@ -385,7 +385,7 @@ public class ToolMassCannon extends AEBasePoweredItem implements IStorageCell
}
catch( final Exception err )
{
AELog.error( err );
AELog.debug( err );
}
if( pos != null )
+1 -1
View File
@@ -110,7 +110,7 @@ public class GridStorage implements IGridStorage
}
catch( final IOException e )
{
AELog.error( e );
AELog.debug( e );
}
return "";
+4 -4
View File
@@ -184,10 +184,10 @@ public class NetworkEventBus
}
catch( final Throwable e1 )
{
AELog.severe( "[AppEng] Network Event caused exception:" );
AELog.severe( "Offending Class: " + obj.getClass().getName() );
AELog.severe( "Offending Object: " + obj.toString() );
AELog.error( e1 );
AELog.error( "[AppEng] Network Event caused exception:" );
AELog.error( "Offending Class: " + obj.getClass().getName() );
AELog.error( "Offending Object: " + obj.toString() );
AELog.debug( e1 );
throw new IllegalStateException( e1 );
}
+2 -2
View File
@@ -239,8 +239,8 @@ public class GridStorageCache implements IStorageGrid
}
}
this.itemMonitor.forceUpdate( false );
this.fluidMonitor.forceUpdate( false );
this.itemMonitor.forceUpdate();
this.fluidMonitor.forceUpdate();
tracker.applyChanges();
}
+9 -28
View File
@@ -23,14 +23,15 @@ import java.util.Collection;
import java.util.Deque;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.Map;
import java.util.Map.Entry;
import javax.annotation.Nonnegative;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Lists;
import appeng.api.config.AccessRestriction;
import appeng.api.config.Actionable;
@@ -48,7 +49,7 @@ import appeng.me.storage.ItemWatcher;
public class NetworkMonitor<T extends IAEStack<T>> implements IMEMonitor<T>
{
@Nonnull
private static final Deque<NetworkMonitor<?>> GLOBAL_DEPTH = new LinkedList<NetworkMonitor<?>>();
private static final Deque<NetworkMonitor<?>> GLOBAL_DEPTH = Lists.newLinkedList();
@Nonnull
private final GridStorageCache myGridCache;
@@ -57,10 +58,11 @@ public class NetworkMonitor<T extends IAEStack<T>> implements IMEMonitor<T>
@Nonnull
private final IItemList<T> cachedList;
@Nonnull
private final Map<IMEMonitorHandlerReceiver<T>, Object> listeners = new HashMap<IMEMonitorHandlerReceiver<T>, Object>();
private final Map<IMEMonitorHandlerReceiver<T>, Object> listeners;
private boolean sendEvent = false;
private boolean hasChanged = false;
@Nonnegative
private int localDepthSemaphore = 0;
public NetworkMonitor( final GridStorageCache cache, final StorageChannel chan )
@@ -68,6 +70,7 @@ public class NetworkMonitor<T extends IAEStack<T>> implements IMEMonitor<T>
this.myGridCache = cache;
this.myChannel = chan;
this.cachedList = (IItemList<T>) chan.createList();
this.listeners = new HashMap<IMEMonitorHandlerReceiver<T>, Object>();
}
@Override
@@ -227,6 +230,7 @@ public class NetworkMonitor<T extends IAEStack<T>> implements IMEMonitor<T>
private void notifyListenersOfChange( final Iterable<T> diff, final BaseActionSource src )
{
this.hasChanged = true;
final Iterator<Entry<IMEMonitorHandlerReceiver<T>, Object>> i = this.getListeners();
while( i.hasNext() )
@@ -249,22 +253,6 @@ public class NetworkMonitor<T extends IAEStack<T>> implements IMEMonitor<T>
this.postChange( true, changes, src );
}
private void updateCache( Iterable<T> changes, boolean add )
{
for( final T changedItem : changes )
{
T difference = changedItem;
if( !add && changedItem != null )
{
difference = changedItem.copy();
difference.setStackSize( -changedItem.getStackSize() );
}
this.cachedList.add( difference );
}
}
protected void postChange( final boolean add, final Iterable<T> changes, final BaseActionSource src )
{
if( localDepthSemaphore > 0 || GLOBAL_DEPTH.contains( this ) )
@@ -277,7 +265,6 @@ public class NetworkMonitor<T extends IAEStack<T>> implements IMEMonitor<T>
this.sendEvent = true;
this.updateCache( changes, add );
this.notifyListenersOfChange( changes, src );
for( final T changedItem : changes )
@@ -325,17 +312,11 @@ public class NetworkMonitor<T extends IAEStack<T>> implements IMEMonitor<T>
}
}
void forceUpdate( boolean reset )
void forceUpdate()
{
if( reset )
{
this.hasChanged = true;
this.cachedList.resetStatus();
this.getAvailableItems( this.cachedList );
}
this.hasChanged = true;
final Iterator<Entry<IMEMonitorHandlerReceiver<T>, Object>> i = this.getListeners();
while( i.hasNext() )
{
final Entry<IMEMonitorHandlerReceiver<T>, Object> o = i.next();
@@ -116,7 +116,7 @@ public abstract class MBCalculator
}
catch( final Throwable err )
{
AELog.error( err );
AELog.debug( err );
}
this.disconnect();
@@ -83,6 +83,8 @@ import appeng.util.item.AEItemStack;
public final class CraftingCPUCluster implements IAECluster, ICraftingCPU
{
private static final String LOG_MARK_AS_COMPLETE = "Completed job for %s.";
private final WorldCoord min;
private final WorldCoord max;
private final int[] usedOps = new int[3];
@@ -427,12 +429,19 @@ public final class CraftingCPUCluster implements IAECluster, ICraftingCPU
( (CraftingLink) this.myLastLink ).markDone();
}
AELog.crafting( "marking job as complete" );
if( AELog.isCraftingLogEnabled() )
{
final IAEItemStack logStack = this.finalOutput.copy();
logStack.setStackSize( this.startItemCount );
AELog.crafting( LOG_MARK_AS_COMPLETE, logStack );
}
this.remainingItemCount = 0;
this.startItemCount = 0;
this.lastTime = 0;
this.elapsedTime = 0;
this.isComplete = true;
}
private void updateCPU()
@@ -1074,7 +1074,7 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I
}
else
{
AELog.warning( "Invalid NBT For CableBus Container: " + iss.getItem().getClass().getName() + " is not a valid part; it was ignored." );
AELog.warn( "Invalid NBT For CableBus Container: " + iss.getItem().getClass().getName() + " is not a valid part; it was ignored." );
}
}
}
@@ -176,13 +176,6 @@ public class PartExportBus extends PartSharedItemBus implements ICraftingRequest
// :P
}
final int failedAttempts = this.craftingTracker.getFailedCraftingAttempts();
if( this.isCraftingEnabled() && failedAttempts > 0 )
{
return this.getFailedCraftingPenalty( failedAttempts );
}
return this.didSomething ? TickRateModulation.FASTER : TickRateModulation.SLOWER;
}
@@ -306,7 +299,7 @@ public class PartExportBus extends PartSharedItemBus implements ICraftingRequest
}
catch( final GridAccessException e )
{
AELog.error( e );
AELog.debug( e );
}
return items;
@@ -388,18 +381,4 @@ public class PartExportBus extends PartSharedItemBus implements ICraftingRequest
this.nextSlot = ( this.nextSlot + x ) % this.availableSlots();
}
}
private TickRateModulation getFailedCraftingPenalty( final int failedAttempts )
{
if( failedAttempts > 5 )
{
return TickRateModulation.SLOWER;
}
else if( failedAttempts > 1 )
{
return TickRateModulation.SAME;
}
return TickRateModulation.FASTER;
}
}
@@ -378,11 +378,10 @@ public class PartStorageBus extends PartUpgradeable implements IGridTickable, IC
final IMEInventory<IAEItemStack> out = this.getInternalHandler();
// TODO: evaluate, if this is really (not) necessary.
// if( this.monitor != null )
// {
// this.monitor.onTick();
// }
if( this.monitor != null )
{
this.monitor.onTick();
}
IItemList<IAEItemStack> after = AEApi.instance().storage().createItemList();
if( out != null )
@@ -413,16 +412,6 @@ public class PartStorageBus extends PartUpgradeable implements IGridTickable, IC
return this.handler;
}
try
{
// force grid to update handlers...
this.getProxy().getGrid().postEvent( new MENetworkCellArrayUpdate() );
}
catch( final GridAccessException e )
{
// :3
}
this.handlerHash = newHandlerHash;
this.handler = null;
this.monitor = null;
@@ -505,6 +494,16 @@ public class PartStorageBus extends PartUpgradeable implements IGridTickable, IC
}
}
try
{
// force grid to update handlers...
this.getProxy().getGrid().postEvent( new MENetworkCellArrayUpdate() );
}
catch( final GridAccessException e )
{
// :3
}
return this.handler;
}
@@ -24,7 +24,6 @@ import javax.annotation.Nullable;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.IIcon;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
import cpw.mods.fml.relauncher.Side;
@@ -39,29 +38,22 @@ import li.cil.oc.api.network.Node;
import li.cil.oc.api.network.SidedEnvironment;
import li.cil.oc.api.network.Visibility;
import appeng.api.networking.IGridNode;
import appeng.api.networking.ticking.IGridTickable;
import appeng.api.networking.ticking.TickRateModulation;
import appeng.api.networking.ticking.TickingRequest;
import appeng.core.AELog;
import appeng.core.settings.TickRates;
import appeng.hooks.TickHandler;
import appeng.api.networking.events.MENetworkBootingStatusChange;
import appeng.api.networking.events.MENetworkChannelsChanged;
import appeng.api.networking.events.MENetworkEventSubscribe;
import appeng.api.networking.events.MENetworkPowerStatusChange;
import appeng.integration.IntegrationRegistry;
import appeng.integration.IntegrationType;
import appeng.me.GridAccessException;
import appeng.transformer.annotations.Integration.Interface;
import appeng.transformer.annotations.Integration.InterfaceList;
import appeng.util.IWorldCallable;
@InterfaceList( value = { @Interface( iface = "li.cil.oc.api.network.Environment", iname = IntegrationType.OpenComputers ), @Interface( iface = "li.cil.oc.api.network.SidedEnvironment", iname = IntegrationType.OpenComputers ) } )
public final class PartP2POpenComputers extends PartP2PTunnel<PartP2POpenComputers> implements IGridTickable, Environment, SidedEnvironment
public final class PartP2POpenComputers extends PartP2PTunnel<PartP2POpenComputers> implements Environment, SidedEnvironment
{
@Nullable
private final Node node;
private final IWorldCallable<Void> updateCallback;
public PartP2POpenComputers( final ItemStack is )
{
super( is );
@@ -80,8 +72,24 @@ public final class PartP2POpenComputers extends PartP2PTunnel<PartP2POpenCompute
{
this.node = null; // to satisfy final
}
}
this.updateCallback = new UpdateCallback();
@MENetworkEventSubscribe
public void changeStateA( final MENetworkBootingStatusChange bs )
{
this.updateConnections();
}
@MENetworkEventSubscribe
public void changeStateB( final MENetworkChannelsChanged bs )
{
this.updateConnections();
}
@MENetworkEventSubscribe
public void changeStateC( final MENetworkPowerStatusChange bs )
{
this.updateConnections();
}
@Override
@@ -104,15 +112,7 @@ public final class PartP2POpenComputers extends PartP2PTunnel<PartP2POpenCompute
@Override
public void onTunnelNetworkChange()
{
super.onTunnelNetworkChange();
try
{
this.getProxy().getTick().wakeDevice( this.getProxy().getNode() );
}
catch( final GridAccessException e )
{
// ignore
}
this.updateConnections();
}
@Override
@@ -135,35 +135,6 @@ public final class PartP2POpenComputers extends PartP2PTunnel<PartP2POpenCompute
}
}
@Override
public TickingRequest getTickingRequest( final IGridNode node )
{
return new TickingRequest( TickRates.OpenComputersTunnel.getMin(), TickRates.OpenComputersTunnel.getMax(), true, false );
}
@Override
public TickRateModulation tickingRequest( final IGridNode node, final int ticksSinceLastCall )
{
try
{
if( !this.getProxy().getPath().isNetworkBooting() )
{
if( this.node() != null ) // Client side doesn't have nodes.
{
TickHandler.INSTANCE.addCallable( this.getTile().getWorldObj(), this.updateCallback );
}
return TickRateModulation.SLEEP;
}
}
catch( final GridAccessException e )
{
// ignore
}
return TickRateModulation.IDLE;
}
private void updateConnections()
{
if( this.getProxy().isPowered() && this.getProxy().isActive() )
@@ -171,31 +142,10 @@ public final class PartP2POpenComputers extends PartP2PTunnel<PartP2POpenCompute
// Make sure we're connected to existing OC nodes in the world.
Network.joinOrCreateNetwork( this.getTile() );
if( this.isOutput() )
if( this.isOutput() && this.getInput() != null && this.node != null )
{
if( this.getInput() != null && this.node != null )
{
Network.joinOrCreateNetwork( this.getInput().getTile() );
this.node.connect( this.getInput().node() );
}
}
else
{
try
{
for( final PartP2POpenComputers output : this.getOutputs() )
{
if( this.node != null )
{
Network.joinOrCreateNetwork( output.getTile() );
this.node.connect( output.node() );
}
}
}
catch( final GridAccessException e )
{
AELog.error( e );
}
Network.joinOrCreateNetwork( this.getInput().getTile() );
this.node.connect( this.getInput().node() );
}
}
else if( this.node != null )
@@ -238,16 +188,4 @@ public final class PartP2POpenComputers extends PartP2PTunnel<PartP2POpenCompute
{
return side == this.getSide();
}
private final class UpdateCallback implements IWorldCallable<Void>
{
@Nullable
@Override
public Void call( final World world ) throws Exception
{
PartP2POpenComputers.this.updateConnections();
return null;
}
}
}
@@ -58,6 +58,7 @@ public final class PartP2PPressure extends PartP2PTunnel<PartP2PPressure> implem
@Nonnull
private final IAirHandler handler;
private boolean isConnected = false;
private boolean isValid = false;
public PartP2PPressure( final ItemStack is )
{
@@ -87,14 +88,20 @@ public final class PartP2PPressure extends PartP2PTunnel<PartP2PPressure> implem
public void onNeighborChanged()
{
super.onNeighborChanged();
this.getInternalHandler().onNeighborChange();
if( this.isValid )
{
this.getInternalHandler().onNeighborChange();
}
}
@Override
public void addToWorld()
{
super.addToWorld();
this.getInternalHandler().validateI( this.getTile() );
this.isValid = true;
}
@Override
@@ -102,6 +109,7 @@ public final class PartP2PPressure extends PartP2PTunnel<PartP2PPressure> implem
{
super.removeFromWorld();
this.isValid = false;
if( this.isOutput() && this.getInput() != null )
{
this.getInternalHandler().removeConnection( this.getInput().getInternalHandler() );
@@ -233,14 +233,14 @@ public class PartP2PTunnelME extends PartP2PTunnel<PartP2PTunnelME> implements I
{
final TileEntity start = this.getTile();
final TileEntity end = me.getTile();
AELog.warning( "Failed to establish a ME P2P Tunnel between the tunnels at [x=%d, y=%d, z=%d] and [x=%d, y=%d, z=%d]", start.xCoord, start.yCoord, start.zCoord, end.xCoord, end.yCoord, end.zCoord );
AELog.warn( "Failed to establish a ME P2P Tunnel between the tunnels at [x=%d, y=%d, z=%d] and [x=%d, y=%d, z=%d]", start.xCoord, start.yCoord, start.zCoord, end.xCoord, end.yCoord, end.zCoord );
// :(
}
}
}
catch( final GridAccessException e )
{
AELog.error( e );
AELog.debug( e );
}
}
}
@@ -370,7 +370,7 @@ public abstract class AbstractPartMonitor extends AbstractPartDisplay implements
}
catch( final Exception e )
{
AELog.error( e );
AELog.debug( e );
}
finally
{
+13 -13
View File
@@ -257,10 +257,10 @@ public class RecipeHandler implements IRecipeHandler
}
catch( final Exception err )
{
AELog.warning( "Error Loading Recipe File:" + path );
AELog.warn( "Error Loading Recipe File:" + path );
if( this.data.exceptions )
{
AELog.error( err );
AELog.debug( err );
}
return;
}
@@ -360,7 +360,7 @@ public class RecipeHandler implements IRecipeHandler
}
catch( final Throwable e )
{
AELog.error( e );
AELog.debug( e );
if( this.data.crash )
{
throw new IllegalStateException( e );
@@ -398,10 +398,10 @@ public class RecipeHandler implements IRecipeHandler
}
catch( final RegistrationError e )
{
AELog.warning( "Unable to register a recipe: " + e.getMessage() );
AELog.warn( "Unable to register a recipe: " + e.getMessage() );
if( this.data.exceptions )
{
AELog.error( e );
AELog.debug( e );
}
if( this.data.crash )
{
@@ -412,10 +412,10 @@ public class RecipeHandler implements IRecipeHandler
{
if( this.data.errorOnMissing )
{
AELog.warning( "Unable to register a recipe:" + e.getMessage() );
AELog.warn( "Unable to register a recipe:" + e.getMessage() );
if( this.data.exceptions )
{
AELog.error( e );
AELog.debug( e );
}
if( this.data.crash )
{
@@ -429,7 +429,7 @@ public class RecipeHandler implements IRecipeHandler
{
if( this.data.exceptions )
{
AELog.error( e );
AELog.debug( e );
}
if( this.data.crash )
{
@@ -505,11 +505,11 @@ public class RecipeHandler implements IRecipeHandler
}
catch( final FileNotFoundException e1 )
{
AELog.error( e1 );
AELog.debug( e1 );
}
catch( final IOException e1 )
{
AELog.error( e1 );
AELog.debug( e1 );
}
}
}
@@ -529,7 +529,7 @@ public class RecipeHandler implements IRecipeHandler
}
catch( final Throwable t )
{
AELog.error( t );
AELog.debug( t );
}
}
@@ -678,10 +678,10 @@ public class RecipeHandler implements IRecipeHandler
}
catch( final RecipeError e )
{
AELog.warning( "Recipe Error '" + e.getMessage() + "' near line:" + line + " in " + file + " with: " + this.tokens.toString() );
AELog.warn( "Recipe Error '" + e.getMessage() + "' near line:" + line + " in " + file + " with: " + this.tokens.toString() );
if( this.data.exceptions )
{
AELog.error( e );
AELog.debug( e );
}
if( this.data.crash )
{
@@ -118,7 +118,7 @@ public class Shaped implements ICraftHandler, IWebsiteSerializer
}
catch( final Throwable e )
{
AELog.error( e );
AELog.debug( e );
throw new RegistrationError( "Error while adding shaped recipe." );
}
}
@@ -81,7 +81,7 @@ public class Shapeless implements ICraftHandler, IWebsiteSerializer
}
catch( final Throwable e )
{
AELog.error( e );
AELog.debug( e );
throw new RegistrationError( "Error while adding shapeless recipe." );
}
}
@@ -89,7 +89,7 @@ public class OreDictionaryHandler
}
catch( final Throwable e )
{
AELog.error( e );
AELog.debug( e );
}
}
}
@@ -102,7 +102,7 @@ public final class VersionChecker implements Runnable
catch( Exception exception )
{
// Log any unhandled exception to prevent the JVM from reporting them as unhandled.
AELog.error( exception );
AELog.debug( exception );
}
AELog.info( "Stopping AE2 VersionChecker" );
@@ -73,7 +73,8 @@ final class MinecraftItemCSVExporter implements Exporter
/**
* @param exportDirectory directory of the resulting export file. Non-null required.
* @param itemRegistry the registry with minecraft items. Needs to be populated at that time, thus the exporting can only happen in init (pre-init is the
* @param itemRegistry the registry with minecraft items. Needs to be populated at that time, thus the exporting can
* only happen in init (pre-init is the
* phase when all items are determined)
* @param mode mode in which the export should be operated. Resulting CSV will change depending on this.
*/
@@ -103,7 +104,7 @@ final class MinecraftItemCSVExporter implements Exporter
{
FileUtils.forceMkdir( this.exportDirectory );
final Writer writer = new BufferedWriter( new OutputStreamWriter( new FileOutputStream( file ), Charset.forName("UTF-8") ) );
final Writer writer = new BufferedWriter( new OutputStreamWriter( new FileOutputStream( file ), Charset.forName( "UTF-8" ) ) );
final String header = this.mode == ExportMode.MINIMAL ? MINIMAL_HEADER : VERBOSE_HEADER;
writer.write( header );
@@ -116,8 +117,8 @@ final class MinecraftItemCSVExporter implements Exporter
}
catch( final IOException e )
{
AELog.warning( EXPORT_UNSUCCESSFUL_MESSAGE );
AELog.error( e );
AELog.warn( EXPORT_UNSUCCESSFUL_MESSAGE );
AELog.debug( e );
}
}
@@ -186,7 +187,6 @@ final class MinecraftItemCSVExporter implements Exporter
}
}
/**
* transforms an item into a row representation of the CSV file
*/
@@ -198,6 +198,7 @@ final class MinecraftItemCSVExporter implements Exporter
private static final String LOCALIZATION_NAME_EXTENSION = ".name";
private static final String EXPORTING_NOTHING_MESSAGE = "Exporting nothing";
private static final String EXPORTING_SUBTYPES_MESSAGE = "Exporting input %s with subtypes: %b";
private static final String EXPORTING_SUBTYPES_FAILED_MESSAGE = "Could not export subtypes of: %s";
@Nonnull
private final FMLControlledNamespacedRegistry<Item> itemRegistry;
@@ -243,7 +244,8 @@ final class MinecraftItemCSVExporter implements Exporter
}
catch( final Exception ignored )
{
AELog.error( ignored );
AELog.warn( EXPORTING_SUBTYPES_FAILED_MESSAGE, input.getUnlocalizedName() );
AELog.debug( ignored );
// ignore if mods do bullshit in their code
return null;
@@ -67,7 +67,7 @@ public final class ModVersionFetcher implements VersionFetcher
}
catch( final VersionCheckerException e )
{
AELog.error( e );
AELog.debug( e );
return EXCEPTIONAL_VERSION;
}
@@ -59,7 +59,7 @@ public final class VersionCheckerConfig
public VersionCheckerConfig( @Nonnull final File file )
{
Preconditions.checkNotNull( file );
Preconditions.checkState( file.isFile() );
Preconditions.checkState( !file.isDirectory() );
this.config = new Configuration( file );
@@ -75,15 +75,15 @@ public final class ReleaseFetcher
}
catch( final VersionCheckerException e )
{
AELog.error( e );
AELog.debug( e );
}
catch( MalformedURLException e )
{
AELog.error( e );
AELog.debug( e );
}
catch( IOException e )
{
AELog.error( e );
AELog.debug( e );
}
return EXCEPTIONAL_RELEASE;
@@ -178,7 +178,7 @@ public class CachedPlane
}
catch( final Exception e )
{
AELog.error( e );
AELog.debug( e );
}
}
}
@@ -292,7 +292,7 @@ public class CachedPlane
}
catch( final Throwable e )
{
AELog.error( e );
AELog.debug( e );
// attempt recovery...
te.setWorldObj( this.getWorld() );
@@ -319,7 +319,7 @@ public class CachedPlane
}
catch( final Throwable e )
{
AELog.error( e );
AELog.debug( e );
}
}
+3 -3
View File
@@ -199,7 +199,7 @@ public class AEBaseTile extends TileEntity implements IOrientable, ICommonTile,
}
catch( final Throwable t )
{
AELog.error( t );
AELog.debug( t );
}
stream.capacity( stream.readableBytes() );
@@ -279,7 +279,7 @@ public class AEBaseTile extends TileEntity implements IOrientable, ICommonTile,
}
catch( final Throwable t )
{
AELog.error( t );
AELog.debug( t );
}
return output;
@@ -319,7 +319,7 @@ public class AEBaseTile extends TileEntity implements IOrientable, ICommonTile,
}
catch( final Throwable t )
{
AELog.error( t );
AELog.debug( t );
}
}
@@ -102,7 +102,7 @@ public class TileMolecularAssembler extends AENetworkInvTile implements IUpgrade
this.settings = new ConfigManager( this );
this.settings.registerSetting( Settings.REDSTONE_CONTROLLED, RedstoneMode.IGNORE );
this.inv.setMaxStackSize( 1 );
this.getGridProxy().setIdlePowerUsage( 0.0 );
this.getProxy().setIdlePowerUsage( 0.0 );
this.upgrades = new DefinitionUpgradeInventory( assembler, this, this.getUpgradeSlots() );
this.craftingInv = new InventoryCrafting( new ContainerNull(), 3, 3 );
}
@@ -152,11 +152,11 @@ public class TileMolecularAssembler extends AENetworkInvTile implements IUpgrade
{
if( this.isAwake )
{
this.getGridProxy().getTick().wakeDevice( this.getGridProxy().getNode() );
this.getProxy().getTick().wakeDevice( this.getProxy().getNode() );
}
else
{
this.getGridProxy().getTick().sleepDevice( this.getGridProxy().getNode() );
this.getProxy().getTick().sleepDevice( this.getProxy().getNode() );
}
}
catch( final GridAccessException e )
@@ -553,7 +553,7 @@ public class TileMolecularAssembler extends AENetworkInvTile implements IUpgrade
{
try
{
return (int) ( this.getGridProxy().getEnergy().extractAEPower( ticksPassed * bonusValue * acceleratorTax, Actionable.MODULATE, PowerMultiplier.CONFIG ) / acceleratorTax );
return (int) ( this.getProxy().getEnergy().extractAEPower( ticksPassed * bonusValue * acceleratorTax, Actionable.MODULATE, PowerMultiplier.CONFIG ) / acceleratorTax );
}
catch( final GridAccessException e )
{
@@ -629,7 +629,7 @@ public class TileMolecularAssembler extends AENetworkInvTile implements IUpgrade
try
{
newState = this.getGridProxy().isActive() && this.getGridProxy().getEnergy().extractAEPower( 1, Actionable.SIMULATE, PowerMultiplier.CONFIG ) > 0.0001;
newState = this.getProxy().isActive() && this.getProxy().getEnergy().extractAEPower( 1, Actionable.SIMULATE, PowerMultiplier.CONFIG ) > 0.0001;
}
catch( final GridAccessException ignored )
{
@@ -39,19 +39,19 @@ public abstract class AENetworkInvTile extends AEBaseInvTile implements IActionH
@TileEvent( TileEventType.WORLD_NBT_READ )
public void readFromNBT_AENetwork( final NBTTagCompound data )
{
this.getGridProxy().readFromNBT( data );
this.getProxy().readFromNBT( data );
}
@TileEvent( TileEventType.WORLD_NBT_WRITE )
public void writeToNBT_AENetwork( final NBTTagCompound data )
{
this.getGridProxy().writeToNBT( data );
this.getProxy().writeToNBT( data );
}
@Override
public AENetworkProxy getProxy()
{
return this.getGridProxy();
return this.gridProxy;
}
@Override
@@ -63,45 +63,41 @@ public abstract class AENetworkInvTile extends AEBaseInvTile implements IActionH
@Override
public IGridNode getGridNode( final ForgeDirection dir )
{
return this.getGridProxy().getNode();
return this.getProxy().getNode();
}
@Override
public void onChunkUnload()
{
super.onChunkUnload();
this.getGridProxy().onChunkUnload();
this.getProxy().onChunkUnload();
}
@Override
public void onReady()
{
super.onReady();
this.getGridProxy().onReady();
this.getProxy().onReady();
}
@Override
public void invalidate()
{
super.invalidate();
this.getGridProxy().invalidate();
this.getProxy().invalidate();
}
@Override
public void validate()
{
super.validate();
this.getGridProxy().validate();
this.getProxy().validate();
}
@Override
public IGridNode getActionableNode()
{
return this.getGridProxy().getNode();
return this.getProxy().getNode();
}
public AENetworkProxy getGridProxy()
{
return this.gridProxy;
}
}
@@ -125,7 +125,7 @@ public class AppEngInternalAEInventory implements IInventory, Iterable<ItemStack
}
catch( final Exception e )
{
AELog.error( e );
AELog.debug( e );
}
}
}
@@ -272,7 +272,7 @@ public class AppEngInternalInventory implements IInventory, Iterable<ItemStack>
}
catch( final Exception e )
{
AELog.error( e );
AELog.debug( e );
}
}
}
@@ -67,7 +67,7 @@ import appeng.util.inv.IInventoryDestination;
public class TileInterface extends AENetworkInvTile implements IGridTickable, ITileStorageMonitorable, IStorageMonitorable, IInventoryDestination, IInterfaceHost, IPriorityHost
{
private final DualityInterface duality = new DualityInterface( this.getGridProxy(), this );
private final DualityInterface duality = new DualityInterface( this.getProxy(), this );
private ForgeDirection pointAt = ForgeDirection.UNKNOWN;
@MENetworkEventSubscribe
@@ -115,7 +115,7 @@ public class TileInterface extends AENetworkInvTile implements IGridTickable, IT
this.setOrientation( this.pointAt.offsetY != 0 ? ForgeDirection.SOUTH : ForgeDirection.UP, this.pointAt.getOpposite() );
}
this.getGridProxy().setValidSides( EnumSet.complementOf( EnumSet.of( this.pointAt ) ) );
this.getProxy().setValidSides( EnumSet.complementOf( EnumSet.of( this.pointAt ) ) );
this.markForUpdate();
this.markDirty();
}
@@ -141,7 +141,7 @@ public class TileInterface extends AENetworkInvTile implements IGridTickable, IT
@Override
public void onReady()
{
this.getGridProxy().setValidSides( EnumSet.complementOf( EnumSet.of( this.pointAt ) ) );
this.getProxy().setValidSides( EnumSet.complementOf( EnumSet.of( this.pointAt ) ) );
super.onReady();
this.duality.initialize();
}
@@ -66,8 +66,8 @@ public class TileVibrationChamber extends AENetworkInvTile implements IGridTicka
public TileVibrationChamber()
{
this.getGridProxy().setIdlePowerUsage( 0 );
this.getGridProxy().setFlags();
this.getProxy().setIdlePowerUsage( 0 );
this.getProxy().setFlags();
}
@Override
@@ -131,7 +131,7 @@ public class TileVibrationChamber extends AENetworkInvTile implements IGridTicka
{
try
{
this.getGridProxy().getTick().wakeDevice( this.getGridProxy().getNode() );
this.getProxy().getTick().wakeDevice( this.getProxy().getNode() );
}
catch( final GridAccessException e )
{
@@ -213,7 +213,7 @@ public class TileVibrationChamber extends AENetworkInvTile implements IGridTicka
try
{
final IEnergyGrid grid = this.getGridProxy().getEnergy();
final IEnergyGrid grid = this.getProxy().getEnergy();
final double newPower = timePassed * POWER_PER_TICK;
final double overFlow = grid.injectPower( newPower, Actionable.SIMULATE );
@@ -275,7 +275,7 @@ public class TileVibrationChamber extends AENetworkInvTile implements IGridTicka
{
try
{
this.getGridProxy().getTick().wakeDevice( this.getGridProxy().getNode() );
this.getProxy().getTick().wakeDevice( this.getProxy().getNode() );
}
catch( final GridAccessException e )
{
@@ -60,15 +60,15 @@ public class TileWireless extends AENetworkInvTile implements IWirelessAccessPoi
public TileWireless()
{
this.getGridProxy().setFlags( GridFlags.REQUIRE_CHANNEL );
this.getGridProxy().setValidSides( EnumSet.noneOf( ForgeDirection.class ) );
this.getProxy().setFlags( GridFlags.REQUIRE_CHANNEL );
this.getProxy().setValidSides( EnumSet.noneOf( ForgeDirection.class ) );
}
@Override
public void setOrientation( final ForgeDirection inForward, final ForgeDirection inUp )
{
super.setOrientation( inForward, inUp );
this.getGridProxy().setValidSides( EnumSet.of( this.getForward().getOpposite() ) );
this.getProxy().setValidSides( EnumSet.of( this.getForward().getOpposite() ) );
}
@MENetworkEventSubscribe
@@ -99,12 +99,12 @@ public class TileWireless extends AENetworkInvTile implements IWirelessAccessPoi
try
{
if( this.getGridProxy().getEnergy().isNetworkPowered() )
if( this.getProxy().getEnergy().isNetworkPowered() )
{
this.setClientFlags( this.getClientFlags() | POWERED_FLAG );
}
if( this.getGridProxy().getNode().meetsChannelRequirements() )
if( this.getProxy().getNode().meetsChannelRequirements() )
{
this.setClientFlags( this.getClientFlags() | CHANNEL_FLAG );
}
@@ -162,7 +162,7 @@ public class TileWireless extends AENetworkInvTile implements IWirelessAccessPoi
private void updatePower()
{
this.getGridProxy().setIdlePowerUsage( AEConfig.instance.wireless_getPowerDrain( this.getBoosters() ) );
this.getProxy().setIdlePowerUsage( AEConfig.instance.wireless_getPowerDrain( this.getBoosters() ) );
}
private int getBoosters()
@@ -191,7 +191,7 @@ public class TileWireless extends AENetworkInvTile implements IWirelessAccessPoi
return this.isPowered() && ( CHANNEL_FLAG == ( this.getClientFlags() & CHANNEL_FLAG ) );
}
return this.getGridProxy().isActive();
return this.getProxy().isActive();
}
@Override
@@ -199,7 +199,7 @@ public class TileWireless extends AENetworkInvTile implements IWirelessAccessPoi
{
try
{
return this.getGridProxy().getGrid();
return this.getProxy().getGrid();
}
catch( final GridAccessException e )
{
@@ -68,9 +68,9 @@ public class TileQuantumBridge extends AENetworkInvTile implements IAEMultiBlock
public TileQuantumBridge()
{
this.getGridProxy().setValidSides( EnumSet.noneOf( ForgeDirection.class ) );
this.getGridProxy().setFlags( GridFlags.DENSE_CAPACITY );
this.getGridProxy().setIdlePowerUsage( 22 );
this.getProxy().setValidSides( EnumSet.noneOf( ForgeDirection.class ) );
this.getProxy().setFlags( GridFlags.DENSE_CAPACITY );
this.getProxy().setIdlePowerUsage( 22 );
this.internalInventory.setMaxStackSize( 1 );
}
@@ -98,7 +98,7 @@ public class TileQuantumBridge extends AENetworkInvTile implements IAEMultiBlock
out |= this.hasSingularity;
}
if( this.getGridProxy().isActive() && this.constructed != -1 )
if( this.getProxy().isActive() && this.constructed != -1 )
{
out |= this.powered;
}
@@ -177,7 +177,7 @@ public class TileQuantumBridge extends AENetworkInvTile implements IAEMultiBlock
{
final ItemStack linkStack = maybeLinkStack.get();
this.getGridProxy().setVisualRepresentation( linkStack );
this.getProxy().setVisualRepresentation( linkStack );
}
}
@@ -205,7 +205,7 @@ public class TileQuantumBridge extends AENetworkInvTile implements IAEMultiBlock
if( affectWorld )
{
this.getGridProxy().setValidSides( EnumSet.noneOf( ForgeDirection.class ) );
this.getProxy().setValidSides( EnumSet.noneOf( ForgeDirection.class ) );
}
}
@@ -235,11 +235,11 @@ public class TileQuantumBridge extends AENetworkInvTile implements IAEMultiBlock
if( this.isCorner() || this.isCenter() )
{
this.getGridProxy().setValidSides( this.getConnections() );
this.getProxy().setValidSides( this.getConnections() );
}
else
{
this.getGridProxy().setValidSides( EnumSet.allOf( ForgeDirection.class ) );
this.getProxy().setValidSides( EnumSet.allOf( ForgeDirection.class ) );
}
}
}
@@ -288,7 +288,7 @@ public class TileQuantumBridge extends AENetworkInvTile implements IAEMultiBlock
try
{
return this.getGridProxy().getEnergy().isNetworkPowered();
return this.getProxy().getEnergy().isNetworkPowered();
}
catch( final GridAccessException e )
{
@@ -58,7 +58,7 @@ public class TileSpatialIOPort extends AENetworkInvTile implements IWorldCallabl
public TileSpatialIOPort()
{
this.getGridProxy().setFlags( GridFlags.REQUIRE_CHANNEL );
this.getProxy().setFlags( GridFlags.REQUIRE_CHANNEL );
}
@TileEvent( TileEventType.WORLD_NBT_WRITE )
@@ -127,8 +127,8 @@ public class TileSpatialIOPort extends AENetworkInvTile implements IWorldCallabl
final ItemStack cell = this.getStackInSlot( 0 );
if( this.isSpatialCell( cell ) && this.getStackInSlot( 1 ) == null )
{
final IGrid gi = this.getGridProxy().getGrid();
final IEnergyGrid energy = this.getGridProxy().getEnergy();
final IGrid gi = this.getProxy().getGrid();
final IEnergyGrid energy = this.getProxy().getEnergy();
final ISpatialStorageCell sc = (ISpatialStorageCell) cell.getItem();
@@ -78,7 +78,7 @@ public class TileDrive extends AENetworkInvTile implements IChestOrDrive, IPrior
public TileDrive()
{
this.mySrc = new MachineSource( this );
this.getGridProxy().setFlags( GridFlags.REQUIRE_CHANNEL );
this.getProxy().setFlags( GridFlags.REQUIRE_CHANNEL );
}
@TileEvent( TileEventType.NETWORK_WRITE )
@@ -93,7 +93,7 @@ public class TileDrive extends AENetworkInvTile implements IChestOrDrive, IPrior
this.state &= 0x24924924; // just keep the blinks...
}
if( this.getGridProxy().isActive() )
if( this.getProxy().isActive() )
{
this.state |= 0x80000000;
}
@@ -160,7 +160,7 @@ public class TileDrive extends AENetworkInvTile implements IChestOrDrive, IPrior
return ( this.state & 0x80000000 ) == 0x80000000;
}
return this.getGridProxy().isActive();
return this.getProxy().isActive();
}
@Override
@@ -205,7 +205,7 @@ public class TileDrive extends AENetworkInvTile implements IChestOrDrive, IPrior
private void recalculateDisplay()
{
final boolean currentActive = this.getGridProxy().isActive();
final boolean currentActive = this.getProxy().isActive();
if( currentActive )
{
this.state |= 0x80000000;
@@ -220,7 +220,7 @@ public class TileDrive extends AENetworkInvTile implements IChestOrDrive, IPrior
this.wasActive = currentActive;
try
{
this.getGridProxy().getGrid().postEvent( new MENetworkCellArrayUpdate() );
this.getProxy().getGrid().postEvent( new MENetworkCellArrayUpdate() );
}
catch( final GridAccessException e )
{
@@ -281,9 +281,9 @@ public class TileDrive extends AENetworkInvTile implements IChestOrDrive, IPrior
try
{
this.getGridProxy().getGrid().postEvent( new MENetworkCellArrayUpdate() );
this.getProxy().getGrid().postEvent( new MENetworkCellArrayUpdate() );
final IStorageGrid gs = this.getGridProxy().getStorage();
final IStorageGrid gs = this.getProxy().getStorage();
Platform.postChanges( gs, removed, added, this.mySrc );
}
catch( final GridAccessException ignored )
@@ -349,7 +349,7 @@ public class TileDrive extends AENetworkInvTile implements IChestOrDrive, IPrior
}
}
this.getGridProxy().setIdlePowerUsage( power );
this.getProxy().setIdlePowerUsage( power );
this.isCached = true;
}
@@ -365,7 +365,7 @@ public class TileDrive extends AENetworkInvTile implements IChestOrDrive, IPrior
@Override
public List<IMEInventoryHandler> getCellArray( final StorageChannel channel )
{
if( this.getGridProxy().isActive() )
if( this.getProxy().isActive() )
{
this.updateState();
return (List) ( channel == StorageChannel.ITEMS ? this.items : this.fluids );
@@ -390,7 +390,7 @@ public class TileDrive extends AENetworkInvTile implements IChestOrDrive, IPrior
try
{
this.getGridProxy().getGrid().postEvent( new MENetworkCellArrayUpdate() );
this.getProxy().getGrid().postEvent( new MENetworkCellArrayUpdate() );
}
catch( final GridAccessException e )
{
@@ -106,7 +106,7 @@ public class TileIOPort extends AENetworkInvTile implements IUpgradeableHost, IC
@Reflected
public TileIOPort()
{
this.getGridProxy().setFlags( GridFlags.REQUIRE_CHANNEL );
this.getProxy().setFlags( GridFlags.REQUIRE_CHANNEL );
this.manager = new ConfigManager( this );
this.manager.registerSetting( Settings.REDSTONE_CONTROLLED, RedstoneMode.IGNORE );
this.manager.registerSetting( Settings.FULLNESS_MODE, FullnessMode.EMPTY );
@@ -158,11 +158,11 @@ public class TileIOPort extends AENetworkInvTile implements IUpgradeableHost, IC
{
if( this.hasWork() )
{
this.getGridProxy().getTick().wakeDevice( this.getGridProxy().getNode() );
this.getProxy().getTick().wakeDevice( this.getProxy().getNode() );
}
else
{
this.getGridProxy().getTick().sleepDevice( this.getGridProxy().getNode() );
this.getProxy().getTick().sleepDevice( this.getProxy().getNode() );
}
}
catch( final GridAccessException e )
@@ -313,7 +313,7 @@ public class TileIOPort extends AENetworkInvTile implements IUpgradeableHost, IC
@Override
public TickRateModulation tickingRequest( final IGridNode node, final int ticksSinceLastCall )
{
if( !this.getGridProxy().isActive() )
if( !this.getProxy().isActive() )
{
return TickRateModulation.IDLE;
}
@@ -335,9 +335,9 @@ public class TileIOPort extends AENetworkInvTile implements IUpgradeableHost, IC
try
{
final IMEInventory<IAEItemStack> itemNet = this.getGridProxy().getStorage().getItemInventory();
final IMEInventory<IAEFluidStack> fluidNet = this.getGridProxy().getStorage().getFluidInventory();
final IEnergySource energy = this.getGridProxy().getEnergy();
final IMEInventory<IAEItemStack> itemNet = this.getProxy().getStorage().getItemInventory();
final IMEInventory<IAEFluidStack> fluidNet = this.getProxy().getStorage().getFluidInventory();
final IEnergySource energy = this.getProxy().getEnergy();
for( int x = 0; x < 6; x++ )
{
final ItemStack is = this.cells.getStackInSlot( x );
@@ -113,7 +113,7 @@ public class ClassInstantiation<T>
}
catch( final Throwable t )
{
AELog.error( t );
AELog.debug( t );
}
}
}
+1 -1
View File
@@ -125,7 +125,7 @@ public final class ConfigManager implements IConfigManager
}
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 )
{
AELog.error( t );
AELog.error( z );
AELog.debug( t );
AELog.debug( z );
}
}
}
@@ -589,7 +589,7 @@ public class Platform
}
catch( final Throwable t )
{
AELog.error( t );
AELog.debug( t );
}
return new ArrayList<NBTBase>();
@@ -2010,7 +2010,7 @@ public class Platform
}
catch( final Throwable t )
{
AELog.error( t );
AELog.debug( t );
}
}
@@ -1,3 +1,4 @@
//Blocks
tile.appliedenergistics2.BlockCableBus.name=AE2-Kabel und/oder Bus
tile.appliedenergistics2.BlockCellWorkbench.name=Speicherzellenwerkbank
tile.appliedenergistics2.BlockCharger.name=Ladegerät
@@ -50,12 +51,36 @@ tile.appliedenergistics2.BlockCraftingAccelerator.name=Fertigungs-Prozessoreinhe
tile.appliedenergistics2.BlockCraftingUnit.name=Fertigungseinheit
tile.appliedenergistics2.BlockMolecularAssembler.name=Molekularassembler
// Stairs
tile.appliedenergistics2.ChiseledQuartzStairBlock.name=Gemeißelte Certusquartztreppe
tile.appliedenergistics2.FluixStairBlock.name=Fluixtreppe
tile.appliedenergistics2.QuartzPillarStairBlock.name=Certusquartzsäulentreppe
tile.appliedenergistics2.QuartzStairBlock.name=Certusquartztreppe
tile.appliedenergistics2.SkyStoneBlockStairBlock.name=Himmelssteinblocktreppe
tile.appliedenergistics2.SkyStoneBrickStairBlock.name=Himmelssteinziegeltreppe
tile.appliedenergistics2.SkyStoneSmallBrickStairBlock.name=Himmelssteinkleinziegeltreppe
tile.appliedenergistics2.SkyStoneStairBlock.name=Himmelssteintreppe
// Slabs
tile.appliedenergistics2.ChiseledQuartzSlabBlock.name=Gemeißelte Certusquartzstufe
tile.appliedenergistics2.FluixSlabBlock.name=Fluixstufe
tile.appliedenergistics2.QuartzPillarSlabBlock.name=Certusquartzsäulenstufe
tile.appliedenergistics2.QuartzSlabBlock.name=Certusquartzstufe
tile.appliedenergistics2.SkyStoneBlockSlabBlock.name=Himmelssteinblockstufe
tile.appliedenergistics2.SkyStoneBrickSlabBlock.name=Himmelssteinziegelstufe
tile.appliedenergistics2.SkyStoneSmallBrickSlabBlock.name=Himmelssteinkleinziegelstufe
tile.appliedenergistics2.SkyStoneSlabBlock.name=Himmelssteinstufe
// Chat Messages
chat.appliedenergistics2.ChestCannotReadStorageCell=ME-Truhe kann die Speicherzelle nicht einlesen.
chat.appliedenergistics2.SettingCleared=Einstellung gelöscht.
chat.appliedenergistics2.OutOfRange=Drahtloser Zugangspunkt außer Reichweite.
chat.appliedenergistics2.InvalidMachine=Ungültige Maschine.
chat.appliedenergistics2.LoadedSettings=Einstellungen erfolgreich geladen.
chat.appliedenergistics2.DeviceNotPowered=Gerät hat zu wenig Energie
chat.appliedenergistics2.DeviceNotWirelessTerminal=Gerät ist keine Drahtloskonsole.
chat.appliedenergistics2.DeviceNotLinked=Gerät ist nicht verbunden.
chat.appliedenergistics2.StationCanNotBeLocated=Station kann nicht lokalisiert werden.
chat.appliedenergistics2.MachineNotPowered=Maschine bekommt keine Energie.
chat.appliedenergistics2.CommunicationError=Fehler beim Kommunizieren mit dem Netzwerk.
chat.appliedenergistics2.SavedSettings=Einstellungen erfolgreich gespeichert.
@@ -63,9 +88,11 @@ chat.appliedenergistics2.AmmoDepleted=Munition verbraucht.
chat.appliedenergistics2.isNowLocked=Monitor ist nun gesperrt.
chat.appliedenergistics2.isNowUnlocked=Monitor ist nun entsperrt.
// Creative Tabs
itemGroup.appliedenergistics2=Applied Energistics 2
itemGroup.appliedenergistics2.facades=Applied Energistics 2 - Fassaden
// GUI
gui.appliedenergistics2.CraftingTerminal=Fertigungskonsole
gui.appliedenergistics2.METunnel=ME
gui.appliedenergistics2.ItemTunnel=Item
@@ -74,6 +101,8 @@ gui.appliedenergistics2.RedstoneTunnel=Redstone
gui.appliedenergistics2.EUTunnel=EU
gui.appliedenergistics2.RFTunnel=RF
gui.appliedenergistics2.LightTunnel=Licht
gui.appliedenergistics2.OCTunnel=OpenComputers
gui.appliedenergistics2.PressureTunnel=Druck
gui.appliedenergistics2.security.extract.name=Extrahieren
gui.appliedenergistics2.security.inject.name=Deponieren
@@ -148,6 +177,9 @@ gui.appliedenergistics2.Crafts=Fertigt
gui.appliedenergistics2.And=und
gui.appliedenergistics2.Creates=Kreiert
gui.appliedenergistics2.With=mit
gui.appliedenergistics2.Substitute=Nutze Substitution:
gui.appliedenergistics2.Yes=Ja
gui.appliedenergistics2.No=Nein
gui.appliedenergistics2.InWorldCrafting=AE2 In-Welt-Fertigung
gui.appliedenergistics2.inWorldFluix=Wirf 1 Geladenes Certusquarzstück + 1 Netherquarz + Redstone-Staub nebeneinander in eine Pfütze und warte einen Moment.
gui.appliedenergistics2.inWorldPurificationCertus=Wirf einen Certusquarzkeim, gemacht aus Certusquarzstaub und Sand, in eine Pfütze Wasser; um den Prozess zu beschleunigen, füge Kristallwachstumsbeschleuniger hinzu.
@@ -195,11 +227,16 @@ gui.appliedenergistics2.Excluded=Ausschließlich
gui.appliedenergistics2.Partitioned=Partitioniert
gui.appliedenergistics2.Precise=Präzise
gui.appliedenergistics2.Fuzzy=Ungenau
gui.appliedenergistics2.SmallFontCraft=Craft
gui.appliedenergistics2.LargeFontCraft=+
gui.appliedenergistics2.Nothing=Nichts
// GUI Tooltips
gui.tooltips.appliedenergistics2.Stash=Items lagern
gui.tooltips.appliedenergistics2.StashDesc=Items aus dem Fertigungsgitter in Netzwerkspeicher zurücksenden.
gui.tooltips.appliedenergistics2.Substitutions=Ore-Dict-Ersetzung
gui.tooltips.appliedenergistics2.SubstitutionsDesc=Ersetzungsoptionen für Eingangskomponenten ändern
gui.tooltips.appliedenergistics2.Substitutions=Ore-Dict-Substitution
gui.tooltips.appliedenergistics2.SubstitutionsDescEnabled=Erlaube Substitution der Eingangskomponenten.
gui.tooltips.appliedenergistics2.SubstitutionsDescDisabled=Verbiete Substitution der Eingangskomponenten.
gui.tooltips.appliedenergistics2.SubstitutionsOn=Ersetzung aktiviert
gui.tooltips.appliedenergistics2.SubstitutionsOff=Ersetzung deaktiviert
gui.tooltips.appliedenergistics2.Encode=Schablone kodieren
@@ -277,13 +314,24 @@ gui.tooltips.appliedenergistics2.EmitWhenCrafting=Stoße Redstone-Signal aus, w
gui.tooltips.appliedenergistics2.ReportInaccessibleItems=Melde unerreichbare Items
gui.tooltips.appliedenergistics2.ReportInaccessibleItemsYes=Ja: Items, die nicht extrahiert werden können, werden sichtbar.
gui.tooltips.appliedenergistics2.ReportInaccessibleItemsNo=Nein: Nur extrahierbare Items werden sichtbar.
gui.tooltips.appliedenergistics2.BlockPlacement=Blockplatzierung
gui.tooltips.appliedenergistics2.BlockPlacementYes=Block wird als Block plaziert.
gui.tooltips.appliedenergistics2.BlockPlacementNo=Block wird als Item plaziert.
gui.tooltips.appliedenergistics2.SchedulingMode=Planungsmodus
gui.tooltips.appliedenergistics2.SchedulingModeDefault=Exportiere das erste Item bis das Netzwerk leer ist, probiere dann das nächste Item.
gui.tooltips.appliedenergistics2.SchedulingModeRoundRobin=Exportiere im Round-Robin-Modus.
gui.tooltips.appliedenergistics2.SchedulingModeRandom=Exportiere im Zufallsmodus.
gui.tooltips.appliedenergistics2.ItemsStored=Items gespeichert: %s
gui.tooltips.appliedenergistics2.ItemsRequestable=Anfragbare Items: %s
// Units
gui.appliedenergistics2.units.appliedenergstics=AE
gui.appliedenergistics2.units.ic2=Energy Units
gui.appliedenergistics2.units.mekanism=Joules
gui.appliedenergistics2.units.rotarycraft=Watt
gui.appliedenergistics2.units.thermalexpansion=Redstone Flux
// Colors
gui.appliedenergistics2.White=Weiß
gui.appliedenergistics2.Orange=Orange
gui.appliedenergistics2.Magenta=Magenta
@@ -302,6 +350,8 @@ gui.appliedenergistics2.Red=Rot
gui.appliedenergistics2.Black=Schwarz
gui.appliedenergistics2.Fluix=Fluix
// Waila
waila.appliedenergistics2.Crafting=Fertigung
waila.appliedenergistics2.DeviceOnline=Gerät Online
waila.appliedenergistics2.DeviceOffline=Gerät Offline
waila.appliedenergistics2.DeviceMissingChannel=Gerät ohne Kanal
@@ -311,6 +361,7 @@ waila.appliedenergistics2.Showing=Zeigt
waila.appliedenergistics2.Contains=Enthält
waila.appliedenergistics2.Channels=%1$d von %2$d Kanälen
// Items
item.appliedenergistics2.ItemBasicStorageCell.1k.name=1k-ME-Speicherzelle
item.appliedenergistics2.ItemBasicStorageCell.4k.name=4k-ME-Speicherzelle
item.appliedenergistics2.ItemBasicStorageCell.16k.name=16k-ME-Speicherzelle
@@ -334,9 +385,9 @@ item.appliedenergistics2.ItemMaterial.CardFuzzy.name=Ungenauigkeitskarte
item.appliedenergistics2.ItemMaterial.CardInverter.name=Umkehrungskarte
item.appliedenergistics2.ItemMaterial.CardRedstone.name=Redstone-Karte
item.appliedenergistics2.ItemMaterial.CardSpeed.name=Beschleunigungskarte
item.appliedenergistics2.ItemMaterial.Cell2SpatialPart.name=2³ Spatial Component
item.appliedenergistics2.ItemMaterial.Cell16SpatialPart.name=16³ Spatial Component
item.appliedenergistics2.ItemMaterial.Cell128SpatialPart.name=128³ Spatial Component
item.appliedenergistics2.ItemMaterial.Cell2SpatialPart.name=2³ Raumkomponente
item.appliedenergistics2.ItemMaterial.Cell16SpatialPart.name=16³ Raumkomponente
item.appliedenergistics2.ItemMaterial.Cell128SpatialPart.name=128³ Raumkomponente
item.appliedenergistics2.ItemMaterial.Cell1kPart.name=1k-ME-Speicherkomponente
item.appliedenergistics2.ItemMaterial.Cell4kPart.name=4k-ME-Speicherkomponente
item.appliedenergistics2.ItemMaterial.Cell16kPart.name=16k-ME-Speicherkomponente
@@ -381,6 +432,7 @@ item.appliedenergistics2.ItemMaterial.SkyDust.name=Himmelssteinstaub
item.appliedenergistics2.ItemMaterial.CardCrafting.name=Fertigungskarte
item.appliedenergistics2.ItemPart.AnnihilationPlane.name=ME-Annihilationsfeld
item.appliedenergistics2.ItemPart.IdentityAnnihilationPlane.name=ME-Identitätsannihilationsfelds
item.appliedenergistics2.ItemPart.CableAnchor.name=Kabelanker
item.appliedenergistics2.ItemPart.CableCovered.name=Verdecktes ME-Kabel
item.appliedenergistics2.ItemPart.CableGlass.name=ME-Glaskabel
@@ -406,6 +458,7 @@ item.appliedenergistics2.ItemPart.InvertedToggleBus.name=Invertierter schaltbare
item.appliedenergistics2.ItemPart.ToggleBus.name=Schaltbarer ME-Bus
item.appliedenergistics2.ItemPart.CraftingMonitor.name=ME-Fertigungsmonitor
item.appliedenergistics2.ItemPart.InterfaceTerminal.name=ME-Schnittstellenkonsole
item.appliedenergistics2.ItemPart.InvalidType.name=Deaktiviertes Item
item.appliedenergistics2.ItemSpatialStorageCell.128Cubed.name=128³-Raumspeicherzelle
item.appliedenergistics2.ItemSpatialStorageCell.16Cubed.name=16³-Raumspeicherzelle
@@ -441,9 +494,67 @@ item.appliedenergistics2.ToolBiometricCard.name=Biometriekarte
item.appliedenergistics2.ToolDebugCard.name=Dev.Debug-Karte
item.appliedenergistics2.ToolReplicatorCard.name=Dev.Replikator-Karte
// Commands
commands.ae2.usage=Befehle verfügbar in Applied Energistics 2 - Verwende '/ae2 list' für eine Liste und '/ae2 help _____' für Hilfe zu einem Befehl.
commands.ae2.permissions=Du hast nicht die erforderlichen Berechtigungen, um diesen Befehl auszuführen.
commands.ae2.ChunkLogger=Schalted das Berichten von Chunk-Loading und Chunk-Unloading im Server-log um. ( OP )
commands.ae2.ChunkLoggerOn=Chunk Logging ist nun aktiviert
commands.ae2.ChunkLoggerOff=Chunk Logging is nun deaktiviert
commands.ae2.ChunkLoggerOn=Chunk Logging ist aktiviert
commands.ae2.ChunkLoggerOff=Chunk Logging ist deaktiviert
commands.ae2.Supporters=Zeigt eine Liste aller AE2-Unterstützer
// Achievements
achievement.ae2.Compass=Meteoritenjäger
achievement.ae2.Compass.desc=Fertige einen Meteoritenkompass
achievement.ae2.Presses=Unbekannte Technologie
achievement.ae2.Presses.desc=Finde eine Prozessorenpresse
achievement.ae2.SpatialIO=Raumkoordinaten
achievement.ae2.SpatialIO.desc=Fertige einen IO-Raumport
achievement.ae2.SpatialIOExplorer=To boldly go
achievement.ae2.SpatialIOExplorer.desc=Werde in einer Raumspeicherzelle gespeichert
achievement.ae2.StorageCell=Besser als Truhen
achievement.ae2.StorageCell.desc=Fertige eine Speicherzelle
achievement.ae2.IOPort=Fertigungszellenshuffle
achievement.ae2.IOPort.desc=Fertige einen ME-IO-Port
achievement.ae2.CraftingTerminal=Eine (viel) größere Bank
achievement.ae2.CraftingTerminal.desc=Fertige eine Fertigungskonsole
achievement.ae2.PatternTerminal=Crafting Maestro
achievement.ae2.PatternTerminal.desc=Fertige eine Schablonenkonsole
achievement.ae2.ChargedQuartz=Schockierend
achievement.ae2.ChargedQuartz.desc=Finde geladenen Certusquartz
achievement.ae2.Fluix=Unnatürlich
achievement.ae2.Fluix.desc=Stelle Fluixkristalle her
achievement.ae2.Charger=Fluixproduktion
achievement.ae2.Charger.desc=Fertige ein Ladegerät
achievement.ae2.CrystalGrowthAccelerator=Beschleuniger ist eine Untertreibung
achievement.ae2.CrystalGrowthAccelerator.desc=Fertige einen Kristallwachstumsbeschleuniger
achievement.ae2.GlassCable=Fluix-Energie-Verbingung
achievement.ae2.GlassCable.desc=Fertige ME-Glaskabel
achievement.ae2.Networking1=Netzwerklehrling
achievement.ae2.Networking1.desc=Erreiche 8 Kanäle mit Geräten in einem Netzwerk
achievement.ae2.Controller=Netzwerkzentrale
achievement.ae2.Controller.desc=Fertige einen ME-Controller
achievement.ae2.Networking2=Netzwerkingeneur
achievement.ae2.Networking2.desc=Erreiche 128 Kanäle mit Geräten in einem Netzwerk
achievement.ae2.Networking3=Netzwerkadministrator
achievement.ae2.Networking3.desc=Erreiche 2048 Kanäle mit Geräten in einem Netzwerk
achievement.ae2.P2P=Punkt-zu-Punkt-Verbindung
achievement.ae2.P2P.desc=Fertige einen P2P-Tunnel
achievement.ae2.Recursive=Rekursives Netzwerken
achievement.ae2.Recursive.desc=Platziere eine ME-Schnittstelle auf einen Speicherbus
achievement.ae2.CraftingCPU=NextGen-Fertigung
achievement.ae2.CraftingCPU.desc=Fertige eine Fertigungs-CPU
achievement.ae2.Facade=Netzwerkästhetik
achievement.ae2.Facade.desc=Fertige eine Kabelfassade
achievement.ae2.NetworkTool=Netzwerkdiagnose
achievement.ae2.NetworkTool.desc=Fertige eine Netzwerksonde
achievement.ae2.PortableCell=Speichernomade
achievement.ae2.PortableCell.desc=Fertige eine Tragbare Zelle
achievement.ae2.StorageBus=Uneingeschränktes Potential
achievement.ae2.StorageBus.desc=Fertige einen Speicherbus
achievement.ae2.QNB=Quantum Tunneling
achievement.ae2.QNB.desc=Fertige einen Quantenlink
// Stats
stat.ae2.ItemsInserted=Items zu ME Speicher hinzugefügt
stat.ae2.ItemsExtracted=Items aus ME Speicher entfernt
stat.ae2.TurnedCranks=Runden gekurbelt
@@ -177,7 +177,10 @@ gui.appliedenergistics2.Crafts=Fabrications
gui.appliedenergistics2.And=et
gui.appliedenergistics2.Creates=Crée
gui.appliedenergistics2.With=avec
gui.appliedenergistics2.InWorldCrafting=AE2 dans le monde
gui.appliedenergistics2.Substitute=Utilisation de remplacements :
gui.appliedenergistics2.Yes=Oui
gui.appliedenergistics2.No=Non
gui.appliedenergistics2.InWorldCrafting=Fabrications AE2 dans le monde
gui.appliedenergistics2.inWorldFluix=Jetez 1 Quartz Certus chargé + 1 Quartz du Nether + poudre de Redstone dans une flaque tous ensemble et attendez un moment pour recevoir 2 Cristaux de Fluix.
gui.appliedenergistics2.inWorldPurificationCertus=Jetez une graine de Quartz Certus faite a partir de la poudre de Quartz Certus et de sable dans une flaque d'eau. Pour accélerer le processus, ajoutez des accélérateurs de croissance de cristal.
gui.appliedenergistics2.inWorldPurificationNether=Jetez une graine de Quartz du Nether faite a partir de la poudre de Quartz du Nether et de sable dans une flaque d'eau. Pour accélerer le processus, ajoutez des accélérateurs de croissance de cristal.
@@ -185,8 +188,9 @@ gui.appliedenergistics2.inWorldPurificationFluix=Jetez une graine de Fluix faite
gui.appliedenergistics2.inWorldSingularity=Pour la créer, jetez 1 Singularité et 1 poudre d'Ender puis provoquez une explosion à proximité des éléments.
gui.appliedenergistics2.ChargedQuartz=Un Quartz Certus chargé est obtenu en insérant un cristal de Quartz Certus dans le chargeur, puis en l'alimentant.
gui.appliedenergistics2.ChargedQuartzFind=Le Quartz Certus chargé peut-être trouvé dans le monde assez rarement. Il parait identique au Quartz Certus normal sauf qu'il clignote.
gui.appliedenergistics2.OfSecondOutput=%1$d%% Chance pour une sortie secondaire.
gui.appliedenergistics2.NoSecondOutput=Pas de sortie secondaire
gui.appliedenergistics2.OfSecondOutput=%1$d%% Chance pour une sortie secondaire.
gui.appliedenergistics2.MultipleOutputs=%1$d%% une secondaire, %2$d%% une sortie tertiaire.
gui.appliedenergistics2.SelectAmount=Sélectionnez la quantité
gui.appliedenergistics2.CopyMode=Mode copie
gui.appliedenergistics2.CopyModeDesc=Contrôle si le contenu du panneau de configuration est vidé quand vous retirez la cellule.
@@ -233,7 +237,8 @@ gui.appliedenergistics2.Nothing=Rien
gui.tooltips.appliedenergistics2.Stash=Stocke des objets
gui.tooltips.appliedenergistics2.StashDesc=Renvoie les objets de la grille de fabrication dans le réseau.
gui.tooltips.appliedenergistics2.Substitutions=Remplacements du Ore-Dictionnary
gui.tooltips.appliedenergistics2.SubstitutionsDesc=Editez les options de remplacement pour les composants en entrée.
gui.tooltips.appliedenergistics2.SubstitutionsDescEnabled=Autorise le remplacement des composants en entrée.
gui.tooltips.appliedenergistics2.SubstitutionsDescDisabled=Empêche le remplacement des composants en entrée.
gui.tooltips.appliedenergistics2.SubstitutionsOn=Remplacements activés
gui.tooltips.appliedenergistics2.SubstitutionsOff=Remplacements désactivés
gui.tooltips.appliedenergistics2.Encode=Encoder un modèle
@@ -80,7 +80,7 @@ chat.appliedenergistics2.InvalidMachine=Érvénytelen gép.
chat.appliedenergistics2.LoadedSettings=Beállítások sikeresen beolvasva.
chat.appliedenergistics2.DeviceNotPowered=A készülékenergia szintje alacsony.
chat.appliedenergistics2.DeviceNotWirelessTerminal=A készülék nem egy Vezetéknélküli Terminál.
chat.appliedenergistics2.DeviceNotLinked=Az eszköz nem összekötve.
chat.appliedenergistics2.DeviceNotLinked=Az eszköz nincs összekötve.
chat.appliedenergistics2.SavedSettings=Beállítások sikeresen elmentve.
chat.appliedenergistics2.MachineNotPowered=A gép nem kap energiát.
chat.appliedenergistics2.CommunicationError=Hiba a hálózattal való kommunikáció közben.
@@ -139,7 +139,7 @@ gui.appliedenergistics2.PortableCell=Szállítható Cella
gui.appliedenergistics2.Security=Biztonsági Szabályzat
gui.appliedenergistics2.CellWorkbench=Cella Munkaasztal
gui.appliedenergistics2.QuantumLinkChamber=Kvantum összekötő kamra
gui.appliedenergistics2.IOPort=ME Be/Ki Port
gui.appliedenergistics2.IOPort=ME IO Port
gui.appliedenergistics2.Chest=ME Láda
gui.appliedenergistics2.Condenser=Anyag Sűrítő
gui.appliedenergistics2.Config=Konfiguráció
@@ -149,7 +149,7 @@ gui.appliedenergistics2.GrindStone=Daráló
gui.appliedenergistics2.ImportBus=ME Import Busz
gui.appliedenergistics2.Interface=ME Interfész
gui.appliedenergistics2.LevelEmitter=ME Szint Kibocsátó
gui.appliedenergistics2.Of=-ból
gui.appliedenergistics2.Of=-ból/-ből
gui.appliedenergistics2.Patterns=Minták
gui.appliedenergistics2.SpatialIOPort=Tér-IO Port
gui.appliedenergistics2.StoredEnergy=Tárolt Energia
@@ -176,8 +176,8 @@ gui.appliedenergistics2.MolecularAssembler=Molekuláris Összeállító
gui.appliedenergistics2.ProcessingPattern=Feldolgozó Minta
gui.appliedenergistics2.Crafts=Barkácsol
gui.appliedenergistics2.And=és
gui.appliedenergistics2.Creates=Készít
gui.appliedenergistics2.With=-val/-vel
gui.appliedenergistics2.Creates=Amít készít
gui.appliedenergistics2.With=Az alábbiakkal
gui.appliedenergistics2.Substitute=Pótlékokat használ:
gui.appliedenergistics2.Yes=Igen
gui.appliedenergistics2.No=Nem
@@ -201,7 +201,7 @@ gui.appliedenergistics2.Empty=Üres
gui.appliedenergistics2.Stored=Tárolva
gui.appliedenergistics2.Cancel=Mégse
gui.appliedenergistics2.ETAFormat=HH:mm:ss
gui.appliedenergistics2.Crafting=Barkácsolás
gui.appliedenergistics2.Crafting=Barkácsolás alatt
gui.appliedenergistics2.Scheduled=Ütemezett
gui.appliedenergistics2.CraftingStatus=Barkácsolási Státusz
gui.appliedenergistics2.FromStorage=Rendelkezésre áll
@@ -229,7 +229,7 @@ gui.appliedenergistics2.Included=Tartalmazott
gui.appliedenergistics2.Excluded=Kihagyott
gui.appliedenergistics2.Partitioned=Particionált
gui.appliedenergistics2.Precise=Precíz
gui.appliedenergistics2.Fuzzy=Homályos
gui.appliedenergistics2.Fuzzy=Megkülönböztető
gui.appliedenergistics2.SmallFontCraft=Barkács
gui.appliedenergistics2.LargeFontCraft=+
gui.appliedenergistics2.Nothing=Semmi
@@ -244,25 +244,25 @@ gui.tooltips.appliedenergistics2.SubstitutionsOn=Pótlékok engedélyezve.
gui.tooltips.appliedenergistics2.SubstitutionsOff=Pótlékok tiltva.
gui.tooltips.appliedenergistics2.Encode=Minta kódolása
gui.tooltips.appliedenergistics2.EncodeDescription=A betáplált minta jelenlegi Kódolt Mintára, vagy elérhető Üres Mintára írása.
gui.tooltips.appliedenergistics2.FuzzyMode=Homályos összehasonlítás
gui.tooltips.appliedenergistics2.FuzzyMode=Megkülönböztető összehasonlítás
gui.tooltips.appliedenergistics2.FZPercent_25=25% sérülésnél való elválasztás
gui.tooltips.appliedenergistics2.FZPercent_50=50% sérülésnél való elválasztás
gui.tooltips.appliedenergistics2.FZPercent_75=75% sérülésnél való elválasztás
gui.tooltips.appliedenergistics2.FZPercent_99=99% sérülésnél való elválasztás
gui.tooltips.appliedenergistics2.SortOrder=Rendezési sorrend
gui.tooltips.appliedenergistics2.SortBy=Rendezés ... szerint
gui.tooltips.appliedenergistics2.SortOrder=Rendezési irány
gui.tooltips.appliedenergistics2.SortBy=Rendezés
gui.tooltips.appliedenergistics2.FZIgnoreAll=Akármelyikkel egyező
gui.tooltips.appliedenergistics2.TransferDirection=Átviteli irány
gui.tooltips.appliedenergistics2.TransferToNetwork=Az adat hálózat felé való átvitele
gui.tooltips.appliedenergistics2.TransferToStorageCell=Az adat Taroló Cella felé való átvitele
gui.tooltips.appliedenergistics2.ToggleSortDirection=Rendezési irány kapcsolása
gui.tooltips.appliedenergistics2.ToggleSortDirection=Rendezés fel/le váltogatása
gui.tooltips.appliedenergistics2.StoredItems=Tárolt tárgyak
gui.tooltips.appliedenergistics2.StoredCraftable=Tárolt / Barkácsolható
gui.tooltips.appliedenergistics2.View=Megtekintés
gui.tooltips.appliedenergistics2.StoredCraftable=Tárolt / Barkácsolható tárgyak
gui.tooltips.appliedenergistics2.View=Nézett:
gui.tooltips.appliedenergistics2.RedstoneMode=Vöröskő Mód
gui.tooltips.appliedenergistics2.OperationMode=Művelet Mód
gui.tooltips.appliedenergistics2.NumberOfItems=Tárgyak száma
gui.tooltips.appliedenergistics2.ItemName=Tárgy neve
gui.tooltips.appliedenergistics2.NumberOfItems=Tárgyak száma szerint
gui.tooltips.appliedenergistics2.ItemName=Tárgy neve szerint
gui.tooltips.appliedenergistics2.PowerUnits=Energia egységek
gui.tooltips.appliedenergistics2.IOMode=Bemenet/Kimenet Mód
gui.tooltips.appliedenergistics2.CondenserOutput=ME Sűrítő - Kimenet
@@ -277,7 +277,7 @@ gui.tooltips.appliedenergistics2.Singularity=Szingularitássá sűrítés \n%s d
gui.tooltips.appliedenergistics2.Read=Csak eltávolítás
gui.tooltips.appliedenergistics2.Write=Csak behelyezés
gui.tooltips.appliedenergistics2.ReadWrite=Két irányú
gui.tooltips.appliedenergistics2.AlwaysActive=MIndig aktív
gui.tooltips.appliedenergistics2.AlwaysActive=Mindig aktív
gui.tooltips.appliedenergistics2.ActiveWithoutSignal=Jel nélkül aktív
gui.tooltips.appliedenergistics2.ActiveWithSignal=Jellel aktív
gui.tooltips.appliedenergistics2.ActiveOnPulse=Pulzusonként aktív
@@ -291,9 +291,9 @@ gui.tooltips.appliedenergistics2.SearchMode=Keresési rublika mód
gui.tooltips.appliedenergistics2.PartitionStorageHint=A jelenleg tárolt tárgyak szerint konfigurálja a particiót.
gui.tooltips.appliedenergistics2.ClearSettings=Beállítások konfigurálása/törlése
gui.tooltips.appliedenergistics2.Craftable=Barkácsolható
gui.tooltips.appliedenergistics2.MoveWhenEmpty=Mozgassa a kimenetfelé mikor üres.
gui.tooltips.appliedenergistics2.MoveWhenWorkIsDone=Mozgassa a kimenetfelé mikor a feladat kész van.
gui.tooltips.appliedenergistics2.MoveWhenFull=Mozgassa a kimenetfelé mikor teli van.
gui.tooltips.appliedenergistics2.MoveWhenEmpty=Helyezze a kimenetfelé mikor üres.
gui.tooltips.appliedenergistics2.MoveWhenWorkIsDone=Helyezze a kimenetfelé mikor a feladat kész van.
gui.tooltips.appliedenergistics2.MoveWhenFull=Helyezze a kimenetfelé mikor megtelt.
gui.tooltips.appliedenergistics2.Disabled=Tiltott
gui.tooltips.appliedenergistics2.Enable=Engedélyezett
gui.tooltips.appliedenergistics2.Blocking=Ne helyezzen barkácsoló tárgyakat a tárolóba ha az tartalmaz tárgyakat.
@@ -304,8 +304,8 @@ gui.tooltips.appliedenergistics2.CraftEither=Használjon tárolt tárgyakat, vag
gui.tooltips.appliedenergistics2.LevelType=Szint Típus
gui.tooltips.appliedenergistics2.LevelType_Energy=Energia
gui.tooltips.appliedenergistics2.LevelType_Item=Tárgy
gui.tooltips.appliedenergistics2.InventoryTweaks=Inventory Tweaks
gui.tooltips.appliedenergistics2.Mod=Mod
gui.tooltips.appliedenergistics2.InventoryTweaks=Inventory Tweaks szerint
gui.tooltips.appliedenergistics2.Mod=Mod szerint
gui.tooltips.appliedenergistics2.TerminalStyle=Terminál Stílus
gui.tooltips.appliedenergistics2.TerminalStyle_Full=Teljes képernyős Terminál
gui.tooltips.appliedenergistics2.TerminalStyle_Tall=Magas Középreigazított Terminál
@@ -360,8 +360,8 @@ waila.appliedenergistics2.DeviceOffline=Eszköz Offline
waila.appliedenergistics2.DeviceMissingChannel=Hiányzó Csatorna
waila.appliedenergistics2.Locked=Zárolva
waila.appliedenergistics2.Unlocked=Feloldva
waila.appliedenergistics2.Showing=Mutatni
waila.appliedenergistics2.Contains=Tartalmaz
waila.appliedenergistics2.Showing=Mutatott tárgy
waila.appliedenergistics2.Contains=Energiaszint
waila.appliedenergistics2.Channels=%2$d Csatornából %1$d használatban
// Items
@@ -369,7 +369,7 @@ item.appliedenergistics2.ItemBasicStorageCell.1k.name=1k ME Tároló Cella
item.appliedenergistics2.ItemBasicStorageCell.4k.name=4k ME Tároló Cella
item.appliedenergistics2.ItemBasicStorageCell.16k.name=16k ME Tároló Cella
item.appliedenergistics2.ItemBasicStorageCell.64k.name=64k Tároló Cella
item.appliedenergistics2.ItemCreativeStorageCell.name=Kreatív ME Tároló Cella
item.appliedenergistics2.ItemCreativeStorageCell.name=Kreatív ME Tároló Cella
item.appliedenergistics2.ItemEncodedPattern.name=Kódolt Minta
item.appliedenergistics2.ItemViewCell.name=Nézet Cella
item.appliedenergistics2.ItemFacade.name=Kábel Látszat
@@ -384,7 +384,7 @@ item.appliedenergistics2.ItemMaterial.BasicCard.name=Egyszerű Kártya
item.appliedenergistics2.ItemMaterial.BlankPattern.name=Üres Minta
item.appliedenergistics2.ItemMaterial.CalcProcessor.name=Kalkulációs Processzor
item.appliedenergistics2.ItemMaterial.CardCapacity.name=Kapacitás Kártya
item.appliedenergistics2.ItemMaterial.CardFuzzy.name=Fuzzy Kártya
item.appliedenergistics2.ItemMaterial.CardFuzzy.name=Megkülönböztető Kártya
item.appliedenergistics2.ItemMaterial.CardInverter.name=Inverter Kártya
item.appliedenergistics2.ItemMaterial.CardRedstone.name=Vöröskő Kártya
item.appliedenergistics2.ItemMaterial.CardSpeed.name=Gyorsító Kártya
@@ -422,9 +422,9 @@ item.appliedenergistics2.ItemMaterial.Singularity.name=Szingularitás
item.appliedenergistics2.ItemMaterial.Wireless.name=Vezetéknélküli Fogadó
item.appliedenergistics2.ItemMaterial.WirelessBooster.name=Vezetéknélküli Erősítő
item.appliedenergistics2.ItemMaterial.WoodenGear.name=Fa fogaskerék
item.appliedenergistics2.ItemMaterial.EngProcessorPress.name=Vésett Műszaki Nyomat
item.appliedenergistics2.ItemMaterial.CalcProcessorPress.name=Vésett Kalkulációs Nyomat
item.appliedenergistics2.ItemMaterial.LogicProcessorPress.name=Vésett Logikai Nyomat
item.appliedenergistics2.ItemMaterial.EngProcessorPress.name=Műszaki Processzor Nyomat
item.appliedenergistics2.ItemMaterial.CalcProcessorPress.name=Kalkulációs Processzor Nyomat
item.appliedenergistics2.ItemMaterial.LogicProcessorPress.name=Logikai Processzor Nyomat
item.appliedenergistics2.ItemMaterial.EngProcessorPrint.name=Nyomtatott Műszaki Áramkör
item.appliedenergistics2.ItemMaterial.CalcProcessorPrint.name=Nyomtatott Kalkulációs Áramkör
item.appliedenergistics2.ItemMaterial.LogicProcessorPrint.name=Nyomtatott Logikai Áramkör
@@ -0,0 +1,476 @@
#ja_JP By Tier
tile.appliedenergistics2.BlockCableBus.name=AE2ケーブル または バス
tile.appliedenergistics2.BlockCellWorkbench.name=セル作業台
tile.appliedenergistics2.BlockCharger.name=チャージ機
tile.appliedenergistics2.BlockChest.name=MEチェスト
tile.appliedenergistics2.BlockCondenser.name=マターコンプレッサ
tile.appliedenergistics2.BlockController.name=MEコントローラ
tile.appliedenergistics2.BlockCrank.name=木のクランク
tile.appliedenergistics2.BlockCreativeEnergyCell.name=クリエイティブ用エナジーセル
tile.appliedenergistics2.BlockDenseEnergyCell.name=高密度エネルギーセル
tile.appliedenergistics2.BlockEnergyCell.name=エネルギーセル
tile.appliedenergistics2.BlockDrive.name=MEドライブ
tile.appliedenergistics2.BlockEnergyAcceptor.name=エネルギー受容体
tile.appliedenergistics2.BlockGrinder.name=手動粉砕機
tile.appliedenergistics2.BlockMatrixFrame.name=配列フレーム
tile.appliedenergistics2.BlockIOPort.name=ME入出力ポート
tile.appliedenergistics2.BlockInscriber.name=刻印機
tile.appliedenergistics2.BlockInterface.name=MEインターフェース
tile.appliedenergistics2.BlockNetworkEmitter.name=MEネットワークエミッター
tile.appliedenergistics2.BlockQuantumLinkChamber.name=ME量子リンクチャンバー
tile.appliedenergistics2.BlockQuantumRing.name=ME量子フィールドリンク
tile.appliedenergistics2.BlockFluix.name=フルーシュブロック
tile.appliedenergistics2.BlockQuartz.name=ケルタスクォーツブロック
tile.appliedenergistics2.BlockQuartzChiseled.name=模様入りケルタスクォーツブロック
tile.appliedenergistics2.BlockQuartzGlass.name=クォーツガラス
tile.appliedenergistics2.BlockQuartzLamp.name=発光クォーツガラス
tile.appliedenergistics2.BlockQuartzPillar.name=柱状ケルタスクォーツブロック
tile.appliedenergistics2.BlockQuartzTorch.name=クオーツライト
tile.appliedenergistics2.BlockLightDetector.name=レッドシグナルクオーツライト
tile.appliedenergistics2.BlockSpatialIOPort.name=空間IOポート
tile.appliedenergistics2.BlockSpatialPylon.name=空間送信鉄塔
tile.appliedenergistics2.BlockTinyTNT.name=極小TNT
tile.appliedenergistics2.BlockVibrationChamber.name=振動チャンバー
tile.appliedenergistics2.BlockWireless.name=ME無線アクセスポイント
tile.appliedenergistics2.OreQuartz.name=ケルタスクォーツ鉱石
tile.appliedenergistics2.OreQuartzCharged.name=チャージケルタスクォーツ鉱石
tile.appliedenergistics2.BlockSecurity.name=MEセキュリティターミナル
tile.appliedenergistics2.BlockQuartzGrowthAccelerator.name=結晶成長加速機
tile.appliedenergistics2.BlockSkyStone.name=スカイストーン
tile.appliedenergistics2.BlockSkyStone.Block.name=スカイストーンブロック
tile.appliedenergistics2.BlockSkyStone.Brick.name=スカイストーンレンガ
tile.appliedenergistics2.BlockSkyStone.SmallBrick.name=スカイストーン小レンガ
tile.appliedenergistics2.BlockSkyChest.name=スカイストーンチェスト
tile.appliedenergistics2.BlockSkyChest.Block.name=スカイストーンブロックチェスト
tile.appliedenergistics2.BlockSkyCompass.name=隕石探知コンパス
tile.appliedenergistics2.BlockMolecularAssembler.name=ME分子組立機
tile.appliedenergistics2.BlockCraftingMonitor.name=MEクラフティングモニター
tile.appliedenergistics2.BlockCraftingStorage.name=1k クラフティングストレージ
tile.appliedenergistics2.BlockCraftingStorage4k.name=4k クラフティングストレージ
tile.appliedenergistics2.BlockCraftingStorage16k.name=16k クラフティングストレージ
tile.appliedenergistics2.BlockCraftingStorage64k.name=64k クラフティングストレージ
tile.appliedenergistics2.BlockCraftingAccelerator.name=MEクラフティングCPU
tile.appliedenergistics2.BlockCraftingUnit.name=ME分子分子組立室
chat.appliedenergistics2.ChestCannotReadStorageCell=MEチェストがストレージセルを読み取れませんでした
chat.appliedenergistics2.OutOfRange=無線範囲外です
chat.appliedenergistics2.InvalidMachine=無効な機械です
chat.appliedenergistics2.LoadedSettings=正常に設定を読み込みました
chat.appliedenergistics2.DeviceNotPowered=充電してください
chat.appliedenergistics2.MachineNotPowered=機械にエネルギーがありません
chat.appliedenergistics2.CommunicationError=ネットワークとの通信エラーが発生しました
chat.appliedenergistics2.SavedSettings=正常に設定を保存しました
chat.appliedenergistics2.AmmoDepleted=弾薬を使い切りました
chat.appliedenergistics2.isNowLocked=モニターはロックされています
chat.appliedenergistics2.isNowUnlocked=モニターはロックされていません
itemGroup.appliedenergistics2=Applied Energistics 2
itemGroup.appliedenergistics2.facades=Applied Energistics 2 - 偽装板
gui.appliedenergistics2.Terminal=MEターミナル
gui.appliedenergistics2.CraftingTerminal=MEクラフトターミナル
gui.appliedenergistics2.METunnel=ME
gui.appliedenergistics2.ItemTunnel=アイテム
gui.appliedenergistics2.FluidTunnel=液体
gui.appliedenergistics2.RedstoneTunnel=レッドストーン
gui.appliedenergistics2.MJTunnel=MJ[BuildCraft](マインクラフトジュール)
gui.appliedenergistics2.EUTunnel=EU[IndustrialCraft2](エネルギーユニット)
gui.appliedenergistics2.RFTunnel=RF[ThermalExpantion](レッドストーンフラックス)
gui.appliedenergistics2.security.extract.name=引き出す
gui.appliedenergistics2.security.inject.name=入れる
gui.appliedenergistics2.security.craft.name=クラフト
gui.appliedenergistics2.security.build.name=組み立てる
gui.appliedenergistics2.security.security.name=セキュリティ
gui.appliedenergistics2.security.extract.tip=ユーザーはストレージからアイテムを引き出すことが許可されています
gui.appliedenergistics2.security.inject.tip=ユーザーはストレージに新しいアイテムを入れることが許可されています
gui.appliedenergistics2.security.craft.tip=ユーザーは新しいクラフトを開始することができます
gui.appliedenergistics2.security.build.tip=ユーザはネットワークの物理構造を変更し、設定変更を行うことができます
gui.appliedenergistics2.security.security.tip=ユーザーはアクセスして、ネットワークのセキュリティターミナルを変更できます
gui.appliedenergistics2.inWorldCraftingPresses=金型は世界中の中で見つけることができる隕石の中心部に存在し、それらは(全4種)隕石探知コンパスを使用して探すことができます。また刻印機を使い、各種金型をセットして鉄ブロックをセットすると複製することが出来ます。
gui.appliedenergistics2.Efficiency=効率
gui.appliedenergistics2.RequiredPower=必要電力
gui.appliedenergistics2.StoredPower=貯蔵電力
gui.appliedenergistics2.MaxPower=最大電力
gui.appliedenergistics2.QuartzCuttingKnife=クォーツナイフ
gui.appliedenergistics2.Inscriber=刻印機
gui.appliedenergistics2.Wireless=ME無線アクセスポイント
gui.appliedenergistics2.WirelessTerminal=ME無線アクセスターミナル
gui.appliedenergistics2.NoPermissions=アクセス権が選択されていません
gui.appliedenergistics2.SecurityCardEditor=生体認証カードエディタ
gui.appliedenergistics2.Encoded=エンコード済
gui.appliedenergistics2.Priority=優先度
gui.appliedenergistics2.StorageBus=MEストレージバス
gui.appliedenergistics2.EnergyDrain=受動排出
gui.appliedenergistics2.Installed=インストール済
gui.appliedenergistics2.NetworkTool=ネットワークツール
gui.appliedenergistics2.PowerUsageRate=エネルギー使用量
gui.appliedenergistics2.PowerInputRate=エネルギー入力量
gui.appliedenergistics2.PortableCell=ポータブルセル
gui.appliedenergistics2.Security=MEセキュリティ
gui.appliedenergistics2.CellWorkbench=セル作業台
gui.appliedenergistics2.QuantumLinkChamber=量子リンクチャンバー
gui.appliedenergistics2.IOPort=ME IOポート
gui.appliedenergistics2.Chest=MEチェスト
gui.appliedenergistics2.Condenser=マターコンデンサ
gui.appliedenergistics2.Config=設定
gui.appliedenergistics2.Drive=MEドライブ
gui.appliedenergistics2.ExportBus=ME出力バス
gui.appliedenergistics2.GrindStone=グラインドストーン
gui.appliedenergistics2.ImportBus=ME入力バス
gui.appliedenergistics2.Interface=MEインターフェース
gui.appliedenergistics2.LevelEmitter=MEレベルエミッター
gui.appliedenergistics2.Of=/
gui.appliedenergistics2.Patterns=パターン
gui.appliedenergistics2.SpatialIOPort=空間IOポート
gui.appliedenergistics2.StoredEnergy=貯蔵エネルギー
gui.appliedenergistics2.StoredItems=貯蔵アイテム
gui.appliedenergistics2.Terminal=MEターミナル
gui.appliedenergistics2.FormationPlane=結像面
gui.appliedenergistics2.VibrationChamber=振動チャンバー
gui.appliedenergistics2.NetworkDetails=ネットワークの詳細
gui.appliedenergistics2.StorageCells=MEストレージセル
gui.appliedenergistics2.IOBuses=ME入力/出力バス
gui.appliedenergistics2.BytesUsed=バイト使用済み
gui.appliedenergistics2.Types=タイプ
gui.appliedenergistics2.Blank=空
gui.appliedenergistics2.Unlinked=リンクされてません
gui.appliedenergistics2.Linked=リンクされました
gui.appliedenergistics2.StoredSize=格納サイズ
gui.appliedenergistics2.SkyChest=スカイストーンチェスト
gui.appliedenergistics2.PatternTerminal=MEパターンターミナル
gui.appliedenergistics2.CraftingPattern=クラフトパターン
gui.appliedenergistics2.MolecularAssembler=分子組立室
gui.appliedenergistics2.ProcessingPattern=実行パターン
gui.appliedenergistics2.Crafts=クラフト
gui.appliedenergistics2.And=と
gui.appliedenergistics2.Creates=作成
gui.appliedenergistics2.With=で
gui.appliedenergistics2.InWorldCrafting=AE2 世界でクラフト
gui.appliedenergistics2.inWorldFluix=水たまりに1チャージケルタスクォーツ + 1ネザークォーツ + レッドストーンを落とし、しばらく待ってください
gui.appliedenergistics2.inWorldPurification=水源にクォーツの粉と砂からクラフトしたクォーツの種を入れてください。処理を速くするには結晶成長加速機に隣接して水源を設置し、そこにクラフトした種を入れてください
gui.appliedenergistics2.inWorldSingularity=作る為には一個のシンギュラリティとエンダーパールの粉を投げ、爆発に巻き込んでください
gui.appliedenergistics2.ChargedQuartz=チャージケルタスクォーツは普通のケルタスクォーツをチャージ機にセットし、電力を供給することで作製されます
gui.appliedenergistics2.ChargedQuartzFind=チャージケルタスクォーツは輝くことを除いて通常のケルタスクォーツに非常に似ています。見分け方は、青い靄です
gui.appliedenergistics2.OfSecondOutput=%%の確率で副産物
gui.appliedenergistics2.NoSecondOutput=副産物なし
gui.tooltips.appliedenergistics2.Substitutions=Ore-辞書の置換
gui.tooltips.appliedenergistics2.SubstitutionsDesc=入力構成要素の置換編集オプション
gui.tooltips.appliedenergistics2.SubstitutionsOn=置換は有効です
gui.tooltips.appliedenergistics2.SubstitutionsOff=置換は無効です
gui.tooltips.appliedenergistics2.Encode=MEパターンエンコーダ
gui.tooltips.appliedenergistics2.EncodeDescription=現在エンコードされているパターン、または使用できるブランクパターンに入力されたパターンを書き込みます
gui.tooltips.appliedenergistics2.FuzzyMode=ファジー比較
gui.tooltips.appliedenergistics2.FZPercent_25=25%%の分離損失
gui.tooltips.appliedenergistics2.FZPercent_50=50%%の分離損失
gui.tooltips.appliedenergistics2.FZPercent_75=75%%の分離損失
gui.tooltips.appliedenergistics2.FZPercent_99=99%%の分離損失
gui.tooltips.appliedenergistics2.SortOrder=昇順/降順
gui.tooltips.appliedenergistics2.SortBy=並び替え方法
gui.tooltips.appliedenergistics2.FZIgnoreAll=すべてマッチする
gui.tooltips.appliedenergistics2.TransferDirection=転送方向
gui.tooltips.appliedenergistics2.TransferToNetwork=ネットワークへ
gui.tooltips.appliedenergistics2.TransferToStorageCell=MEストレージへ
gui.tooltips.appliedenergistics2.ToggleSortDirection=昇順/降順の切替
gui.tooltips.appliedenergistics2.StoredItems=格納アイテム
gui.tooltips.appliedenergistics2.StoredCraftable=格納アイテム/クラフト可能アイテム
gui.tooltips.appliedenergistics2.View=表示アイテム
gui.tooltips.appliedenergistics2.RedstoneMode=レッドストーン制御
gui.tooltips.appliedenergistics2.OperationMode=動作モード
gui.tooltips.appliedenergistics2.NumberOfItems=アイテム数
gui.tooltips.appliedenergistics2.ItemName=アイテム名称
gui.tooltips.appliedenergistics2.PowerUnits=パワーユニット
gui.tooltips.appliedenergistics2.IOMode=入出力モード
gui.tooltips.appliedenergistics2.CondenserOutput=MEコンデンサ - 出力
gui.tooltips.appliedenergistics2.PartitionStorage=パーテーションストレージ
gui.tooltips.appliedenergistics2.Clear=クリア
gui.tooltips.appliedenergistics2.TrashController=Shift/Spaceで有効
gui.tooltips.appliedenergistics2.InterfaceBlockingMode=ブロッキングモード
gui.tooltips.appliedenergistics2.InterfaceCraftingMode=クラフティングモード
gui.tooltips.appliedenergistics2.Trash=アイテムを破棄する
gui.tooltips.appliedenergistics2.MatterBalls=\n%s個のアイテムごとにマターボールに変換する
gui.tooltips.appliedenergistics2.Singularity=\n%s個のアイテムごとにシンジュラリティに変換する
gui.tooltips.appliedenergistics2.Read=出力のみ
gui.tooltips.appliedenergistics2.Write=入力のみ
gui.tooltips.appliedenergistics2.ReadWrite=入出力両方可能
gui.tooltips.appliedenergistics2.AlwaysActive=常時処理
gui.tooltips.appliedenergistics2.ActiveWithoutSignal=RS信号なし
gui.tooltips.appliedenergistics2.ActiveWithSignal=RS信号あり
gui.tooltips.appliedenergistics2.ActiveOnPulse=RSパルス
gui.tooltips.appliedenergistics2.EmitLevelsBelow=設定値以下で出力
gui.tooltips.appliedenergistics2.EmitLevelAbove=設定値以上で出力
gui.tooltips.appliedenergistics2.SearchMode_Auto=オートサーチ
gui.tooltips.appliedenergistics2.SearchMode_Standard=通常サーチ
gui.tooltips.appliedenergistics2.SearchMode_NEIAuto=NEI連携オートサーチ
gui.tooltips.appliedenergistics2.SearchMode_NEIStandard=NEI連携通常サーチ
gui.tooltips.appliedenergistics2.SearchMode=ボックスサーチモード
gui.tooltips.appliedenergistics2.PartitionStorageHint=現在の構成パーテーション
gui.tooltips.appliedenergistics2.ClearSettings=コンフィグ/設定をクリア
gui.tooltips.appliedenergistics2.Craftable=クラフト可能
gui.tooltips.appliedenergistics2.MoveWhenEmpty=空になった時に移動
gui.tooltips.appliedenergistics2.MoveWhenWorkIsDone=作業終了時に移動
gui.tooltips.appliedenergistics2.MoveWhenFull=満杯になった時に移動
gui.tooltips.appliedenergistics2.Disabled=無効
gui.tooltips.appliedenergistics2.Enable=有効
gui.tooltips.appliedenergistics2.Blocking=もしインベントリにアイテムがあるならクラフトしないでください
gui.tooltips.appliedenergistics2.NonBlocking=目的のインベントリの内容を無視する
gui.tooltips.appliedenergistics2.Craft=エクスポート中にアイテムをクラフトする
gui.tooltips.appliedenergistics2.DontCraft=エクスポート中にあるアイテムだけでクラフトする
gui.tooltips.appliedenergistics2.LevelType=レベルタイプ
gui.tooltips.appliedenergistics2.LevelType_Energy=エネルギー
gui.tooltips.appliedenergistics2.LevelType_Item=アイテム
gui.tooltips.appliedenergistics2.InventoryTweaks=Inventory Tweaks
gui.tooltips.appliedenergistics2.TerminalStyle=ターミナルスタイル
gui.tooltips.appliedenergistics2.TerminalStyle_Full=フルスクリーンターミナル
gui.tooltips.appliedenergistics2.TerminalStyle_Tall=高中央ターミナル
gui.tooltips.appliedenergistics2.TerminalStyle_Small=小中央ターミナル
gui.appliedenergistics2.InterfaceTerminal=MEインターフェースターミナル
gui.appliedenergistics2.units.appliedenergstics=AE
gui.appliedenergistics2.units.buildcraft=MJ[BuildCraft](マインクラフトジュール)
gui.appliedenergistics2.units.ic2=EU[IndustrialCraft2](エネルギーユニット)
gui.appliedenergistics2.units.universalelectricity=KJ[UniversalElectricity](キロジュール)
gui.appliedenergistics2.units.rotarycraft=W[RotaryCraft](ワット)
gui.appliedenergistics2.units.thermalexpansion=RF[ThermalExpantion](レッドストーンフラックス)
gui.appliedenergistics2.White=白色
gui.appliedenergistics2.Orange=橙色
gui.appliedenergistics2.Magenta=赤紫色
gui.appliedenergistics2.LightBlue=空色
gui.appliedenergistics2.Yellow=黄色
gui.appliedenergistics2.Lime=黄緑色
gui.appliedenergistics2.Pink=桃色
gui.appliedenergistics2.Gray=灰色
gui.appliedenergistics2.LightGray=薄灰色
gui.appliedenergistics2.Cyan=水色
gui.appliedenergistics2.Purple=紫色
gui.appliedenergistics2.Blue=青色
gui.appliedenergistics2.Brown=茶色
gui.appliedenergistics2.Green=緑色
gui.appliedenergistics2.Red=赤色
gui.appliedenergistics2.Black=黒色
gui.appliedenergistics2.Fluix=フルーシュ
gui.appliedenergistics2.MolecularAssembler=ME分子組立機
item.appliedenergistics2.ItemPart.CraftingMonitor.name=ME クラフティングモニター
waila.appliedenergistics2.DeviceOnline=装置はオンラインです
waila.appliedenergistics2.DeviceOffline=装置はオフラインです
waila.appliedenergistics2.DeviceMissingChannel=装置でチャンネルが見つかりません
waila.appliedenergistics2.Locked=ロックされています
waila.appliedenergistics2.Unlocked=ロックされてません
waila.appliedenergistics2.Showing=表示中
waila.appliedenergistics2.Contains=格納
item.appliedenergistics2.ItemBasicStorageCell.1k.name=1k MEストレージセル
item.appliedenergistics2.ItemBasicStorageCell.4k.name=4k MEストレージセル
item.appliedenergistics2.ItemBasicStorageCell.16k.name=16k MEストレージセル
item.appliedenergistics2.ItemBasicStorageCell.64k.name=64k MEストレージセル
item.appliedenergistics2.ItemCreativeStorageCell.name=クリエイティブ用MEストレージセル
item.appliedenergistics2.ItemEncodedPattern.name=エンコード済みパターン
item.appliedenergistics2.ItemViewCell.name=セルを表示
item.appliedenergistics2.ItemFacade.name=ケーブル偽装板
item.appliedenergistics2.ItemCrystalSeed.Certus.name=ケルタスクォーツの種
item.appliedenergistics2.ItemCrystalSeed.Nether.name=ネザークォーツの種
item.appliedenergistics2.ItemCrystalSeed.Fluix.name=フルーシュの種
item.appliedenergistics2.ItemMaterial.AdvCard.name=高度カード
item.appliedenergistics2.ItemMaterial.AnnihilationCore.name=消滅コア
item.appliedenergistics2.ItemMaterial.BasicCard.name=基本カード
item.appliedenergistics2.ItemMaterial.BlankPattern.name=ブランクパターン
item.appliedenergistics2.ItemMaterial.CalcProcessor.name=発展プロセッサ
item.appliedenergistics2.ItemMaterial.CardCapacity.name=容量カード
item.appliedenergistics2.ItemMaterial.CardFuzzy.name=ファジーカード
item.appliedenergistics2.ItemMaterial.CardInverter.name=反転カード
item.appliedenergistics2.ItemMaterial.CardRedstone.name=レッドストーンカード
item.appliedenergistics2.ItemMaterial.CardSpeed.name=加速カード
item.appliedenergistics2.ItemMaterial.Cell2SpatialPart.name=2立方空間ストレージ
item.appliedenergistics2.ItemMaterial.Cell16SpatialPart.name=16立方空間ストレージ
item.appliedenergistics2.ItemMaterial.Cell128SpatialPart.name=128立方空間ストレージ
item.appliedenergistics2.ItemMaterial.Cell1kPart.name=1k MEストレージセル
item.appliedenergistics2.ItemMaterial.Cell4kPart.name=4k MEストレージセル
item.appliedenergistics2.ItemMaterial.Cell16kPart.name=16k MEストレージセル
item.appliedenergistics2.ItemMaterial.Cell64kPart.name=64k MEストレージセル
item.appliedenergistics2.ItemMaterial.CertusQuartzCrystal.name=ケルタスクォーツ
item.appliedenergistics2.ItemMaterial.CertusQuartzCrystalCharged.name=チャージケルタスクォーツ
item.appliedenergistics2.ItemMaterial.CertusQuartzDust.name=ケルタスクォーツの粉
item.appliedenergistics2.ItemMaterial.EmptyStorageCell.name=MEストレージセル筐体
item.appliedenergistics2.ItemMaterial.EnderDust.name=エンダーパールの粉
item.appliedenergistics2.ItemMaterial.EngProcessor.name=上級プロセッサ
item.appliedenergistics2.ItemMaterial.Flour.name=小麦粉
item.appliedenergistics2.ItemMaterial.FluixCrystal.name=フルーシュクリスタル
item.appliedenergistics2.ItemMaterial.FluixDust.name=フルーシュの粉
item.appliedenergistics2.ItemMaterial.FluixPearl.name=フルーシュパール
item.appliedenergistics2.ItemMaterial.FormationCore.name=形成コア
item.appliedenergistics2.ItemMaterial.GoldDust.name=金の粉
item.appliedenergistics2.ItemMaterial.IronDust.name=鉄の粉
item.appliedenergistics2.ItemMaterial.IronNugget.name=鉄のナゲット
item.appliedenergistics2.ItemMaterial.LogicProcessor.name=基本プロセッサ
item.appliedenergistics2.ItemMaterial.LogicProcessorAsm.name=未完成の基本プロセッサ
item.appliedenergistics2.ItemMaterial.MatterBall.name=マターボール
item.appliedenergistics2.ItemMaterial.NetherQuartzDust.name=ネザークォーツの粉
item.appliedenergistics2.ItemMaterial.PurifiedCertusQuartzCrystal.name=純粋なケルタスクォーツ
item.appliedenergistics2.ItemMaterial.PurifiedFluixCrystal.name=純粋なフルーシュクリスタル
item.appliedenergistics2.ItemMaterial.PurifiedNetherQuartzCrystal.name=純粋なネザークォーツ
item.appliedenergistics2.ItemMaterial.QESingularity.name=量子もつれシンギュラリティ
item.appliedenergistics2.ItemMaterial.Silicon.name=シリコン
item.appliedenergistics2.ItemMaterial.Singularity.name=シンギュラリティ
item.appliedenergistics2.ItemMaterial.Wireless.name=無線受信機
item.appliedenergistics2.ItemMaterial.WirelessBooster.name=無線ブースター
item.appliedenergistics2.ItemMaterial.WoodenGear.name=木の歯車
item.appliedenergistics2.ItemMaterial.EngProcessorPress.name=上級回路の金型
item.appliedenergistics2.ItemMaterial.CalcProcessorPress.name=発展回路の金型
item.appliedenergistics2.ItemMaterial.LogicProcessorPress.name=基本回路の金型
item.appliedenergistics2.ItemMaterial.SiliconPress.name=シリコンの金型
item.appliedenergistics2.ItemMaterial.EngProcessorPrint.name=上級回路
item.appliedenergistics2.ItemMaterial.CalcProcessorPrint.name=発展回路
item.appliedenergistics2.ItemMaterial.LogicProcessorPrint.name=基本回路
item.appliedenergistics2.ItemMaterial.SiliconPrint.name=シリコン基板
item.appliedenergistics2.ItemMaterial.NamePress.name=名称銘記プレス
item.appliedenergistics2.ItemMaterial.SkyDust.name=スカイストーンの粉
item.appliedenergistics2.ToolColorApplicator.name=MEケーブル染色機
item.appliedenergistics2.ItemPart.AnnihilationPlane.name=消滅プレート
item.appliedenergistics2.ItemPart.IdentityAnnihilationPlane.name=正体プレート
item.appliedenergistics2.ItemPart.CableAnchor.name=ケーブルアンカー
item.appliedenergistics2.ItemPart.CableCovered.name=MEカバーケーブル
item.appliedenergistics2.ItemPart.CableGlass.name=MEガラスケーブル
item.appliedenergistics2.ItemPart.CableSmart.name=MEスマートケーブル
item.appliedenergistics2.ItemPart.CableDense.name=ME高密度ケーブル
item.appliedenergistics2.ItemPart.StorageMonitor.name=MEストレージモニター
item.appliedenergistics2.ItemPart.ConversionMonitor.name=ME変換モニター
item.appliedenergistics2.ItemPart.CraftingTerminal.name=MEクラフトターミナル
item.appliedenergistics2.ItemPart.SemiDarkMonitor.name=照光パネル
item.appliedenergistics2.ItemPart.Monitor.name=強照光パネル
item.appliedenergistics2.ItemPart.DarkMonitor.name=弱照光パネル
item.appliedenergistics2.ItemPart.ExportBus.name=ME出力バス
item.appliedenergistics2.ItemPart.FormationPlane.name=ME結像プレート
item.appliedenergistics2.ItemPart.ImportBus.name=ME入力バス
item.appliedenergistics2.ItemPart.Interface.name=MEインターフェース
item.appliedenergistics2.ItemPart.LevelEmitter.name=MEレベルエミッタ
item.appliedenergistics2.ItemPart.P2PTunnel.name=P2Pトンネル
item.appliedenergistics2.ItemPart.PatternTerminal.name=MEパターンターミナル
item.appliedenergistics2.ItemPart.QuartzFiber.name=クォーツ繊維
item.appliedenergistics2.ItemPart.StorageBus.name=MEストレージバス
item.appliedenergistics2.ItemPart.Terminal.name=MEターミナル
item.appliedenergistics2.ItemPart.InvertedToggleBus.name=ME反転切替バス
item.appliedenergistics2.ItemPart.ToggleBus.name=ME切替バス
item.appliedenergistics2.ItemPart.CraftingMonitor.name=MEクラフトモニター
item.appliedenergistics2.ItemPart.InterfaceTerminal.name=MEインターフェースターミナル
item.appliedenergistics2.ItemSpatialStorageCell.128Cubed.name=128立方空間ストレージセル
item.appliedenergistics2.ItemSpatialStorageCell.16Cubed.name=16立方空間ストレージセル
item.appliedenergistics2.ItemSpatialStorageCell.2Cubed.name=2立方空間ストレージセル
item.appliedenergistics2.ToolCertusQuartzAxe.name=ケルタスクォーツの 斧
item.appliedenergistics2.ToolCertusQuartzCuttingKnife.name=ケルタスクォーツのナイフ
item.appliedenergistics2.ToolCertusQuartzHoe.name=ケルタスクォーツのクワ
item.appliedenergistics2.ToolCertusQuartzPickaxe.name=ケルタスクォーツのツルハシ
item.appliedenergistics2.ToolCertusQuartzSpade.name=ケルタスクォーツのシャベル
item.appliedenergistics2.ToolCertusQuartzSword.name=ケルタスクォーツの剣
item.appliedenergistics2.ToolCertusQuartzWrench.name=ケルタスクォーツのレンチ
item.appliedenergistics2.ToolNetherQuartzAxe.name=ネザークォーツの 斧
item.appliedenergistics2.ToolNetherQuartzCuttingKnife.name=ネザークォーツのナイフ
item.appliedenergistics2.ToolNetherQuartzHoe.name=ネザークォーツのクワ
item.appliedenergistics2.ToolNetherQuartzPickaxe.name=ネザークォーツのツルハシ
item.appliedenergistics2.ToolNetherQuartzSpade.name=ネザークォーツのシャベル
item.appliedenergistics2.ToolNetherQuartzSword.name=ネザークォーツの剣
item.appliedenergistics2.ToolNetherQuartzWrench.name=ネザークォーツのレンチ
item.appliedenergistics2.ToolPortableCell.name=ポータブルセル
item.appliedenergistics2.ToolNetworkTool.name=ネットワークツール
item.appliedenergistics2.ToolChargedStaff.name=チャージ済みの杖
item.appliedenergistics2.ToolEntropyManipulator.name=エントロピー操縦機
item.appliedenergistics2.ToolMassCannon.name=マターキャノン
item.appliedenergistics2.ToolMemoryCard.name=メモリーカード
item.appliedenergistics2.ToolWirelessTerminal.name=無線アクセスターミナル
item.appliedenergistics2.ToolBiometricCard.name=生体認証カード
item.appliedenergistics2.ToolDebugCard.name=開発用.デバッグ用カード
item.appliedenergistics2.ToolReplicatorCard.name=開発用.反復子カード
commands.ae2.usage=Applied Energistics 2のコマンド - コマンドのヘルプ一覧については /ae2 list および /ae2 help を使用します
commands.ae2.permissions=このコマンドを実行するための十分な権限を持っていません
commands.ae2.ChunkLogger=チャンクのロードとアンロードをサーバーログに切り替えます(OP)
commands.ae2.ChunkLoggerOn=チャンクログがオンになりました
commands.ae2.ChunkLoggerOff=チャンクログがオフになりました
commands.ae2.Supporters=AE2のサポーター一覧を表示します
// Achievements
achievement.ae2.Compass=隕石ハンター
achievement.ae2.Compass.desc=隕石探知コンパスを作る
achievement.ae2.Presses=未知のテクノロジー
achievement.ae2.Presses.desc=プロセッサの金型を見つける
achievement.ae2.SpatialIO=空間の調整
achievement.ae2.SpatialIO.desc=空間入出力ポートを作る
achievement.ae2.SpatialIOExplorer=大胆に移動するには
achievement.ae2.SpatialIOExplorer.desc=空間ストレージに格納する
achievement.ae2.StorageCell=チェストより優れたもの
achievement.ae2.StorageCell.desc=ストレージを作る
achievement.ae2.IOPort=ストレージがごちゃ混ぜ
achievement.ae2.IOPort.desc=入出力ポートを作る
achievement.ae2.CraftingTerminal=(非常に)大きなテーブル
achievement.ae2.CraftingTerminal.desc=クラフトターミナルを作る
achievement.ae2.PatternTerminal=クラフトの巨匠
achievement.ae2.PatternTerminal.desc=パターンターミナルを作る
achievement.ae2.ChargedQuartz=開いた口が塞がらない
achievement.ae2.ChargedQuartz.desc=チャージドクォーツを見つける
achievement.ae2.Fluix=人工的
achievement.ae2.Fluix.desc=フルーシュクリスタルを作成する
achievement.ae2.Charger=フルーシュの生産
achievement.ae2.Charger.desc=チャージャーを作る
achievement.ae2.CrystalGrowthAccelerator=アクセラレータは控えめな表情だ
achievement.ae2.CrystalGrowthAccelerator.desc=結晶成長アクセラレータを作る
achievement.ae2.GlassCable=フルーシュエネルギーの接続
achievement.ae2.GlassCable.desc=MEケーブルを作る
achievement.ae2.Networking1=ネットワーク初心者
achievement.ae2.Networking1.desc=ネットワーク上の装置のチャンネルが8個に到達する
achievement.ae2.Controller=ネットワークの配電盤
achievement.ae2.Controller.desc=コントローラを作る
achievement.ae2.Networking2=ネットワークエンジニア
achievement.ae2.Networking2.desc=ネットワーク上の装置のチャンネルが128個に到達する
achievement.ae2.Networking3=ネットワーク管理者
achievement.ae2.Networking3.desc=ネットワーク上の装置のチャンネルが2048個に到達する
achievement.ae2.P2P=ネットワークを示すポイント
achievement.ae2.P2P.desc=P2Pトンネルを作る
achievement.ae2.Recursive=再帰的なネットワーク
achievement.ae2.Recursive.desc=ストレージバスのインターフェイスを設置する
achievement.ae2.CraftingCPU=次世代型クラフティング
achievement.ae2.CraftingCPU.desc=クラフトユニットを作る
achievement.ae2.Facade=美的なネットワーク
achievement.ae2.Facade.desc=外装パネルを作る
achievement.ae2.NetworkTool=ネットワーク診断
achievement.ae2.NetworkTool.desc=ネットワークツールを作る
achievement.ae2.PortableCell=ストレージの放浪者
achievement.ae2.PortableCell.desc=ポータブルストレージを作る
achievement.ae2.StorageBus=無限の可能性
achievement.ae2.StorageBus.desc=ストレージバスを作る
achievement.ae2.QNB=量子トンネル現象
achievement.ae2.QNB.desc=量子リンクを作る
stat.ae2.ItemsInserted=MEストレージにアイテムを追加した回数
stat.ae2.ItemsExtracted=MEストレージからアイテムを取り出した回数
stat.ae2.TurnedCranks=クランクを回した回数
tile.appliedenergistics2.ChiseledQuartzSlabBlock.name=様入りケルタスクォーツのハーフブロック
tile.appliedenergistics2.FluixSlabBlock.name=フルーシュのハーフブロック
tile.appliedenergistics2.QuartzPillarSlabBlock.name=柱状ケルタスクォーツのハーフブロック
tile.appliedenergistics2.QuartzSlabBlock.name=ケルタスクオーツのハーフブロック
tile.appliedenergistics2.SkyStoneBlockSlabBlock.name=スカイストーンブロックのハーフブロック
tile.appliedenergistics2.SkyStoneBrickSlabBlock.name=スカイストーンレンガのハーフブロック
tile.appliedenergistics2.SkyStoneSmallBrickSlabBlock.name=小さなスカイストーンレンガのハーフブロック
tile.appliedenergistics2.SkyStoneSlabBlock.name=スカイストーンのハーフブロック
tile.appliedenergistics2.ChiseledQuartzStairBlock.name=模様入りケルタスクォーツの階段
tile.appliedenergistics2.FluixStairBlock.name=フルーシュの階段
tile.appliedenergistics2.QuartzPillarStairBlock.name=柱状ケルタスクォーツの階段
tile.appliedenergistics2.QuartzStairBlock.name=ケルタスクオーツの階段
tile.appliedenergistics2.SkyStoneBlockStairBlock.name=スカイストーンブロックの階段
tile.appliedenergistics2.SkyStoneBrickStairBlock.name=スカイストーンレンガの階段
tile.appliedenergistics2.SkyStoneSmallBrickStairBlock.name=小さなスカイストーンレンガの階段
tile.appliedenergistics2.SkyStoneStairBlock.name=スカイストーンの階段
@@ -189,8 +189,8 @@ gui.appliedenergistics2.inWorldSingularity=将1个奇点和一个末影珍珠粉
gui.appliedenergistics2.ChargedQuartz=将未充能赛特斯石英插入充能器充能后,可以得到充能赛特斯石英.
gui.appliedenergistics2.ChargedQuartzFind=充能赛特斯石英也可以在世界中以普通赛特斯石英一半的几率找到,它的外观类似普通赛特斯石英,除了它会冒出闪电.
gui.appliedenergistics2.NoSecondOutput=无副产物.
gui.appliedenergistics2.OfSecondOutput=获得副产物概率%1$s%.
gui.appliedenergistics2.MultipleOutputs=第一副产概率%1$s%,第二副产概率%2$s%.
gui.appliedenergistics2.OfSecondOutput=获得副产物概率%1$d%%.
gui.appliedenergistics2.MultipleOutputs=第一副产概率%1$d%%,第二副产概率%2$d%%.
gui.appliedenergistics2.SelectAmount=选择数量
gui.appliedenergistics2.CopyMode=复制模式
gui.appliedenergistics2.CopyModeDesc=控制当取出存储元件时,是否清空配置格.
@@ -460,6 +460,7 @@ item.appliedenergistics2.ItemPart.InvertedToggleBus.name=ME反相触发总线
item.appliedenergistics2.ItemPart.ToggleBus.name=ME触发总线
item.appliedenergistics2.ItemPart.CraftingMonitor.name=ME合成监控器
item.appliedenergistics2.ItemPart.InterfaceTerminal.name=ME接口终端
item.appliedenergistics2.ItemPart.InvalidType.name=已禁用
item.appliedenergistics2.ItemSpatialStorageCell.128Cubed.name=128³-空间存储元件
item.appliedenergistics2.ItemSpatialStorageCell.16Cubed.name=16³-空间存储元件
@@ -1,13 +1,13 @@
shaped=
mc:gold_ingot mc:iron_ingot _,
mc:redstone ae2:ItemMaterial.CalcProcessor mc:iron_ingot,
mc:gold_ingot mc:iron_ingot _
oredictionary:ingotGold oredictionary:ingotIron _,
oredictionary:dustRedstone ae2:ItemMaterial.CalcProcessor oredictionary:ingotIron,
oredictionary:ingotGold oredictionary:ingotIron _
-> 2 ae2:ItemMaterial.BasicCard
shaped=
oredictionary:gemDiamond mc:iron_ingot _,
mc:redstone ae2:ItemMaterial.CalcProcessor mc:iron_ingot,
oredictionary:gemDiamond mc:iron_ingot _
oredictionary:gemDiamond oredictionary:ingotIron _,
oredictionary:dustRedstone ae2:ItemMaterial.CalcProcessor oredictionary:ingotIron,
oredictionary:gemDiamond oredictionary:ingotIron _
-> 2 ae2:ItemMaterial.AdvCard
shapeless=
@@ -31,5 +31,5 @@ shapeless=
-> ae2:ItemMaterial.CardSpeed
shapeless=
ae2:ItemMaterial.BasicCard mc:crafting_table
ae2:ItemMaterial.BasicCard oredictionary:craftingTableWood
-> ae2:ItemMaterial.CardCrafting
@@ -1,5 +1,5 @@
inscribe=
mc:gold_ingot ae2:ItemMaterial.LogicProcessorPress
oredictionary:ingotGold ae2:ItemMaterial.LogicProcessorPress
-> ae2:ItemMaterial.LogicProcessorPrint
inscribe=
@@ -1,15 +1,15 @@
inscribe=
mc:iron_block ae2:ItemMaterial.LogicProcessorPress
oredictionary:blockIron ae2:ItemMaterial.LogicProcessorPress
-> ae2:ItemMaterial.LogicProcessorPress
inscribe=
mc:iron_block ae2:ItemMaterial.CalcProcessorPress
oredictionary:blockIron ae2:ItemMaterial.CalcProcessorPress
-> ae2:ItemMaterial.CalcProcessorPress
inscribe=
mc:iron_block ae2:ItemMaterial.EngProcessorPress
oredictionary:blockIron ae2:ItemMaterial.EngProcessorPress
-> ae2:ItemMaterial.EngProcessorPress
inscribe=
mc:iron_block ae2:ItemMaterial.SiliconPress
oredictionary:blockIron ae2:ItemMaterial.SiliconPress
-> ae2:ItemMaterial.SiliconPress
@@ -1,11 +1,11 @@
press=
mc:redstone ae2:ItemMaterial.LogicProcessorPrint ae2:ItemMaterial.SiliconPrint
oredictionary:dustRedstone ae2:ItemMaterial.LogicProcessorPrint ae2:ItemMaterial.SiliconPrint
-> ae2:ItemMaterial.LogicProcessor
press=
mc:redstone ae2:ItemMaterial.CalcProcessorPrint ae2:ItemMaterial.SiliconPrint
oredictionary:dustRedstone ae2:ItemMaterial.CalcProcessorPrint ae2:ItemMaterial.SiliconPrint
-> ae2:ItemMaterial.CalcProcessor
press=
mc:redstone ae2:ItemMaterial.EngProcessorPrint ae2:ItemMaterial.SiliconPrint
oredictionary:dustRedstone ae2:ItemMaterial.EngProcessorPrint ae2:ItemMaterial.SiliconPrint
-> ae2:ItemMaterial.EngProcessor
@@ -1,5 +1,5 @@
shaped=
_ mc:iron_ingot _,
mc:iron_ingot ae2:ItemMaterial.CertusQuartzCrystalCharged mc:iron_ingot,
_ mc:iron_ingot _
_ oredictionary:ingotIron _,
oredictionary:ingotIron ae2:ItemMaterial.CertusQuartzCrystalCharged oredictionary:ingotIron,
_ oredictionary:ingotIron _
-> ae2:BlockSkyCompass
@@ -1,3 +1,3 @@
shapeless= mc:sand oredictionary:dustNetherQuartz -> 2 ae2:ItemCrystalSeed.Nether
shapeless= mc:sand oredictionary:dustCertusQuartz -> 2 ae2:ItemCrystalSeed.Certus
shapeless= mc:sand oredictionary:dustFluix -> 2 ae2:ItemCrystalSeed.Fluix
shapeless= oredictionary:sand oredictionary:dustNetherQuartz -> 2 ae2:ItemCrystalSeed.Nether
shapeless= oredictionary:sand oredictionary:dustCertusQuartz -> 2 ae2:ItemCrystalSeed.Certus
shapeless= oredictionary:sand oredictionary:dustFluix -> 2 ae2:ItemCrystalSeed.Fluix
@@ -1,7 +1,7 @@
shaped=
glass glass glass,
netherCrystal netherCrystal netherCrystal,
mc:wooden_slab:* mc:wooden_slab:* mc:wooden_slab:*
oredictionary:slabWood oredictionary:slabWood oredictionary:slabWood
-> mc:daylight_detector
shaped=
@@ -17,5 +17,5 @@ shaped=
-> mc:iron_ingot
shapeless=
mc:iron_ingot
oredictionary:ingotIron
-> 9 ae2:ItemMaterial.IronNugget
@@ -1,5 +1,5 @@
shaped=
wool ae2:ItemMaterial.CalcProcessor wool,
mc:iron_ingot mc:chest mc:iron_ingot,
mc:iron_ingot mc:iron_ingot mc:iron_ingot
oredictionary:ingotIron oredictionary:chestWood oredictionary:ingotIron,
oredictionary:ingotIron oredictionary:ingotIron oredictionary:ingotIron
-> ae2:BlockCellWorkbench

Some files were not shown because too many files have changed in this diff Show More