Compare commits

..
Author SHA1 Message Date
Landon Wills 10f1ac7682 Some playing around with picking up entities when flying (very buggy and meant as a POC) 2025-11-28 14:54:06 -05:00
Landon 1e6dcfba9b Merge branch 'change-freelook-default' into 'main'
Change free look binding default to Left Alt

See merge request cable-mc/cobblemon!2053
2025-11-28 16:30:35 +00:00
Polymeta e59d755d32 Merge branch 'implement_pokemon' into 'main'
Various implementation fixes

See merge request cable-mc/cobblemon!2050
2025-11-28 15:38:40 +00:00
Guilherme Pereira c155b5575d change free look binding default to left alt 2025-11-28 09:35:13 -03:00
Jerzykv 9c6b8b231a oops 2 2025-11-28 13:30:16 +01:00
Jerzykv 92b404dac4 oops 2025-11-28 13:27:19 +01:00
Jerzykv 8a1c536d68 Fixed Furfrou's pink and magenta trims being swapped 2025-11-28 12:56:07 +01:00
Jerzykv 04719d22a5 Fixed a tiny issue with Ceruledge's poser 2025-11-28 12:55:54 +01:00
Jerzykv dacc312756 Implemented Tinkatink line remodels 2025-11-28 12:55:26 +01:00
Polymeta ee4a3d46ba Merge branch '1.7.1-spawns' into 'main'
Updated some spawns.

See merge request cable-mc/cobblemon!2052
2025-11-28 09:31:16 +00:00
violet 80b11f1c3d Merge remote-tracking branch 'origin/implement_pokemon' into implement_pokemon 2025-11-28 01:20:00 -05:00
Carmendar ddcf4eea7b Heracross and Mudsdale jump fix. 2025-11-28 00:16:50 -06:00
violet 6a0681e4c6 fixed cyclizar's textures 2025-11-27 23:37:39 -05:00
Veraxiel 8ebb378da7 Updated some spawns. 2025-11-27 23:31:32 -05:00
violet e92a878074 fixed boltund's model 2025-11-27 23:30:22 -05:00
Paul 0b97b41c08 Merge remote-tracking branch 'origin/main' 2025-11-28 12:27:10 +10:00
Paul 20fe732cfc Potentially minor perf improvement on following walk targets that are unreachable 2025-11-28 12:26:26 +10:00
Carmendar 0575aa29d9 Doubled high end land mount stamina. 2025-11-27 18:43:20 -06:00
Kenji_64 85c6b633d8 Fixed Dragapult's eyes clippings 2025-11-27 22:03:48 +01:00
Jerzykv f88552f99b Gholdengo no longer dances in air. what a shame (fixed flying battle pose issue) 2025-11-27 21:46:35 +01:00
Carmendar e2b559f3eb Merge branch 'main' into implement_pokemon 2025-11-27 14:42:31 -06:00
Carmendar 39816d33b6 Rufflet eepy cry and battle pose fix 2025-11-27 14:38:39 -06:00
Landon 0cf2a23fd4 Merge branch 'cobble-land-fixes' into 'main'
Land adjustments for a smoother riding experience. And bug fixes to land rides

