Full asset update, added seasonal variation Deerling+Sawsbuck, Sableye, Pyuku,

This commit is contained in:
Paul
2022-11-25 20:35:57 +10:00
parent d254074a0a
commit 71497a9854
94 changed files with 3138 additions and 135 deletions
+4 -2
View File
@@ -1,5 +1,4 @@
# Changelog
## 1.1.0 - The Swim and Sleep Update
#### "Each sold separately"
@@ -7,11 +6,13 @@
### Additions
- Added a new GUI for viewing party information, rearranging moves, and evolving Pokémon. It looks unreasonably good
- Starter Pokémon will sleep on top of you if sent out when you get on a bed.
- Added sleeping animations (used in battle and in the wild) for starters, Weedle family, and the Caterpie family.
- Added sleeping animations (used in battle and in the wild) for starters, the Weedle family, and the Caterpie family.
- Added Alolan Rattata and Alolan Raticate. Now where would you find them...?
- Added Sableye, Deerling and Sawsbuck, and Pyukumukurutudulu or whatever it's called.
- Added swimming animations and swimming AI.
- Pokémon like Magikarp desperately move to water if they're on land.
- Added status condition indicators in the party overlay.
- Added shiny textures for many Pokémon (thank you MageFX!): Aerodactyl, Articuno, Zapdos, Moltres, Chansey, the Dratini family, Electabuzz, Goldeen and Seaking, Hitmonchan and Hitmonlee, Jynx, Kabuto and Kabutops, Magmar, Lickitung, Mr. Mime, Omanyte and Omastar, Rhyhorn and Rhydon, Koffing and Weezing, Porygon, Scyther, Seadra, Staryu and Starmie, and Tangela. Phew!
### Changes
- Significantly improved AI pathing for larger entities
@@ -30,6 +31,7 @@
- Fixed Pokémon sometimes running in place. It's still possible, but much less likely
- Fixed messages appearing in the console whenever a healer is used.
- Fixed mod incompatibility with many Architectury API mods, including *Biome Makeover* and *Earth2Java*.
- Fixed a mod incompatibility with Minecraft Transit Rails Fabric and probably a bunch of other Fabric mods.
- **Model Fixes**
- Fixed Paras and Nidoqueen looking very weird
- Fixed Hitmonchan asserting dominance with a T-pose as well as Grimer and Muk pointing their hands to the sky
@@ -10,6 +10,7 @@ package com.cobblemon.mod.common
import com.cobblemon.mod.common.advancement.CobblemonCriteria
import com.cobblemon.mod.common.api.Priority
import com.cobblemon.mod.common.api.SeasonResolver
import com.cobblemon.mod.common.api.data.DataProvider
import com.cobblemon.mod.common.api.drop.CommandDropEntry
import com.cobblemon.mod.common.api.drop.DropEntry
@@ -81,13 +82,17 @@ import com.cobblemon.mod.common.pokemon.Pokemon
import com.cobblemon.mod.common.pokemon.aspects.FishStripesAspect
import com.cobblemon.mod.common.pokemon.aspects.GENDER_ASPECT
import com.cobblemon.mod.common.pokemon.aspects.SHINY_ASPECT
import com.cobblemon.mod.common.pokemon.aspects.SeasonAspect
import com.cobblemon.mod.common.pokemon.aspects.SnakePatternAspect
import com.cobblemon.mod.common.pokemon.evolution.variants.BlockClickEvolution
import com.cobblemon.mod.common.pokemon.feature.BattleCriticalHitsFeature
import com.cobblemon.mod.common.pokemon.feature.TagSeasonResolver
import com.cobblemon.mod.common.pokemon.feature.DamageTakenFeature
import com.cobblemon.mod.common.pokemon.feature.FISH_STRIPES
import com.cobblemon.mod.common.pokemon.feature.FishStripesFeature
import com.cobblemon.mod.common.pokemon.feature.SEASON
import com.cobblemon.mod.common.pokemon.feature.SNAKE_PATTERN
import com.cobblemon.mod.common.pokemon.feature.SeasonFeature
import com.cobblemon.mod.common.pokemon.feature.SnakePatternFeature
import com.cobblemon.mod.common.pokemon.properties.HiddenAbilityPropertyType
import com.cobblemon.mod.common.pokemon.properties.UncatchableProperty
@@ -150,6 +155,7 @@ object Cobblemon {
val dataProvider: DataProvider = CobblemonDataProvider
var permissionValidator: PermissionValidator by Delegates.observable(LaxPermissionValidator().also { it.initialize() }) { _, _, newValue -> newValue.initialize() }
var statProvider: StatProvider = CobblemonStatProvider
var seasonResolver: SeasonResolver = TagSeasonResolver
fun preinitialize(implementation: CobblemonImplementation) {
DropEntry.register("command", CommandDropEntry::class.java)
@@ -221,6 +227,7 @@ object Cobblemon {
GENDER_ASPECT.register()
SnakePatternAspect.register()
FishStripesAspect.register()
SeasonAspect.register()
config.flagSpeciesFeatures.forEach(FlagSpeciesFeature::registerWithPropertyAndAspect)
config.globalFlagSpeciesFeatures.forEach(FlagSpeciesFeature::registerWithPropertyAndAspect)
@@ -231,6 +238,7 @@ object Cobblemon {
SpeciesFeature.registerGlobalFeature(DamageTakenFeature.ID) { DamageTakenFeature() }
SpeciesFeature.registerGlobalFeature(BattleCriticalHitsFeature.ID) { BattleCriticalHitsFeature() }
EnumSpeciesFeature.registerWithProperty(SNAKE_PATTERN, SnakePatternFeature::class.java)
EnumSpeciesFeature.registerWithProperty(SEASON, SeasonFeature::class.java)
EnumSpeciesFeature.registerWithProperty(FISH_STRIPES, FishStripesFeature::class.java)
CustomPokemonProperty.register(UntradeableProperty)
@@ -0,0 +1,24 @@
/*
* Copyright (C) 2022 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.api
import com.cobblemon.mod.common.pokemon.feature.CobblemonSeason
import net.minecraft.util.math.BlockPos
import net.minecraft.world.WorldAccess
/**
* Figures out what season it is at a particular position. Season is just a general approximation
* used for things like Deerling variations.
*
* @author Hiroku
* @since November 25th, 2022
*/
fun interface SeasonResolver {
operator fun invoke(world: WorldAccess, pos: BlockPos): CobblemonSeason
}
@@ -12,6 +12,8 @@ import com.cobblemon.mod.common.Cobblemon
import com.cobblemon.mod.common.api.pokemon.PokemonProperties
import com.cobblemon.mod.common.api.spawning.context.SpawningContext
import com.cobblemon.mod.common.entity.pokemon.PokemonEntity
import com.cobblemon.mod.common.pokemon.feature.SEASON
import com.cobblemon.mod.common.pokemon.feature.SeasonFeature
import kotlin.random.Random
/**
@@ -34,8 +36,8 @@ class PokemonSpawnAction(
// If the config value is at least 1, then do 1/x and use that as the shiny chance
props.shiny = Cobblemon.config.shinyRate.takeIf { it >= 1 }?.let { Random.Default.nextFloat() < 1 / it }
}
val entity = props.createEntity(ctx.world)
entity.pokemon.getFeature<SeasonFeature>(SEASON)?.update(entity.pokemon, ctx.world, ctx.position)
entity.drops = detail.drops
return entity
}
@@ -56,7 +56,7 @@ class WaveAnimation<T : Entity>(
override fun setAngles(entity: T?, model: PoseableEntityModel<T>, state: PoseableEntityState<T>?, limbSwing: Float, limbSwingAmount: Float, ageInTicks: Float, headYaw: Float, headPitch: Float) {
val t = if (basedOnLimbSwing) {
limbSwing
limbSwing / 20F
} else {
entity?.let { model.getState(it).animationSeconds } ?: 0F
}
@@ -10,6 +10,7 @@ package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen1
import com.cobblemon.mod.common.client.render.models.blockbench.animation.WaveAnimation
import com.cobblemon.mod.common.client.render.models.blockbench.animation.WaveSegment
import com.cobblemon.mod.common.client.render.models.blockbench.asTransformed
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPoseableModel
import com.cobblemon.mod.common.client.render.models.blockbench.pose.TransformedModelPart.Companion.X_AXIS
@@ -65,6 +66,7 @@ class GyaradosModel(root: ModelPart) : PokemonPoseableModel(), HeadedFrame {
registerPose(
poseName = "land",
poseTypes = STANDING_POSES + UI_POSES,
condition = { !it.isTouchingWater },
idleAnimations = arrayOf(
singleBoneLook(),
bedrock("0130_gyarados/gyarados", "ground_idle"),
@@ -93,6 +95,41 @@ class GyaradosModel(root: ModelPart) : PokemonPoseableModel(), HeadedFrame {
)
)
registerPose(
poseName = "surface",
poseTypes = setOf(PoseType.STAND, PoseType.WALK),
condition = { it.isTouchingWater },
idleAnimations = arrayOf(
singleBoneLook(),
bedrock("0130_gyarados/gyarados", "surface_idle"),
WaveAnimation(
frame = this,
waveFunction = sineFunction(
period = 3F,
amplitude = 0.2F
),
oscillationsScalar = 24F,
head = seg6,
rotationAxis = X_AXIS,
motionAxis = Y_AXIS,
headLength = 0F,
basedOnLimbSwing = false,
moveHead = false,
segments = arrayOf(
wseg7,
wseg8,
wseg9,
wseg10,
wseg11,
wseg12
)
)
),
transformedParts = arrayOf(
rootPart.asTransformed().addPosition(Y_AXIS, -6F)
)
)
registerPose(
poseName = "swim",
poseTypes = SWIMMING_POSES + FLYING_POSES,
@@ -0,0 +1,68 @@
/*
* Copyright (C) 2022 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen3
import com.cobblemon.mod.common.client.render.models.blockbench.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.PokemonPose
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPoseableModel
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.ModelPart
import net.minecraft.util.math.Vec3d
class SableyeModel(root: ModelPart) : PokemonPoseableModel(), HeadedFrame, BipedFrame, BimanualFrame {
override val rootPart = root.registerChildWithAllChildren("sableye")
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 val portraitScale = 1.6F
override val portraitTranslation = Vec3d(0.0, -.125, 0.0)
override val profileScale = 0.9F
override val profileTranslation = Vec3d(0.0, 0.35, 0.0)
lateinit var standing: PokemonPose
lateinit var walk: PokemonPose
override fun registerPoses() {
standing = registerPose(
poseName = "standing",
poseTypes = STATIONARY_POSES + UI_POSES,
idleAnimations = arrayOf(
singleBoneLook(),
bedrock("0302_sableye/sableye", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = MOVING_POSES,
idleAnimations = arrayOf(
singleBoneLook(),
bedrock("0302_sableye/sableye", "ground_idle"),
BipedWalkAnimation(this, periodMultiplier = 0.8F, amplitudeMultiplier = 0.7F),
BimanualSwingAnimation(this)
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PoseableEntityState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("0302_sableye/sableye", "faint") else null
}
@@ -0,0 +1,63 @@
/*
* Copyright (C) 2022 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.gen5
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.PokemonPose
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPoseableModel
import com.cobblemon.mod.common.entity.PoseType
import net.minecraft.client.model.ModelPart
import net.minecraft.util.math.Vec3d
class DeerlingModel(root: ModelPart) : PokemonPoseableModel(), HeadedFrame, QuadrupedFrame {
override val rootPart = root.registerChildWithAllChildren("deerling")
override val head = getPart("head")
override val portraitScale = 2F
override val portraitTranslation = Vec3d(-0.1, -0.1, 0.0)
override val profileScale = 1.0F
override val profileTranslation = Vec3d(-0.1, 0.15, 0.0)
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")
lateinit var standing: PokemonPose
lateinit var walk: PokemonPose
override fun registerPoses() {
standing = registerPose(
poseName = "standing",
poseTypes = PoseType.STATIONARY_POSES + PoseType.UI_POSES,
idleAnimations = arrayOf(
singleBoneLook(),
// bedrock("0585_deerling/deerling", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = PoseType.MOVING_POSES,
idleAnimations = arrayOf(
singleBoneLook(),
QuadrupedWalkAnimation(this, periodMultiplier = 0.8F, amplitudeMultiplier = 0.8F)
// bedrock("0585_deerling/deerling", "ground_walk")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PoseableEntityState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("0585_deerling/deerling", "faint") else null
}
@@ -0,0 +1,63 @@
/*
* Copyright (C) 2022 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.gen5
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.PokemonPose
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPoseableModel
import com.cobblemon.mod.common.entity.PoseType
import net.minecraft.client.model.ModelPart
import net.minecraft.util.math.Vec3d
class SawsbuckModel(root: ModelPart) : PokemonPoseableModel(), HeadedFrame, QuadrupedFrame {
override val rootPart = root.registerChildWithAllChildren("sawsbuck")
override val head = getPart("head")
override val portraitScale = 1.5F
override val portraitTranslation = Vec3d(-0.3, 1.05, 0.0)
override val profileScale = 0.6F
override val profileTranslation = Vec3d(0.0, 0.8, 0.0)
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")
lateinit var standing: PokemonPose
lateinit var walk: PokemonPose
override fun registerPoses() {
standing = registerPose(
poseName = "standing",
poseTypes = PoseType.STATIONARY_POSES + PoseType.UI_POSES,
idleAnimations = arrayOf(
singleBoneLook(),
// bedrock("0586_sawsbuck/sawsbuck", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = PoseType.MOVING_POSES,
idleAnimations = arrayOf(
singleBoneLook(),
QuadrupedWalkAnimation(this, periodMultiplier = 0.9F, amplitudeMultiplier = 0.9F)
// bedrock("0586_sawsbuck/sawsbuck", "ground_walk")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PoseableEntityState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("0586_sawsbuck/sawsbuck", "faint") else null
}
@@ -0,0 +1,45 @@
/*
* Copyright (C) 2022 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen7
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPose
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPoseableModel
import com.cobblemon.mod.common.entity.PoseType
import net.minecraft.client.model.ModelPart
import net.minecraft.util.math.Vec3d
class PyukumukuModel(root: ModelPart) : PokemonPoseableModel() {
override val rootPart = root.registerChildWithAllChildren("pyukumuku")
override val portraitScale = 1.65F
override val portraitTranslation = Vec3d(-0.1, -0.8, 0.0)
override val profileScale = 1.0F
override val profileTranslation = Vec3d(0.0, 0.0, 0.0)
// lateinit var sleep: PokemonPose
lateinit var standing: PokemonPose
override fun registerPoses() {
// sleep = registerPose(
// poseType = PoseType.SLEEP,
// idleAnimations = arrayOf(bedrock("0771_pyukumuku/pyukumuku", "sleep"))
// )
standing = registerPose(
poseName = "standing",
poseTypes = PoseType.ALL_POSES,// - PoseType.SLEEP,
idleAnimations = emptyArray()// arrayOf(bedrock("0771_pyukumuku/pyukumuku", "ground_idle"))
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PoseableEntityState<PokemonEntity>
// ) = if (state.isPosedIn(standing)) bedrockStateful("0771_pyukumuku/pyukumuku", "faint") else null
}
@@ -193,6 +193,7 @@ import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen3.Min
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen3.MudkipModel
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen3.PlusleModel
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen3.RayquazaModel
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen3.SableyeModel
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen3.SwampertModel
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen3.TorchicModel
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen4.BibarelModel
@@ -219,9 +220,11 @@ import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen4.Tan
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen4.YanmegaModel
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen5.BasculinModel
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen5.CrustleModel
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen5.DeerlingModel
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen5.DwebbleModel
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen5.EmolgaModel
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen5.MaractusModel
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen5.SawsbuckModel
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen6.SylveonModel
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen7.BounsweetModel
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen7.DartrixModel
@@ -231,6 +234,7 @@ import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen7.Lit
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen7.MimikyuModel
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen7.NaganadelModel
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen7.PoipoleModel
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen7.PyukumukuModel
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen7.RowletModel
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen7.SteeneeModel
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen7.TorracatModel
@@ -249,8 +253,6 @@ import com.cobblemon.mod.common.util.cobblemonResource
import com.cobblemon.mod.common.util.endsWith
import java.io.File
import java.nio.charset.StandardCharsets
import kotlin.io.path.Path
import kotlin.io.path.pathString
import net.minecraft.client.model.ModelPart
import net.minecraft.resource.ResourceManager
import net.minecraft.util.Identifier
@@ -495,6 +497,10 @@ object PokemonModelRepository : ModelRepository<PokemonEntity>() {
inbuilt("centiskorch", ::CentiskorchModel)
inbuilt("sizzlipede", ::SizzlipedeModel)
inbuilt("kleavor", ::KleavorModel)
inbuilt("pyukumuku", ::PyukumukuModel)
inbuilt("deerling", ::DeerlingModel)
inbuilt("sawsbuck", ::SawsbuckModel)
inbuilt("sableye", ::SableyeModel)
}
fun inbuilt(name: String, model: (ModelPart) -> PokemonPoseableModel) {
@@ -81,6 +81,8 @@ import com.cobblemon.mod.common.pokemon.activestate.PokemonState
import com.cobblemon.mod.common.pokemon.activestate.SentOutState
import com.cobblemon.mod.common.pokemon.evolution.CobblemonEvolutionProxy
import com.cobblemon.mod.common.pokemon.feature.DamageTakenFeature
import com.cobblemon.mod.common.pokemon.feature.SEASON
import com.cobblemon.mod.common.pokemon.feature.SeasonFeature
import com.cobblemon.mod.common.pokemon.status.PersistentStatus
import com.cobblemon.mod.common.pokemon.status.PersistentStatusContainer
import com.cobblemon.mod.common.util.DataKeys
@@ -89,6 +91,7 @@ import com.cobblemon.mod.common.util.getServer
import com.cobblemon.mod.common.util.lang
import com.cobblemon.mod.common.util.playSoundServer
import com.cobblemon.mod.common.util.setPositionSafely
import com.cobblemon.mod.common.util.toBlockPos
import com.google.gson.JsonArray
import com.google.gson.JsonObject
import com.google.gson.JsonPrimitive
@@ -361,6 +364,7 @@ open class Pokemon {
open fun getStat(stat: Stat) = Cobblemon.statProvider.getStatForPokemon(this, stat)
fun sendOut(level: ServerWorld, position: Vec3d, mutation: (PokemonEntity) -> Unit = {}): PokemonEntity {
getFeature<SeasonFeature>(SEASON)?.update(this, level, position.toBlockPos())
val entity = PokemonEntity(level, this)
entity.setPositionSafely(position)
mutation(entity)
@@ -923,6 +927,10 @@ open class Pokemon {
private val observables = mutableListOf<Observable<*>>()
private val anyChangeObservable = SimpleObservable<Pokemon>()
fun markFeatureDirty(feature: SpeciesFeature) {
_features.emit(feature)
}
fun getAllObservables() = observables.asIterable()
/** Returns an [Observable] that emits Unit whenever any change is made to this Pokémon. The change itself is not included. */
fun getChangeObservable(): Observable<Pokemon> = anyChangeObservable
@@ -978,6 +986,8 @@ open class Pokemon {
private val _gender = registerObservable(SimpleObservable<Gender>()) { GenderUpdatePacket(this, it) }
private val _ability = registerObservable(SimpleObservable<Ability>()) { AbilityUpdatePacket(this, it.template) }
private val _features = registerObservable(SimpleObservable<SpeciesFeature>())
companion object {
/**
@@ -0,0 +1,29 @@
/*
* Copyright (C) 2022 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.pokemon.aspects
import com.cobblemon.mod.common.api.pokemon.PokemonProperties
import com.cobblemon.mod.common.api.pokemon.aspect.AspectProvider
import com.cobblemon.mod.common.pokemon.Pokemon
import com.cobblemon.mod.common.pokemon.feature.SEASON
import com.cobblemon.mod.common.pokemon.feature.SNAKE_PATTERN
import com.cobblemon.mod.common.pokemon.feature.SeasonFeature
import com.cobblemon.mod.common.pokemon.feature.SnakePatternFeature
object SeasonAspect : AspectProvider {
fun provideForFeature(feature: SeasonFeature) = setOf(feature.enumValue.name.lowercase())
override fun provide(pokemon: Pokemon): Set<String> {
return provideForFeature(pokemon.getFeature(SEASON) ?: return emptySet())
}
override fun provide(properties: PokemonProperties): Set<String> {
return provideForFeature(properties.customProperties.filterIsInstance<SeasonFeature>().firstOrNull() ?: return emptySet())
}
}
@@ -0,0 +1,72 @@
/*
* Copyright (C) 2022 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.pokemon.feature
import com.cobblemon.mod.common.Cobblemon
import com.cobblemon.mod.common.api.SeasonResolver
import com.cobblemon.mod.common.api.pokemon.feature.EnumSpeciesFeature
import com.cobblemon.mod.common.pokemon.Pokemon
import com.cobblemon.mod.common.tags.CobblemonBiomeTags
import java.util.EnumSet
import net.minecraft.util.math.BlockPos
import net.minecraft.world.WorldAccess
/**
* A season variation of a Pokémon.
*
* @author Hiroku
* @since November 25th, 2022
*/
enum class CobblemonSeason {
SPRING,
FALL,
SUMMER,
WINTER;
companion object {
val ALL_VALUES = EnumSet.allOf(CobblemonSeason::class.java)
}
}
const val SEASON = "season"
class SeasonFeature : EnumSpeciesFeature<CobblemonSeason>() {
override val name: String = SEASON
override fun getValues() = CobblemonSeason.ALL_VALUES
fun update(pokemon: Pokemon, world: WorldAccess, pos: BlockPos) {
val currentSeason = enumValue
val newSeason = Cobblemon.seasonResolver(world, pos)
if (currentSeason != newSeason) {
enumValue = newSeason
pokemon.updateAspects()
pokemon.markFeatureDirty(this)
}
}
}
/**
* A [SeasonResolver] that works by delegating the work to biome tags.
*
* @author Hiroku
* @since November 25th, 2022
*/
object TagSeasonResolver : SeasonResolver {
override fun invoke(world: WorldAccess, pos: BlockPos): CobblemonSeason {
val biome = world.getBiome(pos)
return if (biome.isIn(CobblemonBiomeTags.IS_SUMMER)) {
CobblemonSeason.SUMMER
} else if (biome.isIn(CobblemonBiomeTags.IS_WINTER)) {
CobblemonSeason.WINTER
} else if (biome.isIn(CobblemonBiomeTags.IS_FALL)) {
CobblemonSeason.FALL
} else {
CobblemonSeason.SPRING
}
}
}
@@ -49,6 +49,10 @@ object CobblemonBiomeTags {
val IS_TUNDRA = create("is_tundra")
val IS_UNDERGROUND = create("is_underground")
val IS_VOID = create("is_void")
val IS_SUMMER = create("is_summer")
val IS_FALL = create("is_fall")
val IS_WINTER = create("is_winter")
val IS_SPRING = create("is_spring")
// Has Ore tags
val HAS_DAWN_STONE_ORE = create("has_ore/ore_dawn_stone_normal")
@@ -168,28 +168,7 @@
"rotation": [30, 0, 0]
},
"segment6": {
"rotation": [30, 0, 0]
},
"segment7": {
"rotation": [15, 0, 0]
},
"segment8": {
"rotation": [15, 0, 0]
},
"segment9": {
"rotation": [-30, 0, 0]
},
"segment10": {
"rotation": [-25, 0, 0]
},
"segment11": {
"rotation": [-20, 0, 0]
},
"segment12": {
"rotation": [30, 0, 0]
},
"segment13": {
"rotation": [25, 0, 0]
"rotation": [27.5, 0, 0]
}
}
}
@@ -390,7 +390,7 @@
"rotation": [
"math.clamp(math.sin(q.anim_time*90*2)*2,0,2)+math.clamp(math.sin(q.anim_time*90*2)*2,-2,0)",
"-1*(math.clamp(math.sin(q.anim_time*90*2)*1.5,0,1)+math.clamp(math.sin(q.anim_time*90*2)*2.5,0,6)+math.clamp(math.sin(q.anim_time*90*2)*1.5,-1,0)+math.clamp(math.sin(q.anim_time*90*2)*2,-4,-0)-10)",
"10-math.sin(q.anim_time*90*2/3+90)*6"
"-10+math.sin(q.anim_time*90*2/3+90)*6"
]
},
"flipper_back_left1": {
@@ -443,6 +443,13 @@
},
"head_correction": {
"rotation": [-10, 0, 0]
},
"flipper_back_right2": {
"rotation": [
0,
0,
"-5-math.clamp(math.sin(q.anim_time*90*2+90)*1.5,0,1)-math.clamp(math.sin(q.anim_time*90*2+90)*2.5,0,6)-math.clamp(math.sin(q.anim_time*90*2+90)*1.5,-1,0)-math.clamp(math.sin(q.anim_time*90*2+90)*2,-4,-0)"
]
}
}
},
@@ -0,0 +1,55 @@
{
"format_version": "1.8.0",
"animations": {
"animation.sableye.ground_idle": {
"loop": true,
"bones": {
"body": {
"position": [0, -0.5, 0]
},
"torso": {
"rotation": [7.5, 0, 0]
},
"chest": {
"rotation": [15, 0, 0]
},
"head": {
"rotation": [5, 0, 0]
},
"arm_right": {
"rotation": [0, -7.5, -15]
},
"arm_right2": {
"rotation": [0, -75, 0]
},
"arm_left": {
"rotation": [0, 7.5, 15]
},
"arm_left2": {
"rotation": [0, 75, 0]
},
"leg_right": {
"rotation": [-30, 20, 0]
},
"leg_right2": {
"rotation": [45, 0, 0]
},
"leg_left": {
"rotation": [-30, -20, 0]
},
"leg_left2": {
"rotation": [45, 0, 0]
},
"gem": {
"rotation": [7.5, 0, 0]
},
"foot_right": {
"rotation": [-15, 0, 0]
},
"foot_left": {
"rotation": [-15, 0, 0]
}
}
}
}
}
@@ -5,7 +5,7 @@
"description": {
"identifier": "geometry.nidoqueen",
"texture_width": 128,
"texture_height": 64,
"texture_height": 128,
"visible_bounds_width": 4,
"visible_bounds_height": 3.5,
"visible_bounds_offset": [0, 1.25, 0]
@@ -18,30 +18,24 @@
{
"name": "body",
"parent": "nidoqueen",
"pivot": [0, 0, 0]
},
{
"name": "torso",
"parent": "body",
"pivot": [0, 8.5, -1.5],
"rotation": [5, 0, 0],
"pivot": [0, 10.96213, -2.11736],
"cubes": [
{"origin": [-5.5, 4, -6.75], "size": [11, 14, 9], "uv": [0, 0]},
{"origin": [-5.75, 12.75, -7.5], "size": [4, 4, 3], "pivot": [0, 13, -1.75], "rotation": [5, 0, 0], "uv": [54, 15], "mirror": true},
{"origin": [1.75, 12.75, -7.5], "size": [4, 4, 3], "pivot": [0, 13, -1.75], "rotation": [5, 0, 0], "uv": [40, 15]},
{"origin": [0, 12.557, 1.00738], "size": [0, 4, 5], "pivot": [0, 15.557, 2.00738], "rotation": [17.5, 0, 0], "uv": [21, 18]}
{"origin": [-5.5, 4, -6.75], "size": [11, 14, 9], "pivot": [0, 12.5, -1.75], "rotation": [5, 0, 0], "uv": [0, 0]},
{"origin": [-5.75, 12.25, -7.5], "size": [4, 4, 3], "pivot": [0, 12.5, -1.75], "rotation": [5, 0, 0], "uv": [18, 0], "mirror": true},
{"origin": [1.75, 12.25, -7.5], "size": [4, 4, 3], "pivot": [0, 12.5, -1.75], "rotation": [5, 0, 0], "uv": [18, 0]},
{"origin": [0, 12.557, 1.00738], "size": [0, 4, 5], "inflate": 0.02, "pivot": [0, 15.557, 2.00738], "rotation": [17.5, 0, 0], "uv": [21, 18]}
]
},
{
"name": "head",
"parent": "torso",
"parent": "body",
"pivot": [0, 17, -2.25],
"cubes": [
{"origin": [-4.5, 17, -4.25], "size": [9, 8, 5], "uv": [30, 23]},
{"origin": [-4.5, 20, -9.25], "size": [9, 5, 5], "uv": [0, 53]},
{"origin": [-3, 19.5, -11.25], "size": [6, 4, 2], "uv": [47, 36]},
{"origin": [0, 18, -3.5], "size": [0, 10, 8], "pivot": [0.5, 25, 0.75], "rotation": [5, 0, 0], "uv": [63, 33]},
{"origin": [0, 24, -10.25], "size": [0, 4, 3], "pivot": [0, 26, -8.75], "rotation": [27.5, 0, 0], "uv": [0, 24]}
{"origin": [-4.5, 20, -9.25], "size": [9, 5, 5], "uv": [42, 46]},
{"origin": [-3, 19.5, -11.25], "size": [6, 4, 2], "uv": [48, 49]},
{"origin": [0, 18, -3.5], "size": [0, 10, 8], "inflate": 0.02, "pivot": [0.5, 25, 0.75], "rotation": [5, 0, 0], "uv": [1, 31]},
{"origin": [0, 24, -10.25], "size": [0, 4, 3], "inflate": 0.02, "pivot": [0, 26, -8.75], "rotation": [27.5, 0, 0], "uv": [0, 24]}
]
},
{
@@ -49,24 +43,24 @@
"parent": "head",
"pivot": [0, 22.5, -6.5],
"cubes": [
{"origin": [-4.5, 21.5, -8.5], "size": [0, 2, 4], "inflate": 0.01, "pivot": [-4.5, 22.5, -6.5], "rotation": [7.5, 0, 0], "uv": [58, 24], "mirror": true},
{"origin": [4.5, 21.5, -8.5], "size": [0, 2, 4], "inflate": 0.01, "pivot": [4.5, 22.5, -6.5], "rotation": [7.5, 0, 0], "uv": [58, 26]}
{"origin": [-4.5, 21.5, -8.5], "size": [0, 2, 4], "inflate": 0.02, "pivot": [-4.5, 22.5, -6.5], "rotation": [7.5, 0, 0], "uv": [120, -4], "mirror": true},
{"origin": [4.5, 21.5, -8.5], "size": [0, 2, 4], "inflate": 0.02, "pivot": [4.5, 22.5, -6.5], "rotation": [7.5, 0, 0], "uv": [120, -4]}
]
},
{
"name": "eyelid_right",
"parent": "eyes",
"pivot": [-3.975, 22.5, -6.5],
"pivot": [-3.9, 22.5, -6.5],
"cubes": [
{"origin": [-4.475, 21.5, -8.5], "size": [1, 2, 4], "inflate": 0.02, "pivot": [-4.475, 22.5, -6.5], "rotation": [7.5, 0, 0], "uv": [23, 34], "mirror": true}
{"origin": [-4.4, 21.5, -8.5], "size": [1, 2, 4], "inflate": 0.04, "pivot": [-4.4, 22.5, -6.5], "rotation": [7.5, 0, 0], "uv": [57, 0], "mirror": true}
]
},
{
"name": "eyelid_left",
"parent": "eyes",
"pivot": [3.975, 22.5, -6.5],
"pivot": [3.9, 22.5, -6.5],
"cubes": [
{"origin": [3.475, 21.5, -8.5], "size": [1, 2, 4], "inflate": 0.02, "pivot": [4.475, 22.5, -6.5], "rotation": [7.5, 0, 0], "uv": [61, 6]}
{"origin": [3.4, 21.5, -8.5], "size": [1, 2, 4], "inflate": 0.04, "pivot": [4.4, 22.5, -6.5], "rotation": [7.5, 0, 0], "uv": [57, 0]}
]
},
{
@@ -75,8 +69,8 @@
"pivot": [-0.5, 20, -4.25],
"rotation": [-5, 0, 0],
"cubes": [
{"origin": [-4, 17.5, -8.75], "size": [8, 3, 5], "uv": [40, 7]},
{"origin": [-2.5, 17.5, -10.75], "size": [5, 3, 2], "uv": [30, 51]}
{"origin": [-4, 17.5, -8.75], "size": [8, 3, 5], "uv": [40, 15]},
{"origin": [-2.5, 17.5, -10.75], "size": [5, 3, 2], "uv": [46, 18]}
]
},
{
@@ -85,7 +79,7 @@
"pivot": [-4.5, 25, -2.75],
"rotation": [27.5, 42.5, 25],
"cubes": [
{"origin": [-10.5, 21, -2.75], "size": [8, 7, 0], "uv": [31, 0]}
{"origin": [-10.5, 21, -2.75], "size": [8, 7, 0], "inflate": 0.02, "uv": [31, 0]}
]
},
{
@@ -94,15 +88,15 @@
"pivot": [4.5, 25, -2.75],
"rotation": [27.5, -42.5, -25],
"cubes": [
{"origin": [2.5, 21, -2.75], "size": [8, 7, 0], "uv": [31, 0], "mirror": true}
{"origin": [2.5, 21, -2.75], "size": [8, 7, 0], "inflate": 0.02, "uv": [31, 0], "mirror": true}
]
},
{
"name": "arm_right",
"parent": "torso",
"parent": "body",
"pivot": [-5, 15.75, -2],
"cubes": [
{"origin": [-8.5, 13.25, -4.5], "size": [4, 5, 5], "uv": [67, 0]}
{"origin": [-8.5, 13.25, -4.5], "size": [4, 5, 5], "uv": [17, 60]}
]
},
{
@@ -110,7 +104,7 @@
"parent": "arm_right",
"pivot": [-8.5, 16.25, -2],
"cubes": [
{"origin": [-13.5, 13.25, -3.5], "size": [6, 3, 3], "uv": [68, 10]}
{"origin": [-13.5, 13.25, -3.5], "size": [6, 3, 3], "uv": [62, 12]}
]
},
{
@@ -118,18 +112,18 @@
"parent": "arm_right2",
"pivot": [-13.5, 14.75, -0.5],
"cubes": [
{"origin": [-20.5, 12.75, -4], "size": [7, 4, 4], "uv": [28, 56]},
{"origin": [-21.5, 14.25, -3.5], "size": [1, 1, 0], "pivot": [-20.5, 15.25, -3.5], "rotation": [-15, 0, 0], "uv": [21, 27]},
{"origin": [-21.5, 14.75, -2], "size": [1, 1, 0], "uv": [21, 28]},
{"origin": [-21.5, 14.25, -0.5], "size": [1, 1, 0], "pivot": [-20.5, 15.25, -0.5], "rotation": [15, 0, 0], "uv": [21, 29]}
{"origin": [-20.5, 12.75, -4], "size": [7, 4, 4], "uv": [58, 23]},
{"origin": [-21.5, 14.25, -3.5], "size": [1, 1, 0], "inflate": 0.02, "pivot": [-20.5, 15.25, -3.5], "rotation": [-15, 0, 0], "uv": [0, 0]},
{"origin": [-21.5, 14.75, -2], "size": [1, 1, 0], "inflate": 0.02, "uv": [0, 0]},
{"origin": [-21.5, 14.25, -0.5], "size": [1, 1, 0], "inflate": 0.02, "pivot": [-20.5, 15.25, -0.5], "rotation": [15, 0, 0], "uv": [0, 0]}
]
},
{
"name": "arm_left",
"parent": "torso",
"parent": "body",
"pivot": [5, 15.75, -2],
"cubes": [
{"origin": [4.5, 13.25, -4.5], "size": [4, 5, 5], "uv": [67, 0], "mirror": true}
{"origin": [4.5, 13.25, -4.5], "size": [4, 5, 5], "uv": [17, 60], "mirror": true}
]
},
{
@@ -138,7 +132,7 @@
"pivot": [8.5, 16.25, -2],
"rotation": [0, 0, 0],
"cubes": [
{"origin": [7.5, 13.25, -3.5], "size": [6, 3, 3], "uv": [53, 22], "mirror": true}
{"origin": [7.5, 13.25, -3.5], "size": [6, 3, 3], "uv": [62, 12], "mirror": true}
]
},
{
@@ -146,18 +140,54 @@
"parent": "arm_left2",
"pivot": [13.5, 14.75, -0.5],
"cubes": [
{"origin": [13.5, 12.75, -4], "size": [7, 4, 4], "uv": [28, 56], "mirror": true},
{"origin": [20.5, 14.25, -3.5], "size": [1, 1, 0], "pivot": [20.5, 15.25, -3.5], "rotation": [-15, 0, 0], "uv": [23, 27]},
{"origin": [20.5, 14.75, -2], "size": [1, 1, 0], "uv": [23, 28]},
{"origin": [20.5, 14.25, -0.5], "size": [1, 1, 0], "pivot": [20.5, 15.25, -0.5], "rotation": [15, 0, 0], "uv": [23, 29]}
{"origin": [13.5, 12.75, -4], "size": [7, 4, 4], "uv": [58, 23], "mirror": true},
{"origin": [20.5, 14.25, -3.5], "size": [1, 1, 0], "inflate": 0.02, "pivot": [20.5, 15.25, -3.5], "rotation": [-15, 0, 0], "uv": [0, 0]},
{"origin": [20.5, 14.75, -2], "size": [1, 1, 0], "inflate": 0.02, "uv": [0, 0]},
{"origin": [20.5, 14.25, -0.5], "size": [1, 1, 0], "inflate": 0.02, "pivot": [20.5, 15.25, -0.5], "rotation": [15, 0, 0], "uv": [0, 0]}
]
},
{
"name": "leg_right",
"parent": "body",
"pivot": [-5, 9.5, -1.5],
"cubes": [
{"origin": [-7.5, 2, -5.5], "size": [5, 8, 7], "uv": [40, 0]}
]
},
{
"name": "foot_right",
"parent": "leg_right",
"pivot": [-5, 2, -2],
"cubes": [
{"origin": [-7, 0, -6], "size": [4, 2, 7], "uv": [22, 51]},
{"origin": [-6.25, 0, -8], "size": [0, 2, 2], "inflate": 0.02, "pivot": [-6.25, 1, -6], "rotation": [0, 10, 0], "uv": [0, 0]},
{"origin": [-3.75, 0, -8], "size": [0, 2, 2], "inflate": 0.02, "pivot": [-3.75, 1, -6], "rotation": [0, -10, 0], "uv": [0, 0]}
]
},
{
"name": "leg_left",
"parent": "body",
"pivot": [5, 9.5, -1],
"cubes": [
{"origin": [2.5, 2, -5], "size": [5, 8, 7], "uv": [40, 0], "mirror": true}
]
},
{
"name": "foot_left",
"parent": "leg_left",
"pivot": [5, 2, -1.5],
"cubes": [
{"origin": [3, 0, -5.5], "size": [4, 2, 7], "uv": [22, 51], "mirror": true},
{"origin": [3.75, 0, -7.5], "size": [0, 2, 2], "inflate": 0.02, "pivot": [3.75, 1, -5.5], "rotation": [0, 10, 0], "uv": [0, 0]},
{"origin": [6.37974, 0, -7.49438], "size": [0, 2, 2], "inflate": 0.02, "pivot": [6.37974, 1, -5.49438], "rotation": [0, -10, 0], "uv": [0, 0]}
]
},
{
"name": "tail",
"parent": "torso",
"parent": "body",
"pivot": [0, 7, 2.75],
"cubes": [
{"origin": [-4, 4, -0.5], "size": [8, 8, 7], "uv": [0, 38]}
{"origin": [-4, 4, -0.5], "size": [8, 8, 7], "uv": [0, 23]}
]
},
{
@@ -166,7 +196,7 @@
"pivot": [0, 7.5, 6.5],
"cubes": [
{"origin": [-3, 4.5, 5.5], "size": [6, 6, 6], "uv": [3, 26]},
{"origin": [0, 10.5, 4.75], "size": [0, 4, 4], "pivot": [0, 10.75, 6.25], "rotation": [-50, 0, 0], "uv": [0, 1]}
{"origin": [0, 10.5, 4.75], "size": [0, 4, 4], "inflate": 0.04, "pivot": [0, 10.75, 6.25], "rotation": [-50, 0, 0], "uv": [0, 1]}
]
},
{
@@ -174,44 +204,8 @@
"parent": "tail2",
"pivot": [0, 7, 11.5],
"cubes": [
{"origin": [-2, 5, 10.5], "size": [4, 4, 6], "uv": [48, 45]},
{"origin": [0, 8.75, 10.75], "size": [0, 3, 3], "pivot": [0, 9.05, 11.5], "rotation": [-30, 0, 0], "uv": [0, 21]}
]
},
{
"name": "leg_right",
"parent": "body",
"pivot": [-5, 8.5, -1.5],
"cubes": [
{"origin": [-7.5, 2, -5], "size": [5, 8, 7], "uv": [30, 36]}
]
},
{
"name": "foot_right",
"parent": "leg_right",
"pivot": [-5, 2, -1.5],
"cubes": [
{"origin": [-7, 0, -5.5], "size": [4, 2, 7], "uv": [50, 55]},
{"origin": [-6.25, 0, -7.5], "size": [0, 2, 2], "pivot": [-6.25, 1, -5.5], "rotation": [0, 10, 0], "uv": [4, 0]},
{"origin": [-3.75, 0, -7.5], "size": [0, 2, 2], "pivot": [-3.75, 1, -5.5], "rotation": [0, -10, 0], "uv": [0, 0]}
]
},
{
"name": "leg_left",
"parent": "body",
"pivot": [5, 8.5, -1.5],
"cubes": [
{"origin": [2.5, 2, -5], "size": [5, 8, 7], "uv": [30, 36], "mirror": true}
]
},
{
"name": "foot_left",
"parent": "leg_left",
"pivot": [5, 2, -1.5],
"cubes": [
{"origin": [3, 0, -5.5], "size": [4, 2, 7], "uv": [50, 55], "mirror": true},
{"origin": [3.75, 0, -7.5], "size": [0, 2, 2], "pivot": [3.75, 1, -5.5], "rotation": [0, 10, 0], "uv": [0, -2]},
{"origin": [6.37974, 0, -7.49438], "size": [0, 2, 2], "pivot": [6.37974, 1, -5.49438], "rotation": [0, -10, 0], "uv": [4, -2]}
{"origin": [-2, 5, 10.5], "size": [4, 4, 6], "uv": [2, 73]},
{"origin": [0, 8.75, 10.75], "size": [0, 3, 3], "inflate": 0.02, "pivot": [0, 9.05, 11.5], "rotation": [-30, 0, 0], "uv": [0, 21]}
]
}
]
@@ -0,0 +1,247 @@
{
"format_version": "1.12.0",
"minecraft:geometry": [
{
"description": {
"identifier": "geometry.sableye",
"texture_width": 64,
"texture_height": 32,
"visible_bounds_width": 3,
"visible_bounds_height": 2.5,
"visible_bounds_offset": [0, 0.75, 0]
},
"bones": [
{
"name": "sableye",
"pivot": [0, 0, 0]
},
{
"name": "body",
"parent": "sableye",
"pivot": [0, 7.5, 0.5]
},
{
"name": "torso",
"parent": "body",
"pivot": [0, 7, 0.5],
"cubes": [
{"origin": [-2.5, 6, -1], "size": [5, 3, 3], "uv": [16, 14]}
]
},
{
"name": "gem",
"parent": "torso",
"pivot": [0, 8.75, -1],
"cubes": [
{"origin": [-1, 7.25, -1.5], "size": [2, 3, 1], "uv": [58, 28]}
]
},
{
"name": "chest",
"parent": "torso",
"pivot": [0, 9, 2],
"cubes": [
{"origin": [-2.5, 9, -1], "size": [5, 4, 3], "inflate": 0.01, "uv": [0, 14]}
]
},
{
"name": "head",
"parent": "chest",
"pivot": [0.5, 12.5, 0.5],
"cubes": [
{"origin": [-4.5, 12.5, -3], "size": [9, 5, 7], "inflate": 0.01, "uv": [1, 1]}
]
},
{
"name": "mouth",
"parent": "head",
"pivot": [0, 13.51, -2.915],
"cubes": [
{"origin": [-4.5, 12.51, -2.915], "size": [9, 2, 0], "uv": [39, 30]}
]
},
{
"name": "ear_right",
"parent": "head",
"pivot": [-4.5, 15.24148, 1.5647],
"rotation": [-50, 50, -50],
"cubes": [
{"origin": [-9.5, 13.74148, 1.5647], "size": [5, 10, 0], "uv": [16, 20]}
]
},
{
"name": "ear_left",
"parent": "head",
"pivot": [4.5, 15.24148, 1.5647],
"rotation": [-50, -50, 50],
"cubes": [
{"origin": [4.5, 13.74148, 1.5647], "size": [5, 10, 0], "uv": [0, 21]}
]
},
{
"name": "eyes",
"parent": "head",
"pivot": [-0.05, 16.45, -2.75]
},
{
"name": "eye_right",
"parent": "eyes",
"pivot": [-3.3, 17.2, -2.8],
"cubes": [
{"origin": [-4.8, 14.7, -3.3], "size": [3, 3, 3], "uv": [52, 0]}
]
},
{
"name": "eye_left",
"parent": "eyes",
"pivot": [3.3, 17.2, -2.8],
"cubes": [
{"origin": [1.8, 14.7, -3.3], "size": [3, 3, 3], "uv": [52, 6]}
]
},
{
"name": "arm_right",
"parent": "chest",
"pivot": [-2.5, 11, 0.5],
"cubes": [
{"origin": [-7.5, 10, -0.5], "size": [5, 2, 2], "inflate": 0.01, "uv": [26, 4]}
]
},
{
"name": "arm_right2",
"parent": "arm_right",
"pivot": [-7.5, 11, 1.5],
"cubes": [
{"origin": [-12.5, 10, -0.5], "size": [5, 2, 2], "uv": [26, 0]},
{"origin": [-9, 11, 0], "size": [3, 0, 3], "pivot": [-7.5, 11, 1.5], "rotation": [0, -7.5, 0], "uv": [10, 14]}
]
},
{
"name": "finger_right1",
"parent": "arm_right2",
"pivot": [-12.5, 12, -0.5],
"rotation": [7.5, -15, -25],
"cubes": [
{"origin": [-14.5, 11, -0.5], "size": [2, 1, 0], "uv": [0, 3]}
]
},
{
"name": "finger_right2",
"parent": "arm_right2",
"pivot": [-12.5, 12, 0.5],
"rotation": [0, 0, -25],
"cubes": [
{"origin": [-14.5, 11, 0.5], "size": [2, 1, 0], "uv": [3, 0]}
]
},
{
"name": "finger_right3",
"parent": "arm_right2",
"pivot": [-12.5, 12, 1.5],
"rotation": [-7.5, 15, -25],
"cubes": [
{"origin": [-14.5, 11, 1.5], "size": [2, 1, 0], "uv": [3, 1]}
]
},
{
"name": "arm_left",
"parent": "chest",
"pivot": [2.5, 11, 0.5],
"cubes": [
{"origin": [2.5, 10, -0.5], "size": [5, 2, 2], "inflate": 0.01, "uv": [26, 24]}
]
},
{
"name": "arm_left2",
"parent": "arm_left",
"pivot": [7.5, 11, 1.5],
"cubes": [
{"origin": [7.5, 10, -0.5], "size": [5, 2, 2], "uv": [26, 20]},
{"origin": [6, 11, 0], "size": [3, 0, 3], "pivot": [7.5, 11, 1.5], "rotation": [0, 7.5, 0], "uv": [7, 21]}
]
},
{
"name": "finger_left1",
"parent": "arm_left2",
"pivot": [12.5, 12, -0.5],
"rotation": [7.5, 15, 25],
"cubes": [
{"origin": [12.5, 11, -0.5], "size": [2, 1, 0], "uv": [4, 5]}
]
},
{
"name": "finger_left2",
"parent": "arm_left2",
"pivot": [12.5, 12, 0.5],
"rotation": [0, 0, 25],
"cubes": [
{"origin": [12.5, 11, 0.5], "size": [2, 1, 0], "uv": [3, 4]}
]
},
{
"name": "finger_left3",
"parent": "arm_left2",
"pivot": [12.5, 12, 1.5],
"rotation": [-7.5, -15, 25],
"cubes": [
{"origin": [12.5, 11, 1.5], "size": [2, 1, 0], "uv": [0, 5]}
]
},
{
"name": "leg_right",
"parent": "body",
"pivot": [-2, 7, 0.5],
"cubes": [
{"origin": [-6, 6.5, -0.5], "size": [4, 2, 2], "inflate": 0.01, "pivot": [-2, 7.5, 0.5], "rotation": [0, 0, -90], "uv": [52, 12], "mirror": true}
]
},
{
"name": "leg_right2",
"parent": "leg_right",
"pivot": [-2, 3.5, -0.5],
"cubes": [
{"origin": [-6, 2.5, -0.5], "size": [4, 2, 2], "pivot": [-2, 3.5, 0.5], "rotation": [0, 0, -90], "uv": [32, 12], "mirror": true}
]
},
{
"name": "foot_right",
"parent": "leg_right2",
"pivot": [-2, -0.5, 0.5],
"cubes": [
{"origin": [-2.5, -1.5, -0.5], "size": [1, 2, 2], "inflate": 0.01, "pivot": [-2, -0.5, 0.5], "rotation": [0, 0, -90], "uv": [34, 8], "mirror": true},
{"origin": [-3.75, -0.25, -1.5], "size": [1, 0, 1], "pivot": [-3, -0.25, -0.5], "rotation": [-20, 0, -90], "uv": [-1, 7], "mirror": true},
{"origin": [-2.75, -0.25, -1.5], "size": [1, 0, 1], "pivot": [-2, -0.25, -0.5], "rotation": [0, 0, -90], "uv": [1, 6], "mirror": true},
{"origin": [-1.75, -0.25, -1.5], "size": [1, 0, 1], "pivot": [-1, -0.25, -0.5], "rotation": [20, 0, -90], "uv": [-1, 6], "mirror": true}
]
},
{
"name": "leg_left",
"parent": "body",
"pivot": [2, 7, 0.5],
"cubes": [
{"origin": [2, 6.5, -0.5], "size": [4, 2, 2], "inflate": 0.01, "pivot": [2, 7.5, 0.5], "rotation": [0, 0, 90], "uv": [52, 16]}
]
},
{
"name": "leg_left2",
"parent": "leg_left",
"pivot": [2, 3.5, -0.5],
"cubes": [
{"origin": [2, 2.5, -0.5], "size": [4, 2, 2], "pivot": [2, 3.5, 0.5], "rotation": [0, 0, 90], "uv": [32, 16]}
]
},
{
"name": "foot_left",
"parent": "leg_left2",
"pivot": [2, -0.5, 0.5],
"cubes": [
{"origin": [5, 2, -0.5], "size": [1, 2, 2], "inflate": 0.01, "pivot": [2, 3, 0.5], "rotation": [0, 0, 90], "uv": [38, 6]},
{"origin": [2.75, -0.25, -1.5], "size": [1, 0, 1], "pivot": [3, -0.25, -0.5], "rotation": [-20, 0, 90], "uv": [0, 4]},
{"origin": [1.75, -0.25, -1.5], "size": [1, 0, 1], "pivot": [2, -0.25, -0.5], "rotation": [0, 0, 90], "uv": [3, 3]},
{"origin": [0.75, -0.25, -1.5], "size": [1, 0, 1], "pivot": [1, -0.25, -0.5], "rotation": [20, 0, 90], "uv": [2, 2]}
]
}
]
}
]
}
@@ -0,0 +1,283 @@
{
"format_version": "1.12.0",
"minecraft:geometry": [
{
"description": {
"identifier": "geometry.deerling",
"texture_width": 64,
"texture_height": 32,
"visible_bounds_width": 3,
"visible_bounds_height": 2.5,
"visible_bounds_offset": [0, 0.75, 0]
},
"bones": [
{
"name": "deerling",
"pivot": [0, 0, 0]
},
{
"name": "body",
"parent": "deerling",
"pivot": [0, 0, 0]
},
{
"name": "torso",
"parent": "body",
"pivot": [0, 8, 2.5],
"cubes": [
{"origin": [-2.5, 6, -5.5], "size": [5, 5, 10], "uv": [0, 0]}
]
},
{
"name": "neck",
"parent": "torso",
"pivot": [0, 9, -4],
"rotation": [5, 0, 0],
"cubes": [
{"origin": [-1.5, 8, -5.5], "size": [3, 6, 3], "inflate": 0.01, "uv": [30, 10]}
]
},
{
"name": "head",
"parent": "neck",
"pivot": [0, 12.75, -4],
"cubes": [
{"origin": [-2.5, 12.75, -7], "size": [5, 5, 5], "uv": [0, 15]}
]
},
{
"name": "eyes",
"parent": "head",
"pivot": [0, 15.1, -5.75]
},
{
"name": "eye_right",
"parent": "eyes",
"pivot": [-2.5, 15.1, -5.75],
"cubes": [
{"origin": [-2.5, 14.1, -6.75], "size": [0, 2, 2], "inflate": 0.01, "uv": [16, 13], "mirror": true}
]
},
{
"name": "eyelid_right",
"parent": "eye_right",
"pivot": [-1.9, 15.1, -5.75],
"cubes": [
{"origin": [-2.4, 14.1, -6.75], "size": [1, 2, 2], "inflate": 0.02, "uv": [27, 13], "mirror": true}
]
},
{
"name": "eye_left",
"parent": "eyes",
"pivot": [2.5, 15.1, -5.75],
"cubes": [
{"origin": [2.5, 14.1, -6.75], "size": [0, 2, 2], "inflate": 0.01, "uv": [16, 13]}
]
},
{
"name": "eyelid_left",
"parent": "eye_left",
"pivot": [1.9, 15.1, -5.75],
"cubes": [
{"origin": [1.4, 14.1, -6.75], "size": [1, 2, 2], "inflate": 0.02, "uv": [20, 13]}
]
},
{
"name": "muzzle",
"parent": "head",
"pivot": [0, 12.85, -7],
"rotation": [-7.5, 0, 0],
"cubes": [
{"origin": [-1, 12.85, -9], "size": [2, 2, 2], "uv": [36, 0]}
]
},
{
"name": "ear_right",
"parent": "head",
"pivot": [-2, 17, -3.75],
"rotation": [-17.5, 30, -55],
"cubes": [
{"origin": [-3.5, 17, -3.75], "size": [3, 5, 0], "uv": [20, 4]}
]
},
{
"name": "ear_left",
"parent": "head",
"pivot": [2, 17, -3.75],
"rotation": [-17.5, -30, 55],
"cubes": [
{"origin": [0.5, 17, -3.75], "size": [3, 5, 0], "uv": [26, 4]}
]
},
{
"name": "flower",
"parent": "head",
"pivot": [0, 18, -4.75],
"rotation": [5, 0, 0]
},
{
"name": "petal",
"parent": "flower",
"pivot": [0, 18, -4.75],
"rotation": [-2.5, 0, 0],
"cubes": [
{"origin": [-1, 18, -7.75], "size": [2, 0, 3], "uv": [33, 7]}
]
},
{
"name": "petal2",
"parent": "flower",
"pivot": [0, 18, -4.75],
"rotation": [0, 60, 0],
"cubes": [
{"origin": [-1, 18, -7.75], "size": [2, 0, 3], "uv": [-3, 15]}
]
},
{
"name": "petal3",
"parent": "flower",
"pivot": [0, 18, -4.75],
"rotation": [0, -60, 0],
"cubes": [
{"origin": [-1, 18, -7.75], "size": [2, 0, 3], "uv": [29, 7]}
]
},
{
"name": "petal4",
"parent": "flower",
"pivot": [0, 18, -4.75],
"rotation": [0, -140, 0],
"cubes": [
{"origin": [-1, 18, -7.75], "size": [2, 0, 3], "uv": [33, 4]}
]
},
{
"name": "petal5",
"parent": "flower",
"pivot": [0, 18, -4.75],
"rotation": [0, 140, 0],
"cubes": [
{"origin": [-1, 18, -7.75], "size": [2, 0, 3], "uv": [29, 4]}
]
},
{
"name": "tail",
"parent": "torso",
"pivot": [0, 10, 4],
"rotation": [-40, 0, 0],
"cubes": [
{"origin": [0, 10, 2], "size": [0, 6, 4], "uv": [0, -4]}
]
},
{
"name": "leg_front_right",
"parent": "torso",
"pivot": [-2, 7.4, -4],
"rotation": [5, 0, 0],
"cubes": [
{"origin": [-3, 3.9, -5], "size": [2, 5, 2], "inflate": 0.01, "uv": [0, 25]}
]
},
{
"name": "leg_front_right2",
"parent": "leg_front_right",
"pivot": [-2, 3.9, -3],
"rotation": [-15, 0, 0],
"cubes": [
{"origin": [-3, 0.9, -5], "size": [2, 3, 2], "uv": [44, 12]}
]
},
{
"name": "leg_front_right3",
"parent": "leg_front_right2",
"pivot": [-2, 1.4, -4],
"rotation": [10, 0, 0],
"cubes": [
{"origin": [-3, -0.35, -5.25], "size": [2, 2, 2], "inflate": 0.01, "uv": [0, 6]}
]
},
{
"name": "leg_front_left",
"parent": "torso",
"pivot": [2, 7.4, -4],
"rotation": [5, 0, 0],
"cubes": [
{"origin": [1, 3.9, -5], "size": [2, 5, 2], "inflate": 0.01, "uv": [8, 25]}
]
},
{
"name": "leg_front_left2",
"parent": "leg_front_left",
"pivot": [2, 3.9, -3],
"rotation": [-15, 0, 0],
"cubes": [
{"origin": [1, 0.9, -5], "size": [2, 3, 2], "uv": [44, 17]}
]
},
{
"name": "leg_front_left3",
"parent": "leg_front_left2",
"pivot": [2, 1.4, -4],
"rotation": [10, 0, 0],
"cubes": [
{"origin": [1, -0.35, -5.25], "size": [2, 2, 2], "inflate": 0.01, "uv": [33, 19]}
]
},
{
"name": "leg_back_right",
"parent": "body",
"pivot": [-2, 8, 2.5],
"rotation": [5, 0, 0],
"cubes": [
{"origin": [-3, 4.5, 1], "size": [2, 5, 3], "inflate": 0.01, "uv": [52, 8]}
]
},
{
"name": "leg_back_right2",
"parent": "leg_back_right",
"pivot": [-2, 4.25, 3.5],
"rotation": [-15, 0, 0],
"cubes": [
{"origin": [-3, 0.75, 2.5], "size": [2, 4, 2], "uv": [44, 0]}
]
},
{
"name": "leg_back_right3",
"parent": "leg_back_right2",
"pivot": [-2, 1.25, 3.5],
"rotation": [10, 0, 0],
"cubes": [
{"origin": [-3, -0.25, 2.25], "size": [2, 2, 2], "inflate": 0.01, "uv": [28, 0]}
]
},
{
"name": "leg_back_left",
"parent": "body",
"pivot": [2, 8, 2.5],
"rotation": [5, 0, 0],
"cubes": [
{"origin": [1, 4.5, 1], "size": [2, 5, 3], "inflate": 0.01, "uv": [52, 0]}
]
},
{
"name": "leg_back_left2",
"parent": "leg_back_left",
"pivot": [2, 4.25, 3.5],
"rotation": [-15, 0, 0],
"cubes": [
{"origin": [1, 0.75, 2.5], "size": [2, 4, 2], "uv": [44, 6]}
]
},
{
"name": "leg_back_left3",
"parent": "leg_back_left2",
"pivot": [2, 1.25, 3.5],
"rotation": [10, 0, 0],
"cubes": [
{"origin": [1, -0.25, 2.25], "size": [2, 2, 2], "inflate": 0.01, "uv": [20, 0]}
]
}
]
}
]
}
@@ -0,0 +1,425 @@
{
"format_version": "1.12.0",
"minecraft:geometry": [
{
"description": {
"identifier": "geometry.sawsbuck_fall",
"texture_width": 128,
"texture_height": 64,
"visible_bounds_width": 4,
"visible_bounds_height": 4.5,
"visible_bounds_offset": [0, 1.75, 0]
},
"bones": [
{
"name": "sawsbuck",
"pivot": [0, 0, 0]
},
{
"name": "body",
"parent": "sawsbuck",
"pivot": [0, 0, 0]
},
{
"name": "torso",
"parent": "body",
"pivot": [0, 14.75, 6.75],
"cubes": [
{"origin": [-4, 10.25, -7], "size": [8, 8, 17], "uv": [0, 0]}
]
},
{
"name": "neck",
"parent": "torso",
"pivot": [0, 16.25, -5],
"rotation": [7.5, 0, 0],
"cubes": [
{"origin": [-3, 12.25, -7.5], "size": [6, 11, 6], "uv": [30, 25]}
]
},
{
"name": "head",
"parent": "neck",
"pivot": [0, 22.25, -4.5],
"cubes": [
{"origin": [-3.5, 22.25, -8.75], "size": [7, 7, 8], "uv": [0, 25]}
]
},
{
"name": "eyes",
"parent": "head",
"pivot": [0, 26.25, -7.25]
},
{
"name": "eye_right",
"parent": "eyes",
"pivot": [0, 4.75, -0.75],
"cubes": [
{"origin": [-3.5, 25.25, -8.75], "size": [1, 2, 3], "inflate": 0.01, "uv": [93, 0], "mirror": true}
]
},
{
"name": "eyelid_right",
"parent": "eye_right",
"pivot": [-2.9, 26.25, -7.15],
"cubes": [
{"origin": [-3.4, 25.25, -8.65], "size": [1, 2, 3], "inflate": 0.02, "uv": [93, 5], "mirror": true}
]
},
{
"name": "eye_left",
"parent": "eyes",
"pivot": [0, 4.75, -0.75],
"cubes": [
{"origin": [2.5, 25.25, -8.75], "size": [1, 2, 3], "inflate": 0.01, "uv": [85, 0]}
]
},
{
"name": "eyelid_left",
"parent": "eye_left",
"pivot": [2.9, 26.25, -7.15],
"cubes": [
{"origin": [2.4, 25.25, -8.65], "size": [1, 2, 3], "inflate": 0.02, "uv": [85, 5]}
]
},
{
"name": "muzzle",
"parent": "head",
"pivot": [0, 23.5, -8.75],
"rotation": [-2.5, 0, 0],
"cubes": [
{"origin": [-2, 23.5, -13.75], "size": [4, 3, 5], "inflate": 0.01, "uv": [16, 40]}
]
},
{
"name": "jaw",
"parent": "muzzle",
"pivot": [0, 23, -8.75],
"rotation": [-2.5, 0, 0],
"cubes": [
{"origin": [-2, 22.5, -11.5], "size": [4, 1, 3], "uv": [33, 13]},
{"origin": [-1.5, 22.5, -13.5], "size": [3, 1, 2], "uv": [11, 40]}
]
},
{
"name": "antler_right",
"parent": "head",
"pivot": [2.25, 29.25, -5],
"rotation": [-10, -20, 25],
"cubes": [
{"origin": [1.25, 28.25, -5], "size": [2, 6, 0], "inflate": 0.01, "uv": [4, 25]}
]
},
{
"name": "antler_right_front",
"parent": "antler_right",
"pivot": [2.25, 30.5, -5],
"rotation": [42.5, 0, -20],
"cubes": [
{"origin": [1.25, 30.5, -5], "size": [2, 6, 0], "uv": [94, 25]}
]
},
{
"name": "antler_right2",
"parent": "antler_right",
"pivot": [1.25, 34.25, -5],
"rotation": [0, 0, 25],
"cubes": [
{"origin": [1.25, 34.25, -5], "size": [2, 11, 0], "inflate": 0.01, "uv": [94, 14]}
]
},
{
"name": "leaves_right",
"parent": "antler_right2",
"pivot": [2.25, 36, -3.5],
"rotation": [0, 5, 45],
"cubes": [
{"origin": [-6.01777, 32.23223, -7.5], "size": [10, 12, 8], "uv": [41, 44]},
{"origin": [-3.01777, 30.23223, -5.5], "size": [6, 2, 4], "uv": [102, 19]},
{"origin": [-8.31802, 34.22487, -4.5], "size": [3, 4, 0], "pivot": [-5.31802, 34.22487, -4.5], "rotation": [0, 0, 10], "uv": [35, 56]},
{"origin": [2.68198, 36.77513, -5], "size": [3, 4, 0], "pivot": [5.68198, 40.77513, -5], "rotation": [0, 0, -10], "uv": [35, 60]}
]
},
{
"name": "leaves_right2",
"parent": "leaves_right",
"pivot": [-1.81802, 44.22487, -3.5],
"rotation": [0, 0, 40],
"cubes": [
{"origin": [-3.81802, 46.22487, -2.75], "size": [3, 4, 0], "pivot": [-0.81802, 46.22487, -2.75], "rotation": [0, 0, 10], "uv": [24, 60]},
{"origin": [-1.81802, 44.22487, -6], "size": [7, 8, 5], "uv": [0, 51]}
]
},
{
"name": "leaves_right3",
"parent": "leaves_right2",
"pivot": [0.18198, 52.22487, -3.5],
"rotation": [0, 0, 45],
"cubes": [
{"origin": [0.18198, 52.22487, -3.5], "size": [6, 13, 0], "uv": [116, 38]}
]
},
{
"name": "antler_right4",
"parent": "antler_right2",
"pivot": [3.25, 37.75, -5],
"rotation": [0, 0, 50],
"cubes": [
{"origin": [1.25, 37.75, -5], "size": [2, 4, 0], "uv": [39, 42]}
]
},
{
"name": "antler_right5",
"parent": "antler_right2",
"pivot": [1.25, 40.75, -5],
"rotation": [0, 0, -45],
"cubes": [
{"origin": [1.25, 40.75, -5], "size": [2, 4, 0], "uv": [93, 10]}
]
},
{
"name": "antler_right3",
"parent": "antler_right",
"pivot": [3.25, 33.75, -5],
"rotation": [0, 0, -45],
"cubes": [
{"origin": [1.25, 33.75, -5], "size": [2, 5, 0], "uv": [35, 42]}
]
},
{
"name": "antler_left",
"parent": "head",
"pivot": [-2.25, 29.25, -5],
"rotation": [-10, 20, -25],
"cubes": [
{"origin": [-3.25, 28.25, -5], "size": [2, 6, 0], "inflate": 0.01, "uv": [0, 25]}
]
},
{
"name": "antler_left_front",
"parent": "antler_left",
"pivot": [-2.25, 30.5, -5],
"rotation": [42.5, 0, 20],
"cubes": [
{"origin": [-3.25, 30.5, -5], "size": [2, 6, 0], "uv": [90, 25], "mirror": true}
]
},
{
"name": "antler_left2",
"parent": "antler_left",
"pivot": [-1.25, 34.25, -5],
"rotation": [0, 0, -25],
"cubes": [
{"origin": [-3.25, 34.25, -5], "size": [2, 11, 0], "inflate": 0.01, "uv": [90, 14]}
]
},
{
"name": "leaves_left",
"parent": "antler_left2",
"pivot": [-2.25, 36, -3.5],
"rotation": [0, -5, -45],
"cubes": [
{"origin": [-3.98223, 32.23223, -7.5], "size": [10, 12, 8], "uv": [77, 44], "mirror": true},
{"origin": [-2.98223, 30.23223, -5.5], "size": [6, 2, 4], "uv": [102, 13], "mirror": true},
{"origin": [5.31802, 34.22487, -4.5], "size": [3, 4, 0], "pivot": [5.31802, 34.22487, -4.5], "rotation": [0, 0, -10], "uv": [122, 13], "mirror": true},
{"origin": [-5.68198, 36.77513, -5.5], "size": [3, 4, 0], "pivot": [-5.68198, 40.77513, -5.5], "rotation": [0, 0, 10], "uv": [122, 17], "mirror": true}
]
},
{
"name": "leaves_left2",
"parent": "leaves_left",
"pivot": [1.81802, 44.22487, -3.5],
"rotation": [0, 0, -40],
"cubes": [
{"origin": [0.81802, 46.22487, -2.75], "size": [3, 4, 0], "pivot": [0.81802, 46.22487, -2.75], "rotation": [0, 0, -10], "uv": [122, 21], "mirror": true},
{"origin": [-5.18198, 44.22487, -6], "size": [7, 8, 5], "uv": [104, 0], "mirror": true}
]
},
{
"name": "leaves_left3",
"parent": "leaves_left2",
"pivot": [-0.18198, 52.22487, -3.5],
"rotation": [0, 0, -45],
"cubes": [
{"origin": [-6.18198, 52.22487, -3.5], "size": [6, 13, 0], "uv": [116, 25], "mirror": true}
]
},
{
"name": "antler_left4",
"parent": "antler_left2",
"pivot": [-3.25, 37.75, -5],
"rotation": [0, 0, -47.5],
"cubes": [
{"origin": [-3.25, 37.75, -5], "size": [2, 3, 0], "uv": [44, 13]}
]
},
{
"name": "antler_left5",
"parent": "antler_left2",
"pivot": [-1.25, 39.75, -5],
"rotation": [0, 0, 60],
"cubes": [
{"origin": [-3.25, 39.75, -5], "size": [2, 4, 0], "uv": [89, 10]}
]
},
{
"name": "antler_left3",
"parent": "antler_left",
"pivot": [-3.25, 33.75, -5],
"rotation": [0, 0, 45],
"cubes": [
{"origin": [-3.25, 33.75, -5], "size": [2, 4, 0], "uv": [85, 10]}
]
},
{
"name": "ear_right",
"parent": "head",
"pivot": [-3, 28.25, -3.5],
"rotation": [5, 20, 27.5],
"cubes": [
{"origin": [-10, 26.25, -3.5], "size": [7, 4, 0], "uv": [22, 25]}
]
},
{
"name": "ear_left",
"parent": "head",
"pivot": [3, 28.25, -3.5],
"rotation": [5, -20, -27.5],
"cubes": [
{"origin": [3, 26.25, -3.5], "size": [7, 4, 0], "uv": [0, 13]}
]
},
{
"name": "neck_ruff",
"parent": "neck",
"pivot": [0, 19.75, -7.5],
"rotation": [-5, 0, 0],
"cubes": [
{"origin": [-4, 11.75, -7.5], "size": [8, 8, 0], "uv": [0, 0]}
]
},
{
"name": "tail",
"parent": "torso",
"pivot": [0, 17, 9.5],
"rotation": [7.5, 0, 0],
"cubes": [
{"origin": [0, 14, 9], "size": [0, 5, 8], "uv": [0, 0]}
]
},
{
"name": "leg_front_right",
"parent": "torso",
"pivot": [-3, 14.25, -5],
"rotation": [5, 0, 0],
"cubes": [
{"origin": [-4.5, 7.75, -6.5], "size": [3, 8, 3], "inflate": 0.01, "uv": [62, 12]}
]
},
{
"name": "leg_front_right2",
"parent": "leg_front_right",
"pivot": [-3, 7.75, -3.5],
"rotation": [-15, 0, 0],
"cubes": [
{"origin": [-4.5, 0.75, -6.5], "size": [3, 7, 3], "uv": [50, 11]},
{"origin": [-3, 1, -4.75], "size": [0, 3, 2], "pivot": [-3, 3.75, -3.5], "rotation": [15, 0, 0], "uv": [0, 38]}
]
},
{
"name": "leg_front_right3",
"parent": "leg_front_right2",
"pivot": [-3, 1.25, -5],
"rotation": [10, 0, 0],
"cubes": [
{"origin": [-4.5, -0.5, -6.75], "size": [3, 2, 3], "inflate": 0.01, "uv": [54, 31]}
]
},
{
"name": "leg_front_left",
"parent": "torso",
"pivot": [3, 14.25, -5],
"rotation": [5, 0, 0],
"cubes": [
{"origin": [1.5, 7.75, -6.5], "size": [3, 8, 3], "inflate": 0.01, "uv": [49, 0]}
]
},
{
"name": "leg_front_left2",
"parent": "leg_front_left",
"pivot": [3, 7.75, -3.5],
"rotation": [-15, 0, 0],
"cubes": [
{"origin": [1.5, 0.75, -6.5], "size": [3, 7, 3], "uv": [50, 21]},
{"origin": [3, 1, -4.75], "size": [0, 3, 2], "pivot": [3, 3.75, -3.5], "rotation": [15, 0, 0], "uv": [33, 0]}
]
},
{
"name": "leg_front_left3",
"parent": "leg_front_left2",
"pivot": [3, 1.25, -5],
"rotation": [10, 0, 0],
"cubes": [
{"origin": [1.5, -0.5, -6.75], "size": [3, 2, 3], "inflate": 0.01, "uv": [54, 36]}
]
},
{
"name": "leg_back_right",
"parent": "body",
"pivot": [-3, 14.75, 6.75],
"rotation": [5, 0, 0],
"cubes": [
{"origin": [-4.5, 8.25, 4.25], "size": [3, 8, 5], "inflate": 0.01, "uv": [33, 0]}
]
},
{
"name": "leg_back_right2",
"parent": "leg_back_right",
"pivot": [-3, 9, 8.75],
"rotation": [-15, 0, 0],
"cubes": [
{"origin": [-4.5, 0.5, 6.75], "size": [3, 9, 3], "uv": [61, 0]},
{"origin": [-3, -1.88302, 8.20053], "size": [0, 3, 2], "pivot": [-3, 3.75, -3.25], "rotation": [15, 0, 0], "uv": [26, 27]}
]
},
{
"name": "leg_back_right3",
"parent": "leg_back_right2",
"pivot": [-3, 1, 8.25],
"rotation": [10, 0, 0],
"cubes": [
{"origin": [-4.5, -0.5, 6.5], "size": [3, 2, 3], "inflate": 0.01, "uv": [66, 31]}
]
},
{
"name": "leg_back_left",
"parent": "body",
"pivot": [3, 14.75, 6.75],
"rotation": [5, 0, 0],
"cubes": [
{"origin": [1.5, 8.25, 4.25], "size": [3, 8, 5], "inflate": 0.01, "uv": [74, 12]}
]
},
{
"name": "leg_back_left2",
"parent": "leg_back_left",
"pivot": [3, 9, 8.75],
"rotation": [-15, 0, 0],
"cubes": [
{"origin": [1.5, 0.5, 6.75], "size": [3, 9, 3], "uv": [73, 0]},
{"origin": [3, -1.88302, 8.20053], "size": [0, 3, 2], "pivot": [3, 3.75, -3.25], "rotation": [15, 0, 0], "uv": [22, 27]}
]
},
{
"name": "leg_back_left3",
"parent": "leg_back_left2",
"pivot": [3, 1, 8.25],
"rotation": [10, 0, 0],
"cubes": [
{"origin": [1.5, -0.5, 6.5], "size": [3, 2, 3], "inflate": 0.01, "uv": [66, 36]}
]
}
]
}
]
}
@@ -0,0 +1,390 @@
{
"format_version": "1.12.0",
"minecraft:geometry": [
{
"description": {
"identifier": "geometry.sawsbuck_spring",
"texture_width": 128,
"texture_height": 64,
"visible_bounds_width": 4,
"visible_bounds_height": 4.5,
"visible_bounds_offset": [0, 1.75, 0]
},
"bones": [
{
"name": "sawsbuck",
"pivot": [0, 0, 0]
},
{
"name": "body",
"parent": "sawsbuck",
"pivot": [0, 0, 0]
},
{
"name": "torso",
"parent": "body",
"pivot": [0, 14.75, 6.75],
"cubes": [
{"origin": [-4, 10.25, -7], "size": [8, 8, 17], "uv": [0, 0]}
]
},
{
"name": "neck",
"parent": "torso",
"pivot": [0, 16.25, -5],
"rotation": [7.5, 0, 0],
"cubes": [
{"origin": [-3, 12.25, -7.5], "size": [6, 11, 6], "uv": [30, 25]}
]
},
{
"name": "head",
"parent": "neck",
"pivot": [0, 22.25, -4.5],
"cubes": [
{"origin": [-3.5, 22.25, -8.75], "size": [7, 7, 8], "uv": [0, 25]}
]
},
{
"name": "eyes",
"parent": "head",
"pivot": [0, 26.25, -7.25]
},
{
"name": "eye_right",
"parent": "eyes",
"pivot": [0, 4.75, -0.75],
"cubes": [
{"origin": [-3.5, 25.25, -8.75], "size": [1, 2, 3], "inflate": 0.01, "uv": [93, 0], "mirror": true}
]
},
{
"name": "eyelid_right",
"parent": "eye_right",
"pivot": [-2.9, 26.25, -7.15],
"cubes": [
{"origin": [-3.4, 25.25, -8.65], "size": [1, 2, 3], "inflate": 0.02, "uv": [93, 5], "mirror": true}
]
},
{
"name": "eye_left",
"parent": "eyes",
"pivot": [0, 4.75, -0.75],
"cubes": [
{"origin": [2.5, 25.25, -8.75], "size": [1, 2, 3], "inflate": 0.01, "uv": [85, 0]}
]
},
{
"name": "eyelid_left",
"parent": "eye_left",
"pivot": [2.9, 26.25, -7.15],
"cubes": [
{"origin": [2.4, 25.25, -8.65], "size": [1, 2, 3], "inflate": 0.02, "uv": [85, 5]}
]
},
{
"name": "muzzle",
"parent": "head",
"pivot": [0, 23.5, -8.75],
"rotation": [-2.5, 0, 0],
"cubes": [
{"origin": [-2, 23.5, -13.75], "size": [4, 3, 5], "inflate": 0.01, "uv": [16, 40]}
]
},
{
"name": "jaw",
"parent": "muzzle",
"pivot": [0, 23, -8.75],
"rotation": [-2.5, 0, 0],
"cubes": [
{"origin": [-2, 22.5, -11.5], "size": [4, 1, 3], "uv": [33, 13]},
{"origin": [-1.5, 22.5, -13.5], "size": [3, 1, 2], "uv": [11, 40]}
]
},
{
"name": "antler_right",
"parent": "head",
"pivot": [2.25, 29.25, -5],
"rotation": [-10, -20, 25],
"cubes": [
{"origin": [1.25, 28.25, -5], "size": [2, 6, 0], "inflate": 0.01, "uv": [4, 25]}
]
},
{
"name": "antler_right_front",
"parent": "antler_right",
"pivot": [2.25, 30.5, -5],
"rotation": [35, 0, -20],
"cubes": [
{"origin": [1.25, 30.5, -5], "size": [2, 6, 0], "uv": [94, 25]}
]
},
{
"name": "antler_right3",
"parent": "antler_right",
"pivot": [3.25, 33.75, -5],
"rotation": [0, 0, -45],
"cubes": [
{"origin": [1.25, 33.75, -5], "size": [2, 5, 0], "uv": [35, 42]}
]
},
{
"name": "antler_right2",
"parent": "antler_right",
"pivot": [1.25, 34.25, -5],
"rotation": [0, 0, 25],
"cubes": [
{"origin": [1.25, 34.25, -5], "size": [2, 11, 0], "inflate": 0.01, "uv": [94, 14]}
]
},
{
"name": "flower_right",
"parent": "antler_right2",
"pivot": [1.5, 37, -5],
"rotation": [0, 0, -25],
"cubes": [
{"origin": [0, 35.5, -5], "size": [3, 3, 0], "inflate": 0.02, "uv": [44, 0]}
]
},
{
"name": "antler_right4",
"parent": "antler_right2",
"pivot": [3.25, 37.75, -5],
"rotation": [0, 0, 50],
"cubes": [
{"origin": [1.25, 37.75, -5], "size": [2, 4, 0], "uv": [39, 42]}
]
},
{
"name": "antler_right5",
"parent": "antler_right2",
"pivot": [1.25, 40.75, -5],
"rotation": [0, 0, -45],
"cubes": [
{"origin": [1.25, 40.75, -5], "size": [2, 4, 0], "uv": [93, 10]}
]
},
{
"name": "antler_left",
"parent": "head",
"pivot": [-2.25, 29.25, -5],
"rotation": [-10, 20, -25],
"cubes": [
{"origin": [-3.25, 28.25, -5], "size": [2, 6, 0], "inflate": 0.01, "uv": [0, 25]}
]
},
{
"name": "antler_left_front",
"parent": "antler_left",
"pivot": [-2.25, 30.5, -5],
"rotation": [35, 0, 20],
"cubes": [
{"origin": [-3.25, 30.5, -5], "size": [2, 6, 0], "uv": [90, 25], "mirror": true}
]
},
{
"name": "flower_left",
"parent": "antler_left",
"pivot": [-2.25, 32.5, -5],
"rotation": [0, 0, 17.5],
"cubes": [
{"origin": [-3.75, 31, -5], "size": [3, 3, 0], "inflate": 0.02, "uv": [43, 42]}
]
},
{
"name": "antler_left3",
"parent": "antler_left",
"pivot": [-3.25, 33.75, -5],
"rotation": [0, 0, 45],
"cubes": [
{"origin": [-3.25, 33.75, -5], "size": [2, 4, 0], "uv": [85, 10]}
]
},
{
"name": "antler_left2",
"parent": "antler_left",
"pivot": [-1.25, 34.25, -5],
"rotation": [0, 0, -25],
"cubes": [
{"origin": [-3.25, 34.25, -5], "size": [2, 11, 0], "inflate": 0.01, "uv": [90, 14]}
]
},
{
"name": "antler_left4",
"parent": "antler_left2",
"pivot": [-3.25, 37.75, -5],
"rotation": [0, 0, -47.5],
"cubes": [
{"origin": [-3.25, 37.75, -5], "size": [2, 3, 0], "uv": [44, 13]}
]
},
{
"name": "antler_left5",
"parent": "antler_left2",
"pivot": [-1.25, 39.75, -5],
"rotation": [0, 0, 60],
"cubes": [
{"origin": [-3.25, 39.75, -5], "size": [2, 4, 0], "uv": [89, 10]}
]
},
{
"name": "flower_left2",
"parent": "antler_left2",
"pivot": [-1, 41.75, -5],
"rotation": [0, 0, 25],
"cubes": [
{"origin": [-2.5, 40.25, -5], "size": [3, 3, 0], "inflate": 0.02, "uv": [29, 42]}
]
},
{
"name": "ear_right",
"parent": "head",
"pivot": [-3, 28.25, -3.5],
"rotation": [5, 20, 27.5],
"cubes": [
{"origin": [-10, 26.25, -3.5], "size": [7, 4, 0], "uv": [22, 25]}
]
},
{
"name": "ear_left",
"parent": "head",
"pivot": [3, 28.25, -3.5],
"rotation": [5, -20, -27.5],
"cubes": [
{"origin": [3, 26.25, -3.5], "size": [7, 4, 0], "uv": [0, 13]}
]
},
{
"name": "neck_ruff",
"parent": "neck",
"pivot": [0, 19.75, -7.5],
"rotation": [-5, 0, 0],
"cubes": [
{"origin": [-4, 11.75, -7.5], "size": [8, 8, 0], "uv": [0, 0]}
]
},
{
"name": "tail",
"parent": "torso",
"pivot": [0, 17, 9.5],
"rotation": [7.5, 0, 0],
"cubes": [
{"origin": [0, 14, 9], "size": [0, 5, 8], "uv": [0, 0]}
]
},
{
"name": "leg_front_right",
"parent": "torso",
"pivot": [-3, 14.25, -5],
"rotation": [5, 0, 0],
"cubes": [
{"origin": [-4.5, 7.75, -6.5], "size": [3, 8, 3], "inflate": 0.01, "uv": [62, 12]}
]
},
{
"name": "leg_front_right2",
"parent": "leg_front_right",
"pivot": [-3, 7.75, -3.5],
"rotation": [-15, 0, 0],
"cubes": [
{"origin": [-4.5, 0.75, -6.5], "size": [3, 7, 3], "uv": [50, 11]},
{"origin": [-3, 1, -4.75], "size": [0, 3, 2], "pivot": [-3, 3.75, -3.5], "rotation": [15, 0, 0], "uv": [0, 38]}
]
},
{
"name": "leg_front_right3",
"parent": "leg_front_right2",
"pivot": [-3, 1.25, -5],
"rotation": [10, 0, 0],
"cubes": [
{"origin": [-4.5, -0.5, -6.75], "size": [3, 2, 3], "inflate": 0.01, "uv": [54, 31]}
]
},
{
"name": "leg_front_left",
"parent": "torso",
"pivot": [3, 14.25, -5],
"rotation": [5, 0, 0],
"cubes": [
{"origin": [1.5, 7.75, -6.5], "size": [3, 8, 3], "inflate": 0.01, "uv": [49, 0]}
]
},
{
"name": "leg_front_left2",
"parent": "leg_front_left",
"pivot": [3, 7.75, -3.5],
"rotation": [-15, 0, 0],
"cubes": [
{"origin": [1.5, 0.75, -6.5], "size": [3, 7, 3], "uv": [50, 21]},
{"origin": [3, 1, -4.75], "size": [0, 3, 2], "pivot": [3, 3.75, -3.5], "rotation": [15, 0, 0], "uv": [33, 0]}
]
},
{
"name": "leg_front_left3",
"parent": "leg_front_left2",
"pivot": [3, 1.25, -5],
"rotation": [10, 0, 0],
"cubes": [
{"origin": [1.5, -0.5, -6.75], "size": [3, 2, 3], "inflate": 0.01, "uv": [54, 36]}
]
},
{
"name": "leg_back_right",
"parent": "body",
"pivot": [-3, 14.75, 6.75],
"rotation": [5, 0, 0],
"cubes": [
{"origin": [-4.5, 8.25, 4.25], "size": [3, 8, 5], "inflate": 0.01, "uv": [33, 0]}
]
},
{
"name": "leg_back_right2",
"parent": "leg_back_right",
"pivot": [-3, 9, 8.75],
"rotation": [-15, 0, 0],
"cubes": [
{"origin": [-4.5, 0.5, 6.75], "size": [3, 9, 3], "uv": [61, 0]},
{"origin": [-3, -1.88302, 8.20053], "size": [0, 3, 2], "pivot": [-3, 3.75, -3.25], "rotation": [15, 0, 0], "uv": [26, 27]}
]
},
{
"name": "leg_back_right3",
"parent": "leg_back_right2",
"pivot": [-3, 1, 8.25],
"rotation": [10, 0, 0],
"cubes": [
{"origin": [-4.5, -0.5, 6.5], "size": [3, 2, 3], "inflate": 0.01, "uv": [66, 31]}
]
},
{
"name": "leg_back_left",
"parent": "body",
"pivot": [3, 14.75, 6.75],
"rotation": [5, 0, 0],
"cubes": [
{"origin": [1.5, 8.25, 4.25], "size": [3, 8, 5], "inflate": 0.01, "uv": [74, 12]}
]
},
{
"name": "leg_back_left2",
"parent": "leg_back_left",
"pivot": [3, 9, 8.75],
"rotation": [-15, 0, 0],
"cubes": [
{"origin": [1.5, 0.5, 6.75], "size": [3, 9, 3], "uv": [73, 0]},
{"origin": [3, -1.88302, 8.20053], "size": [0, 3, 2], "pivot": [3, 3.75, -3.25], "rotation": [15, 0, 0], "uv": [22, 27]}
]
},
{
"name": "leg_back_left3",
"parent": "leg_back_left2",
"pivot": [3, 1, 8.25],
"rotation": [10, 0, 0],
"cubes": [
{"origin": [1.5, -0.5, 6.5], "size": [3, 2, 3], "inflate": 0.01, "uv": [66, 36]}
]
}
]
}
]
}
@@ -0,0 +1,402 @@
{
"format_version": "1.12.0",
"minecraft:geometry": [
{
"description": {
"identifier": "geometry.sawsbuck_summer",
"texture_width": 128,
"texture_height": 64,
"visible_bounds_width": 4,
"visible_bounds_height": 4.5,
"visible_bounds_offset": [0, 1.75, 0]
},
"bones": [
{
"name": "sawsbuck",
"pivot": [0, 0, 0]
},
{
"name": "body",
"parent": "sawsbuck",
"pivot": [0, 0, 0]
},
{
"name": "torso",
"parent": "body",
"pivot": [0, 14.75, 6.75],
"cubes": [
{"origin": [-4, 10.25, -7], "size": [8, 8, 17], "uv": [0, 0]}
]
},
{
"name": "neck",
"parent": "torso",
"pivot": [0, 16.25, -5],
"rotation": [7.5, 0, 0],
"cubes": [
{"origin": [-3, 12.25, -7.5], "size": [6, 11, 6], "uv": [30, 25]}
]
},
{
"name": "head",
"parent": "neck",
"pivot": [0, 22.25, -4.5],
"cubes": [
{"origin": [-3.5, 22.25, -8.75], "size": [7, 7, 8], "uv": [0, 25]}
]
},
{
"name": "eyes",
"parent": "head",
"pivot": [0, 26.25, -7.25]
},
{
"name": "eye_right",
"parent": "eyes",
"pivot": [0, 4.75, -0.75],
"cubes": [
{"origin": [-3.5, 25.25, -8.75], "size": [1, 2, 3], "inflate": 0.01, "uv": [93, 0], "mirror": true}
]
},
{
"name": "eyelid_right",
"parent": "eye_right",
"pivot": [-2.9, 26.25, -7.15],
"cubes": [
{"origin": [-3.4, 25.25, -8.65], "size": [1, 2, 3], "inflate": 0.02, "uv": [93, 5], "mirror": true}
]
},
{
"name": "eye_left",
"parent": "eyes",
"pivot": [0, 4.75, -0.75],
"cubes": [
{"origin": [2.5, 25.25, -8.75], "size": [1, 2, 3], "inflate": 0.01, "uv": [85, 0]}
]
},
{
"name": "eyelid_left",
"parent": "eye_left",
"pivot": [2.9, 26.25, -7.15],
"cubes": [
{"origin": [2.4, 25.25, -8.65], "size": [1, 2, 3], "inflate": 0.02, "uv": [85, 5]}
]
},
{
"name": "muzzle",
"parent": "head",
"pivot": [0, 23.5, -8.75],
"rotation": [-2.5, 0, 0],
"cubes": [
{"origin": [-2, 23.5, -13.75], "size": [4, 3, 5], "inflate": 0.01, "uv": [16, 41]}
]
},
{
"name": "jaw",
"parent": "muzzle",
"pivot": [0, 23, -8.75],
"rotation": [-2.5, 0, 0],
"cubes": [
{"origin": [-2, 22.5, -11.5], "size": [4, 1, 3], "uv": [33, 13]},
{"origin": [-1.5, 22.5, -13.5], "size": [3, 1, 2], "uv": [11, 40]}
]
},
{
"name": "antler_right",
"parent": "head",
"pivot": [2.25, 29.25, -5],
"rotation": [-10, -20, 25],
"cubes": [
{"origin": [1.25, 28.25, -5], "size": [2, 6, 0], "inflate": 0.01, "uv": [4, 25]}
]
},
{
"name": "antler_right_front",
"parent": "antler_right",
"pivot": [2.25, 30.5, -5],
"rotation": [42.5, 0, -20],
"cubes": [
{"origin": [1.25, 30.5, -5], "size": [2, 6, 0], "uv": [94, 25]}
]
},
{
"name": "antler_right2",
"parent": "antler_right",
"pivot": [1.25, 34.25, -5],
"rotation": [0, 0, 25],
"cubes": [
{"origin": [1.25, 34.25, -5], "size": [2, 11, 0], "inflate": 0.01, "uv": [94, 14]}
]
},
{
"name": "leaves_right",
"parent": "antler_right2",
"pivot": [2.55936, 35.84417, -2.18933],
"rotation": [5, 12.5, 35],
"cubes": [
{"origin": [-3.64072, 33.03076, -7.5428], "size": [4, 2, 0], "pivot": [-0.95841, 33.5764, -7.18933], "rotation": [0, -5, -55], "uv": [120, 0]},
{"origin": [-5.70841, 32.0764, -7.18933], "size": [10, 11, 5], "uv": [40, 48]},
{"origin": [-6.20841, 37.0764, -5.43933], "size": [2, 4, 0], "pivot": [-5.20841, 37.5764, -5.43933], "rotation": [-20, -2.5, -42.5], "uv": [124, 4]},
{"origin": [4.79159, 39.36194, -3.93933], "size": [2, 4, 0], "pivot": [5.79159, 42.86194, -3.93933], "rotation": [12.5, 0, 40], "uv": [120, 4]},
{"origin": [-5.20841, 30.0764, -4.18933], "size": [8, 2, 0], "uv": [112, 16]}
]
},
{
"name": "leaves_right2",
"parent": "leaves_right",
"pivot": [-0.19064, 43.09417, -5.18933],
"rotation": [0, 0, 7.5],
"cubes": [
{"origin": [-2.95841, 44.3264, -3.18933], "size": [4, 2, 0], "pivot": [0.54159, 45.3264, -3.18933], "rotation": [0, 167.5, -117.5], "uv": [120, 2]},
{"origin": [-3.70841, 42.0764, -6.18933], "size": [7, 6, 3], "uv": [0, 55]},
{"origin": [-5.20841, 42.0764, -4.68933], "size": [10, 11, 0], "uv": [108, 42]}
]
},
{
"name": "antler_right4",
"parent": "antler_right2",
"pivot": [3.25, 37.75, -5],
"rotation": [0, 0, 50],
"cubes": [
{"origin": [1.25, 37.75, -5], "size": [2, 4, 0], "uv": [39, 42]}
]
},
{
"name": "antler_right5",
"parent": "antler_right2",
"pivot": [1.25, 40.75, -5],
"rotation": [0, 0, -45],
"cubes": [
{"origin": [1.25, 40.75, -5], "size": [2, 4, 0], "uv": [93, 10]}
]
},
{
"name": "antler_right3",
"parent": "antler_right",
"pivot": [3.25, 33.75, -5],
"rotation": [0, 0, -45],
"cubes": [
{"origin": [1.25, 33.75, -5], "size": [2, 5, 0], "uv": [35, 42]}
]
},
{
"name": "antler_left",
"parent": "head",
"pivot": [-2.25, 29.25, -5],
"rotation": [-10, 20, -25],
"cubes": [
{"origin": [-3.25, 28.25, -5], "size": [2, 6, 0], "inflate": 0.01, "uv": [0, 25]}
]
},
{
"name": "antler_left_front",
"parent": "antler_left",
"pivot": [-2.25, 30.5, -5],
"rotation": [42.5, 0, 20],
"cubes": [
{"origin": [-3.25, 30.5, -5], "size": [2, 6, 0], "uv": [90, 25], "mirror": true}
]
},
{
"name": "antler_left2",
"parent": "antler_left",
"pivot": [-1.25, 34.25, -5],
"rotation": [0, 0, -25],
"cubes": [
{"origin": [-3.25, 34.25, -5], "size": [2, 11, 0], "inflate": 0.01, "uv": [90, 14]}
]
},
{
"name": "leaves_left",
"parent": "antler_left2",
"pivot": [-2.55936, 35.84417, -2.18933],
"rotation": [2.5, -10, -35],
"cubes": [
{"origin": [-2.54159, 35.8264, -7.18933], "size": [4, 2, 0], "pivot": [-2.04159, 36.8264, -7.18933], "rotation": [0, 5, 55], "uv": [120, 10], "mirror": true},
{"origin": [-4.29159, 32.0764, -7.18933], "size": [10, 11, 5], "uv": [40, 48], "mirror": true},
{"origin": [3.39092, 39.41212, -4.59072], "size": [2, 4, 0], "pivot": [5.20841, 39.5764, -5.43933], "rotation": [27.5, 10, 52.5], "uv": [124, 12], "mirror": true},
{"origin": [-6.79159, 35.86194, -5.18933], "size": [2, 4, 0], "pivot": [-5.79159, 39.36194, -5.18933], "rotation": [12.5, 0, -40], "uv": [120, 12], "mirror": true},
{"origin": [-3.79159, 30.0764, -5.18933], "size": [8, 2, 0], "uv": [112, 18], "mirror": true}
]
},
{
"name": "leaves_left2",
"parent": "leaves_left",
"pivot": [0.19064, 43.09417, -5.18933],
"rotation": [0, 0, -7.5],
"cubes": [
{"origin": [0.95841, 43.3264, -3.18933], "size": [4, 2, 0], "pivot": [1.45841, 44.3264, -3.18933], "rotation": [0, -167.5, 117.5], "uv": [120, 8], "mirror": true},
{"origin": [-3.29159, 42.0764, -6.18933], "size": [7, 6, 3], "uv": [20, 55], "mirror": true},
{"origin": [-4.79159, 42.0764, -4.68933], "size": [10, 11, 0], "uv": [108, 53], "mirror": true}
]
},
{
"name": "antler_left4",
"parent": "antler_left2",
"pivot": [-3.25, 37.75, -5],
"rotation": [0, 0, -47.5],
"cubes": [
{"origin": [-3.25, 37.75, -5], "size": [2, 3, 0], "uv": [44, 13]}
]
},
{
"name": "antler_left5",
"parent": "antler_left2",
"pivot": [-1.25, 39.75, -5],
"rotation": [0, 0, 60],
"cubes": [
{"origin": [-3.25, 39.75, -5], "size": [2, 4, 0], "uv": [89, 10]}
]
},
{
"name": "antler_left3",
"parent": "antler_left",
"pivot": [-3.25, 33.75, -5],
"rotation": [0, 0, 45],
"cubes": [
{"origin": [-3.25, 33.75, -5], "size": [2, 4, 0], "uv": [85, 10]}
]
},
{
"name": "ear_right",
"parent": "head",
"pivot": [-3, 28.25, -3.5],
"rotation": [5, 20, 27.5],
"cubes": [
{"origin": [-10, 26.25, -3.5], "size": [7, 4, 0], "uv": [22, 25]}
]
},
{
"name": "ear_left",
"parent": "head",
"pivot": [3, 28.25, -3.5],
"rotation": [5, -20, -27.5],
"cubes": [
{"origin": [3, 26.25, -3.5], "size": [7, 4, 0], "uv": [0, 13]}
]
},
{
"name": "tail",
"parent": "torso",
"pivot": [0, 17, 9.5],
"rotation": [7.5, 0, 0],
"cubes": [
{"origin": [0, 13.5, 9], "size": [0, 6, 8], "uv": [0, -1]}
]
},
{
"name": "leg_front_right",
"parent": "torso",
"pivot": [-3, 14.25, -5],
"rotation": [5, 0, 0],
"cubes": [
{"origin": [-4.5, 7.75, -6.5], "size": [3, 8, 3], "inflate": 0.01, "uv": [62, 12]}
]
},
{
"name": "leg_front_right2",
"parent": "leg_front_right",
"pivot": [-3, 7.75, -3.5],
"rotation": [-15, 0, 0],
"cubes": [
{"origin": [-4.5, 0.75, -6.5], "size": [3, 7, 3], "uv": [50, 11]},
{"origin": [-3, 1, -4.75], "size": [0, 3, 2], "pivot": [-3, 3.75, -3.5], "rotation": [15, 0, 0], "uv": [0, 38]}
]
},
{
"name": "leg_front_right3",
"parent": "leg_front_right2",
"pivot": [-3, 1.25, -5],
"rotation": [10, 0, 0],
"cubes": [
{"origin": [-4.5, -0.5, -6.75], "size": [3, 2, 3], "inflate": 0.01, "uv": [54, 31]}
]
},
{
"name": "leg_front_left",
"parent": "torso",
"pivot": [3, 14.25, -5],
"rotation": [5, 0, 0],
"cubes": [
{"origin": [1.5, 7.75, -6.5], "size": [3, 8, 3], "inflate": 0.01, "uv": [49, 0]}
]
},
{
"name": "leg_front_left2",
"parent": "leg_front_left",
"pivot": [3, 7.75, -3.5],
"rotation": [-15, 0, 0],
"cubes": [
{"origin": [1.5, 0.75, -6.5], "size": [3, 7, 3], "uv": [50, 21]},
{"origin": [3, 1, -4.75], "size": [0, 3, 2], "pivot": [3, 3.75, -3.5], "rotation": [15, 0, 0], "uv": [33, 0]}
]
},
{
"name": "leg_front_left3",
"parent": "leg_front_left2",
"pivot": [3, 1.25, -5],
"rotation": [10, 0, 0],
"cubes": [
{"origin": [1.5, -0.5, -6.75], "size": [3, 2, 3], "inflate": 0.01, "uv": [54, 36]}
]
},
{
"name": "leg_back_right",
"parent": "body",
"pivot": [-3, 14.75, 6.75],
"rotation": [5, 0, 0],
"cubes": [
{"origin": [-4.5, 8.25, 4.25], "size": [3, 8, 5], "inflate": 0.01, "uv": [33, 0]}
]
},
{
"name": "leg_back_right2",
"parent": "leg_back_right",
"pivot": [-3, 9, 8.75],
"rotation": [-15, 0, 0],
"cubes": [
{"origin": [-4.5, 0.5, 6.75], "size": [3, 9, 3], "uv": [61, 0]},
{"origin": [-3, -1.88302, 8.20053], "size": [0, 3, 2], "pivot": [-3, 3.75, -3.25], "rotation": [15, 0, 0], "uv": [26, 27]}
]
},
{
"name": "leg_back_right3",
"parent": "leg_back_right2",
"pivot": [-3, 1, 8.25],
"rotation": [10, 0, 0],
"cubes": [
{"origin": [-4.5, -0.5, 6.5], "size": [3, 2, 3], "inflate": 0.01, "uv": [66, 31]}
]
},
{
"name": "leg_back_left",
"parent": "body",
"pivot": [3, 14.75, 6.75],
"rotation": [5, 0, 0],
"cubes": [
{"origin": [1.5, 8.25, 4.25], "size": [3, 8, 5], "inflate": 0.01, "uv": [74, 12]}
]
},
{
"name": "leg_back_left2",
"parent": "leg_back_left",
"pivot": [3, 9, 8.75],
"rotation": [-15, 0, 0],
"cubes": [
{"origin": [1.5, 0.5, 6.75], "size": [3, 9, 3], "uv": [73, 0]},
{"origin": [3, -1.88302, 8.20053], "size": [0, 3, 2], "pivot": [3, 3.75, -3.25], "rotation": [15, 0, 0], "uv": [22, 27]}
]
},
{
"name": "leg_back_left3",
"parent": "leg_back_left2",
"pivot": [3, 1, 8.25],
"rotation": [10, 0, 0],
"cubes": [
{"origin": [1.5, -0.5, 6.5], "size": [3, 2, 3], "inflate": 0.01, "uv": [66, 36]}
]
}
]
}
]
}
@@ -0,0 +1,420 @@
{
"format_version": "1.12.0",
"minecraft:geometry": [
{
"description": {
"identifier": "geometry.sawsbuck_winter",
"texture_width": 128,
"texture_height": 64,
"visible_bounds_width": 4,
"visible_bounds_height": 4.5,
"visible_bounds_offset": [0, 1.75, 0]
},
"bones": [
{
"name": "sawsbuck",
"pivot": [0, 0, 0]
},
{
"name": "body",
"parent": "sawsbuck",
"pivot": [0, 0, 0]
},
{
"name": "torso",
"parent": "body",
"pivot": [0, 14.75, 6.75],
"cubes": [
{"origin": [-4, 10.25, -7], "size": [8, 8, 17], "uv": [0, 0]}
]
},
{
"name": "neck",
"parent": "torso",
"pivot": [0, 16.25, -5],
"rotation": [7.5, 0, 0],
"cubes": [
{"origin": [-3, 12.25, -7.5], "size": [6, 11, 6], "uv": [30, 25]}
]
},
{
"name": "head",
"parent": "neck",
"pivot": [0, 22.25, -4.5],
"cubes": [
{"origin": [-3.5, 22.25, -8.75], "size": [7, 7, 8], "uv": [0, 25]}
]
},
{
"name": "eyes",
"parent": "head",
"pivot": [0, 26.25, -7.25]
},
{
"name": "eye_right",
"parent": "eyes",
"pivot": [0, 4.75, -0.75],
"cubes": [
{"origin": [-3.5, 25.25, -8.75], "size": [1, 2, 3], "inflate": 0.01, "uv": [93, 0], "mirror": true}
]
},
{
"name": "eyelid_right",
"parent": "eye_right",
"pivot": [-2.9, 26.25, -7.15],
"cubes": [
{"origin": [-3.4, 25.25, -8.65], "size": [1, 2, 3], "inflate": 0.02, "uv": [93, 5], "mirror": true}
]
},
{
"name": "eye_left",
"parent": "eyes",
"pivot": [0, 4.75, -0.75],
"cubes": [
{"origin": [2.5, 25.25, -8.75], "size": [1, 2, 3], "inflate": 0.01, "uv": [85, 0]}
]
},
{
"name": "eyelid_left",
"parent": "eye_left",
"pivot": [2.9, 26.25, -7.15],
"cubes": [
{"origin": [2.4, 25.25, -8.65], "size": [1, 2, 3], "inflate": 0.02, "uv": [85, 5]}
]
},
{
"name": "muzzle",
"parent": "head",
"pivot": [0, 23.5, -8.75],
"rotation": [-2.5, 0, 0],
"cubes": [
{"origin": [-2, 23.5, -13.75], "size": [4, 3, 5], "inflate": 0.01, "uv": [16, 41]}
]
},
{
"name": "jaw",
"parent": "muzzle",
"pivot": [0, 23, -8.75],
"rotation": [-2.5, 0, 0],
"cubes": [
{"origin": [-2, 22.5, -11.5], "size": [4, 1, 3], "uv": [33, 13]},
{"origin": [-1.5, 22.5, -13.5], "size": [3, 1, 2], "uv": [11, 40]}
]
},
{
"name": "antler_right",
"parent": "head",
"pivot": [2.25, 29.25, -5],
"rotation": [-10, -20, 25],
"cubes": [
{"origin": [1.25, 28.25, -5], "size": [2, 6, 0], "inflate": 0.01, "uv": [4, 25]}
]
},
{
"name": "antler_right_front",
"parent": "antler_right",
"pivot": [2.25, 30.5, -5],
"rotation": [42.5, 0, -20],
"cubes": [
{"origin": [1.25, 30.5, -5], "size": [2, 6, 0], "uv": [94, 25]}
]
},
{
"name": "antler_right2",
"parent": "antler_right",
"pivot": [1.25, 34.25, -5],
"rotation": [0, 0, 25],
"cubes": [
{"origin": [1.25, 34.25, -5], "size": [2, 11, 0], "inflate": 0.01, "uv": [94, 14]}
]
},
{
"name": "antler_right4",
"parent": "antler_right2",
"pivot": [3.25, 37.75, -5],
"rotation": [0, 0, 50],
"cubes": [
{"origin": [1.25, 37.75, -5], "size": [2, 4, 0], "uv": [39, 42]}
]
},
{
"name": "antler_right5",
"parent": "antler_right2",
"pivot": [1.25, 40.75, -5],
"rotation": [0, 0, -45],
"cubes": [
{"origin": [1.25, 40.75, -5], "size": [2, 4, 0], "uv": [93, 10]}
]
},
{
"name": "antler_right3",
"parent": "antler_right",
"pivot": [3.25, 33.75, -5],
"rotation": [0, 0, -45],
"cubes": [
{"origin": [1.25, 33.75, -5], "size": [2, 5, 0], "uv": [35, 42]}
]
},
{
"name": "antler_left",
"parent": "head",
"pivot": [-2.25, 29.25, -5],
"rotation": [-10, 20, -25],
"cubes": [
{"origin": [-3.25, 28.25, -5], "size": [2, 6, 0], "inflate": 0.01, "uv": [0, 25]}
]
},
{
"name": "antler_left_front",
"parent": "antler_left",
"pivot": [-2.25, 30.5, -5],
"rotation": [42.5, 0, 20],
"cubes": [
{"origin": [-3.25, 30.5, -5], "size": [2, 6, 0], "uv": [90, 25], "mirror": true}
]
},
{
"name": "antler_left2",
"parent": "antler_left",
"pivot": [-1.25, 34.25, -5],
"rotation": [0, 0, -25],
"cubes": [
{"origin": [-3.25, 34.25, -5], "size": [2, 11, 0], "inflate": 0.01, "uv": [90, 14]}
]
},
{
"name": "antler_left4",
"parent": "antler_left2",
"pivot": [-3.25, 37.75, -5],
"rotation": [0, 0, -47.5],
"cubes": [
{"origin": [-3.25, 37.75, -5], "size": [2, 3, 0], "uv": [44, 13]}
]
},
{
"name": "antler_left5",
"parent": "antler_left2",
"pivot": [-1.25, 39.75, -5],
"rotation": [0, 0, 60],
"cubes": [
{"origin": [-3.25, 39.75, -5], "size": [2, 4, 0], "uv": [89, 10]}
]
},
{
"name": "antler_left3",
"parent": "antler_left",
"pivot": [-3.25, 33.75, -5],
"rotation": [0, 0, 45],
"cubes": [
{"origin": [-3.25, 33.75, -5], "size": [2, 4, 0], "uv": [85, 10]}
]
},
{
"name": "ear_right",
"parent": "head",
"pivot": [-3, 28.25, -3.5],
"rotation": [5, 20, 27.5],
"cubes": [
{"origin": [-10, 26.25, -3.5], "size": [7, 4, 0], "uv": [22, 25]}
]
},
{
"name": "ear_left",
"parent": "head",
"pivot": [3, 28.25, -3.5],
"rotation": [5, -20, -27.5],
"cubes": [
{"origin": [3, 26.25, -3.5], "size": [7, 4, 0], "uv": [0, 13]}
]
},
{
"name": "neck_ruff_right",
"parent": "neck",
"pivot": [0.25, 19.75, -7.25],
"rotation": [-5, 10, -2.5],
"cubes": [
{"origin": [-3.75, 12.75, -9.25], "size": [4, 7, 2], "uv": [12, 55], "mirror": true}
]
},
{
"name": "neck_ruff_right2",
"parent": "neck_ruff_right",
"pivot": [-3.75, 19.5, -9.25],
"rotation": [0, 55, 0],
"cubes": [
{"origin": [-7.75, 13.5, -9.25], "size": [4, 6, 2], "uv": [24, 56], "mirror": true}
]
},
{
"name": "neck_ruff_right3",
"parent": "neck_ruff_right2",
"pivot": [-7.75, 13.5, -8.75],
"rotation": [0, 12.5, 15],
"cubes": [
{"origin": [-16.75, 13.5, -8.75], "size": [9, 7, 0], "uv": [66, 57], "mirror": true}
]
},
{
"name": "neck_ruff_left",
"parent": "neck",
"pivot": [-0.25, 19.75, -7.25],
"rotation": [-5, -10, 2.5],
"cubes": [
{"origin": [-0.25, 12.75, -9.25], "size": [4, 7, 2], "uv": [0, 55]}
]
},
{
"name": "neck_ruff_left2",
"parent": "neck_ruff_left",
"pivot": [3.75, 19.5, -9.25],
"rotation": [0, -50, 0],
"cubes": [
{"origin": [3.75, 13.5, -9.25], "size": [4, 6, 2], "uv": [36, 56]}
]
},
{
"name": "neck_ruff_left3",
"parent": "neck_ruff_left2",
"pivot": [7.75, 13.5, -8.75],
"rotation": [0, -12.5, -15],
"cubes": [
{"origin": [7.75, 13.5, -8.75], "size": [9, 7, 0], "uv": [48, 57]}
]
},
{
"name": "tail",
"parent": "torso",
"pivot": [0, 17, 9.5],
"rotation": [7.5, 0, 0],
"cubes": [
{"origin": [0, 14, 9], "size": [0, 5, 8], "uv": [0, 0]}
]
},
{
"name": "leg_front_right",
"parent": "torso",
"pivot": [-3, 14.25, -5],
"rotation": [5, 0, 0],
"cubes": [
{"origin": [-4.5, 7.75, -6.5], "size": [3, 8, 3], "inflate": 0.01, "uv": [62, 12]}
]
},
{
"name": "leg_front_right2",
"parent": "leg_front_right",
"pivot": [-3, 7.75, -3.5],
"rotation": [-15, 0, 0],
"cubes": [
{"origin": [-4.5, 0.75, -6.5], "size": [3, 7, 3], "uv": [50, 11]},
{"origin": [-4.81923, -0.5404, -7], "size": [0, 4, 4], "pivot": [-3, 1.78038, -5], "rotation": [-90, -80, 90], "uv": [112, 8], "mirror": true},
{"origin": [-1.18077, -0.5404, -7], "size": [0, 4, 4], "pivot": [-3, 1.78038, -5], "rotation": [90, -80, -90], "uv": [112, -4]},
{"origin": [-1.5, -0.25, -7], "size": [0, 4, 4], "pivot": [-1.5, 3.75, -5], "rotation": [0, 0, -10], "uv": [112, 0]},
{"origin": [-4.5, -0.25, -7], "size": [0, 4, 4], "pivot": [-4.5, 3.75, -5], "rotation": [0, 0, 10], "uv": [112, 4], "mirror": true}
]
},
{
"name": "leg_front_right3",
"parent": "leg_front_right2",
"pivot": [-3, 1.25, -5],
"rotation": [10, 0, 0],
"cubes": [
{"origin": [-4.5, -0.5, -6.75], "size": [3, 2, 3], "inflate": 0.01, "uv": [54, 31]}
]
},
{
"name": "leg_front_left",
"parent": "torso",
"pivot": [3, 14.25, -5],
"rotation": [5, 0, 0],
"cubes": [
{"origin": [1.5, 7.75, -6.5], "size": [3, 8, 3], "inflate": 0.01, "uv": [49, 0]}
]
},
{
"name": "leg_front_left2",
"parent": "leg_front_left",
"pivot": [3, 7.75, -3.5],
"rotation": [-15, 0, 0],
"cubes": [
{"origin": [1.5, 0.75, -6.5], "size": [3, 7, 3], "uv": [50, 21]},
{"origin": [4.5, -0.25, -7], "size": [0, 4, 4], "pivot": [4.5, 3.75, -5], "rotation": [0, 0, -10], "uv": [120, 4]},
{"origin": [1.5, -0.25, -7], "size": [0, 4, 4], "pivot": [1.5, 3.75, -5], "rotation": [0, 0, 10], "uv": [120, 0], "mirror": true},
{"origin": [1.18077, -0.5404, -7], "size": [0, 4, 4], "pivot": [3, 1.78038, -5], "rotation": [90, 80, 90], "uv": [120, -4], "mirror": true},
{"origin": [4.81923, -0.5404, -7], "size": [0, 4, 4], "pivot": [3, 1.78038, -5], "rotation": [-90, 80, -90], "uv": [120, 8]}
]
},
{
"name": "leg_front_left3",
"parent": "leg_front_left2",
"pivot": [3, 1.25, -5],
"rotation": [10, 0, 0],
"cubes": [
{"origin": [1.5, -0.5, -6.75], "size": [3, 2, 3], "inflate": 0.01, "uv": [54, 36]}
]
},
{
"name": "leg_back_right",
"parent": "body",
"pivot": [-3, 14.75, 6.75],
"rotation": [5, 0, 0],
"cubes": [
{"origin": [-4.5, 8.25, 4.25], "size": [3, 8, 5], "inflate": 0.01, "uv": [33, 0]}
]
},
{
"name": "leg_back_right2",
"parent": "leg_back_right",
"pivot": [-3, 9, 8.75],
"rotation": [-15, 0, 0],
"cubes": [
{"origin": [-4.5, 0.5, 6.75], "size": [3, 9, 3], "uv": [61, 0]},
{"origin": [-1.18077, -0.4404, 6.25], "size": [0, 4, 4], "pivot": [-3, 1.88038, 8.25], "rotation": [90, -80, -90], "uv": [112, 12]},
{"origin": [-1.5, -0.15, 6.25], "size": [0, 4, 4], "pivot": [-1.5, 3.85, 8.25], "rotation": [0, 0, -10], "uv": [112, 16]},
{"origin": [-4.81923, -0.4404, 6.25], "size": [0, 4, 4], "pivot": [-3, 1.88038, 8.25], "rotation": [-90, -80, 90], "uv": [112, 24], "mirror": true},
{"origin": [-4.5, -0.15, 6.25], "size": [0, 4, 4], "pivot": [-4.5, 3.85, 8.25], "rotation": [0, 0, 10], "uv": [112, 20], "mirror": true}
]
},
{
"name": "leg_back_right3",
"parent": "leg_back_right2",
"pivot": [-3, 1, 8.25],
"rotation": [10, 0, 0],
"cubes": [
{"origin": [-4.5, -0.5, 6.5], "size": [3, 2, 3], "inflate": 0.01, "uv": [66, 31]}
]
},
{
"name": "leg_back_left",
"parent": "body",
"pivot": [3, 14.75, 6.75],
"rotation": [5, 0, 0],
"cubes": [
{"origin": [1.5, 8.25, 4.25], "size": [3, 8, 5], "inflate": 0.01, "uv": [74, 12]}
]
},
{
"name": "leg_back_left2",
"parent": "leg_back_left",
"pivot": [3, 9, 8.75],
"rotation": [-15, 0, 0],
"cubes": [
{"origin": [1.5, 0.5, 6.75], "size": [3, 9, 3], "uv": [73, 0]},
{"origin": [4.5, -0.15, 6.25], "size": [0, 4, 4], "pivot": [4.5, 3.85, 8.25], "rotation": [0, 0, -10], "uv": [120, 20]},
{"origin": [4.81923, -0.4404, 6.25], "size": [0, 4, 4], "pivot": [3, 1.88038, 8.25], "rotation": [-90, 80, -90], "uv": [120, 24]},
{"origin": [1.5, -0.15, 6.25], "size": [0, 4, 4], "pivot": [1.5, 3.85, 8.25], "rotation": [0, 0, 10], "uv": [120, 16], "mirror": true},
{"origin": [1.18077, -0.4404, 6.25], "size": [0, 4, 4], "pivot": [3, 1.88038, 8.25], "rotation": [90, 80, 90], "uv": [120, 12], "mirror": true}
]
},
{
"name": "leg_back_left3",
"parent": "leg_back_left2",
"pivot": [3, 1, 8.25],
"rotation": [10, 0, 0],
"cubes": [
{"origin": [1.5, -0.5, 6.5], "size": [3, 2, 3], "inflate": 0.01, "uv": [66, 36]}
]
}
]
}
]
}
@@ -0,0 +1,254 @@
{
"format_version": "1.12.0",
"minecraft:geometry": [
{
"description": {
"identifier": "geometry.pyukumuku",
"texture_width": 64,
"texture_height": 64,
"visible_bounds_width": 3,
"visible_bounds_height": 2.5,
"visible_bounds_offset": [0, 0.75, 0]
},
"bones": [
{
"name": "pyukumuku",
"pivot": [0, 0, 0]
},
{
"name": "body",
"parent": "pyukumuku",
"pivot": [0, 0, 0]
},
{
"name": "torso",
"parent": "body",
"pivot": [0, 3.5, 0],
"cubes": [
{"origin": [-4.5, 0, -6.5], "size": [9, 7, 13], "uv": [0, 0]},
{"origin": [-1.5, 1.25, -6.5], "size": [3, 3, 0], "inflate": 0.01, "uv": [0, 20]}
]
},
{
"name": "eyes",
"parent": "torso",
"pivot": [0, 3, -6.5]
},
{
"name": "eye_right",
"parent": "eyes",
"pivot": [-3.25, 3, -6.5],
"cubes": [
{"origin": [-3.75, 2.5, -6.5], "size": [1, 1, 0], "inflate": 0.01, "uv": [2, 11], "mirror": true}
]
},
{
"name": "eyelid_right",
"parent": "eye_right",
"pivot": [-3.25, 3, -5.9],
"cubes": [
{"origin": [-4.25, 2.5, -6.4], "size": [2, 1, 1], "inflate": 0.02, "uv": [0, 9], "mirror": true}
]
},
{
"name": "eye_left",
"parent": "eyes",
"pivot": [3.25, 3, -6.5],
"cubes": [
{"origin": [2.75, 2.5, -6.5], "size": [1, 1, 0], "inflate": 0.01, "uv": [0, 11]}
]
},
{
"name": "eyelid_left",
"parent": "eye_left",
"pivot": [3.25, 3, -5.9],
"cubes": [
{"origin": [2.25, 2.5, -6.4], "size": [2, 1, 1], "inflate": 0.02, "uv": [6, 9]}
]
},
{
"name": "spike_right",
"parent": "torso",
"pivot": [-3.75, 5.75, -4.75],
"rotation": [15, -15, -40],
"cubes": [
{"origin": [-4.75, 5.25, -5.75], "size": [2, 4, 2], "uv": [56, 21]}
]
},
{
"name": "spike_right2",
"parent": "torso",
"pivot": [-3.25, 6.5, 0],
"rotation": [0, 0, -30],
"cubes": [
{"origin": [-4.75, 6, -1.5], "size": [3, 6, 3], "uv": [0, 0]}
]
},
{
"name": "spike_right3",
"parent": "torso",
"pivot": [-3.75, 5.75, 4.75],
"rotation": [-15, 15, -40],
"cubes": [
{"origin": [-4.75, 5.25, 3.75], "size": [2, 4, 2], "uv": [56, 27]}
]
},
{
"name": "spike_left",
"parent": "torso",
"pivot": [3.75, 5.75, -4.75],
"rotation": [15, 15, 40],
"cubes": [
{"origin": [2.75, 5.25, -5.75], "size": [2, 4, 2], "uv": [56, 15]}
]
},
{
"name": "spike_left2",
"parent": "torso",
"pivot": [3.25, 6.5, 0],
"rotation": [0, 0, 30],
"cubes": [
{"origin": [1.75, 6, -1.5], "size": [3, 6, 3], "uv": [41, 17]}
]
},
{
"name": "spike_left3",
"parent": "torso",
"pivot": [3.75, 5.75, 4.75],
"rotation": [-15, -15, 40],
"cubes": [
{"origin": [2.75, 5.25, 3.75], "size": [2, 4, 2], "uv": [56, 9]}
]
},
{
"name": "organ",
"parent": "torso",
"pivot": [0, 2.75, -1.5],
"cubes": [
{"origin": [-0.5, 2.25, -5.5], "size": [1, 1, 5], "uv": [12, 30]}
]
},
{
"name": "organ2",
"parent": "organ",
"pivot": [0, 2.75, -1.5],
"cubes": [
{"origin": [-1, 2.25, -5.5], "size": [2, 1, 4], "inflate": 0.01, "uv": [26, 29]}
]
},
{
"name": "organ3",
"parent": "organ2",
"pivot": [0, 2.75, -0.5],
"cubes": [
{"origin": [-1, 1.75, -5.5], "size": [2, 2, 5], "uv": [33, 29]}
]
},
{
"name": "organ4",
"parent": "organ3",
"pivot": [0, 2.75, 0.5],
"cubes": [
{"origin": [-1.5, 1.25, -5.5], "size": [3, 3, 6], "uv": [26, 20]}
]
},
{
"name": "hand",
"parent": "organ4",
"pivot": [-0.25, 2.75, 5.5],
"cubes": [
{"origin": [-3.25, 0.75, -0.5], "size": [7, 4, 6], "uv": [0, 20]}
]
},
{
"name": "finger_thumb",
"parent": "hand",
"pivot": [-3.25, 1.75, 1],
"cubes": [
{"origin": [-4.25, 0.75, -1.75], "size": [2, 2, 3], "inflate": 0.01, "uv": [41, 8]}
]
},
{
"name": "finger_thumb2",
"parent": "finger_thumb",
"pivot": [-4.25, 1.75, -1.75],
"cubes": [
{"origin": [-4.25, 0.75, -3.75], "size": [2, 2, 2], "uv": [43, 0]}
]
},
{
"name": "finger_index",
"parent": "hand",
"pivot": [-2.75, 3.75, 1.5],
"cubes": [
{"origin": [-3.75, 2.75, -2.5], "size": [2, 2, 4], "inflate": 0.01, "uv": [47, 0]}
]
},
{
"name": "finger_index2",
"parent": "finger_index",
"pivot": [-2.75, 4.75, -2.5],
"cubes": [
{"origin": [-3.75, 2.75, -5.5], "size": [2, 2, 3], "uv": [31, 8]}
]
},
{
"name": "finger_middle",
"parent": "hand",
"pivot": [-0.75, 3.75, 1.5],
"cubes": [
{"origin": [-1.75, 2.75, -2.5], "size": [2, 2, 4], "inflate": 0.01, "uv": [20, 20]}
]
},
{
"name": "finger_middle2",
"parent": "finger_middle",
"pivot": [-0.75, 4.75, -2.5],
"cubes": [
{"origin": [-1.75, 2.75, -5.5], "size": [2, 2, 3], "uv": [48, 12]}
]
},
{
"name": "finger_ring",
"parent": "hand",
"pivot": [1.25, 3.75, 1.5],
"cubes": [
{"origin": [0.25, 2.75, -2.5], "size": [2, 2, 4], "inflate": 0.01, "uv": [0, 30]}
]
},
{
"name": "finger_ring2",
"parent": "finger_ring",
"pivot": [1.25, 4.75, -2.5],
"cubes": [
{"origin": [0.25, 2.75, -5.5], "size": [2, 2, 3], "uv": [48, 6]}
]
},
{
"name": "finger_pinky",
"parent": "hand",
"pivot": [3.25, 3.75, 1.5],
"cubes": [
{"origin": [2.25, 2.75, -2.5], "size": [2, 2, 4], "inflate": 0.01, "uv": [42, 26]}
]
},
{
"name": "finger_pinky2",
"parent": "finger_pinky",
"pivot": [3.25, 4.75, -2.5],
"cubes": [
{"origin": [2.25, 2.75, -4.5], "size": [2, 2, 2], "uv": [55, 0]}
]
},
{
"name": "tail",
"parent": "torso",
"pivot": [0, 2.5, 6.5],
"cubes": [
{"origin": [-2, 0.5, 5.5], "size": [4, 4, 4], "uv": [31, 0]}
]
}
]
}
]
}
@@ -0,0 +1,19 @@
{
"poser": "cobblemon:deerling",
"model": "cobblemon:bedrock/models/0585_deerling/deerling.geo.json",
"texture": "cobblemon:textures/pokemon/0585_deerling/deerling_spring.png",
"variations": [
{
"aspects": ["fall"],
"texture": "cobblemon:textures/pokemon/0585_deerling/deerling_fall.png"
},
{
"aspects": ["summer"],
"texture": "cobblemon:textures/pokemon/0585_deerling/deerling_summer.png"
},
{
"aspects": ["winter"],
"texture": "cobblemon:textures/pokemon/0585_deerling/deerling_winter.png"
}
]
}
@@ -0,0 +1,11 @@
{
"poser": "cobblemon:pyukumuku",
"model": "cobblemon:bedrock/models/0771_pyukumuku/pyukumuku.geo.json",
"texture": "cobblemon:textures/pokemon/0771_pyukumuku/pyukumuku.png",
"variations": [
{
"aspects": ["shiny"],
"texture": "cobblemon:textures/pokemon/0771_pyukumuku/pyukumuku_shiny.png"
}
]
}
@@ -0,0 +1,11 @@
{
"poser": "cobblemon:sableye",
"model": "cobblemon:bedrock/models/0302_sableye/sableye.geo.json",
"texture": "cobblemon:textures/pokemon/0302_sableye/sableye.png",
"variations": [
{
"aspects": ["shiny"],
"texture": "cobblemon:textures/pokemon/0302_sableye/sableye_shiny.png"
}
]
}
@@ -0,0 +1,22 @@
{
"poser": "cobblemon:sawsbuck",
"model": "cobblemon:bedrock/models/0586_sawsbuck/sawsbuck_spring.geo.json",
"texture": "cobblemon:textures/pokemon/0586_sawsbuck/sawsbuck_spring.png",
"variations": [
{
"aspects": ["fall"],
"texture": "cobblemon:textures/pokemon/0586_sawsbuck/sawsbuck_fall.png",
"model": "cobblemon:bedrock/models/0586_sawsbuck/sawsbuck_fall.geo.json"
},
{
"aspects": ["summer"],
"texture": "cobblemon:textures/pokemon/0586_sawsbuck/sawsbuck_summer.png",
"model": "cobblemon:bedrock/models/0586_sawsbuck/sawsbuck_summer.geo.json"
},
{
"aspects": ["winter"],
"texture": "cobblemon:textures/pokemon/0586_sawsbuck/sawsbuck_winter.png",
"model": "cobblemon:bedrock/models/0586_sawsbuck/sawsbuck_winter.geo.json"
}
]
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 663 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 927 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 782 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 857 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 971 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 594 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 585 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 926 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 463 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 544 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 467 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 557 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 961 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 633 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 369 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 533 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 315 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 879 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 832 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 866 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 866 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

@@ -18,6 +18,7 @@
},
"behaviour": {
"moving": {
"canLook": false,
"walk": {
"avoidsLand": true
},
@@ -36,7 +36,7 @@
"canWalk": false
},
"swim": {
"canSwim": false
"canSwimInWater": false
},
"canLook": false
}
@@ -28,6 +28,7 @@
],
"behaviour": {
"moving": {
"canLook": false,
"walk": {
"avoidsLand": true
},
@@ -37,7 +37,7 @@
"canWalk": false
},
"swim": {
"canSwim": false
"canSwimInWater": false
},
"canLook": false
}
@@ -28,6 +28,7 @@
],
"behaviour": {
"moving": {
"canLook": false,
"walk": {
"avoidsLand": true
},
@@ -29,8 +29,8 @@
],
"behaviour": {
"moving": {
"swim": {
"canWalkOnWater": true
"walk": {
"canWalk": false
},
"fly": {
"canFly": true
@@ -289,10 +289,10 @@
"cobblemon.species.sableye.desc2"
],
"evolutions": [],
"baseScale": 1.0,
"baseScale": 0.65,
"hitbox": {
"width": 1.0,
"height": 1.0,
"width": 0.7,
"height": 1.2,
"fixed": false
},
"baseFriendship": 35,
@@ -32,7 +32,8 @@
"moving": {
"swim": {
"canSwimInWater": true,
"canBreatheUnderwater": true
"canBreatheUnderwater": true,
"swimSpeed": 0.25
}
}
},
@@ -31,7 +31,7 @@
"moving": {
"swim": {
"canSwimInWater": true,
"canBreatheUnderwater": true
"canWalkOnWater": true
}
}
},
@@ -22,10 +22,16 @@
"eggGroups": ["water_2"],
"behaviour": {
"moving": {
"canLook": false,
"walk": {
"avoidsLand": true
},
"swim": {
"swimSpeed": 0.1,
"canSwimInWater": true,
"canBreatheUnderwater": true
}
},
"wanderChance": 1
}
},
"moves": [
@@ -16,6 +16,7 @@
"special_defence": 50,
"speed": 75
},
"features": ["season"],
"catchRate": 190,
"maleRatio": 0.5,
"shoulderMountable": false,
@@ -112,10 +113,10 @@
]
}
],
"baseScale": 1.0,
"baseScale": 0.8,
"hitbox": {
"width": 1.0,
"height": 1.0,
"width": 0.6,
"height": 1.1,
"fixed": false
},
"baseFriendship": 70,
@@ -16,6 +16,7 @@
"special_defence": 70,
"speed": 95
},
"features": ["season"],
"catchRate": 75,
"maleRatio": 0.5,
"shoulderMountable": false,
@@ -100,10 +101,10 @@
],
"preEvolution": "deerling",
"evolutions": [],
"baseScale": 1.0,
"baseScale": 1.05,
"hitbox": {
"width": 1.0,
"height": 1.0,
"height": 1.9,
"fixed": false
},
"baseFriendship": 70,
@@ -34,6 +34,19 @@
}
]
},
"behaviour": {
"moving": {
"walk": {
"walkSpeed": 0.175
},
"swim": {
"swimSpeed": 0.1,
"canSwimInWater": false,
"canBreatheUnderwater": true
},
"wanderChance": 360
}
},
"moves": [
"1:harden",
"1:bide",
@@ -0,0 +1,6 @@
{
"replace": false,
"values": [
"#cobblemon:is_hills"
]
}
@@ -0,0 +1,6 @@
{
"replace": false,
"values": [
"#cobblemon:is_temperate"
]
}
@@ -0,0 +1,6 @@
{
"replace": false,
"values": [
"#cobblemon:is_arid"
]
}
@@ -0,0 +1,6 @@
{
"replace": false,
"values": [
"#cobblemon:is_cold"
]
}
@@ -0,0 +1,11 @@
Get-ChildItem ../common/src/main/resources/assets/cobblemon/bedrock/animations/ -Recurse | Where{$_.Name -Match ".bbmodel"} | Remove-Item
Get-ChildItem ../common/src/main/resources/assets/cobblemon/bedrock/animations/ -Recurse | Where{$_.Name -Match ".geo.json"} | Remove-Item
Get-ChildItem ../common/src/main/resources/assets/cobblemon/bedrock/animations/ -Recurse | Where{$_.Name -Match ".png"} | Remove-Item
Get-ChildItem ../common/src/main/resources/assets/cobblemon/bedrock/models/ -Recurse | Where{$_.Name -Match ".bbmodel"} | Remove-Item
Get-ChildItem ../common/src/main/resources/assets/cobblemon/bedrock/models/ -Recurse | Where{$_.Name -Match ".animation.json"} | Remove-Item
Get-ChildItem ../common/src/main/resources/assets/cobblemon/bedrock/models/ -Recurse | Where{$_.Name -Match ".png"} | Remove-Item
Get-ChildItem ../common/src/main/resources/assets/cobblemon/textures/pokemon/ -Recurse | Where{$_.Name -Match ".bbmodel"} | Remove-Item
Get-ChildItem ../common/src/main/resources/assets/cobblemon/textures/pokemon/ -Recurse | Where{$_.Name -Match ".animation.json"} | Remove-Item
Get-ChildItem ../common/src/main/resources/assets/cobblemon/textures/pokemon/ -Recurse | Where{$_.Name -Match ".geo.json"} | Remove-Item
-3
View File
@@ -1,3 +0,0 @@
Get-ChildItem ../common/src/main/resources/assets/cobblemon/bedrock/animations/ -Recurse | Where{$_.Name -Match ".bbmodel"} | Remove-Item
Get-ChildItem ../common/src/main/resources/assets/cobblemon/bedrock/animations/ -Recurse | Where{$_.Name -Match ".geo.json"} | Remove-Item
Get-ChildItem ../common/src/main/resources/assets/cobblemon/bedrock/animations/ -Recurse | Where{$_.Name -Match ".png"} | Remove-Item
-3
View File
@@ -1,3 +0,0 @@
Get-ChildItem ../common/src/main/resources/assets/cobblemon/bedrock/models/ -Recurse | Where{$_.Name -Match ".bbmodel"} | Remove-Item
Get-ChildItem ../common/src/main/resources/assets/cobblemon/bedrock/models/ -Recurse | Where{$_.Name -Match ".animation.json"} | Remove-Item
Get-ChildItem ../common/src/main/resources/assets/cobblemon/bedrock/models/ -Recurse | Where{$_.Name -Match ".png"} | Remove-Item
-3
View File
@@ -1,3 +0,0 @@
Get-ChildItem ../common/src/main/resources/assets/cobblemon/textures/pokemon/ -Recurse | Where{$_.Name -Match ".bbmodel"} | Remove-Item
Get-ChildItem ../common/src/main/resources/assets/cobblemon/textures/pokemon/ -Recurse | Where{$_.Name -Match ".animation.json"} | Remove-Item
Get-ChildItem ../common/src/main/resources/assets/cobblemon/textures/pokemon/ -Recurse | Where{$_.Name -Match ".geo.json"} | Remove-Item