package buildcraftAdditions.compat.waila.module;
import java.util.List;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import buildcraftAdditions.api.recipe.duster.IDusterRecipe;
import buildcraftAdditions.compat.waila.CompatWaila;
import buildcraftAdditions.tileEntities.Bases.TileBaseDuster;
import buildcraftAdditions.utils.Utils;
import mcp.mobius.waila.api.IWailaConfigHandler;
import mcp.mobius.waila.api.IWailaDataAccessor;
import mcp.mobius.waila.api.IWailaDataProvider;
import mcp.mobius.waila.api.SpecialChars;
/**
* Copyright (c) 2014-2015, AEnterprise
* http://buildcraftadditions.wordpress.com/
* Buildcraft Additions is distributed under the terms of GNU GPL v3.0
* Please check the contents of the license located in
* http://buildcraftadditions.wordpress.com/wiki/licensing-stuff/
*/
public class DusterDataProvider implements IWailaDataProvider {
@Override
public ItemStack getWailaStack(IWailaDataAccessor accessor, IWailaConfigHandler config) {
return null;
}
@Override
public List<String> getWailaHead(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) {
return null;
}
@Override
public List<String> getWailaBody(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) {
if (accessor.getNBTData() != null && accessor.getTileEntity() != null && accessor.getTileEntity() instanceof TileBaseDuster) {
NBTTagCompound tag = accessor.getNBTData();
TileBaseDuster duster = (TileBaseDuster) accessor.getTileEntity();
ItemStack input = duster.getStackInSlot(0);
if (input != null && input.getItem() != null) {
IDusterRecipe recipe = duster.getRecipe();
if (recipe != null) {
ItemStack output = recipe.getOutput(input);
if (output != null && output.getItem() != null) {
if (config.getConfig(CompatWaila.GRAPHICAL_DUSTER_PROGRESS_CONFIG_KEY)) {
String s = "";
s += SpecialChars.getRenderString("waila.stack", input.getItem() instanceof ItemBlock ? "0" : "1", input.getItem() instanceof ItemBlock ? Block.blockRegistry.getNameForObject(((ItemBlock) input.getItem()).field_150939_a) : Item.itemRegistry.getNameForObject(input.getItem()), "" + input.stackSize, "" + input.getItemDamage());
s += SpecialChars.getRenderString("waila.progress", "" + tag.getInteger("progress"), "100");
s += SpecialChars.getRenderString("waila.stack", output.getItem() instanceof ItemBlock ? "0" : "1", output.getItem() instanceof ItemBlock ? Block.blockRegistry.getNameForObject(((ItemBlock) output.getItem()).field_150939_a) : Item.itemRegistry.getNameForObject(output.getItem()), "" + output.stackSize, "" + output.getItemDamage());
currenttip.add(s);
}
if (config.getConfig(CompatWaila.TEXTUAL_DUSTER_PROGRESS_CONFIG_KEY)) {
currenttip.add(Utils.localizeFormatted("waila.duster.recipe", input.getDisplayName(), output.getDisplayName()));
currenttip.add(Utils.localize("waila.duster.progress") + " : " + tag.getInteger("progress") + " %");
}
}
}
}
}
return currenttip;
}
@Override
public List<String> getWailaTail(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) {
return null;
}
@Override
public NBTTagCompound getNBTData(EntityPlayerMP player, TileEntity te, NBTTagCompound tag, World world, int x, int y, int z) {
if (te != null && te instanceof TileBaseDuster)
tag.setInteger("progress", (int) (((TileBaseDuster) te).getProgress() * 100));
return tag;
}
}