package me.exz.omniocular.handler; import mcp.mobius.waila.api.IWailaConfigHandler; import mcp.mobius.waila.api.IWailaDataAccessor; import mcp.mobius.waila.api.IWailaDataProvider; import mcp.mobius.waila.api.IWailaRegistrar; import me.exz.omniocular.util.ListHelper; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import java.util.List; public class TileEntityHandler implements IWailaDataProvider { @SuppressWarnings("UnusedDeclaration") public static void callbackRegister(IWailaRegistrar registrar) { TileEntityHandler instance = new TileEntityHandler(); registrar.registerBodyProvider(instance, Block.class); registrar.registerNBTProvider(instance, Block.class); // for (Object o : TileEntity.nameToClassMap.entrySet()) { // Map.Entry entry = (Map.Entry) o; // String key = (String) entry.getKey(); // Boolean isBlackListed = false; // for (String blackItem : Reference.blackList) { // if (key.equals(blackItem)) { // isBlackListed = true; // break; // } // } // if (!isBlackListed) { // registrar.registerBodyProvider(instance, (Class) entry.getValue()); // registrar.registerNBTProvider(instance, (Class) entry.getValue()); // } // } } @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 currenttip; } //TODO workaround for drops / support drops @Override public List<String> getWailaBody(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) { NBTTagCompound n = accessor.getNBTData(); if (n != null) { List<String> tips = JSHandler.getBody(ConfigHandler.tileEntityPattern, n, n.getString("id"), accessor.getPlayer()); for (String tip : tips) { ListHelper.AddToList(currenttip, tip); } } return currenttip; } @Override public List<String> getWailaTail(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) { return currenttip; } @Override public NBTTagCompound getNBTData(EntityPlayerMP player, TileEntity te, NBTTagCompound tag, World world, int x, int y, int z) { if (te != null) te.writeToNBT(tag); return tag; } }