Add TE support to Universal Cables, implemented Mechanical Pipe suck mode

This commit is contained in:
Aidan Brady 2013-12-13 00:16:06 -05:00
parent cb69ff842e
commit 705b2b4528
3 changed files with 38 additions and 4 deletions

View file

@ -20,9 +20,12 @@ public class MultipartMekanism implements IPartFactory, IPartConverter
public void init()
{
MultiPartRegistry.registerConverter(this);
MultiPartRegistry.registerParts(this, new String[]{"mekanism:universal_cable", "mekanism:mechanical_pipe", "mekanism:pressurized_tube", "mekanism:logistical_transporter"});
MultiPartRegistry.registerParts(this, new String[] {"mekanism:universal_cable", "mekanism:mechanical_pipe", "mekanism:pressurized_tube", "mekanism:logistical_transporter"});
MultipartGenerator.registerPassThroughInterface("mekanism.api.transmitters.ITransmitter");
MultipartGenerator.registerPassThroughInterface("ic2.api.energy.tile.IEnergySink");
MultipartGenerator.registerPassThroughInterface("cofh.api.energy.IEnergyHandler");
MultipartGenerator.registerPassThroughInterface("mekanism.common.IConfigurable");
MultipartGenerator.registerPassThroughInterface("mekanism.common.ITileNetwork");
}
@Override

View file

@ -1,5 +1,6 @@
package mekanism.common.multipart;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Set;
@ -9,8 +10,12 @@ import mekanism.api.transmitters.TransmissionType;
import mekanism.client.render.PartTransmitterIcons;
import mekanism.client.render.RenderPartTransmitter;
import mekanism.common.FluidNetwork;
import mekanism.common.PacketHandler;
import mekanism.common.PipeUtils;
import mekanism.common.PacketHandler.Transmission;
import mekanism.common.network.PacketTileEntity;
import net.minecraft.client.renderer.texture.IconRegister;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.Icon;
import net.minecraftforge.common.ForgeDirection;
@ -145,11 +150,12 @@ public class PartMechanicalPipe extends PartTransmitter<FluidNetwork> implements
if(received != null && received.amount != 0)
{
container.drain(side, getTransmitterNetwork().emit(received, true, Object3D.get(tile()).getFromSide(side).getTileEntity(world())), true);
container.drain(side.getOpposite(), getTransmitterNetwork().emit(received, true, Object3D.get(tile()).getFromSide(side).getTileEntity(world())), true);
}
}
}
}
super.update();
}
}
@ -177,4 +183,14 @@ public class PartMechanicalPipe extends PartTransmitter<FluidNetwork> implements
{
return getTransmitterNetwork().getFlow();
}
@Override
public boolean onSneakRightClick(EntityPlayer player, int side)
{
isActive = !isActive;
refreshTransmitterNetwork();
sendDesc = true;
return true;
}
}

View file

@ -13,6 +13,7 @@ import mekanism.api.transmitters.TransmissionType;
import mekanism.api.transmitters.TransmissionType.Size;
import mekanism.api.transmitters.TransmitterNetworkRegistry;
import mekanism.client.render.RenderPartTransmitter;
import mekanism.common.IConfigurable;
import mekanism.common.ITileNetwork;
import mekanism.common.Mekanism;
import mekanism.common.item.ItemConfigurator;
@ -45,7 +46,7 @@ import com.google.common.io.ByteArrayDataInput;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public abstract class PartTransmitter<N extends DynamicNetwork<?, N>> extends TMultiPart implements TSlottedPart, JNormalOcclusion, IHollowConnect, JIconHitEffects, ITransmitter<N>, ITileNetwork
public abstract class PartTransmitter<N extends DynamicNetwork<?, N>> extends TMultiPart implements TSlottedPart, JNormalOcclusion, IHollowConnect, JIconHitEffects, ITransmitter<N>, ITileNetwork, IConfigurable
{
public int delayTicks;
@ -170,6 +171,7 @@ public abstract class PartTransmitter<N extends DynamicNetwork<?, N>> extends TM
}
}
}
return connections;
}
@ -236,7 +238,7 @@ public abstract class PartTransmitter<N extends DynamicNetwork<?, N>> extends TM
currentTransmitterConnections = possibleTransmitters;
currentAcceptorConnections = possibleAcceptors;
sendDesc = true;;
sendDesc = true;
}
}
@ -569,4 +571,17 @@ public abstract class PartTransmitter<N extends DynamicNetwork<?, N>> extends TM
{
return data;
}
@Override
public boolean onSneakRightClick(EntityPlayer player, int side)
{
return false;
}
@Override
public boolean onRightClick(EntityPlayer player, int side)
{
fixTransmitterNetwork();
return true;
}
}