diff options
Diffstat (limited to 'src/main/java/me/shedaniel/rei/mixin')
7 files changed, 36 insertions, 37 deletions
diff --git a/src/main/java/me/shedaniel/rei/mixin/MixinGuiContainer.java b/src/main/java/me/shedaniel/rei/mixin/MixinGuiContainer.java index d065c0a2a..556e62871 100644 --- a/src/main/java/me/shedaniel/rei/mixin/MixinGuiContainer.java +++ b/src/main/java/me/shedaniel/rei/mixin/MixinGuiContainer.java @@ -33,7 +33,6 @@ public class MixinGuiContainer extends GuiScreen implements IMixinGuiContainer { protected int ySize; @Shadow protected Slot hoveredSlot; - private GuiContainer lastGui; @Shadow private ItemStack draggedStack; @@ -64,8 +63,10 @@ public class MixinGuiContainer extends GuiScreen implements IMixinGuiContainer { @Inject(method = "initGui()V", at = @At("RETURN")) protected void initGui(CallbackInfo info) { - GuiHelper.resetOverlay(); - this.children.add(GuiHelper.getOverlay(lastGui)); + GuiHelper.setLastGuiContainer((GuiContainer) (Object) this); + GuiHelper.setLastMixinGuiContainer((IMixinGuiContainer) this); + GuiHelper.setOverlay(new ContainerGuiOverlay()); + this.children.add(GuiHelper.getLastOverlay()); } @Inject(method = "render(IIF)V", at = @At("RETURN")) @@ -75,9 +76,7 @@ public class MixinGuiContainer extends GuiScreen implements IMixinGuiContainer { if (tabGetter.getSelectedTab() != ItemGroup.INVENTORY.getIndex()) return; } - if (Minecraft.getInstance().currentScreen instanceof GuiContainer) - this.lastGui = (GuiContainer) Minecraft.getInstance().currentScreen; - GuiHelper.getOverlay(lastGui).renderOverlay(int_1, int_2, float_1); + GuiHelper.getLastOverlay().renderOverlay(int_1, int_2, float_1); } @Override @@ -85,18 +84,12 @@ public class MixinGuiContainer extends GuiScreen implements IMixinGuiContainer { return this.draggedStack; } - @Override - public GuiContainer getContainerGui() { - return lastGui; - } - @Inject(method = "keyPressed(III)Z", at = @At("HEAD"), cancellable = true) public void keyPressed(int int_1, int int_2, int int_3, CallbackInfoReturnable<Boolean> ci) { - for(IGuiEventListener entry : this.getChildren()) - if (entry.keyPressed(int_1, int_2, int_3)) { - ci.cancel(); - ci.setReturnValue(true); - } + if (GuiHelper.getLastOverlay().keyPressed(int_1, int_2, int_3)) { + ci.cancel(); + ci.setReturnValue(true); + } } @Override @@ -106,7 +99,7 @@ public class MixinGuiContainer extends GuiScreen implements IMixinGuiContainer { @Override public boolean mouseScrolled(double double_1) { - ContainerGuiOverlay overlay = GuiHelper.getOverlay(lastGui); + ContainerGuiOverlay overlay = GuiHelper.getLastOverlay(); if (GuiHelper.isOverlayVisible() && overlay.getRectangle().contains(ClientHelper.getMouseLocation())) for(IGuiEventListener entry : this.getChildren()) if (entry.mouseScrolled(double_1)) diff --git a/src/main/java/me/shedaniel/rei/mixin/MixinGuiCrafting.java b/src/main/java/me/shedaniel/rei/mixin/MixinGuiCrafting.java index c19d418b8..926da4928 100644 --- a/src/main/java/me/shedaniel/rei/mixin/MixinGuiCrafting.java +++ b/src/main/java/me/shedaniel/rei/mixin/MixinGuiCrafting.java @@ -16,7 +16,9 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Mixin(GuiCrafting.class) public abstract class MixinGuiCrafting extends GuiContainer implements IRecipeShownListener { - @Shadow @Final private GuiRecipeBook recipeBookGui; + @Shadow + @Final + private GuiRecipeBook recipeBookGui; public MixinGuiCrafting(Container inventorySlotsIn) { super(inventorySlotsIn); diff --git a/src/main/java/me/shedaniel/rei/mixin/MixinGuiInventory.java b/src/main/java/me/shedaniel/rei/mixin/MixinGuiInventory.java index 63c80d48c..cb4952371 100644 --- a/src/main/java/me/shedaniel/rei/mixin/MixinGuiInventory.java +++ b/src/main/java/me/shedaniel/rei/mixin/MixinGuiInventory.java @@ -16,7 +16,9 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Mixin(GuiInventory.class) public abstract class MixinGuiInventory extends InventoryEffectRenderer implements IRecipeShownListener { - @Shadow @Final private GuiRecipeBook recipeBookGui; + @Shadow + @Final + private GuiRecipeBook recipeBookGui; public MixinGuiInventory(Container inventorySlotsIn) { super(inventorySlotsIn); diff --git a/src/main/java/me/shedaniel/rei/mixin/MixinGuiRecipeBook.java b/src/main/java/me/shedaniel/rei/mixin/MixinGuiRecipeBook.java index 12640e7f8..2af44c101 100644 --- a/src/main/java/me/shedaniel/rei/mixin/MixinGuiRecipeBook.java +++ b/src/main/java/me/shedaniel/rei/mixin/MixinGuiRecipeBook.java @@ -10,7 +10,9 @@ import org.spongepowered.asm.mixin.Shadow; @Mixin(GuiRecipeBook.class) public class MixinGuiRecipeBook implements IMixinRecipeBookGui { - @Shadow @Final protected GhostRecipe ghostRecipe; + @Shadow + @Final + protected GhostRecipe ghostRecipe; @Override public GhostRecipe getGhostRecipe() { diff --git a/src/main/java/me/shedaniel/rei/mixin/MixinKeyBinding.java b/src/main/java/me/shedaniel/rei/mixin/MixinKeyBinding.java index 5c5f13993..cb55f1d84 100644 --- a/src/main/java/me/shedaniel/rei/mixin/MixinKeyBinding.java +++ b/src/main/java/me/shedaniel/rei/mixin/MixinKeyBinding.java @@ -11,7 +11,9 @@ import java.util.Map; @Mixin(KeyBinding.class) public class MixinKeyBinding implements IMixinKeyBinding { - @Shadow @Final private static Map<String, Integer> CATEGORY_ORDER; + @Shadow + @Final + private static Map<String, Integer> CATEGORY_ORDER; @Override public boolean addCategory(String keyBindingCategory, int id) { diff --git a/src/main/java/me/shedaniel/rei/mixin/MixinNetHandlerPlayClient.java b/src/main/java/me/shedaniel/rei/mixin/MixinNetHandlerPlayClient.java index 9705afb26..e96c2d318 100644 --- a/src/main/java/me/shedaniel/rei/mixin/MixinNetHandlerPlayClient.java +++ b/src/main/java/me/shedaniel/rei/mixin/MixinNetHandlerPlayClient.java @@ -1,7 +1,7 @@ package me.shedaniel.rei.mixin; import me.shedaniel.rei.RoughlyEnoughItemsCore; -import me.shedaniel.rei.listeners.RecipeSync; +import me.shedaniel.rei.RoughlyEnoughItemsPlugin; import net.minecraft.client.network.NetHandlerPlayClient; import net.minecraft.item.crafting.RecipeManager; import net.minecraft.network.play.server.SPacketUpdateRecipes; @@ -15,11 +15,14 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @Mixin(NetHandlerPlayClient.class) public class MixinNetHandlerPlayClient { - @Shadow @Final private RecipeManager recipeManager; + @Shadow + @Final + private RecipeManager recipeManager; @Inject(method = "handleUpdateRecipes", at = @At("RETURN")) private void onUpdateRecipes(SPacketUpdateRecipes packetIn, CallbackInfo ci) { - RoughlyEnoughItemsCore.getListeners(RecipeSync.class).forEach(recipeSync -> recipeSync.recipesLoaded(this.recipeManager)); + RoughlyEnoughItemsPlugin.discoverPlugins(); + RoughlyEnoughItemsCore.getRecipeHelper().recipesLoaded(recipeManager); } } diff --git a/src/main/java/me/shedaniel/rei/mixin/MixinPotionBrewing.java b/src/main/java/me/shedaniel/rei/mixin/MixinPotionBrewing.java index c13f213c7..90573a485 100644 --- a/src/main/java/me/shedaniel/rei/mixin/MixinPotionBrewing.java +++ b/src/main/java/me/shedaniel/rei/mixin/MixinPotionBrewing.java @@ -6,16 +6,17 @@ import me.shedaniel.rei.plugin.DefaultBrewingDisplay; import me.shedaniel.rei.plugin.DefaultPlugin; import net.minecraft.item.Item; import net.minecraft.item.ItemPotion; -import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.Ingredient; import net.minecraft.potion.PotionBrewing; import net.minecraft.potion.PotionType; import net.minecraft.potion.PotionUtils; +import net.minecraft.util.IItemProvider; 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(PotionBrewing.class) @@ -27,16 +28,14 @@ public class MixinPotionBrewing { @Inject(method = "func_196208_a", at = @At("RETURN")) private static void func_196208_a(Item item_1, CallbackInfo ci) { - if (item_1 instanceof ItemPotion) { + if (item_1 instanceof ItemPotion) SELF_POTION_TYPES.add(Ingredient.fromItems(item_1)); - } } @Inject(method = "func_196207_a", at = @At("RETURN")) private static void func_196207_a(Item item_1, Item item_2, Item item_3, CallbackInfo ci) { - if (item_1 instanceof ItemPotion && item_3 instanceof ItemPotion) { + if (item_1 instanceof ItemPotion && item_3 instanceof ItemPotion) SELF_ITEM_RECIPES.add(new BrewingRecipe(item_1, Ingredient.fromItems(item_2), item_3)); - } } @Inject(method = "addMix", at = @At("RETURN")) @@ -45,19 +44,15 @@ public class MixinPotionBrewing { registerPotionType(potion_1); if (!REGISTERED_POTION_TYPES.contains(potion_2)) registerPotionType(potion_2); - SELF_POTION_TYPES.forEach(ingredient -> { - for(ItemStack stack : ingredient.getMatchingStacks()) { - DefaultPlugin.registerBrewingDisplay(new DefaultBrewingDisplay(PotionUtils.addPotionToItemStack(stack.copy(), potion_1), Ingredient.fromItems(item_1), - PotionUtils.addPotionToItemStack(stack.copy(), potion_2))); - } - }); + SELF_POTION_TYPES.stream().map(Ingredient::getMatchingStacks).forEach(itemStacks -> Arrays.stream(itemStacks).forEach(stack -> { + DefaultPlugin.registerBrewingDisplay(new DefaultBrewingDisplay(PotionUtils.addPotionToItemStack(stack.copy(), potion_1), Ingredient.fromItems(new IItemProvider[]{item_1}), PotionUtils.addPotionToItemStack(stack.copy(), potion_2))); + })); } private static void registerPotionType(PotionType potion) { REGISTERED_POTION_TYPES.add(potion); SELF_ITEM_RECIPES.forEach(recipe -> { - DefaultPlugin.registerBrewingDisplay(new DefaultBrewingDisplay(PotionUtils.addPotionToItemStack(recipe.input.getDefaultInstance(), potion), recipe.ingredient, - PotionUtils.addPotionToItemStack(recipe.output.getDefaultInstance(), potion))); + DefaultPlugin.registerBrewingDisplay(new DefaultBrewingDisplay(PotionUtils.addPotionToItemStack(recipe.input.getDefaultInstance(), potion), recipe.ingredient, PotionUtils.addPotionToItemStack(recipe.output.getDefaultInstance(), potion))); }); } |
