Example usage for net.minecraftforge.client.event RenderWorldLastEvent getPartialTicks

List of usage examples for net.minecraftforge.client.event RenderWorldLastEvent getPartialTicks

Introduction

In this page you can find the example usage for net.minecraftforge.client.event RenderWorldLastEvent getPartialTicks.

Prototype

public float getPartialTicks() 

Source Link

Usage

From source file:buildcraft.core.client.RenderTickListener.java

License:Mozilla Public License

@SubscribeEvent
public static void tick(RenderWorldLastEvent event) {
    float partialTicks = event.getPartialTicks();
    renderHeldItemInWorld(partialTicks);
}

From source file:buildcraft.lib.BCLibEventDist.java

License:Mozilla Public License

@SubscribeEvent
@SideOnly(Side.CLIENT)/*from  ww w  . j  av  a2  s. c om*/
public void renderWorldLast(RenderWorldLastEvent event) {
    Minecraft mc = Minecraft.getMinecraft();
    EntityPlayer player = mc.player;
    if (player == null)
        return;
    float partialTicks = event.getPartialTicks();

    DetatchedRenderer.INSTANCE.renderWorldLastEvent(player, partialTicks);
}

From source file:com.elytradev.thermionics.client.ClientProxy.java

License:Open Source License

@SubscribeEvent
public void onPostRender(RenderWorldLastEvent evt) {
    if (!Loader.isModLoaded("baubles"))
        return;/*from  w ww  . jav  a2  s  .  c  o  m*/

    EntityPlayer thePlayer = Minecraft.getMinecraft().player;

    for (EntityPlayer entity : Minecraft.getMinecraft().world.playerEntities) {
        IBaublesItemHandler baubles = BaublesApi.getBaublesHandler(entity);
        ItemStack scarfStack = baubles.getStackInSlot(BAUBLE_AMULET);
        if (scarfStack == null || scarfStack.isEmpty() || scarfStack.getItem() != ThermionicsItems.SCARF)
            return;
        Scarf scarf = scarfCache.getIfPresent(entity);
        if (scarf == null) {
            scarf = new Scarf();
            scarfCache.put(entity, scarf);
            scarf.readFromNBT(scarfStack.getTagCompound());
            //System.out.println("Created scarf:"+(scarf.leftScarf.size()+scarf.rightScarf.size())+" nodes.");
        } else {

            scarf.updateFromNBT(scarfStack.getTagCompound());
            //System.out.println("Updated scarf:"+(scarf.leftScarf.size()+scarf.rightScarf.size())+" nodes.");
        }

        double dx = thePlayer.prevPosX + (thePlayer.posX - thePlayer.prevPosX) * evt.getPartialTicks();
        double dy = thePlayer.prevPosY + (thePlayer.posY - thePlayer.prevPosY) * evt.getPartialTicks();
        double dz = thePlayer.prevPosZ + (thePlayer.posZ - thePlayer.prevPosZ) * evt.getPartialTicks();

        LayerScarf.renderScarf(dx, dy, dz, entity, null, scarf, evt.getPartialTicks(),
                Minecraft.getMinecraft().world);
    }
}

From source file:com.replaymod.pixelcam.renderer.PathVisualizer.java

License:Apache License

