2013-08-27 00:49:32 +02:00
|
|
|
package mekanism.common.item;
|
2013-07-03 01:03:03 +02:00
|
|
|
|
2014-08-15 22:21:58 +02:00
|
|
|
import java.util.HashSet;
|
|
|
|
import java.util.Set;
|
|
|
|
|
|
|
|
import mekanism.api.Coord4D;
|
2013-07-03 01:03:03 +02:00
|
|
|
import mekanism.api.EnumColor;
|
2014-12-19 05:46:23 +01:00
|
|
|
import mekanism.api.IHeatTransfer;
|
2013-12-21 01:12:33 +01:00
|
|
|
import mekanism.api.transmitters.IGridTransmitter;
|
2014-08-15 22:21:58 +02:00
|
|
|
import mekanism.api.transmitters.ITransmitterNetwork;
|
2013-08-27 00:49:32 +02:00
|
|
|
import mekanism.api.transmitters.TransmitterNetworkRegistry;
|
|
|
|
import mekanism.common.Mekanism;
|
2014-09-03 20:00:03 +02:00
|
|
|
|
2013-07-03 01:03:03 +02:00
|
|
|
import net.minecraft.entity.player.EntityPlayer;
|
|
|
|
import net.minecraft.item.ItemStack;
|
|
|
|
import net.minecraft.tileentity.TileEntity;
|
2014-04-20 22:15:44 +02:00
|
|
|
import net.minecraft.util.ChatComponentText;
|
2013-07-03 01:03:03 +02:00
|
|
|
import net.minecraft.world.World;
|
2014-08-15 22:21:58 +02:00
|
|
|
import net.minecraftforge.common.util.ForgeDirection;
|
2013-07-03 01:03:03 +02:00
|
|
|
|
2013-08-25 03:22:45 +02:00
|
|
|
public class ItemNetworkReader extends ItemEnergized
|
2013-07-03 01:03:03 +02:00
|
|
|
{
|
|
|
|
public static double ENERGY_PER_USE = 400;
|
2014-03-08 02:00:25 +01:00
|
|
|
|
2014-04-20 22:15:44 +02:00
|
|
|
public ItemNetworkReader()
|
2014-03-08 02:00:25 +01:00
|
|
|
{
|
2014-04-20 22:15:44 +02:00
|
|
|
super(60000);
|
2014-03-08 02:00:25 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public boolean onItemUseFirst(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ)
|
|
|
|
{
|
|
|
|
if(!world.isRemote)
|
|
|
|
{
|
2014-04-20 05:34:19 +02:00
|
|
|
TileEntity tileEntity = world.getTileEntity(x, y, z);
|
2014-03-08 02:00:25 +01:00
|
|
|
|
2014-08-15 22:21:58 +02:00
|
|
|
if(getEnergy(stack) >= ENERGY_PER_USE)
|
2014-03-08 02:00:25 +01:00
|
|
|
{
|
2014-08-15 22:21:58 +02:00
|
|
|
if(tileEntity instanceof IGridTransmitter)
|
2014-03-08 02:00:25 +01:00
|
|
|
{
|
|
|
|
setEnergy(stack, getEnergy(stack)-ENERGY_PER_USE);
|
2014-08-15 22:21:58 +02:00
|
|
|
|
2014-03-08 02:00:25 +01:00
|
|
|
IGridTransmitter<?> transmitter = (IGridTransmitter<?>)tileEntity;
|
2014-08-15 22:21:58 +02:00
|
|
|
|
2014-04-20 22:15:44 +02:00
|
|
|
player.addChatMessage(new ChatComponentText(EnumColor.GREY + "------------- " + EnumColor.DARK_BLUE + "[Mekanism]" + EnumColor.GREY + " -------------"));
|
|
|
|
player.addChatMessage(new ChatComponentText(EnumColor.GREY + " *Transmitters: " + EnumColor.DARK_GREY + transmitter.getTransmitterNetwork().getSize()));
|
|
|
|
player.addChatMessage(new ChatComponentText(EnumColor.GREY + " *Acceptors: " + EnumColor.DARK_GREY + transmitter.getTransmitterNetwork().getAcceptorSize()));
|
2014-07-09 21:31:57 +02:00
|
|
|
player.addChatMessage(new ChatComponentText(EnumColor.GREY + " *Needed: " + EnumColor.DARK_GREY + transmitter.getTransmitterNetwork().getNeededInfo()));
|
|
|
|
player.addChatMessage(new ChatComponentText(EnumColor.GREY + " *Buffer: " + EnumColor.DARK_GREY + transmitter.getTransmitterNetwork().getStoredInfo()));
|
|
|
|
player.addChatMessage(new ChatComponentText(EnumColor.GREY + " *Throughput: " + EnumColor.DARK_GREY + transmitter.getTransmitterNetwork().getFlowInfo()));
|
|
|
|
player.addChatMessage(new ChatComponentText(EnumColor.GREY + " *Capacity: " + EnumColor.DARK_GREY + transmitter.getTransmitterNetwork().getCapacity()));
|
2014-12-19 05:46:23 +01:00
|
|
|
if(transmitter instanceof IHeatTransfer)
|
|
|
|
player.addChatMessage(new ChatComponentText(EnumColor.GREY + " *Temperature: " + EnumColor.DARK_GREY + ((IHeatTransfer)transmitter).getTemp() + "K above ambient"));
|
2014-04-20 22:15:44 +02:00
|
|
|
player.addChatMessage(new ChatComponentText(EnumColor.GREY + "------------- " + EnumColor.DARK_BLUE + "[=======]" + EnumColor.GREY + " -------------"));
|
2014-08-15 22:21:58 +02:00
|
|
|
|
|
|
|
return true;
|
|
|
|
}
|
2014-12-20 03:09:14 +01:00
|
|
|
else if(tileEntity instanceof IHeatTransfer)
|
|
|
|
{
|
|
|
|
player.addChatMessage(new ChatComponentText(EnumColor.GREY + "------------- " + EnumColor.DARK_BLUE + "[Mekanism]" + EnumColor.GREY + " -------------"));
|
|
|
|
player.addChatMessage(new ChatComponentText(EnumColor.GREY + " *Temperature: " + EnumColor.DARK_GREY + ((IHeatTransfer)tileEntity).getTemp() + "K above ambient"));
|
|
|
|
player.addChatMessage(new ChatComponentText(EnumColor.GREY + "------------- " + EnumColor.DARK_BLUE + "[=======]" + EnumColor.GREY + " -------------"));
|
|
|
|
|
|
|
|
return true;
|
|
|
|
}
|
2014-08-15 22:21:58 +02:00
|
|
|
else if(tileEntity != null)
|
|
|
|
{
|
|
|
|
setEnergy(stack, getEnergy(stack)-ENERGY_PER_USE);
|
|
|
|
|
|
|
|
Set<ITransmitterNetwork> iteratedNetworks = new HashSet<ITransmitterNetwork>();
|
|
|
|
|
|
|
|
for(ForgeDirection iterSide : ForgeDirection.VALID_DIRECTIONS)
|
|
|
|
{
|
|
|
|
Coord4D coord = Coord4D.get(tileEntity).getFromSide(iterSide);
|
|
|
|
|
|
|
|
if(coord.getTileEntity(world) instanceof IGridTransmitter)
|
|
|
|
{
|
|
|
|
IGridTransmitter<?> transmitter = (IGridTransmitter<?>)coord.getTileEntity(world);
|
|
|
|
|
|
|
|
if(transmitter.getTransmitterNetwork().possibleAcceptors.containsKey(coord.getFromSide(iterSide.getOpposite())) && !iteratedNetworks.contains(transmitter.getTransmitterNetwork()))
|
|
|
|
{
|
|
|
|
player.addChatMessage(new ChatComponentText(EnumColor.GREY + "------------- " + EnumColor.DARK_BLUE + "[" + transmitter.getTransmissionType().getName() + "]" + EnumColor.GREY + " -------------"));
|
|
|
|
player.addChatMessage(new ChatComponentText(EnumColor.GREY + " *Connected sides: " + EnumColor.DARK_GREY + transmitter.getTransmitterNetwork().acceptorDirections.get(coord.getFromSide(iterSide.getOpposite()))));
|
|
|
|
player.addChatMessage(new ChatComponentText(EnumColor.GREY + "------------- " + EnumColor.DARK_BLUE + "[=======]" + EnumColor.GREY + " -------------"));
|
|
|
|
|
|
|
|
iteratedNetworks.add(transmitter.getTransmitterNetwork());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return true;
|
2014-03-08 02:00:25 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if(player.isSneaking() && Mekanism.debug)
|
|
|
|
{
|
|
|
|
String[] strings = TransmitterNetworkRegistry.getInstance().toStrings();
|
2014-04-20 22:15:44 +02:00
|
|
|
player.addChatMessage(new ChatComponentText(EnumColor.GREY + "---------- " + EnumColor.DARK_BLUE + "[Mekanism Debug]" + EnumColor.GREY + " ----------"));
|
2014-03-08 02:00:25 +01:00
|
|
|
|
|
|
|
for(String s : strings)
|
|
|
|
{
|
2014-04-20 22:15:44 +02:00
|
|
|
player.addChatMessage(new ChatComponentText(EnumColor.DARK_GREY + s));
|
2014-03-08 02:00:25 +01:00
|
|
|
}
|
|
|
|
|
2014-04-20 22:15:44 +02:00
|
|
|
player.addChatMessage(new ChatComponentText(EnumColor.GREY + "------------- " + EnumColor.DARK_BLUE + "[=======]" + EnumColor.GREY + " -------------"));
|
2014-03-08 02:00:25 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public boolean canSend(ItemStack itemstack)
|
|
|
|
{
|
|
|
|
return false;
|
|
|
|
}
|
2013-07-03 01:03:03 +02:00
|
|
|
}
|