Update MFR Rednet API

This commit is contained in:
AlgorithmX2 2014-06-25 21:19:20 -05:00
parent 27772725d8
commit 9b65cc210d
8 changed files with 43 additions and 133 deletions

View file

@ -22,6 +22,8 @@ import net.minecraft.util.Vec3;
import net.minecraft.world.IBlockAccess; import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection; 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.IPart;
import appeng.api.parts.IPartHost; import appeng.api.parts.IPartHost;
import appeng.api.parts.PartItemStack; import appeng.api.parts.PartItemStack;
@ -42,11 +44,14 @@ import appeng.parts.NullCableBusContainer;
import appeng.tile.AEBaseTile; import appeng.tile.AEBaseTile;
import appeng.tile.networking.TileCableBus; import appeng.tile.networking.TileCableBus;
import appeng.tile.networking.TileCableBusTESR; import appeng.tile.networking.TileCableBusTESR;
import appeng.transformer.annotations.integration.Interface;
import appeng.transformer.annotations.integration.Method;
import appeng.util.Platform; import appeng.util.Platform;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; 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(); static private ICableBusContainer nullCB = new NullCableBusContainer();
@ -416,4 +421,10 @@ public class BlockCableBus extends AEBaseBlock
*/ */
boolean ImmibisMicroblocks_TransformableBlockMarker = true; 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;
}
} }

View file

@ -18,9 +18,7 @@ import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.MovingObjectPosition;
import net.minecraft.util.Vec3; import net.minecraft.util.Vec3;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
import powercrystals.minefactoryreloaded.api.rednet.RedNetConnectionType;
import appeng.api.networking.IGridNode; import appeng.api.networking.IGridNode;
import appeng.api.parts.IFacadeContainer; import appeng.api.parts.IFacadeContainer;
import appeng.api.parts.IFacadePart; import appeng.api.parts.IFacadePart;
@ -503,36 +501,6 @@ public class CableBusPart extends JCuboidPart implements JNormalOcclusion, IReds
cb.securityBreak(); 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 @Override
public boolean isEmpty() public boolean isEmpty()
{ {

View file

@ -1,12 +1,9 @@
package appeng.helpers; package appeng.helpers;
import powercrystals.minefactoryreloaded.api.rednet.IConnectableRedNet;
import appeng.api.networking.IGridHost; import appeng.api.networking.IGridHost;
import appeng.api.parts.IPartHost; 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
public interface AEMultiTile extends IGridHost, IPartHost, IConnectableRedNet
{ {
} }

View file

@ -1,6 +1,6 @@
package appeng.integration.modules; package appeng.integration.modules;
import powercrystals.minefactoryreloaded.api.rednet.RedNetConnectionType; import powercrystals.minefactoryreloaded.api.rednet.connectivity.IRedNetConnection;
import appeng.integration.BaseModule; import appeng.integration.BaseModule;
public class MFR extends BaseModule public class MFR extends BaseModule
@ -9,7 +9,7 @@ public class MFR extends BaseModule
public static MFR instance; public static MFR instance;
public MFR() { public MFR() {
TestClass( RedNetConnectionType.class ); TestClass( IRedNetConnection.class );
} }
@Override @Override

View file

@ -20,7 +20,6 @@ import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.Vec3; import net.minecraft.util.Vec3;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
import powercrystals.minefactoryreloaded.api.rednet.RedNetConnectionType;
import appeng.api.AEApi; import appeng.api.AEApi;
import appeng.api.exceptions.FailedConnection; import appeng.api.exceptions.FailedConnection;
import appeng.api.implementations.parts.IPartCable; import appeng.api.implementations.parts.IPartCable;
@ -322,7 +321,8 @@ public class CableBusContainer implements AEMultiTile, ICableBusContainer
private static final ThreadLocal<Boolean> isLoading = new ThreadLocal(); private static final ThreadLocal<Boolean> isLoading = new ThreadLocal();
public static boolean isLoading() { public static boolean isLoading()
{
Boolean is = isLoading.get(); Boolean is = isLoading.get();
return is != null && is == true; return is != null && is == true;
} }
@ -980,38 +980,6 @@ public class CableBusContainer implements AEMultiTile, ICableBusContainer
return false; 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 @Override
public void securityBreak() public void securityBreak()
{ {

View file

@ -26,6 +26,12 @@ public class PartUpgradeable extends PartBasicState implements ISegmentedInvento
return upgrades.getInstalledUpgrades( u ); return upgrades.getInstalledUpgrades( u );
} }
@Override
public boolean canConnectRedstone()
{
return upgrades.getMaxInstalled( Upgrades.REDSTONE ) > 0;
}
protected int getUpgradeSlots() protected int getUpgradeSlots()
{ {
return 4; return 4;

View file

@ -62,7 +62,7 @@ public class UpgradeInventory extends AppEngInternalInventory implements IAEAppE
return false; return false;
} }
private int getMaxInstalled(Upgrades u) public int getMaxInstalled(Upgrades u)
{ {
Integer max = null; Integer max = null;
for (ItemStack is : u.getSupported().keySet()) for (ItemStack is : u.getSupported().keySet())

View file

@ -4,7 +4,6 @@ import io.netty.buffer.ByteBuf;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.EnumSet;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
@ -17,7 +16,6 @@ import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.Vec3; import net.minecraft.util.Vec3;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
import powercrystals.minefactoryreloaded.api.rednet.RedNetConnectionType;
import appeng.api.networking.IGridNode; import appeng.api.networking.IGridNode;
import appeng.api.parts.IFacadeContainer; import appeng.api.parts.IFacadeContainer;
import appeng.api.parts.IPart; import appeng.api.parts.IPart;
@ -34,7 +32,6 @@ import appeng.parts.CableBusContainer;
import appeng.tile.AEBaseTile; import appeng.tile.AEBaseTile;
import appeng.tile.events.AETileEventHandler; import appeng.tile.events.AETileEventHandler;
import appeng.tile.events.TileEventType; import appeng.tile.events.TileEventType;
import appeng.transformer.annotations.integration.Method;
import appeng.util.Platform; import appeng.util.Platform;
public class TileCableBus extends AEBaseTile implements AEMultiTile, ICustomCollision public class TileCableBus extends AEBaseTile implements AEMultiTile, ICustomCollision
@ -308,43 +305,6 @@ public class TileCableBus extends AEBaseTile implements AEMultiTile, ICustomColl
return cb.hasRedstone( side ); 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 @Override
public boolean isEmpty() public boolean isEmpty()
{ {