@SubscribeEvent
public void onRender(RenderWorldLastEvent event) {
    if (pathVisibility == PathVisibility.NONE || cameraPath.getPointCount() == 0
            || PixelCamMod.instance.camCommand.isTravelling())
        return;/*  ww  w.j a  v  a  2 s.c  o  m*/

    Entity entity = mc.getRenderViewEntity();

    float partial = event.getPartialTicks();

    double doubleX = entity.lastTickPosX + (entity.posX - entity.lastTickPosX) * partial;
    double doubleY = entity.lastTickPosY + (entity.posY - entity.lastTickPosY) * partial;
    double doubleZ = entity.lastTickPosZ + (entity.posZ - entity.lastTickPosZ) * partial;

    Position prev = null;

    GlStateManager.pushAttrib();

    GlStateManager.enableTexture2D();
    GlStateManager.enableBlend();

    GlStateManager.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);

    if (pathVisibility == PathVisibility.LINEAR || pathVisibility == PathVisibility.BOTH) {
        for (Position pos : cameraPath.getPoints()) {
            if (prev != null)
                drawConnection(doubleX, doubleY, doubleZ, prev, pos, Color.RED);
            prev = pos;
        }
    }

    if (pathVisibility == PathVisibility.SPLINE || pathVisibility == PathVisibility.BOTH) {
        Interpolation<Position> interpolation = cameraPath.getInterpolation(InterpolationType.SPLINE);

        prev = null;

        for (int i = 0; i < cameraPath.getPointCount(); i++) {
            //draw 100 connection lines between the two points
            for (int j = 0; j < 100; j++) {
                float k = (i / (float) cameraPath.getPointCount())
                        + (j / 100f * 1f / cameraPath.getPointCount());
                Position pos = new Position();

                interpolation.applyPoint(k, pos);

                if (prev != null)
                    drawConnection(doubleX, doubleY, doubleZ, prev, pos, Color.GREEN);

                prev = pos;
            }
        }
    }

    GlStateManager.blendFunc(GL11.GL_DST_COLOR, GL11.GL_SRC_COLOR);

    int index = 1;
    for (Position pos : cameraPath.getPoints()) {
        drawPoint(doubleX, doubleY, doubleZ, pos, index);
        index++;
    }

    GlStateManager.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);

    GlStateManager.disableBlend();

    GlStateManager.popAttrib();
}

From source file:com.teambrmodding.luxetumbra.events.RenderEvents.java

License:Creative Commons License

@SubscribeEvent
public void renderBlockEvent(RenderWorldLastEvent event) {
    PlayerControllerMP controllerMP = Minecraft.getMinecraft().playerController;
    EntityPlayer player = Minecraft.getMinecraft().thePlayer;
    World world = player.worldObj;// w  w  w .  j  a  v  a 2  s  .co  m
    List<BlockPos> blockList;
    EnumHand hand;

    //Check which hand if any is holding wand
    if (player.getHeldItemMainhand() != null
            && player.getHeldItemMainhand().isItemEqual(new ItemStack(ItemManager.exchanger)))
        hand = EnumHand.MAIN_HAND;
    else if (player.getHeldItemOffhand() != null
            && player.getHeldItemOffhand().isItemEqual(new ItemStack(ItemManager.exchanger)))
        hand = EnumHand.OFF_HAND;
    else
        return;

    //Display grid on blocks that will be changed
    RayTraceResult mop = player.rayTrace(controllerMP.getBlockReachDistance(), event.getPartialTicks());
    if (mop != null && !world.isAirBlock(mop.getBlockPos())) {
        int size = ((ItemExchanger) player.getHeldItem(hand).getItem()).getSize(player.getHeldItem(hand));
        blockList = BlockUtils.getBlockList(size, mop.sideHit, mop.getBlockPos(), world);
        ItemStack centerStack = new ItemStack(world.getBlockState(mop.getBlockPos()).getBlock(), 1,
                world.getBlockState(mop.getBlockPos()).getBlock()
                        .getMetaFromState(world.getBlockState(mop.getBlockPos())));
        for (BlockPos pos : blockList) {
            ItemStack stack = new ItemStack(world.getBlockState(pos).getBlock(), 1,
                    world.getBlockState(pos).getBlock().getMetaFromState(world.getBlockState(pos)));
            if (centerStack.isItemEqual(stack))
                event.getContext().drawSelectionBox(player, new RayTraceResult(new Vec3d(0, 0, 0), null, pos),
                        0, event.getPartialTicks());
        }
    }
}

From source file:de.sanandrew.mods.turretmod.client.event.RenderEventHandler.java

License:Creative Commons License

@SubscribeEvent
public void onRenderWorldLast(RenderWorldLastEvent event) {
    Minecraft mc = Minecraft.getMinecraft();
    Entity renderEntity = mc.getRenderViewEntity();

    if (renderEntity != null) {
        float partTicks = event.getPartialTicks();
        double renderX = renderEntity.lastTickPosX
                + (renderEntity.posX - renderEntity.lastTickPosX) * partTicks;
        double renderY = renderEntity.lastTickPosY
                + (renderEntity.posY - renderEntity.lastTickPosY) * partTicks;
        double renderZ = renderEntity.lastTickPosZ
                + (renderEntity.posZ - renderEntity.lastTickPosZ) * partTicks;

        RenderTurretPointed.INSTANCE.render(mc, renderX, renderY, renderZ, partTicks);
        RenderTurretLaser.render(mc, renderX, renderY, renderZ, partTicks);
    }//  ww  w.j av a2  s. co m
}

