Compare commits
99
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2895c0a2ef | ||
|
|
acc87f9eae | ||
|
|
928dfcdadf | ||
|
|
21363405fc | ||
|
|
08c4f4a0ff | ||
|
|
c4a1704a8b | ||
|
|
837aa5acf5 | ||
|
|
969d6ac7fc | ||
|
|
46bb9e1aec | ||
|
|
9792ff3392 | ||
|
|
e863c6d094 | ||
|
|
a070dc56bd | ||
|
|
79f9e0f0f2 | ||
|
|
8500eb58ef | ||
|
|
e835b833b3 | ||
|
|
3b653b745e | ||
|
|
d03541ff6f | ||
|
|
0d7aff0349 | ||
|
|
c904888c6a | ||
|
|
c07d7d304e | ||
|
|
5f94999b4f | ||
|
|
6515bfa108 | ||
|
|
c502fec709 | ||
|
|
756ef48ba2 | ||
|
|
2c4df6622a | ||
|
|
f1213abdf4 | ||
|
|
9b1d847f59 | ||
|
|
bf900a0167 | ||
|
|
703282eca1 | ||
|
|
4e3e6405d0 | ||
|
|
1e161a52ee | ||
|
|
65b2204783 | ||
|
|
a9115bfb15 | ||
|
|
f2c5113f0b | ||
|
|
e29a2402e9 | ||
|
|
aa4857abbb | ||
|
|
d29653233d | ||
|
|
1b51a128d7 | ||
|
|
245011cf5e | ||
|
|
20a97984a2 | ||
|
|
d1517548bd | ||
|
|
3e1f9dc9b0 | ||
|
|
fd19e65f79 | ||
|
|
6b10d81bc8 | ||
|
|
f3b9c03fc2 | ||
|
|
2b95138c46 | ||
|
|
864e6be461 | ||
|
|
c02fa1f85e | ||
|
|
503b1069fd | ||
|
|
f1d593d53c | ||
|
|
55dd486044 | ||
|
|
3263837137 | ||
|
|
a471fcd948 | ||
|
|
a14bfd55d1 | ||
|
|
725e819e89 | ||
|
|
b52b843206 | ||
|
|
74c65e22cb | ||
|
|
c348520a9b | ||
|
|
78dd5f334a | ||
|
|
67318c9307 | ||
|
|
31c48407df | ||
|
|
0957de86c7 | ||
|
|
daae444fa9 | ||
|
|
79423ef5ee | ||
|
|
6255f7dc31 | ||
|
|
ff10306372 | ||
|
|
aaf7daa45b | ||
|
|
ae550f78c4 | ||
|
|
66e4194a3e | ||
|
|
12e6b76504 | ||
|
|
93861af71f | ||
|
|
0c80748012 | ||
|
|
fcf832c22c | ||
|
|
a065aff744 | ||
|
|
d77f424a83 | ||
|
|
d5d2a2cec3 | ||
|
|
036e150191 | ||
|
|
0bf1d84675 | ||
|
|
b1b8e658b2 | ||
|
|
f984b21929 | ||
|
|
0a5193b209 | ||
|
|
43f1f1c30d | ||
|
|
c16597ae41 | ||
|
|
f76e7582d2 | ||
|
|
40761d87db | ||
|
|
89a9ad0bfb | ||
|
|
20291c54a5 | ||
|
|
d6fdfe6ebc | ||
|
|
9f63b62651 | ||
|
|
392632b7d4 | ||
|
|
0d377dcbe0 | ||
|
|
88c31bcb7b | ||
|
|
8efea17ae6 | ||
|
|
cdbf569bbc | ||
|
|
0415cf8a69 | ||
|
|
79af092888 | ||
|
|
812d42a42f | ||
|
|
3f114706fa | ||
|
|
9514a1d470 |
No files matched your search
+7
-2
@@ -154,9 +154,14 @@
|
||||
- Poké Ball recipes now use tags for their center ingredient, rather than specificied Copper Ingot, Iron Ingot, Gold Ingot, and Diamond, allowing for further datapack customisation.
|
||||
- Starter Toast now closes once corresponding button is pressed once.
|
||||
- Moved some items in the vanilla Food & Drinks category.
|
||||
- Stacked Cobblemon Potion Bases can now be quick moved into Brewing Stands.
|
||||
- Changed Healer recipe to swap the Max Revive for a Revive.
|
||||
- Upped the rate that Gastly drop Ghast Tears from 2.5% to 5%.
|
||||
- Pokémon with a low Blaze Powder drop chance now drop it more frequently in the Nether.
|
||||
- Reorganised a few advancements.
|
||||
|
||||
### Fixes
|
||||
- Resized Snorlax
|
||||
- Resized Snorlax.
|
||||
- Re-added the recipe for the Iron Vitamin.
|
||||
- Cleaned up empty evolutions declaration in species files (no, I'm not listing all 169 by name).
|
||||
- Fixed Exeggcute not being able to evolve.
|
||||
@@ -188,13 +193,13 @@
|
||||
- Made PokemonProperties.parse more interoperable with Java.
|
||||
- Added the ``HeldItemEvent``, this comes with 2 implementation ``HeldItemEvent.Pre`` and ``HeldItemEvent.Post``.
|
||||
- API to support dynamic lighting in any mod that implements this feature has been added to all Species & Forms, see LightingData class for details.
|
||||
- Added a Mixin for the BrewingStandScreenHandler to fix the incorrect handling of quickMove in Fabric.
|
||||
- Corrections to the ability implementation have been made that make ``Ability.forced`` function as intended and never reroll an ability for a Pokémon, please check your implementations to ensure the corrected behavior is intended for your use case.
|
||||
- ``Pokemon.ability`` no longer has a public setter, please migrate to using ``Pokemon#updateAbility``, this handles the ability coordinate storage for you when necessary.
|
||||
- ``Ability.forced``, ``Ability.index`` and ``Ability.priority`` have all had their setters internalized, there is no longer any need to manually adjust these migrate to the method mentioned above to handle that process for you.
|
||||
- ``AbilityChanger`` has been added to API alongside some implementations, this is subject to change as the ability capsule and patch currently only expect the traditional behaviour in the Pokémon games of 1 to 2 regular abilities and 1 hidden.
|
||||
- ``Pokemon#rollAbility`` has been added, this rerolls a legal ability for the Pokémon.
|
||||
- `docs/cobblemon-tags` tags and spawn-presets can now be auto-generated from the current tags in the cobblemon mod with the `generateSpawnPresetList.py` and `generateTagList.py` scripts.
|
||||
- `public_spawns_to_json.py` script has been added to give the powerful spawn.json generator a simplistic UI.
|
||||
|
||||
### Datapack & Resourcepack Creators
|
||||
- The maximum amount of fossils that can fit in the Fossil Analyzer can be adjusted in the config.
|
||||
|
||||
@@ -160,7 +160,7 @@ object CobblemonBlocks : PlatformRegistry<Registry<Block>, RegistryKey<Registry<
|
||||
@JvmField
|
||||
val BIG_ROOT = this.create("big_root", BigRootBlock(AbstractBlock.Settings.create().pistonBehavior(PistonBehavior.DESTROY).burnable().mapColor(MapColor.DARK_GREEN).noCollision().ticksRandomly().breakInstantly().sounds(CobblemonSounds.BIG_ROOT_SOUNDS)))
|
||||
@JvmField
|
||||
val REVIVAL_HERB = this.create("revival_herb", RevivalHerbBlock(AbstractBlock.Settings.create().pistonBehavior(PistonBehavior.DESTROY).mapColor(MapColor.DARK_GREEN).burnable().noCollision().breakInstantly().sounds(BlockSoundGroup.CROP)))
|
||||
val REVIVAL_HERB = this.create("revival_herb", RevivalHerbBlock(AbstractBlock.Settings.create().pistonBehavior(PistonBehavior.DESTROY).mapColor(MapColor.DARK_GREEN).burnable().noCollision().breakInstantly().sounds(CobblemonSounds.REVIVAL_HERB_SOUNDS)))
|
||||
|
||||
@JvmField
|
||||
val TUMBLESTONE_CLUSTER = tumblestoneBlock("tumblestone_cluster", GrowableStoneBlock.STAGE_3, 7, 3, null)
|
||||
@@ -428,7 +428,7 @@ object CobblemonBlocks : PlatformRegistry<Registry<Block>, RegistryKey<Registry<
|
||||
)
|
||||
|
||||
@JvmField
|
||||
val VIVICHOKE_SEEDS = this.create("vivichoke_seeds", VivichokeBlock(AbstractBlock.Settings.create().pistonBehavior(PistonBehavior.DESTROY).burnable().mapColor(MapColor.DARK_GREEN).noCollision().ticksRandomly().breakInstantly().sounds(BlockSoundGroup.CROP)))
|
||||
val VIVICHOKE_SEEDS = this.create("vivichoke_seeds", VivichokeBlock(AbstractBlock.Settings.create().pistonBehavior(PistonBehavior.DESTROY).burnable().mapColor(MapColor.DARK_GREEN).noCollision().ticksRandomly().breakInstantly().sounds(CobblemonSounds.VIVICHOKE_SOUNDS)))
|
||||
@JvmField
|
||||
val PEP_UP_FLOWER = this.create("pep_up_flower", FlowerBlock(StatusEffects.LEVITATION, 10, AbstractBlock.Settings.create().mapColor(MapColor.DARK_GREEN).noCollision().breakInstantly().sounds(BlockSoundGroup.GRASS).offset(AbstractBlock.OffsetType.XZ).pistonBehavior(PistonBehavior.DESTROY)))
|
||||
@JvmField
|
||||
|
||||
@@ -99,27 +99,27 @@ object CobblemonSounds : PlatformRegistry<Registry<SoundEvent>, RegistryKey<Regi
|
||||
val MULCH_REMOVE = this.create("mulch.remove")
|
||||
|
||||
@JvmField
|
||||
val FOSSIL_MACHINE_ACTIVATE = this.create("fossilmachine.activate")
|
||||
val FOSSIL_MACHINE_ACTIVATE = this.create("fossil_machine.activate")
|
||||
@JvmField
|
||||
val FOSSIL_MACHINE_ACTIVE_LOOP = this.create("fossilmachine.active_loop")
|
||||
val FOSSIL_MACHINE_ACTIVE_LOOP = this.create("fossil_machine.active_loop")
|
||||
@JvmField
|
||||
val FOSSIL_MACHINE_ASSEMBLE = this.create("fossilmachine.assemble")
|
||||
val FOSSIL_MACHINE_ASSEMBLE = this.create("fossil_machine.assemble")
|
||||
@JvmField
|
||||
val FOSSIL_MACHINE_DNA_FULL = this.create("fossilmachine.dna_full")
|
||||
val FOSSIL_MACHINE_DNA_FULL = this.create("fossil_machine.dna_full")
|
||||
@JvmField
|
||||
val FOSSIL_MACHINE_FINISHED = this.create("fossilmachine.finished")
|
||||
val FOSSIL_MACHINE_FINISHED = this.create("fossil_machine.finished")
|
||||
@JvmField
|
||||
val FOSSIL_MACHINE_INSERT_DNA = this.create("fossilmachine.insert_dna")
|
||||
val FOSSIL_MACHINE_INSERT_DNA = this.create("fossil_machine.insert_dna")
|
||||
@JvmField
|
||||
val FOSSIL_MACHINE_INSERT_DNA_SMALL = this.create("fossilmachine.insert_dna_small")
|
||||
val FOSSIL_MACHINE_INSERT_DNA_SMALL = this.create("fossil_machine.insert_dna_small")
|
||||
@JvmField
|
||||
val FOSSIL_MACHINE_INSERT_FOSSIL = this.create("fossilmachine.insert_fossil")
|
||||
val FOSSIL_MACHINE_INSERT_FOSSIL = this.create("fossil_machine.insert_fossil")
|
||||
@JvmField
|
||||
val FOSSIL_MACHINE_RETRIEVE_FOSSIL = this.create("fossilmachine.retrieve_fossil")
|
||||
val FOSSIL_MACHINE_RETRIEVE_FOSSIL = this.create("fossil_machine.retrieve_fossil")
|
||||
@JvmField
|
||||
val FOSSIL_MACHINE_RETRIEVE_POKEMON = this.create("fossilmachine.retrieve_pokemon")
|
||||
val FOSSIL_MACHINE_RETRIEVE_POKEMON = this.create("fossil_machine.retrieve_pokemon")
|
||||
@JvmField
|
||||
val FOSSIL_MACHINE_UNPROTECTED = this.create("fossilmachine.unprotected")
|
||||
val FOSSIL_MACHINE_UNPROTECTED = this.create("fossil_machine.unprotected")
|
||||
|
||||
@JvmField
|
||||
val COIN_POUCH_BREAK = this.create("coin_pouch.break")
|
||||
@@ -155,11 +155,21 @@ object CobblemonSounds : PlatformRegistry<Registry<SoundEvent>, RegistryKey<Regi
|
||||
@JvmField
|
||||
val ENERGY_ROOT_PLACE = this.create("energy_root.place")
|
||||
|
||||
@JvmField
|
||||
val VIVICHOKE_BREAK = this.create("vivichoke.break")
|
||||
@JvmField
|
||||
val VIVICHOKE_PLACE = this.create("vivichoke.place")
|
||||
|
||||
@JvmField
|
||||
val MINT_BREAK = this.create("mint.break")
|
||||
@JvmField
|
||||
val MINT_PLACE = this.create("mint.place")
|
||||
|
||||
@JvmField
|
||||
val REVIVAL_HERB_BREAK = this.create("revival_herb.break")
|
||||
@JvmField
|
||||
val REVIVAL_HERB_PLACE = this.create("revival_herb.place")
|
||||
|
||||
@JvmField
|
||||
val MEDICINAL_LEEK_BREAK = this.create("medicinal_leek.break")
|
||||
@JvmField
|
||||
@@ -277,6 +287,15 @@ object CobblemonSounds : PlatformRegistry<Registry<SoundEvent>, RegistryKey<Regi
|
||||
SoundEvents.BLOCK_GRASS_FALL
|
||||
)
|
||||
|
||||
@JvmField
|
||||
val VIVICHOKE_SOUNDS = BlockSoundGroup(1f, 1f,
|
||||
VIVICHOKE_BREAK,
|
||||
SoundEvents.BLOCK_GRASS_STEP,
|
||||
VIVICHOKE_PLACE,
|
||||
SoundEvents.BLOCK_GRASS_HIT,
|
||||
SoundEvents.BLOCK_GRASS_FALL
|
||||
)
|
||||
|
||||
@JvmField
|
||||
val MINT_SOUNDS = BlockSoundGroup(1f, 1f,
|
||||
MINT_BREAK,
|
||||
@@ -286,6 +305,15 @@ object CobblemonSounds : PlatformRegistry<Registry<SoundEvent>, RegistryKey<Regi
|
||||
SoundEvents.BLOCK_GRASS_FALL
|
||||
)
|
||||
|
||||
@JvmField
|
||||
val REVIVAL_HERB_SOUNDS = BlockSoundGroup(1f, 1f,
|
||||
REVIVAL_HERB_BREAK,
|
||||
SoundEvents.BLOCK_GRASS_STEP,
|
||||
REVIVAL_HERB_PLACE,
|
||||
SoundEvents.BLOCK_GRASS_HIT,
|
||||
SoundEvents.BLOCK_GRASS_FALL
|
||||
)
|
||||
|
||||
@JvmField
|
||||
val GILDED_CHEST_SOUNDS = BlockSoundGroup(1f, 1f,
|
||||
GILDED_CHEST_BREAK,
|
||||
|
||||
@@ -35,8 +35,8 @@ abstract class MultiblockBlock(properties: Settings) : BlockWithEntity(propertie
|
||||
itemStack: ItemStack?
|
||||
) {
|
||||
if (world is ServerWorld) {
|
||||
val multiblockEntity = world.getBlockEntity(pos) as MultiblockEntity
|
||||
multiblockEntity.multiblockBuilder?.validate(world)
|
||||
val multiblockEntity = world.getBlockEntity(pos) as? MultiblockEntity
|
||||
multiblockEntity?.multiblockBuilder?.validate(world)
|
||||
}
|
||||
super.onPlaced(world, pos, state, placer, itemStack)
|
||||
}
|
||||
@@ -52,8 +52,8 @@ abstract class MultiblockBlock(properties: Settings) : BlockWithEntity(propertie
|
||||
if(hand == Hand.OFF_HAND) {
|
||||
return ActionResult.SUCCESS
|
||||
}
|
||||
val entity = world.getBlockEntity(pos) as MultiblockEntity
|
||||
if (entity.multiblockStructure != null) {
|
||||
val entity = world.getBlockEntity(pos) as MultiblockEntity?
|
||||
if (entity?.multiblockStructure != null) {
|
||||
return entity.multiblockStructure!!.onUse(state, world, pos, player, hand, hit)
|
||||
}
|
||||
return super.onUse(state, world, pos, player, hand, hit)
|
||||
|
||||
+3
-1
@@ -12,6 +12,8 @@ import com.cobblemon.mod.common.Cobblemon
|
||||
import com.cobblemon.mod.common.api.spawning.spawner.PlayerSpawner
|
||||
import com.cobblemon.mod.common.api.spawning.spawner.PlayerSpawnerFactory
|
||||
import com.cobblemon.mod.common.platform.events.PlatformEvents
|
||||
import com.cobblemon.mod.common.util.server
|
||||
import com.cobblemon.mod.common.world.gamerules.CobblemonGameRules
|
||||
import java.util.UUID
|
||||
import net.minecraft.server.network.ServerPlayerEntity
|
||||
|
||||
@@ -34,7 +36,7 @@ object CobblemonWorldSpawnerManager : SpawnerManager() {
|
||||
|
||||
fun onPlayerLogin(player: ServerPlayerEntity) {
|
||||
// Disables spawning
|
||||
if (!Cobblemon.config.enableSpawning) {
|
||||
if (!Cobblemon.config.enableSpawning || server()?.gameRules?.getBoolean(CobblemonGameRules.DO_POKEMON_SPAWNING) == false) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -12,6 +12,8 @@ import com.cobblemon.mod.common.Cobblemon
|
||||
import com.cobblemon.mod.common.api.spawning.influence.SpawningInfluence
|
||||
import com.cobblemon.mod.common.api.spawning.spawner.Spawner
|
||||
import com.cobblemon.mod.common.api.spawning.spawner.TickingSpawner
|
||||
import com.cobblemon.mod.common.util.server
|
||||
import com.cobblemon.mod.common.world.gamerules.CobblemonGameRules.DO_POKEMON_SPAWNING
|
||||
|
||||
/**
|
||||
* A manager of various spawners. This is a class in which you should register
|
||||
@@ -49,7 +51,7 @@ open class SpawnerManager {
|
||||
|
||||
open fun onServerTick() {
|
||||
// Disables spawning
|
||||
if (!Cobblemon.config.enableSpawning) {
|
||||
if (!Cobblemon.config.enableSpawning || server()?.gameRules?.getBoolean(DO_POKEMON_SPAWNING) == false) {
|
||||
return
|
||||
}
|
||||
influences.removeIf { it.isExpired() }
|
||||
|
||||
@@ -63,9 +63,6 @@ abstract class AreaSpawner(
|
||||
|
||||
override fun run(cause: SpawnCause): Pair<SpawningContext, SpawnDetail>? {
|
||||
val area = getArea(cause)
|
||||
if (area?.world?.gameRules?.getBoolean(DO_POKEMON_SPAWNING) == false) {
|
||||
return null
|
||||
}
|
||||
val constrainedArea = if (area != null) constrainArea(area) else null
|
||||
if (constrainedArea != null) {
|
||||
|
||||
|
||||
@@ -62,8 +62,8 @@ class MonitorBlock(properties: Settings) : MultiblockBlock(properties) {
|
||||
if(world == null || pos == null) {
|
||||
return 0
|
||||
}
|
||||
val monitorEntity = world.getBlockEntity(pos) as MultiblockEntity
|
||||
val multiBlockEntity = monitorEntity.multiblockStructure
|
||||
val monitorEntity = world.getBlockEntity(pos) as? MultiblockEntity
|
||||
val multiBlockEntity = monitorEntity?.multiblockStructure
|
||||
if(multiBlockEntity != null) {
|
||||
return multiBlockEntity.getComparatorOutput(state, world, pos)
|
||||
}
|
||||
|
||||
@@ -149,8 +149,8 @@ class RestorationTankBlock(properties: Settings) : MultiblockBlock(properties),
|
||||
if(world == null || pos == null) {
|
||||
return 0
|
||||
}
|
||||
val tankEntity = world.getBlockEntity(pos) as MultiblockEntity
|
||||
val multiBlockEntity = tankEntity.multiblockStructure
|
||||
val tankEntity = world.getBlockEntity(pos) as? MultiblockEntity
|
||||
val multiBlockEntity = tankEntity?.multiblockStructure
|
||||
if(multiBlockEntity != null) {
|
||||
return multiBlockEntity.getComparatorOutput(state, world, pos)
|
||||
}
|
||||
@@ -180,7 +180,7 @@ class RestorationTankBlock(properties: Settings) : MultiblockBlock(properties),
|
||||
return
|
||||
}
|
||||
val tankEntity = world.getBlockEntity(pos) as? MultiblockEntity
|
||||
tankEntity?.multiblockStructure!!.onTriggerEvent(state, world, pos, random)
|
||||
tankEntity?.multiblockStructure?.onTriggerEvent(state, world, pos, random)
|
||||
}
|
||||
|
||||
override fun getOutlineShape(
|
||||
|
||||
+1
-1
@@ -42,7 +42,7 @@ open class FossilMultiblockEntity(
|
||||
field
|
||||
} else if (masterBlockPos != null && masterBlockPos != pos) {
|
||||
val chunkPos = ChunkPos(masterBlockPos)
|
||||
if (world?.chunkManager?.isChunkLoaded(chunkPos.x, chunkPos.z) == true) {
|
||||
if (world?.chunkManager?.isChunkLoaded(chunkPos.x, chunkPos.z) == true) {
|
||||
val entity: FossilMultiblockEntity? = world?.getBlockEntity(masterBlockPos) as FossilMultiblockEntity?
|
||||
field = entity?.multiblockStructure
|
||||
}
|
||||
|
||||
+12
-12
@@ -117,10 +117,10 @@ class FossilMultiblockBuilder(val centerPos: BlockPos) : MultiblockStructureBuil
|
||||
val monitorPos = monitorPositions[fossilTankIndex]
|
||||
val fossilAnalyzerPos = fossilAnalyzerPositions[fossilTankIndex]!!
|
||||
val restorationTankPos = restorationTankPositions[fossilTankIndex]!!
|
||||
val monitorEntity = world.getBlockEntity(monitorPos) as MultiblockEntity
|
||||
val analyzerEntity = world.getBlockEntity(fossilAnalyzerPos) as MultiblockEntity
|
||||
val tankBaseEntity = world.getBlockEntity(restorationTankPos) as MultiblockEntity
|
||||
val tankTopEntity = world.getBlockEntity(restorationTankPos.up()) as MultiblockEntity
|
||||
val monitorEntity = world.getBlockEntity(monitorPos) as? MultiblockEntity
|
||||
val analyzerEntity = world.getBlockEntity(fossilAnalyzerPos) as? MultiblockEntity
|
||||
val tankBaseEntity = world.getBlockEntity(restorationTankPos) as? MultiblockEntity
|
||||
val tankTopEntity = world.getBlockEntity(restorationTankPos.up()) as? MultiblockEntity
|
||||
val structure = FossilMultiblockStructure(monitorPos, fossilAnalyzerPos, restorationTankPos)
|
||||
|
||||
structure.tankConnectorDirection = dirsToCheck.filter {
|
||||
@@ -128,20 +128,20 @@ class FossilMultiblockBuilder(val centerPos: BlockPos) : MultiblockStructureBuil
|
||||
return@filter adjPos == fossilAnalyzerPos
|
||||
}.first()
|
||||
|
||||
analyzerEntity.multiblockStructure = structure
|
||||
tankBaseEntity.multiblockStructure = structure
|
||||
tankTopEntity.multiblockStructure = structure
|
||||
monitorEntity.multiblockStructure = structure
|
||||
analyzerEntity?.multiblockStructure = structure
|
||||
tankBaseEntity?.multiblockStructure = structure
|
||||
tankTopEntity?.multiblockStructure = structure
|
||||
monitorEntity?.multiblockStructure = structure
|
||||
structure.syncToClient(world)
|
||||
structure.markDirty(world)
|
||||
|
||||
world.playSound(null, centerPos, CobblemonSounds.FOSSIL_MACHINE_ASSEMBLE, SoundCategory.BLOCKS)
|
||||
|
||||
//Set these to null so the builders can be freed
|
||||
analyzerEntity.multiblockBuilder = null
|
||||
tankBaseEntity.multiblockBuilder = null
|
||||
tankTopEntity.multiblockBuilder = null
|
||||
monitorEntity.multiblockBuilder = null
|
||||
analyzerEntity?.multiblockBuilder = null
|
||||
tankBaseEntity?.multiblockBuilder = null
|
||||
tankTopEntity?.multiblockBuilder = null
|
||||
monitorEntity?.multiblockBuilder = null
|
||||
}
|
||||
|
||||
companion object {
|
||||
|
||||
+15
-15
@@ -306,22 +306,22 @@ class FossilMultiblockStructure (
|
||||
}
|
||||
|
||||
override fun onBreak(world: World, pos: BlockPos, state: BlockState, player: PlayerEntity?) {
|
||||
val monitorEntity = world.getBlockEntity(monitorPos) as MultiblockEntity
|
||||
val analyzerEntity = world.getBlockEntity(analyzerPos) as MultiblockEntity
|
||||
val tankBaseEntity = world.getBlockEntity(tankBasePos) as MultiblockEntity
|
||||
val tankTopEntity = world.getBlockEntity(tankBasePos.up()) as MultiblockEntity
|
||||
val state = world.getBlockState(tankBaseEntity.pos)
|
||||
val monitorEntity = world.getBlockEntity(monitorPos) as? MultiblockEntity
|
||||
val analyzerEntity = world.getBlockEntity(analyzerPos) as? MultiblockEntity
|
||||
val tankBaseEntity = world.getBlockEntity(tankBasePos) as? MultiblockEntity
|
||||
val tankTopEntity = world.getBlockEntity(tankBasePos.up()) as? MultiblockEntity
|
||||
val state = world.getBlockState(tankBaseEntity?.pos)
|
||||
val direction = state.get(HorizontalFacingBlock.FACING).getOpposite()
|
||||
val wildPokemon: Pokemon? = this.createdPokemon
|
||||
|
||||
monitorEntity.multiblockStructure = null
|
||||
analyzerEntity.multiblockStructure = null
|
||||
tankBaseEntity.multiblockStructure = null
|
||||
tankTopEntity.multiblockStructure = null
|
||||
monitorEntity.masterBlockPos = null
|
||||
analyzerEntity.masterBlockPos = null
|
||||
tankBaseEntity.masterBlockPos = null
|
||||
tankTopEntity.masterBlockPos = null
|
||||
monitorEntity?.multiblockStructure = null
|
||||
analyzerEntity?.multiblockStructure = null
|
||||
tankBaseEntity?.multiblockStructure = null
|
||||
tankTopEntity?.multiblockStructure = null
|
||||
monitorEntity?.masterBlockPos = null
|
||||
analyzerEntity?.masterBlockPos = null
|
||||
tankBaseEntity?.masterBlockPos = null
|
||||
tankTopEntity?.masterBlockPos = null
|
||||
|
||||
// Drop fossils from machine as long as the machine is not started or near completion
|
||||
if (this.timeRemaining == -1 || this.timeRemaining >= 20) {
|
||||
@@ -619,8 +619,8 @@ class FossilMultiblockStructure (
|
||||
}
|
||||
|
||||
const val TICKS_PER_MINUTE = 1200
|
||||
const val MATERIAL_TO_START = 256
|
||||
const val TIME_TO_TAKE = TICKS_PER_MINUTE * 15
|
||||
const val MATERIAL_TO_START = 128
|
||||
const val TIME_TO_TAKE = TICKS_PER_MINUTE * 12
|
||||
const val TIME_PER_STAGE = TIME_TO_TAKE / 8
|
||||
const val PROTECTION_TIME = TICKS_PER_MINUTE * 5
|
||||
|
||||
|
||||
+1
-1
@@ -72,7 +72,7 @@ class RestorationTankRenderer(ctx: BlockEntityRendererFactory.Context) : BlockEn
|
||||
|
||||
val fluidModel = if (struct.isRunning()) FLUID_MODELS[8]
|
||||
else if (struct.createdPokemon != null) FLUID_MODELS[7]
|
||||
else FLUID_MODELS[fillLevel-1]
|
||||
else FLUID_MODELS[fillLevel.coerceAtMost(FLUID_MODELS.size - 1) - 1]
|
||||
fluidModel.getQuads(entity.cachedState, null, entity.world?.random).forEach { quad ->
|
||||
transparentBuffer?.quad(matrices.peek(), quad, 0.75f, 0.75f, 0.75f, light, OverlayTexture.DEFAULT_UV)
|
||||
}
|
||||
|
||||
@@ -54,6 +54,7 @@ import com.cobblemon.mod.common.pokemon.activestate.InactivePokemonState
|
||||
import com.cobblemon.mod.common.pokemon.activestate.ShoulderedState
|
||||
import com.cobblemon.mod.common.pokemon.ai.FormPokemonBehaviour
|
||||
import com.cobblemon.mod.common.pokemon.evolution.variants.ItemInteractionEvolution
|
||||
import com.cobblemon.mod.common.pokemon.misc.GimmighoulStashHandler
|
||||
import com.cobblemon.mod.common.util.*
|
||||
import com.cobblemon.mod.common.world.gamerules.CobblemonGameRules
|
||||
import java.util.EnumSet
|
||||
@@ -663,6 +664,16 @@ open class PokemonEntity(
|
||||
pokemon.lastFlowerFed = itemStack
|
||||
return ActionResult.success(world.isClient)
|
||||
}
|
||||
} else if(!player.isSneaking && (itemStack.isOf(CobblemonItems.RELIC_COIN)
|
||||
|| itemStack.isOf(CobblemonItems.RELIC_COIN_POUCH)
|
||||
|| itemStack.isOf(CobblemonItems.RELIC_COIN_SACK)
|
||||
|| itemStack.isOf(Items.NETHERITE_SCRAP)
|
||||
|| itemStack.isOf(Items.NETHERITE_INGOT)
|
||||
|| itemStack.isOf(Items.NETHERITE_BLOCK))) {
|
||||
|
||||
if(GimmighoulStashHandler.interactMob(player, hand, pokemon)) {
|
||||
return ActionResult.SUCCESS
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
+34
-13
@@ -11,10 +11,13 @@ package com.cobblemon.mod.common.pokemon.misc
|
||||
import com.cobblemon.mod.common.CobblemonItems
|
||||
import com.cobblemon.mod.common.CobblemonSounds
|
||||
import com.cobblemon.mod.common.api.events.pokemon.HeldItemEvent
|
||||
import com.cobblemon.mod.common.api.events.pokemon.interaction.HeldItemUpdatedEvent
|
||||
import com.cobblemon.mod.common.api.pokemon.feature.IntSpeciesFeature
|
||||
import com.cobblemon.mod.common.pokemon.Pokemon
|
||||
import net.minecraft.entity.player.PlayerEntity
|
||||
import net.minecraft.item.Item
|
||||
import net.minecraft.item.Items
|
||||
import net.minecraft.sound.SoundCategory
|
||||
import net.minecraft.server.network.ServerPlayerEntity
|
||||
import net.minecraft.util.Hand
|
||||
|
||||
/**
|
||||
* Handles logic relating to Gimmighoul's Coin Stash and Scrap Stash bars.
|
||||
@@ -30,13 +33,30 @@ object GimmighoulStashHandler {
|
||||
val SCRAP_VALUE = 1
|
||||
val INGOT_VALUE = SCRAP_VALUE * 4
|
||||
val BLOCK_VALUE = INGOT_VALUE * 9
|
||||
fun interactMob(player: PlayerEntity, hand: Hand, pokemon:Pokemon) : Boolean {
|
||||
val itemStack = player.getStackInHand(hand)
|
||||
var success = false
|
||||
if(player is ServerPlayerEntity && pokemon.getOwnerPlayer() == player) {
|
||||
success = handleItem(pokemon, itemStack.item)
|
||||
if(success) {
|
||||
itemStack.decrement(1)
|
||||
}
|
||||
}
|
||||
return success
|
||||
}
|
||||
|
||||
fun giveHeldItem(event: HeldItemEvent.Post) {
|
||||
val goldHoard = event.pokemon.getFeature<IntSpeciesFeature>("gimmighoul_coins")
|
||||
val netheriteHoard = event.pokemon.getFeature<IntSpeciesFeature>("gimmighoul_netherite")
|
||||
|
||||
val pokemon = event.pokemon
|
||||
val item = event.received.item
|
||||
if(handleItem(pokemon, item)) {
|
||||
pokemon.removeHeldItem()
|
||||
}
|
||||
}
|
||||
fun handleItem(pokemon: Pokemon, item: Item) : Boolean {
|
||||
val goldHoard = pokemon.getFeature<IntSpeciesFeature>("gimmighoul_coins")
|
||||
val netheriteHoard = pokemon.getFeature<IntSpeciesFeature>("gimmighoul_netherite")
|
||||
if (goldHoard != null && goldHoard.value < 999) {
|
||||
val increase = when (event.received.item) {
|
||||
val increase = when (item) {
|
||||
CobblemonItems.RELIC_COIN -> COIN_VALUE
|
||||
CobblemonItems.RELIC_COIN_POUCH -> POUCH_VALUE
|
||||
CobblemonItems.RELIC_COIN_SACK -> SACK_VALUE
|
||||
@@ -46,14 +66,14 @@ object GimmighoulStashHandler {
|
||||
if (increase != 0) {
|
||||
goldHoard.value += increase
|
||||
if (goldHoard.value > 999) goldHoard.value = 999
|
||||
if (event.pokemon.entity != null) event.pokemon.entity!!.playSound(CobblemonSounds.GIMMIGHOUL_GIVE_ITEM_SMALL, 1f, 1f)
|
||||
event.pokemon.markFeatureDirty(goldHoard)
|
||||
event.pokemon.removeHeldItem()
|
||||
if (pokemon.entity != null) pokemon.entity!!.playSound(CobblemonSounds.GIMMIGHOUL_GIVE_ITEM_SMALL, 1f, 1f)
|
||||
pokemon.markFeatureDirty(goldHoard)
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
if (netheriteHoard != null && netheriteHoard.value < 256) {
|
||||
val increase = when (event.received.item) {
|
||||
val increase = when (item) {
|
||||
Items.NETHERITE_SCRAP -> SCRAP_VALUE
|
||||
Items.NETHERITE_INGOT -> INGOT_VALUE
|
||||
Items.NETHERITE_BLOCK -> BLOCK_VALUE
|
||||
@@ -63,11 +83,12 @@ object GimmighoulStashHandler {
|
||||
if (increase != 0) {
|
||||
netheriteHoard.value += increase
|
||||
if (netheriteHoard.value > 256) netheriteHoard.value = 256
|
||||
if (event.pokemon.entity != null) event.pokemon.entity!!.playSound(CobblemonSounds.GIMMIGHOUL_GIVE_ITEM_SMALL, 1f, 1f)
|
||||
event.pokemon.markFeatureDirty(netheriteHoard)
|
||||
event.pokemon.removeHeldItem()
|
||||
if (pokemon.entity != null) pokemon.entity!!.playSound(CobblemonSounds.GIMMIGHOUL_GIVE_ITEM_SMALL, 1f, 1f)
|
||||
pokemon.markFeatureDirty(netheriteHoard)
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"maxScale": 0.8,
|
||||
"maxScale": 0.55,
|
||||
"yTranslation": 0,
|
||||
"yGrowthPoint": 0.5625,
|
||||
"animations": [
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"maxScale": 0.75,
|
||||
"maxScale": 0.85,
|
||||
"yTranslation": 0.1,
|
||||
"yGrowthPoint": 0.3125,
|
||||
|
||||
|
||||
@@ -884,7 +884,7 @@
|
||||
"advancements.cobblemon.obtain_leek.description": "Obtain a Medicinal Leek, a wild crop that grows in freshwater",
|
||||
"advancements.cobblemon.medicinal_brew": "Local Apothecary",
|
||||
"advancements.cobblemon.medicinal_brew.description": "Brew a Medicinal Leek to create the basis for your healing needs",
|
||||
"advancements.cobblemon.brew_potion": "You cannot handle my Potions",
|
||||
"advancements.cobblemon.brew_potion": "You Cannot Handle My Potions",
|
||||
"advancements.cobblemon.brew_potion.description": "Brew an Oran Berry into Medicinal Brew to create a Potion",
|
||||
"advancements.cobblemon.brew_full_restore": "Champion's Choice",
|
||||
"advancements.cobblemon.brew_full_restore.description": "Follow the brewing tree and create a Full Restore with a Lum Berry and Max Potion",
|
||||
@@ -934,12 +934,12 @@
|
||||
"advancements.cobblemon.obtain_fossil.description": "Discover a fossil buried in ancient ruins",
|
||||
"advancements.cobblemon.evolve_gholdengo_netherite": "Cover thee in Debris",
|
||||
"advancements.cobblemon.evolve_gholdengo_netherite.description": "Evolve a Gimmighoul into a fully netherite-coated Gholdengo",
|
||||
"advancements.cobblemon.resurrect_pokemon": "Life finds a way",
|
||||
"advancements.cobblemon.resurrect_pokemon": "Life Finds a Way",
|
||||
"advancements.cobblemon.resurrect_pokemon.description": "Obtain a Fossil Pokémon from a Resurrection Machine",
|
||||
"advancements.cobblemon.obtain_tumblestone": "The Rolling Stone",
|
||||
"advancements.cobblemon.obtain_tumblestone.description": "Safely extract a Tumblestone from suspicious sand or gravel",
|
||||
"advancements.cobblemon.grow_tumblestone": "Heat from stone, stone from heat",
|
||||
"advancements.cobblemon.grow_tumblestone.description": "Place a Tumblestone near Lava or Magma, allowing the Tumblestone to grow slowly over time",
|
||||
"advancements.cobblemon.grow_tumblestone": "Tumbling Down",
|
||||
"advancements.cobblemon.grow_tumblestone.description": "Place a Tumblestone near Lava or Magma to grow it over time",
|
||||
"advancements.cobblemon.craft_ancient_balls": "A true Antiquarian",
|
||||
"advancements.cobblemon.craft_ancient_balls.description": "Utilize Tumblestones to craft all fifteen Ancient Balls",
|
||||
|
||||
@@ -1534,6 +1534,7 @@
|
||||
|
||||
"gamerule.doPokemonSpawning": "Spawn Pokémon",
|
||||
"gamerule.doShinyStarters": "Starters will be shiny",
|
||||
"gamerule.doPokemonLoot": "Drop Pokémon Loot",
|
||||
"cobblemon.command.checkspawns.invalid-bucket": "Invalid Spawn Bucket",
|
||||
"cobblemon.command.checkspawns.spawns": "Spawns",
|
||||
"cobblemon.command.checkspawns.nothing": "Nothing can spawn here right now.",
|
||||
|
||||
@@ -38,7 +38,13 @@
|
||||
"predicate": {
|
||||
"custom_model_data": 6
|
||||
},
|
||||
"model": "cobblemon:item/cobblemon"
|
||||
"model": "cobblemon:item/shiny_marker"
|
||||
},
|
||||
{
|
||||
"predicate": {
|
||||
"custom_model_data": 7
|
||||
},
|
||||
"model": "cobblemon:item/link_cable"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent": "minecraft:item/generated",
|
||||
"textures": {
|
||||
"layer0": "cobblemon:item/advancements/shiny_icon"
|
||||
}
|
||||
}
|
||||
@@ -104,49 +104,54 @@
|
||||
"berry.eat": {
|
||||
"sounds": [ "cobblemon:berry_eat" ]
|
||||
},
|
||||
"fossilmachine.activate": {
|
||||
"fossil_machine.activate": {
|
||||
"subtitle": "cobblemon.subtitle.fossilmachine.activate",
|
||||
"sounds": [ "cobblemon:fossilmachine/activate" ]
|
||||
"sounds": [ { "name": "cobblemon:block/fossil_machine/fossil_machine_activate", "volume": 0.8 } ]
|
||||
},
|
||||
"fossilmachine.active_loop": {
|
||||
"fossil_machine.active_loop": {
|
||||
"subtitle": "cobblemon.subtitle.fossilmachine.active_loop",
|
||||
"sounds": [ "cobblemon:fossilmachine/active_loop" ]
|
||||
"sounds": [ { "name": "cobblemon:block/fossil_machine/fossil_machine_active_loop", "volume": 0.6 } ]
|
||||
},
|
||||
"fossilmachine.assemble": {
|
||||
"fossil_machine.assemble": {
|
||||
"subtitle": "cobblemon.subtitle.fossilmachine.assemble",
|
||||
"sounds": [ "cobblemon:fossilmachine/assemble" ]
|
||||
"sounds": [ { "name": "cobblemon:block/fossil_machine/fossil_machine_assemble", "volume": 0.3 } ]
|
||||
},
|
||||
"fossilmachine.dna_full": {
|
||||
"fossil_machine.dna_full": {
|
||||
"subtitle": "cobblemon.subtitle.fossilmachine.dna_full",
|
||||
"sounds": [ "cobblemon:fossilmachine/dna_full" ]
|
||||
"sounds": [ "cobblemon:block/fossil_machine/fossil_machine_dna_full" ]
|
||||
},
|
||||
"fossilmachine.finished": {
|
||||
"fossil_machine.finished": {
|
||||
"subtitle": "cobblemon.subtitle.fossilmachine.finished",
|
||||
"sounds": [ "cobblemon:fossilmachine/finished" ]
|
||||
"sounds": [ "cobblemon:block/fossil_machine/fossil_machine_finished" ]
|
||||
},
|
||||
"fossilmachine.insert_dna": {
|
||||
"fossil_machine.insert_dna": {
|
||||
"subtitle": "cobblemon.subtitle.fossilmachine.insert_dna",
|
||||
"sounds": [ "cobblemon:fossilmachine/insert_dna" ]
|
||||
"sounds": [ "cobblemon:block/fossil_machine/fossil_machine_insert_dna" ]
|
||||
},
|
||||
"fossilmachine.insert_dna_small": {
|
||||
"fossil_machine.insert_dna_small": {
|
||||
"subtitle": "cobblemon.subtitle.fossilmachine.insert_dna_small",
|
||||
"sounds": [ "cobblemon:fossilmachine/insert_dna_small" ]
|
||||
"sounds": [
|
||||
{ "name": "cobblemon:block/fossil_machine/fossil_machine_insert_dna_small_1", "volume": 0.7 },
|
||||
{ "name": "cobblemon:block/fossil_machine/fossil_machine_insert_dna_small_2", "volume": 0.7 },
|
||||
{ "name": "cobblemon:block/fossil_machine/fossil_machine_insert_dna_small_3", "volume": 0.7 },
|
||||
{ "name": "cobblemon:block/fossil_machine/fossil_machine_insert_dna_small_4", "volume": 0.7 }
|
||||
]
|
||||
},
|
||||
"fossilmachine.insert_fossil": {
|
||||
"fossil_machine.insert_fossil": {
|
||||
"subtitle": "cobblemon.subtitle.fossilmachine.insert_fossil",
|
||||
"sounds": [ "cobblemon:fossilmachine/insert_fossil" ]
|
||||
"sounds": [ "cobblemon:block/fossil_machine/fossil_machine_insert_fossil" ]
|
||||
},
|
||||
"fossilmachine.retrieve_fossil": {
|
||||
"fossil_machine.retrieve_fossil": {
|
||||
"subtitle": "cobblemon.subtitle.fossilmachine.retrieve_fossil",
|
||||
"sounds": [ "cobblemon:fossilmachine/retrieve_fossil" ]
|
||||
"sounds": [ "cobblemon:block/fossil_machine/fossil_machine_retrieve_fossil" ]
|
||||
},
|
||||
"fossilmachine.retrieve_pokemon": {
|
||||
"fossil_machine.retrieve_pokemon": {
|
||||
"subtitle": "cobblemon.subtitle.fossilmachine.retrieve_pokemon",
|
||||
"sounds": [ "cobblemon:fossilmachine/retrieve_pokemon" ]
|
||||
"sounds": [ "cobblemon:block/fossil_machine/fossil_machine_retrieve_pokemon" ]
|
||||
},
|
||||
"fossilmachine.unprotected": {
|
||||
"fossil_machine.unprotected": {
|
||||
"subtitle": "cobblemon.subtitle.fossilmachine.unprotected",
|
||||
"sounds": [ "cobblemon:fossilmachine/unprotected" ]
|
||||
"sounds": [ "cobblemon:block/fossil_machine/fossil_machine_unprotected" ]
|
||||
},
|
||||
"gimmighoul.give_item_small": {
|
||||
"sounds": [ "cobblemon:gimmighoul_give_item_small" ]
|
||||
@@ -164,10 +169,10 @@
|
||||
},
|
||||
"coin_pouch.hit": {
|
||||
"sounds": [
|
||||
"cobblemon:block/coin_pouch/coin_pouch_block_hit_1",
|
||||
"cobblemon:block/coin_pouch/coin_pouch_block_hit_2",
|
||||
"cobblemon:block/coin_pouch/coin_pouch_block_hit_3",
|
||||
"cobblemon:block/coin_pouch/coin_pouch_block_hit_4"
|
||||
{ "name": "cobblemon:block/coin_pouch/coin_pouch_block_hit_1", "volume": 0.6 },
|
||||
{ "name": "cobblemon:block/coin_pouch/coin_pouch_block_hit_2", "volume": 0.6 },
|
||||
{ "name": "cobblemon:block/coin_pouch/coin_pouch_block_hit_3", "volume": 0.6 },
|
||||
{ "name": "cobblemon:block/coin_pouch/coin_pouch_block_hit_4", "volume": 0.6 }
|
||||
]
|
||||
},
|
||||
"coin_pouch.place": {
|
||||
@@ -204,10 +209,10 @@
|
||||
},
|
||||
"tumblestone.hit": {
|
||||
"sounds": [
|
||||
"cobblemon:block/tumblestone/tumblestone_hit_1",
|
||||
"cobblemon:block/tumblestone/tumblestone_hit_2",
|
||||
"cobblemon:block/tumblestone/tumblestone_hit_3",
|
||||
"cobblemon:block/tumblestone/tumblestone_hit_4"
|
||||
{ "name": "cobblemon:block/tumblestone/tumblestone_hit_1", "volume": 0.8 },
|
||||
{ "name": "cobblemon:block/tumblestone/tumblestone_hit_2", "volume": 0.8 },
|
||||
{ "name": "cobblemon:block/tumblestone/tumblestone_hit_3", "volume": 0.8 },
|
||||
{ "name": "cobblemon:block/tumblestone/tumblestone_hit_4", "volume": 0.8 }
|
||||
]
|
||||
},
|
||||
"tumblestone.place": {
|
||||
@@ -304,6 +309,20 @@
|
||||
"cobblemon:block/plants/medicinal_leek/medicinal_leek_plant_3"
|
||||
]
|
||||
},
|
||||
"vivichoke.break": {
|
||||
"sounds": [
|
||||
"cobblemon:block/plants/vivichoke/vivichoke_break_1",
|
||||
"cobblemon:block/plants/vivichoke/vivichoke_break_2",
|
||||
"cobblemon:block/plants/vivichoke/vivichoke_break_3"
|
||||
]
|
||||
},
|
||||
"vivichoke.place": {
|
||||
"sounds": [
|
||||
"cobblemon:block/plants/vivichoke/vivichoke_place_1",
|
||||
"cobblemon:block/plants/vivichoke/vivichoke_place_2",
|
||||
"cobblemon:block/plants/vivichoke/vivichoke_place_3"
|
||||
]
|
||||
},
|
||||
"mint.break": {
|
||||
"sounds": [
|
||||
"cobblemon:block/plants/mint/mint_break_1",
|
||||
@@ -318,6 +337,20 @@
|
||||
"cobblemon:block/plants/mint/mint_place_3"
|
||||
]
|
||||
},
|
||||
"revival_herb.break": {
|
||||
"sounds": [
|
||||
"cobblemon:block/plants/revival_herb/revival_herb_break_1",
|
||||
"cobblemon:block/plants/revival_herb/revival_herb_break_2",
|
||||
"cobblemon:block/plants/revival_herb/revival_herb_break_3"
|
||||
]
|
||||
},
|
||||
"revival_herb.place": {
|
||||
"sounds": [
|
||||
"cobblemon:block/plants/revival_herb/revival_herb_place_1",
|
||||
"cobblemon:block/plants/revival_herb/revival_herb_place_2",
|
||||
"cobblemon:block/plants/revival_herb/revival_herb_place_3"
|
||||
]
|
||||
},
|
||||
"gilded_chest.break": {
|
||||
"sounds": [
|
||||
"cobblemon:block/gilded_chest/gilded_chest_break_1",
|
||||
@@ -374,58 +407,220 @@
|
||||
"sounds": [ "cobblemon:supereffective" ]
|
||||
},
|
||||
"impact.normal": {
|
||||
"sounds": [ "cobblemon:attacks/impacts/impact_normal" ]
|
||||
"sounds": [
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fighting_1", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fighting_2", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fighting_3", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fighting_4", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fighting_5", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fighting_6", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fighting_7", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fighting_8", "volume": 0.8 }
|
||||
]
|
||||
},
|
||||
"impact.ice": {
|
||||
"sounds": [ "cobblemon:attacks/impacts/impact_ice" ]
|
||||
"sounds": [
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ice_1", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ice_2", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ice_3", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ice_4", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ice_5", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ice_6", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ice_7", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ice_8", "volume": 0.8 }
|
||||
]
|
||||
},
|
||||
"impact.water": {
|
||||
"sounds": [ "cobblemon:attacks/impacts/impact_water" ]
|
||||
"sounds": [
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_water_1", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_water_2", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_water_3", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_water_4", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_water_5", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_water_6", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_water_7", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_water_8", "volume": 0.8 }
|
||||
]
|
||||
},
|
||||
"impact.fire": {
|
||||
"sounds": [ "cobblemon:attacks/impacts/impact_fire" ]
|
||||
"sounds": [
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fire_1", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fire_2", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fire_3", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fire_4", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fire_5", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fire_6", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fire_7", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fire_8", "volume": 0.8 }
|
||||
]
|
||||
},
|
||||
"impact.electric": {
|
||||
"sounds": [ "cobblemon:attacks/impacts/impact_electric" ]
|
||||
"sounds": [
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_electric_1", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_electric_2", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_electric_3", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_electric_4", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_electric_5", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_electric_6", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_electric_7", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_electric_8", "volume": 0.8 }
|
||||
]
|
||||
},
|
||||
"impact.grass": {
|
||||
"sounds": [ "cobblemon:attacks/impacts/impact_grass" ]
|
||||
"sounds": [
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_grass_1", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_grass_2", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_grass_3", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_grass_4", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_grass_5", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_grass_6", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_grass_7", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_grass_8", "volume": 0.8 }
|
||||
]
|
||||
},
|
||||
"impact.fighting": {
|
||||
"sounds": [ "cobblemon:attacks/impacts/impact_fighting" ]
|
||||
"sounds": [
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fighting_1", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fighting_2", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fighting_3", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fighting_4", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fighting_5", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fighting_6", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fighting_7", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fighting_8", "volume": 0.8 }
|
||||
]
|
||||
},
|
||||
"impact.poison": {
|
||||
"sounds": [ "cobblemon:attacks/impacts/impact_poison" ]
|
||||
"sounds": [
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_poison_1", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_poison_2", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_poison_3", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_poison_4", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_poison_5", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_poison_6", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_poison_7", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_poison_8", "volume": 0.8 }
|
||||
]
|
||||
},
|
||||
"impact.ground": {
|
||||
"sounds": [ "cobblemon:attacks/impacts/impact_ground" ]
|
||||
"sounds": [
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ground_1", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ground_2", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ground_3", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ground_4", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ground_5", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ground_6", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ground_7", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ground_8", "volume": 0.8 }
|
||||
]
|
||||
},
|
||||
"impact.flying": {
|
||||
"sounds": [ "cobblemon:attacks/impacts/impact_flying" ]
|
||||
"sounds": [
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_flying_1", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_flying_2", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_flying_3", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_flying_4", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_flying_5", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_flying_6", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_flying_7", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_flying_8", "volume": 0.8 }
|
||||
]
|
||||
},
|
||||
"impact.psychic": {
|
||||
"sounds": [ "cobblemon:attacks/impacts/impact_psychic" ]
|
||||
"sounds": [
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_psychic_1", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_psychic_2", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_psychic_3", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_psychic_4", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_psychic_5", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_psychic_6", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_psychic_7", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_psychic_8", "volume": 0.8 }
|
||||
]
|
||||
},
|
||||
"impact.bug": {
|
||||
"sounds": [ "cobblemon:attacks/impacts/impact_bug" ]
|
||||
"sounds": [
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_bug_1", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_bug_2", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_bug_3", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_bug_4", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_bug_5", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_bug_6", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_bug_7", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_bug_8", "volume": 0.8 }
|
||||
]
|
||||
},
|
||||
"impact.rock": {
|
||||
"sounds": [ "cobblemon:attacks/impacts/impact_rock" ]
|
||||
"sounds": [
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_rock_1", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_rock_2", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_rock_3", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_rock_4", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_rock_5", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_rock_6", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_rock_7", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_rock_8", "volume": 0.8 }
|
||||
]
|
||||
},
|
||||
"impact.ghost": {
|
||||
"sounds": [ "cobblemon:attacks/impacts/impact_ghost" ]
|
||||
"sounds": [
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ghost_1", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ghost_2", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ghost_3", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ghost_4", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ghost_5", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ghost_6", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ghost_7", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ghost_8", "volume": 0.8 }
|
||||
]
|
||||
},
|
||||
"impact.dragon": {
|
||||
"sounds": [ "cobblemon:attacks/impacts/impact_dragon" ]
|
||||
"sounds": [
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_dragon_1", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_dragon_2", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_dragon_3", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_dragon_4", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_dragon_5", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_dragon_6", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_dragon_7", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_dragon_8", "volume": 0.8 }
|
||||
]
|
||||
},
|
||||
"impact.dark": {
|
||||
"sounds": [ "cobblemon:attacks/impacts/impact_dark" ]
|
||||
"sounds": [
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_dark_1", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_dark_2", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_dark_3", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_dark_4", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_dark_5", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_dark_6", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_dark_7", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_dark_8", "volume": 0.8 }
|
||||
]
|
||||
},
|
||||
"impact.steel": {
|
||||
"sounds": [ "cobblemon:attacks/impacts/impact_steel" ]
|
||||
"sounds": [
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_steel_1", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_steel_2", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_steel_3", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_steel_4", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_steel_5", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_steel_6", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_steel_7", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_steel_8", "volume": 0.8 }
|
||||
]
|
||||
},
|
||||
"impact.fairy": {
|
||||
"sounds": [ "cobblemon:attacks/impacts/impact_fairy" ]
|
||||
"sounds": [
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fairy_1", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fairy_2", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fairy_3", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fairy_4", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fairy_5", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fairy_6", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fairy_7", "volume": 0.8 },
|
||||
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fairy_8", "volume": 0.8 }
|
||||
]
|
||||
},
|
||||
"pokemon.bulbasaur.ambient": {
|
||||
"sounds": [ "cobblemon:pokemon/bulbasaur/bulbasaur_ambient" ]
|
||||
|
||||
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Loaded 100 of 1172 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user