aboutsummaryrefslogtreecommitdiff
path: root/default-plugin
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2021-03-27 01:12:02 +0800
committershedaniel <daniel@shedaniel.me>2021-03-27 01:12:02 +0800
commitb11c3866aada638f0ad758ced4068c71e620ce23 (patch)
tree332f3ddab9be3da68b06d84823683608028d5b4c /default-plugin
parent659027baa60c56b5aeab38d4f7c676c37857ec68 (diff)
downloadRoughlyEnoughItems-b11c3866aada638f0ad758ced4068c71e620ce23.tar.gz
RoughlyEnoughItems-b11c3866aada638f0ad758ced4068c71e620ce23.tar.bz2
RoughlyEnoughItems-b11c3866aada638f0ad758ced4068c71e620ce23.zip
Make Recipe Transfer work
Signed-off-by: shedaniel <daniel@shedaniel.me>
Diffstat (limited to 'default-plugin')
-rw-r--r--default-plugin/src/main/java/me/shedaniel/rei/plugin/common/DefaultPlugin.java6
-rw-r--r--default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultInformationDisplay.java2
-rw-r--r--default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/brewing/DefaultBrewingDisplay.java37
3 files changed, 31 insertions, 14 deletions
diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/DefaultPlugin.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/DefaultPlugin.java
index 3e72b8710..1b303c869 100644
--- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/DefaultPlugin.java
+++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/DefaultPlugin.java
@@ -38,6 +38,7 @@ import me.shedaniel.rei.plugin.common.displays.*;
import me.shedaniel.rei.plugin.common.displays.beacon.DefaultBeaconBaseDisplay;
import me.shedaniel.rei.plugin.common.displays.beacon.DefaultBeaconDisplay;
import me.shedaniel.rei.plugin.common.displays.beacon.DefaultBeaconPaymentDisplay;
+import me.shedaniel.rei.plugin.common.displays.brewing.DefaultBrewingDisplay;
import me.shedaniel.rei.plugin.common.displays.cooking.DefaultBlastingDisplay;
import me.shedaniel.rei.plugin.common.displays.cooking.DefaultCookingDisplay;
import me.shedaniel.rei.plugin.common.displays.cooking.DefaultSmeltingDisplay;
@@ -94,6 +95,7 @@ public class DefaultPlugin implements BuiltinPlugin, REIServerPlugin {
registry.register(CAMPFIRE, DefaultCampfireDisplay.serializer());
registry.register(STONE_CUTTING, DefaultStoneCuttingDisplay.serializer());
registry.register(STRIPPING, DefaultStrippingDisplay.serializer());
+ registry.register(BREWING, DefaultBrewingDisplay.serializer());
registry.register(COMPOSTING, DefaultCompostingDisplay.serializer());
registry.register(FUEL, DefaultFuelDisplay.serializer());
registry.register(SMITHING, DefaultSmithingDisplay.serializer());
@@ -106,13 +108,13 @@ public class DefaultPlugin implements BuiltinPlugin, REIServerPlugin {
@Override
public void registerMenuInfo(MenuInfoRegistry registry) {
- registry.register(BuiltinPlugin.CRAFTING, CraftingMenu.class,new RecipeBookGridMenuInfo<CraftingMenu, DefaultCraftingDisplay>() {
+ registry.register(BuiltinPlugin.CRAFTING, CraftingMenu.class, new RecipeBookGridMenuInfo<CraftingMenu, DefaultCraftingDisplay>() {
@Override
public List<List<ItemStack>> getDisplayInputs(MenuInfoContext<CraftingMenu, ?, DefaultCraftingDisplay> context) {
return context.getDisplay().getOrganisedInputEntries(this, context.getMenu());
}
});
- registry.register(BuiltinPlugin.CRAFTING, InventoryMenu.class,new RecipeBookGridMenuInfo<InventoryMenu, DefaultCraftingDisplay>() {
+ registry.register(BuiltinPlugin.CRAFTING, InventoryMenu.class, new RecipeBookGridMenuInfo<InventoryMenu, DefaultCraftingDisplay>() {
@Override
public List<List<ItemStack>> getDisplayInputs(MenuInfoContext<InventoryMenu, ?, DefaultCraftingDisplay> context) {
return context.getDisplay().getOrganisedInputEntries(this, context.getMenu());
diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultInformationDisplay.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultInformationDisplay.java
index 370c072ac..519405a0e 100644
--- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultInformationDisplay.java
+++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultInformationDisplay.java
@@ -119,7 +119,7 @@ public class DefaultInformationDisplay implements Display {
@Override
public DefaultInformationDisplay read(CompoundTag tag) {
- EntryIngredient stacks = EntryIngredient.from(tag.getList("stacks", NbtType.COMPOUND));
+ EntryIngredient stacks = EntryIngredient.read(tag.getList("stacks", NbtType.COMPOUND));
Component name = Component.Serializer.fromJson(tag.getString("name"));
List<Component> descriptions = new ArrayList<>();
for (Tag descriptionTag : tag.getList("descriptions", NbtType.STRING)) {
diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/brewing/DefaultBrewingDisplay.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/brewing/DefaultBrewingDisplay.java
index d7d6abc72..6abff9561 100644
--- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/brewing/DefaultBrewingDisplay.java
+++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/brewing/DefaultBrewingDisplay.java
@@ -24,8 +24,10 @@
package me.shedaniel.rei.plugin.common.displays.brewing;
import com.google.common.collect.Lists;
+import me.shedaniel.architectury.utils.NbtType;
import me.shedaniel.rei.api.common.category.CategoryIdentifier;
import me.shedaniel.rei.api.common.display.Display;
+import me.shedaniel.rei.api.common.display.DisplaySerializer;
import me.shedaniel.rei.api.common.entry.EntryIngredient;
import me.shedaniel.rei.api.common.entry.EntryStack;
import me.shedaniel.rei.api.common.util.EntryIngredients;
@@ -34,6 +36,7 @@ import me.shedaniel.rei.plugin.common.BuiltinPlugin;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.ChatFormatting;
+import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.chat.TranslatableComponent;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.crafting.Ingredient;
@@ -54,17 +57,9 @@ public class DefaultBrewingDisplay implements Display {
}
@ApiStatus.Internal
- public DefaultBrewingDisplay(EntryIngredient inputs, EntryIngredient reactants, EntryStack<?> output) {
- EntryIngredient.Builder inputBuilder = EntryIngredient.builder(inputs.size());
- for (EntryStack<?> input : inputs) {
- inputBuilder.add(input.copy().tooltip(new TranslatableComponent("category.rei.brewing.input").withStyle(ChatFormatting.YELLOW)));
- }
- this.input = inputBuilder.build();
- EntryIngredient.Builder reactantBuilder = EntryIngredient.builder(reactants.size());
- for (EntryStack<?> reactant : reactants) {
- reactantBuilder.add(reactant.copy().tooltip(new TranslatableComponent("category.rei.brewing.reactant").withStyle(ChatFormatting.YELLOW)));
- }
- this.reactant = reactantBuilder.build();
+ public DefaultBrewingDisplay(EntryIngredient input, EntryIngredient reactant, EntryStack<?> output) {
+ this.input = input.map(stack -> stack.copy().tooltip(new TranslatableComponent("category.rei.brewing.input").withStyle(ChatFormatting.YELLOW)));
+ this.reactant = reactant.map(stack -> stack.copy().tooltip(new TranslatableComponent("category.rei.brewing.reactant").withStyle(ChatFormatting.YELLOW)));
this.output = output.copy().tooltip(new TranslatableComponent("category.rei.brewing.result").withStyle(ChatFormatting.YELLOW));
}
@@ -91,4 +86,24 @@ public class DefaultBrewingDisplay implements Display {
stack.add(output);
return stack;
}
+
+ public static DisplaySerializer<DefaultBrewingDisplay> serializer() {
+ return new DisplaySerializer<DefaultBrewingDisplay>() {
+ @Override
+ public CompoundTag save(CompoundTag tag, DefaultBrewingDisplay display) {
+ tag.put("input", display.input.save());
+ tag.put("reactant", display.reactant.save());
+ tag.put("output", display.output.save());
+ return tag;
+ }
+
+ @Override
+ public DefaultBrewingDisplay read(CompoundTag tag) {
+ EntryIngredient input = EntryIngredient.read(tag.getList("input", NbtType.COMPOUND));
+ EntryIngredient reactant = EntryIngredient.read(tag.getList("reactant", NbtType.COMPOUND));
+ EntryStack<?> output = EntryStack.read(tag.getCompound("output"));
+ return new DefaultBrewingDisplay(input, reactant, output);
+ }
+ };
+ }
}