soiz1's picture
Upload folder using huggingface_hub
d46f4a3 verified
package net.minecraft.world.entity;
import io.netty.buffer.ByteBuf;
import java.util.List;
import java.util.function.IntFunction;
import net.minecraft.network.codec.ByteBufCodecs;
import net.minecraft.network.codec.StreamCodec;
import net.minecraft.util.ByIdMap;
import net.minecraft.util.StringRepresentable;
import net.minecraft.world.item.ItemStack;
public enum EquipmentSlot implements StringRepresentable {
MAINHAND(EquipmentSlot.Type.HAND, 0, 0, "mainhand"),
OFFHAND(EquipmentSlot.Type.HAND, 1, 5, "offhand"),
FEET(EquipmentSlot.Type.HUMANOID_ARMOR, 0, 1, 1, "feet"),
LEGS(EquipmentSlot.Type.HUMANOID_ARMOR, 1, 1, 2, "legs"),
CHEST(EquipmentSlot.Type.HUMANOID_ARMOR, 2, 1, 3, "chest"),
HEAD(EquipmentSlot.Type.HUMANOID_ARMOR, 3, 1, 4, "head"),
BODY(EquipmentSlot.Type.ANIMAL_ARMOR, 0, 1, 6, "body");
public static final int NO_COUNT_LIMIT = 0;
public static final List<EquipmentSlot> VALUES = List.of(values());
public static final IntFunction<EquipmentSlot> BY_ID = ByIdMap.continuous(p_362028_ -> p_362028_.id, values(), ByIdMap.OutOfBoundsStrategy.ZERO);
public static final StringRepresentable.EnumCodec<EquipmentSlot> CODEC = StringRepresentable.fromEnum(EquipmentSlot::values);
public static final StreamCodec<ByteBuf, EquipmentSlot> STREAM_CODEC = ByteBufCodecs.idMapper(BY_ID, p_365000_ -> p_365000_.id);
private final EquipmentSlot.Type type;
private final int index;
private final int countLimit;
private final int id;
private final String name;
private EquipmentSlot(final EquipmentSlot.Type p_342397_, final int p_343935_, final int p_343943_, final int p_345166_, final String p_345481_) {
this.type = p_342397_;
this.index = p_343935_;
this.countLimit = p_343943_;
this.id = p_345166_;
this.name = p_345481_;
}
private EquipmentSlot(final EquipmentSlot.Type p_20739_, final int p_20740_, final int p_20741_, final String p_20742_) {
this(p_20739_, p_20740_, 0, p_20741_, p_20742_);
}
public EquipmentSlot.Type getType() {
return this.type;
}
public int getIndex() {
return this.index;
}
public int getIndex(int p_147069_) {
return p_147069_ + this.index;
}
public ItemStack limit(ItemStack p_343527_) {
return this.countLimit > 0 ? p_343527_.split(this.countLimit) : p_343527_;
}
public int getId() {
return this.id;
}
public int getFilterBit(int p_367101_) {
return this.id + p_367101_;
}
public String getName() {
return this.name;
}
public boolean isArmor() {
return this.type == EquipmentSlot.Type.HUMANOID_ARMOR || this.type == EquipmentSlot.Type.ANIMAL_ARMOR;
}
@Override
public String getSerializedName() {
return this.name;
}
public static EquipmentSlot byName(String p_20748_) {
EquipmentSlot equipmentslot = CODEC.byName(p_20748_);
if (equipmentslot != null) {
return equipmentslot;
} else {
throw new IllegalArgumentException("Invalid slot '" + p_20748_ + "'");
}
}
public static enum Type {
HAND,
HUMANOID_ARMOR,
ANIMAL_ARMOR;
}
}