mffs/src/main/java/mffs/item/card/ItemCardFrequency.java

96 lines
2.8 KiB
Java

package mffs.item.card;
import java.util.List;
import icbm.api.IItemFrequency;
import mffs.base.TileEntityFrequency;
import mffs.card.ItemCard;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ChatComponentText;
import net.minecraft.world.World;
public class ItemCardFrequency extends ItemCard implements IItemFrequency {
public ItemCardFrequency(final String name) {
super(name);
}
public ItemCardFrequency() {
this("cardFrequency");
}
@Override
public void addInformation(
final ItemStack itemStack,
final EntityPlayer par2EntityPlayer,
final List list,
final boolean par4
) {
list.add("Frequency: " + this.getFrequency(itemStack));
}
@Override
public int getFrequency(final ItemStack itemStack) {
if (itemStack != null) {
if (itemStack.getTagCompound() == null) {
itemStack.setTagCompound(new NBTTagCompound());
}
return itemStack.getTagCompound().getInteger("frequency");
}
return 0;
}
@Override
public void setFrequency(final int frequency, final ItemStack itemStack) {
if (itemStack != null) {
if (itemStack.getTagCompound() == null) {
itemStack.setTagCompound(new NBTTagCompound());
}
itemStack.getTagCompound().setInteger("frequency", frequency);
}
}
@Override
public ItemStack onItemRightClick(
final ItemStack itemStack, final World world, final EntityPlayer player
) {
if (!world.isRemote && player.isSneaking()) {
this.setFrequency(world.rand.nextInt(15), itemStack);
player.addChatMessage(new ChatComponentText(
"Generated random frequency: " + this.getFrequency(itemStack)
));
}
return itemStack;
}
@Override
public boolean onItemUse(
final ItemStack itemStack,
final EntityPlayer player,
final World world,
final int x,
final int y,
final int z,
final int side,
final float hitX,
final float hitY,
final float hitZ
) {
final TileEntity tileEntity = world.getTileEntity(x, y, z);
if (tileEntity instanceof TileEntityFrequency) {
if (!world.isRemote) {
((TileEntityFrequency) tileEntity)
.setFrequency(this.getFrequency(itemStack));
world.markBlockForUpdate(x, y, z);
player.addChatMessage(new ChatComponentText(
"Frequency set to: " + this.getFrequency(itemStack)
));
}
return true;
}
return false;
}
}