Search in sources :

Example 71 with IIcon

use of net.minecraft.util.IIcon in project ArsMagica2 by Mithion.

the class AMBeam method renderParticle.

@Override
public void renderParticle(Tessellator tessellator, float par2, float par3, float par4, float par5, float par6, float par7) {
    tessellator.draw();
    GL11.glPushMatrix();
    float scaleFactor = 1.0F;
    float slide = this.worldObj.getTotalWorldTime();
    float rot = this.worldObj.provider.getWorldTime() % (360 / this.rotateSpeed) * this.rotateSpeed + this.rotateSpeed * par2;
    float size = (float) this.particleAge / (float) this.maxLengthAge;
    if (size > 1)
        size = 1;
    float op = 0.4F;
    float widthMod = 1.0f;
    IIcon beamIcon = null;
    switch(this.type) {
        default:
            beamIcon = AMParticleIcons.instance.getHiddenIconByName("beam");
            break;
        case 1:
            beamIcon = AMParticleIcons.instance.getHiddenIconByName("beam1");
            break;
        case 2:
            beamIcon = AMParticleIcons.instance.getHiddenIconByName("beam2");
    }
    GL11.glTexParameterf(3553, 10242, 10497.0F);
    GL11.glTexParameterf(3553, 10243, 10497.0F);
    float var11 = slide + par2;
    float var12 = -var11 * 0.2F - MathHelper.floor_float(-var11 * 0.1F);
    float xx = (float) (this.prevPosX + (this.posX - this.prevPosX) * par2 - interpPosX);
    float yy = (float) (this.prevPosY + (this.posY - this.prevPosY) * par2 - interpPosY);
    float zz = (float) (this.prevPosZ + (this.posZ - this.prevPosZ) * par2 - interpPosZ);
    GL11.glTranslated(xx, yy, zz);
    if (fppc) {
        widthMod = 0.3f;
    }
    float deltaYaw = Math.abs(this.yaw) - Math.abs(this.prevYaw);
    float ry = this.prevYaw + (deltaYaw) * par2;
    float rp = this.prevPitch + (this.pitch - this.prevPitch) * par2;
    GL11.glRotatef(90.0F, 1.0F, 0.0F, 0.0F);
    GL11.glRotatef(180.0F + ry, 0.0F, 0.0F, -1.0F);
    GL11.glRotatef(rp, 1.0F, 0.0F, 0.0F);
    double offset1 = (-0.15D * widthMod) * size;
    double offset2 = (0.15D * widthMod) * size;
    double offset3 = (-0.15D * widthMod) * size * this.endMod;
    double offset4 = (0.15D * widthMod) * size * this.endMod;
    GL11.glRotatef(rot, 0.0F, 1.0F, 0.0F);
    int i = 5;
    float inc = 36.0F;
    if (AMCore.config.LowGFX()) {
        i = 3;
        inc = 90;
    } else if (AMCore.config.NoGFX()) {
        i = 1;
        inc = 180;
    }
    for (int t = 0; t < i; t++) {
        double l = this.length * size * scaleFactor;
        double tl = beamIcon.getMinU();
        double br = beamIcon.getMaxU();
        // -1.0F + var12 + t / 3.0F;
        double mU = beamIcon.getMinV();
        // this.length * size * scaleFactor + mU;
        double mV = beamIcon.getMaxV();
        GL11.glRotatef(36.0F, 0.0F, 1.0F, 0.0F);
        tessellator.startDrawingQuads();
        tessellator.setBrightness(200);
        if (t % 2 == 0) {
            tessellator.setColorRGBA_F(this.particleRed, this.particleGreen, this.particleBlue, op);
        } else {
            tessellator.setColorRGBA_F(1.0f, 1.0f, 1.0f, 0.4f);
        }
        tessellator.addVertexWithUV(offset3, l, 0.0D, br, mV);
        tessellator.addVertexWithUV(offset1, 0.0D, 0.0D, br, mU);
        tessellator.addVertexWithUV(offset2, 0.0D, 0.0D, tl, mU);
        tessellator.addVertexWithUV(offset4, l, 0.0D, tl, mV);
        tessellator.draw();
    }
    GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
    GL11.glPopMatrix();
    tessellator.startDrawingQuads();
}
Also used : IIcon(net.minecraft.util.IIcon)

