diff options
| author | shedaniel <daniel@shedaniel.me> | 2021-03-27 01:12:02 +0800 |
|---|---|---|
| committer | shedaniel <daniel@shedaniel.me> | 2021-03-27 01:12:02 +0800 |
| commit | b11c3866aada638f0ad758ced4068c71e620ce23 (patch) | |
| tree | 332f3ddab9be3da68b06d84823683608028d5b4c /default-plugin | |
| parent | 659027baa60c56b5aeab38d4f7c676c37857ec68 (diff) | |
| download | RoughlyEnoughItems-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')
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); + } + }; + } } |
