diff options
| author | Daniel She <shekwancheung0528@gmail.com> | 2019-05-10 00:20:16 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-05-10 00:20:16 +0800 |
| commit | 67fc756047f34bdbb9f028e48fc725534b3beafc (patch) | |
| tree | 670f0694b3313eaf712020a9d60dc34404725777 /src/main/java/me/shedaniel/rei/plugin | |
| parent | 766b4837c2512cefa3188adc897605a83144f711 (diff) | |
| parent | 467511401a783fc0a8d625947e69519da1c815e1 (diff) | |
| download | RoughlyEnoughItems-67fc756047f34bdbb9f028e48fc725534b3beafc.tar.gz RoughlyEnoughItems-67fc756047f34bdbb9f028e48fc725534b3beafc.tar.bz2 RoughlyEnoughItems-67fc756047f34bdbb9f028e48fc725534b3beafc.zip | |
Merge pull request #86 from shedaniel/1.14-dev
REi v2.9 (WIP)
Diffstat (limited to 'src/main/java/me/shedaniel/rei/plugin')
8 files changed, 81 insertions, 37 deletions
diff --git a/src/main/java/me/shedaniel/rei/plugin/DefaultBlastingCategory.java b/src/main/java/me/shedaniel/rei/plugin/DefaultBlastingCategory.java index 7f40dd211..99e46de07 100644 --- a/src/main/java/me/shedaniel/rei/plugin/DefaultBlastingCategory.java +++ b/src/main/java/me/shedaniel/rei/plugin/DefaultBlastingCategory.java @@ -2,7 +2,9 @@ package me.shedaniel.rei.plugin; import com.mojang.blaze3d.platform.GlStateManager; import me.shedaniel.rei.api.RecipeCategory; -import me.shedaniel.rei.gui.widget.ItemSlotWidget; +import me.shedaniel.rei.api.Renderable; +import me.shedaniel.rei.gui.renderables.RecipeRenderer; +import me.shedaniel.rei.gui.widget.SlotWidget; import me.shedaniel.rei.gui.widget.RecipeBaseWidget; import me.shedaniel.rei.gui.widget.Widget; import net.minecraft.block.Blocks; @@ -39,6 +41,11 @@ public class DefaultBlastingCategory implements RecipeCategory<DefaultBlastingDi } @Override + public RecipeRenderer getSimpleRenderer(DefaultBlastingDisplay recipe) { + return Renderable.fromRecipe(() -> Arrays.asList(recipe.getInput().get(0)), recipe::getOutput); + } + + @Override public List<Widget> setupDisplay(Supplier<DefaultBlastingDisplay> recipeDisplaySupplier, Rectangle bounds) { final DefaultBlastingDisplay recipeDisplay = recipeDisplaySupplier.get(); Point startPoint = new Point((int) bounds.getCenterX() - 41, (int) bounds.getCenterY() - 27); @@ -57,14 +64,14 @@ public class DefaultBlastingCategory implements RecipeCategory<DefaultBlastingDi } })); List<List<ItemStack>> input = recipeDisplay.getInput(); - widgets.add(new ItemSlotWidget(startPoint.x + 1, startPoint.y + 1, input.get(0), true, true, true)); - widgets.add(new ItemSlotWidget(startPoint.x + 1, startPoint.y + 37, recipeDisplay.getFuel(), true, true, true) { + widgets.add(new SlotWidget(startPoint.x + 1, startPoint.y + 1, input.get(0), true, true, true)); + widgets.add(new SlotWidget(startPoint.x + 1, startPoint.y + 37, recipeDisplay.getFuel(), true, true, true) { @Override protected List<String> getExtraToolTips(ItemStack stack) { return Arrays.asList(I18n.translate("category.rei.smelting.fuel")); } }); - widgets.add(new ItemSlotWidget(startPoint.x + 61, startPoint.y + 19, recipeDisplay.getOutput(), false, true, true)); + widgets.add(new SlotWidget(startPoint.x + 61, startPoint.y + 19, recipeDisplay.getOutput(), false, true, true)); return widgets; } diff --git a/src/main/java/me/shedaniel/rei/plugin/DefaultBrewingCategory.java b/src/main/java/me/shedaniel/rei/plugin/DefaultBrewingCategory.java index 4575d0a94..ed3c84ba0 100644 --- a/src/main/java/me/shedaniel/rei/plugin/DefaultBrewingCategory.java +++ b/src/main/java/me/shedaniel/rei/plugin/DefaultBrewingCategory.java @@ -2,7 +2,7 @@ package me.shedaniel.rei.plugin; import com.mojang.blaze3d.platform.GlStateManager; import me.shedaniel.rei.api.RecipeCategory; -import me.shedaniel.rei.gui.widget.ItemSlotWidget; +import me.shedaniel.rei.gui.widget.SlotWidget; import me.shedaniel.rei.gui.widget.RecipeBaseWidget; import me.shedaniel.rei.gui.widget.Widget; import net.minecraft.block.Blocks; @@ -55,32 +55,32 @@ public class DefaultBrewingCategory implements RecipeCategory<DefaultBrewingDisp blit(startPoint.x + 44, startPoint.y + 28, 103, 163, width, 4); } })); - widgets.add(new ItemSlotWidget(startPoint.x + 1, startPoint.y + 1, Arrays.asList(new ItemStack(Items.BLAZE_POWDER)), false, true, true)); - widgets.add(new ItemSlotWidget(startPoint.x + 63, startPoint.y + 1, recipeDisplay.getInput().get(0), false, true, true) { + widgets.add(new SlotWidget(startPoint.x + 1, startPoint.y + 1, Arrays.asList(new ItemStack(Items.BLAZE_POWDER)), false, true, true)); + widgets.add(new SlotWidget(startPoint.x + 63, startPoint.y + 1, recipeDisplay.getInput().get(0), false, true, true) { @Override protected List<String> getExtraToolTips(ItemStack stack) { return Arrays.asList(I18n.translate("category.rei.brewing.input")); } }); - widgets.add(new ItemSlotWidget(startPoint.x + 40, startPoint.y + 1, recipeDisplay.getInput().get(1), false, true, true) { + widgets.add(new SlotWidget(startPoint.x + 40, startPoint.y + 1, recipeDisplay.getInput().get(1), false, true, true) { @Override protected List<String> getExtraToolTips(ItemStack stack) { return Arrays.asList(I18n.translate("category.rei.brewing.reactant")); } }); - widgets.add(new ItemSlotWidget(startPoint.x + 40, startPoint.y + 35, recipeDisplay.getOutput(0), false, true, true) { + widgets.add(new SlotWidget(startPoint.x + 40, startPoint.y + 35, recipeDisplay.getOutput(0), false, true, true) { @Override protected List<String> getExtraToolTips(ItemStack stack) { return Arrays.asList(I18n.translate("category.rei.brewing.result")); } }); - widgets.add(new ItemSlotWidget(startPoint.x + 63, startPoint.y + 42, recipeDisplay.getOutput(1), false, true, true) { + widgets.add(new SlotWidget(startPoint.x + 63, startPoint.y + 42, recipeDisplay.getOutput(1), false, true, true) { @Override protected List<String> getExtraToolTips(ItemStack stack) { return Arrays.asList(I18n.translate("category.rei.brewing.result")); } }); - widgets.add(new ItemSlotWidget(startPoint.x + 86, startPoint.y + 35, recipeDisplay.getOutput(2), false, true, true) { + widgets.add(new SlotWidget(startPoint.x + 86, startPoint.y + 35, recipeDisplay.getOutput(2), false, true, true) { @Override protected List<String> getExtraToolTips(ItemStack stack) { return Arrays.asList(I18n.translate("category.rei.brewing.result")); diff --git a/src/main/java/me/shedaniel/rei/plugin/DefaultCampfireCategory.java b/src/main/java/me/shedaniel/rei/plugin/DefaultCampfireCategory.java index 398e1a366..10a090984 100644 --- a/src/main/java/me/shedaniel/rei/plugin/DefaultCampfireCategory.java +++ b/src/main/java/me/shedaniel/rei/plugin/DefaultCampfireCategory.java @@ -2,7 +2,7 @@ package me.shedaniel.rei.plugin; import com.mojang.blaze3d.platform.GlStateManager; import me.shedaniel.rei.api.RecipeCategory; -import me.shedaniel.rei.gui.widget.ItemSlotWidget; +import me.shedaniel.rei.gui.widget.SlotWidget; import me.shedaniel.rei.gui.widget.RecipeBaseWidget; import me.shedaniel.rei.gui.widget.Widget; import net.minecraft.block.Blocks; @@ -58,8 +58,8 @@ public class DefaultCampfireCategory implements RecipeCategory<DefaultCampfireDi MinecraftClient.getInstance().textRenderer.draw(text, bounds.x + bounds.width - length - 5, startPoint.y + 54 - 8, 4210752); } })); - widgets.add(new ItemSlotWidget(startPoint.x + 1, startPoint.y + 11, recipeDisplaySupplier.get().getInput().get(0), true, true, true)); - widgets.add(new ItemSlotWidget(startPoint.x + 61, startPoint.y + 19, recipeDisplaySupplier.get().getOutput(), false, true, true)); + widgets.add(new SlotWidget(startPoint.x + 1, startPoint.y + 11, recipeDisplaySupplier.get().getInput().get(0), true, true, true)); + widgets.add(new SlotWidget(startPoint.x + 61, startPoint.y + 19, recipeDisplaySupplier.get().getOutput(), false, true, true)); return widgets; } diff --git a/src/main/java/me/shedaniel/rei/plugin/DefaultCraftingCategory.java b/src/main/java/me/shedaniel/rei/plugin/DefaultCraftingCategory.java index 00d2fd52e..02993ea6d 100644 --- a/src/main/java/me/shedaniel/rei/plugin/DefaultCraftingCategory.java +++ b/src/main/java/me/shedaniel/rei/plugin/DefaultCraftingCategory.java @@ -3,7 +3,7 @@ package me.shedaniel.rei.plugin; import com.google.common.collect.Lists; import com.mojang.blaze3d.platform.GlStateManager; import me.shedaniel.rei.api.RecipeCategory; -import me.shedaniel.rei.gui.widget.ItemSlotWidget; +import me.shedaniel.rei.gui.widget.SlotWidget; import me.shedaniel.rei.gui.widget.RecipeBaseWidget; import me.shedaniel.rei.gui.widget.Widget; import net.minecraft.block.Blocks; @@ -52,10 +52,10 @@ public class DefaultCraftingCategory implements RecipeCategory<DefaultCraftingDi } })); List<List<ItemStack>> input = recipeDisplaySupplier.get().getInput(); - List<ItemSlotWidget> slots = Lists.newArrayList(); + List<SlotWidget> slots = Lists.newArrayList(); for(int y = 0; y < 3; y++) for(int x = 0; x < 3; x++) - slots.add(new ItemSlotWidget(startPoint.x + 1 + x * 18, startPoint.y + 1 + y * 18, Lists.newArrayList(), true, true, true)); + slots.add(new SlotWidget(startPoint.x + 1 + x * 18, startPoint.y + 1 + y * 18, Lists.newArrayList(), true, true, true)); for(int i = 0; i < input.size(); i++) { if (recipeDisplaySupplier.get() instanceof DefaultShapedDisplay) { if (!input.get(i).isEmpty()) @@ -64,7 +64,7 @@ public class DefaultCraftingCategory implements RecipeCategory<DefaultCraftingDi slots.get(i).setItemList(input.get(i)); } widgets.addAll(slots); - widgets.add(new ItemSlotWidget(startPoint.x + 95, startPoint.y + 19, recipeDisplaySupplier.get().getOutput(), false, true, true) { + widgets.add(new SlotWidget(startPoint.x + 95, startPoint.y + 19, recipeDisplaySupplier.get().getOutput(), false, true, true) { @Override protected String getItemCountOverlay(ItemStack currentStack) { if (currentStack.getAmount() == 1) diff --git a/src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java b/src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java index 98e0d2e40..bc9857e86 100644 --- a/src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java +++ b/src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java @@ -5,6 +5,7 @@ import me.shedaniel.rei.RoughlyEnoughItemsCore; import me.shedaniel.rei.api.*; import me.shedaniel.rei.client.ScreenHelper; import me.shedaniel.rei.gui.RecipeViewingScreen; +import me.shedaniel.rei.gui.VillagerRecipeViewingScreen; import me.shedaniel.rei.listeners.ContainerScreenHooks; import me.shedaniel.rei.listeners.RecipeBookGuiHooks; import net.minecraft.client.MinecraftClient; @@ -41,13 +42,13 @@ import java.util.List; public class DefaultPlugin implements REIPluginEntry { - public static final Identifier CRAFTING = new Identifier("roughlyenoughitems", "plugins/crafting"); - public static final Identifier SMELTING = new Identifier("roughlyenoughitems", "plugins/smelting"); - public static final Identifier SMOKING = new Identifier("roughlyenoughitems", "plugins/smoking"); - public static final Identifier BLASTING = new Identifier("roughlyenoughitems", "plugins/blasting"); - public static final Identifier CAMPFIRE = new Identifier("roughlyenoughitems", "plugins/campfire"); - public static final Identifier STONE_CUTTING = new Identifier("roughlyenoughitems", "plugins/stone_cutting"); - public static final Identifier BREWING = new Identifier("roughlyenoughitems", "plugins/brewing"); + public static final Identifier CRAFTING = new Identifier("minecraft", "plugins/crafting"); + public static final Identifier SMELTING = new Identifier("minecraft", "plugins/smelting"); + public static final Identifier SMOKING = new Identifier("minecraft", "plugins/smoking"); + public static final Identifier BLASTING = new Identifier("minecraft", "plugins/blasting"); + public static final Identifier CAMPFIRE = new Identifier("minecraft", "plugins/campfire"); + public static final Identifier STONE_CUTTING = new Identifier("minecraft", "plugins/stone_cutting"); + public static final Identifier BREWING = new Identifier("minecraft", "plugins/brewing"); public static final Identifier PLUGIN = new Identifier("roughlyenoughitems", "default_plugin"); private static final List<DefaultBrewingDisplay> BREWING_DISPLAYS = Lists.newArrayList(); @@ -81,7 +82,7 @@ public class DefaultPlugin implements REIPluginEntry { } }); Registry.ENCHANTMENT.forEach(enchantment -> { - for(int i = enchantment.getMinimumLevel(); i < enchantment.getMaximumLevel(); i++) { + for(int i = enchantment.getMinimumLevel(); i <= enchantment.getMaximumLevel(); i++) { Map<Enchantment, Integer> map = new HashMap<>(); map.put(enchantment, i); ItemStack itemStack = new ItemStack(Items.ENCHANTED_BOOK); @@ -192,6 +193,28 @@ public class DefaultPlugin implements REIPluginEntry { return -1.0f; } }); + displayHelper.registerBoundsHandler(new DisplayHelper.DisplayBoundsHandler<VillagerRecipeViewingScreen>() { + @Override + public Class getBaseSupportedClass() { + return VillagerRecipeViewingScreen.class; + } + + @Override + public Rectangle getLeftBounds(VillagerRecipeViewingScreen screen) { + return new Rectangle(2, 0, ((VillagerRecipeViewingScreen) screen).bounds.x - 4, MinecraftClient.getInstance().window.getScaledHeight()); + } + + @Override + public Rectangle getRightBounds(VillagerRecipeViewingScreen screen) { + int startX = ((VillagerRecipeViewingScreen) screen).bounds.x + ((VillagerRecipeViewingScreen) screen).bounds.width + 2; + return new Rectangle(startX, 0, MinecraftClient.getInstance().window.getScaledWidth() - startX - 2, MinecraftClient.getInstance().window.getScaledHeight()); + } + + @Override + public float getPriority() { + return -1.0f; + } + }); displayHelper.registerBoundsHandler(new DisplayHelper.DisplayBoundsHandler<CreativePlayerInventoryScreen>() { @Override public Class getBaseSupportedClass() { diff --git a/src/main/java/me/shedaniel/rei/plugin/DefaultSmeltingCategory.java b/src/main/java/me/shedaniel/rei/plugin/DefaultSmeltingCategory.java index cf724bb89..3298e407f 100644 --- a/src/main/java/me/shedaniel/rei/plugin/DefaultSmeltingCategory.java +++ b/src/main/java/me/shedaniel/rei/plugin/DefaultSmeltingCategory.java @@ -2,7 +2,9 @@ package me.shedaniel.rei.plugin; import com.mojang.blaze3d.platform.GlStateManager; import me.shedaniel.rei.api.RecipeCategory; -import me.shedaniel.rei.gui.widget.ItemSlotWidget; +import me.shedaniel.rei.api.Renderable; +import me.shedaniel.rei.gui.renderables.RecipeRenderer; +import me.shedaniel.rei.gui.widget.SlotWidget; import me.shedaniel.rei.gui.widget.RecipeBaseWidget; import me.shedaniel.rei.gui.widget.Widget; import net.minecraft.block.Blocks; @@ -39,6 +41,11 @@ public class DefaultSmeltingCategory implements RecipeCategory<DefaultSmeltingDi } @Override + public RecipeRenderer getSimpleRenderer(DefaultSmeltingDisplay recipe) { + return Renderable.fromRecipe(() -> Arrays.asList(recipe.getInput().get(0)), recipe::getOutput); + } + + @Override public List<Widget> setupDisplay(Supplier<DefaultSmeltingDisplay> recipeDisplaySupplier, Rectangle bounds) { Point startPoint = new Point((int) bounds.getCenterX() - 41, (int) bounds.getCenterY() - 27); List<Widget> widgets = new LinkedList<>(Arrays.asList(new RecipeBaseWidget(bounds) { @@ -56,14 +63,14 @@ public class DefaultSmeltingCategory implements RecipeCategory<DefaultSmeltingDi } })); List<List<ItemStack>> input = recipeDisplaySupplier.get().getInput(); - widgets.add(new ItemSlotWidget(startPoint.x + 1, startPoint.y + 1, input.get(0), true, true, true)); - widgets.add(new ItemSlotWidget(startPoint.x + 1, startPoint.y + 37, recipeDisplaySupplier.get().getFuel(), true, true, true) { + widgets.add(new SlotWidget(startPoint.x + 1, startPoint.y + 1, input.get(0), true, true, true)); + widgets.add(new SlotWidget(startPoint.x + 1, startPoint.y + 37, recipeDisplaySupplier.get().getFuel(), true, true, true) { @Override protected List<String> getExtraToolTips(ItemStack stack) { return Arrays.asList(I18n.translate("category.rei.smelting.fuel")); } }); - widgets.add(new ItemSlotWidget(startPoint.x + 61, startPoint.y + 19, recipeDisplaySupplier.get().getOutput(), false, true, true)); + widgets.add(new SlotWidget(startPoint.x + 61, startPoint.y + 19, recipeDisplaySupplier.get().getOutput(), false, true, true)); return widgets; } diff --git a/src/main/java/me/shedaniel/rei/plugin/DefaultSmokingCategory.java b/src/main/java/me/shedaniel/rei/plugin/DefaultSmokingCategory.java index e1e7e27dc..4031d99e2 100644 --- a/src/main/java/me/shedaniel/rei/plugin/DefaultSmokingCategory.java +++ b/src/main/java/me/shedaniel/rei/plugin/DefaultSmokingCategory.java @@ -2,7 +2,9 @@ package me.shedaniel.rei.plugin; import com.mojang.blaze3d.platform.GlStateManager; import me.shedaniel.rei.api.RecipeCategory; -import me.shedaniel.rei.gui.widget.ItemSlotWidget; +import me.shedaniel.rei.api.Renderable; +import me.shedaniel.rei.gui.renderables.RecipeRenderer; +import me.shedaniel.rei.gui.widget.SlotWidget; import me.shedaniel.rei.gui.widget.RecipeBaseWidget; import me.shedaniel.rei.gui.widget.Widget; import net.minecraft.block.Blocks; @@ -39,6 +41,11 @@ public class DefaultSmokingCategory implements RecipeCategory<DefaultSmokingDisp } @Override + public RecipeRenderer getSimpleRenderer(DefaultSmokingDisplay recipe) { + return Renderable.fromRecipe(() -> Arrays.asList(recipe.getInput().get(0)), recipe::getOutput); + } + + @Override public List<Widget> setupDisplay(Supplier<DefaultSmokingDisplay> recipeDisplaySupplier, Rectangle bounds) { Point startPoint = new Point((int) bounds.getCenterX() - 41, (int) bounds.getCenterY() - 27); List<Widget> widgets = new LinkedList<>(Arrays.asList(new RecipeBaseWidget(bounds) { @@ -56,14 +63,14 @@ public class DefaultSmokingCategory implements RecipeCategory<DefaultSmokingDisp } })); List<List<ItemStack>> input = recipeDisplaySupplier.get().getInput(); - widgets.add(new ItemSlotWidget(startPoint.x + 1, startPoint.y + 1, input.get(0), true, true, true)); - widgets.add(new ItemSlotWidget(startPoint.x + 1, startPoint.y + 37, recipeDisplaySupplier.get().getFuel(), true, true, true) { + widgets.add(new SlotWidget(startPoint.x + 1, startPoint.y + 1, input.get(0), true, true, true)); + widgets.add(new SlotWidget(startPoint.x + 1, startPoint.y + 37, recipeDisplaySupplier.get().getFuel(), true, true, true) { @Override protected List<String> getExtraToolTips(ItemStack stack) { return Arrays.asList(I18n.translate("category.rei.smelting.fuel")); } }); - widgets.add(new ItemSlotWidget(startPoint.x + 61, startPoint.y + 19, recipeDisplaySupplier.get().getOutput(), false, true, true)); + widgets.add(new SlotWidget(startPoint.x + 61, startPoint.y + 19, recipeDisplaySupplier.get().getOutput(), false, true, true)); return widgets; } diff --git a/src/main/java/me/shedaniel/rei/plugin/DefaultStoneCuttingCategory.java b/src/main/java/me/shedaniel/rei/plugin/DefaultStoneCuttingCategory.java index bc0465b59..aa7327daf 100644 --- a/src/main/java/me/shedaniel/rei/plugin/DefaultStoneCuttingCategory.java +++ b/src/main/java/me/shedaniel/rei/plugin/DefaultStoneCuttingCategory.java @@ -3,7 +3,7 @@ package me.shedaniel.rei.plugin; import com.mojang.blaze3d.platform.GlStateManager; import me.shedaniel.rei.api.DisplaySettings; import me.shedaniel.rei.api.RecipeCategory; -import me.shedaniel.rei.gui.widget.ItemSlotWidget; +import me.shedaniel.rei.gui.widget.SlotWidget; import me.shedaniel.rei.gui.widget.RecipeBaseWidget; import me.shedaniel.rei.gui.widget.Widget; import net.minecraft.block.Blocks; @@ -51,8 +51,8 @@ public class DefaultStoneCuttingCategory implements RecipeCategory<DefaultStoneC blit(startPoint.x, startPoint.y, 0, 221, 82, 26); } })); - widgets.add(new ItemSlotWidget(startPoint.x + 4, startPoint.y + 5, recipeDisplaySupplier.get().getInput().get(0), true, true, true)); - widgets.add(new ItemSlotWidget(startPoint.x + 61, startPoint.y + 5, recipeDisplaySupplier.get().getOutput(), false, true, true)); + widgets.add(new SlotWidget(startPoint.x + 4, startPoint.y + 5, recipeDisplaySupplier.get().getInput().get(0), true, true, true)); + widgets.add(new SlotWidget(startPoint.x + 61, startPoint.y + 5, recipeDisplaySupplier.get().getOutput(), false, true, true)); return widgets; } |
