From 4bb9547822ed6e59635f69aadd8f2805f741270e Mon Sep 17 00:00:00 2001 From: apion Date: Sat, 18 May 2024 17:08:09 -0400 Subject: [PATCH 1/2] I hope this works --- .../cobblemon/mod/common/client/particle/ParticleStorm.kt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/common/src/main/kotlin/com/cobblemon/mod/common/client/particle/ParticleStorm.kt b/common/src/main/kotlin/com/cobblemon/mod/common/client/particle/ParticleStorm.kt index 24192332bf..ed3d186367 100644 --- a/common/src/main/kotlin/com/cobblemon/mod/common/client/particle/ParticleStorm.kt +++ b/common/src/main/kotlin/com/cobblemon/mod/common/client/particle/ParticleStorm.kt @@ -12,6 +12,7 @@ import com.bedrockk.molang.runtime.MoLangRuntime import com.bedrockk.molang.runtime.value.DoubleValue import com.cobblemon.mod.common.api.molang.MoLangFunctions.addFunction import com.cobblemon.mod.common.api.molang.MoLangFunctions.getQueryStruct +import com.cobblemon.mod.common.api.pokemon.PokemonSpecies.species import com.cobblemon.mod.common.api.snowstorm.BedrockParticleEffect import com.cobblemon.mod.common.api.snowstorm.ParticleEmitterAction import com.cobblemon.mod.common.client.render.MatrixWrapper @@ -51,7 +52,11 @@ class ParticleStorm( .addFunction("entity_height") { DoubleValue(entity.boundingBox.yLength) } .addFunction("entity_size") { DoubleValue(entity.boundingBox.run { if (xLength > yLength) xLength else yLength }) } .addFunction("entity_radius") { DoubleValue(entity.boundingBox.run { if (xLength > yLength) xLength else yLength } / 2) } - .addFunction("entity_scale") { DoubleValue((entity as? PokemonEntity)?.pokemon?.scaleModifier ?: 1.0) } + .addFunction("entity_scale") { + val pokemon = (entity as? PokemonEntity)?.pokemon + val scale = pokemon?.form?.baseScale ?: pokemon?.species?.baseScale ?: 1.0 + DoubleValue(scale) + } // TODO replace with a generified call to if (entity is MoLangEntity) entity.applyVariables(env) or w/e runtime.environment.setSimpleVariable("entity_width", DoubleValue(entity.boundingBox.xLength)) runtime.environment.setSimpleVariable("entity_height", DoubleValue(entity.boundingBox.yLength)) From 26a72fe6a93da8cbe308f17c61520dc9e070163b Mon Sep 17 00:00:00 2001 From: apion Date: Sat, 18 May 2024 18:46:58 -0400 Subject: [PATCH 2/2] I hope this works (pt. 2) --- .../mod/common/client/particle/ParticleStorm.kt | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/common/src/main/kotlin/com/cobblemon/mod/common/client/particle/ParticleStorm.kt b/common/src/main/kotlin/com/cobblemon/mod/common/client/particle/ParticleStorm.kt index ed3d186367..1439158d2d 100644 --- a/common/src/main/kotlin/com/cobblemon/mod/common/client/particle/ParticleStorm.kt +++ b/common/src/main/kotlin/com/cobblemon/mod/common/client/particle/ParticleStorm.kt @@ -53,9 +53,13 @@ class ParticleStorm( .addFunction("entity_size") { DoubleValue(entity.boundingBox.run { if (xLength > yLength) xLength else yLength }) } .addFunction("entity_radius") { DoubleValue(entity.boundingBox.run { if (xLength > yLength) xLength else yLength } / 2) } .addFunction("entity_scale") { - val pokemon = (entity as? PokemonEntity)?.pokemon - val scale = pokemon?.form?.baseScale ?: pokemon?.species?.baseScale ?: 1.0 - DoubleValue(scale) + val pokeEntity = entity as? PokemonEntity + val pokemon = pokeEntity?.pokemon + //Use form data if available, species as fall back + val baseScale = pokemon?.form?.baseScale ?: pokemon?.species?.baseScale ?: 1.0F + val pokemonScale = pokemon?.scaleModifier ?: 1.0F + val entityScale = pokeEntity?.scaleFactor ?: 1.0F + DoubleValue(baseScale * pokemonScale * entityScale) } // TODO replace with a generified call to if (entity is MoLangEntity) entity.applyVariables(env) or w/e runtime.environment.setSimpleVariable("entity_width", DoubleValue(entity.boundingBox.xLength))