diff --git a/client/render/BusRenderHelper.java b/client/render/BusRenderHelper.java index 6f41739ef..f14529a32 100644 --- a/client/render/BusRenderHelper.java +++ b/client/render/BusRenderHelper.java @@ -334,7 +334,7 @@ public class BusRenderHelper implements IPartRenderHelper if ( !renderThis() ) return; - renderer.renderStandardBlock( renderer.blockAccess.getBlock( x, y, z ), x, y, z ); + renderer.renderStandardBlock( blk, x, y, z ); } @Override diff --git a/core/Registration.java b/core/Registration.java index 3477e8ce1..2fb5ede89 100644 --- a/core/Registration.java +++ b/core/Registration.java @@ -430,8 +430,7 @@ public class Registration } catch (Throwable e) { - AELog.severe( "Error with Feature: " + c.getName() ); - throw new RuntimeException( e ); + throw new RuntimeException( "Error with Feature: " + c.getName(), e ); } } @@ -477,15 +476,25 @@ public class Registration recipeHandler.parseRecipes( new JarLoader( "/assets/appliedenergistics2/recipes/" ), "index.recipe" ); IPartHelper ph = AEApi.instance().partHelper(); - ph.registerNewLayer( "appeng.api.parts.layers.LayerIEnergySink", "ic2.api.energy.tile.IEnergySink" ); - ph.registerNewLayer( "appeng.api.parts.layers.LayerIEnergySource", "ic2.api.energy.tile.IEnergySource" ); ph.registerNewLayer( "appeng.api.parts.layers.LayerISidedInventory", "net.minecraft.inventory.ISidedInventory" ); - ph.registerNewLayer( "appeng.api.parts.layers.LayerIPowerEmitter", "buildcraft.api.power.IPowerEmitter" ); - ph.registerNewLayer( "appeng.api.parts.layers.LayerIPowerReceptor", "buildcraft.api.power.IPowerReceptor" ); ph.registerNewLayer( "appeng.api.parts.layers.LayerIFluidHandler", "net.minecraftforge.fluids.IFluidHandler" ); - ph.registerNewLayer( "appeng.api.parts.layers.LayerIEnergyHandler", "cofh.api.energy.IEnergyHandler" ); ph.registerNewLayer( "appeng.api.parts.layers.LayerITileStorageMonitorable", "appeng.api.implementations.tiles.ITileStorageMonitorable" ); + if ( AppEng.instance.isIntegrationEnabled( "IC2" ) ) + { + ph.registerNewLayer( "appeng.api.parts.layers.LayerIEnergySink", "ic2.api.energy.tile.IEnergySink" ); + ph.registerNewLayer( "appeng.api.parts.layers.LayerIEnergySource", "ic2.api.energy.tile.IEnergySource" ); + } + + if ( AppEng.instance.isIntegrationEnabled( "MJ" ) ) + { + ph.registerNewLayer( "appeng.api.parts.layers.LayerIPowerEmitter", "buildcraft.api.power.IPowerEmitter" ); + ph.registerNewLayer( "appeng.api.parts.layers.LayerIPowerReceptor", "buildcraft.api.power.IPowerReceptor" ); + } + + if ( AppEng.instance.isIntegrationEnabled( "RF" ) ) + ph.registerNewLayer( "appeng.api.parts.layers.LayerIEnergyHandler", "cofh.api.energy.IEnergyHandler" ); + FMLCommonHandler.instance().bus().register( TickHandler.instance ); MinecraftForge.EVENT_BUS.register( new PartPlacement() ); diff --git a/integration/modules/RF.java b/integration/modules/RF.java index 61114cfc9..ba2eddff6 100644 --- a/integration/modules/RF.java +++ b/integration/modules/RF.java @@ -16,6 +16,7 @@ public class RF extends BaseModule implements IIntegrationModule public RF() { TestClass( cofh.api.energy.IEnergyHandler.class ); + TestClass( cofh.api.energy.IEnergyConnection.class ); } @Override diff --git a/integration/modules/helpers/NullRFHandler.java b/integration/modules/helpers/NullRFHandler.java index 2174c19c5..10b9662e9 100644 --- a/integration/modules/helpers/NullRFHandler.java +++ b/integration/modules/helpers/NullRFHandler.java @@ -1,4 +1,5 @@ package appeng.integration.modules.helpers; + import net.minecraftforge.common.util.ForgeDirection; import cofh.api.energy.IEnergyHandler; @@ -29,15 +30,10 @@ public class NullRFHandler implements IEnergyHandler return 0; } - @Deprecated - public boolean canInterface(ForgeDirection from) + @Override + public boolean canConnectEnergy(ForgeDirection from) { return true; } - @Override - public boolean canConnectEnergy(ForgeDirection from) { - return true; - } - } diff --git a/parts/CableBusContainer.java b/parts/CableBusContainer.java index e8874bc25..dcce990b0 100644 --- a/parts/CableBusContainer.java +++ b/parts/CableBusContainer.java @@ -575,6 +575,8 @@ public class CableBusContainer implements AEMultiTile, ICableBusContainer { byte sides = data.readByte(); + boolean updateBlock = false; + for (int x = 0; x < 7; x++) { ForgeDirection side = ForgeDirection.getOrientation( x ); @@ -589,7 +591,10 @@ public class CableBusContainer implements AEMultiTile, ICableBusContainer ItemStack current = p != null ? p.getItemStack( PartItemStack.Network ) : null; if ( current != null && current.getItem() == myItem && current.getItemDamage() == dmgValue ) - p.readFromStream( data ); + { + if ( p.readFromStream( data ) ) + updateBlock = true; + } else { removePart( side, false ); @@ -607,7 +612,9 @@ public class CableBusContainer implements AEMultiTile, ICableBusContainer removePart( side, false ); } - return fc.readFromStream( data ); + if ( fc.readFromStream( data ) ) + return true; + return updateBlock; } ForgeDirection getSide(IPart part) diff --git a/parts/networking/PartCable.java b/parts/networking/PartCable.java index 2782d94e7..b1c53a9c4 100644 --- a/parts/networking/PartCable.java +++ b/parts/networking/PartCable.java @@ -284,7 +284,7 @@ public class PartCable extends AEBasePart implements IPartCable int cs = data.readByte(); int sideOut = data.readInt(); - EnumSet myC = connections; + EnumSet myC = connections.clone(); boolean wasPowered = powered; powered = false; boolean chchanged = false; @@ -381,7 +381,7 @@ public class PartCable extends AEBasePart implements IPartCable IPartHost ccph = te instanceof IPartHost ? (IPartHost) te : null; IGridHost gh = te instanceof IGridHost ? (IGridHost) te : null; - rh.setFacesToRender( EnumSet.complementOf( EnumSet.of( of, of.getOpposite() ) ) ); + rh.setFacesToRender( EnumSet.complementOf( EnumSet.of( of ) ) ); if ( gh != null && ccph != null && gh.getCableConnectionType( of ) == AECableType.GLASS && ccph.getColor() != AEColor.Transparent && ccph.getPart( of.getOpposite() ) == null ) @@ -494,7 +494,7 @@ public class PartCable extends AEBasePart implements IPartCable IGridHost ghh = te instanceof IGridHost ? (IGridHost) te : null; boolean isSmart = false; - rh.setFacesToRender( EnumSet.complementOf( EnumSet.of( of, of.getOpposite() ) ) ); + rh.setFacesToRender( EnumSet.complementOf( EnumSet.of( of.getOpposite() ) ) ); if ( ghh != null && ccph != null && ghh.getCableConnectionType( of.getOpposite() ) == AECableType.GLASS && ccph.getPart( of.getOpposite() ) == null && ccph.getColor() != AEColor.Transparent ) rh.setTexture( getGlassTexture( ccph.getColor() ) ); diff --git a/parts/p2p/PartP2PRFPower.java b/parts/p2p/PartP2PRFPower.java index 2cab3fe62..23ccbdf8c 100644 --- a/parts/p2p/PartP2PRFPower.java +++ b/parts/p2p/PartP2PRFPower.java @@ -236,7 +236,7 @@ public class PartP2PRFPower extends PartP2PTunnel implements cof cachedTarget = true; } - if ( outputTarget == null ) + if ( outputTarget == null || !outputTarget.canConnectEnergy( side.getOpposite() ) ) return myNullHandler; return outputTarget; @@ -244,14 +244,9 @@ public class PartP2PRFPower extends PartP2PTunnel implements cof return myNullHandler; } - @Deprecated - public boolean canInterface(ForgeDirection from) + @Override + public boolean canConnectEnergy(ForgeDirection from) { return true; } - - @Override - public boolean canConnectEnergy(ForgeDirection from) { - return true; - } } diff --git a/tile/powersink/RedstoneFlux.java b/tile/powersink/RedstoneFlux.java index 5faebb49f..50f4ff2ee 100644 --- a/tile/powersink/RedstoneFlux.java +++ b/tile/powersink/RedstoneFlux.java @@ -34,12 +34,6 @@ public abstract class RedstoneFlux extends RotaryCraft implements IEnergyHandler return 0; } - @Deprecated - final public boolean canInterface(ForgeDirection from) - { - return canConnectEnergy(from); - } - final public boolean canConnectEnergy(ForgeDirection from) { return internalCanAcceptPower && getPowerSides().contains( from );