1.20.1 -> 1.20.2 (merge fixes)

This commit is contained in:
Sollace 2024-02-02 21:17:16 +00:00
parent ad1784b417
commit eb4c70de2f
No known key found for this signature in database
GPG key ID: E52FACE7B5C773DB
4 changed files with 18 additions and 33 deletions

View file

@ -138,7 +138,7 @@ public class EarthPonyGrowAbility implements Ability<Pos> {
return player.asWorld().getRecipeManager()
.getAllMatches(URecipes.GROWING, new TransformCropsRecipe.PlacementArea(player, pos), player.asWorld())
.stream()
.map(recipe -> recipe.checkPattern(player.asWorld(), pos))
.map(recipe -> recipe.value().checkPattern(player.asWorld(), pos))
.filter(result -> result.matchedLocations().size() + 1 >= TransformCropsRecipe.MINIMUM_INPUT)
.filter(result -> {
boolean transform = result.shoudTransform(player.asWorld().random);

View file

@ -112,10 +112,10 @@ public class Main implements EmiPlugin {
registry.addWorkstation(GROWING_CATEGORY, GROWING_STATION);
registry.getRecipeManager().listAllOfType(URecipes.GROWING).forEach(recipe -> {
registry.addRecipe(new EmiWorldInteractionRecipe(EmiWorldInteractionRecipe.builder()
.id(recipe.getId())
.leftInput(EmiStack.of(recipe.getTargetAsItem()))
.rightInput(EmiStack.of(recipe.getCatalyst(), TransformCropsRecipe.MINIMUM_INPUT), true)
.output(EmiStack.of(recipe.getOutput()))) {
.id(recipe.id())
.leftInput(EmiStack.of(recipe.value().getTargetAsItem()))
.rightInput(EmiStack.of(recipe.value().getCatalyst(), TransformCropsRecipe.MINIMUM_INPUT), true)
.output(EmiStack.of(recipe.value().getOutput()))) {
@Override
public EmiRecipeCategory getCategory() {
return GROWING_CATEGORY;

View file

@ -3,12 +3,9 @@ package com.minelittlepony.unicopia.item;
import java.util.HashSet;
import java.util.Set;
import com.google.gson.JsonObject;
import com.minelittlepony.unicopia.block.state.StateUtil;
import com.minelittlepony.unicopia.entity.player.Pony;
import com.mojang.datafixers.util.Pair;
import com.mojang.serialization.Codec;
import com.mojang.serialization.JsonOps;
import com.mojang.serialization.codecs.RecordCodecBuilder;
import net.minecraft.block.Block;
@ -22,7 +19,6 @@ import net.minecraft.recipe.RecipeSerializer;
import net.minecraft.recipe.RecipeType;
import net.minecraft.registry.DynamicRegistryManager;
import net.minecraft.registry.Registries;
import net.minecraft.util.Identifier;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Direction;
import net.minecraft.util.math.random.Random;
@ -35,14 +31,11 @@ public class TransformCropsRecipe implements Recipe<TransformCropsRecipe.Placeme
public static final int AREA = (SIDE_LENGTH * SIDE_LENGTH) - 1;
public static final int MINIMUM_INPUT = 9;
private final Identifier id;
private final Block target;
private final BlockState catalyst;
private final BlockState output;
public TransformCropsRecipe(Identifier id, Block target, BlockState catalyst, BlockState output) {
this.id = id;
public TransformCropsRecipe(Block target, BlockState catalyst, BlockState output) {
this.output = output;
this.target = target;
this.catalyst = catalyst;
@ -60,11 +53,6 @@ public class TransformCropsRecipe implements Recipe<TransformCropsRecipe.Placeme
return output.getBlock().getPickStack(EmptyBlockView.INSTANCE, BlockPos.ORIGIN, output);
}
@Override
public Identifier getId() {
return id;
}
@Override
public RecipeSerializer<?> getSerializer() {
return URecipes.TRANSFORM_CROP_SERIALIZER;
@ -82,11 +70,11 @@ public class TransformCropsRecipe implements Recipe<TransformCropsRecipe.Placeme
@Override
public ItemStack craft(PlacementArea inventory, DynamicRegistryManager manager) {
return getOutput(manager);
return getResult(manager);
}
@Override
public ItemStack getOutput(DynamicRegistryManager manager) {
public ItemStack getResult(DynamicRegistryManager manager) {
return output.getBlock().asItem().getDefaultStack();
}
@ -115,22 +103,20 @@ public class TransformCropsRecipe implements Recipe<TransformCropsRecipe.Placeme
}
public static class Serializer implements RecipeSerializer<TransformCropsRecipe> {
record Intermediate(Block target, BlockState fuel, BlockState output) {}
private static final Codec<Intermediate> CODEC = RecordCodecBuilder.create(instance -> instance.group(
Registries.BLOCK.getCodec().fieldOf("target").forGetter(Intermediate::target),
BlockState.CODEC.fieldOf("consume").forGetter(Intermediate::fuel),
BlockState.CODEC.fieldOf("output").forGetter(Intermediate::output)
).apply(instance, Intermediate::new));
private static final Codec<TransformCropsRecipe> CODEC = RecordCodecBuilder.create(instance -> instance.group(
Registries.BLOCK.getCodec().fieldOf("target").forGetter(recipe -> recipe.target),
BlockState.CODEC.fieldOf("consume").forGetter(recipe -> recipe.catalyst),
BlockState.CODEC.fieldOf("output").forGetter(recipe -> recipe.output)
).apply(instance, TransformCropsRecipe::new));
@Override
public TransformCropsRecipe read(Identifier id, JsonObject json) {
Intermediate content = CODEC.decode(JsonOps.INSTANCE, json).result().map(Pair::getFirst).get();
return new TransformCropsRecipe(id, content.target(), content.fuel(), content.output());
public Codec<TransformCropsRecipe> codec() {
return CODEC;
}
@Override
public TransformCropsRecipe read(Identifier id, PacketByteBuf buffer) {
return new TransformCropsRecipe(id,
public TransformCropsRecipe read(PacketByteBuf buffer) {
return new TransformCropsRecipe(
buffer.readRegistryValue(Registries.BLOCK),
Block.getStateFromRawId(buffer.readInt()),
Block.getStateFromRawId(buffer.readInt())

View file

@ -3,13 +3,12 @@ package com.minelittlepony.unicopia.network;
import com.minelittlepony.unicopia.server.world.ZapAppleStageStore;
import com.sollace.fabwork.api.packets.Packet;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.network.PacketByteBuf;
public record MsgZapAppleStage (
ZapAppleStageStore.Stage stage,
long delta
) implements Packet<PlayerEntity> {
) implements Packet {
public MsgZapAppleStage(PacketByteBuf buffer) {
this(buffer.readEnumConstant(ZapAppleStageStore.Stage.class), buffer.readLong());