59 lines
2.2 KiB
Java
59 lines
2.2 KiB
Java
package WayofTime.bloodmagic.compat.waila.provider;
|
|
|
|
import WayofTime.bloodmagic.tile.TileMimic;
|
|
import mcp.mobius.waila.api.IWailaConfigHandler;
|
|
import mcp.mobius.waila.api.IWailaDataAccessor;
|
|
import mcp.mobius.waila.api.IWailaDataProvider;
|
|
import net.minecraft.entity.player.EntityPlayerMP;
|
|
import net.minecraft.item.Item;
|
|
import net.minecraft.item.ItemStack;
|
|
import net.minecraft.nbt.NBTTagCompound;
|
|
import net.minecraft.tileentity.TileEntity;
|
|
import net.minecraft.util.ResourceLocation;
|
|
import net.minecraft.util.math.BlockPos;
|
|
import net.minecraft.world.World;
|
|
import net.minecraftforge.fml.common.registry.ForgeRegistries;
|
|
|
|
import javax.annotation.Nonnull;
|
|
import java.util.List;
|
|
|
|
public class DataProviderMimic implements IWailaDataProvider {
|
|
|
|
public static final IWailaDataProvider INSTANCE = new DataProviderMimic();
|
|
|
|
@Nonnull
|
|
@Override
|
|
public ItemStack getWailaStack(IWailaDataAccessor accessor, IWailaConfigHandler config) {
|
|
if (accessor.getNBTData().hasKey("mimiced")) {
|
|
NBTTagCompound mimiced = accessor.getNBTData().getCompoundTag("mimiced");
|
|
Item item = ForgeRegistries.ITEMS.getValue(new ResourceLocation(mimiced.getString("id")));
|
|
int meta = mimiced.getInteger("data");
|
|
ItemStack ret = new ItemStack(item, 1, meta);
|
|
if (mimiced.hasKey("nbt"))
|
|
ret.setTagCompound(mimiced.getCompoundTag("nbt"));
|
|
|
|
return ret;
|
|
}
|
|
|
|
return ItemStack.EMPTY;
|
|
}
|
|
|
|
@Nonnull
|
|
@Override
|
|
public NBTTagCompound getNBTData(EntityPlayerMP player, TileEntity te, NBTTagCompound tag, World world, BlockPos pos) {
|
|
TileMimic mimic = (TileMimic) te;
|
|
ItemStack mimiced = mimic.getStackInSlot(0);
|
|
if (!mimiced.isEmpty()) {
|
|
NBTTagCompound item = new NBTTagCompound();
|
|
item.setString("id", mimiced.getItem().getRegistryName().toString());
|
|
item.setInteger("data", mimiced.getMetadata());
|
|
NBTTagCompound shareTag = mimiced.getItem().getNBTShareTag(mimiced);
|
|
if (shareTag != null)
|
|
item.setTag("nbt", shareTag);
|
|
|
|
tag.setTag("mimiced", item);
|
|
}
|
|
return tag;
|
|
}
|
|
}
|