Compare commits

...

10 Commits

Author SHA1 Message Date
thatsIch 8c817b2f85 Merge pull request #1851 from thatsIch/b-1850-add-second-optional-to-grindstone
Fixes #1850: Fixed support for second optional output of the AE2 Grindstone
2015-09-10 19:15:29 +02:00
yueh 3ab6758e6c Merge pull request #1839 from yueh/fix-1833
Fixed the order craftinglinks are notified for the last item.
2015-09-05 18:00:41 +02:00
yueh 3dd948e4a4 Merge pull request #1854 from yueh/feature-recipes-refactoring
Added a missing whitespace and removed duplicate ones.
2015-09-05 18:00:22 +02:00
thatsIch 3bb9e4df97 Merge pull request #1634 from thatsIch/b-1588-wrong-oredict-name
Fixes #1588: Charged Certus Quartz Ore was given a wrong name
2015-09-03 23:50:53 +02:00
thatsIch d17f045339 Merge pull request #1852 from Mazdallier/patch-1
Update fr_FR.lang
2015-09-02 17:03:16 +02:00
yueh 5817cde56b Added a missing whitespace and removed duplicate ones. 2015-09-02 16:51:37 +02:00
Mazdallier 45d94d4c2c Update fr_FR.lang 2015-09-02 10:00:16 +02:00
thatsIch d893e52eb0 Fixes #1850: Fixed support for second optional output of the AE2 Grindstone 2015-09-01 23:58:40 +02:00
thatsIch 464a56ffc5 Fixes #1588: Charged Certus Quartz Ore was given a wrong name 2015-08-31 16:54:29 +02:00
yueh 40dcf711f6 Fixed the order craftinglinks are notified for the last item.
Fixes #1833
2015-08-28 13:29:24 +02:00
14 changed files with 269 additions and 211 deletions
+2 -2
View File
@@ -1,6 +1,6 @@
#Sat May 16 13:19:14 CEST 2015 #Mon Aug 31 16:41:19 CEST 2015
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.4-bin.zip distributionUrl=https\://services.gradle.org/distributions/gradle-2.4-all.zip
@@ -118,7 +118,7 @@ public final class GrinderRecipeManager implements IGrinderRegistry, IOreListene
} }
this.log( "Allow Grinding of " + Platform.getItemDisplayName( in ) + " to " + Platform.getItemDisplayName( out ) + " with optional " + Platform.getItemDisplayName( optional ) + " for " + cost ); this.log( "Allow Grinding of " + Platform.getItemDisplayName( in ) + " to " + Platform.getItemDisplayName( out ) + " with optional " + Platform.getItemDisplayName( optional ) + " for " + cost );
this.injectRecipe( new AppEngGrinderRecipe( this.copy( in ), this.copy( out ), this.copy( optional ), chance, cost ) ); this.injectRecipe( new AppEngGrinderRecipe( this.copy( in ), this.copy( out ), this.copy( optional ), this.copy( optional2 ), chance, chance2, cost ) );
} }
private void injectRecipe( AppEngGrinderRecipe appEngGrinderRecipe ) private void injectRecipe( AppEngGrinderRecipe appEngGrinderRecipe )
@@ -55,9 +55,13 @@ public enum GuiText
inWorldFluix, inWorldPurificationCertus, inWorldPurificationNether, inWorldFluix, inWorldPurificationCertus, inWorldPurificationNether,
inWorldPurificationFluix, inWorldSingularity, ChargedQuartz, OfSecondOutput, inWorldPurificationFluix, inWorldSingularity, ChargedQuartz,
NoSecondOutput, Stores, Next, SelectAmount, Lumen, Empty, NoSecondOutput,
OfSecondOutput,
MultipleOutputs,
Stores, Next, SelectAmount, Lumen, Empty,
ConfirmCrafting, Stored, Crafting, Scheduled, CraftingStatus, Cancel, ETA, ETAFormat, ConfirmCrafting, Stored, Crafting, Scheduled, CraftingStatus, Cancel, ETA, ETAFormat,
@@ -109,6 +109,7 @@ public class NEIGrinderRecipeHandler extends TemplateRecipeHandler
public String getGuiTexture() public String getGuiTexture()
{ {
ResourceLocation loc = new ResourceLocation( "appliedenergistics2", "textures/guis/grinder.png" ); ResourceLocation loc = new ResourceLocation( "appliedenergistics2", "textures/guis/grinder.png" );
return loc.toString(); return loc.toString();
} }
@@ -194,13 +195,22 @@ public class NEIGrinderRecipeHandler extends TemplateRecipeHandler
this.result = new PositionedStack( recipe.getOutput(), -30 + 107, 47 ); this.result = new PositionedStack( recipe.getOutput(), -30 + 107, 47 );
this.ingredients = new ArrayList<PositionedStack>(); this.ingredients = new ArrayList<PositionedStack>();
if( recipe.getOptionalOutput() != null ) final ItemStack optionalOutput = recipe.getOptionalOutput();
final int optionalChancePercent = (int) ( recipe.getOptionalChance() * 100 );
if( optionalOutput != null )
{ {
final int chancePercent = (int) ( recipe.getOptionalChance() * 100 );
this.hasOptional = true; this.hasOptional = true;
this.displayChance = String.format( GuiText.OfSecondOutput.getLocal(), chancePercent ); this.displayChance = String.format( GuiText.OfSecondOutput.getLocal(), optionalChancePercent );
this.ingredients.add( new PositionedStack( recipe.getOptionalOutput(), -30 + 107 + 18, 47 ) ); this.ingredients.add( new PositionedStack( optionalOutput, -30 + 107 + 18, 47 ) );
}
final ItemStack secondOptionalOutput = recipe.getSecondOptionalOutput();
final int secondOptionalChancePercent = (int) ( recipe.getSecondOptionalChance() * 100 );
if( secondOptionalOutput != null )
{
this.hasOptional = true;
this.displayChance = String.format( GuiText.MultipleOutputs.getLocal(), optionalChancePercent, secondOptionalChancePercent );
this.ingredients.add( new PositionedStack( secondOptionalOutput, -30 + 107 + 18 + 18, 47 ) );
} }
if( recipe.getInput() != null ) if( recipe.getInput() != null )
+3 -3
View File
@@ -314,9 +314,9 @@ public class CraftingGridCache implements ICraftingGrid, ICraftingProviderHelper
{ {
this.craftingCPUClusters.add( cluster ); this.craftingCPUClusters.add( cluster );
if( cluster.myLastLink != null ) if( cluster.getLastCraftingLink() != null )
{ {
this.addLink( (CraftingLink) cluster.myLastLink ); this.addLink( (CraftingLink) cluster.getLastCraftingLink() );
} }
} }
} }
@@ -641,7 +641,7 @@ public class CraftingGridCache implements ICraftingGrid, ICraftingProviderHelper
while( this.iterator.hasNext() && this.cpuCluster == null ) while( this.iterator.hasNext() && this.cpuCluster == null )
{ {
this.cpuCluster = this.iterator.next(); this.cpuCluster = this.iterator.next();
if( !this.cpuCluster.isActive() || this.cpuCluster.isDestroyed ) if( !this.cpuCluster.isActive() || this.cpuCluster.isDestroyed() )
{ {
this.cpuCluster = null; this.cpuCluster = null;
} }
@@ -80,31 +80,31 @@ import appeng.util.Platform;
import appeng.util.item.AEItemStack; import appeng.util.item.AEItemStack;
public class CraftingCPUCluster implements IAECluster, ICraftingCPU public final class CraftingCPUCluster implements IAECluster, ICraftingCPU
{ {
public final WorldCoord min; private final WorldCoord min;
public final WorldCoord max; private final WorldCoord max;
final int[] usedOps = new int[3]; private final int[] usedOps = new int[3];
final Map<ICraftingPatternDetails, TaskProgress> tasks = new HashMap<ICraftingPatternDetails, TaskProgress>(); private final Map<ICraftingPatternDetails, TaskProgress> tasks = new HashMap<ICraftingPatternDetails, TaskProgress>();
// INSTANCE sate // INSTANCE sate
private final LinkedList<TileCraftingTile> tiles = new LinkedList<TileCraftingTile>(); private final LinkedList<TileCraftingTile> tiles = new LinkedList<TileCraftingTile>();
private final LinkedList<TileCraftingTile> storage = new LinkedList<TileCraftingTile>(); private final LinkedList<TileCraftingTile> storage = new LinkedList<TileCraftingTile>();
private final LinkedList<TileCraftingMonitorTile> status = new LinkedList<TileCraftingMonitorTile>(); private final LinkedList<TileCraftingMonitorTile> status = new LinkedList<TileCraftingMonitorTile>();
private final HashMap<IMEMonitorHandlerReceiver<IAEItemStack>, Object> listeners = new HashMap<IMEMonitorHandlerReceiver<IAEItemStack>, Object>(); private final HashMap<IMEMonitorHandlerReceiver<IAEItemStack>, Object> listeners = new HashMap<IMEMonitorHandlerReceiver<IAEItemStack>, Object>();
public ICraftingLink myLastLink; private ICraftingLink myLastLink;
public String myName = ""; private String myName = "";
public boolean isDestroyed = false; private boolean isDestroyed = false;
/** /**
* crafting job info * crafting job info
*/ */
MECraftingInventory inventory = new MECraftingInventory(); private MECraftingInventory inventory = new MECraftingInventory();
IAEItemStack finalOutput; private IAEItemStack finalOutput;
boolean waiting = false; private boolean waiting = false;
IItemList<IAEItemStack> waitingFor = AEApi.instance().storage().createItemList(); private IItemList<IAEItemStack> waitingFor = AEApi.instance().storage().createItemList();
long availableStorage = 0; private long availableStorage = 0;
MachineSource machineSrc = null; private MachineSource machineSrc = null;
int accelerator = 0; private int accelerator = 0;
private boolean isComplete = true; private boolean isComplete = true;
private int remainingOperations; private int remainingOperations;
private boolean somethingChanged; private boolean somethingChanged;
@@ -120,6 +120,16 @@ public class CraftingCPUCluster implements IAECluster, ICraftingCPU
this.max = max; this.max = max;
} }
public boolean isDestroyed()
{
return this.isDestroyed;
}
public ICraftingLink getLastCraftingLink()
{
return this.myLastLink;
}
/** /**
* add a new Listener to the monitor, be sure to properly remove yourself when your done. * add a new Listener to the monitor, be sure to properly remove yourself when your done.
*/ */
@@ -165,10 +175,10 @@ public class CraftingCPUCluster implements IAECluster, ICraftingCPU
for( TileCraftingTile r : this.tiles ) for( TileCraftingTile r : this.tiles )
{ {
IGridNode n = r.getActionableNode(); final IGridNode n = r.getActionableNode();
if( n != null && !posted ) if( n != null && !posted )
{ {
IGrid g = n.getGrid(); final IGrid g = n.getGrid();
if( g != null ) if( g != null )
{ {
g.postEvent( new MENetworkCraftingCpuChange( n ) ); g.postEvent( new MENetworkCraftingCpuChange( n ) );
@@ -216,7 +226,7 @@ public class CraftingCPUCluster implements IAECluster, ICraftingCPU
{ {
if( input instanceof IAEItemStack ) if( input instanceof IAEItemStack )
{ {
IAEItemStack is = this.waitingFor.findPrecise( (IAEItemStack) input ); final IAEItemStack is = this.waitingFor.findPrecise( (IAEItemStack) input );
if( is != null && is.getStackSize() > 0 ) if( is != null && is.getStackSize() > 0 )
{ {
return true; return true;
@@ -227,11 +237,16 @@ public class CraftingCPUCluster implements IAECluster, ICraftingCPU
public IAEStack injectItems( IAEStack input, Actionable type, BaseActionSource src ) public IAEStack injectItems( IAEStack input, Actionable type, BaseActionSource src )
{ {
if( input instanceof IAEItemStack && type == Actionable.SIMULATE )// causes crafting to lock up? if( !( input instanceof IAEItemStack ) )
{ {
IAEItemStack what = (IAEItemStack) input.copy(); return input;
IAEItemStack is = this.waitingFor.findPrecise( what ); }
final IAEItemStack what = (IAEItemStack) input.copy();
final IAEItemStack is = this.waitingFor.findPrecise( what );
if( type == Actionable.SIMULATE )// causes crafting to lock up?
{
if( is != null && is.getStackSize() > 0 ) if( is != null && is.getStackSize() > 0 )
{ {
if( is.getStackSize() >= what.getStackSize() ) if( is.getStackSize() >= what.getStackSize() )
@@ -249,10 +264,10 @@ public class CraftingCPUCluster implements IAECluster, ICraftingCPU
return null; return null;
} }
IAEItemStack leftOver = what.copy(); final IAEItemStack leftOver = what.copy();
leftOver.decStackSize( is.getStackSize() ); leftOver.decStackSize( is.getStackSize() );
IAEItemStack used = what.copy(); final IAEItemStack used = what.copy();
used.setStackSize( is.getStackSize() ); used.setStackSize( is.getStackSize() );
if( this.finalOutput.equals( what ) ) if( this.finalOutput.equals( what ) )
@@ -269,27 +284,33 @@ public class CraftingCPUCluster implements IAECluster, ICraftingCPU
return leftOver; return leftOver;
} }
} }
else if( input instanceof IAEItemStack && type == Actionable.MODULATE ) else if( type == Actionable.MODULATE )
{ {
IAEItemStack what = (IAEItemStack) input;
IAEItemStack is = this.waitingFor.findPrecise( what );
if( is != null && is.getStackSize() > 0 ) if( is != null && is.getStackSize() > 0 )
{ {
this.waiting = false; this.waiting = false;
this.postChange( (IAEItemStack) input, src ); this.postChange( what, src );
if( is.getStackSize() >= input.getStackSize() ) if( is.getStackSize() >= what.getStackSize() )
{ {
is.decStackSize( input.getStackSize() ); is.decStackSize( what.getStackSize() );
this.updateElapsedTime( (IAEItemStack) input );
this.updateElapsedTime( what );
this.markDirty(); this.markDirty();
this.postCraftingStatusChange( is ); this.postCraftingStatusChange( is );
if( this.finalOutput.equals( input ) ) if( this.finalOutput.equals( what ) )
{ {
this.finalOutput.decStackSize( input.getStackSize() ); IAEStack leftover = what;
this.finalOutput.decStackSize( what.getStackSize() );
if( this.myLastLink != null )
{
leftover = ( (CraftingLink) this.myLastLink ).injectItems( what, type );
}
if( this.finalOutput.getStackSize() <= 0 ) if( this.finalOutput.getStackSize() <= 0 )
{ {
this.completeJob(); this.completeJob();
@@ -297,19 +318,14 @@ public class CraftingCPUCluster implements IAECluster, ICraftingCPU
this.updateCPU(); this.updateCPU();
if( this.myLastLink != null ) return leftover; // ignore it.
{
return ( (CraftingLink) this.myLastLink ).injectItems( (IAEItemStack) input, type );
}
return input; // ignore it.
} }
// 2000 // 2000
return this.inventory.injectItems( what, type, src ); return this.inventory.injectItems( what, type, src );
} }
IAEItemStack insert = what.copy(); final IAEItemStack insert = what.copy();
insert.setStackSize( is.getStackSize() ); insert.setStackSize( is.getStackSize() );
what.decStackSize( is.getStackSize() ); what.decStackSize( is.getStackSize() );
@@ -317,26 +333,25 @@ public class CraftingCPUCluster implements IAECluster, ICraftingCPU
if( this.finalOutput.equals( insert ) ) if( this.finalOutput.equals( insert ) )
{ {
IAEStack leftover = input;
this.finalOutput.decStackSize( insert.getStackSize() ); this.finalOutput.decStackSize( insert.getStackSize() );
if( this.myLastLink != null )
{
what.add( ( (CraftingLink) this.myLastLink ).injectItems( insert.copy(), type ) );
leftover = what;
}
if( this.finalOutput.getStackSize() <= 0 ) if( this.finalOutput.getStackSize() <= 0 )
{ {
this.completeJob(); this.completeJob();
} }
this.updateCPU(); this.updateCPU();
this.markDirty();
if( this.myLastLink != null ) return leftover; // ignore it.
{
what.add( ( (CraftingLink) this.myLastLink ).injectItems( insert.copy(), type ) );
return what;
}
if( this.myLastLink != null )
{
return ( (CraftingLink) this.myLastLink ).injectItems( (IAEItemStack) input, type );
}
return input; // ignore it.
} }
this.inventory.injectItems( insert, type, src ); this.inventory.injectItems( insert, type, src );
@@ -351,29 +366,29 @@ public class CraftingCPUCluster implements IAECluster, ICraftingCPU
protected void postChange( IAEItemStack diff, BaseActionSource src ) protected void postChange( IAEItemStack diff, BaseActionSource src )
{ {
Iterator<Entry<IMEMonitorHandlerReceiver<IAEItemStack>, Object>> i = this.getListeners(); final Iterator<Entry<IMEMonitorHandlerReceiver<IAEItemStack>, Object>> i = this.getListeners();
ImmutableList<IAEItemStack> single = null;
// protect integrity // protect integrity
if( i.hasNext() ) if( i.hasNext() )
{ {
single = ImmutableList.of( diff.copy() ); final ImmutableList<IAEItemStack> single = ImmutableList.of( diff.copy() );
while( i.hasNext() )
{
final Entry<IMEMonitorHandlerReceiver<IAEItemStack>, Object> o = i.next();
final IMEMonitorHandlerReceiver<IAEItemStack> receiver = o.getKey();
if( receiver.isValid( o.getValue() ) )
{
receiver.postChange( null, single, src );
}
else
{
i.remove();
}
}
} }
while( i.hasNext() )
{
Entry<IMEMonitorHandlerReceiver<IAEItemStack>, Object> o = i.next();
IMEMonitorHandlerReceiver<IAEItemStack> receiver = o.getKey();
if( receiver.isValid( o.getValue() ) )
{
receiver.postChange( null, single, src );
}
else
{
i.remove();
}
}
} }
private void markDirty() private void markDirty()
@@ -388,11 +403,11 @@ public class CraftingCPUCluster implements IAECluster, ICraftingCPU
return; return;
} }
CraftingGridCache sg = this.getGrid().getCache( ICraftingGrid.class ); final CraftingGridCache sg = this.getGrid().getCache( ICraftingGrid.class );
if( sg.interestManager.containsKey( diff ) ) if( sg.interestManager.containsKey( diff ) )
{ {
Collection<CraftingWatcher> list = sg.interestManager.get( diff ); final Collection<CraftingWatcher> list = sg.interestManager.get( diff );
if( !list.isEmpty() ) if( !list.isEmpty() )
{ {
@@ -449,10 +464,10 @@ public class CraftingCPUCluster implements IAECluster, ICraftingCPU
{ {
for( TileCraftingTile r : this.tiles ) for( TileCraftingTile r : this.tiles )
{ {
IGridNode gn = r.getActionableNode(); final IGridNode gn = r.getActionableNode();
if( gn != null ) if( gn != null )
{ {
IGrid g = gn.getGrid(); final IGrid g = gn.getGrid();
if( g != null ) if( g != null )
{ {
return r.getActionableNode().getGrid(); return r.getActionableNode().getGrid();
@@ -476,8 +491,8 @@ public class CraftingCPUCluster implements IAECluster, ICraftingCPU
{ {
fuzz = fuzz.copy(); fuzz = fuzz.copy();
fuzz.setStackSize( g.getStackSize() ); fuzz.setStackSize( g.getStackSize() );
IAEItemStack ais = this.inventory.extractItems( fuzz, Actionable.SIMULATE, this.machineSrc ); final IAEItemStack ais = this.inventory.extractItems( fuzz, Actionable.SIMULATE, this.machineSrc );
ItemStack is = ais == null ? null : ais.getItemStack(); final ItemStack is = ais == null ? null : ais.getItemStack();
if( is != null && is.stackSize == g.getStackSize() ) if( is != null && is.stackSize == g.getStackSize() )
{ {
@@ -498,8 +513,8 @@ public class CraftingCPUCluster implements IAECluster, ICraftingCPU
} }
else else
{ {
IAEItemStack ais = this.inventory.extractItems( g.copy(), Actionable.SIMULATE, this.machineSrc ); final IAEItemStack ais = this.inventory.extractItems( g.copy(), Actionable.SIMULATE, this.machineSrc );
ItemStack is = ais == null ? null : ais.getItemStack(); final ItemStack is = ais == null ? null : ais.getItemStack();
if( is == null || is.stackSize < g.getStackSize() ) if( is == null || is.stackSize < g.getStackSize() )
{ {
@@ -529,7 +544,7 @@ public class CraftingCPUCluster implements IAECluster, ICraftingCPU
this.myLastLink = null; this.myLastLink = null;
this.tasks.clear(); this.tasks.clear();
ImmutableSet<IAEItemStack> items = ImmutableSet.copyOf( this.waitingFor ); final ImmutableSet<IAEItemStack> items = ImmutableSet.copyOf( this.waitingFor );
this.waitingFor.resetStatus(); this.waitingFor.resetStatus();
@@ -578,7 +593,7 @@ public class CraftingCPUCluster implements IAECluster, ICraftingCPU
} }
this.remainingOperations = this.accelerator + 1 - ( this.usedOps[0] + this.usedOps[1] + this.usedOps[2] ); this.remainingOperations = this.accelerator + 1 - ( this.usedOps[0] + this.usedOps[1] + this.usedOps[2] );
int started = this.remainingOperations; final int started = this.remainingOperations;
if( this.remainingOperations > 0 ) if( this.remainingOperations > 0 )
{ {
@@ -601,17 +616,20 @@ public class CraftingCPUCluster implements IAECluster, ICraftingCPU
private void executeCrafting( IEnergyGrid eg, CraftingGridCache cc ) private void executeCrafting( IEnergyGrid eg, CraftingGridCache cc )
{ {
Iterator<Entry<ICraftingPatternDetails, TaskProgress>> i = this.tasks.entrySet().iterator(); final Iterator<Entry<ICraftingPatternDetails, TaskProgress>> i = this.tasks.entrySet().iterator();
while( i.hasNext() ) while( i.hasNext() )
{ {
Entry<ICraftingPatternDetails, TaskProgress> e = i.next(); final Entry<ICraftingPatternDetails, TaskProgress> e = i.next();
if( e.getValue().value <= 0 ) if( e.getValue().value <= 0 )
{ {
i.remove(); i.remove();
continue; continue;
} }
ICraftingPatternDetails details = e.getKey(); final ICraftingPatternDetails details = e.getKey();
if( this.canCraft( details, details.getCondensedInputs() ) ) if( this.canCraft( details, details.getCondensedInputs() ) )
{ {
InventoryCrafting ic = null; InventoryCrafting ic = null;
@@ -627,9 +645,9 @@ public class CraftingCPUCluster implements IAECluster, ICraftingCPU
{ {
if( ic == null ) if( ic == null )
{ {
IAEItemStack[] input = details.getInputs(); final IAEItemStack[] input = details.getInputs();
double sum = 0; double sum = 0;
for( IAEItemStack anInput : input ) for( IAEItemStack anInput : input )
{ {
if( anInput != null ) if( anInput != null )
@@ -649,10 +667,10 @@ public class CraftingCPUCluster implements IAECluster, ICraftingCPU
for( int x = 0; x < input.length; x++ ) for( int x = 0; x < input.length; x++ )
{ {
if( input[x] != null ) if( input[x] != null )
{ {
found = false; found = false;
if( details.isCraftable() ) if( details.isCraftable() )
{ {
for( IAEItemStack fuzz : this.inventory.getItemList().findFuzzy( input[x], FuzzyMode.IGNORE_ALL ) ) for( IAEItemStack fuzz : this.inventory.getItemList().findFuzzy( input[x], FuzzyMode.IGNORE_ALL ) )
@@ -662,8 +680,8 @@ public class CraftingCPUCluster implements IAECluster, ICraftingCPU
if( details.isValidItemForSlot( x, fuzz.getItemStack(), this.getWorld() ) ) if( details.isValidItemForSlot( x, fuzz.getItemStack(), this.getWorld() ) )
{ {
IAEItemStack ais = this.inventory.extractItems( fuzz, Actionable.MODULATE, this.machineSrc ); final IAEItemStack ais = this.inventory.extractItems( fuzz, Actionable.MODULATE, this.machineSrc );
ItemStack is = ais == null ? null : ais.getItemStack(); final ItemStack is = ais == null ? null : ais.getItemStack();
if( is != null ) if( is != null )
{ {
@@ -677,8 +695,8 @@ public class CraftingCPUCluster implements IAECluster, ICraftingCPU
} }
else else
{ {
IAEItemStack ais = this.inventory.extractItems( input[x].copy(), Actionable.MODULATE, this.machineSrc ); final IAEItemStack ais = this.inventory.extractItems( input[x].copy(), Actionable.MODULATE, this.machineSrc );
ItemStack is = ais == null ? null : ais.getItemStack(); final ItemStack is = ais == null ? null : ais.getItemStack();
if( is != null ) if( is != null )
{ {
@@ -704,7 +722,7 @@ public class CraftingCPUCluster implements IAECluster, ICraftingCPU
// put stuff back.. // put stuff back..
for( int x = 0; x < ic.getSizeInventory(); x++ ) for( int x = 0; x < ic.getSizeInventory(); x++ )
{ {
ItemStack is = ic.getStackInSlot( x ); final ItemStack is = ic.getStackInSlot( x );
if( is != null ) if( is != null )
{ {
this.inventory.injectItems( AEItemStack.create( is ), Actionable.MODULATE, this.machineSrc ); this.inventory.injectItems( AEItemStack.create( is ), Actionable.MODULATE, this.machineSrc );
@@ -733,10 +751,10 @@ public class CraftingCPUCluster implements IAECluster, ICraftingCPU
for( int x = 0; x < ic.getSizeInventory(); x++ ) for( int x = 0; x < ic.getSizeInventory(); x++ )
{ {
ItemStack output = Platform.getContainerItem( ic.getStackInSlot( x ) ); final ItemStack output = Platform.getContainerItem( ic.getStackInSlot( x ) );
if( output != null ) if( output != null )
{ {
IAEItemStack cItem = AEItemStack.create( output ); final IAEItemStack cItem = AEItemStack.create( output );
this.postChange( cItem, this.machineSrc ); this.postChange( cItem, this.machineSrc );
this.waitingFor.add( cItem ); this.waitingFor.add( cItem );
this.postCraftingStatusChange( cItem ); this.postCraftingStatusChange( cItem );
@@ -766,7 +784,7 @@ public class CraftingCPUCluster implements IAECluster, ICraftingCPU
// put stuff back.. // put stuff back..
for( int x = 0; x < ic.getSizeInventory(); x++ ) for( int x = 0; x < ic.getSizeInventory(); x++ )
{ {
ItemStack is = ic.getStackInSlot( x ); final ItemStack is = ic.getStackInSlot( x );
if( is != null ) if( is != null )
{ {
this.inventory.injectItems( AEItemStack.create( is ), Actionable.MODULATE, this.machineSrc ); this.inventory.injectItems( AEItemStack.create( is ), Actionable.MODULATE, this.machineSrc );
@@ -779,14 +797,15 @@ public class CraftingCPUCluster implements IAECluster, ICraftingCPU
private void storeItems() private void storeItems()
{ {
IGrid g = this.getGrid(); final IGrid g = this.getGrid();
if( g == null ) if( g == null )
{ {
return; return;
} }
IStorageGrid sg = g.getCache( IStorageGrid.class ); final IStorageGrid sg = g.getCache( IStorageGrid.class );
IMEInventory<IAEItemStack> ii = sg.getItemInventory(); final IMEInventory<IAEItemStack> ii = sg.getItemInventory();
for( IAEItemStack is : this.inventory.getItemList() ) for( IAEItemStack is : this.inventory.getItemList() )
{ {
@@ -829,9 +848,9 @@ public class CraftingCPUCluster implements IAECluster, ICraftingCPU
return null; return null;
} }
IStorageGrid sg = g.getCache( IStorageGrid.class ); final IStorageGrid sg = g.getCache( IStorageGrid.class );
IMEInventory<IAEItemStack> storage = sg.getItemInventory(); final IMEInventory<IAEItemStack> storage = sg.getItemInventory();
MECraftingInventory ci = new MECraftingInventory( storage, true, false, false ); final MECraftingInventory ci = new MECraftingInventory( storage, true, false, false );
try try
{ {
@@ -845,7 +864,7 @@ public class CraftingCPUCluster implements IAECluster, ICraftingCPU
this.markDirty(); this.markDirty();
this.updateCPU(); this.updateCPU();
String craftID = this.generateCraftingID(); final String craftID = this.generateCraftingID();
this.myLastLink = new CraftingLink( this.generateLinkData( craftID, requestingMachine == null, false ), this ); this.myLastLink = new CraftingLink( this.generateLinkData( craftID, requestingMachine == null, false ), this );
@@ -856,12 +875,12 @@ public class CraftingCPUCluster implements IAECluster, ICraftingCPU
return this.myLastLink; return this.myLastLink;
} }
ICraftingLink whatLink = new CraftingLink( this.generateLinkData( craftID, false, true ), requestingMachine ); final ICraftingLink whatLink = new CraftingLink( this.generateLinkData( craftID, false, true ), requestingMachine );
this.submitLink( this.myLastLink ); this.submitLink( this.myLastLink );
this.submitLink( whatLink ); this.submitLink( whatLink );
IItemList<IAEItemStack> list = AEApi.instance().storage().createItemList(); final IItemList<IAEItemStack> list = AEApi.instance().storage().createItemList();
this.getListOfItem( list, CraftingItemList.ALL ); this.getListOfItem( list, CraftingItemList.ALL );
for( IAEItemStack ge : list ) for( IAEItemStack ge : list )
{ {
@@ -889,7 +908,8 @@ public class CraftingCPUCluster implements IAECluster, ICraftingCPU
@Override @Override
public boolean isBusy() public boolean isBusy()
{ {
Iterator<Entry<ICraftingPatternDetails, TaskProgress>> i = this.tasks.entrySet().iterator(); final Iterator<Entry<ICraftingPatternDetails, TaskProgress>> i = this.tasks.entrySet().iterator();
while( i.hasNext() ) while( i.hasNext() )
{ {
if( i.next().getValue().value <= 0 ) if( i.next().getValue().value <= 0 )
@@ -927,13 +947,14 @@ public class CraftingCPUCluster implements IAECluster, ICraftingCPU
public boolean isActive() public boolean isActive()
{ {
TileCraftingTile core = this.getCore(); final TileCraftingTile core = this.getCore();
if( core == null ) if( core == null )
{ {
return false; return false;
} }
IGridNode node = core.getActionableNode(); final IGridNode node = core.getActionableNode();
if( node == null ) if( node == null )
{ {
return false; return false;
@@ -944,16 +965,16 @@ public class CraftingCPUCluster implements IAECluster, ICraftingCPU
private String generateCraftingID() private String generateCraftingID()
{ {
long now = System.currentTimeMillis(); final long now = System.currentTimeMillis();
int hash = System.identityHashCode( this ); final int hash = System.identityHashCode( this );
int hmm = this.finalOutput == null ? 0 : this.finalOutput.hashCode(); final int hmm = this.finalOutput == null ? 0 : this.finalOutput.hashCode();
return Long.toString( now, Character.MAX_RADIX ) + '-' + Integer.toString( hash, Character.MAX_RADIX ) + '-' + Integer.toString( hmm, Character.MAX_RADIX ); return Long.toString( now, Character.MAX_RADIX ) + '-' + Integer.toString( hash, Character.MAX_RADIX ) + '-' + Integer.toString( hmm, Character.MAX_RADIX );
} }
private NBTTagCompound generateLinkData( String craftingID, boolean standalone, boolean req ) private NBTTagCompound generateLinkData( String craftingID, boolean standalone, boolean req )
{ {
NBTTagCompound tag = new NBTTagCompound(); final NBTTagCompound tag = new NBTTagCompound();
tag.setString( "CraftID", craftingID ); tag.setString( "CraftID", craftingID );
tag.setBoolean( "canceled", false ); tag.setBoolean( "canceled", false );
@@ -968,7 +989,7 @@ public class CraftingCPUCluster implements IAECluster, ICraftingCPU
{ {
if( this.getGrid() != null ) if( this.getGrid() != null )
{ {
CraftingGridCache cc = this.getGrid().getCache( ICraftingGrid.class ); final CraftingGridCache cc = this.getGrid().getCache( ICraftingGrid.class );
cc.addLink( (CraftingLink) myLastLink2 ); cc.addLink( (CraftingLink) myLastLink2 );
} }
} }
@@ -1045,6 +1066,7 @@ public class CraftingCPUCluster implements IAECluster, ICraftingCPU
public IAEItemStack getItemStack( IAEItemStack what, CraftingItemList storage2 ) public IAEItemStack getItemStack( IAEItemStack what, CraftingItemList storage2 )
{ {
IAEItemStack is; IAEItemStack is;
switch( storage2 ) switch( storage2 )
{ {
case STORAGE: case STORAGE:
@@ -1094,15 +1116,15 @@ public class CraftingCPUCluster implements IAECluster, ICraftingCPU
if( this.myLastLink != null ) if( this.myLastLink != null )
{ {
NBTTagCompound link = new NBTTagCompound(); final NBTTagCompound link = new NBTTagCompound();
this.myLastLink.writeToNBT( link ); this.myLastLink.writeToNBT( link );
data.setTag( "link", link ); data.setTag( "link", link );
} }
NBTTagList list = new NBTTagList(); final NBTTagList list = new NBTTagList();
for( Entry<ICraftingPatternDetails, TaskProgress> e : this.tasks.entrySet() ) for( Entry<ICraftingPatternDetails, TaskProgress> e : this.tasks.entrySet() )
{ {
NBTTagCompound item = this.writeItem( AEItemStack.create( e.getKey().getPattern() ) ); final NBTTagCompound item = this.writeItem( AEItemStack.create( e.getKey().getPattern() ) );
item.setLong( "craftingProgress", e.getValue().value ); item.setLong( "craftingProgress", e.getValue().value );
list.appendTag( item ); list.appendTag( item );
} }
@@ -1117,7 +1139,7 @@ public class CraftingCPUCluster implements IAECluster, ICraftingCPU
private NBTTagCompound writeItem( IAEItemStack finalOutput2 ) private NBTTagCompound writeItem( IAEItemStack finalOutput2 )
{ {
NBTTagCompound out = new NBTTagCompound(); final NBTTagCompound out = new NBTTagCompound();
if( finalOutput2 != null ) if( finalOutput2 != null )
{ {
@@ -1129,7 +1151,7 @@ public class CraftingCPUCluster implements IAECluster, ICraftingCPU
private NBTTagList writeList( IItemList<IAEItemStack> myList ) private NBTTagList writeList( IItemList<IAEItemStack> myList )
{ {
NBTTagList out = new NBTTagList(); final NBTTagList out = new NBTTagList();
for( IAEItemStack ais : myList ) for( IAEItemStack ais : myList )
{ {
@@ -1141,7 +1163,7 @@ public class CraftingCPUCluster implements IAECluster, ICraftingCPU
public void done() public void done()
{ {
TileCraftingTile core = this.getCore(); final TileCraftingTile core = this.getCore();
core.isCoreBlock = true; core.isCoreBlock = true;
@@ -1168,23 +1190,23 @@ public class CraftingCPUCluster implements IAECluster, ICraftingCPU
if( data.hasKey( "link" ) ) if( data.hasKey( "link" ) )
{ {
NBTTagCompound link = data.getCompoundTag( "link" ); final NBTTagCompound link = data.getCompoundTag( "link" );
this.myLastLink = new CraftingLink( link, this ); this.myLastLink = new CraftingLink( link, this );
this.submitLink( this.myLastLink ); this.submitLink( this.myLastLink );
} }
NBTTagList list = data.getTagList( "tasks", 10 ); final NBTTagList list = data.getTagList( "tasks", 10 );
for( int x = 0; x < list.tagCount(); x++ ) for( int x = 0; x < list.tagCount(); x++ )
{ {
NBTTagCompound item = list.getCompoundTagAt( x ); final NBTTagCompound item = list.getCompoundTagAt( x );
IAEItemStack pattern = AEItemStack.loadItemStackFromNBT( item ); final IAEItemStack pattern = AEItemStack.loadItemStackFromNBT( item );
if( pattern != null && pattern.getItem() instanceof ICraftingPatternItem ) if( pattern != null && pattern.getItem() instanceof ICraftingPatternItem )
{ {
ICraftingPatternItem cpi = (ICraftingPatternItem) pattern.getItem(); final ICraftingPatternItem cpi = (ICraftingPatternItem) pattern.getItem();
ICraftingPatternDetails details = cpi.getPatternForItem( pattern.getItemStack(), this.getWorld() ); final ICraftingPatternDetails details = cpi.getPatternForItem( pattern.getItemStack(), this.getWorld() );
if( details != null ) if( details != null )
{ {
TaskProgress tp = new TaskProgress(); final TaskProgress tp = new TaskProgress();
tp.value = item.getLong( "craftingProgress" ); tp.value = item.getLong( "craftingProgress" );
this.tasks.put( details, tp ); this.tasks.put( details, tp );
} }
@@ -1225,7 +1247,8 @@ public class CraftingCPUCluster implements IAECluster, ICraftingCPU
private IItemList<IAEItemStack> readList( NBTTagList tag ) private IItemList<IAEItemStack> readList( NBTTagList tag )
{ {
IItemList<IAEItemStack> out = AEApi.instance().storage().createItemList(); final IItemList<IAEItemStack> out = AEApi.instance().storage().createItemList();
if( tag == null ) if( tag == null )
{ {
return out; return out;
@@ -1233,7 +1256,7 @@ public class CraftingCPUCluster implements IAECluster, ICraftingCPU
for( int x = 0; x < tag.tagCount(); x++ ) for( int x = 0; x < tag.tagCount(); x++ )
{ {
IAEItemStack ais = AEItemStack.loadItemStackFromNBT( tag.getCompoundTagAt( x ) ); final IAEItemStack ais = AEItemStack.loadItemStackFromNBT( tag.getCompoundTagAt( x ) );
if( ais != null ) if( ais != null )
{ {
out.add( ais ); out.add( ais );
@@ -1250,13 +1273,14 @@ public class CraftingCPUCluster implements IAECluster, ICraftingCPU
public boolean isMaking( IAEItemStack what ) public boolean isMaking( IAEItemStack what )
{ {
IAEItemStack wat = this.waitingFor.findPrecise( what ); final IAEItemStack wat = this.waitingFor.findPrecise( what );
return wat != null && wat.getStackSize() > 0; return wat != null && wat.getStackSize() > 0;
} }
public void breakCluster() public void breakCluster()
{ {
TileCraftingTile t = this.getCore(); final TileCraftingTile t = this.getCore();
if( t != null ) if( t != null )
{ {
t.breakCluster(); t.breakCluster();
@@ -1267,9 +1291,10 @@ public class CraftingCPUCluster implements IAECluster, ICraftingCPU
{ {
this.lastTime = System.nanoTime(); this.lastTime = System.nanoTime();
this.elapsedTime = 0; this.elapsedTime = 0;
int itemCount = 0;
IItemList<IAEItemStack> list = AEApi.instance().storage().createItemList(); int itemCount = 0;
final IItemList<IAEItemStack> list = AEApi.instance().storage().createItemList();
this.getListOfItem( list, CraftingItemList.ACTIVE ); this.getListOfItem( list, CraftingItemList.ACTIVE );
this.getListOfItem( list, CraftingItemList.PENDING ); this.getListOfItem( list, CraftingItemList.PENDING );
@@ -1307,7 +1332,6 @@ public class CraftingCPUCluster implements IAECluster, ICraftingCPU
static class TaskProgress static class TaskProgress
{ {
long value; long value;
} }
} }
@@ -185,8 +185,9 @@ gui.appliedenergistics2.inWorldPurificationFluix=Drop a Fluix Seed made from Flu
gui.appliedenergistics2.inWorldSingularity=To create drop 1 Singularity and 1 Ender Dust and cause an explosion within range of the items. gui.appliedenergistics2.inWorldSingularity=To create drop 1 Singularity and 1 Ender Dust and cause an explosion within range of the items.
gui.appliedenergistics2.ChargedQuartz=Charged Certus Quartz is crafted by inserting an uncharged Certus Quartz Crystal into the Charger, and powering it. gui.appliedenergistics2.ChargedQuartz=Charged Certus Quartz is crafted by inserting an uncharged Certus Quartz Crystal into the Charger, and powering it.
gui.appliedenergistics2.ChargedQuartzFind=Charged Certus Quartz can be found in world semi rarely, it appears similar to normal Certus Quartz, except it sparkles. gui.appliedenergistics2.ChargedQuartzFind=Charged Certus Quartz can be found in world semi rarely, it appears similar to normal Certus Quartz, except it sparkles.
gui.appliedenergistics2.OfSecondOutput=%1$d%% Chance for second output.
gui.appliedenergistics2.NoSecondOutput=No Secondary Output gui.appliedenergistics2.NoSecondOutput=No Secondary Output
gui.appliedenergistics2.OfSecondOutput=%1$d%% Chance for second output.
gui.appliedenergistics2.MultipleOutputs=%1$d%% second, %2$d%% third output.
gui.appliedenergistics2.SelectAmount=Select Amount gui.appliedenergistics2.SelectAmount=Select Amount
gui.appliedenergistics2.CopyMode=Copy Mode gui.appliedenergistics2.CopyMode=Copy Mode
gui.appliedenergistics2.CopyModeDesc=Controls if the contents of the configuration pane are cleared when you remove the cell. gui.appliedenergistics2.CopyModeDesc=Controls if the contents of the configuration pane are cleared when you remove the cell.
@@ -42,13 +42,13 @@ tile.appliedenergistics2.BlockSkyStone.SmallBrick.name=Briquettes de pierre de c
tile.appliedenergistics2.BlockSkyChest.name=Coffre de pierre de ciel tile.appliedenergistics2.BlockSkyChest.name=Coffre de pierre de ciel
tile.appliedenergistics2.BlockSkyChest.Block.name=Coffre de bloc de pierre de ciel tile.appliedenergistics2.BlockSkyChest.Block.name=Coffre de bloc de pierre de ciel
tile.appliedenergistics2.BlockSkyCompass.name=Boussole à météorite tile.appliedenergistics2.BlockSkyCompass.name=Boussole à météorite
tile.appliedenergistics2.BlockCraftingMonitor.name=Moniteur de craft tile.appliedenergistics2.BlockCraftingMonitor.name=Moniteur de fabrication
tile.appliedenergistics2.BlockCraftingStorage.name=Disque 1k pour le craft tile.appliedenergistics2.BlockCraftingStorage.name=Disque 1k pour la fabrication
tile.appliedenergistics2.BlockCraftingStorage4k.name=Disque 4k pour le craft tile.appliedenergistics2.BlockCraftingStorage4k.name=Disque 4k pour la fabrication
tile.appliedenergistics2.BlockCraftingStorage16k.name=Disque 16k pour le craft tile.appliedenergistics2.BlockCraftingStorage16k.name=Disque 16k pour la fabrication
tile.appliedenergistics2.BlockCraftingStorage64k.name=Disque 64k pour le craft tile.appliedenergistics2.BlockCraftingStorage64k.name=Disque 64k pour la fabrication
tile.appliedenergistics2.BlockCraftingAccelerator.name=Unité de co-traitement tile.appliedenergistics2.BlockCraftingAccelerator.name=Unité de co-traitement
tile.appliedenergistics2.BlockCraftingUnit.name=Unité de craft tile.appliedenergistics2.BlockCraftingUnit.name=Unité de fabrication
tile.appliedenergistics2.BlockMolecularAssembler.name=Assembleur moléculaire tile.appliedenergistics2.BlockMolecularAssembler.name=Assembleur moléculaire
// Stairs // Stairs
@@ -61,6 +61,16 @@ tile.appliedenergistics2.SkyStoneBrickStairBlock.name=Escaliers de briques de pi
tile.appliedenergistics2.SkyStoneSmallBrickStairBlock.name=Escaliers de petites briques de pierre de ciel tile.appliedenergistics2.SkyStoneSmallBrickStairBlock.name=Escaliers de petites briques de pierre de ciel
tile.appliedenergistics2.SkyStoneStairBlock.name=Escaliers de pierre de ciel tile.appliedenergistics2.SkyStoneStairBlock.name=Escaliers de pierre de ciel
// Slabs
tile.appliedenergistics2.ChiseledQuartzSlabBlock.name=Dalle de Quartz Certus ciselé
tile.appliedenergistics2.FluixSlabBlock.name=Dalle de Fluix
tile.appliedenergistics2.QuartzPillarSlabBlock.name=Dalle de pilier de Quartz Certus
tile.appliedenergistics2.QuartzSlabBlock.name=Dalle de Quartz Certus
tile.appliedenergistics2.SkyStoneBlockSlabBlock.name=Dalle de bloc de pierre de ciel
tile.appliedenergistics2.SkyStoneBrickSlabBlock.name=Dalle de briques de pierre de ciel
tile.appliedenergistics2.SkyStoneSmallBrickSlabBlock.name=Dalle de petites briques de pierre de ciel
tile.appliedenergistics2.SkyStoneSlabBlock.name=Dalle de pierre de ciel
// Chat Messages // Chat Messages
chat.appliedenergistics2.ChestCannotReadStorageCell=Le coffre ME Chest ne peut pas lire la cellule de stockage. chat.appliedenergistics2.ChestCannotReadStorageCell=Le coffre ME Chest ne peut pas lire la cellule de stockage.
chat.appliedenergistics2.SettingCleared=Paramètres effacés. chat.appliedenergistics2.SettingCleared=Paramètres effacés.
@@ -83,7 +93,7 @@ itemGroup.appliedenergistics2=Applied Energistics 2
itemGroup.appliedenergistics2.facades=Façades Applied Energistics 2 itemGroup.appliedenergistics2.facades=Façades Applied Energistics 2
// GUI // GUI
gui.appliedenergistics2.CraftingTerminal=Terminal de craft gui.appliedenergistics2.CraftingTerminal=Terminal de fabrication
gui.appliedenergistics2.METunnel=ME gui.appliedenergistics2.METunnel=ME
gui.appliedenergistics2.ItemTunnel=Objet gui.appliedenergistics2.ItemTunnel=Objet
gui.appliedenergistics2.FluidTunnel=Fluide gui.appliedenergistics2.FluidTunnel=Fluide
@@ -91,16 +101,18 @@ gui.appliedenergistics2.RedstoneTunnel=Redstone
gui.appliedenergistics2.EUTunnel=EU gui.appliedenergistics2.EUTunnel=EU
gui.appliedenergistics2.RFTunnel=RF gui.appliedenergistics2.RFTunnel=RF
gui.appliedenergistics2.LightTunnel=Lumière gui.appliedenergistics2.LightTunnel=Lumière
gui.appliedenergistics2.OCTunnel=OpenComputers
gui.appliedenergistics2.PressureTunnel=Pression
gui.appliedenergistics2.security.extract.name=Retrait gui.appliedenergistics2.security.extract.name=Retrait
gui.appliedenergistics2.security.inject.name=Dépôt gui.appliedenergistics2.security.inject.name=Dépôt
gui.appliedenergistics2.security.craft.name=Craft gui.appliedenergistics2.security.craft.name=Fabrication
gui.appliedenergistics2.security.build.name=Construction gui.appliedenergistics2.security.build.name=Construction
gui.appliedenergistics2.security.security.name=Sécurité gui.appliedenergistics2.security.security.name=Sécurité
gui.appliedenergistics2.security.extract.tip=L'utilisateur est autorisé à retirer un élément du stockage. gui.appliedenergistics2.security.extract.tip=L'utilisateur est autorisé à retirer un élément du stockage.
gui.appliedenergistics2.security.inject.tip=L'utilisateur est autorisé à déposer un élément dans le stockage. gui.appliedenergistics2.security.inject.tip=L'utilisateur est autorisé à déposer un élément dans le stockage.
gui.appliedenergistics2.security.craft.tip=L'utilisateur peut lancer de nouveaux crafts. gui.appliedenergistics2.security.craft.tip=L'utilisateur peut lancer de nouvelles fabrications.
gui.appliedenergistics2.security.build.tip=L'utilisateur peut modifier la structure physique du réseau et faire des changement de configuration. gui.appliedenergistics2.security.build.tip=L'utilisateur peut modifier la structure physique du réseau et faire des changement de configuration.
gui.appliedenergistics2.security.security.tip=L'utilisateur peut accéder et modifier le terminal de sécurité du réseau. gui.appliedenergistics2.security.security.tip=L'utilisateur peut accéder et modifier le terminal de sécurité du réseau.
@@ -149,7 +161,7 @@ gui.appliedenergistics2.VibrationChamber=Chambre de vibration
gui.appliedenergistics2.NetworkDetails=Détails du réseau gui.appliedenergistics2.NetworkDetails=Détails du réseau
gui.appliedenergistics2.StorageCells=Cellules de stockage ME gui.appliedenergistics2.StorageCells=Cellules de stockage ME
gui.appliedenergistics2.IOBuses=Bus d'import/export ME gui.appliedenergistics2.IOBuses=Bus d'import/export ME
gui.appliedenergistics2.Stores=Stocke gui.appliedenergistics2.Stores=Stocks
gui.appliedenergistics2.BytesUsed=Octets utilisés gui.appliedenergistics2.BytesUsed=Octets utilisés
gui.appliedenergistics2.Types=Types gui.appliedenergistics2.Types=Types
gui.appliedenergistics2.Blank=Vide gui.appliedenergistics2.Blank=Vide
@@ -158,10 +170,10 @@ gui.appliedenergistics2.Linked=Lié
gui.appliedenergistics2.StoredSize=Quantité stockée gui.appliedenergistics2.StoredSize=Quantité stockée
gui.appliedenergistics2.SkyChest=Coffre de pierre du ciel gui.appliedenergistics2.SkyChest=Coffre de pierre du ciel
gui.appliedenergistics2.PatternTerminal=Terminal des modèles gui.appliedenergistics2.PatternTerminal=Terminal des modèles
gui.appliedenergistics2.CraftingPattern=Modèle de craft gui.appliedenergistics2.CraftingPattern=Modèle de fabrication
gui.appliedenergistics2.MolecularAssembler=Assembleur moléculaire gui.appliedenergistics2.MolecularAssembler=Assembleur moléculaire
gui.appliedenergistics2.ProcessingPattern=Modèle de traitement gui.appliedenergistics2.ProcessingPattern=Modèle de traitement
gui.appliedenergistics2.Crafts=Crafts gui.appliedenergistics2.Crafts=Fabrications
gui.appliedenergistics2.And=et gui.appliedenergistics2.And=et
gui.appliedenergistics2.Creates=Crée gui.appliedenergistics2.Creates=Crée
gui.appliedenergistics2.With=avec gui.appliedenergistics2.With=avec
@@ -183,20 +195,21 @@ gui.appliedenergistics2.Lumen=Lumen
gui.appliedenergistics2.Empty=Vide gui.appliedenergistics2.Empty=Vide
gui.appliedenergistics2.Stored=Stocké gui.appliedenergistics2.Stored=Stocké
gui.appliedenergistics2.Cancel=Annuler gui.appliedenergistics2.Cancel=Annuler
gui.appliedenergistics2.Crafting=Craft gui.appliedenergistics2.ETAFormat=HH:mm:ss
gui.appliedenergistics2.Crafting=Fabrication
gui.appliedenergistics2.Scheduled=Prévu gui.appliedenergistics2.Scheduled=Prévu
gui.appliedenergistics2.CraftingStatus=Etat du craft gui.appliedenergistics2.CraftingStatus=Etat de fabrication
gui.appliedenergistics2.FromStorage=Disponible gui.appliedenergistics2.FromStorage=Disponible
gui.appliedenergistics2.ToCraft=A crafter gui.appliedenergistics2.ToCraft=A fabriquer
gui.appliedenergistics2.CraftingPlan=Plan de craft gui.appliedenergistics2.CraftingPlan=Plan de fabrication
gui.appliedenergistics2.Automatic=Automatique gui.appliedenergistics2.Automatic=Automatique
gui.appliedenergistics2.Start=Départ gui.appliedenergistics2.Start=Départ
gui.appliedenergistics2.Missing=Manquant gui.appliedenergistics2.Missing=Manquant
gui.appliedenergistics2.Bytes=Stockage gui.appliedenergistics2.Bytes=Stockage
gui.appliedenergistics2.Simulation=Simulation gui.appliedenergistics2.Simulation=Simulation
gui.appliedenergistics2.CoProcessors=Co-traitements gui.appliedenergistics2.CoProcessors=Co-traitements
gui.appliedenergistics2.CraftingCPU=Unité de craft gui.appliedenergistics2.CraftingCPU=Unité de fabrication
gui.appliedenergistics2.NoCraftingCPUs=Aucune unité de craft n'est disponible gui.appliedenergistics2.NoCraftingCPUs=Aucune unité de fabrication n'est disponible
gui.appliedenergistics2.CalculatingWait=En cours de calcul, veuillez patienter... gui.appliedenergistics2.CalculatingWait=En cours de calcul, veuillez patienter...
gui.appliedenergistics2.Clean=Effacer gui.appliedenergistics2.Clean=Effacer
gui.appliedenergistics2.InvalidPattern=Modèle non valide gui.appliedenergistics2.InvalidPattern=Modèle non valide
@@ -204,21 +217,21 @@ gui.appliedenergistics2.Range=Portée
gui.appliedenergistics2.TransparentFacades=Façades transparentes gui.appliedenergistics2.TransparentFacades=Façades transparentes
gui.appliedenergistics2.TransparentFacadesHint=Contrôle la visibilité des façades avec l'outil réseau dans votre main. gui.appliedenergistics2.TransparentFacadesHint=Contrôle la visibilité des façades avec l'outil réseau dans votre main.
gui.appliedenergistics2.CPUs=Unités gui.appliedenergistics2.CPUs=Unités
gui.appliedenergistics2.NoCraftingJobs=Aucun craft actif gui.appliedenergistics2.NoCraftingJobs=Aucune fabrication d'active
gui.appliedenergistics2.FacadeCrafting=Craft de façade gui.appliedenergistics2.FacadeCrafting=Fabrication de façade
gui.appliedenergistics2.inWorldCraftingPresses=Les plaques de gravure se trouvent au centre des météorites qui peuvent être trouvées dans le monde, elles peuvent être localisées en utilisant une boussole à météorite. gui.appliedenergistics2.inWorldCraftingPresses=Les plaques de gravure se trouvent au centre des météorites qui peuvent être trouvées dans le monde, elles peuvent être localisées en utilisant une boussole à météorite.
gui.appliedenergistics2.Included=Inclus gui.appliedenergistics2.Included=Inclus
gui.appliedenergistics2.Excluded=Exclus gui.appliedenergistics2.Excluded=Exclus
gui.appliedenergistics2.Partitioned=Partitionné gui.appliedenergistics2.Partitioned=Partitionné
gui.appliedenergistics2.Precise=Précis gui.appliedenergistics2.Precise=Précis
gui.appliedenergistics2.Fuzzy=Brouillon gui.appliedenergistics2.Fuzzy=Brouillon
gui.appliedenergistics2.SmallFontCraft=Craft gui.appliedenergistics2.SmallFontCraft=Fabrication
gui.appliedenergistics2.LargeFontCraft=+ gui.appliedenergistics2.LargeFontCraft=+
gui.appliedenergistics2.Nothing=Rien gui.appliedenergistics2.Nothing=Rien
// GUI Tooltips // GUI Tooltips
gui.tooltips.appliedenergistics2.Stash=Stocke des objets gui.tooltips.appliedenergistics2.Stash=Stocke des objets
gui.tooltips.appliedenergistics2.StashDesc=Renvoie les objets de la grille de craft dans le réseau. 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.Substitutions=Remplacements du Ore-Dictionnary
gui.tooltips.appliedenergistics2.SubstitutionsDesc=Editez les options de remplacement pour les composants en entrée. gui.tooltips.appliedenergistics2.SubstitutionsDesc=Editez les options de remplacement pour les composants en entrée.
gui.tooltips.appliedenergistics2.SubstitutionsOn=Remplacements activés gui.tooltips.appliedenergistics2.SubstitutionsOn=Remplacements activés
@@ -238,7 +251,7 @@ gui.tooltips.appliedenergistics2.TransferToNetwork=Transférer les données au r
gui.tooltips.appliedenergistics2.TransferToStorageCell=Transférer les données à la cellule de stockage gui.tooltips.appliedenergistics2.TransferToStorageCell=Transférer les données à la cellule de stockage
gui.tooltips.appliedenergistics2.ToggleSortDirection=Basculer la direction de tri gui.tooltips.appliedenergistics2.ToggleSortDirection=Basculer la direction de tri
gui.tooltips.appliedenergistics2.StoredItems=Objets stockés gui.tooltips.appliedenergistics2.StoredItems=Objets stockés
gui.tooltips.appliedenergistics2.StoredCraftable=Stock / Craft gui.tooltips.appliedenergistics2.StoredCraftable=Stock / Fabriquer
gui.tooltips.appliedenergistics2.View=Vue gui.tooltips.appliedenergistics2.View=Vue
gui.tooltips.appliedenergistics2.RedstoneMode=Mode redstone gui.tooltips.appliedenergistics2.RedstoneMode=Mode redstone
gui.tooltips.appliedenergistics2.OperationMode=Mode opération gui.tooltips.appliedenergistics2.OperationMode=Mode opération
@@ -251,7 +264,7 @@ gui.tooltips.appliedenergistics2.PartitionStorage=Partionner le stockage
gui.tooltips.appliedenergistics2.Clear=Effacer gui.tooltips.appliedenergistics2.Clear=Effacer
gui.tooltips.appliedenergistics2.TrashController=Effacement par Maj. / Espace-Clic. gui.tooltips.appliedenergistics2.TrashController=Effacement par Maj. / Espace-Clic.
gui.tooltips.appliedenergistics2.InterfaceBlockingMode=Mode bloquant gui.tooltips.appliedenergistics2.InterfaceBlockingMode=Mode bloquant
gui.tooltips.appliedenergistics2.InterfaceCraftingMode=Mode craft gui.tooltips.appliedenergistics2.InterfaceCraftingMode=Mode fabrication
gui.tooltips.appliedenergistics2.Trash=Détruire les éléments gui.tooltips.appliedenergistics2.Trash=Détruire les éléments
gui.tooltips.appliedenergistics2.MatterBalls=Condenser en billes de matière\n%s par élément gui.tooltips.appliedenergistics2.MatterBalls=Condenser en billes de matière\n%s par élément
gui.tooltips.appliedenergistics2.Singularity=Condenser en singularités\n%s par élément gui.tooltips.appliedenergistics2.Singularity=Condenser en singularités\n%s par élément
@@ -271,17 +284,17 @@ gui.tooltips.appliedenergistics2.SearchMode_NEIStandard=Synchronisation NEI stan
gui.tooltips.appliedenergistics2.SearchMode=Mode de la boite de recherche gui.tooltips.appliedenergistics2.SearchMode=Mode de la boite de recherche
gui.tooltips.appliedenergistics2.PartitionStorageHint=Configure la partition par rapport aux objets actuellement stockés. gui.tooltips.appliedenergistics2.PartitionStorageHint=Configure la partition par rapport aux objets actuellement stockés.
gui.tooltips.appliedenergistics2.ClearSettings=Efface les paramètres gui.tooltips.appliedenergistics2.ClearSettings=Efface les paramètres
gui.tooltips.appliedenergistics2.Craftable=Craftable gui.tooltips.appliedenergistics2.Craftable=Fabricable
gui.tooltips.appliedenergistics2.MoveWhenEmpty=Déplace vers la sortie dès que c'est vide. gui.tooltips.appliedenergistics2.MoveWhenEmpty=Déplace vers la sortie dès que c'est vide.
gui.tooltips.appliedenergistics2.MoveWhenWorkIsDone=Déplace vers la sortie quand le travail est fini. gui.tooltips.appliedenergistics2.MoveWhenWorkIsDone=Déplace vers la sortie quand le travail est fini.
gui.tooltips.appliedenergistics2.MoveWhenFull=Déplace vers la sortie quand c'est plein. gui.tooltips.appliedenergistics2.MoveWhenFull=Déplace vers la sortie quand c'est plein.
gui.tooltips.appliedenergistics2.Disabled=Désactivé gui.tooltips.appliedenergistics2.Disabled=Désactivé
gui.tooltips.appliedenergistics2.Enable=Activé gui.tooltips.appliedenergistics2.Enable=Activé
gui.tooltips.appliedenergistics2.Blocking=Ne pas insérer d'objets de craft si l'inventaire contient des objets. gui.tooltips.appliedenergistics2.Blocking=Ne pas fabriquer d'objets si l'inventaire contient ces objets.
gui.tooltips.appliedenergistics2.NonBlocking=Ignorer le contenu de l'inventaire cible. gui.tooltips.appliedenergistics2.NonBlocking=Ignorer le contenu de l'inventaire cible.
gui.tooltips.appliedenergistics2.Craft=Comportement de craft gui.tooltips.appliedenergistics2.Craft=Comportement de fabrication
gui.tooltips.appliedenergistics2.CraftOnly=Ne pas utiliser les objets stockés; préférer le craft pour l'export. gui.tooltips.appliedenergistics2.CraftOnly=Ne pas utiliser les objets stockés; préférer les fabriquer pour l'export.
gui.tooltips.appliedenergistics2.CraftEither=Utiliser les éléments stockés, ou les crafter lors de l'export. gui.tooltips.appliedenergistics2.CraftEither=Utiliser les éléments stockés, ou les fabriquer lors de l'export.
gui.tooltips.appliedenergistics2.LevelType=Type de niveau gui.tooltips.appliedenergistics2.LevelType=Type de niveau
gui.tooltips.appliedenergistics2.LevelType_Energy=Energie gui.tooltips.appliedenergistics2.LevelType_Energy=Energie
gui.tooltips.appliedenergistics2.LevelType_Item=Objet gui.tooltips.appliedenergistics2.LevelType_Item=Objet
@@ -292,15 +305,19 @@ gui.tooltips.appliedenergistics2.TerminalStyle_Full=Terminal plein écran
gui.tooltips.appliedenergistics2.TerminalStyle_Tall=Grand terminal centré gui.tooltips.appliedenergistics2.TerminalStyle_Tall=Grand terminal centré
gui.tooltips.appliedenergistics2.TerminalStyle_Small=Petit terminal centré gui.tooltips.appliedenergistics2.TerminalStyle_Small=Petit terminal centré
gui.tooltips.appliedenergistics2.DoesntDespawn=Cet élément ne disparaitra pas. gui.tooltips.appliedenergistics2.DoesntDespawn=Cet élément ne disparaitra pas.
gui.tooltips.appliedenergistics2.EmitterMode=Mode d'émission du craft gui.tooltips.appliedenergistics2.EmitterMode=Mode d'émission de la fabrication
gui.tooltips.appliedenergistics2.CraftViaRedstone=Emettre un signal Redstone pour crafter l'objet. gui.tooltips.appliedenergistics2.CraftViaRedstone=Emettre un signal Redstone pour fabriquer l'objet.
gui.tooltips.appliedenergistics2.EmitWhenCrafting=Emettre un signal Redstone quand l'objet est en cours de craft. gui.tooltips.appliedenergistics2.EmitWhenCrafting=Emettre un signal Redstone quand l'objet est en cours de fabrication.
gui.tooltips.appliedenergistics2.ReportInaccessibleItems=Rapport d'éléments inaccessibles gui.tooltips.appliedenergistics2.ReportInaccessibleItems=Rapport d'éléments inaccessibles
gui.tooltips.appliedenergistics2.ReportInaccessibleItemsYes=Oui: Les éléments ne pouvant pas être extraits seront visibles. gui.tooltips.appliedenergistics2.ReportInaccessibleItemsYes=Oui: Les éléments ne pouvant pas être extraits seront visibles.
gui.tooltips.appliedenergistics2.ReportInaccessibleItemsNo=Non: Seuls les éléments extractibles seront visibles. gui.tooltips.appliedenergistics2.ReportInaccessibleItemsNo=Non: Seuls les éléments extractibles seront visibles.
gui.tooltips.appliedenergistics2.BlockPlacement=Placement de bloc gui.tooltips.appliedenergistics2.BlockPlacement=Placement de bloc
gui.tooltips.appliedenergistics2.BlockPlacementYes=Les blocs seront placés comme un bloc. gui.tooltips.appliedenergistics2.BlockPlacementYes=Les blocs seront placés comme un bloc.
gui.tooltips.appliedenergistics2.BlockPlacementNo=Les blocs seront jettés comme un élément. gui.tooltips.appliedenergistics2.BlockPlacementNo=Les blocs seront jettés comme un élément.
gui.tooltips.appliedenergistics2.SchedulingMode=Mode de planification
gui.tooltips.appliedenergistics2.SchedulingModeDefault=Exporte le premier élément jusqu'à ce que le réseau soit vide, puis essaye les suivants.
gui.tooltips.appliedenergistics2.SchedulingModeRoundRobin=Exporte les éléments l'un après l'autre.
gui.tooltips.appliedenergistics2.SchedulingModeRandom=Exporte les éléments aléatoirement.
gui.tooltips.appliedenergistics2.ItemsStored=Eléments stockés: %s gui.tooltips.appliedenergistics2.ItemsStored=Eléments stockés: %s
gui.tooltips.appliedenergistics2.ItemsRequestable=Eléments recherchable: %s gui.tooltips.appliedenergistics2.ItemsRequestable=Eléments recherchable: %s
@@ -412,6 +429,7 @@ item.appliedenergistics2.ItemMaterial.SkyDust.name=Poussière de pierre du ciel
item.appliedenergistics2.ItemMaterial.CardCrafting.name=Carte de fabrication item.appliedenergistics2.ItemMaterial.CardCrafting.name=Carte de fabrication
item.appliedenergistics2.ItemPart.AnnihilationPlane.name=Plan de dématérialisation ME item.appliedenergistics2.ItemPart.AnnihilationPlane.name=Plan de dématérialisation ME
item.appliedenergistics2.ItemPart.IdentityAnnihilationPlane.name=Plan de dématérialisation d'identité ME
item.appliedenergistics2.ItemPart.CableAnchor.name=Ancre de câble item.appliedenergistics2.ItemPart.CableAnchor.name=Ancre de câble
item.appliedenergistics2.ItemPart.CableCovered.name=Câble couvert ME item.appliedenergistics2.ItemPart.CableCovered.name=Câble couvert ME
item.appliedenergistics2.ItemPart.CableGlass.name=Câble de verre ME item.appliedenergistics2.ItemPart.CableGlass.name=Câble de verre ME
@@ -419,7 +437,7 @@ item.appliedenergistics2.ItemPart.CableSmart.name=Câble intelligent ME
item.appliedenergistics2.ItemPart.CableDense.name=Câble dense ME item.appliedenergistics2.ItemPart.CableDense.name=Câble dense ME
item.appliedenergistics2.ItemPart.StorageMonitor.name=Moniteur de stockage ME item.appliedenergistics2.ItemPart.StorageMonitor.name=Moniteur de stockage ME
item.appliedenergistics2.ItemPart.ConversionMonitor.name=Moniteur de conversion ME item.appliedenergistics2.ItemPart.ConversionMonitor.name=Moniteur de conversion ME
item.appliedenergistics2.ItemPart.CraftingTerminal.name=Terminal de craft ME item.appliedenergistics2.ItemPart.CraftingTerminal.name=Terminal de fabrication ME
item.appliedenergistics2.ItemPart.SemiDarkMonitor.name=Panneau illuminé item.appliedenergistics2.ItemPart.SemiDarkMonitor.name=Panneau illuminé
item.appliedenergistics2.ItemPart.Monitor.name=Panneau illuminé éclairé item.appliedenergistics2.ItemPart.Monitor.name=Panneau illuminé éclairé
item.appliedenergistics2.ItemPart.DarkMonitor.name=Panneau illuminé sombre item.appliedenergistics2.ItemPart.DarkMonitor.name=Panneau illuminé sombre
@@ -435,8 +453,9 @@ item.appliedenergistics2.ItemPart.StorageBus.name=Bus de stockage ME
item.appliedenergistics2.ItemPart.Terminal.name=Terminal ME item.appliedenergistics2.ItemPart.Terminal.name=Terminal ME
item.appliedenergistics2.ItemPart.InvertedToggleBus.name=Bus levier inversé ME item.appliedenergistics2.ItemPart.InvertedToggleBus.name=Bus levier inversé ME
item.appliedenergistics2.ItemPart.ToggleBus.name=Bus levier ME item.appliedenergistics2.ItemPart.ToggleBus.name=Bus levier ME
item.appliedenergistics2.ItemPart.CraftingMonitor.name=Moniteur des crafts ME item.appliedenergistics2.ItemPart.CraftingMonitor.name=Moniteur des fabrications ME
item.appliedenergistics2.ItemPart.InterfaceTerminal.name=Terminal d'interface ME item.appliedenergistics2.ItemPart.InterfaceTerminal.name=Terminal d'interface ME
item.appliedenergistics2.ItemPart.InvalidType.name=Éléments désactivés
item.appliedenergistics2.ItemSpatialStorageCell.128Cubed.name=Disque spatiale de 128³ item.appliedenergistics2.ItemSpatialStorageCell.128Cubed.name=Disque spatiale de 128³
item.appliedenergistics2.ItemSpatialStorageCell.16Cubed.name=Disque spatiale de 16³ item.appliedenergistics2.ItemSpatialStorageCell.16Cubed.name=Disque spatiale de 16³
@@ -482,55 +501,55 @@ commands.ae2.Supporters=Affiche une liste des supporters de AE2
// Achievements // Achievements
achievement.ae2.Compass=Chasseur de météorites achievement.ae2.Compass=Chasseur de météorites
achievement.ae2.Compass.desc=Crafter une boussole à météorite. achievement.ae2.Compass.desc=Fabriquer une boussole à météorite.
achievement.ae2.Presses=Technologie inconnue achievement.ae2.Presses=Technologie inconnue
achievement.ae2.Presses.desc=Trouver une matrice de presse à processeur. achievement.ae2.Presses.desc=Trouver une matrice de presse à processeur.
achievement.ae2.SpatialIO=Coordination spatiale achievement.ae2.SpatialIO=Coordination spatiale
achievement.ae2.SpatialIO.desc=Crafter un port d'E/S spatial. achievement.ae2.SpatialIO.desc=Fabriquer un port d'E/S spatial.
achievement.ae2.SpatialIOExplorer=A coeur vaillant... achievement.ae2.SpatialIOExplorer=A coeur vaillant...
achievement.ae2.SpatialIOExplorer.desc=Etre stocké dans un disque spatial. achievement.ae2.SpatialIOExplorer.desc=Etre stocké dans un disque spatial.
achievement.ae2.StorageCell=Mieux que des coffres achievement.ae2.StorageCell=Mieux que des coffres
achievement.ae2.StorageCell.desc=Crafter une cellule de stockage. achievement.ae2.StorageCell.desc=Fabriquer une cellule de stockage.
achievement.ae2.IOPort=Mélange de disque achievement.ae2.IOPort=Mélange de disque
achievement.ae2.IOPort.desc=Crafter un port d'E/S. achievement.ae2.IOPort.desc=Fabriquer un port d'E/S.
achievement.ae2.CraftingTerminal=Une table (bien) plus grande achievement.ae2.CraftingTerminal=Une table (bien) plus grande
achievement.ae2.CraftingTerminal.desc=Crafter un terminal de craft. achievement.ae2.CraftingTerminal.desc=Fabriquer un terminal de fabrication.
achievement.ae2.PatternTerminal=Maitre crafteur achievement.ae2.PatternTerminal=Maitre fabricateur
achievement.ae2.PatternTerminal.desc=Crafter un terminal de modèles. achievement.ae2.PatternTerminal.desc=Fabriquer un terminal de modèles.
achievement.ae2.ChargedQuartz=Electrifiant achievement.ae2.ChargedQuartz=Electrifiant
achievement.ae2.ChargedQuartz.desc=Trouver du Quartz chargé. achievement.ae2.ChargedQuartz.desc=Trouver du Quartz chargé.
achievement.ae2.Fluix=Artificiel achievement.ae2.Fluix=Artificiel
achievement.ae2.Fluix.desc=Créer des critaux de Fluix. achievement.ae2.Fluix.desc=Créer des critaux de Fluix.
achievement.ae2.Charger=Production de Fluix achievement.ae2.Charger=Production de Fluix
achievement.ae2.Charger.desc=Crafter un chargeur. achievement.ae2.Charger.desc=Fabriquer un chargeur.
achievement.ae2.CrystalGrowthAccelerator=Accélérateur est un euphémisme achievement.ae2.CrystalGrowthAccelerator=Accélérateur est un euphémisme
achievement.ae2.CrystalGrowthAccelerator.desc=Crafter un accélérateur de croissance de cristal. achievement.ae2.CrystalGrowthAccelerator.desc=Fabriquer un accélérateur de croissance de cristal.
achievement.ae2.GlassCable=Connexion d'énergie Fluix achievement.ae2.GlassCable=Connexion d'énergie Fluix
achievement.ae2.GlassCable.desc=Crafter un câble de verre ME. achievement.ae2.GlassCable.desc=Fabriquer un câble de verre ME.
achievement.ae2.Networking1=Apprenti réseau achievement.ae2.Networking1=Apprenti réseau
achievement.ae2.Networking1.desc=Atteindre 8 canaux en utilisant des dispositifs sur un réseau. achievement.ae2.Networking1.desc=Atteindre 8 canaux en utilisant des dispositifs sur un réseau.
achievement.ae2.Controller=Tableau de distribution du réseau achievement.ae2.Controller=Tableau de distribution du réseau
achievement.ae2.Controller.desc=Crafter un contrôleur. achievement.ae2.Controller.desc=Fabriquer un contrôleur.
achievement.ae2.Networking2=Ingénieur réseau achievement.ae2.Networking2=Ingénieur réseau
achievement.ae2.Networking2.desc=Atteindre 128 canaux en utilisant des dispositifs sur un réseau. achievement.ae2.Networking2.desc=Atteindre 128 canaux en utilisant des dispositifs sur un réseau.
achievement.ae2.Networking3=Administrateur réseau achievement.ae2.Networking3=Administrateur réseau
achievement.ae2.Networking3.desc=Atteindre 2048 canaux en utilisant des dispositifs sur un réseau. achievement.ae2.Networking3.desc=Atteindre 2048 canaux en utilisant des dispositifs sur un réseau.
achievement.ae2.P2P=Réseau point à point achievement.ae2.P2P=Réseau point à point
achievement.ae2.P2P.desc=Crafter un tunnel P2P. achievement.ae2.P2P.desc=Fabriquer un tunnel P2P.
achievement.ae2.Recursive=Réseau récursif achievement.ae2.Recursive=Réseau récursif
achievement.ae2.Recursive.desc=Placer une interface sur un bus de stockage. achievement.ae2.Recursive.desc=Placer une interface sur un bus de stockage.
achievement.ae2.CraftingCPU=Crafting nouvelle génération achievement.ae2.CraftingCPU=Fabrication de nouvelle génération
achievement.ae2.CraftingCPU.desc=Crafter une unité de craft. achievement.ae2.CraftingCPU.desc=Fabriquer une unité de fabrication.
achievement.ae2.Facade=Esthétique du réseau achievement.ae2.Facade=Esthétique du réseau
achievement.ae2.Facade.desc=Crafter des façades de câbles. achievement.ae2.Facade.desc=Fabriquer des façades de câbles.
achievement.ae2.NetworkTool=Diagnostics réseau achievement.ae2.NetworkTool=Diagnostics réseau
achievement.ae2.NetworkTool.desc=Crafter un outil réseau. achievement.ae2.NetworkTool.desc=Fabriquer un outil réseau.
achievement.ae2.PortableCell=Stockage nomade achievement.ae2.PortableCell=Stockage nomade
achievement.ae2.PortableCell.desc=Crafter un disque portable. achievement.ae2.PortableCell.desc=Fabriquer un disque portable.
achievement.ae2.StorageBus=Potentiel illimité achievement.ae2.StorageBus=Potentiel illimité
achievement.ae2.StorageBus.desc=Crafter un bus de stockage. achievement.ae2.StorageBus.desc=Fabriquer un bus de stockage.
achievement.ae2.QNB=Ouvrir un tunnel quantique achievement.ae2.QNB=Ouvrir un tunnel quantique
achievement.ae2.QNB.desc=Crafter un lien quantique. achievement.ae2.QNB.desc=Fabriquer un lien quantique.
// Stats // Stats
stat.ae2.ItemsInserted=Eléments ajoutés aux disques ME stat.ae2.ItemsInserted=Eléments ajoutés aux disques ME
@@ -1,47 +1,47 @@
shaped= shaped=
ae2:BlockQuartzChiseled _ _, ae2:BlockQuartzChiseled _ _,
ae2:BlockQuartzChiseled ae2:BlockQuartzChiseled _, ae2:BlockQuartzChiseled ae2:BlockQuartzChiseled _,
ae2:BlockQuartzChiseled ae2:BlockQuartzChiseled ae2:BlockQuartzChiseled ae2:BlockQuartzChiseled ae2:BlockQuartzChiseled ae2:BlockQuartzChiseled
-> 4 ae2:ChiseledQuartzStairBlock -> 4 ae2:ChiseledQuartzStairBlock
shaped= shaped=
ae2:BlockFluix _ _, ae2:BlockFluix _ _,
ae2:BlockFluix ae2:BlockFluix _, ae2:BlockFluix ae2:BlockFluix _,
ae2:BlockFluix ae2:BlockFluix ae2:BlockFluix ae2:BlockFluix ae2:BlockFluix ae2:BlockFluix
-> 4 ae2:FluixStairBlock -> 4 ae2:FluixStairBlock
shaped= shaped=
ae2:BlockQuartzPillar _ _, ae2:BlockQuartzPillar _ _,
ae2:BlockQuartzPillar ae2:BlockQuartzPillar _, ae2:BlockQuartzPillar ae2:BlockQuartzPillar _,
ae2:BlockQuartzPillar ae2:BlockQuartzPillar ae2:BlockQuartzPillar ae2:BlockQuartzPillar ae2:BlockQuartzPillar ae2:BlockQuartzPillar
-> 4 ae2:QuartzPillarStairBlock -> 4 ae2:QuartzPillarStairBlock
shaped= shaped=
ae2:BlockQuartz _ _, ae2:BlockQuartz _ _,
ae2:BlockQuartz ae2:BlockQuartz _, ae2:BlockQuartz ae2:BlockQuartz _,
ae2:BlockQuartz ae2:BlockQuartz ae2:BlockQuartz ae2:BlockQuartz ae2:BlockQuartz ae2:BlockQuartz
-> 4 ae2:QuartzStairBlock -> 4 ae2:QuartzStairBlock
shaped= shaped=
ae2:BlockSkyStone _ _, ae2:BlockSkyStone _ _,
ae2:BlockSkyStone ae2:BlockSkyStone _, ae2:BlockSkyStone ae2:BlockSkyStone _,
ae2:BlockSkyStone ae2:BlockSkyStone ae2:BlockSkyStone ae2:BlockSkyStone ae2:BlockSkyStone ae2:BlockSkyStone
-> 4 ae2:SkyStoneStairBlock -> 4 ae2:SkyStoneStairBlock
shaped= shaped=
ae2:BlockSkyStone:1 _ _, ae2:BlockSkyStone:1 _ _,
ae2:BlockSkyStone:1 ae2:BlockSkyStone:1 _, ae2:BlockSkyStone:1 ae2:BlockSkyStone:1 _,
ae2:BlockSkyStone:1 ae2:BlockSkyStone:1 ae2:BlockSkyStone:1 ae2:BlockSkyStone:1 ae2:BlockSkyStone:1 ae2:BlockSkyStone:1
-> 4 ae2:SkyStoneBlockStairBlock -> 4 ae2:SkyStoneBlockStairBlock
shaped= shaped=
ae2:BlockSkyStone:2 _ _, ae2:BlockSkyStone:2 _ _,
ae2:BlockSkyStone:2 ae2:BlockSkyStone:2 _, ae2:BlockSkyStone:2 ae2:BlockSkyStone:2 _,
ae2:BlockSkyStone:2 ae2:BlockSkyStone:2 ae2:BlockSkyStone:2 ae2:BlockSkyStone:2 ae2:BlockSkyStone:2 ae2:BlockSkyStone:2
-> 4 ae2:SkyStoneBrickStairBlock -> 4 ae2:SkyStoneBrickStairBlock
shaped= shaped=
ae2:BlockSkyStone:3 _ _, ae2:BlockSkyStone:3 _ _,
ae2:BlockSkyStone:3 ae2:BlockSkyStone:3 _, ae2:BlockSkyStone:3 ae2:BlockSkyStone:3 _,
ae2:BlockSkyStone:3 ae2:BlockSkyStone:3 ae2:BlockSkyStone:3 ae2:BlockSkyStone:3 ae2:BlockSkyStone:3 ae2:BlockSkyStone:3
-> 4 ae2:SkyStoneSmallBrickStairBlock -> 4 ae2:SkyStoneSmallBrickStairBlock
@@ -11,7 +11,7 @@ group= mc:iron_ingot oredictionary:ingotCopper oredictionary:ingotTin orediction
group= oredictionary:dustEnder oredictionary:dustEnderPearl -> dustEnder group= oredictionary:dustEnder oredictionary:dustEnderPearl -> dustEnder
group=oredictionary:blockGlass oredictionary:glass mc:glass -> glass group=oredictionary:blockGlass oredictionary:glass mc:glass -> glass
group=oredictionary:wool mc:wool:* -> wool group=oredictionary:wool mc:wool:* -> wool
group=oredictionary:crystalCertusQuartz oredictionary:crystalNetherQuartz ae2:ItemMaterial.CertusQuartzCrystalCharged -> crystalQuartz group=oredictionary:crystalCertusQuartz oredictionary:crystalNetherQuartz ae2:ItemMaterial.CertusQuartzCrystalCharged -> crystalQuartz
group=oredictionary:dustCertusQuartz oredictionary:dustNetherQuartz -> dustQuartz group=oredictionary:dustCertusQuartz oredictionary:dustNetherQuartz -> dustQuartz
@@ -1,6 +1,6 @@
shaped= shaped=
mc:iron_ingot cable mc:iron_ingot, mc:iron_ingot cable mc:iron_ingot,
ae2:BlockQuartzGlass ae2:BlockFluix ae2:BlockQuartzGlass, ae2:BlockQuartzGlass ae2:BlockFluix ae2:BlockQuartzGlass,
mc:iron_ingot cable mc:iron_ingot mc:iron_ingot cable mc:iron_ingot
-> ae2:BlockQuartzGrowthAccelerator -> ae2:BlockQuartzGrowthAccelerator
@@ -6,7 +6,7 @@ shaped=
shaped= shaped=
mc:iron_ingot ae2:BlockQuartzGlass mc:iron_ingot, mc:iron_ingot ae2:BlockQuartzGlass mc:iron_ingot,
ae2:BlockQuartzGlass fluixCrystal ae2:BlockQuartzGlass, ae2:BlockQuartzGlass fluixCrystal ae2:BlockQuartzGlass,
mc:iron_ingot ae2:BlockQuartzGlass mc:iron_ingot mc:iron_ingot ae2:BlockQuartzGlass mc:iron_ingot
-> ae2:BlockEnergyAcceptor -> ae2:BlockEnergyAcceptor
@@ -21,7 +21,7 @@ ore=ae2:ItemMaterial.FluixDust -> dustFluix
# Ores of AE2 # Ores of AE2
ore=ae2:tile.OreQuartz -> oreCertusQuartz ore=ae2:tile.OreQuartz -> oreCertusQuartz
ore=ae2:tile.OreQuartzCharged -> oreCertusQuartz ore=ae2:tile.OreQuartzCharged -> oreChargedCertusQuartz
# Parts to be used # Parts to be used
ore= ae2:ItemPart.SemiDarkMonitor -> itemIlluminatedPanel ore= ae2:ItemPart.SemiDarkMonitor -> itemIlluminatedPanel
@@ -1,7 +1,7 @@
shaped= shaped=
oredictionary:crystalCertusQuartz oredictionary:crystalCertusQuartz, oredictionary:crystalCertusQuartz oredictionary:crystalCertusQuartz,
oredictionary:crystalCertusQuartz oredictionary:stickWood, oredictionary:crystalCertusQuartz oredictionary:stickWood,
_oredictionary:stickWood _ oredictionary:stickWood
-> ae2:ToolCertusQuartzAxe -> ae2:ToolCertusQuartzAxe
shaped= shaped=
@@ -37,5 +37,5 @@ shaped=
shaped= shaped=
_ _ oredictionary:stickWood, _ _ oredictionary:stickWood,
mc:iron_ingot oredictionary:stickWood _, mc:iron_ingot oredictionary:stickWood _,
oredictionary:crystalCertusQuartz oredictionary:crystalCertusQuartz _ oredictionary:crystalCertusQuartz oredictionary:crystalCertusQuartz _
-> ae2:ToolCertusQuartzCuttingKnife -> ae2:ToolCertusQuartzCuttingKnife