Spaces:
Build error
Build error
File size: 2,587 Bytes
d46f4a3 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
package net.minecraft.world;
import javax.annotation.Nullable;
import net.minecraft.world.item.ItemStack;
public sealed interface InteractionResult
permits InteractionResult.Success,
InteractionResult.Fail,
InteractionResult.Pass,
InteractionResult.TryEmptyHandInteraction {
InteractionResult.Success SUCCESS = new InteractionResult.Success(InteractionResult.SwingSource.CLIENT, InteractionResult.ItemContext.DEFAULT);
InteractionResult.Success SUCCESS_SERVER = new InteractionResult.Success(InteractionResult.SwingSource.SERVER, InteractionResult.ItemContext.DEFAULT);
InteractionResult.Success CONSUME = new InteractionResult.Success(InteractionResult.SwingSource.NONE, InteractionResult.ItemContext.DEFAULT);
InteractionResult.Fail FAIL = new InteractionResult.Fail();
InteractionResult.Pass PASS = new InteractionResult.Pass();
InteractionResult.TryEmptyHandInteraction TRY_WITH_EMPTY_HAND = new InteractionResult.TryEmptyHandInteraction();
default boolean consumesAction() {
return false;
}
public static record Fail() implements InteractionResult {
}
public static record ItemContext(boolean wasItemInteraction, @Nullable ItemStack heldItemTransformedTo) {
static InteractionResult.ItemContext NONE = new InteractionResult.ItemContext(false, null);
static InteractionResult.ItemContext DEFAULT = new InteractionResult.ItemContext(true, null);
}
public static record Pass() implements InteractionResult {
}
public static record Success(InteractionResult.SwingSource swingSource, InteractionResult.ItemContext itemContext) implements InteractionResult {
@Override
public boolean consumesAction() {
return true;
}
public InteractionResult.Success heldItemTransformedTo(ItemStack p_362659_) {
return new InteractionResult.Success(this.swingSource, new InteractionResult.ItemContext(true, p_362659_));
}
public InteractionResult.Success withoutItem() {
return new InteractionResult.Success(this.swingSource, InteractionResult.ItemContext.NONE);
}
public boolean wasItemInteraction() {
return this.itemContext.wasItemInteraction;
}
@Nullable
public ItemStack heldItemTransformedTo() {
return this.itemContext.heldItemTransformedTo;
}
}
public static enum SwingSource {
NONE,
CLIENT,
SERVER;
}
public static record TryEmptyHandInteraction() implements InteractionResult {
}
} |