From c0b75564c2fec0231314e0a254d2b0ceef54234c Mon Sep 17 00:00:00 2001 From: MagicBot Date: Wed, 19 Feb 2025 12:37:04 -0500 Subject: [PATCH] equals and hash defined for wpak pojos --- src/engine/wpak/data/Effect.java | 18 ++++++++++++++++-- src/engine/wpak/data/Power.java | 18 ++++++++++++++++-- src/engine/wpak/data/PowerAction.java | 14 ++++++++++++++ 3 files changed, 46 insertions(+), 4 deletions(-) diff --git a/src/engine/wpak/data/Effect.java b/src/engine/wpak/data/Effect.java index 8fa8170a..fdfd71f4 100644 --- a/src/engine/wpak/data/Effect.java +++ b/src/engine/wpak/data/Effect.java @@ -8,10 +8,9 @@ package engine.wpak.data; -import engine.powers.effectmodifiers.AbstractEffectModifier; - import java.util.ArrayList; import java.util.HashSet; +import java.util.Objects; public class Effect { public String effect_id; @@ -34,4 +33,19 @@ public class Effect { public String message; public int cycleDuration; public int cycleDelay; + + public boolean equals(Object o) { + if (this == o) + return true; + if (o == null || getClass() != o.getClass()) + return false; + + Effect effect = (Effect) o; + return Objects.equals(effect_id, effect.effect_id); + } + + @Override + public int hashCode() { + return effect_id.hashCode(); // Use only the id field for hashCode + } } diff --git a/src/engine/wpak/data/Power.java b/src/engine/wpak/data/Power.java index 9a59f48c..e1278b72 100644 --- a/src/engine/wpak/data/Power.java +++ b/src/engine/wpak/data/Power.java @@ -9,11 +9,11 @@ package engine.wpak.data; import engine.mbEnums; -import engine.objects.AbstractWorldObject; import java.util.ArrayList; import java.util.EnumSet; import java.util.HashMap; +import java.util.Objects; public class Power { public String power_id; @@ -114,8 +114,22 @@ public class Power { public boolean isSkill(){ return true; } - public boolean isChant(){ return true; } + + public boolean equals(Object o) { + if (this == o) + return true; + if (o == null || getClass() != o.getClass()) + return false; + + Power power = (Power) o; + return Objects.equals(power_id, power.power_id); + } + + @Override + public int hashCode() { + return power_id.hashCode(); // Use only the id field for hashCode + } } diff --git a/src/engine/wpak/data/PowerAction.java b/src/engine/wpak/data/PowerAction.java index d0a02a7c..7169e5b0 100644 --- a/src/engine/wpak/data/PowerAction.java +++ b/src/engine/wpak/data/PowerAction.java @@ -11,6 +11,7 @@ package engine.wpak.data; import engine.mbEnums; import java.util.ArrayList; +import java.util.Objects; public class PowerAction { @@ -50,5 +51,18 @@ public class PowerAction { public int splashDamageMax; public boolean ignoreNoTeleSpire = false; + public boolean equals(Object o) { + if (this == o) + return true; + if (o == null || getClass() != o.getClass()) + return false; + PowerAction powerAction = (PowerAction) o; + return Objects.equals(action_id, powerAction.action_id); + } + + @Override + public int hashCode() { + return action_id.hashCode(); // Use only the id field for hashCode + } }