From 2a4778a969d91481634a5549150c34997a526d2b Mon Sep 17 00:00:00 2001 From: mezz Date: Sat, 15 Jul 2017 17:46:24 -0700 Subject: [PATCH] Fix #309 Use default textures instead of vanilla's with a texture pack applied --- src/main/java/mezz/jei/config/Constants.java | 6 ++++ src/main/java/mezz/jei/gui/GuiHelper.java | 32 +++++------------- .../jei/gui/elements/GuiIconButtonSmall.java | 3 +- .../mezz/jei/gui/overlay/ConfigButton.java | 2 +- .../mezz/jei/gui/recipes/RecipeCatalysts.java | 2 +- .../java/mezz/jei/gui/recipes/RecipesGui.java | 8 ++--- .../jei/debug/DebugRecipeCategory.java | 2 +- .../info/IngredientInfoRecipeCategory.java | 2 +- .../vanilla/anvil/AnvilRecipeCategory.java | 9 +++-- .../brewing/BrewingRecipeCategory.java | 10 +++--- .../crafting/CraftingRecipeCategory.java | 4 +-- .../plugins/vanilla/furnace/FuelRecipe.java | 4 +-- .../vanilla/furnace/FurnaceFuelCategory.java | 15 ++++---- .../furnace/FurnaceRecipeCategory.java | 14 ++++---- .../furnace/FurnaceSmeltingCategory.java | 6 ++-- .../assets/jei/textures/gui/gui_vanilla.png | Bin 0 -> 1302 bytes .../jei/textures/gui/recipe_background.png | Bin 3774 -> 3783 bytes 17 files changed, 52 insertions(+), 67 deletions(-) create mode 100644 src/main/resources/assets/jei/textures/gui/gui_vanilla.png diff --git a/src/main/java/mezz/jei/config/Constants.java b/src/main/java/mezz/jei/config/Constants.java index fcf502fbc..946f0626b 100644 --- a/src/main/java/mezz/jei/config/Constants.java +++ b/src/main/java/mezz/jei/config/Constants.java @@ -3,6 +3,7 @@ import java.util.Locale; import mezz.jei.util.Translator; +import net.minecraft.util.ResourceLocation; public final class Constants { public static final String minecraftModName = "Minecraft"; @@ -15,9 +16,14 @@ public final class Constants { // Textures public static final String RESOURCE_DOMAIN = MOD_ID.toLowerCase(Locale.ENGLISH); public static final String TEXTURE_GUI_PATH = "textures/gui/"; + public static final String TEXTURE_GUI_VANILLA = Constants.TEXTURE_GUI_PATH + "gui_vanilla.png"; public static final String TEXTURE_RECIPE_BACKGROUND_PATH = Constants.TEXTURE_GUI_PATH + "recipe_background.png"; public static final String TEXTURE_RECIPE_BACKGROUND_TALL_PATH = Constants.TEXTURE_GUI_PATH + "recipe_background_tall.png"; + public static final ResourceLocation RECIPE_GUI_VANILLA = new ResourceLocation(RESOURCE_DOMAIN, TEXTURE_GUI_VANILLA); + public static final ResourceLocation RECIPE_BACKGROUND = new ResourceLocation(RESOURCE_DOMAIN, TEXTURE_RECIPE_BACKGROUND_PATH); + public static final ResourceLocation RECIPE_BACKGROUND_TALL = new ResourceLocation(RESOURCE_DOMAIN, TEXTURE_RECIPE_BACKGROUND_TALL_PATH); + public static final int MAX_TOOLTIP_WIDTH = 125; public static final String RECIPE_TRANSFER_TOOLTIP = Translator.translateToLocal("jei.tooltip.transfer"); diff --git a/src/main/java/mezz/jei/gui/GuiHelper.java b/src/main/java/mezz/jei/gui/GuiHelper.java index 533821949..38e0eb091 100644 --- a/src/main/java/mezz/jei/gui/GuiHelper.java +++ b/src/main/java/mezz/jei/gui/GuiHelper.java @@ -13,6 +13,7 @@ import net.minecraft.util.ResourceLocation; public class GuiHelper implements IGuiHelper { + private final IDrawableStatic slotDrawable; private final IDrawableStatic tabSelected; private final IDrawableStatic tabUnselected; @@ -22,25 +23,18 @@ public class GuiHelper implements IGuiHelper { private final IDrawableStatic arrowNext; private final IDrawableStatic plusSign; - private final ResourceLocation recipeBackgroundResource; - private final ResourceLocation recipeBackgroundTallResource; - public GuiHelper() { - ResourceLocation location = new ResourceLocation("minecraft", "textures/gui/container/furnace.png"); - this.slotDrawable = createDrawable(location, 55, 16, 18, 18); + slotDrawable = createDrawable(Constants.RECIPE_BACKGROUND, 196, 93, 18, 18); - recipeBackgroundResource = new ResourceLocation(Constants.RESOURCE_DOMAIN, Constants.TEXTURE_RECIPE_BACKGROUND_PATH); - recipeBackgroundTallResource = new ResourceLocation(Constants.RESOURCE_DOMAIN, Constants.TEXTURE_RECIPE_BACKGROUND_TALL_PATH); + tabSelected = createDrawable(Constants.RECIPE_BACKGROUND, 196, 15, 24, 24); + tabUnselected = createDrawable(Constants.RECIPE_BACKGROUND, 220, 15, 24, 22); - tabSelected = createDrawable(recipeBackgroundResource, 196, 15, 24, 24); - tabUnselected = createDrawable(recipeBackgroundResource, 220, 15, 24, 22); + shapelessIcon = createDrawable(Constants.RECIPE_BACKGROUND, 196, 0, 16, 15); + infoIcon = createDrawable(Constants.RECIPE_BACKGROUND, 212, 39, 16, 16); - shapelessIcon = createDrawable(recipeBackgroundResource, 196, 0, 16, 15); - infoIcon = createDrawable(recipeBackgroundResource, 212, 39, 16, 16); - - arrowPrevious = createDrawable(recipeBackgroundResource, 196, 55, 5, 8, 1, 0, 0, 0); - arrowNext = createDrawable(recipeBackgroundResource, 204, 55, 5, 8, 1, 0, 1, 0); - plusSign = createDrawable(recipeBackgroundResource, 212, 55, 6, 6, 1, 0, 1, 0); + arrowPrevious = createDrawable(Constants.RECIPE_BACKGROUND, 196, 55, 5, 8, 1, 0, 0, 0); + arrowNext = createDrawable(Constants.RECIPE_BACKGROUND, 204, 55, 5, 8, 1, 0, 1, 0); + plusSign = createDrawable(Constants.RECIPE_BACKGROUND, 212, 55, 6, 6, 1, 0, 1, 0); } @Override @@ -128,14 +122,6 @@ public IDrawableStatic getInfoIcon() { return infoIcon; } - public ResourceLocation getRecipeBackgroundResource() { - return recipeBackgroundResource; - } - - public ResourceLocation getRecipeBackgroundTallResource() { - return recipeBackgroundTallResource; - } - public IDrawableStatic getArrowPrevious() { return arrowPrevious; } diff --git a/src/main/java/mezz/jei/gui/elements/GuiIconButtonSmall.java b/src/main/java/mezz/jei/gui/elements/GuiIconButtonSmall.java index 9043cd93b..8b9b1486f 100644 --- a/src/main/java/mezz/jei/gui/elements/GuiIconButtonSmall.java +++ b/src/main/java/mezz/jei/gui/elements/GuiIconButtonSmall.java @@ -12,7 +12,6 @@ * A small gui button that has an {@link IDrawable} instead of a string label. */ public class GuiIconButtonSmall extends GuiButton { - private static final ResourceLocation BUTTON_RESOURCE = new ResourceLocation(Constants.RESOURCE_DOMAIN, Constants.TEXTURE_RECIPE_BACKGROUND_PATH); private final IDrawable icon; public GuiIconButtonSmall(int buttonId, int x, int y, int widthIn, int heightIn, IDrawable icon) { @@ -25,7 +24,7 @@ public void drawButton(Minecraft mc, int mouseX, int mouseY, float partialTicks) if (this.visible) { this.hovered = mouseX >= this.x && mouseY >= this.y && mouseX < this.x + this.width && mouseY < this.y + this.height; int k = this.getHoverState(this.hovered); - GuiUtils.drawContinuousTexturedBox(BUTTON_RESOURCE, this.x, this.y, 0, 182 + k * 20, this.width, this.height, 95, 20, 2, 2, 2, 2, this.zLevel); + GuiUtils.drawContinuousTexturedBox(Constants.RECIPE_BACKGROUND, this.x, this.y, 0, 182 + k * 20, this.width, this.height, 95, 20, 2, 2, 2, 2, this.zLevel); this.mouseDragged(mc, mouseX, mouseY); int color = 14737632; diff --git a/src/main/java/mezz/jei/gui/overlay/ConfigButton.java b/src/main/java/mezz/jei/gui/overlay/ConfigButton.java index 7c384f167..a4c0cf352 100644 --- a/src/main/java/mezz/jei/gui/overlay/ConfigButton.java +++ b/src/main/java/mezz/jei/gui/overlay/ConfigButton.java @@ -30,7 +30,7 @@ public class ConfigButton { public ConfigButton(IngredientListOverlay parent) { this.parent = parent; this.configButton = new GuiButton(2, 0, 0, 0, 0, ""); - ResourceLocation configButtonIconLocation = new ResourceLocation(Constants.RESOURCE_DOMAIN, Constants.TEXTURE_RECIPE_BACKGROUND_PATH); + ResourceLocation configButtonIconLocation = Constants.RECIPE_BACKGROUND; GuiHelper guiHelper = Internal.getHelpers().getGuiHelper(); this.configButtonIcon = guiHelper.createDrawable(configButtonIconLocation, 0, 166, 16, 16); this.configButtonCheatIcon = guiHelper.createDrawable(configButtonIconLocation, 16, 166, 16, 16); diff --git a/src/main/java/mezz/jei/gui/recipes/RecipeCatalysts.java b/src/main/java/mezz/jei/gui/recipes/RecipeCatalysts.java index 938239a7a..651f2ed18 100644 --- a/src/main/java/mezz/jei/gui/recipes/RecipeCatalysts.java +++ b/src/main/java/mezz/jei/gui/recipes/RecipeCatalysts.java @@ -37,7 +37,7 @@ public class RecipeCatalysts implements IShowsRecipeFocuses { public RecipeCatalysts() { ingredients = new ArrayList<>(); - ResourceLocation recipeBackgroundResource = new ResourceLocation(Constants.RESOURCE_DOMAIN, Constants.TEXTURE_RECIPE_BACKGROUND_PATH); + ResourceLocation recipeBackgroundResource = Constants.RECIPE_BACKGROUND; IGuiHelper guiHelper = Internal.getHelpers().getGuiHelper(); topDrawable = guiHelper.createDrawable(recipeBackgroundResource, 196, 65, 26, 6); diff --git a/src/main/java/mezz/jei/gui/recipes/RecipesGui.java b/src/main/java/mezz/jei/gui/recipes/RecipesGui.java index d7ba3bc68..1e3ac1647 100644 --- a/src/main/java/mezz/jei/gui/recipes/RecipesGui.java +++ b/src/main/java/mezz/jei/gui/recipes/RecipesGui.java @@ -13,6 +13,7 @@ import mezz.jei.api.gui.IDrawableStatic; import mezz.jei.api.recipe.IFocus; import mezz.jei.api.recipe.IRecipeCategory; +import mezz.jei.config.Constants; import mezz.jei.config.KeyBindings; import mezz.jei.gui.Focus; import mezz.jei.gui.GuiHelper; @@ -56,7 +57,7 @@ public class RecipesGui extends GuiScreen implements IRecipesGui, IShowsRecipeFo private String pageString = "1/1"; private String title = ""; - private ResourceLocation backgroundTexture = Internal.getHelpers().getGuiHelper().getRecipeBackgroundResource(); + private ResourceLocation backgroundTexture = Constants.RECIPE_BACKGROUND; private final RecipeCatalysts recipeCatalysts; private final RecipeGuiTabs recipeGuiTabs; @@ -125,13 +126,12 @@ public void initGui() { this.xSize = 196; - GuiHelper guiHelper = Internal.getHelpers().getGuiHelper(); if (this.height > 300) { this.ySize = 256; - this.backgroundTexture = guiHelper.getRecipeBackgroundTallResource(); + this.backgroundTexture = Constants.RECIPE_BACKGROUND_TALL; } else { this.ySize = 166; - this.backgroundTexture = guiHelper.getRecipeBackgroundResource(); + this.backgroundTexture = Constants.RECIPE_BACKGROUND; } this.guiLeft = (width - this.xSize) / 2; diff --git a/src/main/java/mezz/jei/plugins/jei/debug/DebugRecipeCategory.java b/src/main/java/mezz/jei/plugins/jei/debug/DebugRecipeCategory.java index 5fd2dc8bc..36ba424c2 100644 --- a/src/main/java/mezz/jei/plugins/jei/debug/DebugRecipeCategory.java +++ b/src/main/java/mezz/jei/plugins/jei/debug/DebugRecipeCategory.java @@ -37,7 +37,7 @@ public DebugRecipeCategory(IGuiHelper guiHelper) { this.background = guiHelper.createBlankDrawable(RECIPE_WIDTH, RECIPE_HEIGHT); this.localizedName = "debug"; - ResourceLocation backgroundTexture = new ResourceLocation(Constants.RESOURCE_DOMAIN, Constants.TEXTURE_RECIPE_BACKGROUND_PATH); + ResourceLocation backgroundTexture = Constants.RECIPE_BACKGROUND; this.tankBackground = guiHelper.createDrawable(backgroundTexture, 220, 196, 18, 60, -1, -1, -1, -1); this.tankOverlay = guiHelper.createDrawable(backgroundTexture, 238, 196, 18, 60, -1, -1, -1, -1); } diff --git a/src/main/java/mezz/jei/plugins/jei/info/IngredientInfoRecipeCategory.java b/src/main/java/mezz/jei/plugins/jei/info/IngredientInfoRecipeCategory.java index c5b6f0030..a1b917071 100644 --- a/src/main/java/mezz/jei/plugins/jei/info/IngredientInfoRecipeCategory.java +++ b/src/main/java/mezz/jei/plugins/jei/info/IngredientInfoRecipeCategory.java @@ -23,7 +23,7 @@ public class IngredientInfoRecipeCategory implements IRecipeCategory private final IDrawable background; public AnvilRecipeCategory(IGuiHelper guiHelper) { - ResourceLocation backgroundLocation = new ResourceLocation("textures/gui/container/anvil.png"); - background = guiHelper.createDrawable(backgroundLocation, 16, 40, 145, 37); + background = guiHelper.createDrawable(Constants.RECIPE_GUI_VANILLA, 0, 168, 125, 18, 0, 20, 0, 0); } @Override @@ -44,9 +43,9 @@ public IDrawable getBackground() { public void setRecipe(IRecipeLayout recipeLayout, AnvilRecipeWrapper recipeWrapper, IIngredients ingredients) { IGuiItemStackGroup guiItemStacks = recipeLayout.getItemStacks(); - guiItemStacks.init(0, true, 10, 6); - guiItemStacks.init(1, true, 59, 6); - guiItemStacks.init(2, false, 117, 6); + guiItemStacks.init(0, true, 10-10, 0); + guiItemStacks.init(1, true, 59-10, 0); + guiItemStacks.init(2, false, 117-10, 0); guiItemStacks.set(ingredients); diff --git a/src/main/java/mezz/jei/plugins/vanilla/brewing/BrewingRecipeCategory.java b/src/main/java/mezz/jei/plugins/vanilla/brewing/BrewingRecipeCategory.java index fae716d33..e6c1b02e2 100644 --- a/src/main/java/mezz/jei/plugins/vanilla/brewing/BrewingRecipeCategory.java +++ b/src/main/java/mezz/jei/plugins/vanilla/brewing/BrewingRecipeCategory.java @@ -30,17 +30,17 @@ public class BrewingRecipeCategory implements IRecipeCategory { private final ICraftingGridHelper craftingGridHelper; public CraftingRecipeCategory(IGuiHelper guiHelper) { - ResourceLocation location = new ResourceLocation("minecraft", "textures/gui/container/crafting_table.png"); - background = guiHelper.createDrawable(location, 29, 16, width, height); + ResourceLocation location = Constants.RECIPE_GUI_VANILLA; + background = guiHelper.createDrawable(location, 0, 60, width, height); localizedName = Translator.translateToLocal("gui.jei.category.craftingTable"); craftingGridHelper = guiHelper.createCraftingGridHelper(craftInputSlot1, craftOutputSlot); } diff --git a/src/main/java/mezz/jei/plugins/vanilla/furnace/FuelRecipe.java b/src/main/java/mezz/jei/plugins/vanilla/furnace/FuelRecipe.java index 7fd0a78f4..d8a9d1353 100644 --- a/src/main/java/mezz/jei/plugins/vanilla/furnace/FuelRecipe.java +++ b/src/main/java/mezz/jei/plugins/vanilla/furnace/FuelRecipe.java @@ -12,6 +12,7 @@ import mezz.jei.api.gui.IDrawableStatic; import mezz.jei.api.ingredients.IIngredients; import mezz.jei.api.recipe.IRecipeWrapper; +import mezz.jei.config.Constants; import mezz.jei.util.Translator; import net.minecraft.client.Minecraft; import net.minecraft.item.ItemStack; @@ -38,8 +39,7 @@ public FuelRecipe(IGuiHelper guiHelper, Collection input, int burnTim this.burnTimeString = Translator.translateToLocalFormatted("gui.jei.category.fuel.burnTime", burnTime); - ResourceLocation furnaceBackgroundLocation = new ResourceLocation("minecraft", "textures/gui/container/furnace.png"); - IDrawableStatic flameDrawable = guiHelper.createDrawable(furnaceBackgroundLocation, 176, 0, 14, 14); + IDrawableStatic flameDrawable = guiHelper.createDrawable(Constants.RECIPE_GUI_VANILLA, 176, 114, 14, 14); this.flame = guiHelper.createAnimatedDrawable(flameDrawable, burnTime, IDrawableAnimated.StartDirection.TOP, true); } diff --git a/src/main/java/mezz/jei/plugins/vanilla/furnace/FurnaceFuelCategory.java b/src/main/java/mezz/jei/plugins/vanilla/furnace/FurnaceFuelCategory.java index cef822de7..6c4051a1f 100644 --- a/src/main/java/mezz/jei/plugins/vanilla/furnace/FurnaceFuelCategory.java +++ b/src/main/java/mezz/jei/plugins/vanilla/furnace/FurnaceFuelCategory.java @@ -4,25 +4,24 @@ import mezz.jei.api.IGuiHelper; import mezz.jei.api.gui.IDrawable; +import mezz.jei.api.gui.IDrawableStatic; import mezz.jei.api.gui.IGuiItemStackGroup; import mezz.jei.api.gui.IRecipeLayout; import mezz.jei.api.ingredients.IIngredients; import mezz.jei.api.recipe.VanillaRecipeCategoryUid; import mezz.jei.config.Constants; import mezz.jei.util.Translator; -import net.minecraft.util.ResourceLocation; public class FurnaceFuelCategory extends FurnaceRecipeCategory { - private final IDrawable background; - private final IDrawable flame; + private final IDrawableStatic background; + private final IDrawableStatic flameTransparentBackground; private final String localizedName; public FurnaceFuelCategory(IGuiHelper guiHelper) { super(guiHelper); - background = guiHelper.createDrawable(backgroundLocation, 55, 38, 18, 32, 0, 0, 0, 80); + background = guiHelper.createDrawable(Constants.RECIPE_GUI_VANILLA, 0, 135, 18, 33, 0, 0, 0, 80); - ResourceLocation recipeBackgroundResource = new ResourceLocation(Constants.RESOURCE_DOMAIN, Constants.TEXTURE_RECIPE_BACKGROUND_PATH); - flame = guiHelper.createDrawable(recipeBackgroundResource, 215, 0, 14, 14); + flameTransparentBackground = guiHelper.createDrawable(Constants.RECIPE_BACKGROUND, 215, 0, 14, 14); localizedName = Translator.translateToLocal("gui.jei.category.fuel"); } @@ -49,14 +48,14 @@ public String getModName() { @Nullable @Override public IDrawable getIcon() { - return flame; + return flameTransparentBackground; } @Override public void setRecipe(IRecipeLayout recipeLayout, FuelRecipe recipeWrapper, IIngredients ingredients) { IGuiItemStackGroup guiItemStacks = recipeLayout.getItemStacks(); - guiItemStacks.init(fuelSlot, true, 0, 14); + guiItemStacks.init(fuelSlot, true, 0, 15); guiItemStacks.set(ingredients); } } diff --git a/src/main/java/mezz/jei/plugins/vanilla/furnace/FurnaceRecipeCategory.java b/src/main/java/mezz/jei/plugins/vanilla/furnace/FurnaceRecipeCategory.java index 9e872b2b8..375a21768 100644 --- a/src/main/java/mezz/jei/plugins/vanilla/furnace/FurnaceRecipeCategory.java +++ b/src/main/java/mezz/jei/plugins/vanilla/furnace/FurnaceRecipeCategory.java @@ -5,24 +5,22 @@ import mezz.jei.api.gui.IDrawableStatic; import mezz.jei.api.recipe.IRecipeCategory; import mezz.jei.api.recipe.IRecipeWrapper; -import net.minecraft.util.ResourceLocation; +import mezz.jei.config.Constants; public abstract class FurnaceRecipeCategory implements IRecipeCategory { protected static final int inputSlot = 0; protected static final int fuelSlot = 1; protected static final int outputSlot = 2; - protected final ResourceLocation backgroundLocation; - protected final IDrawableAnimated flame; + protected final IDrawableStatic staticFlame; + protected final IDrawableAnimated animatedFlame; protected final IDrawableAnimated arrow; public FurnaceRecipeCategory(IGuiHelper guiHelper) { - backgroundLocation = new ResourceLocation("minecraft", "textures/gui/container/furnace.png"); + staticFlame = guiHelper.createDrawable(Constants.RECIPE_GUI_VANILLA, 82, 114, 14, 14); + animatedFlame = guiHelper.createAnimatedDrawable(staticFlame, 300, IDrawableAnimated.StartDirection.TOP, true); - IDrawableStatic flameDrawable = guiHelper.createDrawable(backgroundLocation, 176, 0, 14, 14); - flame = guiHelper.createAnimatedDrawable(flameDrawable, 300, IDrawableAnimated.StartDirection.TOP, true); - - IDrawableStatic arrowDrawable = guiHelper.createDrawable(backgroundLocation, 176, 14, 24, 17); + IDrawableStatic arrowDrawable = guiHelper.createDrawable(Constants.RECIPE_GUI_VANILLA, 176, 128, 24, 17); this.arrow = guiHelper.createAnimatedDrawable(arrowDrawable, 200, IDrawableAnimated.StartDirection.LEFT, false); } } diff --git a/src/main/java/mezz/jei/plugins/vanilla/furnace/FurnaceSmeltingCategory.java b/src/main/java/mezz/jei/plugins/vanilla/furnace/FurnaceSmeltingCategory.java index b5d1761c9..c20306eb6 100644 --- a/src/main/java/mezz/jei/plugins/vanilla/furnace/FurnaceSmeltingCategory.java +++ b/src/main/java/mezz/jei/plugins/vanilla/furnace/FurnaceSmeltingCategory.java @@ -9,7 +9,6 @@ import mezz.jei.config.Constants; import mezz.jei.util.Translator; import net.minecraft.client.Minecraft; -import net.minecraft.util.ResourceLocation; public class FurnaceSmeltingCategory extends FurnaceRecipeCategory { private final IDrawable background; @@ -17,8 +16,7 @@ public class FurnaceSmeltingCategory extends FurnaceRecipeCategory&g9wg z0AOa=%HSvfM7sz$1Z`3;#75I5C^9@cgrcatygZtvQfYg8J4HDu6bh;yy23-KQL!%7 z_H5ex)(t>SWK{bBbq#(gv@i0ahv9OZW%+uuu4>n0-oB@FjFeFk>p<4mB?n+;g#`yj ztKtWZ1IH_UX0S~5VH@v1Dr;_{ej4&IhfN(H*8*EC8A%x3*>6#+%XLSb+ylpQT&;V}aE8bAa0yc|1>{UvkQ5?FszZZ z7|twoLybDjkgN=}E*NAOrc-oG<%G*QqQ=);aTqDMu^IOAJ|5hA`0}X)-nPP$5OHmC z<^d>0@|H!|>1%Q3kHF;BxgnNewq>eN5L~yE{o6^u>_K^~7QDU9Ik%bxt+sW{(lpp! z?5(d%I<9}>q@6nl^4&LD43E6&92n^AJk{sDJAQF{(8Ac9RVYIpA8_f>-Ma%*ef<9q!Z(!gP? z#kYV^aKBBLih8$l$J}bn=pKR;8cX2$Jqvg{cOKlX@p$d6|GnOV6w!$nhYrEmb9TwE zjY7lYsH>`$)bSlQ+EDbckPxlWT)I&Y4^!+Dwx%&4e23r$&$Niu zX!|EYDTnSg{?KhEb9hfn!Pr@b#(HWH_JvwLcEj&(0K-@hksJfn@o4-C;Om-%#mQ`t zvt&!ImS~{4j)9j$^9ei9S4qYz)MjHl_dpqn8lCne=b3{D9d)6rPH=uWf48jo0dbJw zw?(M(v|{Nk@Dg)isoWvOnv`5*Frhz_z;8>=(Ay$IFY_bIfP+5-l(+8GeRi>RR!_j` z>F`2fjXG$uERCR#8A6fC5r+Pw1Y79Tf+@b2(0?JzM-?d1`d|^c4Xf;W3CZLN1(iMG sMWyl&bLppJ$?gvLdBJPOBHI5@Oy-(fht}rvPQOowg+v5b2PI_v3svOwNB{r; literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/jei/textures/gui/recipe_background.png b/src/main/resources/assets/jei/textures/gui/recipe_background.png index ee4d069e54a1ac3aa0ead3b732b808bb0316f263..cdd28cdb6fa9aa59017b024882d69f61b4a05606 100644 GIT binary patch delta 2761 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 P00000NkvXXu0mjfW-Rv} delta 2750 zcmV;v3PJV99ljl~2m%42lL-Pof8e%p7z)BL(}34^9R#oiT0W)%rxSNW@yX>bO~&L# zpt0v@{sHo!_%>feNmSs+Z_dZZ+FHlh1h$YN!d8C%2kXR?r4Z{W5Yq7hO83&g zUju^0y8bOh1%P4@`(0oQDIYyY3Y!8z?cbAZi*B;LZxNMXy! zc$+-@{Ez_ac$+-_{D1(Xp7t2KSX_?@@D3*KlfjM%@D3(w0h5sg6n~6!JOCR4JWS@b z__%`U0F)xW#I?*NG63G6OT2&8Kb6e027o`m;;*Iu>6Q7S08sl+Qx$mipQb7x0r2(p z^#kB`y9oi*{(TYD{(TV$0GxCGX_^|qDfiF63jv&W04G6!^A6wyfZh_Ac1vIq0dT$p z)Z1VKPZs{QDgb7Sd(H;1XaU#@pbFSCN&waYs=#8)vS^+G-@R=Sy#}?Y2zj zao?i{Y<=(1_vY~!b>JK~)0HXHFp(Q{ptJk+O-~jM8`U>S=Z4g?s{UPoA0N{HQxy(p zsfE&$JYGwo1U;Rx)KkEkhU7*v(>=+4l&I(VFYJIHKk)rS73Lg*&LcP|dVr#yXHC

