ModularPowersuits/src/main/java/net/machinemuse/powersuits/powermodule/PropertyModifierIntLinearAdditive.java

29 lines
1 KiB
Java

package net.machinemuse.powersuits.powermodule;
import net.machinemuse.api.IPropertyModifier;
import net.machinemuse.utils.MuseItemUtils;
import net.minecraft.nbt.NBTTagCompound;
import net.machinemuse.powersuits.powermodule.PropertyModifierLinearAdditive;
public class PropertyModifierIntLinearAdditive extends PropertyModifierLinearAdditive {
protected int roundTo = 0;
protected int offset = 0;
public PropertyModifierIntLinearAdditive(String tradeoffName, double multiplier, int roundTo, int offset) {
super(tradeoffName, multiplier);
this.roundTo = roundTo;
this.offset = offset;
}
@Override
public double applyModifier(NBTTagCompound moduleTag, double value) {
long result = (long) (value + multiplier * MuseItemUtils.getDoubleOrZero(moduleTag, tradeoffName));
return roundWithOffset(result, roundTo, offset);
}
public long roundWithOffset(double input, int roundTo, int offset) {
return Math.round((input + offset) / roundTo) * roundTo - offset;
}
}