@Override public void renderTileEntityAt(TileEntity t, double x, double y, double z, float partialTicks) { tile = (TileEntityHologramProjector) t; // tile.arraySize.updateValue(tile.holoObjects); OpenGLM.pushMatrix(); OpenGLM.translate(x, y, z); GL11U.texture(false); GL11U.glLighting(true); TessUtil.drawCube( t.getBlockType().getBlockBoundsMinX(), t.getBlockType().getBlockBoundsMinY(), t.getBlockType().getBlockBoundsMinZ(), t.getBlockType().getBlockBoundsMaxX(), t.getBlockType().getBlockBoundsMaxY(), t.getBlockType().getBlockBoundsMaxZ()); GL11U.setUpOpaqueRendering(1); GL11U.glScale(0.99999); ColorF color = new ColorF( UtilM.fluctuateSmooth(10, 0) * 0.2 + tile.mainColor.x, UtilM.fluctuateSmooth(35, 0) * 0.2 + tile.mainColor.y, UtilM.fluctuateSmooth(16, 0) * 0.2 + tile.mainColor.z, 0.2); color.bind(); OpenGLM.translate(tile.offset.x, tile.offset.y - UtilM.p * 1.45F, 0.5F); tile.main.draw(); OpenGLM.translate(tile.size.x, tile.size.y, 0); boolean selected = false; tile.selectedObj = null; Iterator<HoloObject> holos = tile.holoObjects.iterator(); while (holos.hasNext()) { HoloObject ro = holos.next(); if (ro.host == null) ro.host = tile; OpenGLM.pushMatrix(); OpenGLM.translate(ro.position.x, ro.position.y, 0); ro.render(color); OpenGLM.popMatrix(); if (((ro.getClass() == TextBox.class && tile.highlights[0]) || (ro.getClass() == Button.class && tile.highlights[1]) || (ro.getClass() == Slider.class && tile.highlights[3]) || (ro.getClass() == Field.class && tile.highlights[2])) && !selected && (ro.isHighlighted || ro.moveMode)) { selected = true; OpenGLM.color(0, 0, 0, 0.4F); OpenGLM.lineWidth(1); GL11U.texture(false); ro.drawHighlight(); GL11U.texture(true); } } GL11U.glColor(ColorF.WHITE); GL11U.glCulFace(true); GL11U.texture(true); GL11U.endOpaqueRendering(); OpenGLM.popMatrix(); // tile.arraySize.updateValue(tile.holoObjects); }
@Override public void render(int xScreen, int yScreen, float partialTicks) { if (data == null) data = ExtendedPlayerData.get(player); if (data == null) return; if (data.player != player) { data = ExtendedPlayerData.get(player); } if (data == null) return; FontRenderer fr = TessUtil.getFontRenderer(); if (UtilM.isNull(player, fr)) return; if (handAlpha > 0 && UtilM.isItemInStack(MItems.theHand, player.getCurrentEquippedItem())) { float HandAlpha = PartialTicksUtil.calculatePos(lastHandAlpha, handAlpha); int slot = player.inventory.currentItem; OpenGLM.pushMatrix(); int posId = 0; for (int b = 0; b < HandPosition.values().length; b++) { if (HandPosition.values()[b].equals(TheHandHandler.getActivePosition(player))) { posId = b; continue; } } int a1 = -1, a2 = -1, a3 = -1; if (posId == 1) { a1 = posId - 1; a2 = posId; a3 = posId + 1; } else if (posId == 0) { a1 = 2; a2 = posId; a3 = posId + 1; } else { a1 = 1; a2 = posId; a3 = 0; } String up = "string " + a1, now = "string " + a2, down = "string " + a3; GL11U.setUpOpaqueRendering(1); OpenGLM.translate(slot * 20 + xScreen / 2 - 95, yScreen - 38, 0); OpenGLM.translate(0, -HandAlpha * 20 + 20, 0); OpenGLM.translate(13, 0, 0); OpenGLM.scale(HandAlpha, HandAlpha, HandAlpha); OpenGLM.rotate(HandAlpha * 90 - 90, 0, 0, 1); OpenGLM.translate(-13, 0, 0); OpenGLM.translate(-10 + HandAlpha * 10, 0, 0); fr.drawStringWithShadow(up, 0, -9, Color.WHITE.hashCode()); OpenGLM.translate(10 - HandAlpha * 10, 0, 0); fr.drawStringWithShadow(now, 0, 0, Color.WHITE.hashCode()); OpenGLM.translate(10 - HandAlpha * 10, 0, 0); fr.drawStringWithShadow(down, 0, 9, Color.WHITE.hashCode()); GL11U.endOpaqueRendering(); OpenGLM.popMatrix(); } }