aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/shedaniel/gui/widget
diff options
context:
space:
mode:
authorUnknown <shekwancheung0528@gmail.com>2019-01-09 15:55:50 +0800
committerUnknown <shekwancheung0528@gmail.com>2019-01-09 15:55:50 +0800
commitfca0cd88625d59e05dc1f0c54fac5dcd232ae28e (patch)
treea7555d7d9ebe1b3c7785eb5acbafc4abd113b80d /src/main/java/me/shedaniel/gui/widget
parent4ab17cd1d282dc23d2a4afdc5f300227be1fc5fb (diff)
downloadRoughlyEnoughItems-fca0cd88625d59e05dc1f0c54fac5dcd232ae28e.tar.gz
RoughlyEnoughItems-fca0cd88625d59e05dc1f0c54fac5dcd232ae28e.tar.bz2
RoughlyEnoughItems-fca0cd88625d59e05dc1f0c54fac5dcd232ae28e.zip
Better Button
Diffstat (limited to 'src/main/java/me/shedaniel/gui/widget')
-rwxr-xr-xsrc/main/java/me/shedaniel/gui/widget/Control.java12
-rw-r--r--src/main/java/me/shedaniel/gui/widget/CraftableToggleButton.java76
-rw-r--r--src/main/java/me/shedaniel/gui/widget/Tab.java1
3 files changed, 89 insertions, 0 deletions
diff --git a/src/main/java/me/shedaniel/gui/widget/Control.java b/src/main/java/me/shedaniel/gui/widget/Control.java
index 18e89113f..d549e05f2 100755
--- a/src/main/java/me/shedaniel/gui/widget/Control.java
+++ b/src/main/java/me/shedaniel/gui/widget/Control.java
@@ -104,6 +104,18 @@ public abstract class Control extends Drawable {
lvt_9_1_.draw();
}
+ public void drawTexturedRect(int int_1, int int_2, int int_3, int int_4, int int_5, int int_6, double zOffset) {
+ float float_1 = 0.00390625F;
+ float float_2 = 0.00390625F;
+ Tessellator tessellator_1 = Tessellator.getInstance();
+ BufferBuilder bufferBuilder_1 = tessellator_1.getBufferBuilder();
+ bufferBuilder_1.begin(7, VertexFormats.POSITION_UV);
+ bufferBuilder_1.vertex((double)(int_1 + 0), (double)(int_2 + int_6), zOffset).texture((double)((float)(int_3 + 0) * 0.00390625F), (double)((float)(int_4 + int_6) * 0.00390625F)).next();
+ bufferBuilder_1.vertex((double)(int_1 + int_5), (double)(int_2 + int_6), zOffset).texture((double)((float)(int_3 + int_5) * 0.00390625F), (double)((float)(int_4 + int_6) * 0.00390625F)).next();
+ bufferBuilder_1.vertex((double)(int_1 + int_5), (double)(int_2 + 0), zOffset).texture((double)((float)(int_3 + int_5) * 0.00390625F), (double)((float)(int_4 + 0) * 0.00390625F)).next();
+ bufferBuilder_1.vertex((double)(int_1 + 0), (double)(int_2 + 0), zOffset).texture((double)((float)(int_3 + 0) * 0.00390625F), (double)((float)(int_4 + 0) * 0.00390625F)).next();
+ tessellator_1.draw();
+ }
public void tick() {
}
diff --git a/src/main/java/me/shedaniel/gui/widget/CraftableToggleButton.java b/src/main/java/me/shedaniel/gui/widget/CraftableToggleButton.java
new file mode 100644
index 000000000..a91f6a476
--- /dev/null
+++ b/src/main/java/me/shedaniel/gui/widget/CraftableToggleButton.java
@@ -0,0 +1,76 @@
+package me.shedaniel.gui.widget;
+
+import com.mojang.blaze3d.platform.GlStateManager;
+import me.shedaniel.Core;
+import me.shedaniel.gui.REIRenderHelper;
+import net.minecraft.block.Blocks;
+import net.minecraft.client.MinecraftClient;
+import net.minecraft.client.font.FontRenderer;
+import net.minecraft.client.render.GuiLighting;
+import net.minecraft.client.render.item.ItemRenderer;
+import net.minecraft.client.resource.language.I18n;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.Identifier;
+
+import java.awt.*;
+import java.util.Arrays;
+
+public class CraftableToggleButton extends Control {
+
+ private ItemRenderer itemRenderer;
+ private final ItemStack itemStack;
+ //protected float zLevel;
+ protected static final Identifier BUTTON_TEXTURES = new Identifier("textures/gui/widgets.png");
+ protected static final Identifier CHEST_GUI_TEXTURE = new Identifier("roughlyenoughitems", "textures/gui/recipecontainer.png");
+
+ public CraftableToggleButton(Rectangle rect) {
+ super(rect);
+ this.itemStack = new ItemStack(Blocks.CRAFTING_TABLE.getItem());
+ this.itemRenderer = MinecraftClient.getInstance().getItemRenderer();
+ }
+
+ @Override
+ public void draw() {
+ GlStateManager.pushMatrix();
+ GlStateManager.disableLighting();
+ MinecraftClient lvt_4_1_ = MinecraftClient.getInstance();
+ FontRenderer lvt_5_1_ = lvt_4_1_.fontRenderer;
+ lvt_4_1_.getTextureManager().bindTexture(BUTTON_TEXTURES);
+ GlStateManager.color4f(1.0F, 1.0F, 1.0F, 1.0F);
+ int hoverState = (byte) 0;
+ if (this.isEnabled()) {
+ if (!this.isHighlighted())
+ hoverState = (byte) 1;
+ else
+ hoverState = (byte) 2;
+ }
+
+ GlStateManager.enableBlend();
+ GlStateManager.blendFuncSeparate(GlStateManager.SrcBlendFactor.SRC_ALPHA, GlStateManager.DstBlendFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SrcBlendFactor.ONE, GlStateManager.DstBlendFactor.ZERO);
+ GlStateManager.blendFunc(GlStateManager.SrcBlendFactor.SRC_ALPHA, GlStateManager.DstBlendFactor.ONE_MINUS_SRC_ALPHA);
+ this.drawTexturedRect(rect.x, rect.y, 0, 46 + hoverState * 20, rect.width / 2, rect.height, 0);
+ this.drawTexturedRect(rect.x + rect.width / 2, rect.y, 200 - rect.width / 2, 46 + hoverState * 20, rect.width / 2, rect.height, 0);
+
+ GuiLighting.enableForItems();
+ //this.zLevel = 100.0F;
+ //this.itemRenderer.zOffset = 100.0F;
+ this.itemRenderer.zOffset = 0.0F;
+ this.itemRenderer.renderItemAndGlowInGui(itemStack, rect.x + 2, rect.y + 2);
+ GlStateManager.disableLighting();
+ //this.zLevel = 0.0F;
+ this.itemRenderer.zOffset = 0.0F;
+ GuiLighting.disable();
+ lvt_4_1_.getTextureManager().bindTexture(CHEST_GUI_TEXTURE);
+ GlStateManager.color4f(1.0F, 1.0F, 1.0F, 1.0F);
+ this.drawTexturedRect(rect.x, rect.y, (72 + (Core.runtimeConfig.craftableOnly ? 0 : 20)), 222, 20, 20, 100);
+ GlStateManager.popMatrix();
+ if (isHighlighted())
+ drawTooltip();
+ }
+
+ private void drawTooltip() {
+ Point mouse = REIRenderHelper.getMouseLoc();
+ REIRenderHelper.addToolTip(Arrays.asList(I18n.translate(Core.runtimeConfig.craftableOnly ? "text.rei.showing_craftable" : "text.rei.showing_all")), mouse.x, mouse.y);
+ }
+
+} \ No newline at end of file
diff --git a/src/main/java/me/shedaniel/gui/widget/Tab.java b/src/main/java/me/shedaniel/gui/widget/Tab.java
index 5f5e931df..f7d3dbb15 100644
--- a/src/main/java/me/shedaniel/gui/widget/Tab.java
+++ b/src/main/java/me/shedaniel/gui/widget/Tab.java
@@ -97,4 +97,5 @@ public class Tab extends Control {
Point mouse = REIRenderHelper.getMouseLoc();
REIRenderHelper.addToolTip(toolTip, mouse.x, mouse.y);
}
+
}