adjusting grid to fit the item transfer multistructure

This commit is contained in:
tgame14 2014-03-18 14:52:58 +02:00
parent 6690ebe8f4
commit a2003f87f5
3 changed files with 56 additions and 28 deletions

View file

@ -1,12 +1,12 @@
package resonantinduction.electrical.itemrailing;
import calclavia.lib.grid.Grid;
import calclavia.lib.grid.NodeGrid;
/**
* @since 18/03/14
* @author tgame14
*/
public class GridRailing extends Grid<PartRailing>
public class GridRailing extends NodeGrid<NodeRailing>
{
public GridRailing (Class type)
{

View file

@ -0,0 +1,23 @@
package resonantinduction.electrical.itemrailing;
import calclavia.lib.grid.Grid;
import calclavia.lib.grid.Node;
/**
* @since 18/03/14
* @author tgame14
*/
public class NodeRailing extends Node<PartRailing, GridRailing, NodeRailing>
{
public NodeRailing (PartRailing parent)
{
super(parent);
}
@Override
protected GridRailing newGrid ()
{
return new GridRailing(getClass());
}
}

View file

@ -1,6 +1,7 @@
package resonantinduction.electrical.itemrailing;
import calclavia.lib.grid.INode;
import calclavia.lib.grid.INodeProvider;
import calclavia.lib.render.EnumColor;
import codechicken.microblock.IHollowConnect;
import codechicken.multipart.JNormalOcclusion;
@ -16,20 +17,24 @@ import resonantinduction.electrical.itemrailing.interfaces.IItemRailingTransfer;
import universalelectricity.api.energy.IConductor;
import universalelectricity.api.energy.IEnergyNetwork;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
/**
* @since 16/03/14
* @author tgame14
*/
public class PartRailing extends PartFramedConnection<PartRailing.EnumRailing, IConductor, IEnergyNetwork> implements IConductor, TSlottedPart, JNormalOcclusion, IHollowConnect, IItemRailing, INode
public class PartRailing extends PartFramedConnection<PartRailing.EnumRailing, IConductor, IEnergyNetwork> implements IConductor, TSlottedPart, JNormalOcclusion, IHollowConnect, IItemRailing, INodeProvider
{
public enum EnumRailing
{
DEFAULT;
DEFAULT, EXTENTION, ;
}
// default is NULL
private EnumColor color;
private NodeRailing node;
public PartRailing ()
{
@ -39,6 +44,30 @@ public class PartRailing extends PartFramedConnection<PartRailing.EnumRailing, I
}
@Override
public <N extends INode> N getNode (Class<? super N> nodeType, ForgeDirection from)
{
if (nodeType.isInstance(this.node))
return (N) node;
try
{
for (Constructor con : nodeType.getConstructors())
{
if ((con.getParameterTypes().length == 1) && con.getParameterTypes()[0].equals(getClass()))
{
this.node = (NodeRailing) con.newInstance(this);
return (N) this.node;
}
}
}
catch (Exception e)
{
e.printStackTrace();
}
return null;
}
@Override
public boolean canItemEnter (IItemRailingTransfer item)
{
@ -70,30 +99,6 @@ public class PartRailing extends PartFramedConnection<PartRailing.EnumRailing, I
return super.getWorld();
}
@Override
public void reconstruct ()
{
}
@Override
public void deconstruct ()
{
}
@Override
public void recache ()
{
}
@Override
public void update (float deltaTime)
{
}
@Override
public float getResistance ()
{