package net.minecraft.world.entity; import com.mojang.serialization.Codec; import java.util.function.IntFunction; import net.minecraft.util.ByIdMap; import net.minecraft.util.OptionEnum; import net.minecraft.util.StringRepresentable; import net.minecraft.util.ByIdMap.OutOfBoundsStrategy; public enum HumanoidArm implements OptionEnum, StringRepresentable { LEFT(0, "left", "options.mainHand.left"), RIGHT(1, "right", "options.mainHand.right"); public static final Codec CODEC = StringRepresentable.fromEnum(HumanoidArm::values); public static final IntFunction BY_ID = ByIdMap.continuous(HumanoidArm::getId, values(), OutOfBoundsStrategy.ZERO); private final int id; private final String name; private final String translationKey; private HumanoidArm(final int id, final String name, final String translationKey) { this.id = id; this.name = name; this.translationKey = translationKey; } public HumanoidArm getOpposite() { return this == LEFT ? RIGHT : LEFT; } @Override public int getId() { return this.id; } @Override public String getKey() { return this.translationKey; } @Override public String getSerializedName() { return this.name; } }