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/SlotWidget.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/SlotWidget.java')
| -rw-r--r-- | src/main/java/me/shedaniel/rei/gui/widget/SlotWidget.java | 78 |
1 files changed, 58 insertions, 20 deletions
diff --git a/src/main/java/me/shedaniel/rei/gui/widget/SlotWidget.java b/src/main/java/me/shedaniel/rei/gui/widget/SlotWidget.java index 850b85208..372736567 100644 --- a/src/main/java/me/shedaniel/rei/gui/widget/SlotWidget.java +++ b/src/main/java/me/shedaniel/rei/gui/widget/SlotWidget.java @@ -11,10 +11,13 @@ import me.shedaniel.math.api.Rectangle; import me.shedaniel.math.impl.PointHelper; import me.shedaniel.rei.RoughlyEnoughItemsCore; import me.shedaniel.rei.api.ClientHelper; +import me.shedaniel.rei.api.EntryStack; import me.shedaniel.rei.api.Renderer; +import me.shedaniel.rei.api.annotations.ToBeRemoved; import me.shedaniel.rei.gui.renderers.FluidRenderer; import me.shedaniel.rei.gui.renderers.ItemStackRenderer; import me.shedaniel.rei.impl.ScreenHelper; +import me.shedaniel.rei.utils.CollectionUtils; import net.minecraft.client.gui.Element; import net.minecraft.fluid.Fluid; import net.minecraft.item.ItemStack; @@ -27,13 +30,15 @@ import java.util.Collections; import java.util.LinkedList; import java.util.List; import java.util.Locale; -import java.util.stream.Collectors; +import java.util.function.Function; +@SuppressWarnings("deprecation") public class SlotWidget extends WidgetWithBounds { public static final Identifier RECIPE_GUI = new Identifier("roughlyenoughitems", "textures/gui/recipecontainer.png"); public static final Identifier RECIPE_GUI_DARK = new Identifier("roughlyenoughitems", "textures/gui/recipecontainer_dark.png"); - protected int x, y; + private static final Function<ItemStack, Renderer> ITEM_STACK_RENDERER = Renderer::fromItemStack; + private Rectangle bounds; private List<Renderer> renderers = new LinkedList<>(); private boolean drawBackground, showToolTips, clickToMoreRecipes, drawHighlightedBackground; @@ -49,8 +54,7 @@ public class SlotWidget extends WidgetWithBounds { this.renderers = renderers; this.drawBackground = drawBackground; this.showToolTips = showToolTips; - this.x = x; - this.y = y; + this.bounds = new Rectangle(x - 1, y - 1, 18, 18); this.clickToMoreRecipes = false; this.drawHighlightedBackground = true; } @@ -60,20 +64,40 @@ public class SlotWidget extends WidgetWithBounds { this.clickToMoreRecipes = clickToMoreRecipes; } + /** + * @see WidgetWithBounds#getBounds() + */ + @ToBeRemoved + @Deprecated public int getX() { - return x; + return bounds.x + 1; } + /** + * @see WidgetWithBounds#getBounds() + */ + @ToBeRemoved + @Deprecated public void setX(int x) { - this.x = x; + bounds.x = x - 1; } + /** + * @see WidgetWithBounds#getBounds() + */ + @ToBeRemoved + @Deprecated public int getY() { - return y; + return bounds.y + 1; } + /** + * @see WidgetWithBounds#getBounds() + */ + @ToBeRemoved + @Deprecated public void setY(int y) { - this.y = y; + bounds.y = y - 1; } public boolean isShowToolTips() { @@ -119,11 +143,11 @@ public class SlotWidget extends WidgetWithBounds { boolean darkTheme = ScreenHelper.isDarkModeEnabled(); if (drawBackground) { minecraft.getTextureManager().bindTexture(darkTheme ? RECIPE_GUI_DARK : RECIPE_GUI); - blit(this.x - 1, this.y - 1, 0, 222, 18, 18); + blit(bounds.x, bounds.y, 0, 222, bounds.width, bounds.height); } boolean highlighted = containsMouse(mouseX, mouseY); renderer.setBlitOffset(200); - renderer.render(x + 8, y + 6, mouseX, mouseY, delta); + renderer.render(bounds.x + 9, bounds.y + 7, mouseX, mouseY, delta); if (highlighted && showToolTips) { QueuedTooltip queuedTooltip = renderer.getQueuedTooltip(delta); if (queuedTooltip != null) { @@ -136,17 +160,17 @@ public class SlotWidget extends WidgetWithBounds { RenderSystem.colorMask(true, true, true, false); int color = darkTheme ? -1877929711 : -2130706433; setBlitOffset(300); - fillGradient(x, y, x + 16, y + 16, color, color); + fillGradient(bounds.x + 1, bounds.y + 1, bounds.getMaxX() - 1, bounds.getMaxY() - 1, color, color); setBlitOffset(0); RenderSystem.colorMask(true, true, true, true); RenderSystem.enableLighting(); RenderSystem.enableDepthTest(); } } - /** * @deprecated Not used anymore, see {@link Renderer#getQueuedTooltip(float)} */ + @ToBeRemoved @Deprecated protected void queueTooltip(Fluid fluid, float delta) { ScreenHelper.getLastOverlay().addTooltip(QueuedTooltip.create(getTooltip(fluid))); @@ -155,6 +179,7 @@ public class SlotWidget extends WidgetWithBounds { /** * @deprecated Not used anymore, see {@link Renderer#getQueuedTooltip(float)} */ + @ToBeRemoved @Deprecated private List<String> getTooltip(Fluid fluid) { List<String> toolTip = Lists.newArrayList(EntryListWidget.tryGetFluidName(fluid)); @@ -176,6 +201,7 @@ public class SlotWidget extends WidgetWithBounds { /** * @deprecated Not used anymore, see {@link Renderer#getQueuedTooltip(float)} */ + @ToBeRemoved @Deprecated protected void queueTooltip(ItemStack itemStack, float delta) { ScreenHelper.getLastOverlay().addTooltip(QueuedTooltip.create(getTooltip(itemStack))); @@ -184,6 +210,7 @@ public class SlotWidget extends WidgetWithBounds { /** * @deprecated Not used anymore, see {@link Renderer#getQueuedTooltip(float)} */ + @ToBeRemoved @Deprecated protected List<String> getTooltip(ItemStack itemStack) { List<String> toolTip = Lists.newArrayList(EntryListWidget.tryGetItemStackToolTip(itemStack, true)); @@ -202,6 +229,7 @@ public class SlotWidget extends WidgetWithBounds { /** * @deprecated See {@link ItemStackRenderer#getExtraToolTips(ItemStack)} */ + @ToBeRemoved @Deprecated protected List<String> getExtraItemToolTips(ItemStack stack) { return Collections.emptyList(); @@ -210,11 +238,14 @@ public class SlotWidget extends WidgetWithBounds { /** * @deprecated See {@link FluidRenderer#getExtraToolTips(Fluid)} */ + @ToBeRemoved @Deprecated protected List<String> getExtraFluidToolTips(Fluid fluid) { return Collections.emptyList(); } + @ToBeRemoved + @Deprecated public ItemStack getCurrentItemStack() { if (getCurrentRenderer() instanceof ItemStackRenderer) return ((ItemStackRenderer) getCurrentRenderer()).getItemStack(); @@ -231,9 +262,10 @@ public class SlotWidget extends WidgetWithBounds { * @param itemList the list of items * @deprecated Use {@link SlotWidget#setRenderers(List)} */ + @ToBeRemoved @Deprecated public void setItemList(List<ItemStack> itemList) { - this.setRenderers(itemList.stream().map(Renderer::fromItemStack).collect(Collectors.toList())); + setRenderers(CollectionUtils.map(itemList, ITEM_STACK_RENDERER)); } public void setRenderers(List<Renderer> renderers) { @@ -242,25 +274,30 @@ public class SlotWidget extends WidgetWithBounds { @Override public Rectangle getBounds() { - return new Rectangle(this.x - 1, this.y - 1, 18, 18); + return bounds; } @Override public boolean mouseClicked(double mouseX, double mouseY, int button) { if (!clickToMoreRecipes) return false; - if (isCurrentRendererItem() && getBounds().contains(mouseX, mouseY)) + EntryStack entry = getCurrentRenderer().getEntry(); + if (getBounds().contains(mouseX, mouseY)) if (button == 0) - return ClientHelper.getInstance().executeRecipeKeyBind(getCurrentItemStack()); + return ClientHelper.getInstance().executeRecipeKeyBind(entry); else if (button == 1) - return ClientHelper.getInstance().executeUsageKeyBind(getCurrentItemStack()); + return ClientHelper.getInstance().executeUsageKeyBind(entry); return false; } + @ToBeRemoved + @Deprecated public boolean isCurrentRendererItem() { return getCurrentRenderer() instanceof ItemStackRenderer; } + @ToBeRemoved + @Deprecated public boolean isCurrentRendererFluid() { return getCurrentRenderer() instanceof FluidRenderer; } @@ -269,11 +306,12 @@ public class SlotWidget extends WidgetWithBounds { public boolean keyPressed(int int_1, int int_2, int int_3) { if (!clickToMoreRecipes) return false; - if (isCurrentRendererItem() && getBounds().contains(PointHelper.fromMouse())) + EntryStack entry = getCurrentRenderer().getEntry(); + if (getBounds().contains(PointHelper.fromMouse())) if (ClientHelper.getInstance().getRecipeKeyBinding().matchesKey(int_1, int_2)) - return ClientHelper.getInstance().executeRecipeKeyBind(getCurrentItemStack()); + return ClientHelper.getInstance().executeRecipeKeyBind(entry); else if (ClientHelper.getInstance().getUsageKeyBinding().matchesKey(int_1, int_2)) - return ClientHelper.getInstance().executeUsageKeyBind(getCurrentItemStack()); + return ClientHelper.getInstance().executeUsageKeyBind(entry); return false; } |
