BloodMagic/src/main/java/WayofTime/bloodmagic/compat/waila/provider/DataProviderMimic.java
Nicholas Ignoffo 03fece58fa Rewrite Hwyla integration
Now properly makes use of the API
2018-02-08 19:01:12 -08:00

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;
}
}