Search in sources :

Example 1 with GL11.glTexParameterf

use of org.lwjgl.opengl.GL11.glTexParameterf in project BuildCraft by BuildCraft.

the class AdvDebuggerQuarry method render.

@Override
public void render(EntityPlayer player, float partialTicks) {
    TileQuarry tile = tileReference.get();
    if (tile == null || !tile.frameBox.isInitialized()) {
        return;
    }
    List<ChunkPos> chunkPoses = new ArrayList<>(ChunkLoaderManager.getChunksToLoad(tile));
    chunkPoses.sort(Comparator.comparingDouble(chunkPos -> -player.getPositionEyes(partialTicks).distanceTo(new Vec3d(chunkPos.getXStart() + 0.5 + (chunkPos.getXEnd() - chunkPos.getXStart()) / 2, player.getPositionEyes(partialTicks).y, chunkPos.getZStart() + 0.5 + (chunkPos.getZEnd() - chunkPos.getZStart()) / 2))));
    GlStateManager.enableBlend();
    BufferBuilder bb = Tessellator.getInstance().getBuffer();
    bb.begin(GL11.GL_QUADS, DefaultVertexFormats.BLOCK);
    for (ChunkPos chunkPos : chunkPoses) {
        DebugRenderHelper.renderAABB(bb, new AxisAlignedBB(chunkPos.getXStart() + 0.5D, tile.frameBox.min().getY() + 0.5D, chunkPos.getZStart() + 0.5D, chunkPos.getXEnd() + 0.5D, tile.frameBox.max().getY() + 0.5D, chunkPos.getZEnd() + 0.5D), COLOUR_CHUNK);
    }
    Tessellator.getInstance().draw();
    GlStateManager.disableBlend();
}
Also used : DebugRenderHelper(buildcraft.lib.debug.DebugRenderHelper) BufferBuilder(net.minecraft.client.renderer.BufferBuilder) GlStateManager(net.minecraft.client.renderer.GlStateManager) AxisAlignedBB(net.minecraft.util.math.AxisAlignedBB) ChunkPos(net.minecraft.util.math.ChunkPos) ChunkLoaderManager(buildcraft.lib.chunkload.ChunkLoaderManager) DetachedRenderer(buildcraft.lib.client.render.DetachedRenderer) ArrayList(java.util.ArrayList) DefaultVertexFormats(net.minecraft.client.renderer.vertex.DefaultVertexFormats) List(java.util.List) Tessellator(net.minecraft.client.renderer.Tessellator) Vec3d(net.minecraft.util.math.Vec3d) TileQuarry(buildcraft.builders.tile.TileQuarry) EntityPlayer(net.minecraft.entity.player.EntityPlayer) GL11(org.lwjgl.opengl.GL11) WeakReference(java.lang.ref.WeakReference) Comparator(java.util.Comparator) AxisAlignedBB(net.minecraft.util.math.AxisAlignedBB) BufferBuilder(net.minecraft.client.renderer.BufferBuilder) ArrayList(java.util.ArrayList) ChunkPos(net.minecraft.util.math.ChunkPos) TileQuarry(buildcraft.builders.tile.TileQuarry) Vec3d(net.minecraft.util.math.Vec3d)

Example 2 with GL11.glTexParameterf

use of org.lwjgl.opengl.GL11.glTexParameterf in project LogisticsPipes by RS485.

the class GuiRequestTable method drawGuiContainerBackgroundLayer.

