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

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

Introduction

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

Prototype

public WorldRenderer getContext() 

Source Link

Usage

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  .c  o  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());
        }
    }
}