2025-11-24 22:52:51 +03:00

56 lines
1.8 KiB
Java

/*
* Decompiled with CFR 0.152.
*
* Could not load the following classes:
* com.mojang.serialization.Codec
*/
package net.minecraft.world.item.component;
import com.mojang.serialization.Codec;
import net.minecraft.network.RegistryFriendlyByteBuf;
import net.minecraft.network.codec.StreamCodec;
import net.minecraft.world.item.ItemStack;
public record UseRemainder(ItemStack convertInto) {
public static final Codec<UseRemainder> CODEC = ItemStack.CODEC.xmap(UseRemainder::new, UseRemainder::convertInto);
public static final StreamCodec<RegistryFriendlyByteBuf, UseRemainder> STREAM_CODEC = StreamCodec.composite(ItemStack.STREAM_CODEC, UseRemainder::convertInto, UseRemainder::new);
public ItemStack convertIntoRemainder(ItemStack usedStack, int stackCountBeforeUsing, boolean hasInfiniteMaterials, OnExtraCreatedRemainder onExtraCreatedRemainder) {
if (hasInfiniteMaterials) {
return usedStack;
}
if (usedStack.getCount() >= stackCountBeforeUsing) {
return usedStack;
}
ItemStack remainderStack = this.convertInto.copy();
if (usedStack.isEmpty()) {
return remainderStack;
}
onExtraCreatedRemainder.apply(remainderStack);
return usedStack;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || this.getClass() != o.getClass()) {
return false;
}
UseRemainder that = (UseRemainder)o;
return ItemStack.matches(this.convertInto, that.convertInto);
}
@Override
public int hashCode() {
return ItemStack.hashItemAndComponents(this.convertInto);
}
@FunctionalInterface
public static interface OnExtraCreatedRemainder {
public void apply(ItemStack var1);
}
}