Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
52133711ad | ||
|
|
4e1b82917b | ||
|
|
3b1d257241 | ||
|
|
0b8f916648 | ||
|
|
5ad7d5406a | ||
|
|
6ec008ee83 | ||
|
|
f4d2226ec2 | ||
|
|
0fc5d5e9d7 | ||
|
|
972c0f6430 | ||
|
|
86db95a7dc | ||
|
|
be95b79e4d | ||
|
|
bc550dd32c | ||
|
|
3009af8c42 |
@@ -4,10 +4,12 @@
|
||||
|
||||
### Additions
|
||||
- Added unique send out particles for Cherish, Dream, Beast, and Ancient Origin balls.
|
||||
- Made Wooloo and Dubwool dye-able like sheep
|
||||
|
||||
### Changes
|
||||
- Sounds for Relic Coin Sacks have been correctly renamed. Relic Coin Pouches received new sounds for breaking and placing.
|
||||
- Readjusted Petilil portraits
|
||||
- Changed "dimensions" spawn condition to check with dimension IDs instead of effects, so custom dimension IDs can be used.
|
||||
|
||||
### Fixes
|
||||
- Fixed a bug in which adding organic material to the fossil tank via right click was adding the full count of the stack currently in hand
|
||||
@@ -18,6 +20,8 @@
|
||||
- Fixed Fossil Compartment crash with Jade / WAILA forks
|
||||
- Fixed PCStore#resize not allowing PC boxes size reduction.
|
||||
- Fixed pasture block PC lookups when the player is offline.
|
||||
- Fixed an untranslated battle message that occurs when using a move that just ran out of PP (e.g. Fire Blast that just got spited mid-turn).
|
||||
- Fixed held items being eaten even when the held item evolutions are already unlocked.
|
||||
- Fixed Hisuian Decidueye not being Grass/Fighting
|
||||
- Fixed both Decidueye forms learning both Triple Arrows and Spirit Shackle
|
||||
- Fixed Pineco being unable to evolve into Shulker Forretress
|
||||
|
||||
@@ -234,7 +234,7 @@ object Cobblemon {
|
||||
val player = event.player
|
||||
val block = player.world.getBlockState(event.pos).block
|
||||
player.party().forEach { pokemon ->
|
||||
pokemon.evolutions
|
||||
pokemon.lockedEvolutions
|
||||
.filterIsInstance<BlockClickEvolution>()
|
||||
.forEach { evolution ->
|
||||
evolution.attemptEvolution(pokemon, BlockClickEvolution.BlockInteractionContext(block, player.world))
|
||||
|
||||
@@ -226,7 +226,7 @@ open class PokemonBattle(
|
||||
val facedFainted = opponentPokemon.facedOpponents.contains(faintedPokemon)
|
||||
val pokemon = opponentPokemon.effectedPokemon
|
||||
if (facedFainted) {
|
||||
pokemon.evolutions.forEach { evolution ->
|
||||
pokemon.lockedEvolutions.forEach { evolution ->
|
||||
evolution.requirements.filterIsInstance<DefeatRequirement>().forEach { defeatRequirement ->
|
||||
if (defeatRequirement.target.matches(faintedPokemon.effectedPokemon)) {
|
||||
val progress = pokemon.evolutionProxy.current().progressFirstOrCreate({ it is DefeatEvolutionProgress && it.currentProgress().target == defeatRequirement.target }) { DefeatEvolutionProgress() }
|
||||
|
||||
@@ -153,7 +153,7 @@ interface Evolution : EvolutionLike {
|
||||
pokemon.getOwnerPlayer()?.sendMessage(lang("experience.learned_move", pokemon.getDisplayName(), move.displayName))
|
||||
}
|
||||
// we want to instantly tick for example you might only evolve your Bulbasaur at level 34 so Venusaur should be immediately available
|
||||
pokemon.evolutions.filterIsInstance<PassiveEvolution>().forEach { evolution -> evolution.attemptEvolution(pokemon) }
|
||||
pokemon.lockedEvolutions.filterIsInstance<PassiveEvolution>().forEach { evolution -> evolution.attemptEvolution(pokemon) }
|
||||
pokemon.getOwnerPlayer()?.playSound(CobblemonSounds.EVOLVING, SoundCategory.NEUTRAL, 1F, 1F)
|
||||
CobblemonEvents.EVOLUTION_COMPLETE.post(EvolutionCompleteEvent(pokemon, this))
|
||||
}
|
||||
|
||||
@@ -78,7 +78,7 @@ abstract class SpawningCondition<T : SpawningContext> {
|
||||
return false
|
||||
} else if (ctx.position.z < minZ.orMin() || ctx.position.z > maxZ.orMax()) {
|
||||
return false
|
||||
} else if (dimensions != null && dimensions!!.isNotEmpty() && ctx.world.dimension.effects !in dimensions!!) {
|
||||
} else if (dimensions != null && dimensions!!.isNotEmpty() && ctx.world.dimensionKey.value !in dimensions!!) {
|
||||
return false
|
||||
} else if (moonPhase != null && ctx.moonPhase !in moonPhase!!) {
|
||||
return false
|
||||
|
||||
@@ -124,7 +124,7 @@ open class PlayerPartyStore(
|
||||
}
|
||||
|
||||
// Passive evolutions
|
||||
pokemon.evolutions.filterIsInstance<PassiveEvolution>().forEach { it.attemptEvolution(pokemon) }
|
||||
pokemon.lockedEvolutions.filterIsInstance<PassiveEvolution>().forEach { it.attemptEvolution(pokemon) }
|
||||
val removeList = mutableListOf<Evolution>()
|
||||
pokemon.evolutionProxy.server().forEach {
|
||||
if (!it.test(pokemon) && it is LevelUpEvolution && !it.permanent)
|
||||
|
||||
@@ -98,8 +98,6 @@ class GildedChestBlockEntity(pos: BlockPos, state: BlockState, val type: Type =
|
||||
return dir == Direction.DOWN
|
||||
}
|
||||
|
||||
override fun canPlayerUse(player: PlayerEntity) = !player.isSpectator && Inventory.canPlayerUse(this, player)
|
||||
|
||||
override fun getInvStackList(): DefaultedList<ItemStack> = inventoryContents
|
||||
|
||||
override fun setInvStackList(list: DefaultedList<ItemStack>) {
|
||||
|
||||
@@ -480,15 +480,19 @@ class FossilMultiblockStructure (
|
||||
}
|
||||
|
||||
fun updateProgress(world: World) {
|
||||
val screenID = if(protectionTime > 0F ) {
|
||||
val screenID = if (protectionTime > 0F) {
|
||||
MonitorBlock.MonitorScreen.GREEN_PROGRESS_9
|
||||
} else if (timeRemaining <= 0) {
|
||||
MonitorBlock.MonitorScreen.OFF
|
||||
} else {
|
||||
getProgressScreen((TIME_TO_TAKE - timeRemaining) / TIME_PER_STAGE)
|
||||
}
|
||||
|
||||
val monitorState = world.getBlockState(monitorPos)
|
||||
world.setBlockState(monitorPos, monitorState.with(MonitorBlock.SCREEN, screenID))
|
||||
|
||||
if (monitorState.contains(MonitorBlock.SCREEN)) {
|
||||
world.setBlockState(monitorPos, monitorState.with(MonitorBlock.SCREEN, screenID))
|
||||
}
|
||||
}
|
||||
|
||||
fun getProgressScreen(progress:Int) : MonitorBlock.MonitorScreen {
|
||||
|
||||
@@ -28,8 +28,8 @@ class DubwoolModel(root: ModelPart) : PokemonPoseableModel(), HeadedFrame, Quadr
|
||||
override val foreRightLeg = getPart("leg_front_right")
|
||||
override val hindLeftLeg = getPart("leg_back_left")
|
||||
override val hindRightLeg = getPart("leg_back_right")
|
||||
val wool = getPart("wool")
|
||||
val neckWool = getPart("neck_wool")
|
||||
val wool = getPart("wool_shearable")
|
||||
val neckWool = getPart("neck_wool_shearable")
|
||||
|
||||
override var portraitScale = 3.1F
|
||||
override var portraitTranslation = Vec3d(-1.2, -0.7, 0.0)
|
||||
|
||||
@@ -28,7 +28,7 @@ class WoolooModel(root: ModelPart) : PokemonPoseableModel(), HeadedFrame, Quadru
|
||||
override val foreRightLeg = getPart("leg_front_right")
|
||||
override val hindLeftLeg = getPart("leg_back_left")
|
||||
override val hindRightLeg = getPart("leg_back_right")
|
||||
val wool = getPart("wool")
|
||||
val wool = getPart("wool_shearable")
|
||||
|
||||
override var portraitScale = 3.1F
|
||||
override var portraitTranslation = Vec3d(-0.85, -1.8, 0.0)
|
||||
|
||||
@@ -21,7 +21,9 @@ import com.cobblemon.mod.common.api.interaction.PokemonEntityInteraction
|
||||
import com.cobblemon.mod.common.api.net.serializers.PoseTypeDataSerializer
|
||||
import com.cobblemon.mod.common.api.net.serializers.StringSetDataSerializer
|
||||
import com.cobblemon.mod.common.api.pokemon.PokemonProperties
|
||||
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.StringSpeciesFeature
|
||||
import com.cobblemon.mod.common.api.pokemon.status.Statuses
|
||||
import com.cobblemon.mod.common.api.reactive.ObservableSubscription
|
||||
import com.cobblemon.mod.common.api.reactive.SimpleObservable
|
||||
@@ -81,6 +83,7 @@ import net.minecraft.entity.passive.PassiveEntity
|
||||
import net.minecraft.entity.passive.TameableShoulderEntity
|
||||
import net.minecraft.entity.player.PlayerEntity
|
||||
import net.minecraft.fluid.FluidState
|
||||
import net.minecraft.item.DyeItem
|
||||
import net.minecraft.item.ItemStack
|
||||
import net.minecraft.item.ItemUsage
|
||||
import net.minecraft.item.Items
|
||||
@@ -101,8 +104,11 @@ import net.minecraft.sound.SoundEvents
|
||||
import net.minecraft.text.Text
|
||||
import net.minecraft.text.TextContent
|
||||
import net.minecraft.util.ActionResult
|
||||
import net.minecraft.util.Colors
|
||||
import net.minecraft.util.DyeColor
|
||||
import net.minecraft.util.Hand
|
||||
import net.minecraft.util.Identifier
|
||||
import net.minecraft.util.Util
|
||||
import net.minecraft.util.math.BlockPos
|
||||
import net.minecraft.util.math.Box
|
||||
import net.minecraft.util.math.Vec3d
|
||||
@@ -335,10 +341,13 @@ open class PokemonEntity(
|
||||
if (this.tethering != null) {
|
||||
//Only for online players
|
||||
if (world.getPlayerByUuid(ownerUuid) != null){
|
||||
val actualPokemon = Cobblemon.storage.getPC(this.ownerUuid!!)[this.pokemon.uuid]!!
|
||||
//We want to use == over .equals here as we actually want to check the reference
|
||||
if (actualPokemon !== pokemon) {
|
||||
pokemon = actualPokemon
|
||||
this.ownerUuid?.let {
|
||||
val actualPokemon = Cobblemon.storage.getPC(it)[this.pokemon.uuid]
|
||||
actualPokemon?.let {
|
||||
if (it !== pokemon) {
|
||||
pokemon = it
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -606,6 +615,7 @@ open class PokemonEntity(
|
||||
|
||||
override fun interactMob(player: PlayerEntity, hand: Hand) : ActionResult {
|
||||
val itemStack = player.getStackInHand(hand)
|
||||
val colorFeature = pokemon.getFeature<StringSpeciesFeature>(DataKeys.CAN_BE_COLORED)
|
||||
|
||||
if (itemStack.isOf(Items.SHEARS) && this.isShearable) {
|
||||
this.sheared(SoundCategory.PLAYERS)
|
||||
@@ -671,7 +681,6 @@ open class PokemonEntity(
|
||||
pokemon.lastFlowerFed = ItemStack.EMPTY
|
||||
return ActionResult.success(world.isClient)
|
||||
}
|
||||
|
||||
else {
|
||||
val mushroomStew = ItemUsage.exchangeStack(itemStack, player, Items.MUSHROOM_STEW.defaultStack)
|
||||
player.setStackInHand(hand, mushroomStew)
|
||||
@@ -712,6 +721,22 @@ open class PokemonEntity(
|
||||
return ActionResult.SUCCESS
|
||||
}
|
||||
}
|
||||
else if (itemStack.item is DyeItem && colorFeature != null) {
|
||||
val item = itemStack.item as DyeItem
|
||||
if (item.color.name.lowercase() != colorFeature.value.lowercase()) {
|
||||
itemStack.decrement(1)
|
||||
colorFeature.value = item.color.name.lowercase()
|
||||
this.pokemon.markFeatureDirty(colorFeature)
|
||||
this.pokemon.updateAspects()
|
||||
}
|
||||
}
|
||||
else if (itemStack.item.equals(Items.WATER_BUCKET) && colorFeature != null) {
|
||||
itemStack.decrement(1)
|
||||
player.giveOrDropItemStack(Items.BUCKET.defaultStack)
|
||||
colorFeature.value = ""
|
||||
this.pokemon.markFeatureDirty(colorFeature)
|
||||
this.pokemon.updateAspects()
|
||||
}
|
||||
|
||||
|
||||
if (hand == Hand.MAIN_HAND && player is ServerPlayerEntity && pokemon.getOwnerPlayer() == player) {
|
||||
@@ -840,7 +865,7 @@ open class PokemonEntity(
|
||||
// Check evolution item interaction
|
||||
if (pokemon.getOwnerPlayer() == player) {
|
||||
val context = ItemInteractionEvolution.ItemInteractionContext(stack, player.world)
|
||||
pokemon.evolutions
|
||||
pokemon.lockedEvolutions
|
||||
.filterIsInstance<ItemInteractionEvolution>()
|
||||
.forEach { evolution ->
|
||||
if (evolution.attemptEvolution(pokemon, context)) {
|
||||
@@ -1138,8 +1163,26 @@ open class PokemonEntity(
|
||||
this.pokemon.markFeatureDirty(feature)
|
||||
this.pokemon.updateAspects()
|
||||
val i = this.random.nextInt(3) + 1
|
||||
for (j in 0 until i) {
|
||||
val itemEntity = this.dropItem(Items.WHITE_WOOL, 1) ?: return
|
||||
for (j in 0 .. i) {
|
||||
val color = this.pokemon.getFeature<StringSpeciesFeature>(DataKeys.CAN_BE_COLORED)?.value ?: "white"
|
||||
val woolItem = when (color) {
|
||||
"black" -> Items.BLACK_WOOL
|
||||
"blue" -> Items.BLUE_WOOL
|
||||
"brown" -> Items.BROWN_WOOL
|
||||
"cyan" -> Items.CYAN_WOOL
|
||||
"gray" -> Items.GRAY_WOOL
|
||||
"green" -> Items.GREEN_WOOL
|
||||
"light-blue" -> Items.LIGHT_BLUE_WOOL
|
||||
"light-gray" -> Items.LIGHT_GRAY_WOOL
|
||||
"lime" -> Items.LIME_WOOL
|
||||
"magenta" -> Items.MAGENTA_WOOL
|
||||
"orange" -> Items.ORANGE_WOOL
|
||||
"purple" -> Items.PURPLE_WOOL
|
||||
"red" -> Items.RED_WOOL
|
||||
"yellow" -> Items.YELLOW_WOOL
|
||||
else -> Items.WHITE_WOOL
|
||||
}
|
||||
val itemEntity = this.dropItem(woolItem, 1) ?: return
|
||||
itemEntity.velocity = itemEntity.velocity.add(
|
||||
((this.random.nextFloat() - this.random.nextFloat()) * 0.1f).toDouble(),
|
||||
(this.random.nextFloat() * 0.05f).toDouble(),
|
||||
@@ -1153,6 +1196,8 @@ open class PokemonEntity(
|
||||
return !this.isBusy && !this.pokemon.isFainted() && !feature.enabled
|
||||
}
|
||||
|
||||
|
||||
|
||||
override fun canUsePortals() = false
|
||||
|
||||
override fun setAir(air: Int) {
|
||||
|
||||
@@ -19,7 +19,7 @@ class LinkCableItem : CobblemonItem(Settings()), PokemonEntityInteraction {
|
||||
override val accepted = setOf(PokemonEntityInteraction.Ownership.OWNER)
|
||||
override fun processInteraction(player: ServerPlayerEntity, entity: PokemonEntity, stack: ItemStack): Boolean {
|
||||
val pokemon = entity.pokemon
|
||||
pokemon.evolutions.filterIsInstance<TradeEvolution>().forEach { evolution ->
|
||||
pokemon.lockedEvolutions.filterIsInstance<TradeEvolution>().forEach { evolution ->
|
||||
// If an evolution is possible non-optional or has been successfully queued we will consume the item and stop
|
||||
// validate requirements to respect required held items and such.
|
||||
if (evolution.requirements.all { it.check(pokemon) } && evolution.evolve(pokemon)) {
|
||||
|
||||
@@ -426,6 +426,8 @@ open class Pokemon : ShowdownIdentifiable {
|
||||
|
||||
// We want non-optional evolutions to trigger first to avoid unnecessary packets and any cost associate with an optional one that would just be lost
|
||||
val evolutions: Iterable<Evolution> get() = this.form.evolutions.sortedBy { evolution -> evolution.optional }
|
||||
val lockedEvolutions: Iterable<Evolution>
|
||||
get() = evolutions.filter { it !in evolutionProxy.current() }
|
||||
|
||||
val preEvolution: PreEvolution? get() = this.form.preEvolution
|
||||
|
||||
|
||||
@@ -98,11 +98,11 @@ object TradeManager {
|
||||
party2.add(pokemon1)
|
||||
party1.add(pokemon2)
|
||||
|
||||
pokemon1.evolutions.filterIsInstance<TradeEvolution>().firstOrNull {
|
||||
pokemon1.lockedEvolutions.filterIsInstance<TradeEvolution>().firstOrNull {
|
||||
it.attemptEvolution(pokemon1, pokemon2)
|
||||
}
|
||||
|
||||
pokemon2.evolutions.filterIsInstance<TradeEvolution>().firstOrNull {
|
||||
pokemon2.lockedEvolutions.filterIsInstance<TradeEvolution>().firstOrNull {
|
||||
it.attemptEvolution(pokemon2, pokemon1)
|
||||
}
|
||||
CobblemonEvents.TRADE_COMPLETED.post(TradeCompletedEvent(player1, pokemon2, player2, pokemon1))
|
||||
|
||||
@@ -134,6 +134,7 @@ object DataKeys {
|
||||
// Features
|
||||
const val CAN_BE_MILKED = "milkable"
|
||||
const val HAS_BEEN_SHEARED = "sheared"
|
||||
const val CAN_BE_COLORED = "color"
|
||||
|
||||
// Variants
|
||||
const val IS_MOOSHTANK = "mooshtank"
|
||||
|
||||
@@ -231,7 +231,7 @@
|
||||
],
|
||||
"position": [0, "(math.clamp(math.sin(q.anim_time*90*4-110+180)*1,0.5,1)-0.5)*0.7", 0]
|
||||
},
|
||||
"wool": {
|
||||
"wool_shearable": {
|
||||
"position": [0, "0.5+Math.sin((query.anim_time-0.3) * 90 * 8) * 0.3", 0]
|
||||
},
|
||||
"tail": {
|
||||
@@ -419,10 +419,10 @@
|
||||
},
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.1667": [0, -2, -1],
|
||||
"0.3333": [0, -4, 0],
|
||||
"1.6667": [0, -4, 0],
|
||||
"1.8333": [0, -2, -1],
|
||||
"0.1667": [0, -1, -1],
|
||||
"0.3333": [0, -3, 0],
|
||||
"1.6667": [0, -3, 0],
|
||||
"1.8333": [0, -1, -1],
|
||||
"2.0": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
@@ -544,26 +544,28 @@
|
||||
},
|
||||
"ear_left": {
|
||||
"rotation": {
|
||||
"0.0": [0, -10, 0],
|
||||
"0.2917": [0, -10, -10],
|
||||
"0.4583": [0, -5, 5],
|
||||
"0.6667": [0, -10, 0],
|
||||
"1.6667": [0, -10, 0],
|
||||
"1.9167": [0, 0, 10],
|
||||
"2.0417": [0, -15, -5],
|
||||
"2.1667": [0, -10, 0]
|
||||
"0.0": [0, 0, 0],
|
||||
"0.2917": [-5, 10, -10],
|
||||
"0.4583": [-12.5, 11, -5],
|
||||
"0.6667": [-14, 12.3, 0],
|
||||
"1.0": [-15, 11.53, 0],
|
||||
"1.6667": [-10, 10, 0],
|
||||
"1.9167": [0, 10, 10],
|
||||
"2.0417": [0, -5, -5],
|
||||
"2.1667": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"ear_right": {
|
||||
"rotation": {
|
||||
"0.0": [0, 10, 0],
|
||||
"0.2917": [0, 10, 10],
|
||||
"0.4583": [0, 5, -5],
|
||||
"0.6667": [0, 10, 0],
|
||||
"1.6667": [0, 10, 0],
|
||||
"1.9167": [0, 0, -10],
|
||||
"2.0417": [0, 15, 5],
|
||||
"2.1667": [0, 10, 0]
|
||||
"0.0": [0, 0, 0],
|
||||
"0.2917": [-5, -10, 10],
|
||||
"0.4583": [-12.5, -11, 5],
|
||||
"0.6667": [-14, -12.3, 0],
|
||||
"1.0": [-15, -11.53, 0],
|
||||
"1.6667": [-10, -10, 0],
|
||||
"1.9167": [0, -10, -10],
|
||||
"2.0417": [0, 5, 5],
|
||||
"2.1667": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"neck": {
|
||||
|
||||
@@ -23,16 +23,16 @@
|
||||
{
|
||||
"name": "torso",
|
||||
"parent": "body",
|
||||
"pivot": [0, 8.5, 3.75],
|
||||
"pivot": [0, 7.5, 3.75],
|
||||
"cubes": [
|
||||
{"origin": [-3, 6.75, 0], "size": [6, 6, 6], "uv": [24, 26]},
|
||||
{"origin": [-3, 6.75, -5], "size": [6, 6, 6], "inflate": 0.01, "uv": [0, 26]}
|
||||
{"origin": [-3, 5.75, 0], "size": [6, 6, 6], "uv": [24, 26]},
|
||||
{"origin": [-3, 5.75, -5], "size": [6, 6, 6], "inflate": 0.01, "uv": [0, 26]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "wool",
|
||||
"name": "wool_shearable",
|
||||
"parent": "torso",
|
||||
"pivot": [6.5, 2.75, -5],
|
||||
"pivot": [6.5, 1.75, -5],
|
||||
"cubes": [
|
||||
{"origin": [-6.5, 2.75, -5.5], "size": [13, 13, 13], "inflate": 0.02, "uv": [0, 0]}
|
||||
]
|
||||
@@ -58,177 +58,201 @@
|
||||
{
|
||||
"name": "neck",
|
||||
"parent": "torso",
|
||||
"pivot": [0, 8.65, -1.5],
|
||||
"pivot": [0, 7.65, -1.5],
|
||||
"cubes": [
|
||||
{"origin": [-2, 8.65, -5.5], "size": [4, 4, 4], "inflate": 0.01, "uv": [8, 56]}
|
||||
{"origin": [-2, 7.65, -5.5], "size": [4, 4, 4], "inflate": 0.01, "uv": [8, 56]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "head",
|
||||
"parent": "torso",
|
||||
"pivot": [0.1, 10.75, -5],
|
||||
"pivot": [0.1, 9.75, -5],
|
||||
"cubes": [
|
||||
{"origin": [-2.5, 8.75, -10.5], "size": [5, 4, 6], "uv": [0, 39]},
|
||||
{"origin": [-1, 10, -10.5], "size": [2, 1, 0], "inflate": 0.01, "uv": [0, 30]},
|
||||
{"origin": [-1.9, 12.75, -8.25], "size": [1, 2, 1], "pivot": [-1.9, 12.75, -7.25], "rotation": [0, -5, -5], "uv": [39, 0]},
|
||||
{"origin": [0.9, 12.75, -8.25], "size": [1, 2, 1], "pivot": [1.9, 12.75, -7.25], "rotation": [0, 5, 5], "uv": [9, 0]}
|
||||
{"origin": [-2.5, 7.75, -10.5], "size": [5, 4, 6], "uv": [0, 39]},
|
||||
{"origin": [-1, 9, -10.5], "size": [2, 1, 0], "inflate": 0.01, "uv": [0, 30]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "horn_right",
|
||||
"parent": "head",
|
||||
"pivot": [-2, 12.75, -7.75],
|
||||
"rotation": [-15, 0, -5],
|
||||
"cubes": [
|
||||
{"origin": [-2.5, 11.75, -8.25], "size": [1, 2, 1], "pivot": [-2, 12.75, -7.75], "rotation": [0, 47.5, 0], "uv": [39, 0]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "horn_left",
|
||||
"parent": "head",
|
||||
"pivot": [2, 12.75, -7.75],
|
||||
"rotation": [-15, 0, 5],
|
||||
"cubes": [
|
||||
{"origin": [1.5, 11.75, -8.25], "size": [1, 2, 1], "pivot": [2, 12.75, -7.75], "rotation": [0, -47.5, 0], "uv": [9, 0]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "eyes",
|
||||
"parent": "head",
|
||||
"pivot": [-0.15, 10.75, -9]
|
||||
"pivot": [-0.15, 9.75, -9]
|
||||
},
|
||||
{
|
||||
"name": "eye_right",
|
||||
"parent": "eyes",
|
||||
"pivot": [-3.6, 10, -8.5],
|
||||
"pivot": [-3.6, 9, -8.5],
|
||||
"cubes": [
|
||||
{"origin": [-2.51, 9.75, -9.5], "size": [0, 2, 1], "uv": [18, 25], "mirror": true},
|
||||
{"origin": [-2.401, 9.75, -9.5], "size": [0, 2, 1], "inflate": 0.1, "uv": [0, 0], "mirror": true},
|
||||
{"origin": [-2.52, 10.25, -9.5], "size": [0, 1, 1], "uv": [8, 9], "mirror": true}
|
||||
{"origin": [-2.51, 8.75, -9.5], "size": [0, 2, 1], "uv": [18, 25], "mirror": true},
|
||||
{"origin": [-2.451, 8.75, -9.5], "size": [0, 2, 1], "inflate": 0.05, "uv": [0, 0], "mirror": true},
|
||||
{"origin": [-2.52, 9.25, -9.5], "size": [0, 1, 1], "uv": [8, 9], "mirror": true}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "eyelid_right",
|
||||
"parent": "eye_right",
|
||||
"pivot": [-1.82, 10.75, -9],
|
||||
"pivot": [-1.8645, 9.75, -9.01],
|
||||
"cubes": [
|
||||
{"origin": [-2.32, 9.75, -9.5], "size": [1, 2, 1], "inflate": 0.11, "uv": [54, 39]}
|
||||
{"origin": [-2.3645, 8.75, -10.01], "size": [1, 2, 2], "inflate": 0.06, "uv": [54, 39]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "eye_left",
|
||||
"parent": "eyes",
|
||||
"pivot": [3.75, 10, -8.5],
|
||||
"pivot": [3.75, 9, -8.5],
|
||||
"cubes": [
|
||||
{"origin": [2.51, 9.75, -9.5], "size": [0, 2, 1], "uv": [24, 25], "mirror": true},
|
||||
{"origin": [2.402, 9.75, -9.5], "size": [0, 2, 1], "inflate": 0.1, "uv": [0, 7], "mirror": true},
|
||||
{"origin": [2.52, 10.25, -9.5], "size": [0, 1, 1], "uv": [8, 10], "mirror": true}
|
||||
{"origin": [2.51, 8.75, -9.5], "size": [0, 2, 1], "uv": [24, 25], "mirror": true},
|
||||
{"origin": [2.452, 8.75, -9.5], "size": [0, 2, 1], "inflate": 0.05, "uv": [0, 7], "mirror": true},
|
||||
{"origin": [2.52, 9.25, -9.5], "size": [0, 1, 1], "uv": [8, 10], "mirror": true}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "eyelid_left",
|
||||
"parent": "eye_left",
|
||||
"pivot": [1.82, 10.75, -9],
|
||||
"pivot": [1.8645, 9.75, -9.01],
|
||||
"cubes": [
|
||||
{"origin": [1.32, 9.75, -9.5], "size": [1, 2, 1], "inflate": 0.11, "uv": [52, 36], "mirror": true}
|
||||
{"origin": [1.3645, 8.75, -10.01], "size": [1, 2, 2], "inflate": 0.06, "uv": [56, 32], "mirror": true}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "mouth_open",
|
||||
"parent": "head",
|
||||
"pivot": [-0.05, 10, -9.5],
|
||||
"pivot": [-0.05, 9, -9.5],
|
||||
"cubes": [
|
||||
{"origin": [-1.05, 8.75, -10.41], "size": [2, 1, 0], "uv": [8, 12]}
|
||||
{"origin": [-1.05, 7.75, -10.41], "size": [2, 1, 0], "uv": [8, 12]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "head_wool",
|
||||
"parent": "head",
|
||||
"pivot": [-2.3928, 13.73889, -6.69372],
|
||||
"pivot": [-2.3928, 12.73889, -6.69372],
|
||||
"cubes": [
|
||||
{"origin": [-2.025, 12, -9.19785], "size": [2, 2, 2], "pivot": [-1.05693, 12.8315, -8.01133], "rotation": [0, 5, 0], "uv": [50, 24]},
|
||||
{"origin": [-2.5, 8.5, -7.5], "size": [5, 6, 4], "inflate": 0.01, "uv": [39, 0]},
|
||||
{"origin": [0.025, 12, -9.19785], "size": [2, 2, 2], "pivot": [1.06611, 12.8315, -8.01133], "rotation": [0, -5, 0], "uv": [52, 10]},
|
||||
{"origin": [-3.75, 11.5, -8.25], "size": [2, 2, 2], "uv": [8, 49]},
|
||||
{"origin": [1.75, 11.5, -8.25], "size": [2, 2, 2], "uv": [16, 39]}
|
||||
{"origin": [-2.025, 11, -9.19785], "size": [2, 2, 2], "pivot": [-1.05693, 11.8315, -8.01133], "rotation": [0, 5, 0], "uv": [50, 24]},
|
||||
{"origin": [-2.5, 7.5, -7.5], "size": [5, 5, 3], "inflate": 0.01, "uv": [24, 56]},
|
||||
{"origin": [0.025, 11, -9.19785], "size": [2, 2, 2], "pivot": [1.06611, 11.8315, -8.01133], "rotation": [0, -5, 0], "uv": [52, 10]},
|
||||
{"origin": [-3.75, 10.75, -8.5], "size": [2, 2, 2], "uv": [8, 49]},
|
||||
{"origin": [1.75, 10.75, -8.5], "size": [2, 2, 2], "uv": [16, 39]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "head_wool_shearable",
|
||||
"parent": "head_wool",
|
||||
"pivot": [0, -1, 0],
|
||||
"cubes": [
|
||||
{"origin": [-2.5, 9.5, -7.5], "size": [5, 4, 4], "inflate": 0.02, "uv": [39, 0]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "braid_right",
|
||||
"parent": "head_wool",
|
||||
"pivot": [-3, 11.5, -7.5],
|
||||
"pivot": [-3, 10.75, -7.5],
|
||||
"cubes": [
|
||||
{"origin": [-3.5, 10.75, -8], "size": [1, 1, 1], "uv": [0, 39]},
|
||||
{"origin": [-4, 9, -8.5], "size": [2, 2, 2], "uv": [0, 49]}
|
||||
{"origin": [-3.5, 10, -8], "size": [1, 1, 1], "uv": [0, 39]},
|
||||
{"origin": [-4, 8.25, -8.5], "size": [2, 2, 2], "uv": [0, 49]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "braid_middle_right",
|
||||
"parent": "braid_right",
|
||||
"pivot": [-3, 9, -7.5],
|
||||
"pivot": [-3, 8.25, -7.5],
|
||||
"cubes": [
|
||||
{"origin": [-3.5, 8.25, -8], "size": [1, 1, 1], "uv": [0, 41]},
|
||||
{"origin": [-4, 6.5, -8.5], "size": [2, 2, 2], "uv": [36, 48]}
|
||||
{"origin": [-3.5, 7.5, -8], "size": [1, 1, 1], "uv": [0, 41]},
|
||||
{"origin": [-4, 5.75, -8.5], "size": [2, 2, 2], "uv": [36, 48]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "braid_bottom_right",
|
||||
"parent": "braid_middle_right",
|
||||
"pivot": [-3, 6.5, -7.5],
|
||||
"pivot": [-3, 5.75, -7.5],
|
||||
"cubes": [
|
||||
{"origin": [-3.5, 5.75, -8], "size": [1, 1, 1], "uv": [0, 43]},
|
||||
{"origin": [-4, 4, -8.5], "size": [2, 2, 2], "uv": [28, 48]},
|
||||
{"origin": [-4, 3.75, -8.5], "size": [2, 1, 0], "pivot": [-3, 4.75, -8.5], "rotation": [-12.5, 0, 0], "uv": [0, 61]},
|
||||
{"origin": [-4, 3.75, -8.5], "size": [0, 1, 2], "pivot": [-4, 4.75, -7.5], "rotation": [0, 0, 12.5], "uv": [0, 60]},
|
||||
{"origin": [-2, 3.75, -8.5], "size": [0, 1, 2], "pivot": [-2, 4.75, -7.5], "rotation": [0, 0, -12.5], "uv": [0, 61]},
|
||||
{"origin": [-4, 3.75, -6.5], "size": [2, 1, 0], "pivot": [-3, 4.75, -6.5], "rotation": [12.5, 0, 0], "uv": [0, 60]}
|
||||
{"origin": [-3.5, 5, -8], "size": [1, 1, 1], "uv": [0, 43]},
|
||||
{"origin": [-4, 3.25, -8.5], "size": [2, 2, 2], "uv": [28, 48]},
|
||||
{"origin": [-4, 3, -8.5], "size": [2, 1, 0], "pivot": [-3, 4, -8.5], "rotation": [-12.5, 0, 0], "uv": [0, 61]},
|
||||
{"origin": [-4, 3, -8.5], "size": [0, 1, 2], "pivot": [-4, 4, -7.5], "rotation": [0, 0, 12.5], "uv": [0, 60]},
|
||||
{"origin": [-2, 3, -8.5], "size": [0, 1, 2], "pivot": [-2, 4, -7.5], "rotation": [0, 0, -12.5], "uv": [0, 61]},
|
||||
{"origin": [-4, 3, -6.5], "size": [2, 1, 0], "pivot": [-3, 4, -6.5], "rotation": [12.5, 0, 0], "uv": [0, 60]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "braid_left",
|
||||
"parent": "head_wool",
|
||||
"pivot": [3, 11.5, -7.5],
|
||||
"pivot": [3, 10.75, -7.5],
|
||||
"cubes": [
|
||||
{"origin": [2.5, 10.75, -8], "size": [1, 1, 1], "uv": [26, 26]},
|
||||
{"origin": [2, 9, -8.5], "size": [2, 2, 2], "uv": [48, 30]}
|
||||
{"origin": [2.5, 10, -8], "size": [1, 1, 1], "uv": [26, 26]},
|
||||
{"origin": [2, 8.25, -8.5], "size": [2, 2, 2], "uv": [48, 30]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "braid_middle_left",
|
||||
"parent": "braid_left",
|
||||
"pivot": [3, 9, -7.5],
|
||||
"pivot": [3, 8.25, -7.5],
|
||||
"cubes": [
|
||||
{"origin": [2.5, 8.25, -8], "size": [1, 1, 1], "uv": [26, 28]},
|
||||
{"origin": [2, 6.5, -8.5], "size": [2, 2, 2], "uv": [32, 39]}
|
||||
{"origin": [2.5, 7.5, -8], "size": [1, 1, 1], "uv": [26, 28]},
|
||||
{"origin": [2, 5.75, -8.5], "size": [2, 2, 2], "uv": [32, 39]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "braid_bottom_left",
|
||||
"parent": "braid_middle_left",
|
||||
"pivot": [3, 6.5, -7.5],
|
||||
"pivot": [3, 5.75, -7.5],
|
||||
"cubes": [
|
||||
{"origin": [2.5, 5.75, -8], "size": [1, 1, 1], "uv": [26, 30]},
|
||||
{"origin": [2, 4, -8.5], "size": [2, 2, 2], "uv": [0, 8]},
|
||||
{"origin": [2, 3.75, -8.5], "size": [2, 1, 0], "pivot": [3, 4.75, -8.5], "rotation": [-12.5, 0, 0], "uv": [4, 61], "mirror": true},
|
||||
{"origin": [2, 3.75, -8.5], "size": [0, 1, 2], "pivot": [2, 4.75, -7.5], "rotation": [0, 0, 12.5], "uv": [4, 61], "mirror": true},
|
||||
{"origin": [4, 3.75, -8.5], "size": [0, 1, 2], "pivot": [4, 4.75, -7.5], "rotation": [0, 0, -12.5], "uv": [4, 60], "mirror": true},
|
||||
{"origin": [2, 3.75, -6.5], "size": [2, 1, 0], "pivot": [3, 4.75, -6.5], "rotation": [12.5, 0, 0], "uv": [4, 60], "mirror": true}
|
||||
{"origin": [2.5, 5, -8], "size": [1, 1, 1], "uv": [26, 30]},
|
||||
{"origin": [2, 3.25, -8.5], "size": [2, 2, 2], "uv": [0, 8]},
|
||||
{"origin": [2, 3, -8.5], "size": [2, 1, 0], "pivot": [3, 4, -8.5], "rotation": [-12.5, 0, 0], "uv": [4, 61], "mirror": true},
|
||||
{"origin": [2, 3, -8.5], "size": [0, 1, 2], "pivot": [2, 4, -7.5], "rotation": [0, 0, 12.5], "uv": [4, 61], "mirror": true},
|
||||
{"origin": [4, 3, -8.5], "size": [0, 1, 2], "pivot": [4, 4, -7.5], "rotation": [0, 0, -12.5], "uv": [4, 60], "mirror": true},
|
||||
{"origin": [2, 3, -6.5], "size": [2, 1, 0], "pivot": [3, 4, -6.5], "rotation": [12.5, 0, 0], "uv": [4, 60], "mirror": true}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "ear_left",
|
||||
"parent": "head",
|
||||
"pivot": [2.5, 11.75, -6.5],
|
||||
"pivot": [2.5, 10.75, -6.5],
|
||||
"rotation": [0, 0, 15],
|
||||
"cubes": [
|
||||
{"origin": [2.25, 10, -6.5], "size": [4, 2, 0], "uv": [48, 34]}
|
||||
{"origin": [2.25, 9, -6.5], "size": [4, 2, 0], "uv": [48, 34]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "ear_right",
|
||||
"parent": "head",
|
||||
"pivot": [-2.5, 11.75, -6.5],
|
||||
"pivot": [-2.5, 10.75, -6.5],
|
||||
"rotation": [0, 0, -15],
|
||||
"cubes": [
|
||||
{"origin": [-6.25, 10, -6.5], "size": [4, 2, 0], "uv": [39, 10]}
|
||||
{"origin": [-6.25, 9, -6.5], "size": [4, 2, 0], "uv": [39, 10]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "leg_front_right",
|
||||
"parent": "body",
|
||||
"pivot": [2.25, 8.5, -3],
|
||||
"pivot": [2.25, 7.5, -3],
|
||||
"cubes": [
|
||||
{"origin": [0.75, 5, -4.5], "size": [3, 5, 3], "uv": [0, 0]}
|
||||
{"origin": [0.75, 4, -4.5], "size": [3, 5, 3], "uv": [0, 0]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "leg_front_right2",
|
||||
"parent": "leg_front_right",
|
||||
"pivot": [2.25, 6, -3.75],
|
||||
"pivot": [2.25, 5, -3.75],
|
||||
"cubes": [
|
||||
{"origin": [1.25, 1.25, -3.75], "size": [2, 4, 2], "uv": [18, 26]}
|
||||
{"origin": [1.25, 1.25, -3.75], "size": [2, 3, 2], "uv": [18, 26]}
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -242,17 +266,17 @@
|
||||
{
|
||||
"name": "leg_front_left",
|
||||
"parent": "body",
|
||||
"pivot": [-2.25, 8.5, -3],
|
||||
"pivot": [-2.25, 7.5, -3],
|
||||
"cubes": [
|
||||
{"origin": [-3.75, 5, -4.5], "size": [3, 5, 3], "uv": [47, 45]}
|
||||
{"origin": [-3.75, 4, -4.5], "size": [3, 5, 3], "uv": [47, 45]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "leg_front_left2",
|
||||
"parent": "leg_front_left",
|
||||
"pivot": [-2.25, 5, -3.75],
|
||||
"pivot": [-2.25, 4, -3.75],
|
||||
"cubes": [
|
||||
{"origin": [-3.25, 1.25, -3.75], "size": [2, 4, 2], "uv": [42, 26]}
|
||||
{"origin": [-3.25, 1.25, -3.75], "size": [2, 3, 2], "uv": [42, 26]}
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -266,17 +290,17 @@
|
||||
{
|
||||
"name": "leg_back_right",
|
||||
"parent": "body",
|
||||
"pivot": [2.25, 8.5, 3.5],
|
||||
"pivot": [2.25, 7.5, 3.5],
|
||||
"cubes": [
|
||||
{"origin": [0.75, 5, 1.5], "size": [3, 5, 4], "uv": [22, 39]}
|
||||
{"origin": [0.75, 4, 1.5], "size": [3, 5, 4], "uv": [22, 39]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "leg_back_right2",
|
||||
"parent": "leg_back_right",
|
||||
"pivot": [2.25, 5, 5],
|
||||
"pivot": [2.25, 4, 5],
|
||||
"cubes": [
|
||||
{"origin": [1.25, 1.25, 3.75], "size": [2, 4, 2], "uv": [46, 37]}
|
||||
{"origin": [1.25, 1.25, 3.75], "size": [2, 3, 2], "uv": [46, 37]}
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -290,17 +314,17 @@
|
||||
{
|
||||
"name": "leg_back_left",
|
||||
"parent": "body",
|
||||
"pivot": [-2.25, 8.5, 3.5],
|
||||
"pivot": [-2.25, 7.5, 3.5],
|
||||
"cubes": [
|
||||
{"origin": [-3.75, 5, 1.5], "size": [3, 5, 4], "uv": [36, 39]}
|
||||
{"origin": [-3.75, 4, 1.5], "size": [3, 5, 4], "uv": [36, 39]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "leg_back_left2",
|
||||
"parent": "leg_back_left",
|
||||
"pivot": [-2.25, 5, 5],
|
||||
"pivot": [-2.25, 4, 5],
|
||||
"cubes": [
|
||||
{"origin": [-3.25, 1.25, 3.75], "size": [2, 4, 2], "uv": [20, 48]}
|
||||
{"origin": [-3.25, 1.25, 3.75], "size": [2, 3, 2], "uv": [20, 48]}
|
||||
]
|
||||
},
|
||||
{
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "wool",
|
||||
"name": "wool_shearable",
|
||||
"parent": "torso",
|
||||
"pivot": [0, 12.75, 0.25],
|
||||
"cubes": [
|
||||
@@ -47,7 +47,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "neck_wool",
|
||||
"name": "neck_wool_shearable",
|
||||
"parent": "neck",
|
||||
"pivot": [0, 15.5, -9.5],
|
||||
"rotation": [-62.5, 0, 0],
|
||||
@@ -57,7 +57,7 @@
|
||||
},
|
||||
{
|
||||
"name": "neck_wool_middle_right",
|
||||
"parent": "neck_wool",
|
||||
"parent": "neck_wool_shearable",
|
||||
"pivot": [0.25, 13.75, -9.5],
|
||||
"rotation": [7.5, 0, 12.5],
|
||||
"cubes": [
|
||||
@@ -66,7 +66,7 @@
|
||||
},
|
||||
{
|
||||
"name": "neck_wool_middle_left",
|
||||
"parent": "neck_wool",
|
||||
"parent": "neck_wool_shearable",
|
||||
"pivot": [-0.25, 13.75, -9.5],
|
||||
"rotation": [7.5, 0, -12.5],
|
||||
"cubes": [
|
||||
@@ -75,7 +75,7 @@
|
||||
},
|
||||
{
|
||||
"name": "neck_wool_right",
|
||||
"parent": "neck_wool",
|
||||
"parent": "neck_wool_shearable",
|
||||
"pivot": [-1.75, 13.75, -9.5],
|
||||
"rotation": [12.5, 0, 25],
|
||||
"cubes": [
|
||||
@@ -84,7 +84,7 @@
|
||||
},
|
||||
{
|
||||
"name": "neck_wool_left",
|
||||
"parent": "neck_wool",
|
||||
"parent": "neck_wool_shearable",
|
||||
"pivot": [1.75, 13.75, -9.5],
|
||||
"rotation": [12.5, 0, -25],
|
||||
"cubes": [
|
||||
@@ -324,19 +324,19 @@
|
||||
{
|
||||
"name": "tail",
|
||||
"parent": "torso",
|
||||
"pivot": [0, 15, 7],
|
||||
"pivot": [0, 14, 7],
|
||||
"rotation": [-42.5, 0, 0],
|
||||
"cubes": [
|
||||
{"origin": [-0.5, 14, 7], "size": [1, 1, 3], "inflate": 0.01, "uv": [102, 1]}
|
||||
{"origin": [-0.5, 13, 7], "size": [1, 1, 3], "inflate": 0.01, "uv": [102, 1]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "tail2",
|
||||
"parent": "tail",
|
||||
"pivot": [0, 14, 10],
|
||||
"pivot": [0, 13, 10],
|
||||
"rotation": [35, 0, 0],
|
||||
"cubes": [
|
||||
{"origin": [-0.5, 14, 10], "size": [1, 1, 3], "uv": [98, 26]}
|
||||
{"origin": [-0.5, 13, 10], "size": [1, 1, 3], "uv": [98, 26]}
|
||||
]
|
||||
},
|
||||
{
|
||||
|
||||
@@ -14,6 +14,210 @@
|
||||
"shiny"
|
||||
],
|
||||
"texture": "cobblemon:textures/pokemon/0831_wooloo/wooloo_shiny.png"
|
||||
},
|
||||
{
|
||||
"aspects": [
|
||||
"color-black"
|
||||
],
|
||||
"layers": [
|
||||
{
|
||||
"name": "color",
|
||||
"texture": "cobblemon:textures/pokemon/0831_wooloo/wooloo_wool_black.png",
|
||||
"emissive": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aspects": [
|
||||
"color-blue"
|
||||
],
|
||||
"layers": [
|
||||
{
|
||||
"name": "color",
|
||||
"texture": "cobblemon:textures/pokemon/0831_wooloo/wooloo_wool_blue.png",
|
||||
"emissive": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aspects": [
|
||||
"color-brown"
|
||||
],
|
||||
"layers": [
|
||||
{
|
||||
"name": "color",
|
||||
"texture": "cobblemon:textures/pokemon/0831_wooloo/wooloo_wool_brown.png",
|
||||
"emissive": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aspects": [
|
||||
"color-cyan"
|
||||
],
|
||||
"layers": [
|
||||
{
|
||||
"name": "color",
|
||||
"texture": "cobblemon:textures/pokemon/0831_wooloo/wooloo_wool_cyan.png",
|
||||
"emissive": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aspects": [
|
||||
"color-gray"
|
||||
],
|
||||
"layers": [
|
||||
{
|
||||
"name": "color",
|
||||
"texture": "cobblemon:textures/pokemon/0831_wooloo/wooloo_wool_gray.png",
|
||||
"emissive": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aspects": [
|
||||
"color-green"
|
||||
],
|
||||
"layers": [
|
||||
{
|
||||
"name": "color",
|
||||
"texture": "cobblemon:textures/pokemon/0831_wooloo/wooloo_wool_green.png",
|
||||
"emissive": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aspects": [
|
||||
"color-light_blue"
|
||||
],
|
||||
"layers": [
|
||||
{
|
||||
"name": "color",
|
||||
"texture": "cobblemon:textures/pokemon/0831_wooloo/wooloo_wool_light_blue.png",
|
||||
"emissive": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aspects": [
|
||||
"color-light_gray"
|
||||
],
|
||||
"layers": [
|
||||
{
|
||||
"name": "color",
|
||||
"texture": "cobblemon:textures/pokemon/0831_wooloo/wooloo_wool_light_gray.png",
|
||||
"emissive": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aspects": [
|
||||
"color-lime"
|
||||
],
|
||||
"layers": [
|
||||
{
|
||||
"name": "color",
|
||||
"texture": "cobblemon:textures/pokemon/0831_wooloo/wooloo_wool_lime.png",
|
||||
"emissive": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aspects": [
|
||||
"color-magenta"
|
||||
],
|
||||
"layers": [
|
||||
{
|
||||
"name": "color",
|
||||
"texture": "cobblemon:textures/pokemon/0831_wooloo/wooloo_wool_magenta.png",
|
||||
"emissive": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aspects": [
|
||||
"color-orange"
|
||||
],
|
||||
"layers": [
|
||||
{
|
||||
"name": "color",
|
||||
"texture": "cobblemon:textures/pokemon/0831_wooloo/wooloo_wool_orange.png",
|
||||
"emissive": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aspects": [
|
||||
"color-pink"
|
||||
],
|
||||
"layers": [
|
||||
{
|
||||
"name": "color",
|
||||
"texture": "cobblemon:textures/pokemon/0831_wooloo/wooloo_wool_pink.png",
|
||||
"emissive": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aspects": [
|
||||
"color-purple"
|
||||
],
|
||||
"layers": [
|
||||
{
|
||||
"name": "color",
|
||||
"texture": "cobblemon:textures/pokemon/0831_wooloo/wooloo_wool_purple.png",
|
||||
"emissive": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aspects": [
|
||||
"color-red"
|
||||
],
|
||||
"layers": [
|
||||
{
|
||||
"name": "color",
|
||||
"texture": "cobblemon:textures/pokemon/0831_wooloo/wooloo_wool_red.png",
|
||||
"emissive": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aspects": [
|
||||
"color-white"
|
||||
],
|
||||
"layers": [
|
||||
{
|
||||
"name": "color",
|
||||
"texture": "cobblemon:textures/pokemon/0831_wooloo/wooloo_wool.png",
|
||||
"emissive": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aspects": [
|
||||
"color-white shiny"
|
||||
],
|
||||
"layers": [
|
||||
{
|
||||
"name": "color",
|
||||
"texture": "cobblemon:textures/pokemon/0831_wooloo/wooloo_wool_shiny.png",
|
||||
"emissive": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aspects": [
|
||||
"color-yellow"
|
||||
],
|
||||
"layers": [
|
||||
{
|
||||
"name": "color",
|
||||
"texture": "cobblemon:textures/pokemon/0831_wooloo/wooloo_wool_yellow.png",
|
||||
"emissive": false
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -14,6 +14,390 @@
|
||||
"shiny"
|
||||
],
|
||||
"texture": "cobblemon:textures/pokemon/0832_dubwool/dubwool_shiny.png"
|
||||
},
|
||||
{
|
||||
"aspects": [
|
||||
"color-black"
|
||||
],
|
||||
"layers": [
|
||||
{
|
||||
"name": "color",
|
||||
"texture": "cobblemon:textures/pokemon/0832_dubwool/dubwool_wool_black.png",
|
||||
"emissive": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aspects": [
|
||||
"color-blue"
|
||||
],
|
||||
"layers": [
|
||||
{
|
||||
"name": "color",
|
||||
"texture": "cobblemon:textures/pokemon/0832_dubwool/dubwool_wool_blue.png",
|
||||
"emissive": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aspects": [
|
||||
"color-brown"
|
||||
],
|
||||
"layers": [
|
||||
{
|
||||
"name": "color",
|
||||
"texture": "cobblemon:textures/pokemon/0832_dubwool/dubwool_wool_brown.png",
|
||||
"emissive": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aspects": [
|
||||
"color-cyan"
|
||||
],
|
||||
"layers": [
|
||||
{
|
||||
"name": "color",
|
||||
"texture": "cobblemon:textures/pokemon/0832_dubwool/dubwool_wool_cyan.png",
|
||||
"emissive": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aspects": [
|
||||
"color-gray"
|
||||
],
|
||||
"layers": [
|
||||
{
|
||||
"name": "color",
|
||||
"texture": "cobblemon:textures/pokemon/0832_dubwool/dubwool_wool_gray.png",
|
||||
"emissive": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aspects": [
|
||||
"color-green"
|
||||
],
|
||||
"layers": [
|
||||
{
|
||||
"name": "color",
|
||||
"texture": "cobblemon:textures/pokemon/0832_dubwool/dubwool_wool_green.png",
|
||||
"emissive": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aspects": [
|
||||
"color-light_blue"
|
||||
],
|
||||
"layers": [
|
||||
{
|
||||
"name": "color",
|
||||
"texture": "cobblemon:textures/pokemon/0832_dubwool/dubwool_wool_light_blue.png",
|
||||
"emissive": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aspects": [
|
||||
"color-light_gray"
|
||||
],
|
||||
"layers": [
|
||||
{
|
||||
"name": "color",
|
||||
"texture": "cobblemon:textures/pokemon/0832_dubwool/dubwool_wool_light_gray.png",
|
||||
"emissive": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aspects": [
|
||||
"color-lime"
|
||||
],
|
||||
"layers": [
|
||||
{
|
||||
"name": "color",
|
||||
"texture": "cobblemon:textures/pokemon/0832_dubwool/dubwool_wool_lime.png",
|
||||
"emissive": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aspects": [
|
||||
"color-magenta"
|
||||
],
|
||||
"layers": [
|
||||
{
|
||||
"name": "color",
|
||||
"texture": "cobblemon:textures/pokemon/0832_dubwool/dubwool_wool_magenta.png",
|
||||
"emissive": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aspects": [
|
||||
"color-orange"
|
||||
],
|
||||
"layers": [
|
||||
{
|
||||
"name": "color",
|
||||
"texture": "cobblemon:textures/pokemon/0832_dubwool/dubwool_wool_orange.png",
|
||||
"emissive": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aspects": [
|
||||
"color-pink"
|
||||
],
|
||||
"layers": [
|
||||
{
|
||||
"name": "color",
|
||||
"texture": "cobblemon:textures/pokemon/0832_dubwool/dubwool_wool_pink.png",
|
||||
"emissive": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aspects": [
|
||||
"color-purple"
|
||||
],
|
||||
"layers": [
|
||||
{
|
||||
"name": "color",
|
||||
"texture": "cobblemon:textures/pokemon/0832_dubwool/dubwool_wool_purple.png",
|
||||
"emissive": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aspects": [
|
||||
"color-red"
|
||||
],
|
||||
"layers": [
|
||||
{
|
||||
"name": "color",
|
||||
"texture": "cobblemon:textures/pokemon/0832_dubwool/dubwool_wool_red.png",
|
||||
"emissive": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aspects": [
|
||||
"color-white"
|
||||
],
|
||||
"layers": [
|
||||
{
|
||||
"name": "color",
|
||||
"texture": "cobblemon:textures/pokemon/0832_dubwool/dubwool_wool_white.png",
|
||||
"emissive": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aspects": [
|
||||
"color-yellow"
|
||||
],
|
||||
"layers": [
|
||||
{
|
||||
"name": "color",
|
||||
"texture": "cobblemon:textures/pokemon/0832_dubwool/dubwool_wool_yellow.png",
|
||||
"emissive": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aspects": [
|
||||
"color-black shiny"
|
||||
],
|
||||
"layers": [
|
||||
{
|
||||
"name": "color",
|
||||
"texture": "cobblemon:textures/pokemon/0832_dubwool/dubwool_wool_black_shiny.png",
|
||||
"emissive": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aspects": [
|
||||
"color-blue shiny"
|
||||
],
|
||||
"layers": [
|
||||
{
|
||||
"name": "color",
|
||||
"texture": "cobblemon:textures/pokemon/0832_dubwool/dubwool_wool_blue_shiny.png",
|
||||
"emissive": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aspects": [
|
||||
"color-brown shiny"
|
||||
],
|
||||
"layers": [
|
||||
{
|
||||
"name": "color",
|
||||
"texture": "cobblemon:textures/pokemon/0832_dubwool/dubwool_wool_brown_shiny.png",
|
||||
"emissive": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aspects": [
|
||||
"color-cyan shiny"
|
||||
],
|
||||
"layers": [
|
||||
{
|
||||
"name": "color",
|
||||
"texture": "cobblemon:textures/pokemon/0832_dubwool/dubwool_wool_cyan_shiny.png",
|
||||
"emissive": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aspects": [
|
||||
"color-gray shiny"
|
||||
],
|
||||
"layers": [
|
||||
{
|
||||
"name": "color",
|
||||
"texture": "cobblemon:textures/pokemon/0832_dubwool/dubwool_wool_gray_shiny.png",
|
||||
"emissive": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aspects": [
|
||||
"color-green shiny"
|
||||
],
|
||||
"layers": [
|
||||
{
|
||||
"name": "color",
|
||||
"texture": "cobblemon:textures/pokemon/0832_dubwool/dubwool_wool_green_shiny.png",
|
||||
"emissive": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aspects": [
|
||||
"color-light_blue shiny"
|
||||
],
|
||||
"layers": [
|
||||
{
|
||||
"name": "color",
|
||||
"texture": "cobblemon:textures/pokemon/0832_dubwool/dubwool_wool_light_blue_shiny.png",
|
||||
"emissive": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aspects": [
|
||||
"color-light_gray shiny"
|
||||
],
|
||||
"layers": [
|
||||
{
|
||||
"name": "color",
|
||||
"texture": "cobblemon:textures/pokemon/0832_dubwool/dubwool_wool_light_gray_shiny.png",
|
||||
"emissive": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aspects": [
|
||||
"color-lime shiny"
|
||||
],
|
||||
"layers": [
|
||||
{
|
||||
"name": "color",
|
||||
"texture": "cobblemon:textures/pokemon/0832_dubwool/dubwool_wool_lime_shiny.png",
|
||||
"emissive": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aspects": [
|
||||
"color-magenta shiny"
|
||||
],
|
||||
"layers": [
|
||||
{
|
||||
"name": "color",
|
||||
"texture": "cobblemon:textures/pokemon/0832_dubwool/dubwool_wool_magenta_shiny.png",
|
||||
"emissive": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aspects": [
|
||||
"color-orange shiny"
|
||||
],
|
||||
"layers": [
|
||||
{
|
||||
"name": "color",
|
||||
"texture": "cobblemon:textures/pokemon/0832_dubwool/dubwool_wool_orange_shiny.png",
|
||||
"emissive": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aspects": [
|
||||
"color-pink shiny"
|
||||
],
|
||||
"layers": [
|
||||
{
|
||||
"name": "color",
|
||||
"texture": "cobblemon:textures/pokemon/0832_dubwool/dubwool_wool_pink_shiny.png",
|
||||
"emissive": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aspects": [
|
||||
"color-purple shiny"
|
||||
],
|
||||
"layers": [
|
||||
{
|
||||
"name": "color",
|
||||
"texture": "cobblemon:textures/pokemon/0832_dubwool/dubwool_wool_purple_shiny.png",
|
||||
"emissive": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aspects": [
|
||||
"color-red shiny"
|
||||
],
|
||||
"layers": [
|
||||
{
|
||||
"name": "color",
|
||||
"texture": "cobblemon:textures/pokemon/0832_dubwool/dubwool_wool_red_shiny.png",
|
||||
"emissive": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aspects": [
|
||||
"color-white shiny"
|
||||
],
|
||||
"layers": [
|
||||
{
|
||||
"name": "color",
|
||||
"texture": "cobblemon:textures/pokemon/0832_dubwool/dubwool_wool_white_shiny.png",
|
||||
"emissive": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aspects": [
|
||||
"color-yellow shiny"
|
||||
],
|
||||
"layers": [
|
||||
{
|
||||
"name": "color",
|
||||
"texture": "cobblemon:textures/pokemon/0832_dubwool/dubwool_wool_yellow_shiny.png",
|
||||
"emissive": false
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1130,6 +1130,7 @@
|
||||
"cobblemon.battle.cant.shelltrap": "%1$s's shell trap didn't work!",
|
||||
"cobblemon.battle.cant.taunt": "%1$s can't use %2$s after the taunt!",
|
||||
"cobblemon.battle.cant.throatchop": "The effects of Throat Chop prevent %1$s from using certain moves!",
|
||||
"cobblemon.battle.cant.nopp": "%1$s can't use %2$s because it is out of PP!",
|
||||
|
||||
"cobblemon.battle.activate.confusion": "%1$s is confused!",
|
||||
"cobblemon.battle.activate.happyhour": "Everyone is caught up in the happy atmosphere!",
|
||||
|
||||
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
@@ -1,4 +1,4 @@
|
||||
{
|
||||
"pokemon": ["conkeldurr"],
|
||||
"pokemon": ["conkeldurr", "wooloo", "dubwool"],
|
||||
"features": ["color"]
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
{
|
||||
"pokemon": ["gimmighoul"],
|
||||
"pokemon": ["gimmighoul", "gholdengo"],
|
||||
"features": ["roaming"]
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"type": "choice",
|
||||
"keys": ["color"],
|
||||
"default": "false",
|
||||
"keys": ["color", "colour"],
|
||||
"default": "none",
|
||||
"choices": [
|
||||
"white",
|
||||
"orange",
|
||||
|
||||