Compare commits

..
Author SHA1 Message Date
Landon Wills e52d007e6e This should avoid some unnecessary animation overhead 2026-11-12 15:26:38 -05:00
Landon Wills 1110c62b14 Fix particles that use local space and are bound to pokemon locators 2026-11-12 15:24:39 -05:00
Landon Wills 7ff0585e49 Add is_alive molang function. Useful to terminate particles 2026-11-12 15:01:53 -05:00
Hiroku 99e72339db Remove rogue println, closes #2147 2026-11-08 10:32:42 +10:00
Hiroku 10c9931d2c Merge branch 'weight-tweak-tweak' into 'main'
add `spawnable_position` to weight rule component's "weight" expression

Closes #2145

See merge request cable-mc/cobblemon!2521
2026-11-07 08:20:09 +00:00
Hiroku 0e55165570 Merge branch 'main' into 'main'
Main - fixs #2142, unown name issue.

See merge request cable-mc/cobblemon!2523
2026-11-07 08:19:02 +00:00
Matthew Baerg b6b87621a5 Update file CHANGELOG.md 2026-11-07 04:42:37 +00:00
Matthew Baerg 71b01d562b Update file CHANGELOG.md 2026-11-07 04:39:00 +00:00
Matthew Baerg 21eb66e69b Update file unown.json 2026-11-07 03:31:36 +00:00
Matthew Baerg 8b04e57a1d Update file unown.json 2026-11-07 02:35:21 +00:00
Hiroku 1ff3b7ee96 Updated molang dep for some library fixes 2026-11-07 12:07:03 +10:00
spacky 8a2d6096e3 update changelog 2026-11-03 09:02:01 -08:00
spacky 2645b5e375 add spawnable_position to weight rule component's "weight" expression 2026-11-03 08:03:14 -08:00
Polymeta 99e0a26d7b Merge branch 'compat-improvements' into 'main'
teeny fixes to compat

See merge request cable-mc/cobblemon!2520
2026-11-02 09:17:39 +00:00
dhi_holo 71753df513 Leftovers
Also a slight fix to the order in changelog
2026-11-02 13:30:23 +10:00
dhi_holo 729f080f6e Merge branch 'main' into compat-improvements 2026-11-02 13:26:43 +10:00
dhi_holo 13eb57afb1 category fix
Fixing one recipe category I missed teehee
2026-11-02 13:23:42 +10:00
154 changed files with 5486 additions and 4167 deletions

No files matched your search

