Compare commits

..
Author SHA1 Message Date
Sterrezo acb1ebda19 Finalized hoof sounds 2026-05-27 12:34:57 +02:00
Sterrezo 5dddc05626 Merge branch 'main' into steppy-steps 2026-05-27 00:16:42 +02:00
Sterrezo 99890671bd Added hoof footsteps for sand surfaces and updated other hoof sounds 2026-05-26 22:21:56 +02:00
Sterrezo 9451ac5f46 Merge branch 'main' into steppy-steps 2026-05-26 21:42:41 +02:00
Sterrezo a8e4e21ba1 Merge branch 'main' into steppy-steps 2026-05-19 14:15:48 +02:00
Sterrezo f555ba3703 Made Molang slightly less cursed with proper random functions 2026-05-16 14:24:18 +02:00
Sterrezo 37677b3730 Asset updates, added hoof on stone sounds 2026-05-16 12:17:24 +02:00
Sterrezo 2a298b2268 Merge branch 'main' into steppy-steps 2026-05-16 11:01:28 +02:00
Sterrezo ad3f94fb80 Added hoof grass medium and large sounds 2026-05-16 02:27:46 +02:00
Sterrezo 719660798e Started hoof sound implementation with Wyrdeer, asset and keyframe updates 2026-05-15 18:17:04 +02:00
Sterrezo 8d973a09e1 Tweaks to the footstep function logic to better account for depth
If depth is 2 outright, the function could pick a block below the actual block the entity is standing on if it was checked earlier in the function. Loop iterates twice, so now it plays footsteps even when standing on the edge of a block or running down slopes.
2026-05-15 11:48:50 +02:00
Sterrezo 3579a86cde Merge branch 'main' into steppy-steps 2026-05-15 11:08:00 +02:00
Sterrezo ba96a6a205 Added standard medium and large sand footsteps 2026-05-14 20:18:04 +02:00
Sterrezo f07d2a9a9a First implementation of footstep keyframes with Arcanine 2026-05-14 16:56:13 +02:00
Sterrezo 2469067fd4 Allow for silencing step sounds within the species file 2026-05-14 02:24:18 +02:00
1245 changed files with 15897 additions and 120621 deletions

No files matched your search