@Override
public void drawGuiContainerBackgroundLayer(float f, int i, int j) {
    for (GuiButton sycleButton : sycleButtons) {
        sycleButton.visible = _table.targetType != null;
    }
    GuiGraphics.drawGuiBackGround(mc, guiLeft, guiTop, right - (showRequest ? 0 : 105), bottom, zLevel, true);
    drawRect(guiLeft + 162, guiTop + 23, guiLeft + 182, guiTop + 43, Color.BLACK);
    drawRect(guiLeft + 164, guiTop + 25, guiLeft + 180, guiTop + 41, Color.DARKER_GREY);
    if (showRequest) {
        mc.fontRenderer.drawString(_title, guiLeft + 180 + mc.fontRenderer.getStringWidth(_title) / 2, guiTop + 6, 0x404040);
        itemDisplay.renderPageNumber(right - 47, guiTop + 6);
        if (buttonList.get(9) instanceof GuiCheckBox && ((GuiCheckBox) buttonList.get(9)).getState()) {
            mc.fontRenderer.drawString("Popup", guiLeft + 225, bottom - 56, 0x404040);
        } else {
            mc.fontRenderer.drawString("Popup", guiLeft + 225, bottom - 56, Color.getValue(Color.GREY));
        }
        itemDisplay.renderAmount(getStackAmount());
        // SearchInput
        search.drawTextBox();
        itemDisplay.renderSortMode(right - 103, bottom - 52);
        itemDisplay.renderItemArea(zLevel);
    }
    for (int x = 0; x < 9; x++) {
        for (int y = 0; y < 3; y++) {
            GuiGraphics.drawSlotBackground(mc, guiLeft + (x * 18) + 19, guiTop + (y * 18) + 79);
        }
    }
    for (int x = 0; x < 3; x++) {
        for (int y = 0; y < 3; y++) {
            GuiGraphics.drawSlotBackground(mc, guiLeft + (x * 18) + 19, guiTop + (y * 18) + 14);
        }
    }
    mc.fontRenderer.drawString("Sort:", guiLeft + 136, guiTop + 55, 0xffffff);
    GuiGraphics.drawSlotBackground(mc, guiLeft + 100, guiTop + 32);
    GuiGraphics.drawSlotBackground(mc, guiLeft + 163, guiTop + 50);
    drawRect(guiLeft + 75, guiTop + 38, guiLeft + 95, guiTop + 43, Color.DARKER_GREY);
    for (int a = 0; a < 10; a++) {
        drawRect(guiLeft + 97 - a, guiTop + 40 - a, guiLeft + 98 - a, guiTop + 41 + a, Color.DARKER_GREY);
    }
    for (int a = 0; a < 15; a++) {
        drawRect(guiLeft + 164 + a, guiTop + 51 + a, guiLeft + 166 + a, guiTop + 53 + a, Color.DARKER_GREY);
        drawRect(guiLeft + 164 + a, guiTop + 65 - a, guiLeft + 166 + a, guiTop + 67 - a, Color.DARKER_GREY);
    }
    GuiGraphics.drawPlayerInventoryBackground(mc, guiLeft + 20, guiTop + 150);
    for (final Entry<Integer, Pair<IResource, LinkedLogisticsOrderList>> entry : _table.watchedRequests.entrySet()) {
        if (!handledExtention.get(entry.getKey())) {
            handledExtention.set(entry.getKey());
            extentionControllerLeft.addExtention(new GuiExtention() {

                private Map<Pair<Integer, Integer>, IOrderInfoProvider> ordererPosition = new HashMap<>();

                private int height;

                private int width = 4;

                private GuiButton localControlledButton;

                @Override
                public void renderForground(int left, int top) {
                    if (!_table.watchedRequests.containsKey(entry.getKey())) {
                        extentionControllerLeft.removeExtention(this);
                        if (isFullyExtended() && localControlledButton != null) {
                            buttonList.remove(localControlledButton);
                            localControlledButton = null;
                            orderIdForButton = -1;
                        }
                        return;
                    }
                    ordererPosition.clear();
                    GL11.glEnable(GL12.GL_RESCALE_NORMAL);
                    OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240 / 1.0F, 240 / 1.0F);
                    GL11.glEnable(GL11.GL_LIGHTING);
                    GL11.glEnable(GL11.GL_DEPTH_TEST);
                    RenderHelper.enableGUIStandardItemLighting();
                    ItemStack stack;
                    IResource resource = entry.getValue().getValue1();
                    String s;
                    if (resource != null) {
                        stack = resource.getDisplayItem().makeNormalStack();
                        itemRender.renderItemAndEffectIntoGUI(stack, left + 5, top + 5);
                        itemRender.renderItemOverlayIntoGUI(mc.fontRenderer, stack, left + 5, top + 5, "");
                        s = TextUtil.getThreeDigitFormattedNumber(stack.getCount(), false);
                    } else {
                        s = "List";
                    }
                    GL11.glDisable(GL11.GL_LIGHTING);
                    GL11.glDisable(GL11.GL_DEPTH_TEST);
                    itemRender.zLevel = 0.0F;
                    // Draw number
                    mc.fontRenderer.drawStringWithShadow(s, left + 22 - mc.fontRenderer.getStringWidth(s), top + 14, 16777215);
                    if (isFullyExtended()) {
                        if (localControlledButton == null || orderIdForButton != entry.getKey()) {
                            if (localControlledButton != null) {
                                buttonList.remove(localControlledButton);
                            }
                            localControlledButton = new SmallGuiButton(100, guiLeft - 35, guiTop + 10, 30, 10, "more");
                            buttonList.add(localControlledButton);
                            orderIdForButton = entry.getKey();
                        }
                        List<IOrderInfoProvider> list = entry.getValue().getValue2().getList();
                        calculateSize(left, top, list);
                        String ident = String.format("ID: %d", entry.getKey());
                        mc.fontRenderer.drawStringWithShadow(ident, left + 25, top + 7, 16777215);
                        int x = left + 6;
                        int y = top + 25;
                        for (IOrderInfoProvider order : list) {
                            stack = order.getAsDisplayItem().makeNormalStack();
                            if (stack.getCount() <= 0) {
                                continue;
                            }
                            GL11.glEnable(GL11.GL_LIGHTING);
                            GL11.glEnable(GL11.GL_DEPTH_TEST);
                            RenderHelper.enableGUIStandardItemLighting();
                            itemRender.renderItemAndEffectIntoGUI(stack, x, y);
                            itemRender.renderItemOverlayIntoGUI(fontRenderer, stack, x, y, "");
                            s = TextUtil.getThreeDigitFormattedNumber(stack.getCount(), false);
                            GL11.glDisable(GL11.GL_LIGHTING);
                            GL11.glDisable(GL11.GL_DEPTH_TEST);
                            itemRender.zLevel = 0.0F;
                            // Draw number
                            mc.fontRenderer.drawStringWithShadow(s, x + 17 - mc.fontRenderer.getStringWidth(s), y + 9, 16777215);
                            ordererPosition.put(new Pair<>(x, y), order);
                            x += 18;
                            if (x > left + getFinalWidth() - 18) {
                                x = left + 6;
                                y += 18;
                            }
                        }
                    } else if (isExtending()) {
                        List<IOrderInfoProvider> list = entry.getValue().getValue2().getList();
                        calculateSize(left, top, list);
                    }
                    if (!isFullyExtended() && localControlledButton != null) {
                        buttonList.remove(localControlledButton);
                        localControlledButton = null;
                        orderIdForButton = -1;
                    }
                    RenderHelper.disableStandardItemLighting();
                }

                private void calculateSize(int left, int top, List<IOrderInfoProvider> list) {
                    int x = left + 6;
                    int y = 50;
                    int line = 1;
                    width = 4;
                    for (IOrderInfoProvider order : list) {
                        ItemStack stack = order.getAsDisplayItem().makeNormalStack();
                        if (stack.getCount() <= 0) {
                            continue;
                        }
                        if (line++ % (4 * 4) == 0) {
                            width++;
                        }
                    }
                    for (IOrderInfoProvider order : list) {
                        ItemStack stack = order.getAsDisplayItem().makeNormalStack();
                        if (stack.getCount() <= 0) {
                            continue;
                        }
                        x += 18;
                        if (x > left + getFinalWidth() - 18) {
                            x = left + 6;
                            y += 18;
                        }
                    }
                    height = y;
                    if (x == left + 6) {
                        height -= 18;
                    }
                }

                @Override
                public int getFinalWidth() {
                    return Math.max(85, width * 18 + 8);
                }

                @Override
                public int getFinalHeight() {
                    return Math.max(50, height);
                }

                @Override
                public void handleMouseOverAt(int xPos, int yPos) {
                    if (isFullyExtended()) {
                        ordererPosition.keySet().stream().filter(key -> xPos >= key.getValue1() && xPos < key.getValue1() + 18 && yPos >= key.getValue2() && yPos < key.getValue2() + 18).forEach(key -> {
                            IOrderInfoProvider order = ordererPosition.get(key);
                            List<String> list = new ArrayList<>();
                            list.add(ChatColor.BLUE + "Request Type: " + ChatColor.YELLOW + order.getType().name());
                            list.add(ChatColor.BLUE + "Send to Router ID: " + ChatColor.YELLOW + order.getRouterId());
                            GuiGraphics.displayItemToolTip(new Object[] { xPos - 10, yPos, order.getAsDisplayItem().makeNormalStack(), true, list }, zLevel, guiLeft, guiTop, false);
                        });
                    } else if (entry.getValue() != null && entry.getValue().getValue1() != null && entry.getValue().getValue1().getDisplayItem() != null) {
                        List<String> list = new ArrayList<>();
                        list.add(ChatColor.BLUE + "Request ID: " + ChatColor.YELLOW + entry.getKey());
                        GuiGraphics.displayItemToolTip(new Object[] { xPos - 10, yPos, entry.getValue().getValue1().getDisplayItem().makeNormalStack(), true, list }, zLevel, guiLeft, guiTop, false);
                    }
                }
            });
        }
    }
    super.renderExtentions();
}
Also used : OpenGlHelper(net.minecraft.client.renderer.OpenGlHelper) CraftingCycleRecipe(logisticspipes.network.packets.block.CraftingCycleRecipe) IOrderInfoProvider(logisticspipes.routing.order.IOrderInfoProvider) IItemSearch(logisticspipes.utils.gui.IItemSearch) GuiCheckBox(logisticspipes.utils.gui.GuiCheckBox) Keyboard(org.lwjgl.input.Keyboard) MainProxy(logisticspipes.proxy.MainProxy) SmallGuiButton(logisticspipes.utils.gui.SmallGuiButton) GuiExtention(logisticspipes.utils.gui.extention.GuiExtention) ChatAllowedCharacters(net.minecraft.util.ChatAllowedCharacters) Configs(logisticspipes.config.Configs) LogisticsBaseGuiScreen(logisticspipes.utils.gui.LogisticsBaseGuiScreen) LPItems(logisticspipes.LPItems) ItemDisplay(logisticspipes.utils.gui.ItemDisplay) RequestMonitorPopup(logisticspipes.gui.popup.RequestMonitorPopup) Locale(java.util.Locale) Map(java.util.Map) GuiRequestPopup(logisticspipes.gui.popup.GuiRequestPopup) RenderHelper(net.minecraft.client.renderer.RenderHelper) PipeBlockRequestTable(logisticspipes.pipes.PipeBlockRequestTable) GL12(org.lwjgl.opengl.GL12) GL11(org.lwjgl.opengl.GL11) RequestSubmitListPacket(logisticspipes.network.packets.orderer.RequestSubmitListPacket) OrdererRefreshRequestPacket(logisticspipes.network.packets.orderer.OrdererRefreshRequestPacket) ChainAddArrayList(logisticspipes.utils.ChainAddArrayList) LinkedLogisticsOrderList(logisticspipes.routing.order.LinkedLogisticsOrderList) GuiButton(net.minecraft.client.gui.GuiButton) Collection(java.util.Collection) ItemIdentifier(logisticspipes.utils.item.ItemIdentifier) InputBar(logisticspipes.utils.gui.InputBar) PacketHandler(logisticspipes.network.PacketHandler) Collectors(java.util.stream.Collectors) EnchantmentHelper(net.minecraft.enchantment.EnchantmentHelper) Objects(java.util.Objects) List(java.util.List) EntityPlayer(net.minecraft.entity.player.EntityPlayer) Pair(logisticspipes.utils.tuples.Pair) Entry(java.util.Map.Entry) DummyContainer(logisticspipes.utils.gui.DummyContainer) Enchantment(net.minecraft.enchantment.Enchantment) TextUtil(network.rs485.logisticspipes.util.TextUtil) ISpecialItemRenderer(logisticspipes.interfaces.ISpecialItemRenderer) HashMap(java.util.HashMap) Color(logisticspipes.utils.Color) RequestSubmitPacket(logisticspipes.network.packets.orderer.RequestSubmitPacket) ArrayList(java.util.ArrayList) ItemStack(net.minecraft.item.ItemStack) RequestComponentPacket(logisticspipes.network.packets.orderer.RequestComponentPacket) GuiDiskPopup(logisticspipes.gui.popup.GuiDiskPopup) Nonnull(javax.annotation.Nonnull) DiskRequestConectPacket(logisticspipes.network.packets.orderer.DiskRequestConectPacket) ISubGuiControler(logisticspipes.utils.gui.ISubGuiControler) ChatColor(logisticspipes.utils.string.ChatColor) IChainAddList(logisticspipes.interfaces.IChainAddList) IOException(java.io.IOException) IResource(logisticspipes.request.resources.IResource) IDiskProvider(logisticspipes.interfaces.IDiskProvider) GuiScreen(net.minecraft.client.gui.GuiScreen) ItemIdentifierStack(logisticspipes.utils.item.ItemIdentifierStack) ClearCraftingGridPacket(logisticspipes.network.packets.block.ClearCraftingGridPacket) BitSet(java.util.BitSet) GuiGraphics(logisticspipes.utils.gui.GuiGraphics) HashMap(java.util.HashMap) IOrderInfoProvider(logisticspipes.routing.order.IOrderInfoProvider) ChainAddArrayList(logisticspipes.utils.ChainAddArrayList) ArrayList(java.util.ArrayList) SmallGuiButton(logisticspipes.utils.gui.SmallGuiButton) GuiButton(net.minecraft.client.gui.GuiButton) SmallGuiButton(logisticspipes.utils.gui.SmallGuiButton) GuiCheckBox(logisticspipes.utils.gui.GuiCheckBox) GuiExtention(logisticspipes.utils.gui.extention.GuiExtention) ChainAddArrayList(logisticspipes.utils.ChainAddArrayList) LinkedLogisticsOrderList(logisticspipes.routing.order.LinkedLogisticsOrderList) List(java.util.List) ArrayList(java.util.ArrayList) IChainAddList(logisticspipes.interfaces.IChainAddList) ItemStack(net.minecraft.item.ItemStack) IResource(logisticspipes.request.resources.IResource) Pair(logisticspipes.utils.tuples.Pair)