From source file:de.sanandrew.mods.turretmod.client.event.RenderForcefieldHandler.java

License:Creative Commons License

@SubscribeEvent(priority = EventPriority.HIGH)
public void onRenderWorldLast(RenderWorldLastEvent event) {
    Minecraft mc = Minecraft.getMinecraft();
    Entity renderEntity = mc.getRenderViewEntity();
    if (renderEntity == null) {
        return;//  ww  w .j  a v  a2 s .  c  o  m
    }

    final float partialTicks = event.getPartialTicks();
    double renderX = renderEntity.lastTickPosX + (renderEntity.posX - renderEntity.lastTickPosX) * partialTicks;
    double renderY = renderEntity.lastTickPosY + (renderEntity.posY - renderEntity.lastTickPosY) * partialTicks;
    double renderZ = renderEntity.lastTickPosZ + (renderEntity.posZ - renderEntity.lastTickPosZ) * partialTicks;

    List<ForcefieldCube> cubes = new ArrayList<>();

    int worldTicks = (int) (mc.world.getTotalWorldTime() % Integer.MAX_VALUE);

    Iterator<Map.Entry<Integer, Queue<IForcefieldProvider>>> it = this.fieldProviders.entrySet().iterator();
    while (it.hasNext()) {
        Map.Entry<Integer, Queue<IForcefieldProvider>> entry = it.next();
        Entity entity = mc.world.getEntityByID(entry.getKey());

        if (entity == null || entry.getValue().size() < 1) {
            it.remove();
            continue;
        }

        Iterator<IForcefieldProvider> itFF = entry.getValue().iterator();
        while (itFF.hasNext()) {
            IForcefieldProvider ffProvider = itFF.next();

            ColorObj color = new ColorObj(ffProvider.getShieldColor());

            double entityX = entity.lastTickPosX + (entity.posX - entity.lastTickPosX) * partialTicks;
            double entityY = entity.lastTickPosY + (entity.posY - entity.lastTickPosY) * partialTicks;
            double entityZ = entity.lastTickPosZ + (entity.posZ - entity.lastTickPosZ) * partialTicks;

            ForcefieldCube cube = new ForcefieldCube(
                    new Vec3d(entityX - renderX, entityY - renderY, entityZ - renderZ),
                    ffProvider.getShieldBoundingBox(), color);
            cube.fullRendered = ffProvider.renderFull();

            if (entity.isDead || !entity.isEntityAlive() || !ffProvider.isShieldActive()
                    || !mc.world.loadedEntityList.contains(entity)) {
                if (ffProvider.hasSmoothFadeOut()) {
                    this.fadeOutFields.add(cube);
                }
                itFF.remove();
            } else {
                if (TmrConfiguration.calcForcefieldIntf) {
                    for (ForcefieldCube intfCube : cubes) {
                        cube.interfere(intfCube, false);
                        intfCube.interfere(cube, true);
                    }
                }

                cubes.add(cube);
            }
        }
    }

    Iterator<ForcefieldCube> fadeOutIt = this.fadeOutFields.iterator();
    while (fadeOutIt.hasNext()) {
        ForcefieldCube shield = fadeOutIt.next();
        if (shield.boxColor.alpha() <= 0) {
            fadeOutIt.remove();
        } else {
            cubes.add(shield);

            shield.boxColor.setAlpha(shield.boxColor.alpha() - 3);
        }
    }

    Tessellator tess = Tessellator.getInstance();
    for (int pass = 1; pass <= 5; pass++) {
        float transformTexAmount = worldTicks % 400 + event.getPartialTicks();
        float texTranslateX = 0.0F;
        float texTranslateY = 0.0F;

        switch (pass) {
        case 1:
            texTranslateX = transformTexAmount * -0.01F;
            texTranslateY = transformTexAmount * 0.01F;
            mc.renderEngine.bindTexture(Resources.TURRET_FORCEFIELD_P1.getResource());
            break;
        case 2:
            texTranslateX = transformTexAmount * 0.005F;
            texTranslateY = transformTexAmount * 0.005F;
            mc.renderEngine.bindTexture(Resources.TURRET_FORCEFIELD_P2.getResource());
            break;
        case 3:
            texTranslateX = transformTexAmount * -0.005F;
            texTranslateY = transformTexAmount * 0.005F;
            mc.renderEngine.bindTexture(Resources.TURRET_FORCEFIELD_P1.getResource());
            break;
        case 4:
            texTranslateX = transformTexAmount * 0.0025F;
            texTranslateY = transformTexAmount * 0.0025F;
            mc.renderEngine.bindTexture(Resources.TURRET_FORCEFIELD_P2.getResource());
            break;
        case 5:
            texTranslateX = transformTexAmount * 0.00F;
            texTranslateY = transformTexAmount * 0.00F;
            mc.renderEngine.bindTexture(Resources.TURRET_FORCEFIELD_P3.getResource());
            break;
        }

        GlStateManager.matrixMode(GL11.GL_TEXTURE);
        GlStateManager.loadIdentity();
        GlStateManager.translate(texTranslateX, texTranslateY, 0.0F);
        GlStateManager.matrixMode(GL11.GL_MODELVIEW);

        GlStateManager.enableBlend();
        GlStateManager.blendFunc(GlStateManager.SourceFactor.CONSTANT_ALPHA,
                GlStateManager.DestFactor.ONE_MINUS_CONSTANT_ALPHA);

        for (ForcefieldCube cube : cubes) {
            tess.getBuffer().begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_TEX_COLOR);

            cube.draw(tess);

            GL14.glBlendColor(1.0f, 1.0f, 1.0f, cube.boxColor.fAlpha() * 0.5F);
            GlStateManager.depthMask(false);
            GlStateManager.disableCull();
            tess.draw();
            GlStateManager.enableCull();
            GlStateManager.depthMask(true);
            GL14.glBlendColor(1.0F, 1.0F, 1.0F, 1.0F);
        }

        GlStateManager.blendFunc(GlStateManager.SourceFactor.SRC_ALPHA,
                GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA);
        GlStateManager.disableBlend();

        GlStateManager.matrixMode(GL11.GL_TEXTURE);
        GL11.glLoadIdentity();
        GlStateManager.matrixMode(GL11.GL_MODELVIEW);
    }
}

