下面列出了net.minecraft.util.MovingObjectPosition#net.minecraft.client.renderer.GlStateManager 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
public void drawTextWithStyle(String text, float x, float y, int color) {
GlStateManager.pushMatrix();
GlStateManager.translate(x, y, 0);
if (main.getConfigValues().getTextStyle() == EnumUtils.TextStyle.STYLE_TWO) {
int colorAlpha = Math.max(getAlpha(color), 4);
int colorBlack = new Color(0, 0, 0, colorAlpha/255F).getRGB();
String strippedText = TextUtils.stripColor(text);
Minecraft.getMinecraft().fontRendererObj.drawString(strippedText,1, 0, colorBlack, false);
Minecraft.getMinecraft().fontRendererObj.drawString(strippedText, -1, 0, colorBlack, false);
Minecraft.getMinecraft().fontRendererObj.drawString(strippedText, 0, 1, colorBlack, false);
Minecraft.getMinecraft().fontRendererObj.drawString(strippedText, 0, -1, colorBlack, false);
Minecraft.getMinecraft().fontRendererObj.drawString(text, 0, 0, color, false);
} else {
Minecraft.getMinecraft().fontRendererObj.drawString(text, 0, 0, color, true);
}
GlStateManager.popMatrix();
}
public static void drawPotionEffect(PotionEffect potion, int x, int y) {
int index = potion.getPotion().getStatusIconIndex();
GlStateManager.pushMatrix();
RenderHelper.enableGUIStandardItemLighting();
GlStateManager.disableLighting();
GlStateManager.enableRescaleNormal();
GlStateManager.enableColorMaterial();
GlStateManager.enableLighting();
GlStateManager.enableTexture2D();
GlStateManager.color(1.f, 1.f, 1.f, 1.f);
MC.getTextureManager().bindTexture(GuiContainer.INVENTORY_BACKGROUND);
drawTexturedRect(x, y, index % 8 * 18, 198 + index / 8 * 18, 18, 18, 100);
potion.getPotion().renderHUDEffect(x, y, potion, MC, 255);
GlStateManager.disableLighting();
GlStateManager.enableDepth();
GlStateManager.color(1.f, 1.f, 1.f, 1.f);
GlStateManager.popMatrix();
}
public void draw() {
GlStateManager.disableDepth();
GlStateManager.enableBlend();
Minecraft.getMinecraft().getTextureManager().bindTexture(CraftingPattern.ICONS);
GlStateManager.color(1,1,1, 1F);
for(CraftingPattern craftingPattern : CraftingPattern.values()) {
int offset = getYOffsetByIndex(craftingPattern.index);
GlStateManager.color(1,1,1, 1F);
mc.ingameGUI.drawTexturedModalRect(x, y+ offset, 0, offset, ICON_SIZE, ICON_SIZE);
if(craftingPattern != SkyblockAddons.getInstance().getPersistentValues().getSelectedCraftingPattern()) {
GlStateManager.color(1,1,1, .5F);
mc.ingameGUI.drawTexturedModalRect(x, y+ offset, 33, 0, ICON_SIZE, ICON_SIZE);
}
}
GlStateManager.disableBlend();
GlStateManager.enableDepth();
blockIncompleteCheckBox.draw();
}
@Override
public void drawInBackground(int mouseX, int mouseY, IRenderContext context) {
Position pos = getPosition();
Size size = getSize();
if (backgroundArea != null) {
backgroundArea.draw(pos.x, pos.y, size.width, size.height);
}
if(displayString == null) {
this.displayString = getDisplayString();
}
sliderIcon.draw(pos.x + (int) (this.sliderPosition * (float) (size.width - 8)), pos.y, sliderWidth, size.height);
FontRenderer fontRenderer = Minecraft.getMinecraft().fontRenderer;
fontRenderer.drawString(displayString,
pos.x + size.width / 2 - fontRenderer.getStringWidth(displayString) / 2,
pos.y + size.height / 2 - fontRenderer.FONT_HEIGHT / 2, textColor);
GlStateManager.color(1.0f, 1.0f, 1.0f);
}
/**
* Sets the models various rotation angles then renders the model.
*/
@Override
public void render(Entity entityIn, float p_78088_2_, float p_78088_3_, float p_78088_4_, float p_78088_5_, float p_78088_6_, float scale)
{
this.setRotationAngles(p_78088_2_, p_78088_3_, p_78088_4_, p_78088_5_, p_78088_6_, scale, entityIn);
if(((EntityBigCat)entityIn).getGender() == Gender.Male)
{
GlStateManager.scale(1.5, 1.5, 1.5);
GlStateManager.translate(0.0, -0.5, -0.5);
}
else
{
GlStateManager.scale(1.4, 1.4, 1.4);
GlStateManager.translate(0.0, -0.44, -0.5);
}
Neck.render(scale);
HEAD.render(scale);
BODY.render(scale);
LegLEFTREAR.render(scale);
LegLEFTFRONT.render(scale);
LegRIGHTFRONT.render(scale);
LegRIGHTREAR.render(scale);
}
public static void prepareTexture(int target, int texture, int min_mag_filter, int wrap) {
GL11.glTexParameteri(target, GL11.GL_TEXTURE_MIN_FILTER, min_mag_filter);
GL11.glTexParameteri(target, GL11.GL_TEXTURE_MAG_FILTER, min_mag_filter);
if(target == GL11.GL_TEXTURE_2D)
GlStateManager.bindTexture(target);
else
GL11.glBindTexture(target, texture);
switch (target) {
case GL12.GL_TEXTURE_3D:
GL11.glTexParameteri(target, GL12.GL_TEXTURE_WRAP_R, wrap);
case GL11.GL_TEXTURE_2D:
GL11.glTexParameteri(target, GL11.GL_TEXTURE_WRAP_T, wrap);
case GL11.GL_TEXTURE_1D:
GL11.glTexParameteri(target, GL11.GL_TEXTURE_WRAP_S, wrap);
}
}
@Override
public void render(ItemStack stack, float patrtialTicks) {
GlStateManager.pushMatrix();
RenderItem renderItem = Minecraft.getMinecraft().getRenderItem();
renderItem.renderItem(stack, parent);
InventoryBPortableBarrel barrel = BlocksItemsBetterChests.betterportablebarrel.getInventoryFor(stack, null);
if (barrel != null && barrel.getChestPart().isItemSet()) {
InventoryPartBarrel part = barrel.getChestPart();
GlStateManager.pushMatrix();
GlStateManager.translate(0, 0, -0.05);
GlStateManager.scale(0.8, 0.8, 0.8);
renderItem.renderItem(part.getDummy(), TransformType.FIXED);
GlStateManager.enableBlend();
GlStateManager.popMatrix();
}
GlStateManager.popMatrix();
}
@Override
public void drawButton(Minecraft mc, int mouseX, int mouseY) {
if (visible) {
float alphaMultiplier = 1F;
if (main.getUtils().isFadingIn()) {
long timeSinceOpen = System.currentTimeMillis() - timeOpened;
int fadeMilis = 500;
if (timeSinceOpen <= fadeMilis) {
alphaMultiplier = (float) timeSinceOpen / fadeMilis;
}
}
hovered = mouseX >= this.xPosition && mouseY >= this.yPosition && mouseX < this.xPosition + this.width && mouseY < this.yPosition + this.height;
// Alpha multiplier is from 0 to 1, multiplying it creates the fade effect.
// Regular features are red if disabled, green if enabled or part of the gui feature is enabled.
GlStateManager.enableBlend();
GlStateManager.color(1,1,1,alphaMultiplier*0.7F);
if (hovered) {
GlStateManager.color(1,1,1,1);
}
mc.getTextureManager().bindTexture(GEAR);
main.getUtils().drawModalRectWithCustomSizedTexture(xPosition, yPosition,0,0,width,height,width,height, true);
}
}
/**
* Sets the models various rotation angles then renders the model.
*/
@Override
public void render(Entity entityIn, float p_78088_2_, float p_78088_3_, float p_78088_4_, float p_78088_5_, float p_78088_6_, float scale)
{
this.setRotationAngles(p_78088_2_, p_78088_3_, p_78088_4_, p_78088_5_, p_78088_6_, scale, entityIn);
GlStateManager.pushMatrix();
//GlStateManager.translate(0.0F, 0.0F, -0.5F);
Body.render(scale);
Tail.render(scale);
LegFrontLUpper.render(scale);
LegFrontRUpper.render(scale);
LegRearLUpper.render(scale);
LegRearRUpper.render(scale);
Mane.render(scale);
GlStateManager.popMatrix();
}
private void drawItems() {
Dimension d = GuiDraw.getDisplayRes();
GlStateManager.matrixMode(GL11.GL_PROJECTION);
GlStateManager.loadIdentity();
GlStateManager.ortho(0, d.width * 16D / iconSize, d.height * 16D / iconSize, 0, 1000, 3000);
GlStateManager.matrixMode(GL11.GL_MODELVIEW);
GlStateManager.clearColor(0, 0, 0, 0);
GlStateManager.clear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT);
int rows = d.height / boxSize;
int cols = d.width / boxSize;
int fit = rows * cols;
RenderHelper.enableGUIStandardItemLighting();
GlStateManager.enableRescaleNormal();
GlStateManager.color(1, 1, 1, 1);
for (int i = 0; drawIndex < ItemPanel.items.size() && i < fit; drawIndex++, i++) {
int x = i % cols * 18;
int y = i / cols * 18;
GuiHelper.drawItem(x + 1, y + 1, ItemPanel.items.get(drawIndex));
}
GL11.glFlush();
}
@Override
public void render(Entity entityIn, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scale)
{
super.render(entityIn, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale);
GlStateManager.pushMatrix();
if (this.isChild)
{
float f = 2.0F;
GlStateManager.scale(1.0F / f, 1.0F / f, 1.0F / f);
GlStateManager.translate(0.0F, 24.0F * scale, 0.0F);
this.bottomThing.render(scale);
}
else
{
if (entityIn.isSneaking())
{
GlStateManager.translate(0.0F, 0.2F, 0.0F);
}
this.bottomThing.render(scale);
}
GlStateManager.popMatrix();
}
private void renderText(String text, double x, double y, double z, EnumFacing side, EnumFacing barrelFront)
{
FontRenderer fontRenderer = this.mc.fontRenderer;
int strLenHalved = fontRenderer.getStringWidth(text) / 2;
GlStateManager.pushMatrix();
GlStateManager.translate(x, y, z);
if (side == EnumFacing.UP || side == EnumFacing.DOWN)
{
GlStateManager.rotate(LABEL_ROT_SIDE_Y[barrelFront.getIndex()], 0, 1, 0);
GlStateManager.rotate(90f * side.getYOffset(), 1, 0, 0);
}
else
{
GlStateManager.rotate(LABEL_ROT_SIDE_Y[side.getIndex()], 0, 1, 0);
}
GlStateManager.translate(0, 0.48, 0);
GlStateManager.scale(-0.01F, -0.01F, 0.01F);
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
GlStateManager.disableLighting();
GlStateManager.enablePolygonOffset();
GlStateManager.depthMask(false);
GlStateManager.enableBlend();
GlStateManager.doPolygonOffset(-1, -20);
this.getFontRenderer().drawString(text, -strLenHalved, 0, 0xFFFFFFFF);
GlStateManager.disableBlend();
GlStateManager.depthMask(true);
GlStateManager.disablePolygonOffset();
GlStateManager.enableLighting();
GlStateManager.popMatrix();
}
/**
* Sets the models various rotation angles then renders the model.
*/
@Override
public void render(Entity entityIn, float p_78088_2_, float p_78088_3_, float p_78088_4_, float p_78088_5_, float p_78088_6_, float scale)
{
this.setRotationAngles(p_78088_2_, p_78088_3_, p_78088_4_, p_78088_5_, p_78088_6_, scale, entityIn);
if (this.isChild)
{
float f6 = 2.0F;
GlStateManager.pushMatrix();
//GlStateManager.translate(0.0F, this.childYOffset * scale, this.childZOffset * scale);
this.Head.render(scale);
GlStateManager.popMatrix();
GlStateManager.pushMatrix();
GlStateManager.scale(1.0F / f6, 1.0F / f6, 1.0F / f6);
GlStateManager.translate(0.0F, 24.0F * scale, 0.0F);
this.Body.render(scale);
LegLeftFront.render(scale);
LegLeftRear.render(scale);
LegRightFront.render(scale);
LegRightRear.render(scale);
GlStateManager.popMatrix();
}
else
{
GlStateManager.pushMatrix();
GlStateManager.translate(0.0F, 0.0F, -0.5F);
this.Head.render(scale);
this.Body.render(scale);
LegLeftFront.render(scale);
LegLeftRear.render(scale);
LegRightFront.render(scale);
LegRightRear.render(scale);
GlStateManager.popMatrix();
}
}
@Override
public void draw(int mx, int my, float frame) {
changeTexture(guiTex);
GlStateManager.color(1, 1, 1, 1);
drawPrefix();
drawButton(mx, my);
}
public void render(double keyframe, int brightness) {
for (int i = 0; i < transformations.size(); i++) {
Vector customPivot = new Vector(pivot);
for (int j = transformations.size() - 1; j > i; j--) {
transformations.get(j).changePivot(customPivot, keyframe);
}
GlStateManager.translate(customPivot.X, customPivot.Y, customPivot.Z);
transformations.get(i).transform(keyframe);
GlStateManager.translate(-customPivot.X, -customPivot.Y, -customPivot.Z);
}
// Vector customPivot = pivot.createMutibleVectorCopy();
// GlStateManager.translate(-customPivot.X, -customPivot.Y, -customPivot.Z);
modelRenderer.renderModel(modelName, brightness);
}
@Override
public void drawButton(Minecraft minecraft, int mouseX, int mouseY, float partialTicks) {
if (!visible) {
return;
}
FontRenderer fontrenderer = minecraft.fontRenderer;
TextureUtils.changeTexture(GUI_TEX);
GlStateManager.color(1, 1, 1, 1);
boolean flag = mouseX >= x && mouseY >= y && mouseX < x + width && mouseY < y + height;
int k = getHoverState(flag);
drawTexturedModalRect(x, y, 0, 46 + k * 20, width / 2, height / 2);//top left
drawTexturedModalRect(x + width / 2, y, 200 - width / 2, 46 + k * 20, width / 2, height / 2);//top right
drawTexturedModalRect(x, y + height / 2, 0, 46 + k * 20 + 20 - height / 2, width / 2, height / 2);//bottom left
drawTexturedModalRect(x + width / 2, y + height / 2, 200 - width / 2, 46 + k * 20 + 20 - height / 2, width / 2, height / 2);//bottom right
mouseDragged(minecraft, mouseX, mouseY);
if (!enabled) {
drawCenteredString(fontrenderer, displayString, x + width / 2, y + (height - 8) / 2, 0xffa0a0a0);
} else if (flag) {
drawCenteredString(fontrenderer, displayString, x + width / 2, y + (height - 8) / 2, 0xffffa0);
} else {
drawCenteredString(fontrenderer, displayString, x + width / 2, y + (height - 8) / 2, 0xe0e0e0);
}
}
public static void drawFilledCircle(int x, int y, float radius, int color) {
GlStateManager.pushAttrib();
GlStateManager.pushMatrix();
GlStateManager.enableBlend();
GlStateManager.tryBlendFuncSeparate(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA, GL11.GL_ONE, GL11.GL_ZERO);
GlStateManager.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
GlStateManager.disableTexture2D();
GL11.glBegin(GL11.GL_TRIANGLE_FAN);
for (int i = 0; i < 50; i++) {
float px = x + radius * MathHelper.sin((float) (i * (6.28318530718 / 50)));
float py = y + radius * MathHelper.cos((float) (i * (6.28318530718 / 50)));
float alpha = (color >> 24 & 255) / 255.0F;
float red = (color >> 16 & 255) / 255.0F;
float green = (color >> 8 & 255) / 255.0F;
float blue = (color & 255) / 255.0F;
GL11.glColor4f(red, green, blue, alpha);
GL11.glVertex2d(px, py);
}
GL11.glEnd();
GlStateManager.enableTexture2D();
GlStateManager.disableBlend();
GlStateManager.popAttrib();
GlStateManager.popMatrix();
GlStateManager.bindTexture(0);
GlStateManager.color(1.0f, 1.0f, 1.0f, 1.0f);
}
public void rotateCorpse(T bat, float rotation, float partialTicks) {
GlStateManager.rotate(180.0F - rotation, 0.0F, 1.0F, 0.0F);
if (bat.deathTime > 0) {
float f = ((float) bat.deathTime + partialTicks - 1.0F) / 20.0F * 1.6F;
f = MathHelper.sqrt_float(f);
if (f > 1.0F) f = 1.0F;
GlStateManager.rotate(f * ((IMixinRendererLivingEntity<T>) parent).callGetDeathMaxRotation(bat), 0.0F, 0.0F, 1.0F);
} else {
Hyperium.INSTANCE.getHandlers().getFlipHandler().transform(bat);
}
}
public static void glBillboard(float x, float y, float z) {
float scale = 0.016666668f * 1.6f;
GlStateManager.translate(x - Minecraft.getMinecraft().getRenderManager().renderPosX, y - Minecraft.getMinecraft().getRenderManager().renderPosY, z - Minecraft.getMinecraft().getRenderManager().renderPosZ);
GlStateManager.glNormal3f(0.0f, 1.0f, 0.0f);
GlStateManager.rotate(-Minecraft.getMinecraft().player.rotationYaw, 0.0f, 1.0f, 0.0f);
GlStateManager.rotate(Minecraft.getMinecraft().player.rotationPitch, Minecraft.getMinecraft().gameSettings.thirdPersonView == 2 ? -1.0f : 1.0f, 0.0f, 0.0f);
GlStateManager.scale(-scale, -scale, scale);
}
@Override
protected void renderComponentForeground(int x, int y, int mouseX, int mouseY) {
GlStateManager.color(1, 1, 1);
if (container != null) {
for (Slot slot : container.inventorySlots) {
bindComponentsSheet();
MoreObjects.firstNonNull(slotRenderers.get(slot.slotNumber), normalSlot).render(this, slot);
}
}
}
@Override
public void drawButton(Minecraft mc, int mouseX, int mouseY) {
if (visible) {
float alphaMultiplier = 1F;
if (main.getUtils().isFadingIn()) {
long timeSinceOpen = System.currentTimeMillis() - timeOpened;
int fadeMilis = 500;
if (timeSinceOpen <= fadeMilis) {
alphaMultiplier = (float) timeSinceOpen / fadeMilis;
}
}
hovered = mouseX >= this.xPosition && mouseY >= this.yPosition && mouseX < this.xPosition + this.width && mouseY < this.yPosition + this.height;
// Alpha multiplier is from 0 to 1, multiplying it creates the fade effect.
// Regular features are red if disabled, green if enabled or part of the gui feature is enabled.
GlStateManager.enableBlend();
if (arrowType == ArrowType.RIGHT) {
mc.getTextureManager().bindTexture(ARROW_RIGHT);
} else {
mc.getTextureManager().bindTexture(ARROW_LEFT);
}
if (max) {
GlStateManager.color(0.5F, 0.5F, 0.5F, alphaMultiplier * 0.5F);
} else {
GlStateManager.color(1, 1, 1, alphaMultiplier * 0.7F);
if (hovered) {
GlStateManager.color(1, 1, 1, 1);
}
}
drawModalRectWithCustomSizedTexture(xPosition, yPosition,0,0,width,height,width,height);
}
}
@Override
public void drawInBackground(int mouseX, int mouseY, IRenderContext context) {
FontRenderer fontRenderer = Minecraft.getMinecraft().fontRenderer;
String text = formatLocale.isEmpty() ? (I18n.hasKey(lastText) ? I18n.format(lastText) : lastText) : I18n.format(formatLocale, lastText);
Position position = getPosition();
fontRenderer.drawString(text,
position.x - fontRenderer.getStringWidth(text) / 2,
position.y - fontRenderer.FONT_HEIGHT / 2, color);
GlStateManager.color(1.0f, 1.0f, 1.0f);
}
private void renderElements() {
if (fontRendererObj == null) fontRendererObj = Minecraft.getMinecraft().fontRendererObj;
// Mouse Button Left
boolean m = Mouse.isButtonDown(0);
if (m != last) {
last = m;
if (m) clicks.add(System.currentTimeMillis());
}
// Mouse Button Right
boolean rm = Mouse.isButtonDown(1);
if (rm != rLast) {
rLast = rm;
if (rm) rClicks.add(System.currentTimeMillis());
}
// Others
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
List<DisplayElement> elementList = mod.getDisplayElements();
elementList.forEach(element -> {
startDrawing(element);
try {
element.draw();
} catch (Exception ignored) {
}
endDrawing(element);
});
}
@Override
protected void drawGuiContainerBackgroundLayer(float partialTicks, int mouseX, int mouseY) {
GlStateManager.color(1.0f, 1.0f, 1.0f, 1.0f);
this.mc.getTextureManager().bindTexture(TEXTURES);
this.drawTexturedModalRect(this.guiLeft, this.guiTop, 0, 0, this.xSize, this.ySize);
}
private void drawItemStack(ItemStack stack, int x, int y, String altText)
{
GlStateManager.translate(0.0F, 0.0F, 32.0F);
this.zLevel = 500.0F;
itemRender.zLevel = 500.0F;
FontRenderer font = null;
if (stack != null) font = stack.getItem().getFontRenderer(stack);
if (font == null) font = fontRendererObj;
this.itemRender.renderItemAndEffectIntoGUI(stack, x, y);
this.itemRender.renderItemOverlayIntoGUI(font, stack, x, y - (this.draggedStack == null ? 0 : 8), altText);
this.zLevel = 0.0F;
this.itemRender.zLevel = 0.0F;
}
public static void enableBlend() {
GlStateManager.enableBlend();
GlStateManager.tryBlendFuncSeparate(
GlStateManager.SourceFactor.SRC_ALPHA,
GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA,
GlStateManager.SourceFactor.ONE,
GlStateManager.DestFactor.ZERO);
}
public static void render(float frame) {
GlStateManager.pushMatrix();
Entity entity = Minecraft.getMinecraft().getRenderViewEntity();
RenderUtils.translateToWorldCoords(entity, frame);
renderChunkBounds(entity);
renderMobSpawnOverlay(entity);
GlStateManager.popMatrix();
}
private void drawModularBar(Minecraft mc, Color color, boolean filled, float x, float y, ButtonLocation buttonLocation, Feature feature, int fillWidth, int maxWidth) {
Gui gui = mc.ingameGUI;
if (buttonLocation != null) {
gui = buttonLocation;
}
if (color.getRGB() == ChatFormatting.BLACK.getRGB()) {
GlStateManager.color(0.25F, 0.25F, 0.25F); // too dark normally
} else { // a little darker for contrast
GlStateManager.color(((float) color.getRed() / 255) * 0.9F, ((float) color.getGreen() / 255) * 0.9F, ((float) color.getBlue() / 255) * 0.9F);
}
IntPair sizes = main.getConfigValues().getSizes(feature);
if (!filled) fillWidth = maxWidth;
drawBarStart(gui, x, y, filled, sizes.getX(), sizes.getY(), fillWidth, color, maxWidth);
}
/**
* This renders a bar for the skeleton hat bones bar.
*/
public void drawSkeletonBar(Minecraft mc, float scale, ButtonLocation buttonLocation) {
float x = main.getConfigValues().getActualX(Feature.SKELETON_BAR);
float y = main.getConfigValues().getActualY(Feature.SKELETON_BAR);
int bones = 0;
if (!(mc.currentScreen instanceof LocationEditGui)) {
for (Entity listEntity : mc.theWorld.loadedEntityList) {
if (listEntity instanceof EntityItem &&
listEntity.ridingEntity instanceof EntityArmorStand && listEntity.ridingEntity.isInvisible() && listEntity.getDistanceToEntity(mc.thePlayer) <= 8) {
bones++;
}
}
} else {
bones = 3;
}
if (bones > 3) bones = 3;
int height = 16;
int width = 3 * 16;
x -= width * scale / 2F;
y -= height * scale / 2F;
x /= scale;
y /= scale;
if (buttonLocation != null) {
buttonLocation.checkHoveredAndDrawBox(x, x+width, y, y+height, scale);
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
}
main.getUtils().enableStandardGLOptions();
for (int boneCounter = 0; boneCounter < bones; boneCounter++) {
renderItem(BONE_ITEM, x + boneCounter * 16, y);
}
main.getUtils().restoreGLOptions();
}
public void drawItemPickupLog(float scale, ButtonLocation buttonLocation) {
float x = main.getConfigValues().getActualX(Feature.ITEM_PICKUP_LOG);
float y = main.getConfigValues().getActualY(Feature.ITEM_PICKUP_LOG);
EnumUtils.AnchorPoint anchorPoint = main.getConfigValues().getAnchorPoint(Feature.ITEM_PICKUP_LOG);
boolean downwards = anchorPoint == EnumUtils.AnchorPoint.TOP_RIGHT || anchorPoint == EnumUtils.AnchorPoint.TOP_LEFT;
int lineHeight = 8 + 1; // 1 pixel spacer
int height = lineHeight * 3 - 1;
int width = MinecraftReflection.FontRenderer.getStringWidth("+ 1x Forceful Ember Chestplate");
x -= width * scale / 2F;
y -= height * scale / 2F;
x /= scale;
y /= scale;
if (buttonLocation != null) {
buttonLocation.checkHoveredAndDrawBox(x, x+width, y, y+height, scale);
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
}
main.getUtils().enableStandardGLOptions();
int i = 0;
Collection<ItemDiff> log = main.getInventoryUtils().getItemPickupLog();
if (buttonLocation != null) {
log = DUMMY_PICKUP_LOG;
}
for (ItemDiff itemDiff : log) {
String text = String.format("%s %sx §r%s", itemDiff.getAmount() > 0 ? "§a+" : "§c-",
Math.abs(itemDiff.getAmount()), itemDiff.getDisplayName());
float stringY = y + (i * lineHeight);
if (!downwards) {
stringY = y + height - (i * lineHeight) - 8;
}
main.getUtils().drawTextWithStyle(text, x, stringY, 0xFFFFFFFF);
i++;
}
main.getUtils().restoreGLOptions();
}