2013-01-21 02:15:59 +01:00
|
|
|
package mekanism.common;
|
|
|
|
|
|
|
|
import java.util.EnumSet;
|
|
|
|
|
|
|
|
import net.minecraft.entity.player.EntityPlayer;
|
|
|
|
import net.minecraft.item.ItemStack;
|
|
|
|
import cpw.mods.fml.common.ITickHandler;
|
|
|
|
import cpw.mods.fml.common.TickType;
|
|
|
|
|
2013-04-21 06:34:54 +02:00
|
|
|
public class CommonPlayerTickHandler implements ITickHandler
|
2013-01-21 02:15:59 +01:00
|
|
|
{
|
|
|
|
@Override
|
|
|
|
public void tickStart(EnumSet<TickType> type, Object... tickData)
|
|
|
|
{
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void tickEnd(EnumSet<TickType> type, Object... tickData)
|
|
|
|
{
|
|
|
|
if(tickData[0] instanceof EntityPlayer)
|
|
|
|
{
|
|
|
|
EntityPlayer player = (EntityPlayer)tickData[0];
|
|
|
|
if(player.getCurrentEquippedItem() != null && player.getCurrentEquippedItem().getItem() instanceof ItemPortableTeleporter)
|
|
|
|
{
|
|
|
|
ItemPortableTeleporter item = (ItemPortableTeleporter)player.getCurrentEquippedItem().getItem();
|
|
|
|
ItemStack itemstack = player.getCurrentEquippedItem();
|
|
|
|
|
|
|
|
Teleporter.Code teleCode = new Teleporter.Code(item.getDigit(itemstack, 0), item.getDigit(itemstack, 1), item.getDigit(itemstack, 2), item.getDigit(itemstack, 3));
|
|
|
|
|
|
|
|
if(Mekanism.teleporters.containsKey(teleCode))
|
|
|
|
{
|
2013-04-02 03:06:57 +02:00
|
|
|
if(Mekanism.teleporters.get(teleCode).size() > 0 && Mekanism.teleporters.get(teleCode).size() <= 2)
|
2013-01-21 02:15:59 +01:00
|
|
|
{
|
2013-04-02 03:06:57 +02:00
|
|
|
int energyNeeded = item.calculateEnergyCost(player, MekanismUtils.getClosestCoords(teleCode, player));
|
2013-01-21 02:15:59 +01:00
|
|
|
|
|
|
|
if(item.getJoules(itemstack) < energyNeeded)
|
|
|
|
{
|
|
|
|
if(item.getStatus(itemstack) != 2)
|
|
|
|
{
|
|
|
|
item.setStatus(itemstack, 2);
|
|
|
|
PacketHandler.sendStatusUpdate(player, 2);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
if(item.getStatus(itemstack) != 1)
|
|
|
|
{
|
|
|
|
item.setStatus(itemstack, 1);
|
|
|
|
PacketHandler.sendStatusUpdate(player, 1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return;
|
|
|
|
}
|
2013-04-02 03:06:57 +02:00
|
|
|
else if(Mekanism.teleporters.get(teleCode).size() > 2)
|
2013-01-21 02:15:59 +01:00
|
|
|
{
|
|
|
|
if(item.getStatus(itemstack) != 3)
|
|
|
|
{
|
|
|
|
item.setStatus(itemstack, 3);
|
|
|
|
PacketHandler.sendStatusUpdate(player, 3);
|
|
|
|
}
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
if(item.getStatus(itemstack) != 4)
|
|
|
|
{
|
|
|
|
item.setStatus(itemstack, 4);
|
|
|
|
PacketHandler.sendStatusUpdate(player, 4);
|
|
|
|
}
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
if(item.getStatus(itemstack) != 4)
|
|
|
|
{
|
|
|
|
item.setStatus(itemstack, 4);
|
|
|
|
PacketHandler.sendStatusUpdate(player, 4);
|
|
|
|
}
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public EnumSet<TickType> ticks()
|
|
|
|
{
|
|
|
|
return EnumSet.of(TickType.PLAYER);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public String getLabel()
|
|
|
|
{
|
2013-04-21 06:34:54 +02:00
|
|
|
return "MekanismCommonPlayer";
|
2013-01-21 02:15:59 +01:00
|
|
|
}
|
|
|
|
}
|