aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/shedaniel/rei/plugin/composting
diff options
context:
space:
mode:
authorDanielshe <shekwancheung0528@gmail.com>2019-11-03 14:44:52 +0800
committerDanielshe <shekwancheung0528@gmail.com>2019-11-03 14:44:59 +0800
commit9f5a9eae9a7863412cc5eb433bf15e5ee71da616 (patch)
tree0e6b0b94af061c5e9023b1ff19f339a6c30149be /src/main/java/me/shedaniel/rei/plugin/composting
parent3e3e25855b9f6df507a7d4c8a07c64b9a502fae2 (diff)
downloadRoughlyEnoughItems-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.java34
-rw-r--r--src/main/java/me/shedaniel/rei/plugin/composting/DefaultCompostingDisplay.java32
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;
}