mirror of
https://gitlab.com/cable-mc/cobblemon.git
synced 2026-10-20 14:16:26 -04:00
refactor: Wartortle poser
This commit is contained in:
-157
@@ -1,157 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2023 Cobblemon Contributors
|
||||
*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
|
||||
package com.cobblemon.mod.common.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)
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
-1
@@ -218,7 +218,6 @@ object VaryingModelRepository {
|
||||
inbuilt("ancient_leaden_ball", ::AncientPokeBallModel)
|
||||
inbuilt("ancient_gigaton_ball", ::AncientPokeBallModel)
|
||||
|
||||
inbuilt("wartortle", ::WartortleModel)
|
||||
inbuilt("metapod", ::MetapodModel)
|
||||
inbuilt("butterfree", ::ButterfreeModel)
|
||||
inbuilt("beedrill", ::BeedrillModel)
|
||||
|
||||
+128
@@ -0,0 +1,128 @@
|
||||
{
|
||||
"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', 'surfacewater_swim')"
|
||||
],
|
||||
"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":"wartortle",
|
||||
"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":"wartortle",
|
||||
"position":[0,-10,0]
|
||||
}
|
||||
]
|
||||
},
|
||||
"sleep": {
|
||||
"poseTypes": [
|
||||
"SLEEP"
|
||||
],
|
||||
"animations": [
|
||||
"q.bedrock('wartortle', 'sleep')"
|
||||
],
|
||||
"quirks": [
|
||||
"q.bedrock_quirk('wartortle', 'blink')"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user