package choonster.testmod3.item;
import choonster.testmod3.api.capability.chunkenergy.IChunkEnergy;
import choonster.testmod3.capability.chunkenergy.CapabilityChunkEnergy;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ActionResult;
import net.minecraft.util.EnumActionResult;
import net.minecraft.util.EnumHand;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.ChunkPos;
import net.minecraft.util.text.TextComponentTranslation;
import net.minecraft.world.World;
import net.minecraft.world.chunk.Chunk;
/**
* An item that tells the player how much energy is stored in their current chunk's {@link IChunkEnergy}.
*
* @author Choonster
*/
public class ItemChunkEnergyGetter extends ItemTestMod3 {
public ItemChunkEnergyGetter() {
super("chunk_energy_getter");
}
@Override
public ActionResult<ItemStack> onItemRightClick(World worldIn, EntityPlayer playerIn, EnumHand handIn) {
if (!worldIn.isRemote) {
final Chunk chunk = worldIn.getChunkFromBlockCoords(new BlockPos(playerIn));
final ChunkPos chunkPos = chunk.getPos();
final IChunkEnergy chunkEnergy = CapabilityChunkEnergy.getChunkEnergy(worldIn, chunkPos);
if (chunkEnergy != null) {
playerIn.sendMessage(new TextComponentTranslation("message.testmod3:chunk_energy.get", chunkPos, chunkEnergy.getEnergyStored()));
} else {
playerIn.sendMessage(new TextComponentTranslation("message.testmod3:chunk_energy.not_found", chunkPos));
}
}
return new ActionResult<>(EnumActionResult.SUCCESS, playerIn.getHeldItem(handIn));
}
}