wvo zK?91!i#O0liz8#O7i?^J#$X)1=w&at`+y7XxbMB49)aI42(DP|jH_e|p4$CO5ZB_v&CMTIVj1FkS(Zi(?H5CT;Awb?^-2%J z!!mSW4-psuLh`H*fV6~3fTVD7Gzg5uByx5ji-Uk_!5l?VAOk>d-#Qfu8Y0Dxue&f{ zCLroy@`4ReQ)xyh9a5Z?0`O?`BAm?>gm>$Z6m5@iXhZDmum=McKqisNvjBt}O|c=9 zbJqf&q70c_XEui4E0JM;UA`10#FMILH~nxgtoQqfK=$HVt3~INL2{%4tc>|qjS`Q2 zK^6c)#Re55tEOb)W?xchqJG_j0S{(PwgOZdHb62&z**&7CSd{r%m8ar`!;i?rkI5A zfpa>tCnB|#RYB#ri&G$jOsa?|z{~Hxg_xgdMpSz|9FA=YvgEdZ2p|!WKyZL2V%$Xp zDzbES1ZySTp(OIBrmETHbN&M})f7;(;O*{6l}BkDT)kl4i2*Ow3N@AkB|H_aG!?B56o41x)?JrHG1ueW?m2rn{>9h=4!mNp!Au z{BHd;lTt8SQm0AC1B_rl_Sv)G{`>)GvM_EEal*Bdrtu)<(S08V03f6|;339E6M0v& zL?j%cyLCLy%d-#=AaB-?)j&&0)o8i65OOXK$aLC+0ZWX1k*+p6M@5heQdcFQST{njxw}<=7 zXXPcHX`$Fm3T zUq8P5-@dRI+U&_*cQ4%rILV3MiII0uI=*a}Wif+KmCg8tlZZ^K78BjjC`^R$bx%cxRwsT`S7~&}V&+ zX#@&*EsB>U(&kp>RqH7*mlH$1qg6LHsBhmoqRsoc3 zfPKUyPHN5?iAY+-P)~xSkT+v+z|X2kssuu`;UFwyPOQX_>&_w(zzU*IqHmYF3`wg1 z1R$1as}NXD3aY)JqVrLtKt>~p0M;4h^w$DVAOI*FWG7x}BRDN&13Y^M%)tG`0EQ}m z2QM)W06p2T6K^7jzE>?RqDubwO=pr@2MF?^#!96Ukg5U#eX$MkE2{)3;-{=)8~|SS z+R)I}2D;_cq1-Qn8=`3(S~GA1kVdc*i-gs6oy(Oo=oW>863f63ad7r-3;-S?RfIs6 zURp$jIulh9K)|(j3OIm73;IHJ8;<3FN-G=%2=wd06NAX0QO(D&7no6(QZ=1{_8O9U zu|$=GU=R*|$cRd$q3!Fy6$qf1du@>#&?bmsQe+1^*^J^ppoJ_+(1sQuI}}hiADoRU z5X<7-afd!t2+IA=>pJ5D6=Eeg0HVDTmEfT7MgaiyY~KoiW%C+9)U{7@?X${CXJB>BN|Sh0P9*?U z5Vx_f3}f5ge+81X1?bFL#idtmWSFRaRmwO30E*QucnjbrN%iSjHVRNsK$1iv8-8pG z2Kj(S2hTStiBzijw3y<@wS#qkN2AyaST?I`BLLB@f^`NCQZdNEkGo6~5P(QfEd>WP zlEyN?rRfHEO9jAc|8fK=aMu9t-T}YO&*zW!eRsW^U(9cHwAuIXkM_gvm-F4lqoeue z`eMF0dj973&CTQIN4tCTN1OTXo9oTyXmfr3-M#a}(u>{g-R9;R!Fj+vbR>2MngC1y z?mh+n%bFZ80hj