From a3d915f90f7763c99630b48d7d3a083d1b644498 Mon Sep 17 00:00:00 2001 From: "yrsegal@gmail.com" Date: Fri, 20 May 2022 00:08:03 +0100 Subject: [PATCH] alwinfyyyyyyyy --- .../hexcasting/api/spell/mishaps/MishapOthersName.kt | 5 +++-- .../common/casting/operators/math/MathOpUtils.kt | 5 +++-- .../common/casting/operators/math/logic/OpEquality.kt | 11 +++++++---- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapOthersName.kt b/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapOthersName.kt index abd6ab18..ed728cc4 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapOthersName.kt +++ b/Common/src/main/java/at/petrak/hexcasting/api/spell/mishaps/MishapOthersName.kt @@ -2,6 +2,7 @@ package at.petrak.hexcasting.api.spell.mishaps import at.petrak.hexcasting.api.misc.FrozenColorizer import at.petrak.hexcasting.api.spell.SpellDatum +import at.petrak.hexcasting.api.spell.SpellList import at.petrak.hexcasting.api.spell.casting.CastingContext import net.minecraft.network.chat.Component import net.minecraft.world.effect.MobEffectInstance @@ -26,7 +27,7 @@ class MishapOthersName(val other: Player) : Mishap() { fun getTrueNameFromDatum(datum: SpellDatum<*>, caster: Player): Player? { if (datum.payload is Player && datum.payload != caster) return datum.payload - else if (datum.payload !is List<*>) + else if (datum.payload !is SpellList) return null val poolToSearch: MutableList> = @@ -38,7 +39,7 @@ class MishapOthersName(val other: Player) : Mishap() { if (datumToCheck.payload is Player && datumToCheck.payload != caster) return datumToCheck.payload - else if (datumToCheck.payload is List<*>) + else if (datumToCheck.payload is SpellList) poolToSearch.addAll(datumToCheck.payload.filterIsInstance>()) } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/casting/operators/math/MathOpUtils.kt b/Common/src/main/java/at/petrak/hexcasting/common/casting/operators/math/MathOpUtils.kt index 8665683e..c2792d68 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/casting/operators/math/MathOpUtils.kt +++ b/Common/src/main/java/at/petrak/hexcasting/common/casting/operators/math/MathOpUtils.kt @@ -1,6 +1,7 @@ package at.petrak.hexcasting.common.casting.operators.math import at.petrak.hexcasting.api.spell.SpellDatum +import at.petrak.hexcasting.api.spell.SpellList import at.petrak.hexcasting.api.spell.mishaps.MishapInvalidIota import com.mojang.datafixers.util.Either import net.minecraft.network.chat.TranslatableComponent @@ -18,10 +19,10 @@ object MathOpUtils { ) } - fun GetNumOrList(datum: SpellDatum<*>, reverseIdx: Int): Either>> = + fun GetNumOrList(datum: SpellDatum<*>, reverseIdx: Int): Either = when (datum.payload) { is Double -> Either.left(datum.payload) - is List<*> -> Either.right(datum.payload.filterIsInstance>()) + is SpellList -> Either.right(datum.payload) else -> throw MishapInvalidIota( datum, reverseIdx, diff --git a/Common/src/main/java/at/petrak/hexcasting/common/casting/operators/math/logic/OpEquality.kt b/Common/src/main/java/at/petrak/hexcasting/common/casting/operators/math/logic/OpEquality.kt index 280ed94b..4ebf901e 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/casting/operators/math/logic/OpEquality.kt +++ b/Common/src/main/java/at/petrak/hexcasting/common/casting/operators/math/logic/OpEquality.kt @@ -3,6 +3,7 @@ package at.petrak.hexcasting.common.casting.operators.math.logic import at.petrak.hexcasting.api.spell.ConstManaOperator import at.petrak.hexcasting.api.spell.Operator.Companion.spellListOf import at.petrak.hexcasting.api.spell.SpellDatum +import at.petrak.hexcasting.api.spell.SpellList import at.petrak.hexcasting.api.spell.casting.CastingContext import net.minecraft.world.phys.Vec3 import kotlin.math.abs @@ -21,11 +22,13 @@ class OpEquality(val invert: Boolean) : ConstManaOperator { return when { a is Double && b is Double -> abs(a - b) < 0.0001 a is Vec3 && b is Vec3 -> a.subtract(b).lengthSqr() < 0.0000001 - a is List<*> && b is List<*> -> { - if (a.size != b.size || recursionsLeft == 0) + a is SpellList && b is SpellList -> { + val castA = a.toList() + val castB = b.toList() + if (castA.size != castB.size || recursionsLeft == 0) return false - for (i in a.indices) - if (!checkEquals((a[i] as SpellDatum<*>).payload, (b[i] as SpellDatum<*>).payload, recursionsLeft - 1)) + for (i in castA.indices) + if (!checkEquals(castA[i].payload, castB[i].payload, recursionsLeft - 1)) return false true }