Example 3 with GL11.glTexParameterf

use of org.lwjgl.opengl.GL11.glTexParameterf in project LogisticsPipes by RS485.

the class RenderTickHandler method renderWorldLast.

// private static final ResourceLocation TEXTURE = new ResourceLocation("logisticspipes", "textures/blocks/pipes/White.png");
@SubscribeEvent
@SideOnly(Side.CLIENT)
public void renderWorldLast(RenderWorldLastEvent worldEvent) {
    // if (LogisticsRenderPipe.config.isUseNewRenderer()) {
    if (displayPipeGhost()) {
        Minecraft mc = Minecraft.getMinecraft();
        EntityPlayer player = mc.player;
        RayTraceResult box = mc.objectMouseOver;
        if (box != null && box.typeOfHit == RayTraceResult.Type.BLOCK) {
            ItemStack stack = FMLClientHandler.instance().getClient().player.inventory.mainInventory.get(FMLClientHandler.instance().getClient().player.inventory.currentItem);
            CoreUnroutedPipe pipe = ((ItemLogisticsPipe) stack.getItem()).getDummyPipe();
            World world = player.getEntityWorld();
            EnumFacing side = box.sideHit;
            BlockPos bPos = box.getBlockPos();
            Block block = world.getBlockState(bPos).getBlock();
            if (block == Blocks.SNOW_LAYER && block.isReplaceable(world, bPos)) {
                side = EnumFacing.UP;
            } else if (!block.isReplaceable(world, bPos)) {
                bPos = bPos.offset(side);
            }
            boolean isFreeSpace = true;
            ITubeOrientation orientation = null;
            if (pipe instanceof CoreMultiBlockPipe) {
                CoreMultiBlockPipe multipipe = (CoreMultiBlockPipe) pipe;
                DoubleCoordinates placeAt = new DoubleCoordinates(bPos);
                LPPositionSet<DoubleCoordinatesType<CoreMultiBlockPipe.SubBlockTypeForShare>> globalPos = new LPPositionSet<>(DoubleCoordinatesType.class);
                globalPos.add(new DoubleCoordinatesType<>(placeAt, CoreMultiBlockPipe.SubBlockTypeForShare.NON_SHARE));
                LPPositionSet<DoubleCoordinatesType<CoreMultiBlockPipe.SubBlockTypeForShare>> positions = multipipe.getSubBlocks();
                orientation = multipipe.getTubeOrientation(player, bPos.getX(), bPos.getZ());
                if (orientation != null) {
                    orientation.rotatePositions(positions);
                    positions.stream().map(pos -> pos.add(placeAt)).forEach(globalPos::add);
                    globalPos.addToAll(orientation.getOffset());
                    for (DoubleCoordinatesType<CoreMultiBlockPipe.SubBlockTypeForShare> pos : globalPos) {
                        if (!player.getEntityWorld().mayPlace(LPBlocks.pipe, pos.getBlockPos(), false, side, player)) {
                            TileEntity tile = player.getEntityWorld().getTileEntity(pos.getBlockPos());
                            boolean canPlace = false;
                            if (tile instanceof LogisticsTileGenericSubMultiBlock) {
                                if (CoreMultiBlockPipe.canShare(((LogisticsTileGenericSubMultiBlock) tile).getSubTypes(), pos.getType())) {
                                    canPlace = true;
                                }
                            }
                            if (!canPlace) {
                                isFreeSpace = false;
                                break;
                            }
                        }
                    }
                } else {
                    return;
                }
            } else {
                if (!player.getEntityWorld().mayPlace(LPBlocks.pipe, bPos, false, side, player)) {
                    isFreeSpace = false;
                }
            }
            if (isFreeSpace) {
                GlStateManager.pushMatrix();
                double x;
                double y;
                double z;
                if (orientation != null) {
                    x = bPos.getX() + orientation.getOffset().getXInt() - player.prevPosX - ((player.posX - player.prevPosX) * worldEvent.getPartialTicks());
                    y = bPos.getY() + orientation.getOffset().getYInt() - player.prevPosY - ((player.posY - player.prevPosY) * worldEvent.getPartialTicks());
                    z = bPos.getZ() + orientation.getOffset().getZInt() - player.prevPosZ - ((player.posZ - player.prevPosZ) * worldEvent.getPartialTicks());
                } else {
                    x = bPos.getX() - player.prevPosX - ((player.posX - player.prevPosX) * worldEvent.getPartialTicks());
                    y = bPos.getY() - player.prevPosY - ((player.posY - player.prevPosY) * worldEvent.getPartialTicks());
                    z = bPos.getZ() - player.prevPosZ - ((player.posZ - player.prevPosZ) * worldEvent.getPartialTicks());
                }
                GL11.glTranslated(x + 0.001, y + 0.001, z + 0.001);
                GlStateManager.enableBlend();
                // GL11.glDepthMask(false);
                GlStateManager.disableTexture2D();
                GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
                mc.renderEngine.bindTexture(new ResourceLocation("logisticspipes", "textures/blocks/pipes/white.png"));
                SimpleServiceLocator.cclProxy.getRenderState().reset();
                SimpleServiceLocator.cclProxy.getRenderState().setAlphaOverride(0xff);
                GlStateManager.enableTexture2D();
                SimpleServiceLocator.cclProxy.getRenderState().setAlphaOverride(0x50);
                SimpleServiceLocator.cclProxy.getRenderState().startDrawing(GL11.GL_QUADS, DefaultVertexFormats.BLOCK);
                pipe.getHighlightRenderer().renderHighlight(orientation);
                SimpleServiceLocator.cclProxy.getRenderState().draw();
                SimpleServiceLocator.cclProxy.getRenderState().setAlphaOverride(0xff);
                GlStateManager.disableBlend();
                GlStateManager.depthMask(true);
                GlStateManager.popMatrix();
            }
        }
    }
// }
}
Also used : ItemLogisticsPipe(logisticspipes.items.ItemLogisticsPipe) RenderTickEvent(net.minecraftforge.fml.common.gameevent.TickEvent.RenderTickEvent) Blocks(net.minecraft.init.Blocks) DoubleCoordinatesType(network.rs485.logisticspipes.world.DoubleCoordinatesType) ActiveRenderInfo(net.minecraft.client.renderer.ActiveRenderInfo) RenderWorldLastEvent(net.minecraftforge.client.event.RenderWorldLastEvent) DefaultVertexFormats(net.minecraft.client.renderer.vertex.DefaultVertexFormats) ItemStack(net.minecraft.item.ItemStack) RayTraceResult(net.minecraft.util.math.RayTraceResult) Block(net.minecraft.block.Block) Minecraft(net.minecraft.client.Minecraft) Side(net.minecraftforge.fml.relauncher.Side) LogisticsHUDRenderer(logisticspipes.renderer.LogisticsHUDRenderer) LogisticsTileGenericSubMultiBlock(logisticspipes.pipes.basic.LogisticsTileGenericSubMultiBlock) LogisticsGuiOverrenderer(logisticspipes.renderer.LogisticsGuiOverrenderer) ClientViewController(logisticspipes.routing.debug.ClientViewController) CoreUnroutedPipe(logisticspipes.pipes.basic.CoreUnroutedPipe) GL11(org.lwjgl.opengl.GL11) SideOnly(net.minecraftforge.fml.relauncher.SideOnly) CoreMultiBlockPipe(logisticspipes.pipes.basic.CoreMultiBlockPipe) World(net.minecraft.world.World) GlStateManager(net.minecraft.client.renderer.GlStateManager) ITubeOrientation(logisticspipes.interfaces.ITubeOrientation) EnumFacing(net.minecraft.util.EnumFacing) BlockPos(net.minecraft.util.math.BlockPos) LPPositionSet(logisticspipes.utils.LPPositionSet) DoubleCoordinates(network.rs485.logisticspipes.world.DoubleCoordinates) EventPriority(net.minecraftforge.fml.common.eventhandler.EventPriority) SimpleServiceLocator(logisticspipes.proxy.SimpleServiceLocator) LPBlocks(logisticspipes.LPBlocks) FMLClientHandler(net.minecraftforge.fml.client.FMLClientHandler) EntityPlayer(net.minecraft.entity.player.EntityPlayer) Phase(net.minecraftforge.fml.common.gameevent.TickEvent.Phase) ResourceLocation(net.minecraft.util.ResourceLocation) SubscribeEvent(net.minecraftforge.fml.common.eventhandler.SubscribeEvent) TileEntity(net.minecraft.tileentity.TileEntity) EnumFacing(net.minecraft.util.EnumFacing) World(net.minecraft.world.World) TileEntity(net.minecraft.tileentity.TileEntity) CoreMultiBlockPipe(logisticspipes.pipes.basic.CoreMultiBlockPipe) ResourceLocation(net.minecraft.util.ResourceLocation) ItemLogisticsPipe(logisticspipes.items.ItemLogisticsPipe) BlockPos(net.minecraft.util.math.BlockPos) CoreUnroutedPipe(logisticspipes.pipes.basic.CoreUnroutedPipe) LogisticsTileGenericSubMultiBlock(logisticspipes.pipes.basic.LogisticsTileGenericSubMultiBlock) RayTraceResult(net.minecraft.util.math.RayTraceResult) ITubeOrientation(logisticspipes.interfaces.ITubeOrientation) DoubleCoordinates(network.rs485.logisticspipes.world.DoubleCoordinates) Minecraft(net.minecraft.client.Minecraft) DoubleCoordinatesType(network.rs485.logisticspipes.world.DoubleCoordinatesType) LPPositionSet(logisticspipes.utils.LPPositionSet) EntityPlayer(net.minecraft.entity.player.EntityPlayer) Block(net.minecraft.block.Block) LogisticsTileGenericSubMultiBlock(logisticspipes.pipes.basic.LogisticsTileGenericSubMultiBlock) ItemStack(net.minecraft.item.ItemStack) SubscribeEvent(net.minecraftforge.fml.common.eventhandler.SubscribeEvent) SideOnly(net.minecraftforge.fml.relauncher.SideOnly)

