Compare commits

...

8 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
45 changed files with 192 additions and 243 deletions
@@ -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.debug( 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() );
@@ -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
@@ -1,11 +1,11 @@
shaped=
mc:iron_ingot cable mc:iron_ingot,
oredictionary:ingotIron cable oredictionary:ingotIron,
ae2:BlockQuartzGlass ae2:BlockFluix ae2:BlockQuartzGlass,
mc:iron_ingot cable mc:iron_ingot
oredictionary:ingotIron cable oredictionary:ingotIron
-> ae2:BlockQuartzGrowthAccelerator
shaped=
mc:iron_ingot fluixCrystal mc:iron_ingot,
mc:iron_ingot _ _,
mc:iron_ingot fluixCrystal mc:iron_ingot
oredictionary:ingotIron fluixCrystal oredictionary:ingotIron,
oredictionary:ingotIron _ _,
oredictionary:ingotIron fluixCrystal oredictionary:ingotIron
-> ae2:BlockCharger
@@ -1,13 +1,13 @@
shaped=
mc:iron_ingot mc:iron_ingot mc:iron_ingot,
mc:iron_ingot mc:furnace mc:iron_ingot,
mc:iron_ingot ae2:BlockEnergyAcceptor mc:iron_ingot
oredictionary:ingotIron oredictionary:ingotIron oredictionary:ingotIron,
oredictionary:ingotIron mc:furnace oredictionary:ingotIron,
oredictionary:ingotIron ae2:BlockEnergyAcceptor oredictionary:ingotIron
-> ae2:BlockVibrationChamber
shaped=
mc:iron_ingot ae2:BlockQuartzGlass mc:iron_ingot,
oredictionary:ingotIron ae2:BlockQuartzGlass oredictionary:ingotIron,
ae2:BlockQuartzGlass fluixCrystal ae2:BlockQuartzGlass,
mc:iron_ingot ae2:BlockQuartzGlass mc:iron_ingot
oredictionary:ingotIron ae2:BlockQuartzGlass oredictionary:ingotIron
-> ae2:BlockEnergyAcceptor
shaped=
@@ -1,5 +1,5 @@
shaped=
mc:iron_ingot mc:sticky_piston mc:iron_ingot,
fluixCrystal _ mc:iron_ingot,
mc:iron_ingot mc:sticky_piston mc:iron_ingot
oredictionary:ingotIron mc:sticky_piston oredictionary:ingotIron,
fluixCrystal _ oredictionary:ingotIron,
oredictionary:ingotIron mc:sticky_piston oredictionary:ingotIron
-> ae2:BlockInscriber
@@ -7,7 +7,7 @@ shapeless=
-> ae2:ItemPart.Interface
shaped=
mc:iron_ingot glass mc:iron_ingot,
oredictionary:ingotIron glass oredictionary:ingotIron,
ae2:ItemMaterial.AnnihilationCore _ ae2:ItemMaterial.FormationCore,
mc:iron_ingot glass mc:iron_ingot
oredictionary:ingotIron glass oredictionary:ingotIron
-> ae2:BlockInterface
@@ -1,11 +1,11 @@
shaped=
mc:iron_ingot glass mc:iron_ingot,
oredictionary:ingotIron glass oredictionary:ingotIron,
glass oredictionary:dustFluix glass,
mc:iron_ingot glass mc:iron_ingot
oredictionary:ingotIron glass oredictionary:ingotIron
-> ae2:BlockCondenser
shaped=
glass glass glass,
ae2:BlockDrive cable ae2:BlockDrive,
mc:iron_ingot ae2:ItemMaterial.LogicProcessor mc:iron_ingot
oredictionary:ingotIron ae2:ItemMaterial.LogicProcessor oredictionary:ingotIron
-> ae2:BlockIOPort
@@ -7,7 +7,7 @@ shaped=
# Quantum Ring
shaped=
mc:iron_ingot ae2:ItemMaterial.LogicProcessor mc:iron_ingot,
oredictionary:ingotIron ae2:ItemMaterial.LogicProcessor oredictionary:ingotIron,
ae2:ItemMaterial.EngProcessor ae2:BlockEnergyCell densecable,
mc:iron_ingot ae2:ItemMaterial.LogicProcessor mc:iron_ingot,
oredictionary:ingotIron ae2:ItemMaterial.LogicProcessor oredictionary:ingotIron,
-> ae2:BlockQuantumRing
@@ -1,5 +1,5 @@
shaped=
mc:iron_ingot ae2:BlockChest mc:iron_ingot,
oredictionary:ingotIron ae2:BlockChest oredictionary:ingotIron,
cable ae2:ItemMaterial.Cell16kPart cable,
mc:iron_ingot ae2:ItemMaterial.EngProcessor mc:iron_ingot
oredictionary:ingotIron ae2:ItemMaterial.EngProcessor oredictionary:ingotIron
-> ae2:BlockSecurity
@@ -1,7 +1,7 @@
shaped=
glass glass glass,
cable ae2:BlockIOPort cable,
mc:iron_ingot ae2:ItemMaterial.EngProcessor mc:iron_ingot
oredictionary:ingotIron ae2:ItemMaterial.EngProcessor oredictionary:ingotIron
-> ae2:BlockSpatialIOPort
shaped=
@@ -1,11 +1,11 @@
shaped=
glass ae2:ItemPart.Terminal glass,
cable _ cable,
mc:iron_ingot fluixCrystal mc:iron_ingot,
oredictionary:ingotIron fluixCrystal oredictionary:ingotIron,
-> ae2:BlockChest
shaped=
mc:iron_ingot ae2:ItemMaterial.EngProcessor mc:iron_ingot,
oredictionary:ingotIron ae2:ItemMaterial.EngProcessor oredictionary:ingotIron,
cable _ cable,
mc:iron_ingot ae2:ItemMaterial.EngProcessor mc:iron_ingot
oredictionary:ingotIron ae2:ItemMaterial.EngProcessor oredictionary:ingotIron
-> ae2:BlockDrive
@@ -1,6 +1,6 @@
shapeless=
ae2:CableCovered ae2:CableCovered ae2:CableCovered ae2:CableCovered
mc:redstone mc:glowstone_dust
oredictionary:dustRedstone oredictionary:dustGlowstone
-> ae2:CableDense.Fluix
shapeless=
@@ -1,6 +1,6 @@
shapeless=
ae2:CableCovered
mc:redstone mc:glowstone_dust
oredictionary:dustRedstone oredictionary:dustGlowstone
-> ae2:CableSmart.Fluix
shapeless=
@@ -1,5 +1,5 @@
shaped=
ae2:BlockQuartzGlass mc:redstone ae2:BlockQuartzGlass,
mc:redstone _ mc:redstone,
mc:iron_ingot mc:iron_ingot mc:iron_ingot
ae2:BlockQuartzGlass oredictionary:dustRedstone ae2:BlockQuartzGlass,
oredictionary:dustRedstone _ oredictionary:dustRedstone,
oredictionary:ingotIron oredictionary:ingotIron oredictionary:ingotIron
-> ae2:ItemMaterial.EmptyStorageCell
@@ -1,17 +1,17 @@
shaped=
mc:glowstone_dust ae2:ItemMaterial.FluixPearl mc:glowstone_dust,
oredictionary:dustGlowstone ae2:ItemMaterial.FluixPearl oredictionary:dustGlowstone,
ae2:ItemMaterial.FluixPearl ae2:ItemMaterial.EngProcessor ae2:ItemMaterial.FluixPearl,
mc:glowstone_dust ae2:ItemMaterial.FluixPearl mc:glowstone_dust
oredictionary:dustGlowstone ae2:ItemMaterial.FluixPearl oredictionary:dustGlowstone
-> ae2:ItemMaterial.Cell2SpatialPart
shaped=
mc:glowstone_dust ae2:ItemMaterial.Cell2SpatialPart mc:glowstone_dust,
oredictionary:dustGlowstone ae2:ItemMaterial.Cell2SpatialPart oredictionary:dustGlowstone,
ae2:ItemMaterial.Cell2SpatialPart ae2:ItemMaterial.EngProcessor ae2:ItemMaterial.Cell2SpatialPart,
mc:glowstone_dust ae2:ItemMaterial.Cell2SpatialPart mc:glowstone_dust
oredictionary:dustGlowstone ae2:ItemMaterial.Cell2SpatialPart oredictionary:dustGlowstone
-> ae2:ItemMaterial.Cell16SpatialPart
shaped=
mc:glowstone_dust ae2:ItemMaterial.Cell16SpatialPart mc:glowstone_dust,
oredictionary:dustGlowstone ae2:ItemMaterial.Cell16SpatialPart oredictionary:dustGlowstone,
ae2:ItemMaterial.Cell16SpatialPart ae2:ItemMaterial.EngProcessor ae2:ItemMaterial.Cell16SpatialPart,
mc:glowstone_dust ae2:ItemMaterial.Cell16SpatialPart mc:glowstone_dust
oredictionary:dustGlowstone ae2:ItemMaterial.Cell16SpatialPart oredictionary:dustGlowstone
-> ae2:ItemMaterial.Cell128SpatialPart
@@ -8,19 +8,19 @@ shapeless=
ae2:ItemMaterial.Cell128SpatialPart ae2:ItemMaterial.EmptyStorageCell -> ae2:ItemSpatialStorageCell.128Cubed
shaped=
ae2:BlockQuartzGlass mc:redstone ae2:BlockQuartzGlass,
mc:redstone ae2:ItemMaterial.Cell2SpatialPart mc:redstone,
mc:iron_ingot mc:iron_ingot mc:iron_ingot
ae2:BlockQuartzGlass oredictionary:dustRedstone ae2:BlockQuartzGlass,
oredictionary:dustRedstone ae2:ItemMaterial.Cell2SpatialPart oredictionary:dustRedstone,
oredictionary:ingotIron oredictionary:ingotIron oredictionary:ingotIron
-> ae2:ItemSpatialStorageCell.2Cubed
shaped=
ae2:BlockQuartzGlass mc:redstone ae2:BlockQuartzGlass,
mc:redstone ae2:ItemMaterial.Cell16SpatialPart mc:redstone,
mc:iron_ingot mc:iron_ingot mc:iron_ingot
ae2:BlockQuartzGlass oredictionary:dustRedstone ae2:BlockQuartzGlass,
oredictionary:dustRedstone ae2:ItemMaterial.Cell16SpatialPart oredictionary:dustRedstone,
oredictionary:ingotIron oredictionary:ingotIron oredictionary:ingotIron
-> ae2:ItemSpatialStorageCell.16Cubed
shaped=
ae2:BlockQuartzGlass mc:redstone ae2:BlockQuartzGlass,
mc:redstone ae2:ItemMaterial.Cell128SpatialPart mc:redstone,
mc:iron_ingot mc:iron_ingot mc:iron_ingot
ae2:BlockQuartzGlass oredictionary:dustRedstone ae2:BlockQuartzGlass,
oredictionary:dustRedstone ae2:ItemMaterial.Cell128SpatialPart oredictionary:dustRedstone,
oredictionary:ingotIron oredictionary:ingotIron oredictionary:ingotIron
-> ae2:ItemSpatialStorageCell.128Cubed
@@ -1,23 +1,23 @@
shaped=
mc:redstone certusCrystal mc:redstone,
oredictionary:dustRedstone certusCrystal oredictionary:dustRedstone,
certusCrystal ae2:ItemMaterial.LogicProcessor certusCrystal,
mc:redstone certusCrystal mc:redstone
oredictionary:dustRedstone certusCrystal oredictionary:dustRedstone
-> ae2:ItemMaterial.Cell1kPart
shaped=
mc:redstone ae2:ItemMaterial.CalcProcessor mc:redstone,
oredictionary:dustRedstone ae2:ItemMaterial.CalcProcessor oredictionary:dustRedstone,
ae2:ItemMaterial.Cell1kPart ae2:BlockQuartzGlass ae2:ItemMaterial.Cell1kPart,
mc:redstone ae2:ItemMaterial.Cell1kPart mc:redstone
oredictionary:dustRedstone ae2:ItemMaterial.Cell1kPart oredictionary:dustRedstone
-> ae2:ItemMaterial.Cell4kPart
shaped=
mc:glowstone_dust ae2:ItemMaterial.EngProcessor mc:glowstone_dust,
oredictionary:dustGlowstone ae2:ItemMaterial.EngProcessor oredictionary:dustGlowstone,
ae2:ItemMaterial.Cell4kPart ae2:BlockQuartzGlass ae2:ItemMaterial.Cell4kPart,
mc:glowstone_dust ae2:ItemMaterial.Cell4kPart mc:glowstone_dust
oredictionary:dustGlowstone ae2:ItemMaterial.Cell4kPart oredictionary:dustGlowstone
-> ae2:ItemMaterial.Cell16kPart
shaped=
mc:glowstone_dust ae2:ItemMaterial.EngProcessor mc:glowstone_dust,
oredictionary:dustGlowstone ae2:ItemMaterial.EngProcessor oredictionary:dustGlowstone,
ae2:ItemMaterial.Cell16kPart ae2:BlockQuartzGlass ae2:ItemMaterial.Cell16kPart,
mc:glowstone_dust ae2:ItemMaterial.Cell16kPart mc:glowstone_dust
oredictionary:dustGlowstone ae2:ItemMaterial.Cell16kPart oredictionary:dustGlowstone
-> ae2:ItemMaterial.Cell64kPart
@@ -11,25 +11,25 @@ shapeless=
ae2:ItemMaterial.Cell64kPart ae2:ItemMaterial.EmptyStorageCell -> ae2:ItemBasicStorageCell.64k
shaped=
ae2:BlockQuartzGlass mc:redstone ae2:BlockQuartzGlass,
mc:redstone ae2:ItemMaterial.Cell1kPart mc:redstone,
mc:iron_ingot mc:iron_ingot mc:iron_ingot
ae2:BlockQuartzGlass oredictionary:dustRedstone ae2:BlockQuartzGlass,
oredictionary:dustRedstone ae2:ItemMaterial.Cell1kPart oredictionary:dustRedstone,
oredictionary:ingotIron oredictionary:ingotIron oredictionary:ingotIron
-> ae2:ItemBasicStorageCell.1k
shaped=
ae2:BlockQuartzGlass mc:redstone ae2:BlockQuartzGlass,
mc:redstone ae2:ItemMaterial.Cell4kPart mc:redstone,
mc:iron_ingot mc:iron_ingot mc:iron_ingot
ae2:BlockQuartzGlass oredictionary:dustRedstone ae2:BlockQuartzGlass,
oredictionary:dustRedstone ae2:ItemMaterial.Cell4kPart oredictionary:dustRedstone,
oredictionary:ingotIron oredictionary:ingotIron oredictionary:ingotIron
-> ae2:ItemBasicStorageCell.4k
shaped=
ae2:BlockQuartzGlass mc:redstone ae2:BlockQuartzGlass,
mc:redstone ae2:ItemMaterial.Cell16kPart mc:redstone,
mc:iron_ingot mc:iron_ingot mc:iron_ingot
ae2:BlockQuartzGlass oredictionary:dustRedstone ae2:BlockQuartzGlass,
oredictionary:dustRedstone ae2:ItemMaterial.Cell16kPart oredictionary:dustRedstone,
oredictionary:ingotIron oredictionary:ingotIron oredictionary:ingotIron
-> ae2:ItemBasicStorageCell.16k
shaped=
ae2:BlockQuartzGlass mc:redstone ae2:BlockQuartzGlass,
mc:redstone ae2:ItemMaterial.Cell64kPart mc:redstone,
mc:iron_ingot mc:iron_ingot mc:iron_ingot
ae2:BlockQuartzGlass oredictionary:dustRedstone ae2:BlockQuartzGlass,
oredictionary:dustRedstone ae2:ItemMaterial.Cell64kPart oredictionary:dustRedstone,
oredictionary:ingotIron oredictionary:ingotIron oredictionary:ingotIron
-> ae2:ItemBasicStorageCell.64k
@@ -2,7 +2,7 @@ shapeless=
certusCrystal ae2:ItemMaterial.EmptyStorageCell -> ae2:ItemViewCell
shaped=
ae2:BlockQuartzGlass mc:redstone ae2:BlockQuartzGlass,
mc:redstone certusCrystal mc:redstone,
mc:iron_ingot mc:iron_ingot mc:iron_ingot
ae2:BlockQuartzGlass oredictionary:dustRedstone ae2:BlockQuartzGlass,
oredictionary:dustRedstone certusCrystal oredictionary:dustRedstone,
oredictionary:ingotIron oredictionary:ingotIron oredictionary:ingotIron
-> ae2:ItemViewCell
@@ -1,5 +1,5 @@
shaped=
mc:iron_ingot ae2:BlockQuartzGlass mc:iron_ingot,
ae2:ItemMaterial.AnnihilationCore mc:crafting_table ae2:ItemMaterial.FormationCore,
mc:iron_ingot ae2:BlockQuartzGlass mc:iron_ingot
oredictionary:ingotIron ae2:BlockQuartzGlass oredictionary:ingotIron,
ae2:ItemMaterial.AnnihilationCore oredictionary:craftingTableWood ae2:ItemMaterial.FormationCore,
oredictionary:ingotIron ae2:BlockQuartzGlass oredictionary:ingotIron
-> ae2:BlockMolecularAssembler
@@ -1,7 +1,7 @@
shaped=
mc:iron_ingot ae2:ItemMaterial.CalcProcessor mc:iron_ingot,
oredictionary:ingotIron ae2:ItemMaterial.CalcProcessor oredictionary:ingotIron,
cable ae2:ItemMaterial.LogicProcessor cable,
mc:iron_ingot ae2:ItemMaterial.CalcProcessor mc:iron_ingot
oredictionary:ingotIron ae2:ItemMaterial.CalcProcessor oredictionary:ingotIron
-> ae2:BlockCraftingUnit:0
# co processor
@@ -1,5 +1,5 @@
shaped=
ae2:BlockQuartzGlass mc:glowstone_dust ae2:BlockQuartzGlass,
mc:glowstone_dust certusCrystal mc:glowstone_dust,
mc:iron_ingot mc:iron_ingot mc:iron_ingot
ae2:BlockQuartzGlass oredictionary:dustGlowstone ae2:BlockQuartzGlass,
oredictionary:dustGlowstone certusCrystal oredictionary:dustGlowstone,
oredictionary:ingotIron oredictionary:ingotIron oredictionary:ingotIron
-> ae2:ItemMaterial.BlankPattern
@@ -1,11 +1,11 @@
shaped=
mc:iron_ingot ae2:ItemMaterial.FormationCore mc:iron_ingot,
oredictionary:ingotIron ae2:ItemMaterial.FormationCore oredictionary:ingotIron,
_ mc:piston _
-> ae2:ItemPart.ExportBus
shaped=
_ ae2:ItemMaterial.AnnihilationCore _,
mc:iron_ingot mc:sticky_piston mc:iron_ingot
oredictionary:ingotIron mc:sticky_piston oredictionary:ingotIron
-> ae2:ItemPart.ImportBus
shapeless=
@@ -1,7 +1,7 @@
shaped=
_ mc:glowstone_dust ae2:BlockQuartzGlass,
mc:iron_ingot mc:redstone ae2:BlockQuartzGlass,
_ mc:glowstone_dust ae2:BlockQuartzGlass
_ oredictionary:dustGlowstone ae2:BlockQuartzGlass,
oredictionary:ingotIron oredictionary:dustRedstone ae2:BlockQuartzGlass,
_ oredictionary:dustGlowstone ae2:BlockQuartzGlass
-> 3 ae2:ItemPart.SemiDarkMonitor
shapeless=
@@ -1,23 +1,23 @@
shaped=
fluixCrystal fluixCrystal fluixCrystal,
mc:iron_ingot ae2:ItemMaterial.FormationCore mc:iron_ingot
oredictionary:ingotIron ae2:ItemMaterial.FormationCore oredictionary:ingotIron
-> ae2:ItemPart.FormationPlane
shaped=
fluixCrystal fluixCrystal fluixCrystal,
mc:iron_ingot ae2:ItemMaterial.AnnihilationCore mc:iron_ingot
oredictionary:ingotIron ae2:ItemMaterial.AnnihilationCore oredictionary:ingotIron
-> ae2:ItemPart.AnnihilationPlane
shaped=
mc:iron_ingot fluixCrystal,
oredictionary:ingotIron fluixCrystal,
ae2:ItemMaterial.AnnihilationCore fluixCrystal,
mc:iron_ingot fluixCrystal
oredictionary:ingotIron fluixCrystal
-> ae2:ItemPart.AnnihilationPlane
shaped=
mc:iron_ingot fluixCrystal,
oredictionary:ingotIron fluixCrystal,
ae2:ItemMaterial.FormationCore fluixCrystal,
mc:iron_ingot fluixCrystal
oredictionary:ingotIron fluixCrystal
-> ae2:ItemPart.FormationPlane
shapeless=
@@ -3,7 +3,7 @@ shapeless=
-> ae2:ItemPart.Terminal
shapeless=
ae2:ItemPart.Terminal mc:crafting_table ae2:ItemMaterial.CalcProcessor
ae2:ItemPart.Terminal oredictionary:craftingTableWood ae2:ItemMaterial.CalcProcessor
-> ae2:ItemPart.CraftingTerminal
shapeless=
@@ -1,7 +1,7 @@
shaped=
_ mc:redstone _,
_ oredictionary:dustRedstone _,
cable mc:lever cable,
_ mc:redstone _
_ oredictionary:dustRedstone _
-> ae2:ItemPart.ToggleBus
shapeless=
@@ -1,5 +1,5 @@
shaped=
_ mc:iron_ingot _,
mc:iron_ingot ae2:ItemMaterial.EngProcessor mc:iron_ingot,
_ oredictionary:ingotIron _,
oredictionary:ingotIron ae2:ItemMaterial.EngProcessor oredictionary:ingotIron,
fluixCrystal fluixCrystal fluixCrystal
-> ae2:ItemPart.P2PTunnelME
@@ -1,7 +1,7 @@
shaped=
_ ae2:ItemMaterial.FluixPearl _,
mc:iron_ingot ae2:ItemPart.QuartzFiber mc:iron_ingot,
_ mc:iron_ingot _
oredictionary:ingotIron ae2:ItemPart.QuartzFiber oredictionary:ingotIron,
_ oredictionary:ingotIron _
-> ae2:ItemMaterial.Wireless
shaped=
@@ -18,5 +18,5 @@ shaped=
shaped=
oredictionary:dustFluix certusCrystal dustEnder,
mc:iron_ingot mc:iron_ingot mc:iron_ingot,
oredictionary:ingotIron oredictionary:ingotIron oredictionary:ingotIron,
-> 2 ae2:ItemMaterial.WirelessBooster
@@ -9,6 +9,8 @@
ore=mc:quartz -> crystalNetherQuartz
ore=mc:wool:* -> blockWool
ore=mc:stained_hardened_clay:* -> blockStainedHardenedClay
ore=mc:crafting_table -> craftingTableWood
ore=mc:chest -> chestWood
# AE2 Ore Dictionary
# Materials for processing in other machines
@@ -36,6 +36,6 @@ shaped=
shaped=
_ _ oredictionary:stickWood,
mc:iron_ingot oredictionary:stickWood _,
oredictionary:ingotIron oredictionary:stickWood _,
oredictionary:crystalCertusQuartz oredictionary:crystalCertusQuartz _
-> ae2:ToolCertusQuartzCuttingKnife
@@ -1,5 +1,5 @@
shaped=
mc:iron_ingot mc:iron_ingot ae2:ItemMaterial.FormationCore,
oredictionary:ingotIron oredictionary:ingotIron ae2:ItemMaterial.FormationCore,
ae2:ItemMaterial.Cell4kPart ae2:BlockEnergyCell _,
mc:iron_ingot _ _
oredictionary:ingotIron _ _
-> ae2:ToolMassCannon
@@ -1,11 +1,11 @@
shaped=
ae2:ItemMaterial.CertusQuartzCrystalCharged _ _,
_ mc:iron_ingot _,
_ _ mc:iron_ingot
_ oredictionary:ingotIron _,
_ _ oredictionary:ingotIron
-> ae2:ToolChargedStaff
shaped=
fluixCrystal ae2:BlockEnergyCell _,
ae2:ItemMaterial.EngProcessor mc:iron_ingot _,
_ _ mc:iron_ingot
ae2:ItemMaterial.EngProcessor oredictionary:ingotIron _,
_ _ oredictionary:ingotIron
-> ae2:ToolEntropyManipulator
@@ -36,6 +36,6 @@ shaped=
shaped=
_ _ oredictionary:stickWood,
mc:iron_ingot oredictionary:stickWood _,
oredictionary:ingotIron oredictionary:stickWood _,
oredictionary:crystalNetherQuartz oredictionary:crystalNetherQuartz _
-> ae2:ToolNetherQuartzCuttingKnife
@@ -3,21 +3,21 @@ shaped=
-> ae2:ToolPortableCell
shapeless=
wrench monitor ae2:ItemMaterial.CalcProcessor mc:chest
wrench monitor ae2:ItemMaterial.CalcProcessor oredictionary:chestWood
-> ae2:ToolNetworkTool
shaped=
ae2:ItemMaterial.EngProcessor mc:iron_ingot mc:iron_ingot,
mc:gold_ingot mc:redstone mc:gold_ingot
ae2:ItemMaterial.EngProcessor oredictionary:ingotIron oredictionary:ingotIron,
oredictionary:ingotGold oredictionary:dustRedstone oredictionary:ingotGold
-> ae2:ToolBiometricCard
shaped=
ae2:ItemMaterial.CalcProcessor mc:iron_ingot mc:iron_ingot,
mc:gold_ingot mc:redstone mc:gold_ingot
ae2:ItemMaterial.CalcProcessor oredictionary:ingotIron oredictionary:ingotIron,
oredictionary:ingotGold oredictionary:dustRedstone oredictionary:ingotGold
-> ae2:ToolMemoryCard
shaped=
ae2:ItemMaterial.FormationCore mc:iron_ingot _,
mc:iron_ingot ae2:ItemMaterial.Cell4kPart _,
ae2:ItemMaterial.FormationCore oredictionary:ingotIron _,
oredictionary:ingotIron ae2:ItemMaterial.Cell4kPart _,
_ _ ae2:BlockEnergyCell
-> ae2:ToolColorApplicator
@@ -96,96 +96,96 @@ shaped=
shaped=
ae2:PaintBall.White ae2:PaintBall.White ae2:PaintBall.White,
ae2:PaintBall.White mc:glowstone_dust ae2:PaintBall.White,
ae2:PaintBall.White oredictionary:dustGlowstone ae2:PaintBall.White,
ae2:PaintBall.White ae2:PaintBall.White ae2:PaintBall.White
-> 8 ae2:LumenPaintBall.White
shaped=
ae2:PaintBall.Black ae2:PaintBall.Black ae2:PaintBall.Black,
ae2:PaintBall.Black mc:glowstone_dust ae2:PaintBall.Black,
ae2:PaintBall.Black oredictionary:dustGlowstone ae2:PaintBall.Black,
ae2:PaintBall.Black ae2:PaintBall.Black ae2:PaintBall.Black
-> 8 ae2:LumenPaintBall.Black
shaped=
ae2:PaintBall.Red ae2:PaintBall.Red ae2:PaintBall.Red,
ae2:PaintBall.Red mc:glowstone_dust ae2:PaintBall.Red,
ae2:PaintBall.Red oredictionary:dustGlowstone ae2:PaintBall.Red,
ae2:PaintBall.Red ae2:PaintBall.Red ae2:PaintBall.Red
-> 8 ae2:LumenPaintBall.Red
shaped=
ae2:PaintBall.Green ae2:PaintBall.Green ae2:PaintBall.Green,
ae2:PaintBall.Green mc:glowstone_dust ae2:PaintBall.Green,
ae2:PaintBall.Green oredictionary:dustGlowstone ae2:PaintBall.Green,
ae2:PaintBall.Green ae2:PaintBall.Green ae2:PaintBall.Green
-> 8 ae2:LumenPaintBall.Green
shaped=
ae2:PaintBall.Brown ae2:PaintBall.Brown ae2:PaintBall.Brown,
ae2:PaintBall.Brown mc:glowstone_dust ae2:PaintBall.Brown,
ae2:PaintBall.Brown oredictionary:dustGlowstone ae2:PaintBall.Brown,
ae2:PaintBall.Brown ae2:PaintBall.Brown ae2:PaintBall.Brown
-> 8 ae2:LumenPaintBall.Brown
shaped=
ae2:PaintBall.Blue ae2:PaintBall.Blue ae2:PaintBall.Blue,
ae2:PaintBall.Blue mc:glowstone_dust ae2:PaintBall.Blue,
ae2:PaintBall.Blue oredictionary:dustGlowstone ae2:PaintBall.Blue,
ae2:PaintBall.Blue ae2:PaintBall.Blue ae2:PaintBall.Blue
-> 8 ae2:LumenPaintBall.Blue
shaped=
ae2:PaintBall.Purple ae2:PaintBall.Purple ae2:PaintBall.Purple,
ae2:PaintBall.Purple mc:glowstone_dust ae2:PaintBall.Purple,
ae2:PaintBall.Purple oredictionary:dustGlowstone ae2:PaintBall.Purple,
ae2:PaintBall.Purple ae2:PaintBall.Purple ae2:PaintBall.Purple
-> 8 ae2:LumenPaintBall.Purple
shaped=
ae2:PaintBall.Cyan ae2:PaintBall.Cyan ae2:PaintBall.Cyan,
ae2:PaintBall.Cyan mc:glowstone_dust ae2:PaintBall.Cyan,
ae2:PaintBall.Cyan oredictionary:dustGlowstone ae2:PaintBall.Cyan,
ae2:PaintBall.Cyan ae2:PaintBall.Cyan ae2:PaintBall.Cyan
-> 8 ae2:LumenPaintBall.Cyan
shaped=
ae2:PaintBall.LightGray ae2:PaintBall.LightGray ae2:PaintBall.LightGray,
ae2:PaintBall.LightGray mc:glowstone_dust ae2:PaintBall.LightGray,
ae2:PaintBall.LightGray oredictionary:dustGlowstone ae2:PaintBall.LightGray,
ae2:PaintBall.LightGray ae2:PaintBall.LightGray ae2:PaintBall.LightGray
-> 8 ae2:LumenPaintBall.LightGray
shaped=
ae2:PaintBall.Gray ae2:PaintBall.Gray ae2:PaintBall.Gray,
ae2:PaintBall.Gray mc:glowstone_dust ae2:PaintBall.Gray,
ae2:PaintBall.Gray oredictionary:dustGlowstone ae2:PaintBall.Gray,
ae2:PaintBall.Gray ae2:PaintBall.Gray ae2:PaintBall.Gray
-> 8 ae2:LumenPaintBall.Gray
shaped=
ae2:PaintBall.Pink ae2:PaintBall.Pink ae2:PaintBall.Pink,
ae2:PaintBall.Pink mc:glowstone_dust ae2:PaintBall.Pink,
ae2:PaintBall.Pink oredictionary:dustGlowstone ae2:PaintBall.Pink,
ae2:PaintBall.Pink ae2:PaintBall.Pink ae2:PaintBall.Pink
-> 8 ae2:LumenPaintBall.Pink
shaped=
ae2:PaintBall.Lime ae2:PaintBall.Lime ae2:PaintBall.Lime,
ae2:PaintBall.Lime mc:glowstone_dust ae2:PaintBall.Lime,
ae2:PaintBall.Lime oredictionary:dustGlowstone ae2:PaintBall.Lime,
ae2:PaintBall.Lime ae2:PaintBall.Lime ae2:PaintBall.Lime
-> 8 ae2:LumenPaintBall.Lime
shaped=
ae2:PaintBall.Yellow ae2:PaintBall.Yellow ae2:PaintBall.Yellow,
ae2:PaintBall.Yellow mc:glowstone_dust ae2:PaintBall.Yellow,
ae2:PaintBall.Yellow oredictionary:dustGlowstone ae2:PaintBall.Yellow,
ae2:PaintBall.Yellow ae2:PaintBall.Yellow ae2:PaintBall.Yellow
-> 8 ae2:LumenPaintBall.Yellow
shaped=
ae2:PaintBall.LightBlue ae2:PaintBall.LightBlue ae2:PaintBall.LightBlue,
ae2:PaintBall.LightBlue mc:glowstone_dust ae2:PaintBall.LightBlue,
ae2:PaintBall.LightBlue oredictionary:dustGlowstone ae2:PaintBall.LightBlue,
ae2:PaintBall.LightBlue ae2:PaintBall.LightBlue ae2:PaintBall.LightBlue
-> 8 ae2:LumenPaintBall.LightBlue
shaped=
ae2:PaintBall.Magenta ae2:PaintBall.Magenta ae2:PaintBall.Magenta,
ae2:PaintBall.Magenta mc:glowstone_dust ae2:PaintBall.Magenta,
ae2:PaintBall.Magenta oredictionary:dustGlowstone ae2:PaintBall.Magenta,
ae2:PaintBall.Magenta ae2:PaintBall.Magenta ae2:PaintBall.Magenta
-> 8 ae2:LumenPaintBall.Magenta
shaped=
ae2:PaintBall.Orange ae2:PaintBall.Orange ae2:PaintBall.Orange,
ae2:PaintBall.Orange mc:glowstone_dust ae2:PaintBall.Orange,
ae2:PaintBall.Orange oredictionary:dustGlowstone ae2:PaintBall.Orange,
ae2:PaintBall.Orange ae2:PaintBall.Orange ae2:PaintBall.Orange
-> 8 ae2:LumenPaintBall.Orange