From source file:hellfirepvp.astralsorcery.client.effect.EffectHandler.java

License:Open Source License

@SubscribeEvent(priority = EventPriority.LOW)
public void onRender(RenderWorldLastEvent event) {
    TESRPrismLens.renderColoredPrismsLast();
    float pTicks = event.getPartialTicks();
    acceptsNewParticles = false;/*  w  ww  .ja va  2  s.c om*/
    for (CompoundObjectEffect.ObjectGroup og : objects.keySet()) {
        og.prepareGLContext();
        for (CompoundObjectEffect effect : objects.get(og)) {
            effect.render(pTicks);
        }
        og.revertGLContext();
    }

    if (uiGateway != null) {
        if (renderGateway) {
            uiGateway.renderIntoWorld(pTicks);
        }
        if (ClientGatewayHandler.focusingEntry != null) {
            renderGatewayTarget(pTicks);
        }
    }
    EntityFXFacingParticle.renderFast(pTicks, fastRenderParticles);
    EffectLightning.renderFast(pTicks, fastRenderLightnings);

    Map<Integer, List<IComplexEffect>> layeredEffects = complexEffects
            .get(IComplexEffect.RenderTarget.RENDERLOOP);
    for (int i = 0; i <= 2; i++) {
        for (IComplexEffect effect : layeredEffects.get(i)) {
            GL11.glPushMatrix();
            GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS);
            effect.render(pTicks);
            GL11.glPopAttrib();
            GL11.glPopMatrix();
        }
    }
    acceptsNewParticles = true;
    TESRMapDrawingTable.renderRemainingGlasses(pTicks);
    TESRTranslucentBlock.renderTranslucentBlocks();
}

From source file:hellfirepvp.astralsorcery.client.event.ClientRenderEventHandler.java

License:Open Source License

