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/plugin/composting | |
| 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/plugin/composting')
| -rw-r--r-- | src/main/java/me/shedaniel/rei/plugin/composting/DefaultCompostingCategory.java | 34 | ||||
| -rw-r--r-- | src/main/java/me/shedaniel/rei/plugin/composting/DefaultCompostingDisplay.java | 32 |
2 files changed, 32 insertions, 34 deletions
diff --git a/src/main/java/me/shedaniel/rei/plugin/composting/DefaultCompostingCategory.java b/src/main/java/me/shedaniel/rei/plugin/composting/DefaultCompostingCategory.java index 5d9f06586..bf0eb9068 100644 --- a/src/main/java/me/shedaniel/rei/plugin/composting/DefaultCompostingCategory.java +++ b/src/main/java/me/shedaniel/rei/plugin/composting/DefaultCompostingCategory.java @@ -9,11 +9,11 @@ import com.google.common.collect.Lists; import me.shedaniel.math.api.Point; import me.shedaniel.math.api.Rectangle; import com.mojang.blaze3d.systems.RenderSystem; +import me.shedaniel.rei.api.EntryStack; import me.shedaniel.rei.api.RecipeCategory; -import me.shedaniel.rei.api.Renderer; import me.shedaniel.rei.gui.renderers.RecipeRenderer; +import me.shedaniel.rei.gui.widget.EntryWidget; import me.shedaniel.rei.gui.widget.RecipeBaseWidget; -import me.shedaniel.rei.gui.widget.SlotWidget; import me.shedaniel.rei.gui.widget.Widget; import me.shedaniel.rei.plugin.DefaultPlugin; import net.minecraft.block.Blocks; @@ -21,14 +21,13 @@ import net.minecraft.client.MinecraftClient; import net.minecraft.client.render.GuiLighting; import net.minecraft.client.resource.language.I18n; import net.minecraft.item.ItemConvertible; -import net.minecraft.item.ItemStack; import net.minecraft.util.Identifier; import net.minecraft.util.math.MathHelper; -import java.util.Arrays; import java.util.Collections; import java.util.LinkedList; import java.util.List; +import java.util.Map; import java.util.function.Supplier; public class DefaultCompostingCategory implements RecipeCategory<DefaultCompostingDisplay> { @@ -39,8 +38,8 @@ public class DefaultCompostingCategory implements RecipeCategory<DefaultComposti } @Override - public Renderer getIcon() { - return Renderer.fromItemStack(new ItemStack(Blocks.COMPOSTER)); + public EntryStack getLogo() { + return EntryStack.create(Blocks.COMPOSTER); } @Override @@ -76,24 +75,23 @@ public class DefaultCompostingCategory implements RecipeCategory<DefaultComposti this.blit(startingPoint.x, startingPoint.y, 28, 221, 55, 26); } }); - List<ItemConvertible> stacks = new LinkedList<>(recipeDisplaySupplier.get().getItemsByOrder()); + List<EntryStack> stacks = new LinkedList<>(recipeDisplaySupplier.get().getItemsByOrder()); int i = 0; for (int y = 0; y < 6; y++) for (int x = 0; x < 8; x++) { int finalI = i; - widgets.add(new SlotWidget(bounds.getCenterX() - 72 + x * 18, bounds.y + y * 18, stacks.size() > i ? Renderer.fromItemStacks(() -> Collections.singletonList(new ItemStack(stacks.get(finalI))), true, stack -> { - final List<String>[] thing = new List[]{null}; - recipeDisplaySupplier.get().getInputMap().forEach((itemProvider, aFloat) -> { - if (itemProvider.asItem().equals(stack.getItem())) - thing[0] = Arrays.asList(I18n.translate("text.rei.composting.chance", MathHelper.fastFloor(aFloat * 100))); - }); - if (thing[0] != null) - return thing[0]; - return null; - }) : Renderer.empty(), true, true, true)); + EntryStack entryStack = stacks.size() > i ? stacks.get(finalI) : EntryStack.empty(); + if (entryStack.getType() != EntryStack.Type.EMPTY) + for (Map.Entry<ItemConvertible, Float> entry : recipeDisplaySupplier.get().getInputMap().entrySet()) { + if (entry.getKey().asItem().equals(entryStack.getItem())) { + entryStack = entryStack.setting(EntryStack.Settings.TOOLTIP_APPEND_EXTRA, s -> Collections.singletonList(I18n.translate("text.rei.composting.chance", MathHelper.fastFloor(entry.getValue() * 100)))); + break; + } + } + widgets.add(EntryWidget.create(bounds.getCenterX() - 72 + x * 18, bounds.y + y * 18).entry(entryStack)); i++; } - widgets.add(new SlotWidget(startingPoint.x + 34, startingPoint.y + 5, Renderer.fromItemStacks(recipeDisplaySupplier.get().getOutput()), false, true, true)); + widgets.add(EntryWidget.create(startingPoint.x + 34, startingPoint.y + 5).entries(recipeDisplaySupplier.get().getOutputEntries()).noBackground()); return widgets; } diff --git a/src/main/java/me/shedaniel/rei/plugin/composting/DefaultCompostingDisplay.java b/src/main/java/me/shedaniel/rei/plugin/composting/DefaultCompostingDisplay.java index 1bb3c3d1a..d799a30f5 100644 --- a/src/main/java/me/shedaniel/rei/plugin/composting/DefaultCompostingDisplay.java +++ b/src/main/java/me/shedaniel/rei/plugin/composting/DefaultCompostingDisplay.java @@ -5,9 +5,9 @@ package me.shedaniel.rei.plugin.composting; +import me.shedaniel.rei.api.EntryStack; import me.shedaniel.rei.api.RecipeDisplay; import me.shedaniel.rei.plugin.DefaultPlugin; -import net.minecraft.item.Item; import net.minecraft.item.ItemConvertible; import net.minecraft.item.ItemStack; import net.minecraft.util.Identifier; @@ -17,17 +17,17 @@ import java.util.stream.Collectors; public class DefaultCompostingDisplay implements RecipeDisplay { - private List<ItemConvertible> order, allItems; + private List<EntryStack> order, allItems; private Map<ItemConvertible, Float> inputMap; - private ItemStack[] output; + private List<EntryStack> output; private int page; public DefaultCompostingDisplay(int page, List<ItemConvertible> order, Map<ItemConvertible, Float> inputMap, List<ItemConvertible> allItems, ItemStack[] output) { this.page = page; - this.order = order; + this.order = order.stream().map(EntryStack::create).collect(Collectors.toList()); this.inputMap = inputMap; - this.output = output; - this.allItems = allItems; + this.output = Arrays.asList(output).stream().map(EntryStack::create).collect(Collectors.toList()); + this.allItems = allItems.stream().map(EntryStack::create).collect(Collectors.toList()); } public int getPage() { @@ -35,11 +35,11 @@ public class DefaultCompostingDisplay implements RecipeDisplay { } @Override - public List<List<ItemStack>> getInput() { - List<List<ItemStack>> lists = new ArrayList<>(); - allItems.stream().forEachOrdered(itemProvider -> { - lists.add(Arrays.asList(itemProvider.asItem().getStackForRender())); - }); + public List<List<EntryStack>> getInputEntries() { + List<List<EntryStack>> lists = new ArrayList<>(); + for (EntryStack allItem : allItems) { + lists.add(Collections.singletonList(allItem)); + } return lists; } @@ -48,8 +48,8 @@ public class DefaultCompostingDisplay implements RecipeDisplay { } @Override - public List<ItemStack> getOutput() { - return Arrays.asList(output); + public List<EntryStack> getOutputEntries() { + return output; } @Override @@ -58,11 +58,11 @@ public class DefaultCompostingDisplay implements RecipeDisplay { } @Override - public List<List<ItemStack>> getRequiredItems() { - return Arrays.asList(new LinkedList<>(allItems.stream().map(ItemConvertible::asItem).map(Item::getStackForRender).collect(Collectors.toList()))); + public List<List<EntryStack>> getRequiredEntries() { + return Collections.singletonList(allItems); } - public List<ItemConvertible> getItemsByOrder() { + public List<EntryStack> getItemsByOrder() { return order; } |
