diff options
| author | shedaniel <daniel@shedaniel.me> | 2020-07-29 12:25:47 +0800 |
|---|---|---|
| committer | shedaniel <daniel@shedaniel.me> | 2020-07-29 14:25:53 +0800 |
| commit | ba446965dad004cb38679f0f0e1a526151d84213 (patch) | |
| tree | 60fe2736316a63d47cf533a02bf29fbd5045b91c /src/main/java/me/shedaniel/rei/gui/widget/TabWidget.java | |
| parent | 929ca0ed6de9dd25208304cd0f51a8f2d0f22ceb (diff) | |
| download | RoughlyEnoughItems-ba446965dad004cb38679f0f0e1a526151d84213.tar.gz RoughlyEnoughItems-ba446965dad004cb38679f0f0e1a526151d84213.tar.bz2 RoughlyEnoughItems-ba446965dad004cb38679f0f0e1a526151d84213.zip | |
5.x - 20w30a
Signed-off-by: shedaniel <daniel@shedaniel.me>
Diffstat (limited to 'src/main/java/me/shedaniel/rei/gui/widget/TabWidget.java')
| -rw-r--r-- | src/main/java/me/shedaniel/rei/gui/widget/TabWidget.java | 134 |
1 files changed, 0 insertions, 134 deletions
diff --git a/src/main/java/me/shedaniel/rei/gui/widget/TabWidget.java b/src/main/java/me/shedaniel/rei/gui/widget/TabWidget.java deleted file mode 100644 index dd383ab68..000000000 --- a/src/main/java/me/shedaniel/rei/gui/widget/TabWidget.java +++ /dev/null @@ -1,134 +0,0 @@ -/* - * This file is licensed under the MIT License, part of Roughly Enough Items. - * Copyright (c) 2018, 2019, 2020 shedaniel - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package me.shedaniel.rei.gui.widget; - -import me.shedaniel.math.Rectangle; -import me.shedaniel.rei.api.ClientHelper; -import me.shedaniel.rei.api.EntryStack; -import me.shedaniel.rei.api.REIHelper; -import me.shedaniel.rei.api.RecipeCategory; -import me.shedaniel.rei.api.widgets.Tooltip; -import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.text.LiteralText; -import net.minecraft.util.Formatting; -import net.minecraft.util.Identifier; -import org.jetbrains.annotations.ApiStatus; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.Collections; -import java.util.List; -import java.util.function.Predicate; - -@ApiStatus.Internal -public class TabWidget extends WidgetWithBounds { - - public static final Identifier CHEST_GUI_TEXTURE = new Identifier("roughlyenoughitems", "textures/gui/recipecontainer.png"); - public static final Identifier CHEST_GUI_TEXTURE_DARK = new Identifier("roughlyenoughitems", "textures/gui/recipecontainer_dark.png"); - - public boolean shown = false, selected = false; - public EntryStack logo; - public int id; - public String categoryName; - public Rectangle bounds; - public RecipeCategory<?> category; - public int u, v; - @Nullable - private Predicate<TabWidget> onClick; - - private TabWidget(int id, Rectangle bounds, int u, int v, @Nullable Predicate<TabWidget> onClick) { - this.id = id; - this.bounds = bounds; - this.u = u; - this.v = v; - this.onClick = onClick; - } - - @ApiStatus.Internal - public static TabWidget create(int id, int tabSize, int leftX, int bottomY, int u, int v, @Nullable Predicate<TabWidget> onClick) { - return new TabWidget(id, new Rectangle(leftX + id * tabSize, bottomY - tabSize, tabSize, tabSize), u, v, onClick); - } - - @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { - return button == 0 && containsMouse(mouseX, mouseY) && onClick.test(this); - } - - public void setRenderer(RecipeCategory<?> category, EntryStack logo, String categoryName, boolean selected) { - if (logo == null) { - shown = false; - this.logo = null; - } else { - shown = true; - this.logo = logo; - } - this.category = category; - this.selected = selected; - this.categoryName = categoryName; - } - - public boolean isSelected() { - return selected; - } - - public int getId() { - return id; - } - - public boolean isShown() { - return shown; - } - - @Override - public List<Widget> children() { - return Collections.emptyList(); - } - - @Override - public void render(MatrixStack matrices, int mouseX, int mouseY, float delta) { - if (shown) { - minecraft.getTextureManager().bindTexture(REIHelper.getInstance().isDarkThemeEnabled() ? CHEST_GUI_TEXTURE_DARK : CHEST_GUI_TEXTURE); - this.drawTexture(matrices, bounds.x, bounds.y + 2, u + (selected ? bounds.width : 0), v, bounds.width, (selected ? bounds.height + 2 : bounds.height - 1)); - logo.setZ(100); - logo.render(matrices, new Rectangle(bounds.getCenterX() - 8, bounds.getCenterY() - 5, 16, 16), mouseX, mouseY, delta); - if (containsMouse(mouseX, mouseY)) { - drawTooltip(); - } - } - } - - private void drawTooltip() { - if (this.minecraft.options.advancedItemTooltips) - Tooltip.create(new LiteralText(categoryName), new LiteralText(category.getIdentifier().toString()).formatted(Formatting.DARK_GRAY), ClientHelper.getInstance().getFormattedModFromIdentifier(category.getIdentifier())).queue(); - else - Tooltip.create(new LiteralText(categoryName), ClientHelper.getInstance().getFormattedModFromIdentifier(category.getIdentifier())).queue(); - } - - @NotNull - @Override - public Rectangle getBounds() { - return bounds; - } - -} |
