List of usage examples for org.lwjgl.opengl GL11 glLineWidth
public static void glLineWidth(@NativeType("GLfloat") float width)
From source file:me.lixko.lixkopack.util.RenderUtils.java
License:Open Source License
public static void emptyBlockESPBox(BlockPos blockPos) { double x = blockPos.getX() - Minecraft.getMinecraft().getRenderManager().renderPosX; double y = blockPos.getY() - Minecraft.getMinecraft().getRenderManager().renderPosY; double z = blockPos.getZ() - Minecraft.getMinecraft().getRenderManager().renderPosZ; GL11.glBlendFunc(770, 771);/*from w w w .ja va 2 s . co m*/ GL11.glEnable(GL_BLEND); GL11.glLineWidth(2.0F); GL11.glDisable(GL11.GL_TEXTURE_2D); GL11.glDisable(GL_DEPTH_TEST); GL11.glDepthMask(false); GL11.glColor4d(0, 0, 0, 0.5F); RenderGlobal.drawOutlinedBoundingBox(new AxisAlignedBB(x, y, z, x + 1.0, y + 1.0, z + 1.0), -1); GL11.glEnable(GL11.GL_TEXTURE_2D); GL11.glEnable(GL_DEPTH_TEST); GL11.glDepthMask(true); GL11.glDisable(GL_BLEND); }
From source file:me.lixko.lixkopack.util.RenderUtils.java
License:Open Source License
public static void entityESPBox(Entity entity, int mode) { GL11.glBlendFunc(770, 771);/* w ww . j a v a 2 s.c om*/ GL11.glEnable(GL_BLEND); GL11.glLineWidth(2.0F); GL11.glDisable(GL11.GL_TEXTURE_2D); GL11.glDisable(GL_DEPTH_TEST); GL11.glDepthMask(false); if (mode == 0)// Enemy GL11.glColor4d(1 - Minecraft.getMinecraft().thePlayer.getDistanceToEntity(entity) / 40, Minecraft.getMinecraft().thePlayer.getDistanceToEntity(entity) / 40, 0, 0.5F); else if (mode == 1)// Friend GL11.glColor4d(0, 0, 1, 0.5F); else if (mode == 2)// Other GL11.glColor4d(1, 1, 0, 0.5F); else if (mode == 3)// Target GL11.glColor4d(1, 0, 0, 0.5F); else if (mode == 4)// Team GL11.glColor4d(0, 1, 0, 0.5F); Minecraft.getMinecraft().getRenderManager(); RenderGlobal.drawOutlinedBoundingBox(new AxisAlignedBB( entity.boundingBox.minX - 0.05 - entity.posX + (entity.posX - Minecraft.getMinecraft().getRenderManager().renderPosX), entity.boundingBox.minY - entity.posY + (entity.posY - Minecraft.getMinecraft().getRenderManager().renderPosY), entity.boundingBox.minZ - 0.05 - entity.posZ + (entity.posZ - Minecraft.getMinecraft().getRenderManager().renderPosZ), entity.boundingBox.maxX + 0.05 - entity.posX + (entity.posX - Minecraft.getMinecraft().getRenderManager().renderPosX), entity.boundingBox.maxY + 0.1 - entity.posY + (entity.posY - Minecraft.getMinecraft().getRenderManager().renderPosY), entity.boundingBox.maxZ + 0.05 - entity.posZ + (entity.posZ - Minecraft.getMinecraft().getRenderManager().renderPosZ)), -1); GL11.glEnable(GL11.GL_TEXTURE_2D); GL11.glEnable(GL_DEPTH_TEST); GL11.glDepthMask(true); GL11.glDisable(GL_BLEND); }
From source file:me.lixko.lixkopack.util.RenderUtils.java
License:Open Source License
public static void nukerBox(BlockPos blockPos, float damage) { double x = blockPos.getX() - Minecraft.getMinecraft().getRenderManager().renderPosX; double y = blockPos.getY() - Minecraft.getMinecraft().getRenderManager().renderPosY; double z = blockPos.getZ() - Minecraft.getMinecraft().getRenderManager().renderPosZ; GL11.glBlendFunc(770, 771);/*from ww w . j a va2s .c o m*/ GL11.glEnable(GL_BLEND); GL11.glLineWidth(1.0F); GL11.glColor4d(damage, 1 - damage, 0, 0.15F); GL11.glDisable(GL11.GL_TEXTURE_2D); GL11.glDisable(GL_DEPTH_TEST); GL11.glDepthMask(false); drawColorBox(new AxisAlignedBB(x + 0.5 - damage / 2, y + 0.5 - damage / 2, z + 0.5 - damage / 2, x + 0.5 + damage / 2, y + 0.5 + damage / 2, z + 0.5 + damage / 2)); GL11.glColor4d(0, 0, 0, 0.5F); RenderGlobal.drawOutlinedBoundingBox(new AxisAlignedBB(x + 0.5 - damage / 2, y + 0.5 - damage / 2, z + 0.5 - damage / 2, x + 0.5 + damage / 2, y + 0.5 + damage / 2, z + 0.5 + damage / 2), -1); GL11.glEnable(GL11.GL_TEXTURE_2D); GL11.glEnable(GL_DEPTH_TEST); GL11.glDepthMask(true); GL11.glDisable(GL_BLEND); }
From source file:me.lixko.lixkopack.util.RenderUtils.java
License:Open Source License
public static void searchBox(BlockPos blockPos) { double x = blockPos.getX() - Minecraft.getMinecraft().getRenderManager().renderPosX; double y = blockPos.getY() - Minecraft.getMinecraft().getRenderManager().renderPosY; double z = blockPos.getZ() - Minecraft.getMinecraft().getRenderManager().renderPosZ; GL11.glBlendFunc(770, 771);/*from w w w . ja v a2s. c o m*/ GL11.glEnable(GL_BLEND); GL11.glLineWidth(1.0F); float sinus = 1F - MathHelper .abs(MathHelper.sin(Minecraft.getSystemTime() % 10000L / 10000.0F * (float) Math.PI * 4.0F) * 1F); GL11.glColor4d(1 - sinus, sinus, 0, 0.15); GL11.glDisable(GL11.GL_TEXTURE_2D); GL11.glDisable(GL_DEPTH_TEST); GL11.glDepthMask(false); drawColorBox(new AxisAlignedBB(x, y, z, x + 1.0, y + 1.0, z + 1.0)); GL11.glColor4d(0, 0, 0, 0.5); RenderGlobal.drawOutlinedBoundingBox(new AxisAlignedBB(x, y, z, x + 1.0, y + 1.0, z + 1.0), -1); GL11.glEnable(GL11.GL_TEXTURE_2D); GL11.glEnable(GL_DEPTH_TEST); GL11.glDepthMask(true); GL11.glDisable(GL_BLEND); }
From source file:minebot.ui.AimBow.java
public static void drawArrowArc(EntityPlayer player, Arrow arrow, ReadableColor airColor, ReadableColor liquidColor, float partialTicks) { GlStateManager.enableBlend();//from ww w .ja v a 2 s. co m GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0); GL11.glLineWidth(0.5F); GlStateManager.disableTexture2D(); GlStateManager.depthMask(false); GlStateManager.color(airColor.getRed(), airColor.getGreen(), airColor.getBlue()); double previousDist = 0; double d0 = player.lastTickPosX + (player.posX - player.lastTickPosX) * (double) partialTicks; double d1 = player.lastTickPosY + (player.posY - player.lastTickPosY) * (double) partialTicks; double d2 = player.lastTickPosZ + (player.posZ - player.lastTickPosZ) * (double) partialTicks; double previousX = d0 + previousDist - (double) (Math.cos(Helper.degreesToRadians(player.rotationYaw)) * 0.16F); double previousY = arrow.getVerticalPositionAtHorizontalPosition(previousDist) + d1 + (double) player.getEyeHeight() - 0.10000000149011612D; ; double previousZ = d2 + previousDist - (double) (Math.sin(Helper.degreesToRadians(player.rotationYaw)) * 0.16F); for (double dist = Constants.BowConstants.renderTrajectoryIncrement; dist < Constants.BowConstants.renderTrajectoryCutoff; dist += Constants.BowConstants.renderTrajectoryIncrement) { BlockPos blockPos = new BlockPos(previousX, previousY, previousZ); IBlockState blockState = Minecraft.theMinecraft.theWorld.getBlockState(blockPos); Block block = blockState.getBlock(); if (Constants.BlockConstants.materialsPassable.contains(block.getMaterial())) { if (Constants.BlockConstants.materialsLiquid.contains(block.getMaterial()) && arrow.isInAir) { arrow.setIsInAir(false); GlStateManager.color(liquidColor.getRed(), liquidColor.getGreen(), liquidColor.getBlue()); } else if (!arrow.isInAir) { arrow.setIsInAir(true); GlStateManager.color(airColor.getRed(), airColor.getGreen(), airColor.getBlue()); } double currentX = (-Math.sin(Helper.degreesToRadians(player.rotationYaw)) * dist) + d0 - (double) (Math.cos((float) Helper.degreesToRadians(player.rotationYaw)) * 0.16F); double currentY = arrow.getVerticalPositionAtHorizontalPosition(dist) + d1 + (double) player.getEyeHeight() - 0.10000000149011612D; double currentZ = (Math.cos(Helper.degreesToRadians(player.rotationYaw)) * dist) + d2 - (double) (Math.sin((float) Helper.degreesToRadians(player.rotationYaw)) * 0.16F); drawLine(player, previousX, previousY, previousZ, currentX, currentY, currentZ, partialTicks); previousX = currentX; previousY = currentY; previousZ = currentZ; } else { drawSelectionBox(player, blockPos, partialTicks, (arrow.isInAir ? airColor : liquidColor)); AimBow.lastBlock = blockPos; break; } } GlStateManager.depthMask(true); GlStateManager.enableTexture2D(); GlStateManager.disableBlend(); }
From source file:minebot.ui.AimBow.java
public static void drawSelectionBox(EntityPlayer player, BlockPos blockpos, float partialTicks, ReadableColor color) {//from w w w .j av a 2s .c om GlStateManager.enableBlend(); GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0); GlStateManager.color(color.getRed(), color.getGreen(), color.getBlue(), 0.4F); GL11.glLineWidth(5.0F); GlStateManager.disableTexture2D(); GlStateManager.depthMask(false); float f = 0.002F; //BlockPos blockpos = movingObjectPositionIn.getBlockPos(); Block block = Minecraft.theMinecraft.theWorld.getBlockState(blockpos).getBlock(); if (block.equals(Blocks.air)) { block = Blocks.dirt; } block.setBlockBoundsBasedOnState(Minecraft.theMinecraft.theWorld, blockpos); double d0 = player.lastTickPosX + (player.posX - player.lastTickPosX) * (double) partialTicks; double d1 = player.lastTickPosY + (player.posY - player.lastTickPosY) * (double) partialTicks; double d2 = player.lastTickPosZ + (player.posZ - player.lastTickPosZ) * (double) partialTicks; AxisAlignedBB toDraw = block.getSelectedBoundingBox(Minecraft.theMinecraft.theWorld, blockpos) .expand(0.0020000000949949026D, 0.0020000000949949026D, 0.0020000000949949026D) .offset(-d0, -d1, -d2); Tessellator tessellator = Tessellator.getInstance(); WorldRenderer worldrenderer = tessellator.getWorldRenderer(); worldrenderer.begin(3, DefaultVertexFormats.POSITION); worldrenderer.pos(toDraw.minX, toDraw.minY, toDraw.minZ).endVertex(); worldrenderer.pos(toDraw.maxX, toDraw.minY, toDraw.minZ).endVertex(); worldrenderer.pos(toDraw.maxX, toDraw.minY, toDraw.maxZ).endVertex(); worldrenderer.pos(toDraw.minX, toDraw.minY, toDraw.maxZ).endVertex(); worldrenderer.pos(toDraw.minX, toDraw.minY, toDraw.minZ).endVertex(); tessellator.draw(); worldrenderer.begin(3, DefaultVertexFormats.POSITION); worldrenderer.pos(toDraw.minX, toDraw.maxY, toDraw.minZ).endVertex(); worldrenderer.pos(toDraw.maxX, toDraw.maxY, toDraw.minZ).endVertex(); worldrenderer.pos(toDraw.maxX, toDraw.maxY, toDraw.maxZ).endVertex(); worldrenderer.pos(toDraw.minX, toDraw.maxY, toDraw.maxZ).endVertex(); worldrenderer.pos(toDraw.minX, toDraw.maxY, toDraw.minZ).endVertex(); tessellator.draw(); worldrenderer.begin(1, DefaultVertexFormats.POSITION); worldrenderer.pos(toDraw.minX, toDraw.minY, toDraw.minZ).endVertex(); worldrenderer.pos(toDraw.minX, toDraw.maxY, toDraw.minZ).endVertex(); worldrenderer.pos(toDraw.maxX, toDraw.minY, toDraw.minZ).endVertex(); worldrenderer.pos(toDraw.maxX, toDraw.maxY, toDraw.minZ).endVertex(); worldrenderer.pos(toDraw.maxX, toDraw.minY, toDraw.maxZ).endVertex(); worldrenderer.pos(toDraw.maxX, toDraw.maxY, toDraw.maxZ).endVertex(); worldrenderer.pos(toDraw.minX, toDraw.minY, toDraw.maxZ).endVertex(); worldrenderer.pos(toDraw.minX, toDraw.maxY, toDraw.maxZ).endVertex(); tessellator.draw(); GlStateManager.depthMask(true); GlStateManager.enableTexture2D(); GlStateManager.disableBlend(); }
From source file:minebot.ui.PathRenderer.java
public static void drawBowStuff(EntityPlayer player, float partialTicks, float strength) { GlStateManager.enableBlend();// w ww .j a v a 2 s.c om GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0); FakeArrow ar1 = new FakeArrow(Minecraft.theMinecraft.theWorld, Minecraft.theMinecraft.thePlayer, strength, partialTicks); for (int i = 0; i < 200; i++) { ar1.onUpdate(); } Color color = ar1.didIHitAnEntity ? Color.RED : Color.BLACK; GlStateManager.color(color.getColorComponents(null)[0], color.getColorComponents(null)[1], color.getColorComponents(null)[2], 0.4F); GL11.glLineWidth(3.0F); GlStateManager.disableTexture2D(); GlStateManager.depthMask(false); FakeArrow ar = new FakeArrow(Minecraft.theMinecraft.theWorld, Minecraft.theMinecraft.thePlayer, strength, partialTicks); double prevX = ar.posX; double prevY = ar.posY; double prevZ = ar.posZ; for (int i = 0; i < 200; i++) { ar.onUpdate(); double currX = ar.posX; double currY = ar.posY; double currZ = ar.posZ; drawLine(Minecraft.theMinecraft.thePlayer, prevX - 0.5, prevY - 0.5, prevZ - 0.5, currX - 0.5, currY - 0.5, currZ - 0.5, partialTicks); prevX = currX; prevY = currY; prevZ = currZ; } GlStateManager.depthMask(true); GlStateManager.enableTexture2D(); GlStateManager.disableBlend(); }
From source file:minebot.ui.PathRenderer.java
public static void drawPath(Path path, EntityPlayer player, float partialTicks, Color color) { /*for (BlockPos pos : path.path) { drawSelectionBox(player, pos, partialTicks, color); }*//*from www . j a v a 2 s . co m*/ GlStateManager.enableBlend(); GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0); GlStateManager.color(color.getColorComponents(null)[0], color.getColorComponents(null)[1], color.getColorComponents(null)[2], 0.4F); GL11.glLineWidth(3.0F); GlStateManager.disableTexture2D(); GlStateManager.depthMask(false); boolean[] cornerFirstHalf = new boolean[path.path.size()]; boolean[] cornerSecondHalf = new boolean[path.path.size()]; for (int i = 0; i < path.path.size() - 2; i++) { BlockPos a = path.path.get(i); BlockPos b = path.path.get(i + 1); BlockPos c = path.path.get(i + 2); if (a.getY() != b.getY() || b.getY() != c.getY()) { continue; } if (b.getX() - a.getX() == c.getX() - b.getX() && b.getZ() - a.getZ() == c.getZ() - b.getZ()) { continue; } if (a.getX() != b.getX() && a.getZ() != b.getZ()) { continue; } if (b.getX() != c.getX() && b.getZ() != c.getZ()) { continue; } BlockPos corner = new BlockPos(c.getX() - b.getX() + a.getX(), a.getY(), c.getZ() - b.getZ() + a.getZ()); if (Action.avoidWalkingInto(corner) || Action.avoidWalkingInto(corner.up())) { continue; } cornerFirstHalf[i] = true; cornerSecondHalf[i + 1] = true; double bp1x = (a.getX() + b.getX()) * 0.5D; double bp1z = (a.getZ() + b.getZ()) * 0.5D; double bp2x = (c.getX() + b.getX()) * 0.5D; double bp2z = (c.getZ() + b.getZ()) * 0.5D; drawLine(player, bp1x, a.getY(), bp1z, bp2x, a.getY(), bp2z, partialTicks); } for (int i = 0; i < path.path.size() - 1; i++) { BlockPos a = path.path.get(i); BlockPos b = path.path.get(i + 1); if (cornerFirstHalf[i] && !cornerSecondHalf[i]) { drawLine(player, a.getX(), a.getY(), a.getZ(), (b.getX() + a.getX()) * 0.5D, b.getY(), (b.getZ() + a.getZ()) * 0.5D, partialTicks); } if (cornerSecondHalf[i] && !cornerFirstHalf[i]) { drawLine(player, (a.getX() + b.getX()) * 0.5D, a.getY(), (a.getZ() + b.getZ()) * 0.5D, b.getX(), b.getY(), b.getZ(), partialTicks); } if (!cornerFirstHalf[i] && !cornerSecondHalf[i]) { drawLine(player, a.getX(), a.getY(), a.getZ(), b.getX(), b.getY(), b.getZ(), partialTicks); } else { GlStateManager.color(color.getColorComponents(null)[0], color.getColorComponents(null)[1], color.getColorComponents(null)[2], 0.1F); drawLine(player, a.getX(), a.getY(), a.getZ(), b.getX(), b.getY(), b.getZ(), partialTicks); GlStateManager.color(color.getColorComponents(null)[0], color.getColorComponents(null)[1], color.getColorComponents(null)[2], 0.4F); } } //GlStateManager.color(0.0f, 0.0f, 0.0f, 0.4f); GlStateManager.depthMask(true); GlStateManager.enableTexture2D(); GlStateManager.disableBlend(); }
From source file:minebot.ui.PathRenderer.java
public static void drawSelectionBox(EntityPlayer player, BlockPos blockpos, float partialTicks, Color color) { GlStateManager.enableBlend();/*from w w w. ja va 2s . c o m*/ GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0); GlStateManager.color(color.getColorComponents(null)[0], color.getColorComponents(null)[1], color.getColorComponents(null)[2], 0.4F); GL11.glLineWidth(5.0F); GlStateManager.disableTexture2D(); GlStateManager.depthMask(false); float f = 0.002F; //BlockPos blockpos = movingObjectPositionIn.getBlockPos(); Block block = Minecraft.theMinecraft.theWorld.getBlockState(blockpos).getBlock(); if (block.equals(Blocks.air)) { block = Blocks.dirt; } block.setBlockBoundsBasedOnState(Minecraft.theMinecraft.theWorld, blockpos); double d0 = player.lastTickPosX + (player.posX - player.lastTickPosX) * (double) partialTicks; double d1 = player.lastTickPosY + (player.posY - player.lastTickPosY) * (double) partialTicks; double d2 = player.lastTickPosZ + (player.posZ - player.lastTickPosZ) * (double) partialTicks; AxisAlignedBB toDraw = block.getSelectedBoundingBox(Minecraft.theMinecraft.theWorld, blockpos) .expand(0.0020000000949949026D, 0.0020000000949949026D, 0.0020000000949949026D) .offset(-d0, -d1, -d2); Tessellator tessellator = Tessellator.getInstance(); WorldRenderer worldrenderer = tessellator.getWorldRenderer(); worldrenderer.begin(3, DefaultVertexFormats.POSITION); worldrenderer.pos(toDraw.minX, toDraw.minY, toDraw.minZ).endVertex(); worldrenderer.pos(toDraw.maxX, toDraw.minY, toDraw.minZ).endVertex(); worldrenderer.pos(toDraw.maxX, toDraw.minY, toDraw.maxZ).endVertex(); worldrenderer.pos(toDraw.minX, toDraw.minY, toDraw.maxZ).endVertex(); worldrenderer.pos(toDraw.minX, toDraw.minY, toDraw.minZ).endVertex(); tessellator.draw(); worldrenderer.begin(3, DefaultVertexFormats.POSITION); worldrenderer.pos(toDraw.minX, toDraw.maxY, toDraw.minZ).endVertex(); worldrenderer.pos(toDraw.maxX, toDraw.maxY, toDraw.minZ).endVertex(); worldrenderer.pos(toDraw.maxX, toDraw.maxY, toDraw.maxZ).endVertex(); worldrenderer.pos(toDraw.minX, toDraw.maxY, toDraw.maxZ).endVertex(); worldrenderer.pos(toDraw.minX, toDraw.maxY, toDraw.minZ).endVertex(); tessellator.draw(); worldrenderer.begin(1, DefaultVertexFormats.POSITION); worldrenderer.pos(toDraw.minX, toDraw.minY, toDraw.minZ).endVertex(); worldrenderer.pos(toDraw.minX, toDraw.maxY, toDraw.minZ).endVertex(); worldrenderer.pos(toDraw.maxX, toDraw.minY, toDraw.minZ).endVertex(); worldrenderer.pos(toDraw.maxX, toDraw.maxY, toDraw.minZ).endVertex(); worldrenderer.pos(toDraw.maxX, toDraw.minY, toDraw.maxZ).endVertex(); worldrenderer.pos(toDraw.maxX, toDraw.maxY, toDraw.maxZ).endVertex(); worldrenderer.pos(toDraw.minX, toDraw.minY, toDraw.maxZ).endVertex(); worldrenderer.pos(toDraw.minX, toDraw.maxY, toDraw.maxZ).endVertex(); tessellator.draw(); GlStateManager.depthMask(true); GlStateManager.enableTexture2D(); GlStateManager.disableBlend(); }
From source file:minesweeperMod.client.GuiAnimatedStat.java
License:LGPL
public void render(FontRenderer fontRenderer, List<String> textList, float zLevel) { doneExpanding = true;/* w w w . j av a 2s . co m*/ if (isClicked) { // calculate the width and height needed for the box to fit the // strings. int maxWidth = fontRenderer.getStringWidth(title); int maxHeight = 12; if (textList.size() > 0) { maxHeight += 4 + textList.size() * 10; } for (String line : textList) { if (fontRenderer.getStringWidth(line) > maxWidth) maxWidth = fontRenderer.getStringWidth(line); } maxWidth += 20; // expand the box for (int i = 0; i < ANIMATED_STAT_SPEED; i++) { if (width < maxWidth) { width++; doneExpanding = false; } if (height < maxHeight) { height++; doneExpanding = false; } if (width > maxWidth) width--; if (height > maxHeight) height--; } } else { for (int i = 0; i < ANIMATED_STAT_SPEED; i++) { if (width > minWidth) width--; if (height > minHeight) height--; } doneExpanding = false; } affectedY = baseY; if (affectingStat != null) { affectedY += affectingStat.affectedY + affectingStat.height; } if (leftSided) width *= -1; Gui.drawRect(baseX, affectedY, baseX + width, affectedY + height, backGroundColor); GL11.glDisable(GL11.GL_TEXTURE_2D); GL11.glLineWidth(3.0F); GL11.glColor4d(0, 0, 0, 1); Tessellator tess = Tessellator.instance; tess.startDrawing(GL11.GL_LINE_LOOP); tess.addVertex(baseX, affectedY, zLevel); tess.addVertex(baseX + width, affectedY, zLevel); tess.addVertex(baseX + width, affectedY + height, zLevel); tess.addVertex(baseX, affectedY + height, zLevel); tess.draw(); GL11.glEnable(GL11.GL_TEXTURE_2D); if (leftSided) width *= -1; // if done expanding, draw the information if (doneExpanding) { fontRenderer.drawStringWithShadow(title, baseX + (leftSided ? -width + 2 : 18), affectedY + 2, 0xFFFF00); for (int i = 0; i < textList.size(); i++) { if (textList.get(i).contains("\u00a70")) { fontRenderer.drawString(textList.get(i), baseX + (leftSided ? -width + 2 : 18), affectedY + i * 10 + 12, 0xFFFFFF); } else { fontRenderer.drawStringWithShadow(textList.get(i), baseX + (leftSided ? -width + 2 : 18), affectedY + i * 10 + 12, 0xFFFFFF); } } } }