diff --git a/common/mekanism/client/render/RenderPartTransmitter.java b/common/mekanism/client/render/RenderPartTransmitter.java index e39a6f298..1a847e7e5 100644 --- a/common/mekanism/client/render/RenderPartTransmitter.java +++ b/common/mekanism/client/render/RenderPartTransmitter.java @@ -131,6 +131,7 @@ public class RenderPartTransmitter implements IIconRegister public void renderContents(PartLogisticalTransporter transporter, float partialTick, Vector3 vec) { GL11.glPushMatrix(); + entityItem.age = 0; entityItem.hoverStart = 0; @@ -203,6 +204,8 @@ public class RenderPartTransmitter implements IIconRegister } } } + + GL11.glPopMatrix(); } public void renderContents(PartUniversalCable cable, Vector3 pos) @@ -472,6 +475,12 @@ public class RenderPartTransmitter implements IIconRegister { boolean connected = PartTransmitter.connectionMapContainsSide(transmitter.getAllCurrentConnections(), side); Icon renderIcon = transmitter.getIconForSide(side); + + if(transmitter.getRenderColor() != null) + { + GL11.glColor4f(transmitter.getRenderColor().getColor(0), transmitter.getRenderColor().getColor(1), transmitter.getRenderColor().getColor(2), 1.0F); + } + renderPart(renderIcon, transmitter.getModelForSide(side, false), transmitter.x(), transmitter.y(), transmitter.z()); } diff --git a/common/mekanism/common/multipart/PartDiversionTransporter.java b/common/mekanism/common/multipart/PartDiversionTransporter.java index 466c69a4a..8ab1ef340 100644 --- a/common/mekanism/common/multipart/PartDiversionTransporter.java +++ b/common/mekanism/common/multipart/PartDiversionTransporter.java @@ -15,6 +15,7 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.ChatMessageComponent; import net.minecraft.util.Icon; +import net.minecraftforge.common.ForgeDirection; public class PartDiversionTransporter extends PartLogisticalTransporter { @@ -38,6 +39,15 @@ public class PartDiversionTransporter extends PartLogisticalTransporter return transporterIcons.getCenterIcon(2); } + @Override + public boolean canConnect(ForgeDirection side) + { + testingSide = side; + boolean unblocked = tile().canReplacePart(this, this); + testingSide = null; + return unblocked; + } + @Override public void load(NBTTagCompound nbtTags) { @@ -98,7 +108,7 @@ public class PartDiversionTransporter extends PartLogisticalTransporter } @Override - public boolean onSneakRightClick(EntityPlayer player, int side) + protected boolean onConfigure(EntityPlayer player, int part, int side) { int newMode = (modes[side] + 1) % 3; String description = "ERROR"; diff --git a/common/mekanism/common/multipart/PartLogisticalTransporter.java b/common/mekanism/common/multipart/PartLogisticalTransporter.java index 4f81bda5c..f8cf65f13 100644 --- a/common/mekanism/common/multipart/PartLogisticalTransporter.java +++ b/common/mekanism/common/multipart/PartLogisticalTransporter.java @@ -28,7 +28,6 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.ChatMessageComponent; import net.minecraft.util.Icon; import net.minecraftforge.common.ForgeDirection; @@ -97,7 +96,7 @@ public class PartLogisticalTransporter extends PartSidedPipe implements ILogisti @Override public boolean isValidAcceptor(TileEntity tile, ForgeDirection side) { - return tile instanceof IInventory; + return TransporterUtils.getConnections(this)[side.ordinal()]; } @Override @@ -587,7 +586,7 @@ public class PartLogisticalTransporter extends PartSidedPipe implements ILogisti } @Override - public boolean onSneakRightClick(EntityPlayer player, int side) + protected boolean onConfigure(EntityPlayer player, int part, int side) { TransporterUtils.incrementColor(this); PacketHandler.sendPacket(Transmission.CLIENTS_RANGE, new PacketTileEntity().setParams(Coord4D.get(tile()), getNetworkedData(new ArrayList())), Coord4D.get(tile()), 50D); diff --git a/common/mekanism/common/multipart/PartSidedPipe.java b/common/mekanism/common/multipart/PartSidedPipe.java index 536764c5e..809a29804 100644 --- a/common/mekanism/common/multipart/PartSidedPipe.java +++ b/common/mekanism/common/multipart/PartSidedPipe.java @@ -8,6 +8,7 @@ import java.util.List; import java.util.Set; import mekanism.api.Coord4D; +import mekanism.api.EnumColor; import mekanism.api.transmitters.IBlockableConnection; import mekanism.api.transmitters.TransmissionType; import mekanism.client.render.RenderPartTransmitter; @@ -477,9 +478,20 @@ public abstract class PartSidedPipe extends TMultiPart implements TSlottedPart, return true; } - + else { + return onConfigure(player, side, hit.subHit); + } + } + + protected boolean onConfigure(EntityPlayer player, int part, int side) + { return false; } + + public EnumColor getRenderColor() + { + return null; + } @Override public boolean onRightClick(EntityPlayer player, int side) diff --git a/common/mekanism/common/multipart/TransmitterType.java b/common/mekanism/common/multipart/TransmitterType.java index 4b463d253..1ba96b78c 100644 --- a/common/mekanism/common/multipart/TransmitterType.java +++ b/common/mekanism/common/multipart/TransmitterType.java @@ -5,12 +5,12 @@ import mekanism.api.transmitters.TransmissionType; public enum TransmitterType { - UNIVERSAL_CABLE("UniversalCable", TransmissionType.ENERGY), - MECHANICAL_PIPE("MechanicalPipe", TransmissionType.FLUID), - PRESSURIZED_TUBE("PressurizedTube", TransmissionType.GAS), - LOGISTICAL_TRANSPORTER("LogisticalTransporter", TransmissionType.ITEM), - RESTRICTIVE_TRANSPORTER("RestrictiveTransporter", TransmissionType.ITEM), - DIVERSION_TRANSPORTER("DiversionTransporter", TransmissionType.ITEM); + UNIVERSAL_CABLE("UniversalCable", Size.SMALL, TransmissionType.ENERGY), + MECHANICAL_PIPE("MechanicalPipe", Size.LARGE, TransmissionType.FLUID), + PRESSURIZED_TUBE("PressurizedTube", Size.SMALL, TransmissionType.GAS), + LOGISTICAL_TRANSPORTER("LogisticalTransporter", Size.LARGE, TransmissionType.ITEM), + RESTRICTIVE_TRANSPORTER("RestrictiveTransporter", Size.LARGE, TransmissionType.ITEM), + DIVERSION_TRANSPORTER("DiversionTransporter", Size.LARGE, TransmissionType.ITEM); private String unlocalizedName; private Size size; @@ -18,9 +18,10 @@ public enum TransmitterType public static TransmitterType[] oldMetaArray = {PRESSURIZED_TUBE, UNIVERSAL_CABLE, MECHANICAL_PIPE, LOGISTICAL_TRANSPORTER, RESTRICTIVE_TRANSPORTER, DIVERSION_TRANSPORTER}; - private TransmitterType(String name, TransmissionType type) + private TransmitterType(String name, Size s, TransmissionType type) { unlocalizedName = name; + size = s; transmissionType = type; }