Skip to content

Commit

Permalink
Clean up DrugInfluence names
Browse files Browse the repository at this point in the history
  • Loading branch information
Sollace committed Mar 4, 2025
1 parent 73ab55c commit dd57108
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 33 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -36,18 +36,18 @@ public class DrugInfluence {
public static final Codec<DrugInfluence> CODEC = RecordCodecBuilder.create(instance -> instance.group(
DrugType.REGISTRY.getCodec().fieldOf("drugType").forGetter(DrugInfluence::getDrugType),
Codec.INT.fieldOf("delay").forGetter(DrugInfluence::getDelay),
Codec.DOUBLE.fieldOf("influenceSpeed").forGetter(DrugInfluence::getInfluenceSpeed),
Codec.DOUBLE.fieldOf("influenceSpeedPlus").forGetter(DrugInfluence::getInfluenceSpeedPlus),
Codec.DOUBLE.fieldOf("maxInfluence").forGetter(DrugInfluence::getMaxInfluence),
Codec.DOUBLE.fieldOf("influenceSpeed").forGetter(DrugInfluence::getInfluenceDelta),
Codec.DOUBLE.fieldOf("influenceSpeedPlus").forGetter(DrugInfluence::getBaseIncrease),
Codec.DOUBLE.fieldOf("maxInfluence").forGetter(DrugInfluence::getTargetInfluence),
COLOR_CODEC.optionalFieldOf("color").forGetter(DrugInfluence::getColor)
).apply(instance, DrugInfluence::new));
public static final Codec<List<DrugInfluence>> LIST_CODEC = CODEC.listOf();
public static final PacketCodec<RegistryByteBuf, DrugInfluence> PACKET_CODEC = PacketCodec.tuple(
PacketCodecs.registryValue(DrugType.REGISTRY.getKey()), DrugInfluence::getDrugType,
PacketCodecs.INTEGER, DrugInfluence::getDelay,
PacketCodecs.DOUBLE, DrugInfluence::getInfluenceSpeed,
PacketCodecs.DOUBLE, DrugInfluence::getInfluenceSpeedPlus,
PacketCodecs.DOUBLE, DrugInfluence::getMaxInfluence,
PacketCodecs.DOUBLE, DrugInfluence::getInfluenceDelta,
PacketCodecs.DOUBLE, DrugInfluence::getBaseIncrease,
PacketCodecs.DOUBLE, DrugInfluence::getTargetInfluence,
COLOR_PACKET_CODEC, DrugInfluence::getColor,
DrugInfluence::new
);
Expand All @@ -56,27 +56,27 @@ public class DrugInfluence {

protected int delay;

protected double influenceSpeed;
protected double influenceSpeedPlus;
protected double influenceDelta;
protected double baseIncrease;

protected double maxInfluence;
protected double targetInfluence;

private final Optional<Vector3f> color;

public DrugInfluence(DrugType<?> drugType, int delay, double influenceSpeed, double influenceSpeedPlus, double maxInfluence) {
this(drugType, delay, influenceSpeed, influenceSpeedPlus, maxInfluence, Optional.empty());
public DrugInfluence(DrugType<?> drugType, int delay, double factor, double base, double target) {
this(drugType, delay, factor, base, target, Optional.empty());
}

public DrugInfluence(DrugType<?> drugType, int delay, double influenceSpeed, double influenceSpeedPlus, double maxInfluence, Vector3f color) {
this(drugType, delay, influenceSpeed, influenceSpeedPlus, maxInfluence, Optional.of(color));
public DrugInfluence(DrugType<?> drugType, int delay, double factor, double base, double target, Vector3f color) {
this(drugType, delay, factor, base, target, Optional.of(color));
}

private DrugInfluence(DrugType<?> drugType, int delay, double influenceSpeed, double influenceSpeedPlus, double maxInfluence, Optional<Vector3f> color) {
private DrugInfluence(DrugType<?> drugType, int delay, double factor, double base, double target, Optional<Vector3f> color) {
this.drugType = drugType;
this.delay = delay;
this.influenceSpeed = influenceSpeed;
this.influenceSpeedPlus = influenceSpeedPlus;
this.maxInfluence = maxInfluence;
this.influenceDelta = factor;
this.baseIncrease = base;
this.targetInfluence = target;
this.color = color;
}

Expand All @@ -92,32 +92,35 @@ public int getDelay() {
return delay;
}

public double getInfluenceSpeed() {
return influenceSpeed;
public double getInfluenceDelta() {
return influenceDelta;
}

public double getInfluenceSpeedPlus() {
return influenceSpeedPlus;
public double getBaseIncrease() {
return baseIncrease;
}

public double getMaxInfluence() {
return maxInfluence;
public double getTargetInfluence() {
return targetInfluence;
}

public Optional<Vector3f> getColor() {
return color;
}

public double getCurrentStrength() {
return Math.min(targetInfluence, baseIncrease + targetInfluence * influenceDelta);
}

public boolean update(DrugProperties drugProperties) {
if (delay > 0) {
delay--;
}

if (delay == 0 && maxInfluence > 0) {
double addition = Math.min(maxInfluence, influenceSpeedPlus + maxInfluence * influenceSpeed);

if (delay == 0 && targetInfluence > 0) {
double addition = getCurrentStrength();
addToDrug(drugProperties, addition);
maxInfluence -= addition;
targetInfluence -= addition;
}

return isDone();
Expand All @@ -133,16 +136,16 @@ public void addToDrug(DrugProperties drugProperties, double value) {
}

public boolean isDone() {
return maxInfluence <= 0.0;
return targetInfluence <= 0.0;
}

public DrugInfluence copyWithMaximum(double maxInfluence) {
return new DrugInfluence(drugType, delay, influenceSpeed, influenceSpeedPlus, maxInfluence, color);
return new DrugInfluence(drugType, delay, influenceDelta, baseIncrease, maxInfluence, color);
}

@Override
public final DrugInfluence clone() {
return copyWithMaximum(maxInfluence);
return copyWithMaximum(targetInfluence);
}

public interface DelayType {
Expand Down
6 changes: 3 additions & 3 deletions src/main/java/ivorius/psychedelicraft/fluid/DrugFluid.java
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ public FoodComponent getFoodLevel(ItemStack fluidStack) {

public void getDrugInfluences(ItemFluids fluidStack, List<DrugInfluence> list) {
getDrugInfluencesPerLiter(fluidStack, influence -> {
list.add(influence.copyWithMaximum((influence.getMaxInfluence() / FluidVolumes.BUCKET) * fluidStack.amount()));
list.add(influence.copyWithMaximum((influence.getTargetInfluence() / FluidVolumes.BUCKET) * fluidStack.amount()));
});
}

Expand Down Expand Up @@ -130,10 +130,10 @@ private float getAlcohol(ItemFluids fluidStack) {

for (DrugInfluence drugInfluence : drugInfluences) {
if (drugInfluence.isOf(DrugType.ALCOHOL)) {
alcohol += drugInfluence.getMaxInfluence();
alcohol += drugInfluence.getTargetInfluence();
}
}
return MathHelper.clamp(alcohol, 0.0f, 1.0f);
return MathHelper.clamp(alcohol, 0, 1);
}

@Override
Expand Down

0 comments on commit dd57108

Please sign in to comment.