Example 4 with GL11.glTexParameterf

use of org.lwjgl.opengl.GL11.glTexParameterf in project Wizardry by TeamWizardry.

the class FairyData method render.

@SideOnly(Side.CLIENT)
public void render(World world, Vec3d pos, Vec3d prevPos, float partialTicks) {
    if (!wasTamperedWith && !isDepressed) {
        LibParticles.FAIRY_HEAD(world, pos.add(0, 0.25, 0), primaryColor);
        ParticleBuilder glitter = new ParticleBuilder(age / 2);
        glitter.setRender(new ResourceLocation(Wizardry.MODID, NBTConstants.MISC.SPARKLE_BLURRED));
        glitter.setAlphaFunction(new InterpFloatInOut(0.2f, 1f));
        if (RandUtil.nextInt(3) == 0)
            ParticleSpawner.spawn(glitter, world, new StaticInterp<>(pos), 1, 0, (i, build) -> {
                build.setMotion(new Vec3d(RandUtil.nextDouble(-0.01, 0.01), RandUtil.nextDouble(-0.01, 0.01), RandUtil.nextDouble(-0.01, 0.01)));
                if (RandUtil.nextBoolean())
                    build.setColor(primaryColor);
                else
                    build.setColor(secondaryColor);
                if (isDepressed) {
                    build.setCollision(true);
                    build.enableMotionCalculation();
                    build.setAcceleration(new Vec3d(0, -0.005, 0));
                }
            });
    } else {
        {
            GlStateManager.pushMatrix();
            EntityPlayer player = Minecraft.getMinecraft().player;
            if (player == null)
                return;
            double interpPosX = player.lastTickPosX + (player.posX - player.lastTickPosX) * partialTicks;
            double interpPosY = player.lastTickPosY + (player.posY - player.lastTickPosY) * partialTicks;
            double interpPosZ = player.lastTickPosZ + (player.posZ - player.lastTickPosZ) * partialTicks;
            GlStateManager.translate(-interpPosX, -interpPosY, -interpPosZ);
            GlStateManager.translate(pos.x, pos.y, pos.z);
            Minecraft.getMinecraft().entityRenderer.disableLightmap();
            GlStateManager.enableDepth();
            GlStateManager.disableCull();
            GlStateManager.enableAlpha();
            GlStateManager.enableBlend();
            GlStateManager.blendFunc(GL_SRC_ALPHA, GL_ONE);
            GlStateManager.tryBlendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO);
            GlStateManager.color(1, 1, 1, 1);
            GlStateManager.disableTexture2D();
            GlStateManager.enableColorMaterial();
            GlStateManager.disableLighting();
            GlStateManager.shadeModel(GL11.GL_SMOOTH);
            int alphaFunc = GL11.glGetInteger(GL11.GL_ALPHA_TEST_FUNC);
            float alphaTest = GL11.glGetFloat(GL11.GL_ALPHA_TEST_REF);
            GlStateManager.alphaFunc(GL11.GL_ALWAYS, 1);
            GlStateManager.pushMatrix();
            GlStateManager.rotate(-Minecraft.getMinecraft().getRenderManager().playerViewY, 0.0F, 1.0F, 0.0F);
            GlStateManager.rotate((float) (Minecraft.getMinecraft().getRenderManager().options.thirdPersonView == 2 ? -1 : 1) * Minecraft.getMinecraft().getRenderManager().playerViewX, 1.0F, 0.0F, 0.0F);
            Tessellator tessellator = Tessellator.getInstance();
            BufferBuilder bb = tessellator.getBuffer();
            double radius = 0.1;
            Color color = primaryColor;
            bb.begin(GL11.GL_TRIANGLE_FAN, DefaultVertexFormats.POSITION_COLOR);
            for (int i = 0; i <= 50; i++) {
                double x = radius * MathHelper.cos((float) ((i / 50.0) * Math.PI * 2));
                double z = radius * MathHelper.sin((float) ((i / 50.0) * Math.PI * 2));
                bb.pos(x, z, 0).color(color.getRed(), color.getGreen(), color.getBlue(), 255).endVertex();
            }
            tessellator.draw();
            GlStateManager.popMatrix();
            bb.begin(GL11.GL_TRIANGLES, DefaultVertexFormats.POSITION_COLOR);
            Vec3d sub = pos.subtract(prevPos).scale(-1).add(0, 0.2, 0).scale(3);
            Vec3d posCross = sub.crossProduct(new Vec3d(0, 1, 0)).normalize();
            Vec3d posPerp = posCross.crossProduct(sub).normalize().scale(radius - 0.2);
            Vec3d vec1 = posPerp;
            Vec3d vec2 = posPerp.scale(-1);
            bb.pos(sub.x, sub.y, sub.z).color(color.getRed(), color.getGreen(), color.getBlue(), 255).endVertex();
            bb.pos(vec1.x, vec1.y, vec1.z).color(color.getRed(), color.getGreen(), color.getBlue(), 255).endVertex();
            bb.pos(vec2.x, vec2.y, vec2.z).color(color.getRed(), color.getGreen(), color.getBlue(), 255).endVertex();
            Vec3d vec3 = posCross.scale(radius);
            Vec3d vec4 = posCross.scale(-1).scale(radius);
            bb.pos(sub.x, sub.y, sub.z).color(color.getRed(), color.getGreen(), color.getBlue(), 255).endVertex();
            bb.pos(vec3.x, vec3.y, vec3.z).color(color.getRed(), color.getGreen(), color.getBlue(), 255).endVertex();
            bb.pos(vec4.x, vec4.y, vec4.z).color(color.getRed(), color.getGreen(), color.getBlue(), 255).endVertex();
            tessellator.draw();
            GlStateManager.pushMatrix();
            GlStateManager.rotate(-Minecraft.getMinecraft().getRenderManager().playerViewY, 0.0F, 1.0F, 0.0F);
            GlStateManager.rotate((float) (Minecraft.getMinecraft().getRenderManager().options.thirdPersonView == 2 ? -1 : 1) * Minecraft.getMinecraft().getRenderManager().playerViewX, 1.0F, 0.0F, 0.0F);
            int sections = 50;
            float epsilon = 2 * (float) Math.PI / sections;
            double innerRadius = radius;
            double outerRadius = radius + 0.01;
            Color inner = primaryColor;
            Color outer = new Color(primaryColor.getRed(), primaryColor.getGreen(), primaryColor.getBlue(), 0);
            bb.begin(GL11.GL_TRIANGLE_STRIP, DefaultVertexFormats.POSITION_COLOR);
            for (int i = 0; i <= sections; i++) {
                float angle = i * epsilon;
                float nextAngle = (i + 1) * epsilon;
                float x1 = (float) (MathHelper.cos(angle) * innerRadius);
                float y1 = (float) (MathHelper.sin(angle) * innerRadius);
                float x2 = (float) (MathHelper.cos(nextAngle) * outerRadius);
                float y2 = (float) (MathHelper.sin(nextAngle) * outerRadius);
                bb.pos(x1, y1, 0).color(inner.getRed(), inner.getGreen(), inner.getBlue(), inner.getAlpha()).endVertex();
                bb.pos(x2, y2, 0).color(outer.getRed(), outer.getGreen(), outer.getBlue(), outer.getAlpha()).endVertex();
            }
            tessellator.draw();
            radius = 0.2;
            color = secondaryColor;
            GlStateManager.translate(0, 0, 0.01);
            bb.begin(GL11.GL_TRIANGLE_FAN, DefaultVertexFormats.POSITION_COLOR);
            bb.pos(0, 0, 0).color(color.getRed(), color.getGreen(), color.getBlue(), 100).endVertex();
            for (int i = 0; i <= 50; i++) {
                double x = radius * MathHelper.cos((float) ((i / 50.0) * Math.PI * 2));
                double z = radius * MathHelper.sin((float) ((i / 50.0) * Math.PI * 2));
                bb.pos(x, z, 0).color(color.getRed(), color.getGreen(), color.getBlue(), 0).endVertex();
            }
            tessellator.draw();
            GlStateManager.translate(0, 0, -0.01);
            GlStateManager.alphaFunc(alphaFunc, alphaTest);
            GlStateManager.disableBlend();
            GlStateManager.enableAlpha();
            GlStateManager.enableTexture2D();
            GlStateManager.disableColorMaterial();
            Minecraft.getMinecraft().entityRenderer.enableLightmap();
            GlStateManager.enableDepth();
            GlStateManager.popMatrix();
            GlStateManager.popMatrix();
        }
    }
}
Also used : StaticInterp(com.teamwizardry.librarianlib.features.math.interpolate.StaticInterp) CustomManaCapability(com.teamwizardry.wizardry.api.capability.player.mana.CustomManaCapability) ICapabilityProvider(net.minecraftforge.common.capabilities.ICapabilityProvider) BufferBuilder(net.minecraft.client.renderer.BufferBuilder) Constants(net.minecraftforge.common.util.Constants) GL_ONE(org.lwjgl.opengl.GL11.GL_ONE) ParticleSpawner(com.teamwizardry.librarianlib.features.particle.ParticleSpawner) ParticleBuilder(com.teamwizardry.librarianlib.features.particle.ParticleBuilder) SpellRing(com.teamwizardry.wizardry.api.spell.SpellRing) ArrayList(java.util.ArrayList) DefaultVertexFormats(net.minecraft.client.renderer.vertex.DefaultVertexFormats) NBTTagList(net.minecraft.nbt.NBTTagList) Vec3d(net.minecraft.util.math.Vec3d) Minecraft(net.minecraft.client.Minecraft) Side(net.minecraftforge.fml.relauncher.Side) ManaCapabilityProvider(com.teamwizardry.wizardry.api.capability.player.mana.ManaCapabilityProvider) GL11(org.lwjgl.opengl.GL11) InterpFloatInOut(com.teamwizardry.librarianlib.features.math.interpolate.numeric.InterpFloatInOut) SideOnly(net.minecraftforge.fml.relauncher.SideOnly) Nonnull(javax.annotation.Nonnull) Nullable(javax.annotation.Nullable) NBTTagCompound(net.minecraft.nbt.NBTTagCompound) GL_SRC_ALPHA(org.lwjgl.opengl.GL11.GL_SRC_ALPHA) World(net.minecraft.world.World) GlStateManager(net.minecraft.client.renderer.GlStateManager) NBTBase(net.minecraft.nbt.NBTBase) Wizardry(com.teamwizardry.wizardry.Wizardry) EnumFacing(net.minecraft.util.EnumFacing) ColorUtils(com.teamwizardry.wizardry.api.util.ColorUtils) UUID(java.util.UUID) Capability(net.minecraftforge.common.capabilities.Capability) java.awt(java.awt) IManaCapability(com.teamwizardry.wizardry.api.capability.player.mana.IManaCapability) List(java.util.List) Tessellator(net.minecraft.client.renderer.Tessellator) LibParticles(com.teamwizardry.wizardry.client.fx.LibParticles) EntityPlayer(net.minecraft.entity.player.EntityPlayer) MathHelper(net.minecraft.util.math.MathHelper) NBTHelper(com.teamwizardry.librarianlib.features.helpers.NBTHelper) ResourceLocation(net.minecraft.util.ResourceLocation) RandUtil(com.teamwizardry.wizardry.api.util.RandUtil) NBTConstants(com.teamwizardry.wizardry.api.NBTConstants) NotNull(org.jetbrains.annotations.NotNull) INBTSerializable(net.minecraftforge.common.util.INBTSerializable) Tessellator(net.minecraft.client.renderer.Tessellator) InterpFloatInOut(com.teamwizardry.librarianlib.features.math.interpolate.numeric.InterpFloatInOut) ResourceLocation(net.minecraft.util.ResourceLocation) BufferBuilder(net.minecraft.client.renderer.BufferBuilder) StaticInterp(com.teamwizardry.librarianlib.features.math.interpolate.StaticInterp) EntityPlayer(net.minecraft.entity.player.EntityPlayer) ParticleBuilder(com.teamwizardry.librarianlib.features.particle.ParticleBuilder) Vec3d(net.minecraft.util.math.Vec3d) SideOnly(net.minecraftforge.fml.relauncher.SideOnly)

