package ttftcuts.physis.common.compat.baubles; import java.util.List; import baubles.api.BaublesApi; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; import net.minecraftforge.oredict.OreDictionary; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLLoadCompleteEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.registry.GameRegistry; import ttftcuts.physis.common.artifact.LootSystem; import ttftcuts.physis.common.compat.CompatModule; import ttftcuts.physis.common.handler.ArtifactEventHandler; import ttftcuts.physis.common.item.material.PhysisToolMaterial; public class CompatBaubles extends CompatModule { public static Item ring; @Override public void preInitEnd(FMLPreInitializationEvent event, boolean client) { if (!client) { MinecraftForge.EVENT_BUS.register(this); ring = new ItemMaterialRing(); GameRegistry.registerItem(ring, "baubleRing"); } } @Override public void initEnd(FMLInitializationEvent event, boolean client) { LootSystem.digSiteLootList.addItemStackChestGen(new ItemStack(ring), 1, 1, 600, 0.3); } @Override public void loadFinished(FMLLoadCompleteEvent event, boolean client) { if (!client) { for (PhysisToolMaterial mat : PhysisToolMaterial.materials.values()) { if (mat.orename.startsWith("ingot")) { List<ItemStack> ingots = OreDictionary.getOres(mat.orename); if (ingots.size() > 0) { ItemStack ingot = ingots.get(0); ItemStack ringitem = new ItemStack(ring, 1, mat.id); PhysisToolMaterial.writeMaterialToStack(mat, ringitem); GameRegistry.addSmelting(ringitem, ingot.copy(), 1.0F); } } } } } @SubscribeEvent public void onLivingUpdate(LivingUpdateEvent event) { if (event.entityLiving.worldObj.isRemote) {return;} if (event.entityLiving instanceof EntityPlayer) { EntityPlayer player = (EntityPlayer)(event.entityLiving); IInventory baubles = BaublesApi.getBaubles(player); for (int i=0; i<baubles.getSizeInventory(); i++) { ItemStack stack = baubles.getStackInSlot(i); if (stack != null) { ArtifactEventHandler.doTriggerUpdate(stack, player); ArtifactEventHandler.doTriggerEquippedUpdate(stack, player); } } } } }