Example 72 with IIcon

use of net.minecraft.util.IIcon in project Armourers-Workshop by RiskyKen.

the class RenderItemEquipmentSkin method renderNomalIcon.

private void renderNomalIcon(ItemStack stack) {
    IIcon icon = stack.getItem().getIcon(stack, 0);
    renderItem.renderIcon(0, 0, icon, icon.getIconWidth(), icon.getIconHeight());
    if (stack.getItem().getRenderPasses(stack.getItemDamage()) > 1) {
        icon = stack.getItem().getIcon(stack, 1);
        renderItem.renderIcon(0, 0, icon, icon.getIconWidth(), icon.getIconHeight());
    }
}
Also used : IIcon(net.minecraft.util.IIcon)

Example 73 with IIcon

use of net.minecraft.util.IIcon in project Minechem by iopleke.

the class ElementItemRenderer method renderItem.

@Override
public void renderItem(ItemRenderType type, ItemStack itemstack, Object... data) {
    GL11.glDisable(GL11.GL_LIGHTING);
    GL11.glEnable(GL11.GL_ALPHA_TEST);
    GL11.glDisable(GL11.GL_BLEND);
    ElementItem item = (ElementItem) itemstack.getItem();
    IIcon testtube = itemstack.getIconIndex();
    IIcon contentsTex = null;
    ElementEnum element = ElementItem.getElement(itemstack);
    float duration = 1500;
    float t = (int) (Minecraft.getSystemTime() % duration);
    int frame = (int) MinechemUtil.translateValue(t, 0, duration, 0, 7);
    if (element.roomState() == ChemicalRoomStateEnum.gas) {
        contentsTex = item.gas[frame];
    } else if (element.roomState() == ChemicalRoomStateEnum.liquid) {
        contentsTex = item.liquid[frame];
    } else {
        contentsTex = item.solid;
    }
    switch(type) {
        case INVENTORY:
            renderItemInInventory(itemstack, element, testtube, contentsTex);
            break;
        case EQUIPPED_FIRST_PERSON:
        case EQUIPPED:
            renderItemInEquipped(itemstack, element, testtube, contentsTex);
            break;
        case ENTITY:
            EntityItem entityItem = (EntityItem) data[1];
            if (entityItem.worldObj == null) {
                float angle = (Minecraft.getSystemTime() % 8000L) / 8000.0F * 360.0F;
                GL11.glPushMatrix();
                GL11.glRotatef(angle, 0.0F, 1.0F, 0.0F);
                GL11.glTranslatef(-0.2F, -0.5F, 0.0F);
                renderItemAsEntity(itemstack, element, testtube, contentsTex);
                GL11.glPopMatrix();
            } else {
                renderItemAsEntity(itemstack, element, testtube, contentsTex);
            }
            break;
        default:
            break;
    }
}
Also used : IIcon(net.minecraft.util.IIcon) EntityItem(net.minecraft.entity.item.EntityItem)

Example 74 with IIcon

use of net.minecraft.util.IIcon in project Minechem by iopleke.

the class MinechemBucketRenderer method renderItem.