Example 5 with GL11.glTexParameterf

use of org.lwjgl.opengl.GL11.glTexParameterf in project Wizardry by TeamWizardry.

the class TileManaBatteryRenderer method render.

@Override
public void render(float partialTicks, int destroyStage, float alpha) {
    if (!getBakedModels())
        return;
    GlStateManager.pushMatrix();
    GlStateManager.enableBlend();
    GlStateManager.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
    TextureManager texturemanager = Minecraft.getMinecraft().renderEngine;
    if (texturemanager != null) {
        texturemanager.bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE);
    }
    if (Minecraft.isAmbientOcclusionEnabled())
        GlStateManager.shadeModel(GL11.GL_SMOOTH);
    else
        GlStateManager.shadeModel(GL11.GL_FLAT);
    float fill = (float) (ManaManager.getMana(tile.getWizardryCap()) / ManaManager.getMaxMana(tile.getWizardryCap())) / 40.0f;
    GlStateManager.translate(0, 0.5, 0);
    GlStateManager.disableRescaleNormal();
    {
        double x = RandUtil.nextDouble(-fill, fill), y = RandUtil.nextDouble(-fill, fill), z = RandUtil.nextDouble(-fill, fill);
        GlStateManager.translate(0, Math.sin((ClientTickHandler.getTicks() + ClientTickHandler.getPartialTicks()) / 40) / 8, 0);
        GlStateManager.translate(x, y, z);
        Minecraft.getMinecraft().getBlockRendererDispatcher().getBlockModelRenderer().renderModelBrightnessColor(modelCrystal, 1.0F, 1, 1, 1);
        GlStateManager.translate(-x, -y, -z);
    }
    GlStateManager.translate(0.5, 0, 0.5);
    GlStateManager.rotate(ClientTickHandler.getTicks() + ClientTickHandler.getPartialTicks(), 0, 1, 0);
    GlStateManager.translate(-0.5, 0, -0.5);
    Minecraft.getMinecraft().getBlockRendererDispatcher().getBlockModelRenderer().renderModelBrightnessColor(modelRing, 1.0F, 1, 1, 1);
    GlStateManager.translate(0.5, 0, 0.5);
    GlStateManager.rotate(ClientTickHandler.getTicks() + ClientTickHandler.getPartialTicks(), 0, -1, 0);
    GlStateManager.rotate(ClientTickHandler.getTicks() + ClientTickHandler.getPartialTicks(), 0, -1, 0);
    GlStateManager.translate(-0.5, 0, -0.5);
    Minecraft.getMinecraft().getBlockRendererDispatcher().getBlockModelRenderer().renderModelBrightnessColor(modelRingOuter, 1.0F, 1, 1, 1);
    GlStateManager.disableBlend();
    GlStateManager.popMatrix();
    ArrayList<BlockPos> errors = new ArrayList<>(((IStructure) tile.getBlockType()).testStructure(tile.getWorld(), tile.getPos()));
    errors.sort(Vec3i::compareTo);
    if (!errors.isEmpty()) {
        for (BlockPos error : errors) {
            StructureErrorRenderer.addError(error);
        }
    }
    if (!errors.isEmpty() && tile.revealStructure && tile.getBlockType() instanceof IStructure) {
        ModStructures.structureManager.draw(ModStructures.MANA_BATTERY, (float) (Math.sin(ClientTickHandler.getTicks() / 10.0) + 1) / 10.0f + 0.3f);
        return;
    }
    if (tile.getBlockType() == ModBlocks.CREATIVE_MANA_BATTERY) {
        double angle = ClientTickHandler.getTicks() / 10.0;
        double x1 = Math.cos((float) angle);
        double y1 = Math.sin((float) angle);
        ParticleBuilder builder = new ParticleBuilder(10);
        builder.setRender(new ResourceLocation(Wizardry.MODID, NBTConstants.MISC.SPARKLE_BLURRED));
        builder.setCollision(true);
        builder.disableRandom();
        builder.disableMotionCalculation();
        ParticleSpawner.spawn(builder, tile.getWorld(), new InterpCircle(new Vec3d(tile.getPos()).add(0.5, 0.5, 0.5), new Vec3d(x1, x1, y1), 1.5f), 20, 0, (aFloat, particleBuilder) -> {
            particleBuilder.setScale(0.5f);
            particleBuilder.setColor(new Color(0xd600d2));
            particleBuilder.setAlphaFunction(new InterpFloatInOut(1, 1));
            particleBuilder.setLifetime(RandUtil.nextInt(5, 10));
        });
    } else if (ClientTickHandler.getTicks() % 10 == 0 && ManaManager.forObject(tile.getWizardryCap()).isManaFull()) {
        double radius = 1;
        double theta = 2.0f * (float) Math.PI * RandUtil.nextFloat();
        double r = radius * RandUtil.nextFloat();
        double x = r * MathHelper.cos((float) theta);
        double z = r * MathHelper.sin((float) theta);
        ParticleBuilder helix = new ParticleBuilder(20);
        helix.setRender(new ResourceLocation(Wizardry.MODID, NBTConstants.MISC.SPARKLE_BLURRED));
        helix.setAlphaFunction(new InterpFloatInOut(0.1f, 0.4f));
        ParticleSpawner.spawn(helix, tile.getWorld(), new StaticInterp<>(new Vec3d(tile.getPos()).add(0.5, 0.5, 0.5)), 1, 0, (someFloat, particleBuilder) -> {
            particleBuilder.setColor(ColorUtils.changeColorAlpha(new Color(0x0097FF), RandUtil.nextInt(50, 200)));
            particleBuilder.setScale(RandUtil.nextFloat(0.5f, 1.2f));
            particleBuilder.setMotion(new Vec3d(x, RandUtil.nextDouble(-1, 1), z).scale(0.05));
            particleBuilder.setLifetime(RandUtil.nextInt(20, 40));
        });
    }
}
Also used : IBakedModel(net.minecraft.client.renderer.block.model.IBakedModel) InterpCircle(com.teamwizardry.librarianlib.features.math.interpolate.position.InterpCircle) IStructure(com.teamwizardry.wizardry.api.block.IStructure) StaticInterp(com.teamwizardry.librarianlib.features.math.interpolate.StaticInterp) ParticleSpawner(com.teamwizardry.librarianlib.features.particle.ParticleSpawner) ParticleBuilder(com.teamwizardry.librarianlib.features.particle.ParticleBuilder) ModBlocks(com.teamwizardry.wizardry.init.ModBlocks) ArrayList(java.util.ArrayList) ManaManager(com.teamwizardry.wizardry.api.capability.player.mana.ManaManager) DefaultVertexFormats(net.minecraft.client.renderer.vertex.DefaultVertexFormats) Vec3i(net.minecraft.util.math.Vec3i) Vec3d(net.minecraft.util.math.Vec3d) Minecraft(net.minecraft.client.Minecraft) Side(net.minecraftforge.fml.relauncher.Side) ModStructures(com.teamwizardry.wizardry.init.ModStructures) Mod(net.minecraftforge.fml.common.Mod) GL11(org.lwjgl.opengl.GL11) InterpFloatInOut(com.teamwizardry.librarianlib.features.math.interpolate.numeric.InterpFloatInOut) SideOnly(net.minecraftforge.fml.relauncher.SideOnly) Nonnull(javax.annotation.Nonnull) TileRenderHandler(com.teamwizardry.librarianlib.features.tesr.TileRenderHandler) ClientRunnable(com.teamwizardry.librarianlib.features.utilities.client.ClientRunnable) GlStateManager(net.minecraft.client.renderer.GlStateManager) Wizardry(com.teamwizardry.wizardry.Wizardry) TextureMap(net.minecraft.client.renderer.texture.TextureMap) ModelLoaderRegistry(net.minecraftforge.client.model.ModelLoaderRegistry) ClientTickHandler(com.teamwizardry.librarianlib.core.client.ClientTickHandler) BlockPos(net.minecraft.util.math.BlockPos) ColorUtils(com.teamwizardry.wizardry.api.util.ColorUtils) TextureManager(net.minecraft.client.renderer.texture.TextureManager) IModel(net.minecraftforge.client.model.IModel) java.awt(java.awt) TileManaBattery(com.teamwizardry.wizardry.common.tile.TileManaBattery) StructureErrorRenderer(com.teamwizardry.wizardry.client.core.renderer.StructureErrorRenderer) MathHelper(net.minecraft.util.math.MathHelper) ResourceLocation(net.minecraft.util.ResourceLocation) RandUtil(com.teamwizardry.wizardry.api.util.RandUtil) NBTConstants(com.teamwizardry.wizardry.api.NBTConstants) Vec3i(net.minecraft.util.math.Vec3i) InterpCircle(com.teamwizardry.librarianlib.features.math.interpolate.position.InterpCircle) ArrayList(java.util.ArrayList) StaticInterp(com.teamwizardry.librarianlib.features.math.interpolate.StaticInterp) IStructure(com.teamwizardry.wizardry.api.block.IStructure) ParticleBuilder(com.teamwizardry.librarianlib.features.particle.ParticleBuilder) Vec3d(net.minecraft.util.math.Vec3d) TextureManager(net.minecraft.client.renderer.texture.TextureManager) InterpFloatInOut(com.teamwizardry.librarianlib.features.math.interpolate.numeric.InterpFloatInOut) ResourceLocation(net.minecraft.util.ResourceLocation) BlockPos(net.minecraft.util.math.BlockPos)

