@@ -0,0 +1,1778 @@
+package me.deftware.client.framework.wrappers.render;%0A%0Aimport me.deftware.client.framework.utils.TexUtil;%0Aimport me.deftware.client.framework.wrappers.IResourceLocation;%0Aimport me.deftware.client.framework.wrappers.entity.IEntityPlayer;%0Aimport net.minecraft.client.Minecraft;%0Aimport net.minecraft.client.renderer.GlStateManager;%0Aimport net.minecraft.client.renderer.tileentity.TileEntityBeaconRenderer;%0Aimport net.minecraft.item.EnumDyeColor;%0A%0Apublic class IBeaconRenderer %7B%0A%0A    public static final IResourceLocation TEXTURE_BEACON_BEAM = new IResourceLocation(%22textures/entity/beacon_beam.png%22);%0A%0A    public static void renderBeamAt(double x, double y, double z, float r, float g, float b, int height, float partialTicks) %7B%0A        if (height %3C 1) %7B%0A            throw new IllegalArgumentException(%22Height cannot be less than 1%22);%0A        %7D%0A        GlStateManager.alphaFunc(516, 0.1F);%0A        TexUtil.bindTexture(TEXTURE_BEACON_BEAM);%0A        GlStateManager.disableFog();%0A        x -= (IEntityPlayer.getPrevPosX() + (IEntityPlayer.getPosX() - IEntityPlayer.getPrevPosX()) * (double)partialTicks);%0A        y -= (IEntityPlayer.getPrevPosY() + (IEntityPlayer.getPosY() - IEntityPlayer.getPrevPosY()) * (double)partialTicks);%0A        z -= (IEntityPlayer.getPrevPosZ() + (IEntityPlayer.getPosZ() - IEntityPlayer.getPrevPosZ()) * (double)partialTicks);%0A        TileEntityBeaconRenderer.renderBeamSegment(x, y, z, partialTicks, 1.0, Minecraft.getMinecraft().world.getWorldTime(), 0, height, new float%5B%5D%7Br, g, b%7D);%0A    %7D%0A%0A    public static void renderBeamAt(double x, double y, double z, int height, float partialTicks) %7B%0A        float%5B%5D white = EnumDyeColor.WHITE.getColorComponentValues();%0A        renderBeamAt(x, y, z, white%5B0%5D, white%5B1%5D, white%5B2%5D, height, partialTicks);%0A    %7D%0A%0A%7D%0A

Add methods to render beacon beams