diff options
| author | Danielshe <shekwancheung0528@gmail.com> | 2019-11-03 14:44:52 +0800 |
|---|---|---|
| committer | Danielshe <shekwancheung0528@gmail.com> | 2019-11-03 14:44:59 +0800 |
| commit | 9f5a9eae9a7863412cc5eb433bf15e5ee71da616 (patch) | |
| tree | 0e6b0b94af061c5e9023b1ff19f339a6c30149be /src/main/java/me/shedaniel/rei/gui/widget/PanelWidget.java | |
| parent | 3e3e25855b9f6df507a7d4c8a07c64b9a502fae2 (diff) | |
| download | RoughlyEnoughItems-9f5a9eae9a7863412cc5eb433bf15e5ee71da616.tar.gz RoughlyEnoughItems-9f5a9eae9a7863412cc5eb433bf15e5ee71da616.tar.bz2 RoughlyEnoughItems-9f5a9eae9a7863412cc5eb433bf15e5ee71da616.zip | |
3.2.1
Diffstat (limited to 'src/main/java/me/shedaniel/rei/gui/widget/PanelWidget.java')
| -rw-r--r-- | src/main/java/me/shedaniel/rei/gui/widget/PanelWidget.java | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/src/main/java/me/shedaniel/rei/gui/widget/PanelWidget.java b/src/main/java/me/shedaniel/rei/gui/widget/PanelWidget.java new file mode 100644 index 000000000..116006ba3 --- /dev/null +++ b/src/main/java/me/shedaniel/rei/gui/widget/PanelWidget.java @@ -0,0 +1,111 @@ +/* + * Roughly Enough Items by Danielshe. + * Licensed under the MIT License. + */ + +package me.shedaniel.rei.gui.widget; + +import com.mojang.blaze3d.platform.GlStateManager; +import me.shedaniel.math.api.Rectangle; +import me.shedaniel.math.compat.RenderHelper; +import me.shedaniel.rei.RoughlyEnoughItemsCore; +import me.shedaniel.rei.api.annotations.Experimental; +import me.shedaniel.rei.gui.config.RecipeScreenType; +import me.shedaniel.rei.impl.ScreenHelper; +import net.minecraft.client.render.BufferBuilder; +import net.minecraft.client.render.GuiLighting; +import net.minecraft.client.render.Tessellator; +import net.minecraft.client.render.VertexFormats; +import net.minecraft.util.Identifier; + +import java.util.Collections; +import java.util.List; + +@Experimental +@Deprecated +public class PanelWidget extends WidgetWithBounds { + + private static final Identifier CHEST_GUI_TEXTURE = new Identifier("roughlyenoughitems", "textures/gui/recipecontainer.png"); + private static final Identifier CHEST_GUI_TEXTURE_DARK = new Identifier("roughlyenoughitems", "textures/gui/recipecontainer_dark.png"); + + private Rectangle bounds; + private int color = -1; + + public PanelWidget(Rectangle bounds) { + this.bounds = bounds; + } + + @Override + public Rectangle getBounds() { + return bounds; + } + + @Override + public List<Widget> children() { + return Collections.emptyList(); + } + + public void render() { + render(0, 0, 0); + } + + public int getColor() { + return color; + } + + public void setColor(int color) { + this.color = color; + } + + @Override + public void render(int mouseX, int mouseY, float delta) { + if (!isRendering()) + return; + float red = ((color >> 16) & 0xFF) / 255f; + float green = ((color >> 8) & 0xFF) / 255f; + float blue = ((color >> 0) & 0xFF) / 255f; + float alpha = ((color >> 32) & 0xFF) / 255f; + RenderHelper.color4f(red, green, blue, alpha); + GuiLighting.disable(); + minecraft.getTextureManager().bindTexture(ScreenHelper.isDarkModeEnabled() ? CHEST_GUI_TEXTURE_DARK : CHEST_GUI_TEXTURE); + int x = bounds.x, y = bounds.y, width = bounds.width, height = bounds.height; + int xTextureOffset = getXTextureOffset(); + int yTextureOffset = getYTextureOffset(); + + //Four Corners + this.blit(x, y, 106 + xTextureOffset, 124 + yTextureOffset, 4, 4); + this.blit(x + width - 4, y, 252 + xTextureOffset, 124 + yTextureOffset, 4, 4); + this.blit(x, y + height - 4, 106 + xTextureOffset, 186 + yTextureOffset, 4, 4); + this.blit(x + width - 4, y + height - 4, 252 + xTextureOffset, 186 + yTextureOffset, 4, 4); + + //Sides + for (int xx = 4; xx < width - 4; xx += 128) { + int thisWidth = Math.min(128, width - 4 - xx); + this.blit(x + xx, y, 110 + xTextureOffset, 124 + yTextureOffset, thisWidth, 4); + this.blit(x + xx, y + height - 4, 110 + xTextureOffset, 186 + yTextureOffset, thisWidth, 4); + } + for (int yy = 4; yy < height - 4; yy += 50) { + int thisHeight = Math.min(50, height - 4 - yy); + this.blit(x, y + yy, 106 + xTextureOffset, 128 + yTextureOffset, 4, thisHeight); + this.blit(x + width - 4, y + yy, 252 + xTextureOffset, 128 + yTextureOffset, 4, thisHeight); + } + fillGradient(x + 4, y + 4, x + width - 4, y + height - 4, getInnerColor(), getInnerColor()); + } + + protected boolean isRendering() { + return RoughlyEnoughItemsCore.getConfigManager().getConfig().getRecipeScreenType() != RecipeScreenType.VILLAGER; + } + + protected int getInnerColor() { + return ScreenHelper.isDarkModeEnabled() ? -13750738 : -3750202; + } + + protected int getXTextureOffset() { + return 0; + } + + protected int getYTextureOffset() { + return RoughlyEnoughItemsCore.getConfigManager().getConfig().isUsingLightGrayRecipeBorder() ? 0 : 66; + } + +} |