@SubscribeEvent(priority = EventPriority.LOWEST)
@SideOnly(Side.CLIENT)//from  w  w w. j  ava  2 s .co m
public void onRender(RenderWorldLastEvent event) {
    World world = Minecraft.getMinecraft().world;
    if (((DataWorldSkyHandlers) SyncDataHolder.getDataClient(SyncDataHolder.DATA_SKY_HANDLERS))
            .hasWorldHandler(world) && world.provider.getDimension() != Config.dimensionIdSkyRift) {
        if (!(world.provider.getSkyRenderer() instanceof RenderSkybox)) {
            world.provider.setSkyRenderer(new RenderSkybox(world, world.provider.getSkyRenderer()));
        }
    }
    if (world.provider.getDimension() == Config.dimensionIdSkyRift) {
        if (!(world.provider.getSkyRenderer() instanceof RenderRiftSkybox)) {
            world.provider.setSkyRenderer(new RenderRiftSkybox());
        }
    }

    playHandAndHudRenders(Minecraft.getMinecraft().player.getHeldItem(EnumHand.MAIN_HAND), EnumHand.MAIN_HAND,
            event.getPartialTicks());
    playHandAndHudRenders(Minecraft.getMinecraft().player.getHeldItem(EnumHand.OFF_HAND), EnumHand.OFF_HAND,
            event.getPartialTicks());
}

From source file:vazkii.botania.client.core.handler.BlockHighlightRenderHandler.java

License:Open Source License

@SubscribeEvent
public static void onWorldRenderLast(RenderWorldLastEvent event) {
    Minecraft mc = Minecraft.getMinecraft();
    RayTraceResult pos = mc.objectMouseOver;

    GlStateManager.pushMatrix();//from ww w  .j  a  v a  2 s. co  m
    GlStateManager.disableTexture2D();
    GL11.glPushAttrib(GL11.GL_LIGHTING_BIT);
    GlStateManager.disableLighting();
    GlStateManager.enableBlend();
    GlStateManager.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);

    boundTile: {
        if (Botania.proxy.isClientPlayerWearingMonocle() && pos != null && pos.entityHit == null) {
            BlockPos bPos = pos.getBlockPos();

            ItemStack stackHeld = PlayerHelper.getFirstHeldItem(mc.thePlayer, ModItems.twigWand);
            if (stackHeld != null && ItemTwigWand.getBindMode(stackHeld)) {
                BlockPos coords = ItemTwigWand.getBoundTile(stackHeld);
                if (coords.getY() != -1)
                    bPos = coords;
            }

            TileEntity tile = mc.theWorld.getTileEntity(bPos);
            if (tile == null || !(tile instanceof ISubTileContainer))
                break boundTile;
            ISubTileContainer container = (ISubTileContainer) tile;
            SubTileEntity subtile = container.getSubTile();
            if (subtile == null)
                break boundTile;
            RadiusDescriptor descriptor = subtile.getRadius();
            if (descriptor == null)
                break boundTile;

            if (descriptor.isCircle())
                renderCircle(descriptor.getSubtileCoords(), descriptor.getCircleRadius());
            else
                renderRectangle(descriptor.getAABB(), true, null, (byte) 32);
        }
    }

    double offY = -1.0 / 16 + 0.005;
    for (Entity e : mc.theWorld.loadedEntityList)
        if (e instanceof EntityMagicLandmine) {
            BlockPos bpos = e.getPosition();
            AxisAlignedBB aabb = new AxisAlignedBB(bpos).offset(0, offY, 0).expand(2.5, 0, 2.5);

            float gs = (float) (Math.sin(ClientTickHandler.total / 20) + 1) * 0.2F + 0.6F;
            int r = (int) (105 * gs);
            int g = (int) (25 * gs);
            int b = (int) (145 * gs);
            Color color = new Color(r, g, b);

            int alpha = 32;
            if (e.ticksExisted < 8)
                alpha *= Math.min((e.ticksExisted + event.getPartialTicks()) / 8F, 1F);
            else if (e.ticksExisted > 47)
                alpha *= Math.min(1F - (e.ticksExisted - 47 + event.getPartialTicks()) / 8F, 1F);

            renderRectangle(aabb, false, color, (byte) alpha);
            offY += 0.001;
        }

    GlStateManager.enableTexture2D();
    GlStateManager.disableBlend();
    GL11.glPopAttrib();
    GlStateManager.popMatrix();
}