+9
View File
@@ -9,19 +9,28 @@
### Changes
- Amethyst now grows from Typegem core blocks like typegems do
- Updated the recipe category for the Create compatibility EXP Candy recipe
- Added No Man's Lands' Honeyed Apple to the Leaves Leftovers tag
- Updated Unown's punctuation form names from `!` and `?` to `Exclamation` and `Question`, changing their visible form labels in tooltips and mod integrations.
### Fixes
- Fixed Ponigiri food values for AppleSkin integration
- Fixed errors emitted by typos in Parched Peat bog structure files
- Fixed Unown punctuation forms (? and !) resolving to duplicate Showdown IDs and colliding in form displays.
### Developer
- Fixed JsonArray to MoValue conversion not working properly.
### Molang & Datapacks
- `q.is_standing_on_blocks` now properly checks for non-full blocks like slabs, Mud or Soul Sand
- Added Molang functions to play footstep sounds based on the corresponding surface. These are intended to be used by Pokémon animations.
- Pokémon can now have their Minecraft footstep sounds silenced in their poser. This doesn't affect emitting game events.
- Fixed the Molang coalescing operator not working the way you'd expect a coalesce operator to.
- Added `v.spawnable_position` to the weight spawn rule component's "weight" expression
- Added `is_alive` function to entities. Can be useful for terminating particles bound to them.
### Particles
- Fixed local space settings for particles that are attached to Pokemon locators. Should fix a lot of jitters and rotation issues.
### Localization
- Updated translations for:
@@ -266,6 +266,9 @@ object EntityMoLangFunctions : AbstractMoLangFunctionHolder<Entity>() {
entity.noPhysics = intangible
DoubleValue.ONE
}
functions["is_alive"] = { params ->
if (entity.isAlive) DoubleValue.ONE else DoubleValue.ZERO
}
when (entity) {
is PosableEntity -> {
@@ -41,6 +41,7 @@ class WeightTweakRuleComponent : SpawnRuleComponent {
return if (spawnDetailSelector.selects(detail) && spawnablePositionSelector.selects(spawnablePosition)) {
runtime.environment.setSimpleVariable("spawn", detail.struct)
runtime.environment.setSimpleVariable("spawn_detail", detail.struct)
runtime.environment.setSimpleVariable("spawnable_position", spawnablePosition.getOrSetupStruct())
runtime.environment.setSimpleVariable("weight", DoubleValue(weight.toDouble()))
runtime.resolveFloat(this.weight)
} else {
@@ -169,7 +169,6 @@ class TypeGemCoreBlock(properties: Properties) : Block(properties) {
if (fullClusterCount == 0) {
if (gemCount < Cobblemon.config.typeGemMinGrowth && clusters.isNotEmpty()) {
println("Force set a cluster to FULL at size $gemCount")
val randomCluster = clusters.random()
level.setBlockAndUpdate(randomCluster.second, randomCluster.first.setValue(GROWTH_TYPE, GrowthType.FULL))
}
@@ -15,7 +15,9 @@ import com.cobblemon.mod.common.ModAPI
import com.cobblemon.mod.common.api.snowstorm.ParticleMaterial
import com.cobblemon.mod.common.api.snowstorm.ParticleMaterials
import com.cobblemon.mod.common.api.snowstorm.UVDetails
import com.cobblemon.mod.common.client.MountedPokemonAnimationRenderController
import com.cobblemon.mod.common.client.particle.ParticleStorm
import com.cobblemon.mod.common.entity.pokemon.PokemonEntity
import com.cobblemon.mod.common.util.math.geometry.transformDirection
import com.cobblemon.mod.common.util.resolveBoolean
import com.cobblemon.mod.common.util.resolveDouble
@@ -140,6 +142,19 @@ class SnowstormParticle(
}
}
/* Without this, locators will lag behind the animation because particles render before Pokemon.
* This is important for particles attached to locators using local position/rotation.
*
* In the future, we may want to make `MountedPokemonAnimationRenderController` a more
* generic utility for bedrock models if we see a case where other non-pokemon models (ie. NPCs)
* should emit particles in their animations that utilise local space.
*/
storm.entity?.let {
if (storm.effect.space.localPosition && it is PokemonEntity) {
MountedPokemonAnimationRenderController.setup(it, tickDelta)
}
}
applyRandoms()
setParticleAgeInRuntime()
storm.effect.curves.forEach { it.apply(runtime) }
@@ -147,11 +162,16 @@ class SnowstormParticle(
val vec3d = camera.position
// Interpolate because we are often between the ticks where these positions update.
val interpLocalX = Mth.lerp(tickDelta.toDouble(), prevLocalX, localX)
val interpLocalY = Mth.lerp(tickDelta.toDouble(), prevLocalY, localY)
val interpLocalZ = Mth.lerp(tickDelta.toDouble(), prevLocalZ, localZ)
val pos = if (storm.effect.space.localRotation) {
val pos = if (storm.effect.space.localPosition && storm.effect.space.localRotation) {
val vec = Vec3(interpLocalX, interpLocalY, interpLocalZ)
val rotated = storm.attachedMatrix.matrix.transformDirection(vec)
Vector3d(rotated.x, rotated.y, rotated.z)
} else if (storm.effect.space.localRotation) {
val interpRotation = Mth.lerp(tickDelta.toDouble(), 0.0, currentRotation.angle)
val vec = Vector3d(interpLocalX, interpLocalY, interpLocalZ)
oldAxisRotation.transform(vec)
@@ -160,9 +180,11 @@ class SnowstormParticle(
Vector3d(interpLocalX, interpLocalY, interpLocalZ)
}
val f = (pos.x + originPos.x - vec3d.x()).toFloat()
val g = (pos.y + originPos.y - vec3d.y()).toFloat()
val h = (pos.z + originPos.z - vec3d.z()).toFloat()
val origin = if (storm.effect.space.localPosition) storm.attachedMatrix.getOrigin() else originPos
val f = (pos.x + origin.x - vec3d.x()).toFloat()
val g = (pos.y + origin.y - vec3d.y()).toFloat()
val h = (pos.z + origin.z - vec3d.z()).toFloat()
val quaternion = storm.effect.particle.cameraMode.getRotation(
matrixWrapper = matrixWrapper,
prevAngle = oRoll,
@@ -231,7 +253,7 @@ class SnowstormParticle(
override fun tick() {
if (storm.effect.space.localPosition) {
originPos = matrixWrapper.getOrigin()
originPos = storm.attachedMatrix.getOrigin()
}
applyRandoms()
@@ -0,0 +1,72 @@
/*
* 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.createTransformation
import com.cobblemon.mod.common.client.render.models.blockbench.frame.BiWingedFrame
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.Companion.Y_AXIS
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 BeedrillModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame, BiWingedFrame {
override val rootPart = root.registerChildWithAllChildren("beedrill")
override val head = getPart("head")
override val leftWing = getPart("wing_left")
override val rightWing = getPart("wing_right")
override var portraitScale = 1.9F
override var portraitTranslation = Vec3(0.05, 0.9, 0.0)
override var profileScale = 0.8F
override var profileTranslation = Vec3(-0.1, 0.9, 0.0)
lateinit var sleep: Pose
lateinit var standing: Pose
lateinit var walk: Pose
override val cryAnimation = CryProvider { bedrockStateful("beedrill", "cry") }
override fun registerPoses() {
sleep = registerPose(
poseType = PoseType.SLEEP,
animations = arrayOf(bedrock("beedrill", "sleep")),
transformedParts = arrayOf(
rootPart.createTransformation().addPosition(Y_AXIS, -3F)
)
)
standing = registerPose(
poseName = "standing",
poseTypes = STATIONARY_POSES + UI_POSES,
animations = arrayOf(
singleBoneLook(),
bedrock("beedrill", "air_idle")
),
transformedParts = arrayOf(rootPart.createTransformation().addPosition(Y_AXIS, -10F))
)
walk = registerPose(
poseName = "walk",
poseTypes = MOVING_POSES,
animations = arrayOf(
singleBoneLook(),
bedrock("beedrill", "air_fly")
),
transformedParts = arrayOf(rootPart.createTransformation().addPosition(Y_AXIS, -5F))
)
}
}
@@ -0,0 +1,64 @@
/*
* 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.createTransformation
import com.cobblemon.mod.common.client.render.models.blockbench.frame.BiWingedFrame
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.Companion.Y_AXIS
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 ButterfreeModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame, BiWingedFrame {
override val rootPart = root.registerChildWithAllChildren("butterfree")
override val head = getPart("head")
override val leftWing = getPart("wing_left")
override val rightWing = getPart("wing_right")
override var portraitScale = 2.4F
override var portraitTranslation = Vec3(-0.1, 0.2, 0.0)
override var profileScale = 0.7F
override var profileTranslation = Vec3(0.1, 0.8, 0.0)
lateinit var sleep: Pose
override val cryAnimation = CryProvider { bedrockStateful("butterfree", "cry") }
override fun registerPoses() {
sleep = registerPose(
poseType = PoseType.SLEEP,
animations = arrayOf(bedrock("butterfree", "sleep"))
)
registerPose(
poseName = "standing",
poseTypes = setOf(PoseType.NONE, PoseType.PROFILE, PoseType.PORTRAIT, PoseType.STAND, PoseType.HOVER, PoseType.FLOAT),
animations = arrayOf(
singleBoneLook(),
bedrock("butterfree", "air_idle")
),
transformedParts = arrayOf(rootPart.createTransformation().addPosition(Y_AXIS, -5F))
)
registerPose(
poseName = "walking",
poseTypes = PoseType.MOVING_POSES,
animations = arrayOf(
singleBoneLook(),
bedrock("butterfree", "air_fly")
),
transformedParts = arrayOf(rootPart.createTransformation().addPosition(Y_AXIS, -5F))
)
}
}
@@ -0,0 +1,73 @@
/*
* 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.animation.BipedWalkAnimation
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.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 CuboneModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame, BipedFrame {
override val rootPart = root.registerChildWithAllChildren("cubone")
override val head = getPart("head")
override val leftLeg = getPart("left_leg")
override val rightLeg = getPart("right_leg")
override var portraitScale = 2.0F
override var portraitTranslation = Vec3(0.1, -0.7, 0.0)
override var profileScale = 1.0F
override var profileTranslation = Vec3(0.0, 0.25, 0.0)
lateinit var standing: CobblemonPose
lateinit var walk: CobblemonPose
override val cryAnimation = CryProvider { bedrockStateful("cubone", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("cubone", "blink") }
standing = registerPose(
poseName = "standing",
poseTypes = STATIONARY_POSES + UI_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("cubone", "idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = MOVING_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
BipedWalkAnimation(this, periodMultiplier = 1.1F, amplitudeMultiplier = 1.15f),
singleBoneLook(),
bedrock("cubone", "idle")
//bedrock("cubone", "ground_walk")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("cubone", "faint") else null
}
@@ -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.animation.SingleBoneLookAnimation
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 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 com.cobblemon.mod.common.util.isBattling
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class DodrioModel (root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
override val rootPart = root.registerChildWithAllChildren("dodrio")
override val head = getPart("head4")
val lefthead = object : HeadedFrame {
override val rootPart = this@DodrioModel.rootPart
override val head: ModelPart = getPart("head3")
}
val righthead = object : HeadedFrame {
override val rootPart = this@DodrioModel.rootPart
override val head: ModelPart = getPart("head2")
}
override var portraitScale = 1.5F
override var portraitTranslation = Vec3(-0.15, 0.9, 0.0)
override var profileScale = 0.8F
override var profileTranslation = Vec3(0.0, 0.6, 0.0)
lateinit var standing: CobblemonPose
lateinit var walking: CobblemonPose
lateinit var sleep: CobblemonPose
lateinit var battleidle: CobblemonPose
override val cryAnimation = CryProvider { bedrockStateful("dodrio", "cry") }
override fun registerPoses() {
val blink1 = quirk { bedrockStateful("dodrio", "blink1") }
val blink2 = quirk { bedrockStateful("dodrio", "blink2") }
val blink3 = quirk { bedrockStateful("dodrio", "blink3") }
val bite1 = quirk(secondsBetweenOccurrences = 5F to 20F) { bedrockStateful("dodrio", "bite_quirk1") }
val bite2 = quirk(secondsBetweenOccurrences = 5F to 20F) { bedrockStateful("dodrio", "bite_quirk2") }
val bite3 = quirk(secondsBetweenOccurrences = 5F to 20F) { bedrockStateful("dodrio", "bite_quirk3") }
sleep = registerPose(
poseType = PoseType.SLEEP,
animations = arrayOf(bedrock("dodrio", "sleep"))
)
standing = registerPose(
poseName = "standing",
poseTypes = STATIONARY_POSES + UI_POSES,
transformTicks = 10,
condition = { !it.isBattling },
quirks = arrayOf(blink1, blink2, blink3),
animations = arrayOf(
singleBoneLook(pitchMultiplier = 1F, yawMultiplier = 0.4F),
SingleBoneLookAnimation(lefthead, false, false, false, false, 1F, 1.5F, 45F, -45F, 45F, 10F),
SingleBoneLookAnimation(righthead, false, false, false, false, 1F, 1.5F, 45F, -45F, 10F, -45F),
bedrock("dodrio", "ground_idle")
)
)
walking = registerPose(
poseName = "walking",
poseTypes = MOVING_POSES,
transformTicks = 10,
quirks = arrayOf(blink1, blink2, blink3),
animations = arrayOf(
bedrock("dodrio", "ground_walk")
)
)
battleidle = registerPose(
poseName = "battle_idle",
poseTypes = PoseType.STATIONARY_POSES,
transformTicks = 10,
quirks = arrayOf(blink1, blink2, blink3, bite1, bite2, bite3),
condition = { it.isBattling },
animations = arrayOf(
bedrock("dodrio", "battle_idle")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walking, battleidle, sleep)) bedrockStateful("dodrio", "faint") else null
}
@@ -0,0 +1,85 @@
/*
* 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.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 com.cobblemon.mod.common.util.isBattling
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class DoduoModel (root: ModelPart) : PokemonPosableModel(root) {
override val rootPart = root.registerChildWithAllChildren("doduo")
override var portraitScale = 2.0F
override var portraitTranslation = Vec3(-0.1, 0.35, 0.0)
override var profileScale = 0.85F
override var profileTranslation = Vec3(0.0, 0.5, 0.0)
lateinit var standing: CobblemonPose
lateinit var walking: CobblemonPose
lateinit var sleep: CobblemonPose
lateinit var battleidle: CobblemonPose
override val cryAnimation = CryProvider { bedrockStateful("doduo", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("doduo", "blink1") }
val blink2 = quirk { bedrockStateful("doduo", "blink2") }
val bite = quirk(secondsBetweenOccurrences = 5F to 20F) { bedrockStateful("doduo", "bite_quirk1") }
val bite2 = quirk(secondsBetweenOccurrences = 5F to 20F) { bedrockStateful("doduo", "bite_quirk2") }
sleep = registerPose(
poseType = PoseType.SLEEP,
animations = arrayOf(bedrock("doduo", "sleep"))
)
standing = registerPose(
poseName = "standing",
poseTypes = STATIONARY_POSES + UI_POSES,
transformTicks = 10,
condition = { !it.isBattling },
quirks = arrayOf(blink, blink2),
animations = arrayOf(
bedrock("doduo", "ground_idle")
)
)
walking = registerPose(
poseName = "walking",
poseTypes = MOVING_POSES,
transformTicks = 10,
quirks = arrayOf(blink, blink2),
animations = arrayOf(
bedrock("doduo", "ground_walk")
)
)
battleidle = registerPose(
poseName = "battle_idle",
poseTypes = PoseType.STATIONARY_POSES,
transformTicks = 10,
quirks = arrayOf(blink, blink2, bite, bite2),
condition = { it.isBattling },
animations = arrayOf(
bedrock("doduo", "battle_idle")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walking, battleidle, sleep)) bedrockStateful("doduo", "faint") else null
}
@@ -0,0 +1,95 @@
/*
* 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.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 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 com.cobblemon.mod.common.util.isBattling
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class ElectabuzzModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
override val rootPart = root.registerChildWithAllChildren("electabuzz")
override val head = getPart("head")
override var portraitScale = 2.5F
override var portraitTranslation = Vec3(-0.3, 0.2, 0.0)
override var profileScale = 0.8F
override var profileTranslation = Vec3(0.0, 0.6, 0.0)
lateinit var sleep: CobblemonPose
lateinit var sleepambient: CobblemonPose
lateinit var standing: CobblemonPose
lateinit var walk: CobblemonPose
lateinit var battleidle: CobblemonPose
override val cryAnimation = CryProvider { bedrockStateful("electabuzz", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("electabuzz", "blink") }
sleep = registerPose(
poseType = PoseType.SLEEP,
poseName = "sleep",
condition = { it.isBattling },
animations = arrayOf(bedrock("electabuzz", "sleep"))
)
sleepambient = registerPose(
poseType = PoseType.SLEEP,
poseName = "ambientsleep",
condition = { !it.isBattling },
animations = arrayOf(bedrock("electabuzz", "ambient_sleep"))
)
standing = registerPose(
poseName = "standing",
poseTypes = STATIONARY_POSES + UI_POSES,
condition = { !it.isBattling },
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("electabuzz", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = MOVING_POSES,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("electabuzz", "ground_walk")
)
)
battleidle = registerPose(
poseName = "battle_idle",
poseTypes = PoseType.STATIONARY_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
condition = { it.isBattling },
animations = arrayOf(
bedrock("electabuzz", "battle_idle")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("electabuzz", "faint") else null
}
@@ -0,0 +1,60 @@
/*
* 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 net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class ElectrodeHisuianModel (root: ModelPart) : PokemonPosableModel(root) {
override val rootPart = root.registerChildWithAllChildren("electrode_hisuian")
override var portraitScale = 1.5F
override var portraitTranslation = Vec3(-0.4, -0.3, 0.0)
override var profileScale = 0.8F
override var profileTranslation = Vec3(0.0, 0.5, 0.0)
lateinit var standing: CobblemonPose
lateinit var walk: CobblemonPose
override val cryAnimation = CryProvider { bedrockStateful("electrode_hisuian", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("electrode_hisuian", "blink") }
standing = registerPose(
poseName = "standing",
poseTypes = PoseType.STATIONARY_POSES + PoseType.UI_POSES,
transformTicks = 0,
quirks = arrayOf(blink),
animations = arrayOf(
bedrock("electrode_hisuian", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = PoseType.MOVING_POSES,
transformTicks = 0,
quirks = arrayOf(blink),
onTransitionedInto = { it?.reset() },
animations = arrayOf(
bedrock("electrode_hisuian", "ground_walk")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("electrode_hisuian", "faint") else null
}
@@ -0,0 +1,62 @@
/*
* 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.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 ElectrodeModel(root: ModelPart) : PokemonPosableModel(root) {
override val rootPart = root.registerChildWithAllChildren("electrode")
override var portraitScale = 1.5F
override var portraitTranslation = Vec3(-0.4, -0.3, 0.0)
override var profileScale = 0.8F
override var profileTranslation = Vec3(0.0, 0.5, 0.0)
lateinit var standing: CobblemonPose
lateinit var walk: CobblemonPose
override val cryAnimation = CryProvider { bedrockStateful("electrode", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("electrode", "blink")}
standing = registerPose(
poseName = "standing",
poseTypes = STATIONARY_POSES + UI_POSES,
transformTicks = 0,
quirks = arrayOf(blink),
animations = arrayOf(
bedrock("electrode", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = MOVING_POSES,
transformTicks = 0,
quirks = arrayOf(blink),
onTransitionedInto = { it?.reset() },
animations = arrayOf(
bedrock("electrode", "ground_walk")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("electrode", "faint") else null
}
@@ -0,0 +1,76 @@
/*
* 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.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 net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class ExeggcuteModel(root: ModelPart) : PokemonPosableModel(root) {
override val rootPart = root.registerChildWithAllChildren("exeggcute")
override var portraitScale = 2.1F
override var portraitTranslation = Vec3(0.0, -1.9, 0.0)
override var profileScale = 1.0F
override var profileTranslation = Vec3(-0.15, 0.0, 0.0)
lateinit var standing: Pose
lateinit var walk: Pose
lateinit var sleep: Pose
lateinit var uiPortrait: Pose
override fun registerPoses() {
val blink1 = quirk { bedrockStateful("exeggcute", "blink") }
val blink2 = quirk { bedrockStateful("exeggcute", "blink2") }
val blink3 = quirk { bedrockStateful("exeggcute", "blink3") }
val blink4 = quirk { bedrockStateful("exeggcute", "blink4") }
val blink5 = quirk { bedrockStateful("exeggcute", "blink5") }
val blink6 = quirk { bedrockStateful("exeggcute", "blink6") }
uiPortrait = registerPose(
poseName = "portrait",
poseType = PoseType.PORTRAIT,
animations = arrayOf(
bedrock("exeggcute", "portrait")
)
)
sleep = registerPose(
poseType = PoseType.SLEEP,
animations = arrayOf(bedrock("exeggcute", "sleep"))
)
standing = registerPose(
poseName = "standing",
poseTypes = STATIONARY_POSES + PoseType.PROFILE,
transformTicks = 10,
quirks = arrayOf(blink1, blink2, blink3, blink4, blink5, blink6),
animations = arrayOf(
bedrock("exeggcute", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = MOVING_POSES,
transformTicks = 10,
animations = arrayOf(
bedrock("exeggcute", "ground_idle"),
bedrock("exeggcute", "ground_walk")
)
)
}
override fun getFaintAnimation(state: PosableState) = bedrockStateful("exeggcute", "faint")
}
@@ -0,0 +1,104 @@
/*
* 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.animation.SingleBoneLookAnimation
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.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 com.cobblemon.mod.common.util.isBattling
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class ExeggutorModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame, BipedFrame {
override val rootPart = root.registerChildWithAllChildren("exeggutor")
override val head = getPart("head")
override val leftLeg = getPart("leg_left")
override val rightLeg = getPart("leg_right")
val head2 = object : HeadedFrame {
override val rootPart = this@ExeggutorModel.rootPart
override val head: ModelPart = getPart("head2")
}
val head3 = object : HeadedFrame {
override val rootPart = this@ExeggutorModel.rootPart
override val head: ModelPart = getPart("head3")
}
override var portraitScale = 1.2F
override var portraitTranslation = Vec3(-1.0, 1.77, 0.0)
override var profileScale = 0.45F
override var profileTranslation = Vec3(0.0, 1.1, 0.0)
lateinit var standing: CobblemonPose
lateinit var walk: CobblemonPose
lateinit var sleep: CobblemonPose
lateinit var battleidle: CobblemonPose
override fun registerPoses() {
val blink1 = quirk { bedrockStateful("exeggutor", "blink") }
val blink2 = quirk { bedrockStateful("exeggutor", "blink2") }
val blink3 = quirk { bedrockStateful("exeggutor", "blink3") }
sleep = registerPose(
poseType = PoseType.SLEEP,
animations = arrayOf(bedrock("exeggutor", "sleep"))
)
standing = registerPose(
poseName = "standing",
poseTypes = STATIONARY_POSES + UI_POSES,
quirks = arrayOf(blink1, blink2, blink3),
condition = { !it.isBattling },
animations = arrayOf(
singleBoneLook(),
SingleBoneLookAnimation(head2, false, false, disableX = false, disableY = false),
SingleBoneLookAnimation(head3, false, false, disableX = false, disableY = false),
bedrock("exeggutor", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = MOVING_POSES,
quirks = arrayOf(blink1, blink2, blink3),
condition = { !it.isBattling },
animations = arrayOf(
singleBoneLook(),
SingleBoneLookAnimation(head2, false, false, disableX = false, disableY = false),
SingleBoneLookAnimation(head3, false, false, disableX = false, disableY = false),
bedrock("exeggutor", "ground_walk")
)
)
battleidle = registerPose(
poseName = "battle_idle",
poseTypes = PoseType.STATIONARY_POSES,
transformTicks = 10,
quirks = arrayOf(blink1, blink2, blink3),
condition = { it.isBattling },
animations = arrayOf(
singleBoneLook(),
bedrock("exeggutor", "battle_idle")
)
)
}
//override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
//) = bedrockStateful("exeggutor", "faint")
}
@@ -0,0 +1,70 @@
/*
* 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.animation.BipedWalkAnimation
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.Pose
import com.cobblemon.mod.common.entity.PoseType
import com.cobblemon.mod.common.entity.PoseType.Companion.UI_POSES
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class FarfetchdGalarianModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame, BipedFrame {
override val rootPart = root.registerChildWithAllChildren("farfetchd")
override val head = getPart("neck")
override val leftLeg = getPart("leg_left")
override val rightLeg = getPart("leg_right")
override var portraitScale = 2.6F
override var portraitTranslation = Vec3(-0.2, -1.0, 0.0)
override var profileScale = 0.93F
override var profileTranslation = Vec3(-0.1, 0.36, 0.0)
lateinit var standing: Pose
lateinit var walk: Pose
override val cryAnimation = CryProvider { bedrockStateful("farfetchd_galar", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("farfetchd_galar", "blink") }
standing = registerPose(
poseName = "standing",
poseTypes = PoseType.STATIONARY_POSES + UI_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("farfetchd_galar", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = PoseType.MOVING_POSES,
transformTicks = 5,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("farfetchd_galar", "ground_idle"),
BipedWalkAnimation(this, periodMultiplier = 0.6F, amplitudeMultiplier = 0.9F),
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("farfetchd_galar", "faint") else null
}
@@ -0,0 +1,98 @@
/*
* 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.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.Pose
import com.cobblemon.mod.common.entity.PoseType
import com.cobblemon.mod.common.entity.PoseType.Companion.UI_POSES
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class FarfetchdModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame, BipedFrame {
override val rootPart = root.registerChildWithAllChildren("farfetchd")
override val head = getPart("neck")
override val leftLeg = getPart("leg_left")
override val rightLeg = getPart("leg_right")
override var portraitScale = 2.6F
override var portraitTranslation = Vec3(-0.2, -1.0, 0.0)
override var profileScale = 0.93F
override var profileTranslation = Vec3(-0.1, 0.36, 0.0)
lateinit var standing: Pose
lateinit var walk: Pose
lateinit var hover: Pose
lateinit var fly: Pose
lateinit var sleep: Pose
override val cryAnimation = CryProvider { bedrockStateful("farfetchd", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("farfetchd", "blink") }
val leakflipidle = quirk(secondsBetweenOccurrences = 60F to 120F) { bedrockStateful("farfetchd", "quirk_leakflip_idle") }
val leakflipwalk = quirk(secondsBetweenOccurrences = 30F to 120F) { bedrockStateful("farfetchd", "quirk_leakflip_walk") }
val wink = quirk(secondsBetweenOccurrences = 60F to 120F) { bedrockStateful("farfetchd", "quirk_wink") }
sleep = registerPose(
poseType = PoseType.SLEEP,
animations = arrayOf(bedrock("farfetchd", "sleep"))
)
standing = registerPose(
poseName = "standing",
poseTypes = PoseType.STATIONARY_POSES + UI_POSES - PoseType.HOVER,
transformTicks = 10,
quirks = arrayOf(blink, leakflipidle, wink),
animations = arrayOf(
singleBoneLook(),
bedrock("farfetchd", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = PoseType.MOVING_POSES - PoseType.FLY,
transformTicks = 5,
quirks = arrayOf(blink, leakflipwalk),
animations = arrayOf(
singleBoneLook(),
bedrock("farfetchd", "ground_walk")
)
)
hover = registerPose(
poseName = "hover",
poseType = PoseType.HOVER,
transformTicks = 10,
animations = arrayOf(
bedrock("farfetchd", "air_idle")
)
)
fly = registerPose(
poseName = "fly",
poseType = PoseType.FLY,
transformTicks = 10,
animations = arrayOf(
bedrock("farfetchd", "air_fly")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("farfetchd", "faint") else null
}
@@ -0,0 +1,63 @@
/*
* 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.animation.BipedWalkAnimation
import com.cobblemon.mod.common.client.render.models.blockbench.frame.BipedFrame
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.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 GengarModel(root: ModelPart) : PokemonPosableModel(root), BipedFrame {
override val rootPart = root.registerChildWithAllChildren("gengar")
override val leftLeg = getPart("leg_left")
override val rightLeg = getPart("leg_right")
override var portraitScale = 1.1F
override var portraitTranslation = Vec3(-0.3, 0.55, 0.0)
override var profileScale = 0.6F
override var profileTranslation = Vec3(0.0, 0.77, 0.0)
lateinit var standing: Pose
lateinit var walk: Pose
override val cryAnimation = CryProvider { bedrockStateful("gengar", "cry") }
override fun registerPoses() {
standing = registerPose(
poseName = "standing",
poseTypes = STATIONARY_POSES + UI_POSES,
animations = arrayOf(
bedrock("gengar", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = MOVING_POSES,
animations = arrayOf(
BipedWalkAnimation(this, periodMultiplier = 1.0F, amplitudeMultiplier = 0.9f),
bedrock("gengar", "ground_idle")
//bedrock("gengar", "ground_walk")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("gengar", "faint") else null
}
@@ -0,0 +1,66 @@
/*
* 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.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 GeodudeModel(root: ModelPart) : PokemonPosableModel(root) {
override val rootPart = root.registerChildWithAllChildren("geodude")
override var portraitScale = 1.9F
override var portraitTranslation = Vec3(0.0, -1.4, 0.0)
override var profileScale = 0.9F
override var profileTranslation = Vec3(-0.05, 0.3, 0.0)
lateinit var sleep: CobblemonPose
lateinit var standing: CobblemonPose
lateinit var walk: CobblemonPose
override val cryAnimation = CryProvider { bedrockStateful("geodude", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("geodude", "blink")}
sleep = registerPose(
poseType = PoseType.SLEEP,
animations = arrayOf(bedrock("geodude", "sleep"))
)
standing = registerPose(
poseName = "standing",
poseTypes = STATIONARY_POSES + UI_POSES,
quirks = arrayOf(blink),
animations = arrayOf(
bedrock("geodude", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = MOVING_POSES,
quirks = arrayOf(blink),
animations = arrayOf(
bedrock("geodude", "ground_walk")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("geodude", "faint") else null
}
@@ -0,0 +1,90 @@
/*
* 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.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.Pose
import com.cobblemon.mod.common.entity.PoseType
import com.cobblemon.mod.common.entity.PoseType.Companion.UI_POSES
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class GolduckModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
override val rootPart = root.registerChildWithAllChildren("golduck")
override val head = getPart("head")
override var portraitScale = 2.1F
override var portraitTranslation = Vec3(-0.1, 0.55, 0.0)
override var profileScale = 0.8F
override var profileTranslation = Vec3(0.0, 0.54, 0.0)
lateinit var sleep: Pose
lateinit var standing: Pose
lateinit var walk: Pose
lateinit var float: Pose
lateinit var swim: Pose
override val cryAnimation = CryProvider { bedrockStateful("golduck", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("golduck", "blink")}
standing = registerPose(
poseName = "standing",
poseTypes = UI_POSES + PoseType.STAND,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("golduck", "ground_idle")
)
)
sleep = registerPose(
poseType = PoseType.SLEEP,
animations = arrayOf(bedrock("golduck", "sleep"))
)
walk = registerPose(
poseName = "walk",
poseType = PoseType.WALK,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("golduck", "ground_walk")
)
)
float = registerPose(
poseName = "float",
poseType = PoseType.FLOAT,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("golduck", "water_idle")
)
)
swim = registerPose(
poseName = "swim",
poseType = PoseType.SWIM,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("golduck", "water_swim")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("golduck", "faint") else null
}
@@ -0,0 +1,70 @@
/*
* 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.animation.BipedWalkAnimation
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.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 GolemModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame, BipedFrame {
override val rootPart = root.registerChildWithAllChildren("golem")
override val head = getPart("head")
override val leftLeg = getPart("left_upper_leg")
override val rightLeg = getPart("right_upper_leg")
override var portraitScale = 1.7F
override var portraitTranslation = Vec3(-0.6, -0.25, 0.0)
override var profileScale = 0.75F
override var profileTranslation = Vec3(0.0, 0.55, 0.0)
lateinit var standing: CobblemonPose
lateinit var walk: CobblemonPose
override val cryAnimation = CryProvider { bedrockStateful("golem", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("golem", "blink") }
standing = registerPose(
poseName = "standing",
poseTypes = STATIONARY_POSES + UI_POSES,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("golem", "test")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = MOVING_POSES,
quirks = arrayOf(blink),
animations = arrayOf(
BipedWalkAnimation(this, periodMultiplier = 0.7F, amplitudeMultiplier = 0.6f),
singleBoneLook(),
bedrock("golem", "test")
//bedrock("golem", "ground_walk")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("golem", "faint") else null
}
@@ -0,0 +1,90 @@
/*
* 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.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.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 com.cobblemon.mod.common.util.isBattling
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class HitmonchanModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame, BipedFrame, BimanualFrame {
override val rootPart = root.registerChildWithAllChildren("hitmonchan")
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 = 2.5F
override var portraitTranslation = Vec3(-0.3, 0.8, 0.0)
override var profileScale = 0.82F
override var profileTranslation = Vec3(0.0, 0.5, 0.0)
lateinit var standing: Pose
lateinit var walk: Pose
lateinit var sleep: Pose
lateinit var battleidle: Pose
override fun registerPoses() {
val blink = quirk { bedrockStateful("hitmonchan", "blink")}
sleep = registerPose(
poseType = PoseType.SLEEP,
animations = arrayOf(bedrock("hitmonchan", "sleep"))
)
standing = registerPose(
poseName = "standing",
poseTypes = STATIONARY_POSES + UI_POSES,
transformTicks = 5,
condition = { !it.isBattling },
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("hitmonchan", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = MOVING_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("hitmonchan", "ground_walk")
)
)
battleidle = registerPose(
poseName = "battle_idle",
poseTypes = PoseType.STATIONARY_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
condition = { it.isBattling },
animations = arrayOf(
singleBoneLook(),
bedrock("hitmonchan", "battle_idle")
)
)
}
override fun getFaintAnimation(state: PosableState) = bedrockStateful("hitmonchan", "faint")
}
@@ -0,0 +1,85 @@
/*
* 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.frame.BimanualFrame
import com.cobblemon.mod.common.client.render.models.blockbench.frame.BipedFrame
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 com.cobblemon.mod.common.util.isBattling
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class HitmonleeModel(root: ModelPart) : PokemonPosableModel(root), BipedFrame, BimanualFrame {
override val rootPart = root.registerChildWithAllChildren("hitmonlee")
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 = 2.2F
override var portraitTranslation = Vec3(-0.2, 0.3, 0.0)
override var profileScale = 0.9F
override var profileTranslation = Vec3(0.0, 0.47, 0.0)
lateinit var standing: Pose
lateinit var walk: Pose
lateinit var sleep: Pose
lateinit var battleidle: Pose
override fun registerPoses() {
val blink = quirk { bedrockStateful("hitmonlee", "blink")}
sleep = registerPose(
poseType = PoseType.SLEEP,
animations = arrayOf(bedrock("hitmonlee", "sleep"))
)
standing = registerPose(
poseName = "standing",
poseTypes = STATIONARY_POSES + UI_POSES,
transformTicks = 5,
condition = { !it.isBattling },
quirks = arrayOf(blink),
animations = arrayOf(
bedrock("hitmonlee", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = MOVING_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
bedrock("hitmonlee", "ground_walk")
)
)
battleidle = registerPose(
poseName = "battle_idle",
poseTypes = PoseType.STATIONARY_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
condition = { it.isBattling },
animations = arrayOf(
bedrock("hitmonlee", "battle_idle")
)
)
}
override fun getFaintAnimation(state: PosableState) = bedrockStateful("hitmonlee", "faint")
}
@@ -0,0 +1,62 @@
/*
* 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.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 KabutoModel(root: ModelPart) : PokemonPosableModel(root) {
override val rootPart = root.registerChildWithAllChildren("kabuto")
override var portraitScale = 3.3F
override var portraitTranslation = Vec3(0.0, -3.3, 0.0)
override var profileScale = 1.25F
override var profileTranslation = Vec3(0.0, -0.17, 0.0)
lateinit var standing: CobblemonPose
lateinit var walk: CobblemonPose
override val cryAnimation = CryProvider { bedrockStateful("kabuto", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("kabuto", "blink") }
standing = registerPose(
poseName = "standing",
poseTypes = STATIONARY_POSES + UI_POSES,
quirks = arrayOf(blink),
transformTicks = 10,
animations = arrayOf(
bedrock("kabuto", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = MOVING_POSES,
quirks = arrayOf(blink),
transformTicks = 10,
animations = arrayOf(
bedrock("kabuto", "ground_walk")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("kabuto", "faint") else null
}
@@ -0,0 +1,114 @@
/*
* 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.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 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 com.cobblemon.mod.common.util.isBattling
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class KabutopsModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame, BipedFrame {
override val rootPart = root.registerChildWithAllChildren("kabutops")
override val head = getPart("head")
override val leftLeg = getPart("left_upper_leg")
override val rightLeg = getPart("right_upper_leg")
override var portraitScale = 2.0F
override var portraitTranslation = Vec3(-0.35, 0.2, 0.0)
override var profileScale = 0.8F
override var profileTranslation = Vec3(0.0, 0.6, 0.0)
lateinit var standing: CobblemonPose
lateinit var walk: CobblemonPose
lateinit var sleep: CobblemonPose
lateinit var battleidle: CobblemonPose
// lateinit var float: CobblemonPose
// lateinit var swim: CobblemonPose
override val cryAnimation = CryProvider { bedrockStateful("kabutops", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("kabutops", "blink") }
sleep = registerPose(
poseName = "sleep",
poseType = PoseType.SLEEP,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("kabutops", "sleep")
)
)
standing = registerPose(
poseName = "standing",
poseTypes = UI_POSES + STATIONARY_POSES,
condition = { !it.isBattling },
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("kabutops", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = MOVING_POSES,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("kabutops", "ground_walk")
)
)
battleidle = registerPose(
poseName = "battleidle",
poseTypes = PoseType.STATIONARY_POSES,
condition = { it.isBattling },
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("kabutops", "battle_idle")
)
)
// float = registerPose(
// poseName = "float",
// poseTypes = setOf(PoseType.FLOAT, PoseType.HOVER),
// animations = arrayOf(
// singleBoneLook(),
// bedrock("kabutops", "water_idle")
// )
// )
//
// swim = registerPose(
// poseName = "swim",
// poseTypes = setOf(PoseType.SWIM, PoseType.FLOAT),
// animations = arrayOf(
// singleBoneLook(),
// bedrock("kabutops", "water_swim")
// )
// )
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("kabutops", "faint") else null
}
@@ -0,0 +1,59 @@
/*
* 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.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 KoffingModel(root: ModelPart) : PokemonPosableModel(root) {
override val rootPart = root.registerChildWithAllChildren("koffing")
override var portraitScale = 1.9F
override var portraitTranslation = Vec3(-0.4, -0.2, 0.0)
override var profileScale = 0.8F
override var profileTranslation = Vec3(0.0, 0.6, 0.0)
lateinit var standing: CobblemonPose
lateinit var walk: CobblemonPose
override val cryAnimation = CryProvider { bedrockStateful("koffing", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("koffing", "blink")}
standing = registerPose(
poseName = "standing",
poseTypes = STATIONARY_POSES + UI_POSES,
quirks = arrayOf(blink),
animations = arrayOf(
bedrock("koffing", "air_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = MOVING_POSES,
quirks = arrayOf(blink),
animations = arrayOf(
bedrock("koffing", "air_fly")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("koffing", "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.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 com.cobblemon.mod.common.util.isBattling
import com.cobblemon.mod.common.util.isDusk
import com.cobblemon.mod.common.util.isInWaterOrRain
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class KrabbyModel(root: ModelPart) : PokemonPosableModel(root) {
override val rootPart = root.registerChildWithAllChildren("krabby")
override var portraitScale = 2.5F
override var portraitTranslation = Vec3(-0.15, -1.8, 0.0)
override var profileScale = 1.0F
override var profileTranslation = Vec3(0.0, 0.2, 0.0)
lateinit var standing: CobblemonPose
lateinit var walk: CobblemonPose
lateinit var battleidle: CobblemonPose
lateinit var standingBubbles: CobblemonPose
lateinit var standingRain: CobblemonPose
override val cryAnimation = CryProvider { bedrockStateful("krabby", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("krabby", "blink")}
val snipLeft = quirk { bedrockStateful("krabby", "snip_left")}
val snipRight = quirk { bedrockStateful("krabby", "snip_right")}
val bubble = quirk(5F to 24F) { bedrockStateful("krabby", "quirk_bubble")}
standing = registerPose(
poseName = "standing",
poseTypes = STATIONARY_POSES + UI_POSES,
condition = { !it.isBattling && it.getEntity()?.isDusk() != true },
quirks = arrayOf(blink, snipLeft, snipRight ),
animations = arrayOf(
bedrock("krabby", "ground_idle")
)
)
standingBubbles = registerPose(
poseName = "standing_bubbles",
poseTypes = STATIONARY_POSES,
condition = { !it.isBattling && it.getEntity()?.isDusk() == true && !it.isInWaterOrRain },
quirks = arrayOf(blink, snipLeft, snipRight, bubble),
animations = arrayOf(
bedrock("krabby", "ground_idle")
)
)
standingRain = registerPose(
poseName = "standing_rain",
poseTypes = STATIONARY_POSES,
condition = { !it.isBattling && it.getEntity()?.isDusk() == true && it.isInWaterOrRain},
quirks = arrayOf(blink, snipLeft, snipRight),
animations = arrayOf(
bedrock("krabby", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = MOVING_POSES,
quirks = arrayOf(blink, snipLeft, snipRight),
animations = arrayOf(
bedrock("krabby", "ground_walk")
)
)
battleidle = registerPose(
poseName = "battle_idle",
poseTypes = PoseType.STATIONARY_POSES,
transformTicks = 10,
quirks = arrayOf(blink, snipLeft, snipRight),
condition = { it.isBattling },
animations = arrayOf(
bedrock("krabby", "battle_idle")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("krabby", "faint") else null
}
@@ -0,0 +1,82 @@
/*
* 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.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.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 com.cobblemon.mod.common.util.isBattling
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class LickitungModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame, BipedFrame, BimanualFrame {
override val rootPart = root.registerChildWithAllChildren("lickitung")
override val head = getPart("head")
override val leftLeg = getPart("left_leg")
override val rightLeg = getPart("right_leg")
override val leftArm = getPart("left_upper_arm")
override val rightArm = getPart("right_upper_arm")
override var portraitScale = 2.1F
override var portraitTranslation = Vec3(-0.1, 0.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 battleidle: Pose
override fun registerPoses() {
val blink = quirk { bedrockStateful("lickitung", "blink")}
standing = registerPose(
poseName = "standing",
poseTypes = STATIONARY_POSES + UI_POSES,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("lickitung", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = MOVING_POSES,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("lickitung", "ground_walk")
)
)
battleidle = registerPose(
poseName = "battle_idle",
poseTypes = PoseType.STATIONARY_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
condition = { it.isBattling },
animations = arrayOf(
singleBoneLook(),
bedrock("lickitung", "battle_idle")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("lickitung", "faint") else null
}
@@ -0,0 +1,65 @@
/*
* 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.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.Pose
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 MachampModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
override val rootPart = root.registerChildWithAllChildren("machamp")
override val head = getPart("head")
override var portraitScale = 2.0F
override var portraitTranslation = Vec3(-0.3, 1.2, 0.0)
override var profileScale = 0.75F
override var profileTranslation = Vec3(-0.1, 0.66, 0.0)
lateinit var standing: Pose
lateinit var walk: Pose
override val cryAnimation = CryProvider { bedrockStateful("machamp", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("machamp", "blink")}
standing = registerPose(
poseName = "standing",
poseTypes = STATIONARY_POSES + UI_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("machamp", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = MOVING_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("machamp", "ground_walk")
)
)
}
/*
override fun getFaintAnimation(state: PosableState) = if (state.isPosedIn(standing, walk)) bedrockStateful("machamp", "faint") else null
*/
}
@@ -0,0 +1,63 @@
/*
* 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.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.Pose
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 MachokeModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
override val rootPart = root.registerChildWithAllChildren("machoke")
override val head = getPart("head")
override var portraitScale = 1.9F
override var portraitTranslation = Vec3(-0.1, 1.0, 0.0)
override var profileScale = 0.71F
override var profileTranslation = Vec3(0.0, 0.69, 0.0)
lateinit var standing: Pose
lateinit var walk: Pose
override val cryAnimation = CryProvider { bedrockStateful("machoke", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("machoke", "blink")}
standing = registerPose(
poseName = "standing",
poseTypes = STATIONARY_POSES + UI_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("machoke", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = MOVING_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("machoke", "ground_walk")
)
)
}
/*override fun getFaintAnimation(state: PosableState) = if (state.isPosedIn(standing, walk)) bedrockStateful("machoke", "faint") else null
*/
}
@@ -0,0 +1,66 @@
/*
* 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.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.Pose
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 MachopModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
override val rootPart = root.registerChildWithAllChildren("machop")
override val head = getPart("head")
override var portraitScale = 1.8F
override var portraitTranslation = Vec3(-0.03, 0.35, 0.0)
override var profileScale = 0.73F
override var profileTranslation = Vec3(-0.03, 0.64, 0.0)
lateinit var standing: Pose
lateinit var walk: Pose
override val cryAnimation = CryProvider { bedrockStateful("machop", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("machop", "blink") }
standing = registerPose(
poseName = "standing",
poseTypes = STATIONARY_POSES + UI_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("machop", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = MOVING_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("machop", "ground_walk")
)
)
}
/*
override fun getFaintAnimation(
pokemonEntity: PokemonEntity,
state: PosableState<PokemonEntity>
) = if (state.isPosedIn(standing, walk)) bedrockStateful("machop", "faint") else null
*/
}
@@ -0,0 +1,66 @@
/*
* 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 MankeyModel(root: ModelPart) : PokemonPosableModel(root) {
override val rootPart = root.registerChildWithAllChildren("mankey")
override var portraitScale = 1.72F
override var portraitTranslation = Vec3(0.0, -0.4, 0.0)
override var profileScale = 0.9F
override var profileTranslation = Vec3(-0.03, 0.4, 0.0)
lateinit var sleep: Pose
lateinit var standing: Pose
lateinit var walk: Pose
override val cryAnimation = CryProvider { bedrockStateful("mankey", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("mankey", "blink") }
standing = registerPose(
poseName = "standing",
poseTypes = STATIONARY_POSES + UI_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
bedrock("mankey", "ground_idle")
)
)
sleep = registerPose(
poseType = PoseType.SLEEP,
animations = arrayOf(bedrock("mankey", "sleep"))
)
walk = registerPose(
poseName = "walk",
poseTypes = MOVING_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
bedrock("mankey", "ground_walk")
)
)
}
override fun getFaintAnimation(state: PosableState) = if (state.isPosedIn(standing, walk, sleep)) bedrockStateful("mankey", "faint") else null
}
@@ -0,0 +1,71 @@
/*
* 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.animation.BipedWalkAnimation
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.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 MarowakModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame, BipedFrame {
override val rootPart = root.registerChildWithAllChildren("marowak")
override val head = getPart("head")
override val leftLeg = getPart("left_leg")
override val rightLeg = getPart("right_leg")
override var portraitScale = 1.7F
override var portraitTranslation = Vec3(0.0, 0.15, 0.0)
override var profileScale = 0.85F
override var profileTranslation = Vec3(0.0, 0.48, 0.0)
lateinit var standing: CobblemonPose
lateinit var walk: CobblemonPose
override val cryAnimation = CryProvider { bedrockStateful("marowak", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("marowak", "blink") }
standing = registerPose(
poseName = "standing",
poseTypes = STATIONARY_POSES + UI_POSES,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("marowak", "idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = MOVING_POSES,
quirks = arrayOf(blink),
animations = arrayOf(
BipedWalkAnimation(this, periodMultiplier = 0.9F, amplitudeMultiplier = 1.1f),
singleBoneLook(),
bedrock("marowak", "idle")
//bedrock("marowak", "ground_walk")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("marowak", "faint") else null
}
@@ -0,0 +1,82 @@
/*
* 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.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 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 MeowthAlolanModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame, BipedFrame, BimanualFrame {
override val rootPart = root.registerChildWithAllChildren("meowth")
override val head = getPart("head")
override val leftLeg = getPart("leg_left")
override val rightLeg = getPart("leg_right")
override val leftArm = getPart("arm_left")
override val rightArm = getPart("arm_right")
override var portraitScale = 1.6F
override var portraitTranslation = Vec3(0.05, -0.1, 0.0)
override var profileScale = 0.8F
override var profileTranslation = Vec3(0.0, 0.54, 0.0)
lateinit var sleep: CobblemonPose
lateinit var standing: CobblemonPose
lateinit var walk: CobblemonPose
override val cryAnimation = CryProvider { bedrockStateful("meowth_alolan", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("meowth_alolan", "blink") }
standing = registerPose(
poseName = "standing",
poseTypes = STATIONARY_POSES + UI_POSES,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("meowth_alolan", "ground_idle")
)
)
sleep = registerPose(
poseType = PoseType.SLEEP,
animations = arrayOf(bedrock("meowth_alolan", "sleep"))
)
walk = registerPose(
poseName = "walk",
poseTypes = MOVING_POSES,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
BipedWalkAnimation(this, periodMultiplier = .7F),
BimanualSwingAnimation(this),
bedrock("meowth_alolan", "ground_idle")
//bedrock("meowth_alolan", "ground_walk")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("meowth_alolan", "faint") else null
}
@@ -0,0 +1,92 @@
/*
* 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.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.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 com.cobblemon.mod.common.util.isBattling
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class MeowthGalarianModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame, BipedFrame, BimanualFrame {
override val rootPart = root.registerChildWithAllChildren("meowth")
override val head = getPart("head")
override val rightArm = getPart("arm_right")
override val leftArm = getPart("arm_left")
override val rightLeg = getPart("leg_right")
override val leftLeg = getPart("leg_left")
override var portraitScale = 1.6F
override var portraitTranslation = Vec3(0.05, -0.1, 0.0)
override var profileScale = 0.8F
override var profileTranslation = Vec3(0.0, 0.54, 0.0)
lateinit var standing: Pose
lateinit var walking: Pose
lateinit var sleep: Pose
lateinit var battleidle: Pose
override val cryAnimation = CryProvider { bedrockStateful("meowth_galarian", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("meowth_galarian", "blink") }
sleep = registerPose(
poseType = PoseType.SLEEP,
animations = arrayOf(bedrock("meowth_galarian", "sleep"))
)
standing = registerPose(
poseName = "standing",
poseTypes = STATIONARY_POSES + UI_POSES,
transformTicks = 10,
condition = { !it.isBattling },
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("meowth_galarian", "ground_idle")
)
)
walking = registerPose(
poseName = "walking",
poseTypes = MOVING_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("meowth_galarian", "ground_walk")
)
)
battleidle = registerPose(
poseName = "battle_idle",
poseTypes = PoseType.STATIONARY_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
condition = { it.isBattling },
animations = arrayOf(
singleBoneLook(),
bedrock("meowth_galarian", "battle_idle")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = bedrockStateful("meowth_galarian", "faint")
}
@@ -0,0 +1,82 @@
/*
* 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.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 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 MeowthModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame, BipedFrame, BimanualFrame {
override val rootPart = root.registerChildWithAllChildren("meowth")
override val head = getPart("head")
override val leftLeg = getPart("leg_left")
override val rightLeg = getPart("leg_right")
override val leftArm = getPart("arm_left")
override val rightArm = getPart("arm_right")
override var portraitScale = 1.6F
override var portraitTranslation = Vec3(0.05, -0.1, 0.0)
override var profileScale = 0.8F
override var profileTranslation = Vec3(0.0, 0.54, 0.0)
lateinit var sleep: CobblemonPose
lateinit var standing: CobblemonPose
lateinit var walk: CobblemonPose
override val cryAnimation = CryProvider { bedrockStateful("meowth", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("meowth", "blink") }
standing = registerPose(
poseName = "standing",
poseTypes = STATIONARY_POSES + UI_POSES,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("meowth", "ground_idle")
)
)
sleep = registerPose(
poseType = PoseType.SLEEP,
animations = arrayOf(bedrock("meowth", "sleep"))
)
walk = registerPose(
poseName = "walk",
poseTypes = MOVING_POSES,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
BipedWalkAnimation(this, periodMultiplier = .7F),
BimanualSwingAnimation(this),
bedrock("meowth", "ground_idle")
//bedrock("meowth", "ground_walk")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("meowth", "faint") else null
}
@@ -0,0 +1,49 @@
/*
* 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.ALL_POSES
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class MetapodModel(root: ModelPart) : PokemonPosableModel(root) {
override val rootPart = root.registerChildWithAllChildren("metapod")
override var portraitScale = 2.0F
override var portraitTranslation = Vec3(-0.15, -1.25, 0.0)
override var profileScale = 1.1F
override var profileTranslation = Vec3(0.0, 0.1, 0.0)
lateinit var sleep: Pose
lateinit var standing: Pose
override val cryAnimation = CryProvider { bedrockStateful("metapod", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("metapod", "blink")}
sleep = registerPose(
poseType = PoseType.SLEEP,
animations = arrayOf(bedrock("metapod", "sleep"))
)
standing = registerPose(
poseName = "standing",
quirks = arrayOf(blink),
poseTypes = ALL_POSES - PoseType.SLEEP,
animations = arrayOf(bedrock("metapod", "ground_idle"))
)
}
override fun getFaintAnimation(state: PosableState) = bedrockStateful("metapod", "faint")
}
@@ -0,0 +1,81 @@
/*
* 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.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.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 NidoqueenModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame, BipedFrame, BimanualFrame {
override val rootPart = root.registerChildWithAllChildren("nidoqueen")
override val head = getPart("head")
override val leftLeg = getPart("left_upper_leg")
override val rightLeg = getPart("right_upper_leg")
override val leftArm = getPart("left_shoulder")
override val rightArm = getPart("right_shoulder")
override var portraitScale = 1.56F
override var portraitTranslation = Vec3(-0.33, 0.78, 0.0)
override var profileScale = 0.8F
override var profileTranslation = Vec3(0.0, 0.5, 0.0)
lateinit var sleep: Pose
lateinit var standing: Pose
lateinit var walk: Pose
override val cryAnimation = CryProvider { bedrockStateful("nidoqueen", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("nidoqueen", "blink")}
val spg = quirk(secondsBetweenOccurrences = 600F to 900F) { bedrockStateful("nidoqueen", "spgs_happy_place") }
standing = registerPose(
poseName = "standing",
poseTypes = STATIONARY_POSES + UI_POSES,
quirks = arrayOf(blink, spg),
animations = arrayOf(
singleBoneLook(),
bedrock("nidoqueen", "ground_idle")
)
)
sleep = registerPose(
poseType = PoseType.SLEEP,
animations = arrayOf(bedrock("nidoqueen", "ground_idle"))
)
walk = registerPose(
poseName = "walk",
poseTypes = MOVING_POSES,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("nidoqueen", "ground_idle"),
BipedWalkAnimation(this),
BimanualSwingAnimation(this)
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("nidoqueen", "faint") else null
}
@@ -0,0 +1,73 @@
/*
* 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.animation.QuadrupedWalkAnimation
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.frame.QuadrupedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.CryProvider
import com.cobblemon.mod.common.client.render.models.blockbench.pose.Pose
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 NidorinoModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame, QuadrupedFrame {
override val rootPart = root.registerChildWithAllChildren("nidorino")
override val head = getPart("head")
override val foreLeftLeg= getPart("leg_front_left")
override val foreRightLeg = getPart("leg_front_right")
override val hindLeftLeg = getPart("leg_back_left")
override val hindRightLeg = getPart("leg_back_right")
override var portraitScale = 2.6F
override var portraitTranslation = Vec3(-0.71, -2.0, 0.0)
override var profileScale = 1.0F
override var profileTranslation = Vec3(-0.1, 0.21, 0.0)
lateinit var standing: Pose
lateinit var walk: Pose
override val cryAnimation = CryProvider { bedrockStateful("nidorino", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("nidorino", "blink")}
standing = registerPose(
poseName = "standing",
poseTypes = STATIONARY_POSES + UI_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("nidorino", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = MOVING_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("nidorino", "ground_idle"),
QuadrupedWalkAnimation(this, periodMultiplier = 0.7F, amplitudeMultiplier = 0.7F)
//bedrock("nidorino", "ground_walk")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("nidorino", "faint") else null
}
@@ -0,0 +1,88 @@
/*
* 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.animation.QuadrupedWalkAnimation
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.frame.QuadrupedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.CryProvider
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.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 NinetalesModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame, QuadrupedFrame {
override val rootPart = root.registerChildWithAllChildren("ninetales")
override val head = getPart("head")
override val foreLeftLeg= getPart("leg_front_left")
override val foreRightLeg = getPart("leg_front_right")
override val hindLeftLeg = getPart("leg_back_left")
override val hindRightLeg = getPart("leg_back_right")
override var portraitScale = 1.65F
override var portraitTranslation = Vec3(-0.4, 0.7, 0.0)
override var profileScale = 0.7F
override var profileTranslation = Vec3(0.0, 0.67, 0.0)
// Alolan Nintales Portaits/Profiles
// override var portraitScale = 1.65F
// override var portraitTranslation = Vec3d(-0.4, 0.93, 0.0)
// override var profileScale = 0.7F
// override var profileTranslation = Vec3d(0.0, 0.67, 0.0)
lateinit var standing: CobblemonPose
lateinit var walk: CobblemonPose
lateinit var sleep: CobblemonPose
override val cryAnimation = CryProvider { bedrockStateful("ninetales", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("ninetales", "blink")}
sleep = registerPose(
poseType = PoseType.SLEEP,
animations = arrayOf(bedrock("ninetales", "sleep"))
)
standing = registerPose(
poseName = "standing",
poseTypes = STATIONARY_POSES + UI_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("ninetales", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = MOVING_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("ninetales", "ground_idle"),
QuadrupedWalkAnimation(this, periodMultiplier = 0.5F, amplitudeMultiplier = 1.1F)
// bedrock("ninetales", "ground_walk")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("ninetales", "faint") else null
}
@@ -0,0 +1,71 @@
/*
* 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.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.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.SHOULDER_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 ParasModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
override val rootPart = root.registerChildWithAllChildren("paras")
override val head = getPart("head")
override var portraitScale = 1.8F
override var portraitTranslation = Vec3(-0.2, -1.2, 0.0)
override var profileScale = 0.7F
override var profileTranslation = Vec3(0.0, 0.6, 0.0)
lateinit var sleep: Pose
lateinit var standing: Pose
lateinit var walk: Pose
override val cryAnimation = CryProvider { bedrockStateful("paras", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("paras", "blink") }
standing = registerPose(
poseName = "standing",
poseTypes = STATIONARY_POSES + UI_POSES + SHOULDER_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
bedrock("paras", "ground_idle"),
singleBoneLook()
)
)
sleep = registerPose(
poseType = PoseType.SLEEP,
animations = arrayOf(bedrock("paras", "sleep"))
)
walk = registerPose(
poseName = "walk",
poseTypes = MOVING_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
bedrock("paras", "ground_walk"),
singleBoneLook()
)
)
}
override fun getFaintAnimation(state: PosableState) = bedrockStateful("paras", "faint")
}
@@ -0,0 +1,76 @@
/*
* 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.animation.QuadrupedWalkAnimation
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.frame.QuadrupedFrame
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 PersianAlolanModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame, QuadrupedFrame {
override val rootPart = root.registerChildWithAllChildren("persian")
override val head = getPart("head")
override val foreLeftLeg= getPart("leg_front_left1")
override val foreRightLeg = getPart("leg_front_right1")
override val hindLeftLeg = getPart("leg_back_left1")
override val hindRightLeg = getPart("leg_back_right1")
override var portraitScale = 2.0F
override var portraitTranslation = Vec3(-0.76, -0.11, 0.0)
override var profileScale = 0.9F
override var profileTranslation = Vec3(0.0, 0.38, 0.0)
lateinit var sleep: Pose
lateinit var standing: Pose
lateinit var walk: Pose
override fun registerPoses() {
val blink = quirk { bedrockStateful("persian_alolan", "blink")}
standing = registerPose(
poseName = "standing",
poseTypes = STATIONARY_POSES + UI_POSES,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("persian_alolan", "ground_idle")
)
)
sleep = registerPose(
poseType = PoseType.SLEEP,
animations = arrayOf(bedrock("persian_alolan", "sleep"))
)
walk = registerPose(
poseName = "walk",
poseTypes = MOVING_POSES,
quirks = arrayOf(blink),
animations = arrayOf(
QuadrupedWalkAnimation(this, periodMultiplier = 0.5F, amplitudeMultiplier = 1.1F),
singleBoneLook(),
bedrock("persian_alolan", "ground_idle")
//bedrock("persian_alolan", "ground_walk")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("persian_alolan", "faint") else null
}
@@ -0,0 +1,79 @@
/*
* 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.animation.QuadrupedWalkAnimation
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.frame.QuadrupedFrame
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 PersianModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame, QuadrupedFrame {
override val rootPart = root.registerChildWithAllChildren("persian")
override val head = getPart("neck")
override val foreLeftLeg= getPart("leg_front_left1")
override val foreRightLeg = getPart("leg_front_right1")
override val hindLeftLeg = getPart("leg_back_left1")
override val hindRightLeg = getPart("leg_back_right1")
override var portraitScale = 2.0F
override var portraitTranslation = Vec3(-0.8, 0.3, 0.0)
override var profileScale = 0.9F
override var profileTranslation = Vec3(0.0, 0.38, 0.0)
lateinit var sleep: Pose
lateinit var standing: Pose
lateinit var walk: Pose
override val cryAnimation = CryProvider { bedrockStateful("persian", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("persian", "blink")}
standing = registerPose(
poseName = "standing",
poseTypes = STATIONARY_POSES + UI_POSES,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("persian", "ground_idle")
)
)
sleep = registerPose(
poseType = PoseType.SLEEP,
animations = arrayOf(bedrock("persian", "sleep"))
)
walk = registerPose(
poseName = "walk",
poseTypes = MOVING_POSES,
quirks = arrayOf(blink),
animations = arrayOf(
QuadrupedWalkAnimation(this, periodMultiplier = 0.5F, amplitudeMultiplier = 1.1F),
singleBoneLook(),
bedrock("persian", "ground_idle")
//bedrock("persian", "ground_walk")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("persian", "faint") else null
}
@@ -0,0 +1,81 @@
/*
* 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.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 com.cobblemon.mod.common.util.isBattling
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class PinsirModel(root: ModelPart) : PokemonPosableModel(root) {
override val rootPart = root.registerChildWithAllChildren("pinsir")
override var portraitScale = 1.6F
override var portraitTranslation = Vec3(-0.3, 0.3, 0.0)
override var profileScale = 0.65F
override var profileTranslation = Vec3(0.0, 0.75, 0.0)
lateinit var standing: CobblemonPose
lateinit var walk: CobblemonPose
lateinit var battleidle: CobblemonPose
lateinit var sleep: CobblemonPose
override val cryAnimation = CryProvider { bedrockStateful("pinsir", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("pinsir", "blink")}
sleep = registerPose(
poseName = "sleep",
poseType = PoseType.SLEEP,
animations = arrayOf(bedrock("pinsir", "sleep"))
)
standing = registerPose(
poseName = "standing",
poseTypes = STATIONARY_POSES + UI_POSES,
transformTicks = 10,
condition = { !it.isBattling },
quirks = arrayOf(blink),
animations = arrayOf(
bedrock("pinsir", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = MOVING_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
bedrock("pinsir", "ground_walk")
)
)
battleidle = registerPose(
poseName = "battleidle",
poseTypes = PoseType.STATIONARY_POSES,
condition = { it.isBattling },
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(bedrock("pinsir", "battle_idle"))
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("pinsir", "faint") else null
}
@@ -0,0 +1,73 @@
/*
* 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.frame.HeadedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.frame.QuadrupedFrame
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 net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class PonytaGalarianModel (root: ModelPart) : PokemonPosableModel(root), HeadedFrame, QuadrupedFrame {
override val rootPart = root.registerChildWithAllChildren("ponyta_galar")
override val head = getPart("neck")
override val foreLeftLeg = getPart("leg_front_left")
override val foreRightLeg = getPart("leg_front_right")
override val hindLeftLeg = getPart("leg_back_left")
override val hindRightLeg = getPart("leg_back_right")
override var portraitScale = 2.2F
override var portraitTranslation = Vec3(-0.4, 0.2, 0.0)
override var profileScale = 0.9F
override var profileTranslation = Vec3(0.0, 0.43, 0.0)
lateinit var standing: Pose
lateinit var walk: Pose
lateinit var sleep: Pose
override val cryAnimation = CryProvider { bedrockStateful("ponyta_galar", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("ponyta_galar", "blink") }
val quirk = quirk(secondsBetweenOccurrences = 60F to 360F) { bedrockStateful("ponyta_galar", "quirk") }
sleep = registerPose(
poseType = PoseType.SLEEP,
animations = arrayOf(bedrock("ponyta_galar", "sleep"))
)
standing = registerPose(
poseName = "standing",
poseTypes = PoseType.UI_POSES + PoseType.STAND,
quirks = arrayOf(blink, quirk),
animations = arrayOf(
singleBoneLook(),
bedrock("ponyta_galar", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseType = PoseType.WALK,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("ponyta_galar", "ground_walk")
)
)
}
override fun getFaintAnimation(state: PosableState) = bedrockStateful("ponyta_galar", "faint")
}
@@ -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.gen1
import com.cobblemon.mod.common.client.render.models.blockbench.PosableState
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.frame.QuadrupedFrame
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 PonytaModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame, QuadrupedFrame {
override val rootPart = root.registerChildWithAllChildren("ponyta")
override val head = getPart("head")
override val foreLeftLeg= getPart("leg_front_left")
override val foreRightLeg = getPart("leg_front_right")
override val hindLeftLeg = getPart("leg_back_left")
override val hindRightLeg = getPart("leg_back_right")
override var portraitScale = 3.0F
override var portraitTranslation = Vec3(-0.6, -0.2, 0.0)
override var profileScale = 0.9F
override var profileTranslation = Vec3(0.0, 0.43, 0.0)
lateinit var standing: Pose
lateinit var walk: Pose
lateinit var sleep: Pose
override val cryAnimation = CryProvider { bedrockStateful("ponyta", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("ponyta", "blink") }
val quirk = quirk(secondsBetweenOccurrences = 60F to 360F) { bedrockStateful("ponyta", "quirk1") }
sleep = registerPose(
poseType = PoseType.SLEEP,
animations = arrayOf(bedrock("ponyta", "sleep"))
)
standing = registerPose(
poseName = "standing",
poseTypes = STATIONARY_POSES + UI_POSES,
transformTicks = 10,
quirks = arrayOf(blink, quirk),
animations = arrayOf(
singleBoneLook(),
bedrock("ponyta", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = MOVING_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("ponyta", "ground_walk")
)
)
}
override fun getFaintAnimation(state: PosableState) = bedrockStateful("ponyta", "faint")
}
@@ -0,0 +1,66 @@
/*
* 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 PrimeapeModel(root: ModelPart) : PokemonPosableModel(root) {
override val rootPart = root.registerChildWithAllChildren("primeape")
override var portraitScale = 1.4F
override var portraitTranslation = Vec3(0.0, 0.1, 0.0)
override var profileScale = 1.0F
override var profileTranslation = Vec3(0.0, 0.3, 0.0)
lateinit var sleep: Pose
lateinit var standing: Pose
lateinit var walk: Pose
override val cryAnimation = CryProvider { bedrockStateful("primeape", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("primeape", "blink")}
standing = registerPose(
poseName = "standing",
poseTypes = STATIONARY_POSES + UI_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
bedrock("primeape", "ground_idle")
)
)
sleep = registerPose(
poseType = PoseType.SLEEP,
animations = arrayOf(bedrock("primeape", "sleep"))
)
walk = registerPose(
poseName = "walk",
poseTypes = MOVING_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
bedrock("primeape", "ground_walk")
)
)
}
override fun getFaintAnimation(state: PosableState) = bedrockStateful("primeape", "faint")
}
@@ -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.gen1
import com.cobblemon.mod.common.client.render.models.blockbench.PosableState
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 com.cobblemon.mod.common.entity.PoseType.Companion.UI_POSES
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class PsyduckModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
override val rootPart = root.registerChildWithAllChildren("psyduck")
override val head = getPart("head")
override var portraitScale = 2.0F
override var portraitTranslation = Vec3(-0.1, -0.55, 0.0)
override var profileScale = 0.95F
override var profileTranslation = Vec3(0.0, 0.32, 0.0)
lateinit var sleep: CobblemonPose
lateinit var standing: CobblemonPose
lateinit var walk: CobblemonPose
lateinit var float: CobblemonPose
lateinit var swim: CobblemonPose
override val cryAnimation = CryProvider { bedrockStateful("psyduck", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("psyduck", "blink")}
standing = registerPose(
poseName = "standing",
poseTypes = UI_POSES + PoseType.STAND,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("psyduck", "ground_idle")
)
)
sleep = registerPose(
poseType = PoseType.SLEEP,
animations = arrayOf(bedrock("psyduck", "sleep"))
)
walk = registerPose(
poseName = "walk",
poseType = PoseType.WALK,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("psyduck", "ground_walk")
)
)
float = registerPose(
poseType = PoseType.FLOAT,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("psyduck", "water_idle")
)
)
swim = registerPose(
poseType = PoseType.SWIM,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("psyduck", "water_swim")
)
)
}
override fun getFaintAnimation(state: PosableState) = bedrockStateful("psyduck", "faint")
}
@@ -0,0 +1,83 @@
/*
* 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.frame.HeadedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.frame.QuadrupedFrame
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 RapidashGalarianModel (root: ModelPart) : PokemonPosableModel(root), HeadedFrame, QuadrupedFrame {
override val rootPart = root.registerChildWithAllChildren("rapidash_galar")
override val head = getPart("neck")
override val foreLeftLeg = getPart("leg_front_left")
override val foreRightLeg = getPart("leg_front_right")
override val hindLeftLeg = getPart("leg_back_left")
override val hindRightLeg = getPart("leg_back_right")
override var portraitScale = 1.86F
override var portraitTranslation = Vec3(-0.5, 1.3, 0.0)
override var profileScale = 0.67F
override var profileTranslation = Vec3(0.0, 0.72, 0.0)
lateinit var standing: CobblemonPose
lateinit var walk: CobblemonPose
lateinit var battle_idle: CobblemonPose
override val cryAnimation = CryProvider { bedrockStateful("rapidash_galar", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("rapidash_galar", "blink") }
standing = registerPose(
poseName = "standing",
poseTypes = PoseType.UI_POSES + PoseType.STATIONARY_POSES,
quirks = arrayOf(blink),
condition = { !it.isBattling },
animations = arrayOf(
singleBoneLook(),
bedrock("rapidash_galar", "ground_idle"),
bedrock("rapidash_galar", "hair")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = PoseType.MOVING_POSES,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("rapidash_galar", "ground_walk"),
bedrock("rapidash_galar", "hair")
)
)
battle_idle = registerPose(
poseName = "battle_idle",
poseTypes = PoseType.STATIONARY_POSES,
condition = { it.isBattling },
animations = arrayOf(
singleBoneLook(),
bedrock("rapidash_galar", "battle_idle"),
bedrock("rapidash_galar", "hair")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("rapidash_galar", "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.PosableState
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.frame.QuadrupedFrame
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 com.cobblemon.mod.common.util.isBattling
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class RapidashModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame, QuadrupedFrame {
override val rootPart = root.registerChildWithAllChildren("rapidash")
override val head = getPart("head")
override val foreLeftLeg= getPart("leg_front_left")
override val foreRightLeg = getPart("leg_front_right")
override val hindLeftLeg = getPart("leg_back_left")
override val hindRightLeg = getPart("leg_back_right")
override var portraitScale = 2.5F
override var portraitTranslation = Vec3(-0.7, 1.11, 0.0)
override var profileScale = 0.75F
override var profileTranslation = Vec3(0.0, 0.65, 0.0)
lateinit var standing: Pose
lateinit var walk: Pose
lateinit var sleep: Pose
lateinit var battling: Pose
override val cryAnimation = CryProvider { bedrockStateful("rapidash", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("rapidash", "blink") }
sleep = registerPose(
poseType = PoseType.SLEEP,
animations = arrayOf(bedrock("rapidash", "sleep"))
)
standing = registerPose(
poseName = "standing",
poseTypes = STATIONARY_POSES + UI_POSES,
transformTicks = 10,
condition = { !it.isBattling },
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("rapidash", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = MOVING_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("rapidash", "ground_walk")
)
)
battling = registerPose(
poseName = "battlestanding",
poseTypes = STATIONARY_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
condition = { it.isBattling },
animations = arrayOf(
singleBoneLook(),
bedrock("rapidash", "ground_idle")
)
)
}
override fun getFaintAnimation(state: PosableState) = if (state.isPosedIn(standing, walk, sleep)) bedrockStateful("rapidash", "faint") else
if (state.isPosedIn(battling)) bedrockStateful("rapidash", "battle_faint")
else null
}
@@ -0,0 +1,66 @@
/*
* 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.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.Pose
import com.cobblemon.mod.common.entity.PoseType
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 RaticateAlolanModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
override val rootPart = root.registerChildWithAllChildren("raticate_alolan")
override val head = getPart("head")
override var portraitScale = 1.5F
override var portraitTranslation = Vec3(-0.2, 0.1, 0.0)
override var profileScale = 1.0F
override var profileTranslation = Vec3(0.0, 0.22, 0.0)
lateinit var sleep: Pose
lateinit var standing: Pose
lateinit var walk: Pose
override val cryAnimation = CryProvider { bedrockStateful("raticate_alolan", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("raticate_alolan", "blink")}
sleep = registerPose(
poseType = PoseType.SLEEP,
animations = arrayOf(bedrock("raticate_alolan", "sleep"))
)
standing = registerPose(
poseName = "standing",
poseTypes = STATIONARY_POSES + UI_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("raticate_alolan", "ground_idle")
)
)
walk = registerPose(
poseType = PoseType.WALK,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("raticate_alolan", "ground_walk")
)
)
}
override fun getFaintAnimation(state: PosableState) = bedrockStateful("raticate_alolan", "faint")
}
@@ -0,0 +1,65 @@
/*
* 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.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.Pose
import com.cobblemon.mod.common.entity.PoseType
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 RaticateModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
override val rootPart = root.registerChildWithAllChildren("raticate")
override val head = getPart("head")
override var portraitScale = 1.5F
override var portraitTranslation = Vec3(-0.2, 0.0, 0.0)
override var profileScale = 1.0F
override var profileTranslation = Vec3(0.0, 0.22, 0.0)
lateinit var sleep: Pose
lateinit var standing: Pose
lateinit var walk: Pose
override val cryAnimation = CryProvider { bedrockStateful("raticate", "cry") }
override fun registerPoses() {
sleep = registerPose(
poseType = PoseType.SLEEP,
animations = arrayOf(bedrock("raticate", "sleep"))
)
val blink = quirk { bedrockStateful("raticate", "blink")}
standing = registerPose(
poseName = "standing",
poseTypes = STATIONARY_POSES + UI_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("raticate", "ground_idle")
)
)
walk = registerPose(
poseType = PoseType.WALK,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("raticate", "ground_walk")
)
)
}
override fun getFaintAnimation(state: PosableState) = bedrockStateful("raticate", "faint")
}
@@ -0,0 +1,72 @@
/*
* 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.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.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 SandslashModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
override val rootPart = root.registerChildWithAllChildren("sandslash")
override val head = getPart("head")
override var portraitScale = 2.0F
override var portraitTranslation = Vec3(-0.15, 0.0, 0.0)
override var profileScale = 0.8F
override var profileTranslation = Vec3(0.0, 0.55, 0.0)
lateinit var sleep: Pose
lateinit var standing: Pose
lateinit var walk: Pose
override val cryAnimation = CryProvider { bedrockStateful("sandslash", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("sandslash", "blink")}
standing = registerPose(
poseName = "standing",
poseTypes = STATIONARY_POSES + UI_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("sandslash", "ground_idle")
)
)
sleep = registerPose(
poseType = PoseType.SLEEP,
animations = arrayOf(bedrock("sandslash", "sleep"))
)
walk = registerPose(
poseName = "walk",
poseTypes = MOVING_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("sandslash", "ground_walk")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("sandslash", "faint") else null
}
@@ -0,0 +1,188 @@
/*
* 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.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.CobblemonPose
import com.cobblemon.mod.common.client.render.models.blockbench.pose.ModelPartTransformation
import com.cobblemon.mod.common.entity.PoseType
import com.cobblemon.mod.common.entity.PoseType.Companion.STATIONARY_POSES
import com.cobblemon.mod.common.entity.PoseType.Companion.UI_POSES
import com.cobblemon.mod.common.util.asExpressionLike
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 SquirtleModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
override val rootPart = root.registerChildWithAllChildren("squirtle")
override val head = getPart("head_ai")
override var portraitScale = 2.02F
override var portraitTranslation = Vec3(-0.26, -0.21, 0.0)
override var profileScale = 0.78F
override var profileTranslation = Vec3(0.0, 0.57, 0.0)
lateinit var sleep: CobblemonPose
lateinit var standing: CobblemonPose
lateinit var walk: CobblemonPose
lateinit var battleidle: CobblemonPose
lateinit var shoulderLeft: CobblemonPose
lateinit var shoulderRight: CobblemonPose
lateinit var floating: CobblemonPose
lateinit var swimming: CobblemonPose
lateinit var water_surface_idle: CobblemonPose
lateinit var water_surface_swim: CobblemonPose
val shoulderOffset = 5.5
val wateroffset = -10
override fun registerPoses() {
animations["physical"] = "q.bedrock_primary('squirtle', 'physical', 'look', q.curve('symmetrical_wide'))".asExpressionLike()
animations["special"] = "q.bedrock_primary('squirtle', 'special', 'look', q.curve('symmetrical_wide'))".asExpressionLike()
animations["status"] = "q.bedrock_primary('squirtle', 'status', q.curve('symmetrical_wide'))".asExpressionLike()
animations["recoil"] = "q.bedrock_stateful('squirtle', 'recoil')".asExpressionLike()
animations["cry"] = "q.bedrock_stateful('squirtle', 'cry')".asExpressionLike()
val faint = "q.bedrock_primary('squirtle', 'faint', q.curve('one'))".asExpressionLike()
val blink = quirk { bedrockStateful("squirtle", "blink") }
val quirkidle = quirk { bedrockStateful("squirtle", "quirk_ground_idle") }
val quirkwater = quirk { bedrockStateful("squirtle", "quirk_water") }
sleep = registerPose(
poseType = PoseType.SLEEP,
quirks = arrayOf(blink),
namedAnimations = mutableMapOf("faint" to faint),
animations = arrayOf(bedrock("squirtle", "sleep"))
)
standing = registerPose(
poseName = "standing",
poseTypes = setOf(PoseType.STAND) + UI_POSES,
quirks = arrayOf(blink, quirkidle),
condition = { !it.isBattling && !it.isInWater },
namedAnimations = mutableMapOf("faint" to faint),
animations = arrayOf(
singleBoneLook(),
bedrock("squirtle", "ground_idle")
)
)
battleidle = registerPose(
poseType = PoseType.STAND,
poseName = "battle_standing",
quirks = arrayOf(blink, quirkidle),
condition = { it.isBattling },
namedAnimations = mutableMapOf("faint" to faint),
animations = arrayOf(
singleBoneLook(),
bedrock("squirtle", "battle_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = setOf(PoseType.WALK),
quirks = arrayOf(blink),
condition = { !it.isInWater },
namedAnimations = mutableMapOf("faint" to faint),
animations = arrayOf(
singleBoneLook(),
bedrock("squirtle", "ground_walk")
)
)
floating = registerPose(
poseName = "floating",
transformTicks = 10,
poseType = PoseType.FLOAT,
namedAnimations = mutableMapOf("faint" to faint),
quirks = arrayOf(blink, quirkwater),
animations = arrayOf(
singleBoneLook(),
bedrock("squirtle", "water_idle")
)
)
swimming = registerPose(
poseName = "swimming",
poseType = PoseType.SWIM,
transformTicks = 10,
namedAnimations = mutableMapOf("faint" to faint),
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("squirtle", "water_swim"),
)
)
water_surface_idle = registerPose(
poseName = "surface_idle",
poseType = PoseType.STAND,
namedAnimations = mutableMapOf("faint" to faint),
quirks = arrayOf(blink),
condition = { it.isInWater },
animations = arrayOf(
singleBoneLook(),
bedrock("squirtle", "surfacewater_idle"),
),
transformedParts = arrayOf(
rootPart.createTransformation().addPosition(ModelPartTransformation.Y_AXIS, wateroffset)
)
)
water_surface_swim = registerPose(
poseName = "surface_swim",
poseType = PoseType.WALK,
quirks = arrayOf(blink),
condition = { it.isInWater },
namedAnimations = mutableMapOf("faint" to faint),
animations = arrayOf(
singleBoneLook(),
bedrock("squirtle", "surfacewater_swim"),
),
transformedParts = arrayOf(
rootPart.createTransformation().addPosition(ModelPartTransformation.Y_AXIS, wateroffset)
)
)
shoulderLeft = registerPose(
poseType = PoseType.SHOULDER_LEFT,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("squirtle", "shoulder_left")
),
transformedParts = arrayOf(
rootPart.createTransformation().addPosition(ModelPartTransformation.Y_AXIS, -2)
)
)
shoulderRight = registerPose(
poseType = PoseType.SHOULDER_RIGHT,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("squirtle", "shoulder_right")
),
transformedParts = arrayOf(
rootPart.createTransformation().addPosition(ModelPartTransformation.Y_AXIS, -2)
)
)
properties["item_display_context"] = "THIRD_PERSON_RIGHT_HAND"
}
}
@@ -0,0 +1,65 @@
/*
* 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.animation.BipedWalkAnimation
import com.cobblemon.mod.common.client.render.models.blockbench.frame.BipedFrame
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.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 TangelaModel(root: ModelPart) : PokemonPosableModel(root), BipedFrame {
override val rootPart = root.registerChildWithAllChildren("tangela")
override val leftLeg = getPart("leftfoot")
override val rightLeg = getPart("rightfoot")
override var portraitScale = 2.2F
override var portraitTranslation = Vec3(-0.1, -1.6, 0.0)
override var profileScale = 1.2F
override var profileTranslation = Vec3(0.0, -0.09, 0.0)
lateinit var standing: CobblemonPose
lateinit var walk: CobblemonPose
override val cryAnimation = CryProvider { bedrockStateful("tangela", "cry") }
// Animating illegally rn. Created a new file for this cry. hope it works
override fun registerPoses() {
standing = registerPose(
poseName = "standing",
poseTypes = STATIONARY_POSES + UI_POSES,
transformTicks = 10,
animations = arrayOf(
//bedrock("tangela", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = MOVING_POSES,
transformTicks = 10,
animations = arrayOf(
BipedWalkAnimation(this, amplitudeMultiplier = 1F, periodMultiplier = 0.4F)
//bedrock("tangela", "ground_walk")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("tangela", "faint") else null
}
@@ -0,0 +1,111 @@
/*
* 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.frame.BiWingedFrame
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.pose.CobblemonPose
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 com.cobblemon.mod.common.util.isBattling
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class VenomothModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame, BiWingedFrame {
override val rootPart = root.registerChildWithAllChildren("venomoth")
override val head = getPart("head")
override val leftWing = getPart("left_wings")
override val rightWing = getPart("right_wings")
override var portraitScale = 1.8F
override var portraitTranslation = Vec3(-0.46, 0.1, 0.0)
override var profileScale = 0.8F
override var profileTranslation = Vec3(0.0, 0.6, 0.0)
lateinit var sleep: CobblemonPose
lateinit var standing: CobblemonPose
lateinit var walk: CobblemonPose
lateinit var battleidle: CobblemonPose
lateinit var hover: CobblemonPose
lateinit var flying: CobblemonPose
override val cryAnimation = CryProvider { bedrockStateful("venomoth", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("venomoth", "blink") }
val quirk1 = quirk { bedrockStateful("venomoth", "quirk1") }
val quirk2 = quirk { bedrockStateful("venomoth", "quirk2") }
val quirkSleep = quirk { bedrockStateful("venomoth", "quirk_sleep") }
sleep = registerPose(
poseType = PoseType.SLEEP,
quirks = arrayOf(quirk1, quirkSleep),
animations = arrayOf(bedrock("venomoth", "sleep"))
)
standing = registerPose(
poseName = "standing",
poseTypes = STATIONARY_POSES + UI_POSES - PoseType.HOVER,
condition = { !it.isBattling },
quirks = arrayOf(blink, quirk1, quirk2),
animations = arrayOf(
bedrock("venomoth", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = MOVING_POSES - PoseType.FLY,
quirks = arrayOf(blink, quirk1, quirk2),
animations = arrayOf(
bedrock("venomoth", "ground_walk")
)
)
hover = registerPose(
poseName = "hover",
poseType = PoseType.HOVER,
quirks = arrayOf(blink, quirk1, quirk2),
animations = arrayOf(
bedrock("venomoth", "air_idle")
)
)
flying = registerPose(
poseName = "fly",
poseType = PoseType.FLY,
quirks = arrayOf(blink, quirk1, quirk2),
animations = arrayOf(
bedrock("venomoth", "air_fly")
)
)
battleidle = registerPose(
poseName = "battle_idle",
poseTypes = PoseType.STATIONARY_POSES,
transformTicks = 10,
quirks = arrayOf(blink, quirk1, quirk2),
condition = { it.isBattling },
animations = arrayOf(
bedrock("venomoth", "battle_idle")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("venomoth", "faint") else null
}
@@ -0,0 +1,83 @@
/*
* 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.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 com.cobblemon.mod.common.util.isBattling
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class VenonatModel(root: ModelPart) : PokemonPosableModel(root) {
override val rootPart = root.registerChildWithAllChildren("venonat")
override var portraitScale = 1.66F
override var portraitTranslation = Vec3(-0.08, -0.66, 0.0)
override var profileScale = 0.86F
override var profileTranslation = Vec3(0.0, 0.43, 0.0)
lateinit var sleep: CobblemonPose
lateinit var standing: CobblemonPose
lateinit var walk: CobblemonPose
lateinit var battleidle: CobblemonPose
override val cryAnimation = CryProvider { bedrockStateful("venonat", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("venonat", "blink") }
val quirk1 = quirk { bedrockStateful("venonat", "quirk1") }
val quirk2 = quirk { bedrockStateful("venonat", "quirk2") }
sleep = registerPose(
poseType = PoseType.SLEEP,
quirks = arrayOf(quirk1, quirk2),
animations = arrayOf(bedrock("venonat", "sleep"))
)
standing = registerPose(
poseName = "standing",
poseTypes = STATIONARY_POSES + UI_POSES,
condition = { !it.isBattling },
quirks = arrayOf(blink, quirk1, quirk2),
animations = arrayOf(
bedrock("venonat", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = MOVING_POSES,
quirks = arrayOf(blink, quirk1, quirk2),
animations = arrayOf(
bedrock("venonat", "ground_walk")
)
)
battleidle = registerPose(
poseName = "battle_idle",
poseTypes = PoseType.STATIONARY_POSES,
transformTicks = 10,
quirks = arrayOf(blink, quirk1, quirk2),
condition = { it.isBattling },
animations = arrayOf(
bedrock("venonat", "battle_idle")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("venonat", "faint") else null
}
@@ -0,0 +1,60 @@
/*
* 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 net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class VoltorbHisuianModel (root: ModelPart) : PokemonPosableModel(root) {
override val rootPart = root.registerChildWithAllChildren("voltorb_hisuian")
override var portraitScale = 2.0F
override var portraitTranslation = Vec3(-0.2, -1.2, 0.0)
override var profileScale = 1.1F
override var profileTranslation = Vec3(0.0, 0.1, 0.0)
lateinit var standing: CobblemonPose
lateinit var walk: CobblemonPose
override val cryAnimation = CryProvider { bedrockStateful("voltorb_hisuian", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("voltorb_hisuian", "blink") }
standing = registerPose(
poseName = "standing",
poseTypes = PoseType.STATIONARY_POSES + PoseType.UI_POSES,
transformTicks = 0,
quirks = arrayOf(blink),
animations = arrayOf(
bedrock("voltorb_hisuian", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = PoseType.MOVING_POSES,
onTransitionedInto = { it?.reset() },
transformTicks = 0,
animations = arrayOf(
bedrock("voltorb_hisuian", "ground_walk")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("voltorb_hisuian", "faint") else null
}
@@ -0,0 +1,61 @@
/*
* 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.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 VoltorbModel(root: ModelPart) : PokemonPosableModel(root) {
override val rootPart = root.registerChildWithAllChildren("voltorb")
override var portraitScale = 2.0F
override var portraitTranslation = Vec3(-0.2, -1.2, 0.0)
override var profileScale = 1.1F
override var profileTranslation = Vec3(0.0, 0.1, 0.0)
lateinit var standing: CobblemonPose
lateinit var walk: CobblemonPose
override val cryAnimation = CryProvider { bedrockStateful("voltorb", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("voltorb", "blink")}
standing = registerPose(
poseName = "standing",
poseTypes = STATIONARY_POSES + UI_POSES,
transformTicks = 0,
quirks = arrayOf(blink),
animations = arrayOf(
bedrock("voltorb", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = MOVING_POSES,
onTransitionedInto = { it?.reset() },
transformTicks = 0,
animations = arrayOf(
bedrock("voltorb", "ground_walk")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("voltorb", "faint") else null
}
@@ -0,0 +1,80 @@
/*
* 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.animation.QuadrupedWalkAnimation
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.frame.QuadrupedFrame
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.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 VulpixModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame, QuadrupedFrame {
override val rootPart = root.registerChildWithAllChildren("vulpix")
override val head = getPart("head")
override val foreLeftLeg= getPart("leg_front_left")
override val foreRightLeg = getPart("leg_front_right")
override val hindLeftLeg = getPart("leg_back_left")
override val hindRightLeg = getPart("leg_back_right")
override var portraitScale = 1.7F
override var portraitTranslation = Vec3(-0.1, -0.15, 0.0)
override var profileScale = 0.7F
override var profileTranslation = Vec3(0.0, 0.7, 0.0)
lateinit var standing: CobblemonPose
lateinit var walk: CobblemonPose
lateinit var sleep: CobblemonPose
override val cryAnimation = CryProvider { bedrockStateful("vulpix", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("vulpix", "blink")}
sleep = registerPose(
poseType = PoseType.SLEEP,
animations = arrayOf(bedrock("vulpix", "sleep"))
)
standing = registerPose(
poseName = "standing",
poseTypes = STATIONARY_POSES + UI_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
// bedrock("vulpix", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = MOVING_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
QuadrupedWalkAnimation(this, periodMultiplier = 0.5F),
// bedrock("vulpix", "ground_walk")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("vulpix", "faint") else null
}
@@ -0,0 +1,157 @@
/*
* 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.createTransformation
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.pose.CobblemonPose
import com.cobblemon.mod.common.client.render.models.blockbench.pose.ModelPartTransformation
import com.cobblemon.mod.common.entity.PoseType
import com.cobblemon.mod.common.entity.PoseType.Companion.UI_POSES
import com.cobblemon.mod.common.util.asExpressionLike
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 WartortleModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
override val rootPart = root.registerChildWithAllChildren("wartortle")
override val head = getPart("head_ai")
override var portraitScale = 1.57F
override var portraitTranslation = Vec3(-0.17, 0.54, 0.0)
override var profileScale = 0.69F
override var profileTranslation = Vec3(0.0, 0.69, 0.0)
lateinit var sleep: CobblemonPose
lateinit var standing: CobblemonPose
lateinit var walk: CobblemonPose
lateinit var battleidle: CobblemonPose
lateinit var shoulderLeft: CobblemonPose
lateinit var shoulderRight: CobblemonPose
lateinit var floating: CobblemonPose
lateinit var swimming: CobblemonPose
lateinit var water_surface_idle: CobblemonPose
lateinit var water_surface_swim: CobblemonPose
val shoulderOffset = 5.5
val wateroffset = -10
override fun registerPoses() {
animations["physical"] = "q.bedrock_primary('wartortle', 'physical', 'look', q.curve('symmetrical_wide'))".asExpressionLike()
animations["special"] = "q.bedrock_primary('wartortle', 'special', 'look', q.curve('symmetrical_wide'))".asExpressionLike()
animations["status"] = "q.bedrock_primary('wartortle', 'status', q.curve('symmetrical_wide'))".asExpressionLike()
animations["recoil"] = "q.bedrock_stateful('wartortle', 'recoil')".asExpressionLike()
animations["cry"] = "q.bedrock_stateful('wartortle', 'cry')".asExpressionLike()
val faint = "q.bedrock_primary('wartortle', 'faint', q.curve('one'))".asExpressionLike()
val blink = quirk { bedrockStateful("wartortle", "blink") }
val quirkidle = quirk { bedrockStateful("wartortle", "quirk_idle") }
sleep = registerPose(
poseType = PoseType.SLEEP,
quirks = arrayOf(blink),
namedAnimations = mutableMapOf("faint" to faint),
animations = arrayOf(bedrock("wartortle", "sleep"))
)
standing = registerPose(
poseName = "standing",
poseTypes = setOf(PoseType.STAND) + UI_POSES,
quirks = arrayOf(blink, quirkidle),
condition = { !it.isBattling && !it.isUnderWater},
namedAnimations = mutableMapOf("faint" to faint),
animations = arrayOf(
singleBoneLook(),
bedrock("wartortle", "ground_idle")
)
)
battleidle = registerPose(
poseTypes = setOf(PoseType.STAND),
poseName = "battle_standing",
quirks = arrayOf(blink, quirkidle),
condition = { it.isBattling },
namedAnimations = mutableMapOf("faint" to faint),
animations = arrayOf(
singleBoneLook(),
bedrock("wartortle", "battle_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = setOf(PoseType.WALK),
quirks = arrayOf(blink),
namedAnimations = mutableMapOf("faint" to faint),
animations = arrayOf(
singleBoneLook(),
bedrock("wartortle", "ground_walk")
)
)
floating = registerPose(
poseName = "floating",
transformTicks = 10,
poseType = PoseType.FLOAT,
namedAnimations = mutableMapOf("faint" to faint),
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("wartortle", "water_idle")
)
)
swimming = registerPose(
poseName = "swimming",
transformTicks = 10,
namedAnimations = mutableMapOf("faint" to faint),
poseType = PoseType.SWIM,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("wartortle", "water_swim"),
)
)
water_surface_idle = registerPose(
poseName = "surface_idle",
poseType = PoseType.STAND,
namedAnimations = mutableMapOf("faint" to faint),
quirks = arrayOf(blink),
condition = { it.isInWater },
animations = arrayOf(
singleBoneLook(),
bedrock("wartortle", "surfacewater_idle"),
),
transformedParts = arrayOf(
rootPart.createTransformation().addPosition(ModelPartTransformation.Y_AXIS, wateroffset)
)
)
water_surface_swim = registerPose(
poseName = "surface_swim",
poseType = PoseType.WALK,
quirks = arrayOf(blink),
condition = { it.isInWater },
namedAnimations = mutableMapOf("faint" to faint),
animations = arrayOf(
singleBoneLook(),
bedrock("wartortle", "surfacewater_swim"),
),
transformedParts = arrayOf(
rootPart.createTransformation().addPosition(ModelPartTransformation.Y_AXIS, wateroffset)
)
)
}
}
@@ -0,0 +1,83 @@
/*
* 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.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.Pose
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 BayleefModel (root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
override val rootPart = root.registerChildWithAllChildren("bayleef")
override val head = getPart("head")
override var portraitScale = 1.8F
override var portraitTranslation = Vec3(-0.5, 0.7, 0.0)
override var profileScale = 0.71F
override var profileTranslation = Vec3(0.0, 0.65, 0.0)
lateinit var standing: Pose
lateinit var walking: Pose
lateinit var sleep: Pose
lateinit var battleidle: Pose
override val cryAnimation = CryProvider { bedrockStateful("bayleef", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("bayleef", "blink") }
sleep = registerPose(
poseType = PoseType.SLEEP,
animations = arrayOf(bedrock("bayleef", "sleep"))
)
standing = registerPose(
poseName = "standing",
poseTypes = PoseType.STATIONARY_POSES + PoseType.UI_POSES,
transformTicks = 10,
condition = { !it.isBattling },
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("bayleef", "ground_idle")
)
)
walking = registerPose(
poseName = "walking",
poseTypes = PoseType.MOVING_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("bayleef", "ground_walk")
)
)
battleidle = registerPose(
poseName = "battle_idle",
poseTypes = PoseType.STATIONARY_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
condition = { it.isBattling },
animations = arrayOf(
singleBoneLook(),
bedrock("bayleef", "battle_idle")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walking, battleidle, sleep)) bedrockStateful("bayleef", "faint") else null
}
@@ -0,0 +1,80 @@
/*
* 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.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.Pose
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 ChikoritaModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
override val rootPart = root.registerChildWithAllChildren("chikorita")
override val head = getPart("head")
override var portraitScale = 1.7F
override var portraitTranslation = Vec3(-0.1, -0.32, 0.0)
override var profileScale = 0.71F
override var profileTranslation = Vec3(0.0, 0.67, 0.0)
lateinit var standing: Pose
lateinit var walking: Pose
lateinit var sleep: Pose
lateinit var battleidle: Pose
override val cryAnimation = CryProvider { bedrockStateful("chikorita", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("chikorita", "blink") }
sleep = registerPose(
poseType = PoseType.SLEEP,
animations = arrayOf(bedrock("chikorita", "sleep"))
)
standing = registerPose(
poseName = "standing",
poseTypes = PoseType.STATIONARY_POSES + PoseType.UI_POSES,
transformTicks = 10,
condition = { !it.isBattling },
quirks = arrayOf(blink),
animations = arrayOf(
bedrock("chikorita", "ground_idle")
)
)
walking = registerPose(
poseName = "walking",
poseTypes = PoseType.MOVING_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
bedrock("chikorita", "ground_walk")
)
)
battleidle = registerPose(
poseName = "battle_idle",
poseTypes = PoseType.STATIONARY_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
condition = { it.isBattling },
animations = arrayOf(
bedrock("chikorita", "battle_idle")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walking, battleidle, sleep)) bedrockStateful("chikorita", "faint") else null
}
@@ -0,0 +1,152 @@
/*
* 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 CroconawModel (root: ModelPart) : PokemonPosableModel(root), HeadedFrame, BipedFrame {
override val rootPart = root.registerChildWithAllChildren("croconaw")
override val head = getPart("head")
override val leftLeg = getPart("leg_left")
override val rightLeg = getPart("leg_right")
override var portraitScale = 1.3F
override var portraitTranslation = Vec3(-0.2, 1.0, 0.0)
override var profileScale = 0.6F
override var profileTranslation = Vec3(0.0, 0.76, 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("croconaw", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("croconaw", "blink")}
sleep = registerPose(
poseName = "sleeping",
poseType = PoseType.SLEEP,
condition = { !it.isInWater },
animations = arrayOf(bedrock("croconaw", "sleep"))
)
watersleep = registerPose(
poseName = "water_sleeping",
poseType = PoseType.SLEEP,
condition = { it.isInWater },
animations = arrayOf(bedrock("croconaw", "water_sleep"))
)
standing = registerPose(
poseName = "standing",
poseTypes = PoseType.UI_POSES + PoseType.STAND,
condition = { !it.isBattling && !it.isInWater && !it.isUnderWater },
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("croconaw", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseType = PoseType.WALK,
condition = { !it.isInWater && !it.isUnderWater },
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("croconaw", "ground_walk")
)
)
floating = registerPose(
poseName = "floating",
poseType = PoseType.FLOAT,
condition = { it.isUnderWater },
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("croconaw", "water_idle")
)
)
swimming = registerPose(
poseName = "swimming",
transformTicks = 10,
condition = { it.isUnderWater },
poseType = PoseType.SWIM,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("croconaw", "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("croconaw", "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("croconaw", "surfacewater_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("croconaw", "surfacewater_swim"),
),
transformedParts = arrayOf(rootPart.createTransformation().addPosition(ModelPartTransformation.Y_AXIS, wateroffset))
)
}
override fun getFaintAnimation(state: PosableState) = if (state.isPosedIn(standing, walk, battleidle, sleep)) bedrockStateful("croconaw", "faint") else if (state.isPosedIn(water_surface_idle, water_surface_swim, watersleep )) bedrockStateful("croconaw", "faint") else null
}
@@ -0,0 +1,84 @@
/*
* 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.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 com.cobblemon.mod.common.util.isBattling
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class CyndaquilHisuiBiasModel (root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
override val rootPart = root.registerChildWithAllChildren("cyndaquil_hisui_bias")
override val head = getPart("head")
override var portraitScale = 1.4F
override var portraitTranslation = Vec3(-0.26, 0.0, 0.0)
override var profileScale = 0.65F
override var profileTranslation = Vec3(0.0, 0.8, 0.0)
lateinit var standing: CobblemonPose
lateinit var walking: CobblemonPose
lateinit var sleep: CobblemonPose
lateinit var battleidle: CobblemonPose
override val cryAnimation = CryProvider { if (it.isBattling) bedrockStateful("cyndaquil_hisui_bias", "battle_cry") else bedrockStateful("cyndaquil_hisui_bias", "cry") }
override fun registerPoses() {
// val sneeze = quirk { bedrockStateful("cyndaquil_hisui_bias", "sneeze_quirk") }
sleep = registerPose(
poseType = PoseType.SLEEP,
animations = arrayOf(bedrock("cyndaquil_hisui_bias", "sleep"))
)
standing = registerPose(
poseName = "standing",
poseTypes = PoseType.STATIONARY_POSES + PoseType.UI_POSES,
transformTicks = 10,
condition = { !it.isBattling },
// quirks = arrayOf(sneeze),
animations = arrayOf(
singleBoneLook(),
bedrock("cyndaquil_hisui_bias", "ground_idle")
)
)
walking = registerPose(
poseName = "walking",
poseTypes = PoseType.MOVING_POSES,
transformTicks = 10,
// quirks = arrayOf(sneeze),
animations = arrayOf(
singleBoneLook(),
bedrock("cyndaquil_hisui_bias", "ground_walk")
)
)
battleidle = registerPose(
poseName = "battle_idle",
poseTypes = PoseType.STATIONARY_POSES,
transformTicks = 10,
// quirks = arrayOf(sneeze),
condition = { it.isBattling },
animations = arrayOf(
singleBoneLook(minPitch = 0F),
bedrock("cyndaquil_hisui_bias", "battle_idle")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walking, battleidle, sleep)) bedrockStateful("cyndaquil_hisui_bias", "faint") else null
}
@@ -0,0 +1,84 @@
/*
* 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.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.Pose
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 CyndaquilModel (root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
override val rootPart = root.registerChildWithAllChildren("cyndaquil")
override val head = getPart("head")
override var portraitScale = 1.4F
override var portraitTranslation = Vec3(-0.26, 0.0, 0.0)
override var profileScale = 0.65F
override var profileTranslation = Vec3(0.0, 0.8, 0.0)
lateinit var standing: Pose
lateinit var walking: Pose
lateinit var sleep: Pose
lateinit var battleidle: Pose
override val cryAnimation = CryProvider { if (it.isBattling) bedrockStateful("cyndaquil", "battle_cry") else bedrockStateful("cyndaquil", "cry") }
override fun registerPoses() {
// val sneeze = quirk { bedrockStateful("cyndaquil", "sneeze_quirk") }
sleep = registerPose(
poseType = PoseType.SLEEP,
animations = arrayOf(bedrock("cyndaquil", "sleep"))
)
standing = registerPose(
poseName = "standing",
poseTypes = PoseType.STATIONARY_POSES + PoseType.UI_POSES,
transformTicks = 10,
condition = { !it.isBattling },
// quirks = arrayOf(sneeze),
animations = arrayOf(
singleBoneLook(),
bedrock("cyndaquil", "ground_idle")
)
)
walking = registerPose(
poseName = "walking",
poseTypes = PoseType.MOVING_POSES,
transformTicks = 10,
// quirks = arrayOf(sneeze),
animations = arrayOf(
singleBoneLook(),
bedrock("cyndaquil", "ground_walk")
)
)
battleidle = registerPose(
poseName = "battle_idle",
poseTypes = PoseType.STATIONARY_POSES,
transformTicks = 10,
// quirks = arrayOf(sneeze),
condition = { it.isBattling },
animations = arrayOf(
singleBoneLook(minPitch = 0F),
bedrock("cyndaquil", "battle_idle")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walking, battleidle, sleep)) bedrockStateful("cyndaquil", "faint") else null
}
@@ -0,0 +1,83 @@
/*
* 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.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.Pose
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 MeganiumModel (root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
override val rootPart = root.registerChildWithAllChildren("meganium")
override val head = getPart("head")
override var portraitScale = 1.2F
override var portraitTranslation = Vec3(-0.7, 2.4, 0.0)
override var profileScale = 0.43F
override var profileTranslation = Vec3(0.0, 1.12, 0.0)
lateinit var standing: Pose
lateinit var walking: Pose
lateinit var sleep: Pose
lateinit var battleidle: Pose
override val cryAnimation = CryProvider { bedrockStateful("meganium", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("meganium", "blink") }
sleep = registerPose(
poseType = PoseType.SLEEP,
animations = arrayOf(bedrock("meganium", "sleep"))
)
standing = registerPose(
poseName = "standing",
poseTypes = PoseType.STATIONARY_POSES + PoseType.UI_POSES,
transformTicks = 10,
condition = { !it.isBattling },
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("meganium", "ground_idle")
)
)
walking = registerPose(
poseName = "walking",
poseTypes = PoseType.MOVING_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("meganium", "ground_walk")
)
)
battleidle = registerPose(
poseName = "battle_idle",
poseTypes = PoseType.STATIONARY_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
condition = { it.isBattling },
animations = arrayOf(
singleBoneLook(),
bedrock("meganium", "battle_idle")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walking, battleidle, sleep)) bedrockStateful("meganium", "faint") else null
}
@@ -0,0 +1,88 @@
/*
* 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.PrimaryAnimation
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.Pose
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 QuilavaModel (root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
override val rootPart = root.registerChildWithAllChildren("quilava")
override val head = getPart("head")
override var portraitScale = 1.5F
override var portraitTranslation = Vec3(-0.65, -0.6, 0.0)
override var profileScale = 0.7F
override var profileTranslation = Vec3(0.0, 0.65, 0.0)
lateinit var standing: Pose
lateinit var walking: Pose
lateinit var sleep: Pose
lateinit var battleidle: Pose
override val cryAnimation = CryProvider { if (it.isBattling) bedrockStateful("quilava", "battle_cry") else PrimaryAnimation(bedrockStateful("quilava", "cry")) }
override fun registerPoses() {
val blink = quirk { bedrockStateful("quilava", "blink") }
sleep = registerPose(
poseType = PoseType.SLEEP,
animations = arrayOf(bedrock("quilava", "sleep"))
)
standing = registerPose(
poseName = "standing",
poseTypes = PoseType.STATIONARY_POSES + PoseType.UI_POSES,
transformTicks = 10,
condition = { !it.isBattling },
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("quilava", "fire_idle"),
bedrock("quilava", "ground_idle")
)
)
walking = registerPose(
poseName = "walking",
poseTypes = PoseType.MOVING_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("quilava", "fire_idle"),
bedrock("quilava", "ground_walk")
)
)
battleidle = registerPose(
poseName = "battle_idle",
poseTypes = PoseType.STATIONARY_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
condition = { it.isBattling },
animations = arrayOf(
singleBoneLook(),
bedrock("quilava", "fire_idle"),
bedrock("quilava", "battle_idle")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walking, battleidle, sleep)) bedrockStateful("quilava", "faint") else null
}
@@ -0,0 +1,114 @@
/*
* 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.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 TyphlosionHisuianModel (root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
override val rootPart = root.registerChildWithAllChildren("typhlosion")
override val head = getPart("head")
override var portraitScale = 1.4F
override var portraitTranslation = Vec3(-0.45, 2.37, 0.0)
override var profileScale = 0.5F
override var profileTranslation = Vec3(0.0, 1.0, 0.0)
lateinit var standing: CobblemonPose
lateinit var walking: CobblemonPose
lateinit var sleep: CobblemonPose
lateinit var battleidle: CobblemonPose
val spoopy_flame = getPart("fire_main")
val spoopy_orb1 = getPart("fire_orb_right1")
val spoopy_orb2 = getPart("fire_orb_middle1")
val spoopy_orb3 = getPart("fire_orb_left1")
override val cryAnimation = CryProvider { if (it.isBattling) bedrockStateful("typhlosion_hisuian", "battle_cry") else bedrockStateful("typhlosion_hisuian", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("typhlosion_hisuian", "blink") }
sleep = registerPose(
poseType = PoseType.SLEEP,
transformedParts = arrayOf(
spoopy_flame.createTransformation().withVisibility(visibility = false),
spoopy_orb1.createTransformation().withVisibility(visibility = false),
spoopy_orb2.createTransformation().withVisibility(visibility = false),
spoopy_orb3.createTransformation().withVisibility(visibility = false)
),
animations = arrayOf(bedrock("typhlosion_hisuian", "sleep"))
)
standing = registerPose(
poseName = "standing",
poseTypes = PoseType.STATIONARY_POSES + PoseType.UI_POSES,
transformTicks = 10,
condition = { !it.isBattling },
quirks = arrayOf(blink),
transformedParts = arrayOf(
spoopy_flame.createTransformation().withVisibility(visibility = false),
spoopy_orb1.createTransformation().withVisibility(visibility = false),
spoopy_orb2.createTransformation().withVisibility(visibility = false),
spoopy_orb3.createTransformation().withVisibility(visibility = false)
),
animations = arrayOf(
singleBoneLook(minPitch = 0F),
bedrock("typhlosion_hisuian", "ground_idle")
)
)
walking = registerPose(
poseName = "walking",
poseTypes = PoseType.MOVING_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
transformedParts = arrayOf(
spoopy_flame.createTransformation().withVisibility(visibility = false),
spoopy_orb1.createTransformation().withVisibility(visibility = false),
spoopy_orb2.createTransformation().withVisibility(visibility = false),
spoopy_orb3.createTransformation().withVisibility(visibility = false)
),
animations = arrayOf(
singleBoneLook(minPitch = 0F),
bedrock("typhlosion_hisuian", "ground_walk")
)
)
battleidle = registerPose(
poseName = "battle_idle",
poseTypes = PoseType.STATIONARY_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
transformedParts = arrayOf(
spoopy_flame.createTransformation().withVisibility(visibility = true),
spoopy_orb1.createTransformation().withVisibility(visibility = true),
spoopy_orb2.createTransformation().withVisibility(visibility = true),
spoopy_orb3.createTransformation().withVisibility(visibility = true)
),
condition = { it.isBattling },
animations = arrayOf(
singleBoneLook(minPitch = 0F),
bedrock("typhlosion_hisuian", "battle_idle")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walking, battleidle, sleep)) bedrockStateful("typhlosion_hisuian", "faint") else null
}
@@ -0,0 +1,85 @@
/*
* 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.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.Pose
import com.cobblemon.mod.common.entity.PoseType
import com.cobblemon.mod.common.entity.pokemon.PokemonEntity
import com.cobblemon.mod.common.util.isBattling
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class TyphlosionModel (root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
override val rootPart = root.registerChildWithAllChildren("typhlosion")
override val head = getPart("head")
override var portraitScale = 1.4F
override var portraitTranslation = Vec3(-0.65, 1.8, 0.0)
override var profileScale = 0.5F
override var profileTranslation = Vec3(0.0, 1.0, 0.0)
lateinit var standing: Pose
lateinit var walking: Pose
lateinit var sleep: Pose
lateinit var battleidle: Pose
override val cryAnimation = CryProvider { state -> if ((state.getEntity() as? PokemonEntity)?.isBattling == true) bedrockStateful("typhlosion", "battle_cry") else bedrockStateful("typhlosion", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("typhlosion", "blink") }
sleep = registerPose(
poseType = PoseType.SLEEP,
animations = arrayOf(bedrock("typhlosion", "sleep"))
)
standing = registerPose(
poseName = "standing",
poseTypes = PoseType.STATIONARY_POSES + PoseType.UI_POSES,
transformTicks = 10,
condition = { !it.isBattling },
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(minPitch = 0F),
bedrock("typhlosion", "ground_idle")
)
)
walking = registerPose(
poseName = "walking",
poseTypes = PoseType.MOVING_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(minPitch = 0F),
bedrock("typhlosion", "ground_walk")
)
)
battleidle = registerPose(
poseName = "battle_idle",
poseTypes = PoseType.STATIONARY_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
condition = { it.isBattling },
animations = arrayOf(
singleBoneLook(minPitch = 0F),
bedrock("typhlosion", "battle_idle")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walking, battleidle, sleep)) bedrockStateful("typhlosion", "faint") else null
}
@@ -24,6 +24,7 @@ import com.cobblemon.mod.common.client.render.models.blockbench.pokeball.Ancient
import com.cobblemon.mod.common.client.render.models.blockbench.pokeball.BeastBallModel
import com.cobblemon.mod.common.client.render.models.blockbench.pokeball.PokeBallModel
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen1.*
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen2.*
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen3.*
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen4.*
@@ -217,6 +218,54 @@ object VaryingModelRepository {
inbuilt("ancient_leaden_ball", ::AncientPokeBallModel)
inbuilt("ancient_gigaton_ball", ::AncientPokeBallModel)
inbuilt("squirtle", ::SquirtleModel)
inbuilt("wartortle", ::WartortleModel)
inbuilt("metapod", ::MetapodModel)
inbuilt("butterfree", ::ButterfreeModel)
inbuilt("beedrill", ::BeedrillModel)
inbuilt("raticate", ::RaticateModel)
inbuilt("raticate_alolan", ::RaticateAlolanModel)
inbuilt("krabby", ::KrabbyModel)
inbuilt("paras", ::ParasModel)
inbuilt("mankey", ::MankeyModel)
inbuilt("primeape", ::PrimeapeModel)
inbuilt("voltorb", ::VoltorbModel)
inbuilt("electrode", ::ElectrodeModel)
inbuilt("machop", ::MachopModel)
inbuilt("machoke", ::MachokeModel)
inbuilt("machamp", ::MachampModel)
inbuilt("cubone", ::CuboneModel)
inbuilt("dodrio", ::DodrioModel)
inbuilt("doduo", ::DoduoModel)
inbuilt("electabuzz", ::ElectabuzzModel)
inbuilt("exeggcute", ::ExeggcuteModel)
inbuilt("exeggutor", ::ExeggutorModel)
inbuilt("farfetchd", ::FarfetchdModel)
inbuilt("farfetchd_galarian", ::FarfetchdGalarianModel)
inbuilt("gengar", ::GengarModel)
inbuilt("geodude", ::GeodudeModel)
inbuilt("golduck", ::GolduckModel)
inbuilt("golem", ::GolemModel)
inbuilt("hitmonchan", ::HitmonchanModel)
inbuilt("hitmonlee", ::HitmonleeModel)
inbuilt("kabuto", ::KabutoModel)
inbuilt("kabutops", ::KabutopsModel)
inbuilt("koffing", ::KoffingModel)
inbuilt("krabby", ::KrabbyModel)
inbuilt("lickitung", ::LickitungModel)
inbuilt("marowak", ::MarowakModel)
inbuilt("meowth", ::MeowthModel)
inbuilt("nidoqueen", ::NidoqueenModel)
inbuilt("nidorino", ::NidorinoModel)
inbuilt("persian", ::PersianModel)
inbuilt("pinsir", ::PinsirModel)
inbuilt("ponyta", ::PonytaModel)
inbuilt("psyduck", ::PsyduckModel)
inbuilt("rapidash", ::RapidashModel)
inbuilt("sandslash", ::SandslashModel)
inbuilt("tangela", ::TangelaModel)
inbuilt("venomoth", ::VenomothModel)
inbuilt("venonat", ::VenonatModel)
inbuilt("elekid", ::ElekidModel)
inbuilt("hitmontop", ::HitmontopModel)
inbuilt("electivire", ::ElectivireModel)
@@ -348,6 +397,8 @@ object VaryingModelRepository {
inbuilt("bunnelby", ::BunnelbyModel)
inbuilt("arrokuda", ::ArrokudaModel)
inbuilt("barraskewda", ::BarraskewdaModel)
inbuilt("ponyta_galarian", ::PonytaGalarianModel)
inbuilt("rapidash_galarian", ::RapidashGalarianModel)
inbuilt("volbeat", ::VolbeatModel)
inbuilt("illumise", ::IllumiseModel)
inbuilt("yamper", ::YamperModel)
@@ -372,10 +423,20 @@ object VaryingModelRepository {
inbuilt("obstagoon", :: ObstagoonModel)
inbuilt("wishiwashi_solo", :: WishiwashiSoloModel)
inbuilt("wishiwashi_schooling", :: WishiwashiSchoolingModel)
inbuilt("meowth_alolan", ::MeowthAlolanModel)
inbuilt("meowth_galarian", ::MeowthGalarianModel)
inbuilt("persian_alolan", ::PersianAlolanModel)
inbuilt("perrserker", ::PerrserkerModel)
inbuilt("komala", ::KomalaModel)
inbuilt("phantump", ::PhantumpModel)
inbuilt("totodile", ::TotodileModel)
inbuilt("croconaw", ::CroconawModel)
inbuilt("cyndaquil", ::CyndaquilModel)
inbuilt("quilava", ::QuilavaModel)
inbuilt("typhlosion", ::TyphlosionModel)
inbuilt("chikorita", ::ChikoritaModel)
inbuilt("bayleef", ::BayleefModel)
inbuilt("meganium", ::MeganiumModel)
inbuilt("crabrawler", ::CrabrawlerModel)
inbuilt("wimpod", ::WimpodModel)
inbuilt("golisopod", ::GolisopodModel)
@@ -414,6 +475,8 @@ object VaryingModelRepository {
inbuilt("zoroark", ::ZoroarkModel)
inbuilt("zoroark_hisuian", ::ZoroarkHisuianModel)
inbuilt("aurorus", ::AurorusModel)
inbuilt("voltorb_hisuian", ::VoltorbHisuianModel)
inbuilt("electrode_hisuian", ::ElectrodeHisuianModel)
inbuilt("sentret", ::SentretModel)
inbuilt("qwilfish", ::QwilfishModel)
inbuilt("qwilfish_hisuian", ::QwilfishHisuianModel)
@@ -453,7 +516,9 @@ object VaryingModelRepository {
inbuilt("grimmsnarl", ::GrimmsnarlModel)
inbuilt("klefki", ::KlefkiModel)
inbuilt("samurott_hisuian", ::SamurottHisuianModel)
inbuilt("cyndaquil_hisui_bias", ::CyndaquilHisuiBiasModel)
inbuilt("quilava_hisui_bias", ::QuilavaHisuiBiasModel)
inbuilt("typhlosion_hisuian", ::TyphlosionHisuianModel)
inbuilt("rowlet_hisui_bias", ::RowletHisuiBiasModel)
inbuilt("dartrix_hisui_bias", ::DartrixHisuiBiasModel)
inbuilt("decidueye_hisuian", ::DecidueyeHisuianModel)
@@ -601,4 +666,4 @@ object VaryingModelRepository {
}
}
}
}
}
@@ -15,51 +15,11 @@
"name": "smeargle",
"pivot": [0, 0, 0]
},
{
"name": "locator_root",
"parent": "smeargle",
"pivot": [0, 0, 0],
"locators": {
"root": [0, 0, 0]
}
},
{
"name": "locator_top",
"parent": "smeargle",
"pivot": [0, 30, 0],
"locators": {
"top": [0, 30, 0]
}
},
{
"name": "locator_special",
"parent": "smeargle",
"pivot": [0, 14, -20],
"locators": {
"special": [0, 14, -20]
}
},
{
"name": "body",
"parent": "smeargle",
"pivot": [0, 6, 0]
},
{
"name": "locator_target",
"parent": "body",
"pivot": [0, 14, -8],
"locators": {
"target": [0, 14, -8]
}
},
{
"name": "locator_middle",
"parent": "body",
"pivot": [0, 14, 0],
"locators": {
"middle": [0, 14, 0]
}
},
{
"name": "torso",
"parent": "body",
@@ -108,23 +68,6 @@
{"origin": [10.5, 14, -1.5], "size": [2, 2, 3], "inflate": 0.02, "uv": [22, 46]}
]
},
{
"name": "locator_hand_secondary",
"parent": "hand_left",
"pivot": [12.5, 14, 0],
"rotation": [0, -90, 0],
"locators": {
"hand_secondary": [12.5, 14, 0]
}
},
{
"name": "locator_item",
"parent": "hand_left",
"pivot": [12.5, 14, 0],
"locators": {
"item": [12.5, 14, 0]
}
},
{
"name": "thumb_left",
"parent": "hand_left",
@@ -197,15 +140,6 @@
{"origin": [-12.5, 14, -1.5], "size": [2, 2, 3], "inflate": 0.02, "uv": [32, 46], "mirror": true}
]
},
{
"name": "locator_hand_primary",
"parent": "hand_right",
"pivot": [-12.5, 14, 0],
"rotation": [0, 90, 0],
"locators": {
"hand_primary": [-12.5, 14, 0]
}
},
{
"name": "thumb_right",
"parent": "hand_right",
@@ -272,31 +206,6 @@
{"origin": [-1.5, 21, -8.01], "size": [1, 1, 0], "uv": [0, 9], "mirror": true}
]
},
{
"name": "locator_mouth",
"parent": "head",
"pivot": [0, 18, -4.75],
"locators": {
"mouth": [0, 18, -4.75]
}
},
{
"name": "locator_item_face",
"parent": "head",
"pivot": [0, 25.5, -7.5],
"rotation": [-35, 0, 0],
"locators": {
"item_face": [0, 25.5, -7.5]
}
},
{
"name": "locator_face",
"parent": "head",
"pivot": [0, 23, -8],
"locators": {
"face": [0, 23, -8]
}
},
{
"name": "eyes",
"parent": "head",
@@ -346,15 +255,6 @@
{"origin": [4.03, 22.5, -5.5], "size": [0, 2, 1], "uv": [8, -1]}
]
},
{
"name": "locator_eye_left",
"parent": "pupil_left",
"pivot": [4, 23.5, -5],
"rotation": [0, -90, 0],
"locators": {
"eye2": [4, 23.5, -5]
}
},
{
"name": "eyelid_left",
"parent": "eye_left",
@@ -423,15 +323,6 @@
{"origin": [-4.03, 22.5, -5.5], "size": [0, 2, 1], "uv": [8, 18], "mirror": true}
]
},
{
"name": "locator_eye_right",
"parent": "pupil_right",
"pivot": [-4, 23.5, -5],
"rotation": [0, 90, 0],
"locators": {
"eye1": [-4, 23.5, -5]
}
},
{
"name": "eyelid_happy_right",
"parent": "eye_right",
@@ -514,22 +405,6 @@
{"origin": [-1, 28, -1.25], "size": [2, 3, 2], "uv": [3, 25]}
]
},
{
"name": "locator_head",
"parent": "hat",
"pivot": [0, 26.5, -6.25],
"locators": {
"head": [0, 26.5, -6.25]
}
},
{
"name": "locator_item_hat",
"parent": "hat",
"pivot": [0, 28.5, -0.75],
"locators": {
"item_hat": [0, 28.5, -0.75]
}
},
{
"name": "tail",
"parent": "torso",
@@ -562,15 +437,6 @@
{"origin": [-1.1, 6.5, 19.5], "size": [2, 2, 6], "uv": [44, 32]}
]
},
{
"name": "locator_tail",
"parent": "tail4",
"pivot": [0, 7.5, 22.5],
"rotation": [-180, 0, 180],
"locators": {
"tail": [0, 7.5, 22.5]
}
},
{
"name": "tail5",
"parent": "tail4",
@@ -620,24 +486,6 @@
{"origin": [-3, 7.5, 50], "size": [6, 0, 4], "pivot": [0, 7.5, 52], "rotation": [0, 0, -45], "uv": [66, 19]}
]
},
{
"name": "locator_tail_tip",
"parent": "tail_end_fur",
"pivot": [0, 7.5, 54],
"rotation": [-180, 0, 180],
"locators": {
"tail_tip": [0, 7.5, 54]
}
},
{
"name": "locator_physical",
"parent": "tail_end_fur",
"pivot": [0, 7.5, 51],
"rotation": [-180, 0, 180],
"locators": {
"physical": [0, 7.5, 51]
}
},
{
"name": "tail_end_fur_left",
"parent": "tail_end2",
@@ -686,15 +534,6 @@
{"origin": [1, 0.09, -1], "size": [2, 0, 2], "uv": [50, 48]}
]
},
{
"name": "locator_foot_secondary",
"parent": "foot_left",
"pivot": [2, 0.5, -2],
"rotation": [90, 0, 0],
"locators": {
"foot_secondary": [2, 0.5, -2]
}
},
{
"name": "foot_left2",
"parent": "foot_left",
@@ -728,15 +567,6 @@
{"origin": [-3, 0.09, -1], "size": [2, 0, 2], "uv": [50, 52], "mirror": true}
]
},
{
"name": "locator_foot_primary",
"parent": "foot_right",
"pivot": [-2, 0.5, -2],
"rotation": [90, 0, 0],
"locators": {
"foot_primary": [-2, 0.5, -2]
}
},
{
"name": "foot_right2",
"parent": "foot_right",
@@ -1,176 +0,0 @@
{
"portraitScale": 2.02,
"portraitTranslation": [-0.26, -0.21, 0],
"profileScale": 0.78,
"profileTranslation": [0, 0.57, 0],
"rootBone": "squirtle",
"animations": {
"physical": "q.bedrock_primary('squirtle', 'physical', 'look', q.curve('symmetrical_wide'))",
"special": "q.bedrock_primary('squirtle', 'special', 'look', q.curve('symmetrical_wide'))",
"status": "q.bedrock_primary('squirtle', 'status', 'look', q.curve('symmetrical_wide'))",
"faint": "q.bedrock_primary('squirtle', 'faint', q.curve('one'))",
"recoil": "q.bedrock_stateful('squirtle', 'recoil')",
"cry": "q.bedrock_stateful('squirtle', 'cry')"
},
"poses": {
"battle-standing": {
"poseTypes": [
"STAND"
],
"isBattle": true,
"animations": [
"q.look('head_ai')",
"q.bedrock('squirtle', 'ground_idle')"
],
"quirks": [
"q.bedrock_quirk('squirtle', 'blink')",
"q.bedrock_quirk('squirtle', 'quirk_ground_idle')"
]
},
"standing": {
"poseTypes": [
"STAND",
"PROFILE",
"PORTRAIT"
],
"isBattle": false,
"animations": [
"q.look('head_ai')",
"q.bedrock('squirtle', 'ground_idle')"
],
"quirks": [
"q.bedrock_quirk('squirtle', 'blink')",
"q.bedrock_quirk('squirtle', 'quirk_ground_idle')"
]
},
"walking": {
"poseTypes": [
"WALK"
],
"isTouchingWater": false,
"animations": [
"q.look('head_ai')",
"q.bedrock('squirtle', 'ground_walk')"
],
"quirks": [
"q.bedrock_quirk('squirtle', 'blink')"
]
},
"water-float": {
"poseTypes": ["FLOAT"],
"isUnderWater": true,
"animations": [
"q.look('head_ai')",
"q.bedrock('squirtle', 'water_idle')"
],
"quirks": [
"q.bedrock_quirk('squirtle', 'blink')",
"q.bedrock_quirk('squirtle', 'quirk_water')"
],
"transformTicks": 10
},
"water-swim": {
"poseTypes": [
"SWIM"
],
"isUnderWater": true,
"animations": [
"q.look('head_ai')",
"q.bedrock('squirtle', 'water_swim')"
],
"quirks": [
"q.bedrock_quirk('squirtle', 'blink')"
],
"transformTicks": 10
},
"surfacewater-float": {
"poseTypes": [
"FLOAT"
],
"isTouchingWater": true,
"isUnderWater": false,
"animations": [
"q.look('head_ai')",
"q.bedrock('squirtle', 'surfacewater_idle')"
],
"quirks": [
"q.bedrock_quirk('squirtle', 'blink')"
],
"transformedParts": [
{
"part": "body",
"position": [0, -10, 0]
}
]
},
"surfacewater-swim": {
"poseTypes": [
"WALK", "SWIM"
],
"isTouchingWater": true,
"isUnderWater": false,
"animations": [
"q.look('head_ai')",
"q.bedrock('squirtle', 'surfacewater_swim')"
],
"quirks": [
"q.bedrock_quirk('squirtle', 'blink')"
],
"transformedParts": [
{
"part": "body",
"position": [0, -10, 0]
}
]
},
"sleep": {
"poseTypes": [
"SLEEP"
],
"animations": [
"q.bedrock('squirtle', 'sleep')"
],
"quirks": [
"q.bedrock_quirk('squirtle', 'blink')"
]
},
"shoulder_left": {
"poseName": "shoulder_left",
"poseTypes": [
"SHOULDER_LEFT"
],
"animations": [
"q.look('head_ai')",
"q.bedrock('squirtle', 'shoulder_left')"
],
"quirks": [
"q.bedrock_quirk('squirtle', 'blink')"
],
"transformedParts": [
{
"part": "body",
"position": [0, -2, 0]
}
]
},
"shoulder_right": {
"poseName": "shoulder_right",
"poseTypes": [
"SHOULDER_RIGHT"
],
"animations": [
"q.look('head_ai')",
"q.bedrock('squirtle', 'shoulder_right')"
],
"quirks": [
"q.bedrock_quirk('squirtle', 'blink')"
],
"transformedParts": [
{
"part": "body",
"position": [0, -2, 0]
}
]
}
}
}
@@ -1,128 +0,0 @@
{
"portraitScale": 1.57,
"portraitTranslation": [-0.17, 0.54, 0],
"profileScale": 0.69,
"profileTranslation": [0, 0.69, 0],
"rootBone": "wartortle",
"animations": {
"physical": "q.bedrock_primary('wartortle', 'physical', 'look', q.curve('symmetrical_wide'))",
"special": "q.bedrock_primary('wartortle', 'special', 'look', q.curve('symmetrical_wide'))",
"status": "q.bedrock_primary('wartortle', 'status', 'look', q.curve('symmetrical_wide'))",
"faint": "q.bedrock_primary('wartortle', 'faint', q.curve('one'))",
"recoil": "q.bedrock_stateful('wartortle', 'recoil')",
"cry": "q.bedrock_stateful('wartortle', 'cry')"
},
"poses": {
"standing": {
"poseName": "standing",
"poseTypes": ["STAND", "PROFILE", "PORTRAIT"],
"isBattle": false,
"isUnderWater": false,
"animations": [
"q.look('head_ai')",
"q.bedrock('wartortle', 'ground_idle')"
],
"quirks": [
"q.bedrock_quirk('wartortle', 'blink')",
"q.bedrock_quirk('wartortle', 'quirk_idle')"
]
},
"battle-standing": {
"poseTypes": ["STAND"],
"isBattle": true,
"animations": [
"q.look('head_ai')",
"q.bedrock('wartortle', 'battle_idle')"
],
"quirks": [
"q.bedrock_quirk('wartortle', 'blink')",
"q.bedrock_quirk('wartortle', 'quirk_idle')"
]
},
"walking": {
"poseTypes": ["WALK"],
"animations": [
"q.look('head_ai')",
"q.bedrock('wartortle', 'ground_walk')"
],
"quirks": [
"q.bedrock_quirk('wartortle', 'blink')"
]
},
"water-float": {
"poseTypes": ["FLOAT"],
"isUnderWater": true,
"animations": [
"q.look('head_ai')",
"q.bedrock('wartortle', 'water_idle')"
],
"quirks": [
"q.bedrock_quirk('wartortle', 'blink')"
],
"transformTicks": 10
},
"water-swim": {
"poseTypes": ["SWIM"],
"isUnderWater": true,
"animations": [
"q.look('head_ai')",
"q.bedrock('wartortle', 'water_swim')"
],
"quirks": [
"q.bedrock_quirk('wartortle', 'blink')"
],
"transformTicks": 10
},
"surfacewater-float": {
"poseTypes": [
"STAND"
],
"isTouchingWater": true,
"isUnderWater": false,
"animations": [
"q.look('head_ai')",
"q.bedrock('wartortle', 'surfacewater_idle')"
],
"quirks": [
"q.bedrock_quirk('wartortle', 'blink')"
],
"transformedParts": [
{
"part": "body",
"position": [0, -10, 0]
}
]
},
"surfacewater-swim": {
"poseTypes": [
"SWIM"
],
"isTouchingWater": true,
"isUnderWater": false,
"animations": [
"q.look('head_ai')",
"q.bedrock('wartortle', 'surfacewater_swim')"
],
"quirks": [
"q.bedrock_quirk('wartortle', 'blink')"
],
"transformedParts": [
{
"part":"body",
"position":[0, -10, 0]
}
]
},
"sleep": {
"poseTypes": [
"SLEEP"
],
"animations": [
"q.bedrock('wartortle', 'sleep')"
],
"quirks": [
"q.bedrock_quirk('wartortle', 'blink')"
]
}
}
}
@@ -1,27 +0,0 @@
{
"portraitScale": 2,
"portraitTranslation": [-0.15, -1.25, 0],
"profileScale": 1.1,
"profileTranslation": [0, 0.1, 0],
"rootBone": "metapod",
"animations": {
"cry": "q.bedrock_stateful('metapod', 'cry')"
},
"poses": {
"standing": {
"poseTypes": ["STAND", "PROFILE", "PORTRAIT"],
"animations": [
"q.bedrock('metapod', 'ground_idle')"
],
"quirks": [
"q.bedrock_quirk('metapod', 'blink')"
]
},
"sleep": {
"poseTypes": ["SLEEP"],
"animations": [
"q.bedrock('metapod', 'sleep')"
]
}
}
}
@@ -1,46 +0,0 @@
{
"portraitScale": 2.4,
"portraitTranslation": [-0.1, 0.2, 0],
"profileScale": 0.7,
"profileTranslation": [0.1, 0.8, 0],
"rootBone": "butterfree",
"animations": {
"cry": "q.bedrock_stateful('butterfree', 'cry')"
},
"poses": {
"standing": {
"poseTypes": ["STAND", "FLOAT", "HOVER", "PROFILE", "PORTRAIT"],
"animations": [
"q.look('head')",
"q.bedrock('butterfree', 'air_idle')"
],
"transformedParts": [
{
"part": "body",
"position": [0, -5, 0]
}
]
},
"walking": {
"poseName": "walking",
"poseTypes": ["WALK", "SWIM", "FLY"],
"animations": [
"q.look('head')",
"q.bedrock('butterfree', 'air_fly')"
],
"transformedParts": [
{
"part": "body",
"position": [0, -5, 0]
}
]
},
"sleep": {
"poseName": "sleep",
"poseTypes": ["SLEEP"],
"animations": [
"q.bedrock('butterfree', 'sleep')"
]
}
}
}
@@ -1,50 +0,0 @@
{
"portraitScale": 1.9,
"portraitTranslation": [0.05, 0.9, 0],
"profileScale": 0.8,
"profileTranslation": [-0.1, 0.9, 0],
"rootBone": "beedrill",
"animations": {
"cry": "q.bedrock_stateful('beedrill', 'cry')"
},
"poses": {
"standing": {
"poseTypes": ["STAND", "FLOAT", "HOVER", "PROFILE", "PORTRAIT"],
"animations": [
"q.look('head')",
"q.bedrock('beedrill', 'air_idle')"
],
"transformedParts": [
{
"part": "body",
"position": [0, -10, 0]
}
]
},
"walking": {
"poseTypes": ["WALK", "SWIM", "FLY"],
"animations": [
"q.look('head')",
"q.bedrock('beedrill', 'air_fly')"
],
"transformedParts": [
{
"part": "body",
"position": [0, -5, 0]
}
]
},
"sleep": {
"poseTypes": ["SLEEP"],
"animations": [
"q.bedrock('beedrill', 'sleep')"
],
"transformedParts": [
{
"part": "body",
"position": [0, -3, 0]
}
]
}
}
}
@@ -1,40 +0,0 @@
{
"portraitScale": 1.5,
"portraitTranslation": [-0.2, 0, 0],
"profileScale": 1,
"profileTranslation": [0, 0.22, 0],
"rootBone": "raticate",
"animations": {
"cry": "q.bedrock_stateful('raticate', 'cry')"
},
"poses": {
"standing": {
"poseTypes": ["STAND", "FLOAT", "HOVER", "PROFILE", "PORTRAIT"],
"animations": [
"q.look('head')",
"q.bedrock('raticate', 'ground_idle')"
],
"quirks": [
"q.bedrock_quirk('raticate', 'blink')"
],
"transformTicks": 10
},
"walking": {
"poseTypes": ["WALK"],
"animations": [
"q.look('head')",
"q.bedrock('raticate', 'ground_walk')"
],
"quirks": [
"q.bedrock_quirk('raticate', 'blink')"
],
"transformTicks": 10
},
"sleep": {
"poseTypes": ["SLEEP"],
"animations": [
"q.bedrock('raticate', 'sleep')"
]
}
}
}
@@ -1,41 +0,0 @@
{
"portraitScale": 1.5,
"portraitTranslation": [-0.2, 0.1, 0],
"profileScale": 1,
"profileTranslation": [0, 0.22, 0],
"rootBone": "raticate_alolan",
"animations": {
"cry": "q.bedrock_stateful('raticate_alolan', 'cry')"
},
"poses": {
"standing": {
"poseName": "standing",
"poseTypes": ["STAND", "FLOAT", "HOVER", "PROFILE", "PORTRAIT"],
"animations": [
"q.look('head')",
"q.bedrock('raticate_alolan', 'ground_idle')"
],
"quirks": [
"q.bedrock_quirk('raticate_alolan', 'blink')"
],
"transformTicks": 10
},
"walking": {
"poseTypes": ["WALK"],
"animations": [
"q.look('head')",
"q.bedrock('raticate_alolan', 'ground_walk')"
],
"quirks": [
"q.bedrock_quirk('raticate_alolan', 'blink')"
],
"transformTicks": 10
},
"sleep": {
"poseTypes": ["SLEEP"],
"animations": [
"q.bedrock('raticate_alolan', 'sleep')"
]
}
}
}
@@ -1,41 +0,0 @@
{
"portraitScale": 2,
"portraitTranslation": [-0.15, 0, 0],
"profileScale": 0.8,
"profileTranslation": [0, 0.55, 0],
"rootBone": "sandslash",
"animations": {
"cry": "q.bedrock_stateful('sandslash', 'cry')"
},
"poses": {
"standing": {
"poseTypes": ["STAND", "FLOAT", "HOVER", "PROFILE", "PORTRAIT"],
"animations": [
"q.look('head')",
"q.bedrock('sandslash', 'ground_idle')"
],
"quirks": [
"q.bedrock_quirk('sandslash', 'blink')"
],
"transformTicks": 10
},
"walk": {
"poseName": "walk",
"poseTypes": ["WALK", "SWIM", "FLY"],
"animations": [
"q.look('head')",
"q.bedrock('sandslash', 'ground_walk')"
],
"quirks": [
"q.bedrock_quirk('sandslash', 'blink')"
],
"transformTicks": 10
},
"sleep": {
"poseTypes": ["SLEEP"],
"animations": [
"q.bedrock('sandslash', 'sleep')"
]
}
}
}
@@ -1,44 +0,0 @@
{
"portraitScale": 1.56,
"portraitTranslation": [-0.33, 0.78, 0.0],
"profileScale": 0.8,
"profileTranslation": [0, 0.5, 0],
"rootBone": "nidoqueen",
"animations": {
"cry": "q.bedrock_stateful('nidoqueen', 'cry')"
},
"poses": {
"standing": {
"poseTypes": ["STAND", "FLOAT", "HOVER", "PROFILE", "PORTRAIT"],
"animations": [
"q.look('head')",
"q.bedrock('nidoqueen', 'ground_idle')"
],
"isBattle": false,
"quirks": [
"q.bedrock_quirk('nidoqueen', 'blink')",
"q.bedrock_quirk('nidoqueen', 'spgs_happy_place', 600, 900, 1)"
]
},
"walking": {
"poseTypes": ["WALK", "SWIM", "FLY"],
"animations": [
"q.look('head')",
"q.bedrock('nidoqueen', 'ground_idle')",
"q.biped_walk(0.66, 1.4, 'leg_left', 'leg_right')",
"q.bimanual_swing(0.66, 1.4, 'arm_left', 'arm_right')"
],
"quirks": [
"q.bedrock_quirk('nidoqueen', 'blink')"
]
},
"sleep": {
"poseTypes": [
"SLEEP"
],
"animations": [
"q.bedrock('nidoqueen', 'ground_idle')"
]
}
}
}
@@ -1,37 +0,0 @@
{
"portraitScale": 2.6,
"portraitTranslation": [-0.71, -2, 0],
"profileScale": 1,
"profileTranslation": [-0.1, 0.21, 0],
"rootBone": "nidorino",
"animations": {
"cry": "q.bedrock_stateful('nidorino', 'cry')"
},
"poses": {
"standing": {
"poseName": "standing",
"poseTypes": ["STAND", "FLOAT", "HOVER", "PROFILE", "PORTRAIT"],
"animations": [
"q.look('head')",
"q.bedrock('nidorino', 'ground_idle')"
],
"quirks": [
"q.bedrock_quirk('nidorino', 'blink')"
],
"transformTicks": 10
},
"walk": {
"poseName": "walk",
"poseTypes": ["WALK","SWIM", "FLY"],
"animations": [
"q.look('head')",
"q.bedrock('nidorino', 'ground_idle')",
"q.quadruped_walk('null', 'leg_front_right', 'leg_back_left', 'leg_back_right', 0.7, 0.7)"
],
"quirks": [
"q.bedrock_quirk('nidorino', 'blink')"
],
"transformTicks": 10
}
}
}
@@ -1,40 +0,0 @@
{
"portraitScale": 1.8,
"portraitTranslation": [-0.2, -1.2, 0],
"profileScale": 0.7,
"profileTranslation": [0, 0.6, 0],
"rootBone": "paras",
"animations": {
"cry": "q.bedrock_stateful('paras', 'cry')"
},
"poses": {
"standing": {
"poseTypes": ["STAND", "FLOAT", "HOVER", "PROFILE", "PORTRAIT", "SHOULDER_LEFT", "SHOULDER_RIGHT"],
"animations": [
"q.bedrock('paras', 'ground_idle')",
"q.look('head')"
],
"quirks": [
"q.bedrock_quirk('paras', 'blink')"
],
"transformTicks": 10
},
"walking": {
"poseTypes": ["WALK", "SWIM", "FLY"],
"animations": [
"q.bedrock('paras', 'ground_walk')",
"q.look('head')"
],
"quirks": [
"q.bedrock_quirk('paras', 'blink')"
],
"transformTicks": 10
},
"sleep": {
"poseTypes": ["SLEEP"],
"animations": [
"q.bedrock('paras', 'sleep')"
]
}
}
}
@@ -1,60 +0,0 @@
{
"portraitScale": 1.66,
"portraitTranslation": [-0.08, -0.66, 0],
"profileScale": 0.86,
"profileTranslation": [0, 0.43, 0],
"rootBone": "venonat",
"animations": {
"cry": "q.bedrock_stateful('venonat', 'cry')"
},
"poses": {
"standing": {
"poseTypes": ["STAND", "FLOAT", "HOVER", "PROFILE", "PORTRAIT"],
"isBattle": false,
"animations": [
"q.bedrock('venonat', 'ground_idle')"
],
"quirks": [
"q.bedrock_quirk('venonat', 'blink')",
"q.bedrock_quirk('venonat', 'quirk1')",
"q.bedrock_quirk('venonat', 'quirk2')"
]
},
"battle-standing": {
"poseTypes": ["STAND", "FLOAT", "HOVER"],
"isBattle": true,
"animations": [
"q.bedrock('venonat', 'battle_idle')"
],
"quirks": [
"q.bedrock_quirk('venonat', 'blink')",
"q.bedrock_quirk('venonat', 'quirk1')",
"q.bedrock_quirk('venonat', 'quirk2')"
],
"transformTicks": 10
},
"walking": {
"poseTypes": ["WALK", "SWIM", "FLY"],
"animations": [
"q.bedrock('venonat', 'ground_walk')"
],
"quirks": [
"q.bedrock_quirk('venonat', 'blink')",
"q.bedrock_quirk('venonat', 'quirk1')",
"q.bedrock_quirk('venonat', 'quirk2')"
]
},
"sleep": {
"poseTypes": [
"SLEEP"
],
"animations": [
"q.bedrock('venonat', 'sleep')"
],
"quirks": [
"q.bedrock_quirk('venonat', 'quirk1')",
"q.bedrock_quirk('venonat', 'quirk2')"
]
}
}
}
@@ -1,80 +0,0 @@
{
"portraitScale": 1.8,
"portraitTranslation": [-0.46, 0.1, 0],
"profileScale": 0.8,
"profileTranslation": [0, 0.6, 0],
"rootBone": "venomoth",
"animations": {
"cry": "q.bedrock_stateful('venomoth', 'cry')"
},
"poses": {
"standing": {
"poseTypes": ["STAND", "FLOAT", "PROFILE", "PORTRAIT"],
"animations": [
"q.bedrock('venomoth', 'ground_idle')"
],
"isBattle": false,
"quirks": [
"q.bedrock_quirk('venomoth', 'blink')",
"q.bedrock_quirk('venomoth', 'quirk1')",
"q.bedrock_quirk('venomoth', 'quirk2')"
]
},
"battle-standing": {
"poseTypes": ["STAND", "FLOAT", "HOVER"],
"animations": [
"q.bedrock('venomoth', 'battle_idle')"
],
"isBattle": true,
"quirks": [
"q.bedrock_quirk('venomoth', 'blink')",
"q.bedrock_quirk('venomoth', 'quirk1')",
"q.bedrock_quirk('venomoth', 'quirk2')"
],
"transformTicks": 10
},
"walking": {
"poseTypes": ["WALK", "SWIM"],
"animations": [
"q.bedrock('venomoth', 'ground_walk')"
],
"quirks": [
"q.bedrock_quirk('venomoth', 'blink')",
"q.bedrock_quirk('venomoth', 'quirk1')",
"q.bedrock_quirk('venomoth', 'quirk2')"
]
},
"hover": {
"poseTypes": ["HOVER"],
"animations": [
"q.bedrock('venomoth', 'air_idle')"
],
"quirks": [
"q.bedrock_quirk('venomoth', 'blink')",
"q.bedrock_quirk('venomoth', 'quirk1')",
"q.bedrock_quirk('venomoth', 'quirk2')"
]
},
"flying": {
"poseTypes": ["FLY"],
"animations": [
"q.bedrock('venomoth', 'air_fly')"
],
"quirks": [
"q.bedrock_quirk('venomoth', 'blink')",
"q.bedrock_quirk('venomoth', 'quirk1')",
"q.bedrock_quirk('venomoth', 'quirk2')"
]
},
"sleep": {
"poseTypes": ["SLEEP"],
"animations": [
"q.bedrock('venomoth', 'sleep')"
],
"quirks": [
"q.bedrock_quirk('venomoth', 'quirk1')",
"q.bedrock_quirk('venomoth', 'quirk_sleep')"
]
}
}
}
@@ -1,60 +0,0 @@
{
"rootBone": "meowth",
"portraitScale": 1.6,
"portraitTranslation": [
0.05,
-0.1,
0
],
"profileScale": 0.8,
"profileTranslation": [
0,
0.54,
0
],
"animations": {
"cry": "q.bedrock_stateful('meowth', 'cry')"
},
"poses": {
"standing": {
"poseTypes": [
"STAND",
"FLOAT",
"HOVER",
"PROFILE",
"PORTRAIT"
],
"animations": [
"q.look('head')",
"q.bedrock('meowth', 'ground_idle')"
],
"quirks": [
"q.bedrock_quirk('meowth', 'blink')"
]
},
"sleep": {
"poseTypes": [
"SLEEP"
],
"animations": [
"q.bedrock('meowth', 'sleep')"
]
},
"walk": {
"poseTypes": [
"WALK",
"SWIM",
"FLY"
],
"animations": [
"q.look('head')",
"q.biped_walk(0.7, 1.4, 'leg_left', 'leg_right')",
"q.bimanual_swing(0.6662, 1, 'arm_left', 'arm_right')",
"q.bedrock('meowth', 'ground_idle')"
],
"quirks": [
"q.bedrock_quirk('meowth', 'blink')"
]
}
}
}
@@ -1,43 +0,0 @@
{
"rootBone": "meowth",
"portraitScale": 1.6,
"portraitTranslation": [0.05, -0.1, 0],
"profileScale": 0.8,
"profileTranslation": [0, 0.54, 0],
"animations": {
"cry": "q.bedrock_stateful('meowth_alolan', 'cry')"
},
"poses": {
"standing": {
"poseTypes": ["STAND", "FLOAT", "HOVER", "PROFILE", "PORTRAIT"],
"animations": [
"q.look('head')",
"q.bedrock('meowth_alolan', 'ground_idle')"
],
"quirks": [
"q.bedrock_quirk('meowth_alolan', 'blink')"
]
},
"walking": {
"poseTypes": ["WALK", "SWIM", "FLY"],
"animations": [
"q.look('head')",
"q.biped_walk(0.7, 1.4, 'leg_left', 'leg_right')",
"q.bimanual_swing(0.6662, 1, 'arm_left', 'arm_right')",
"q.bedrock('meowth_alolan', 'ground_idle')"
],
"quirks": [
"q.bedrock_quirk('meowth_alolan', 'blink')"
]
},
"sleep": {
"poseName": "sleep",
"poseTypes": [
"SLEEP"
],
"animations": [
"q.bedrock('meowth_alolan', 'sleep')"
]
}
}
}
@@ -1,77 +0,0 @@
{
"rootBone": "meowth",
"portraitScale": 1.6,
"portraitTranslation": [
0.05,
-0.1,
0
],
"profileScale": 0.8,
"profileTranslation": [
0,
0.54,
0
],
"animations": {
"cry": "q.bedrock_stateful('meowth_galarian', 'cry')"
},
"poses": {
"standing": {
"poseTypes": [
"STAND",
"FLOAT",
"HOVER",
"PROFILE",
"PORTRAIT"
],
"isBattle": false,
"animations": [
"q.look('head')",
"q.bedrock('meowth_galarian', 'ground_idle')"
],
"transformTicks": 10,
"quirks": [
"q.bedrock_quirk('meowth_galarian', 'blink')"
]
},
"battle-standing": {
"poseTypes": [
"STAND",
"FLOAT",
"HOVER"
],
"isBattle": true,
"animations": [
"q.look('head')",
"q.bedrock('meowth_galarian', 'battle_idle')"
],
"transformTicks": 10,
"quirks": [
"q.bedrock_quirk('meowth_galarian', 'blink')"
]
},
"walking": {
"poseTypes": [
"WALK",
"SWIM",
"FLY"
],
"animations": [
"q.look('head')",
"q.bedrock('meowth_galarian', 'ground_walk')"
],
"transformTicks": 10,
"quirks": [
"q.bedrock_quirk('meowth_galarian', 'blink')"
]
},
"sleep": {
"poseTypes": [
"SLEEP"
],
"animations": [
"q.bedrock('meowth_galarian', 'sleep')"
]
}
}
}
@@ -1,59 +0,0 @@
{
"rootBone": "persian",
"portraitScale": 2,
"portraitTranslation": [
-0.8,
0.3,
0
],
"animations": {
"cry": "q.bedrock_stateful('persian', 'cry')"
},
"profileScale": 0.9,
"profileTranslation": [
0,
0.38,
0
],
"poses": {
"standing": {
"poseTypes": [
"STAND",
"FLOAT",
"HOVER",
"PROFILE",
"PORTRAIT"
],
"animations": [
"q.look('neck')",
"q.bedrock('persian', 'ground_idle')"
],
"quirks": [
"q.bedrock_quirk('persian', 'blink')"
]
},
"sleep": {
"poseTypes": [
"SLEEP"
],
"animations": [
"q.bedrock('persian', 'sleep')"
]
},
"walk": {
"poseTypes": [
"WALK",
"SWIM",
"FLY"
],
"animations": [
"q.look('neck')",
"q.bedrock('persian', 'ground_idle')",
"q.quadruped_walk(0.5, 1.1, 'leg_front_left1', 'leg_front_right1', 'leg_back_left1', 'leg_back_right1')"
],
"quirks": [
"q.bedrock_quirk('persian', 'blink')"
]
}
}
}
@@ -1,60 +0,0 @@
{
"rootBone": "persian",
"portraitScale": 2,
"portraitTranslation": [
-0.76,
-0.11,
0
],
"profileScale": 0.9,
"profileTranslation": [
0,
0.38,
0
],
"animations": {
"cry": "q.bedrock_stateful('persian_alolan', 'cry')"
},
"poses": {
"standing": {
"poseTypes": [
"STAND",
"FLOAT",
"HOVER",
"PROFILE",
"PORTRAIT"
],
"animations": [
"q.look('head')",
"q.bedrock('persian_alolan', 'ground_idle')"
],
"quirks": [
"q.bedrock_quirk('persian_alolan', 'blink')"
]
},
"sleep": {
"poseTypes": [
"SLEEP"
],
"animations": [
"q.bedrock('persian_alolan', 'sleep')"
]
},
"walk": {
"poseName": "walk",
"poseTypes": [
"WALK",
"SWIM",
"FLY"
],
"animations": [
"q.look('head')",
"q.bedrock('persian_alolan', 'ground_idle')",
"q.quadruped_walk(0.5, 1.1, 'leg_front_left1', 'leg_front_right1', 'leg_back_left1', 'leg_back_right1')"
],
"quirks": [
"q.bedrock_quirk('persian_alolan', 'blink')"
]
}
}
}
@@ -1,80 +0,0 @@
{
"rootBone": "psyduck",
"portraitScale": 2,
"portraitTranslation": [
-0.1,
-0.55,
0
],
"profileScale": 0.95,
"profileTranslation": [
0,
0.32,
0
],
"animations": {
"cry": "q.bedrock_stateful('psyduck', 'cry')"
},
"poses": {
"standing": {
"poseTypes": [
"PROFILE",
"PORTRAIT",
"STAND"
],
"animations": [
"q.look('head')",
"q.bedrock('psyduck', 'ground_idle')"
],
"quirks": [
"q.bedrock_quirk('psyduck', 'blink')"
]
},
"sleep": {
"poseTypes": [
"SLEEP"
],
"animations": [
"q.bedrock('psyduck', 'sleep')"
]
},
"walk": {
"poseTypes": [
"WALK"
],
"animations": [
"q.look('head')",
"q.bedrock('psyduck', 'ground_walk')"
],
"quirks": [
"q.bedrock_quirk('psyduck', 'blink')"
]
},
"float": {
"poseTypes": [
"FLOAT"
],
"isTouchingWater": true,
"animations": [
"q.look('head')",
"q.bedrock('psyduck', 'water_idle')"
],
"quirks": [
"q.bedrock_quirk('psyduck', 'blink')"
]
},
"swim": {
"poseTypes": [
"SWIM"
],
"isTouchingWater": true,
"animations": [
"q.look('head')",
"q.bedrock('psyduck', 'water_swim')"
],
"quirks": [
"q.bedrock_quirk('psyduck', 'blink')"
]
}
}
}
@@ -1,80 +0,0 @@
{
"rootBone": "golduck",
"portraitScale": 2.1,
"portraitTranslation": [
-0.1,
0.55,
0
],
"profileScale": 0.8,
"profileTranslation": [
0,
0.54,
0
],
"animations": {
"cry": "q.bedrock_stateful('golduck', 'cry')"
},
"poses": {
"standing": {
"poseTypes": [
"PROFILE",
"PORTRAIT",
"STAND"
],
"animations": [
"q.look('head')",
"q.bedrock('golduck', 'ground_idle')"
],
"quirks": [
"q.bedrock_quirk('golduck', 'blink')"
]
},
"sleep": {
"poseTypes": [
"SLEEP"
],
"animations": [
"q.bedrock('golduck', 'sleep')"
]
},
"walk": {
"poseTypes": [
"WALK"
],
"animations": [
"q.look('head')",
"q.bedrock('golduck', 'ground_walk')"
],
"quirks": [
"q.bedrock_quirk('golduck', 'blink')"
]
},
"float": {
"poseTypes": [
"FLOAT"
],
"isTouchingWater": true,
"animations": [
"q.look('head')",
"q.bedrock('golduck', 'water_idle')"
],
"quirks": [
"q.bedrock_quirk('golduck', 'blink')"
]
},
"swim": {
"poseTypes": [
"SWIM"
],
"isTouchingWater": true,
"animations": [
"q.look('head')",
"q.bedrock('golduck', 'water_swim')"
],
"quirks": [
"q.bedrock_quirk('golduck', 'blink')"
]
}
}
}
@@ -1,59 +0,0 @@
{
"rootBone": "mankey",
"portraitScale": 1.72,
"portraitTranslation": [
0,
-0.4,
0
],
"profileScale": 0.9,
"profileTranslation": [
-0.03,
0.4,
0
],
"animations": {
"cry": "q.bedrock_stateful('mankey', 'cry')",
"faint": "q.bedrock_stateful('mankey', 'faint')"
},
"poses": {
"standing": {
"poseTypes": [
"STAND",
"FLOAT",
"HOVER",
"PROFILE",
"PORTRAIT"
],
"animations": [
"q.bedrock('mankey', 'ground_idle')"
],
"transformTicks": 10,
"quirks": [
"q.bedrock_quirk('mankey', 'blink')"
]
},
"sleep": {
"poseTypes": [
"SLEEP"
],
"animations": [
"q.bedrock('mankey', 'sleep')"
]
},
"walk": {
"poseTypes": [
"WALK",
"SWIM",
"FLY"
],
"animations": [
"q.bedrock('mankey', 'ground_walk')"
],
"transformTicks": 10,
"quirks": [
"q.bedrock_quirk('mankey', 'blink')"
]
}
}
}
@@ -1,52 +0,0 @@
{
"rootBone": "machop",
"portraitScale": 1.8,
"portraitTranslation": [
-0.03,
0.35,
0
],
"profileScale": 0.73,
"profileTranslation": [
-0.03,
0.64,
0
],
"animations": {
"cry": "q.bedrock_stateful('machop', 'cry')"
},
"poses": {
"standing": {
"poseTypes": [
"STAND",
"FLOAT",
"HOVER",
"PROFILE",
"PORTRAIT"
],
"animations": [
"q.look('head')",
"q.bedrock('machop', 'ground_idle')"
],
"transformTicks": 10,
"quirks": [
"q.bedrock_quirk('machop', 'blink')"
]
},
"walk": {
"poseTypes": [
"WALK",
"SWIM",
"FLY"
],
"animations": [
"q.look('head')",
"q.bedrock('machop', 'ground_walk')"
],
"transformTicks": 10,
"quirks": [
"q.bedrock_quirk('machop', 'blink')"
]
}
}
}
@@ -1,52 +0,0 @@
{
"rootBone": "machoke",
"portraitScale": 1.9,
"portraitTranslation": [
-0.1,
1,
0
],
"profileScale": 0.71,
"profileTranslation": [
0,
0.69,
0
],
"animations": {
"cry": "q.bedrock_stateful('machoke', 'cry')"
},
"poses": {
"standing": {
"poseTypes": [
"STAND",
"FLOAT",
"HOVER",
"PROFILE",
"PORTRAIT"
],
"animations": [
"q.look('head')",
"q.bedrock('machoke', 'ground_idle')"
],
"transformTicks": 10,
"quirks": [
"q.bedrock_quirk('machoke', 'blink')"
]
},
"walk": {
"poseTypes": [
"WALK",
"SWIM",
"FLY"
],
"animations": [
"q.look('head')",
"q.bedrock('machoke', 'ground_walk')"
],
"transformTicks": 10,
"quirks": [
"q.bedrock_quirk('machoke', 'blink')"
]
}
}
}
@@ -1,52 +0,0 @@
{
"rootBone": "machamp",
"portraitScale": 2,
"portraitTranslation": [
-0.3,
1.2,
0
],
"profileScale": 0.75,
"profileTranslation": [
-0.1,
0.66,
0
],
"animations": {
"cry": "q.bedrock_stateful('machamp', 'cry')"
},
"poses": {
"standing": {
"poseTypes": [
"STAND",
"FLOAT",
"HOVER",
"PROFILE",
"PORTRAIT"
],
"animations": [
"q.look('head')",
"q.bedrock('machamp', 'ground_idle')"
],
"transformTicks": 10,
"quirks": [
"q.bedrock_quirk('machamp', 'blink')"
]
},
"walk": {
"poseTypes": [
"WALK",
"SWIM",
"FLY"
],
"animations": [
"q.look('head')",
"q.bedrock('machamp', 'ground_walk')"
],
"transformTicks": 10,
"quirks": [
"q.bedrock_quirk('machamp', 'blink')"
]
}
}
}
@@ -1,62 +0,0 @@
{
"rootBone": "ponyta",
"portraitScale": 3.0,
"portraitTranslation": [
-0.6,
-0.2,
0
],
"profileScale": 0.9,
"profileTranslation": [
0,
0.43,
0
],
"animations": {
"cry": "q.bedrock_stateful('ponyta', 'cry')",
"faint": "q.bedrock_stateful('ponyta', 'faint')"
},
"poses": {
"sleep": {
"poseTypes": [
"SLEEP"
],
"animations": [
"q.bedrock('ponyta', 'sleep')"
]
},
"standing": {
"poseTypes": [
"STAND",
"FLOAT",
"HOVER",
"PROFILE",
"PORTRAIT"
],
"animations": [
"q.look('head')",
"q.bedrock('ponyta', 'ground_idle')"
],
"transformTicks": 10,
"quirks": [
"q.bedrock_quirk('ponyta', 'blink')",
"q.bedrock_quirk('ponyta', 'quirk1', 60, 360, 1)"
]
},
"walk": {
"poseTypes": [
"WALK",
"SWIM",
"FLY"
],
"animations": [
"q.look('head')",
"q.bedrock('ponyta', 'ground_walk')"
],
"transformTicks": 10,
"quirks": [
"q.bedrock_quirk('ponyta', 'blink')"
]
}
}
}
@@ -1,81 +0,0 @@
{
"rootBone": "ponyta_galar",
"portraitScale": 2.2,
"portraitTranslation": [
-0.4,
0.2,
0
],
"profileScale": 0.9,
"profileTranslation": [
0,
0.43,
0
],
"animations": {
"cry": "q.bedrock_stateful('ponyta_galar', 'cry')",
"faint": "q.bedrock_stateful('ponyta_galar', 'faint')"
},
"poses": {
"sleep": {
"poseName": "sleep",
"poseTypes": [
"SLEEP"
],
"animations": [
"q.bedrock('ponyta_galar', 'sleep')"
]
},
"standing": {
"poseName": "standing",
"poseTypes": [
"STAND",
"FLOAT",
"HOVER",
"PROFILE",
"PORTRAIT"
],
"animations": [
"q.look('head')",
"q.bedrock('ponyta_galar', 'ground_idle')"
],
"transformTicks": 10,
"quirks": [
"q.bedrock_quirk('ponyta_galar', 'blink')",
"q.bedrock_quirk('ponyta_galar', 'quirk', 60, 360, 1)"
]
},
"walk": {
"poseName": "walk",
"poseTypes": [
"WALK",
"SWIM",
"FLY"
],
"animations": [
"q.look('head')",
"q.bedrock('ponyta_galar', 'ground_walk')"
],
"transformTicks": 10,
"quirks": [
"q.bedrock_quirk('ponyta_galar', 'blink')"
]
},
"battlestanding": {
"poseName": "battlestanding",
"poseTypes": [
"STAND",
"FLOAT",
"HOVER"
],
"animations": [
"q.look('head')",
"q.bedrock('ponyta_galar', 'ground_idle')"
],
"transformTicks": 10,
"quirks": [
"q.bedrock_quirk('ponyta_galar', 'blink')"
]
}
}
}
@@ -1,67 +0,0 @@
{
"rootBone": "rapidash",
"portraitScale": 2.5,
"portraitTranslation": [
-0.7,
1.11,
0
],
"profileScale": 0.75,
"profileTranslation": [
0,
0.65,
0
],
"animations": {
"cry": "q.bedrock_stateful('rapidash', 'cry')",
"faint": "q.bedrock_stateful('rapidash', 'faint')"
},
"poses": {
"standing": {
"poseTypes": [
"STAND",
"FLOAT",
"HOVER",
"PROFILE",
"PORTRAIT"
],
"isBattle": false,
"animations": [
"q.look('neck')",
"q.bedrock('rapidash', 'ground_idle')"
],
"quirks": [
"q.bedrock_quirk('rapidash', 'blink')"
]
},
"walk": {
"poseTypes": [
"WALK",
"SWIM",
"FLY"
],
"animations": [
"q.look('neck')",
"q.bedrock('rapidash', 'ground_walk')"
],
"quirks": [
"q.bedrock_quirk('rapidash', 'blink')"
]
},
"battle-standing": {
"poseTypes": [
"STAND",
"FLOAT",
"HOVER"
],
"isBattle": true,
"namedAnimations": {
"faint": "q.bedrock_stateful('rapidash', 'battle_faint')"
},
"animations": [
"q.look('neck')",
"q.bedrock('rapidash', 'battle_idle')"
]
}
}
}
@@ -1,66 +0,0 @@
{
"rootBone": "rapidash_galar",
"portraitScale": 1.86,
"portraitTranslation": [
-0.5,
1.3,
0
],
"profileScale": 0.67,
"profileTranslation": [
0,
0.72,
0
],
"animations": {
"cry": "q.bedrock_stateful('rapidash', 'cry')"
},
"poses": {
"standing": {
"poseTypes": [
"STAND",
"FLOAT",
"HOVER",
"PROFILE",
"PORTRAIT"
],
"isBattle": false,
"animations": [
"q.look('neck')",
"q.bedrock('rapidash_galar', 'ground_idle')",
"q.bedrock('rapidash_galar', 'hair')"
],
"quirks": [
"q.bedrock_quirk('rapidash_galar', 'blink')"
]
},
"walk": {
"poseTypes": [
"WALK",
"SWIM",
"FLY"
],
"animations": [
"q.look('neck')",
"q.bedrock('rapidash_galar', 'ground_walk')",
"q.bedrock('rapidash_galar', 'hair')"
],
"quirks": [
"q.bedrock_quirk('rapidash_galar', 'blink')"
]
},
"battle-standing": {
"poseTypes": [
"STAND",
"FLOAT",
"HOVER"
],
"isBattle": true,
"animations": [
"q.look('neck')",
"q.bedrock('rapidash_galar', 'battle_idle')",
"q.bedrock('rapidash_galar', 'hair')"
]
}
}
}
Loaded 100 of 154 files, more files were not shown because too many files have changed in this diff. Show more