@Override
public void renderItem(ItemRenderType type, ItemStack itemstack, Object... data) {
    GL11.glDisable(GL11.GL_BLEND);
    GL11.glDisable(GL11.GL_LIGHTING);
    GL11.glEnable(GL11.GL_ALPHA_TEST);
    MinechemBucketItem item = (MinechemBucketItem) itemstack.getItem();
    Fluid fluid = item.fluid;
    IIcon bucket = item.icons[0];
    IIcon pass = item.icons[1];
    switch(type) {
        case ENTITY:
            EntityItem entityItem = (EntityItem) data[1];
            if (entityItem.worldObj == null) {
                float angle = (Minecraft.getSystemTime() % 8000L) / 8000.0F * 360.0F;
                GL11.glPushMatrix();
                GL11.glRotatef(angle, 0.0F, 1.0F, 0.0F);
                GL11.glTranslatef(-0.2F, -0.5F, 0.0F);
                renderItemAsEntity(bucket, pass, fluid);
                GL11.glPopMatrix();
            } else {
                renderItemAsEntity(bucket, pass, fluid);
            }
            break;
        case EQUIPPED_FIRST_PERSON:
        case EQUIPPED:
            Tessellator tessellator = Tessellator.instance;
            ItemRenderer.renderItemIn2D(tessellator, bucket.getMaxU(), bucket.getMinV(), bucket.getMinU(), bucket.getMaxV(), bucket.getIconWidth(), bucket.getIconHeight(), 0.0625F);
            colorFluid(fluid);
            ItemRenderer.renderItemIn2D(tessellator, pass.getMaxU(), pass.getMinV(), pass.getMinU(), pass.getMaxV(), pass.getIconWidth(), pass.getIconHeight(), 0.0625F);
            break;
        case INVENTORY:
            RenderingUtil.drawTexturedRectUV(type, 0, 0, 5, 16, 16, bucket);
            colorFluid(fluid);
            RenderingUtil.drawTexturedRectUV(type, 0, 0, 5, 16, 16, pass);
            break;
        default:
            break;
    }
}
Also used : Tessellator(net.minecraft.client.renderer.Tessellator) IIcon(net.minecraft.util.IIcon) Fluid(net.minecraftforge.fluids.Fluid) EntityItem(net.minecraft.entity.item.EntityItem)

Example 75 with IIcon

use of net.minecraft.util.IIcon in project Minechem by iopleke.

the class PolytoolInventoryRender method renderItem.

@Override
public void renderItem(ItemRenderType type, ItemStack item, Object... data) {
    GL11.glPushMatrix();
    ArrayList upgrades = PolytoolItem.getUpgrades(item);
    int count = 1;
    float red = 0F;
    float green = 0F;
    float blue = 0F;
    for (int i = 0; i < upgrades.size(); i++) {
        for (int j = 0; j < ((PolytoolUpgradeType) upgrades.get(i)).power; j++) {
            count++;
        }
    }
    for (int i = 0; i < upgrades.size(); i++) {
        for (int j = 0; j < ((PolytoolUpgradeType) upgrades.get(i)).power; j++) {
            ElementEnum element = ((PolytoolUpgradeType) upgrades.get(i)).getElement();
            red += (1 / count) * getRed(element);
            green += (1 / count) * getGreen(element);
            blue += (1 / count) * getBlue(element);
        }
    }
    GL11.glColor3f(red, green, blue);
    // Get icon index for the texture
    IIcon icon = item.getIconIndex();
    // Use vanilla code to render the icon in a 16x16 square of inventory slot
    renderItem.renderIcon(0, 0, icon, 16, 16);
    GL11.glPopMatrix();
}
Also used : ElementEnum(minechem.item.element.ElementEnum) IIcon(net.minecraft.util.IIcon) ArrayList(java.util.ArrayList)

Aggregations

IIcon (net.minecraft.util.IIcon)79 Tessellator (net.minecraft.client.renderer.Tessellator)19 SideOnly (cpw.mods.fml.relauncher.SideOnly)17 Vec3dCube (uk.co.qmunity.lib.vec.Vec3dCube)11 ItemStack (net.minecraft.item.ItemStack)6 EntityItem (net.minecraft.entity.item.EntityItem)5 Fluid (net.minecraftforge.fluids.Fluid)5 Rotation (uk.co.qmunity.lib.transform.Rotation)5 ForgeDirection (net.minecraftforge.common.util.ForgeDirection)4 AMVector2 (am2.api.math.AMVector2)3 Block (net.minecraft.block.Block)3 EntityDiggingFX (net.minecraft.client.particle.EntityDiggingFX)3 TubeColor (com.bluepowermod.api.tube.IPneumaticTube.TubeColor)2 IExplosiveHandler (com.builtbroken.mc.api.explosive.IExplosiveHandler)2 ITexturedExplosiveHandler (com.builtbroken.mc.api.explosive.ITexturedExplosiveHandler)2 IExplosiveContainerItem (com.builtbroken.mc.api.items.explosives.IExplosiveContainerItem)2 ItemStackWrapper (com.builtbroken.mc.prefab.items.ItemStackWrapper)2 ResourceLocation (net.minecraft.util.ResourceLocation)2 FluidStack (net.minecraftforge.fluids.FluidStack)2 DoubleCoordinates (network.rs485.logisticspipes.world.DoubleCoordinates)2