package pixlepix.auracascade.potions; import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.entity.EntityLivingBase; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; import net.minecraft.util.math.AxisAlignedBB; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; import pixlepix.auracascade.data.EnumRainbowColor; import pixlepix.auracascade.item.ItemAngelsteelSword; import java.util.List; import java.util.Random; /** * Created by localmacaccount on 1/19/15. */ public class PotionVioletCurse extends Potion { public PotionVioletCurse() { super(true, EnumRainbowColor.VIOLET.color.getHex()); setPotionName("Violet Curse"); } @Override public boolean isReady(int p_76397_1_, int p_76397_2_) { return new Random().nextInt(60) == 0; } @Override @SideOnly(Side.CLIENT) public void renderInventoryEffect(int x, int y, PotionEffect effect, net.minecraft.client.Minecraft mc) { mc.renderEngine.bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE); mc.getRenderItem().renderItemIntoGUI(ItemAngelsteelSword.getStackFirstDegree(EnumRainbowColor.VIOLET), x + 8, y + 8); } @Override public void performEffect(EntityLivingBase entity, int amplifier) { List<EntityLivingBase> entities = entity.worldObj.getEntitiesWithinAABB(EntityLivingBase.class, new AxisAlignedBB(entity.posX - 15, entity.posY - 15, entity.posZ - 15, entity.posX + 15, entity.posY + 15, entity.posZ + 15)); EntityLivingBase entityLiving = entities.get(new Random().nextInt(entities.size())); if (entityLiving != entity) { //XOR, XOR, blah blah blah double tempX = entity.posX; double tempY = entity.posY; double tempZ = entity.posZ; entity.setPositionAndUpdate(entityLiving.posX, entityLiving.posY, entityLiving.posZ); entityLiving.setPositionAndUpdate(tempX, tempY, tempZ); } } }