Fixed slanted belt network connections

This commit is contained in:
DarkGuardsman 2013-07-05 22:32:47 -04:00
parent 4f4225d6f8
commit b0b7ae3c06
3 changed files with 41 additions and 7 deletions

View file

@ -49,7 +49,7 @@ public class NetworkAssembly extends NetworkPowerTiles
{
if (part instanceof TileEntityAssembly)
{
watt += ((TileEntityAssembly) part).getRequest(ForgeDirection.UNKNOWN);
watt += ((TileEntityAssembly) part).getRequest();
}
}
return watt;

View file

@ -13,15 +13,10 @@ import net.minecraft.network.packet.Packet;
import net.minecraft.network.packet.Packet250CustomPayload;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.ForgeDirection;
import universalelectricity.core.block.IConductor;
import universalelectricity.core.electricity.ElectricityNetworkHelper;
import universalelectricity.core.electricity.ElectricityPack;
import universalelectricity.core.vector.Vector3;
import universalelectricity.prefab.network.IPacketReceiver;
import universalelectricity.prefab.network.PacketManager;
import universalelectricity.prefab.tile.TileEntityElectrical;
import assemblyline.common.AssemblyLine;
import buildcraft.api.power.IPowerReceptor;
import com.google.common.io.ByteArrayDataInput;
@ -41,7 +36,7 @@ public abstract class TileEntityAssembly extends TileEntityRunnableMachine imple
/** Network used to link assembly machines together */
private NetworkAssembly assemblyNetwork;
/** Tiles that are connected to this */
private List<TileEntity> connectedTiles = new ArrayList<TileEntity>();
public List<TileEntity> connectedTiles = new ArrayList<TileEntity>();
/** Random instance */
public Random random = new Random();
/** percent tick rate this tile will update at */

View file

@ -242,4 +242,43 @@ public class TileEntityConveyorBelt extends TileEntityAssembly implements IPacke
{
return direction == ForgeDirection.DOWN;
}
@Override
public void updateNetworkConnections()
{
super.updateNetworkConnections();
if (this.worldObj != null && !this.worldObj.isRemote)
{
Vector3 face = new Vector3(this).modifyPositionFromSide(this.getDirection());
Vector3 back = new Vector3(this).modifyPositionFromSide(this.getDirection().getOpposite());
TileEntity front, rear;
if (this.slantType == SlantType.DOWN)
{
face.add(new Vector3(0, -1, 0));
back.add(new Vector3(0, 1, 0));
}
else if (this.slantType == SlantType.UP)
{
face.add(new Vector3(0, 1, 0));
back.add(new Vector3(0, -1, 0));
}
else
{
return;
}
front = face.getTileEntity(this.worldObj);
rear = back.getTileEntity(this.worldObj);
if (front instanceof TileEntityAssembly)
{
this.getTileNetwork().merge(((TileEntityAssembly) front).getTileNetwork(), this);
this.connectedTiles.add(front);
}
if (rear instanceof TileEntityAssembly)
{
this.getTileNetwork().merge(((TileEntityAssembly) rear).getTileNetwork(), this);
this.connectedTiles.add(rear);
}
}
}
}