Aggregations

GL11 (org.lwjgl.opengl.GL11)9 List (java.util.List)6 ArrayList (java.util.ArrayList)5 GlStateManager (net.minecraft.client.renderer.GlStateManager)4 DefaultVertexFormats (net.minecraft.client.renderer.vertex.DefaultVertexFormats)4 EntityPlayer (net.minecraft.entity.player.EntityPlayer)4 IOException (java.io.IOException)3 Nonnull (javax.annotation.Nonnull)3 Minecraft (net.minecraft.client.Minecraft)3 BufferBuilder (net.minecraft.client.renderer.BufferBuilder)3 ResourceLocation (net.minecraft.util.ResourceLocation)3 Vec3d (net.minecraft.util.math.Vec3d)3 Side (net.minecraftforge.fml.relauncher.Side)3 SideOnly (net.minecraftforge.fml.relauncher.SideOnly)3 StaticInterp (com.teamwizardry.librarianlib.features.math.interpolate.StaticInterp)2 InterpFloatInOut (com.teamwizardry.librarianlib.features.math.interpolate.numeric.InterpFloatInOut)2 ParticleBuilder (com.teamwizardry.librarianlib.features.particle.ParticleBuilder)2 ParticleSpawner (com.teamwizardry.librarianlib.features.particle.ParticleSpawner)2 Wizardry (com.teamwizardry.wizardry.Wizardry)2 NBTConstants (com.teamwizardry.wizardry.api.NBTConstants)2