minecraft-src/net/minecraft/world/entity/Crackiness.java
2025-07-04 01:41:11 +03:00

42 lines
1.2 KiB
Java

package net.minecraft.world.entity;
import net.minecraft.world.item.ItemStack;
public class Crackiness {
public static final Crackiness GOLEM = new Crackiness(0.75F, 0.5F, 0.25F);
public static final Crackiness WOLF_ARMOR = new Crackiness(0.95F, 0.69F, 0.32F);
private final float fractionLow;
private final float fractionMedium;
private final float fractionHigh;
private Crackiness(float fractionLow, float fractionMedium, float fractionHigh) {
this.fractionLow = fractionLow;
this.fractionMedium = fractionMedium;
this.fractionHigh = fractionHigh;
}
public Crackiness.Level byFraction(float fraction) {
if (fraction < this.fractionHigh) {
return Crackiness.Level.HIGH;
} else if (fraction < this.fractionMedium) {
return Crackiness.Level.MEDIUM;
} else {
return fraction < this.fractionLow ? Crackiness.Level.LOW : Crackiness.Level.NONE;
}
}
public Crackiness.Level byDamage(ItemStack stack) {
return !stack.isDamageableItem() ? Crackiness.Level.NONE : this.byDamage(stack.getDamageValue(), stack.getMaxDamage());
}
public Crackiness.Level byDamage(int damage, int durability) {
return this.byFraction((float)(durability - damage) / durability);
}
public static enum Level {
NONE,
LOW,
MEDIUM,
HIGH;
}
}