Implemented charge cost multiplier into getTargetCost method. Added new getRawTargetCost method and a validateTargetCost method.

This commit is contained in:
2022-01-18 18:28:56 +00:00
parent e83ec0e5ce
commit 0fceaf6f1d

View File

@ -77,6 +77,11 @@ public abstract class TotemItem extends Item {
}
public static int getTargetCost(ItemStack stack) {
if (!isTotem(stack)) { return -1; }
return !isCostDynamic(stack) ? getRawTargetCost(stack) :
(int)(getRawTargetCost(stack) * getConfig(stack).getChargeCostMultiplier());
}
private static int getRawTargetCost(ItemStack stack) {
if (!isTotem(stack)) { return -1; }
return stack.getOrCreateTag().getInt(TAG_TARGET_COST);
}
@ -130,6 +135,15 @@ public abstract class TotemItem extends Item {
return getConfig(stack).getIsEnabled();
}
public static void validateTargetCost(ItemStack stack, int targetDeaths) {
if (!isTotem(stack)) { return; }
if (isCostDynamic(stack) && getRawTargetCost(stack) != targetDeaths) {
setTargetCost(stack, targetDeaths);
} else if (!isCostDynamic(stack) && getRawTargetCost(stack) != getMaxCharge(stack)) {
setTargetCost(stack, getMaxCharge(stack));
}
}
@Override
@OnlyIn(Dist.CLIENT)
@ParametersAreNonnullByDefault