From 5dd9f2d5100ae76896095ad5d0cf65b51b53605a Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Thu, 15 Sep 2022 15:41:48 +0200 Subject: [PATCH] fixed effect powder being unable to save correctly closes #267 --- .../entities/EntityEffectInhibitor.java | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/main/java/de/ellpeck/naturesaura/entities/EntityEffectInhibitor.java b/src/main/java/de/ellpeck/naturesaura/entities/EntityEffectInhibitor.java index a791f003..ead2ae95 100644 --- a/src/main/java/de/ellpeck/naturesaura/entities/EntityEffectInhibitor.java +++ b/src/main/java/de/ellpeck/naturesaura/entities/EntityEffectInhibitor.java @@ -62,8 +62,8 @@ public class EntityEffectInhibitor extends Entity implements IVisualizable { @Override public void onRemovedFromWorld() { super.onRemovedFromWorld(); - this.setInhibitedEffect(null); - this.updatePowderListStatus(); + // we pass a null effect because we want to remove our effect from the world + this.updatePowderListStatus(null); } @Override @@ -92,7 +92,7 @@ public class EntityEffectInhibitor extends Entity implements IVisualizable { super.tick(); if (this.powderListDirty) - this.updatePowderListStatus(); + this.updatePowderListStatus(this.getInhibitedEffect()); if (this.level.isClientSide) { if (this.level.getGameTime() % 5 == 0) { @@ -199,18 +199,17 @@ public class EntityEffectInhibitor extends Entity implements IVisualizable { return this.getColor(); } - private void updatePowderListStatus() { + private void updatePowderListStatus(ResourceLocation inhibitedEffect) { var powders = ((LevelData) ILevelData.getLevelData(this.level)).effectPowders; if (this.lastEffect != null) { var oldList = powders.get(this.lastEffect); oldList.removeIf(t -> this.getEyePosition().equals(t.getA())); } - var effect = this.getInhibitedEffect(); - if (effect != null) { - var newList = powders.get(effect); + if (inhibitedEffect != null) { + var newList = powders.get(inhibitedEffect); newList.add(new Tuple<>(this.getEyePosition(), this.getAmount())); } this.powderListDirty = false; - this.lastEffect = effect; + this.lastEffect = inhibitedEffect; } }