-1
View File
@@ -24,7 +24,6 @@ eclipse
run
runClient
runServer
utilityscripts/implementation/*.txt
# Files from Forge MDK
forge*changelog.txt
+33 -131
View File
@@ -56,19 +56,17 @@
- Pressing the inventory key now closes the Pokémon interact wheel GUI
- Pokémon cries now play when clicking Pokémon in the summary screen.
- Pressing the Summary key while either the starter selection or summary screen are open now closes those screens
- Ice type Pokémon are now immune to Packed Snow
### New rideable Pokémon
- Crobat
- Skarmory
- Milotic
- Archeops
- Goodra
- Goodra (Hisuian Form)
- Drampa
- Archeops
- Skarmory
- Crobat
- Goodra
- Hisuian Goodra
- Milotic
### Pokémon Added
#### Generation 3
- Wurmple
- Silcoon
- Beautifly
@@ -76,55 +74,59 @@
- Dustox
- Skitty
- Delcatty
- Seviper
- Zangoose
#### Generation 4
- Cherubi
- Cherrim
- Stunky
- Skuntank
#### Generation 5
- Audino
- Pawniard
- Bisharp
- Kingambit
#### Generation 6
- Pancham (+ Cosmetic with Black Glasses)
- Pangoro (+ Cosmetic with Black Glasses)
#### Generation 7
- Rockruff
- Lycanroc
#### Generation 8
- Rolycoly
- Carkol
- Coalossal
- Runerigus
- Snom
- Frosmoth
- Indeedee
- Duraludon
- Archaludon
- Applin
- Flapple
- Appletun
#### Generation 9
- Dipplin
- Hydrapple
- Nymble
- Lokix
- Kingambit
- Dipplin
- Archaludon
- Hydrapple
#### Regional Forms
- Sandshrew (Alolan Form)
- Sandslash (Alolan Form)
- Yamask (Galarian Form)
- Avalugg (Hisuian Form)
- Sandshrew (Alolan)
- Sandslash (Alolan)
- Avalugg (Hisuian)
### Model updates for the following Pokémon
- Goomy
- Sliggoo
- Goodra
- Porygon
- Porygon2
- Porygon-Z
- Zubat
- Golbat
- Crobat
### Model updates for the following Pokémon
@@ -134,12 +136,11 @@
- Zubat
- Golbat
- Crobat
- Ditto
- Porygon
- Porygon2
- Porygon-Z
- Skarmory
- Smoochum
- Jynx
- Popplio
- Brionne
@@ -147,22 +148,17 @@
- Fletchling
- Fletchinder
- Talonflame
- Sableye
- Mawile
- Goomy
- Sliggoo
- Goodra
- Nacli
- Naclstack
- Garganacl
- Bidoof
- Cranidos
- Chatot
- Yamask
- Cofagrigus
- Tyranitar
- Turtonator
- Arbok (New Patterns: Angry, Cartoon, Clown, Comedic, Crow, Grin, Ink, Modern, Rain, Scribble, Silence, Sloth, Suspicious, Will)
#### Model changes to the regional bias resource pack:
@@ -171,14 +167,6 @@
- Changed models for every existing regional bias
### Animation updates for the following Pokémon
- Happiny
- Poliwrath
- Zubat
- Vulpix
- Drowzee
- Hypno
- Noctowl
- Skarmory
- Skitty
- Flygon
@@ -204,22 +192,8 @@
- Shedinja
- Skwovet
- Greedent
- Bidoof
- Cranidos
- Chatot
- Yamask
- Cofagrigus
- Luvdisc
- Staryu
- Starmie
- Togetic
- Rellor
- Rabsca
- Yungoos
- Gumshoos
#### Added sounds to the following moves
- Absorb
- Aurora Beam
- Double Team
@@ -248,12 +222,10 @@
### Fixes
- Adjusted Croagunk's walkspeed
- Adjusted Aerodactyl's walkspeed
- Fixed Blitzle's base scale being `1` rather than the intended `0.8`
- Fixed Magnezone's emissive layer for the shiny having the wrong name, thus displaying wrongly
- Fixed Litleo not blinking
- Fixed Garchomp T-posing when sleeping while out of battle.
- Fixed Omanyte and Omastar incorrectly using water animations on land.
- Sharp Beak can now be crafted
- Metal Alloy can now be crafted
- Ability Capsules can now be brewed
@@ -317,7 +289,6 @@
- Fixed Raichu (male) and Alolan Raichu (both genders) not displaying the correct Partner Cap when Pewter Crunchies are in the cosmetic slot.
- Regional Foods will now prioritize being eaten instead of used for healing Pokémon, shift clicking will use it as healing
- Resolved Z-Fighting on Pokédex Models
- Restored Ninjask's ability to do barrel rolls
### Fixes
- Fixed Croagunk's walkspeed
@@ -401,84 +372,15 @@
- Ride sounds no longer play when submerged unless specified with a new setting
- NPC Trainers can now call a `command` animation when issuing a command in battle.
- Added a q.failed function to move action effects.
- Herd spawned Pokémon have their levels controlled differently. The `levelRange` property now acts as a clamp instead of a filter, with a new `herdLevelRange` property to do the filter behaviour.
- `q.sound` now accepts three parameters (sound event, volume and pitch) instead of just the sound event and pitch.
- Herd spawned Pokémon have their levels controlled differently. The `levelRange` property now acts as a clamp instead of a filter, with a new `herdLevelRange` property to do the filter behaviour.
### Particles
#### New Move Animations
- Blizzard
- Disarming Voice
- Draco Meteor
- Dragon Breath
- Dragon Rage
- Drain Punch
- Fairy Wind
- Fire Fang
- Gust
- Horn Drill
- Hydro Pump
- Ice Fang
- Leafage
- Leaf Storm
- Light Screen
- Night Shade
- Play Rough
- Pyro Ball
- Reflect
- Rock Slide
- Sonic Boom
- Sucker Punch
- Supersonic
- Thunder Fang
#### Tweaks and Fixes (Moves)
- Confusion
- Dragon Claw
- Eruption
- Fire Punch
- Flame Burst
- Flame Charge
- Flamethrower
- Frost Breath
- Hypnosis
- Ice Punch
- Icy Wind
- Mud Sport
- Poison Fang
- Protect
- Psychic
- Quick Attack
- Rage Powder
- Razor Leaf
- Sand Attack
- Scratch
- Shadow Claw
- Sing
- Spore
- String Shot
- Tackle
- Tail Whip
- Thunder
- Thunder Punch
- Thunder Wave
- Water Gun
- Water Pulse
- Water Sport
#### Miscellaneous Particles
+ Added Wild Might particles for Alpha Pokémon
+ Updated stat increase and decrease particles
### Localization
- Updated translations for:
- Japanese
- German
- Spanish
- Ecuadorian Spanish
- Brazilian Portuguese
- Simplified Chinese
- Traditional Chinese
- Korean
@@ -1,97 +0,0 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.mixin;
import com.cobblemon.mod.common.mixin.accessor.SinglePoolElementAccessor;
import com.cobblemon.mod.common.world.structureprocessors.HeightRangeStructureProcessor;
import com.llamalad7.mixinextras.sugar.Local;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Holder;
import net.minecraft.util.RandomSource;
import net.minecraft.world.level.levelgen.structure.Structure;
import net.minecraft.world.level.levelgen.structure.pools.JigsawPlacement;
import net.minecraft.world.level.levelgen.structure.pools.LegacySinglePoolElement;
import net.minecraft.world.level.levelgen.structure.pools.SinglePoolElement;
import net.minecraft.world.level.levelgen.structure.pools.StructurePoolElement;
import net.minecraft.world.level.levelgen.structure.pools.StructureTemplatePool;
import net.minecraft.world.level.levelgen.structure.templatesystem.StructureProcessor;
import net.minecraft.world.level.levelgen.structure.templatesystem.StructureProcessorList;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Unique;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
import java.util.List;
import java.util.Optional;
@Mixin(JigsawPlacement.class)
public class JigsawPlacementMixin {
@Inject(
method = "addPieces*",
at = @At("HEAD"),
cancellable = true
)
private static void cobblemon$cancelInvalidHeightRangeStart(
CallbackInfoReturnable<Optional<Structure.GenerationStub>> cir,
@Local(argsOnly = true, ordinal = 0) Structure.GenerationContext generationContext,
@Local(argsOnly = true, ordinal = 0) Holder<StructureTemplatePool> startPool,
@Local(argsOnly = true, ordinal = 0) BlockPos startPos
) {
if (cobblemon$canAnyStartElementPlace(generationContext, startPool, startPos)) {
return;
}
cir.setReturnValue(Optional.empty());
}
@Unique
private static boolean cobblemon$canAnyStartElementPlace(
Structure.GenerationContext generationContext,
Holder<StructureTemplatePool> startPool,
BlockPos startPos
) {
List<StructurePoolElement> elements = startPool.value().getShuffledTemplates(RandomSource.create(0L));
for (StructurePoolElement element : elements) {
Optional<HeightRangeStructureProcessor> heightRangeProcessor = cobblemon$getHeightRangeProcessor(element);
if (heightRangeProcessor.isEmpty()) {
return true;
}
if (heightRangeProcessor.get().isValidPlacement(
generationContext.chunkGenerator(),
generationContext.heightAccessor(),
generationContext.randomState(),
startPos
)) {
return true;
}
}
return false;
}
@Unique
private static Optional<HeightRangeStructureProcessor> cobblemon$getHeightRangeProcessor(StructurePoolElement element) {
if (!(element instanceof SinglePoolElement)) {
return Optional.empty();
}
StructureProcessorList processorList = ((SinglePoolElementAccessor) element).getProcessors().value();
for (StructureProcessor processor : processorList.list()) {
if (processor instanceof HeightRangeStructureProcessor heightRangeStructureProcessor) {
return Optional.of(heightRangeStructureProcessor);
}
}
return Optional.empty();
}
}
@@ -1,22 +0,0 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.mixin.accessor;
import net.minecraft.core.Holder;
import net.minecraft.world.level.levelgen.structure.pools.SinglePoolElement;
import net.minecraft.world.level.levelgen.structure.templatesystem.StructureProcessorList;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Accessor;
@Mixin(SinglePoolElement.class)
public interface SinglePoolElementAccessor {
@Accessor("processors")
Holder<StructureProcessorList> getProcessors();
}
@@ -109,7 +109,7 @@ object PokemonMoLangFunctions : AbstractMoLangFunctionHolder<Pokemon>() {
DoubleValue(pokemon.species.nationalPokedexNumber.toDouble())
}
map["types"] = {
pokemon.form.types.map { it.showdownId }.asArrayValue(::StringValue)
pokemon.form.types.map { it.toString() }.asArrayValue(::StringValue)
}
map["gender_ratio"] = {
DoubleValue(pokemon.form.maleRatio.toDouble())
@@ -0,0 +1,121 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen1
import com.cobblemon.mod.common.client.render.models.blockbench.PosableState
import com.cobblemon.mod.common.client.render.models.blockbench.animation.WaveAnimation
import com.cobblemon.mod.common.client.render.models.blockbench.animation.WaveSegment
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.CryProvider
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
import com.cobblemon.mod.common.client.render.models.blockbench.pose.ModelPartTransformation
import com.cobblemon.mod.common.client.render.models.blockbench.pose.Pose
import com.cobblemon.mod.common.client.render.models.blockbench.wavefunction.sineFunction
import com.cobblemon.mod.common.entity.PoseType
import com.cobblemon.mod.common.entity.PoseType.Companion.MOVING_POSES
import com.cobblemon.mod.common.entity.PoseType.Companion.STATIONARY_POSES
import com.cobblemon.mod.common.entity.PoseType.Companion.UI_POSES
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class ArbokModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
override val rootPart = root.registerChildWithAllChildren("arbok")
override val head = getPart("head_ai")
override var portraitScale = 1.5F
override var portraitTranslation = Vec3(-0.4, 1.0, 0.0)
override var profileScale = 0.67F
override var profileTranslation = Vec3(0.0, 0.7, 0.0)
lateinit var sleep: Pose
lateinit var standing: Pose
lateinit var walk: Pose
lateinit var summary: Pose
val tail = getPart("tail")
val tail2 = getPart("tail2")
val tail3 = getPart("tail3")
val tail4 = getPart("tail4")
val tail5 = getPart("tail5")
val tailWaveSegment = WaveSegment(modelPart = tail, length = 11F)
val tail2WaveSegment = WaveSegment(modelPart = tail2, length = 11F)
val tail3WaveSegment = WaveSegment(modelPart = tail3, length = 11F)
val tail4WaveSegment = WaveSegment(modelPart = tail4, length = 11F)
val tail5WaveSegment = WaveSegment(modelPart = tail5, length = 11F)
override val cryAnimation = CryProvider { bedrockStateful("arbok", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("arbok", "blink") }
// TODO tongue_flick
val wave = WaveAnimation(
waveFunction = sineFunction(
period = 10F,
amplitude = 0.5F
),
basedOnLimbSwing = true,
oscillationsScalar = 8F,
head = tail,
rotationAxis = ModelPartTransformation.Y_AXIS,
motionAxis = ModelPartTransformation.X_AXIS,
headLength = 0.1F,
segments = arrayOf(
tailWaveSegment,
tail2WaveSegment,
tail3WaveSegment,
tail4WaveSegment,
tail5WaveSegment
)
)
sleep = registerPose(
poseType = PoseType.SLEEP,
animations = arrayOf(bedrock("arbok", "sleep"))
)
standing = registerPose(
poseName = "standing",
poseTypes = STATIONARY_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("arbok", "summary_idle"),
wave
)
)
walk = registerPose(
poseName = "walk",
poseTypes = MOVING_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("arbok", "ground_walk"),
wave
)
)
summary = registerPose(
poseName = "summary",
poseTypes = UI_POSES,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("arbok", "summary_idle")
)
)
}
override fun getFaintAnimation(state: PosableState) = if (state.isPosedIn(standing, walk, sleep)) bedrockStateful("arbok", "faint") else null
}
@@ -0,0 +1,74 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen1
import com.cobblemon.mod.common.client.render.models.blockbench.PosableState
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.CryProvider
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
import com.cobblemon.mod.common.client.render.models.blockbench.pose.Pose
import com.cobblemon.mod.common.entity.PoseType
import com.cobblemon.mod.common.entity.PoseType.Companion.MOVING_POSES
import com.cobblemon.mod.common.entity.PoseType.Companion.STATIONARY_POSES
import com.cobblemon.mod.common.entity.PoseType.Companion.UI_POSES
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class DittoModel(root: ModelPart) : PokemonPosableModel(root) {
override val rootPart = root.registerChildWithAllChildren("ditto")
override var portraitScale = 3.2F
override var portraitTranslation = Vec3(0.0, -2.2, 0.0)
override var profileScale = 1.4F
override var profileTranslation = Vec3(0.0, -0.34, 0.0)
lateinit var standing: Pose
lateinit var walk: Pose
lateinit var sleep: Pose
override val cryAnimation = CryProvider { bedrockStateful("ditto", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("ditto", "blink") }
standing = registerPose(
poseName = "standing",
poseTypes = STATIONARY_POSES + UI_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
// singleBoneLook()
bedrock("ditto", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = MOVING_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
// singleBoneLook()
bedrock("ditto", "ground_walk")
)
)
sleep = registerPose(
poseName = "sleep",
poseType = PoseType.SLEEP,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
// singleBoneLook()
bedrock("ditto", "sleep")
)
)
}
override fun getFaintAnimation(state: PosableState) = bedrockStateful("ditto", "faint")
}
@@ -0,0 +1,103 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen1
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.CryProvider
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
import com.cobblemon.mod.common.client.render.models.blockbench.pose.CobblemonPose
import com.cobblemon.mod.common.entity.PoseType
import com.cobblemon.mod.common.util.isBattling
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class OmanyteModel(root: ModelPart) : PokemonPosableModel(root) {
override val rootPart = root.registerChildWithAllChildren("omanyte")
override var portraitScale = 3.15F
override var portraitTranslation = Vec3(-0.06, -3.18, 0.0)
override var profileScale = 1.13F
override var profileTranslation = Vec3(0.0, -0.02, 0.0)
lateinit var standing: CobblemonPose
lateinit var walk: CobblemonPose
lateinit var float: CobblemonPose
lateinit var swim: CobblemonPose
lateinit var sleep: CobblemonPose
lateinit var battleidle: CobblemonPose
override val cryAnimation = CryProvider { bedrockStateful("omanyte", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("omanyte", "blink") }
sleep = registerPose(
poseName = "sleep",
poseType = PoseType.SLEEP,
animations = arrayOf(bedrock("omanyte", "sleep"))
)
standing = registerPose(
poseName = "standing",
poseTypes = PoseType.STANDING_POSES + PoseType.UI_POSES,
quirks = arrayOf(blink),
transformTicks = 10,
condition = { !it.isBattling},
animations = arrayOf(
bedrock("omanyte", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = PoseType.MOVING_POSES - PoseType.SWIM,
quirks = arrayOf(blink),
transformTicks = 10,
animations = arrayOf(
bedrock("omanyte", "ground_walk")
)
)
float = registerPose(
poseName = "float",
poseTypes = setOf(PoseType.FLOAT, PoseType.HOVER),
quirks = arrayOf(blink),
transformTicks = 10,
animations = arrayOf(
bedrock("omanyte", "water_idle")
)
)
swim = registerPose(
poseName = "swim",
poseTypes = setOf(PoseType.SWIM, PoseType.FLY),
quirks = arrayOf(blink),
transformTicks = 10,
animations = arrayOf(
bedrock("omanyte", "water_swim")
)
)
battleidle = registerPose(
poseName = "battle-standing",
poseTypes = PoseType.STATIONARY_POSES,
quirks = arrayOf(blink),
transformTicks = 10,
condition = { it.isBattling},
animations = arrayOf(
bedrock("omanyte", "battle_idle")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("omanyte", "faint") else null
}
@@ -0,0 +1,102 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen1
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.CryProvider
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
import com.cobblemon.mod.common.client.render.models.blockbench.pose.CobblemonPose
import com.cobblemon.mod.common.entity.PoseType
import com.cobblemon.mod.common.util.isBattling
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class OmastarModel(root: ModelPart) : PokemonPosableModel(root) {
override val rootPart = root.registerChildWithAllChildren("omastar")
override var portraitTranslation = Vec3(0.02, -2.20, 0.0)
override var portraitScale = 2.4F
override var profileTranslation = Vec3(0.0, 0.066, 0.0)
override var profileScale = 1.1F
lateinit var standing: CobblemonPose
lateinit var walk: CobblemonPose
lateinit var float: CobblemonPose
lateinit var swim: CobblemonPose
lateinit var sleep: CobblemonPose
lateinit var battleidle: CobblemonPose
override val cryAnimation = CryProvider { bedrockStateful("omastar", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("omastar", "blink") }
sleep = registerPose(
poseName = "sleep",
poseType = PoseType.SLEEP,
animations = arrayOf(bedrock("omastar", "sleep"))
)
standing = registerPose(
poseName = "standing",
poseTypes = PoseType.STANDING_POSES + PoseType.UI_POSES,
quirks = arrayOf(blink),
transformTicks = 10,
condition = { !it.isBattling},
animations = arrayOf(
bedrock("omastar", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = PoseType.MOVING_POSES - PoseType.SWIM,
quirks = arrayOf(blink),
transformTicks = 10,
animations = arrayOf(
bedrock("omastar", "ground_walk")
)
)
float = registerPose(
poseName = "float",
poseTypes = setOf(PoseType.FLOAT, PoseType.HOVER),
quirks = arrayOf(blink),
transformTicks = 10,
animations = arrayOf(
bedrock("omastar", "water_idle")
)
)
swim = registerPose(
poseName = "swim",
poseTypes = setOf(PoseType.SWIM, PoseType.FLY),
quirks = arrayOf(blink),
transformTicks = 10,
animations = arrayOf(
bedrock("omastar", "water_swim")
)
)
battleidle = registerPose(
poseName = "battle-standing",
poseTypes = PoseType.STATIONARY_POSES,
quirks = arrayOf(blink),
transformTicks = 10,
condition = { it.isBattling},
animations = arrayOf(
bedrock("omastar", "battle_idle")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("omastar", "faint") else null
}
@@ -0,0 +1,93 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen1
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
import com.cobblemon.mod.common.client.render.models.blockbench.pose.CobblemonPose
import com.cobblemon.mod.common.entity.PoseType
import com.cobblemon.mod.common.entity.PoseType.Companion.UI_POSES
import com.cobblemon.mod.common.util.isInWater
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class TentacoolModel(root: ModelPart) : PokemonPosableModel(root) {
override val rootPart = root.registerChildWithAllChildren("tentacool")
override var portraitScale = 1.2F
override var portraitTranslation = Vec3(0.1, 1.1, 0.0)
override var profileScale = 0.6F
override var profileTranslation = Vec3(0.0, 0.8, 0.0)
lateinit var standing: CobblemonPose
lateinit var walk: CobblemonPose
lateinit var swim: CobblemonPose
lateinit var float: CobblemonPose
lateinit var sleep: CobblemonPose
lateinit var watersleep: CobblemonPose
override fun registerPoses() {
val blink = quirk { bedrockStateful("tentacool", "blink")}
standing = registerPose(
poseName = "standing",
poseType = PoseType.STAND,
quirks = arrayOf(blink),
animations = arrayOf(
bedrock("tentacool", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseType = PoseType.WALK,
quirks = arrayOf(blink),
animations = arrayOf(
bedrock("tentacool", "ground_idle")
//bedrock("tentacool", "ground_walk")
)
)
float = registerPose(
poseName = "float",
poseTypes = UI_POSES + PoseType.FLOAT,
quirks = arrayOf(blink),
animations = arrayOf(
bedrock("tentacool", "water_idle")
)
)
swim = registerPose(
poseName = "swim",
poseType = PoseType.SWIM,
quirks = arrayOf(blink),
animations = arrayOf(
bedrock("tentacool", "water_swim")
)
)
sleep = registerPose(
poseName = "sleep",
poseType = PoseType.SLEEP,
condition = { !it.isInWater },
animations = arrayOf(bedrock("tentacool", "sleep"))
)
watersleep = registerPose(
poseName = "watersleep",
poseType = PoseType.SLEEP,
condition = { it.isInWater },
animations = arrayOf(bedrock("tentacool", "water_sleep"))
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("tentacool", "faint") else null
}
@@ -0,0 +1,155 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen2
import com.cobblemon.mod.common.client.render.models.blockbench.PosableState
import com.cobblemon.mod.common.client.render.models.blockbench.createTransformation
import com.cobblemon.mod.common.client.render.models.blockbench.frame.BipedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.CryProvider
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
import com.cobblemon.mod.common.client.render.models.blockbench.pose.ModelPartTransformation
import com.cobblemon.mod.common.client.render.models.blockbench.pose.Pose
import com.cobblemon.mod.common.entity.PoseType
import com.cobblemon.mod.common.util.isBattling
import com.cobblemon.mod.common.util.isUnderWater
import com.cobblemon.mod.common.util.isInWater
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class FeraligatrModel (root: ModelPart) : PokemonPosableModel(root), HeadedFrame, BipedFrame {
override val rootPart = root.registerChildWithAllChildren("feraligatr")
override val head = getPart("head_ai")
override val leftLeg = getPart("leg_left")
override val rightLeg = getPart("leg_right")
override var portraitScale = 1.3F
override var portraitTranslation = Vec3(-0.7, 1.1, 0.0)
override var profileScale = 0.6F
override var profileTranslation = Vec3(0.0, 0.8, 0.0)
lateinit var standing: Pose
lateinit var walk: Pose
lateinit var floating: Pose
lateinit var swimming: Pose
lateinit var sleep: Pose
lateinit var watersleep: Pose
lateinit var battleidle: Pose
lateinit var water_surface_idle: Pose
lateinit var water_surface_swim: Pose
val wateroffset = -10
override val cryAnimation = CryProvider { bedrockStateful("feraligatr", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("feraligatr", "blink")}
sleep = registerPose(
poseName = "sleeping",
poseType = PoseType.SLEEP,
condition = { !it.isInWater },
animations = arrayOf(bedrock("feraligatr", "sleep"))
)
watersleep = registerPose(
poseName = "water_sleeping",
poseType = PoseType.SLEEP,
condition = { it.isInWater },
animations = arrayOf(bedrock("feraligatr", "water_sleep"))
)
standing = registerPose(
poseName = "standing",
poseTypes = PoseType.UI_POSES + PoseType.STAND,
transformTicks = 10,
condition = { !it.isBattling && !it.isInWater && !it.isUnderWater },
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("feraligatr", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
transformTicks = 10,
poseType = PoseType.WALK,
condition = { !it.isInWater && !it.isUnderWater },
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("feraligatr", "ground_walk")
)
)
floating = registerPose(
poseName = "floating",
transformTicks = 10,
poseType = PoseType.FLOAT,
condition = { it.isUnderWater },
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("feraligatr", "water_idle")
)
)
swimming = registerPose(
poseName = "swimming",
transformTicks = 10,
condition = { it.isUnderWater },
poseType = PoseType.SWIM,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("feraligatr", "water_swim"),
)
)
battleidle = registerPose(
poseName = "battle_idle",
poseTypes = PoseType.STATIONARY_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
condition = { it.isBattling && !it.isInWater },
animations = arrayOf(
singleBoneLook(),
bedrock("feraligatr", "battle_idle")
)
)
water_surface_idle = registerPose(
poseName = "surface_idle",
poseTypes = PoseType.STATIONARY_POSES,
quirks = arrayOf(blink),
condition = { !it.isUnderWater && it.isInWater },
animations = arrayOf(
singleBoneLook(),
bedrock("feraligatr", "watersurface_idle"),
),
transformedParts = arrayOf(rootPart.createTransformation().addPosition(ModelPartTransformation.Y_AXIS, wateroffset))
)
water_surface_swim = registerPose(
poseName = "surface_swim",
poseTypes = PoseType.MOVING_POSES,
quirks = arrayOf(blink),
condition = { !it.isUnderWater && it.isInWater },
animations = arrayOf(
singleBoneLook(),
bedrock("feraligatr", "watersurface_swim"),
),
transformedParts = arrayOf(rootPart.createTransformation().addPosition(ModelPartTransformation.Y_AXIS, wateroffset))
)
}
override fun getFaintAnimation(state: PosableState) = if (state.isPosedIn(standing, walk, battleidle, sleep)) bedrockStateful("feraligatr", "faint") else if (state.isPosedIn(water_surface_idle, water_surface_swim, watersleep )) bedrockStateful("feraligatr", "faint") else null
}
@@ -0,0 +1,91 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen2
import com.cobblemon.mod.common.client.render.models.blockbench.createTransformation
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
import com.cobblemon.mod.common.client.render.models.blockbench.pose.ModelPartTransformation
import com.cobblemon.mod.common.client.render.models.blockbench.pose.Pose
import com.cobblemon.mod.common.entity.PoseType
import com.cobblemon.mod.common.entity.PoseType.Companion.MOVING_POSES
import com.cobblemon.mod.common.entity.PoseType.Companion.STATIONARY_POSES
import com.cobblemon.mod.common.entity.PoseType.Companion.UI_POSES
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class SmoochumModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
override val rootPart = root.registerChildWithAllChildren("smoochum")
override val head = getPart("head")
override var portraitScale = 2.3F
override var portraitTranslation = Vec3(-0.14, -1.0, 0.0)
override var profileScale = 0.8F
override var profileTranslation = Vec3(0.0, 0.55, 0.0)
lateinit var standing: Pose
lateinit var walk: Pose
lateinit var shoulderLeft: Pose
lateinit var shoulderRight: Pose
val shoulderOffset = 1
override fun registerPoses() {
// val blink = quirk { bedrockStateful("smoochum", "blink") }
standing = registerPose(
poseName = "standing",
poseTypes = STATIONARY_POSES + UI_POSES,
// quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("smoochum", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = MOVING_POSES,
// quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("smoochum", "ground_idle")
)
)
shoulderLeft = registerPose(
poseType = PoseType.SHOULDER_LEFT,
//quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("smoochum", "ground_idle")
),
transformedParts = arrayOf(
rootPart.createTransformation().addPosition(ModelPartTransformation.X_AXIS, shoulderOffset)
)
)
shoulderRight = registerPose(
poseType = PoseType.SHOULDER_RIGHT,
//quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("smoochum", "ground_idle")
),
transformedParts = arrayOf(
rootPart.createTransformation().addPosition(ModelPartTransformation.X_AXIS, -shoulderOffset)
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("smoochum", "faint") else null
}
@@ -19,7 +19,7 @@ import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class TyphlosionHisuianModel (root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
override val rootPart = root.registerChildWithAllChildren("typhlosion")
override val rootPart = root.registerChildWithAllChildren("typhlosion_hisui")
override val head = getPart("head")
override var portraitScale = 1.4F
@@ -0,0 +1,67 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen2
import com.cobblemon.mod.common.client.render.models.blockbench.animation.BimanualSwingAnimation
import com.cobblemon.mod.common.client.render.models.blockbench.animation.BipedWalkAnimation
import com.cobblemon.mod.common.client.render.models.blockbench.frame.BimanualFrame
import com.cobblemon.mod.common.client.render.models.blockbench.frame.BipedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.CryProvider
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
import com.cobblemon.mod.common.client.render.models.blockbench.pose.CobblemonPose
import com.cobblemon.mod.common.entity.PoseType
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class TyranitarModel(root: ModelPart) : PokemonPosableModel(root), BipedFrame, BimanualFrame, HeadedFrame {
override val rootPart = root.registerChildWithAllChildren("tyranitar")
override val head = getPart("head")
override val leftArm = getPart("arm_left")
override val rightArm = getPart("arm_right")
override val leftLeg = getPart("leg_left")
override val rightLeg = getPart("leg_right")
override var portraitScale = 1.21F
override var portraitTranslation = Vec3(-0.43, 3.73, 0.0)
override var profileScale = 0.33F
override var profileTranslation = Vec3(0.02, 1.31, 0.0)
lateinit var standing: CobblemonPose
lateinit var walk: CobblemonPose
override val cryAnimation = CryProvider { bedrockStateful("tyranitar", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("tyranitar", "blink") }
standing = registerPose(
poseName = "standing",
poseTypes = PoseType.STATIONARY_POSES + PoseType.UI_POSES,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(pitchMultiplier = 0.2F, yawMultiplier = 0.4F),
bedrock("tyranitar", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = PoseType.MOVING_POSES,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(pitchMultiplier = 0.2F, yawMultiplier = 0.4F),
bedrock("tyranitar", "ground_idle"),
BipedWalkAnimation(this, periodMultiplier = 0.6F, amplitudeMultiplier = 0.9F),
BimanualSwingAnimation(this, swingPeriodMultiplier = 0.6F, amplitudeMultiplier = 0.9F)
)
)
}
}
@@ -23,7 +23,7 @@ import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class WooperPaldeanModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
override val rootPart = root.registerChildWithAllChildren("wooper")
override val rootPart = root.registerChildWithAllChildren("wooper_paldean")
override val head = getPart("head")
override var portraitScale = 2.0F
@@ -0,0 +1,78 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen3
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
import com.cobblemon.mod.common.client.render.models.blockbench.PosableState
import com.cobblemon.mod.common.client.render.models.blockbench.pose.Pose
import com.cobblemon.mod.common.entity.PoseType
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class LuvdiscModel (root: ModelPart) : PokemonPosableModel(root) {
override val rootPart = root.registerChildWithAllChildren("luvdisc")
override var portraitScale = 6.0F
override var portraitTranslation = Vec3(0.15, -6.5, 0.0)
override var profileScale = 2.0F
override var profileTranslation = Vec3(0.0, -1.3, 0.0)
lateinit var standing: Pose
lateinit var sleep: Pose
lateinit var walk: Pose
lateinit var float: Pose
lateinit var swim: Pose
override fun registerPoses() {
val blink = quirk { bedrockStateful("luvdisc", "blink")}
sleep = registerPose(
poseType = PoseType.SLEEP,
animations = arrayOf(bedrock("luvdisc", "sleep"))
)
standing = registerPose(
poseName = "standing",
poseType = PoseType.STAND,
quirks = arrayOf(blink),
animations = arrayOf(
bedrock("luvdisc", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseType = PoseType.WALK,
quirks = arrayOf(blink),
animations = arrayOf(
bedrock("luvdisc", "ground_walk")
)
)
float = registerPose(
poseName = "float",
poseTypes = PoseType.UI_POSES + PoseType.FLOAT,
quirks = arrayOf(blink),
animations = arrayOf(
bedrock("luvdisc", "water_idle")
)
)
swim = registerPose(
poseName = "swim",
poseType = PoseType.SWIM,
quirks = arrayOf(blink),
animations = arrayOf(
bedrock("luvdisc", "water_swim")
)
)
}
override fun getFaintAnimation(state: PosableState) = if (state.isPosedIn(standing, walk, sleep)) bedrockStateful("luvdisc", "ground_faint") else null
}
@@ -0,0 +1,170 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen4
import com.cobblemon.mod.common.client.render.models.blockbench.animation.WingFlapIdleAnimation
import com.cobblemon.mod.common.client.render.models.blockbench.frame.BiWingedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.frame.BipedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.CryProvider
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
import com.cobblemon.mod.common.client.render.models.blockbench.pose.ModelPartTransformation
import com.cobblemon.mod.common.client.render.models.blockbench.pose.Pose
import com.cobblemon.mod.common.client.render.models.blockbench.wavefunction.parabolaFunction
import com.cobblemon.mod.common.client.render.models.blockbench.wavefunction.sineFunction
import com.cobblemon.mod.common.entity.PoseType
import com.cobblemon.mod.common.entity.PoseType.Companion.FLYING_POSES
import com.cobblemon.mod.common.entity.PoseType.Companion.SHOULDER_POSES
import com.cobblemon.mod.common.entity.PoseType.Companion.UI_POSES
import com.cobblemon.mod.common.util.math.geometry.toRadians
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class ChatotModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame, BipedFrame, BiWingedFrame{
override val rootPart = root.registerChildWithAllChildren("chatot")
override val leftWing = getPart("wing_left")
override val rightWing = getPart("wing_right")
override val leftLeg = getPart("leg_left")
override val rightLeg = getPart("leg_right")
override val head = getPart("head")
private val tail = getPart("tail")
override var portraitScale = 3.5F
override var portraitTranslation = Vec3(-0.1, -2.1, 0.0)
override var profileScale = 1.2F
override var profileTranslation = Vec3(0.0, -0.01, 0.0)
lateinit var sleep: Pose
lateinit var stand: Pose
lateinit var walk: Pose
lateinit var fly: Pose
override val cryAnimation = CryProvider { bedrockStateful("chatot", "cry") }
override fun registerPoses() {
// no sleep anim yet
// sleep = registerPose(
// poseType = PoseType.SLEEP,
// animations = arrayOf(bedrock("chatot", "sleep"))
// )
val blink = quirk { bedrockStateful("chatot", "blink") }
stand = registerPose(
poseName = "standing",
poseTypes = SHOULDER_POSES + UI_POSES + PoseType.STAND,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("chatot", "ground_idle")
)
)
fly = registerPose(
poseName = "hover",
poseTypes = FLYING_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("chatot", "air_idle"),
WingFlapIdleAnimation(this,
flapFunction = sineFunction(verticalShift = -10F.toRadians(), period = 0.9F, amplitude = 0.6F),
timeVariable = { state, _, _ -> state.animationSeconds },
axis = ModelPartTransformation.Z_AXIS
)
)
)
walk = registerPose(
poseName = "walking",
poseType = PoseType.WALK,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("chatot", "ground_idle"),
rootPart.translation(
function = parabolaFunction(
peak = -4F,
period = 0.4F
),
timeVariable = { state, _, _ -> state.animationSeconds },
axis = ModelPartTransformation.Y_AXIS
),
head.translation(
function = sineFunction(
amplitude = (-20F).toRadians(),
period = 1F,
verticalShift = (-10F).toRadians()
),
axis = ModelPartTransformation.X_AXIS,
timeVariable = { state, _, _ -> state.animationSeconds }
),
leftLeg.rotation(
function = parabolaFunction(
tightness = -20F,
phaseShift = 0F,
verticalShift = (30F).toRadians()
),
axis = ModelPartTransformation.X_AXIS,
timeVariable = { _, _, ageInTicks -> ageInTicks / 20 },
),
rightLeg.rotation(
function = parabolaFunction(
tightness = -20F,
phaseShift = 0F,
verticalShift = (30F).toRadians()
),
axis = ModelPartTransformation.X_AXIS,
timeVariable = { _, _, ageInTicks -> ageInTicks / 20 },
),
tail.rotation(
function = sineFunction(
amplitude = (-5F).toRadians(),
period = 1F
),
axis = ModelPartTransformation.X_AXIS,
timeVariable = { _, _, ageInTicks -> ageInTicks / 20 },
),
wingFlap(
flapFunction = sineFunction(
amplitude = (-5F).toRadians(),
period = 0.4F,
phaseShift = 0.00F,
verticalShift = (-20F).toRadians()
),
timeVariable = { state, _, _ -> state.animationSeconds },
axis = ModelPartTransformation.Z_AXIS
),
rightWing.translation(
function = parabolaFunction(
tightness = -10F,
phaseShift = 30F,
verticalShift = (25F).toRadians()
),
axis = ModelPartTransformation.Y_AXIS,
timeVariable = { _, _, ageInTicks -> ageInTicks / 20 },
),
leftWing.translation(
function = parabolaFunction(
tightness = -10F,
phaseShift = 30F,
verticalShift = (25F).toRadians()
),
axis = ModelPartTransformation.Y_AXIS,
timeVariable = { _, _, ageInTicks -> ageInTicks / 20 },
),
)
)
}
}
@@ -0,0 +1,86 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen7
import com.cobblemon.mod.common.client.render.models.blockbench.animation.BimanualSwingAnimation
import com.cobblemon.mod.common.client.render.models.blockbench.animation.BipedWalkAnimation
import com.cobblemon.mod.common.client.render.models.blockbench.frame.BimanualFrame
import com.cobblemon.mod.common.client.render.models.blockbench.frame.BipedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
import com.cobblemon.mod.common.client.render.models.blockbench.pose.CobblemonPose
import com.cobblemon.mod.common.entity.PoseType
import com.cobblemon.mod.common.util.isBattling
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class TurtonatorModel (root: ModelPart) : PokemonPosableModel(root), HeadedFrame, BipedFrame, BimanualFrame {
override val rootPart = root.registerChildWithAllChildren("turtonator")
override val head = getPart("head")
override val leftArm = getPart("arm_left")
override val rightArm = getPart("arm_right")
override val leftLeg = getPart("leg_left")
override val rightLeg = getPart("leg_right")
override var portraitScale = 1.62F
override var portraitTranslation = Vec3(-1.14, 1.92, 0.0)
override var profileScale = 0.54F
override var profileTranslation = Vec3(-0.08, 0.87, 0.0)
lateinit var standing: CobblemonPose
lateinit var walk: CobblemonPose
lateinit var battleidle: CobblemonPose
override fun registerPoses() {
val blink = quirk { bedrockStateful("turtonator", "blink") }
standing = registerPose(
poseName = "standing",
poseTypes = PoseType.STATIONARY_POSES + PoseType.UI_POSES,
quirks = arrayOf(blink),
condition = { !it.isBattling },
animations = arrayOf(
singleBoneLook(),
bedrock("turtonator", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = PoseType.MOVING_POSES,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("turtonator", "ground_idle"),
BipedWalkAnimation(this, periodMultiplier = 0.6F, amplitudeMultiplier = 0.9F),
BimanualSwingAnimation(this, swingPeriodMultiplier = 0.6F, amplitudeMultiplier = 0.9F)
//bedrock("turtonator", "ground_walk")
)
)
battleidle = registerPose(
poseName = "battle_idle",
poseTypes = PoseType.STATIONARY_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
condition = { it.isBattling },
animations = arrayOf(
singleBoneLook(),
bedrock("turtonator", "battle_idle")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("turtonator", "faint") else null
}
@@ -248,8 +248,10 @@ object VaryingModelRepository {
inbuilt("machop", ::MachopModel)
inbuilt("machoke", ::MachokeModel)
inbuilt("machamp", ::MachampModel)
inbuilt("arbok", ::ArbokModel)
inbuilt("chansey", ::ChanseyModel)
inbuilt("cubone", ::CuboneModel)
inbuilt("ditto", ::DittoModel)
inbuilt("dodrio", ::DodrioModel)
inbuilt("doduo", ::DoduoModel)
inbuilt("electabuzz", ::ElectabuzzModel)
@@ -276,6 +278,8 @@ object VaryingModelRepository {
inbuilt("nidoranm", ::NidoranmModel)
inbuilt("nidorina", ::NidorinaModel)
inbuilt("nidorino", ::NidorinoModel)
inbuilt("omanyte", ::OmanyteModel)
inbuilt("omastar", ::OmastarModel)
inbuilt("persian", ::PersianModel)
inbuilt("pinsir", ::PinsirModel)
inbuilt("poliwag", ::PoliwagModel)
@@ -285,9 +289,11 @@ object VaryingModelRepository {
inbuilt("rapidash", ::RapidashModel)
inbuilt("sandslash", ::SandslashModel)
inbuilt("tangela", ::TangelaModel)
inbuilt("tentacool", ::TentacoolModel)
inbuilt("venomoth", ::VenomothModel)
inbuilt("venonat", ::VenonatModel)
inbuilt("elekid", ::ElekidModel)
inbuilt("smoochum", ::SmoochumModel)
inbuilt("hitmontop", ::HitmontopModel)
inbuilt("electivire", ::ElectivireModel)
inbuilt("tangrowth", ::TangrowthModel)
@@ -349,6 +355,7 @@ object VaryingModelRepository {
inbuilt("whismur", :: WhismurModel)
inbuilt("loudred", :: LoudredModel)
inbuilt("exploud", :: ExploudModel)
inbuilt("luvdisc", :: LuvdiscModel)
inbuilt("cryogonal", :: CryogonalModel)
inbuilt("pumpkaboo", :: PumpkabooModel)
inbuilt("gourgeist", :: GourgeistModel)
@@ -390,6 +397,7 @@ object VaryingModelRepository {
inbuilt("tandemaus", ::TandemausModel)
inbuilt("fidough", ::FidoughModel)
inbuilt("dachsbun", ::DachsbunModel)
inbuilt("chatot", ::ChatotModel)
inbuilt("gligar", ::GligarModel)
inbuilt("gliscor", ::GliscorModel)
inbuilt("poochyena", ::PoochyenaModel)
@@ -479,6 +487,7 @@ object VaryingModelRepository {
inbuilt("phantump", ::PhantumpModel)
inbuilt("totodile", ::TotodileModel)
inbuilt("croconaw", ::CroconawModel)
inbuilt("feraligatr", ::FeraligatrModel)
inbuilt("cyndaquil", ::CyndaquilModel)
inbuilt("quilava", ::QuilavaModel)
inbuilt("typhlosion", ::TyphlosionModel)
@@ -535,6 +544,7 @@ object VaryingModelRepository {
inbuilt("petilil_hisui_bias", ::PetililHisuiBiasModel)
inbuilt("lilligant_hisuian", ::LilligantHisuianModel)
inbuilt("darumaka", ::DarumakaModel)
inbuilt("turtonator", ::TurtonatorModel)
inbuilt("cufant", ::CufantModel)
inbuilt("copperajah", ::CopperajahModel)
inbuilt("budew", ::BudewModel)
@@ -564,6 +574,7 @@ object VaryingModelRepository {
inbuilt("vibrava", ::VibravaModel)
inbuilt("larvitar", ::LarvitarModel)
inbuilt("pupitar", ::PupitarModel)
inbuilt("tyranitar", ::TyranitarModel)
inbuilt("impidimp", ::ImpidimpModel)
inbuilt("morgrem", ::MorgremModel)
inbuilt("grimmsnarl", ::GrimmsnarlModel)
@@ -798,13 +798,6 @@ open class PokemonEntity(
return pokemon.isFireImmune()
}
/**
* Prevents ice type Pokémon from freezing (from powered snow)
*/
override fun canFreeze(): Boolean {
return !pokemon.isFreezeImmune() && super.canFreeze()
}
/**
* Prevents flying type Pokémon from taking fall damage.
*/
@@ -2729,4 +2722,9 @@ open class PokemonEntity(
}
fun hasRider() = this.passengers.any { it is LivingEntity }
override fun playStepSound(pos: BlockPos, state: BlockState) {
if (this.pokemon.species.silenceStepSounds) return
super.playStepSound(pos, state)
}
}
@@ -1037,10 +1037,6 @@ open class Pokemon : ShowdownIdentifiable {
return ElementalTypes.FIRE in types || form.behaviour.moving.swim.canSwimInLava || form.behaviour.fireImmune
}
fun isFreezeImmune(): Boolean {
return ElementalTypes.ICE in types || form.behaviour.freezeImmune
}
fun dampensVibrations(): Boolean = form.behaviour.dampensVibrations
// function to return the max hunger for the pokemon
@@ -173,6 +173,7 @@ class Species : ShowdownIdentifiable {
.addStandardFunctions()
.addSpeciesFunctions(this)
var silenceStepSounds = false
fun initialize() {
Cobblemon.statProvider.provide(this)
@@ -256,6 +257,7 @@ class Species : ShowdownIdentifiable {
}
this.riding.encode(buffer)
buffer.writeBoolean(this.silenceStepSounds)
}
fun decode(buffer: RegistryFriendlyByteBuf) {
@@ -299,6 +301,7 @@ class Species : ShowdownIdentifiable {
}
}
this.riding = RidingProperties.decode(buffer)
this.silenceStepSounds = buffer.readBoolean()
this.initialize()
}
@@ -35,9 +35,6 @@ class FormPokemonBehaviour {
@SerializedName("fireImmune")
private val _fireImmune: Boolean? = null
@SerializedName("freezeImmune")
private val _freezeImmune: Boolean? = null
@SerializedName("dampensVibrations")
private val _dampensVibrations: Boolean? = null
@@ -75,9 +72,6 @@ class FormPokemonBehaviour {
val fireImmune: Boolean
get() = _fireImmune ?: parent.fireImmune
val freezeImmune: Boolean
get() = _freezeImmune ?: parent.freezeImmune
val entityInteract: EntityBehaviour
get() = _entityInteract ?: parent.entityInteract
@@ -31,7 +31,6 @@ open class PokemonBehaviour(
val herd: HerdBehaviour = HerdBehaviour(),
val characteristicRainbow: Boolean = false,
val itemInteract: ItemBehavior = ItemBehavior(),
val freezeImmune: Boolean = false,
) {
@Transient
val struct = ObjectValue<PokemonBehaviour>(this).also {
@@ -13,10 +13,7 @@ import com.mojang.serialization.MapCodec
import com.mojang.serialization.codecs.RecordCodecBuilder
import net.minecraft.core.BlockPos
import net.minecraft.world.level.LevelReader
import net.minecraft.world.level.LevelHeightAccessor
import net.minecraft.world.level.chunk.ChunkGenerator
import net.minecraft.world.level.levelgen.Heightmap
import net.minecraft.world.level.levelgen.RandomState
import net.minecraft.world.level.levelgen.structure.templatesystem.StructurePlaceSettings
import net.minecraft.world.level.levelgen.structure.templatesystem.StructureProcessor
import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate
@@ -27,25 +24,6 @@ class HeightRangeStructureProcessor(
val reference: HeightReference = HeightReference.SEA_LEVEL
) : StructureProcessor() {
fun isValidPlacement(world: LevelReader, pos: BlockPos): Boolean {
val referenceY = reference.getY(world, pos)
val minY = referenceY + minOffset
val maxY = referenceY + maxOffset
return pos.y in minY..maxY
}
fun isValidPlacement(
chunkGenerator: ChunkGenerator,
heightAccessor: LevelHeightAccessor,
randomState: RandomState,
pos: BlockPos
): Boolean {
val referenceY = reference.getY(chunkGenerator, heightAccessor, randomState, pos)
val minY = referenceY + minOffset
val maxY = referenceY + maxOffset
return pos.y in minY..maxY
}
override fun processBlock(
world: LevelReader,
pos: BlockPos,
@@ -54,7 +32,11 @@ class HeightRangeStructureProcessor(
currentBlockInfo: StructureTemplate.StructureBlockInfo,
data: StructurePlaceSettings
): StructureTemplate.StructureBlockInfo? {
return if (isValidPlacement(world, pos)) {
val referenceY = reference.getY(world, pos)
val minY = referenceY + minOffset
val maxY = referenceY + maxOffset
return if (pos.y in minY..maxY) {
currentBlockInfo
} else {
null
@@ -83,19 +65,6 @@ class HeightRangeStructureProcessor(
}
}
fun getY(
chunkGenerator: ChunkGenerator,
heightAccessor: LevelHeightAccessor,
randomState: RandomState,
pos: BlockPos
): Int {
return if (this == SEA_LEVEL) {
chunkGenerator.seaLevel
} else {
chunkGenerator.getBaseHeight(pos.x, pos.z, type ?: Heightmap.Types.WORLD_SURFACE_WG, heightAccessor, randomState)
}
}
companion object {
val CODEC: Codec<HeightReference> = Codec.STRING.xmap(
{ serialized -> entries.firstOrNull { it.id == serialized } ?: SEA_LEVEL },
@@ -1,39 +0,0 @@
{
"format_version": "1.8.0",
"animations": {
"animation.playrough.actor": {
"animation_length": 3,
"bones": {
"root_part": {
"position": {
"0.0": [0, 0, 0],
"0.0417": [0, 0, -3],
"0.0833": [0, 0, -6],
"0.125": [0, 0, -16],
"0.2917": [0, 0, -26],
"1.2083": [0, 0, -10],
"1.2917": [0, 0, -4],
"1.4167": [0, 0, 0]
},
"scale": {
"0.0": [1, 1, 1],
"0.0417": [1, 1, 1.05],
"0.0833": [1, 1, 1.2],
"0.125": {"pre": [0.9841, 0.9841, 1.6], "post": [0, 0, 0]},
"1.2083": {"pre": [0, 0, 0], "post": [1, 1, 1]}
}
}
},
"particle_effects": {
"0.0": {
"effect": "closecombat_actor",
"locator": "middle"
},
"0.0417": {
"effect": "closecombat_dashlines",
"locator": "middle"
}
}
}
}
}
@@ -1,72 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:blizzard_actor",
"basic_render_parameters": {
"material": "particles_alpha",
"texture": "textures/particles/generic/impact/impact_ice"
}
},
"curves": {
"variable.bsizing": {
"type": "linear",
"input": "v.particle_age",
"horizontal_range": "v.particle_lifetime",
"nodes": [0, 0.69, 0.96, 1, 1, 1, 1, 1, 1, 0.96, 0.82, 0]
}
},
"components": {
"minecraft:emitter_rate_steady": {
"spawn_rate": 900,
"max_particles": 10000
},
"minecraft:emitter_lifetime_once": {
"active_time": 1.1
},
"minecraft:emitter_shape_box": {
"offset": [0, 4, 2],
"half_dimensions": [10, 4, 10],
"direction": ["(v.particle_random_1-0.5)*0.5", "(v.target_deltay/v.target_distance)+((v.particle_random_2-0.5)*0.5)", -1]
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": "math.random(0.9,1.4)*1.1"
},
"minecraft:particle_initial_speed": "(v.particle_random_4+1)*16",
"minecraft:particle_motion_dynamic": {
"linear_acceleration": ["math.sin(v.particle_age*((v.particle_random_2-0.5)*(360+(v.particle_random_2*180))))*1.5", "math.cos(v.particle_age*((v.particle_random_4-0.5)*(360+(v.particle_random_2*180))))*2", "math.sin(v.particle_age*((v.particle_random_1-0.5)*(360+(v.particle_random_2*180))))*1.5"],
"linear_drag_coefficient": 1.5
},
"minecraft:particle_appearance_billboard": {
"size": ["0.1*v.bsizing", "0.1*v.bsizing"],
"facing_camera_mode": "rotate_xyz",
"uv": {
"texture_width": 8,
"texture_height": 56,
"flipbook": {
"base_UV": [0, 0],
"size_UV": [8, 8],
"step_UV": [0, 8],
"frames_per_second": 10,
"max_frame": 7,
"loop": true
}
}
},
"minecraft:particle_motion_collision": {
"collision_drag": 0.2,
"coefficient_of_restitution": 0.05,
"collision_radius": 0.1
},
"minecraft:particle_appearance_tinting": {
"color": {
"interpolant": "v.particle_age / v.particle_lifetime",
"gradient": {
"0.0": "#FFFFFFFF",
"1.0": "#FFAAD4FF"
}
}
}
}
}
}
@@ -1,73 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:blizzard_target",
"basic_render_parameters": {
"material": "particles_alpha",
"texture": "textures/particles/generic/impact/impact_ice"
}
},
"curves": {
"variable.dfd": {
"type": "linear",
"input": "v.particle_age",
"horizontal_range": "v.particle_lifetime",
"nodes": [0, 0.69, 0.96, 1, 1, 1, 0.96, 0.82, 0]
}
},
"components": {
"minecraft:emitter_initialization": {
"creation_expression": "v.entity_height=1;"
},
"minecraft:emitter_rate_steady": {
"spawn_rate": 1000,
"max_particles": 10000
},
"minecraft:emitter_lifetime_once": {
"active_time": 0.1
},
"minecraft:emitter_shape_point": {
"direction": ["(v.particle_random_1-0.5)*3", "(v.particle_random_2-0.5)*3", "(v.particle_random_3-0.5)*3"]
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": "0.6+(v.particle_random_4*0.4)"
},
"minecraft:particle_initial_speed": "math.random(1.25,4.75)*7",
"minecraft:particle_motion_dynamic": {
"linear_acceleration": ["(v.particle_random_3-0.5)*16", "(v.particle_random_4-0.5)*16", "(v.particle_random_2-0.5)*16"],
"linear_drag_coefficient": 4
},
"minecraft:particle_appearance_billboard": {
"size": ["0.1*v.dfd", "0.1*v.dfd"],
"facing_camera_mode": "rotate_xyz",
"uv": {
"texture_width": 8,
"texture_height": 56,
"flipbook": {
"base_UV": [0, 0],
"size_UV": [8, 8],
"step_UV": [0, 8],
"frames_per_second": 10,
"max_frame": 7,
"stretch_to_lifetime": true
}
}
},
"minecraft:particle_motion_collision": {
"collision_drag": 0.2,
"coefficient_of_restitution": 0.6,
"collision_radius": 0.1
},
"minecraft:particle_appearance_tinting": {
"color": {
"interpolant": "v.particle_age / v.particle_lifetime",
"gradient": {
"0.0": "#FFFFFFFF",
"1.0": "#FFAAD4FF"
}
}
}
}
}
}
@@ -1,64 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:blizzard_targetswirl",
"basic_render_parameters": {
"material": "particles_alpha",
"texture": "textures/particles/generic/impact/impact_ice"
}
},
"curves": {
"variable.dfd": {
"type": "linear",
"input": "v.particle_age",
"horizontal_range": "v.particle_lifetime",
"nodes": [0, 0.69, 0.96, 1, 1, 1, 0.96, 0.82, 0]
}
},
"components": {
"minecraft:emitter_initialization": {
"creation_expression": "v.entity_height=1;"
},
"minecraft:emitter_rate_steady": {
"spawn_rate": 200,
"max_particles": 10000
},
"minecraft:emitter_lifetime_once": {
"active_time": 0.7
},
"minecraft:emitter_shape_point": {},
"minecraft:particle_lifetime_expression": {
"max_lifetime": "0.6+(v.particle_random_4*0.4)"
},
"minecraft:particle_motion_parametric": {
"relative_position": ["(math.sin((v.particle_age*420)+(v.particle_random_1*360))*(math.clamp(v.entity_radius*1.04,0.65,4)+(v.particle_age*1.7)))", "(math.cos((v.particle_age*410)+(v.particle_random_1*360))*0.25)+((((v.particle_random_2-0.5)*2)*(v.entity_height*0.65))+((v.particle_age+v.particle_age)*(v.particle_random_4-0.5)))", "(math.cos((v.particle_age*410)+(v.particle_random_1*360))*(math.clamp(v.entity_radius*1.04,0.65,4)+(v.particle_age*1.7)))"]
},
"minecraft:particle_appearance_billboard": {
"size": ["0.1*v.dfd", "0.1*v.dfd"],
"facing_camera_mode": "rotate_xyz",
"uv": {
"texture_width": 8,
"texture_height": 56,
"flipbook": {
"base_UV": [0, 0],
"size_UV": [8, 8],
"step_UV": [0, 8],
"frames_per_second": 10,
"max_frame": 7,
"loop": true
}
}
},
"minecraft:particle_appearance_tinting": {
"color": {
"interpolant": "v.particle_age / v.particle_lifetime",
"gradient": {
"0.0": "#FFFFFFFF",
"1.0": "#FFAAD4FF"
}
}
}
}
}
}
@@ -37,7 +37,7 @@
"minecraft:particle_motion_dynamic": {},
"minecraft:particle_appearance_billboard": {
"size": ["0.35+(v.particle_age*0.175)", "0.35+(v.particle_age*0.175)"],
"facing_camera_mode": "emitter_transform_xy",
"facing_camera_mode": "rotate_xyz",
"uv": {
"texture_width": 117,
"texture_height": 13,
@@ -48,7 +48,7 @@
0.55,
0.55
],
"facing_camera_mode": "emitter_transform_xy",
"facing_camera_mode": "rotate_xyz",
"uv": {
"texture_width": 68,
"texture_height": 17,
@@ -1,60 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:disarmingvoice_actor1",
"basic_render_parameters": {
"material": "particles_blend",
"texture": "textures/particles/generic/ring/largering"
}
},
"components": {
"minecraft:emitter_initialization": {
"creation_expression": "v.target_deltaz=5;"
},
"minecraft:emitter_rate_steady": {
"spawn_rate": 8,
"max_particles": 7
},
"minecraft:emitter_lifetime_once": {
"active_time": 1.1
},
"minecraft:emitter_shape_point": {
"offset": ["v.target_deltax*(v.emitter_age/v.emitter_lifetime)", "v.target_deltay*(v.emitter_age/v.emitter_lifetime)", "-(v.target_deltaz*(v.emitter_age/v.emitter_lifetime))"],
"direction": [0, "(v.target_deltay/v.target_distance)", -1]
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": 0.43
},
"minecraft:particle_initial_speed": "math.clamp(v.target_deltaz,1,12)",
"minecraft:particle_motion_dynamic": {
"linear_drag_coefficient": "math.clamp(v.target_deltaz*1.5,3,10)"
},
"minecraft:particle_appearance_billboard": {
"size": [0.75, 0.75],
"facing_camera_mode": "emitter_transform_xy",
"uv": {
"texture_width": 160,
"texture_height": 20,
"flipbook": {
"base_UV": [0, 0],
"size_UV": [20, 20],
"step_UV": [20, 0],
"frames_per_second": 20,
"max_frame": 8
}
}
},
"minecraft:particle_appearance_tinting": {
"color": {
"interpolant": "v.particle_age / v.particle_lifetime",
"gradient": {
"0.0": "#FFFFECFE",
"0.47": "#FFFF89E8",
"1.0": "#FFE600BA"
}
}
}
}
}
}
@@ -1,60 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:disarmingvoice_actor2",
"basic_render_parameters": {
"material": "particles_blend",
"texture": "textures/particles/generic/ring/mediumring"
}
},
"components": {
"minecraft:emitter_initialization": {
"creation_expression": "v.target_deltaz=5;"
},
"minecraft:emitter_rate_steady": {
"spawn_rate": 8,
"max_particles": 7
},
"minecraft:emitter_lifetime_once": {
"active_time": 1.1
},
"minecraft:emitter_shape_point": {
"offset": ["v.target_deltax*(v.emitter_age/v.emitter_lifetime)", "v.target_deltay*(v.emitter_age/v.emitter_lifetime)", "-(v.target_deltaz*(v.emitter_age/v.emitter_lifetime))"],
"direction": [0, "(v.target_deltay/v.target_distance)", -1]
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": 0.3
},
"minecraft:particle_initial_speed": "math.clamp(v.target_deltaz,1,12)",
"minecraft:particle_motion_dynamic": {
"linear_drag_coefficient": "math.clamp(v.target_deltaz*1.5,3,10)"
},
"minecraft:particle_appearance_billboard": {
"size": [0.55, 0.55],
"facing_camera_mode": "emitter_transform_xy",
"uv": {
"texture_width": 90,
"texture_height": 15,
"flipbook": {
"base_UV": [0, 0],
"size_UV": [15, 15],
"step_UV": [15, 0],
"frames_per_second": 20,
"max_frame": 6
}
}
},
"minecraft:particle_appearance_tinting": {
"color": {
"interpolant": "v.particle_age / v.particle_lifetime",
"gradient": {
"0.0": "#FFFFECFE",
"0.47": "#FFFF89E8",
"1.0": "#FFE600BA"
}
}
}
}
}
}
@@ -1,63 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:disarmingvoice_actorhearts",
"basic_render_parameters": {
"material": "particles_alpha",
"texture": "textures/particles/generic/status/infatuation_heart"
}
},
"curves": {
"variable.d": {
"type": "linear",
"input": "v.particle_age",
"horizontal_range": "v.particle_lifetime",
"nodes": [0, 0.93, 1, 1, 1, 0.93, 0.61, 0]
}
},
"components": {
"minecraft:emitter_initialization": {
"creation_expression": "v.target_deltaz=5;"
},
"minecraft:emitter_rate_steady": {
"spawn_rate": 25,
"max_particles": 2000
},
"minecraft:emitter_lifetime_once": {
"active_time": 1.1
},
"minecraft:emitter_shape_point": {
"offset": ["(v.target_deltax*(v.emitter_age/v.emitter_lifetime))+math.sin(v.emitter_age*360*7.5)*0.7", "(v.target_deltay*(v.emitter_age/v.emitter_lifetime))+math.cos(v.emitter_age*360*7.5)*0.7", "-(v.target_deltaz*(v.emitter_age/v.emitter_lifetime))"],
"direction": [0, "(v.target_deltay/v.target_distance)", -1]
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": 0.45
},
"minecraft:particle_initial_speed": "v.target_deltaz*0.5",
"minecraft:particle_motion_dynamic": {
"linear_acceleration": ["(v.particle_random_1-0.5)", "(v.particle_random_2-0.5)", "(v.particle_random_3-0.5)"],
"linear_drag_coefficient": 4
},
"minecraft:particle_appearance_billboard": {
"size": ["(0.1-(v.particle_random_4*0.04))*v.d", "(0.1-(v.particle_random_4*0.04))*v.d"],
"facing_camera_mode": "rotate_xyz",
"uv": {
"texture_width": 90,
"texture_height": 9,
"uv": [3, 3],
"uv_size": [3, 3]
}
},
"minecraft:particle_appearance_tinting": {
"color": {
"interpolant": "v.particle_age / v.particle_lifetime",
"gradient": {
"0.0": "#FFFF89E8",
"1.0": "#FFE600BA"
}
}
}
}
}
}
@@ -1,70 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:disarmingvoice_target",
"basic_render_parameters": {
"material": "particles_blend",
"texture": "textures/particles/generic/ring/xlring"
}
},
"curves": {
"variable.s": {
"type": "linear",
"input": "v.particle_age",
"horizontal_range": "v.particle_lifetime",
"nodes": [0.24, 0.69, 0.9, 0.98, 1, 1, 1, 1, 1, 1, 1, 1, 1]
}
},
"events": {
"event": {
"particle_effect": {
"effect": "cobblemon:disarmingvoice_targetsparks",
"type": "emitter"
}
}
},
"components": {
"minecraft:emitter_rate_instant": {
"num_particles": 1
},
"minecraft:emitter_lifetime_once": {
"active_time": 1.1
},
"minecraft:emitter_lifetime_events": {
"creation_event": "event"
},
"minecraft:emitter_shape_point": {},
"minecraft:particle_lifetime_expression": {
"max_lifetime": 0.43
},
"minecraft:particle_initial_speed": 0,
"minecraft:particle_motion_dynamic": {},
"minecraft:particle_appearance_billboard": {
"size": ["1*v.s", "1*v.s"],
"facing_camera_mode": "emitter_transform_xy",
"uv": {
"texture_width": 160,
"texture_height": 20,
"flipbook": {
"base_UV": [0, 0],
"size_UV": [20, 20],
"step_UV": [20, 0],
"frames_per_second": 20,
"max_frame": 8
}
}
},
"minecraft:particle_appearance_tinting": {
"color": {
"interpolant": "v.particle_age / v.particle_lifetime",
"gradient": {
"0.0": "#FFFFECFE",
"0.47": "#FFFF89E8",
"1.0": "#FFE600BA"
}
}
}
}
}
}
@@ -1,64 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:disarmingvoice_targetsparks",
"basic_render_parameters": {
"material": "particles_alpha",
"texture": "textures/particles/generic/orb/scaling"
}
},
"curves": {
"variable.size": {
"type": "linear",
"input": "v.particle_age",
"horizontal_range": "v.particle_lifetime",
"nodes": [0, 1, 0.98, 0.86, 0.6, 0]
}
},
"components": {
"minecraft:emitter_rate_instant": {
"num_particles": 10
},
"minecraft:emitter_lifetime_once": {
"active_time": 1
},
"minecraft:emitter_shape_point": {
"direction": ["math.random(-0.91,0.91)", "math.random(-0.81, 1.01)", "math.random(-0.91,0.91)"]
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": "math.random(0.45, 0.6)"
},
"minecraft:particle_initial_speed": "(0.8+(v.particle_random_4*0.6))*10",
"minecraft:particle_motion_dynamic": {
"linear_acceleration": ["(v.particle_random_1-0.5)*7", "(v.particle_random_2-0.5)*7", "(v.particle_random_3-0.5)*7"],
"linear_drag_coefficient": 5
},
"minecraft:particle_appearance_billboard": {
"size": ["0.11*v.size", "0.11*v.size"],
"facing_camera_mode": "rotate_xyz",
"uv": {
"texture_width": 8,
"texture_height": 32,
"flipbook": {
"base_UV": [0, 16],
"size_UV": [8, 8],
"step_UV": [0, -8],
"frames_per_second": 12,
"max_frame": 3,
"stretch_to_lifetime": true
}
}
},
"minecraft:particle_appearance_tinting": {
"color": {
"interpolant": "v.particle_age / v.particle_lifetime",
"gradient": {
"0.0": "#FFFFECFE",
"0.93": "#FFE600BA"
}
}
}
}
}
}
@@ -1,77 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:dragonbreath_actor",
"basic_render_parameters": {
"material": "particles_alpha",
"texture": "textures/particles/generic/fire/cloudyfire_white"
}
},
"curves": {
"variable.fun": {
"type": "linear",
"input": "v.particle_age",
"horizontal_range": "v.particle_lifetime",
"nodes": [1, 1, 1, 1, 0.99, 0.97, 0.91, 0.77, 0.54, -0.1]
}
},
"components": {
"minecraft:emitter_initialization": {
"creation_expression": "v.target_deltaz=5;v.target_deltax=0;v.target_deltay=0;"
},
"minecraft:emitter_rate_steady": {
"spawn_rate": "30*(math.clamp(v.target_deltaz,1,4))",
"max_particles": 1000
},
"minecraft:emitter_lifetime_once": {
"active_time": 1
},
"minecraft:emitter_shape_point": {
"direction": ["(-v.target_deltax+((v.particle_random_1-0.5)*1.05))+(math.sin(v.emitter_age*360)*0.25)", "(v.target_deltay+((v.particle_random_2-0.5)*1.05))+(math.sin(v.emitter_age*540)*0.2)", "-v.target_deltaz*1.05"]
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": "math.random(0.75,1.0)*1.4"
},
"minecraft:particle_initial_spin": {
"rotation": "math.round(v.particle_random_4*3)*90"
},
"minecraft:particle_initial_speed": "(v.target_deltaz*((v.particle_random_4+0.75)*1.15))*(math.clamp(v.target_deltaz,3,24)/1.7)",
"minecraft:particle_motion_dynamic": {
"linear_acceleration": ["(v.particle_random_3-0.5)*4", "3+(v.particle_random_1-0.5)*2", "(v.particle_random_2-0.5)*1"],
"linear_drag_coefficient": "math.clamp(v.target_deltaz,1,20)*(0.5+(math.clamp(v.target_deltaz,1,5)*0.05))"
},
"minecraft:particle_appearance_billboard": {
"size": ["(0.5-(v.particle_random_4*0.15))*v.fun", "(0.5-(v.particle_random_4*0.15))*v.fun"],
"facing_camera_mode": "rotate_xyz",
"uv": {
"texture_width": 160,
"texture_height": 16,
"flipbook": {
"base_UV": [0, 0],
"size_UV": [16, 16],
"step_UV": [16, 0],
"frames_per_second": 12,
"max_frame": 10
}
}
},
"minecraft:particle_motion_collision": {
"collision_drag": 10,
"collision_radius": 0.01
},
"minecraft:particle_appearance_tinting": {
"color": {
"interpolant": "(v.particle_age / v.particle_lifetime) * (v.particle_random_4+0.75)",
"gradient": {
"0.0": "#FFFFE6A1",
"0.05": "#FFFFE6A1",
"0.2": "#FFFF3B8F",
"0.6": "#FFA300FF",
"1.0": "#FF3E00C7"
}
}
}
}
}
}
@@ -1,71 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:dragonbreath_target",
"basic_render_parameters": {
"material": "particles_blend",
"texture": "textures/particles/generic/fire/cloudyfire_white"
}
},
"curves": {
"variable.dorasize": {
"type": "linear",
"input": "v.particle_age",
"horizontal_range": "v.particle_lifetime",
"nodes": [0.42, 0.77, 0.91, 0.98, 1, 1, 1, 1, 1, 0.86, 0.55, 0]
}
},
"components": {
"minecraft:emitter_rate_steady": {
"spawn_rate": 250,
"max_particles": 150
},
"minecraft:emitter_lifetime_looping": {
"active_time": 0.3
},
"minecraft:emitter_shape_point": {
"offset": [0, 0, "math.random(0.15,-0.05)"],
"direction": ["math.random(-2,2)*1.1", "math.random(-2,2)*1.1", "math.random(-2,2)*0.45"]
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": "math.random(0.65,1.0)*1.4"
},
"minecraft:particle_initial_speed": "math.random(1.25,4.75)*1.25",
"minecraft:particle_motion_dynamic": {
"linear_acceleration": [0, "math.random(1.5,3.5)", 0],
"linear_drag_coefficient": "math.random(1.25,1.5)*2"
},
"minecraft:particle_appearance_billboard": {
"size": ["(0.5-(v.particle_random_4*0.15))*v.dorasize", "(0.5-(v.particle_random_4*0.15))*v.dorasize"],
"facing_camera_mode": "rotate_xyz",
"uv": {
"texture_width": 160,
"texture_height": 16,
"flipbook": {
"base_UV": [0, 0],
"size_UV": [16, 16],
"step_UV": [16, 0],
"frames_per_second": 12,
"max_frame": 10
}
}
},
"minecraft:particle_motion_collision": {
"coefficient_of_restitution": 0.1,
"collision_radius": 0.1
},
"minecraft:particle_appearance_tinting": {
"color": {
"interpolant": "v.particle_age / v.particle_lifetime",
"gradient": {
"0.0": "#FFFFE6A1",
"0.35": "#FFFF3B8F",
"0.7": "#FFA300FF",
"1.0": "#FF3E00C7"
}
}
}
}
}
}
@@ -1,74 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:dragonrage_actor",
"basic_render_parameters": {
"material": "particles_alpha",
"texture": "textures/particles/generic/fire/cloudyfire_white"
}
},
"curves": {
"variable.fun": {
"type": "linear",
"input": "v.particle_age",
"horizontal_range": "v.particle_lifetime",
"nodes": [1, 1, 1, 0.99, 0.95, 0.8, 0.5, 0.05]
}
},
"components": {
"minecraft:emitter_initialization": {
"creation_expression": "v.target_deltaz=5;"
},
"minecraft:emitter_rate_steady": {
"spawn_rate": 60,
"max_particles": 300
},
"minecraft:emitter_lifetime_once": {
"active_time": 0.65
},
"minecraft:emitter_shape_point": {
"offset": ["-v.target_deltax*(v.emitter_age/v.emitter_lifetime)", "v.target_deltay*(v.emitter_age/v.emitter_lifetime)", "-v.target_deltaz*(v.emitter_age/v.emitter_lifetime)"],
"direction": ["math.random(-0.45,0.45)", "math.random(-0.45,0.45)-(v.target_deltay/v.target_deltaz)", "math.random(-2.05,-0.55)"]
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": 0.7
},
"minecraft:particle_initial_spin": {
"rotation": "math.round(v.particle_random_4*3)*90"
},
"minecraft:particle_initial_speed": "math.random(2.75,3.25)*(v.target_deltaz*0.5)",
"minecraft:particle_motion_dynamic": {
"linear_acceleration": ["(v.particle_random_1-0.5)*4", "1.5+(v.particle_random_1-0.5)*3", "(v.particle_random_1-0.5)*3"],
"linear_drag_coefficient": 4
},
"minecraft:particle_appearance_billboard": {
"size": ["0.45*v.fun", "0.45*v.fun"],
"facing_camera_mode": "rotate_xyz",
"uv": {
"texture_width": 160,
"texture_height": 16,
"flipbook": {
"base_UV": [0, 0],
"size_UV": [16, 16],
"step_UV": [16, 0],
"frames_per_second": 20,
"max_frame": 10
}
}
},
"minecraft:particle_appearance_tinting": {
"color": {
"interpolant": "v.particle_age / v.particle_lifetime",
"gradient": {
"0.0": "#FFFFA1A1",
"0.05": "#FFFFA1A1",
"0.2": "#FFFF3BF2",
"0.6": "#FF7C00FF",
"1.0": "#FF3E00C7"
}
}
}
}
}
}
@@ -1,85 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:dragonrage_actorburst",
"basic_render_parameters": {
"material": "particles_alpha",
"texture": "textures/particles/generic/fire/cloudyfire_white"
}
},
"curves": {
"variable.fun": {
"type": "linear",
"input": "v.particle_age",
"horizontal_range": "v.particle_lifetime",
"nodes": [1, 1, 1, 1, 0.97, 0.87, 0.54, 0]
}
},
"events": {
"ring": {
"particle_effect": {
"effect": "cobblemon:dragonrage_actorring",
"type": "emitter"
}
}
},
"components": {
"minecraft:emitter_rate_steady": {
"spawn_rate": 200,
"max_particles": 1000
},
"minecraft:emitter_lifetime_once": {
"active_time": 0.1
},
"minecraft:emitter_lifetime_events": {
"creation_event": "ring"
},
"minecraft:emitter_shape_point": {
"direction": ["math.random(-1.05,1.05)*1.25", "math.random(-1.05,1.05)*1.25", "math.random(-1.25,-0.05)"]
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": "math.random(0.4,0.8)"
},
"minecraft:particle_initial_spin": {
"rotation": "math.round(v.particle_random_4*3)*90"
},
"minecraft:particle_initial_speed": "math.random(2.5,7.5)*2",
"minecraft:particle_motion_dynamic": {
"linear_acceleration": ["(v.particle_random_1-0.5)*4", "3+(v.particle_random_1-0.5)*3", "(v.particle_random_1-0.5)*1"],
"linear_drag_coefficient": 4
},
"minecraft:particle_appearance_billboard": {
"size": ["(0.5-(v.particle_random_4*0.15))*v.fun", "(0.5-(v.particle_random_4*0.15))*v.fun"],
"facing_camera_mode": "rotate_xyz",
"uv": {
"texture_width": 160,
"texture_height": 16,
"flipbook": {
"base_UV": [16, 0],
"size_UV": [16, 16],
"step_UV": [16, 0],
"frames_per_second": 20,
"max_frame": 9
}
}
},
"minecraft:particle_motion_collision": {
"collision_drag": 10,
"collision_radius": 0.01
},
"minecraft:particle_appearance_tinting": {
"color": {
"interpolant": "v.particle_age / v.particle_lifetime",
"gradient": {
"0.0": "#FFFFA1A1",
"0.05": "#FFFFA1A1",
"0.2": "#FFFF3BF2",
"0.6": "#FF7C00FF",
"1.0": "#FF3E00C7"
}
}
}
}
}
}
@@ -1,63 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:dragonrage_actorring",
"basic_render_parameters": {
"material": "particles_blend",
"texture": "textures/particles/generic/ring/xlring"
}
},
"curves": {
"variable.s": {
"type": "linear",
"input": "v.particle_age",
"horizontal_range": "v.particle_lifetime",
"nodes": [0, 0.57, 0.84, 0.96, 1, 1, 1, 1, 1, 1, 1]
}
},
"components": {
"minecraft:emitter_rate_instant": {
"num_particles": 1
},
"minecraft:emitter_lifetime_once": {
"active_time": 0.05
},
"minecraft:emitter_shape_point": {
"offset": [0, 0, -0.1]
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": 0.45
},
"minecraft:particle_initial_speed": 0,
"minecraft:particle_motion_dynamic": {},
"minecraft:particle_appearance_billboard": {
"size": ["1.2*v.s", "1.2*v.s"],
"facing_camera_mode": "emitter_transform_xy",
"uv": {
"texture_width": 200,
"texture_height": 25,
"flipbook": {
"base_UV": [0, 0],
"size_UV": [25, 25],
"step_UV": [25, 0],
"frames_per_second": 20,
"max_frame": 8
}
}
},
"minecraft:particle_appearance_tinting": {
"color": {
"interpolant": "v.particle_age / v.particle_lifetime",
"gradient": {
"0.0": "#FFFFA1A1",
"0.05": "#FFFFA1A1",
"0.2": "#FFFF3BF2",
"0.78": "#FF6600C7",
"1.0": "#003E00C7"
}
}
}
}
}
}
@@ -1,84 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:dragonrage_target",
"basic_render_parameters": {
"material": "particles_alpha",
"texture": "textures/particles/generic/fire/cloudyfire_white"
}
},
"curves": {
"variable.fun": {
"type": "linear",
"input": "v.particle_age",
"horizontal_range": "v.particle_lifetime",
"nodes": [1, 1, 1, 1, 1, 1, 0.96, 0.85, 0.6, -0.05]
}
},
"events": {
"cover": {
"particle_effect": {
"effect": "cobblemon:dragonrage_targetcover",
"type": "emitter_bound"
}
}
},
"components": {
"minecraft:emitter_rate_instant": {
"num_particles": "30*math.clamp(v.entity_height,1,2)"
},
"minecraft:emitter_lifetime_once": {
"active_time": 0.05
},
"minecraft:emitter_lifetime_events": {
"creation_event": "cover"
},
"minecraft:emitter_shape_point": {
"direction": ["math.random(-1.55,1.55)", "math.random(-1.55,1.55)", "math.random(-1.55,1.55)"]
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": "math.random(0.35,0.95)"
},
"minecraft:particle_initial_spin": {
"rotation": "math.round(v.particle_random_4*3)*90"
},
"minecraft:particle_initial_speed": "math.random(3,8.5)*math.clamp(v.entity_height,1,1.5)",
"minecraft:particle_motion_dynamic": {
"linear_acceleration": ["(v.particle_random_1-0.5)*5", "4+(v.particle_random_2-0.5)*3", "(v.particle_random_3-0.5)*5"],
"linear_drag_coefficient": 3
},
"minecraft:particle_appearance_billboard": {
"size": ["(0.5-(v.particle_random_4*0.15))*v.fun", "(0.5-(v.particle_random_4*0.15))*v.fun"],
"facing_camera_mode": "rotate_xyz",
"uv": {
"texture_width": 160,
"texture_height": 16,
"flipbook": {
"base_UV": [16, 0],
"size_UV": [16, 16],
"step_UV": [16, 0],
"frames_per_second": 20,
"max_frame": 9
}
}
},
"minecraft:particle_motion_collision": {
"collision_drag": 10,
"collision_radius": 0.01
},
"minecraft:particle_appearance_tinting": {
"color": {
"interpolant": "v.particle_age / v.particle_lifetime",
"gradient": {
"0.0": "#FFFFA1A1",
"0.05": "#FFFFA1A1",
"0.2": "#FFFF3BF2",
"0.6": "#FF7C00FF",
"1.0": "#FF3E00C7"
}
}
}
}
}
}
@@ -1,78 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:dragonrage_targetcover",
"basic_render_parameters": {
"material": "particles_alpha",
"texture": "textures/particles/generic/fire/cloudyfire_white"
}
},
"curves": {
"variable.burstarc": {
"type": "linear",
"input": "v.emitter_age",
"horizontal_range": "v.emitter_lifetime",
"nodes": [0.06, 0.5, 0.78, 0.91, 0.97, 0.99, 0.96, 0.83, 0.55, 0.06]
},
"variable.fun": {
"type": "linear",
"input": "v.particle_age",
"horizontal_range": "v.particle_lifetime",
"nodes": [1, 1, 1, 1, 1, 1, 0.96, 0.85, 0.6, -0.05]
}
},
"components": {
"minecraft:emitter_rate_steady": {
"spawn_rate": "25*math.clamp(v.entity_height,1,2)",
"max_particles": 1000
},
"minecraft:emitter_lifetime_once": {
"active_time": 0.75
},
"minecraft:emitter_shape_sphere": {
"radius": "(v.entity_height*(0.7-(v.particle_random_4*0.15)))*math.clamp(v.entity_scale,0.5,1))",
"surface_only": true,
"direction": ["math.random(-0.45,0.45)", "math.random(-0.15,0.35)", "math.random(-0.45,0.45)"]
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": "math.random(0.45,0.75)"
},
"minecraft:particle_initial_spin": {
"rotation": "math.round(v.particle_random_4*3)*90"
},
"minecraft:particle_initial_speed": 1,
"minecraft:particle_motion_dynamic": {
"linear_acceleration": ["(v.particle_random_1-0.5)*4", "3+(v.particle_random_1-0.5)*2", "(v.particle_random_1-0.5)*4"],
"linear_drag_coefficient": 2
},
"minecraft:particle_appearance_billboard": {
"size": ["0.4*v.fun", "0.4*v.fun"],
"facing_camera_mode": "rotate_xyz",
"uv": {
"texture_width": 160,
"texture_height": 16,
"flipbook": {
"base_UV": [0, 0],
"size_UV": [16, 16],
"step_UV": [16, 0],
"frames_per_second": 20,
"max_frame": 10
}
}
},
"minecraft:particle_appearance_tinting": {
"color": {
"interpolant": "v.particle_age / v.particle_lifetime",
"gradient": {
"0.0": "#FFFFA1A1",
"0.05": "#FFFFA1A1",
"0.2": "#FFFF3BF2",
"0.6": "#FF7C00FF",
"1.0": "#FF3E00C7"
}
}
}
}
}
}
@@ -1,78 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:drainpunch_actor",
"basic_render_parameters": {
"material": "particles_blend",
"texture": "textures/particles/generic/orb/xsfadeorblite"
}
},
"curves": {
"variable.drainopen": {
"type": "linear",
"input": "v.particle_age",
"horizontal_range": "v.particle_lifetime",
"nodes": [0.35, 0.8, 0.98, 1, 1, 1, 1, 0.98, 0.9, 0.65, 0.01]
}
},
"events": {
"sparkle": {
"particle_effect": {
"effect": "cobblemon:megadrain_actortrail",
"type": "particle"
}
}
},
"components": {
"minecraft:emitter_rate_steady": {
"spawn_rate": 15,
"max_particles": 32
},
"minecraft:emitter_lifetime_looping": {
"active_time": 1.3
},
"minecraft:emitter_shape_point": {},
"minecraft:particle_lifetime_expression": {
"max_lifetime": 0.7
},
"minecraft:particle_lifetime_events": {
"timeline": {
"0.05": "sparkle",
"0.15": "sparkle",
"0.33": "sparkle",
"0.45": "sparkle"
}
},
"minecraft:particle_motion_parametric": {
"relative_position": ["(math.sin((v.particle_age*65)+(v.emitter_age*1523))*(0.75-(v.particle_age*(v.particle_age*1.7)))*v.drainopen)-(v.target_deltax*0.9)+((v.target_deltax * (v.particle_age / v.particle_lifetime))*0.95)", "(math.cos((v.particle_age*65)+(v.emitter_age*1523))*(0.75-(v.particle_age*(v.particle_age*1.7)))*v.drainopen)+(v.target_deltay*0.9)-((v.target_deltay * (v.particle_age / v.particle_lifetime))*0.95)", "-(v.target_deltaz*0.9)+((v.target_deltaz*(v.particle_age / v.particle_lifetime))*0.95)"]
},
"minecraft:particle_appearance_billboard": {
"size": [0.135, 0.135],
"facing_camera_mode": "rotate_xyz",
"uv": {
"texture_width": 45,
"texture_height": 5,
"flipbook": {
"base_UV": [0, 0],
"size_UV": [5, 5],
"step_UV": [5, 0],
"frames_per_second": 12,
"max_frame": 9
}
}
},
"minecraft:particle_appearance_tinting": {
"color": {
"interpolant": "v.particle_age / v.particle_lifetime",
"gradient": {
"0.0": "#8FC48F00",
"0.25": "#DFFFE74E",
"0.85": "#DFBDF700",
"1.0": "#4F65D000"
}
}
}
}
}
}
@@ -1,81 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:drainpunch_target",
"basic_render_parameters": {
"material": "particles_blend",
"texture": "textures/particles/generic/bigfist"
}
},
"curves": {
"variable.punch": {
"type": "linear",
"input": "v.particle_age",
"horizontal_range": "v.particle_lifetime",
"nodes": [0.54, 0.27, 0, 0.06, 0.1, 0.13, 0.15, 0.16, 0.16, 0.16, 0.16, 0.16, 0.16, 0.16, 0.16, 0.16, 0.16, 0.16, 0.16, 0.16, 0.16]
}
},
"events": {
"burst": {
"particle_effect": {
"effect": "cobblemon:drainpunch_targetburst",
"type": "emitter"
}
},
"ring": {
"particle_effect": {
"effect": "cobblemon:drainpunch_targetring",
"type": "emitter"
}
}
},
"components": {
"minecraft:emitter_rate_instant": {
"num_particles": 1
},
"minecraft:emitter_lifetime_looping": {
"active_time": 1
},
"minecraft:emitter_lifetime_events": {
"timeline": {
"0.05": ["burst", "ring"]
}
},
"minecraft:emitter_shape_point": {},
"minecraft:particle_lifetime_expression": {
"max_lifetime": 0.65
},
"minecraft:particle_initial_speed": 0,
"minecraft:particle_motion_dynamic": {},
"minecraft:particle_appearance_billboard": {
"size": ["0.6+v.punch", "0.6+v.punch"],
"facing_camera_mode": "rotate_xyz",
"uv": {
"texture_width": 270,
"texture_height": 30,
"flipbook": {
"base_UV": [0, 0],
"size_UV": [30, 30],
"step_UV": [30, 0],
"frames_per_second": 14,
"max_frame": 9
}
}
},
"minecraft:particle_appearance_tinting": {
"color": {
"interpolant": "v.particle_age / v.particle_lifetime",
"gradient": {
"0.0": "#FFFF7A00",
"0.2": "#FFFFA700",
"0.25": "#FFFFF390",
"0.43": "#FFFF7A00",
"0.65": "#FFB84100",
"1.0": "#005F1D00"
}
}
}
}
}
}
@@ -1,73 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:drainpunch_targetburst",
"basic_render_parameters": {
"material": "particles_alpha",
"texture": "textures/particles/generic/orb/xsfadeorblite"
}
},
"curves": {
"variable.scale": {
"type": "linear",
"input": "v.particle_age",
"horizontal_range": "v.particle_lifetime",
"nodes": [0, 1, 0.97, 0.94, 0.89, 0.83, 0.68, 0.52, 0.26, 0]
}
},
"components": {
"minecraft:emitter_rate_steady": {
"spawn_rate": 300,
"max_particles": 10000
},
"minecraft:emitter_lifetime_once": {
"active_time": 0.05
},
"minecraft:emitter_shape_point": {
"direction": ["(v.particle_random_1-0.5)*6", "(v.particle_random_2-0.5)*6", "(v.particle_random_3-0.5)*4"]
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": "math.random(0.5,0.8)"
},
"minecraft:particle_initial_spin": {
"rotation": "math.round(v.particle_random_2*3)*90"
},
"minecraft:particle_initial_speed": "(3+(v.particle_random_4*5))*3.5",
"minecraft:particle_motion_dynamic": {
"linear_acceleration": ["(v.particle_random_1-0.5)*12", "(v.particle_random_2-0.5)*12", "(v.particle_random_3-0.5)*12"],
"linear_drag_coefficient": 8
},
"minecraft:particle_appearance_billboard": {
"size": ["(0.1-(v.particle_random_4*0.06))*variable.scale", "(0.1-(v.particle_random_4*0.06))*variable.scale"],
"facing_camera_mode": "rotate_xyz",
"uv": {
"texture_width": 45,
"texture_height": 5,
"flipbook": {
"base_UV": [10, 0],
"size_UV": [5, 5],
"step_UV": [5, 0],
"frames_per_second": 16,
"max_frame": 7
}
}
},
"minecraft:particle_motion_collision": {
"collision_drag": 1,
"collision_radius": 0.01,
"expire_on_contact": true
},
"minecraft:particle_appearance_tinting": {
"color": {
"interpolant": "v.particle_age/v.particle_lifetime",
"gradient": {
"0.0": "#FFFF7A00",
"0.2": "#FFFFF390",
"1.0": "#FFFF7A00"
}
}
}
}
}
}
@@ -1,59 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:drainpunch_targetring",
"basic_render_parameters": {
"material": "particles_blend",
"texture": "textures/particles/generic/ring/xlring"
}
},
"curves": {
"variable.s": {
"type": "linear",
"input": "v.particle_age",
"horizontal_range": "v.particle_lifetime",
"nodes": [0, 0.56, 0.88, 0.98, 1, 1, 1, 1, 1]
}
},
"components": {
"minecraft:emitter_rate_instant": {
"num_particles": 1
},
"minecraft:emitter_lifetime_once": {
"active_time": 0.5
},
"minecraft:emitter_shape_point": {},
"minecraft:particle_lifetime_expression": {
"max_lifetime": 0.4
},
"minecraft:particle_initial_speed": 0,
"minecraft:particle_motion_dynamic": {},
"minecraft:particle_appearance_billboard": {
"size": ["1.05*v.s", "1.05*v.s"],
"facing_camera_mode": "emitter_transform_xy",
"uv": {
"texture_width": 200,
"texture_height": 25,
"flipbook": {
"base_UV": [50, 0],
"size_UV": [25, 25],
"step_UV": [25, 0],
"frames_per_second": 16,
"max_frame": 6
}
}
},
"minecraft:particle_appearance_tinting": {
"color": {
"interpolant": "v.particle_age / v.particle_lifetime",
"gradient": {
"0.0": "#FFFFF390",
"0.79": "#FFFF7A00",
"1.0": "#FFBA3800"
}
}
}
}
}
}
@@ -5,7 +5,7 @@
"identifier": "cobblemon:eruption_target",
"basic_render_parameters": {
"material": "particles_alpha",
"texture": "textures/particles/generic/burning_rock"
"texture": "textures/particles/vanilla/lava"
}
},
"curves": {
@@ -19,7 +19,7 @@
"type": "linear",
"input": "v.particle_age",
"horizontal_range": "v.particle_lifetime",
"nodes": [-0.04, 0.46, 0.8, 0.96, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
"nodes": [1, 1, 0.99, 0.97, 0.93, 0.83, 0.54, 0]
}
},
"events": {
@@ -47,7 +47,7 @@
"creation_expression": "v.target_deltaz=10;"
},
"minecraft:emitter_rate_steady": {
"spawn_rate": 10,
"spawn_rate": 25,
"max_particles": 1000
},
"minecraft:emitter_lifetime_once": {
@@ -55,7 +55,7 @@
},
"minecraft:emitter_shape_disc": {
"offset": [0, 9, "-v.target_deltaz*0.33"],
"radius": "math.clamp(v.entity_width,2,10)",
"radius": "math.clamp(v.entity_width,1.5,10)",
"direction": ["(v.particle_random_1-0.5)*0.3", "(-v.particle_random_2-0.55)*0.9", "(v.target_deltaz*0.05)+(v.particle_random_3-0.5)*0.3"]
},
"minecraft:particle_lifetime_expression": {
@@ -87,18 +87,18 @@
"linear_drag_coefficient": 1
},
"minecraft:particle_appearance_billboard": {
"size": ["((0.8-(v.particle_random_4*0.125))*v.quiver)*v.shrink", "((0.8-(v.particle_random_4*0.125))*v.quiver)*v.shrink"],
"size": ["((0.3-(v.particle_random_4*0.125))*v.quiver)*v.shrink", "((0.3-(v.particle_random_4*0.125))*v.quiver)*v.shrink"],
"facing_camera_mode": "rotate_xyz",
"uv": {
"texture_width": 32,
"texture_height": 192,
"uv": [0, "math.round(v.particle_random_4*5)*32"],
"uv_size": [32, 32]
"texture_width": 8,
"texture_height": 8,
"uv": [0, 0],
"uv_size": [8, 8]
}
},
"minecraft:particle_motion_collision": {
"collision_drag": 20,
"collision_radius": 0.2
"collision_radius": 0.1
},
"minecraft:particle_appearance_tinting": {
"color": {
@@ -38,7 +38,7 @@
},
"components": {
"minecraft:emitter_rate_steady": {
"spawn_rate": 600,
"spawn_rate": 400,
"max_particles": 10000
},
"minecraft:emitter_lifetime_once": {
@@ -18,13 +18,13 @@
},
"components": {
"minecraft:emitter_rate_instant": {
"num_particles": 2
"num_particles": 1
},
"minecraft:emitter_lifetime_once": {
"active_time": 0.4
},
"minecraft:emitter_shape_point": {
"offset": [0, -0.5, 0.25],
"offset": [0, 0, 0],
"direction": ["math.random(-1.55,1.55)*0.7", "math.random(-1.55,-0.55)", "math.random(-1.55,1.55)*0.7"]
},
"minecraft:particle_lifetime_expression": {
@@ -1,84 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:fairywind_actor",
"basic_render_parameters": {
"material": "particles_blend",
"texture": "textures/particles/vanilla/generic"
}
},
"curves": {
"variable.debrissize": {
"type": "linear",
"input": "v.particle_age",
"horizontal_range": "v.particle_lifetime",
"nodes": [0, 1, 1, 0.89, 0.59, 0]
}
},
"events": {
"sparkle": {
"particle_effect": {
"effect": "cobblemon:fairywind_actorspark",
"type": "particle"
}
}
},
"components": {
"minecraft:emitter_initialization": {
"creation_expression": "v.target_deltaz=5;"
},
"minecraft:emitter_rate_steady": {
"spawn_rate": 30,
"max_particles": 1000
},
"minecraft:emitter_lifetime_once": {
"active_time": 0.4
},
"minecraft:emitter_shape_sphere": {
"offset": ["-((v.target_deltax*0.8)*(v.emitter_age/v.emitter_lifetime))", "((v.target_deltay*0.8)*(v.emitter_age/v.emitter_lifetime))", "-((v.target_deltaz*0.8)*(v.emitter_age/v.emitter_lifetime))"],
"radius": "0.1+(v.emitter_age*2)",
"surface_only": true,
"direction": ["(math.random(-0.4,0.4))/((v.emitter_age+0.25)*5)", "(math.random(-0.3,0.3))+((v.target_deltay/v.target_deltaz)*1.1)", "math.random(-1.15, -0.95)"]
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": "math.random(0.6,0.7)*1.2"
},
"minecraft:particle_lifetime_events": {
"timeline": {
"0.07": "sparkle"
}
},
"minecraft:particle_initial_spin": {
"rotation": "math.random_integer(0,3)*90"
},
"minecraft:particle_initial_speed": "4-(v.emitter_age*4)",
"minecraft:particle_motion_dynamic": {
"linear_acceleration": [0, 2, 0],
"linear_drag_coefficient": 3
},
"minecraft:particle_appearance_billboard": {
"size": ["0.15*v.debrissize", "0.15*v.debrissize"],
"facing_camera_mode": "rotate_xyz",
"uv": {
"texture_width": 64,
"texture_height": 8,
"flipbook": {
"base_UV": [56, 0],
"size_UV": [8, 8],
"step_UV": [-8, 0],
"frames_per_second": 12,
"max_frame": 8
}
}
},
"minecraft:particle_motion_collision": {
"collision_radius": 0.01,
"expire_on_contact": true
},
"minecraft:particle_appearance_tinting": {
"color": [1, 0.75686, 0.97647, 0.62745]
}
}
}
}
@@ -1,65 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:fairywind_actorspark",
"basic_render_parameters": {
"material": "particles_alpha",
"texture": "textures/particles/generic/impact/impact_fairy"
}
},
"curves": {
"variable.scale": {
"type": "linear",
"input": "v.particle_age",
"horizontal_range": "v.particle_lifetime",
"nodes": [0, 0.73, 1, 0.96, 0.87, 0.61, 0]
}
},
"components": {
"minecraft:emitter_rate_instant": {
"num_particles": 1
},
"minecraft:emitter_lifetime_once": {
"active_time": 0.5
},
"minecraft:emitter_shape_sphere": {
"radius": 0.2,
"surface_only": true,
"direction": ["math.random(-0.4,0.4)", "(math.random(-0.2,0.2))+((v.target_deltay/v.target_deltaz)*1.1)", "math.random(-1.15, -0.95)"]
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": "0.5-(v.particle_random_4*0.1)"
},
"minecraft:particle_initial_speed": "math.clamp(v.target_deltaz*4,0,4)",
"minecraft:particle_motion_dynamic": {
"linear_drag_coefficient": 5
},
"minecraft:particle_appearance_billboard": {
"size": ["(0.125*v.scale)-(v.particle_random_4*0.075)", "(0.125*v.scale)-(v.particle_random_4*0.075)"],
"facing_camera_mode": "rotate_xyz",
"uv": {
"texture_width": 8,
"texture_height": 56,
"flipbook": {
"base_UV": [0, 0],
"size_UV": [8, 8],
"step_UV": [0, 8],
"frames_per_second": 16,
"max_frame": 7
}
}
},
"minecraft:particle_appearance_tinting": {
"color": {
"interpolant": "v.particle_age / v.particle_lifetime",
"gradient": {
"0.0": "#FFFFFFFF",
"0.33": "#ffffffff",
"1.0": "#FFFF80E7"
}
}
}
}
}
}
@@ -1,68 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:fairywind_target",
"basic_render_parameters": {
"material": "particles_blend",
"texture": "textures/particles/vanilla/generic"
}
},
"curves": {
"variable.debrissize": {
"type": "linear",
"input": "v.particle_age",
"horizontal_range": "v.particle_lifetime",
"nodes": [0, 1, 0.69, 0.35, 0]
}
},
"components": {
"minecraft:emitter_rate_steady": {
"spawn_rate": 200,
"max_particles": 100
},
"minecraft:emitter_lifetime_once": {
"active_time": 0.1
},
"minecraft:emitter_shape_sphere": {
"offset": [0, 0, "-0.4/math.clamp(q.entity_scale*1.1-0.1,1,9)"],
"radius": 0.1,
"surface_only": true,
"direction": "outwards"
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": "math.random(0.6,0.7)"
},
"minecraft:particle_initial_spin": {
"rotation": "math.random_integer(0,3)*90"
},
"minecraft:particle_initial_speed": "math.random(1.5,2.75)*2.85",
"minecraft:particle_motion_dynamic": {
"linear_acceleration": [0, 3, 0],
"linear_drag_coefficient": 4
},
"minecraft:particle_appearance_billboard": {
"size": ["0.2*v.debrissize", "0.2*v.debrissize"],
"facing_camera_mode": "rotate_xyz",
"uv": {
"texture_width": 64,
"texture_height": 8,
"flipbook": {
"base_UV": [56, 0],
"size_UV": [8, 8],
"step_UV": [-8, 0],
"frames_per_second": 12,
"max_frame": 8
}
}
},
"minecraft:particle_motion_collision": {
"collision_radius": 0.01,
"expire_on_contact": true
},
"minecraft:particle_appearance_tinting": {
"color": [1, 0.75686, 0.97647, 0.62745]
}
}
}
}
@@ -1,67 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:fairywind_targethit",
"basic_render_parameters": {
"material": "particles_alpha",
"texture": "textures/particles/generic/impact/impact_fairy"
}
},
"curves": {
"variable.scale": {
"type": "linear",
"input": "v.particle_age",
"horizontal_range": "v.particle_lifetime",
"nodes": [0, 0.73, 1, 0.96, 0.87, 0.61, 0]
}
},
"components": {
"minecraft:emitter_rate_steady": {
"spawn_rate": 20,
"max_particles": 8
},
"minecraft:emitter_lifetime_once": {
"active_time": 0.7
},
"minecraft:emitter_shape_sphere": {
"radius": 0.8,
"surface_only": true,
"direction": "outwards"
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": "0.5-(v.particle_random_4*0.1)"
},
"minecraft:particle_initial_speed": 0,
"minecraft:particle_motion_dynamic": {
"linear_acceleration": [0, 2, 0],
"linear_drag_coefficient": 5
},
"minecraft:particle_appearance_billboard": {
"size": ["(0.125*v.scale)-(v.particle_random_4*0.075)", "(0.125*v.scale)-(v.particle_random_4*0.075)"],
"facing_camera_mode": "rotate_xyz",
"uv": {
"texture_width": 8,
"texture_height": 56,
"flipbook": {
"base_UV": [0, 0],
"size_UV": [8, 8],
"step_UV": [0, 8],
"frames_per_second": 16,
"max_frame": 7
}
}
},
"minecraft:particle_appearance_tinting": {
"color": {
"interpolant": "v.particle_age / v.particle_lifetime",
"gradient": {
"0.0": "#FFFFFFFF",
"0.33": "#ffffffff",
"1.0": "#FFFF80E7"
}
}
}
}
}
}
@@ -1,67 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:firefang_target",
"basic_render_parameters": {
"material": "particles_blend",
"texture": "textures/particles/generic/bite"
}
},
"events": {
"event_sound": {
"sound_effect": {
"event_name": "cobblemon:move.bite.target"
}
}
},
"components": {
"minecraft:emitter_rate_instant": {
"num_particles": 1
},
"minecraft:emitter_lifetime_once": {
"active_time": 1
},
"minecraft:emitter_lifetime_events": {
"creation_event": "event_sound"
},
"minecraft:emitter_shape_point": {
"offset": [0, 0, -0.25]
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": 0.55
},
"minecraft:particle_initial_speed": 0,
"minecraft:particle_motion_dynamic": {},
"minecraft:particle_appearance_billboard": {
"size": [0.9, 0.9],
"facing_camera_mode": "rotate_xyz",
"uv": {
"texture_width": 32,
"texture_height": 320,
"flipbook": {
"base_UV": [0, 0],
"size_UV": [32, 32],
"step_UV": [0, 32],
"frames_per_second": 18,
"max_frame": 10
}
}
},
"minecraft:particle_appearance_tinting": {
"color": {
"interpolant": "v.particle_age / v.particle_lifetime",
"gradient": {
"0.0": "#00570000",
"0.12": "#FFFF3A00",
"0.38": "#FFFF3A00",
"0.44": "#FFFFD600",
"0.63": "#FFFF7400",
"0.82": "#E0C30000",
"1.0": "#003E0C00"
}
}
}
}
}
}
@@ -1,76 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:firefang_targetburst",
"basic_render_parameters": {
"material": "particles_alpha",
"texture": "textures/particles/generic/fire/cloudyfire_white"
}
},
"curves": {
"variable.fun": {
"type": "linear",
"input": "v.particle_age",
"horizontal_range": "v.particle_lifetime",
"nodes": [1, 1, 1, 1, 1, 0.96, 0.85, 0.6, -0.05]
}
},
"components": {
"minecraft:emitter_rate_steady": {
"spawn_rate": 150,
"max_particles": 10000
},
"minecraft:emitter_lifetime_once": {
"active_time": 0.1
},
"minecraft:emitter_shape_point": {
"direction": ["math.random(-1.75,1.75)", "math.random(-1.15,0.85)", "math.random(-0.65,0.65)*1.15"]
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": "math.random(0.65,0.95)"
},
"minecraft:particle_initial_spin": {
"rotation": "math.round(v.particle_random_4*3)*90"
},
"minecraft:particle_initial_speed": "(math.random(2,5.25)*math.clamp(v.entity_height,1,1.5))*1.85",
"minecraft:particle_motion_dynamic": {
"linear_acceleration": ["(v.particle_random_1-0.5)*5", "4+(v.particle_random_2-0.5)*3", "(v.particle_random_3-0.5)*5"],
"linear_drag_coefficient": 4
},
"minecraft:particle_appearance_billboard": {
"size": ["(0.5-(v.particle_random_4*0.15))*v.fun", "(0.5-(v.particle_random_4*0.15))*v.fun"],
"facing_camera_mode": "rotate_xyz",
"uv": {
"texture_width": 160,
"texture_height": 16,
"flipbook": {
"base_UV": [16, 0],
"size_UV": [16, 16],
"step_UV": [16, 0],
"frames_per_second": 20,
"max_frame": 9
}
}
},
"minecraft:particle_motion_collision": {
"collision_drag": 10,
"collision_radius": 0.01
},
"minecraft:particle_appearance_tinting": {
"color": {
"interpolant": "v.particle_age / v.particle_lifetime",
"gradient": {
"0.0": "#ffffffff",
"0.2": "#FFFFE872",
"0.4": "#FFFFCC00",
"0.55": "#FFFF9400",
"0.75": "#FFFF4700",
"0.9": "#FFFF4700",
"1.0": "#FF531C0E"
}
}
}
}
}
}
@@ -1,67 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:firefang_targetspark",
"basic_render_parameters": {
"material": "particles_blend",
"texture": "textures/particles/vanilla/critical_hit"
}
},
"curves": {
"variable.bitespark": {
"type": "linear",
"input": "v.particle_age",
"horizontal_range": "v.particle_lifetime",
"nodes": [0, 0.87, 1, 0.5, 0]
}
},
"components": {
"minecraft:emitter_rate_instant": {
"num_particles": 10
},
"minecraft:emitter_lifetime_looping": {
"active_time": 1
},
"minecraft:emitter_shape_sphere": {
"offset": [0, 0, -0.25],
"radius": 0.025,
"surface_only": true,
"direction": "outwards"
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": 0.35
},
"minecraft:particle_initial_speed": "math.random(1.75,4.55)*3",
"minecraft:particle_motion_dynamic": {
"linear_acceleration": [0, -5, 0],
"linear_drag_coefficient": 4
},
"minecraft:particle_appearance_billboard": {
"size": ["0.1*v.bitespark", "0.1*v.bitespark"],
"facing_camera_mode": "rotate_xyz",
"uv": {
"texture_width": 8,
"texture_height": 8,
"uv": [0, 0],
"uv_size": [7, 7]
}
},
"minecraft:particle_motion_collision": {
"collision_radius": 0.01,
"expire_on_contact": true
},
"minecraft:particle_appearance_tinting": {
"color": {
"interpolant": "v.particle_age / v.particle_lifetime",
"gradient": {
"0.0": "#FFFF3A00",
"0.23": "#FFFFAD00",
"0.6": "#FFFF3A00",
"1.0": "#FF9D2300"
}
}
}
}
}
}
@@ -25,7 +25,7 @@
"active_time": 0.9
},
"minecraft:emitter_shape_point": {
"offset": ["v.target_deltax*(v.emitter_age/v.emitter_lifetime)", "v.target_deltay*(v.emitter_age/v.emitter_lifetime)+(v.burstarc*0.7)", "-v.target_deltaz*(v.emitter_age/v.emitter_lifetime)"],
"offset": ["-v.target_deltax*(v.emitter_age/v.emitter_lifetime)", "v.target_deltay*(v.emitter_age/v.emitter_lifetime)+(v.burstarc*0.7)", "-v.target_deltaz*(v.emitter_age/v.emitter_lifetime)"],
"direction": ["math.random(-0.45,0.45)", "(v.burstarc/math.clamp(v.target_deltaz*0.5,1,4))+math.random(-0.45,0.45)-(v.target_deltay/v.target_deltaz)", "math.random(-2.05,-0.55)"]
},
"minecraft:particle_lifetime_expression": {
@@ -28,8 +28,7 @@
"active_time": 1
},
"minecraft:emitter_shape_point": {
"offset": [0, 0, 0],
"direction": ["(-v.target_deltax+((v.particle_random_1-0.5)*1.15))+(math.sin(v.emitter_age*360)*0.35)", "(v.target_deltay+((v.particle_random_2-0.5)*1.05))+(math.sin(v.emitter_age*540)*0.3)", "-v.target_deltaz"]
"direction": ["(-v.target_deltax+((v.particle_random_1-0.5)*1.05))+(math.sin(v.emitter_age*360)*0.25)", "(v.target_deltay+((v.particle_random_2-0.5)*0.95))+(math.sin(v.emitter_age*540)*0.2)", "-v.target_deltaz*1.05"]
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": "math.random(0.65,1.0)*1.4"
@@ -37,9 +36,9 @@
"minecraft:particle_initial_spin": {
"rotation": "math.round(v.particle_random_4*3)*90"
},
"minecraft:particle_initial_speed": "(v.target_deltaz*((v.particle_random_4+0.75)*1.25))*(math.clamp(v.target_deltaz,3,24)/2)",
"minecraft:particle_initial_speed": "(v.target_deltaz*math.random(0.65,2.05))*(math.clamp(v.target_deltaz,3,24)/2)",
"minecraft:particle_motion_dynamic": {
"linear_acceleration": ["(v.particle_random_3-0.5)*4", "3+(v.particle_random_4-0.5)*2", "(v.particle_random_2-0.5)*1"],
"linear_acceleration": ["(v.particle_random_1-0.5)*4", "3+(v.particle_random_2-0.5)*2", "(v.particle_random_3-0.5)*1"],
"linear_drag_coefficient": "math.clamp(v.target_deltaz,1,20)*(0.5+(math.clamp(v.target_deltaz,1,5)*0.05))"
},
"minecraft:particle_appearance_billboard": {
@@ -63,15 +62,15 @@
},
"minecraft:particle_appearance_tinting": {
"color": {
"interpolant": "(v.particle_age / v.particle_lifetime) * (v.particle_random_4+0.75)",
"interpolant": "v.particle_age / v.particle_lifetime",
"gradient": {
"0.0": "#FFB3F6FF",
"0.05": "#FFFFFFFF",
"0.15": "#FFFFE872",
"0.3": "#FFFFCC00",
"0.5": "#FFFF8700",
"0.0": "#ffffffff",
"0.2": "#FFFFE872",
"0.4": "#FFFFCC00",
"0.55": "#FFFF9400",
"0.75": "#FFFF4700",
"1.0": "#FFA31F00"
"0.9": "#FFFF4700",
"1.0": "#FF531C0E"
}
}
}
@@ -60,6 +60,7 @@
"minecraft:particle_motion_collision": {
"collision_radius": 0.1
},
"minecraft:particle_appearance_lighting": {},
"minecraft:particle_appearance_tinting": {
"color": {
"interpolant": "v.particle_age / v.particle_lifetime",
@@ -57,6 +57,7 @@
"minecraft:particle_motion_collision": {
"collision_radius": 0.1
},
"minecraft:particle_appearance_lighting": {},
"minecraft:particle_appearance_tinting": {
"color": {
"interpolant": "v.particle_age / v.particle_lifetime",
@@ -1,70 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:gust_actor",
"basic_render_parameters": {
"material": "particles_blend",
"texture": "textures/particles/vanilla/generic"
}
},
"curves": {
"variable.debrissize": {
"type": "linear",
"input": "v.particle_age",
"horizontal_range": "v.particle_lifetime",
"nodes": [0, 1, 1, 0.89, 0.59, 0]
}
},
"components": {
"minecraft:emitter_initialization": {
"creation_expression": "v.target_deltaz=5;"
},
"minecraft:emitter_rate_steady": {
"spawn_rate": 90,
"max_particles": 1000
},
"minecraft:emitter_lifetime_once": {
"active_time": 0.2
},
"minecraft:emitter_shape_point": {
"offset": ["-((v.target_deltax*0.5)*(v.emitter_age/v.emitter_lifetime))", "((v.target_deltay*0.5)*(v.emitter_age/v.emitter_lifetime))", "-((v.target_deltaz*0.5)*(v.emitter_age/v.emitter_lifetime))"],
"direction": ["(math.random(-1.1,1.1))/((v.emitter_age+0.25)*5)", "(math.random(-0.8,0.8))+((v.target_deltay/v.target_deltaz)*1.1)", "math.random(-1.15, -0.95)"]
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": "math.random(0.6,0.7)*1.2"
},
"minecraft:particle_initial_spin": {
"rotation": "math.random_integer(0,3)*90"
},
"minecraft:particle_initial_speed": "8-(v.emitter_age*4)",
"minecraft:particle_motion_dynamic": {
"linear_acceleration": [0, 2, 0],
"linear_drag_coefficient": 3
},
"minecraft:particle_appearance_billboard": {
"size": ["0.2*v.debrissize", "0.2*v.debrissize"],
"facing_camera_mode": "rotate_xyz",
"uv": {
"texture_width": 64,
"texture_height": 8,
"flipbook": {
"base_UV": [56, 0],
"size_UV": [8, 8],
"step_UV": [-8, 0],
"frames_per_second": 12,
"max_frame": 8
}
}
},
"minecraft:particle_motion_collision": {
"collision_radius": 0.01,
"expire_on_contact": true
},
"minecraft:particle_appearance_lighting": {},
"minecraft:particle_appearance_tinting": {
"color": [0.83529, 0.90196, 1, 0.62745]
}
}
}
}
@@ -1,69 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:gust_target",
"basic_render_parameters": {
"material": "particles_blend",
"texture": "textures/particles/vanilla/generic"
}
},
"curves": {
"variable.debrissize": {
"type": "linear",
"input": "v.particle_age",
"horizontal_range": "v.particle_lifetime",
"nodes": [0, 1, 0.69, 0.35, 0]
}
},
"components": {
"minecraft:emitter_rate_steady": {
"spawn_rate": 200,
"max_particles": 100
},
"minecraft:emitter_lifetime_once": {
"active_time": 0.1
},
"minecraft:emitter_shape_sphere": {
"offset": [0, 0, "-0.4/math.clamp(q.entity_scale*1.1-0.1,1,9)"],
"radius": 0.1,
"surface_only": true,
"direction": "outwards"
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": "math.random(0.6,0.7)"
},
"minecraft:particle_initial_spin": {
"rotation": "math.random_integer(0,3)*90"
},
"minecraft:particle_initial_speed": "math.random(2.5,3.25)*2.85",
"minecraft:particle_motion_dynamic": {
"linear_acceleration": [0, 3, 0],
"linear_drag_coefficient": 4
},
"minecraft:particle_appearance_billboard": {
"size": ["0.25*v.debrissize", "0.25*v.debrissize"],
"facing_camera_mode": "rotate_xyz",
"uv": {
"texture_width": 64,
"texture_height": 8,
"flipbook": {
"base_UV": [56, 0],
"size_UV": [8, 8],
"step_UV": [-8, 0],
"frames_per_second": 12,
"max_frame": 8
}
}
},
"minecraft:particle_motion_collision": {
"collision_radius": 0.01,
"expire_on_contact": true
},
"minecraft:particle_appearance_lighting": {},
"minecraft:particle_appearance_tinting": {
"color": [0.83529, 0.90196, 1, 0.62745]
}
}
}
}
@@ -1,52 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:gust_targethit",
"basic_render_parameters": {
"material": "particles_blend",
"texture": "textures/particles/vanilla/gust"
}
},
"components": {
"minecraft:emitter_rate_instant": {
"num_particles": 1
},
"minecraft:emitter_lifetime_once": {
"active_time": 1
},
"minecraft:emitter_shape_point": {
"offset": [0, 0, "-0.4/math.clamp(q.entity_scale*1.1-0.1,1,9)"]
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": 0.48
},
"minecraft:particle_appearance_billboard": {
"size": [1, 1],
"facing_camera_mode": "rotate_xyz",
"uv": {
"texture_width": 384,
"texture_height": 32,
"flipbook": {
"base_UV": [160, 0],
"size_UV": [32, 32],
"step_UV": [32, 0],
"frames_per_second": 24,
"max_frame": 7,
"stretch_to_lifetime": true
}
}
},
"minecraft:particle_appearance_lighting": {},
"minecraft:particle_appearance_tinting": {
"color": {
"interpolant": "v.particle_age / v.particle_lifetime",
"gradient": {
"0.0": "#B0EFFEFF",
"1.0": "#B0AFD0EF"
}
}
}
}
}
}
@@ -1,74 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:horndrill_spark",
"basic_render_parameters": {
"material": "particles_alpha",
"texture": "textures/particles/balls/afterspark"
}
},
"curves": {
"variable.scale": {
"type": "linear",
"input": "v.particle_age",
"horizontal_range": "v.particle_lifetime",
"nodes": [1, 0]
},
"variable.s": {
"type": "linear",
"input": "v.particle_age",
"horizontal_range": "v.particle_lifetime",
"nodes": [1, 1, 0.43, 0.12, 0]
}
},
"components": {
"minecraft:emitter_rate_steady": {
"spawn_rate": 60,
"max_particles": 400
},
"minecraft:emitter_lifetime_once": {
"active_time": 1.3
},
"minecraft:emitter_shape_sphere": {
"radius": 0.25,
"surface_only": true,
"direction": ["math.random(-3,3)", "math.random(-2,5)", "math.random(-1,1)"]
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": 0.7
},
"minecraft:particle_initial_speed": "math.random(5,8)*3",
"minecraft:particle_motion_dynamic": {
"linear_acceleration": [0, -8, 0],
"linear_drag_coefficient": 5
},
"minecraft:particle_appearance_billboard": {
"size": ["0.12*v.s", "0.12*v.s"],
"facing_camera_mode": "rotate_xyz",
"uv": {
"texture_width": 20,
"texture_height": 5,
"flipbook": {
"base_UV": [0, 0],
"size_UV": [5, 5],
"step_UV": [5, 0],
"frames_per_second": 8,
"max_frame": 4
}
}
},
"minecraft:particle_appearance_tinting": {
"color": {
"interpolant": "v.particle_age / v.particle_lifetime",
"gradient": {
"0.0": "#FFFFFFFF",
"0.32": "#ffffffff",
"0.73": "#FFFFF087",
"0.93": "#FFFFC986"
}
}
}
}
}
}
@@ -1,86 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:horndrill_target",
"basic_render_parameters": {
"material": "particles_alpha",
"texture": "textures/particles/generic/drill"
}
},
"curves": {
"variable.xt": {
"type": "linear",
"input": "v.particle_age",
"horizontal_range": "v.particle_lifetime",
"nodes": [-3.5, -3.49, -1.74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
},
"variable.s": {
"type": "linear",
"input": "v.particle_age",
"horizontal_range": "v.particle_lifetime",
"nodes": [0, 0, 0, 0.5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
}
},
"events": {
"sparks": {
"particle_effect": {
"effect": "cobblemon:horndrill_spark",
"type": "emitter"
}
}
},
"components": {
"minecraft:emitter_rate_instant": {
"num_particles": 1
},
"minecraft:emitter_lifetime_once": {
"active_time": 1
},
"minecraft:emitter_lifetime_events": {
"timeline": {
"0.15": "sparks"
}
},
"minecraft:emitter_shape_point": {
"offset": [0, 0.2, "math.max(-0.5 * q.entity_radius, -1)"]
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": 1.7
},
"minecraft:particle_motion_parametric": {
"relative_position": [0, 0, "-0.85+v.xt"],
"direction": [0, 0, 90]
},
"minecraft:particle_appearance_billboard": {
"size": ["1*v.s", "1*v.s"],
"facing_camera_mode": "lookat_direction",
"uv": {
"texture_width": 192,
"texture_height": 32,
"flipbook": {
"base_UV": [0, 0],
"size_UV": [32, 32],
"step_UV": [32, 0],
"frames_per_second": 28,
"max_frame": 6,
"loop": true
}
}
},
"minecraft:particle_appearance_tinting": {
"color": {
"interpolant": "v.particle_age / v.particle_lifetime",
"gradient": {
"0.56": "#FFFFFFFF",
"0.63": "#FFFFF96E",
"0.69": "#ffffffff",
"0.76": "#FFFFF96E",
"0.82": "#ffffffff",
"0.98": "#FFDC5D3D"
}
}
}
}
}
}
@@ -1,65 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:hydropump_actor",
"basic_render_parameters": {
"material": "particles_alpha",
"texture": "textures/particles/generic/water/giantsplash"
}
},
"curves": {
"variable.sx": {
"type": "linear",
"input": "v.particle_age",
"horizontal_range": "v.particle_lifetime",
"nodes": [0, 0.55, 0.9, 1, 1, 1, 1, 1, 1]
}
},
"components": {
"minecraft:emitter_rate_steady": {
"spawn_rate": 30,
"max_particles": 300
},
"minecraft:emitter_lifetime_once": {
"active_time": 0.75
},
"minecraft:emitter_shape_point": {},
"minecraft:particle_lifetime_expression": {
"max_lifetime": 0.45
},
"minecraft:particle_initial_spin": {
"rotation": "math.random_integer(0,3)*90"
},
"minecraft:particle_motion_parametric": {
"relative_position": ["((-v.target_deltax+((v.particle_random_1-0.5)*0.5))*(v.particle_age/v.particle_lifetime))*1", "((v.target_deltay+((v.particle_random_2-0.5)*0.5))*(v.particle_age/v.particle_lifetime))*1.3", "-0.2+((-v.target_deltaz*(v.particle_age/v.particle_lifetime))*(1.2+(v.particle_random_3*0.2)))"]
},
"minecraft:particle_appearance_billboard": {
"size": ["0.55*v.sx", "0.55*v.sx"],
"facing_camera_mode": "rotate_xyz",
"uv": {
"texture_width": 12,
"texture_height": 96,
"flipbook": {
"base_UV": [0, "0+math.round(v.particle_random_4*2)*12"],
"size_UV": [12, 12],
"step_UV": [0, 12],
"frames_per_second": 16,
"max_frame": 2,
"loop": true
}
}
},
"minecraft:particle_appearance_lighting": {},
"minecraft:particle_appearance_tinting": {
"color": {
"interpolant": "v.particle_age / v.particle_lifetime",
"gradient": {
"0.0": "#FF5FB6FF",
"1.0": "#ffffffff"
}
}
}
}
}
}
@@ -1,53 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:hydropump_actorpulse",
"basic_render_parameters": {
"material": "particles_blend",
"texture": "textures/particles/generic/ring/giantring_white"
}
},
"components": {
"minecraft:emitter_rate_instant": {
"num_particles": 1
},
"minecraft:emitter_lifetime_once": {
"active_time": 0.7
},
"minecraft:emitter_shape_point": {
"offset": ["v.target_deltax*0.1", "v.target_deltay*0.1", -0.2]
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": 0.6
},
"minecraft:particle_initial_speed": 0.01,
"minecraft:particle_motion_dynamic": {},
"minecraft:particle_appearance_billboard": {
"size": [1.8, 1.8],
"facing_camera_mode": "emitter_transform_xy",
"uv": {
"texture_width": 448,
"texture_height": 64,
"flipbook": {
"base_UV": [0, 0],
"size_UV": [64, 64],
"step_UV": [64, 0],
"frames_per_second": 14,
"max_frame": 7
}
}
},
"minecraft:particle_appearance_lighting": {},
"minecraft:particle_appearance_tinting": {
"color": {
"interpolant": "v.particle_age / v.particle_lifetime",
"gradient": {
"0.0": "#FF008AFF",
"1.0": "#FFACFCFF"
}
}
}
}
}
}
@@ -1,71 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:hydropump_target",
"basic_render_parameters": {
"material": "particles_blend",
"texture": "textures/particles/generic/water/giantsplash"
}
},
"curves": {
"variable.s": {
"type": "linear",
"input": "v.particle_age",
"horizontal_range": "v.particle_lifetime",
"nodes": [0, 0.85, 1, 1, 1, 1, 1, 1, 1, 0.95, 0.75]
}
},
"components": {
"minecraft:emitter_rate_steady": {
"spawn_rate": 90,
"max_particles": 100
},
"minecraft:emitter_lifetime_once": {
"active_time": 0.5
},
"minecraft:emitter_shape_point": {
"direction": ["(v.particle_random_1-0.5)*2", "(v.particle_random_2-0.5)*2", "-(v.particle_random_3-0.1)*0.75"]
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": 0.5
},
"minecraft:particle_initial_spin": {
"rotation": "math.random_integer(0,3)*90"
},
"minecraft:particle_initial_speed": "((v.particle_random_4*0.25)+1.75)*6",
"minecraft:particle_motion_dynamic": {
"linear_drag_coefficient": 4
},
"minecraft:particle_appearance_billboard": {
"size": ["0.55*v.s", "0.55*v.s"],
"facing_camera_mode": "rotate_xyz",
"uv": {
"texture_width": 12,
"texture_height": 96,
"flipbook": {
"base_UV": [0, 0],
"size_UV": [12, 12],
"step_UV": [0, 12],
"frames_per_second": 20,
"max_frame": 8
}
}
},
"minecraft:particle_motion_collision": {
"collision_radius": 0.01
},
"minecraft:particle_appearance_lighting": {},
"minecraft:particle_appearance_tinting": {
"color": {
"interpolant": "v.particle_age / v.particle_lifetime",
"gradient": {
"0.0": "#FFFFFFFF",
"0.65": "#ffffffff",
"1.0": "#00FFFFFF"
}
}
}
}
}
}
@@ -1,72 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:hydropump_targetburst",
"basic_render_parameters": {
"material": "particles_blend",
"texture": "textures/particles/generic/water/giantsplash"
}
},
"curves": {
"variable.sx": {
"type": "linear",
"input": "v.particle_age",
"horizontal_range": "v.particle_lifetime",
"nodes": [0, 0.85, 1, 1, 1, 1, 1, 1, 1, 1, 0.95, 0.55]
}
},
"components": {
"minecraft:emitter_rate_steady": {
"spawn_rate": 360,
"max_particles": 1000
},
"minecraft:emitter_lifetime_once": {
"active_time": 0.1
},
"minecraft:emitter_shape_point": {
"direction": ["(v.particle_random_1-0.5)*2", "(v.particle_random_2-0.5)*2", "-(v.particle_random_3-0.4)*0.95"]
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": 0.5
},
"minecraft:particle_initial_spin": {
"rotation": "math.random_integer(0,3)*90"
},
"minecraft:particle_initial_speed": "((v.particle_random_4*0.95)+1.05)*12",
"minecraft:particle_motion_dynamic": {
"linear_drag_coefficient": 4.5
},
"minecraft:particle_appearance_billboard": {
"size": ["0.55*v.sx", "0.55*v.sx"],
"facing_camera_mode": "rotate_xyz",
"uv": {
"texture_width": 12,
"texture_height": 96,
"flipbook": {
"base_UV": [0, 0],
"size_UV": [12, 12],
"step_UV": [0, 12],
"frames_per_second": 20,
"max_frame": 8
}
}
},
"minecraft:particle_motion_collision": {
"coefficient_of_restitution": 0.7,
"collision_radius": 0.01
},
"minecraft:particle_appearance_lighting": {},
"minecraft:particle_appearance_tinting": {
"color": {
"interpolant": "v.particle_age / v.particle_lifetime",
"gradient": {
"0.0": "#FFFFFFFF",
"0.65": "#ffffffff",
"1.0": "#00FFFFFF"
}
}
}
}
}
}
@@ -40,7 +40,7 @@
"0.25+(v.particle_age*0.5)",
"0.25+(v.particle_age*0.5)"
],
"facing_camera_mode": "emitter_transform_xy",
"facing_camera_mode": "rotate_xyz",
"uv": {
"texture_width": 117,
"texture_height": 13,
@@ -45,7 +45,7 @@
"0.75*v.spiralsize",
"0.75*v.spiralsize"
],
"facing_camera_mode": "emitter_transform_xy",
"facing_camera_mode": "rotate_xyz",
"uv": {
"texture_width": 192,
"texture_height": 24,
@@ -1,64 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:icefang_target",
"basic_render_parameters": {
"material": "particles_blend",
"texture": "textures/particles/generic/bite"
}
},
"events": {
"event_sound": {
"sound_effect": {
"event_name": "cobblemon:move.bite.target"
}
}
},
"components": {
"minecraft:emitter_rate_instant": {
"num_particles": 1
},
"minecraft:emitter_lifetime_once": {
"active_time": 1
},
"minecraft:emitter_lifetime_events": {
"creation_event": "event_sound"
},
"minecraft:emitter_shape_point": {
"offset": [0, 0, -0.25]
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": 0.55
},
"minecraft:particle_initial_speed": 0,
"minecraft:particle_motion_dynamic": {},
"minecraft:particle_appearance_billboard": {
"size": [0.9, 0.9],
"facing_camera_mode": "rotate_xyz",
"uv": {
"texture_width": 32,
"texture_height": 320,
"flipbook": {
"base_UV": [0, 0],
"size_UV": [32, 32],
"step_UV": [0, 32],
"frames_per_second": 18,
"max_frame": 10
}
}
},
"minecraft:particle_appearance_tinting": {
"color": {
"interpolant": "v.particle_age / v.particle_lifetime",
"gradient": {
"0.0": "#000045A3",
"0.12": "#FFADDCFF",
"0.54": "#FF269CFF",
"1.0": "#0000266F"
}
}
}
}
}
}
@@ -1,58 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:icefang_targetburst",
"basic_render_parameters": {
"material": "particles_alpha",
"texture": "textures/particles/generic/ice/iceshard"
}
},
"curves": {
"variable.scale": {
"type": "linear",
"input": "v.particle_age",
"horizontal_range": "v.particle_lifetime",
"nodes": [1, 0]
}
},
"components": {
"minecraft:emitter_rate_instant": {
"num_particles": 20
},
"minecraft:emitter_lifetime_once": {
"active_time": 0.5
},
"minecraft:emitter_shape_point": {
"direction": ["(v.particle_random_1-0.5)", "(v.particle_random_2-0.25)", "(v.particle_random_3-0.5)"]
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": "math.random(0.4, 0.65)"
},
"minecraft:particle_initial_spin": {
"rotation": "math.random(0,45)*8"
},
"minecraft:particle_initial_speed": "math.random(9.5,13.5)",
"minecraft:particle_motion_dynamic": {
"linear_acceleration": [0, -8, 0],
"linear_drag_coefficient": 4
},
"minecraft:particle_appearance_billboard": {
"size": ["(0.325-(v.particle_random_4*0.2)) * variable.scale", "(0.325-(v.particle_random_4*0.2)) * variable.scale"],
"facing_camera_mode": "rotate_xyz",
"uv": {
"texture_width": 42,
"texture_height": 14,
"uv": [28, 0],
"uv_size": [14, 14]
}
},
"minecraft:particle_motion_collision": {
"collision_drag": 0.5,
"coefficient_of_restitution": 1.5,
"collision_radius": 0.05
},
"minecraft:particle_appearance_lighting": {}
}
}
}
@@ -1,66 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:icefang_targetspark",
"basic_render_parameters": {
"material": "particles_blend",
"texture": "textures/particles/vanilla/critical_hit"
}
},
"curves": {
"variable.bitespark": {
"type": "linear",
"input": "v.particle_age",
"horizontal_range": "v.particle_lifetime",
"nodes": [0, 0.87, 1, 0.5, 0]
}
},
"components": {
"minecraft:emitter_rate_instant": {
"num_particles": 10
},
"minecraft:emitter_lifetime_looping": {
"active_time": 1
},
"minecraft:emitter_shape_sphere": {
"offset": [0, 0, -0.25],
"radius": 0.025,
"surface_only": true,
"direction": "outwards"
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": 0.35
},
"minecraft:particle_initial_speed": "math.random(1.75,4.55)*3",
"minecraft:particle_motion_dynamic": {
"linear_acceleration": [0, -5, 0],
"linear_drag_coefficient": 4
},
"minecraft:particle_appearance_billboard": {
"size": ["0.1*v.bitespark", "0.1*v.bitespark"],
"facing_camera_mode": "rotate_xyz",
"uv": {
"texture_width": 8,
"texture_height": 8,
"uv": [0, 0],
"uv_size": [7, 7]
}
},
"minecraft:particle_motion_collision": {
"collision_radius": 0.01,
"expire_on_contact": true
},
"minecraft:particle_appearance_tinting": {
"color": {
"interpolant": "v.particle_age / v.particle_lifetime",
"gradient": {
"0.0": "#FF269CFF",
"0.27": "#FFADDCFF",
"1.0": "#FF008BFF"
}
}
}
}
}
}
@@ -58,6 +58,7 @@
"collision_radius": 0.01,
"expire_on_contact": true
},
"minecraft:particle_appearance_lighting": {},
"minecraft:particle_appearance_tinting": {
"color": {
"interpolant": "v.particle_age / v.particle_lifetime",
@@ -59,6 +59,7 @@
"collision_radius": 0.01,
"expire_on_contact": true
},
"minecraft:particle_appearance_lighting": {},
"minecraft:particle_appearance_tinting": {
"color": {
"interpolant": "v.particle_age / v.particle_lifetime",
@@ -63,6 +63,7 @@
"minecraft:particle_motion_collision": {
"collision_radius": 0.1
},
"minecraft:particle_appearance_lighting": {},
"minecraft:particle_appearance_tinting": {
"color": {
"interpolant": "v.particle_age / v.particle_lifetime",
@@ -1,68 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:leafage_actor",
"basic_render_parameters": {
"material": "particles_alpha",
"texture": "textures/particles/generic/grass/razorleaf"
}
},
"curves": {
"variable.leafsize": {
"type": "linear",
"input": "v.particle_age",
"horizontal_range": "v.particle_lifetime",
"nodes": [0, 1, 1, 0.9, 0.6, 0]
}
},
"components": {
"minecraft:emitter_initialization": {
"creation_expression": "v.target_deltaz=5;"
},
"minecraft:emitter_rate_steady": {
"spawn_rate": 20,
"max_particles": 10000
},
"minecraft:emitter_lifetime_once": {
"active_time": 0.5
},
"minecraft:emitter_shape_point": {
"offset": ["-v.target_deltax * (v.emitter_age / v.emitter_lifetime)", "v.target_deltay * (v.emitter_age / v.emitter_lifetime)", "-v.target_deltaz * (v.emitter_age / v.emitter_lifetime)"],
"direction": ["math.sin(v.emitter_age*360*7.5)*(0.2+v.emitter_age*2)", "math.cos(v.emitter_age*360*7.5)*(0.2+v.emitter_age*2)", "(v.particle_random_3-1.5)*(1+v.emitter_age)"]
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": 0.6
},
"minecraft:particle_initial_spin": {
"rotation": "math.round(v.particle_random_4*3)*90"
},
"minecraft:particle_initial_speed": "(5+(v.particle_random_4*3))*1",
"minecraft:particle_motion_dynamic": {
"linear_drag_coefficient": 4
},
"minecraft:particle_appearance_billboard": {
"size": ["0.2*v.leafsize", "0.2*v.leafsize"],
"facing_camera_mode": "rotate_xyz",
"uv": {
"texture_width": 8,
"texture_height": 64,
"flipbook": {
"base_UV": [0, 0],
"size_UV": [8, 8],
"step_UV": [0, 8],
"frames_per_second": 11,
"max_frame": 7,
"loop": true
}
}
},
"minecraft:particle_motion_collision": {
"collision_drag": 0.4,
"coefficient_of_restitution": 0.4,
"collision_radius": 0.01
},
"minecraft:particle_appearance_lighting": {}
}
}
}
@@ -1,68 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:leafage_actorexcess",
"basic_render_parameters": {
"material": "particles_alpha",
"texture": "textures/particles/generic/grass/razorleaf"
}
},
"curves": {
"variable.leafsize": {
"type": "linear",
"input": "v.particle_age",
"horizontal_range": "v.particle_lifetime",
"nodes": [0, 1, 1, 0.9, 0.6, 0]
}
},
"components": {
"minecraft:emitter_initialization": {
"creation_expression": "v.target_deltaz=5;"
},
"minecraft:emitter_rate_steady": {
"spawn_rate": 20,
"max_particles": 10000
},
"minecraft:emitter_lifetime_once": {
"active_time": 0.4
},
"minecraft:emitter_shape_point": {
"offset": [0, 0, -0.1],
"direction": ["-math.sin(v.emitter_age*360*7.5)", "-math.cos(v.emitter_age*360*7.5)", "(v.particle_random_3-1)*1"]
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": 0.6
},
"minecraft:particle_initial_spin": {
"rotation": "math.round(v.particle_random_4*3)*90"
},
"minecraft:particle_initial_speed": "(3+(v.particle_random_4*4))*1.2",
"minecraft:particle_motion_dynamic": {
"linear_drag_coefficient": 4
},
"minecraft:particle_appearance_billboard": {
"size": ["0.2*v.leafsize", "0.2*v.leafsize"],
"facing_camera_mode": "rotate_xyz",
"uv": {
"texture_width": 8,
"texture_height": 64,
"flipbook": {
"base_UV": [0, 0],
"size_UV": [8, 8],
"step_UV": [0, 8],
"frames_per_second": 11,
"max_frame": 7,
"loop": true
}
}
},
"minecraft:particle_motion_collision": {
"collision_drag": 0.4,
"coefficient_of_restitution": 0.4,
"collision_radius": 0.01
},
"minecraft:particle_appearance_lighting": {}
}
}
}
@@ -1,66 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:leafage_target",
"basic_render_parameters": {
"material": "particles_alpha",
"texture": "textures/particles/generic/hit"
}
},
"events": {
"leaf": {
"particle_effect": {
"effect": "cobblemon:leafage_targetexcess",
"type": "emitter"
}
}
},
"components": {
"minecraft:emitter_rate_instant": {
"num_particles": 1
},
"minecraft:emitter_lifetime_once": {
"active_time": 1
},
"minecraft:emitter_lifetime_events": {
"creation_event": "leaf"
},
"minecraft:emitter_shape_point": {},
"minecraft:particle_lifetime_expression": {
"max_lifetime": 0.2
},
"minecraft:particle_initial_spin": {
"rotation": "math.round(v.particle_random_4*3)*90"
},
"minecraft:particle_initial_speed": 0,
"minecraft:particle_motion_dynamic": {},
"minecraft:particle_appearance_billboard": {
"size": [0.9, 0.9],
"facing_camera_mode": "rotate_xyz",
"uv": {
"texture_width": 32,
"texture_height": 160,
"flipbook": {
"base_UV": [0, 0],
"size_UV": [32, 32],
"step_UV": [0, 32],
"frames_per_second": 20,
"max_frame": 5,
"stretch_to_lifetime": true
}
}
},
"minecraft:particle_appearance_tinting": {
"color": {
"interpolant": "v.particle_age / v.particle_lifetime",
"gradient": {
"0.0": "#FFCAFF60",
"1.0": "#FF227700"
}
}
},
"minecraft:particle_appearance_lighting": {}
}
}
}
@@ -1,56 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:leafage_targetexcess",
"basic_render_parameters": {
"material": "particles_alpha",
"texture": "textures/particles/generic/impact/impact_grass"
}
},
"curves": {
"variable.scale": {
"type": "linear",
"input": "v.particle_age",
"horizontal_range": "v.particle_lifetime",
"nodes": [1, 0]
}
},
"components": {
"minecraft:emitter_rate_instant": {
"num_particles": 8
},
"minecraft:emitter_lifetime_once": {
"active_time": 1
},
"minecraft:emitter_shape_point": {},
"minecraft:particle_lifetime_expression": {
"max_lifetime": "math.random(0.4, 0.6)"
},
"minecraft:particle_initial_spin": {
"rotation": "math.random(0,360)"
},
"minecraft:particle_initial_speed": "math.random(8,13)",
"minecraft:particle_motion_dynamic": {
"linear_drag_coefficient": 5
},
"minecraft:particle_appearance_billboard": {
"size": ["0.25 * variable.scale", "0.25 * variable.scale"],
"facing_camera_mode": "rotate_xyz",
"uv": {
"texture_width": 8,
"texture_height": 56,
"flipbook": {
"base_UV": [0, 0],
"size_UV": [8, 8],
"step_UV": [0, 8],
"frames_per_second": 20,
"max_frame": 7,
"stretch_to_lifetime": true
}
}
},
"minecraft:particle_appearance_lighting": {}
}
}
}
@@ -1,55 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:leafstorm_actor",
"basic_render_parameters": {
"material": "particles_blend",
"texture": "textures/particles/generic/grass/leaf"
}
},
"curves": {
"variable.s": {
"type": "linear",
"input": "v.particle_age",
"horizontal_range": "v.particle_lifetime",
"nodes": [0, 0.49, 0.81, 0.93, 0.97, 0.99, 1, 1, 1, 1, 1, 0.98, 0.84, 0.49, 0]
}
},
"components": {
"minecraft:emitter_initialization": {
"creation_expression": "v.target_deltaz=5;"
},
"minecraft:emitter_rate_steady": {
"spawn_rate": 10,
"max_particles": 100
},
"minecraft:emitter_lifetime_once": {
"active_time": 0.7
},
"minecraft:emitter_shape_point": {},
"minecraft:particle_lifetime_expression": {
"max_lifetime": 0.85
},
"minecraft:particle_motion_parametric": {
"relative_position": ["(-math.sin((v.particle_age*360)+(v.emitter_age*1523))*0.65)-(v.target_deltax*(v.particle_age/v.particle_lifetime))*1.3", "(-math.cos((v.particle_age*360)+(v.emitter_age*1523))*0.65)+(v.target_deltay*(v.particle_age/v.particle_lifetime))*1.3", "(-v.target_deltaz*(v.particle_age/v.particle_lifetime))*1.3"]
},
"minecraft:particle_appearance_billboard": {
"size": ["(0.7-(v.particle_random_2*0.1))*v.s", "(0.7-(v.particle_random_2*0.1))*v.s"],
"facing_camera_mode": "rotate_xyz",
"uv": {
"texture_width": 16,
"texture_height": 64,
"flipbook": {
"base_UV": [0, 0],
"size_UV": [16, 16],
"step_UV": [0, 16],
"frames_per_second": 16,
"max_frame": 4,
"loop": true
}
}
}
}
}
}
@@ -1,80 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:leafstorm_actorexcess1",
"basic_render_parameters": {
"material": "particles_alpha",
"texture": "textures/particles/generic/grass/razorleaf"
}
},
"curves": {
"variable.leafsize": {
"type": "linear",
"input": "v.particle_age",
"horizontal_range": "v.particle_lifetime",
"nodes": [0, 0.52, 0.8, 0.95, 1, 1, 1, 1, 0.9, 0.6, 0]
}
},
"events": {
"event": {
"particle_effect": {
"effect": "cobblemon:leafstorm_actorwind",
"type": "emitter"
}
},
"excess2": {
"particle_effect": {
"effect": "cobblemon:leafstorm_actorexcess2",
"type": "emitter"
}
}
},
"components": {
"minecraft:emitter_rate_steady": {
"spawn_rate": 20,
"max_particles": 10000
},
"minecraft:emitter_lifetime_once": {
"active_time": 1
},
"minecraft:emitter_lifetime_events": {
"creation_event": ["event", "excess2"]
},
"minecraft:emitter_shape_point": {
"direction": ["math.sin(v.emitter_age*1953)", "math.cos(v.emitter_age*1953)", "(v.particle_random_3-0.5)"]
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": 0.7
},
"minecraft:particle_initial_spin": {
"rotation": "math.round(v.particle_random_4*3)*90"
},
"minecraft:particle_initial_speed": "(5+(v.particle_random_4*3))*2",
"minecraft:particle_motion_dynamic": {
"linear_drag_coefficient": 4
},
"minecraft:particle_appearance_billboard": {
"size": ["0.25*v.leafsize", "0.25*v.leafsize"],
"facing_camera_mode": "rotate_xyz",
"uv": {
"texture_width": 8,
"texture_height": 64,
"flipbook": {
"base_UV": [0, 0],
"size_UV": [8, 8],
"step_UV": [0, 8],
"frames_per_second": 11,
"max_frame": 7,
"loop": true
}
}
},
"minecraft:particle_motion_collision": {
"collision_drag": 0.4,
"coefficient_of_restitution": 0.4,
"collision_radius": 0.01
}
}
}
}
@@ -1,68 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:leafstorm_actorexcess2",
"basic_render_parameters": {
"material": "particles_alpha",
"texture": "textures/particles/generic/grass/razorleaf"
}
},
"curves": {
"variable.leafsize": {
"type": "linear",
"input": "v.particle_age",
"horizontal_range": "v.particle_lifetime",
"nodes": [0, 0.66, 0.92, 1, 1, 1, 1, 1, 0.98, 0.93, 0.84, 0.69, 0.43, 0]
}
},
"components": {
"minecraft:emitter_initialization": {
"creation_expression": "v.target_deltaz=5;v.target_deltay=0;v.target_deltax=0;"
},
"minecraft:emitter_rate_steady": {
"spawn_rate": 20,
"max_particles": 10000
},
"minecraft:emitter_lifetime_once": {
"active_time": 0.9
},
"minecraft:emitter_shape_point": {
"offset": ["-math.sin(v.emitter_age*1953)*1.4", "-math.cos(v.emitter_age*1953)*1.4", 0],
"direction": ["-v.target_deltax", "v.target_deltay", "-v.target_deltaz"]
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": 1
},
"minecraft:particle_initial_spin": {
"rotation": "math.round(v.particle_random_4*3)*90"
},
"minecraft:particle_initial_speed": "v.target_deltaz*2",
"minecraft:particle_motion_dynamic": {
"linear_acceleration": ["(v.particle_random_1-0.5)*5", "(v.particle_random_2-0.5)*5", "(v.particle_random_3-0.5)*2"],
"linear_drag_coefficient": "math.clamp(v.target_deltaz*0.2,0,1.2)"
},
"minecraft:particle_appearance_billboard": {
"size": ["0.3*v.leafsize", "0.3*v.leafsize"],
"facing_camera_mode": "rotate_xyz",
"uv": {
"texture_width": 8,
"texture_height": 64,
"flipbook": {
"base_UV": [0, 0],
"size_UV": [8, 8],
"step_UV": [0, 8],
"frames_per_second": 11,
"max_frame": 7,
"loop": true
}
}
},
"minecraft:particle_motion_collision": {
"collision_drag": 0.4,
"coefficient_of_restitution": 0.4,
"collision_radius": 0.01
}
}
}
}
@@ -1,74 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:leafstorm_actorwind",
"basic_render_parameters": {
"material": "particles_blend",
"texture": "textures/particles/generic/swirlingwind"
}
},
"curves": {
"variable.s": {
"type": "linear",
"input": "v.particle_age",
"horizontal_range": "v.particle_lifetime",
"nodes": [0, 0.49, 0.81, 0.93, 0.97, 0.99, 1, 1, 1, 1, 1, 1]
},
"variable.t": {
"type": "linear",
"input": "v.particle_age",
"horizontal_range": "v.particle_lifetime",
"nodes": [0, 0, 0, 0, 0.02, 0.07, 0.13, 0.19, 0.25, 0.32, 0.38, 0.44, 0.5, 0.56, 0.63, 0.69, 0.75, 0.82, 0.88, 0.94, 1, 1.06, 1.12, 1.18, 1.24]
}
},
"components": {
"minecraft:emitter_initialization": {
"creation_expression": "v.target_deltaz=5;"
},
"minecraft:emitter_rate_steady": {
"spawn_rate": 8,
"max_particles": 100
},
"minecraft:emitter_lifetime_once": {
"active_time": 0.8
},
"minecraft:emitter_shape_point": {},
"minecraft:particle_lifetime_expression": {
"max_lifetime": 0.6
},
"minecraft:particle_initial_spin": {
"rotation": "math.round(v.emitter_age*8)*90"
},
"minecraft:particle_motion_parametric": {
"relative_position": ["-v.target_deltax*v.t", "v.target_deltay*v.t", "-v.target_deltaz*v.t"]
},
"minecraft:particle_appearance_billboard": {
"size": ["(2-(v.particle_random_2*0.3))*v.s", "(2-(v.particle_random_2*0.3))*v.s"],
"facing_camera_mode": "emitter_transform_xy",
"uv": {
"texture_width": 864,
"texture_height": 32,
"flipbook": {
"base_UV": [0, 0],
"size_UV": [32, 32],
"step_UV": [32, 0],
"frames_per_second": 30,
"max_frame": 27
}
}
},
"minecraft:particle_appearance_tinting": {
"color": {
"interpolant": "v.particle_age / v.particle_lifetime",
"gradient": {
"0.0": "#0028AB00",
"0.15": "#D069FF25",
"0.82": "#D02BCA00",
"1.0": "#00249900"
}
}
}
}
}
}
@@ -1,64 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:leafstorm_target",
"basic_render_parameters": {
"material": "particles_alpha",
"texture": "textures/particles/generic/grass/razorleaf"
}
},
"curves": {
"variable.leafsize": {
"type": "linear",
"input": "v.particle_age",
"horizontal_range": "v.particle_lifetime",
"nodes": [0, 0.52, 0.8, 0.95, 1, 1, 0.9, 0.6, 0]
}
},
"components": {
"minecraft:emitter_rate_steady": {
"spawn_rate": 60,
"max_particles": 10000
},
"minecraft:emitter_lifetime_once": {
"active_time": 0.6
},
"minecraft:emitter_shape_point": {
"direction": ["(v.particle_random_1-0.5)*2", "(v.particle_random_2-0.5)*2", "(v.particle_random_3-0.5)"]
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": 0.6
},
"minecraft:particle_initial_spin": {
"rotation": "math.round(v.particle_random_4*3)*90"
},
"minecraft:particle_initial_speed": "(2+(v.particle_random_4*4))*2.5",
"minecraft:particle_motion_dynamic": {
"linear_acceleration": ["(v.particle_random_4-0.5)*12", "(v.particle_random_3-0.5)*12", "(v.particle_random_1-0.5)*12"],
"linear_drag_coefficient": 3
},
"minecraft:particle_appearance_billboard": {
"size": ["0.25*v.leafsize", "0.25*v.leafsize"],
"facing_camera_mode": "rotate_xyz",
"uv": {
"texture_width": 8,
"texture_height": 64,
"flipbook": {
"base_UV": [0, 0],
"size_UV": [8, 8],
"step_UV": [0, 8],
"frames_per_second": 11,
"max_frame": 7,
"loop": true
}
}
},
"minecraft:particle_motion_collision": {
"collision_drag": 0.4,
"coefficient_of_restitution": 0.4,
"collision_radius": 0.01
}
}
}
}
@@ -1,88 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:lightscreen_actor",
"basic_render_parameters": {
"material": "particles_blend",
"texture": "textures/particles/generic/screen_color"
}
},
"curves": {
"variable.s": {
"type": "linear",
"input": "v.particle_age",
"horizontal_range": "v.particle_lifetime",
"nodes": [0, 0.97, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.99, 0.97, 0.93]
}
},
"events": {
"border_1": {
"particle_effect": {
"effect": "cobblemon:lightscreen_actorborder1",
"type": "emitter"
}
},
"border_2": {
"particle_effect": {
"effect": "cobblemon:lightscreen_actorborder2",
"type": "emitter"
}
},
"side_1": {
"particle_effect": {
"effect": "cobblemon:lightscreen_actorside1",
"type": "emitter"
}
},
"side_2": {
"particle_effect": {
"effect": "cobblemon:lightscreen_actorside2",
"type": "emitter"
}
}
},
"components": {
"minecraft:emitter_rate_instant": {
"num_particles": 1
},
"minecraft:emitter_lifetime_once": {
"active_time": 1
},
"minecraft:emitter_lifetime_events": {
"creation_event": ["border_1", "border_2", "side_1", "side_2"]
},
"minecraft:emitter_shape_point": {
"offset": [0, 0, "-math.clamp(q.entity_width*0.5,0.5,1)"]
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": 1.1
},
"minecraft:particle_initial_speed": 0,
"minecraft:particle_motion_dynamic": {},
"minecraft:particle_appearance_billboard": {
"size": ["0.9375*v.s", "1.25*v.s"],
"facing_camera_mode": "emitter_transform_xy",
"uv": {
"texture_width": 15,
"texture_height": 20,
"uv": [0, 0],
"uv_size": [15, 20]
}
},
"minecraft:particle_appearance_tinting": {
"color": {
"interpolant": "v.particle_age / v.particle_lifetime",
"gradient": {
"0.0": "#00F7B9E1",
"0.06": "#FFFFC9EA",
"0.17": "#A5FF8AD5",
"0.54": "#A5F58AFF",
"0.8": "#8F7DC7FF",
"1.0": "#000078FF"
}
}
}
}
}
}
@@ -1,64 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:lightscreen_actorborder1",
"basic_render_parameters": {
"material": "particles_blend",
"texture": "textures/particles/generic/screen"
}
},
"curves": {
"variable.s": {
"type": "linear",
"input": "v.particle_age",
"horizontal_range": "v.particle_lifetime",
"nodes": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.99, 0.97, 0.93]
}
},
"components": {
"minecraft:emitter_rate_instant": {
"num_particles": 1
},
"minecraft:emitter_lifetime_once": {
"active_time": 1
},
"minecraft:emitter_shape_point": {
"offset": [0, 0, "-0.02-math.clamp(q.entity_width*0.5,0.5,1)"]
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": 1.1
},
"minecraft:particle_initial_speed": 0,
"minecraft:particle_motion_dynamic": {},
"minecraft:particle_appearance_billboard": {
"size": ["0.9375*v.s", "1.25*v.s"],
"facing_camera_mode": "emitter_transform_xy",
"uv": {
"texture_width": 180,
"texture_height": 20,
"flipbook": {
"base_UV": [0, 0],
"size_UV": [15, 20],
"step_UV": [15, 0],
"frames_per_second": 16,
"max_frame": 12
}
}
},
"minecraft:particle_appearance_tinting": {
"color": {
"interpolant": "v.particle_age / v.particle_lifetime",
"gradient": {
"0.0": "#00FFFFFF",
"0.05": "#00FFC9EA",
"0.13": "#E0FFDCF1",
"0.43": "#E0FF92FD",
"0.8": "#DF77D2FF",
"1.0": "#000078FF"
}
}
}
}
}
}
@@ -1,64 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:lightscreen_actorborder2",
"basic_render_parameters": {
"material": "particles_blend",
"texture": "textures/particles/generic/screen"
}
},
"curves": {
"variable.s": {
"type": "linear",
"input": "v.particle_age",
"horizontal_range": "v.particle_lifetime",
"nodes": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.99, 0.97, 0.93]
}
},
"components": {
"minecraft:emitter_rate_instant": {
"num_particles": 1
},
"minecraft:emitter_lifetime_once": {
"active_time": 1
},
"minecraft:emitter_shape_point": {
"offset": [0, 0, "0.02-math.clamp(q.entity_width*0.5,0.5,1)"]
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": 1.1
},
"minecraft:particle_initial_speed": 0,
"minecraft:particle_motion_dynamic": {},
"minecraft:particle_appearance_billboard": {
"size": ["0.9375*v.s", "1.25*v.s"],
"facing_camera_mode": "emitter_transform_xy",
"uv": {
"texture_width": 180,
"texture_height": 20,
"flipbook": {
"base_UV": [0, 0],
"size_UV": [15, 20],
"step_UV": [15, 0],
"frames_per_second": 16,
"max_frame": 12
}
}
},
"minecraft:particle_appearance_tinting": {
"color": {
"interpolant": "v.particle_age / v.particle_lifetime",
"gradient": {
"0.0": "#00FFFFFF",
"0.05": "#00FFC9EA",
"0.13": "#E0FFDCF1",
"0.43": "#E0FF92FD",
"0.8": "#DF77D2FF",
"1.0": "#000078FF"
}
}
}
}
}
}
@@ -1,67 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:lightscreen_actoreffect",
"basic_render_parameters": {
"material": "particles_alpha",
"texture": "textures/particles/generic/sparkle/sparkle"
}
},
"curves": {
"variable.crtrailsize": {
"type": "linear",
"input": "v.particle_age",
"horizontal_range": "v.particle_lifetime",
"nodes": [0, 0.67, 1, 1, 0.95, 0.9, 0.7, 0.5, 0.25, 0]
}
},
"components": {
"minecraft:emitter_rate_steady": {
"spawn_rate": 15,
"max_particles": 100
},
"minecraft:emitter_lifetime_once": {
"active_time": 0.65
},
"minecraft:emitter_shape_box": {
"offset": [0, 0, "-0.1-math.clamp(q.entity_width*0.5,0.5,1)"],
"half_dimensions": [0.9375, 1.25, 0],
"direction": ["(v.particle_random_1-0.5)*0.25", "((v.particle_random_2+0.25)*0.33)", "(v.particle_random_3-0.5)*0.25"]
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": "0.5+(v.particle_random_4*0.1)"
},
"minecraft:particle_initial_speed": "0.45-(v.particle_random_4*0.05)",
"minecraft:particle_motion_dynamic": {
"linear_drag_coefficient": "(v.particle_random_4+0.1)"
},
"minecraft:particle_appearance_billboard": {
"size": ["(0.125-(v.particle_random_4*0.04))*(v.crtrailsize)", "(0.125-(v.particle_random_4*0.04))*(v.crtrailsize)"],
"facing_camera_mode": "rotate_xyz",
"uv": {
"texture_width": 8,
"texture_height": 16,
"flipbook": {
"base_UV": [0, 0],
"size_UV": [7, 7],
"step_UV": [0, 8],
"frames_per_second": 3,
"max_frame": 2
}
}
},
"minecraft:particle_appearance_tinting": {
"color": {
"interpolant": "v.particle_age / v.particle_lifetime",
"gradient": {
"0.0": "#FF97EAFF",
"0.23": "#FFFFFFFF",
"0.75": "#FF99F0FF",
"1.0": "#FF00ACFF"
}
}
}
}
}
}
@@ -1,59 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:lightscreen_actorside1",
"basic_render_parameters": {
"material": "particles_blend",
"texture": "textures/particles/generic/screen"
}
},
"curves": {
"variable.s": {
"type": "linear",
"input": "v.particle_age",
"horizontal_range": "v.particle_lifetime",
"nodes": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.99, 0.97, 0.93]
}
},
"components": {
"minecraft:emitter_rate_instant": {
"num_particles": 1
},
"minecraft:emitter_lifetime_once": {
"active_time": 1
},
"minecraft:emitter_shape_point": {
"offset": [0, 0, "-0.01-math.clamp(q.entity_width*0.5,0.5,1)"]
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": 1.1
},
"minecraft:particle_initial_speed": 0,
"minecraft:particle_motion_dynamic": {},
"minecraft:particle_appearance_billboard": {
"size": ["0.9375*v.s", "1.25*v.s"],
"facing_camera_mode": "emitter_transform_xy",
"uv": {
"texture_width": 180,
"texture_height": 20,
"uv": [0, 0],
"uv_size": [15, 20]
}
},
"minecraft:particle_appearance_tinting": {
"color": {
"interpolant": "v.particle_age / v.particle_lifetime",
"gradient": {
"0.0": "#00FFFFFF",
"0.05": "#00FFC9EA",
"0.13": "#E0FFDCF1",
"0.43": "#E0FF92FD",
"0.8": "#DF77D2FF",
"1.0": "#000078FF"
}
}
}
}
}
}
@@ -1,59 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:lightscreen_actorside2",
"basic_render_parameters": {
"material": "particles_blend",
"texture": "textures/particles/generic/screen"
}
},
"curves": {
"variable.s": {
"type": "linear",
"input": "v.particle_age",
"horizontal_range": "v.particle_lifetime",
"nodes": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.99, 0.97, 0.93]
}
},
"components": {
"minecraft:emitter_rate_instant": {
"num_particles": 1
},
"minecraft:emitter_lifetime_once": {
"active_time": 1
},
"minecraft:emitter_shape_point": {
"offset": [0, 0, "0.01-math.clamp(q.entity_width*0.5,0.5,1)"]
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": 1.1
},
"minecraft:particle_initial_speed": 0,
"minecraft:particle_motion_dynamic": {},
"minecraft:particle_appearance_billboard": {
"size": ["0.9375*v.s", "1.25*v.s"],
"facing_camera_mode": "emitter_transform_xy",
"uv": {
"texture_width": 180,
"texture_height": 20,
"uv": [0, 0],
"uv_size": [15, 20]
}
},
"minecraft:particle_appearance_tinting": {
"color": {
"interpolant": "v.particle_age / v.particle_lifetime",
"gradient": {
"0.0": "#00FFFFFF",
"0.05": "#00FFC9EA",
"0.13": "#E0FFDCF1",
"0.43": "#E0FF92FD",
"0.8": "#DF77D2FF",
"1.0": "#000078FF"
}
}
}
}
}
}
@@ -104,8 +104,7 @@
},
"cobblemon:emitter_space": {
"scaling": "entity"
},
"minecraft:particle_appearance_lighting": {}
}
}
}
}
@@ -92,8 +92,7 @@
},
"cobblemon:emitter_space": {
"scaling": "entity"
},
"minecraft:particle_appearance_lighting": {}
}
}
}
}
@@ -94,8 +94,7 @@
},
"cobblemon:emitter_space": {
"scaling": "entity"
},
"minecraft:particle_appearance_lighting": {}
}
}
}
}
@@ -108,8 +108,7 @@
},
"cobblemon:emitter_space": {
"scaling": "entity"
},
"minecraft:particle_appearance_lighting": {}
}
}
}
}
@@ -1,58 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:nightshade_actor",
"basic_render_parameters": {
"material": "particles_alpha",
"texture": "textures/particles/generic/electricity/bolt_black"
}
},
"curves": {
"variable.fade": {
"type": "linear",
"input": "v.particle_age",
"horizontal_range": "v.particle_lifetime",
"nodes": [0.5, 1.2, 0.85, 0.49, 1, 0.75, 0.5, 0.25, 0, 0, 0.45, 0.23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
},
"variable.send": {
"type": "linear",
"input": "v.particle_age",
"horizontal_range": "v.particle_lifetime",
"nodes": [0, 1, 1, 1, 1, 1, 1, 1, 1]
}
},
"components": {
"minecraft:emitter_rate_instant": {
"num_particles": 1
},
"minecraft:emitter_lifetime_once": {
"active_time": 0.75
},
"minecraft:emitter_shape_point": {
"direction": ["-v.target_deltax", "v.target_deltay", "-v.target_deltaz"]
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": "0.3+(v.emitter_lifetime-v.emitter_age)"
},
"minecraft:particle_initial_speed": 0.02,
"minecraft:particle_motion_dynamic": {},
"minecraft:particle_appearance_billboard": {
"size": ["(v.send*1.5)*v.target_distance", "(0.25*v.fade)"],
"facing_camera_mode": "lookat_direction",
"uv": {
"texture_width": 114,
"texture_height": 176,
"flipbook": {
"base_UV": [0, 0],
"size_UV": [114, 16],
"step_UV": [0, 16],
"frames_per_second": 45,
"max_frame": 11,
"loop": true
}
}
}
}
}
}
@@ -1,52 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:nightshade_actorpulse1",
"basic_render_parameters": {
"material": "particles_blend",
"texture": "textures/particles/generic/ring/giantring_white"
}
},
"components": {
"minecraft:emitter_rate_instant": {
"num_particles": 1
},
"minecraft:emitter_lifetime_once": {
"active_time": 0.25
},
"minecraft:emitter_shape_point": {
"offset": ["v.target_deltax*0.05", "v.target_deltay*0.05", -0.25]
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": 0.53
},
"minecraft:particle_initial_speed": 0.01,
"minecraft:particle_motion_dynamic": {},
"minecraft:particle_appearance_billboard": {
"size": ["math.clamp(q.entity_width*1.33,1.75,3.5)", "math.clamp(q.entity_width*1.33,1.75,3.5)"],
"facing_camera_mode": "emitter_transform_xy",
"uv": {
"texture_width": 448,
"texture_height": 64,
"flipbook": {
"base_UV": [0, 0],
"size_UV": [64, 64],
"step_UV": [64, 0],
"frames_per_second": 14,
"max_frame": 7
}
}
},
"minecraft:particle_appearance_tinting": {
"color": {
"interpolant": "v.particle_age / v.particle_lifetime",
"gradient": {
"0.0": "#FF002BFF",
"1.0": "#FF1C0050"
}
}
}
}
}
}
@@ -1,52 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:nightshade_actorpulse2",
"basic_render_parameters": {
"material": "particles_blend",
"texture": "textures/particles/generic/ring/giantring_white"
}
},
"components": {
"minecraft:emitter_rate_instant": {
"num_particles": 1
},
"minecraft:emitter_lifetime_once": {
"active_time": 0.25
},
"minecraft:emitter_shape_point": {
"offset": ["v.target_deltax*0.2", "v.target_deltay*0.2", -0.6]
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": 0.53
},
"minecraft:particle_initial_speed": 0.01,
"minecraft:particle_motion_dynamic": {},
"minecraft:particle_appearance_billboard": {
"size": ["math.clamp(q.entity_width*1.33,1.75,3.5)*0.75", "math.clamp(q.entity_width*1.33,1.75,3.5)*0.75"],
"facing_camera_mode": "emitter_transform_xy",
"uv": {
"texture_width": 448,
"texture_height": 64,
"flipbook": {
"base_UV": [0, 0],
"size_UV": [64, 64],
"step_UV": [64, 0],
"frames_per_second": 14,
"max_frame": 7
}
}
},
"minecraft:particle_appearance_tinting": {
"color": {
"interpolant": "v.particle_age / v.particle_lifetime",
"gradient": {
"0.0": "#FF002BFF",
"1.0": "#FF1C0050"
}
}
}
}
}
}
Loaded 100 of 1245 files, more files were not shown because too many files have changed in this diff. Show more