blob: 03b0c741b00bcef322e0cc7055d43ebbcc005dc4 [file] [log] [blame] [raw]
package mrtjp.projectred.api;
/**
* Interface implemented by face parts to connect to various types of wires.
*/
public interface IConnectable
{
/**
* Called to check whether a wire/logic part can connect to this. If a part
* returns true it is expected to immediately reflect the fact that it is
* now connected to wire.
*
* @param part The part asking for connection.
* @param r The clockwise rotation about the attached face to
* @return True to allow the wire connection.
*/
public boolean connectStraight(IConnectable part, int r);
/**
* Connect for internals. If r is -1 for a face part. Return true for a
* connection to the center part of the block.
*/
public boolean connectInternal(IConnectable part, int r);
/**
* Connect for corners
*/
public boolean connectCorner(IConnectable part, int r);
/**
* @return True if this part can reach around a corner to another part.
*/
public boolean canConnectCorner(int r);
}