Abstracted code to use interfaces rather then implementation

This commit is contained in:
tgame14 2014-04-16 15:53:58 +03:00
parent 39f144412c
commit ced9a4dcbf
4 changed files with 8 additions and 6 deletions

View file

@ -2,12 +2,13 @@ package resonantinduction.electrical.itemrailing;
import calclavia.lib.grid.Grid; import calclavia.lib.grid.Grid;
import calclavia.lib.grid.Node; import calclavia.lib.grid.Node;
import resonantinduction.electrical.itemrailing.interfaces.IItemRailing;
/** /**
* @since 18/03/14 * @since 18/03/14
* @author tgame14 * @author tgame14
*/ */
public class NodeRailing extends Node<PartRailing, GridRailing, NodeRailing> public class NodeRailing extends Node<IItemRailing, GridRailing, NodeRailing>
{ {
public NodeRailing (PartRailing parent) public NodeRailing (PartRailing parent)
{ {

View file

@ -25,7 +25,7 @@ import java.lang.reflect.InvocationTargetException;
* @since 16/03/14 * @since 16/03/14
* @author tgame14 * @author tgame14
*/ */
public class PartRailing extends PartFramedConnection<PartRailing.EnumRailing, IConductor, IEnergyNetwork> implements IConductor, TSlottedPart, JNormalOcclusion, IHollowConnect, IItemRailing, INodeProvider public class PartRailing extends PartFramedConnection<PartRailing.EnumRailing, IConductor, IEnergyNetwork> implements IConductor, TSlottedPart, JNormalOcclusion, IHollowConnect, IItemRailing
{ {
public enum EnumRailing public enum EnumRailing

View file

@ -1,5 +1,6 @@
package resonantinduction.electrical.itemrailing.interfaces; package resonantinduction.electrical.itemrailing.interfaces;
import calclavia.lib.grid.INodeProvider;
import calclavia.lib.render.EnumColor; import calclavia.lib.render.EnumColor;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.ForgeDirection; import net.minecraftforge.common.ForgeDirection;
@ -10,7 +11,7 @@ import net.minecraftforge.common.ForgeDirection;
* @since 16/03/14 * @since 16/03/14
* @author tgame14 * @author tgame14
*/ */
public interface IItemRailing public interface IItemRailing extends INodeProvider
{ {
public boolean canItemEnter (IItemRailingTransfer item); public boolean canItemEnter (IItemRailingTransfer item);

View file

@ -5,7 +5,7 @@ import resonantinduction.electrical.itemrailing.PartRailing;
import calclavia.lib.render.EnumColor; import calclavia.lib.render.EnumColor;
/** /**
* the object that handles the items that flow through Railings * the object that functions as a Wrapper for items and handles the items that flow through Railings
* *
* @since 16/03/14 * @since 16/03/14
* @author tgame14 * @author tgame14
@ -18,9 +18,9 @@ public interface IItemRailingTransfer
public IItemRailingTransfer setColor(EnumColor color); public IItemRailingTransfer setColor(EnumColor color);
public PartRailing getRailing(); public IItemRailing getRailing();
public IItemRailingTransfer setRailing(PartRailing railing); public IItemRailingTransfer setRailing(IItemRailing railing);
public IItemRailing getEndGoal(); public IItemRailing getEndGoal();