From 9b65cc210d4247481cfb2e3343c98e4e0366ed3b Mon Sep 17 00:00:00 2001 From: AlgorithmX2 Date: Wed, 25 Jun 2014 21:19:20 -0500 Subject: [PATCH] Update MFR Rednet API --- block/networking/BlockCableBus.java | 37 +++++++++++++-------- fmp/CableBusPart.java | 34 +------------------ helpers/AEMultiTile.java | 5 +-- integration/modules/MFR.java | 4 +-- parts/CableBusContainer.java | 46 ++++---------------------- parts/automation/PartUpgradeable.java | 6 ++++ parts/automation/UpgradeInventory.java | 2 +- tile/networking/TileCableBus.java | 42 +---------------------- 8 files changed, 43 insertions(+), 133 deletions(-) diff --git a/block/networking/BlockCableBus.java b/block/networking/BlockCableBus.java index 41d123186..f79002efc 100644 --- a/block/networking/BlockCableBus.java +++ b/block/networking/BlockCableBus.java @@ -22,6 +22,8 @@ import net.minecraft.util.Vec3; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; +import powercrystals.minefactoryreloaded.api.rednet.connectivity.IRedNetConnection; +import powercrystals.minefactoryreloaded.api.rednet.connectivity.RedNetConnectionType; import appeng.api.parts.IPart; import appeng.api.parts.IPartHost; import appeng.api.parts.PartItemStack; @@ -42,11 +44,14 @@ import appeng.parts.NullCableBusContainer; import appeng.tile.AEBaseTile; import appeng.tile.networking.TileCableBus; import appeng.tile.networking.TileCableBusTESR; +import appeng.transformer.annotations.integration.Interface; +import appeng.transformer.annotations.integration.Method; import appeng.util.Platform; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -public class BlockCableBus extends AEBaseBlock +@Interface(iface = "powercrystals.minefactoryreloaded.api.rednet.connectivity.IRedNetConnection", iname = "MFR") +public class BlockCableBus extends AEBaseBlock implements IRedNetConnection { static private ICableBusContainer nullCB = new NullCableBusContainer(); @@ -318,18 +323,18 @@ public class BlockCableBus extends AEBaseBlock { return cb( w, x, y, z ).isSolidOnSide( side ); } - - @Override - public void onNeighborBlockChange(World w, int x, int y, int z, Block meh) - { - cb( w, x, y, z ).onNeighborChanged(); - } - - @Override - public void onNeighborChange(IBlockAccess w, int x, int y, int z, int tileX, int tileY, int tileZ) - { - cb( w, x, y, z ).onNeighborChanged(); - } + + @Override + public void onNeighborBlockChange(World w, int x, int y, int z, Block meh) + { + cb( w, x, y, z ).onNeighborChanged(); + } + + @Override + public void onNeighborChange(IBlockAccess w, int x, int y, int z, int tileX, int tileY, int tileZ) + { + cb( w, x, y, z ).onNeighborChanged(); + } @Override public Item getItemDropped(int i, Random r, int k) @@ -416,4 +421,10 @@ public class BlockCableBus extends AEBaseBlock */ boolean ImmibisMicroblocks_TransformableBlockMarker = true; + @Override + @Method(iname = "MFR") + public RedNetConnectionType getConnectionType(World world, int x, int y, int z, ForgeDirection side) + { + return cb( world, x, y, z ).canConnectRedstone( EnumSet.allOf( ForgeDirection.class ) ) ? RedNetConnectionType.CableSingle : RedNetConnectionType.None; + } } diff --git a/fmp/CableBusPart.java b/fmp/CableBusPart.java index 2069c1d86..953f9750a 100644 --- a/fmp/CableBusPart.java +++ b/fmp/CableBusPart.java @@ -18,9 +18,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.Vec3; -import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -import powercrystals.minefactoryreloaded.api.rednet.RedNetConnectionType; import appeng.api.networking.IGridNode; import appeng.api.parts.IFacadeContainer; import appeng.api.parts.IFacadePart; @@ -503,36 +501,6 @@ public class CableBusPart extends JCuboidPart implements JNormalOcclusion, IReds cb.securityBreak(); } - @Override - public RedNetConnectionType getConnectionType(World world, int x, int y, int z, ForgeDirection side) - { - return cb.getConnectionType( world, x, y, z, side ); - } - - @Override - public int[] getOutputValues(World world, int x, int y, int z, ForgeDirection side) - { - return cb.getOutputValues( world, x, y, z, side ); - } - - @Override - public int getOutputValue(World world, int x, int y, int z, ForgeDirection side, int subnet) - { - return cb.getOutputValue( world, x, y, z, side, subnet ); - } - - @Override - public void onInputsChanged(World world, int x, int y, int z, ForgeDirection side, int[] inputValues) - { - cb.onInputsChanged( world, x, y, z, side, inputValues ); - } - - @Override - public void onInputChanged(World world, int x, int y, int z, ForgeDirection side, int inputValue) - { - cb.onInputChanged( world, x, y, z, side, inputValue ); - } - @Override public boolean isEmpty() { @@ -551,7 +519,7 @@ public class CableBusPart extends JCuboidPart implements JNormalOcclusion, IReds if ( tile() instanceof TIInventoryTile ) ((TIInventoryTile) tile()).rebuildSlotMap(); - if ( world() != null && world().blockExists( x(), y(), z() ) && ! CableBusContainer.isLoading() ) + if ( world() != null && world().blockExists( x(), y(), z() ) && !CableBusContainer.isLoading() ) world().notifyBlocksOfNeighborChange( x(), y(), z(), Platform.air ); } diff --git a/helpers/AEMultiTile.java b/helpers/AEMultiTile.java index 9d6f64781..bef994bd8 100644 --- a/helpers/AEMultiTile.java +++ b/helpers/AEMultiTile.java @@ -1,12 +1,9 @@ package appeng.helpers; -import powercrystals.minefactoryreloaded.api.rednet.IConnectableRedNet; import appeng.api.networking.IGridHost; import appeng.api.parts.IPartHost; -import appeng.transformer.annotations.integration.Interface; -@Interface(iface = "powercrystals.minefactoryreloaded.api.rednet.IConnectableRedNet", iname = "MFR") -public interface AEMultiTile extends IGridHost, IPartHost, IConnectableRedNet +public interface AEMultiTile extends IGridHost, IPartHost { } diff --git a/integration/modules/MFR.java b/integration/modules/MFR.java index 510e2adfb..05c40c1dc 100644 --- a/integration/modules/MFR.java +++ b/integration/modules/MFR.java @@ -1,6 +1,6 @@ package appeng.integration.modules; -import powercrystals.minefactoryreloaded.api.rednet.RedNetConnectionType; +import powercrystals.minefactoryreloaded.api.rednet.connectivity.IRedNetConnection; import appeng.integration.BaseModule; public class MFR extends BaseModule @@ -9,7 +9,7 @@ public class MFR extends BaseModule public static MFR instance; public MFR() { - TestClass( RedNetConnectionType.class ); + TestClass( IRedNetConnection.class ); } @Override diff --git a/parts/CableBusContainer.java b/parts/CableBusContainer.java index df711b427..dcff47c88 100644 --- a/parts/CableBusContainer.java +++ b/parts/CableBusContainer.java @@ -20,7 +20,6 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -import powercrystals.minefactoryreloaded.api.rednet.RedNetConnectionType; import appeng.api.AEApi; import appeng.api.exceptions.FailedConnection; import appeng.api.implementations.parts.IPartCable; @@ -321,8 +320,9 @@ public class CableBusContainer implements AEMultiTile, ICableBusContainer } private static final ThreadLocal isLoading = new ThreadLocal(); - - public static boolean isLoading() { + + public static boolean isLoading() + { Boolean is = isLoading.get(); return is != null && is == true; } @@ -331,10 +331,10 @@ public class CableBusContainer implements AEMultiTile, ICableBusContainer { if ( inWorld ) return; - + inWorld = true; isLoading.set( true ); - + TileEntity te = getTile(); hasRedstone = te.getWorldObj().isBlockIndirectlyGettingPowered( te.xCoord, te.yCoord, te.zCoord ); @@ -381,8 +381,8 @@ public class CableBusContainer implements AEMultiTile, ICableBusContainer } partChanged(); - - isLoading.set(false); + + isLoading.set( false ); } public void removeFromWorld() @@ -980,38 +980,6 @@ public class CableBusContainer implements AEMultiTile, ICableBusContainer return false; } - @Override - public RedNetConnectionType getConnectionType(World world, int x, int y, int z, ForgeDirection side) - { - return getPart( side ).canConnectRedstone() ? RedNetConnectionType.CableSingle : RedNetConnectionType.None; - } - - @Override - public int[] getOutputValues(World world, int x, int y, int z, ForgeDirection side) - { - // never called - return null; - } - - @Override - public int getOutputValue(World world, int x, int y, int z, ForgeDirection side, int subnet) - { - // never called - return 0; - } - - @Override - public void onInputsChanged(World world, int x, int y, int z, ForgeDirection side, int[] inputValues) - { - // never called - } - - @Override - public void onInputChanged(World world, int x, int y, int z, ForgeDirection side, int inputValue) - { - // never called - } - @Override public void securityBreak() { diff --git a/parts/automation/PartUpgradeable.java b/parts/automation/PartUpgradeable.java index edd06e495..7c2376cc8 100644 --- a/parts/automation/PartUpgradeable.java +++ b/parts/automation/PartUpgradeable.java @@ -26,6 +26,12 @@ public class PartUpgradeable extends PartBasicState implements ISegmentedInvento return upgrades.getInstalledUpgrades( u ); } + @Override + public boolean canConnectRedstone() + { + return upgrades.getMaxInstalled( Upgrades.REDSTONE ) > 0; + } + protected int getUpgradeSlots() { return 4; diff --git a/parts/automation/UpgradeInventory.java b/parts/automation/UpgradeInventory.java index 3761c9793..68ab9365f 100644 --- a/parts/automation/UpgradeInventory.java +++ b/parts/automation/UpgradeInventory.java @@ -62,7 +62,7 @@ public class UpgradeInventory extends AppEngInternalInventory implements IAEAppE return false; } - private int getMaxInstalled(Upgrades u) + public int getMaxInstalled(Upgrades u) { Integer max = null; for (ItemStack is : u.getSupported().keySet()) diff --git a/tile/networking/TileCableBus.java b/tile/networking/TileCableBus.java index 98e0b51fa..56c1e1e7c 100644 --- a/tile/networking/TileCableBus.java +++ b/tile/networking/TileCableBus.java @@ -4,7 +4,6 @@ import io.netty.buffer.ByteBuf; import java.io.IOException; import java.util.ArrayList; -import java.util.EnumSet; import java.util.List; import java.util.Set; @@ -17,7 +16,6 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -import powercrystals.minefactoryreloaded.api.rednet.RedNetConnectionType; import appeng.api.networking.IGridNode; import appeng.api.parts.IFacadeContainer; import appeng.api.parts.IPart; @@ -34,7 +32,6 @@ import appeng.parts.CableBusContainer; import appeng.tile.AEBaseTile; import appeng.tile.events.AETileEventHandler; import appeng.tile.events.TileEventType; -import appeng.transformer.annotations.integration.Method; import appeng.util.Platform; public class TileCableBus extends AEBaseTile implements AEMultiTile, ICustomCollision @@ -292,7 +289,7 @@ public class TileCableBus extends AEBaseTile implements AEMultiTile, ICustomColl @Override public void notifyNeighbors() { - if ( worldObj != null && worldObj.blockExists( xCoord, yCoord, zCoord ) && ! CableBusContainer.isLoading() ) + if ( worldObj != null && worldObj.blockExists( xCoord, yCoord, zCoord ) && !CableBusContainer.isLoading() ) worldObj.notifyBlocksOfNeighborChange( xCoord, yCoord, zCoord, Platform.air ); } @@ -308,43 +305,6 @@ public class TileCableBus extends AEBaseTile implements AEMultiTile, ICustomColl return cb.hasRedstone( side ); } - @Override - @Method(iname = "MFR") - public RedNetConnectionType getConnectionType(World world, int x, int y, int z, ForgeDirection side) - { - return cb.canConnectRedstone( EnumSet.of( side ) ) ? RedNetConnectionType.CableSingle : RedNetConnectionType.None; - } - - @Override - @Method(iname = "MFR") - public int[] getOutputValues(World world, int x, int y, int z, ForgeDirection side) - { - // never called! - return null; - } - - @Override - @Method(iname = "MFR") - public int getOutputValue(World world, int x, int y, int z, ForgeDirection side, int subnet) - { - // never called! - return 0; - } - - @Override - @Method(iname = "MFR") - public void onInputsChanged(World world, int x, int y, int z, ForgeDirection side, int[] inputValues) - { - // never called! - } - - @Override - @Method(iname = "MFR") - public void onInputChanged(World world, int x, int y, int z, ForgeDirection side, int inputValue) - { - // never called! - } - @Override public boolean isEmpty() {