aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/shedaniel/rei/gui/widget/PanelWidget.java
diff options
context:
space:
mode:
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.java111
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;
+ }
+
+}