aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/shedaniel
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/me/shedaniel')
-rw-r--r--src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java4
-rw-r--r--src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java12
-rw-r--r--src/main/java/me/shedaniel/rei/gui/config/ConfigScreen.java8
-rw-r--r--src/main/java/me/shedaniel/rei/gui/credits/CreditsScreen.java8
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/IWidget.java4
-rw-r--r--src/main/java/me/shedaniel/rei/mixin/MixinBrewingRecipeRegistry.java59
-rw-r--r--src/main/java/me/shedaniel/rei/mixin/MixinContainerScreen.java8
-rw-r--r--src/main/java/me/shedaniel/rei/mixin/MixinCraftingTableScreen.java4
-rw-r--r--src/main/java/me/shedaniel/rei/mixin/MixinCreativePlayerInventoryScreen.java4
-rw-r--r--src/main/java/me/shedaniel/rei/mixin/MixinPlayerInventoryScreen.java4
-rw-r--r--src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java9
11 files changed, 94 insertions, 30 deletions
diff --git a/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java b/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java
index 0fafdda42..e50b7d9c9 100644
--- a/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java
+++ b/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java
@@ -364,7 +364,7 @@ public class ContainerScreenOverlay extends ScreenComponent {
}
@Override
- public boolean mouseScrolled(double amount) {
+ public boolean mouseScrolled(double i, double j, double amount) {
if (!ScreenHelper.isOverlayVisible())
return false;
if (rectangle.contains(ClientHelper.getMouseLocation())) {
@@ -377,7 +377,7 @@ public class ContainerScreenOverlay extends ScreenComponent {
return true;
}
for(IWidget widget : widgets)
- if (widget.mouseScrolled(amount))
+ if (widget.mouseScrolled(i, j, amount))
return true;
return false;
}
diff --git a/src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java b/src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java
index e3bf000fd..68fde8422 100644
--- a/src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java
+++ b/src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java
@@ -348,9 +348,9 @@ public class RecipeViewingScreen extends Screen {
}
@Override
- public boolean mouseScrolled(double amount) {
+ public boolean mouseScrolled(double i, double j, double amount) {
for(InputListener listener : listeners)
- if (listener.mouseScrolled(amount))
+ if (listener.mouseScrolled(i, j, amount))
return true;
if (getBounds().contains(ClientHelper.getMouseLocation())) {
if (amount > 0 && recipeBack.enabled)
@@ -364,7 +364,7 @@ public class RecipeViewingScreen extends Screen {
else if (amount < 0 && categoryNext.enabled)
categoryNext.onPressed(0, 0, 0);
}
- return super.mouseScrolled(amount);
+ return super.mouseScrolled(i, j, amount);
}
@Override
@@ -389,11 +389,11 @@ public class RecipeViewingScreen extends Screen {
return false;
}
- @Override
- public InputListener getFocused() {
+ @Override //getFocused
+ public InputListener method_19357() {
if (choosePageActivated)
return recipeChoosePageWidget;
- return super.getFocused();
+ return super.method_19357();
}
}
diff --git a/src/main/java/me/shedaniel/rei/gui/config/ConfigScreen.java b/src/main/java/me/shedaniel/rei/gui/config/ConfigScreen.java
index cc3d63135..c1f0f885d 100644
--- a/src/main/java/me/shedaniel/rei/gui/config/ConfigScreen.java
+++ b/src/main/java/me/shedaniel/rei/gui/config/ConfigScreen.java
@@ -7,10 +7,10 @@ import me.shedaniel.rei.client.ItemListOrdering;
import me.shedaniel.rei.client.ScreenHelper;
import me.shedaniel.rei.gui.widget.QueuedTooltip;
import me.shedaniel.rei.gui.widget.TextFieldWidget;
+import net.minecraft.class_4185;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.InputListener;
import net.minecraft.client.gui.Screen;
-import net.minecraft.client.gui.widget.ButtonWidget;
import net.minecraft.client.render.GuiLighting;
import net.minecraft.client.resource.language.I18n;
import net.minecraft.text.TranslatableTextComponent;
@@ -334,9 +334,9 @@ public class ConfigScreen extends Screen {
return false;
}
}));
- addButton(new ButtonWidget(screenWidth / 2 - 100, screenHeight - 26, I18n.translate("gui.done")) {
+ addButton(new class_4185(screenWidth / 2 - 100, screenHeight - 26, I18n.translate("gui.done")) {
@Override
- public void onPressed(double double_1, double double_2) {
+ public void method_1826() {
try {
RoughlyEnoughItemsCore.getConfigManager().saveConfig();
} catch (IOException e) {
@@ -372,7 +372,7 @@ public class ConfigScreen extends Screen {
}
@Override
- public InputListener getFocused() {
+ public InputListener method_19357() {
return entryListWidget;
}
diff --git a/src/main/java/me/shedaniel/rei/gui/credits/CreditsScreen.java b/src/main/java/me/shedaniel/rei/gui/credits/CreditsScreen.java
index 40e4aed80..b2b241225 100644
--- a/src/main/java/me/shedaniel/rei/gui/credits/CreditsScreen.java
+++ b/src/main/java/me/shedaniel/rei/gui/credits/CreditsScreen.java
@@ -1,10 +1,10 @@
package me.shedaniel.rei.gui.credits;
import me.shedaniel.rei.client.ScreenHelper;
+import net.minecraft.class_4185;
import net.minecraft.client.gui.ContainerScreen;
import net.minecraft.client.gui.InputListener;
import net.minecraft.client.gui.Screen;
-import net.minecraft.client.gui.widget.ButtonWidget;
import net.minecraft.client.resource.language.I18n;
import net.minecraft.text.StringTextComponent;
@@ -34,9 +34,9 @@ public class CreditsScreen extends Screen {
for(String line : I18n.translate("text.rei.credit.text").split("\n"))
entryListWidget.creditsAddEntry(new CreditsEntry(new StringTextComponent(line)));
entryListWidget.creditsAddEntry(new CreditsEntry(new StringTextComponent("")));
- addButton(new ButtonWidget(screenWidth / 2 - 100, screenHeight - 26, I18n.translate("gui.done")) {
+ addButton(new class_4185(screenWidth / 2 - 100, screenHeight - 26, I18n.translate("gui.done")) {
@Override
- public void onPressed(double double_1, double double_2) {
+ public void method_1826() {
CreditsScreen.this.client.openScreen(parent);
ScreenHelper.getLastOverlay().onInitialized();
}
@@ -58,7 +58,7 @@ public class CreditsScreen extends Screen {
}
@Override
- public InputListener getFocused() {
+ public InputListener method_19357() {
return entryListWidget;
}
diff --git a/src/main/java/me/shedaniel/rei/gui/widget/IWidget.java b/src/main/java/me/shedaniel/rei/gui/widget/IWidget.java
index 2d9b97250..59446f8bd 100644
--- a/src/main/java/me/shedaniel/rei/gui/widget/IWidget.java
+++ b/src/main/java/me/shedaniel/rei/gui/widget/IWidget.java
@@ -28,11 +28,11 @@ public interface IWidget extends InputListener, Drawable {
}
@Override
- default boolean mouseScrolled(double amount) {
+ default boolean mouseScrolled(double i, double j, double amount) {
if (onMouseScrolled(amount))
return true;
for(IWidget widget : getListeners())
- if (widget.mouseScrolled(amount))
+ if (widget.mouseScrolled(i, j, amount))
return true;
return false;
}
diff --git a/src/main/java/me/shedaniel/rei/mixin/MixinBrewingRecipeRegistry.java b/src/main/java/me/shedaniel/rei/mixin/MixinBrewingRecipeRegistry.java
new file mode 100644
index 000000000..5c3e10461
--- /dev/null
+++ b/src/main/java/me/shedaniel/rei/mixin/MixinBrewingRecipeRegistry.java
@@ -0,0 +1,59 @@
+package me.shedaniel.rei.mixin;
+
+import com.google.common.collect.Lists;
+import me.shedaniel.rei.plugin.BrewingRecipe;
+import me.shedaniel.rei.plugin.DefaultBrewingDisplay;
+import me.shedaniel.rei.plugin.DefaultPlugin;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemProvider;
+import net.minecraft.item.PotionItem;
+import net.minecraft.potion.Potion;
+import net.minecraft.potion.PotionUtil;
+import net.minecraft.recipe.BrewingRecipeRegistry;
+import net.minecraft.recipe.Ingredient;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.injection.At;
+import org.spongepowered.asm.mixin.injection.Inject;
+import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
+
+import java.util.Arrays;
+import java.util.List;
+
+@Mixin(BrewingRecipeRegistry.class)
+public class MixinBrewingRecipeRegistry {
+
+ private static final List<BrewingRecipe> SELF_ITEM_RECIPES = Lists.newArrayList();
+ private static final List<Potion> REGISTERED_POTION_TYPES = Lists.newArrayList();
+ private static final List<Ingredient> SELF_POTION_TYPES = Lists.newArrayList();
+
+ @Inject(method = "registerPotionType", at = @At("RETURN"))
+ private static void method_8080(Item item_1, CallbackInfo ci) {
+ if (item_1 instanceof PotionItem)
+ SELF_POTION_TYPES.add(Ingredient.ofItems(new ItemProvider[]{item_1}));
+ }
+
+ @Inject(method = "registerItemRecipe", at = @At("RETURN"))
+ private static void method_8071(Item item_1, Item item_2, Item item_3, CallbackInfo ci) {
+ if (item_1 instanceof PotionItem && item_3 instanceof PotionItem)
+ SELF_ITEM_RECIPES.add(new BrewingRecipe(item_1, Ingredient.ofItems(new ItemProvider[]{item_2}), item_3));
+ }
+
+ @Inject(method = "registerPotionRecipe", at = @At("RETURN"))
+ private static void registerPotionRecipe(Potion potion_1, Item item_1, Potion potion_2, CallbackInfo ci) {
+ if (!REGISTERED_POTION_TYPES.contains(potion_1))
+ rei_registerPotionType(potion_1);
+ if (!REGISTERED_POTION_TYPES.contains(potion_2))
+ rei_registerPotionType(potion_2);
+ SELF_POTION_TYPES.stream().map(Ingredient::getStackArray).forEach(itemStacks -> Arrays.stream(itemStacks).forEach(stack -> {
+ DefaultPlugin.registerBrewingDisplay(new DefaultBrewingDisplay(PotionUtil.setPotion(stack.copy(), potion_1), Ingredient.ofItems(new ItemProvider[]{item_1}), PotionUtil.setPotion(stack.copy(), potion_2)));
+ }));
+ }
+
+ private static void rei_registerPotionType(Potion potion) {
+ REGISTERED_POTION_TYPES.add(potion);
+ SELF_ITEM_RECIPES.forEach(recipe -> {
+ DefaultPlugin.registerBrewingDisplay(new DefaultBrewingDisplay(PotionUtil.setPotion(recipe.input.getDefaultStack(), potion), recipe.ingredient, PotionUtil.setPotion(recipe.output.getDefaultStack(), potion)));
+ });
+ }
+
+}
diff --git a/src/main/java/me/shedaniel/rei/mixin/MixinContainerScreen.java b/src/main/java/me/shedaniel/rei/mixin/MixinContainerScreen.java
index 5371ca545..f07ce83ff 100644
--- a/src/main/java/me/shedaniel/rei/mixin/MixinContainerScreen.java
+++ b/src/main/java/me/shedaniel/rei/mixin/MixinContainerScreen.java
@@ -57,17 +57,17 @@ public class MixinContainerScreen extends Screen implements ContainerScreenHooks
}
@Override
- public boolean mouseScrolled(double double_1) {
+ public boolean mouseScrolled(double i, double j, double double_1) {
if (MinecraftClient.getInstance().currentScreen instanceof CreativePlayerInventoryScreen) {
TabGetter tabGetter = (TabGetter) MinecraftClient.getInstance().currentScreen;
if (tabGetter.rei_getSelectedTab() != ItemGroup.INVENTORY.getIndex())
- return super.mouseScrolled(double_1);
+ return super.mouseScrolled(i, j, double_1);
}
ContainerScreenOverlay overlay = ScreenHelper.getLastOverlay();
if (ScreenHelper.isOverlayVisible() && overlay.getRectangle().contains(ClientHelper.getMouseLocation()))
- if (overlay.mouseScrolled(double_1))
+ if (overlay.mouseScrolled(i, j, double_1))
return true;
- return super.mouseScrolled(double_1);
+ return super.mouseScrolled(i, j, double_1);
}
@Inject(method = "keyPressed(III)Z", at = @At("HEAD"), cancellable = true)
diff --git a/src/main/java/me/shedaniel/rei/mixin/MixinCraftingTableScreen.java b/src/main/java/me/shedaniel/rei/mixin/MixinCraftingTableScreen.java
index 0ff01ec3c..a4093d09f 100644
--- a/src/main/java/me/shedaniel/rei/mixin/MixinCraftingTableScreen.java
+++ b/src/main/java/me/shedaniel/rei/mixin/MixinCraftingTableScreen.java
@@ -26,8 +26,8 @@ public abstract class MixinCraftingTableScreen extends ContainerScreen {
}
@Override
- public InputListener getFocused() {
- return super.getFocused();
+ public InputListener method_19357() {
+ return super.method_19357();
}
@Inject(method = "mouseClicked", at = @At("HEAD"), cancellable = true)
diff --git a/src/main/java/me/shedaniel/rei/mixin/MixinCreativePlayerInventoryScreen.java b/src/main/java/me/shedaniel/rei/mixin/MixinCreativePlayerInventoryScreen.java
index 51eb3947b..a7c06c689 100644
--- a/src/main/java/me/shedaniel/rei/mixin/MixinCreativePlayerInventoryScreen.java
+++ b/src/main/java/me/shedaniel/rei/mixin/MixinCreativePlayerInventoryScreen.java
@@ -29,9 +29,9 @@ public abstract class MixinCreativePlayerInventoryScreen extends AbstractPlayerI
protected abstract boolean doRenderScrollBar();
@Inject(method = "mouseScrolled", at = @At("HEAD"), cancellable = true)
- public void mouseScrolled(double amount, CallbackInfoReturnable<Boolean> ci) {
+ public void mouseScrolled(double i, double j, double amount, CallbackInfoReturnable<Boolean> ci) {
if (!doRenderScrollBar() && selectedTab == ItemGroup.INVENTORY.getIndex())
- if (ScreenHelper.isOverlayVisible() && ScreenHelper.getLastOverlay().getRectangle().contains(ClientHelper.getMouseLocation()) && ScreenHelper.getLastOverlay().mouseScrolled(amount)) {
+ if (ScreenHelper.isOverlayVisible() && ScreenHelper.getLastOverlay().getRectangle().contains(ClientHelper.getMouseLocation()) && ScreenHelper.getLastOverlay().mouseScrolled(i, j, amount)) {
ci.setReturnValue(true);
ci.cancel();
}
diff --git a/src/main/java/me/shedaniel/rei/mixin/MixinPlayerInventoryScreen.java b/src/main/java/me/shedaniel/rei/mixin/MixinPlayerInventoryScreen.java
index fef58b38d..c47d55f6a 100644
--- a/src/main/java/me/shedaniel/rei/mixin/MixinPlayerInventoryScreen.java
+++ b/src/main/java/me/shedaniel/rei/mixin/MixinPlayerInventoryScreen.java
@@ -27,8 +27,8 @@ public abstract class MixinPlayerInventoryScreen extends AbstractPlayerInventory
}
@Override
- public InputListener getFocused() {
- return super.getFocused();
+ public InputListener method_19357() {
+ return super.method_19357();
}
@Inject(method = "mouseClicked", at = @At("HEAD"), cancellable = true)
diff --git a/src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java b/src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java
index 6e54c55e5..b74f97911 100644
--- a/src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java
+++ b/src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java
@@ -16,7 +16,6 @@ import net.minecraft.enchantment.EnchantmentHelper;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.potion.PotionUtil;
-import net.minecraft.recipe.REIBrewingRecipeRegistry;
import net.minecraft.recipe.Recipe;
import net.minecraft.recipe.StonecuttingRecipe;
import net.minecraft.recipe.cooking.BlastingRecipe;
@@ -41,6 +40,12 @@ public class DefaultPlugin implements REIPlugin {
public static final Identifier BREWING = new Identifier("roughlyenoughitems", "plugins/brewing");
public static final Identifier PLUGIN = new Identifier("roughlyenoughitems", "default_plugin");
+ private static final List<DefaultBrewingDisplay> BREWING_DISPLAYS = Lists.newArrayList();
+
+ public static void registerBrewingDisplay(DefaultBrewingDisplay display) {
+ BREWING_DISPLAYS.add(display);
+ }
+
@Override
public void onFirstLoad(PluginDisabler pluginDisabler) {
if (!RoughlyEnoughItemsCore.getConfigManager().getConfig().loadDefaultPlugin) {
@@ -99,7 +104,7 @@ public class DefaultPlugin implements REIPlugin {
recipeHelper.registerDisplay(CAMPFIRE, new DefaultCampfireDisplay((CampfireCookingRecipe) recipe));
else if (recipe instanceof StonecuttingRecipe)
recipeHelper.registerDisplay(STONE_CUTTING, new DefaultStoneCuttingDisplay((StonecuttingRecipe) recipe));
- REIBrewingRecipeRegistry.registerDisplays(recipeHelper);
+ BREWING_DISPLAYS.stream().forEachOrdered(display -> recipeHelper.registerDisplay(BREWING, display));
List<ItemStack> arrowStack = Arrays.asList(Items.ARROW.getDefaultStack());
RoughlyEnoughItemsCore.getItemRegisterer().getItemList().stream().filter(stack -> stack.getItem().equals(Items.LINGERING_POTION)).forEach(stack -> {
List<List<ItemStack>> input = new ArrayList<>();