See merge request cable-mc/cobblemon!2039
2025-11-27 19:31:24 +00:00
Carmendar 8194f93d13 Merge branch 'main' into implement_pokemon 2025-11-26 20:54:41 -06:00
Carmendar c158ec33fa Braviary sleep cry fix 2025-11-26 20:53:46 -06:00
Carmendar 1e27c7494e Merge remote-tracking branch 'origin/implement_pokemon' into implement_pokemon 2025-11-26 20:52:27 -06:00
Carmendar 54a1f8d932 Braviary battle pose fix 2025-11-26 20:51:45 -06:00
Kenji_64 d2af0c9332 Fixed Swampert line's missing recoils crashing the game 2025-11-26 15:40:40 +01:00
Kenji_64 379a566d71 Fixed Ditto being silent 2025-11-26 11:52:43 +01:00
Kenji_64 f30ff739ed Fixed Metagross' ground_idle not looping properly (again) >:( 2025-11-26 11:36:23 +01:00
RedGenesectNinja c45e34648c Fixed Toedscool and Toedscruel's hitboxes being too small 2025-11-25 18:53:12 -06:00
jackowes d56586ecac - Fix walking animation issues 2025-11-24 21:39:36 -06:00
jackowes 9df8be33e9 - revert a bad change 2025-11-24 14:51:33 -06:00
jackowes ff2afd546e changelog 2025-11-23 21:50:30 -06:00
jackowes b8b7756a45 - Add double tap to sprint on land mounts
- Adjust step up in air and on ground to reflect vanilla behaviour
- Fix inAir check so pose does not change back to walking or running while in air
2025-11-23 21:29:30 -06:00
jackowes 3d6146f551 - Add double tap to sprint on land mounts.
- Adjust step up in air and on ground to reflect vanilla behaviour
2025-11-23 21:15:41 -06:00
jackowes 31d81db243 Merge branch 'main' into cobble-land-fixes 2025-11-23 18:19:51 -06:00
jackowes 4c36db8685 - Fix ridden pokemon land collision and weird step up issues. Horse is smoother overall now.
- Change the turnrate debuff to be squareroot instead of linear.
- Accel stat does not affect land ridden mounts walks.
- Add vanilla sprinting fov to pokemon land mounts
2025-11-23 18:19:13 -06:00
123 changed files with 11287 additions and 5181 deletions
+14
View File
@@ -8,6 +8,10 @@
### Changes
- Converted the riding freelook button to a configurable keybinding.
- Reduced the cost of the Vivichoke Seed trade with the Wandering Trader.
- Convert the riding freelook button to a configurable keybinding
- Reduced cost of the Vivichoke Seed trade with the Wandering Trader
- Add double tap to sprint on land mounts
- Add vanilla sprinting fov to pokemon land mounts
### Fixes
- Prevent displaying ride controls overlay to passengers.
@@ -39,6 +43,16 @@
- Home on the Range advancement shouldn't trigger when opening the Pokemon Menu (shift interact one, mr changelog guy)
- Recipes using concrete should now work on NeoForge
- Fixed saccharine hanging signs sometimes dropping their oak wood counterpart when being broken
- Fix player suffocation on vanilla mounts experienced on some worlds
- Stop passengers from hearing the shiny noise of a ridden shiny pokemon
- Ponigiri can no longer be eaten at full hunger
- Medicinal Brew's Campfire Pot recipe now correctly displays that it can be made using an empty glass bottle or a filled bottle
- Fix incorrect camera pivot on Bird, Jet, and Dolphin mounts.
- Fix mount jumping so it doesn't switch back to ground animations
- Fix ridden pokemon land collision and weird step up issues. Land mounts are smoother overall now.
- Fixed Boltund's model
- Fixed Cyclizar's textures
- Fixed Furfrou's pink and magenta trims being swapped
### Developer
@@ -19,6 +19,7 @@ import com.cobblemon.mod.common.mixin.accessor.TrackedEntityAccessor;
import com.cobblemon.mod.common.net.messages.client.orientation.ClientboundUpdateDriverInputPacket;
import com.cobblemon.mod.common.net.messages.client.orientation.ClientboundUpdateOrientationPacket;
import com.cobblemon.mod.common.net.messages.client.pokemon.update.ClientboundUpdateRidingStatePacket;
import com.cobblemon.mod.common.net.messages.client.riding.ClientboundGrabEntityPacket;
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
import net.minecraft.network.protocol.Packet;
import net.minecraft.server.level.ChunkMap;
@@ -43,22 +44,27 @@ import java.util.function.Consumer;
@Mixin(ServerEntity.class)
public abstract class ServerEntityMixin {
@Shadow
@Final
private Consumer<Packet<?>> broadcast;
@Shadow
@Final
private Entity entity;
@Unique
private Matrix3f cobblemon$lastSentOrientation;
@Unique
private boolean cobblemon$lastSentActive;
@Shadow @Final private Consumer<Packet<?>> broadcast;
@Shadow @Final private Entity entity;
@Unique private Matrix3f cobblemon$lastSentOrientation;
@Unique private boolean cobblemon$lastSentActive;
@Unique private Entity cobblemon$lastSentGrabbedEntity;
@Inject(method = "sendChanges", at = @At("TAIL"))
private void cobblemon$sendChanges(CallbackInfo ci) {
cobblemon$sendOrientationChanges();
cobblemon$sendRidingStateChanges();
cobblemon$sendDriverInput();
cobblemon$sendGrabbedEntityChanges();
}
private void cobblemon$sendGrabbedEntityChanges() {
if (!(this.entity instanceof PokemonEntity pokemonEntity)) return;
if (pokemonEntity.getEntityHook() != cobblemon$lastSentGrabbedEntity) {
var entityId = pokemonEntity.getEntityHook() == null ? null : pokemonEntity.getEntityHook().getId();
cobblemon$broadcast(new ClientboundGrabEntityPacket(pokemonEntity.getId(), entityId));
cobblemon$lastSentGrabbedEntity = pokemonEntity.getEntityHook();
}
}
private void cobblemon$sendRidingStateChanges() {
@@ -22,10 +22,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(LivingEntityRenderer.class)
public class LivingEntityRendererMixin<T extends LivingEntity, M extends EntityModel<T>> {
@Inject(
method = "setupRotations",
at = @At("HEAD")
)
@Inject(method = "setupRotations", at = @At("HEAD"))
private void cobblemon$modifyRoll(LivingEntity entity, PoseStack poseStack, float bob, float yBodyRot, float partialTick, float scale, CallbackInfo ci) {
if (entity.isPassenger()) {
var vehicle = entity.getVehicle();
@@ -34,4 +31,5 @@ public class LivingEntityRendererMixin<T extends LivingEntity, M extends EntityM
}
}
}
}
@@ -50,16 +50,8 @@ public abstract class EntityMixin {
)
)
public boolean cobblemon$forceOnGroundForStepUp(Entity entity, Operation<Boolean> original) {
if (entity instanceof PokemonEntity && entity.hasControllingPassenger()) {
BlockPos below = entity.blockPosition().below();
Level level = entity.level();
var blockStateBelow = level.getBlockState(below);
boolean isAirOrLiquid = blockStateBelow.isAir() || !blockStateBelow.getFluidState().isEmpty();
boolean canSupportEntity = blockStateBelow.isFaceSturdy(level, below, Direction.UP);
boolean standingOnSolid = canSupportEntity && !isAirOrLiquid;
if (standingOnSolid) {
return true;
}
if (entity instanceof PokemonEntity vehicle && entity.hasControllingPassenger()) {
return true;
}
return original.call(entity);
}
@@ -23,7 +23,6 @@ import com.cobblemon.mod.common.block.MintBlock
import com.cobblemon.mod.common.block.MintBlock.MintType
import com.cobblemon.mod.common.client.pokedex.PokedexType
import com.cobblemon.mod.common.block.campfirepot.CampfirePotColor
import com.cobblemon.mod.common.config.CobblemonConfig
import com.cobblemon.mod.common.entity.boat.CobblemonBoatType
import com.cobblemon.mod.common.item.*
import com.cobblemon.mod.common.item.armor.CobblemonArmorTrims
@@ -43,7 +42,6 @@ import com.cobblemon.mod.common.item.interactive.ability.AbilityChangeItem
import com.cobblemon.mod.common.platform.PlatformRegistry
import com.cobblemon.mod.common.pokeball.PokeBall
import com.cobblemon.mod.common.pokemon.IVs
import com.cobblemon.mod.common.pokemon.Pokemon
import com.cobblemon.mod.common.pokemon.helditem.CobblemonHeldItemManager
import com.cobblemon.mod.common.util.cobblemonResource
import net.minecraft.core.Registry
@@ -52,7 +50,6 @@ import net.minecraft.core.registries.Registries
import net.minecraft.network.chat.Component
import net.minecraft.resources.ResourceKey
import net.minecraft.resources.ResourceLocation
import net.minecraft.server.level.ServerPlayer
import net.minecraft.world.effect.MobEffectInstance
import net.minecraft.world.effect.MobEffects
import net.minecraft.world.entity.LivingEntity
@@ -69,7 +66,6 @@ import net.minecraft.world.item.SignItem
import net.minecraft.world.item.SmithingTemplateItem
import net.minecraft.world.level.Level
import net.minecraft.world.level.block.Block
import kotlin.math.ceil
@Suppress("unused", "SameParameterValue")
object CobblemonItems : PlatformRegistry<Registry<Item>, ResourceKey<Registry<Item>>, Item>() {
@@ -618,11 +614,7 @@ object CobblemonItems : PlatformRegistry<Registry<Item>, ResourceKey<Registry<It
// Medicine
@JvmField
val RARE_CANDY = candyItem("rare_candy", Rarity.RARE) { player, pokemon ->
if (pokemon != null) return@candyItem pokemon.getExperienceToNextLevel()
return@candyItem -1
}
val RARE_CANDY = candyItem("rare_candy", Rarity.RARE) { _, pokemon -> pokemon.getExperienceToNextLevel() }
@JvmField
val EXPERIENCE_CANDY_XS = candyItem("exp_candy_xs") { _, _ -> CandyItem.DEFAULT_XS_CANDY_YIELD }
@JvmField
@@ -1484,7 +1476,7 @@ object CobblemonItems : PlatformRegistry<Registry<Item>, ResourceKey<Registry<It
return item
}
private fun candyItem(name: String, rarity: Rarity = Rarity.COMMON, calculator: (ServerPlayer, Pokemon?) -> Int): CandyItem = this.create(name, CandyItem(rarity, calculator))
private fun candyItem(name: String, rarity: Rarity = Rarity.COMMON, calculator: CandyItem.Calculator): CandyItem = this.create(name, CandyItem(rarity, calculator))
private fun pokerodItem(pokeRodId: ResourceLocation, rarity: Rarity = Rarity.COMMON): PokerodItem {
val settings = Item.Properties().stacksTo(1).durability(256).rarity(rarity)
@@ -45,6 +45,7 @@ import com.cobblemon.mod.common.client.net.pasture.UpdatePastureConflictFlagHand
import com.cobblemon.mod.common.client.net.pokedex.ServerConfirmedRegisterHandler
import com.cobblemon.mod.common.client.net.pokemon.update.ClientboundUpdateRidingStateHandler
import com.cobblemon.mod.common.client.net.pokemon.update.PokemonUpdatePacketHandler
import com.cobblemon.mod.common.client.net.riding.ClientboundGrabEntityHandler
import com.cobblemon.mod.common.client.net.riding.ClientboundUpdateDriverInputHandler
import com.cobblemon.mod.common.client.net.settings.OpenCobblemonConfigEditorHandler
import com.cobblemon.mod.common.client.net.settings.ServerSettingsPacketHandler
@@ -102,6 +103,7 @@ import com.cobblemon.mod.common.net.messages.client.pokemon.update.*
import com.cobblemon.mod.common.net.messages.client.pokemon.update.evolution.AddEvolutionPacket
import com.cobblemon.mod.common.net.messages.client.pokemon.update.evolution.ClearEvolutionsPacket
import com.cobblemon.mod.common.net.messages.client.pokemon.update.evolution.RemoveEvolutionPacket
import com.cobblemon.mod.common.net.messages.client.riding.ClientboundGrabEntityPacket
import com.cobblemon.mod.common.net.messages.client.settings.OpenCobblemonConfigScreenPacket
import com.cobblemon.mod.common.net.messages.client.settings.ServerSettingsPacket
import com.cobblemon.mod.common.net.messages.client.sound.UnvalidatedPlaySoundS2CPacket
@@ -184,6 +186,7 @@ import com.cobblemon.mod.common.net.messages.server.pokemon.update.SetMarkingsPa
import com.cobblemon.mod.common.net.messages.server.pokemon.update.SetNicknamePacket
import com.cobblemon.mod.common.net.messages.server.pokemon.update.evolution.AcceptEvolutionPacket
import com.cobblemon.mod.common.net.messages.server.riding.DismountPokemonPacket
import com.cobblemon.mod.common.net.messages.server.riding.GrabEntityPacket
import com.cobblemon.mod.common.net.messages.server.riding.ServerboundUpdateDriverInputPacket
import com.cobblemon.mod.common.net.messages.server.riding.ServerboundUpdateRiderRotationPacket
import com.cobblemon.mod.common.net.messages.server.starter.RequestStarterScreenPacket
@@ -239,6 +242,7 @@ import com.cobblemon.mod.common.net.serverhandling.pokemon.update.SetMarkingsHan
import com.cobblemon.mod.common.net.serverhandling.pokemon.update.SetNicknameHandler
import com.cobblemon.mod.common.net.serverhandling.riding.DismountPokemonPacketHandler
import com.cobblemon.mod.common.net.serverhandling.riding.DriverInputPacketHandler
import com.cobblemon.mod.common.net.serverhandling.riding.GrabEntityPacketHandler
import com.cobblemon.mod.common.net.serverhandling.riding.ServerboundUpdateRiderRotationHandler
import com.cobblemon.mod.common.net.serverhandling.starter.RequestStarterScreenHandler
import com.cobblemon.mod.common.net.serverhandling.starter.SelectStarterPacketHandler
@@ -490,6 +494,7 @@ object CobblemonNetwork {
// Riding
list.add(PacketRegisterInfo(ClientboundUpdateRidingStatePacket.ID, ClientboundUpdateRidingStatePacket::decode, ClientboundUpdateRidingStateHandler))
list.add(PacketRegisterInfo(ClientboundUpdateDriverInputPacket.ID, ClientboundUpdateDriverInputPacket::decode, ClientboundUpdateDriverInputHandler))
list.add(PacketRegisterInfo(ClientboundGrabEntityPacket.ID, ClientboundGrabEntityPacket::decode, ClientboundGrabEntityHandler))
// Debug
list.add(PacketRegisterInfo(OpenRidingStatsDebugGUIPacket.ID, OpenRidingStatsDebugGUIPacket::decode, OpenRidingStatsDebugGUIHandler))
@@ -600,6 +605,7 @@ object CobblemonNetwork {
list.add(PacketRegisterInfo(ServerboundUpdateRidingStatRangePacket.ID, ServerboundUpdateRidingStatRangePacket::decode, ServerboundUpdateRidingStatRangeHandler))
list.add(PacketRegisterInfo(ServerboundUpdateRidingSettingsPacket.ID, ServerboundUpdateRidingSettingsPacket::decode, ServerboundUpdateRidingSettingsHandler))
list.add(PacketRegisterInfo(DismountPokemonPacket.ID, DismountPokemonPacket::decode, DismountPokemonPacketHandler))
list.add(PacketRegisterInfo(GrabEntityPacket.ID, GrabEntityPacket::decode, GrabEntityPacketHandler))
list.add(PacketRegisterInfo(ServerboundUpdateDriverInputPacket.ID, ServerboundUpdateDriverInputPacket::decode, DriverInputPacketHandler))
list.add(PacketRegisterInfo(ServerboundUpdateRiderRotationPacket.ID, ServerboundUpdateRiderRotationPacket::decode, ServerboundUpdateRiderRotationHandler))
@@ -12,7 +12,6 @@ import com.cobblemon.mod.common.api.battles.model.PokemonBattle
import com.cobblemon.mod.common.battles.pokemon.BattlePokemon
import net.minecraft.commands.CommandSourceStack
import net.minecraft.server.level.ServerPlayer
import net.minecraft.world.entity.LivingEntity
import net.minecraft.world.item.ItemStack
/**
@@ -26,13 +25,8 @@ interface ExperienceSource {
fun isInteraction() = this is CandyExperienceSource
fun isCommand() = this is CommandExperienceSource
fun isSidemod() = this is SidemodExperienceSource
fun isMob() = this is MobExperienceSource
}
open class MobExperienceSource(
mob: LivingEntity,
) : ExperienceSource
open class SidemodExperienceSource(
val sidemodId: String
) : ExperienceSource
@@ -114,10 +114,10 @@ class HorseBehaviour : RidingBehaviour<HorseSettings, HorseState> {
input: Vec3
) {
if (vehicle.level().isClientSide) {
handleSprinting(state)
handleSprinting(state, driver)
inAirCheck(state, vehicle)
tickStamina(settings, state, vehicle)
state.walking.set(state.rideVelocity.get().horizontalDistance() > 0.01)
state.walking.set(state.rideVelocity.get().horizontalDistance() > 0.01 || driver.zza != 0.0f)
}
}
@@ -139,9 +139,24 @@ class HorseBehaviour : RidingBehaviour<HorseSettings, HorseState> {
}
fun handleSprinting(
state: HorseState
state: HorseState,
driver: Player
) {
val tryingToSprint = Minecraft.getInstance().options.keySprint.isDown() && Minecraft.getInstance().options.keyUp.isDown()
val sprintTimerTickLength = 7 // Emulate vanillas tick timer length
var hasDoubleTapped = false
// If you are not sprinting and you just pressed down and theres no
if (!state.forwardHeldLastTick.get() && Minecraft.getInstance().options.keyUp.isDown() && !state.sprinting.get() && state.sprintTickTimer.get() == 0) {
state.sprintTickTimer.set(sprintTimerTickLength)
} else if (!state.forwardHeldLastTick.get() && Minecraft.getInstance().options.keyUp.isDown() && state.sprintTickTimer.get() != 0) { // If has double tapped
hasDoubleTapped = true
}else if(!state.sprinting.get() && state.sprintTickTimer.get() > 0) {
state.sprintTickTimer.set(state.sprintTickTimer.get() - 1)
} else {
state.sprintTickTimer.set(0)
}
val tryingToSprint = (Minecraft.getInstance().options.keySprint.isDown() && Minecraft.getInstance().options.keyUp.isDown()) || hasDoubleTapped
if (state.stamina.get() <= 0.0f || !Minecraft.getInstance().options.keyUp.isDown()) {
// If stamina runs out or the player is not holding forward then stop sprinting
@@ -156,6 +171,9 @@ class HorseBehaviour : RidingBehaviour<HorseSettings, HorseState> {
// If you are trying to sprint and the toggle allows it then start sprinting and disable toggle
state.sprinting.set(true)
}
// Take not of whether forward was held last tick
state.forwardHeldLastTick.set(Minecraft.getInstance().options.keyUp.isDown())
}
fun tickStamina(
@@ -227,7 +245,7 @@ class HorseBehaviour : RidingBehaviour<HorseSettings, HorseState> {
// Normalize the current rotation diff
val rotDiff = Mth.wrapDegrees(driver.yRot - vehicle.yRot).coerceIn(-maxYawDiff,maxYawDiff)
val rotDiffNorm = rotDiff / maxYawDiff
val rotDiffNorm = rotDiff / maxYawDiff//(rotDiff / maxYawDiff).coerceIn(-0.2f, 0.2f)
// Take the square root so that the ride levels out quicker when at lower differences between entity
// y and driver y
@@ -240,7 +258,7 @@ class HorseBehaviour : RidingBehaviour<HorseSettings, HorseState> {
val walkSpeed = getWalkSpeed(vehicle)
val w = max(walkSpeed, vehicle.deltaMovement.horizontalDistance())
val invRelSpeed = (RidingBehaviour.scaleToRange(w, walkSpeed, topSpeed ) - 1.0f) * -1.0f
val turnRate = ((handling.toFloat() / 20.0f) * max(walkHandlingBoost * invRelSpeed, 1.0)).toFloat()
val turnRate = ((handling.toFloat() / 20.0f) * max(walkHandlingBoost * sqrt(abs(invRelSpeed)), 1.0)).toFloat()
// Ensure you only ever rotate as much difference as there is between the angles.
val turnSpeed = turnRate * rotDiffMod
@@ -273,30 +291,24 @@ class HorseBehaviour : RidingBehaviour<HorseSettings, HorseState> {
val rideTopSpeed = vehicle.runtime.resolveDouble(settings.speedExpr ?: globalHorse.speedExpr!!)
val walkSpeed = getWalkSpeed(vehicle)
val topSpeed = if(canSprint && state.sprinting.get()) rideTopSpeed else walkSpeed
val accel = topSpeed / (vehicle.runtime.resolveDouble(settings.accelerationExpr ?: globalHorse.accelerationExpr!!) * 20.0)
val accelTime = if(state.sprinting.get()) (vehicle.runtime.resolveDouble(settings.accelerationExpr ?: globalHorse.accelerationExpr!!) * 20.0) else 0.5 * 20.0
val accel = topSpeed / accelTime
var activeInput = false
/******************************************************
* Gather the previous velocity and check for horizontal
* collisions
*****************************************************/
val dmSpeed = vehicle.deltaMovement.length()
val rvSpeed = state.rideVelocity.get().length()
var newVelocity = state.rideVelocity.get() //.normalize().scale(vehicle.deltaMovement.horizontalDistance())
/******************************************************
* Gather the previous velocity and check for horizontal
* collisions
*****************************************************/
// if (dmSpeed > rvSpeed) {
// // align the velocity vector to be in local vehicle space
// newVelocity = vehicle.deltaMovement
// val yawAligned = Matrix3f().rotateY(-vehicle.yRot.toRadians())
// newVelocity = (newVelocity.toVector3f().mul(yawAligned)).toVec3d()
// }
if (vehicle.horizontalCollision) {
newVelocity = newVelocity.normalize().scale(vehicle.deltaMovement.length())
var horizontalVec = Vec3(newVelocity.x, 0.0, newVelocity.z)
horizontalVec = horizontalVec.normalize().scale(min(horizontalVec.length(), 0.3))
newVelocity = Vec3(horizontalVec.x, newVelocity.y, horizontalVec.z)
}
/******************************************************
@@ -372,7 +384,7 @@ class HorseBehaviour : RidingBehaviour<HorseSettings, HorseState> {
state.jumpTicks.set(state.jumpTicks.get() + 1)
}
//Zero out lateral velocity possibly picked up from a controller transition
// Zero out lateral velocity possibly picked up from a controller transition
newVelocity = Vec3(0.0, newVelocity.y, newVelocity.z)
@@ -461,7 +473,7 @@ class HorseBehaviour : RidingBehaviour<HorseSettings, HorseState> {
vehicle: PokemonEntity,
driver: Player
): Float {
return 1.0f
return if (state.sprinting.get()) 1.15f else 1.0f
}
override fun useAngVelSmoothing(
@@ -520,6 +532,14 @@ class HorseBehaviour : RidingBehaviour<HorseSettings, HorseState> {
return true
}
override fun maxUpStep(
settings: HorseSettings,
state: HorseState,
vehicle: PokemonEntity
): Float? {
return if (state.inAir.get()) 0.0f else 1.2f
}
override fun getRideSounds(
settings: HorseSettings,
state: HorseState,
@@ -618,6 +638,8 @@ class HorseState : RidingBehaviourState() {
var sprintToggleable = ridingState(false, Side.CLIENT)
var inAir = ridingState(false, Side.CLIENT)
var jumpTicks = ridingState(0, Side.CLIENT)
var sprintTickTimer = ridingState(0, Side.CLIENT)
var forwardHeldLastTick = ridingState(false, Side.CLIENT)
override fun encode(buffer: FriendlyByteBuf) {
super.encode(buffer)
@@ -626,6 +648,8 @@ class HorseState : RidingBehaviourState() {
buffer.writeBoolean(sprintToggleable.get())
buffer.writeBoolean(inAir.get())
buffer.writeInt(jumpTicks.get())
buffer.writeInt(sprintTickTimer.get())
buffer.writeBoolean(forwardHeldLastTick.get())
}
override fun decode(buffer: FriendlyByteBuf) {
@@ -635,6 +659,8 @@ class HorseState : RidingBehaviourState() {
sprintToggleable.set(buffer.readBoolean(), forced = true)
inAir.set(buffer.readBoolean(), forced = true)
jumpTicks.set(buffer.readInt(), forced = true)
sprintTickTimer.set(buffer.readInt(), forced = true)
forwardHeldLastTick.set(buffer.readBoolean(), forced = true)
}
override fun reset() {
@@ -644,6 +670,8 @@ class HorseState : RidingBehaviourState() {
sprintToggleable.set(false, forced = true)
inAir.set(false, forced = true)
jumpTicks.set(0, forced = true)
sprintTickTimer.set(0, forced = true)
forwardHeldLastTick.set(false, forced = true)
}
override fun copy() = HorseState().also {
@@ -654,6 +682,8 @@ class HorseState : RidingBehaviourState() {
it.sprintToggleable.set(this.sprintToggleable.get(), forced = true)
it.inAir.set(this.inAir.get(), forced = true)
it.jumpTicks.set(this.jumpTicks.get(), forced = true)
it.sprintTickTimer.set(this.sprintTickTimer.get(), forced = true)
it.forwardHeldLastTick.set(this.forwardHeldLastTick.get(), forced = true)
}
override fun shouldSync(previous: RidingBehaviourState): Boolean {
@@ -500,8 +500,11 @@ class PokemonClientDelegate : PosableState(), PokemonSideDelegate {
}
fun getSeatLocator(passenger: Entity): String {
if (this.getEntity().entityHook == passenger) {
return "entity_hook"
}
val seatIndex = this.getEntity().occupiedSeats.indexOf(passenger)
if (seatIndex == -1) throw IllegalArgumentException("Entity is not currently riding a seat")
if (seatIndex == -1) return "entity_hook"
return this.getEntity().rideProp.seats[seatIndex].locator ?: "seat_${seatIndex + 1}"
}
@@ -39,6 +39,7 @@ object CobblemonKeyBinds {
val PARTY_OVERLAY_UP = this.queue(UpShiftPartyBinding)
val SEND_OUT_POKEMON = this.queue(PartySendBinding)
val RIDING_FREELOOK = this.queue(RidingFreelookBinding)
val GRAB_ENTITY = this.queue(GrabEntityBinding)
fun register(registrar: (KeyMapping) -> Unit) {
this.keyBinds.forEach(registrar::invoke)
@@ -0,0 +1,18 @@
package com.cobblemon.mod.common.client.keybind.keybinds
import com.cobblemon.mod.common.CobblemonNetwork
import com.cobblemon.mod.common.client.keybind.CobblemonBlockingKeyBinding
import com.cobblemon.mod.common.client.keybind.KeybindCategories
import com.cobblemon.mod.common.net.messages.server.riding.GrabEntityPacket
import com.mojang.blaze3d.platform.InputConstants
object GrabEntityBinding : CobblemonBlockingKeyBinding(
"key.cobblemon.grabentity",
InputConstants.Type.KEYSYM,
InputConstants.KEY_V,
KeybindCategories.COBBLEMON_CATEGORY
) {
override fun onPress() {
CobblemonNetwork.sendToServer(GrabEntityPacket())
}
}
@@ -16,8 +16,8 @@ import com.mojang.blaze3d.platform.InputConstants
object RidingFreelookBinding : CobblemonBlockingKeyBinding(
"key.cobblemon.ridingfreelook",
InputConstants.Type.MOUSE,
InputConstants.MOUSE_BUTTON_MIDDLE,
InputConstants.Type.KEYSYM,
InputConstants.KEY_LALT,
KeybindCategories.COBBLEMON_CATEGORY
) {
override fun onTick() {
@@ -0,0 +1,29 @@
package com.cobblemon.mod.common.client.net.riding
import com.cobblemon.mod.common.api.net.ClientNetworkPacketHandler
import com.cobblemon.mod.common.entity.pokemon.PokemonEntity
import com.cobblemon.mod.common.net.messages.client.orientation.ClientboundUpdateDriverInputPacket
import com.cobblemon.mod.common.net.messages.client.riding.ClientboundGrabEntityPacket
import net.minecraft.client.Minecraft
import net.minecraft.client.player.RemotePlayer
object ClientboundGrabEntityHandler : ClientNetworkPacketHandler<ClientboundGrabEntityPacket> {
override fun handle(packet: ClientboundGrabEntityPacket, client: Minecraft) {
client.executeIfPossible {
val level = client.level ?: return@executeIfPossible
val vehicle = level.getEntity(packet.vehicle) ?: return@executeIfPossible
val entity = packet.entity?.let { level.getEntity(it) }
val pokemon = vehicle as? PokemonEntity ?: return@executeIfPossible
if (entity == null) {
pokemon.entityHook?.stopRiding()
pokemon.entityHook = null
}
else {
pokemon.entityHook?.stopRiding()
entity.startRiding(pokemon, true)
pokemon.entityHook = entity
}
}
}
}
@@ -1,120 +0,0 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen9
import com.cobblemon.mod.common.client.render.models.blockbench.PosableState
import com.cobblemon.mod.common.client.render.models.blockbench.createTransformation
import com.cobblemon.mod.common.client.render.models.blockbench.frame.BimanualFrame
import com.cobblemon.mod.common.client.render.models.blockbench.frame.BipedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.CryProvider
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
import com.cobblemon.mod.common.client.render.models.blockbench.pose.ModelPartTransformation
import com.cobblemon.mod.common.client.render.models.blockbench.pose.Pose
import com.cobblemon.mod.common.entity.PoseType
import com.cobblemon.mod.common.util.isBattling
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class TinkatinkModel (root: ModelPart) : PokemonPosableModel(root), HeadedFrame, BipedFrame, BimanualFrame {
override val rootPart = root.registerChildWithAllChildren("tinkatink")
override val head = getPart("head")
override val rightArm = getPart("arm_right")
override val leftArm = getPart("arm_left")
override val rightLeg = getPart("leg_right")
override val leftLeg = getPart("leg_left")
override var portraitScale = 2.0F
override var portraitTranslation = Vec3(0.0, -1.01, 0.0)
override var profileScale = 1.0F
override var profileTranslation = Vec3(0.0, 0.25, 0.0)
lateinit var standing: Pose
lateinit var walking: Pose
lateinit var sleep: Pose
lateinit var battleidle: Pose
lateinit var shoulderLeft: Pose
lateinit var shoulderRight: Pose
val shoulderOffset = 1
override val cryAnimation = CryProvider { bedrockStateful("tinkatink", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("tinkatink", "blink") }
sleep = registerPose(
poseType = PoseType.SLEEP,
animations = arrayOf(bedrock("tinkatink", "sleep"))
)
standing = registerPose(
poseName = "standing",
poseTypes = PoseType.STATIONARY_POSES + PoseType.UI_POSES,
transformTicks = 10,
condition = { !it.isBattling },
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("tinkatink", "ground_idle")
)
)
walking = registerPose(
poseName = "walking",
poseTypes = PoseType.MOVING_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("tinkatink", "ground_walk")
)
)
battleidle = registerPose(
poseName = "battle_idle",
poseTypes = PoseType.STATIONARY_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
condition = { it.isBattling },
animations = arrayOf(
singleBoneLook(),
bedrock("tinkatink", "battle_idle")
)
)
shoulderLeft = registerPose(
poseType = PoseType.SHOULDER_LEFT,
quirks = arrayOf(blink),
condition = { !it.isBattling },
animations = arrayOf(
singleBoneLook(),
bedrock("tinkatink", "shoulder_left")
),
transformedParts = arrayOf(
rootPart.createTransformation().addPosition(ModelPartTransformation.X_AXIS, shoulderOffset)
)
)
shoulderRight = registerPose(
poseType = PoseType.SHOULDER_RIGHT,
quirks = arrayOf(blink),
condition = { !it.isBattling },
animations = arrayOf(
singleBoneLook(),
bedrock("tinkatink", "shoulder_right")
),
transformedParts = arrayOf(
rootPart.createTransformation().addPosition(ModelPartTransformation.X_AXIS, -shoulderOffset)
)
)
}
override fun getFaintAnimation(state: PosableState) = if (state.isPosedIn(standing, walking, battleidle, sleep)) bedrockStateful("tinkatink", "faint") else null
}
@@ -1,87 +0,0 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen9
import com.cobblemon.mod.common.client.render.models.blockbench.PosableState
import com.cobblemon.mod.common.client.render.models.blockbench.frame.BimanualFrame
import com.cobblemon.mod.common.client.render.models.blockbench.frame.BipedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.CryProvider
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
import com.cobblemon.mod.common.client.render.models.blockbench.pose.Pose
import com.cobblemon.mod.common.entity.PoseType
import com.cobblemon.mod.common.util.isBattling
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class TinkatuffModel (root: ModelPart) : PokemonPosableModel(root), HeadedFrame, BipedFrame, BimanualFrame {
override val rootPart = root.registerChildWithAllChildren("tinkatuff")
override val head = getPart("head")
override val rightArm = getPart("arm_right")
override val leftArm = getPart("arm_left")
override val rightLeg = getPart("leg_right")
override val leftLeg = getPart("leg_left")
override var portraitScale = 1.9F
override var portraitTranslation = Vec3(0.0, -0.41, 0.0)
override var profileScale = 0.9F
override var profileTranslation = Vec3(0.0, 0.4, 0.0)
lateinit var standing: Pose
lateinit var walking: Pose
lateinit var sleep: Pose
lateinit var battleidle: Pose
override val cryAnimation = CryProvider { bedrockStateful("tinkatuff", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("tinkatuff", "blink") }
sleep = registerPose(
poseType = PoseType.SLEEP,
animations = arrayOf(bedrock("tinkatuff", "sleep"))
)
standing = registerPose(
poseName = "standing",
poseTypes = PoseType.STATIONARY_POSES + PoseType.UI_POSES,
transformTicks = 10,
condition = { !it.isBattling },
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("tinkatuff", "ground_idle")
)
)
walking = registerPose(
poseName = "walking",
poseTypes = PoseType.MOVING_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("tinkatuff", "ground_walk")
)
)
battleidle = registerPose(
poseName = "battle_idle",
poseTypes = PoseType.STATIONARY_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
condition = { it.isBattling },
animations = arrayOf(
singleBoneLook(),
bedrock("tinkatuff", "battle_idle")
)
)
}
override fun getFaintAnimation(state: PosableState) = if (state.isPosedIn(standing, walking, battleidle, sleep)) bedrockStateful("tinkatuff", "faint") else null
}
@@ -477,8 +477,6 @@ object VaryingModelRepository {
inbuilt("illumise", ::IllumiseModel)
inbuilt("yamper", ::YamperModel)
inbuilt("boltund", ::BoltundModel)
inbuilt("tinkatink", ::TinkatinkModel)
inbuilt("tinkatuff", ::TinkatuffModel)
inbuilt("fuecoco", :: FuecocoModel)
inbuilt("crocalor", :: CrocalorModel)
inbuilt("skeledirge", :: SkeledirgeModel)
@@ -344,9 +344,6 @@ class CobblemonConfig {
@CobblemonConfigField(Category.Spawning, lang = "despawner_max_age_ticks", SERVER)
var despawnerMaxAgeTicks = 3600
@CobblemonConfigField(Category.World, lang = "mob_experience_conversion_rate", SERVER)
var mobExperienceConversionRate = 50.0
fun clone(): CobblemonConfig {
val newConfig = CobblemonConfig()
CobblemonConfig::class.memberProperties.forEach { property ->
@@ -39,15 +39,16 @@ class FollowWalkTargetTask(
private var lookTargetPos: BlockPos? = null
private var speed = 0f
override fun checkExtraStartConditions(arg: ServerLevel, arg2: PathfinderMob): Boolean {
override fun checkExtraStartConditions(level: ServerLevel, entity: PathfinderMob): Boolean {
if (this.pathUpdateCountdownTicks > 0) {
--this.pathUpdateCountdownTicks
return false
} else {
val brain = arg2.brain
val brain = entity.brain
val walkTarget = brain.getMemory(MemoryModuleType.WALK_TARGET).get()
val hasReached = this.hasReached(arg2, walkTarget)
if (!hasReached && this.hasFinishedPath(arg2, walkTarget, arg.gameTime)) {
val hasReached = this.hasReached(entity, walkTarget)
resetPathUpdateCountdownTicks(entity)
if (!hasReached && this.hasFinishedPath(entity, walkTarget, level.gameTime)) {
this.lookTargetPos = walkTarget.target.currentBlockPosition()
return true
} else {
@@ -61,6 +62,10 @@ class FollowWalkTargetTask(
}
}
fun resetPathUpdateCountdownTicks(entity: PathfinderMob) {
pathUpdateCountdownTicks = entity.random.nextInt(20) + 20
}
override fun canStillUse(arg: ServerLevel, arg2: PathfinderMob, l: Long): Boolean {
if (this.path != null && this.lookTargetPos != null) {
val optional = arg2.brain.getMemory(MemoryModuleType.WALK_TARGET)
@@ -75,7 +80,7 @@ class FollowWalkTargetTask(
override fun stop(world: ServerLevel, entity: PathfinderMob, l: Long) {
val walkTarget = entity.brain.getMemory(MemoryModuleType.WALK_TARGET).orElse(null)
if (walkTarget != null && !this.hasReached(entity, walkTarget) && entity.navigation.isStuck) {
this.pathUpdateCountdownTicks = world.getRandom().nextInt(40)
resetPathUpdateCountdownTicks(entity)
}
entity.navigation.stop()
@@ -38,7 +38,6 @@ import com.cobblemon.mod.common.api.net.serializers.PoseTypeDataSerializer
import com.cobblemon.mod.common.api.net.serializers.RideBoostsDataSerializer
import com.cobblemon.mod.common.api.net.serializers.StringSetDataSerializer
import com.cobblemon.mod.common.api.npc.configuration.MoLangConfigVariable
import com.cobblemon.mod.common.api.pokemon.experience.MobExperienceSource
import com.cobblemon.mod.common.api.pokemon.feature.ChoiceSpeciesFeatureProvider
import com.cobblemon.mod.common.api.pokemon.feature.FlagSpeciesFeature
import com.cobblemon.mod.common.api.pokemon.feature.SpeciesFeatures
@@ -419,6 +418,7 @@ open class PokemonEntity(
var tickSpawned = 0
var occupiedSeats = arrayOfNulls<Entity>(seats.size)
var entityHook: Entity? = null
init {
delegate.initialize(this)
@@ -543,6 +543,9 @@ open class PokemonEntity(
if (level().isClientSide) {
MountedCameraTypeHandler.handleDismount(passenger, this)
}
if (entityHook == passenger) {
entityHook = null
}
super.removePassenger(passenger)
if (passengers.isEmpty()) {
ifRidingAvailable { _, _, state -> pokemon.rideStamina = state.stamina.get() }
@@ -1260,18 +1263,7 @@ open class PokemonEntity(
override fun doHurtTarget(target: Entity): Boolean {
if (beamMode != 0) return false
val result = super.doHurtTarget(target)
if (result && !target.isAlive && target is LivingEntity && !level().isClientSide) {
val experience = target.getExperienceReward(level() as ServerLevel, this)
val source = MobExperienceSource(mob = target)
if (this.owner is ServerPlayer) {
pokemon.addExperienceWithPlayer(this.owner as ServerPlayer, source, (experience * Cobblemon.config.mobExperienceConversionRate).toInt())
}
else {
pokemon.addExperience(source, (experience * Cobblemon.config.mobExperienceConversionRate).toInt())
}
}
return result
return super.doHurtTarget(target)
}
override fun hurt(source: DamageSource, amount: Float): Boolean {
@@ -2180,10 +2172,15 @@ open class PokemonEntity(
}
override fun canAddPassenger(passenger: Entity): Boolean {
return passengers.size < seats.size
return entityHook == passenger || passengers.size < seats.size
}
public override fun addPassenger(passenger: Entity) {
if (entityHook == passenger) {
super.addPassenger(passenger)
return
}
if (passenger is ServerPlayer) {
// Recall all the rest of the player's party pokes
passenger.party()
@@ -2274,6 +2271,10 @@ open class PokemonEntity(
this.yBodyRot = this.yRot
this.passengers.filterIsInstance<LivingEntity>()
if (behaviour.key != cobblemonResource("air/bird") && entityHook != null) {
entityHook!!.stopRiding()
}
if (behaviour.isActive(settings, state, this) && behaviour.canJump(settings, state, this, driver)) {
if (this.jumpInputStrength > 0) {
//this.jump(this.jumpStrength, movementInput)
@@ -8,24 +8,17 @@
package com.cobblemon.mod.common.item.interactive
import com.cobblemon.mod.common.Cobblemon
import com.cobblemon.mod.common.CobblemonItems
import com.cobblemon.mod.common.CobblemonSounds
import com.cobblemon.mod.common.api.events.CobblemonEvents
import com.cobblemon.mod.common.api.events.pokemon.interaction.ExperienceCandyUseEvent
import com.cobblemon.mod.common.api.item.PokemonSelectingItem
import com.cobblemon.mod.common.api.pokemon.experience.CandyExperienceSource
import com.cobblemon.mod.common.entity.pokemon.PokemonEntity
import com.cobblemon.mod.common.item.CobblemonItem
import com.cobblemon.mod.common.pokemon.Pokemon
import net.minecraft.server.level.ServerPlayer
import net.minecraft.sounds.SoundEvents
import net.minecraft.world.InteractionHand
import net.minecraft.world.InteractionResult
import net.minecraft.world.InteractionResultHolder
import net.minecraft.world.entity.ExperienceOrb
import net.minecraft.world.entity.LivingEntity
import net.minecraft.world.entity.player.Player
import net.minecraft.world.food.FoodProperties
import net.minecraft.world.item.ItemStack
import net.minecraft.world.item.Rarity
import net.minecraft.world.level.Level
@@ -41,59 +34,22 @@ import net.minecraft.world.level.Level
*/
class CandyItem(
val item_rarity: Rarity,
val expYield: (ServerPlayer, Pokemon?) -> Int
val calculator: Calculator
) : CobblemonItem(Properties().apply {
rarity(item_rarity)
food(FoodProperties.Builder()
.alwaysEdible()
.nutrition(0)
.saturationModifier(0.0f)
.build())
}) {
}), PokemonSelectingItem {
override fun finishUsingItem(stack: ItemStack, level: Level, livingEntity: LivingEntity): ItemStack? {
if (livingEntity !is Player) return super.finishUsingItem(stack, level, livingEntity)
override val bagItem = null
/* Didn't find a good way to determine the XP needed until the beginning of the next level.
* This works but is a little jank. Feel free to investigate a better solution.
*/
if (level.isClientSide && this == CobblemonItems.RARE_CANDY) {
val volume = if (livingEntity.experienceLevel > 30) 1.0f else livingEntity.experienceLevel.toFloat() / 30.0f
livingEntity.playSound(SoundEvents.PLAYER_LEVELUP, volume * 0.75f, 1.0f)
override fun use(world: Level, user: Player, hand: InteractionHand): InteractionResultHolder<ItemStack> {
if (user is ServerPlayer) {
return use(user, user.getItemInHand(hand))
}
if (livingEntity !is ServerPlayer) return super.finishUsingItem(stack, level, livingEntity)
if (this == CobblemonItems.RARE_CANDY) {
livingEntity.setExperienceLevels(livingEntity.experienceLevel + 1)
livingEntity.setExperiencePoints(0)
}
else {
val expYield = expYield(livingEntity, null)
val playerExperience = (expYield / Cobblemon.config.mobExperienceConversionRate).toInt().coerceAtLeast(1)
ExperienceOrb.award(livingEntity.serverLevel(), livingEntity.position(), playerExperience)
}
return super.finishUsingItem(stack, level, livingEntity)
return InteractionResultHolder.success(user.getItemInHand(hand))
}
override fun interactLivingEntity(
stack: ItemStack,
player: Player,
interactionTarget: LivingEntity,
usedHand: InteractionHand
): InteractionResult {
if (player.level().isClientSide) return InteractionResult.FAIL
if (player.isCrouching) return InteractionResult.FAIL
if (interactionTarget !is PokemonEntity) return InteractionResult.PASS
if (interactionTarget.pokemon.getOwnerPlayer() != player) return InteractionResult.PASS
return applyToPokemon(player as ServerPlayer, stack, interactionTarget.pokemon)?.result ?: InteractionResult.FAIL
}
fun applyToPokemon(player: ServerPlayer, stack: ItemStack, pokemon: Pokemon): InteractionResultHolder<ItemStack>? {
if (!pokemon.canLevelUpFurther()) {
return InteractionResultHolder.fail(stack)
}
val experience = expYield(player, pokemon)
override fun applyToPokemon(player: ServerPlayer, stack: ItemStack, pokemon: Pokemon): InteractionResultHolder<ItemStack>? {
val experience = this.calculator.calculate(player, pokemon)
CobblemonEvents.EXPERIENCE_CANDY_USE_PRE.postThen(
event = ExperienceCandyUseEvent.Pre(player, pokemon, this, experience, experience),
ifSucceeded = { preEvent ->
@@ -118,6 +74,29 @@ class CandyItem(
return InteractionResultHolder.fail(stack)
}
override fun canUseOnPokemon(stack: ItemStack, pokemon: Pokemon): Boolean {
return pokemon.isPlayerOwned()
}
/**
* Functional interface responsible for resolving the experience a candy will yield.
*
* @author Licious
* @since March 5th, 2022
*/
fun interface Calculator {
/**
* Resolves the experience the [CandyItem] will give.
*
* @param player The [ServerPlayer] using the candy.
* @param pokemon The [Pokemon] receiving experience.
* @return The experience that will be received
*/
fun calculate(player: ServerPlayer, pokemon: Pokemon): Int
}
companion object {
const val DEFAULT_XS_CANDY_YIELD = 100
const val DEFAULT_S_CANDY_YIELD = 800
@@ -0,0 +1,25 @@
package com.cobblemon.mod.common.net.messages.client.riding
import com.cobblemon.mod.common.api.net.NetworkPacket
import com.cobblemon.mod.common.util.cobblemonResource
import net.minecraft.network.RegistryFriendlyByteBuf
class ClientboundGrabEntityPacket internal constructor(
val vehicle: Int,
val entity: Int?
) : NetworkPacket<ClientboundGrabEntityPacket> {
override val id = ID
override fun encode(buffer: RegistryFriendlyByteBuf) {
buffer.writeVarInt(vehicle)
buffer.writeNullable(entity) { _, v -> buffer.writeVarInt(v) }
}
companion object {
val ID = cobblemonResource("clientbound_grab_entity")
fun decode(buffer: RegistryFriendlyByteBuf): ClientboundGrabEntityPacket {
val vehicle = buffer.readVarInt()
val entity = buffer.readNullable { buffer.readVarInt() }
return ClientboundGrabEntityPacket(vehicle, entity)
}
}
}
@@ -0,0 +1,16 @@
package com.cobblemon.mod.common.net.messages.server.riding
import com.cobblemon.mod.common.api.net.NetworkPacket
import com.cobblemon.mod.common.util.cobblemonResource
import net.minecraft.network.RegistryFriendlyByteBuf
class GrabEntityPacket : NetworkPacket<GrabEntityPacket> {
override val id = ID
override fun encode(buffer: RegistryFriendlyByteBuf) {}
companion object {
val ID = cobblemonResource("grab_entity")
fun decode(buffer: RegistryFriendlyByteBuf) = GrabEntityPacket()
}
}
@@ -0,0 +1,55 @@
package com.cobblemon.mod.common.net.serverhandling.riding
import com.cobblemon.mod.common.api.net.ServerNetworkPacketHandler
import com.cobblemon.mod.common.client.MountedCameraTypeHandler
import com.cobblemon.mod.common.entity.pokemon.PokemonEntity
import com.cobblemon.mod.common.net.messages.server.riding.GrabEntityPacket
import com.cobblemon.mod.common.util.cobblemonResource
import com.cobblemon.mod.common.util.party
import net.minecraft.server.MinecraftServer
import net.minecraft.server.level.ServerPlayer
import net.minecraft.world.entity.LivingEntity
object GrabEntityPacketHandler : ServerNetworkPacketHandler<GrabEntityPacket> {
override fun handle(
packet: GrabEntityPacket,
server: MinecraftServer,
player: ServerPlayer
) {
if (!(player.isPassenger && player.vehicle is PokemonEntity)) return
val pokemon = player.vehicle as PokemonEntity
if (pokemon.controllingPassenger == player) {
pokemon.ifRidingAvailable { behaviour, _, _ ->
if (behaviour.key == cobblemonResource("air/bird") && pokemon.entityHook == null) {
pokemon.level().getEntities(pokemon, pokemon.boundingBox.inflate(1.0, 1.0, 1.0)) { it is LivingEntity && it !is PokemonEntity && !pokemon.passengers.contains(it) }
.minByOrNull { it.distanceToSqr(pokemon) }
?.let { passenger ->
if (passenger is ServerPlayer) {
passenger.party()
.mapNotNull { it.entity }
.filter { it != this }
.forEach { it.recallWithAnimation() }
}
else if (pokemon.level().isClientSide) {
MountedCameraTypeHandler.handleMount(passenger, pokemon)
}
pokemon.entityHook = passenger
passenger.startRiding(pokemon)
}
}
else if (pokemon.entityHook != null) {
pokemon.entityHook!!.stopRiding()
}
}
}
}
private fun canPlayerStopRidingPokemon(pokemon: PokemonEntity, player: ServerPlayer): Boolean {
return pokemon.ifRidingAvailableSupply(false) { behaviour, settings, state ->
behaviour.canStopRiding(settings, state, pokemon, player)
}
}
}
@@ -9,7 +9,6 @@
package com.cobblemon.mod.common.pokemon
import com.cobblemon.mod.common.Cobblemon
import com.cobblemon.mod.common.CobblemonItems
import com.cobblemon.mod.common.CobblemonNetwork.sendPacket
import com.cobblemon.mod.common.CobblemonNetwork.sendPacketToPlayers
import com.cobblemon.mod.common.CobblemonSounds
@@ -149,7 +148,6 @@ import net.minecraft.util.Mth.ceil
import net.minecraft.util.Mth.clamp
import net.minecraft.util.StringRepresentable
import net.minecraft.world.InteractionHand
import net.minecraft.world.entity.ExperienceOrb
import net.minecraft.world.entity.LivingEntity
import net.minecraft.world.entity.MobSpawnType
import net.minecraft.world.entity.player.Player
@@ -2018,12 +2016,6 @@ open class Pokemon : ShowdownIdentifiable {
}
)
val player = getOwnerPlayer()
if (player != null && player.inventory.getArmor(3).item == CobblemonItems.EXP_SHARE) {
val playerExperience = (appliedXP / Cobblemon.config.mobExperienceConversionRate * Cobblemon.config.experienceShareMultiplier).toInt().coerceAtLeast(1)
ExperienceOrb.award(player.serverLevel(), player.position(), playerExperience)
}
experience += appliedXP
// Bound is needed here as we can still be allowed to level up but go over the current cap
var newLevel = experienceGroup.getLevel(experience).coerceAtMost(Cobblemon.config.maxPokemonLevel)
@@ -297,6 +297,11 @@
"1.0833": [0, 0, 0]
}
}
},
"sound_effects": {
"0.25": {
"effect": "pokemon.ditto.cry"
}
}
},
"animation.ditto.blink": {
@@ -1296,7 +1296,7 @@
"position": {
"0.0": [0, 0, 0],
"2.4167": {"pre": [0, 0, 0], "post": [-0.1, 0, 0.1]},
"3.4583": {"pre": [0.1, 0, 0.1], "post": [0, 0, 0]},
"3.4583": {"pre": [-0.1, 0, 0.1], "post": [0, 0, 0]},
"4.25": {"pre": [0, 0, 0], "post": [0, 0, 0]}
}
},
@@ -1304,13 +1304,13 @@
"position": {
"0.0": [0, 0, 0],
"0.0833": {"pre": [0, 0, 0], "post": [0.1, 0, -0.1]},
"0.2917": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
"0.2917": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
"0.875": {"pre": [0, 0, 0], "post": [0.1, 0, -0.1]},
"1.0833": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
"1.0833": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
"2.1667": {"pre": [0, 0, 0], "post": [0.1, 0, -0.1]},
"2.4167": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
"2.4167": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
"3.4583": {"pre": [0, 0, 0], "post": [0.1, 0, -0.1]},
"3.75": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
"3.75": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
"4.25": {"pre": [0, 0, 0], "post": [0, 0, 0]}
}
},
@@ -1318,7 +1318,7 @@
"position": {
"0.0": [0, 0, 0],
"2.4167": {"pre": [0, 0, 0], "post": [0.1, 0, -0.1]},
"3.4583": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
"3.4583": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
"4.25": {"pre": [0, 0, 0], "post": [0, 0, 0]}
}
},
@@ -1326,7 +1326,7 @@
"position": {
"0.0": [0, 0, 0],
"2.4167": {"pre": [0, 0, 0], "post": [0.1, 0, 0.1]},
"3.4583": {"pre": [-0.1, 0, 0.1], "post": [0, 0, 0]},
"3.4583": {"pre": [0.1, 0, 0.1], "post": [0, 0, 0]},
"4.25": {"pre": [0, 0, 0], "post": [0, 0, 0]}
}
},
@@ -1334,13 +1334,13 @@
"position": {
"0.0": [0, 0, 0],
"0.0833": {"pre": [0, 0, 0], "post": [-0.1, 0, -0.1]},
"0.2917": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
"0.2917": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
"0.875": {"pre": [0, 0, 0], "post": [-0.1, 0, -0.1]},
"1.0833": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
"1.0833": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
"2.1667": {"pre": [0, 0, 0], "post": [-0.1, 0, -0.1]},
"2.4167": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
"2.4167": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
"3.4583": {"pre": [0, 0, 0], "post": [-0.1, 0, -0.1]},
"3.75": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
"3.75": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
"4.25": {"pre": [0, 0, 0], "post": [0, 0, 0]}
}
},
@@ -1348,7 +1348,7 @@
"position": {
"0.0": [0, 0, 0],
"2.4167": {"pre": [0, 0, 0], "post": [-0.1, 0, -0.1]},
"3.4583": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
"3.4583": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
"4.25": {"pre": [0, 0, 0], "post": [0, 0, 0]}
}
},
@@ -1539,7 +1539,7 @@
"position": {
"0.0": [0, 0, 0],
"2.4167": {"pre": [0, 0, 0], "post": [-0.1, 0, 0.1]},
"3.4583": {"pre": [0.1, 0, 0.1], "post": [0, 0, 0]},
"3.4583": {"pre": [-0.1, 0, 0.1], "post": [0, 0, 0]},
"4.25": {"pre": [0, 0, 0], "post": [0, 0, 0]}
}
},
@@ -1547,13 +1547,13 @@
"position": {
"0.0": [0, 0, 0],
"0.0833": {"pre": [0, 0, 0], "post": [0.1, 0, -0.1]},
"0.2917": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
"0.2917": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
"0.875": {"pre": [0, 0, 0], "post": [0.1, 0, -0.1]},
"1.0833": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
"1.0833": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
"2.1667": {"pre": [0, 0, 0], "post": [0.1, 0, -0.1]},
"2.4167": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
"2.4167": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
"3.4583": {"pre": [0, 0, 0], "post": [0.1, 0, -0.1]},
"3.75": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
"3.75": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
"4.25": {"pre": [0, 0, 0], "post": [0, 0, 0]}
}
},
@@ -1561,7 +1561,7 @@
"position": {
"0.0": [0, 0, 0],
"2.4167": {"pre": [0, 0, 0], "post": [0.1, 0, -0.1]},
"3.4583": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
"3.4583": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
"4.25": {"pre": [0, 0, 0], "post": [0, 0, 0]}
}
},
@@ -1578,7 +1578,7 @@
"position": {
"0.0": [0, 0, 0],
"2.4167": {"pre": [0, 0, 0], "post": [0.1, 0, 0.1]},
"3.4583": {"pre": [-0.1, 0, 0.1], "post": [0, 0, 0]},
"3.4583": {"pre": [0.1, 0, 0.1], "post": [0, 0, 0]},
"4.25": {"pre": [0, 0, 0], "post": [0, 0, 0]}
}
},
@@ -1586,13 +1586,13 @@
"position": {
"0.0": [0, 0, 0],
"0.0833": {"pre": [0, 0, 0], "post": [-0.1, 0, -0.1]},
"0.2917": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
"0.2917": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
"0.875": {"pre": [0, 0, 0], "post": [-0.1, 0, -0.1]},
"1.0833": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
"1.0833": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
"2.1667": {"pre": [0, 0, 0], "post": [-0.1, 0, -0.1]},
"2.4167": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
"2.4167": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
"3.4583": {"pre": [0, 0, 0], "post": [-0.1, 0, -0.1]},
"3.75": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
"3.75": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
"4.25": {"pre": [0, 0, 0], "post": [0, 0, 0]}
}
},
@@ -1600,7 +1600,7 @@
"position": {
"0.0": [0, 0, 0],
"2.4167": {"pre": [0, 0, 0], "post": [-0.1, 0, -0.1]},
"3.4583": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
"3.4583": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
"4.25": {"pre": [0, 0, 0], "post": [0, 0, 0]}
}
},
@@ -2241,7 +2241,7 @@
"position": {
"0.0": [0, 0, 0],
"0.0417": {"pre": [0, 0, 0], "post": [-0.2, 0, 0.2]},
"0.875": {"pre": [0.2, 0, 0.2], "post": [0, 0, 0]},
"0.875": {"pre": [-0.2, 0, 0.2], "post": [0, 0, 0]},
"1.75": {"pre": [0, 0, 0], "post": [0, 0, 0]}
}
},
@@ -2249,7 +2249,7 @@
"position": {
"0.0": [0, 0, 0],
"0.0417": {"pre": [0, 0, 0], "post": [0.2, 0, 0.2]},
"0.875": {"pre": [-0.2, 0, 0.2], "post": [0, 0, 0]},
"0.875": {"pre": [0.2, 0, 0.2], "post": [0, 0, 0]},
"1.75": {"pre": [0, 0, 0], "post": [0, 0, 0]}
}
},
@@ -2257,7 +2257,7 @@
"position": {
"0.0": [0, 0, 0],
"0.0417": {"pre": [0, 0, 0], "post": [-0.2, 0, 0]},
"0.4583": {"pre": [0.2, 0, 0], "post": [0, 0, 0]},
"0.4583": {"pre": [-0.2, 0, 0], "post": [0, 0, 0]},
"0.6667": {"pre": [0, 0, 0], "post": [0, 0, 0]},
"1.3333": {"pre": [0, 0, 0], "post": [0, 0, 0]},
"1.75": {"pre": [0, 0, 0], "post": [0, 0, 0]}
@@ -2267,7 +2267,7 @@
"position": {
"0.0": [0, 0, 0],
"0.0417": {"pre": [0, 0, 0], "post": [-0.1, 0, 0.2]},
"1.0833": {"pre": [0.1, 0, 0.2], "post": [0, 0, 0]},
"1.0833": {"pre": [-0.1, 0, 0.2], "post": [0, 0, 0]},
"1.75": {"pre": [0, 0, 0], "post": [0, 0, 0]}
}
},
@@ -2275,7 +2275,7 @@
"position": {
"0.0": [0, 0, 0],
"0.0417": {"pre": [0, 0, 0], "post": [-0.1, 0, 0.2]},
"1.0833": {"pre": [0.1, 0, 0.2], "post": [0, 0, 0]},
"1.0833": {"pre": [-0.1, 0, 0.2], "post": [0, 0, 0]},
"1.75": {"pre": [0, 0, 0], "post": [0, 0, 0]}
}
},
@@ -2283,7 +2283,7 @@
"position": {
"0.0": [0, 0, 0],
"0.4583": {"pre": [0, 0, 0], "post": [0.1, 0, -0.1]},
"0.6667": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
"0.6667": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
"1.75": {"pre": [0, 0, 0], "post": [0, 0, 0]}
}
},
@@ -2291,9 +2291,9 @@
"position": {
"0.0": [0, 0, 0],
"0.0417": {"pre": [0, 0, 0], "post": [0.1, 0, -0.1]},
"0.4583": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
"0.4583": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
"0.6667": {"pre": [0, 0, 0], "post": [0.1, 0, -0.2]},
"1.0833": {"pre": [-0.1, 0, -0.2], "post": [0, 0, 0]},
"1.0833": {"pre": [0.1, 0, -0.2], "post": [0, 0, 0]},
"1.3333": {"pre": [0, 0, 0], "post": [0, 0, 0]},
"1.75": {"pre": [0, 0, 0], "post": [0, 0, 0]}
}
@@ -2302,7 +2302,7 @@
"position": {
"0.0": [0, 0, 0],
"0.0417": {"pre": [0, 0, 0], "post": [0.2, 0, 0]},
"0.4583": {"pre": [-0.2, 0, 0], "post": [0, 0, 0]},
"0.4583": {"pre": [0.2, 0, 0], "post": [0, 0, 0]},
"0.6667": {"pre": [0, 0, 0], "post": [0, 0, 0]},
"1.0833": {"pre": [0, 0, 0], "post": [0, 0, 0]},
"1.3333": {"pre": [0, 0, 0], "post": [0, 0, 0]},
@@ -2313,9 +2313,9 @@
"position": {
"0.0": [0, 0, 0],
"0.0417": {"pre": [0, 0, 0], "post": [0.1, 0, 0.2]},
"0.4583": {"pre": [-0.1, 0, 0.2], "post": [0, 0, 0]},
"0.4583": {"pre": [0.1, 0, 0.2], "post": [0, 0, 0]},
"0.6667": {"pre": [0, 0, 0], "post": [0.1, 0, 0.2]},
"0.875": {"pre": [-0.1, 0, 0.2], "post": [0, 0, 0]},
"0.875": {"pre": [0.1, 0, 0.2], "post": [0, 0, 0]},
"1.2083": {"pre": [0, 0, 0], "post": [0, 0, 0]},
"1.75": {"pre": [0, 0, 0], "post": [0, 0, 0]}
}
@@ -2324,7 +2324,7 @@
"position": {
"0.0": [0, 0, 0],
"0.0417": {"pre": [0, 0, 0], "post": [0.1, 0, 0.2]},
"1.0833": {"pre": [-0.1, 0, 0.2], "post": [0, 0, 0]},
"1.0833": {"pre": [0.1, 0, 0.2], "post": [0, 0, 0]},
"1.75": {"pre": [0, 0, 0], "post": [0, 0, 0]}
}
},
@@ -2332,7 +2332,7 @@
"position": {
"0.0": [0, 0, 0],
"0.4583": {"pre": [0, 0, 0], "post": [-0.1, 0, -0.1]},
"0.6667": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
"0.6667": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
"1.75": {"pre": [0, 0, 0], "post": [0, 0, 0]}
}
},
@@ -2340,9 +2340,9 @@
"position": {
"0.0": [0, 0, 0],
"0.0417": {"pre": [0, 0, 0], "post": [-0.1, 0, -0.1]},
"0.4583": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
"0.4583": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
"0.6667": {"pre": [0, 0, 0], "post": [-0.1, 0, -0.2]},
"1.0833": {"pre": [0.1, 0, -0.2], "post": [0, 0, 0]},
"1.0833": {"pre": [-0.1, 0, -0.2], "post": [0, 0, 0]},
"1.3333": {"pre": [0, 0, 0], "post": [0, 0, 0]},
"1.75": {"pre": [0, 0, 0], "post": [0, 0, 0]}
}
@@ -2630,7 +2630,7 @@
"position": {
"0.0": [0, 0, 0],
"0.0417": {"pre": [0, 0, 0], "post": [-0.2, 0, 0.2]},
"0.875": {"pre": [0.2, 0, 0.2], "post": [0, 0, 0]},
"0.875": {"pre": [-0.2, 0, 0.2], "post": [0, 0, 0]},
"1.75": {"pre": [0, 0, 0], "post": [0, 0, 0]}
}
},
@@ -2638,7 +2638,7 @@
"position": {
"0.0": [0, 0, 0],
"0.0417": {"pre": [0, 0, 0], "post": [0.2, 0, 0.2]},
"0.875": {"pre": [-0.2, 0, 0.2], "post": [0, 0, 0]},
"0.875": {"pre": [0.2, 0, 0.2], "post": [0, 0, 0]},
"1.75": {"pre": [0, 0, 0], "post": [0, 0, 0]}
}
},
@@ -2646,7 +2646,7 @@
"position": {
"0.0": [0, 0, 0],
"0.4583": {"pre": [0, 0, 0], "post": [-0.1, 0, 0.1]},
"0.6667": {"pre": [0.1, 0, 0.1], "post": [0, 0, 0]},
"0.6667": {"pre": [-0.1, 0, 0.1], "post": [0, 0, 0]},
"1.75": {"pre": [0, 0, 0], "post": [0, 0, 0]}
}
},
@@ -2654,9 +2654,9 @@
"position": {
"0.0": [0, 0, 0],
"0.0417": {"pre": [0, 0, 0], "post": [-0.1, 0, 0.2]},
"0.4583": {"pre": [0.1, 0, 0.2], "post": [0, 0, 0]},
"0.4583": {"pre": [-0.1, 0, 0.2], "post": [0, 0, 0]},
"0.6667": {"pre": [0, 0, 0], "post": [-0.1, 0, 0.2]},
"0.875": {"pre": [0.1, 0, 0.2], "post": [0, 0, 0]},
"0.875": {"pre": [-0.1, 0, 0.2], "post": [0, 0, 0]},
"1.2083": {"pre": [0, 0, 0], "post": [0, 0, 0]},
"1.75": {"pre": [0, 0, 0], "post": [0, 0, 0]}
}
@@ -2665,7 +2665,7 @@
"position": {
"0.0": [0, 0, 0],
"0.4583": {"pre": [0, 0, 0], "post": [0.1, 0, -0.1]},
"0.6667": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
"0.6667": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
"1.75": {"pre": [0, 0, 0], "post": [0, 0, 0]}
}
},
@@ -2673,9 +2673,9 @@
"position": {
"0.0": [0, 0, 0],
"0.0417": {"pre": [0, 0, 0], "post": [0.1, 0, -0.2]},
"0.4583": {"pre": [-0.1, 0, -0.2], "post": [0, 0, 0]},
"0.4583": {"pre": [0.1, 0, -0.2], "post": [0, 0, 0]},
"0.6667": {"pre": [0, 0, 0], "post": [0.1, 0, -0.2]},
"1.0833": {"pre": [-0.1, 0, -0.2], "post": [0, 0, 0]},
"1.0833": {"pre": [0.1, 0, -0.2], "post": [0, 0, 0]},
"1.3333": {"pre": [0, 0, 0], "post": [0, 0, 0]},
"1.75": {"pre": [0, 0, 0], "post": [0, 0, 0]}
}
@@ -2684,7 +2684,7 @@
"position": {
"0.0": [0, 0, 0],
"0.4583": {"pre": [0, 0, 0], "post": [0.1, 0, 0.1]},
"0.6667": {"pre": [-0.1, 0, 0.1], "post": [0, 0, 0]},
"0.6667": {"pre": [0.1, 0, 0.1], "post": [0, 0, 0]},
"1.75": {"pre": [0, 0, 0], "post": [0, 0, 0]}
}
},
@@ -2692,9 +2692,9 @@
"position": {
"0.0": [0, 0, 0],
"0.0417": {"pre": [0, 0, 0], "post": [0.1, 0, 0.2]},
"0.4583": {"pre": [-0.1, 0, 0.2], "post": [0, 0, 0]},
"0.4583": {"pre": [0.1, 0, 0.2], "post": [0, 0, 0]},
"0.6667": {"pre": [0, 0, 0], "post": [0.1, 0, 0.2]},
"0.875": {"pre": [-0.1, 0, 0.2], "post": [0, 0, 0]},
"0.875": {"pre": [0.1, 0, 0.2], "post": [0, 0, 0]},
"1.2083": {"pre": [0, 0, 0], "post": [0, 0, 0]},
"1.75": {"pre": [0, 0, 0], "post": [0, 0, 0]}
}
@@ -2703,7 +2703,7 @@
"position": {
"0.0": [0, 0, 0],
"0.4583": {"pre": [0, 0, 0], "post": [-0.1, 0, -0.1]},
"0.6667": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
"0.6667": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
"1.75": {"pre": [0, 0, 0], "post": [0, 0, 0]}
}
},
@@ -2711,9 +2711,9 @@
"position": {
"0.0": [0, 0, 0],
"0.0417": {"pre": [0, 0, 0], "post": [-0.1, 0, -0.2]},
"0.4583": {"pre": [0.1, 0, -0.2], "post": [0, 0, 0]},
"0.4583": {"pre": [-0.1, 0, -0.2], "post": [0, 0, 0]},
"0.6667": {"pre": [0, 0, 0], "post": [-0.1, 0, -0.2]},
"1.0833": {"pre": [0.1, 0, -0.2], "post": [0, 0, 0]},
"1.0833": {"pre": [-0.1, 0, -0.2], "post": [0, 0, 0]},
"1.3333": {"pre": [0, 0, 0], "post": [0, 0, 0]},
"1.75": {"pre": [0, 0, 0], "post": [0, 0, 0]}
}
@@ -2997,9 +2997,9 @@
"position": {
"0.0": [0, 0, 0],
"0.0833": {"pre": [0, 0, 0], "post": [0.1, 0, -0.1]},
"0.2917": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
"0.2917": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
"1.6667": {"pre": [0, 0, 0], "post": [0.1, 0, -0.1]},
"1.9167": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
"1.9167": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
"2.75": {"pre": [0, 0, 0], "post": [0, 0, 0]}
}
},
@@ -3007,7 +3007,7 @@
"position": {
"0.0": [0, 0, 0],
"0.7083": {"pre": [0, 0, 0], "post": [0.1, 0, -0.1]},
"1.6667": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
"1.6667": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
"1.9167": {"pre": [0, 0, 0], "post": [0, 0, 0]},
"2.75": {"pre": [0, 0, 0], "post": [0, 0, 0]}
}
@@ -3016,9 +3016,9 @@
"position": {
"0.0": [0, 0, 0],
"0.0833": {"pre": [0, 0, 0], "post": [-0.1, 0, -0.1]},
"0.2917": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
"0.2917": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
"1.6667": {"pre": [0, 0, 0], "post": [-0.1, 0, -0.1]},
"1.9167": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
"1.9167": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
"2.75": {"pre": [0, 0, 0], "post": [0, 0, 0]}
}
},
@@ -3026,7 +3026,7 @@
"position": {
"0.0": [0, 0, 0],
"0.7083": {"pre": [0, 0, 0], "post": [-0.1, 0, -0.1]},
"1.6667": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
"1.6667": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
"1.9167": {"pre": [0, 0, 0], "post": [0, 0, 0]},
"2.75": {"pre": [0, 0, 0], "post": [0, 0, 0]}
}
@@ -9026,6 +9026,12 @@
},
"finger_ground_outer_right2": {
"rotation": [40, 0, 0]
},
"entity_hook": {
"position": {
"0.0": [0, 0, 0],
"1.1667": [0, 4, 8]
}
}
}
},
@@ -11861,6 +11867,12 @@
"0.0": [0, 0, 0],
"2.2917": [0, 0, 0]
}
},
"entity_hook": {
"position": {
"0.0": [0, -2, 2],
"1.1667": [0, -1, 4]
}
}
}
},
@@ -12286,6 +12298,13 @@
},
"membrane_air_right4": {
"rotation": ["0-math.cos(q.anim_time*90*25)*0.75", 0, 0]
},
"entity_hook": {
"position": {
"0.0": [2, 0, 2],
"1.1667": [2, -2.14, 3],
"2.0417": [2, -2, 2]
}
}
}
},
@@ -12477,9 +12496,9 @@
"position": {
"0.0": [0, 0, 0],
"0.0833": {"pre": [0, 0, 0], "post": [0.1, 0, -0.1]},
"0.2917": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
"0.2917": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
"1.6667": {"pre": [0, 0, 0], "post": [0.1, 0, -0.1]},
"1.9167": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
"1.9167": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
"2.75": {"pre": [0, 0, 0], "post": [0, 0, 0]}
}
},
@@ -12487,7 +12506,7 @@
"position": {
"0.0": [0, 0, 0],
"0.7083": {"pre": [0, 0, 0], "post": [0.1, 0, -0.1]},
"1.6667": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
"1.6667": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
"1.9167": {"pre": [0, 0, 0], "post": [0, 0, 0]},
"2.75": {"pre": [0, 0, 0], "post": [0, 0, 0]}
}
@@ -12496,9 +12515,9 @@
"position": {
"0.0": [0, 0, 0],
"0.0833": {"pre": [0, 0, 0], "post": [-0.1, 0, -0.1]},
"0.2917": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
"0.2917": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
"1.6667": {"pre": [0, 0, 0], "post": [-0.1, 0, -0.1]},
"1.9167": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
"1.9167": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
"2.75": {"pre": [0, 0, 0], "post": [0, 0, 0]}
}
},
@@ -12506,7 +12525,7 @@
"position": {
"0.0": [0, 0, 0],
"0.7083": {"pre": [0, 0, 0], "post": [-0.1, 0, -0.1]},
"1.6667": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
"1.6667": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
"1.9167": {"pre": [0, 0, 0], "post": [0, 0, 0]},
"2.75": {"pre": [0, 0, 0], "post": [0, 0, 0]}
}
@@ -13030,13 +13049,13 @@
"eyelid_left": {
"position": {
"0.0": [0.1, 0, -0.1],
"0.1667": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]}
"0.1667": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]}
}
},
"eyelid_right": {
"position": {
"0.0": [-0.1, 0, -0.1],
"0.1667": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]}
"0.1667": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]}
}
}
}
@@ -3,7 +3,7 @@
"animations": {
"animation.metagross.ground_idle": {
"loop": true,
"animation_length": 11.4167,
"animation_length": 0,
"bones": {
"body2": {
"position": [0, -11.9, 0]
@@ -84,7 +84,7 @@
"position": [0, "0+Math.cos((query.anim_time) * 90 * 8 - 60) * -0.1", 0]
},
"hair3": {
"rotation": ["0+Math.cos((query.anim_time) * 90 * 8 - 100) * 3", 0, 0]
"rotation": ["-2+Math.cos((query.anim_time) * 90 * 8 - 100) * 3", 0, 0]
},
"hair": {
"rotation": ["0+Math.cos((query.anim_time) * 90 * 8 - 120) * 10", 12.5, "0+Math.cos((query.anim_time) * 90 * 4 - 180) * 10"]
@@ -356,7 +356,7 @@
"position": [-1.63659, -1.07651, 3.16823]
},
"arm_right": {
"rotation": [-80.89079, -82.69097, -6.55875]
"rotation": [-99.86576, -52.80463, 0.06108]
},
"finger_right": {
"rotation": [0, 0, 17.5]
@@ -375,6 +375,21 @@
},
"arm_hammer_left": {
"rotation": [-85, 100, 0]
},
"hand_right": {
"rotation": [0, 0, -22.5]
},
"brow_right": {
"position": [0, -0.75, 0]
},
"brow_left": {
"position": [0, -0.75, 0]
},
"eyes_ditto": {
"position": [0, 0, 0.1]
},
"eyes_blink_ditto": {
"position": [0, 0, -0.1]
}
}
},
@@ -460,40 +475,26 @@
"1.875": [0, 0, 0]
}
},
"eyelid_right": {
"position": {
"0.375": [0, 0, 0],
"0.4167": [0, 0, -0.125],
"0.625": [0, 0, -0.125],
"0.6667": [0, 0, 0],
"0.8333": [0, 0, 0],
"0.875": [0, 0, -0.125],
"1.5833": [0, 0, -0.125],
"1.625": [0, 0, 0],
"1.7083": [0, 0, 0],
"1.75": [0, 0, -0.125]
}
},
"eyelid_left": {
"position": {
"0.375": [0, 0, 0],
"0.4167": [0, 0, -0.125],
"0.625": [0, 0, -0.125],
"0.4167": [0, 0, -0.1],
"0.625": [0, 0, -0.1],
"0.6667": [0, 0, 0],
"0.8333": [0, 0, 0],
"0.875": [0, 0, -0.125],
"1.5833": [0, 0, -0.125],
"1.625": [0, 0, 0],
"0.875": [0, 0, -0.1],
"1.5833": [0, 0, -0.1],
"1.625": [0, 0, 1],
"1.7083": [0, 0, 0],
"1.75": [0, 0, -0.125]
"1.75": [0, 0, -0.1]
}
},
"mouth_open": {
"mouth_open_cry": {
"position": {
"0.8333": [0, 0, 0],
"0.875": [0, 0, -0.125],
"1.875": [0, 0, -0.125],
"1.9167": [0, 0, 0]
"0.875": {"pre": [0, 0, 0], "post": [0, 0, -0.1]},
"1.875": {"pre": [0, 0, -0.1], "post": [0, 0, -0.1]},
"1.9167": {"pre": [0, 0, -0.1], "post": [0, 0, 0]}
}
},
"arm_left": {
@@ -556,13 +557,6 @@
"1.75": [0, 0, 0]
}
},
"eye_right": {
"scale": {
"1.5833": [1, 1, 1],
"1.625": [1.4, 1.4, 3.3],
"1.7083": [1, 1, 1]
}
},
"eye_left": {
"scale": {
"1.5833": [1, 1, 1],
@@ -722,6 +716,55 @@
"1.7083": [1, 1, 1]
}
},
"leg_left": {
"rotation": {
"0.0": [0, 0, 0],
"0.2917": [0, -20, -2.5],
"0.4167": [-5.68, -13.75, -2.5],
"0.5833": [-32.36, -7.5, -2.5],
"0.7083": [-40.5, 2.5, -2.5],
"0.75": [-33.83, 2.5, -2.5],
"0.8333": [-30.5, 2.5, -2.5]
},
"position": {
"0.4167": [0, 0, 0],
"0.5833": [0, 0, -0.75],
"1.5833": [0, 0, -0.75],
"1.625": [1.25, 0, -0.75],
"1.75": [0, 0, 0]
}
},
"arm_hammer_left": {
"rotation": {
"0.0": [0, 0, 17.5],
"0.25": [0, -25, 5],
"0.4167": [0, -32.5, 3.5],
"0.5": [-11.25, 40.75, -16.75],
"0.5833": [-22.5, 46.75, -37],
"0.7083": [-25, 44, -40.75]
}
},
"eye_right": {
"scale": {
"1.5833": [1, 1, 1],
"1.625": [1.4, 1.4, 3.3],
"1.7083": [1, 1, 1]
}
},
"eyelid_right": {
"position": {
"0.375": [0, 0, 0],
"0.4167": [0, 0, -0.1],
"0.625": [0, 0, -0.1],
"0.6667": [0, 0, 0],
"0.8333": [0, 0, 0],
"0.875": [0, 0, -0.1],
"1.5833": [0, 0, -0.1],
"1.625": [0, 0, 1],
"1.7083": [0, 0, 0],
"1.75": [0, 0, -0.1]
}
},
"arm_right": {
"rotation": {
"0.0": [0, 0, -20],
@@ -753,24 +796,6 @@
"finger_right3": {
"rotation": [0, 0, -22.5]
},
"leg_left": {
"rotation": {
"0.0": [0, 0, 0],
"0.2917": [0, -20, -2.5],
"0.4167": [-5.68, -13.75, -2.5],
"0.5833": [-32.36, -7.5, -2.5],
"0.7083": [-40.5, 2.5, -2.5],
"0.75": [-33.83, 2.5, -2.5],
"0.8333": [-30.5, 2.5, -2.5]
},
"position": {
"0.4167": [0, 0, 0],
"0.5833": [0, 0, -0.75],
"1.5833": [0, 0, -0.75],
"1.625": [1.25, 0, -0.75],
"1.75": [0, 0, 0]
}
},
"leg_right": {
"rotation": {
"0.0": [0, 0, 0],
@@ -789,33 +814,146 @@
"1.75": [-0.5, 0, 0]
}
},
"arm_hammer_left": {
"rotation": {
"0.0": [0, 0, 17.5],
"0.25": [0, -25, 5],
"0.4167": [0, -32.5, 3.5],
"0.5": [-11.25, 40.75, -16.75],
"0.5833": [-22.5, 46.75, -37],
"0.7083": [-25, 44, -40.75]
"brow_left": {
"position": {
"0.375": [0, 0, 0],
"0.4167": [0, -0.75, 0],
"0.625": [0, -0.75, 0],
"0.6667": [0, 0, 0],
"0.8333": [0, 0, 0],
"0.875": [0, -0.75, 0],
"1.5833": [0, -0.75, 0],
"1.625": [0, 0, 0],
"1.7083": [0, 0, 0],
"1.75": [0, -0.75, 0]
}
},
"brow_right": {
"position": {
"0.375": [0, 0, 0],
"0.4167": [0, -0.75, 0],
"0.625": [0, -0.75, 0],
"0.6667": [0, 0, 0],
"0.8333": [0, 0, 0],
"0.875": [0, -0.75, 0],
"1.5833": [0, -0.75, 0],
"1.625": [0, 0, 0],
"1.7083": [0, 0, 0],
"1.75": [0, -0.75, 0]
}
},
"mouth_closed": {
"position": {
"0.8333": [0, 0, 0],
"0.875": {"pre": [0, 0, 0], "post": [0, -0.5, 0]},
"1.875": {"pre": [0, -0.5, 0], "post": [0, -0.5, 0]},
"1.9167": {"pre": [0, -0.5, 0], "post": [0, 0, 0]}
}
},
"mouth_lip_top": {
"position": {
"0.8333": [0, 0, 0],
"0.875": {"pre": [0, 0, 0], "post": [0, 0, 0.1]},
"1.875": {"pre": [0, 0, 0.1], "post": [0, 0, 0.1]},
"1.9167": {"pre": [0, 0, 0.1], "post": [0, 0, 0]}
}
},
"eyes_ditto": {
"position": {
"0.375": [0, 0, 0],
"0.4167": {"pre": [0, 0, 0], "post": [0, 0, 0.1]},
"0.625": {"pre": [0, 0, 0.1], "post": [0, 0, 0.1]},
"0.6667": {"pre": [0, 0, 0.1], "post": [0, 0, 0]},
"0.8333": {"pre": [0, 0, 0], "post": [0, 0, 0]},
"0.875": {"pre": [0, 0, 0], "post": [0, 0, 0.1]},
"1.5833": {"pre": [0, 0, 0.1], "post": [0, 0, 0]},
"1.75": {"pre": [0, 0, 0], "post": [0, 0, 0.1]}
},
"scale": {
"1.5833": [1, 1, 1],
"1.625": [1.4, 1.4, 3.3],
"1.7083": [1, 1, 1]
}
},
"eyes_blink_ditto": {
"position": {
"0.375": [0, 0, 0],
"0.4167": {"pre": [0, 0, 0], "post": [0, 0, -0.1]},
"0.625": {"pre": [0, 0, -0.1], "post": [0, 0, -0.1]},
"0.6667": {"pre": [0, 0, -0.1], "post": [0, 0, 0]},
"0.8333": {"pre": [0, 0, 0], "post": [0, 0, 0]},
"0.875": {"pre": [0, 0, 0], "post": [0, 0, -0.1]},
"1.5833": {"pre": [0, 0, -0.1], "post": [0, 0, 0]},
"1.75": {"pre": [0, 0, 0], "post": [0, 0, -0.1]}
}
},
"mouth_ditto": {
"position": {
"0.8333": [0, 0, 0],
"0.875": {"pre": [0, 0, 0], "post": [0, 0, 0.1]},
"1.875": {"pre": [0, 0, 0.1], "post": [0, 0, 0.1]},
"1.9167": {"pre": [0, 0, 0.1], "post": [0, 0, 0]}
}
},
"mouth_open_ditto": {
"position": {
"0.8333": [0, 0, 0],
"0.875": {"pre": [0, 0, 0], "post": [0, 0, -0.1]},
"1.875": {"pre": [0, 0, -0.1], "post": [0, 0, -0.1]},
"1.9167": {"pre": [0, 0, -0.1], "post": [0, 0, 0]}
}
}
}
},
"animation.tinkatink.blink": {
"animation_length": 0.16667,
"animation_length": 0.1667,
"bones": {
"eyelid_right": {
"position": {
"0.0": [0, 0, -0.1],
"0.125": [0, 0, -0.1],
"0.1667": [0, 0, 0]
"0.1667": {"pre": [0, 0, -0.1], "post": [0, 0, 0]}
}
},
"eyelid_left": {
"position": {
"0.0": [0, 0, -0.1],
"0.125": [0, 0, -0.1],
"0.1667": [0, 0, 0]
"0.1667": {"pre": [0, 0, -0.1], "post": [0, 0, 0]}
}
},
"brow_left": {
"position": {
"0.0": [0, 0, 0.1],
"0.1667": {"pre": [0, 0, 0.1], "post": [0, 0, 0]}
}
},
"brow_right": {
"position": {
"0.0": [0, 0, 0.1],
"0.1667": {"pre": [0, 0, 0.1], "post": [0, 0, 0]}
}
},
"eye_left": {
"position": {
"0.0": [0, 0, 0.1],
"0.1667": {"pre": [0, 0, 0.1], "post": [0, 0, 0]}
}
},
"eye_right": {
"position": {
"0.0": [0, 0, 0.1],
"0.1667": {"pre": [0, 0, 0.1], "post": [0, 0, 0]}
}
},
"eyes_ditto": {
"position": {
"0.0": [0, 0, 0.1],
"0.1667": {"pre": [0, 0, 0.1], "post": [0, 0, 0]}
}
},
"eyes_blink_ditto": {
"position": {
"0.0": [0, 0, -0.1],
"0.1667": {"pre": [0, 0, -0.1], "post": [0, 0, 0]}
}
}
}
@@ -823,38 +961,6 @@
"animation.tinkatink.cry": {
"animation_length": 1.5,
"bones": {
"neck": {
"rotation": {
"0.0": [0, 0, 0],
"0.25": [10, 0, 0],
"1.25": [10, 0, 0],
"1.5": [0, 0, 0]
}
},
"mouth": {
"position": {
"0.0": [0, 0, 0],
"0.25": [0, -2, 0],
"1.25": [0, -2, 0],
"1.5": [0, 0, 0]
}
},
"mouth2": {
"position": {
"0.0": [0, 0, 0],
"0.25": [0, -5, 0],
"1.25": [0, -5, 0],
"1.5": [0, 0, 0]
}
},
"jaw": {
"position": {
"0.0": [0, 0, 0],
"0.25": [0, -3, 0],
"1.25": [0, -3, 0],
"1.5": [0, 0, 0]
}
},
"head": {
"rotation": {
"0.0": [0, 0, 0],
@@ -863,60 +969,12 @@
"1.5": [0, 0, 0]
}
},
"head2": {
"rotation": {
"0.0": [0, 0, 0],
"0.25": [-15, 0, 0],
"1.25": [-15, 0, 0],
"1.5": [0, 0, 0]
}
},
"mouth_closed2": {
"position": {
"0.25": [0, 0, -0.1],
"0.3333": [0, 0, 0],
"1.1667": [0, 0, 0],
"1.25": [0, 0, -0.1]
}
},
"mouth_open2": {
"position": {
"0.0": [0, 0, 0.1],
"0.25": [0, 0, 0],
"1.25": [0, 0, 0],
"1.5": [0, 0, 0.1]
}
},
"head3": {
"rotation": {
"0.0": [0, 0, 0],
"0.25": [-15, 0, 0],
"1.25": [-15, 0, 0],
"1.5": [0, 0, 0]
}
},
"mouth_closed3": {
"position": {
"0.25": [0, 0, -0.1],
"0.3333": [0, 0, 0],
"1.1667": [0, 0, 0],
"1.25": [0, 0, -0.1]
}
},
"mouth_open3": {
"position": {
"0.0": [0, 0, 0.1],
"0.25": [0, 0, 0],
"1.25": [0, 0, 0],
"1.5": [0, 0, 0.1]
}
},
"mouth_open": {
"mouth_open_cry": {
"position": {
"0.0833": [0, 0, 0],
"0.1667": [0, 0, -0.15],
"1.25": [0, 0, -0.15],
"1.3333": [0, 0, 0]
"0.1667": {"pre": [0, 0, 0], "post": [0, 0, -0.1]},
"1.25": {"pre": [0, 0, -0.1], "post": [0, 0, -0.1]},
"1.3333": {"pre": [0, 0, -0.1], "post": [0, 0, 0]}
}
},
"arm_left": {
@@ -948,10 +1006,38 @@
"1.25": [0, 0, -2.4],
"1.5": [0, 0, 0]
}
},
"mouth_closed": {
"position": {
"0.0": [0, 0, 0],
"0.1667": {"pre": [0, 0, 0], "post": [0, -0.5, 0]},
"1.3333": {"pre": [0, -0.5, 0], "post": [0, 0, 0]}
}
},
"mouth_lip_top": {
"position": {
"0.0": [0, 0, 0],
"0.1667": {"pre": [0, 0, 0], "post": [0, 0, 0.1]},
"1.3333": {"pre": [0, 0, 0.1], "post": [0, 0, 0]}
}
},
"mouth_ditto": {
"position": {
"0.0": [0, 0, 0],
"0.1667": {"pre": [0, 0, 0], "post": [0, 0, 0.1]},
"1.3333": {"pre": [0, 0, 0.1], "post": [0, 0, 0]}
}
},
"mouth_open_ditto": {
"position": {
"0.0": [0, 0, 0],
"0.1667": {"pre": [0, 0, 0], "post": [0, 0, -0.1]},
"1.3333": {"pre": [0, 0, -0.1], "post": [0, 0, 0]}
}
}
},
"sound_effects": {
"0.25": {
"0.0": {
"effect": "pokemon.tinkatink.cry"
}
}
@@ -1062,6 +1148,128 @@
"rotation": [0, 0, 32.5]
}
}
},
"animation.tinkatink.ditto_face": {
"loop": true,
"bones": {
"face": {
"position": [0, 0, 0.1],
"scale": 0
},
"face_ditto": {
"position": [0, 0, -0.1]
}
}
},
"animation.tinkatink.happy": {
"loop": true,
"bones": {
"brow_left": {
"position": [0, 0, 0.1]
},
"brow_right": {
"position": [0, 0, 0.1]
},
"eye_left": {
"position": [0, 0, 0.1]
},
"eye_right": {
"position": [0, 0, 0.1]
},
"mouth_closed": {
"position": [0, 0, 0.1]
},
"mouth_lip_top": {
"position": [0, 0, 0.1]
},
"mouth_open_happy": {
"position": [0, 0, -0.1]
},
"eyelid_happy_left": {
"position": [0, 0, -0.1]
},
"eyelid_happy_right": {
"position": [0, 0, -0.1]
}
}
},
"animation.tinkatink.angry": {
"loop": true,
"bones": {
"eye_emote_left": {
"scale": [1, 0.5, 1]
},
"eye_emote_right": {
"scale": [1, 0.5, 1]
},
"eye_emote_left2": {
"position": [0.25, 0, 0],
"scale": [0.5, 1, 1]
},
"eye_emote_right2": {
"position": [-0.25, 0, 0],
"scale": [0.5, 1, 1]
}
}
},
"animation.tinkatink.very_sad": {
"loop": true,
"bones": {
"eye_emote_left": {
"scale": [1, 0.5, 1]
},
"eye_emote_right": {
"scale": [1, 0.5, 1]
},
"eye_emote_left2": {
"position": [-0.25, 0, 0],
"scale": [0.5, 1, 1]
},
"eye_emote_right2": {
"position": [0.25, 0, 0],
"scale": [0.5, 1, 1]
}
}
},
"animation.tinkatink.hurt": {
"loop": true,
"bones": {
"brow_left": {
"position": [0, 0, 0.1]
},
"brow_right": {
"position": [0, 0, 0.1]
},
"eye_left": {
"position": [0, 0, 0.1]
},
"eye_right": {
"position": [0, 0, 0.1]
},
"eyelid_hurt_left": {
"position": [0, 0, -0.1]
},
"eyelid_hurt_right": {
"position": [0, 0, -0.1]
}
}
},
"animation.tinkatink.disinterested": {
"loop": true,
"bones": {
"eye_emote_left": {
"scale": [1, 0.5, 1]
},
"eye_emote_right": {
"scale": [1, 0.5, 1]
},
"eye_emote_left2": {
"position": [0, 0, 0.1]
},
"eye_emote_right2": {
"position": [0, 0, 0.1]
}
}
}
}
}
@@ -4,12 +4,6 @@
"animation.tinkatuff.ground_idle": {
"loop": true,
"bones": {
"tail": {
"rotation": [12.5, 0, 0]
},
"tail2": {
"rotation": [12.5, 0, 0]
},
"arm_right": {
"rotation": [55.98303, 0.22836, "-40.7651+Math.cos((query.anim_time) * 90 * 2 - 120) * 1"],
"position": [-0.25, -0.5, 0]
@@ -21,7 +15,8 @@
"rotation": [0, 0, -5]
},
"finger_right2": {
"rotation": [0, -10, 37.5]
"rotation": [0, -17.5, 37.5],
"position": [-0.25, 0, 0]
},
"arm_left": {
"rotation": [-84.39003, 4.58778, "53.5046+Math.cos((query.anim_time) * 90 * 2 - 120) * 1"]
@@ -30,17 +25,11 @@
"rotation": [0, -15, 55]
},
"finger_left": {
"rotation": [0, 0, -25]
"rotation": [0, 0, -40]
},
"finger_left2": {
"rotation": [20, 0, 0]
},
"hand_left": {
"rotation": [0, 17.5, 0]
},
"hand_right": {
"rotation": [0, -17.5, 0]
},
"leg_left": {
"rotation": [0, -12.5, -5]
},
@@ -48,7 +37,7 @@
"rotation": [0, 12.5, 5]
},
"finger_left3": {
"rotation": [0, 0, 57.5]
"rotation": [0, 0, 67.5]
},
"finger_right3": {
"rotation": [0, 0, -20]
@@ -78,9 +67,6 @@
"head": {
"rotation": ["12.5+Math.cos((query.anim_time) * 90 * 2 - 50) * 2", 0, 0]
},
"mouth_closed": {
"position": [0, 0, 0]
},
"ponytail": {
"rotation": ["0+Math.cos((query.anim_time) * 90 * 2 - 120) * 1", 0, 0]
},
@@ -187,10 +173,24 @@
}
},
"finger_right2": {
"rotation": [7.5, 0, 10]
"rotation": [7.5, 0, 42.5],
"position": [-0.25, 0.25, 0]
},
"finger_right3": {
"rotation": [-0.88045, -9.96156, 5.07673]
},
"finger_left": {
"rotation": [0, 0, -55],
"position": [0, 0.5, 0]
},
"finger_left2": {
"rotation": [0, 0, -17.5]
},
"finger_left3": {
"rotation": [0, 0, 22.5]
},
"finger_right": {
"rotation": [0, 0, 20]
}
}
},
@@ -210,7 +210,7 @@
"rotation": [-15, -2.5, 62.5]
},
"finger_left3": {
"rotation": [0, 0, 52.5]
"rotation": [0, 0, 22.5]
},
"arm_right": {
"rotation": [22.5, -10, -35],
@@ -299,18 +299,29 @@
},
"arm_hammer_right2": {
"rotation": [0, -70, 0]
},
"finger_left": {
"rotation": [0, 0, -52.5],
"position": [0, 0.75, 0]
},
"finger_left2": {
"rotation": [0, 0, -15]
},
"finger_right": {
"rotation": [0, 0, 20]
},
"finger_right2": {
"rotation": [7.5, 0, 37.5],
"position": [-0.25, 0.25, 0]
},
"finger_right3": {
"rotation": [0, 0, -32.5]
}
}
},
"animation.tinkatuff.battle_idle": {
"loop": true,
"bones": {
"tail": {
"rotation": [12.5, 0, 0]
},
"tail2": {
"rotation": [12.5, 0, 0]
},
"arm_right": {
"rotation": [40.98303, 0.22836, "-45.7651+Math.cos((query.anim_time) * 90 * 2 - 40) * 2"]
},
@@ -318,7 +329,8 @@
"rotation": [0, -52.5, 0]
},
"finger_right": {
"rotation": [0, 0, -5]
"rotation": [0, 0, 37.5],
"position": [0, 0.25, 0]
},
"finger_right2": {
"rotation": [0, 0, 37.5]
@@ -330,17 +342,12 @@
"rotation": [0, 0, "55+Math.cos((query.anim_time) * 90 * 2 - 40) * -2"]
},
"finger_left": {
"rotation": [0, 0, -25]
"rotation": [0, 0, -47.5],
"position": [0, 0.5, 0]
},
"finger_left2": {
"rotation": [20, 0, 0]
},
"hand_left": {
"rotation": [0, 17.5, 0]
},
"hand_right": {
"rotation": [0, -17.5, 0]
},
"leg_left": {
"rotation": ["-11.2025+Math.cos((query.anim_time) * 90 * 2) * 3", -21.49336, -9.33448]
},
@@ -348,10 +355,11 @@
"rotation": ["-13.5954+Math.cos((query.anim_time) * 90 * 2) * 3", 22.38126, 10.45107]
},
"finger_left3": {
"rotation": [0, 0, 57.5]
"rotation": [0, 0, 42.5],
"position": [-0.5, -0.25, 0]
},
"finger_right3": {
"rotation": [0, 0, -20]
"rotation": [0, 0, -40]
},
"hammer": {
"rotation": [-12.18122, -2.58318, 113.79667]
@@ -416,7 +424,8 @@
"position": [-0.5, 0, 0]
},
"hammer": {
"rotation": [15, 0, 0]
"rotation": [15, 0, 0],
"position": [0, 0.5, 3.75]
},
"hammer2": {
"rotation": ["90+Math.cos((query.anim_time) * 90 * 1) * -1", 0, 0],
@@ -456,43 +465,18 @@
},
"leg_right": {
"rotation": [-90, 20, 0]
},
"eyes_ditto": {
"position": [0, 0, 0.1]
},
"eyes_blink_ditto": {
"position": [0, 0, -0.1]
}
}
},
"animation.tinkatuff.faint": {
"animation_length": 3,
"bones": {
"arm_right": {
"rotation": {
"0.0": [40.98303, 0.22836, -45.7651],
"0.2083": [5.98, 0.23, -45.77],
"0.2917": [35.98, 0.23, -45.77],
"0.75": [18.48, 5.23, -23.27],
"0.9167": [60.98, -12.27, -35.77],
"1.2083": [30.98, -59.77, -35.77],
"1.3333": [32.05, -62.98, -35.77],
"1.5": [33.48, -67.27, -35.77],
"1.8333": [15.98, -79.77, -35.77],
"1.9167": [67.65, -129.77, -110.77],
"1.9583": [93.48, -154.77, -148.27],
"2.0833": [93.48, -174.77, -168.27],
"2.3333": [93.48, -169.77, -168.27]
}
},
"arm_right2": {
"rotation": {
"0.0": [0, -52.5, 0],
"1.0": [0, -52.5, 0],
"1.2083": [0, -57.5, 0],
"1.5": [0, -30, 0]
}
},
"finger_right": {
"rotation": [0, 0, -5]
},
"finger_right2": {
"rotation": [0, 0, 37.5]
},
"arm_left": {
"rotation": {
"0.0": [-84.39003, 24.58778, 53.5046],
@@ -547,30 +531,9 @@
"2.375": [-30.37, 0, -5]
}
},
"leg_right": {
"rotation": {
"0.0": [-13.6, 22.38, 10.45],
"0.1667": [-31.1, 22.38, 10.45],
"0.25": [-26.1, 22.38, 10.45],
"0.5": [-3.6, 22.38, 10.45],
"0.7917": [6.4, 22.38, 10.45],
"0.9167": [-31.1, 22.38, 10.45],
"1.2083": [-31.1, 42.38, 10.45],
"1.375": [-30, 0, 0],
"1.6667": [-30, 0, 5],
"1.875": [70, 0, 5],
"2.0417": [40.36, 0, 5],
"2.1667": [-30, 0, 5],
"2.25": [-45, 0, 5],
"2.375": [-35, 0, 5]
}
},
"finger_left3": {
"rotation": [0, 0, 57.5]
},
"finger_right3": {
"rotation": [0, 0, -20]
},
"hammer": {
"rotation": {
"0.0": [-0.78, -6.26, 38.97],
@@ -593,9 +556,6 @@
"skirt_left": {
"rotation": [0, 0, -15]
},
"skirt_right": {
"rotation": [-10, 0, 15]
},
"leg_left2": {
"rotation": {
"0.0": [20, 0, 0],
@@ -611,18 +571,6 @@
"2.0417": [15, 0, 0]
}
},
"leg_right2": {
"rotation": {
"0.0": [15, 0, -10],
"0.1667": [35, 0, -10],
"0.25": [-10, 0, -10],
"0.5": [27.5, 0, 5],
"0.7917": [5, 0, 5],
"0.9167": [35, 0, 5],
"1.375": [35, 0, 0],
"1.6667": [22.5, 0, 0]
}
},
"body": {
"rotation": {
"0.9167": [0, 0, 0],
@@ -851,134 +799,519 @@
},
"eyelid_left": {
"position": {
"0.2083": [0, 0, 0],
"0.25": [0, 0, -0.15],
"0.375": [0, 0, -0.15],
"0.4167": [0, 0, 0],
"0.9167": [0, 0, 0],
"0.9583": [0, 0, -0.15],
"1.75": [0, 0, -0.15],
"1.7917": [0, 0, 0],
"2.0": [0, 0, 0],
"2.0417": [0, 0, -0.15]
"0.0": [0, 0, 0],
"0.25": {
"pre": [0, 0, 0],
"post": [0, 0, -0.1]
},
"0.4167": {
"pre": [0, 0, -0.1],
"post": [0, 0, 0]
},
"0.9583": {
"pre": [0, 0, 0],
"post": [0, 0, -0.1]
},
"1.7917": {
"pre": [0, 0, -0.1],
"post": [0, 0, 0]
},
"2.0417": {
"pre": [0, 0, 0],
"post": [0, 0, -0.1]
}
}
},
"mouth_top": {
"position": {
"0.0": [0, 0, 0],
"0.25": {
"pre": [0, 0, 0],
"post": [0, 0.5, 0]
},
"0.9167": {
"pre": [0, 0.5, 0],
"post": [0, 0, 0]
},
"1.2917": {
"pre": [0, 0, 0],
"post": [0, 0.5, 0]
},
"2.0417": {
"pre": [0, 0.5, 0],
"post": [0, 0, 0]
}
}
},
"eyelid_right": {
"position": {
"0.2083": [0, 0, 0],
"0.25": [0, 0, -0.15],
"0.375": [0, 0, -0.15],
"0.4167": [0, 0, 0],
"0.9167": [0, 0, 0],
"0.9583": [0, 0, -0.15],
"1.75": [0, 0, -0.15],
"1.7917": [0, 0, 0],
"2.0": [0, 0, 0],
"2.0417": [0, 0, -0.15]
"0.0": [0, 0, 0],
"0.25": {
"pre": [0, 0, 0],
"post": [0, 0, -0.1]
},
"0.4167": {
"pre": [0, 0, -0.1],
"post": [0, 0, 0]
},
"0.9583": {
"pre": [0, 0, 0],
"post": [0, 0, -0.1]
},
"1.7917": {
"pre": [0, 0, -0.1],
"post": [0, 0, 0]
},
"2.0417": {
"pre": [0, 0, 0],
"post": [0, 0, -0.1]
}
}
},
"mouth_open": {
"position": {
"0.2083": [0, 0, 0],
"0.25": [0, 0, -0.15],
"0.875": [0, 0, -0.15],
"0.9167": [0, 0, 0],
"1.25": [0, 0, 0],
"1.2917": [0, 0, -0.15],
"2.0": [0, 0, -0.15],
"2.0417": [0, 0, 0]
"0.0": [0, 0, 0],
"0.25": {
"pre": [0, 0, 0],
"post": [0, 0, -0.1]
},
"0.9167": {
"pre": [0, 0, -0.1],
"post": [0, 0, 0]
},
"1.2917": {
"pre": [0, 0, 0],
"post": [0, 0, -0.1]
},
"2.0417": {
"pre": [0, 0, -0.1],
"post": [0, 0, 0]
}
}
},
"mouth_closed": {
"position": {
"0.2083": [0, 0, 0],
"0.25": [0, 0, 0.1],
"0.875": [0, 0, 0.1],
"0.9167": [0, 0, 0],
"1.25": [0, 0, 0],
"1.2917": [0, 0, 0.1],
"2.0": [0, 0, 0.1],
"2.0417": [0, 0, 0]
}
}
}
},
"animation.tinkatuff.blink": {
"animation_length": 0.16667,
"bones": {
"eyelid_right": {
"position": {
"0.0": [0, 0, -0.1],
"0.125": [0, 0, -0.1],
"0.1667": [0, 0, 0]
"arm_right": {
"rotation": {
"0.0": [40.98303, 0.22836, -45.7651],
"0.2083": [5.98, 0.23, -45.77],
"0.2917": [35.98, 0.23, -45.77],
"0.75": [18.48, 5.23, -23.27],
"0.9167": [60.98, -12.27, -35.77],
"1.2083": [30.98, -59.77, -35.77],
"1.3333": [32.05, -62.98, -35.77],
"1.5": [33.48, -67.27, -35.77],
"1.8333": [15.98, -79.77, -35.77],
"1.9167": [67.65, -129.77, -110.77],
"1.9583": [93.48, -154.77, -148.27],
"2.0833": [93.48, -174.77, -168.27],
"2.3333": [93.48, -169.77, -168.27]
}
},
"eyelid_left": {
"arm_right2": {
"rotation": {
"0.0": [0, -52.5, 0],
"1.0": [0, -52.5, 0],
"1.2083": [0, -57.5, 0],
"1.5": [0, -30, 0]
}
},
"finger_right": {
"rotation": [0, 0, -5]
},
"finger_right2": {
"rotation": [0, 0, 37.5]
},
"finger_right3": {
"rotation": [0, 0, -20]
},
"skirt_right": {
"rotation": [-10, 0, 15]
},
"leg_right": {
"rotation": {
"0.0": [-13.6, 22.38, 10.45],
"0.1667": [-31.1, 22.38, 10.45],
"0.25": [-26.1, 22.38, 10.45],
"0.5": [-3.6, 22.38, 10.45],
"0.7917": [6.4, 22.38, 10.45],
"0.9167": [-31.1, 22.38, 10.45],
"1.2083": [-31.1, 42.38, 10.45],
"1.375": [-30, 0, 0],
"1.6667": [-30, 0, 5],
"1.875": [70, 0, 5],
"2.0417": [40.36, 0, 5],
"2.1667": [-30, 0, 5],
"2.25": [-45, 0, 5],
"2.375": [-35, 0, 5]
}
},
"leg_right2": {
"rotation": {
"0.0": [15, 0, -10],
"0.1667": [35, 0, -10],
"0.25": [-10, 0, -10],
"0.5": [27.5, 0, 5],
"0.7917": [5, 0, 5],
"0.9167": [35, 0, 5],
"1.375": [35, 0, 0],
"1.6667": [22.5, 0, 0]
}
},
"brow_left": {
"position": {
"0.0": [0, 0, -0.1],
"0.125": [0, 0, -0.1],
"0.1667": [0, 0, 0]
"0.0": [0, 0, 0],
"0.25": {
"pre": [0, 0, 0],
"post": [0, 0, 0.1]
},
"0.4167": {
"pre": [0, 0, 0.1],
"post": [0, 0, 0]
},
"0.9583": {
"pre": [0, 0, 0],
"post": [0, 0, 0.1]
},
"1.7917": {
"pre": [0, 0, 0.1],
"post": [0, 0, 0]
},
"2.0417": {
"pre": [0, 0, 0],
"post": [0, 0, 0.1]
}
}
},
"brow_right": {
"position": {
"0.0": [0, 0, 0],
"0.25": {
"pre": [0, 0, 0],
"post": [0, 0, 0.1]
},
"0.4167": {
"pre": [0, 0, 0.1],
"post": [0, 0, 0]
},
"0.9583": {
"pre": [0, 0, 0],
"post": [0, 0, 0.1]
},
"1.7917": {
"pre": [0, 0, 0.1],
"post": [0, 0, 0]
},
"2.0417": {
"pre": [0, 0, 0],
"post": [0, 0, 0.1]
}
}
},
"mouth_bottom": {
"position": {
"0.0": [0, 0, 0],
"0.25": {
"pre": [0, 0, 0],
"post": [0, -0.5, 0]
},
"0.9167": {
"pre": [0, -0.5, 0],
"post": [0, 0, 0]
},
"1.2917": {
"pre": [0, 0, 0],
"post": [0, -0.5, 0]
},
"2.0417": {
"pre": [0, -0.5, 0],
"post": [0, 0, 0]
}
}
},
"eye_emote_left": {
"position": {
"0.0": [0, 0, 0],
"0.25": {
"pre": [0, 0, 0],
"post": [0, 0, 0.1]
},
"0.4167": {
"pre": [0, 0, 0.1],
"post": [0, 0, 0]
},
"0.9583": {
"pre": [0, 0, 0],
"post": [0, 0, 0.1]
},
"1.7917": {
"pre": [0, 0, 0.1],
"post": [0, 0, 0]
},
"2.0417": {
"pre": [0, 0, 0],
"post": [0, 0, 0.1]
}
}
},
"eye_emote_right": {
"position": {
"0.0": [0, 0, 0],
"0.25": {
"pre": [0, 0, 0],
"post": [0, 0, 0.1]
},
"0.4167": {
"pre": [0, 0, 0.1],
"post": [0, 0, 0]
},
"0.9583": {
"pre": [0, 0, 0],
"post": [0, 0, 0.1]
},
"1.7917": {
"pre": [0, 0, 0.1],
"post": [0, 0, 0]
},
"2.0417": {
"pre": [0, 0, 0],
"post": [0, 0, 0.1]
}
}
},
"eyes_ditto": {
"position": {
"0.0": [0, 0, 0],
"0.25": {
"pre": [0, 0, 0],
"post": [0, 0, 0.1]
},
"0.4167": {
"pre": [0, 0, 0.1],
"post": [0, 0, 0]
},
"0.9583": {
"pre": [0, 0, 0],
"post": [0, 0, 0.1]
},
"1.7917": {
"pre": [0, 0, 0.1],
"post": [0, 0, 0]
},
"2.0417": {
"pre": [0, 0, 0],
"post": [0, 0, 0.1]
}
}
},
"eyes_blink_ditto": {
"position": {
"0.0": [0, 0, 0],
"0.25": {
"pre": [0, 0, 0],
"post": [0, 0, -0.1]
},
"0.4167": {
"pre": [0, 0, -0.1],
"post": [0, 0, 0]
},
"0.9583": {
"pre": [0, 0, 0],
"post": [0, 0, -0.1]
},
"1.7917": {
"pre": [0, 0, -0.1],
"post": [0, 0, 0]
},
"2.0417": {
"pre": [0, 0, 0],
"post": [0, 0, -0.1]
}
}
},
"mouth_ditto": {
"position": {
"0.0": [0, 0, 0],
"0.25": {
"pre": [0, 0, 0],
"post": [0, 0, 0.1]
},
"0.9167": {
"pre": [0, 0, 0.1],
"post": [0, 0, 0]
},
"1.2917": {
"pre": [0, 0, 0],
"post": [0, 0, 0.1]
},
"2.0417": {
"pre": [0, 0, 0.1],
"post": [0, 0, 0]
}
}
},
"mouth_open_ditto": {
"position": {
"0.0": [0, 0, 0],
"0.25": {
"pre": [0, 0, 0],
"post": [0, 0, -0.1]
},
"0.9167": {
"pre": [0, 0, -0.1],
"post": [0, 0, 0]
},
"1.2917": {
"pre": [0, 0, 0],
"post": [0, 0, -0.1]
},
"2.0417": {
"pre": [0, 0, -0.1],
"post": [0, 0, 0]
}
}
}
}
},
"animation.tinkatuff.cry": {
"animation_length": 0.91667,
"animation_length": 1.5,
"bones": {
"head": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [-15, 0, 0],
"lerp_mode": "catmullrom"
},
"0.6667": {
"post": [-15, 0, 0],
"lerp_mode": "catmullrom"
},
"0.9167": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
},
"mouth_closed": {
"position": {
"0.25": [0, 0, 0],
"0.3333": [0, 0, 0.1],
"0.5833": [0, 0, 0.1],
"0.6667": [0, 0, 0]
"0.0": [0, 0, 0],
"0.25": [-15, 0, 0],
"1.25": [-15, 0, 0],
"1.5": [0, 0, 0]
}
},
"mouth_open": {
"position": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [0, 0, -0.1],
"lerp_mode": "catmullrom"
},
"0.6667": {
"post": [0, 0, -0.1],
"lerp_mode": "catmullrom"
},
"0.9167": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
"0.0": [0, 0, 0],
"0.25": {"pre": [0, 0, 0], "post": [0, 0, -0.1]},
"1.3333": {"pre": [0, 0, -0.1], "post": [0, 0, 0]}
}
},
"mouth_top": {
"position": {
"0.0": [0, 0, 0],
"0.25": {"pre": [0, 0, 0], "post": [0, 0.5, 0]},
"1.3333": {"pre": [0, 0.5, 0], "post": [0, 0, 0]}
}
},
"mouth_bottom": {
"position": {
"0.0": [0, 0, 0],
"0.25": {"pre": [0, 0, 0], "post": [0, -0.5, 0]},
"1.3333": {"pre": [0, -0.5, 0], "post": [0, 0, 0]}
}
},
"mouth_ditto": {
"position": {
"0.0": [0, 0, 0],
"0.25": {"pre": [0, 0, 0], "post": [0, 0, 0.1]},
"1.3333": {"pre": [0, 0, 0.1], "post": [0, 0, 0]}
}
},
"mouth_open_ditto": {
"position": {
"0.0": [0, 0, 0],
"0.25": {"pre": [0, 0, 0], "post": [0, 0, -0.1]},
"1.3333": {"pre": [0, 0, -0.1], "post": [0, 0, 0]}
}
}
},
"sound_effects": {
"0.1667": {
"0.0": {
"effect": "pokemon.tinkatuff.cry"
}
}
},
"animation.tinkatuff.blink": {
"animation_length": 0.1667,
"bones": {
"eyelid_right": {
"position": {
"0.0": [0, 0, -0.1],
"0.1667": {
"pre": [0, 0, -0.1],
"post": [0, 0, 0]
}
}
},
"eyelid_left": {
"position": {
"0.0": [0, 0, -0.1],
"0.1667": {
"pre": [0, 0, -0.1],
"post": [0, 0, 0]
}
}
},
"brow_left": {
"position": {
"0.0": [0, 0, 0.1],
"0.1667": {
"pre": [0, 0, 0.1],
"post": [0, 0, 0]
}
}
},
"brow_right": {
"position": {
"0.0": [0, 0, 0.1],
"0.1667": {
"pre": [0, 0, 0.1],
"post": [0, 0, 0]
}
}
},
"eye_left": {
"position": {
"0.0": [0, 0, 0.1],
"0.1667": {
"pre": [0, 0, 0.1],
"post": [0, 0, 0]
}
}
},
"eye_right": {
"position": {
"0.0": [0, 0, 0.1],
"0.1667": {
"pre": [0, 0, 0.1],
"post": [0, 0, 0]
}
}
},
"eyes_ditto": {
"position": {
"0.0": [0, 0, 0.1],
"0.1667": {
"pre": [0, 0, 0.1],
"post": [0, 0, 0]
}
}
},
"eyes_blink_ditto": {
"position": {
"0.0": [0, 0, -0.1],
"0.1667": {
"pre": [0, 0, -0.1],
"post": [0, 0, 0]
}
}
}
}
},
"animation.tinkatuff.ditto_face": {
"loop": true,
"bones": {
"face": {
"position": [0, 0, 0.1],
"scale": 0
},
"face_ditto": {
"position": [0, 0, -0.1]
}
}
}
}
}
@@ -6,7 +6,7 @@
"identifier": "geometry.aerodactyl",
"texture_width": 256,
"texture_height": 256,
"visible_bounds_width": 12,
"visible_bounds_width": 13,
"visible_bounds_height": 3.5,
"visible_bounds_offset": [0, 1.25, 0]
},
@@ -1161,6 +1161,17 @@
{"origin": [6.5, -3.6, 5.25], "size": [1, 1, 1], "inflate": 0.25, "uv": [112, 82]}
]
},
{
"name": "entity_hook",
"parent": "left_upper_leg",
"pivot": [7, 14.65, 0],
"locators": {
"entity_hook": {
"offset": [3, -1, 8],
"rotation": [0, 45, -90]
}
}
},
{
"name": "right_upper_leg",
"parent": "body",
@@ -90,7 +90,7 @@
"parent": "chest",
"pivot": [0, 17, -5],
"cubes": [
{"origin": [-2.75, 16, -7.5], "size": [5.5, 5, 5], "uv": [22, 0]},
{"origin": [-2.25, 16, -7.5], "size": [5, 5, 5], "uv": [22, 0]},
{"origin": [0, 18, -2.5], "size": [0, 4, 2], "uv": [30, 37]}
]
},
@@ -486,7 +486,7 @@
"parent": "eye_left",
"pivot": [4.2, 34.1, -10.53],
"cubes": [
{"origin": [4.98, 33.99, -10.53], "size": [3, 1, 1], "inflate": 0.01, "uv": [132, 116]}
{"origin": [4.98, 34, -10.53], "size": [3, 1, 1], "inflate": 0.01, "uv": [132, 116]}
]
},
{
@@ -782,7 +782,7 @@
"parent": "eye_right",
"pivot": [-4.2, 34.1, -10.53],
"cubes": [
{"origin": [-7.98, 33.99, -10.53], "size": [3, 1, 1], "inflate": 0.01, "uv": [140, 116]}
{"origin": [-7.98, 34, -10.53], "size": [3, 1, 1], "inflate": 0.01, "uv": [140, 116]}
]
},
{
@@ -15,18 +15,58 @@
"name": "tinkatink",
"pivot": [0, 0, 0]
},
{
"name": "locator_root",
"parent": "tinkatink",
"pivot": [0, 0, 0],
"locators": {
"root": [0, 0, 0]
}
},
{
"name": "locator_top",
"parent": "tinkatink",
"pivot": [0, 14, 0],
"locators": {
"top": [0, 14, 0]
}
},
{
"name": "locator_special",
"parent": "tinkatink",
"pivot": [0, 6, -7],
"locators": {
"special": [0, 6, -7]
}
},
{
"name": "body",
"parent": "tinkatink",
"pivot": [0, 3.75, 0]
},
{
"name": "locator_target",
"parent": "body",
"pivot": [0, 6, -6],
"locators": {
"target": [0, 6, -6]
}
},
{
"name": "locator_middle",
"parent": "body",
"pivot": [0, 6, 0],
"locators": {
"middle": [0, 6, 0]
}
},
{
"name": "torso",
"parent": "body",
"pivot": [0, 1.75, -0.25],
"pivot": [0, 2.5, -0.25],
"cubes": [
{"origin": [-2, 1.5, -2], "size": [4, 3, 4], "uv": [0, 12]},
{"origin": [-1, 2, -2.75], "size": [2, 2, 1], "pivot": [0, 3, -2.25], "rotation": [0, 0, 45], "uv": [12, 12]}
{"origin": [-1.5, 2, -1.5], "size": [3, 3, 3], "uv": [30, 6]},
{"origin": [-1, 1.5, -2.5], "size": [2, 2, 1], "pivot": [0, 2.5, -2], "rotation": [0, 0, 45], "uv": [47, 12]}
]
},
{
@@ -34,199 +74,509 @@
"parent": "torso",
"pivot": [0, 4.25, -0.25],
"cubes": [
{"origin": [-3.5, 4.25, -3.25], "size": [7, 6, 6], "uv": [0, 0]}
{"origin": [-4, 4.25, -3.75], "size": [8, 7, 7], "uv": [0, 0]}
]
},
{
"name": "hair3",
"name": "locator_item_hat",
"parent": "head",
"pivot": [0, 10.25, -0.25],
"rotation": [-5, 0, 0],
"cubes": [
{"origin": [-2.5, 10.25, -3.25], "size": [5, 0, 3], "uv": [11, 21]}
]
"pivot": [0, 12.25, -0.25],
"locators": {
"item_hat": [0, 12.25, -0.25]
}
},
{
"name": "hair4",
"parent": "hair3",
"pivot": [0, 10.25, -3.25],
"rotation": [-15, 0, 0],
"cubes": [
{"origin": [-2.5, 8.25, -3.25], "size": [5, 2, 0], "uv": [43, 0]}
]
},
{
"name": "eye_right",
"name": "locator_head",
"parent": "head",
"pivot": [-2.75, 6.5, -2.76],
"rotation": [0, 0, -5],
"pivot": [0, 11.25, -3.25],
"locators": {
"head": [0, 11.25, -3.25]
}
},
{
"name": "locator_mouth",
"parent": "head",
"pivot": [0, 5.7, -3.75],
"locators": {
"mouth": [0, 5.7, -3.75]
}
},
{
"name": "locator_item_face",
"parent": "head",
"pivot": [0, 8.25, -3.75],
"locators": {
"item_face": [0, 8.25, -3.75]
}
},
{
"name": "locator_face",
"parent": "head",
"pivot": [0, 7.25, -3.75],
"locators": {
"face": [0, 7.25, -3.75]
}
},
{
"name": "face_ditto",
"parent": "head",
"pivot": [0, 7, -3.65]
},
{
"name": "eyes_ditto",
"parent": "face_ditto",
"pivot": [0, 7.75, -3.67],
"cubes": [
{"origin": [-2.75, 6, -3.26], "size": [1, 2, 1], "uv": [51, 2]}
{"origin": [-3, 7.25, -3.67], "size": [6, 1, 0], "uv": [51, 23]}
]
},
{
"name": "eyelid_right",
"parent": "eye_right",
"pivot": [-0.5, 3.5, -0.15],
"name": "eyes_blink_ditto",
"parent": "face_ditto",
"pivot": [0, 7.75, -3.57],
"cubes": [
{"origin": [-2.75, 6, -3.16], "size": [1, 2, 1], "inflate": 0.01, "uv": [47, 2]}
{"origin": [-3.5, 7.25, -3.57], "size": [7, 1, 0], "uv": [49, 27]},
{"origin": [-3, 7.75, -3.58], "size": [6, 1, 0], "uv": [51, 21]}
]
},
{
"name": "mouth_ditto",
"parent": "face_ditto",
"pivot": [0, 6, -3.65],
"cubes": [
{"origin": [-2.5, 5.25, -3.66], "size": [5, 1, 0], "uv": [53, 19]},
{"origin": [-3.5, 5.75, -3.66], "size": [7, 1, 0], "uv": [49, 25]}
]
},
{
"name": "mouth_open_ditto",
"parent": "face_ditto",
"pivot": [0, 5.75, -3.56],
"cubes": [
{"origin": [-3.5, 4.75, -3.56], "size": [7, 2, 0], "uv": [49, 29]}
]
},
{
"name": "face",
"parent": "head",
"pivot": [0, 6.75, -3.75]
},
{
"name": "eyes",
"parent": "face",
"pivot": [0, 6.75, -3.26]
},
{
"name": "brow_left",
"parent": "eyes",
"pivot": [2.25, 8.5, -3.25],
"cubes": [
{"origin": [1.75, 8, -3.75], "size": [1, 1, 1], "inflate": 0.01, "pivot": [2.25, 8.5, -3.25], "rotation": [0, 0, 5], "uv": [32, 29]}
]
},
{
"name": "brow_right",
"parent": "eyes",
"pivot": [-2.25, 8.5, -3.25],
"cubes": [
{"origin": [-2.75, 8, -3.75], "size": [1, 1, 1], "inflate": 0.01, "pivot": [-2.25, 8.5, -3.25], "rotation": [0, 0, -5], "uv": [32, 25]}
]
},
{
"name": "eye_left",
"parent": "head",
"pivot": [2.75, 6.5, -2.76],
"rotation": [0, 0, 5],
"parent": "eyes",
"pivot": [2.5, 7.75, -3.26],
"cubes": [
{"origin": [1.75, 6, -3.26], "size": [1, 2, 1], "uv": [26, 7]}
{"origin": [2, 6.75, -3.75], "size": [1, 1, 1], "inflate": 0.01, "uv": [28, 29]}
]
},
{
"name": "locator_eye_left",
"parent": "eye_left",
"pivot": [2.5, 7.7, -3.75],
"locators": {
"eye2": [2.5, 7.7, -3.75]
}
},
{
"name": "eye_emote_left",
"parent": "eye_left",
"pivot": [2.5, 7.75, -3.75],
"cubes": [
{"origin": [2, 7.75, -3.75], "size": [1, 1, 1], "inflate": 0.025, "uv": [24, 29]}
]
},
{
"name": "eye_emote_left2",
"parent": "eye_left",
"pivot": [2.5, 7.75, -3.75],
"cubes": [
{"origin": [2, 7.75, -3.75], "size": [1, 1, 1], "inflate": 0.02, "uv": [20, 29]}
]
},
{
"name": "eye_right",
"parent": "eyes",
"pivot": [-2.5, 7.75, -3.26],
"cubes": [
{"origin": [-3, 6.75, -3.75], "size": [1, 1, 1], "inflate": 0.01, "uv": [28, 25]}
]
},
{
"name": "locator_eye_right",
"parent": "eye_right",
"pivot": [-2.5, 7.7, -3.75],
"locators": {
"eye1": [-2.5, 7.7, -3.75]
}
},
{
"name": "eye_emote_right",
"parent": "eye_right",
"pivot": [-2.5, 7.75, -3.75],
"cubes": [
{"origin": [-3, 7.75, -3.75], "size": [1, 1, 1], "inflate": 0.025, "uv": [24, 25]}
]
},
{
"name": "eye_emote_right2",
"parent": "eye_right",
"pivot": [-2.5, 7.75, -3.75],
"cubes": [
{"origin": [-3, 7.75, -3.75], "size": [1, 1, 1], "inflate": 0.02, "uv": [20, 25]}
]
},
{
"name": "eyelid_left",
"parent": "eye_left",
"pivot": [0.5, 3.5, -0.15],
"parent": "eyes",
"pivot": [2.5, 7.75, -3.16],
"cubes": [
{"origin": [1.75, 6, -3.16], "size": [1, 2, 1], "inflate": 0.01, "uv": [32, 8]}
{"origin": [1.5, 6.75, -3.65], "size": [2, 2, 1], "inflate": 0.03, "uv": [0, 28]}
]
},
{
"name": "hair",
"name": "eyelid_right",
"parent": "eyes",
"pivot": [-2.5, 7.75, -3.16],
"cubes": [
{"origin": [-3.5, 6.75, -3.65], "size": [2, 2, 1], "inflate": 0.03, "uv": [0, 24]}
]
},
{
"name": "eyelid_happy_left",
"parent": "eyes",
"pivot": [2.5, 7.75, -3.16],
"cubes": [
{"origin": [1, 6.75, -3.66], "size": [3, 2, 1], "uv": [12, 28]}
]
},
{
"name": "eyelid_happy_right",
"parent": "eyes",
"pivot": [-2.5, 7.75, -3.16],
"cubes": [
{"origin": [-4, 6.75, -3.66], "size": [3, 2, 1], "uv": [12, 24]}
]
},
{
"name": "eyelid_hurt_left",
"parent": "eyes",
"pivot": [2.5, 7.75, -3.16],
"cubes": [
{"origin": [1.5, 6.75, -3.65], "size": [2, 2, 1], "inflate": 0.03, "uv": [6, 28]}
]
},
{
"name": "eyelid_hurt_right",
"parent": "eyes",
"pivot": [-2.5, 7.75, -3.16],
"cubes": [
{"origin": [-3.5, 6.75, -3.65], "size": [2, 2, 1], "inflate": 0.03, "uv": [6, 24]}
]
},
{
"name": "mouths",
"parent": "face",
"pivot": [0, 4.25, -0.75]
},
{
"name": "mouth_closed",
"parent": "mouths",
"pivot": [0, 5.75, -3.25],
"cubes": [
{"origin": [-1.5, 4.75, -3.76], "size": [3, 1, 1], "inflate": 0.02, "uv": [38, 13]},
{"origin": [-0.5, 5.25, -3.76], "size": [1, 1, 1], "inflate": 0.04, "uv": [46, 16]}
]
},
{
"name": "mouth_lip_top",
"parent": "mouth_closed",
"pivot": [0, 6.25, -3.25],
"cubes": [
{"origin": [-1, 5.75, -3.77], "size": [2, 1, 1], "uv": [39, 16]},
{"origin": [-2, 5.25, -3.76], "size": [4, 1, 1], "uv": [29, 22]}
]
},
{
"name": "mouth_open_cry",
"parent": "mouths",
"pivot": [0.4, 4.25, -1.75],
"cubes": [
{"origin": [-2, 4.75, -3.65], "size": [4, 2, 1], "inflate": 0.01, "uv": [29, 19]}
]
},
{
"name": "mouth_open_happy",
"parent": "mouths",
"pivot": [0.4, 4.25, -1.75],
"cubes": [
{"origin": [-2, 4.75, -3.65], "size": [4, 2, 1], "inflate": 0.01, "uv": [40, 19]},
{"origin": [-1.5, 4.75, -3.65], "size": [3, 1, 1], "inflate": 0.02, "uv": [40, 22]},
{"origin": [-0.5, 5.4, -3.65], "size": [1, 1, 1], "inflate": 0.03, "uv": [42, 7]}
]
},
{
"name": "hair_main",
"parent": "head",
"pivot": [0, 10.25, 0.25],
"pivot": [0, 10.75, -0.75]
},
{
"name": "hair",
"parent": "hair_main",
"pivot": [0, 10.75, -0.75],
"rotation": [12.5, 0, 0],
"cubes": [
{"origin": [0, 9.75, -0.75], "size": [0, 2, 1], "uv": [4, 0]}
{"origin": [-0.5, 10.25, -1.75], "size": [1, 2, 1], "uv": [25, 15]}
]
},
{
"name": "hair2",
"parent": "hair",
"pivot": [0, 11.75, 0.25],
"rotation": [22.5, 0, 0],
"pivot": [1, 12.25, -0.75],
"rotation": [35, 0, 0],
"cubes": [
{"origin": [0, 11.75, -1.75], "size": [0, 3, 2], "inflate": 0.01, "uv": [0, 10]}
{"origin": [-1, 12.25, -2.25], "size": [2, 3, 2], "inflate": 0.01, "uv": [30, 13]}
]
},
{
"name": "mouth_closed",
"parent": "head",
"pivot": [0, 4.25, -0.25],
"name": "hair3",
"parent": "hair_main",
"pivot": [0, 11.25, -0.75],
"rotation": [-2.5, 0, 0],
"cubes": [
{"origin": [-2.5, 4.75, -3.2575], "size": [5, 2, 0], "inflate": 0.001, "uv": [26, 5]}
{"origin": [-2.5, 11.25, -3.75], "size": [5, 0, 3], "uv": [34, 25]}
]
},
{
"name": "mouth_open",
"parent": "head",
"pivot": [-0.1, 4.25, -1.25],
"name": "hair4",
"parent": "hair3",
"pivot": [0, 11.25, -3.75],
"rotation": [-7.5, 0, 0],
"cubes": [
{"origin": [-1.5, 4.75, -3.1575], "size": [3, 2, 0], "uv": [25, 12]}
{"origin": [-3, 9.25, -3.75], "size": [6, 2, 0], "uv": [36, 29]},
{"origin": [-0.5, 9.25, -3.75], "size": [1, 2, 0], "inflate": 0.01, "uv": [43, 10]}
]
},
{
"name": "arm_hammer_left",
"name": "arms",
"parent": "torso",
"pivot": [2, 3.25, 0]
},
{
"name": "hammer",
"parent": "arm_hammer_left",
"pivot": [6.75, 3, -0.5]
},
{
"name": "hammer2",
"parent": "hammer",
"pivot": [6.75, 7.41875, -0.525],
"cubes": [
{"origin": [5.25, 5.25, -2], "size": [3, 6, 3], "uv": [16, 12]},
{"origin": [6.25, 1.75, -1], "size": [1, 4, 1], "uv": [0, 0]},
{"origin": [5.75, 7, -5.65], "size": [2, 0, 2], "pivot": [6.5, 6.4375, -2.575], "rotation": [-90, 0, 0], "uv": [22, 22]},
{"origin": [6.25, 6.925, -5.8], "size": [1, 0, 1], "pivot": [6.5, 6.4375, -2.575], "rotation": [-90, 0, 0], "uv": [23, 21]}
]
"pivot": [0, 3.25, 0]
},
{
"name": "arm_left",
"parent": "torso",
"pivot": [2, 3.25, 0],
"parent": "arms",
"pivot": [1.5, 3.25, 0],
"cubes": [
{"origin": [2, 2.25, -1.5], "size": [4, 2, 3], "uv": [0, 19]}
{"origin": [1.25, 2.25, -1], "size": [2, 2, 2], "uv": [8, 19]}
]
},
{
"name": "finger_left",
"name": "hand_left",
"parent": "arm_left",
"pivot": [6, 3.5, 0],
"pivot": [3.25, 3.25, 0],
"cubes": [
{"origin": [6, 2.5, -0.5], "size": [1, 1, 1], "uv": [26, 10]}
{"origin": [3.25, 2.25, -1.5], "size": [3, 2, 3], "inflate": 0.25, "uv": [12, 14]}
]
},
{
"name": "locator_hand_secondary",
"parent": "hand_left",
"pivot": [6, 3.25, 0],
"rotation": [0, -90, 0],
"locators": {
"hand_secondary": [6, 3.25, 0]
}
},
{
"name": "fingers_left",
"parent": "hand_left",
"pivot": [6.5, 3.85, 0]
},
{
"name": "finger_left",
"parent": "fingers_left",
"pivot": [6.5, 3.85, 0],
"cubes": [
{"origin": [6.5, 2.85, -0.5], "size": [1, 1, 1], "inflate": 0.1, "uv": [20, 21]}
]
},
{
"name": "finger_left2",
"parent": "arm_left",
"pivot": [6, 3.5, -0.5],
"rotation": [0, 12.5, 0],
"parent": "fingers_left",
"pivot": [6.5, 3.85, -0.6],
"rotation": [0, 17.5, 0],
"cubes": [
{"origin": [6, 2.5, -1.5], "size": [1, 1, 1], "uv": [43, 2]}
{"origin": [6.5, 2.85, -1.7], "size": [1, 1, 1], "inflate": 0.1, "uv": [16, 21]}
]
},
{
"name": "finger_left3",
"parent": "arm_left",
"pivot": [6, 3.5, 0.5],
"rotation": [0, -12.5, 0],
"parent": "fingers_left",
"pivot": [6.5, 3.85, 0.6],
"rotation": [0, -17.5, 0],
"cubes": [
{"origin": [6, 2.5, 0.5], "size": [1, 1, 1], "uv": [11, 19]}
{"origin": [6.5, 2.85, 0.7], "size": [1, 1, 1], "inflate": 0.1, "uv": [24, 21]}
]
},
{
"name": "arm_right",
"parent": "torso",
"pivot": [-2, 3.25, 0],
"parent": "arms",
"pivot": [-1.5, 3.25, 0],
"cubes": [
{"origin": [-6, 2.25, -1.5], "size": [4, 2, 3], "uv": [20, 0]}
{"origin": [-3.25, 2.25, -1], "size": [2, 2, 2], "uv": [0, 19]}
]
},
{
"name": "finger_right",
"name": "hand_right",
"parent": "arm_right",
"pivot": [-6, 3.5, 0],
"pivot": [-3.25, 3.25, 0],
"cubes": [
{"origin": [-7, 2.5, -0.5], "size": [1, 1, 1], "uv": [28, 14]}
{"origin": [-6.25, 2.25, -1.5], "size": [3, 2, 3], "inflate": 0.25, "uv": [0, 14]}
]
},
{
"name": "locator_hand_primary",
"parent": "hand_right",
"pivot": [-6, 3.25, 0],
"rotation": [0, 90, 0],
"locators": {
"hand_primary": [-6, 3.25, 0]
}
},
{
"name": "locator_item",
"parent": "hand_right",
"pivot": [-6, 2.25, 0],
"locators": {
"item": [-6, 2.25, 0]
}
},
{
"name": "fingers_right",
"parent": "hand_right",
"pivot": [-6.5, 3.85, 0]
},
{
"name": "finger_right",
"parent": "fingers_right",
"pivot": [-6.5, 3.85, 0],
"cubes": [
{"origin": [-7.5, 2.85, -0.5], "size": [1, 1, 1], "inflate": 0.1, "uv": [20, 19]}
]
},
{
"name": "finger_right2",
"parent": "arm_right",
"pivot": [-6, 3.5, -0.5],
"rotation": [0, -12.5, 0],
"parent": "fingers_right",
"pivot": [-6.5, 3.85, -0.6],
"rotation": [0, -17.5, 0],
"cubes": [
{"origin": [-7, 2.5, -1.5], "size": [1, 1, 1], "uv": [56, 9]}
{"origin": [-7.5, 2.85, -1.7], "size": [1, 1, 1], "inflate": 0.1, "uv": [16, 19]}
]
},
{
"name": "finger_right3",
"parent": "arm_right",
"pivot": [-6, 3.5, 0.5],
"rotation": [0, 12.5, 0],
"parent": "fingers_right",
"pivot": [-6.5, 3.85, 0.6],
"rotation": [0, 17.5, 0],
"cubes": [
{"origin": [-7, 2.5, 0.5], "size": [1, 1, 1], "uv": [52, 9]}
{"origin": [-7.5, 2.85, 0.7], "size": [1, 1, 1], "inflate": 0.1, "uv": [24, 19]}
]
},
{
"name": "arm_hammer_left",
"parent": "arms",
"pivot": [1.5, 3.25, 0]
},
{
"name": "hammer",
"parent": "arm_hammer_left",
"pivot": [7.25, 3, -0.5]
},
{
"name": "hammer2",
"parent": "hammer",
"pivot": [7.5, 7.41875, -0.525],
"cubes": [
{"origin": [7, 1.25, -1], "size": [1, 4, 1], "uv": [54, 12]},
{"origin": [7, 1.25, -1], "size": [1, 4, 1], "inflate": 0.1, "uv": [59, 12]}
]
},
{
"name": "rattle",
"parent": "hammer2",
"pivot": [7.5, 9.75, -2],
"cubes": [
{"origin": [7, 9.25, -2.5], "size": [1, 1, 1], "inflate": 0.01, "pivot": [7.5, 9.75, -2], "rotation": [0, 0, 45], "uv": [60, 1]},
{"origin": [6.5, 7.25, -2.4], "size": [2, 2, 1], "inflate": 0.11, "pivot": [7.5, 8.25, -1.9], "rotation": [0, 0, 45], "uv": [46, 0]},
{"origin": [5.5, 4.75, -2.5], "size": [4, 7, 4], "uv": [48, 0]}
]
},
{
"name": "locator_physical",
"parent": "rattle",
"pivot": [7.5, 11.75, -0.5],
"locators": {
"physical": [7.5, 11.75, -0.5]
}
},
{
"name": "legs",
"parent": "body",
"pivot": [0, 1.5, 0]
},
{
"name": "leg_left",
"parent": "body",
"pivot": [0.75, 1.5, 0],
"parent": "legs",
"pivot": [1.25, 1.5, 0],
"cubes": [
{"origin": [0.25, 0, -2], "size": [2, 2, 4], "inflate": 0.01, "uv": [35, 0]}
{"origin": [-0.25, -0.25, -1.5], "size": [3, 3, 3], "inflate": -0.25, "uv": [35, 0]}
]
},
{
"name": "locator_foot_secondary",
"parent": "leg_left",
"pivot": [1.4, 0.5, 0.1],
"rotation": [90, 0, 0],
"locators": {
"foot_secondary": [1.4, 0.5, 0.1]
}
},
{
"name": "leg_right",
"parent": "body",
"pivot": [-0.75, 1.5, 0],
"parent": "legs",
"pivot": [-1.25, 1.5, 0],
"cubes": [
{"origin": [-2.25, 0, -2], "size": [2, 2, 4], "inflate": 0.01, "uv": [52, 3]}
{"origin": [-2.75, -0.25, -1.5], "size": [3, 3, 3], "inflate": -0.25, "uv": [23, 0]}
]
},
{
"name": "locator_foot_primary",
"parent": "leg_right",
"pivot": [-1.4, 0.5, 0.1],
"rotation": [90, 0, 0],
"locators": {
"foot_primary": [-1.4, 0.5, 0.1]
}
}
]
}
@@ -1,233 +0,0 @@
{
"format_version": "1.12.0",
"minecraft:geometry": [
{
"description": {
"identifier": "geometry.tinkatink_dot",
"texture_width": 64,
"texture_height": 32,
"visible_bounds_width": 2,
"visible_bounds_height": 2.5,
"visible_bounds_offset": [0, 0.75, 0]
},
"bones": [
{
"name": "tinkatink",
"pivot": [0, 0, 0]
},
{
"name": "body",
"parent": "tinkatink",
"pivot": [0, 3.75, 0]
},
{
"name": "torso",
"parent": "body",
"pivot": [0, 1.75, -0.25],
"cubes": [
{"origin": [-2, 1.5, -2], "size": [4, 3, 4], "uv": [0, 12]},
{"origin": [-1, 2, -2.75], "size": [2, 2, 1], "pivot": [0, 3, -2.25], "rotation": [0, 0, 45], "uv": [12, 12]}
]
},
{
"name": "head",
"parent": "torso",
"pivot": [0, 4.25, -0.25],
"cubes": [
{"origin": [-3.5, 4.25, -3.25], "size": [7, 6, 6], "uv": [0, 0]}
]
},
{
"name": "hair3",
"parent": "head",
"pivot": [0, 10.25, -0.25],
"rotation": [-5, 0, 0],
"cubes": [
{"origin": [-2.5, 10.25, -3.25], "size": [5, 0, 3], "uv": [11, 21]}
]
},
{
"name": "hair4",
"parent": "hair3",
"pivot": [0, 10.25, -3.25],
"rotation": [-15, 0, 0],
"cubes": [
{"origin": [-2.5, 8.25, -3.25], "size": [5, 2, 0], "uv": [43, 0]}
]
},
{
"name": "eye_right",
"parent": "head",
"pivot": [-2.75, 6.5, -2.76],
"rotation": [0, 0, -5],
"cubes": [
{"origin": [-2.75, 6, -3.26], "size": [1, 2, 1], "uv": [51, 2]}
]
},
{
"name": "eyelid_right",
"parent": "eye_right",
"pivot": [-0.5, 3.5, -0.15],
"cubes": [
{"origin": [-2.75, 6, -3.16], "size": [1, 2, 1], "inflate": 0.01, "uv": [47, 2]}
]
},
{
"name": "eye_left",
"parent": "head",
"pivot": [2.75, 6.5, -2.76],
"rotation": [0, 0, 5],
"cubes": [
{"origin": [1.75, 6, -3.26], "size": [1, 2, 1], "uv": [26, 7]}
]
},
{
"name": "eyelid_left",
"parent": "eye_left",
"pivot": [0.5, 3.5, -0.15],
"cubes": [
{"origin": [1.75, 6, -3.16], "size": [1, 2, 1], "inflate": 0.01, "uv": [32, 8]}
]
},
{
"name": "hair",
"parent": "head",
"pivot": [0, 10.25, 0.25],
"rotation": [12.5, 0, 0],
"cubes": [
{"origin": [0, 9.75, -0.75], "size": [0, 2, 1], "uv": [4, 0]}
]
},
{
"name": "hair2",
"parent": "hair",
"pivot": [0, 11.75, 0.25],
"rotation": [22.5, 0, 0],
"cubes": [
{"origin": [0, 11.75, -1.75], "size": [0, 3, 2], "inflate": 0.01, "uv": [0, 10]}
]
},
{
"name": "mouth_closed",
"parent": "head",
"pivot": [0, 4.25, -0.25],
"cubes": [
{"origin": [-2.5, 4.75, -3.2575], "size": [5, 2, 0], "inflate": 0.001, "uv": [26, 5]}
]
},
{
"name": "mouth_open",
"parent": "head",
"pivot": [-0.1, 4.25, -1.25],
"cubes": [
{"origin": [-1.5, 4.75, -3.1575], "size": [3, 2, 0], "uv": [25, 12]}
]
},
{
"name": "arm_hammer_left",
"parent": "torso",
"pivot": [2, 3.25, 0]
},
{
"name": "hammer",
"parent": "arm_hammer_left",
"pivot": [6.75, 3, -0.5]
},
{
"name": "hammer2",
"parent": "hammer",
"pivot": [6.75, 7.41875, -0.525],
"cubes": [
{"origin": [5.25, 5.25, -2], "size": [3, 6, 3], "uv": [16, 12]},
{"origin": [6.25, 1.75, -1], "size": [1, 4, 1], "uv": [0, 0]},
{"origin": [5.75, 8.2625, -3.0125], "size": [2, 0, 2], "pivot": [6.75, 8.2625, -2.0125], "rotation": [-90, 0, 45], "uv": [-2, 24]}
]
},
{
"name": "arm_left",
"parent": "torso",
"pivot": [2, 3.25, 0],
"cubes": [
{"origin": [2, 2.25, -1.5], "size": [4, 2, 3], "uv": [0, 19]}
]
},
{
"name": "finger_left",
"parent": "arm_left",
"pivot": [6, 3.5, 0],
"cubes": [
{"origin": [6, 2.5, -0.5], "size": [1, 1, 1], "uv": [26, 10]}
]
},
{
"name": "finger_left2",
"parent": "arm_left",
"pivot": [6, 3.5, -0.5],
"rotation": [0, 12.5, 0],
"cubes": [
{"origin": [6, 2.5, -1.5], "size": [1, 1, 1], "uv": [43, 2]}
]
},
{
"name": "finger_left3",
"parent": "arm_left",
"pivot": [6, 3.5, 0.5],
"rotation": [0, -12.5, 0],
"cubes": [
{"origin": [6, 2.5, 0.5], "size": [1, 1, 1], "uv": [11, 19]}
]
},
{
"name": "arm_right",
"parent": "torso",
"pivot": [-2, 3.25, 0],
"cubes": [
{"origin": [-6, 2.25, -1.5], "size": [4, 2, 3], "uv": [20, 0]}
]
},
{
"name": "finger_right",
"parent": "arm_right",
"pivot": [-6, 3.5, 0],
"cubes": [
{"origin": [-7, 2.5, -0.5], "size": [1, 1, 1], "uv": [28, 14]}
]
},
{
"name": "finger_right2",
"parent": "arm_right",
"pivot": [-6, 3.5, -0.5],
"rotation": [0, -12.5, 0],
"cubes": [
{"origin": [-7, 2.5, -1.5], "size": [1, 1, 1], "uv": [56, 9]}
]
},
{
"name": "finger_right3",
"parent": "arm_right",
"pivot": [-6, 3.5, 0.5],
"rotation": [0, 12.5, 0],
"cubes": [
{"origin": [-7, 2.5, 0.5], "size": [1, 1, 1], "uv": [52, 9]}
]
},
{
"name": "leg_left",
"parent": "body",
"pivot": [0.75, 1.5, 0],
"cubes": [
{"origin": [0.25, 0, -2], "size": [2, 2, 4], "inflate": 0.01, "uv": [35, 0]}
]
},
{
"name": "leg_right",
"parent": "body",
"pivot": [-0.75, 1.5, 0],
"cubes": [
{"origin": [-2.25, 0, -2], "size": [2, 2, 4], "inflate": 0.01, "uv": [52, 3]}
]
}
]
}
]
}
@@ -4,7 +4,7 @@
{
"description": {
"identifier": "geometry.tinkatuff",
"texture_width": 64,
"texture_width": 128,
"texture_height": 64,
"visible_bounds_width": 3,
"visible_bounds_height": 2.5,
@@ -15,289 +15,680 @@
"name": "tinkatuff",
"pivot": [0, 0, 0]
},
{
"name": "locator_root",
"parent": "tinkatuff",
"pivot": [0, 0, 0],
"locators": {
"root": [0, 0, 0]
}
},
{
"name": "locator_top",
"parent": "tinkatuff",
"pivot": [0, 22, 0],
"locators": {
"top": [0, 22, 0]
}
},
{
"name": "locator_special",
"parent": "tinkatuff",
"pivot": [0, 8, -8],
"locators": {
"special": [0, 8, -8]
}
},
{
"name": "body",
"parent": "tinkatuff",
"pivot": [0, 6, 0]
"pivot": [0, 6.25, 0]
},
{
"name": "locator_target",
"parent": "body",
"pivot": [0, 8, -6],
"locators": {
"target": [0, 8, -6]
}
},
{
"name": "locator_middle",
"parent": "body",
"pivot": [0, 9, 0],
"locators": {
"middle": [0, 9, 0]
}
},
{
"name": "torso",
"parent": "body",
"pivot": [0, 4.25, 0],
"pivot": [0, 4.5, 0],
"cubes": [
{"origin": [-2, 7.5, -1.5], "size": [4, 3, 3], "uv": [41, 41]},
{"origin": [-2.5, 3, -2], "size": [5, 5, 4], "uv": [36, 0]}
{"origin": [-2.5, 3.25, -2], "size": [5, 3, 4], "inflate": 0.25, "uv": [0, 14]},
{"origin": [-2.5, 3.25, -2], "size": [5, 3, 4], "inflate": 0.5, "uv": [18, 14]}
]
},
{
"name": "skirt_left",
"name": "chest",
"parent": "torso",
"pivot": [2.5, 3, 0],
"rotation": [0, 0, 45],
"pivot": [0, 6, 0],
"cubes": [
{"origin": [2.5, 3, -1.5], "size": [3, 0, 3], "uv": [6, 15]}
]
},
{
"name": "skirt_right",
"parent": "torso",
"pivot": [-2.5, 3, 0],
"rotation": [0, 0, -45],
"cubes": [
{"origin": [-5.5, 3, -1.5], "size": [3, 0, 3], "uv": [0, 15]}
]
},
{
"name": "arm_left",
"parent": "torso",
"pivot": [2, 8, 0],
"cubes": [
{"origin": [1, 7, -1], "size": [4, 2, 2], "uv": [35, 47]}
]
},
{
"name": "arm_left2",
"parent": "arm_left",
"pivot": [5, 9, 1],
"cubes": [
{"origin": [5, 7, -1.5], "size": [4, 2, 3], "inflate": 0.001, "uv": [44, 35]}
]
},
{
"name": "finger_left",
"parent": "arm_left2",
"pivot": [9, 7.75, -0.5],
"rotation": [0, 12.5, 0],
"cubes": [
{"origin": [9, 7.75, -1.5], "size": [1, 1, 1], "uv": [33, 44]}
]
},
{
"name": "finger_left2",
"parent": "arm_left2",
"pivot": [9, 7.75, 0.5],
"rotation": [0, -12.5, 0],
"cubes": [
{"origin": [9, 7.75, 0.5], "size": [1, 1, 1], "uv": [40, 30]}
]
},
{
"name": "finger_left3",
"parent": "arm_left2",
"pivot": [9, 8, 0],
"cubes": [
{"origin": [9, 7, -0.5], "size": [1, 1, 1], "uv": [36, 30]}
]
},
{
"name": "arm_hammer_right",
"parent": "torso",
"pivot": [-2, 8, 0]
},
{
"name": "arm_hammer_right2",
"parent": "arm_hammer_right",
"pivot": [-5, 9, 1]
},
{
"name": "hammer",
"parent": "arm_hammer_right2",
"pivot": [-9.75, 8, 0]
},
{
"name": "hammer2",
"parent": "hammer",
"pivot": [-9.55, 7.9675, -9.0675],
"cubes": [
{"origin": [-11, 6.5, -20], "size": [3, 3, 6], "uv": [30, 9]},
{"origin": [-10.5, 6.475, -18.25], "size": [2, 0, 2], "uv": [-1, 54]},
{"origin": [-10, 6.4, -18.4], "size": [1, 0, 1], "uv": [-1, 54]},
{"origin": [-11, 6.5, -12.5], "size": [3, 3, 3], "uv": [0, 47]},
{"origin": [-10, 7.5, -14.5], "size": [1, 1, 18], "inflate": 0.001, "uv": [0, 0]},
{"origin": [-15.5, 4.025, -18.525], "size": [12, 11, 0], "pivot": [-9.5, 9.525, -18.525], "rotation": [-90, -180, 0], "uv": [0, 36]},
{"origin": [-15.5, 3.5, -30.5], "size": [0, 8, 5], "pivot": [-9.5, 12.25, -22.775], "rotation": [90, 0, 0], "uv": [34, 31]},
{"origin": [-15.5, 3.5, -30.5], "size": [3, 8, 0], "pivot": [-9.5, 12.25, -22.775], "rotation": [90, 0, 0], "uv": [47, 47]},
{"origin": [-7.5, 2.5, -30.5], "size": [4, 9, 0], "pivot": [-9.5, 12.25, -22.775], "rotation": [90, 0, 0], "uv": [12, 47]},
{"origin": [-3.5, 2.525, -20.025], "size": [0, 9, 5], "pivot": [-3.5, 7.025, -17.525], "rotation": [90, 180, 0], "uv": [24, 31]},
{"origin": [-13.5, 12.5, -29.5], "size": [8, 1, 0], "pivot": [-9.5, 12.25, -22.775], "rotation": [90, 0, 0], "uv": [0, 7]},
{"origin": [-13.5, 7.525, -26.025], "size": [8, 0, 4], "pivot": [-9.5, 7.525, -24.025], "rotation": [90, 180, 0], "uv": [17, 19]}
]
},
{
"name": "arm_right",
"parent": "torso",
"pivot": [-2, 8, 0],
"cubes": [
{"origin": [-5, 7, -1], "size": [4, 2, 2], "uv": [0, 32]}
]
},
{
"name": "arm_right2",
"parent": "arm_right",
"pivot": [-5, 9, 1],
"cubes": [
{"origin": [-9, 7, -1.5], "size": [4, 2, 3], "inflate": 0.001, "uv": [44, 30]}
]
},
{
"name": "finger_right",
"parent": "arm_right2",
"pivot": [-9, 7.75, -0.5],
"rotation": [0, -12.5, 0],
"cubes": [
{"origin": [-10, 7.75, -1.5], "size": [1, 1, 1], "uv": [36, 2]}
]
},
{
"name": "finger_right2",
"parent": "arm_right2",
"pivot": [-9, 7.75, 0.5],
"rotation": [0, 12.5, 0],
"cubes": [
{"origin": [-10, 7.75, 0.5], "size": [1, 1, 1], "uv": [36, 0]}
]
},
{
"name": "finger_right3",
"parent": "arm_right2",
"pivot": [-9, 8, 0],
"cubes": [
{"origin": [-10, 7, -0.5], "size": [1, 1, 1], "uv": [10, 32]}
{"origin": [-2, 5.75, -2], "size": [4, 4, 4], "uv": [24, 0]}
]
},
{
"name": "head",
"parent": "torso",
"pivot": [0, 9, 0.5],
"parent": "chest",
"pivot": [0, 8.75, 0.5],
"cubes": [
{"origin": [-3.5, 9, -3.5], "size": [7, 6, 7], "uv": [0, 19]},
{"origin": [-4, 17.30092, -3.63266], "size": [8, 0, 8], "pivot": [0, 13.80092, 0.36734], "rotation": [-7.5, 0, 0], "uv": [12, 0]},
{"origin": [4, 10.30092, -3.63266], "size": [0, 7, 8], "pivot": [0, 13.80092, 0.36734], "rotation": [-7.5, 0, 0], "uv": [20, 0]},
{"origin": [-4, 10.30092, 4.36734], "size": [8, 7, 0], "pivot": [0, 13.80092, 0.36734], "rotation": [-7.5, 0, 0], "uv": [0, 0]},
{"origin": [-4, 11.30092, -3.63266], "size": [8, 6, 0], "pivot": [0, 13.80092, 0.36734], "rotation": [-7.5, 0, 0], "uv": [42, 9]},
{"origin": [-4, 10.30092, -3.63266], "size": [0, 7, 8], "pivot": [0, 13.80092, 0.36734], "rotation": [-7.5, 0, 0], "uv": [0, 0]}
{"origin": [-4, 8.75, -4], "size": [8, 6, 8], "uv": [0, 0]}
]
},
{
"name": "locator_mouth",
"parent": "head",
"pivot": [0, 9.75, -4],
"locators": {
"mouth": [0, 9.75, -4]
}
},
{
"name": "locator_item_face",
"parent": "head",
"pivot": [0, 12.25, -4],
"locators": {
"item_face": [0, 12.25, -4]
}
},
{
"name": "locator_face",
"parent": "head",
"pivot": [0, 11.75, -4],
"locators": {
"face": [0, 11.75, -4]
}
},
{
"name": "face_ditto",
"parent": "head",
"pivot": [0, 11, -3.9]
},
{
"name": "eyes_ditto",
"parent": "face_ditto",
"pivot": [0, 11.75, -3.92],
"cubes": [
{"origin": [-3, 11.25, -3.92], "size": [6, 1, 0], "uv": [22, 49]}
]
},
{
"name": "eyes_blink_ditto",
"parent": "face_ditto",
"pivot": [0, 11.75, -3.82],
"cubes": [
{"origin": [-3.5, 11.25, -3.82], "size": [7, 1, 0], "uv": [21, 51]},
{"origin": [-3, 11.75, -3.83], "size": [6, 1, 0], "uv": [22, 53]}
]
},
{
"name": "mouth_ditto",
"parent": "face_ditto",
"pivot": [0, 10, -3.9],
"cubes": [
{"origin": [-2.5, 9.25, -3.91], "size": [5, 1, 0], "uv": [23, 57]},
{"origin": [-3.5, 9.75, -3.91], "size": [7, 1, 0], "uv": [21, 55]}
]
},
{
"name": "mouth_open_ditto",
"parent": "face_ditto",
"pivot": [0, 9.75, -3.81],
"cubes": [
{"origin": [-3.5, 8.75, -3.81], "size": [7, 2, 0], "uv": [21, 59]}
]
},
{
"name": "face",
"parent": "head",
"pivot": [0, 11.75, -4.01]
},
{
"name": "eyes",
"parent": "face",
"pivot": [0, 12, -3.51]
},
{
"name": "brow_left",
"parent": "eyes",
"pivot": [2.25, 12.75, -3.5],
"cubes": [
{"origin": [1.75, 12.25, -4], "size": [1, 1, 1], "inflate": 0.01, "uv": [16, 52]}
]
},
{
"name": "brow_right",
"parent": "eyes",
"pivot": [-2.25, 12.75, -3.5],
"cubes": [
{"origin": [-2.75, 12.25, -4], "size": [1, 1, 1], "inflate": 0.01, "uv": [11, 52], "mirror": true}
]
},
{
"name": "eye_left",
"parent": "head",
"pivot": [2.25, 12.25, -3.01],
"rotation": [0, 0, -7.5],
"parent": "eyes",
"pivot": [2.5, 12, -3.51],
"cubes": [
{"origin": [1.75, 11.25, -3.51], "size": [1, 2, 1], "uv": [21, 23]}
{"origin": [2, 11, -4], "size": [1, 1, 1], "inflate": 0.01, "uv": [6, 52]}
]
},
{
"name": "eyelid_left",
"name": "locator_eye_left",
"parent": "eye_left",
"pivot": [2.25, 12.25, -2.91],
"pivot": [2.5, 12, -4],
"locators": {
"eye2": [2.5, 12, -4]
}
},
{
"name": "eye_emote_left",
"parent": "eye_left",
"pivot": [2.5, 12, -4],
"cubes": [
{"origin": [1.75, 11.25, -3.41], "size": [1, 2, 1], "inflate": 0.01, "uv": [26, 15]}
{"origin": [2, 12, -4], "size": [1, 1, 1], "inflate": 0.025, "uv": [6, 49]}
]
},
{
"name": "eye_emote_left2",
"parent": "eye_left",
"pivot": [2.5, 12, -4],
"cubes": [
{"origin": [2, 12, -4], "size": [1, 1, 1], "inflate": 0.02, "uv": [16, 49]}
]
},
{
"name": "eye_right",
"parent": "head",
"pivot": [-2.25, 12.25, -3.01],
"rotation": [0, 0, 7.5],
"parent": "eyes",
"pivot": [-2.5, 12, -3.51],
"cubes": [
{"origin": [-2.75, 11.25, -3.51], "size": [1, 2, 1], "uv": [0, 21]}
{"origin": [-3, 11, -4], "size": [1, 1, 1], "inflate": 0.01, "uv": [1, 52], "mirror": true}
]
},
{
"name": "locator_eye_right",
"parent": "eye_right",
"pivot": [-2.5, 12, -4],
"locators": {
"eye1": [-2.5, 12, -4]
}
},
{
"name": "eye_emote_right",
"parent": "eye_right",
"pivot": [-2.5, 12, -4],
"cubes": [
{"origin": [-3, 12, -4], "size": [1, 1, 1], "inflate": 0.025, "uv": [1, 49], "mirror": true}
]
},
{
"name": "eye_emote_right2",
"parent": "eye_right",
"pivot": [-2.5, 12, -4],
"cubes": [
{"origin": [-3, 12, -4], "size": [1, 1, 1], "inflate": 0.02, "uv": [11, 49], "mirror": true}
]
},
{
"name": "eyelid_left",
"parent": "eyes",
"pivot": [2.5, 12, -3.41],
"cubes": [
{"origin": [1.5, 11, -3.9], "size": [2, 2, 1], "inflate": 0.03, "uv": [8, 45]}
]
},
{
"name": "eyelid_right",
"parent": "eye_right",
"pivot": [-2.25, 12.25, -2.91],
"parent": "eyes",
"pivot": [-2.5, 12, -3.41],
"cubes": [
{"origin": [-2.75, 11.25, -3.41], "size": [1, 2, 1], "inflate": 0.01, "uv": [3, 23]}
{"origin": [-3.5, 11, -3.9], "size": [2, 2, 1], "inflate": 0.03, "uv": [1, 45], "mirror": true}
]
},
{
"name": "eyelid_hurt_left",
"parent": "eyes",
"pivot": [2.5, 12, -3.41],
"cubes": [
{"origin": [1.5, 11, -3.9], "size": [2, 2, 1], "inflate": 0.03, "uv": [22, 45]}
]
},
{
"name": "eyelid_hurt_right",
"parent": "eyes",
"pivot": [-2.5, 12, -3.41],
"cubes": [
{"origin": [-3.5, 11, -3.9], "size": [2, 2, 1], "inflate": 0.03, "uv": [15, 45], "mirror": true}
]
},
{
"name": "eyelid_happy_left",
"parent": "eyes",
"pivot": [2.5, 12, -3.41],
"cubes": [
{"origin": [1, 11, -3.91], "size": [3, 2, 1], "uv": [38, 45]}
]
},
{
"name": "eyelid_happy_right",
"parent": "eyes",
"pivot": [-2.5, 12, -3.41],
"cubes": [
{"origin": [-4, 11, -3.91], "size": [3, 2, 1], "uv": [29, 45], "mirror": true}
]
},
{
"name": "mouths",
"parent": "face",
"pivot": [0, 10.25, -3.91],
"cubes": [
{"origin": [-1.5, 9.75, -4], "size": [3, 1, 1], "inflate": 0.01, "uv": [1, 55]}
]
},
{
"name": "mouth_top",
"parent": "mouths",
"pivot": [0, 11.25, -4.01],
"cubes": [
{"origin": [-0.5, 10.27, -4], "size": [1, 1, 1], "inflate": 0.03, "uv": [10, 55]}
]
},
{
"name": "mouth_bottom",
"parent": "mouths",
"pivot": [0, 10.25, -4.01],
"cubes": [
{"origin": [-0.5, 9.23, -4], "size": [1, 1, 1], "inflate": 0.03, "uv": [10, 59]}
]
},
{
"name": "mouth_open",
"parent": "head",
"pivot": [0, 10.5, -3.41],
"parent": "mouths",
"pivot": [0, 10.25, -3.91],
"cubes": [
{"origin": [-1.5, 9.5, -3.41], "size": [3, 2, 0], "uv": [20, 15]}
{"origin": [-1.5, 9.25, -3.9], "size": [3, 2, 1], "inflate": 0.02, "uv": [1, 58]}
]
},
{
"name": "mouth_closed",
"name": "hair",
"parent": "head",
"pivot": [0, 10.5, -3.51],
"pivot": [0, 17.25, 0.7],
"rotation": [-10, 0, 0],
"cubes": [
{"origin": [-1.5, 9.5, -3.51], "size": [3, 2, 0], "uv": [0, 19]}
{"origin": [4.5, 10.25, -3.8], "size": [0, 3, 9], "pivot": [4.5, 13.25, 0.7], "rotation": [0, 0, 9], "uv": [49, 47]},
{"origin": [-4.5, 10.25, -3.8], "size": [0, 3, 9], "pivot": [-4.5, 13.25, 0.7], "rotation": [0, 0, -9], "uv": [49, 51], "mirror": true},
{"origin": [-4.5, 13.25, -3.8], "size": [9, 4, 9], "uv": [33, 0]},
{"origin": [-2.5, 10.25, -3.8], "size": [5, 3, 0], "pivot": [0, 13.25, -3.8], "rotation": [13.5, 0, 0], "uv": [53, 48]},
{"origin": [0.5, 10.25, 5.2], "size": [4, 3, 0], "pivot": [4.5, 13.25, 5.2], "rotation": [0, 0, 9], "uv": [49, 52]},
{"origin": [-4.5, 10.25, 5.2], "size": [4, 3, 0], "pivot": [-4.5, 13.25, 5.2], "rotation": [0, 0, -9], "uv": [59, 52], "mirror": true}
]
},
{
"name": "locator_head",
"parent": "hair",
"pivot": [0, 16.25, -3.8],
"locators": {
"head": [0, 16.25, -3.8]
}
},
{
"name": "locator_item_hat",
"parent": "hair",
"pivot": [0, 17.25, 0.7],
"locators": {
"item_hat": [0, 17.25, 0.7]
}
},
{
"name": "hair2",
"parent": "hair",
"pivot": [4.5, 14.25, -0.8],
"rotation": [22.5, -90, 0]
},
{
"name": "hair3",
"parent": "hair2",
"pivot": [4.5, 14.25, -0.8],
"cubes": [
{"origin": [2.5, 14.25, -0.8], "size": [4, 7, 0], "uv": [40, 56]}
]
},
{
"name": "ponytail",
"parent": "head",
"pivot": [0, 16.81524, 1.82582],
"rotation": [2.5, 0, 0],
"parent": "hair",
"pivot": [0, 16.25, 1.2],
"rotation": [-20, 0, 0],
"cubes": [
{"origin": [-2, 16.62133, -0.28751], "size": [4, 4, 8], "uv": [20, 24]}
{"origin": [-4, 15.25, 0.2], "size": [8, 7, 7], "uv": [37, 13]}
]
},
{
"name": "ponytail2",
"parent": "ponytail",
"pivot": [0, 16.62133, 3.71249],
"pivot": [0, 18.25, 6.7],
"rotation": [-22.5, 0, 0],
"cubes": [
{"origin": [-2, 9.62133, 3.71249], "size": [4, 7, 4], "inflate": -0.001, "uv": [36, 19]}
{"origin": [-3, 15.75, 5.2], "size": [6, 5, 7], "uv": [39, 27]}
]
},
{
"name": "ponytail3",
"parent": "ponytail2",
"pivot": [0, 11.62133, 7.71249],
"pivot": [0, 17.75, 11.2],
"rotation": [52.5, 0, 0],
"cubes": [
{"origin": [-2, 9.62133, 7.71249], "size": [4, 2, 3], "inflate": -0.002, "uv": [21, 45]}
{"origin": [-1.5, 16.25, 10.7], "size": [3, 3, 5], "uv": [60, 0]}
]
},
{
"name": "hair2",
"parent": "head",
"pivot": [3.25, 16.625, -1.925],
"rotation": [-30, 0, 27.5]
"name": "arms",
"parent": "chest",
"pivot": [0, 7.5, 0]
},
{
"name": "hair3",
"parent": "hair2",
"pivot": [3.25, 16.625, -1.925],
"name": "arm_left",
"parent": "arms",
"pivot": [2, 7.5, 0],
"cubes": [
{"origin": [1.25, 16.625, -1.925], "size": [4, 6, 0], "uv": [48, 15]}
{"origin": [1, 6.5, -1.5], "size": [4, 2, 3], "uv": [14, 28]}
]
},
{
"name": "arm_left2",
"parent": "arm_left",
"pivot": [5, 8.5, 1],
"cubes": [
{"origin": [5, 6, -2], "size": [4, 3, 4], "inflate": 0.001, "uv": [16, 21]}
]
},
{
"name": "locator_hand_secondary",
"parent": "arm_left2",
"pivot": [8.5, 7.45, 0],
"rotation": [0, -90, 0],
"locators": {
"hand_secondary": [8.5, 7.45, 0]
}
},
{
"name": "fingers_left",
"parent": "arm_left2",
"pivot": [9, 7.25, -0.5]
},
{
"name": "finger_left",
"parent": "fingers_left",
"pivot": [9, 7.75, -0.75],
"rotation": [0, 12.5, 0],
"cubes": [
{"origin": [9, 7.75, -1.75], "size": [1, 1, 1], "inflate": 0.25, "uv": [0, 23]}
]
},
{
"name": "finger_left2",
"parent": "fingers_left",
"pivot": [9, 7.75, 0.75],
"rotation": [0, -12.5, 0],
"cubes": [
{"origin": [9, 7.75, 0.75], "size": [1, 1, 1], "inflate": 0.25, "uv": [12, 23]}
]
},
{
"name": "finger_left3",
"parent": "fingers_left",
"pivot": [9, 7.25, 0],
"cubes": [
{"origin": [9, 6.25, -0.5], "size": [1, 1, 1], "inflate": 0.25, "uv": [16, 23]}
]
},
{
"name": "arm_right",
"parent": "arms",
"pivot": [-2, 7.5, 0],
"cubes": [
{"origin": [-5, 6.5, -1.5], "size": [4, 2, 3], "uv": [0, 28], "mirror": true}
]
},
{
"name": "arm_right2",
"parent": "arm_right",
"pivot": [-5, 8.5, 1.5],
"cubes": [
{"origin": [-9, 6, -2], "size": [4, 3, 4], "inflate": 0.001, "uv": [0, 21], "mirror": true}
]
},
{
"name": "locator_hand_primary",
"parent": "arm_right2",
"pivot": [-8.5, 7.45, 0],
"rotation": [0, 90, 0],
"locators": {
"hand_primary": [-8.5, 7.45, 0]
}
},
{
"name": "fingers_right",
"parent": "arm_right2",
"pivot": [-9, 7.25, -0.5]
},
{
"name": "finger_right",
"parent": "fingers_right",
"pivot": [-9, 7.75, -0.75],
"rotation": [0, -12.5, 0],
"cubes": [
{"origin": [-10, 7.75, -1.75], "size": [1, 1, 1], "inflate": 0.25, "uv": [0, 21], "mirror": true}
]
},
{
"name": "finger_right2",
"parent": "fingers_right",
"pivot": [-9, 7.75, 0.75],
"rotation": [0, 12.5, 0],
"cubes": [
{"origin": [-10, 7.75, 0.75], "size": [1, 1, 1], "inflate": 0.25, "uv": [12, 21], "mirror": true}
]
},
{
"name": "finger_right3",
"parent": "fingers_right",
"pivot": [-9, 7.25, 0],
"cubes": [
{"origin": [-10, 6.25, -0.5], "size": [1, 1, 1], "inflate": 0.25, "uv": [16, 21], "mirror": true}
]
},
{
"name": "arm_hammer_right",
"parent": "arms",
"pivot": [-2, 7.5, 0]
},
{
"name": "arm_hammer_right2",
"parent": "arm_hammer_right",
"pivot": [-5, 8.5, 1.5]
},
{
"name": "hammer",
"parent": "arm_hammer_right2",
"pivot": [-10, 7.5, 0]
},
{
"name": "hammer2",
"parent": "hammer",
"pivot": [-10.05, 7.5, -11.25],
"cubes": [
{"origin": [-11, 6.5, -11.85], "size": [2, 2, 16], "inflate": -0.1, "uv": [91, 18]}
]
},
{
"name": "ball",
"parent": "hammer2",
"pivot": [-10, 7.5, -14.75],
"cubes": [
{"origin": [-11.5, 6, -14.75], "size": [3, 3, 3], "uv": [94, 27]},
{"origin": [-11.5, 6, -14.75], "size": [3, 3, 3], "inflate": 0.1, "uv": [112, 27]}
]
},
{
"name": "rattle",
"parent": "hammer2",
"pivot": [-10, 7.5, -15.25],
"cubes": [
{"origin": [-11.5, 6, -22.75], "size": [3, 3, 6], "uv": [84, 37]},
{"origin": [-10.5, 7, -16.75], "size": [1, 1, 2], "uv": [97, 23]},
{"origin": [-10.5, 6, -21.25], "size": [1, 1, 1], "inflate": 0.02, "pivot": [-10, 6.5, -20.75], "rotation": [0, -45, 0], "uv": [97, 40]},
{"origin": [-11, 6, -20.25], "size": [2, 1, 2], "inflate": 0.02, "pivot": [-10, 6.5, -19.25], "rotation": [0, -45, 0], "uv": [81, 38]},
{"origin": [-11, 6, -20.75], "size": [2, 1, 2], "inflate": 0.01, "uv": [114, 23]}
]
},
{
"name": "locator_item",
"parent": "rattle",
"pivot": [-10, 5.3, -19],
"locators": {
"item": {
"offset": [-10, 5.3, -19],
"rotation": [0, 135, 0]
}
}
},
{
"name": "plates",
"parent": "hammer2",
"pivot": [-10, 9.025, -20.275]
},
{
"name": "plate_top",
"parent": "plates",
"pivot": [-3.5, 9.525, -20.275],
"cubes": [
{"origin": [-4, 4.5, -20.26], "size": [6, 8, 0], "pivot": [-4, 10, -20.25], "rotation": [-90, -180, 0], "uv": [115, 46]},
{"origin": [0, -1.5, -20.26], "size": [4, 8, 0], "pivot": [-2, 4, -20.25], "rotation": [-90, -180, 0], "uv": [117, 37]},
{"origin": [8, 4.5, -20.26], "size": [0, 8, 6], "pivot": [2, 10, -20.25], "rotation": [-90, -180, 0], "uv": [115, 49]}
]
},
{
"name": "plate_middle",
"parent": "plates",
"pivot": [-6.5, 9.525, -21.775],
"cubes": [
{"origin": [-10, 4.5, -21.75], "size": [8, 9, 0], "pivot": [-8, 10, -21.75], "rotation": [-90, -180, 0], "uv": [85, 47]},
{"origin": [-10, 4.5, -30.75], "size": [8, 0, 6], "pivot": [-8, 10, -30.75], "rotation": [-90, -180, 0], "uv": [79, 57]}
]
},
{
"name": "plate_bottom",
"parent": "plates",
"pivot": [-16.5, 10.525, -20.775],
"cubes": [
{"origin": [-21, 4.5, -20.74], "size": [5, 8, 0], "pivot": [-16, 10, -20.75], "rotation": [-90, 180, 0], "uv": [103, 46]},
{"origin": [-24, -1.5, -20.74], "size": [4, 8, 0], "pivot": [-18, 4, -20.75], "rotation": [-90, 180, 0], "uv": [104, 37], "mirror": true},
{"origin": [-28, 4.5, -20.74], "size": [0, 8, 6], "pivot": [-22, 10, -20.75], "rotation": [-90, 180, 0], "uv": [102, 49], "mirror": true}
]
},
{
"name": "locator_physical",
"parent": "plate_bottom",
"pivot": [-16, 7, -19],
"locators": {
"physical": [-16, 7, -19]
}
},
{
"name": "bandage",
"parent": "plates",
"pivot": [-8, 10, -22.25],
"cubes": [
{"origin": [-10.75, 10.2, -23.25], "size": [2, 0, 6], "pivot": [-9.75, 13, -20.25], "rotation": [0, 45, 0], "uv": [74, 57]},
{"origin": [-10.75, 10.1, -23.25], "size": [2, 0, 6], "pivot": [-9.75, 13, -20.25], "rotation": [0, -55, 0], "uv": [69, 57]}
]
},
{
"name": "skirt",
"parent": "torso",
"pivot": [0, 3, 0]
},
{
"name": "skirt_left",
"parent": "skirt",
"pivot": [2.7, 3, -0.5],
"rotation": [0, 0, 30],
"cubes": [
{"origin": [2.7, 3, -2], "size": [3, 0, 3], "uv": [65, 60]}
]
},
{
"name": "skirt_right",
"parent": "skirt",
"pivot": [-2.7, 3, -0.5],
"rotation": [0, 0, -30],
"cubes": [
{"origin": [-5.7, 3, -2], "size": [3, 0, 3], "uv": [65, 56], "mirror": true}
]
},
{
"name": "legs",
"parent": "body",
"pivot": [-0.2, 4.5, 0]
},
{
"name": "leg_left",
"parent": "body",
"pivot": [1.25, 4, 0],
"parent": "legs",
"pivot": [1.55, 4, 0],
"cubes": [
{"origin": [0.25, 2, -1], "size": [2, 2, 2], "uv": [28, 50]}
{"origin": [0.05, 1.5, -1.5], "size": [3, 3, 3], "inflate": -0.25, "uv": [12, 33]}
]
},
{
"name": "leg_left2",
"parent": "leg_left",
"pivot": [1.25, 2, -1],
"pivot": [1.55, 1.7, -1.4],
"cubes": [
{"origin": [0.25, 0, -1], "size": [2, 2, 2], "inflate": 0.2, "uv": [50, 0]}
{"origin": [0.05, 0, -1.5], "size": [3, 2, 3], "uv": [12, 39]}
]
},
{
"name": "locator_foot_secondary",
"parent": "leg_left2",
"pivot": [1.6, 0.5, 0],
"rotation": [90, 0, 0],
"locators": {
"foot_secondary": [1.6, 0.5, 0]
}
},
{
"name": "leg_right",
"parent": "body",
"pivot": [-1.25, 4, 0],
"parent": "legs",
"pivot": [-1.55, 4, 0],
"cubes": [
{"origin": [-2.25, 2, -1], "size": [2, 2, 2], "uv": [20, 50]}
{"origin": [-3.05, 1.5, -1.5], "size": [3, 3, 3], "inflate": -0.25, "uv": [0, 33], "mirror": true}
]
},
{
"name": "leg_right2",
"parent": "leg_right",
"pivot": [-1.25, 2, -1],
"pivot": [-1.55, 1.7, -1.4],
"cubes": [
{"origin": [-2.25, 0, -1], "size": [2, 2, 2], "inflate": 0.2, "uv": [12, 32]}
{"origin": [-3.05, 0, -1.5], "size": [3, 2, 3], "uv": [0, 39], "mirror": true}
]
},
{
"name": "locator_foot_primary",
"parent": "leg_right2",
"pivot": [-1.6, 0.5, 0],
"rotation": [90, 0, 0],
"locators": {
"foot_primary": [-1.6, 0.5, 0]
}
}
]
}
@@ -1,305 +0,0 @@
{
"format_version": "1.12.0",
"minecraft:geometry": [
{
"description": {
"identifier": "geometry.tinkatuff_dot",
"texture_width": 64,
"texture_height": 64,
"visible_bounds_width": 3,
"visible_bounds_height": 2.5,
"visible_bounds_offset": [0, 0.75, 0]
},
"bones": [
{
"name": "tinkatuff",
"pivot": [0, 0, 0]
},
{
"name": "body",
"parent": "tinkatuff",
"pivot": [0, 6, 0]
},
{
"name": "torso",
"parent": "body",
"pivot": [0, 4.25, 0],
"cubes": [
{"origin": [-2, 7.5, -1.5], "size": [4, 3, 3], "uv": [41, 41]},
{"origin": [-2.5, 3, -2], "size": [5, 5, 4], "uv": [36, 0]}
]
},
{
"name": "skirt_left",
"parent": "torso",
"pivot": [2.5, 3, 0],
"rotation": [0, 0, 45],
"cubes": [
{"origin": [2.5, 3, -1.5], "size": [3, 0, 3], "uv": [6, 15]}
]
},
{
"name": "skirt_right",
"parent": "torso",
"pivot": [-2.5, 3, 0],
"rotation": [0, 0, -45],
"cubes": [
{"origin": [-5.5, 3, -1.5], "size": [3, 0, 3], "uv": [0, 15]}
]
},
{
"name": "arm_left",
"parent": "torso",
"pivot": [2, 8, 0],
"cubes": [
{"origin": [1, 7, -1], "size": [4, 2, 2], "uv": [35, 47]}
]
},
{
"name": "arm_left2",
"parent": "arm_left",
"pivot": [5, 9, 1],
"cubes": [
{"origin": [5, 7, -1.5], "size": [4, 2, 3], "inflate": 0.001, "uv": [44, 35]}
]
},
{
"name": "finger_left",
"parent": "arm_left2",
"pivot": [9, 7.75, -0.5],
"rotation": [0, 12.5, 0],
"cubes": [
{"origin": [9, 7.75, -1.5], "size": [1, 1, 1], "uv": [33, 44]}
]
},
{
"name": "finger_left2",
"parent": "arm_left2",
"pivot": [9, 7.75, 0.5],
"rotation": [0, -12.5, 0],
"cubes": [
{"origin": [9, 7.75, 0.5], "size": [1, 1, 1], "uv": [40, 30]}
]
},
{
"name": "finger_left3",
"parent": "arm_left2",
"pivot": [9, 8, 0],
"cubes": [
{"origin": [9, 7, -0.5], "size": [1, 1, 1], "uv": [36, 30]}
]
},
{
"name": "arm_hammer_right",
"parent": "torso",
"pivot": [-2, 8, 0]
},
{
"name": "arm_hammer_right2",
"parent": "arm_hammer_right",
"pivot": [-5, 9, 1]
},
{
"name": "hammer",
"parent": "arm_hammer_right2",
"pivot": [-9.75, 8, 0]
},
{
"name": "hammer2",
"parent": "hammer",
"pivot": [-9.55, 7.9675, -9.0675],
"cubes": [
{"origin": [-11, 6.5, -20], "size": [3, 3, 6], "uv": [30, 9]},
{"origin": [-10.5, 6.475, -18], "size": [2, 0, 2], "pivot": [-9.5, 6.475, -17], "rotation": [0, 45, 0], "uv": [-1, 54]},
{"origin": [-11, 6.5, -12.5], "size": [3, 3, 3], "uv": [0, 47]},
{"origin": [-10, 7.5, -14.5], "size": [1, 1, 18], "inflate": 0.001, "uv": [0, 0]},
{"origin": [-15.5, 4.025, -18.525], "size": [12, 11, 0], "pivot": [-9.5, 9.525, -18.525], "rotation": [-90, -180, 0], "uv": [0, 36]},
{"origin": [-15, 6.53, -18.04], "size": [7, 7, 0], "pivot": [-11, 9.53, -18.04], "rotation": [90, -45, -180], "uv": [42, 56]},
{"origin": [-15.5, 3.5, -30.5], "size": [0, 8, 5], "pivot": [-9.5, 12.25, -22.775], "rotation": [90, 0, 0], "uv": [34, 31]},
{"origin": [-15.5, 3.5, -30.5], "size": [3, 8, 0], "pivot": [-9.5, 12.25, -22.775], "rotation": [90, 0, 0], "uv": [47, 47]},
{"origin": [-7.5, 2.5, -30.5], "size": [4, 9, 0], "pivot": [-9.5, 12.25, -22.775], "rotation": [90, 0, 0], "uv": [12, 47]},
{"origin": [-3.5, 2.525, -20.025], "size": [0, 9, 5], "pivot": [-3.5, 7.025, -17.525], "rotation": [90, 180, 0], "uv": [24, 31]},
{"origin": [-13.5, 12.5, -29.5], "size": [8, 1, 0], "pivot": [-9.5, 12.25, -22.775], "rotation": [90, 0, 0], "uv": [0, 7]},
{"origin": [-13.5, 7.525, -26.025], "size": [8, 0, 4], "pivot": [-9.5, 7.525, -24.025], "rotation": [90, 180, 0], "uv": [17, 19]}
]
},
{
"name": "arm_right",
"parent": "torso",
"pivot": [-2, 8, 0],
"cubes": [
{"origin": [-5, 7, -1], "size": [4, 2, 2], "uv": [0, 32]}
]
},
{
"name": "arm_right2",
"parent": "arm_right",
"pivot": [-5, 9, 1],
"cubes": [
{"origin": [-9, 7, -1.5], "size": [4, 2, 3], "inflate": 0.001, "uv": [44, 30]}
]
},
{
"name": "finger_right",
"parent": "arm_right2",
"pivot": [-9, 7.75, -0.5],
"rotation": [0, -12.5, 0],
"cubes": [
{"origin": [-10, 7.75, -1.5], "size": [1, 1, 1], "uv": [36, 2]}
]
},
{
"name": "finger_right2",
"parent": "arm_right2",
"pivot": [-9, 7.75, 0.5],
"rotation": [0, 12.5, 0],
"cubes": [
{"origin": [-10, 7.75, 0.5], "size": [1, 1, 1], "uv": [36, 0]}
]
},
{
"name": "finger_right3",
"parent": "arm_right2",
"pivot": [-9, 8, 0],
"cubes": [
{"origin": [-10, 7, -0.5], "size": [1, 1, 1], "uv": [10, 32]}
]
},
{
"name": "head",
"parent": "torso",
"pivot": [0, 9, 0.5],
"cubes": [
{"origin": [-3.5, 9, -3.5], "size": [7, 6, 7], "uv": [0, 19]},
{"origin": [-4, 17.30092, -3.63266], "size": [8, 0, 8], "pivot": [0, 13.80092, 0.36734], "rotation": [-7.5, 0, 0], "uv": [12, 0]},
{"origin": [4, 10.30092, -3.63266], "size": [0, 7, 8], "pivot": [0, 13.80092, 0.36734], "rotation": [-7.5, 0, 0], "uv": [20, 0]},
{"origin": [-4, 10.30092, 4.36734], "size": [8, 7, 0], "pivot": [0, 13.80092, 0.36734], "rotation": [-7.5, 0, 0], "uv": [0, 0]},
{"origin": [-4, 11.30092, -3.63266], "size": [8, 6, 0], "pivot": [0, 13.80092, 0.36734], "rotation": [-7.5, 0, 0], "uv": [42, 9]},
{"origin": [-4, 10.30092, -3.63266], "size": [0, 7, 8], "pivot": [0, 13.80092, 0.36734], "rotation": [-7.5, 0, 0], "uv": [0, 0]}
]
},
{
"name": "eye_left",
"parent": "head",
"pivot": [2.25, 12.25, -3.01],
"rotation": [0, 0, -7.5],
"cubes": [
{"origin": [1.75, 11.25, -3.51], "size": [1, 2, 1], "uv": [21, 23]}
]
},
{
"name": "eyelid_left",
"parent": "eye_left",
"pivot": [2.25, 12.25, -2.91],
"cubes": [
{"origin": [1.75, 11.25, -3.41], "size": [1, 2, 1], "inflate": 0.01, "uv": [26, 15]}
]
},
{
"name": "eye_right",
"parent": "head",
"pivot": [-2.25, 12.25, -3.01],
"rotation": [0, 0, 7.5],
"cubes": [
{"origin": [-2.75, 11.25, -3.51], "size": [1, 2, 1], "uv": [0, 21]}
]
},
{
"name": "eyelid_right",
"parent": "eye_right",
"pivot": [-2.25, 12.25, -2.91],
"cubes": [
{"origin": [-2.75, 11.25, -3.41], "size": [1, 2, 1], "inflate": 0.01, "uv": [3, 23]}
]
},
{
"name": "mouth_open",
"parent": "head",
"pivot": [0, 10.5, -3.41],
"cubes": [
{"origin": [-1.5, 9.5, -3.41], "size": [3, 2, 0], "uv": [20, 15]}
]
},
{
"name": "mouth_closed",
"parent": "head",
"pivot": [0, 10.5, -3.51],
"cubes": [
{"origin": [-1.5, 9.5, -3.51], "size": [3, 2, 0], "uv": [0, 19]}
]
},
{
"name": "ponytail",
"parent": "head",
"pivot": [0, 16.81524, 1.82582],
"rotation": [2.5, 0, 0],
"cubes": [
{"origin": [-2, 16.62133, -0.28751], "size": [4, 4, 8], "uv": [20, 24]}
]
},
{
"name": "ponytail2",
"parent": "ponytail",
"pivot": [0, 16.62133, 3.71249],
"cubes": [
{"origin": [-2, 9.62133, 3.71249], "size": [4, 7, 4], "inflate": -0.001, "uv": [36, 19]}
]
},
{
"name": "ponytail3",
"parent": "ponytail2",
"pivot": [0, 11.62133, 7.71249],
"cubes": [
{"origin": [-2, 9.62133, 7.71249], "size": [4, 2, 3], "inflate": -0.002, "uv": [21, 45]}
]
},
{
"name": "hair2",
"parent": "head",
"pivot": [3.25, 16.625, -1.925],
"rotation": [-30, 0, 27.5]
},
{
"name": "hair3",
"parent": "hair2",
"pivot": [3.25, 16.625, -1.925],
"cubes": [
{"origin": [1.25, 16.625, -1.925], "size": [4, 6, 0], "uv": [48, 15]}
]
},
{
"name": "leg_left",
"parent": "body",
"pivot": [1.25, 4, 0],
"cubes": [
{"origin": [0.25, 2, -1], "size": [2, 2, 2], "uv": [28, 50]}
]
},
{
"name": "leg_left2",
"parent": "leg_left",
"pivot": [1.25, 2, -1],
"cubes": [
{"origin": [0.25, 0, -1], "size": [2, 2, 2], "inflate": 0.2, "uv": [50, 0]}
]
},
{
"name": "leg_right",
"parent": "body",
"pivot": [-1.25, 4, 0],
"cubes": [
{"origin": [-2.25, 2, -1], "size": [2, 2, 2], "uv": [20, 50]}
]
},
{
"name": "leg_right2",
"parent": "leg_right",
"pivot": [-1.25, 2, -1],
"cubes": [
{"origin": [-2.25, 0, -1], "size": [2, 2, 2], "inflate": 0.2, "uv": [12, 32]}
]
}
]
}
]
}
@@ -1,650 +0,0 @@
{
"format_version": "1.12.0",
"minecraft:geometry": [
{
"description": {
"identifier": "geometry.tinkaton_dot",
"texture_width": 128,
"texture_height": 128,
"visible_bounds_width": 5,
"visible_bounds_height": 4.5,
"visible_bounds_offset": [0, 1.75, 0]
},
"bones": [
{
"name": "bb_main",
"pivot": [0, 0, 0],
"cubes": [
{"origin": [-2, 0, 0], "size": [2, 2, 2], "uv": [0, 0]}
]
},
{
"name": "tinkaton",
"pivot": [0, 0, 0]
},
{
"name": "body_hammer",
"parent": "tinkaton",
"pivot": [0, 7, 0]
},
{
"name": "torso_hammer",
"parent": "body_hammer",
"pivot": [0, 4, 0]
},
{
"name": "arms_hammer",
"parent": "torso_hammer",
"pivot": [0, 7, 0]
},
{
"name": "arm_hammer_right",
"parent": "arms_hammer",
"pivot": [-1.5, 6.5, 0]
},
{
"name": "hand_hammer_right",
"parent": "arm_hammer_right",
"pivot": [-4.5, 6.5, 1.5]
},
{
"name": "hammer",
"parent": "hand_hammer_right",
"pivot": [-8, 5.125, -0.5]
},
{
"name": "hammer_handle",
"parent": "hammer",
"pivot": [-8, 5.375, -15.75],
"cubes": [
{"origin": [-8, 1.25, -23], "size": [0, 4, 4], "uv": [64, 48]},
{"origin": [-9.5, 5.25, -23], "size": [3, 4, 5], "inflate": -0.001, "uv": [87, 0]},
{"origin": [-9.5, 3.25, -19], "size": [3, 5, 4], "uv": [88, 34]},
{"origin": [-9, 4.25, -15], "size": [2, 2, 21], "uv": [0, 27]}
]
},
{
"name": "hammer_middle",
"parent": "hammer_handle",
"pivot": [-8.8, 5.25, -29],
"cubes": [
{"origin": [-14, 12.252, -35], "size": [12, 0, 12], "inflate": 0.001, "uv": [37, 27]},
{"origin": [-14, -0.752, -35], "size": [12, 0, 12], "inflate": 0.001, "uv": [13, 27]},
{"origin": [-14, -0.75, -35], "size": [12, 13, 0], "inflate": 0.001, "uv": [80, 60]},
{"origin": [-14, -0.75, -35], "size": [0, 13, 12], "inflate": 0.001, "uv": [24, 50]},
{"origin": [-14, -0.75, -23], "size": [12, 13, 0], "inflate": 0.001, "uv": [20, 75]},
{"origin": [-2, -0.75, -35], "size": [0, 13, 12], "inflate": 0.001, "uv": [0, 38]},
{"origin": [-8, -2.75, -46], "size": [0, 12, 11], "uv": [48, 51]},
{"origin": [-9.3375, 5.7875, -30.025], "size": [2, 0, 2], "pivot": [-8.3375, 5.7875, -29.025], "rotation": [0, -45, -90], "uv": [93, 14]},
{"origin": [-13, -0.75, -24], "size": [10, 13, 0], "uv": [68, 83]},
{"origin": [-13, -0.75, -34], "size": [0, 13, 10], "uv": [0, 53]},
{"origin": [-3, -0.75, -34], "size": [0, 13, 10], "uv": [0, 17]},
{"origin": [-13, -0.75, -34], "size": [10, 13, 0], "uv": [0, 76]},
{"origin": [-13, -0.75, -34], "size": [10, 0, 10], "uv": [47, 0]},
{"origin": [-13, 12.25, -34], "size": [10, 0, 10], "uv": [36, 39]},
{"origin": [-10.5, 0.75, -28], "size": [1, 8, 1], "pivot": [-10, 5.75, -27.5], "rotation": [90, 0, 0], "uv": [20, 63]},
{"origin": [-11.5, 2.75, -30.5], "size": [3, 6, 3], "pivot": [-10, 5.75, -29], "rotation": [90, 0, -90], "uv": [57, 10]}
]
},
{
"name": "hammer_front",
"parent": "hammer_middle",
"pivot": [-7.4, 12.3, -28.5],
"cubes": [
{"origin": [-12, 12.25, -33], "size": [8, 3, 8], "uv": [64, 41]},
{"origin": [-17.5, 15.25, -38.25], "size": [19, 8, 19], "uv": [0, 0]},
{"origin": [-17.5, 15.25, -40.25], "size": [0, 8, 2], "uv": [16, 38]},
{"origin": [-17.5, 15.25, -40.25], "size": [5, 0, 2], "uv": [0, 46]},
{"origin": [-17.5, 23.25, -40.25], "size": [5, 0, 2], "uv": [0, 17]},
{"origin": [-17.5, 15.25, -40.25], "size": [15, 8, 0], "uv": [73, 52]}
]
},
{
"name": "nail",
"parent": "hammer_front",
"pivot": [-5.5, 20.25, -38.25],
"rotation": [10, 0, 0],
"cubes": [
{"origin": [-6.5, 19.25, -42.25], "size": [2, 2, 5], "uv": [88, 73]},
{"origin": [-8, 17.75, -43.25], "size": [5, 5, 1], "uv": [24, 56]}
]
},
{
"name": "locator_hammer",
"parent": "hammer_front",
"pivot": [-8, 23, -28.75],
"rotation": [90, 0, 0],
"locators": {
"hammer": [-8, 23, -28.75],
"physical": [-8, 23, -28.75],
"special2": [-8, 23, -28.75]
}
},
{
"name": "hammer_back",
"parent": "hammer_middle",
"pivot": [-8, -1, -29],
"cubes": [
{"origin": [-11, -3.75, -32], "size": [6, 3, 6], "uv": [44, 77]},
{"origin": [-12.5, -7.75, -33.5], "size": [9, 4, 9], "uv": [37, 49]}
]
},
{
"name": "seat_1_locator",
"parent": "hammer_middle",
"pivot": [-8, 0, -35],
"rotation": [105, 0, 0],
"locators": {
"seat_1": [-8, 0, -35]
}
},
{
"name": "body",
"parent": "tinkaton",
"pivot": [0, 7, 0]
},
{
"name": "torso",
"parent": "body",
"pivot": [0, 4, 0],
"cubes": [
{"origin": [-2, 6.5, -1.5], "size": [4, 3, 3], "inflate": 0.001, "uv": [88, 43]},
{"origin": [-2.5, 3, -2], "size": [5, 4, 4], "uv": [0, 0]}
]
},
{
"name": "skirt_front_right",
"parent": "torso",
"pivot": [-1.75, 3, -1.25],
"rotation": [30, 45, 0],
"cubes": [
{"origin": [-3.25, 3, -4.25], "size": [3, 0, 3], "uv": [37, 50]}
]
},
{
"name": "skirt_front_left",
"parent": "torso",
"pivot": [1.75, 3, -1.25],
"rotation": [30, -45, 0],
"cubes": [
{"origin": [0.25, 3, -4.25], "size": [3, 0, 3], "uv": [36, 45]}
]
},
{
"name": "skirt_back_left",
"parent": "torso",
"pivot": [1.75, 3, 1.25],
"rotation": [-30, 45, 0],
"cubes": [
{"origin": [0.25, 3, 1.25], "size": [3, 0, 3], "uv": [36, 42]}
]
},
{
"name": "skirt_back_right",
"parent": "torso",
"pivot": [-1.75, 3, 1.25],
"rotation": [-30, -45, 0],
"cubes": [
{"origin": [-3.25, 3, 1.25], "size": [3, 0, 3], "uv": [36, 39]}
]
},
{
"name": "head",
"parent": "torso",
"pivot": [0, 7.75, 0],
"cubes": [
{"origin": [-3.5, 7.75, -3.5], "size": [7, 7, 7], "uv": [73, 20]},
{"origin": [-3.5, 9.25, -4], "size": [0, 6, 8], "inflate": 0.01, "uv": [24, 42]},
{"origin": [3.5, 9.25, -4], "size": [0, 6, 8], "inflate": 0.01, "uv": [0, 32]},
{"origin": [-3.5, 8.25, 4], "size": [7, 7, 0], "inflate": 0.01, "uv": [88, 80]},
{"origin": [-3.5, 11.25, -4], "size": [7, 4, 0], "inflate": 0.01, "uv": [28, 88]},
{"origin": [-3.5, 15.25, -4], "size": [7, 0, 8], "inflate": 0.01, "uv": [17, 39]}
]
},
{
"name": "ear_left",
"parent": "head",
"pivot": [0, 14.75, 0],
"rotation": [0, 0, 10],
"cubes": [
{"origin": [0, 14.75, -1], "size": [3, 6, 2], "uv": [0, 89]}
]
},
{
"name": "ear_left2",
"parent": "head",
"pivot": [3, 14.75, 0],
"rotation": [0, 0, 20],
"cubes": [
{"origin": [3, 13.75, 0], "size": [2, 3, 0], "uv": [44, 78]}
]
},
{
"name": "ear_right",
"parent": "head",
"pivot": [0, 14.75, 0],
"rotation": [0, 0, -10],
"cubes": [
{"origin": [-3, 14.75, -1], "size": [3, 6, 2], "uv": [88, 87]}
]
},
{
"name": "ear_right2",
"parent": "head",
"pivot": [-3, 14.75, 0],
"cubes": [
{"origin": [-5, 13.75, 0], "size": [2, 3, 0], "pivot": [-3, 14.75, -0.5], "rotation": [0, 0, -20], "uv": [76, 22]}
]
},
{
"name": "eye_left",
"parent": "head",
"pivot": [2.5, 11.25, -3.025],
"cubes": [
{"origin": [2, 10.25, -3.525], "size": [1, 2, 1], "uv": [14, 0]}
]
},
{
"name": "eyelid_left",
"parent": "eye_left",
"pivot": [2.5, 11.25, -2.925],
"cubes": [
{"origin": [2, 10.25, -3.425], "size": [1, 2, 1], "inflate": 0.01, "uv": [76, 19]}
]
},
{
"name": "locator_eye_left",
"parent": "eye_left",
"pivot": [-2.5, 11.25, -3.5],
"locators": {
"eye1": [-2.5, 11.25, -3.5]
}
},
{
"name": "eye_right",
"parent": "head",
"pivot": [-2.5, 11.25, -3.025],
"cubes": [
{"origin": [-3, 10.25, -3.525], "size": [1, 2, 1], "uv": [0, 0]}
]
},
{
"name": "eyelid_right",
"parent": "eye_right",
"pivot": [-2.5, 11.25, -2.925],
"cubes": [
{"origin": [-3, 10.25, -3.425], "size": [1, 2, 1], "inflate": 0.01, "uv": [20, 72]}
]
},
{
"name": "locator_eye_right",
"parent": "eye_right",
"pivot": [2.5, 11.25, -3.5],
"locators": {
"eye2": [2.5, 11.25, -3.5]
}
},
{
"name": "mouths",
"parent": "head",
"pivot": [0, 9.25, -3.525]
},
{
"name": "mouth_open",
"parent": "mouths",
"pivot": [0, 9.25, -3.61],
"cubes": [
{"origin": [-2.5, 8.25, -3.41], "size": [5, 2, 0], "uv": [77, 0]}
]
},
{
"name": "locator_mouth",
"parent": "mouth_open",
"pivot": [0, 9.25, -3.5],
"locators": {
"mouth": [0, 9.25, -3.5]
}
},
{
"name": "mouth_closed",
"parent": "mouths",
"pivot": [0, 9.25, -3.41],
"cubes": [
{"origin": [-3.5, 8.25, -3.51], "size": [7, 2, 0], "uv": [48, 74]}
]
},
{
"name": "hair_right",
"parent": "head",
"pivot": [-3.5, 13.75, 0],
"cubes": [
{"origin": [-7, 9.75, -3], "size": [4, 5, 6], "uv": [14, 88]}
]
},
{
"name": "hair_right2",
"parent": "hair_right",
"pivot": [-3, 9.5, 0],
"cubes": [
{"origin": [-8, 0.75, -4], "size": [5, 9, 8], "uv": [69, 2]}
]
},
{
"name": "hair_right3",
"parent": "hair_right2",
"pivot": [-5.5, 0.75, 0],
"cubes": [
{"origin": [-5.5, -3.25, -4.5], "size": [0, 4, 9], "uv": [0, 4]}
]
},
{
"name": "hair_left",
"parent": "head",
"pivot": [3.5, 14.25, 0],
"cubes": [
{"origin": [3, 10.25, -3], "size": [4, 5, 6], "uv": [38, 86]}
]
},
{
"name": "hair_left2",
"parent": "hair_left",
"pivot": [3, 10, 0],
"cubes": [
{"origin": [3, 1.25, -4], "size": [5, 9, 8], "uv": [62, 66]}
]
},
{
"name": "hair_left3",
"parent": "hair_left2",
"pivot": [5.5, 1.25, 0],
"cubes": [
{"origin": [5.5, -2.75, -4.5], "size": [0, 4, 9], "uv": [0, 0]}
]
},
{
"name": "locator_head",
"parent": "head",
"pivot": [0, 15.25, -2.5],
"locators": {
"head": [0, 15.25, -2.5]
}
},
{
"name": "locator_item_hat",
"parent": "head",
"pivot": [0, 16.25, 0],
"locators": {
"item_hat": [0, 16.25, 0]
}
},
{
"name": "locator_tera_hat",
"parent": "head",
"pivot": [0, 15.25, 0],
"locators": {
"tera_hat": [0, 15.25, 0]
}
},
{
"name": "locator_face",
"parent": "head",
"pivot": [0, 10.25, -3.5],
"locators": {
"face": [0, 10.25, -3.5]
}
},
{
"name": "locator_item_face",
"parent": "head",
"pivot": [0, 11.5, -3.5],
"locators": {
"item_face": [0, 11.5, -3.5]
}
},
{
"name": "arms",
"parent": "torso",
"pivot": [0, 7, 0]
},
{
"name": "arm_left",
"parent": "arms",
"pivot": [1.5, 6.5, 0],
"cubes": [
{"origin": [1.5, 5.5, -1.5], "size": [3, 2, 3], "uv": [94, 16]}
]
},
{
"name": "hand_left",
"parent": "arm_left",
"pivot": [4.5, 6.5, 1.5],
"cubes": [
{"origin": [4.5, 5.5, -2], "size": [4, 2, 4], "inflate": 0.01, "uv": [52, 86]}
]
},
{
"name": "locator_hand_secondary",
"parent": "hand_left",
"pivot": [7.75, 6.5, 0],
"rotation": [0, -90, 0],
"locators": {
"hand_secondary": [7.75, 6.5, 0]
}
},
{
"name": "locator_item",
"parent": "hand_left",
"pivot": [9.5, 5.75, 0],
"locators": {
"item": [9.5, 5.75, 0]
}
},
{
"name": "finger_left",
"parent": "hand_left",
"pivot": [8.25, 7, -1.5],
"rotation": [0, 17.5, 0],
"cubes": [
{"origin": [8.25, 6, -2], "size": [2, 1, 1], "uv": [44, 76]}
]
},
{
"name": "finger_left2",
"parent": "hand_left",
"pivot": [8.5, 7, -0.5],
"rotation": [0, 5, 0],
"cubes": [
{"origin": [8.5, 6, -1], "size": [2, 1, 1], "uv": [73, 60]}
]
},
{
"name": "finger_left3",
"parent": "hand_left",
"pivot": [8.5, 7, 0.5],
"rotation": [0, -5, 0],
"cubes": [
{"origin": [8.5, 6, 0], "size": [2, 1, 1], "uv": [66, 47]}
]
},
{
"name": "finger_left4",
"parent": "hand_left",
"pivot": [8.25, 7, 1.5],
"rotation": [0, -17.5, 0],
"cubes": [
{"origin": [8.25, 6, 1], "size": [2, 1, 1], "uv": [66, 45]}
]
},
{
"name": "thumb_left",
"parent": "hand_left",
"pivot": [5, 5.5, -0.5],
"rotation": [0, 0, 42.5],
"cubes": [
{"origin": [5, 5.5, -1.5], "size": [2, 1, 2], "inflate": 0.01, "uv": [94, 24]}
]
},
{
"name": "arm_right",
"parent": "arms",
"pivot": [-1.5, 6.5, 0],
"cubes": [
{"origin": [-4.5, 5.5, -1.5], "size": [3, 2, 3], "uv": [58, 93]}
]
},
{
"name": "hand_right",
"parent": "arm_right",
"pivot": [-4.5, 6.5, 1.5],
"cubes": [
{"origin": [-8.5, 5.5, -2], "size": [4, 2, 4], "inflate": 0.01, "uv": [69, 35]}
]
},
{
"name": "locator_hand_primary",
"parent": "hand_right",
"pivot": [-7.75, 6.5, 0],
"rotation": [0, 90, 0],
"locators": {
"hand_primary": [-7.75, 6.5, 0]
}
},
{
"name": "finger_right",
"parent": "hand_right",
"pivot": [-8.25, 7, -1.5],
"rotation": [0, -17.5, 0],
"cubes": [
{"origin": [-10.25, 6, -2], "size": [2, 1, 1], "uv": [66, 43]}
]
},
{
"name": "finger_right2",
"parent": "hand_right",
"pivot": [-8.5, 7, -0.5],
"rotation": [0, -5, 0],
"cubes": [
{"origin": [-10.5, 6, -1], "size": [2, 1, 1], "uv": [66, 41]}
]
},
{
"name": "finger_right3",
"parent": "hand_right",
"pivot": [-8.5, 7, 0.5],
"rotation": [0, 5, 0],
"cubes": [
{"origin": [-10.5, 6, 0], "size": [2, 1, 1], "uv": [64, 56]}
]
},
{
"name": "finger_right4",
"parent": "hand_right",
"pivot": [-8.25, 7, 1.5],
"rotation": [0, 17.5, 0],
"cubes": [
{"origin": [-10.25, 6, 1], "size": [2, 1, 1], "uv": [12, 17]}
]
},
{
"name": "thumb_right",
"parent": "hand_right",
"pivot": [-5, 5.5, -0.5],
"rotation": [0, 0, -42.5],
"cubes": [
{"origin": [-7, 5.5, -1.5], "size": [2, 1, 2], "inflate": 0.01, "uv": [94, 21]}
]
},
{
"name": "leg_right",
"parent": "body",
"pivot": [-1.25, 4, 0],
"cubes": [
{"origin": [-2.25, 2, -1], "size": [2, 2, 2], "uv": [10, 89]}
]
},
{
"name": "leg_right2",
"parent": "leg_right",
"pivot": [-1.25, 2, -1],
"cubes": [
{"origin": [-2.25, 0, -1], "size": [2, 2, 2], "inflate": 0.2, "uv": [81, 34]}
]
},
{
"name": "locator_foot_primary",
"parent": "leg_right2",
"pivot": [-1.25, 0.5, 0],
"rotation": [90, 0, 0],
"locators": {
"foot_primary": [-1.25, 0.5, 0]
}
},
{
"name": "leg_left",
"parent": "body",
"pivot": [1.25, 4, 0],
"cubes": [
{"origin": [0.25, 2, -1], "size": [2, 2, 2], "uv": [70, 62]}
]
},
{
"name": "leg_left2",
"parent": "leg_left",
"pivot": [1.25, 2, -1],
"cubes": [
{"origin": [0.25, 0, -1], "size": [2, 2, 2], "inflate": 0.2, "uv": [38, 54]}
]
},
{
"name": "locator_foot_secondary",
"parent": "leg_left2",
"pivot": [1.25, 0.5, 0],
"rotation": [90, 0, 0],
"locators": {
"foot_secondary": [1.25, 0.5, 0]
}
},
{
"name": "locator_middle",
"parent": "body",
"pivot": [0, 7, 0],
"locators": {
"middle": [0, 7, 0]
}
},
{
"name": "locator_target",
"parent": "body",
"pivot": [0, 7, -6],
"locators": {
"target": [0, 7, -6]
}
},
{
"name": "locator_root",
"parent": "tinkaton",
"pivot": [0, 0, 0],
"locators": {
"root": [0, 0, 0]
}
},
{
"name": "locator_special",
"parent": "tinkaton",
"pivot": [0, 7, -8],
"locators": {
"special": [0, 7, -8]
}
},
{
"name": "locator_top",
"parent": "tinkaton",
"pivot": [0, 23, 0],
"locators": {
"top": [0, 23, 0]
}
}
]
}
]
}
@@ -8,7 +8,7 @@
"seat_1": [0, 0.45, 0]
},
"thirdPersonCameraOffset": {
"seat_1": [0, 0.35, 0],
"seat_1": [0, 0.35, 5],
"seat_1_reverse": [0, 0.35, 0]
},
"thirdPersonCameraOffsetNoViewBobbing": {
@@ -41,7 +41,7 @@
},
"walking": {
"poseTypes": ["WALK", "SWIM"],
"condition": "!q.in_air && q.has_entity ? !q.is_sprinting : 1.0",
"condition": "!q.in_air && !q.is_sprinting",
"animations": [
"q.bedrock('heracross', 'ground_walk')",
{
@@ -53,7 +53,7 @@
},
"running": {
"poseTypes": ["WALK", "SWIM"],
"condition": "!q.in_air && q.has_entity ? q.is_sprinting : 0.0",
"condition": "!q.in_air && q.is_sprinting",
"animations": [
"q.bedrock('heracross', 'ground_run')",
{
@@ -5,8 +5,7 @@
"profileTranslation": [0, 0.46, 0],
"rootBone": "mudkip",
"animations": {
"cry": "q.bedrock_stateful('mudkip', 'cry')",
"recoil": "q.bedrock_stateful('mudkip', 'recoil')"
"cry": "q.bedrock_stateful('mudkip', 'cry')"
},
"poses": {
"standing": {
@@ -5,8 +5,7 @@
"profileTranslation": [0, 0.65, 0],
"rootBone": "marshtomp",
"animations": {
"cry": "q.bedrock_stateful('marshtomp', 'cry')",
"recoil": "q.bedrock_stateful('marshtomp', 'recoil')"
"cry": "q.bedrock_stateful('marshtomp', 'cry')"
},
"poses": {
"standing": {
@@ -5,8 +5,7 @@
"profileTranslation": [0, 0.96, 0],
"rootBone": "swampert",
"animations": {
"cry": "q.bedrock_stateful('swampert', 'cry')",
"recoil": "q.bedrock_stateful('swampert', 'recoil')"
"cry": "q.bedrock_stateful('swampert', 'cry')"
},
"poses": {
"standing": {
@@ -1,16 +1,8 @@
{
"portraitScale": 2.48,
"portraitTranslation": [
-0.33,
-0.93,
0
],
"portraitTranslation": [-0.33, -0.93, 0],
"profileScale": 0.7,
"profileTranslation": [
0.02,
0.76,
0
],
"profileTranslation": [0.02, 0.76, 0],
"rootBone": "rufflet",
"animations": {
"cry": "q.bedrock_stateful('rufflet', 'cry')",
@@ -18,13 +10,7 @@
},
"poses": {
"standing": {
"poseTypes": [
"STAND",
"NONE",
"PORTRAIT",
"PROFILE"
],
"isBattle": false,
"poseTypes": ["STAND", "NONE", "PORTRAIT", "PROFILE"],
"animations": [
"q.look('head')",
"q.bedrock('rufflet', 'ground_idle')"
@@ -36,10 +22,7 @@
]
},
"walking": {
"poseTypes": [
"WALK",
"SWIM"
],
"poseTypes": ["WALK", "SWIM"],
"animations": [
"q.look('head')",
"q.bedrock('rufflet', 'ground_walk')"
@@ -51,9 +34,7 @@
]
},
"hover": {
"poseTypes": [
"HOVER"
],
"poseTypes": ["HOVER"],
"animations": [
"q.pitch_tilt('body', 1)",
"q.look('head')",
@@ -65,9 +46,7 @@
]
},
"fly": {
"poseTypes": [
"FLY"
],
"poseTypes": ["FLY"],
"animations": [
"q.pitch_tilt('body', 1)",
"q.look('head')",
@@ -81,6 +60,9 @@
},
"sleep": {
"poseTypes": ["SLEEP"],
"namedAnimations": {
"cry": "q.bedrock_stateful('dummy', 'cry')"
},
"animations": ["q.bedrock('rufflet', 'sleep')"],
"transformTicks": 10
}
@@ -22,7 +22,6 @@
"poses": {
"standing": {
"poseTypes": ["STAND", "NONE", "PORTRAIT", "PROFILE"],
"isBattle": false,
"animations": [
"q.look('neck1', 1, 1, 5, -5, 10, -10)",
"q.look('neck2', 1, 1, 35, -10, 15, -15)",
@@ -96,6 +95,9 @@
},
"sleep": {
"poseTypes": ["SLEEP"],
"namedAnimations": {
"cry": "q.bedrock_stateful('dummy', 'cry')"
},
"animations": ["q.bedrock('braviary', 'sleep')"],
"transformTicks": 10
}
@@ -22,7 +22,6 @@
"poses": {
"standing": {
"poseTypes": ["STAND", "NONE", "PORTRAIT", "PROFILE"],
"isBattle": false,
"animations": [
"q.look('neck', 1, 1, 3, -20, 10, -10)",
"q.look('neck2', 1, 1, 1, -35, 15, -15)",
@@ -96,6 +95,9 @@
},
"sleep": {
"poseTypes": ["SLEEP"],
"namedAnimations": {
"cry": "q.bedrock_stateful('dummy', 'cry')"
},
"animations": ["q.bedrock('braviary_hisuian', 'sleep')"],
"transformTicks": 10
}
@@ -19,28 +19,9 @@
"cry": "q.bedrock_stateful('mudsdale', 'cry')"
},
"poses": {
"standing": {
"poseName": "standing",
"poseTypes": ["STAND", "FLOAT", "NONE", "PORTRAIT", "PROFILE"],
"condition": "q.has_entity ? !q.in_air : 1.0",
"animations": [
"q.look('neck', 0.5, 0.5, 15, -15, 30, -30)",
"q.look('neck2', 0.5, 0.5, 10, -10, 25, -25)",
"q.look('head', 0.4, 0.25, 5, -5, 10, -10)",
"q.bedrock('mudsdale', 'ground_idle')",
"q.bedrock_stateful('mudsdale', 'blink')"
],
"transformTicks": 10
},
"sleep": {
"poseName": "sleep",
"poseTypes": ["SLEEP"],
"animations": ["q.bedrock('mudsdale', 'sleep')"]
},
"in-air": {
"poseTypes": ["STAND", "WALK"],
"condition": "q.in_air",
"isBattle": false,
"animations": [
"q.look('neck', 0.5, 0.5, 15, -15, 30, -30)",
"q.look('neck2', 0.5, 0.5, 10, -10, 25, -25)",
@@ -52,26 +33,21 @@
"transformTicks": 5,
"transformToTicks": 5
},
"walk": {
"poseName": "walk",
"poseTypes": ["WALK", "SWIM"],
"condition": "!q.is_sprinting",
"standing": {
"poseTypes": ["STAND", "FLOAT", "NONE", "PORTRAIT", "PROFILE"],
"condition": "!q.in_air",
"animations": [
"q.look('neck', 0.5, 0.5, 15, -15, 30, -30)",
"q.look('neck2', 0.5, 0.5, 10, -10, 25, -25)",
"q.look('head', 0.4, 0.25, 5, -5, 10, -10)",
"q.bedrock('mudsdale', 'ground_walk')",
"q.bedrock_stateful('mudsdale', 'blink')",
{
"condition": "q.is_ridden && q.has_entity && !q.in_air",
"animation": "q.bedrock('mudsdale', 'ride_ground_walk')"
}
"q.bedrock('mudsdale', 'ground_idle')",
"q.bedrock_stateful('mudsdale', 'blink')"
],
"transformTicks": 10
"transformTicks": 5
},
"run": {
"poseTypes": ["WALK", "SWIM"],
"condition": "q.is_sprinting",
"condition": "!q.in_air && q.is_sprinting",
"animations": [
"q.look('neck', 0.5, 0.5, 15, -15, 30, -30)",
"q.look('neck2', 0.5, 0.5, 10, -10, 25, -25)",
@@ -83,7 +59,30 @@
"animation": "q.bedrock('mudsdale', 'ride_ground_run')"
}
],
"transformTicks": 10
"transformTicks": 5
},
"walk": {
"poseTypes": ["WALK", "SWIM"],
"condition": "!q.in_air && !q.is_sprinting",
"animations": [
"q.look('neck', 0.5, 0.5, 15, -15, 30, -30)",
"q.look('neck2', 0.5, 0.5, 10, -10, 25, -25)",
"q.look('head', 0.4, 0.25, 5, -5, 10, -10)",
"q.bedrock('mudsdale', 'ground_walk')",
"q.bedrock_stateful('mudsdale', 'blink')",
{
"condition": "q.is_ridden && q.has_entity && !q.in_air",
"animation": "q.bedrock('mudsdale', 'ride_ground_walk')"
}
],
"transformTicks": 5
},
"sleep": {
"poseTypes": ["SLEEP"],
"namedAnimations": {
"cry": "q.bedrock_stateful('dummy', 'cry')"
},
"animations": ["q.bedrock('mudsdale', 'sleep')"]
}
}
}
@@ -38,7 +38,7 @@
"q.bedrock_quirk('ceruledge', 'blink')"
],
"transitions": {
"battle-standing": "q.bedrock_primary('ceruledge', 'battle_intro')q.curve('symmetrical_wide'))"
"battle-standing": "q.bedrock_primary('ceruledge', 'battle_intro', q.curve('one'))"
}
},
"walking": {
@@ -0,0 +1,66 @@
{
"portraitScale": 2,
"portraitTranslation": [0, -1.01, 0.0],
"profileScale": 1,
"profileTranslation": [0.0, 0.25, 0.0],
"rootBone": "tinkatink",
"animations": {
"faint": "q.bedrock_primary('tinkatink', 'faint', q.curve('one'))",
"cry": "q.bedrock_stateful('tinkatink', 'cry')"
},
"poses": {
"battle-standing": {
"poseTypes": ["STAND"],
"isBattle": true,
"animations": [
"q.look('head')",
"q.bedrock('tinkatink', 'battle_idle')"
],
"quirks": ["q.bedrock_quirk('tinkatink', 'blink')"]
},
"standing": {
"poseTypes": ["STAND", "NONE", "PORTRAIT", "PROFILE"],
"isBattle": false,
"animations": [
"q.look('head')",
"q.bedrock('tinkatink', 'ground_idle')"
],
"quirks": ["q.bedrock_quirk('tinkatink', 'blink')"]
},
"walking": {
"poseTypes": ["WALK"],
"animations": [
"q.look('head')",
"q.bedrock('tinkatink', 'ground_walk')"
],
"quirks": ["q.bedrock_quirk('tinkatink', 'blink')"]
},
"sleeping": {
"poseTypes": ["SLEEP"],
"animations": ["q.bedrock('tinkatink', 'sleep')"],
"namedAnimations": {
"cry": "q.bedrock_stateful('dummy', 'cry')"
}
},
"shoulder_left": {
"poseTypes": ["SHOULDER_LEFT"],
"animations": [
"q.look('head')",
"q.bedrock('tinkatink', 'shoulder_left')"
],
"quirks": [
"q.bedrock_quirk('tinkatink', 'blink')"
]
},
"shoulder_right": {
"poseTypes": ["SHOULDER_RIGHT"],
"animations": [
"q.look('head')",
"q.bedrock('tinkatink', 'shoulder_right')"
],
"quirks": [
"q.bedrock_quirk('tinkatink', 'blink')"
]
}
}
}
@@ -0,0 +1,46 @@
{
"portraitScale": 1.9,
"portraitTranslation": [0, -0.41, 0.0],
"profileScale": 0.9,
"profileTranslation": [0.0, 0.4, 0.0],
"rootBone": "tinkatuff",
"animations": {
"faint": "q.bedrock_primary('tinkatuff', 'faint', q.curve('one'))",
"cry": "q.bedrock_stateful('tinkatuff', 'cry')"
},
"poses": {
"battle-standing": {
"poseTypes": ["STAND"],
"isBattle": true,
"animations": [
"q.look('head')",
"q.bedrock('tinkatuff', 'battle_idle')"
],
"quirks": ["q.bedrock_quirk('tinkatuff', 'blink')"]
},
"standing": {
"poseTypes": ["STAND", "NONE", "PORTRAIT", "PROFILE"],
"isBattle": false,
"animations": [
"q.look('head')",
"q.bedrock('tinkatuff', 'ground_idle')"
],
"quirks": ["q.bedrock_quirk('tinkatuff', 'blink')"]
},
"walking": {
"poseTypes": ["WALK"],
"animations": [
"q.look('head')",
"q.bedrock('tinkatuff', 'ground_walk')"
],
"quirks": ["q.bedrock_quirk('tinkatuff', 'blink')"]
},
"sleeping": {
"poseTypes": ["SLEEP"],
"animations": ["q.bedrock('tinkatuff', 'sleep')"],
"namedAnimations": {
"cry": "q.bedrock_stateful('dummy', 'cry')"
}
}
}
}
@@ -5,6 +5,11 @@
"profileTranslation": [0.0, 0.3, 0.0],
"rootBone": "tinkaton",
"animations": {
"physical": "q.bedrock_primary('tinkaton', 'physical', q.curve('symmetrical_wide'))",
"special": "q.bedrock_primary('tinkaton', 'special', q.curve('symmetrical_wide'))",
"status": "q.bedrock_primary('tinkaton', 'status', q.curve('symmetrical_wide'))",
"gigatonhammer": "q.bedrock_primary('tinkaton', 'signature', q.curve('symmetrical_wide'))",
"recoil": "q.bedrock_stateful('tinkaton', 'recoil')",
"faint": "q.bedrock_primary('tinkaton', 'faint', q.curve('one'))",
"cry": "q.bedrock_stateful('tinkaton', 'cry')"
},
@@ -13,32 +18,65 @@
"poseName": "battle-standing",
"poseTypes": ["STAND"],
"isBattle": true,
"animations": ["q.look('head')", "q.bedrock('tinkaton', 'battle_idle')"],
"quirks": ["q.bedrock_quirk('tinkaton', 'blink')"]
"animations": [
"q.look('head')",
"q.bedrock('tinkaton', 'battle_idle')",
{
"condition": "q.is_wearing_hat",
"animation": "q.bedrock('tinkaton', 'hat')"
}
],
"quirks": ["q.bedrock_quirk('tinkaton', 'blink')"],
"namedAnimations": {
"cry": "q.bedrock_primary('tinkaton', 'battle_cry')"
}
},
"standing": {
"poseName": "standing",
"poseTypes": ["STAND", "NONE", "PORTRAIT", "PROFILE"],
"isBattle": false,
"animations": ["q.look('head')", "q.bedrock('tinkaton', 'ground_idle')"],
"animations": [
"q.look('head')",
"q.bedrock('tinkaton', 'ground_idle')",
{
"condition": "q.is_wearing_hat",
"animation": "q.bedrock('tinkaton', 'hat')"
}
],
"quirks": ["q.bedrock_quirk('tinkaton', 'blink')"],
"transitions": {
"sleeping": "q.bedrock_primary('tinkaton', 'sleep_transition')"
"sleeping": "q.bedrock_primary('tinkaton', 'sleep_transition', q.curve('one'))"
}
},
"walking": {
"poseName": "walking",
"poseTypes": ["WALK"],
"animations": ["q.look('head')", "q.bedrock('tinkaton', 'ground_walk')"],
"animations": [
"q.look('head')",
"q.bedrock('tinkaton', 'ground_walk')",
{
"condition": "q.is_wearing_hat",
"animation": "q.bedrock('tinkaton', 'hat')"
}
],
"quirks": ["q.bedrock_quirk('tinkaton', 'blink')"],
"transitions": {
"sleeping": "q.bedrock_primary('tinkaton', 'sleep_transition')"
"sleeping": "q.bedrock_primary('tinkaton', 'sleep_transition', q.curve('one'))"
}
},
"sleeping": {
"poseName": "sleeping",
"poseTypes": ["SLEEP"],
"animations": ["q.bedrock('tinkaton', 'sleep')"]
"animations": [
"q.bedrock('tinkaton', 'sleep')",
{
"condition": "q.is_wearing_hat",
"animation": "q.bedrock('tinkaton', 'hat')"
}
],
"namedAnimations": {
"cry": "q.bedrock_stateful('dummy', 'cry')"
}
}
}
}
@@ -65,6 +65,28 @@
"animations": ["q.bedrock('gholdengo', 'sleep')"],
"quirks": []
},
"hover": {
"poseTypes": ["HOVER"],
"isTouchingWater": false,
"animations": [
"q.look('head')",
"q.bedrock('gholdengo', 'surfacewater_idle')"
],
"quirks": [
"q.bedrock_quirk('gholdengo', 'blink')"
]
},
"fly": {
"poseTypes": ["FLY"],
"isTouchingWater": false,
"animations": [
"q.look('head')",
"q.bedrock('gholdengo', 'surfacewater_swim')"
],
"quirks": [
"q.bedrock_quirk('gholdengo', 'blink')"
]
},
"surfacewater-standing": {
"poseTypes": ["STAND", "FLOAT"],
"isTouchingWater": true,
@@ -15,12 +15,10 @@
},
{
"aspects": ["cosmetic_item-music"],
"model": "cobblemon:tinkatink_dot.geo",
"texture": "cobblemon:textures/pokemon/0957_tinkatink/tinkatink_dot.png"
},
{
"aspects": ["cosmetic_item-music", "shiny"],
"model": "cobblemon:tinkatink_dot.geo",
"texture": "cobblemon:textures/pokemon/0957_tinkatink/tinkatink_dot_shiny.png"
}
]
@@ -15,12 +15,10 @@
},
{
"aspects": ["cosmetic_item-music"],
"model": "cobblemon:tinkatuff_dot.geo",
"texture": "cobblemon:textures/pokemon/0958_tinkatuff/tinkatuff_dot.png"
},
{
"aspects": ["cosmetic_item-music", "shiny"],
"model": "cobblemon:tinkatuff_dot.geo",
"texture": "cobblemon:textures/pokemon/0958_tinkatuff/tinkatuff_dot_shiny.png"
}
]
@@ -15,12 +15,10 @@
},
{
"aspects": ["cosmetic_item-music"],
"model": "cobblemon:tinkaton_dot.geo",
"texture": "cobblemon:textures/pokemon/0959_tinkaton/tinkaton_dot.png"
},
{
"aspects": ["cosmetic_item-music", "shiny"],
"model": "cobblemon:tinkaton_dot.geo",
"texture": "cobblemon:textures/pokemon/0959_tinkaton/tinkaton_dot_shiny.png"
}
]
@@ -2621,8 +2621,6 @@
"cobblemon.config.ui.infinite_ride_stamina.tooltip": "Whether rideable Pokémon have infinite stamina.",
"cobblemon.config.ui.remember_riding_camera": "Remember Riding Camera",
"cobblemon.config.ui.remember_riding_camera.tooltip": "Whether the camera mode will automatically switch to the last used camera mode when mounting a rideable Pokémon.",
"cobblemon.config.ui.mob_experience_conversion_rate": "Mob Experience Conversion Rate",
"cobblemon.config.ui.mob_experience_conversion_rate.tooltip": "The conversion rate for mob experience to pokemon experience when a Pokemon kills a mob.",
"cobblemon.config.ui.allow_starter_on_join": "Allow Starter on Join",
"cobblemon.config.ui.prompt_starter_once_only": "Prompt Starter Once Only",
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.9 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.9 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.2 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.4 KiB

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.4 KiB

After

Width:  |  Height:  |  Size: 7.5 KiB

@@ -142,11 +142,11 @@
},
{
"type": "molang",
"expressions": "q.pokemon.cosmetic_item.is_of('minecraft:magenta_dye') ? (q.pokemon.apply('poodle_trim=heart') + q.pokemon.spawn_bedrock_particles('cobblemon:poodle_hair_magenta', 'middle')) : 0"
"expressions": "q.pokemon.cosmetic_item.is_of('minecraft:magenta_dye') ? (q.pokemon.apply('poodle_trim=matron') + q.pokemon.spawn_bedrock_particles('cobblemon:poodle_hair_magenta', 'middle')) : 0"
},
{
"type": "molang",
"expressions": "q.pokemon.cosmetic_item.is_of('minecraft:pink_dye') ? (q.pokemon.apply('poodle_trim=matron') + q.pokemon.spawn_bedrock_particles('cobblemon:poodle_hair_pink', 'middle')) : 0"
"expressions": "q.pokemon.cosmetic_item.is_of('minecraft:pink_dye') ? (q.pokemon.apply('poodle_trim=heart') + q.pokemon.spawn_bedrock_particles('cobblemon:poodle_hair_pink', 'middle')) : 0"
},
{
"type": "molang",
@@ -5,7 +5,7 @@
"lookYawLimit": "90.0",
"speedExpr": "q.get_ride_stats('SPEED', 'LAND', 1.2, 0.1)",
"accelerationExpr": "q.get_ride_stats('ACCELERATION', 'LAND', 0.1, 12.0)",
"staminaExpr": "q.get_ride_stats('STAMINA', 'LAND', 60.0, 4.0)",
"staminaExpr": "q.get_ride_stats('STAMINA', 'LAND', 120.0, 4.0)",
"jumpExpr": "q.get_ride_stats('JUMP', 'LAND', 1.6, 0.2)",
"handlingExpr": "q.get_ride_stats('SKILL', 'LAND', 90.0, 30.0)"
}
@@ -34,7 +34,7 @@
}
},
{
"id": "caterpie-valencian-3",
"id": "caterpie-valencian-2",
"pokemon": "caterpie valencian",
"presets": [
"natural",
@@ -55,7 +55,7 @@
}
},
{
"id": "caterpie-valencian-4",
"id": "caterpie-valencian-3",
"pokemon": "caterpie valencian",
"type": "pokemon",
"spawnablePositionType": "grounded",
@@ -34,7 +34,7 @@
}
},
{
"id": "metapod-valencian-3",
"id": "metapod-valencian-2",
"pokemon": "metapod valencian",
"presets": [
"natural",
@@ -55,7 +55,7 @@
}
},
{
"id": "metapod-valencian-4",
"id": "metapod-valencian-3",
"pokemon": "metapod valencian",
"type": "pokemon",
"spawnablePositionType": "grounded",
@@ -43,7 +43,7 @@
"spawnablePositionType": "grounded",
"bucket": "uncommon",
"level": "16-32",
"weight": 1.84,
"weight": 0.304,
"weightMultiplier": {
"multiplier": 5.0,
"condition": {
@@ -43,7 +43,7 @@
"spawnablePositionType": "grounded",
"bucket": "uncommon",
"level": "27-49",
"weight": 0.16,
"weight": 0.016,
"weightMultiplier": {
"multiplier": 5.0,
"condition": {
@@ -10,44 +10,19 @@
"water"
],
"type": "pokemon",
"spawnablePositionType": "submerged",
"spawnablePositionType": "surface",
"bucket": "common",
"level": "9-34",
"weight": 9.0,
"condition": {
"canSeeSky": true,
"biomes": [
"#cobblemon:is_deep_ocean"
],
"maxY": 48
}
},
{
"id": "tentacool-2",
"pokemon": "tentacool",
"presets": [
"water"
],
"type": "pokemon",
"spawnablePositionType": "submerged",
"bucket": "common",
"level": "9-34",
"weight": 5.4,
"condition": {
"canSeeSky": true,
"biomes": [
"#cobblemon:is_ocean"
],
"maxY": 48
},
"anticondition": {
"biomes": [
"#cobblemon:is_deep_ocean"
]
}
},
{
"id": "tentacool-3",
"id": "tentacool-2",
"pokemon": "tentacool",
"presets": [
"water"
@@ -63,8 +38,7 @@
"maxSkyLight": 7,
"biomes": [
"#cobblemon:is_overworld"
],
"maxY": 48
]
},
"anticondition": {
"structures": [
@@ -79,16 +53,16 @@
}
},
{
"id": "tentacool-4",
"id": "tentacool-3",
"pokemon": "tentacool",
"presets": [
"water"
],
"type": "pokemon",
"spawnablePositionType": "surface",
"bucket": "uncommon",
"spawnablePositionType": "submerged",
"bucket": "common",
"level": "9-34",
"weight": 8.4,
"weight": 1.8,
"condition": {
"minSkyLight": 8,
"maxSkyLight": 15,
@@ -98,7 +72,7 @@
}
},
{
"id": "tentacool-5",
"id": "tentacool-4",
"pokemon": "tentacool",
"type": "pokemon",
"spawnablePositionType": "fishing",
@@ -113,7 +87,7 @@
}
},
{
"id": "tentacool-6",
"id": "tentacool-5",
"pokemon": "tentacool",
"type": "pokemon",
"spawnablePositionType": "fishing",
@@ -148,7 +122,7 @@
}
},
{
"id": "tentacool-7",
"id": "tentacool-6",
"pokemon": "tentacool",
"type": "pokemon",
"spawnablePositionType": "fishing",
@@ -165,7 +139,7 @@
}
},
{
"id": "tentacool-8",
"id": "tentacool-7",
"pokemon": "tentacool",
"presets": [
"water"
@@ -188,7 +162,7 @@
}
},
{
"id": "tentacool-9",
"id": "tentacool-8",
"pokemon": "tentacool",
"type": "pokemon",
"spawnablePositionType": "fishing",
@@ -10,44 +10,19 @@
"water"
],
"type": "pokemon",
"spawnablePositionType": "submerged",
"spawnablePositionType": "surface",
"bucket": "common",
"level": "30-52",
"weight": 1.0,
"condition": {
"canSeeSky": true,
"biomes": [
"#cobblemon:is_deep_ocean"
],
"maxY": 48
}
},
{
"id": "tentacruel-2",
"pokemon": "tentacruel",
"presets": [
"water"
],
"type": "pokemon",
"spawnablePositionType": "submerged",
"bucket": "common",
"level": "30-52",
"weight": 0.6,
"condition": {
"canSeeSky": true,
"biomes": [
"#cobblemon:is_ocean"
],
"maxY": 48
},
"anticondition": {
"biomes": [
"#cobblemon:is_deep_ocean"
]
}
},
{
"id": "tentacruel-3",
"id": "tentacruel-2",
"pokemon": "tentacruel",
"presets": [
"water"
@@ -63,8 +38,7 @@
"maxSkyLight": 7,
"biomes": [
"#cobblemon:is_overworld"
],
"maxY": 48
]
},
"anticondition": {
"structures": [
@@ -79,16 +53,16 @@
}
},
{
"id": "tentacruel-4",
"id": "tentacruel-3",
"pokemon": "tentacruel",
"presets": [
"water"
],
"type": "pokemon",
"spawnablePositionType": "surface",
"bucket": "uncommon",
"spawnablePositionType": "submerged",
"bucket": "common",
"level": "30-52",
"weight": 1.6,
"weight": 0.2,
"condition": {
"minSkyLight": 8,
"maxSkyLight": 15,
@@ -98,7 +72,7 @@
}
},
{
"id": "tentacruel-5",
"id": "tentacruel-4",
"pokemon": "tentacruel",
"type": "pokemon",
"spawnablePositionType": "fishing",
@@ -113,7 +87,7 @@
}
},
{
"id": "tentacruel-6",
"id": "tentacruel-5",
"pokemon": "tentacruel",
"type": "pokemon",
"spawnablePositionType": "fishing",
@@ -148,7 +122,7 @@
}
},
{
"id": "tentacruel-7",
"id": "tentacruel-6",
"pokemon": "tentacruel",
"type": "pokemon",
"spawnablePositionType": "fishing",
@@ -165,7 +139,7 @@
}
},
{
"id": "tentacruel-8",
"id": "tentacruel-7",
"pokemon": "tentacruel",
"presets": [
"water"
@@ -188,7 +162,7 @@
}
},
{
"id": "tentacruel-9",
"id": "tentacruel-8",
"pokemon": "tentacruel",
"type": "pokemon",
"spawnablePositionType": "fishing",
@@ -15,14 +15,26 @@
"bucket": "rare",
"level": "25-50",
"weight": 10.0,
"weightMultiplier": {
"multiplier": 1.5,
"condition": {
"timeRange": "night"
}
},
"condition": {
"minSkyLight": 8,
"maxSkyLight": 15,
"biomes": [
"#cobblemon:is_jungle",
"aether:skyroot_forest",
"aether:skyroot_woodland",
"#cobblemon:is_tropical_island"
],
"timeRange": "night"
]
},
"anticondition": {
"neededNearbyBlocks": [
"#cobblemon:saccharine_trees"
]
}
},
{
@@ -33,15 +45,29 @@
],
"type": "pokemon",
"spawnablePositionType": "grounded",
"bucket": "rare",
"bucket": "uncommon",
"level": "25-50",
"weight": 10.0,
"weight": 2.0,
"weightMultiplier": {
"multiplier": 1.5,
"condition": {
"timeRange": "night"
}
},
"condition": {
"minSkyLight": 8,
"maxSkyLight": 15,
"biomes": [
"aether:skyroot_forest",
"aether:skyroot_woodland"
"#aether:is_aether",
"#cobblemon:is_overworld"
],
"neededNearbyBlocks": [
"#cobblemon:saccharine_trees"
]
},
"anticondition": {
"biomes": [
"#cobblemon:is_freezing"
]
}
}
@@ -18,11 +18,39 @@
"minSkyLight": 8,
"maxSkyLight": 15,
"biomes": [
"aether:skyroot_forest",
"aether:skyroot_woodland",
"#cobblemon:is_snowy_forest",
"#cobblemon:is_forest",
"#cobblemon:is_hills"
"#cobblemon:is_hills",
"aether:skyroot_forest",
"aether:skyroot_woodland"
]
},
"anticondition": {
"neededNearbyBlocks": [
"#cobblemon:saccharine_trees"
]
}
},
{
"id": "snorlax-2",
"pokemon": "snorlax",
"presets": [
"natural"
],
"type": "pokemon",
"spawnablePositionType": "grounded",
"bucket": "uncommon",
"level": "34-54",
"weight": 0.32,
"condition": {
"minSkyLight": 8,
"maxSkyLight": 15,
"biomes": [
"#aether:is_aether",
"#cobblemon:is_overworld"
],
"neededNearbyBlocks": [
"#cobblemon:saccharine_trees"
]
}
}
@@ -32,6 +32,39 @@
"#cobblemon:is_spooky"
]
}
},
{
"id": "pichu-alola-2",
"pokemon": "pichu region_bias=alola",
"presets": [
"natural"
],
"type": "pokemon",
"spawnablePositionType": "grounded",
"bucket": "uncommon",
"level": "16-32",
"weight": 1.68,
"weightMultiplier": {
"multiplier": 5.0,
"condition": {
"isThundering": true
}
},
"condition": {
"minSkyLight": 8,
"maxSkyLight": 15,
"biomes": [
"#cobblemon:is_beach",
"aether:skyroot_forest",
"aether:skyroot_woodland",
"#cobblemon:is_tropical_island"
]
},
"anticondition": {
"biomes": [
"#cobblemon:is_freezing"
]
}
}
]
}
@@ -30,6 +30,9 @@
]
},
"anticondition": {
"neededNearbyBlocks": [
"#cobblemon:saccharine_trees"
],
"biomes": [
"#cobblemon:is_freezing",
"#cobblemon:is_spooky"
@@ -60,8 +63,15 @@
"maxSkyLight": 15,
"biomes": [
"#cobblemon:is_jungle",
"aether:skyroot_forest",
"aether:skyroot_woodland",
"#cobblemon:is_tropical_island"
]
},
"anticondition": {
"neededNearbyBlocks": [
"#cobblemon:saccharine_trees"
]
}
},
{
@@ -73,15 +83,29 @@
],
"type": "pokemon",
"spawnablePositionType": "grounded",
"bucket": "rare",
"bucket": "uncommon",
"level": "25-50",
"weight": 2.0,
"weightMultiplier": {
"multiplier": 5.0,
"condition": {
"timeRange": "twilight"
}
},
"condition": {
"minSkyLight": 8,
"maxSkyLight": 15,
"biomes": [
"aether:skyroot_forest",
"aether:skyroot_woodland"
"#aether:is_aether",
"#cobblemon:is_overworld"
],
"neededNearbyBlocks": [
"#cobblemon:saccharine_trees"
]
},
"anticondition": {
"biomes": [
"#cobblemon:is_freezing"
]
}
},
@@ -57,7 +57,8 @@
"anticondition": {
"biomes": [
"#cobblemon:is_arid",
"#cobblemon:is_taiga"
"#cobblemon:is_taiga",
"#cobblemon:is_volcanic"
]
}
}
@@ -19,26 +19,42 @@
"biomes": [
"#cobblemon:is_forest",
"#cobblemon:is_mountain",
"aether:skyroot_forest",
"aether:skyroot_woodland",
"#cobblemon:is_taiga"
],
"minY": 48
},
"anticondition": {
"neededNearbyBlocks": [
"#cobblemon:saccharine_trees"
],
"biomes": [
"#cobblemon:is_volcanic"
]
}
},
{
"id": "teddiursa-2",
"pokemon": "teddiursa",
"presets": [
"natural"
"natural",
"wild"
],
"type": "pokemon",
"spawnablePositionType": "grounded",
"bucket": "common",
"level": "8-33",
"weight": 1.8,
"weight": 5.4,
"condition": {
"minSkyLight": 8,
"maxSkyLight": 15,
"biomes": [
"aether:skyroot_forest",
"aether:skyroot_woodland"
"#aether:is_aether",
"#cobblemon:is_overworld"
],
"neededNearbyBlocks": [
"#cobblemon:saccharine_trees"
]
}
},
@@ -19,26 +19,42 @@
"biomes": [
"#cobblemon:is_forest",
"#cobblemon:is_mountain",
"aether:skyroot_forest",
"aether:skyroot_woodland",
"#cobblemon:is_taiga"
],
"minY": 48
},
"anticondition": {
"neededNearbyBlocks": [
"#cobblemon:saccharine_trees"
],
"biomes": [
"#cobblemon:is_volcanic"
]
}
},
{
"id": "ursaring-2",
"pokemon": "ursaring",
"presets": [
"natural"
"natural",
"wild"
],
"type": "pokemon",
"spawnablePositionType": "grounded",
"bucket": "common",
"level": "30-50",
"weight": 0.19,
"weight": 0.57,
"condition": {
"minSkyLight": 8,
"maxSkyLight": 15,
"biomes": [
"aether:skyroot_forest",
"aether:skyroot_woodland"
"#aether:is_aether",
"#cobblemon:is_overworld"
],
"neededNearbyBlocks": [
"#cobblemon:saccharine_trees"
]
}
},
@@ -26,6 +26,11 @@
"biomes": [
"#cobblemon:is_peak"
]
},
"anticondition": {
"biomes": [
"#cobblemon:is_volcanic"
]
}
},
{
@@ -67,7 +67,8 @@
},
"anticondition": {
"biomes": [
"#cobblemon:is_freezing"
"#cobblemon:is_freezing",
"#cobblemon:is_volcanic"
]
}
},
@@ -67,7 +67,8 @@
},
"anticondition": {
"biomes": [
"#cobblemon:is_freezing"
"#cobblemon:is_freezing",
"#cobblemon:is_volcanic"
]
}
},
@@ -24,6 +24,11 @@
"#cobblemon:is_taiga"
],
"timeRange": "night"
},
"anticondition": {
"biomes": [
"#cobblemon:is_volcanic"
]
}
},
{
@@ -23,6 +23,11 @@
"#cobblemon:is_snowy_forest",
"#cobblemon:is_taiga"
]
},
"anticondition": {
"biomes": [
"#cobblemon:is_volcanic"
]
}
}
]
@@ -22,6 +22,11 @@
"#cobblemon:is_mountain"
],
"isRaining": false
},
"anticondition": {
"biomes": [
"#cobblemon:is_volcanic"
]
}
},
{
@@ -101,6 +101,11 @@
"biomes": [
"#aether:is_aether"
]
},
"anticondition": {
"biomes": [
"#cobblemon:is_freezing"
]
}
},
{
@@ -101,6 +101,11 @@
"biomes": [
"#aether:is_aether"
]
},
"anticondition": {
"biomes": [
"#cobblemon:is_freezing"
]
}
},
{
@@ -18,11 +18,39 @@
"minSkyLight": 8,
"maxSkyLight": 15,
"biomes": [
"aether:skyroot_forest",
"aether:skyroot_woodland",
"#cobblemon:is_snowy_forest",
"#cobblemon:is_forest",
"#cobblemon:is_hills"
"#cobblemon:is_hills",
"aether:skyroot_forest",
"aether:skyroot_woodland"
]
},
"anticondition": {
"neededNearbyBlocks": [
"#cobblemon:saccharine_trees"
]
}
},
{
"id": "munchlax-2",
"pokemon": "munchlax",
"presets": [
"natural"
],
"type": "pokemon",
"spawnablePositionType": "grounded",
"bucket": "uncommon",
"level": "24-39",
"weight": 1.68,
"condition": {
"minSkyLight": 8,
"maxSkyLight": 15,
"biomes": [
"#aether:is_aether",
"#cobblemon:is_overworld"
],
"neededNearbyBlocks": [
"#cobblemon:saccharine_trees"
]
}
}
@@ -23,6 +23,11 @@
"#cobblemon:is_sky"
],
"timeRange": "day"
},
"anticondition": {
"biomes": [
"#cobblemon:is_volcanic"
]
}
},
{
@@ -23,6 +23,11 @@
"#cobblemon:is_sky"
],
"timeRange": "day"
},
"anticondition": {
"biomes": [
"#cobblemon:is_volcanic"
]
}
},
{
@@ -23,6 +23,11 @@
"#cobblemon:is_sky"
],
"timeRange": "day"
},
"anticondition": {
"biomes": [
"#cobblemon:is_volcanic"
]
}
},
{
@@ -26,7 +26,8 @@
"canSeeSky": true,
"biomes": [
"#cobblemon:is_ocean"
]
],
"maxY": 48
}
},
{
@@ -37,52 +38,9 @@
],
"type": "pokemon",
"spawnablePositionType": "surface",
"bucket": "uncommon",
"level": "9-34",
"weight": 1.68,
"condition": {
"minSkyLight": 8,
"maxSkyLight": 15,
"biomes": [
"#cobblemon:is_ocean"
],
"timeRange": "day"
}
},
{
"id": "frillish-3",
"pokemon": "frillish",
"presets": [
"water"
],
"type": "pokemon",
"spawnablePositionType": "surface",
"bucket": "uncommon",
"level": "9-34",
"weight": 1.68,
"condition": {
"minSkyLight": 8,
"maxSkyLight": 15,
"biomes": [
"#cobblemon:is_ocean"
],
"timeRange": "night"
},
"anticondition": {
"moonPhase": "0"
}
},
{
"id": "frillish-4",
"pokemon": "frillish",
"presets": [
"water"
],
"type": "pokemon",
"spawnablePositionType": "surface",
"bucket": "common",
"level": "9-34",
"weight": 1.8,
"weight": 5.4,
"condition": {
"minSkyLight": 8,
"maxSkyLight": 15,
@@ -94,7 +52,7 @@
}
},
{
"id": "frillish-5",
"id": "frillish-3",
"pokemon": "frillish",
"type": "pokemon",
"spawnablePositionType": "fishing",
@@ -126,7 +84,7 @@
}
},
{
"id": "frillish-6",
"id": "frillish-4",
"pokemon": "frillish",
"presets": [
"water"
@@ -150,11 +108,12 @@
"maxSkyLight": 15,
"biomes": [
"#cobblemon:is_ocean"
]
],
"maxY": 48
}
},
{
"id": "frillish-7",
"id": "frillish-5",
"pokemon": "frillish",
"type": "pokemon",
"spawnablePositionType": "fishing",
@@ -188,7 +147,7 @@
}
},
{
"id": "frillish-8",
"id": "frillish-6",
"pokemon": "frillish",
"presets": [
"water"
@@ -211,7 +170,7 @@
}
},
{
"id": "frillish-9",
"id": "frillish-7",
"pokemon": "frillish",
"type": "pokemon",
"spawnablePositionType": "fishing",
@@ -26,7 +26,8 @@
"canSeeSky": true,
"biomes": [
"#cobblemon:is_ocean"
]
],
"maxY": 48
}
},
{
@@ -37,52 +38,9 @@
],
"type": "pokemon",
"spawnablePositionType": "surface",
"bucket": "uncommon",
"level": "40-48",
"weight": 0.32,
"condition": {
"minSkyLight": 8,
"maxSkyLight": 15,
"biomes": [
"#cobblemon:is_ocean"
],
"timeRange": "day"
}
},
{
"id": "jellicent-3",
"pokemon": "jellicent",
"presets": [
"water"
],
"type": "pokemon",
"spawnablePositionType": "surface",
"bucket": "uncommon",
"level": "40-48",
"weight": 0.32,
"condition": {
"minSkyLight": 8,
"maxSkyLight": 15,
"biomes": [
"#cobblemon:is_ocean"
],
"timeRange": "night"
},
"anticondition": {
"moonPhase": "0"
}
},
{
"id": "jellicent-4",
"pokemon": "jellicent",
"presets": [
"water"
],
"type": "pokemon",
"spawnablePositionType": "surface",
"bucket": "common",
"level": "40-48",
"weight": 0.2,
"weight": 0.6,
"condition": {
"minSkyLight": 8,
"maxSkyLight": 15,
@@ -94,7 +52,7 @@
}
},
{
"id": "jellicent-5",
"id": "jellicent-3",
"pokemon": "jellicent",
"type": "pokemon",
"spawnablePositionType": "fishing",
@@ -126,7 +84,7 @@
}
},
{
"id": "jellicent-6",
"id": "jellicent-4",
"pokemon": "jellicent",
"presets": [
"water"
@@ -150,11 +108,12 @@
"maxSkyLight": 15,
"biomes": [
"#cobblemon:is_ocean"
]
],
"maxY": 48
}
},
{
"id": "jellicent-7",
"id": "jellicent-5",
"pokemon": "jellicent",
"type": "pokemon",
"spawnablePositionType": "fishing",
@@ -188,7 +147,7 @@
}
},
{
"id": "jellicent-8",
"id": "jellicent-6",
"pokemon": "jellicent",
"presets": [
"water"
@@ -211,7 +170,7 @@
}
},
{
"id": "jellicent-9",
"id": "jellicent-7",
"pokemon": "jellicent",
"type": "pokemon",
"spawnablePositionType": "fishing",

Some files were not shown because too many files have changed in this diff Show More