Compare commits

..
Author SHA1 Message Date
whatsy 1f5bb78684 Data monitor stuff and things idk 2026-11-04 19:43:08 -05:00
whatsy 87c21d8906 Moved Gimmighoul chest logic to a PokemonDisguiseBlock interface to repurpose for future blocks 2026-11-04 17:19:26 -05:00
whatsy cadaf00d08 mower + fan 2026-11-04 16:47:16 -05:00
whatsy 30404192bd washer mostly done + mower started 2026-11-04 13:41:07 -05:00
whatsy 5b3566a2b5 copper fridge basics 2026-11-03 22:37:16 -05:00
whatsy 1feeab6f87 Merge remote-tracking branch 'origin/main' into applied-appliances
# Conflicts:
#	common/src/main/kotlin/com/cobblemon/mod/common/CobblemonBlocks.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/client/CobblemonClient.kt
2026-11-03 12:31:38 -05:00
Polymeta 99e0a26d7b Merge branch 'compat-improvements' into 'main'
teeny fixes to compat

See merge request cable-mc/cobblemon!2520
2026-11-02 09:17:39 +00:00
dhi_holo 71753df513 Leftovers
Also a slight fix to the order in changelog
2026-11-02 13:30:23 +10:00
dhi_holo 729f080f6e Merge branch 'main' into compat-improvements 2026-11-02 13:26:43 +10:00
dhi_holo 13eb57afb1 category fix
Fixing one recipe category I missed teehee
2026-11-02 13:23:42 +10:00
dhi_holo 49c22f951d Update copper_fridge.json 2026-09-25 14:59:54 +10:00
dhi_holo a94cbc4eae Merge branch 'main' into applied-appliances 2026-09-25 14:59:00 +10:00
dhi_holo 5083af626c Fridge Cleaning
Tried changing some stuff to fix the fridge, it failed, but the code is a bit more consistent now so I'll keep what it got to
2026-09-19 18:05:21 +10:00
dhi_holo 137bb37c29 Merge branch 'main' into applied-appliances 2026-09-19 16:26:53 +10:00
dhi_holo eec578b312 I. Am. AN IDIOT!
With a Axe and a Honeycomb.
2026-09-19 16:26:16 +10:00
dhi_holo b6abe9711d Pistons Die Now
Added Piston Reactions, cleaned up comments on Fridge
2026-09-17 15:10:16 +10:00
dhi_holo 38c2e0d194 Merge branch 'main' into applied-appliances 2026-09-17 14:49:34 +10:00
dhi_holo 69566a97ca Oxidation Four of Five
Untested on NeoForge, will test once I fix Fridge

Oven, Washer, Mower, and Fan all oxidize correctly, Fridge breaks instantly when ticking. I've got a couple theories to test on fixing it
2026-09-17 14:49:11 +10:00
dhi_holo 6866e9af9b Data Files
Loot Tables, Recipes, Recipe Advancements and Tags. More could be added, but this is a good starting point
2026-09-16 19:40:34 +10:00
dhi_holo e45f2c6261 Progress
Got a mostly working weathering block class, but the codec is pissing me off
2026-09-16 15:54:05 +10:00
dhi_holo d9bea49567 Merge branch 'main' into applied-appliances 2026-09-15 20:16:50 +10:00
dhi_holo 235b753a25 Fully Assetted
(Mostly)
Copper Fans still need their wall variant, but this gets everything reasonably testable for trying to get oxidation working
2026-09-15 20:16:33 +10:00
dhi_holo 3d48432390 Fridge Too
Fridge now places both halves and looks right and allat, yay yippee
2026-09-15 19:40:53 +10:00
dhi_holo 7b03940dab Checkpoint
Got the basic functions for the Fan, Mower, Washer, and Oven in. Temporarily removed oxidation classes because it wasn't behaving and I'll reinvestigate later. Fridge next, the concerning one
2026-09-15 18:38:40 +10:00
dhi_holo 8d5d37c750 Breaking Shit
I'm breaking everything lmao
2026-09-14 20:20:16 +10:00
dhi_holo cdb9c80c0e Commented Out Some Unused Pieces
Trying to slim what's there so I can work out the main things to then reassemble it all together properly later
2026-09-14 18:48:17 +10:00
dhi_holo a77f035617 Oh God Oh Fuck They're Doing Something Weird Again
Began some basic code for the Copper Appliance Blocks. It's uh, not pretty, but the purpose is to be a shell to test the visual behaviours on while the smartypants make the actual appliance work *work*.
2026-09-14 18:33:19 +10:00
338 changed files with 12345 additions and 57 deletions

No files matched your search

+2
View File
@@ -9,6 +9,8 @@
### Changes
- Amethyst now grows from Typegem core blocks like typegems do
- Updated the recipe category for the Create compatibility EXP Candy recipe
- Added No Man's Lands' Honeyed Apple to the Leaves Leftovers tag
### Fixes
- Fixed Ponigiri food values for AppleSkin integration
+2
View File
@@ -0,0 +1,2 @@
Spec Doc: https://docs.google.com/document/d/1hEKKrT4JEagJBykx-k9K2BoeNxiMGahUWXnf8YQ85xo/edit?tab=t.0
Marshal: dhi_holo
@@ -8,6 +8,9 @@
package com.cobblemon.mod.common
import com.cobblemon.mod.common.block.appliances.CopperFridgeBlockEntity
import com.cobblemon.mod.common.block.appliances.CopperMowerBlockEntity
import com.cobblemon.mod.common.block.appliances.CopperWasherBlockEntity
import com.cobblemon.mod.common.block.entity.*
import com.cobblemon.mod.common.block.habitat.HabitatBlockEntity
import com.cobblemon.mod.common.block.multiblock.FossilMultiblockBuilder
@@ -126,4 +129,49 @@ object CobblemonBlockEntities : PlatformRegistry<Registry<BlockEntityType<*>>, R
CobblemonBlocks.MISTLEAF
).build(null)
)
@JvmField
val COPPER_FRIDGE: BlockEntityType<CopperFridgeBlockEntity> = this.create(
"copper_fridge",
BlockEntityType.Builder.of(::CopperFridgeBlockEntity,
CobblemonBlocks.COPPER_FRIDGE,
CobblemonBlocks.EXPOSED_COPPER_FRIDGE,
CobblemonBlocks.WEATHERED_COPPER_FRIDGE,
CobblemonBlocks.OXIDIZED_COPPER_FRIDGE,
CobblemonBlocks.WAXED_COPPER_FRIDGE,
CobblemonBlocks.WAXED_EXPOSED_COPPER_FRIDGE,
CobblemonBlocks.WAXED_WEATHERED_COPPER_FRIDGE,
CobblemonBlocks.WAXED_OXIDIZED_COPPER_FRIDGE
).build(null)
)
@JvmField
val COPPER_WASHER: BlockEntityType<CopperWasherBlockEntity> = this.create(
"copper_washer",
BlockEntityType.Builder.of(::CopperWasherBlockEntity,
CobblemonBlocks.COPPER_WASHER,
CobblemonBlocks.EXPOSED_COPPER_WASHER,
CobblemonBlocks.WEATHERED_COPPER_WASHER,
CobblemonBlocks.OXIDIZED_COPPER_WASHER,
CobblemonBlocks.WAXED_COPPER_WASHER,
CobblemonBlocks.WAXED_EXPOSED_COPPER_WASHER,
CobblemonBlocks.WAXED_WEATHERED_COPPER_WASHER,
CobblemonBlocks.WAXED_OXIDIZED_COPPER_WASHER
).build(null)
)
@JvmField
val COPPER_MOWER: BlockEntityType<CopperMowerBlockEntity> = this.create(
"copper_mower",
BlockEntityType.Builder.of(::CopperMowerBlockEntity,
CobblemonBlocks.COPPER_MOWER,
CobblemonBlocks.EXPOSED_COPPER_MOWER,
CobblemonBlocks.WEATHERED_COPPER_MOWER,
CobblemonBlocks.OXIDIZED_COPPER_MOWER,
CobblemonBlocks.WAXED_COPPER_MOWER,
CobblemonBlocks.WAXED_EXPOSED_COPPER_MOWER,
CobblemonBlocks.WAXED_WEATHERED_COPPER_MOWER,
CobblemonBlocks.WAXED_OXIDIZED_COPPER_MOWER
).build(null)
)
}
@@ -12,6 +12,7 @@ import com.cobblemon.mod.common.api.apricorn.Apricorn
import com.cobblemon.mod.common.api.pokemon.stats.Stats
import com.cobblemon.mod.common.block.*
import com.cobblemon.mod.common.block.LecternBlock
import com.cobblemon.mod.common.block.appliances.*
import com.cobblemon.mod.common.block.MintBlock.MintType
import com.cobblemon.mod.common.block.campfirepot.CampfireBlock
import com.cobblemon.mod.common.block.campfirepot.CampfirePotBlock
@@ -28,12 +29,7 @@ import com.cobblemon.mod.common.block.sign.CobblemonWallHangingSignBlock
import com.cobblemon.mod.common.block.sign.CobblemonWallSignBlock
import com.cobblemon.mod.common.block.tmmachine.TMMachineBlock
import com.cobblemon.mod.common.block.general.MintLitterBlock
import com.cobblemon.mod.common.mixin.invoker.BlocksInvoker
import com.cobblemon.mod.common.mixin.invoker.DoorBlockInvoker
import com.cobblemon.mod.common.mixin.invoker.FireBlockInvoker
import com.cobblemon.mod.common.mixin.invoker.PressurePlateBlockInvoker
import com.cobblemon.mod.common.mixin.invoker.StairsBlockInvoker
import com.cobblemon.mod.common.mixin.invoker.TrapdoorBlockInvoker
import com.cobblemon.mod.common.mixin.invoker.*
import com.cobblemon.mod.common.platform.PlatformRegistry
import com.cobblemon.mod.common.util.cobblemonResource
import net.minecraft.core.BlockPos
@@ -792,6 +788,9 @@ object CobblemonBlocks : PlatformRegistry<Registry<Block>, ResourceKey<Registry<
@JvmField
val RESTORATION_TANK = create("restoration_tank", RestorationTankBlock(BlockBehaviour.Properties.of().mapColor(MapColor.METAL).sound(SoundType.GLASS).pushReaction(PushReaction.BLOCK).requiresCorrectToolForDrops().strength(5.0F, 6.0F).noOcclusion()))
@JvmField
val ROTOM_MONITOR = create("rotom_data_monitor", RotomMonitorBlock(BlockBehaviour.Properties.ofFullCopy(MONITOR)))
@JvmField
val HEALING_MACHINE = create("healing_machine", HealingMachineBlock(BlockBehaviour.Properties.of().mapColor(MapColor.METAL).sound(SoundType.METAL).pushReaction(PushReaction.BLOCK).strength(2F).noOcclusion().lightLevel { if (it.getValue(HealingMachineBlock.CHARGE_LEVEL) >= HealingMachineBlock.MAX_CHARGE_LEVEL) 12 else 5 }))
@@ -821,6 +820,93 @@ object CobblemonBlocks : PlatformRegistry<Registry<Block>, ResourceKey<Registry<
@JvmField
val DISPLAY_CASE = create("display_case", DisplayCaseBlock(BlockBehaviour.Properties.of().sound(CobblemonSounds.DISPLAY_CASE_SOUNDS).noOcclusion().pushReaction(PushReaction.BLOCK).mapColor(MapColor.STONE).strength(0.3F).requiresCorrectToolForDrops()))
//Rotom Blocks
//Oven
@JvmField
val COPPER_OVEN = create("copper_oven", WeatheringCopperOvenBlock(WeatheringCopper.WeatherState.UNAFFECTED, BlockBehaviour.Properties.of().mapColor(MapColor.COLOR_ORANGE).requiresCorrectToolForDrops().strength(3.0f, 6.0f).sound(SoundType.COPPER).pushReaction(PushReaction.BLOCK)))
@JvmField
val EXPOSED_COPPER_OVEN = create("exposed_copper_oven", WeatheringCopperOvenBlock(WeatheringCopper.WeatherState.EXPOSED, BlockBehaviour.Properties.ofFullCopy(COPPER_OVEN).mapColor(MapColor.TERRACOTTA_LIGHT_GRAY)))
@JvmField
val WEATHERED_COPPER_OVEN = create("weathered_copper_oven", WeatheringCopperOvenBlock(WeatheringCopper.WeatherState.WEATHERED, BlockBehaviour.Properties.ofFullCopy(COPPER_OVEN).mapColor(MapColor.WARPED_STEM)))
@JvmField
val OXIDIZED_COPPER_OVEN = create("oxidized_copper_oven", WeatheringCopperOvenBlock(WeatheringCopper.WeatherState.OXIDIZED, BlockBehaviour.Properties.ofFullCopy(COPPER_OVEN).mapColor(MapColor.WARPED_NYLIUM)))
@JvmField
val WAXED_COPPER_OVEN = create("waxed_copper_oven", CopperOvenBlock(BlockBehaviour.Properties.ofFullCopy(COPPER_OVEN)))
@JvmField
val WAXED_EXPOSED_COPPER_OVEN = create("waxed_exposed_copper_oven", CopperOvenBlock(BlockBehaviour.Properties.ofFullCopy(EXPOSED_COPPER_OVEN)))
@JvmField
val WAXED_WEATHERED_COPPER_OVEN = create("waxed_weathered_copper_oven", CopperOvenBlock(BlockBehaviour.Properties.ofFullCopy(WEATHERED_COPPER_OVEN)))
@JvmField
val WAXED_OXIDIZED_COPPER_OVEN = create("waxed_oxidized_copper_oven", CopperOvenBlock(BlockBehaviour.Properties.ofFullCopy(OXIDIZED_COPPER_OVEN)))
//Washer
@JvmField
val COPPER_WASHER = create("copper_washer", WeatheringCopperWasherBlock(WeatheringCopper.WeatherState.UNAFFECTED, BlockBehaviour.Properties.of().mapColor(MapColor.COLOR_ORANGE).requiresCorrectToolForDrops().strength(3.0f, 6.0f).sound(SoundType.COPPER).pushReaction(PushReaction.BLOCK)))
@JvmField
val EXPOSED_COPPER_WASHER = create("exposed_copper_washer", WeatheringCopperWasherBlock(WeatheringCopper.WeatherState.EXPOSED, BlockBehaviour.Properties.ofFullCopy(COPPER_WASHER).mapColor(MapColor.TERRACOTTA_LIGHT_GRAY)))
@JvmField
val WEATHERED_COPPER_WASHER = create("weathered_copper_washer", WeatheringCopperWasherBlock(WeatheringCopper.WeatherState.WEATHERED, BlockBehaviour.Properties.ofFullCopy(COPPER_WASHER).mapColor(MapColor.WARPED_STEM)))
@JvmField
val OXIDIZED_COPPER_WASHER = create("oxidized_copper_washer", WeatheringCopperWasherBlock(WeatheringCopper.WeatherState.OXIDIZED, BlockBehaviour.Properties.ofFullCopy(COPPER_WASHER).mapColor(MapColor.WARPED_NYLIUM)))
@JvmField
val WAXED_COPPER_WASHER = create("waxed_copper_washer", CopperWasherBlock(BlockBehaviour.Properties.ofFullCopy(COPPER_WASHER)))
@JvmField
val WAXED_EXPOSED_COPPER_WASHER = create("waxed_exposed_copper_washer", CopperWasherBlock(BlockBehaviour.Properties.ofFullCopy(EXPOSED_COPPER_WASHER)))
@JvmField
val WAXED_WEATHERED_COPPER_WASHER = create("waxed_weathered_copper_washer", CopperWasherBlock(BlockBehaviour.Properties.ofFullCopy(WEATHERED_COPPER_WASHER)))
@JvmField
val WAXED_OXIDIZED_COPPER_WASHER = create("waxed_oxidized_copper_washer", CopperWasherBlock(BlockBehaviour.Properties.ofFullCopy(OXIDIZED_COPPER_WASHER)))
//Fan
@JvmField
val COPPER_FAN = create("copper_fan", WeatheringCopperFanBlock(WeatheringCopper.WeatherState.UNAFFECTED, BlockBehaviour.Properties.of().mapColor(MapColor.COLOR_ORANGE).requiresCorrectToolForDrops().strength(3.0f, 6.0f).sound(SoundType.COPPER).pushReaction(PushReaction.DESTROY)))
@JvmField
val EXPOSED_COPPER_FAN = create("exposed_copper_fan", WeatheringCopperFanBlock(WeatheringCopper.WeatherState.EXPOSED, BlockBehaviour.Properties.ofFullCopy(COPPER_FAN).mapColor(MapColor.TERRACOTTA_LIGHT_GRAY)))
@JvmField
val WEATHERED_COPPER_FAN = create("weathered_copper_fan", WeatheringCopperFanBlock(WeatheringCopper.WeatherState.WEATHERED, BlockBehaviour.Properties.ofFullCopy(COPPER_FAN).mapColor(MapColor.WARPED_STEM)))
@JvmField
val OXIDIZED_COPPER_FAN = create("oxidized_copper_fan", WeatheringCopperFanBlock(WeatheringCopper.WeatherState.OXIDIZED, BlockBehaviour.Properties.ofFullCopy(COPPER_FAN).mapColor(MapColor.WARPED_NYLIUM)))
@JvmField
val WAXED_COPPER_FAN = create("waxed_copper_fan", CopperFanBlock(BlockBehaviour.Properties.ofFullCopy(COPPER_FAN)))
@JvmField
val WAXED_EXPOSED_COPPER_FAN = create("waxed_exposed_copper_fan", CopperFanBlock(BlockBehaviour.Properties.ofFullCopy(EXPOSED_COPPER_FAN)))
@JvmField
val WAXED_WEATHERED_COPPER_FAN = create("waxed_weathered_copper_fan", CopperFanBlock(BlockBehaviour.Properties.ofFullCopy(WEATHERED_COPPER_FAN)))
@JvmField
val WAXED_OXIDIZED_COPPER_FAN = create("waxed_oxidized_copper_fan", CopperFanBlock(BlockBehaviour.Properties.ofFullCopy(OXIDIZED_COPPER_FAN)))
//Mower
@JvmField
val COPPER_MOWER = create("copper_mower", WeatheringCopperMowerBlock(WeatheringCopper.WeatherState.UNAFFECTED, BlockBehaviour.Properties.of().mapColor(MapColor.COLOR_ORANGE).requiresCorrectToolForDrops().strength(3.0f, 6.0f).sound(SoundType.COPPER).pushReaction(PushReaction.NORMAL)))
@JvmField
val EXPOSED_COPPER_MOWER = create("exposed_copper_mower", WeatheringCopperMowerBlock(WeatheringCopper.WeatherState.EXPOSED, BlockBehaviour.Properties.ofFullCopy(COPPER_MOWER).mapColor(MapColor.TERRACOTTA_LIGHT_GRAY)))
@JvmField
val WEATHERED_COPPER_MOWER = create("weathered_copper_mower", WeatheringCopperMowerBlock(WeatheringCopper.WeatherState.WEATHERED, BlockBehaviour.Properties.ofFullCopy(COPPER_MOWER).mapColor(MapColor.WARPED_STEM)))
@JvmField
val OXIDIZED_COPPER_MOWER = create("oxidized_copper_mower", WeatheringCopperMowerBlock(WeatheringCopper.WeatherState.OXIDIZED, BlockBehaviour.Properties.ofFullCopy(COPPER_MOWER).mapColor(MapColor.WARPED_NYLIUM)))
@JvmField
val WAXED_COPPER_MOWER = create("waxed_copper_mower", CopperMowerBlock(BlockBehaviour.Properties.ofFullCopy(COPPER_MOWER)))
@JvmField
val WAXED_EXPOSED_COPPER_MOWER = create("waxed_exposed_copper_mower", CopperMowerBlock(BlockBehaviour.Properties.ofFullCopy(EXPOSED_COPPER_MOWER)))
@JvmField
val WAXED_WEATHERED_COPPER_MOWER = create("waxed_weathered_copper_mower", CopperMowerBlock(BlockBehaviour.Properties.ofFullCopy(WEATHERED_COPPER_MOWER)))
@JvmField
val WAXED_OXIDIZED_COPPER_MOWER = create("waxed_oxidized_copper_mower", CopperMowerBlock(BlockBehaviour.Properties.ofFullCopy(OXIDIZED_COPPER_MOWER)))
//Fridge
@JvmField
val COPPER_FRIDGE = create("copper_fridge", WeatheringCopperFridgeBlock(WeatheringCopper.WeatherState.UNAFFECTED, BlockBehaviour.Properties.of().mapColor(MapColor.COLOR_ORANGE).requiresCorrectToolForDrops().strength(3.0f, 6.0f).sound(SoundType.COPPER).pushReaction(PushReaction.BLOCK)))
@JvmField
val EXPOSED_COPPER_FRIDGE = create("exposed_copper_fridge", WeatheringCopperFridgeBlock(WeatheringCopper.WeatherState.EXPOSED, BlockBehaviour.Properties.ofFullCopy(COPPER_FRIDGE).mapColor(MapColor.TERRACOTTA_LIGHT_GRAY)))
@JvmField
val WEATHERED_COPPER_FRIDGE = create("weathered_copper_fridge", WeatheringCopperFridgeBlock(WeatheringCopper.WeatherState.WEATHERED, BlockBehaviour.Properties.ofFullCopy(COPPER_FRIDGE).mapColor(MapColor.WARPED_STEM)))
@JvmField
val OXIDIZED_COPPER_FRIDGE = create("oxidized_copper_fridge", WeatheringCopperFridgeBlock(WeatheringCopper.WeatherState.OXIDIZED, BlockBehaviour.Properties.ofFullCopy(COPPER_FRIDGE).mapColor(MapColor.WARPED_NYLIUM)))
@JvmField
val WAXED_COPPER_FRIDGE = create("waxed_copper_fridge", CopperFridgeBlock(BlockBehaviour.Properties.ofFullCopy(COPPER_FRIDGE)))
@JvmField
val WAXED_EXPOSED_COPPER_FRIDGE = create("waxed_exposed_copper_fridge", CopperFridgeBlock(BlockBehaviour.Properties.ofFullCopy(EXPOSED_COPPER_FRIDGE)))
@JvmField
val WAXED_WEATHERED_COPPER_FRIDGE = create("waxed_weathered_copper_fridge", CopperFridgeBlock(BlockBehaviour.Properties.ofFullCopy(WEATHERED_COPPER_FRIDGE)))
@JvmField
val WAXED_OXIDIZED_COPPER_FRIDGE = create("waxed_oxidized_copper_fridge", CopperFridgeBlock(BlockBehaviour.Properties.ofFullCopy(OXIDIZED_COPPER_FRIDGE)))
// TODO after 1.7
// @JvmField
// val INCENSE_SWEET = create("incense_sweet", SweetIncenseBlock(BlockBehaviour.Properties.of().sound(CobblemonSounds.DISPLAY_CASE_SOUNDS).noOcclusion().pushReaction(PushReaction.BLOCK).mapColor(MapColor.STONE).strength(0.3F)))
@@ -849,7 +935,6 @@ object CobblemonBlocks : PlatformRegistry<Registry<Block>, ResourceKey<Registry<
@JvmField
val GALARICA_NUT_BUSH = this.create("galarica_nut_bush", NutBushBlock(BlockBehaviour.Properties.of().mapColor(MapColor.PLANT).randomTicks().noCollission().sound(SoundType.SWEET_BERRY_BUSH).pushReaction(PushReaction.DESTROY)))
@JvmField
val RED_MINT_LEAF_LITTER = this.mintLitter("red_mint_leaf_litter", MapColor.COLOR_RED)
@JvmField
@@ -927,6 +1012,57 @@ object CobblemonBlocks : PlatformRegistry<Registry<Block>, ResourceKey<Registry<
SACCHARINE_LOG to STRIPPED_SACCHARINE_LOG,
SACCHARINE_LOG_SLATHERED to STRIPPED_SACCHARINE_LOG
)
/**Same idea as above, but for Copper Oxidation over time (or when inverted, scraping with an axe)*/
fun oxidizingBlocks(): Map<Block, Block> = mapOf(
//Ovens
COPPER_OVEN to EXPOSED_COPPER_OVEN,
EXPOSED_COPPER_OVEN to WEATHERED_COPPER_OVEN,
WEATHERED_COPPER_OVEN to OXIDIZED_COPPER_OVEN,
//Washers
COPPER_WASHER to EXPOSED_COPPER_WASHER,
EXPOSED_COPPER_WASHER to WEATHERED_COPPER_WASHER,
WEATHERED_COPPER_WASHER to OXIDIZED_COPPER_WASHER,
//Fans
COPPER_FAN to EXPOSED_COPPER_FAN,
EXPOSED_COPPER_FAN to WEATHERED_COPPER_FAN,
WEATHERED_COPPER_FAN to OXIDIZED_COPPER_FAN,
//Fridges
COPPER_FRIDGE to EXPOSED_COPPER_FRIDGE,
EXPOSED_COPPER_FRIDGE to WEATHERED_COPPER_FRIDGE,
WEATHERED_COPPER_FRIDGE to OXIDIZED_COPPER_FRIDGE,
//Mowers
COPPER_MOWER to EXPOSED_COPPER_MOWER,
EXPOSED_COPPER_MOWER to WEATHERED_COPPER_MOWER,
WEATHERED_COPPER_MOWER to OXIDIZED_COPPER_MOWER
)
/**Same idea as above, but for waxing blocks with Honeycomb (or unwaxing them with an axe)*/
fun waxingBlocks(): Map<Block, Block> = mapOf(
//Ovens
COPPER_OVEN to WAXED_COPPER_OVEN,
EXPOSED_COPPER_OVEN to WAXED_EXPOSED_COPPER_OVEN,
WEATHERED_COPPER_OVEN to WAXED_WEATHERED_COPPER_OVEN,
OXIDIZED_COPPER_OVEN to WAXED_OXIDIZED_COPPER_OVEN,
//Washers
COPPER_WASHER to WAXED_COPPER_WASHER,
EXPOSED_COPPER_WASHER to WAXED_EXPOSED_COPPER_WASHER,
WEATHERED_COPPER_WASHER to WAXED_WEATHERED_COPPER_WASHER,
OXIDIZED_COPPER_WASHER to WAXED_OXIDIZED_COPPER_WASHER,
//Fans
COPPER_FAN to WAXED_COPPER_FAN,
EXPOSED_COPPER_FAN to WAXED_EXPOSED_COPPER_FAN,
WEATHERED_COPPER_FAN to WAXED_WEATHERED_COPPER_FAN,
OXIDIZED_COPPER_FAN to WAXED_OXIDIZED_COPPER_FAN,
//Fridges
COPPER_FRIDGE to WAXED_COPPER_FRIDGE,
EXPOSED_COPPER_FRIDGE to WAXED_EXPOSED_COPPER_FRIDGE,
WEATHERED_COPPER_FRIDGE to WAXED_WEATHERED_COPPER_FRIDGE,
OXIDIZED_COPPER_FRIDGE to WAXED_OXIDIZED_COPPER_FRIDGE,
//Mowers
COPPER_MOWER to WAXED_COPPER_MOWER,
EXPOSED_COPPER_MOWER to WAXED_EXPOSED_COPPER_MOWER,
WEATHERED_COPPER_MOWER to WAXED_WEATHERED_COPPER_MOWER,
OXIDIZED_COPPER_MOWER to WAXED_OXIDIZED_COPPER_MOWER
)
private fun apricornBlock(name: String, apricorn: Apricorn): ApricornBlock = this.create(name, ApricornBlock(BlockBehaviour.Properties.of().mapColor(apricorn.mapColor()).randomTicks().strength(Blocks.OAK_LOG.defaultDestroyTime(), Blocks.OAK_LOG.explosionResistance).sound(SoundType.WOOD).noOcclusion(), apricorn))
@@ -454,6 +454,8 @@ object CobblemonItems : PlatformRegistry<Registry<Item>, ResourceKey<Registry<It
@JvmField
val DAMAGED_MONITOR = blockItem("damaged_monitor", CobblemonBlocks.DAMAGED_MONITOR)
@JvmField
val ROTOM_MONITOR = blockItem("rotom_data_monitor", CobblemonBlocks.ROTOM_MONITOR)
@JvmField
val HEALING_MACHINE = blockItem("healing_machine", CobblemonBlocks.HEALING_MACHINE, Rarity.UNCOMMON)
@JvmField
val PC = blockItem("pc", CobblemonBlocks.PC)
@@ -1517,6 +1519,87 @@ object CobblemonItems : PlatformRegistry<Registry<Item>, ResourceKey<Registry<It
@JvmField
val BLANK_TM = this.create("blank_tm", CobblemonItem(Item.Properties()))
@JvmField
val COPPER_OVEN = this.create("copper_oven", BlockItem(CobblemonBlocks.COPPER_OVEN, Item.Properties()))
@JvmField
val EXPOSED_COPPER_OVEN = this.create("exposed_copper_oven", BlockItem(CobblemonBlocks.EXPOSED_COPPER_OVEN, Item.Properties()))
@JvmField
val WEATHERED_COPPER_OVEN = this.create("weathered_copper_oven", BlockItem(CobblemonBlocks.WEATHERED_COPPER_OVEN, Item.Properties()))
@JvmField
val OXIDIZED_COPPER_OVEN = this.create("oxidized_copper_oven", BlockItem(CobblemonBlocks.OXIDIZED_COPPER_OVEN, Item.Properties()))
@JvmField
val WAXED_COPPER_OVEN = this.create("waxed_copper_oven", BlockItem(CobblemonBlocks.WAXED_COPPER_OVEN, Item.Properties()))
@JvmField
val WAXED_EXPOSED_COPPER_OVEN = this.create("waxed_exposed_copper_oven", BlockItem(CobblemonBlocks.WAXED_EXPOSED_COPPER_OVEN, Item.Properties()))
@JvmField
val WAXED_WEATHERED_COPPER_OVEN = this.create("waxed_weathered_copper_oven", BlockItem(CobblemonBlocks.WAXED_WEATHERED_COPPER_OVEN, Item.Properties()))
@JvmField
val WAXED_OXIDIZED_COPPER_OVEN = this.create("waxed_oxidized_copper_oven", BlockItem(CobblemonBlocks.WAXED_OXIDIZED_COPPER_OVEN, Item.Properties()))
@JvmField
val COPPER_WASHER = this.create("copper_washer", BlockItem(CobblemonBlocks.COPPER_WASHER, Item.Properties()))
@JvmField
val EXPOSED_COPPER_WASHER = this.create("exposed_copper_washer", BlockItem(CobblemonBlocks.EXPOSED_COPPER_WASHER, Item.Properties()))
@JvmField
val WEATHERED_COPPER_WASHER = this.create("weathered_copper_washer", BlockItem(CobblemonBlocks.WEATHERED_COPPER_WASHER, Item.Properties()))
@JvmField
val OXIDIZED_COPPER_WASHER = this.create("oxidized_copper_washer", BlockItem(CobblemonBlocks.OXIDIZED_COPPER_WASHER, Item.Properties()))
@JvmField
val WAXED_COPPER_WASHER = this.create("waxed_copper_washer", BlockItem(CobblemonBlocks.WAXED_COPPER_WASHER, Item.Properties()))
@JvmField
val WAXED_EXPOSED_COPPER_WASHER = this.create("waxed_exposed_copper_washer", BlockItem(CobblemonBlocks.WAXED_EXPOSED_COPPER_WASHER, Item.Properties()))
@JvmField
val WAXED_WEATHERED_COPPER_WASHER = this.create("waxed_weathered_copper_washer", BlockItem(CobblemonBlocks.WAXED_WEATHERED_COPPER_WASHER, Item.Properties()))
@JvmField
val WAXED_OXIDIZED_COPPER_WASHER = this.create("waxed_oxidized_copper_washer", BlockItem(CobblemonBlocks.WAXED_OXIDIZED_COPPER_WASHER, Item.Properties()))
@JvmField
val COPPER_FAN = this.create("copper_fan", BlockItem(CobblemonBlocks.COPPER_FAN, Item.Properties()))
@JvmField
val EXPOSED_COPPER_FAN = this.create("exposed_copper_fan", BlockItem(CobblemonBlocks.EXPOSED_COPPER_FAN, Item.Properties()))
@JvmField
val WEATHERED_COPPER_FAN = this.create("weathered_copper_fan", BlockItem(CobblemonBlocks.WEATHERED_COPPER_FAN, Item.Properties()))
@JvmField
val OXIDIZED_COPPER_FAN = this.create("oxidized_copper_fan", BlockItem(CobblemonBlocks.OXIDIZED_COPPER_FAN, Item.Properties()))
@JvmField
val WAXED_COPPER_FAN = this.create("waxed_copper_fan", BlockItem(CobblemonBlocks.WAXED_COPPER_FAN, Item.Properties()))
@JvmField
val WAXED_EXPOSED_COPPER_FAN = this.create("waxed_exposed_copper_fan", BlockItem(CobblemonBlocks.WAXED_EXPOSED_COPPER_FAN, Item.Properties()))
@JvmField
val WAXED_WEATHERED_COPPER_FAN = this.create("waxed_weathered_copper_fan", BlockItem(CobblemonBlocks.WAXED_WEATHERED_COPPER_FAN, Item.Properties()))
@JvmField
val WAXED_OXIDIZED_COPPER_FAN = this.create("waxed_oxidized_copper_fan", BlockItem(CobblemonBlocks.WAXED_OXIDIZED_COPPER_FAN, Item.Properties()))
@JvmField
val COPPER_MOWER = this.create("copper_mower", BlockItem(CobblemonBlocks.COPPER_MOWER, Item.Properties()))
@JvmField
val EXPOSED_COPPER_MOWER = this.create("exposed_copper_mower", BlockItem(CobblemonBlocks.EXPOSED_COPPER_MOWER, Item.Properties()))
@JvmField
val WEATHERED_COPPER_MOWER = this.create("weathered_copper_mower", BlockItem(CobblemonBlocks.WEATHERED_COPPER_MOWER, Item.Properties()))
@JvmField
val OXIDIZED_COPPER_MOWER = this.create("oxidized_copper_mower", BlockItem(CobblemonBlocks.OXIDIZED_COPPER_MOWER, Item.Properties()))
@JvmField
val WAXED_COPPER_MOWER = this.create("waxed_copper_mower", BlockItem(CobblemonBlocks.WAXED_COPPER_MOWER, Item.Properties()))
@JvmField
val WAXED_EXPOSED_COPPER_MOWER = this.create("waxed_exposed_copper_mower", BlockItem(CobblemonBlocks.WAXED_EXPOSED_COPPER_MOWER, Item.Properties()))
@JvmField
val WAXED_WEATHERED_COPPER_MOWER = this.create("waxed_weathered_copper_mower", BlockItem(CobblemonBlocks.WAXED_WEATHERED_COPPER_MOWER, Item.Properties()))
@JvmField
val WAXED_OXIDIZED_COPPER_MOWER = this.create("waxed_oxidized_copper_mower", BlockItem(CobblemonBlocks.WAXED_OXIDIZED_COPPER_MOWER, Item.Properties()))
@JvmField
val COPPER_FRIDGE = this.create("copper_fridge", BlockItem(CobblemonBlocks.COPPER_FRIDGE, Item.Properties()))
@JvmField
val EXPOSED_COPPER_FRIDGE = this.create("exposed_copper_fridge", BlockItem(CobblemonBlocks.EXPOSED_COPPER_FRIDGE, Item.Properties()))
@JvmField
val WEATHERED_COPPER_FRIDGE = this.create("weathered_copper_fridge", BlockItem(CobblemonBlocks.WEATHERED_COPPER_FRIDGE, Item.Properties()))
@JvmField
val OXIDIZED_COPPER_FRIDGE = this.create("oxidized_copper_fridge", BlockItem(CobblemonBlocks.OXIDIZED_COPPER_FRIDGE, Item.Properties()))
@JvmField
val WAXED_COPPER_FRIDGE = this.create("waxed_copper_fridge", BlockItem(CobblemonBlocks.WAXED_COPPER_FRIDGE, Item.Properties()))
@JvmField
val WAXED_EXPOSED_COPPER_FRIDGE = this.create("waxed_exposed_copper_fridge", BlockItem(CobblemonBlocks.WAXED_EXPOSED_COPPER_FRIDGE, Item.Properties()))
@JvmField
val WAXED_WEATHERED_COPPER_FRIDGE = this.create("waxed_weathered_copper_fridge", BlockItem(CobblemonBlocks.WAXED_WEATHERED_COPPER_FRIDGE, Item.Properties()))
@JvmField
val WAXED_OXIDIZED_COPPER_FRIDGE = this.create("waxed_oxidized_copper_fridge", BlockItem(CobblemonBlocks.WAXED_OXIDIZED_COPPER_FRIDGE, Item.Properties()))
// Type Gems
@JvmField
val NORMAL_GEM = this.create("normal_gem", GemItem(Item.Properties(), CobblemonBlocks.TYPE_GEM_CLUSTER_NORMAL))
@@ -12,6 +12,7 @@ package com.cobblemon.mod.common
import com.cobblemon.mod.common.item.crafting.CookingPotRecipe
import com.cobblemon.mod.common.item.crafting.CookingPotShapelessRecipe
import com.cobblemon.mod.common.item.crafting.brewingstand.BrewingStandRecipe
import com.cobblemon.mod.common.item.crafting.washer.WasherRecipe
import com.cobblemon.mod.common.platform.PlatformRegistry
import net.minecraft.core.Registry
import net.minecraft.core.registries.BuiltInRegistries
@@ -26,7 +27,9 @@ object CobblemonRecipeSerializers : PlatformRegistry<Registry<RecipeSerializer<*
val COOKING_POT_SHAPELESS: RecipeSerializer<*> = register("cobblemon:cooking_pot_shapeless", CookingPotShapelessRecipe.Serializer())
val BREWING_STAND: RecipeSerializer<*> = register("cobblemon:brewing_stand", BrewingStandRecipe.Serializer())
val WASHER: RecipeSerializer<*> = register("cobblemon:washer", WasherRecipe.Serializer())
override val registry: Registry<RecipeSerializer<*>>
get() = BuiltInRegistries.RECIPE_SERIALIZER
override val resourceKey: ResourceKey<Registry<RecipeSerializer<*>>>
@@ -12,6 +12,7 @@ package com.cobblemon.mod.common
import com.cobblemon.mod.common.item.crafting.CookingPotRecipe
import com.cobblemon.mod.common.item.crafting.CookingPotShapelessRecipe
import com.cobblemon.mod.common.item.crafting.brewingstand.BrewingStandRecipe
import com.cobblemon.mod.common.item.crafting.washer.WasherRecipe
import com.cobblemon.mod.common.platform.PlatformRegistry
import net.minecraft.core.Registry
import net.minecraft.core.registries.BuiltInRegistries
@@ -26,7 +27,9 @@ object CobblemonRecipeTypes : PlatformRegistry<Registry<RecipeType<*>>, Resource
val COOKING_POT_SHAPELESS: RecipeType<CookingPotShapelessRecipe> = register("cobblemon:cooking_pot_shapeless")
val BREWING_STAND: RecipeType<BrewingStandRecipe> = register("cobblemon:brewing_stand")
val WASHER: RecipeType<WasherRecipe> = register("cobblemon:washer")
override val registry: Registry<RecipeType<*>>
get() = BuiltInRegistries.RECIPE_TYPE
override val resourceKey: ResourceKey<Registry<RecipeType<*>>>
@@ -0,0 +1,128 @@
package com.cobblemon.mod.common.block
import com.cobblemon.mod.common.Cobblemon
import com.cobblemon.mod.common.api.pokemon.PokemonProperties
import com.cobblemon.mod.common.api.scheduling.afterOnServer
import com.cobblemon.mod.common.entity.pokemon.PokemonEntity
import com.cobblemon.mod.common.util.math.FloatRange
import com.cobblemon.mod.common.util.party
import com.cobblemon.mod.common.util.toVec3d
import net.minecraft.core.BlockPos
import net.minecraft.core.Direction
import net.minecraft.server.level.ServerPlayer
import net.minecraft.sounds.SoundEvent
import net.minecraft.sounds.SoundSource
import net.minecraft.world.InteractionResult
import net.minecraft.world.level.Level
import net.minecraft.world.level.block.Blocks
import net.minecraft.world.level.block.HorizontalDirectionalBlock
import net.minecraft.world.level.block.state.BlockState
import net.minecraft.world.phys.Vec3
/**
* A block that can transform into a [PokemonEntity].
* Call [spawnPokemon] to spawn.
*
* @author whatsy
*/
interface PokemonDisguiseBlock {
private val facingToYaw: HashMap<Direction, Float>
get() = hashMapOf(
Direction.NORTH to -179.0F,
Direction.WEST to 90.0F,
Direction.SOUTH to 0.0F,
Direction.EAST to -90.0F
)
/**
* An [IntRange] representing the possible level of the spawned Pokemon.
*/
val levelRange: IntRange
/**
* A [String] representing the [PokemonProperties] of the spawned Pokemon.
* Do not include level or scale; Those are defined using [levelRange] and [scaleRange] respectively.
*/
val pokemonArgs: String
/**
* The [BlockState] to replace the block with on interaction.
* Defaults to [Blocks.AIR]
*
* @param originalState The [BlockState] of the block being interacted with. Use to transfer properties to a new block.
*/
fun getReplacementBlock(originalState: BlockState): BlockState = Blocks.AIR.defaultBlockState()
/**
* Whether or not a battle should be initiated when the Pokemon spawns.
* Defaults to true.
* Does not affect players in creative mode.
*/
val shouldInitiateBattle: Boolean
get() = true
/**
* The [SoundEvent], if any, to play when the Pokemon spawns.
* Defaults to null.
*/
val spawnSound: SoundEvent?
get() = null
/**
* A [FloatRange] representing the possible scale of the spawned Pokemon.
* Defaults to config values.
*/
val scaleRange: FloatRange
get() = FloatRange(Cobblemon.config.pokemonIntrinsicSizeMin, Cobblemon.config.pokemonIntrinsicSizeMax)
/**
* Defines a [Vec3] offset for where the Pokemon will spawn.
* Defaults to 0, 0, 0
*/
val offset: Vec3
get() = Vec3(0.0, 0.0, 0.0)
/**
* Spawn a Pokemon from this block.
*
* @param level The [Level] to spawn this Pokemon in.
* @param pos The [BlockPos] to spawn this Pokemon at.
* @param state The [BlockState] of the block at time of spawning.
* @param player The [ServerPlayer] to initiate the battle against.
*/
fun spawnPokemon(level: Level, pos: BlockPos, state: BlockState, player: ServerPlayer): InteractionResult {
val properties = "$pokemonArgs lvl=${levelRange.random()} scale_modifier=${scaleRange.random()}"
val pokemon = PokemonProperties.parse(properties)
val entity = pokemon.createEntity(level)
// The yaw based on the block's facing direction
val yaw = facingToYaw[state.getValue(HorizontalDirectionalBlock.FACING)] ?: 0.0F
entity.entityData.set(PokemonEntity.SPAWN_DIRECTION, yaw)
val offsetDir = state.getValue(HorizontalDirectionalBlock.FACING)
val vec = pos.toVec3d()
.add(offsetDir.stepX * 0.1 + 0.5, 0.0, offsetDir.stepZ * 0.1 + 0.5)
.add(offset)
entity.moveTo(vec.x, vec.y, vec.z, yaw, entity.xRot)
level.addFreshEntity(entity)
if (getReplacementBlock(state) == Blocks.AIR) {
level.removeBlock(pos, false)
} else {
level.setBlockAndUpdate(pos, getReplacementBlock(state))
}
afterOnServer(seconds = 0.1F) {
if (player !in player.level().players()) {
return@afterOnServer
}
if (!player.isCreative && shouldInitiateBattle) {
entity.forceBattle(player)
} else {
spawnSound?.let { level.playSound(null, pos, it, SoundSource.NEUTRAL) }
}
}
return InteractionResult.SUCCESS
}
}
@@ -0,0 +1,87 @@
package com.cobblemon.mod.common.block
import com.cobblemon.mod.common.CobblemonBlocks
import com.cobblemon.mod.common.CobblemonSounds
import com.cobblemon.mod.common.block.DamagedMonitorBlock.BrokenMonitorScreen
import com.cobblemon.mod.common.block.DamagedMonitorBlock.Companion.HITBOX_EAST
import com.cobblemon.mod.common.block.DamagedMonitorBlock.Companion.HITBOX_NORTH
import com.cobblemon.mod.common.block.DamagedMonitorBlock.Companion.HITBOX_SOUTH
import com.cobblemon.mod.common.block.DamagedMonitorBlock.Companion.HITBOX_WEST
import net.minecraft.core.BlockPos
import net.minecraft.core.Direction
import net.minecraft.server.level.ServerPlayer
import net.minecraft.world.InteractionResult
import net.minecraft.world.entity.player.Player
import net.minecraft.world.item.context.BlockPlaceContext
import net.minecraft.world.level.BlockGetter
import net.minecraft.world.level.Level
import net.minecraft.world.level.block.Block
import net.minecraft.world.level.block.HorizontalDirectionalBlock
import net.minecraft.world.level.block.state.BlockBehaviour
import net.minecraft.world.level.block.state.BlockState
import net.minecraft.world.level.block.state.StateDefinition
import net.minecraft.world.phys.BlockHitResult
import net.minecraft.world.phys.Vec3
import net.minecraft.world.phys.shapes.CollisionContext
import net.minecraft.world.phys.shapes.VoxelShape
class RotomMonitorBlock(settings: Properties) : Block(settings), PokemonDisguiseBlock {
init {
registerDefaultState(stateDefinition.any()
.setValue(HorizontalDirectionalBlock.FACING, Direction.NORTH)
.setValue(MonitorBlock.SCREEN, MonitorBlock.MonitorScreen.OFF)
)
}
override fun getStateForPlacement(context: BlockPlaceContext): BlockState? {
return defaultBlockState().setValue(HorizontalDirectionalBlock.FACING, context.horizontalDirection)
}
override fun createBlockStateDefinition(builder: StateDefinition.Builder<Block?, BlockState?>) {
builder.add(HorizontalDirectionalBlock.FACING)
builder.add(MonitorBlock.SCREEN)
}
override fun playerWillDestroy(level: Level, pos: BlockPos, state: BlockState, player: Player): BlockState? {
if (!level.isClientSide) {
spawnPokemon(level, pos, state, player as ServerPlayer)
}
return super.playerWillDestroy(level, pos, state, player)
}
override fun getShape(
state: BlockState,
level: BlockGetter,
pos: BlockPos,
context: CollisionContext
): VoxelShape {
return when (state.getValue(HorizontalDirectionalBlock.FACING)) {
Direction.WEST -> HITBOX_WEST
Direction.EAST -> HITBOX_EAST
Direction.SOUTH -> HITBOX_SOUTH
else -> HITBOX_NORTH
}
}
override fun useWithoutItem(
state: BlockState,
level: Level,
pos: BlockPos,
player: Player,
hitResult: BlockHitResult
): InteractionResult {
return if (player is ServerPlayer) {
spawnPokemon(level, pos, state, player)
} else {
InteractionResult.SUCCESS
}
}
override val levelRange = 35..60
override val pokemonArgs = "rotom"
override val spawnSound = CobblemonSounds.MONITOR_BREAK
override val offset = Vec3(0.0, 1.0, 0.0)
override fun getReplacementBlock(originalState: BlockState): BlockState = CobblemonBlocks.DAMAGED_MONITOR.defaultBlockState().setValue(
HorizontalDirectionalBlock.FACING, originalState.getValue(HorizontalDirectionalBlock.FACING))
}
@@ -0,0 +1,152 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.block.appliances
import com.cobblemon.mod.common.util.rotateShape
import com.mojang.serialization.MapCodec
import com.mojang.serialization.codecs.RecordCodecBuilder
import net.minecraft.core.BlockPos
import net.minecraft.core.Direction
import net.minecraft.server.level.ServerLevel
import net.minecraft.util.RandomSource
import net.minecraft.world.InteractionResult
import net.minecraft.world.entity.player.Player
import net.minecraft.world.item.context.BlockPlaceContext
import net.minecraft.world.level.BlockGetter
import net.minecraft.world.level.Level
import net.minecraft.world.level.LevelAccessor
import net.minecraft.world.level.block.*
import net.minecraft.world.level.block.state.BlockState
import net.minecraft.world.level.block.state.StateDefinition
import net.minecraft.world.level.block.state.properties.BlockStateProperties
import net.minecraft.world.level.block.state.properties.BlockStateProperties.HORIZONTAL_FACING
import net.minecraft.world.level.block.state.properties.BlockStateProperties.WATERLOGGED
import net.minecraft.world.level.block.state.properties.BooleanProperty
import net.minecraft.world.level.entity.EntityTypeTest
import net.minecraft.world.level.material.FluidState
import net.minecraft.world.level.material.Fluids
import net.minecraft.world.phys.AABB
import net.minecraft.world.phys.BlockHitResult
import net.minecraft.world.phys.Vec3
import net.minecraft.world.phys.shapes.CollisionContext
import net.minecraft.world.phys.shapes.Shapes
import net.minecraft.world.phys.shapes.VoxelShape
//TODO: All the Fan appliance stuff
//TODO: Able to place the Fan on Walls, models and hitbox are there (blockstate would need edits to support it)
open class CopperFanBlock(settings: Properties) : HorizontalDirectionalBlock(settings), SimpleWaterloggedBlock {
companion object {
val CODEC: MapCodec<CopperFanBlock> = RecordCodecBuilder.mapCodec {
it.group(propertiesCodec()).apply(it, ::CopperFanBlock) }
//val FACE = //TODO: Floor/Wall
val POWER = BlockStateProperties.POWER;
val PUSH = BooleanProperty.create("push")
val FLOOR_HITBOX = Shapes.or(
Shapes.box(0.0625, 0.125, 0.4375, 0.9375, 1.0, 0.5625),
Shapes.box(0.375, 0.0, 0.375, 0.625, 0.125, 0.625))
val WALL_HITBOX = Shapes.box(0.0625, 0.0625, 0.875, 0.9375, 0.9375, 1.0)
}
init {
registerDefaultState(stateDefinition.any()
.setValue(HORIZONTAL_FACING, Direction.NORTH)
.setValue(WATERLOGGED, false)
//.setValue(FACE, AttachFace.FLOOR)
.setValue(POWER, 0)
.setValue(PUSH, true) //If True, fan pushes entities, If False, fan is cosmetic only
)
}
override fun useWithoutItem(
state: BlockState,
level: Level,
pos: BlockPos,
player: Player,
hitResult: BlockHitResult
): InteractionResult {
if (!level.isClientSide) level.setBlockAndUpdate(pos, state.setValue(PUSH, !state.getValue(PUSH)))
return InteractionResult.SUCCESS
}
override fun codec(): MapCodec<CopperFanBlock> = CODEC
override fun createBlockStateDefinition(builder: StateDefinition.Builder<Block, BlockState>) {
builder.add(HORIZONTAL_FACING, WATERLOGGED, /*FACE,*/ POWER, PUSH)
}
override fun getFluidState(blockState: BlockState): FluidState? = if (blockState.getValue(WATERLOGGED)) Fluids.WATER.getSource(false) else super.getFluidState(blockState)
override fun updateShape(state: BlockState, direction: Direction, neighborState: BlockState, world: LevelAccessor, pos: BlockPos, neighborPos: BlockPos): BlockState {
if (state.getValue(WATERLOGGED)) {
world.scheduleTick(pos, Fluids.WATER, Fluids.WATER.getTickDelay(world))
}
return if (state.getValue(HORIZONTAL_FACING).opposite == direction && !state.canSurvive(world, pos)) Blocks.AIR.defaultBlockState()
else super.updateShape(state, direction, neighborState, world, pos, neighborPos)
}
override fun getCollisionShape(state: BlockState, level: BlockGetter, pos: BlockPos, context: CollisionContext): VoxelShape {
val direction = state.getValue(HORIZONTAL_FACING)
return rotateShape(Direction.NORTH, direction, FLOOR_HITBOX)
}
override fun neighborChanged(
state: BlockState,
level: Level,
pos: BlockPos,
neighborBlock: Block,
neighborPos: BlockPos,
movedByPiston: Boolean
) {
val power = level.getBestNeighborSignal(pos)
if (power != state.getValue(POWER)) {
level.setBlock(pos, state.setValue(POWER, power), UPDATE_CLIENTS)
if (power > 0) {
level.scheduleTick(pos, this, 1)
}
}
}
override fun tick(state: BlockState, level: ServerLevel, pos: BlockPos, random: RandomSource) {
val facing = state.getValue(HORIZONTAL_FACING)
val power = state.getValue(POWER)
if (power == 0) return
if (state.getValue(PUSH)) {
val area = AABB(pos.relative(facing)).expandTowards(
facing.stepX.toDouble() * (power - 1),
0.0,
facing.stepZ.toDouble() * (power - 1)
)
val entities = level.getEntities(null, area)
val pushForce = 0.05
entities.forEach { entity ->
val motion = entity.deltaMovement
entity.setDeltaMovement(
motion.x + facing.stepX * pushForce,
motion.y,
motion.z + facing.stepZ * pushForce
)
entity.hurtMarked = true
}
}
level.scheduleTick(pos, this, 1)
}
override fun getShape(state: BlockState, level: BlockGetter, pos: BlockPos, context: CollisionContext): VoxelShape {
return getCollisionShape(state, level, pos, context)
}
override fun getStateForPlacement(context: BlockPlaceContext): BlockState? {
val fluidState = context.level.getFluidState(context.clickedPos)
return super.getStateForPlacement(context)?.setValue(HORIZONTAL_FACING, context.horizontalDirection.opposite)?.setValue(WATERLOGGED, fluidState.type === Fluids.WATER)
}
}
@@ -0,0 +1,280 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.block.appliances
import com.cobblemon.mod.common.CobblemonBlockEntities
import com.cobblemon.mod.common.util.isServerSide
import com.cobblemon.mod.common.util.rotateShape
import com.mojang.serialization.MapCodec
import com.mojang.serialization.codecs.RecordCodecBuilder
import net.minecraft.core.BlockPos
import net.minecraft.core.Direction
import net.minecraft.server.level.ServerLevel
import net.minecraft.sounds.SoundEvents
import net.minecraft.sounds.SoundSource
import net.minecraft.util.RandomSource
import net.minecraft.world.InteractionHand
import net.minecraft.world.ItemInteractionResult
import net.minecraft.world.entity.LivingEntity
import net.minecraft.world.entity.item.ItemEntity
import net.minecraft.world.entity.player.Player
import net.minecraft.world.item.ItemStack
import net.minecraft.world.item.Items
import net.minecraft.world.item.context.BlockPlaceContext
import net.minecraft.world.level.BlockGetter
import net.minecraft.world.level.Level
import net.minecraft.world.level.LevelAccessor
import net.minecraft.world.level.LevelReader
import net.minecraft.world.level.block.*
import net.minecraft.world.level.block.entity.BlockEntity
import net.minecraft.world.level.block.entity.BlockEntityTicker
import net.minecraft.world.level.block.entity.BlockEntityType
import net.minecraft.world.level.block.state.BlockState
import net.minecraft.world.level.block.state.StateDefinition
import net.minecraft.world.level.block.state.properties.BlockStateProperties
import net.minecraft.world.level.block.state.properties.BlockStateProperties.HORIZONTAL_FACING
import net.minecraft.world.level.block.state.properties.BlockStateProperties.WATERLOGGED
import net.minecraft.world.level.block.state.properties.BooleanProperty
import net.minecraft.world.level.block.state.properties.DoubleBlockHalf
import net.minecraft.world.level.block.state.properties.EnumProperty
import net.minecraft.world.level.material.FluidState
import net.minecraft.world.level.material.Fluids
import net.minecraft.world.phys.BlockHitResult
import net.minecraft.world.phys.Vec3
import net.minecraft.world.phys.shapes.CollisionContext
import net.minecraft.world.phys.shapes.Shapes
import net.minecraft.world.phys.shapes.VoxelShape
//TODO: Oxidation/Waxing/Scraping not breaking the blocks
//TODO: All the Fridge appliance stuff
open class CopperFridgeBlock(settings: Properties) : BaseEntityBlock(settings), SimpleWaterloggedBlock {
fun getBlockEntity(level: ServerLevel, pos: BlockPos) = level.getBlockEntity(getBottomPos(level, pos)) as CopperFridgeBlockEntity
companion object {
val CODEC: MapCodec<CopperFridgeBlock> = RecordCodecBuilder.mapCodec {
it.group(propertiesCodec()).apply(it, ::CopperFridgeBlock) }
val HALF: EnumProperty<DoubleBlockHalf> = BlockStateProperties.DOUBLE_BLOCK_HALF
val POWERED = BooleanProperty.create("powered")
val FACING = HorizontalDirectionalBlock.FACING
val LOWER_HITBOX = Shapes.or(
Shapes.box(0.0625, 0.0, 0.125, 0.9375, 0.0625, 0.9375),
Shapes.box(0.0, 0.0625, 0.0625, 1.0, 1.0, 1.0))
val UPPER_HITBOX = Shapes.or(
Shapes.box(0.0, 0.0, 0.0625, 1.0, 1.0, 1.0),
Shapes.box(0.25, 0.125, 0.0, 0.375, 0.3125, 0.0625),
Shapes.box(0.625, 0.125, 0.0, 0.75, 0.3125, 0.0625))
val UPPER_COLLISSIONBOX = Shapes.box(0.0, 0.0, 0.0625, 1.0, 1.0, 1.0)
//The handles get ignored by entity collission, because it feels nicer, but still count as part of the hitbox
}
init {
registerDefaultState(stateDefinition.any()
.setValue(HORIZONTAL_FACING, Direction.NORTH)
.setValue(HALF, DoubleBlockHalf.LOWER)
.setValue(WATERLOGGED, false)
.setValue(POWERED, false)
)
}
override fun codec(): MapCodec<CopperFridgeBlock> = CODEC
override fun createBlockStateDefinition(builder: StateDefinition.Builder<Block, BlockState>) {
builder.add(HORIZONTAL_FACING, HALF, WATERLOGGED, POWERED)
}
override fun getFluidState(blockState: BlockState): FluidState? = if (blockState.getValue(WATERLOGGED)) Fluids.WATER.getSource(false) else super.getFluidState(blockState)
override fun updateShape(state: BlockState, direction: Direction, neighborState: BlockState, world: LevelAccessor, pos: BlockPos, neighborPos: BlockPos): BlockState {
if (state.getValue(WATERLOGGED)) {
world.scheduleTick(pos, Fluids.WATER, Fluids.WATER.getTickDelay(world))
}
val isFridge = neighborState.`is`(this)
val half = state.getValue(HALF)
if (!isFridge && half == DoubleBlockHalf.UPPER && neighborPos == pos.below()) {
return Blocks.AIR.defaultBlockState()
} else if (!isFridge && half == DoubleBlockHalf.LOWER && neighborPos == pos.above()) {
return Blocks.AIR.defaultBlockState()
}
return state
}
override fun getCollisionShape(state: BlockState, level: BlockGetter, pos: BlockPos, context: CollisionContext): VoxelShape {
val direction = state.getValue(HORIZONTAL_FACING)
return if (state.getValue(HALF) == DoubleBlockHalf.LOWER) {
rotateShape(Direction.NORTH, direction, LOWER_HITBOX)
} else {
rotateShape(Direction.NORTH, direction, UPPER_COLLISSIONBOX)
}
}
override fun getShape(state: BlockState, level: BlockGetter, pos: BlockPos, context: CollisionContext): VoxelShape {
val direction = state.getValue(HORIZONTAL_FACING)
return if (state.getValue(HALF) == DoubleBlockHalf.LOWER) {
rotateShape(Direction.NORTH, direction, LOWER_HITBOX)
} else {
rotateShape(Direction.NORTH, direction, UPPER_HITBOX)
}
}
override fun setPlacedBy(world: Level, pos: BlockPos, state: BlockState, placer: LivingEntity?, itemStack: ItemStack) {
world.setBlock(pos.above(),
state
.setValue(HALF, DoubleBlockHalf.UPPER)
.setValue(WATERLOGGED, world.getFluidState((pos.above())).type == Fluids.WATER)
, 3)
world.blockUpdated(pos, Blocks.AIR)
state.updateNeighbourShapes(world, pos, 3)
}
override fun getStateForPlacement(blockPlaceContext: BlockPlaceContext): BlockState? {
val abovePosition = blockPlaceContext.clickedPos.above()
val world = blockPlaceContext.level
if (world.getBlockState(abovePosition).canBeReplaced(blockPlaceContext) && !world.isOutsideBuildHeight(abovePosition)) {
return defaultBlockState()
.setValue(FACING, blockPlaceContext.horizontalDirection.opposite)
.setValue(HALF, DoubleBlockHalf.LOWER)
.setValue(WATERLOGGED, blockPlaceContext.level.getFluidState(blockPlaceContext.clickedPos).type == Fluids.WATER)
}
return null
}
override fun getRenderShape(state: BlockState) = RenderShape.MODEL
override fun canSurvive(state: BlockState, world: LevelReader, pos: BlockPos): Boolean {
val blockPos = pos.below()
val blockState = world.getBlockState(blockPos)
return if (state.getValue(HALF) == DoubleBlockHalf.LOWER) blockState.isFaceSturdy(world, blockPos, Direction.UP) else blockState.`is`(this)
}
override fun playerWillDestroy(world: Level, pos: BlockPos, state: BlockState, player: Player): BlockState {
if (!world.isClientSide && player.isCreative) {
var blockPos: BlockPos = BlockPos.ZERO
var blockState: BlockState = state
val half = state.getValue(HALF)
if (half == DoubleBlockHalf.UPPER && world.getBlockState(pos.below().also { blockPos = it }).also { blockState = it }.`is`(state.block) && blockState.getValue(
HALF
) == DoubleBlockHalf.LOWER) {
val blockState2 = if (blockState.fluidState.`is`(Fluids.WATER)) Blocks.WATER.defaultBlockState() else Blocks.AIR.defaultBlockState()
world.setBlock(blockPos, blockState2, UPDATE_ALL or UPDATE_SUPPRESS_DROPS)
world.levelEvent(player, LevelEvent.PARTICLES_DESTROY_BLOCK, blockPos, getId(blockState))
}
}
return super.playerWillDestroy(world, pos, state, player)
}
override fun hasAnalogOutputSignal(state: BlockState) = true
override fun useItemOn(
stack: ItemStack,
state: BlockState,
level: Level,
pos: BlockPos,
player: Player,
hand: InteractionHand,
hitResult: BlockHitResult
): ItemInteractionResult {
if (level.isServerSide()) {
val handStack = player.getItemInHand(hand)
val stack = getBlockEntity(level as ServerLevel, pos).theItem
when (stack.item) {
Items.AIR -> {
if (handStack.`is`(Items.WATER_BUCKET)) {
if (!player.isCreative) player.setItemInHand(hand, Items.BUCKET.defaultInstance)
getBlockEntity(level, pos).timer = 100
getBlockEntity(level, pos).theItem = Items.WATER_BUCKET.defaultInstance
level.playSound(null, pos, SoundEvents.BUCKET_EMPTY, SoundSource.BLOCKS, 1.0f, 1.0f)
return ItemInteractionResult.SUCCESS
} else {
return ItemInteractionResult.FAIL
}
}
Items.WATER_BUCKET -> {
if (handStack.`is`(Items.BUCKET)) {
player.setItemInHand(hand, Items.WATER_BUCKET.defaultInstance)
getBlockEntity(level, pos).theItem = Items.AIR.defaultInstance
getBlockEntity(level, pos).timer = 0
level.playSound(null, pos, SoundEvents.BUCKET_FILL, SoundSource.BLOCKS, 1.0f, 1.0f)
return ItemInteractionResult.SUCCESS
} else {
return ItemInteractionResult.FAIL
}
}
Items.ICE -> {
val facing = state.getValue(HORIZONTAL_FACING)
val spawnPos = getBottomPos(level, pos)
val itemEntity =
ItemEntity(level, spawnPos.x + 0.5, spawnPos.y + 0.5, spawnPos.z + 0.5, Items.ICE.defaultInstance)
itemEntity.deltaMovement = Vec3(facing.stepX.toDouble(), 0.0, facing.stepZ.toDouble()).scale(0.2)
level.addFreshEntity(itemEntity)
getBlockEntity(level, pos).theItem = Items.AIR.defaultInstance
return ItemInteractionResult.SUCCESS
}
}
}
return ItemInteractionResult.SUCCESS
}
override fun getAnalogOutputSignal(state: BlockState, level: Level, pos: BlockPos): Int {
return when ((level.getBlockEntity(pos) as CopperFridgeBlockEntity).theItem.item) {
Items.WATER_BUCKET -> 1
Items.ICE -> 2
else -> 0
}
}
override fun tick(state: BlockState, level: ServerLevel, pos: BlockPos, random: RandomSource) {
(level.getBlockEntity(pos) as CopperFridgeBlockEntity).processTick()
super.tick(state, level, pos, random)
}
override fun newBlockEntity(pos: BlockPos, state: BlockState) = if (state.getValue(HALF) == DoubleBlockHalf.LOWER) CopperFridgeBlockEntity(pos, state) else null
override fun neighborChanged(
state: BlockState,
level: Level,
pos: BlockPos,
neighborBlock: Block,
neighborPos: BlockPos,
movedByPiston: Boolean
) {
if (!level.isClientSide) {
val otherPos = if (state.getValue(HALF) == DoubleBlockHalf.LOWER) pos.above() else pos.below()
val powered = level.hasNeighborSignal(pos) || level.hasNeighborSignal(otherPos)
if (state.getValue(POWERED) != powered) {
level.setBlock(pos, state.setValue(POWERED, powered), 3)
}
val otherState = level.getBlockState(otherPos)
if (otherState.`is`(this) && otherState.getValue(POWERED) != powered) {
level.setBlock(otherPos, otherState.setValue(POWERED, powered), 3)
}
}
super.neighborChanged(state, level, pos, neighborBlock, neighborPos, movedByPiston)
}
override fun <T : BlockEntity> getTicker(
level: Level,
state: BlockState,
blockEntityType: BlockEntityType<T>
): BlockEntityTicker<T>? {
return if (level.isClientSide)
null
else
createTickerHelper(blockEntityType, CobblemonBlockEntities.COPPER_FRIDGE, CopperFridgeBlockEntity.TICKER::tick)
}
fun getBottomPos(level: Level, pos: BlockPos) = if (level.getBlockState(pos).getValue(HALF) == DoubleBlockHalf.UPPER) pos.below() else pos
}
@@ -0,0 +1,48 @@
package com.cobblemon.mod.common.block.appliances
import com.cobblemon.mod.common.CobblemonBlockEntities
import net.minecraft.core.BlockPos
import net.minecraft.world.Container
import net.minecraft.world.item.ItemStack
import net.minecraft.world.item.Items
import net.minecraft.world.level.block.entity.BlockEntity
import net.minecraft.world.level.block.entity.BlockEntityTicker
import net.minecraft.world.level.block.state.BlockState
import net.minecraft.world.ticks.ContainerSingleItem
class CopperFridgeBlockEntity(val pos: BlockPos, val state: BlockState) : BlockEntity(
CobblemonBlockEntities.COPPER_FRIDGE, pos, state
), ContainerSingleItem.BlockContainerSingleItem {
private var item: ItemStack = Items.AIR.defaultInstance
var timer: Int = -1
fun processTick() {
if (level == null) return
if (!level!!.getBlockState(pos).getValue(CopperFridgeBlock.POWERED)) return
if (timer > 0) timer--
if (timer == 0 && item.item == Items.WATER_BUCKET) {
item = Items.ICE.defaultInstance
timer = -1
}
}
override fun getContainerBlockEntity() = this
override fun getTheItem() = item
override fun setTheItem(item: ItemStack) {
this.item = item
}
override fun canTakeItem(target: Container, slot: Int, stack: ItemStack): Boolean {
return stack.item == Items.ICE
}
companion object {
internal val TICKER = BlockEntityTicker<CopperFridgeBlockEntity> { level, pos, state, entity ->
if (!level.isClientSide) {
entity.processTick()
}
}
}
}
@@ -0,0 +1,165 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.block.appliances
import com.cobblemon.mod.common.util.cobblemonResource
import com.cobblemon.mod.common.util.rotateShape
import com.mojang.serialization.MapCodec
import com.mojang.serialization.codecs.RecordCodecBuilder
import net.minecraft.core.BlockPos
import net.minecraft.core.Direction
import net.minecraft.core.registries.BuiltInRegistries
import net.minecraft.core.registries.Registries
import net.minecraft.resources.ResourceKey
import net.minecraft.server.level.ServerLevel
import net.minecraft.util.RandomSource
import net.minecraft.world.entity.item.ItemEntity
import net.minecraft.world.item.BlockItem
import net.minecraft.world.item.ItemStack
import net.minecraft.world.item.Items
import net.minecraft.world.item.context.BlockPlaceContext
import net.minecraft.world.level.BlockGetter
import net.minecraft.world.level.Level
import net.minecraft.world.level.LevelAccessor
import net.minecraft.world.level.block.*
import net.minecraft.world.level.block.entity.BlockEntity
import net.minecraft.world.level.block.state.BlockState
import net.minecraft.world.level.block.state.StateDefinition
import net.minecraft.world.level.block.state.properties.BlockStateProperties.HORIZONTAL_FACING
import net.minecraft.world.level.block.state.properties.BlockStateProperties.WATERLOGGED
import net.minecraft.world.level.block.state.properties.BooleanProperty
import net.minecraft.world.level.material.FluidState
import net.minecraft.world.level.material.Fluids
import net.minecraft.world.level.storage.loot.LootParams
import net.minecraft.world.level.storage.loot.LootTable
import net.minecraft.world.level.storage.loot.parameters.LootContextParam
import net.minecraft.world.level.storage.loot.parameters.LootContextParamSets
import net.minecraft.world.level.storage.loot.parameters.LootContextParams
import net.minecraft.world.phys.Vec3
import net.minecraft.world.phys.shapes.CollisionContext
import net.minecraft.world.phys.shapes.Shapes
import net.minecraft.world.phys.shapes.VoxelShape
//TODO: All the Mower appliance stuff
open class CopperMowerBlock(settings: Properties) : HorizontalDirectionalBlock(settings), SimpleWaterloggedBlock {
companion object {
val CODEC: MapCodec<CopperMowerBlock> = RecordCodecBuilder.mapCodec {
it.group(propertiesCodec()).apply(it, ::CopperMowerBlock) }
val TRIGGERED = BooleanProperty.create("triggered")
val COLLISIONBOX = Shapes.or(
Shapes.box(0.1875, 0.0, 0.0, 0.8125, 0.375, 0.625),
Shapes.box(0.0625, 0.0, 0.625, 0.9375, 0.625, 1.0),
Shapes.box(0.125, 0.0, 0.1875, 0.875, 0.3125, 0.5),
//The next three lines are just so the handle does have collision, it feels awkward without it but it looks bad as hitbox
Shapes.box(0.375, 0.375, 0.375, 0.625, 0.625, 0.5625),
Shapes.box(0.4375, 0.5625, 0.5, 0.5625, 0.875, 0.625),
Shapes.box(0.25, 0.875, 0.5625, 0.75, 1.0, 0.6875)
)
val HITBOX = Shapes.or(
Shapes.box(0.1875, 0.0, 0.0, 0.8125, 0.375, 0.625),
Shapes.box(0.0625, 0.0, 0.625, 0.9375, 0.625, 1.0),
Shapes.box(0.125, 0.0, 0.1875, 0.875, 0.3125, 0.5)
)
}
init {
registerDefaultState(stateDefinition.any()
.setValue(HORIZONTAL_FACING, Direction.NORTH)
.setValue(WATERLOGGED, false)
.setValue(TRIGGERED, false)
)
}
override fun neighborChanged(
state: BlockState,
level: Level,
pos: BlockPos,
sourceBlock: Block,
sourcePos: BlockPos,
notify: Boolean
) {
val powered = level.hasNeighborSignal(pos) || level.hasNeighborSignal(pos.above())
val triggered = state.getValue(TRIGGERED)
if (powered && !triggered) {
level.setBlock(pos, state.setValue(TRIGGERED, true), UPDATE_CLIENTS)
level.scheduleTick(pos, this, 1)
} else if (!powered && triggered) {
level.setBlock(pos, state.setValue(TRIGGERED, false), UPDATE_CLIENTS)
}
}
override fun hasAnalogOutputSignal(state: BlockState) = true
override fun tick(state: BlockState, level: ServerLevel, pos: BlockPos, random: RandomSource) {
val blockKey = BuiltInRegistries.BLOCK.getKey(level.getBlockState(pos.below()).block)
val tableKey = ResourceKey.create(Registries.LOOT_TABLE, cobblemonResource("mower/${blockKey.path}"))
val lootTable = level.server.reloadableRegistries().getLootTable(tableKey)
if (lootTable == LootTable.EMPTY) return
val params = LootParams.Builder(level)
.withParameter(LootContextParams.ORIGIN, Vec3.atCenterOf(pos.below()))
.withParameter(LootContextParams.BLOCK_STATE, level.getBlockState(pos.below()))
.withParameter(LootContextParams.TOOL, ItemStack.EMPTY)
.create(LootContextParamSets.BLOCK)
val result = lootTable.getRandomItems(params, random)
val block = result.getOrNull(0)?.item as? BlockItem
val item = result.getOrNull(1)
if (block == null || block == Blocks.AIR) {
level.destroyBlock(pos.below(), false)
} else {
level.setBlockAndUpdate(pos.below(), block.block.defaultBlockState())
}
item?.let {
val facing = state.getValue(HORIZONTAL_FACING).opposite
val itemEntity =
ItemEntity(level,
pos.x + 0.5, pos.y + 0.5, pos.z + 0.5,
it
)
itemEntity.deltaMovement = Vec3(facing.stepX.toDouble(), 0.0, facing.stepZ.toDouble()).scale(0.2)
level.addFreshEntity(itemEntity)
}
}
override fun getRenderShape(state: BlockState) = RenderShape.MODEL
override fun codec(): MapCodec<CopperMowerBlock> = CODEC
override fun createBlockStateDefinition(builder: StateDefinition.Builder<Block, BlockState>) {
builder.add(HORIZONTAL_FACING, WATERLOGGED, TRIGGERED)
}
override fun getFluidState(blockState: BlockState): FluidState? = if (blockState.getValue(WATERLOGGED)) Fluids.WATER.getSource(false) else super.getFluidState(blockState)
override fun updateShape(state: BlockState, direction: Direction, neighborState: BlockState, world: LevelAccessor, pos: BlockPos, neighborPos: BlockPos): BlockState {
if (state.getValue(WATERLOGGED)) {
world.scheduleTick(pos, Fluids.WATER, Fluids.WATER.getTickDelay(world))
}
return if (state.getValue(HORIZONTAL_FACING).opposite == direction && !state.canSurvive(world, pos)) Blocks.AIR.defaultBlockState()
else super.updateShape(state, direction, neighborState, world, pos, neighborPos)
}
override fun getCollisionShape(state: BlockState, level: BlockGetter, pos: BlockPos, context: CollisionContext): VoxelShape {
val direction = state.getValue(HORIZONTAL_FACING)
return rotateShape(Direction.NORTH, direction, COLLISIONBOX)
}
override fun getShape(state: BlockState, level: BlockGetter, pos: BlockPos, context: CollisionContext): VoxelShape {
val direction = state.getValue(HORIZONTAL_FACING)
return rotateShape(Direction.NORTH, direction, HITBOX)
}
override fun getStateForPlacement(context: BlockPlaceContext): BlockState? {
val fluidState = context.level.getFluidState(context.clickedPos)
return super.getStateForPlacement(context)?.setValue(HORIZONTAL_FACING, context.horizontalDirection.opposite)?.setValue(WATERLOGGED, fluidState.type === Fluids.WATER)
}
}
@@ -0,0 +1,12 @@
package com.cobblemon.mod.common.block.appliances
import com.cobblemon.mod.common.CobblemonBlockEntities
import net.minecraft.core.BlockPos
import net.minecraft.world.level.block.entity.BlockEntity
import net.minecraft.world.level.block.state.BlockState
class CopperMowerBlockEntity(val pos: BlockPos, val state: BlockState) : BlockEntity(
CobblemonBlockEntities.COPPER_MOWER,
pos, state
) {
}
@@ -0,0 +1,88 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.block.appliances
import com.cobblemon.mod.common.util.rotateShape
import com.mojang.serialization.MapCodec
import com.mojang.serialization.codecs.RecordCodecBuilder
import net.minecraft.core.BlockPos
import net.minecraft.core.Direction
import net.minecraft.util.StringRepresentable
import net.minecraft.world.item.context.BlockPlaceContext
import net.minecraft.world.level.BlockGetter
import net.minecraft.world.level.LevelAccessor
import net.minecraft.world.level.block.*
import net.minecraft.world.level.block.state.BlockState
import net.minecraft.world.level.block.state.StateDefinition
import net.minecraft.world.level.block.state.properties.BlockStateProperties.HORIZONTAL_FACING
import net.minecraft.world.level.block.state.properties.BlockStateProperties.WATERLOGGED
import net.minecraft.world.level.block.state.properties.BooleanProperty
import net.minecraft.world.level.block.state.properties.EnumProperty
import net.minecraft.world.level.material.FluidState
import net.minecraft.world.level.material.Fluids
import net.minecraft.world.phys.shapes.CollisionContext
import net.minecraft.world.phys.shapes.Shapes
import net.minecraft.world.phys.shapes.VoxelShape
//TODO: All the Oven appliance stuff - Good Luck Coders
open class CopperOvenBlock(settings: Properties) : HorizontalDirectionalBlock(settings), SimpleWaterloggedBlock {
companion object {
val CODEC: MapCodec<CopperOvenBlock> = RecordCodecBuilder.mapCodec {
it.group(propertiesCodec()).apply(it, ::CopperOvenBlock) }
val EJECTING = BooleanProperty.create("ejecting")
val COOKING = EnumProperty.create("cooking", CookingState::class.java)
val HITBOX = Shapes.box(0.0625, 0.0, 0.3125, 0.9375, 0.625, 0.9375)
}
init {
registerDefaultState(stateDefinition.any()
.setValue(HORIZONTAL_FACING, Direction.NORTH)
.setValue(WATERLOGGED, false)
.setValue(COOKING, CookingState.CLOSED)
.setValue(EJECTING, false)
)
}
enum class CookingState : StringRepresentable {
CLOSED, //Door is closed
OPEN, //Door is open
COOKING; //Door is locked closed and the light level is cranked up, as long as the block is powered by redstone. Acts as closed lid in the original Campfire Pot
override fun getSerializedName(): String = this.name.lowercase()
}
override fun codec(): MapCodec<CopperOvenBlock> = CODEC
override fun createBlockStateDefinition(builder: StateDefinition.Builder<Block, BlockState>) {
builder.add(HORIZONTAL_FACING, WATERLOGGED, COOKING, EJECTING)
}
override fun getFluidState(blockState: BlockState): FluidState? = if (blockState.getValue(WATERLOGGED)) Fluids.WATER.getSource(false) else super.getFluidState(blockState)
override fun updateShape(state: BlockState, direction: Direction, neighborState: BlockState, world: LevelAccessor, pos: BlockPos, neighborPos: BlockPos): BlockState {
if (state.getValue(WATERLOGGED)) {
world.scheduleTick(pos, Fluids.WATER, Fluids.WATER.getTickDelay(world))
}
return if (state.getValue(HORIZONTAL_FACING).opposite == direction && !state.canSurvive(world, pos)) Blocks.AIR.defaultBlockState()
else super.updateShape(state, direction, neighborState, world, pos, neighborPos)
}
override fun getCollisionShape(state: BlockState, level: BlockGetter, pos: BlockPos, context: CollisionContext): VoxelShape {
val direction = state.getValue(HORIZONTAL_FACING)
return rotateShape(Direction.NORTH, direction, HITBOX)
}
override fun getShape(state: BlockState, level: BlockGetter, pos: BlockPos, context: CollisionContext): VoxelShape {
return getCollisionShape(state, level, pos, context).singleEncompassing()
}
override fun getStateForPlacement(context: BlockPlaceContext): BlockState? {
val fluidState = context.level.getFluidState(context.clickedPos)
return super.getStateForPlacement(context)?.setValue(HORIZONTAL_FACING, context.horizontalDirection.opposite)?.setValue(WATERLOGGED, fluidState.type === Fluids.WATER)
}
}
@@ -0,0 +1,130 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.block.appliances
import com.cobblemon.mod.common.util.isServerSide
import com.cobblemon.mod.common.util.rotateShape
import com.mojang.serialization.MapCodec
import com.mojang.serialization.codecs.RecordCodecBuilder
import net.minecraft.core.BlockPos
import net.minecraft.core.Direction
import net.minecraft.world.InteractionHand
import net.minecraft.world.ItemInteractionResult
import net.minecraft.world.entity.item.ItemEntity
import net.minecraft.world.entity.player.Player
import net.minecraft.world.item.ItemStack
import net.minecraft.world.item.Items
import net.minecraft.world.item.context.BlockPlaceContext
import net.minecraft.world.level.BlockGetter
import net.minecraft.world.level.Level
import net.minecraft.world.level.LevelAccessor
import net.minecraft.world.level.block.*
import net.minecraft.world.level.block.entity.BlockEntity
import net.minecraft.world.level.block.state.BlockState
import net.minecraft.world.level.block.state.StateDefinition
import net.minecraft.world.level.block.state.properties.BlockStateProperties.HORIZONTAL_FACING
import net.minecraft.world.level.block.state.properties.BlockStateProperties.WATERLOGGED
import net.minecraft.world.level.block.state.properties.BooleanProperty
import net.minecraft.world.level.material.FluidState
import net.minecraft.world.level.material.Fluids
import net.minecraft.world.phys.BlockHitResult
import net.minecraft.world.phys.Vec3
import net.minecraft.world.phys.shapes.CollisionContext
import net.minecraft.world.phys.shapes.Shapes
import net.minecraft.world.phys.shapes.VoxelShape
open class CopperWasherBlock(settings: Properties) : BaseEntityBlock(settings), SimpleWaterloggedBlock {
companion object {
val CODEC: MapCodec<CopperWasherBlock> = RecordCodecBuilder.mapCodec {
it.group(propertiesCodec()).apply(it, ::CopperWasherBlock) }
val POWERED = BooleanProperty.create("powered")
val HITBOX = Shapes.box(0.0625, 0.0, 0.125, 0.9375, 1.0, 1.0)
}
init {
registerDefaultState(stateDefinition.any()
.setValue(HORIZONTAL_FACING, Direction.NORTH)
.setValue(WATERLOGGED, false)
.setValue(POWERED, false)
)
}
override fun codec(): MapCodec<CopperWasherBlock> = CODEC
override fun createBlockStateDefinition(builder: StateDefinition.Builder<Block, BlockState>) {
builder.add(HORIZONTAL_FACING, WATERLOGGED, POWERED)
}
override fun getFluidState(blockState: BlockState): FluidState? = if (blockState.getValue(WATERLOGGED)) Fluids.WATER.getSource(false) else super.getFluidState(blockState)
override fun updateShape(state: BlockState, direction: Direction, neighborState: BlockState, world: LevelAccessor, pos: BlockPos, neighborPos: BlockPos): BlockState {
if (state.getValue(WATERLOGGED)) {
world.scheduleTick(pos, Fluids.WATER, Fluids.WATER.getTickDelay(world))
}
return if (state.getValue(HORIZONTAL_FACING).opposite == direction && !state.canSurvive(world, pos)) Blocks.AIR.defaultBlockState()
else super.updateShape(state, direction, neighborState, world, pos, neighborPos)
}
override fun getCollisionShape(state: BlockState, level: BlockGetter, pos: BlockPos, context: CollisionContext): VoxelShape {
val direction = state.getValue(HORIZONTAL_FACING)
return rotateShape(Direction.NORTH, direction, HITBOX)
}
override fun getShape(state: BlockState, level: BlockGetter, pos: BlockPos, context: CollisionContext): VoxelShape {
return getCollisionShape(state, level, pos, context).singleEncompassing()
}
override fun getStateForPlacement(context: BlockPlaceContext): BlockState? {
val fluidState = context.level.getFluidState(context.clickedPos)
return super.getStateForPlacement(context)?.setValue(HORIZONTAL_FACING, context.horizontalDirection.opposite)?.setValue(WATERLOGGED, fluidState.type === Fluids.WATER)
}
override fun newBlockEntity(pos: BlockPos, state: BlockState) = CopperWasherBlockEntity(pos, state)
override fun getRenderShape(state: BlockState) = RenderShape.MODEL
override fun hasAnalogOutputSignal(state: BlockState) = true
override fun getAnalogOutputSignal(state: BlockState, level: Level, pos: BlockPos): Int {
return if ((level.getBlockEntity(pos) as CopperWasherBlockEntity).theItem != ItemStack.EMPTY) 1 else 0
}
override fun useItemOn(
stack: ItemStack,
state: BlockState,
level: Level,
pos: BlockPos,
player: Player,
hand: InteractionHand,
hitResult: BlockHitResult
): ItemInteractionResult {
val entity = level.getBlockEntity(pos) as CopperWasherBlockEntity
val item = entity.theItem
if (item == ItemStack.EMPTY) {
if (level.isServerSide()) {
entity.theItem = stack.copyWithCount(1)
if (!player.isCreative) stack.shrink(1)
entity.craft()
}
return ItemInteractionResult.SUCCESS
} else {
if (level.isServerSide()) {
val facing = state.getValue(HORIZONTAL_FACING)
val itemEntity =
ItemEntity(level, pos.x + 0.5, pos.y + 0.5, pos.z + 0.5, entity.theItem)
itemEntity.deltaMovement = Vec3(facing.stepX.toDouble(), 0.0, facing.stepZ.toDouble()).scale(0.2)
level.addFreshEntity(itemEntity)
entity.theItem = ItemStack.EMPTY
}
return ItemInteractionResult.SUCCESS
}
}
}
@@ -0,0 +1,36 @@
package com.cobblemon.mod.common.block.appliances
import com.cobblemon.mod.common.CobblemonBlockEntities
import com.cobblemon.mod.common.CobblemonRecipeTypes
import com.cobblemon.mod.common.item.crafting.washer.WasherInput
import net.minecraft.core.BlockPos
import net.minecraft.world.item.ItemStack
import net.minecraft.world.level.block.entity.BlockEntity
import net.minecraft.world.level.block.state.BlockState
import net.minecraft.world.ticks.ContainerSingleItem
class CopperWasherBlockEntity(val pos: BlockPos, val state: BlockState): BlockEntity(
CobblemonBlockEntities.COPPER_WASHER,
pos, state
), ContainerSingleItem.BlockContainerSingleItem {
private var item: ItemStack = ItemStack.EMPTY
override fun getContainerBlockEntity() = this
override fun getTheItem() = item
override fun setTheItem(item: ItemStack) { this.item = item }
fun craft() {
val level = level ?: return
if (level.isClientSide || theItem.isEmpty) return
val input = WasherInput(theItem.copyWithCount(1))
val recipe = level.recipeManager
.getRecipeFor(CobblemonRecipeTypes.WASHER, input, level)
.orElse(null) ?: return
theItem = recipe.value().assemble(input, level.registryAccess())
setChanged()
level.sendBlockUpdated(worldPosition, blockState, blockState, 3)
}
}
@@ -0,0 +1,31 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.block.appliances
import net.minecraft.core.BlockPos
import net.minecraft.server.level.ServerLevel
import net.minecraft.util.RandomSource
import net.minecraft.world.level.block.WeatheringCopper
import net.minecraft.world.level.block.state.BlockState
class WeatheringCopperFanBlock(val weatherState: WeatheringCopper.WeatherState, properties: Properties) :
CopperFanBlock(properties), WeatheringCopper {
override fun randomTick(state: BlockState?, level: ServerLevel?, pos: BlockPos?, random: RandomSource?) {
this.changeOverTime(state, level, pos, random)
}
override fun isRandomlyTicking(state: BlockState): Boolean {
return WeatheringCopper.getNext(state.getBlock()).isPresent()
}
override fun getAge(): WeatheringCopper.WeatherState {
return this.weatherState
}
}
@@ -0,0 +1,58 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.block.appliances
import net.minecraft.core.BlockPos
import net.minecraft.server.level.ServerLevel
import net.minecraft.util.RandomSource
import net.minecraft.world.level.block.Block
import net.minecraft.world.level.block.WeatheringCopper
import net.minecraft.world.level.block.state.BlockState
import net.minecraft.world.level.block.state.properties.BlockStateProperties
import net.minecraft.world.level.block.state.properties.DoubleBlockHalf
class WeatheringCopperFridgeBlock(val weatherState: WeatheringCopper.WeatherState, properties: Properties) :
CopperFridgeBlock(properties), WeatheringCopper {
override fun randomTick(state: BlockState, level: ServerLevel, pos: BlockPos, random: RandomSource) {
if (state.getValue(HALF) == DoubleBlockHalf.LOWER) {
this.changeOverTime(state, level, pos, random)
}
}
override fun changeOverTime(state: BlockState, level: ServerLevel, pos: BlockPos, random: RandomSource) {
val upperPos = pos.above()
val upperState = level.getBlockState(upperPos)
if (upperState.block != this || upperState.getValue(HALF) != DoubleBlockHalf.UPPER) {
return
}
if (random.nextFloat() < 0.05688889F) {
getNextState(state, level, pos, random).ifPresent { nextState ->
val nextLowerState = nextState.setValue(HALF, DoubleBlockHalf.LOWER)
val nextUpperState = nextState
.setValue(HALF, DoubleBlockHalf.UPPER)
.setValue(FACING, upperState.getValue(FACING))
.setValue(BlockStateProperties.WATERLOGGED, upperState.getValue(BlockStateProperties.WATERLOGGED))
.setValue(POWERED, upperState.getValue(POWERED))
level.setBlock(pos, nextLowerState, UPDATE_CLIENTS)
level.setBlock(upperPos, nextUpperState, UPDATE_ALL)
}
}
}
override fun isRandomlyTicking(state: BlockState): Boolean {
return WeatheringCopper.getNext(state.block).isPresent
}
override fun getAge(): WeatheringCopper.WeatherState {
return this.weatherState
}
}
@@ -0,0 +1,31 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.block.appliances
import net.minecraft.core.BlockPos
import net.minecraft.server.level.ServerLevel
import net.minecraft.util.RandomSource
import net.minecraft.world.level.block.WeatheringCopper
import net.minecraft.world.level.block.state.BlockState
class WeatheringCopperMowerBlock(val weatherState: WeatheringCopper.WeatherState, properties: Properties) :
CopperMowerBlock(properties), WeatheringCopper {
override fun randomTick(state: BlockState?, level: ServerLevel?, pos: BlockPos?, random: RandomSource?) {
this.changeOverTime(state, level, pos, random)
}
override fun isRandomlyTicking(state: BlockState): Boolean {
return WeatheringCopper.getNext(state.getBlock()).isPresent()
}
override fun getAge(): WeatheringCopper.WeatherState {
return this.weatherState
}
}
@@ -0,0 +1,31 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.block.appliances
import net.minecraft.core.BlockPos
import net.minecraft.server.level.ServerLevel
import net.minecraft.util.RandomSource
import net.minecraft.world.level.block.WeatheringCopper
import net.minecraft.world.level.block.state.BlockState
class WeatheringCopperOvenBlock(val weatherState: WeatheringCopper.WeatherState, properties: Properties) :
CopperOvenBlock(properties), WeatheringCopper {
override fun randomTick(state: BlockState?, level: ServerLevel?, pos: BlockPos?, random: RandomSource?) {
this.changeOverTime(state, level, pos, random)
}
override fun isRandomlyTicking(state: BlockState): Boolean {
return WeatheringCopper.getNext(state.getBlock()).isPresent()
}
override fun getAge(): WeatheringCopper.WeatherState {
return this.weatherState
}
}
@@ -0,0 +1,31 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.block.appliances
import net.minecraft.core.BlockPos
import net.minecraft.server.level.ServerLevel
import net.minecraft.util.RandomSource
import net.minecraft.world.level.block.WeatheringCopper
import net.minecraft.world.level.block.state.BlockState
class WeatheringCopperWasherBlock(val weatherState: WeatheringCopper.WeatherState, properties: Properties) :
CopperWasherBlock(properties), WeatheringCopper {
override fun randomTick(state: BlockState?, level: ServerLevel?, pos: BlockPos?, random: RandomSource?) {
this.changeOverTime(state, level, pos, random)
}
override fun isRandomlyTicking(state: BlockState): Boolean {
return WeatheringCopper.getNext(state.getBlock()).isPresent()
}
override fun getAge(): WeatheringCopper.WeatherState {
return this.weatherState
}
}
@@ -11,9 +11,11 @@ package com.cobblemon.mod.common.block.chest
import com.cobblemon.mod.common.CobblemonSounds
import com.cobblemon.mod.common.api.pokemon.PokemonProperties
import com.cobblemon.mod.common.api.scheduling.afterOnServer
import com.cobblemon.mod.common.block.PokemonDisguiseBlock
import com.cobblemon.mod.common.block.entity.GildedChestBlockEntity
import com.cobblemon.mod.common.entity.pokemon.PokemonEntity
import com.cobblemon.mod.common.util.cobblemonResource
import com.cobblemon.mod.common.util.math.FloatRange
import com.cobblemon.mod.common.util.party
import com.cobblemon.mod.common.util.toVec3d
import com.mojang.serialization.MapCodec
@@ -25,6 +27,7 @@ import net.minecraft.network.chat.MutableComponent
import net.minecraft.resources.ResourceLocation
import net.minecraft.server.level.ServerLevel
import net.minecraft.server.level.ServerPlayer
import net.minecraft.sounds.SoundEvent
import net.minecraft.sounds.SoundSource
import net.minecraft.util.RandomSource
import net.minecraft.util.StringRepresentable
@@ -54,7 +57,7 @@ import net.minecraft.world.phys.shapes.VoxelShape
@Suppress("OVERRIDE_DEPRECATION")
class GildedChestBlock(settings: Properties, val type: Type = Type.RED) : BaseEntityBlock(settings),
SimpleWaterloggedBlock {
SimpleWaterloggedBlock, PokemonDisguiseBlock {
init {
registerDefaultState(stateDefinition.any()
@@ -70,9 +73,6 @@ class GildedChestBlock(settings: Properties, val type: Type = Type.RED) : BaseEn
).apply(it, ::GildedChestBlock)
}
val POKEMON_ARGS = "gimmighoul"
val LEVEL_RANGE = 5..30
val SOUTH_OUTLINE = Shapes.or(
Shapes.box(0.0, 0.0, 0.25, 1.0, 1.0, 0.9375)
)
@@ -127,13 +127,6 @@ class GildedChestBlock(settings: Properties, val type: Type = Type.RED) : BaseEn
builder.add(WATERLOGGED)
}
private val facingToYaw: HashMap<Direction, Float> = hashMapOf(
Direction.NORTH to -179.0F,
Direction.WEST to 90.0F,
Direction.SOUTH to 0.0F,
Direction.EAST to -90.0F
)
override fun getName(): MutableComponent {
return if (isFake()) Component.translatable("block.cobblemon.gilded_chest") else super.getName()
}
@@ -149,35 +142,6 @@ class GildedChestBlock(settings: Properties, val type: Type = Type.RED) : BaseEn
return super.playerWillDestroy(world, pos, state, player)
}
private fun spawnPokemon(world: Level, pos: BlockPos, state: BlockState, player: ServerPlayer): InteractionResult {
val properties = "$POKEMON_ARGS lvl=${LEVEL_RANGE.random()}"
val pokemon = PokemonProperties.parse(properties)
val entity = pokemon.createEntity(world)
// The yaw based on the block's facing direction
val yaw = facingToYaw[state.getValue(HorizontalDirectionalBlock.FACING)] ?: 0.0F
entity.entityData.set(PokemonEntity.SPAWN_DIRECTION, yaw)
val offsetDir = state.getValue(HorizontalDirectionalBlock.FACING)
val vec = pos.toVec3d().add(offsetDir.stepX * 0.1 + 0.5, 0.0, offsetDir.stepZ * 0.1 + 0.5)
entity.moveTo(vec.x, vec.y, vec.z, yaw, entity.xRot)
world.addFreshEntity(entity)
world.removeBlock(pos, false)
afterOnServer(seconds = 0.1F) {
if (player !in player.level().players()) {
return@afterOnServer
}
val party = player.party()
if (!player.isCreative) {
entity.forceBattle(player)
} else {
world.playSound(null, pos, CobblemonSounds.GIMMIGHOUL_REVEAL, SoundSource.NEUTRAL)
}
}
return InteractionResult.SUCCESS
}
override fun useWithoutItem(
state: BlockState,
world: Level,
@@ -290,4 +254,9 @@ class GildedChestBlock(settings: Properties, val type: Type = Type.RED) : BaseEn
blockEntity.tick()
}
override val levelRange = 5..30
override val pokemonArgs = "gimmighoul"
override val spawnSound = CobblemonSounds.GIMMIGHOUL_REVEAL
override val scaleRange = FloatRange(1f, 1f)
}
@@ -391,7 +391,7 @@ object CobblemonClient {
CobblemonBlocks.X_SP_ATK,
CobblemonBlocks.X_SP_DEF,
CobblemonBlocks.X_SPEED,
CobblemonBlocks.TM_MACHINE,
CobblemonBlocks.TM_MACHINE,
CobblemonBlocks.GALARICA_CUFF,
CobblemonBlocks.GALARICA_WREATH,
@@ -419,7 +419,7 @@ object CobblemonClient {
CobblemonBlocks.MOOMOO_MILK,
CobblemonBlocks.MEDICINAL_BREW,
CobblemonBlocks.TERRAIN_EXTENDER,
CobblemonBlocks.RED_MINT_LEAF_LITTER,
CobblemonBlocks.POTTED_RED_MINT,
CobblemonBlocks.BLUE_MINT_LEAF_LITTER,
@@ -516,7 +516,17 @@ object CobblemonClient {
CobblemonBlocks.POTTED_WATMEL_BERRY,
CobblemonBlocks.POTTED_WEPEAR_BERRY,
CobblemonBlocks.POTTED_WIKI_BERRY,
CobblemonBlocks.POTTED_YACHE_BERRY
CobblemonBlocks.POTTED_YACHE_BERRY,
CobblemonBlocks.SCOPE_LENS,
CobblemonBlocks.COPPER_FAN,
CobblemonBlocks.EXPOSED_COPPER_FAN,
CobblemonBlocks.WEATHERED_COPPER_FAN,
CobblemonBlocks.OXIDIZED_COPPER_FAN,
CobblemonBlocks.WAXED_COPPER_FAN,
CobblemonBlocks.WAXED_EXPOSED_COPPER_FAN,
CobblemonBlocks.WAXED_WEATHERED_COPPER_FAN,
CobblemonBlocks.WAXED_OXIDIZED_COPPER_FAN
)
this.createBoatModelLayers()
@@ -0,0 +1,16 @@
package com.cobblemon.mod.common.item.crafting.washer
import net.minecraft.world.item.ItemStack
import net.minecraft.world.item.crafting.Ingredient
import net.minecraft.world.item.crafting.RecipeInput
class WasherInput(
val item: ItemStack = ItemStack.EMPTY
) : RecipeInput {
override fun getItem(index: Int): ItemStack? {
return if (index == 0) item else null
}
override fun size() = 1
}
@@ -0,0 +1,79 @@
package com.cobblemon.mod.common.item.crafting.washer
import com.cobblemon.mod.common.CobblemonRecipeSerializers
import com.cobblemon.mod.common.CobblemonRecipeTypes
import com.mojang.serialization.Codec
import com.mojang.serialization.MapCodec
import com.mojang.serialization.codecs.RecordCodecBuilder
import net.minecraft.core.component.DataComponents
import net.minecraft.core.HolderLookup
import net.minecraft.network.RegistryFriendlyByteBuf
import net.minecraft.network.codec.StreamCodec
import net.minecraft.world.item.ItemStack
import net.minecraft.world.item.crafting.Ingredient
import net.minecraft.world.item.crafting.Recipe
import net.minecraft.world.item.crafting.RecipeSerializer
import net.minecraft.world.level.Level
class WasherRecipe(
val input: Ingredient,
val result: ItemStack,
val preserveInputComponents: Boolean = false,
val removeDyedColor: Boolean = false
) : Recipe<WasherInput> {
override fun getType() = CobblemonRecipeTypes.WASHER
override fun canCraftInDimensions(width: Int, height: Int) = true
override fun assemble(input: WasherInput, registries: HolderLookup.Provider): ItemStack {
val output = if (preserveInputComponents) {
input.item.transmuteCopy(result.item, result.count)
} else {
result.copy()
}
if (removeDyedColor) {
output.remove(DataComponents.DYED_COLOR)
}
return output
}
override fun getSerializer() = CobblemonRecipeSerializers.WASHER
override fun getResultItem(registries: HolderLookup.Provider): ItemStack = result.copy()
override fun matches(input: WasherInput, level: Level) =
this.input.test(input.item) && (!removeDyedColor || input.item.has(DataComponents.DYED_COLOR))
class Serializer : RecipeSerializer<WasherRecipe> {
companion object {
val CODEC: MapCodec<WasherRecipe> = RecordCodecBuilder.mapCodec { instance ->
instance.group(
Ingredient.CODEC.fieldOf("input").forGetter { recipe -> recipe.input },
ItemStack.STRICT_CODEC.fieldOf("result").forGetter { recipe -> recipe.result },
Codec.BOOL.optionalFieldOf("preserve_input_components", false)
.forGetter { recipe -> recipe.preserveInputComponents },
Codec.BOOL.optionalFieldOf("remove_dyed_color", false)
.forGetter { recipe -> recipe.removeDyedColor }
).apply(instance, ::WasherRecipe)
}
}
val STREAM_CODEC: StreamCodec<RegistryFriendlyByteBuf, WasherRecipe> =
StreamCodec.of(::toNetwork, ::fromNetwork)
private fun fromNetwork(buffer: RegistryFriendlyByteBuf): WasherRecipe {
val input = Ingredient.CONTENTS_STREAM_CODEC.decode(buffer)
val result = ItemStack.STREAM_CODEC.decode(buffer)
val preserveInputComponents = buffer.readBoolean()
val removeDyedColor = buffer.readBoolean()
return WasherRecipe(input, result, preserveInputComponents, removeDyedColor)
}
private fun toNetwork(buffer: RegistryFriendlyByteBuf, recipe: WasherRecipe) {
Ingredient.CONTENTS_STREAM_CODEC.encode(buffer, recipe.input)
ItemStack.STREAM_CODEC.encode(buffer, recipe.result)
buffer.writeBoolean(recipe.preserveInputComponents)
buffer.writeBoolean(recipe.removeDyedColor)
}
override fun codec() = CODEC
override fun streamCodec() = STREAM_CODEC
}
}
@@ -394,6 +394,7 @@ object CobblemonItemGroups {
entries.accept(CobblemonItems.FOSSIL_ANALYZER)
entries.accept(CobblemonItems.MONITOR)
entries.accept(CobblemonItems.DAMAGED_MONITOR)
entries.accept(CobblemonItems.ROTOM_MONITOR)
entries.accept(CobblemonItems.PC)
entries.accept(CobblemonItems.HEALING_MACHINE)
entries.accept(CobblemonItems.PASTURE)
@@ -570,6 +571,47 @@ object CobblemonItemGroups {
entries.accept(CobblemonItems.PINK_PLAQUE)
CobblemonItems.campfire_pots.forEach(entries::accept)
entries.accept(CobblemonItems.COPPER_OVEN)
entries.accept(CobblemonItems.COPPER_WASHER)
entries.accept(CobblemonItems.COPPER_FAN)
entries.accept(CobblemonItems.COPPER_MOWER)
entries.accept(CobblemonItems.COPPER_FRIDGE)
entries.accept(CobblemonItems.EXPOSED_COPPER_OVEN)
entries.accept(CobblemonItems.EXPOSED_COPPER_WASHER)
entries.accept(CobblemonItems.EXPOSED_COPPER_FAN)
entries.accept(CobblemonItems.EXPOSED_COPPER_MOWER)
entries.accept(CobblemonItems.EXPOSED_COPPER_FRIDGE)
entries.accept(CobblemonItems.WEATHERED_COPPER_OVEN)
entries.accept(CobblemonItems.WEATHERED_COPPER_WASHER)
entries.accept(CobblemonItems.WEATHERED_COPPER_FAN)
entries.accept(CobblemonItems.WEATHERED_COPPER_MOWER)
entries.accept(CobblemonItems.WEATHERED_COPPER_FRIDGE)
entries.accept(CobblemonItems.OXIDIZED_COPPER_OVEN)
entries.accept(CobblemonItems.OXIDIZED_COPPER_WASHER)
entries.accept(CobblemonItems.OXIDIZED_COPPER_FAN)
entries.accept(CobblemonItems.OXIDIZED_COPPER_MOWER)
entries.accept(CobblemonItems.OXIDIZED_COPPER_FRIDGE)
entries.accept(CobblemonItems.WAXED_COPPER_OVEN)
entries.accept(CobblemonItems.WAXED_COPPER_WASHER)
entries.accept(CobblemonItems.WAXED_COPPER_FAN)
entries.accept(CobblemonItems.WAXED_COPPER_MOWER)
entries.accept(CobblemonItems.WAXED_COPPER_FRIDGE)
entries.accept(CobblemonItems.WAXED_EXPOSED_COPPER_OVEN)
entries.accept(CobblemonItems.WAXED_EXPOSED_COPPER_WASHER)
entries.accept(CobblemonItems.WAXED_EXPOSED_COPPER_FAN)
entries.accept(CobblemonItems.WAXED_EXPOSED_COPPER_MOWER)
entries.accept(CobblemonItems.WAXED_EXPOSED_COPPER_FRIDGE)
entries.accept(CobblemonItems.WAXED_WEATHERED_COPPER_OVEN)
entries.accept(CobblemonItems.WAXED_WEATHERED_COPPER_WASHER)
entries.accept(CobblemonItems.WAXED_WEATHERED_COPPER_FAN)
entries.accept(CobblemonItems.WAXED_WEATHERED_COPPER_MOWER)
entries.accept(CobblemonItems.WAXED_WEATHERED_COPPER_FRIDGE)
entries.accept(CobblemonItems.WAXED_OXIDIZED_COPPER_OVEN)
entries.accept(CobblemonItems.WAXED_OXIDIZED_COPPER_WASHER)
entries.accept(CobblemonItems.WAXED_OXIDIZED_COPPER_FAN)
entries.accept(CobblemonItems.WAXED_OXIDIZED_COPPER_MOWER)
entries.accept(CobblemonItems.WAXED_OXIDIZED_COPPER_FRIDGE)
}
private fun consumableEntries(displayContext: ItemDisplayParameters, entries: Output) {
@@ -95,6 +95,8 @@ class FloatRange(override val start: Float, override val endInclusive: Float) :
override fun hashCode(): Int = 31 * start.hashCode() + endInclusive.hashCode()
override fun toString(): String = "$start..$endInclusive"
fun random() = Random.nextFloat() * (endInclusive - start) + start
}
class DoubleRange(override val start: Double, override val endInclusive: Double) : ClosedFloatingPointRange<Double> {
@@ -0,0 +1,469 @@
{
"variants": {
"facing=east,power=0": {
"model": "cobblemon:block/copper_fan_unpowered",
"y": 90
},
"facing=north,power=0": {
"model": "cobblemon:block/copper_fan_unpowered"
},
"facing=south,power=0": {
"model": "cobblemon:block/copper_fan_unpowered",
"y": 180
},
"facing=west,power=0": {
"model": "cobblemon:block/copper_fan_unpowered",
"y": 270
},
"facing=east,power=1,push=false": {
"model": "cobblemon:block/copper_fan_decorative",
"y": 90
},
"facing=north,power=1,push=false": {
"model": "cobblemon:block/copper_fan_decorative"
},
"facing=south,power=1,push=false": {
"model": "cobblemon:block/copper_fan_decorative",
"y": 180
},
"facing=west,power=1,push=false": {
"model": "cobblemon:block/copper_fan_decorative",
"y": 270
},
"facing=east,power=1,push=true": {
"model": "cobblemon:block/copper_fan_pushing",
"y": 90
},
"facing=north,power=1,push=true": {
"model": "cobblemon:block/copper_fan_pushing"
},
"facing=south,power=1,push=true": {
"model": "cobblemon:block/copper_fan_pushing",
"y": 180
},
"facing=west,power=1,push=true": {
"model": "cobblemon:block/copper_fan_pushing",
"y": 270
},
"facing=east,power=2,push=false": {
"model": "cobblemon:block/copper_fan_decorative",
"y": 90
},
"facing=north,power=2,push=false": {
"model": "cobblemon:block/copper_fan_decorative"
},
"facing=south,power=2,push=false": {
"model": "cobblemon:block/copper_fan_decorative",
"y": 180
},
"facing=west,power=2,push=false": {
"model": "cobblemon:block/copper_fan_decorative",
"y": 270
},
"facing=east,power=2,push=true": {
"model": "cobblemon:block/copper_fan_pushing",
"y": 90
},
"facing=north,power=2,push=true": {
"model": "cobblemon:block/copper_fan_pushing"
},
"facing=south,power=2,push=true": {
"model": "cobblemon:block/copper_fan_pushing",
"y": 180
},
"facing=west,power=2,push=true": {
"model": "cobblemon:block/copper_fan_pushing",
"y": 270
},
"facing=east,power=3,push=false": {
"model": "cobblemon:block/copper_fan_decorative",
"y": 90
},
"facing=north,power=3,push=false": {
"model": "cobblemon:block/copper_fan_decorative"
},
"facing=south,power=3,push=false": {
"model": "cobblemon:block/copper_fan_decorative",
"y": 180
},
"facing=west,power=3,push=false": {
"model": "cobblemon:block/copper_fan_decorative",
"y": 270
},
"facing=east,power=3,push=true": {
"model": "cobblemon:block/copper_fan_pushing",
"y": 90
},
"facing=north,power=3,push=true": {
"model": "cobblemon:block/copper_fan_pushing"
},
"facing=south,power=3,push=true": {
"model": "cobblemon:block/copper_fan_pushing",
"y": 180
},
"facing=west,power=3,push=true": {
"model": "cobblemon:block/copper_fan_pushing",
"y": 270
},
"facing=east,power=4,push=false": {
"model": "cobblemon:block/copper_fan_decorative",
"y": 90
},
"facing=north,power=4,push=false": {
"model": "cobblemon:block/copper_fan_decorative"
},
"facing=south,power=4,push=false": {
"model": "cobblemon:block/copper_fan_decorative",
"y": 180
},
"facing=west,power=4,push=false": {
"model": "cobblemon:block/copper_fan_decorative",
"y": 270
},
"facing=east,power=4,push=true": {
"model": "cobblemon:block/copper_fan_pushing",
"y": 90
},
"facing=north,power=4,push=true": {
"model": "cobblemon:block/copper_fan_pushing"
},
"facing=south,power=4,push=true": {
"model": "cobblemon:block/copper_fan_pushing",
"y": 180
},
"facing=west,power=4,push=true": {
"model": "cobblemon:block/copper_fan_pushing",
"y": 270
},
"facing=east,power=5,push=false": {
"model": "cobblemon:block/copper_fan_decorative",
"y": 90
},
"facing=north,power=5,push=false": {
"model": "cobblemon:block/copper_fan_decorative"
},
"facing=south,power=5,push=false": {
"model": "cobblemon:block/copper_fan_decorative",
"y": 180
},
"facing=west,power=5,push=false": {
"model": "cobblemon:block/copper_fan_decorative",
"y": 270
},
"facing=east,power=5,push=true": {
"model": "cobblemon:block/copper_fan_pushing",
"y": 90
},
"facing=north,power=5,push=true": {
"model": "cobblemon:block/copper_fan_pushing"
},
"facing=south,power=5,push=true": {
"model": "cobblemon:block/copper_fan_pushing",
"y": 180
},
"facing=west,power=5,push=true": {
"model": "cobblemon:block/copper_fan_pushing",
"y": 270
},
"facing=east,power=6,push=false": {
"model": "cobblemon:block/copper_fan_decorative",
"y": 90
},
"facing=north,power=6,push=false": {
"model": "cobblemon:block/copper_fan_decorative"
},
"facing=south,power=6,push=false": {
"model": "cobblemon:block/copper_fan_decorative",
"y": 180
},
"facing=west,power=6,push=false": {
"model": "cobblemon:block/copper_fan_decorative",
"y": 270
},
"facing=east,power=6,push=true": {
"model": "cobblemon:block/copper_fan_pushing",
"y": 90
},
"facing=north,power=6,push=true": {
"model": "cobblemon:block/copper_fan_pushing"
},
"facing=south,power=6,push=true": {
"model": "cobblemon:block/copper_fan_pushing",
"y": 180
},
"facing=west,power=6,push=true": {
"model": "cobblemon:block/copper_fan_pushing",
"y": 270
},
"facing=east,power=7,push=false": {
"model": "cobblemon:block/copper_fan_decorative",
"y": 90
},
"facing=north,power=7,push=false": {
"model": "cobblemon:block/copper_fan_decorative"
},
"facing=south,power=7,push=false": {
"model": "cobblemon:block/copper_fan_decorative",
"y": 180
},
"facing=west,power=7,push=false": {
"model": "cobblemon:block/copper_fan_decorative",
"y": 270
},
"facing=east,power=7,push=true": {
"model": "cobblemon:block/copper_fan_pushing",
"y": 90
},
"facing=north,power=7,push=true": {
"model": "cobblemon:block/copper_fan_pushing"
},
"facing=south,power=7,push=true": {
"model": "cobblemon:block/copper_fan_pushing",
"y": 180
},
"facing=west,power=7,push=true": {
"model": "cobblemon:block/copper_fan_pushing",
"y": 270
},
"facing=east,power=8,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=8,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong"
},
"facing=south,power=8,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=8,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=8,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=8,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong"
},
"facing=south,power=8,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=8,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong",
"y": 270
},
"facing=east,power=9,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=9,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong"
},
"facing=south,power=9,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=9,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=9,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=9,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong"
},
"facing=south,power=9,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=9,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong",
"y": 270
},
"facing=east,power=10,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=10,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong"
},
"facing=south,power=10,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=10,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=10,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=10,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong"
},
"facing=south,power=10,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=10,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong",
"y": 270
},
"facing=east,power=11,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=11,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong"
},
"facing=south,power=11,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=11,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=11,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=11,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong"
},
"facing=south,power=11,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=11,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong",
"y": 270
},
"facing=east,power=12,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=12,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong"
},
"facing=south,power=12,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=12,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=12,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=12,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong"
},
"facing=south,power=12,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=12,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong",
"y": 270
},
"facing=east,power=13,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=13,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong"
},
"facing=south,power=13,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=13,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=13,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=13,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong"
},
"facing=south,power=13,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=13,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong",
"y": 270
},
"facing=east,power=14,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=14,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong"
},
"facing=south,power=14,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=14,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=14,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=14,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong"
},
"facing=south,power=14,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=14,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong",
"y": 270
},
"facing=east,power=15,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=15,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong"
},
"facing=south,power=15,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=15,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=15,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=15,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong"
},
"facing=south,power=15,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=15,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong",
"y": 270
}
}
}
@@ -0,0 +1,34 @@
{
"variants": {
"facing=east,half=lower": {
"model": "cobblemon:block/copper_fridge_bottom",
"y": 90
},
"facing=north,half=lower": {
"model": "cobblemon:block/copper_fridge_bottom"
},
"facing=south,half=lower": {
"model": "cobblemon:block/copper_fridge_bottom",
"y": 180
},
"facing=west,half=lower": {
"model": "cobblemon:block/copper_fridge_bottom",
"y": 270
},
"facing=east,half=upper": {
"model": "cobblemon:block/copper_fridge_top",
"y": 90
},
"facing=north,half=upper": {
"model": "cobblemon:block/copper_fridge_top"
},
"facing=south,half=upper": {
"model": "cobblemon:block/copper_fridge_top",
"y": 180
},
"facing=west,half=upper": {
"model": "cobblemon:block/copper_fridge_top",
"y": 270
}
}
}
@@ -0,0 +1,19 @@
{
"variants": {
"facing=east": {
"model": "cobblemon:block/copper_mower",
"y": 90
},
"facing=north": {
"model": "cobblemon:block/copper_mower"
},
"facing=south": {
"model": "cobblemon:block/copper_mower",
"y": 180
},
"facing=west": {
"model": "cobblemon:block/copper_mower",
"y": 270
}
}
}
@@ -0,0 +1,64 @@
{
"variants": {
"facing=east,cooking=closed,ejecting=false": {
"model": "cobblemon:block/copper_oven_closed",
"y": 90
},
"facing=north,cooking=closed,ejecting=false": {
"model": "cobblemon:block/copper_oven_closed"
},
"facing=south,cooking=closed,ejecting=false": {
"model": "cobblemon:block/copper_oven_closed",
"y": 180
},
"facing=west,cooking=closed,ejecting=false": {
"model": "cobblemon:block/copper_oven_closed",
"y": 270
},
"facing=east,cooking=open,ejecting=false": {
"model": "cobblemon:block/copper_oven_open",
"y": 90
},
"facing=north,cooking=open,ejecting=false": {
"model": "cobblemon:block/copper_oven_open"
},
"facing=south,cooking=open,ejecting=false": {
"model": "cobblemon:block/copper_oven_open",
"y": 180
},
"facing=west,cooking=open,ejecting=false": {
"model": "cobblemon:block/copper_oven_open",
"y": 270
},
"facing=east,cooking=cooking,ejecting=false": {
"model": "cobblemon:block/copper_oven_closed",
"y": 90
},
"facing=north,cooking=cooking,ejecting=false": {
"model": "cobblemon:block/copper_oven_closed"
},
"facing=south,cooking=cooking,ejecting=false": {
"model": "cobblemon:block/copper_oven_closed",
"y": 180
},
"facing=west,cooking=cooking,ejecting=false": {
"model": "cobblemon:block/copper_oven_closed",
"y": 270
},
"facing=east,ejecting=true": {
"model": "cobblemon:block/copper_oven_open",
"y": 90
},
"facing=north,ejecting=true": {
"model": "cobblemon:block/copper_oven_open"
},
"facing=south,ejecting=true": {
"model": "cobblemon:block/copper_oven_open",
"y": 180
},
"facing=west,ejecting=true": {
"model": "cobblemon:block/copper_oven_open",
"y": 270
}
}
}
@@ -0,0 +1,19 @@
{
"variants": {
"facing=east": {
"model": "cobblemon:block/copper_washer",
"y": 90
},
"facing=north": {
"model": "cobblemon:block/copper_washer"
},
"facing=south": {
"model": "cobblemon:block/copper_washer",
"y": 180
},
"facing=west": {
"model": "cobblemon:block/copper_washer",
"y": 270
}
}
}
@@ -0,0 +1,469 @@
{
"variants": {
"facing=east,power=0": {
"model": "cobblemon:block/exposed_copper_fan_unpowered",
"y": 90
},
"facing=north,power=0": {
"model": "cobblemon:block/exposed_copper_fan_unpowered"
},
"facing=south,power=0": {
"model": "cobblemon:block/exposed_copper_fan_unpowered",
"y": 180
},
"facing=west,power=0": {
"model": "cobblemon:block/exposed_copper_fan_unpowered",
"y": 270
},
"facing=east,power=1,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative",
"y": 90
},
"facing=north,power=1,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative"
},
"facing=south,power=1,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative",
"y": 180
},
"facing=west,power=1,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative",
"y": 270
},
"facing=east,power=1,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing",
"y": 90
},
"facing=north,power=1,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing"
},
"facing=south,power=1,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing",
"y": 180
},
"facing=west,power=1,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing",
"y": 270
},
"facing=east,power=2,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative",
"y": 90
},
"facing=north,power=2,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative"
},
"facing=south,power=2,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative",
"y": 180
},
"facing=west,power=2,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative",
"y": 270
},
"facing=east,power=2,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing",
"y": 90
},
"facing=north,power=2,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing"
},
"facing=south,power=2,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing",
"y": 180
},
"facing=west,power=2,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing",
"y": 270
},
"facing=east,power=3,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative",
"y": 90
},
"facing=north,power=3,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative"
},
"facing=south,power=3,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative",
"y": 180
},
"facing=west,power=3,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative",
"y": 270
},
"facing=east,power=3,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing",
"y": 90
},
"facing=north,power=3,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing"
},
"facing=south,power=3,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing",
"y": 180
},
"facing=west,power=3,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing",
"y": 270
},
"facing=east,power=4,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative",
"y": 90
},
"facing=north,power=4,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative"
},
"facing=south,power=4,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative",
"y": 180
},
"facing=west,power=4,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative",
"y": 270
},
"facing=east,power=4,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing",
"y": 90
},
"facing=north,power=4,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing"
},
"facing=south,power=4,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing",
"y": 180
},
"facing=west,power=4,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing",
"y": 270
},
"facing=east,power=5,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative",
"y": 90
},
"facing=north,power=5,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative"
},
"facing=south,power=5,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative",
"y": 180
},
"facing=west,power=5,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative",
"y": 270
},
"facing=east,power=5,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing",
"y": 90
},
"facing=north,power=5,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing"
},
"facing=south,power=5,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing",
"y": 180
},
"facing=west,power=5,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing",
"y": 270
},
"facing=east,power=6,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative",
"y": 90
},
"facing=north,power=6,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative"
},
"facing=south,power=6,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative",
"y": 180
},
"facing=west,power=6,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative",
"y": 270
},
"facing=east,power=6,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing",
"y": 90
},
"facing=north,power=6,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing"
},
"facing=south,power=6,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing",
"y": 180
},
"facing=west,power=6,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing",
"y": 270
},
"facing=east,power=7,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative",
"y": 90
},
"facing=north,power=7,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative"
},
"facing=south,power=7,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative",
"y": 180
},
"facing=west,power=7,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative",
"y": 270
},
"facing=east,power=7,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing",
"y": 90
},
"facing=north,power=7,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing"
},
"facing=south,power=7,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing",
"y": 180
},
"facing=west,power=7,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing",
"y": 270
},
"facing=east,power=8,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=8,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong"
},
"facing=south,power=8,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=8,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=8,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=8,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong"
},
"facing=south,power=8,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=8,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong",
"y": 270
},
"facing=east,power=9,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=9,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong"
},
"facing=south,power=9,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=9,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=9,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=9,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong"
},
"facing=south,power=9,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=9,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong",
"y": 270
},
"facing=east,power=10,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=10,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong"
},
"facing=south,power=10,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=10,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=10,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=10,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong"
},
"facing=south,power=10,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=10,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong",
"y": 270
},
"facing=east,power=11,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=11,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong"
},
"facing=south,power=11,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=11,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=11,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=11,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong"
},
"facing=south,power=11,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=11,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong",
"y": 270
},
"facing=east,power=12,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=12,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong"
},
"facing=south,power=12,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=12,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=12,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=12,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong"
},
"facing=south,power=12,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=12,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong",
"y": 270
},
"facing=east,power=13,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=13,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong"
},
"facing=south,power=13,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=13,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=13,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=13,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong"
},
"facing=south,power=13,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=13,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong",
"y": 270
},
"facing=east,power=14,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=14,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong"
},
"facing=south,power=14,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=14,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=14,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=14,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong"
},
"facing=south,power=14,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=14,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong",
"y": 270
},
"facing=east,power=15,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=15,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong"
},
"facing=south,power=15,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=15,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=15,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=15,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong"
},
"facing=south,power=15,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=15,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong",
"y": 270
}
}
}
@@ -0,0 +1,34 @@
{
"variants": {
"facing=east,half=lower": {
"model": "cobblemon:block/exposed_copper_fridge_bottom",
"y": 90
},
"facing=north,half=lower": {
"model": "cobblemon:block/exposed_copper_fridge_bottom"
},
"facing=south,half=lower": {
"model": "cobblemon:block/exposed_copper_fridge_bottom",
"y": 180
},
"facing=west,half=lower": {
"model": "cobblemon:block/exposed_copper_fridge_bottom",
"y": 270
},
"facing=east,half=upper": {
"model": "cobblemon:block/exposed_copper_fridge_top",
"y": 90
},
"facing=north,half=upper": {
"model": "cobblemon:block/exposed_copper_fridge_top"
},
"facing=south,half=upper": {
"model": "cobblemon:block/exposed_copper_fridge_top",
"y": 180
},
"facing=west,half=upper": {
"model": "cobblemon:block/exposed_copper_fridge_top",
"y": 270
}
}
}
@@ -0,0 +1,19 @@
{
"variants": {
"facing=east": {
"model": "cobblemon:block/exposed_copper_mower",
"y": 90
},
"facing=north": {
"model": "cobblemon:block/exposed_copper_mower"
},
"facing=south": {
"model": "cobblemon:block/exposed_copper_mower",
"y": 180
},
"facing=west": {
"model": "cobblemon:block/exposed_copper_mower",
"y": 270
}
}
}
@@ -0,0 +1,64 @@
{
"variants": {
"facing=east,cooking=closed,ejecting=false": {
"model": "cobblemon:block/exposed_copper_oven_closed",
"y": 90
},
"facing=north,cooking=closed,ejecting=false": {
"model": "cobblemon:block/exposed_copper_oven_closed"
},
"facing=south,cooking=closed,ejecting=false": {
"model": "cobblemon:block/exposed_copper_oven_closed",
"y": 180
},
"facing=west,cooking=closed,ejecting=false": {
"model": "cobblemon:block/exposed_copper_oven_closed",
"y": 270
},
"facing=east,cooking=open,ejecting=false": {
"model": "cobblemon:block/exposed_copper_oven_open",
"y": 90
},
"facing=north,cooking=open,ejecting=false": {
"model": "cobblemon:block/exposed_copper_oven_open"
},
"facing=south,cooking=open,ejecting=false": {
"model": "cobblemon:block/exposed_copper_oven_open",
"y": 180
},
"facing=west,cooking=open,ejecting=false": {
"model": "cobblemon:block/exposed_copper_oven_open",
"y": 270
},
"facing=east,cooking=cooking,ejecting=false": {
"model": "cobblemon:block/exposed_copper_oven_closed",
"y": 90
},
"facing=north,cooking=cooking,ejecting=false": {
"model": "cobblemon:block/exposed_copper_oven_closed"
},
"facing=south,cooking=cooking,ejecting=false": {
"model": "cobblemon:block/exposed_copper_oven_closed",
"y": 180
},
"facing=west,cooking=cooking,ejecting=false": {
"model": "cobblemon:block/exposed_copper_oven_closed",
"y": 270
},
"facing=east,ejecting=true": {
"model": "cobblemon:block/exposed_copper_oven_open",
"y": 90
},
"facing=north,ejecting=true": {
"model": "cobblemon:block/exposed_copper_oven_open"
},
"facing=south,ejecting=true": {
"model": "cobblemon:block/exposed_copper_oven_open",
"y": 180
},
"facing=west,ejecting=true": {
"model": "cobblemon:block/exposed_copper_oven_open",
"y": 270
}
}
}
@@ -0,0 +1,19 @@
{
"variants": {
"facing=east": {
"model": "cobblemon:block/exposed_copper_washer",
"y": 90
},
"facing=north": {
"model": "cobblemon:block/exposed_copper_washer"
},
"facing=south": {
"model": "cobblemon:block/exposed_copper_washer",
"y": 180
},
"facing=west": {
"model": "cobblemon:block/exposed_copper_washer",
"y": 270
}
}
}
@@ -0,0 +1,469 @@
{
"variants": {
"facing=east,power=0": {
"model": "cobblemon:block/oxidized_copper_fan_unpowered",
"y": 90
},
"facing=north,power=0": {
"model": "cobblemon:block/oxidized_copper_fan_unpowered"
},
"facing=south,power=0": {
"model": "cobblemon:block/oxidized_copper_fan_unpowered",
"y": 180
},
"facing=west,power=0": {
"model": "cobblemon:block/oxidized_copper_fan_unpowered",
"y": 270
},
"facing=east,power=1,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative",
"y": 90
},
"facing=north,power=1,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative"
},
"facing=south,power=1,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative",
"y": 180
},
"facing=west,power=1,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative",
"y": 270
},
"facing=east,power=1,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing",
"y": 90
},
"facing=north,power=1,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing"
},
"facing=south,power=1,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing",
"y": 180
},
"facing=west,power=1,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing",
"y": 270
},
"facing=east,power=2,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative",
"y": 90
},
"facing=north,power=2,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative"
},
"facing=south,power=2,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative",
"y": 180
},
"facing=west,power=2,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative",
"y": 270
},
"facing=east,power=2,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing",
"y": 90
},
"facing=north,power=2,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing"
},
"facing=south,power=2,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing",
"y": 180
},
"facing=west,power=2,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing",
"y": 270
},
"facing=east,power=3,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative",
"y": 90
},
"facing=north,power=3,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative"
},
"facing=south,power=3,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative",
"y": 180
},
"facing=west,power=3,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative",
"y": 270
},
"facing=east,power=3,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing",
"y": 90
},
"facing=north,power=3,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing"
},
"facing=south,power=3,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing",
"y": 180
},
"facing=west,power=3,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing",
"y": 270
},
"facing=east,power=4,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative",
"y": 90
},
"facing=north,power=4,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative"
},
"facing=south,power=4,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative",
"y": 180
},
"facing=west,power=4,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative",
"y": 270
},
"facing=east,power=4,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing",
"y": 90
},
"facing=north,power=4,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing"
},
"facing=south,power=4,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing",
"y": 180
},
"facing=west,power=4,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing",
"y": 270
},
"facing=east,power=5,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative",
"y": 90
},
"facing=north,power=5,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative"
},
"facing=south,power=5,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative",
"y": 180
},
"facing=west,power=5,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative",
"y": 270
},
"facing=east,power=5,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing",
"y": 90
},
"facing=north,power=5,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing"
},
"facing=south,power=5,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing",
"y": 180
},
"facing=west,power=5,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing",
"y": 270
},
"facing=east,power=6,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative",
"y": 90
},
"facing=north,power=6,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative"
},
"facing=south,power=6,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative",
"y": 180
},
"facing=west,power=6,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative",
"y": 270
},
"facing=east,power=6,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing",
"y": 90
},
"facing=north,power=6,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing"
},
"facing=south,power=6,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing",
"y": 180
},
"facing=west,power=6,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing",
"y": 270
},
"facing=east,power=7,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative",
"y": 90
},
"facing=north,power=7,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative"
},
"facing=south,power=7,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative",
"y": 180
},
"facing=west,power=7,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative",
"y": 270
},
"facing=east,power=7,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing",
"y": 90
},
"facing=north,power=7,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing"
},
"facing=south,power=7,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing",
"y": 180
},
"facing=west,power=7,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing",
"y": 270
},
"facing=east,power=8,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=8,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong"
},
"facing=south,power=8,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=8,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=8,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=8,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong"
},
"facing=south,power=8,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=8,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong",
"y": 270
},
"facing=east,power=9,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=9,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong"
},
"facing=south,power=9,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=9,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=9,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=9,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong"
},
"facing=south,power=9,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=9,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong",
"y": 270
},
"facing=east,power=10,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=10,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong"
},
"facing=south,power=10,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=10,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=10,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=10,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong"
},
"facing=south,power=10,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=10,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong",
"y": 270
},
"facing=east,power=11,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=11,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong"
},
"facing=south,power=11,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=11,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=11,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=11,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong"
},
"facing=south,power=11,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=11,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong",
"y": 270
},
"facing=east,power=12,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=12,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong"
},
"facing=south,power=12,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=12,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=12,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=12,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong"
},
"facing=south,power=12,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=12,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong",
"y": 270
},
"facing=east,power=13,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=13,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong"
},
"facing=south,power=13,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=13,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=13,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=13,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong"
},
"facing=south,power=13,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=13,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong",
"y": 270
},
"facing=east,power=14,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=14,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong"
},
"facing=south,power=14,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=14,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=14,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=14,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong"
},
"facing=south,power=14,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=14,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong",
"y": 270
},
"facing=east,power=15,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=15,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong"
},
"facing=south,power=15,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=15,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=15,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=15,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong"
},
"facing=south,power=15,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=15,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong",
"y": 270
}
}
}
@@ -0,0 +1,34 @@
{
"variants": {
"facing=east,half=lower": {
"model": "cobblemon:block/oxidized_copper_fridge_bottom",
"y": 90
},
"facing=north,half=lower": {
"model": "cobblemon:block/oxidized_copper_fridge_bottom"
},
"facing=south,half=lower": {
"model": "cobblemon:block/oxidized_copper_fridge_bottom",
"y": 180
},
"facing=west,half=lower": {
"model": "cobblemon:block/oxidized_copper_fridge_bottom",
"y": 270
},
"facing=east,half=upper": {
"model": "cobblemon:block/oxidized_copper_fridge_top",
"y": 90
},
"facing=north,half=upper": {
"model": "cobblemon:block/oxidized_copper_fridge_top"
},
"facing=south,half=upper": {
"model": "cobblemon:block/oxidized_copper_fridge_top",
"y": 180
},
"facing=west,half=upper": {
"model": "cobblemon:block/oxidized_copper_fridge_top",
"y": 270
}
}
}
@@ -0,0 +1,19 @@
{
"variants": {
"facing=east": {
"model": "cobblemon:block/oxidized_copper_mower",
"y": 90
},
"facing=north": {
"model": "cobblemon:block/oxidized_copper_mower"
},
"facing=south": {
"model": "cobblemon:block/oxidized_copper_mower",
"y": 180
},
"facing=west": {
"model": "cobblemon:block/oxidized_copper_mower",
"y": 270
}
}
}
@@ -0,0 +1,64 @@
{
"variants": {
"facing=east,cooking=closed,ejecting=false": {
"model": "cobblemon:block/oxidized_copper_oven_closed",
"y": 90
},
"facing=north,cooking=closed,ejecting=false": {
"model": "cobblemon:block/oxidized_copper_oven_closed"
},
"facing=south,cooking=closed,ejecting=false": {
"model": "cobblemon:block/oxidized_copper_oven_closed",
"y": 180
},
"facing=west,cooking=closed,ejecting=false": {
"model": "cobblemon:block/oxidized_copper_oven_closed",
"y": 270
},
"facing=east,cooking=open,ejecting=false": {
"model": "cobblemon:block/oxidized_copper_oven_open",
"y": 90
},
"facing=north,cooking=open,ejecting=false": {
"model": "cobblemon:block/oxidized_copper_oven_open"
},
"facing=south,cooking=open,ejecting=false": {
"model": "cobblemon:block/oxidized_copper_oven_open",
"y": 180
},
"facing=west,cooking=open,ejecting=false": {
"model": "cobblemon:block/oxidized_copper_oven_open",
"y": 270
},
"facing=east,cooking=cooking,ejecting=false": {
"model": "cobblemon:block/oxidized_copper_oven_closed",
"y": 90
},
"facing=north,cooking=cooking,ejecting=false": {
"model": "cobblemon:block/oxidized_copper_oven_closed"
},
"facing=south,cooking=cooking,ejecting=false": {
"model": "cobblemon:block/oxidized_copper_oven_closed",
"y": 180
},
"facing=west,cooking=cooking,ejecting=false": {
"model": "cobblemon:block/oxidized_copper_oven_closed",
"y": 270
},
"facing=east,ejecting=true": {
"model": "cobblemon:block/oxidized_copper_oven_open",
"y": 90
},
"facing=north,ejecting=true": {
"model": "cobblemon:block/oxidized_copper_oven_open"
},
"facing=south,ejecting=true": {
"model": "cobblemon:block/oxidized_copper_oven_open",
"y": 180
},
"facing=west,ejecting=true": {
"model": "cobblemon:block/oxidized_copper_oven_open",
"y": 270
}
}
}
@@ -0,0 +1,19 @@
{
"variants": {
"facing=east": {
"model": "cobblemon:block/oxidized_copper_washer",
"y": 90
},
"facing=north": {
"model": "cobblemon:block/oxidized_copper_washer"
},
"facing=south": {
"model": "cobblemon:block/oxidized_copper_washer",
"y": 180
},
"facing=west": {
"model": "cobblemon:block/oxidized_copper_washer",
"y": 270
}
}
}
@@ -0,0 +1,484 @@
{
"variants": {
"facing=south,screen=off": {
"model": "cobblemon:block/monitor"
},
"facing=west,screen=off": {
"model": "cobblemon:block/monitor",
"y": 90
},
"facing=north,screen=off": {
"model": "cobblemon:block/monitor",
"y": 180
},
"facing=east,screen=off": {
"model": "cobblemon:block/monitor",
"y": 270
},
"facing=south,screen=blue_progress_1": {
"model": "cobblemon:block/monitor_scanning_0"
},
"facing=west,screen=blue_progress_1": {
"model": "cobblemon:block/monitor_scanning_0",
"y": 90
},
"facing=north,screen=blue_progress_1": {
"model": "cobblemon:block/monitor_scanning_0",
"y": 180
},
"facing=east,screen=blue_progress_1": {
"model": "cobblemon:block/monitor_scanning_0",
"y": 270
},
"facing=south,screen=blue_progress_2": {
"model": "cobblemon:block/monitor_scanning_1"
},
"facing=west,screen=blue_progress_2": {
"model": "cobblemon:block/monitor_scanning_1",
"y": 90
},
"facing=north,screen=blue_progress_2": {
"model": "cobblemon:block/monitor_scanning_1",
"y": 180
},
"facing=east,screen=blue_progress_2": {
"model": "cobblemon:block/monitor_scanning_1",
"y": 270
},
"facing=south,screen=blue_progress_3": {
"model": "cobblemon:block/monitor_scanning_2"
},
"facing=west,screen=blue_progress_3": {
"model": "cobblemon:block/monitor_scanning_2",
"y": 90
},
"facing=north,screen=blue_progress_3": {
"model": "cobblemon:block/monitor_scanning_2",
"y": 180
},
"facing=east,screen=blue_progress_3": {
"model": "cobblemon:block/monitor_scanning_2",
"y": 270
},
"facing=south,screen=blue_progress_4": {
"model": "cobblemon:block/monitor_scanning_3"
},
"facing=west,screen=blue_progress_4": {
"model": "cobblemon:block/monitor_scanning_3",
"y": 90
},
"facing=north,screen=blue_progress_4": {
"model": "cobblemon:block/monitor_scanning_3",
"y": 180
},
"facing=east,screen=blue_progress_4": {
"model": "cobblemon:block/monitor_scanning_3",
"y": 270
},
"facing=south,screen=blue_progress_5": {
"model": "cobblemon:block/monitor_scanning_4"
},
"facing=west,screen=blue_progress_5": {
"model": "cobblemon:block/monitor_scanning_4",
"y": 90
},
"facing=north,screen=blue_progress_5": {
"model": "cobblemon:block/monitor_scanning_4",
"y": 180
},
"facing=east,screen=blue_progress_5": {
"model": "cobblemon:block/monitor_scanning_4",
"y": 270
},
"facing=south,screen=blue_progress_6": {
"model": "cobblemon:block/monitor_scanning_5"
},
"facing=west,screen=blue_progress_6": {
"model": "cobblemon:block/monitor_scanning_5",
"y": 90
},
"facing=north,screen=blue_progress_6": {
"model": "cobblemon:block/monitor_scanning_5",
"y": 180
},
"facing=east,screen=blue_progress_6": {
"model": "cobblemon:block/monitor_scanning_5",
"y": 270
},
"facing=south,screen=blue_progress_7": {
"model": "cobblemon:block/monitor_scanning_6"
},
"facing=west,screen=blue_progress_7": {
"model": "cobblemon:block/monitor_scanning_6",
"y": 90
},
"facing=north,screen=blue_progress_7": {
"model": "cobblemon:block/monitor_scanning_6",
"y": 180
},
"facing=east,screen=blue_progress_7": {
"model": "cobblemon:block/monitor_scanning_6",
"y": 270
},
"facing=south,screen=blue_progress_8": {
"model": "cobblemon:block/monitor_scanning_7"
},
"facing=west,screen=blue_progress_8": {
"model": "cobblemon:block/monitor_scanning_7",
"y": 90
},
"facing=north,screen=blue_progress_8": {
"model": "cobblemon:block/monitor_scanning_7",
"y": 180
},
"facing=east,screen=blue_progress_8": {
"model": "cobblemon:block/monitor_scanning_7",
"y": 270
},
"facing=south,screen=blue_progress_9": {
"model": "cobblemon:block/monitor_scanning_8"
},
"facing=west,screen=blue_progress_9": {
"model": "cobblemon:block/monitor_scanning_8",
"y": 90
},
"facing=north,screen=blue_progress_9": {
"model": "cobblemon:block/monitor_scanning_8",
"y": 180
},
"facing=east,screen=blue_progress_9": {
"model": "cobblemon:block/monitor_scanning_8",
"y": 270
},
"facing=south,screen=green_progress_9": {
"model": "cobblemon:block/monitor_locked"
},
"facing=west,screen=green_progress_9": {
"model": "cobblemon:block/monitor_locked",
"y": 90
},
"facing=north,screen=green_progress_9": {
"model": "cobblemon:block/monitor_locked",
"y": 180
},
"facing=east,screen=green_progress_9": {
"model": "cobblemon:block/monitor_locked",
"y": 270
},
"facing=south,screen=tm_normal": {
"model": "cobblemon:block/monitor_tm_normal"
},
"facing=west,screen=tm_normal": {
"model": "cobblemon:block/monitor_tm_normal",
"y": 90
},
"facing=north,screen=tm_normal": {
"model": "cobblemon:block/monitor_tm_normal",
"y": 180
},
"facing=east,screen=tm_normal": {
"model": "cobblemon:block/monitor_tm_normal",
"y": 270
},
"facing=south,screen=tm_fire": {
"model": "cobblemon:block/monitor_tm_fire"
},
"facing=west,screen=tm_fire": {
"model": "cobblemon:block/monitor_tm_fire",
"y": 90
},
"facing=north,screen=tm_fire": {
"model": "cobblemon:block/monitor_tm_fire",
"y": 180
},
"facing=east,screen=tm_fire": {
"model": "cobblemon:block/monitor_tm_fire",
"y": 270
},
"facing=south,screen=tm_water": {
"model": "cobblemon:block/monitor_tm_water"
},
"facing=west,screen=tm_water": {
"model": "cobblemon:block/monitor_tm_water",
"y": 90
},
"facing=north,screen=tm_water": {
"model": "cobblemon:block/monitor_tm_water",
"y": 180
},
"facing=east,screen=tm_water": {
"model": "cobblemon:block/monitor_tm_water",
"y": 270
},
"facing=south,screen=tm_grass": {
"model": "cobblemon:block/monitor_tm_grass"
},
"facing=west,screen=tm_grass": {
"model": "cobblemon:block/monitor_tm_grass",
"y": 90
},
"facing=north,screen=tm_grass": {
"model": "cobblemon:block/monitor_tm_grass",
"y": 180
},
"facing=east,screen=tm_grass": {
"model": "cobblemon:block/monitor_tm_grass",
"y": 270
},
"facing=south,screen=tm_electric": {
"model": "cobblemon:block/monitor_tm_electric"
},
"facing=west,screen=tm_electric": {
"model": "cobblemon:block/monitor_tm_electric",
"y": 90
},
"facing=north,screen=tm_electric": {
"model": "cobblemon:block/monitor_tm_electric",
"y": 180
},
"facing=east,screen=tm_electric": {
"model": "cobblemon:block/monitor_tm_electric",
"y": 270
},
"facing=south,screen=tm_ice": {
"model": "cobblemon:block/monitor_tm_ice"
},
"facing=west,screen=tm_ice": {
"model": "cobblemon:block/monitor_tm_ice",
"y": 90
},
"facing=north,screen=tm_ice": {
"model": "cobblemon:block/monitor_tm_ice",
"y": 180
},
"facing=east,screen=tm_ice": {
"model": "cobblemon:block/monitor_tm_ice",
"y": 270
},
"facing=south,screen=tm_fighting": {
"model": "cobblemon:block/monitor_tm_fighting"
},
"facing=west,screen=tm_fighting": {
"model": "cobblemon:block/monitor_tm_fighting",
"y": 90
},
"facing=north,screen=tm_fighting": {
"model": "cobblemon:block/monitor_tm_fighting",
"y": 180
},
"facing=east,screen=tm_fighting": {
"model": "cobblemon:block/monitor_tm_fighting",
"y": 270
},
"facing=south,screen=tm_poison": {
"model": "cobblemon:block/monitor_tm_poison"
},
"facing=west,screen=tm_poison": {
"model": "cobblemon:block/monitor_tm_poison",
"y": 90
},
"facing=north,screen=tm_poison": {
"model": "cobblemon:block/monitor_tm_poison",
"y": 180
},
"facing=east,screen=tm_poison": {
"model": "cobblemon:block/monitor_tm_poison",
"y": 270
},
"facing=south,screen=tm_ground": {
"model": "cobblemon:block/monitor_tm_ground"
},
"facing=west,screen=tm_ground": {
"model": "cobblemon:block/monitor_tm_ground",
"y": 90
},
"facing=north,screen=tm_ground": {
"model": "cobblemon:block/monitor_tm_ground",
"y": 180
},
"facing=east,screen=tm_ground": {
"model": "cobblemon:block/monitor_tm_ground",
"y": 270
},
"facing=south,screen=tm_flying": {
"model": "cobblemon:block/monitor_tm_flying"
},
"facing=west,screen=tm_flying": {
"model": "cobblemon:block/monitor_tm_flying",
"y": 90
},
"facing=north,screen=tm_flying": {
"model": "cobblemon:block/monitor_tm_flying",
"y": 180
},
"facing=east,screen=tm_flying": {
"model": "cobblemon:block/monitor_tm_flying",
"y": 270
},
"facing=south,screen=tm_psychic": {
"model": "cobblemon:block/monitor_tm_psychic"
},
"facing=west,screen=tm_psychic": {
"model": "cobblemon:block/monitor_tm_psychic",
"y": 90
},
"facing=north,screen=tm_psychic": {
"model": "cobblemon:block/monitor_tm_psychic",
"y": 180
},
"facing=east,screen=tm_psychic": {
"model": "cobblemon:block/monitor_tm_psychic",
"y": 270
},
"facing=south,screen=tm_bug": {
"model": "cobblemon:block/monitor_tm_bug"
},
"facing=west,screen=tm_bug": {
"model": "cobblemon:block/monitor_tm_bug",
"y": 90
},
"facing=north,screen=tm_bug": {
"model": "cobblemon:block/monitor_tm_bug",
"y": 180
},
"facing=east,screen=tm_bug": {
"model": "cobblemon:block/monitor_tm_bug",
"y": 270
},
"facing=south,screen=tm_rock": {
"model": "cobblemon:block/monitor_tm_rock"
},
"facing=west,screen=tm_rock": {
"model": "cobblemon:block/monitor_tm_rock",
"y": 90
},
"facing=north,screen=tm_rock": {
"model": "cobblemon:block/monitor_tm_rock",
"y": 180
},
"facing=east,screen=tm_rock": {
"model": "cobblemon:block/monitor_tm_rock",
"y": 270
},
"facing=south,screen=tm_ghost": {
"model": "cobblemon:block/monitor_tm_ghost"
},
"facing=west,screen=tm_ghost": {
"model": "cobblemon:block/monitor_tm_ghost",
"y": 90
},
"facing=north,screen=tm_ghost": {
"model": "cobblemon:block/monitor_tm_ghost",
"y": 180
},
"facing=east,screen=tm_ghost": {
"model": "cobblemon:block/monitor_tm_ghost",
"y": 270
},
"facing=south,screen=tm_dragon": {
"model": "cobblemon:block/monitor_tm_dragon"
},
"facing=west,screen=tm_dragon": {
"model": "cobblemon:block/monitor_tm_dragon",
"y": 90
},
"facing=north,screen=tm_dragon": {
"model": "cobblemon:block/monitor_tm_dragon",
"y": 180
},
"facing=east,screen=tm_dragon": {
"model": "cobblemon:block/monitor_tm_dragon",
"y": 270
},
"facing=south,screen=tm_dark": {
"model": "cobblemon:block/monitor_tm_dark"
},
"facing=west,screen=tm_dark": {
"model": "cobblemon:block/monitor_tm_dark",
"y": 90
},
"facing=north,screen=tm_dark": {
"model": "cobblemon:block/monitor_tm_dark",
"y": 180
},
"facing=east,screen=tm_dark": {
"model": "cobblemon:block/monitor_tm_dark",
"y": 270
},
"facing=south,screen=tm_steel": {
"model": "cobblemon:block/monitor_tm_steel"
},
"facing=west,screen=tm_steel": {
"model": "cobblemon:block/monitor_tm_steel",
"y": 90
},
"facing=north,screen=tm_steel": {
"model": "cobblemon:block/monitor_tm_steel",
"y": 180
},
"facing=east,screen=tm_steel": {
"model": "cobblemon:block/monitor_tm_steel",
"y": 270
},
"facing=south,screen=tm_fairy": {
"model": "cobblemon:block/monitor_tm_fairy"
},
"facing=west,screen=tm_fairy": {
"model": "cobblemon:block/monitor_tm_fairy",
"y": 90
},
"facing=north,screen=tm_fairy": {
"model": "cobblemon:block/monitor_tm_fairy",
"y": 180
},
"facing=east,screen=tm_fairy": {
"model": "cobblemon:block/monitor_tm_fairy",
"y": 270
},
"facing=south,screen=music": {
"model": "cobblemon:block/monitor_music"
},
"facing=west,screen=music": {
"model": "cobblemon:block/monitor_music",
"y": 90
},
"facing=north,screen=music": {
"model": "cobblemon:block/monitor_music",
"y": 180
},
"facing=east,screen=music": {
"model": "cobblemon:block/monitor_music",
"y": 270
},
"facing=south,screen=porygon_grid": {
"model": "cobblemon:block/monitor_grid"
},
"facing=west,screen=porygon_grid": {
"model": "cobblemon:block/monitor_grid",
"y": 90
},
"facing=north,screen=porygon_grid": {
"model": "cobblemon:block/monitor_grid",
"y": 180
},
"facing=east,screen=porygon_grid": {
"model": "cobblemon:block/monitor_grid",
"y": 270
},
"facing=south,screen=porygon_glitching": {
"model": "cobblemon:block/monitor_glitching"
},
"facing=west,screen=porygon_glitching": {
"model": "cobblemon:block/monitor_glitching",
"y": 90
},
"facing=north,screen=porygon_glitching": {
"model": "cobblemon:block/monitor_glitching",
"y": 180
},
"facing=east,screen=porygon_glitching": {
"model": "cobblemon:block/monitor_glitching",
"y": 270
}
}
}
@@ -0,0 +1,469 @@
{
"variants": {
"facing=east,power=0": {
"model": "cobblemon:block/copper_fan_unpowered",
"y": 90
},
"facing=north,power=0": {
"model": "cobblemon:block/copper_fan_unpowered"
},
"facing=south,power=0": {
"model": "cobblemon:block/copper_fan_unpowered",
"y": 180
},
"facing=west,power=0": {
"model": "cobblemon:block/copper_fan_unpowered",
"y": 270
},
"facing=east,power=1,push=false": {
"model": "cobblemon:block/copper_fan_decorative",
"y": 90
},
"facing=north,power=1,push=false": {
"model": "cobblemon:block/copper_fan_decorative"
},
"facing=south,power=1,push=false": {
"model": "cobblemon:block/copper_fan_decorative",
"y": 180
},
"facing=west,power=1,push=false": {
"model": "cobblemon:block/copper_fan_decorative",
"y": 270
},
"facing=east,power=1,push=true": {
"model": "cobblemon:block/copper_fan_pushing",
"y": 90
},
"facing=north,power=1,push=true": {
"model": "cobblemon:block/copper_fan_pushing"
},
"facing=south,power=1,push=true": {
"model": "cobblemon:block/copper_fan_pushing",
"y": 180
},
"facing=west,power=1,push=true": {
"model": "cobblemon:block/copper_fan_pushing",
"y": 270
},
"facing=east,power=2,push=false": {
"model": "cobblemon:block/copper_fan_decorative",
"y": 90
},
"facing=north,power=2,push=false": {
"model": "cobblemon:block/copper_fan_decorative"
},
"facing=south,power=2,push=false": {
"model": "cobblemon:block/copper_fan_decorative",
"y": 180
},
"facing=west,power=2,push=false": {
"model": "cobblemon:block/copper_fan_decorative",
"y": 270
},
"facing=east,power=2,push=true": {
"model": "cobblemon:block/copper_fan_pushing",
"y": 90
},
"facing=north,power=2,push=true": {
"model": "cobblemon:block/copper_fan_pushing"
},
"facing=south,power=2,push=true": {
"model": "cobblemon:block/copper_fan_pushing",
"y": 180
},
"facing=west,power=2,push=true": {
"model": "cobblemon:block/copper_fan_pushing",
"y": 270
},
"facing=east,power=3,push=false": {
"model": "cobblemon:block/copper_fan_decorative",
"y": 90
},
"facing=north,power=3,push=false": {
"model": "cobblemon:block/copper_fan_decorative"
},
"facing=south,power=3,push=false": {
"model": "cobblemon:block/copper_fan_decorative",
"y": 180
},
"facing=west,power=3,push=false": {
"model": "cobblemon:block/copper_fan_decorative",
"y": 270
},
"facing=east,power=3,push=true": {
"model": "cobblemon:block/copper_fan_pushing",
"y": 90
},
"facing=north,power=3,push=true": {
"model": "cobblemon:block/copper_fan_pushing"
},
"facing=south,power=3,push=true": {
"model": "cobblemon:block/copper_fan_pushing",
"y": 180
},
"facing=west,power=3,push=true": {
"model": "cobblemon:block/copper_fan_pushing",
"y": 270
},
"facing=east,power=4,push=false": {
"model": "cobblemon:block/copper_fan_decorative",
"y": 90
},
"facing=north,power=4,push=false": {
"model": "cobblemon:block/copper_fan_decorative"
},
"facing=south,power=4,push=false": {
"model": "cobblemon:block/copper_fan_decorative",
"y": 180
},
"facing=west,power=4,push=false": {
"model": "cobblemon:block/copper_fan_decorative",
"y": 270
},
"facing=east,power=4,push=true": {
"model": "cobblemon:block/copper_fan_pushing",
"y": 90
},
"facing=north,power=4,push=true": {
"model": "cobblemon:block/copper_fan_pushing"
},
"facing=south,power=4,push=true": {
"model": "cobblemon:block/copper_fan_pushing",
"y": 180
},
"facing=west,power=4,push=true": {
"model": "cobblemon:block/copper_fan_pushing",
"y": 270
},
"facing=east,power=5,push=false": {
"model": "cobblemon:block/copper_fan_decorative",
"y": 90
},
"facing=north,power=5,push=false": {
"model": "cobblemon:block/copper_fan_decorative"
},
"facing=south,power=5,push=false": {
"model": "cobblemon:block/copper_fan_decorative",
"y": 180
},
"facing=west,power=5,push=false": {
"model": "cobblemon:block/copper_fan_decorative",
"y": 270
},
"facing=east,power=5,push=true": {
"model": "cobblemon:block/copper_fan_pushing",
"y": 90
},
"facing=north,power=5,push=true": {
"model": "cobblemon:block/copper_fan_pushing"
},
"facing=south,power=5,push=true": {
"model": "cobblemon:block/copper_fan_pushing",
"y": 180
},
"facing=west,power=5,push=true": {
"model": "cobblemon:block/copper_fan_pushing",
"y": 270
},
"facing=east,power=6,push=false": {
"model": "cobblemon:block/copper_fan_decorative",
"y": 90
},
"facing=north,power=6,push=false": {
"model": "cobblemon:block/copper_fan_decorative"
},
"facing=south,power=6,push=false": {
"model": "cobblemon:block/copper_fan_decorative",
"y": 180
},
"facing=west,power=6,push=false": {
"model": "cobblemon:block/copper_fan_decorative",
"y": 270
},
"facing=east,power=6,push=true": {
"model": "cobblemon:block/copper_fan_pushing",
"y": 90
},
"facing=north,power=6,push=true": {
"model": "cobblemon:block/copper_fan_pushing"
},
"facing=south,power=6,push=true": {
"model": "cobblemon:block/copper_fan_pushing",
"y": 180
},
"facing=west,power=6,push=true": {
"model": "cobblemon:block/copper_fan_pushing",
"y": 270
},
"facing=east,power=7,push=false": {
"model": "cobblemon:block/copper_fan_decorative",
"y": 90
},
"facing=north,power=7,push=false": {
"model": "cobblemon:block/copper_fan_decorative"
},
"facing=south,power=7,push=false": {
"model": "cobblemon:block/copper_fan_decorative",
"y": 180
},
"facing=west,power=7,push=false": {
"model": "cobblemon:block/copper_fan_decorative",
"y": 270
},
"facing=east,power=7,push=true": {
"model": "cobblemon:block/copper_fan_pushing",
"y": 90
},
"facing=north,power=7,push=true": {
"model": "cobblemon:block/copper_fan_pushing"
},
"facing=south,power=7,push=true": {
"model": "cobblemon:block/copper_fan_pushing",
"y": 180
},
"facing=west,power=7,push=true": {
"model": "cobblemon:block/copper_fan_pushing",
"y": 270
},
"facing=east,power=8,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=8,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong"
},
"facing=south,power=8,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=8,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=8,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=8,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong"
},
"facing=south,power=8,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=8,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong",
"y": 270
},
"facing=east,power=9,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=9,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong"
},
"facing=south,power=9,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=9,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=9,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=9,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong"
},
"facing=south,power=9,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=9,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong",
"y": 270
},
"facing=east,power=10,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=10,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong"
},
"facing=south,power=10,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=10,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=10,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=10,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong"
},
"facing=south,power=10,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=10,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong",
"y": 270
},
"facing=east,power=11,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=11,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong"
},
"facing=south,power=11,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=11,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=11,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=11,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong"
},
"facing=south,power=11,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=11,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong",
"y": 270
},
"facing=east,power=12,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=12,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong"
},
"facing=south,power=12,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=12,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=12,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=12,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong"
},
"facing=south,power=12,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=12,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong",
"y": 270
},
"facing=east,power=13,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=13,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong"
},
"facing=south,power=13,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=13,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=13,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=13,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong"
},
"facing=south,power=13,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=13,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong",
"y": 270
},
"facing=east,power=14,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=14,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong"
},
"facing=south,power=14,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=14,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=14,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=14,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong"
},
"facing=south,power=14,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=14,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong",
"y": 270
},
"facing=east,power=15,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=15,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong"
},
"facing=south,power=15,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=15,push=false": {
"model": "cobblemon:block/copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=15,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=15,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong"
},
"facing=south,power=15,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=15,push=true": {
"model": "cobblemon:block/copper_fan_pushing_strong",
"y": 270
}
}
}
@@ -0,0 +1,34 @@
{
"variants": {
"facing=east,half=lower": {
"model": "cobblemon:block/copper_fridge_bottom",
"y": 90
},
"facing=north,half=lower": {
"model": "cobblemon:block/copper_fridge_bottom"
},
"facing=south,half=lower": {
"model": "cobblemon:block/copper_fridge_bottom",
"y": 180
},
"facing=west,half=lower": {
"model": "cobblemon:block/copper_fridge_bottom",
"y": 270
},
"facing=east,half=upper": {
"model": "cobblemon:block/copper_fridge_top",
"y": 90
},
"facing=north,half=upper": {
"model": "cobblemon:block/copper_fridge_top"
},
"facing=south,half=upper": {
"model": "cobblemon:block/copper_fridge_top",
"y": 180
},
"facing=west,half=upper": {
"model": "cobblemon:block/copper_fridge_top",
"y": 270
}
}
}
@@ -0,0 +1,19 @@
{
"variants": {
"facing=east": {
"model": "cobblemon:block/copper_mower",
"y": 90
},
"facing=north": {
"model": "cobblemon:block/copper_mower"
},
"facing=south": {
"model": "cobblemon:block/copper_mower",
"y": 180
},
"facing=west": {
"model": "cobblemon:block/copper_mower",
"y": 270
}
}
}
@@ -0,0 +1,64 @@
{
"variants": {
"facing=east,cooking=closed,ejecting=false": {
"model": "cobblemon:block/copper_oven_closed",
"y": 90
},
"facing=north,cooking=closed,ejecting=false": {
"model": "cobblemon:block/copper_oven_closed"
},
"facing=south,cooking=closed,ejecting=false": {
"model": "cobblemon:block/copper_oven_closed",
"y": 180
},
"facing=west,cooking=closed,ejecting=false": {
"model": "cobblemon:block/copper_oven_closed",
"y": 270
},
"facing=east,cooking=open,ejecting=false": {
"model": "cobblemon:block/copper_oven_open",
"y": 90
},
"facing=north,cooking=open,ejecting=false": {
"model": "cobblemon:block/copper_oven_open"
},
"facing=south,cooking=open,ejecting=false": {
"model": "cobblemon:block/copper_oven_open",
"y": 180
},
"facing=west,cooking=open,ejecting=false": {
"model": "cobblemon:block/copper_oven_open",
"y": 270
},
"facing=east,cooking=cooking,ejecting=false": {
"model": "cobblemon:block/copper_oven_closed",
"y": 90
},
"facing=north,cooking=cooking,ejecting=false": {
"model": "cobblemon:block/copper_oven_closed"
},
"facing=south,cooking=cooking,ejecting=false": {
"model": "cobblemon:block/copper_oven_closed",
"y": 180
},
"facing=west,cooking=cooking,ejecting=false": {
"model": "cobblemon:block/copper_oven_closed",
"y": 270
},
"facing=east,ejecting=true": {
"model": "cobblemon:block/copper_oven_open",
"y": 90
},
"facing=north,ejecting=true": {
"model": "cobblemon:block/copper_oven_open"
},
"facing=south,ejecting=true": {
"model": "cobblemon:block/copper_oven_open",
"y": 180
},
"facing=west,ejecting=true": {
"model": "cobblemon:block/copper_oven_open",
"y": 270
}
}
}
@@ -0,0 +1,19 @@
{
"variants": {
"facing=east": {
"model": "cobblemon:block/copper_washer",
"y": 90
},
"facing=north": {
"model": "cobblemon:block/copper_washer"
},
"facing=south": {
"model": "cobblemon:block/copper_washer",
"y": 180
},
"facing=west": {
"model": "cobblemon:block/copper_washer",
"y": 270
}
}
}
@@ -0,0 +1,469 @@
{
"variants": {
"facing=east,power=0": {
"model": "cobblemon:block/exposed_copper_fan_unpowered",
"y": 90
},
"facing=north,power=0": {
"model": "cobblemon:block/exposed_copper_fan_unpowered"
},
"facing=south,power=0": {
"model": "cobblemon:block/exposed_copper_fan_unpowered",
"y": 180
},
"facing=west,power=0": {
"model": "cobblemon:block/exposed_copper_fan_unpowered",
"y": 270
},
"facing=east,power=1,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative",
"y": 90
},
"facing=north,power=1,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative"
},
"facing=south,power=1,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative",
"y": 180
},
"facing=west,power=1,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative",
"y": 270
},
"facing=east,power=1,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing",
"y": 90
},
"facing=north,power=1,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing"
},
"facing=south,power=1,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing",
"y": 180
},
"facing=west,power=1,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing",
"y": 270
},
"facing=east,power=2,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative",
"y": 90
},
"facing=north,power=2,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative"
},
"facing=south,power=2,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative",
"y": 180
},
"facing=west,power=2,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative",
"y": 270
},
"facing=east,power=2,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing",
"y": 90
},
"facing=north,power=2,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing"
},
"facing=south,power=2,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing",
"y": 180
},
"facing=west,power=2,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing",
"y": 270
},
"facing=east,power=3,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative",
"y": 90
},
"facing=north,power=3,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative"
},
"facing=south,power=3,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative",
"y": 180
},
"facing=west,power=3,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative",
"y": 270
},
"facing=east,power=3,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing",
"y": 90
},
"facing=north,power=3,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing"
},
"facing=south,power=3,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing",
"y": 180
},
"facing=west,power=3,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing",
"y": 270
},
"facing=east,power=4,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative",
"y": 90
},
"facing=north,power=4,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative"
},
"facing=south,power=4,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative",
"y": 180
},
"facing=west,power=4,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative",
"y": 270
},
"facing=east,power=4,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing",
"y": 90
},
"facing=north,power=4,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing"
},
"facing=south,power=4,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing",
"y": 180
},
"facing=west,power=4,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing",
"y": 270
},
"facing=east,power=5,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative",
"y": 90
},
"facing=north,power=5,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative"
},
"facing=south,power=5,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative",
"y": 180
},
"facing=west,power=5,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative",
"y": 270
},
"facing=east,power=5,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing",
"y": 90
},
"facing=north,power=5,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing"
},
"facing=south,power=5,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing",
"y": 180
},
"facing=west,power=5,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing",
"y": 270
},
"facing=east,power=6,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative",
"y": 90
},
"facing=north,power=6,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative"
},
"facing=south,power=6,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative",
"y": 180
},
"facing=west,power=6,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative",
"y": 270
},
"facing=east,power=6,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing",
"y": 90
},
"facing=north,power=6,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing"
},
"facing=south,power=6,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing",
"y": 180
},
"facing=west,power=6,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing",
"y": 270
},
"facing=east,power=7,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative",
"y": 90
},
"facing=north,power=7,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative"
},
"facing=south,power=7,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative",
"y": 180
},
"facing=west,power=7,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative",
"y": 270
},
"facing=east,power=7,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing",
"y": 90
},
"facing=north,power=7,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing"
},
"facing=south,power=7,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing",
"y": 180
},
"facing=west,power=7,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing",
"y": 270
},
"facing=east,power=8,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=8,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong"
},
"facing=south,power=8,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=8,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=8,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=8,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong"
},
"facing=south,power=8,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=8,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong",
"y": 270
},
"facing=east,power=9,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=9,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong"
},
"facing=south,power=9,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=9,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=9,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=9,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong"
},
"facing=south,power=9,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=9,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong",
"y": 270
},
"facing=east,power=10,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=10,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong"
},
"facing=south,power=10,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=10,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=10,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=10,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong"
},
"facing=south,power=10,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=10,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong",
"y": 270
},
"facing=east,power=11,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=11,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong"
},
"facing=south,power=11,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=11,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=11,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=11,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong"
},
"facing=south,power=11,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=11,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong",
"y": 270
},
"facing=east,power=12,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=12,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong"
},
"facing=south,power=12,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=12,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=12,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=12,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong"
},
"facing=south,power=12,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=12,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong",
"y": 270
},
"facing=east,power=13,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=13,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong"
},
"facing=south,power=13,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=13,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=13,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=13,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong"
},
"facing=south,power=13,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=13,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong",
"y": 270
},
"facing=east,power=14,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=14,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong"
},
"facing=south,power=14,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=14,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=14,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=14,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong"
},
"facing=south,power=14,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=14,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong",
"y": 270
},
"facing=east,power=15,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=15,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong"
},
"facing=south,power=15,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=15,push=false": {
"model": "cobblemon:block/exposed_copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=15,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=15,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong"
},
"facing=south,power=15,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=15,push=true": {
"model": "cobblemon:block/exposed_copper_fan_pushing_strong",
"y": 270
}
}
}
@@ -0,0 +1,34 @@
{
"variants": {
"facing=east,half=lower": {
"model": "cobblemon:block/exposed_copper_fridge_bottom",
"y": 90
},
"facing=north,half=lower": {
"model": "cobblemon:block/exposed_copper_fridge_bottom"
},
"facing=south,half=lower": {
"model": "cobblemon:block/exposed_copper_fridge_bottom",
"y": 180
},
"facing=west,half=lower": {
"model": "cobblemon:block/exposed_copper_fridge_bottom",
"y": 270
},
"facing=east,half=upper": {
"model": "cobblemon:block/exposed_copper_fridge_top",
"y": 90
},
"facing=north,half=upper": {
"model": "cobblemon:block/exposed_copper_fridge_top"
},
"facing=south,half=upper": {
"model": "cobblemon:block/exposed_copper_fridge_top",
"y": 180
},
"facing=west,half=upper": {
"model": "cobblemon:block/exposed_copper_fridge_top",
"y": 270
}
}
}
@@ -0,0 +1,19 @@
{
"variants": {
"facing=east": {
"model": "cobblemon:block/exposed_copper_mower",
"y": 90
},
"facing=north": {
"model": "cobblemon:block/exposed_copper_mower"
},
"facing=south": {
"model": "cobblemon:block/exposed_copper_mower",
"y": 180
},
"facing=west": {
"model": "cobblemon:block/exposed_copper_mower",
"y": 270
}
}
}
@@ -0,0 +1,64 @@
{
"variants": {
"facing=east,cooking=closed,ejecting=false": {
"model": "cobblemon:block/exposed_copper_oven_closed",
"y": 90
},
"facing=north,cooking=closed,ejecting=false": {
"model": "cobblemon:block/exposed_copper_oven_closed"
},
"facing=south,cooking=closed,ejecting=false": {
"model": "cobblemon:block/exposed_copper_oven_closed",
"y": 180
},
"facing=west,cooking=closed,ejecting=false": {
"model": "cobblemon:block/exposed_copper_oven_closed",
"y": 270
},
"facing=east,cooking=open,ejecting=false": {
"model": "cobblemon:block/exposed_copper_oven_open",
"y": 90
},
"facing=north,cooking=open,ejecting=false": {
"model": "cobblemon:block/exposed_copper_oven_open"
},
"facing=south,cooking=open,ejecting=false": {
"model": "cobblemon:block/exposed_copper_oven_open",
"y": 180
},
"facing=west,cooking=open,ejecting=false": {
"model": "cobblemon:block/exposed_copper_oven_open",
"y": 270
},
"facing=east,cooking=cooking,ejecting=false": {
"model": "cobblemon:block/exposed_copper_oven_closed",
"y": 90
},
"facing=north,cooking=cooking,ejecting=false": {
"model": "cobblemon:block/exposed_copper_oven_closed"
},
"facing=south,cooking=cooking,ejecting=false": {
"model": "cobblemon:block/exposed_copper_oven_closed",
"y": 180
},
"facing=west,cooking=cooking,ejecting=false": {
"model": "cobblemon:block/exposed_copper_oven_closed",
"y": 270
},
"facing=east,ejecting=true": {
"model": "cobblemon:block/exposed_copper_oven_open",
"y": 90
},
"facing=north,ejecting=true": {
"model": "cobblemon:block/exposed_copper_oven_open"
},
"facing=south,ejecting=true": {
"model": "cobblemon:block/exposed_copper_oven_open",
"y": 180
},
"facing=west,ejecting=true": {
"model": "cobblemon:block/exposed_copper_oven_open",
"y": 270
}
}
}
@@ -0,0 +1,19 @@
{
"variants": {
"facing=east": {
"model": "cobblemon:block/exposed_copper_washer",
"y": 90
},
"facing=north": {
"model": "cobblemon:block/exposed_copper_washer"
},
"facing=south": {
"model": "cobblemon:block/exposed_copper_washer",
"y": 180
},
"facing=west": {
"model": "cobblemon:block/exposed_copper_washer",
"y": 270
}
}
}
@@ -0,0 +1,469 @@
{
"variants": {
"facing=east,power=0": {
"model": "cobblemon:block/oxidized_copper_fan_unpowered",
"y": 90
},
"facing=north,power=0": {
"model": "cobblemon:block/oxidized_copper_fan_unpowered"
},
"facing=south,power=0": {
"model": "cobblemon:block/oxidized_copper_fan_unpowered",
"y": 180
},
"facing=west,power=0": {
"model": "cobblemon:block/oxidized_copper_fan_unpowered",
"y": 270
},
"facing=east,power=1,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative",
"y": 90
},
"facing=north,power=1,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative"
},
"facing=south,power=1,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative",
"y": 180
},
"facing=west,power=1,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative",
"y": 270
},
"facing=east,power=1,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing",
"y": 90
},
"facing=north,power=1,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing"
},
"facing=south,power=1,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing",
"y": 180
},
"facing=west,power=1,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing",
"y": 270
},
"facing=east,power=2,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative",
"y": 90
},
"facing=north,power=2,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative"
},
"facing=south,power=2,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative",
"y": 180
},
"facing=west,power=2,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative",
"y": 270
},
"facing=east,power=2,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing",
"y": 90
},
"facing=north,power=2,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing"
},
"facing=south,power=2,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing",
"y": 180
},
"facing=west,power=2,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing",
"y": 270
},
"facing=east,power=3,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative",
"y": 90
},
"facing=north,power=3,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative"
},
"facing=south,power=3,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative",
"y": 180
},
"facing=west,power=3,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative",
"y": 270
},
"facing=east,power=3,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing",
"y": 90
},
"facing=north,power=3,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing"
},
"facing=south,power=3,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing",
"y": 180
},
"facing=west,power=3,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing",
"y": 270
},
"facing=east,power=4,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative",
"y": 90
},
"facing=north,power=4,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative"
},
"facing=south,power=4,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative",
"y": 180
},
"facing=west,power=4,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative",
"y": 270
},
"facing=east,power=4,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing",
"y": 90
},
"facing=north,power=4,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing"
},
"facing=south,power=4,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing",
"y": 180
},
"facing=west,power=4,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing",
"y": 270
},
"facing=east,power=5,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative",
"y": 90
},
"facing=north,power=5,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative"
},
"facing=south,power=5,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative",
"y": 180
},
"facing=west,power=5,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative",
"y": 270
},
"facing=east,power=5,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing",
"y": 90
},
"facing=north,power=5,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing"
},
"facing=south,power=5,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing",
"y": 180
},
"facing=west,power=5,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing",
"y": 270
},
"facing=east,power=6,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative",
"y": 90
},
"facing=north,power=6,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative"
},
"facing=south,power=6,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative",
"y": 180
},
"facing=west,power=6,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative",
"y": 270
},
"facing=east,power=6,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing",
"y": 90
},
"facing=north,power=6,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing"
},
"facing=south,power=6,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing",
"y": 180
},
"facing=west,power=6,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing",
"y": 270
},
"facing=east,power=7,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative",
"y": 90
},
"facing=north,power=7,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative"
},
"facing=south,power=7,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative",
"y": 180
},
"facing=west,power=7,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative",
"y": 270
},
"facing=east,power=7,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing",
"y": 90
},
"facing=north,power=7,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing"
},
"facing=south,power=7,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing",
"y": 180
},
"facing=west,power=7,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing",
"y": 270
},
"facing=east,power=8,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=8,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong"
},
"facing=south,power=8,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=8,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=8,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=8,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong"
},
"facing=south,power=8,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=8,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong",
"y": 270
},
"facing=east,power=9,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=9,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong"
},
"facing=south,power=9,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=9,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=9,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=9,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong"
},
"facing=south,power=9,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=9,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong",
"y": 270
},
"facing=east,power=10,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=10,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong"
},
"facing=south,power=10,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=10,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=10,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=10,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong"
},
"facing=south,power=10,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=10,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong",
"y": 270
},
"facing=east,power=11,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=11,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong"
},
"facing=south,power=11,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=11,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=11,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=11,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong"
},
"facing=south,power=11,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=11,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong",
"y": 270
},
"facing=east,power=12,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=12,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong"
},
"facing=south,power=12,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=12,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=12,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=12,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong"
},
"facing=south,power=12,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=12,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong",
"y": 270
},
"facing=east,power=13,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=13,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong"
},
"facing=south,power=13,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=13,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=13,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=13,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong"
},
"facing=south,power=13,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=13,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong",
"y": 270
},
"facing=east,power=14,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=14,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong"
},
"facing=south,power=14,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=14,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=14,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=14,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong"
},
"facing=south,power=14,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=14,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong",
"y": 270
},
"facing=east,power=15,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=15,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong"
},
"facing=south,power=15,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=15,push=false": {
"model": "cobblemon:block/oxidized_copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=15,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=15,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong"
},
"facing=south,power=15,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=15,push=true": {
"model": "cobblemon:block/oxidized_copper_fan_pushing_strong",
"y": 270
}
}
}
@@ -0,0 +1,34 @@
{
"variants": {
"facing=east,half=lower": {
"model": "cobblemon:block/oxidized_copper_fridge_bottom",
"y": 90
},
"facing=north,half=lower": {
"model": "cobblemon:block/oxidized_copper_fridge_bottom"
},
"facing=south,half=lower": {
"model": "cobblemon:block/oxidized_copper_fridge_bottom",
"y": 180
},
"facing=west,half=lower": {
"model": "cobblemon:block/oxidized_copper_fridge_bottom",
"y": 270
},
"facing=east,half=upper": {
"model": "cobblemon:block/oxidized_copper_fridge_top",
"y": 90
},
"facing=north,half=upper": {
"model": "cobblemon:block/oxidized_copper_fridge_top"
},
"facing=south,half=upper": {
"model": "cobblemon:block/oxidized_copper_fridge_top",
"y": 180
},
"facing=west,half=upper": {
"model": "cobblemon:block/oxidized_copper_fridge_top",
"y": 270
}
}
}
@@ -0,0 +1,19 @@
{
"variants": {
"facing=east": {
"model": "cobblemon:block/oxidized_copper_mower",
"y": 90
},
"facing=north": {
"model": "cobblemon:block/oxidized_copper_mower"
},
"facing=south": {
"model": "cobblemon:block/oxidized_copper_mower",
"y": 180
},
"facing=west": {
"model": "cobblemon:block/oxidized_copper_mower",
"y": 270
}
}
}
@@ -0,0 +1,64 @@
{
"variants": {
"facing=east,cooking=closed,ejecting=false": {
"model": "cobblemon:block/oxidized_copper_oven_closed",
"y": 90
},
"facing=north,cooking=closed,ejecting=false": {
"model": "cobblemon:block/oxidized_copper_oven_closed"
},
"facing=south,cooking=closed,ejecting=false": {
"model": "cobblemon:block/oxidized_copper_oven_closed",
"y": 180
},
"facing=west,cooking=closed,ejecting=false": {
"model": "cobblemon:block/oxidized_copper_oven_closed",
"y": 270
},
"facing=east,cooking=open,ejecting=false": {
"model": "cobblemon:block/oxidized_copper_oven_open",
"y": 90
},
"facing=north,cooking=open,ejecting=false": {
"model": "cobblemon:block/oxidized_copper_oven_open"
},
"facing=south,cooking=open,ejecting=false": {
"model": "cobblemon:block/oxidized_copper_oven_open",
"y": 180
},
"facing=west,cooking=open,ejecting=false": {
"model": "cobblemon:block/oxidized_copper_oven_open",
"y": 270
},
"facing=east,cooking=cooking,ejecting=false": {
"model": "cobblemon:block/oxidized_copper_oven_closed",
"y": 90
},
"facing=north,cooking=cooking,ejecting=false": {
"model": "cobblemon:block/oxidized_copper_oven_closed"
},
"facing=south,cooking=cooking,ejecting=false": {
"model": "cobblemon:block/oxidized_copper_oven_closed",
"y": 180
},
"facing=west,cooking=cooking,ejecting=false": {
"model": "cobblemon:block/oxidized_copper_oven_closed",
"y": 270
},
"facing=east,ejecting=true": {
"model": "cobblemon:block/oxidized_copper_oven_open",
"y": 90
},
"facing=north,ejecting=true": {
"model": "cobblemon:block/oxidized_copper_oven_open"
},
"facing=south,ejecting=true": {
"model": "cobblemon:block/oxidized_copper_oven_open",
"y": 180
},
"facing=west,ejecting=true": {
"model": "cobblemon:block/oxidized_copper_oven_open",
"y": 270
}
}
}
@@ -0,0 +1,19 @@
{
"variants": {
"facing=east": {
"model": "cobblemon:block/oxidized_copper_washer",
"y": 90
},
"facing=north": {
"model": "cobblemon:block/oxidized_copper_washer"
},
"facing=south": {
"model": "cobblemon:block/oxidized_copper_washer",
"y": 180
},
"facing=west": {
"model": "cobblemon:block/oxidized_copper_washer",
"y": 270
}
}
}
@@ -0,0 +1,469 @@
{
"variants": {
"facing=east,power=0": {
"model": "cobblemon:block/weathered_copper_fan_unpowered",
"y": 90
},
"facing=north,power=0": {
"model": "cobblemon:block/weathered_copper_fan_unpowered"
},
"facing=south,power=0": {
"model": "cobblemon:block/weathered_copper_fan_unpowered",
"y": 180
},
"facing=west,power=0": {
"model": "cobblemon:block/weathered_copper_fan_unpowered",
"y": 270
},
"facing=east,power=1,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative",
"y": 90
},
"facing=north,power=1,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative"
},
"facing=south,power=1,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative",
"y": 180
},
"facing=west,power=1,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative",
"y": 270
},
"facing=east,power=1,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing",
"y": 90
},
"facing=north,power=1,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing"
},
"facing=south,power=1,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing",
"y": 180
},
"facing=west,power=1,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing",
"y": 270
},
"facing=east,power=2,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative",
"y": 90
},
"facing=north,power=2,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative"
},
"facing=south,power=2,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative",
"y": 180
},
"facing=west,power=2,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative",
"y": 270
},
"facing=east,power=2,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing",
"y": 90
},
"facing=north,power=2,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing"
},
"facing=south,power=2,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing",
"y": 180
},
"facing=west,power=2,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing",
"y": 270
},
"facing=east,power=3,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative",
"y": 90
},
"facing=north,power=3,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative"
},
"facing=south,power=3,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative",
"y": 180
},
"facing=west,power=3,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative",
"y": 270
},
"facing=east,power=3,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing",
"y": 90
},
"facing=north,power=3,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing"
},
"facing=south,power=3,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing",
"y": 180
},
"facing=west,power=3,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing",
"y": 270
},
"facing=east,power=4,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative",
"y": 90
},
"facing=north,power=4,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative"
},
"facing=south,power=4,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative",
"y": 180
},
"facing=west,power=4,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative",
"y": 270
},
"facing=east,power=4,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing",
"y": 90
},
"facing=north,power=4,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing"
},
"facing=south,power=4,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing",
"y": 180
},
"facing=west,power=4,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing",
"y": 270
},
"facing=east,power=5,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative",
"y": 90
},
"facing=north,power=5,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative"
},
"facing=south,power=5,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative",
"y": 180
},
"facing=west,power=5,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative",
"y": 270
},
"facing=east,power=5,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing",
"y": 90
},
"facing=north,power=5,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing"
},
"facing=south,power=5,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing",
"y": 180
},
"facing=west,power=5,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing",
"y": 270
},
"facing=east,power=6,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative",
"y": 90
},
"facing=north,power=6,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative"
},
"facing=south,power=6,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative",
"y": 180
},
"facing=west,power=6,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative",
"y": 270
},
"facing=east,power=6,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing",
"y": 90
},
"facing=north,power=6,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing"
},
"facing=south,power=6,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing",
"y": 180
},
"facing=west,power=6,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing",
"y": 270
},
"facing=east,power=7,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative",
"y": 90
},
"facing=north,power=7,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative"
},
"facing=south,power=7,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative",
"y": 180
},
"facing=west,power=7,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative",
"y": 270
},
"facing=east,power=7,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing",
"y": 90
},
"facing=north,power=7,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing"
},
"facing=south,power=7,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing",
"y": 180
},
"facing=west,power=7,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing",
"y": 270
},
"facing=east,power=8,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=8,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong"
},
"facing=south,power=8,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=8,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=8,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=8,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong"
},
"facing=south,power=8,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=8,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong",
"y": 270
},
"facing=east,power=9,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=9,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong"
},
"facing=south,power=9,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=9,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=9,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=9,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong"
},
"facing=south,power=9,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=9,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong",
"y": 270
},
"facing=east,power=10,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=10,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong"
},
"facing=south,power=10,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=10,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=10,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=10,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong"
},
"facing=south,power=10,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=10,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong",
"y": 270
},
"facing=east,power=11,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=11,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong"
},
"facing=south,power=11,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=11,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=11,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=11,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong"
},
"facing=south,power=11,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=11,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong",
"y": 270
},
"facing=east,power=12,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=12,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong"
},
"facing=south,power=12,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=12,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=12,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=12,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong"
},
"facing=south,power=12,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=12,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong",
"y": 270
},
"facing=east,power=13,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=13,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong"
},
"facing=south,power=13,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=13,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=13,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=13,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong"
},
"facing=south,power=13,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=13,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong",
"y": 270
},
"facing=east,power=14,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=14,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong"
},
"facing=south,power=14,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=14,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=14,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=14,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong"
},
"facing=south,power=14,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=14,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong",
"y": 270
},
"facing=east,power=15,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=15,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong"
},
"facing=south,power=15,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=15,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=15,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=15,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong"
},
"facing=south,power=15,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=15,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong",
"y": 270
}
}
}
@@ -0,0 +1,34 @@
{
"variants": {
"facing=east,half=lower": {
"model": "cobblemon:block/weathered_copper_fridge_bottom",
"y": 90
},
"facing=north,half=lower": {
"model": "cobblemon:block/weathered_copper_fridge_bottom"
},
"facing=south,half=lower": {
"model": "cobblemon:block/weathered_copper_fridge_bottom",
"y": 180
},
"facing=west,half=lower": {
"model": "cobblemon:block/weathered_copper_fridge_bottom",
"y": 270
},
"facing=east,half=upper": {
"model": "cobblemon:block/weathered_copper_fridge_top",
"y": 90
},
"facing=north,half=upper": {
"model": "cobblemon:block/weathered_copper_fridge_top"
},
"facing=south,half=upper": {
"model": "cobblemon:block/weathered_copper_fridge_top",
"y": 180
},
"facing=west,half=upper": {
"model": "cobblemon:block/weathered_copper_fridge_top",
"y": 270
}
}
}
@@ -0,0 +1,19 @@
{
"variants": {
"facing=east": {
"model": "cobblemon:block/weathered_copper_mower",
"y": 90
},
"facing=north": {
"model": "cobblemon:block/weathered_copper_mower"
},
"facing=south": {
"model": "cobblemon:block/weathered_copper_mower",
"y": 180
},
"facing=west": {
"model": "cobblemon:block/weathered_copper_mower",
"y": 270
}
}
}
@@ -0,0 +1,64 @@
{
"variants": {
"facing=east,cooking=closed,ejecting=false": {
"model": "cobblemon:block/weathered_copper_oven_closed",
"y": 90
},
"facing=north,cooking=closed,ejecting=false": {
"model": "cobblemon:block/weathered_copper_oven_closed"
},
"facing=south,cooking=closed,ejecting=false": {
"model": "cobblemon:block/weathered_copper_oven_closed",
"y": 180
},
"facing=west,cooking=closed,ejecting=false": {
"model": "cobblemon:block/weathered_copper_oven_closed",
"y": 270
},
"facing=east,cooking=open,ejecting=false": {
"model": "cobblemon:block/weathered_copper_oven_open",
"y": 90
},
"facing=north,cooking=open,ejecting=false": {
"model": "cobblemon:block/weathered_copper_oven_open"
},
"facing=south,cooking=open,ejecting=false": {
"model": "cobblemon:block/weathered_copper_oven_open",
"y": 180
},
"facing=west,cooking=open,ejecting=false": {
"model": "cobblemon:block/weathered_copper_oven_open",
"y": 270
},
"facing=east,cooking=cooking,ejecting=false": {
"model": "cobblemon:block/weathered_copper_oven_closed",
"y": 90
},
"facing=north,cooking=cooking,ejecting=false": {
"model": "cobblemon:block/weathered_copper_oven_closed"
},
"facing=south,cooking=cooking,ejecting=false": {
"model": "cobblemon:block/weathered_copper_oven_closed",
"y": 180
},
"facing=west,cooking=cooking,ejecting=false": {
"model": "cobblemon:block/weathered_copper_oven_closed",
"y": 270
},
"facing=east,ejecting=true": {
"model": "cobblemon:block/weathered_copper_oven_open",
"y": 90
},
"facing=north,ejecting=true": {
"model": "cobblemon:block/weathered_copper_oven_open"
},
"facing=south,ejecting=true": {
"model": "cobblemon:block/weathered_copper_oven_open",
"y": 180
},
"facing=west,ejecting=true": {
"model": "cobblemon:block/weathered_copper_oven_open",
"y": 270
}
}
}
@@ -0,0 +1,19 @@
{
"variants": {
"facing=east": {
"model": "cobblemon:block/weathered_copper_washer",
"y": 90
},
"facing=north": {
"model": "cobblemon:block/weathered_copper_washer"
},
"facing=south": {
"model": "cobblemon:block/weathered_copper_washer",
"y": 180
},
"facing=west": {
"model": "cobblemon:block/weathered_copper_washer",
"y": 270
}
}
}
@@ -0,0 +1,469 @@
{
"variants": {
"facing=east,power=0": {
"model": "cobblemon:block/weathered_copper_fan_unpowered",
"y": 90
},
"facing=north,power=0": {
"model": "cobblemon:block/weathered_copper_fan_unpowered"
},
"facing=south,power=0": {
"model": "cobblemon:block/weathered_copper_fan_unpowered",
"y": 180
},
"facing=west,power=0": {
"model": "cobblemon:block/weathered_copper_fan_unpowered",
"y": 270
},
"facing=east,power=1,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative",
"y": 90
},
"facing=north,power=1,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative"
},
"facing=south,power=1,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative",
"y": 180
},
"facing=west,power=1,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative",
"y": 270
},
"facing=east,power=1,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing",
"y": 90
},
"facing=north,power=1,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing"
},
"facing=south,power=1,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing",
"y": 180
},
"facing=west,power=1,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing",
"y": 270
},
"facing=east,power=2,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative",
"y": 90
},
"facing=north,power=2,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative"
},
"facing=south,power=2,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative",
"y": 180
},
"facing=west,power=2,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative",
"y": 270
},
"facing=east,power=2,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing",
"y": 90
},
"facing=north,power=2,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing"
},
"facing=south,power=2,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing",
"y": 180
},
"facing=west,power=2,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing",
"y": 270
},
"facing=east,power=3,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative",
"y": 90
},
"facing=north,power=3,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative"
},
"facing=south,power=3,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative",
"y": 180
},
"facing=west,power=3,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative",
"y": 270
},
"facing=east,power=3,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing",
"y": 90
},
"facing=north,power=3,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing"
},
"facing=south,power=3,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing",
"y": 180
},
"facing=west,power=3,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing",
"y": 270
},
"facing=east,power=4,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative",
"y": 90
},
"facing=north,power=4,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative"
},
"facing=south,power=4,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative",
"y": 180
},
"facing=west,power=4,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative",
"y": 270
},
"facing=east,power=4,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing",
"y": 90
},
"facing=north,power=4,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing"
},
"facing=south,power=4,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing",
"y": 180
},
"facing=west,power=4,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing",
"y": 270
},
"facing=east,power=5,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative",
"y": 90
},
"facing=north,power=5,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative"
},
"facing=south,power=5,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative",
"y": 180
},
"facing=west,power=5,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative",
"y": 270
},
"facing=east,power=5,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing",
"y": 90
},
"facing=north,power=5,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing"
},
"facing=south,power=5,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing",
"y": 180
},
"facing=west,power=5,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing",
"y": 270
},
"facing=east,power=6,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative",
"y": 90
},
"facing=north,power=6,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative"
},
"facing=south,power=6,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative",
"y": 180
},
"facing=west,power=6,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative",
"y": 270
},
"facing=east,power=6,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing",
"y": 90
},
"facing=north,power=6,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing"
},
"facing=south,power=6,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing",
"y": 180
},
"facing=west,power=6,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing",
"y": 270
},
"facing=east,power=7,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative",
"y": 90
},
"facing=north,power=7,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative"
},
"facing=south,power=7,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative",
"y": 180
},
"facing=west,power=7,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative",
"y": 270
},
"facing=east,power=7,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing",
"y": 90
},
"facing=north,power=7,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing"
},
"facing=south,power=7,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing",
"y": 180
},
"facing=west,power=7,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing",
"y": 270
},
"facing=east,power=8,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=8,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong"
},
"facing=south,power=8,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=8,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=8,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=8,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong"
},
"facing=south,power=8,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=8,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong",
"y": 270
},
"facing=east,power=9,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=9,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong"
},
"facing=south,power=9,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=9,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=9,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=9,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong"
},
"facing=south,power=9,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=9,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong",
"y": 270
},
"facing=east,power=10,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=10,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong"
},
"facing=south,power=10,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=10,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=10,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=10,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong"
},
"facing=south,power=10,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=10,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong",
"y": 270
},
"facing=east,power=11,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=11,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong"
},
"facing=south,power=11,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=11,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=11,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=11,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong"
},
"facing=south,power=11,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=11,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong",
"y": 270
},
"facing=east,power=12,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=12,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong"
},
"facing=south,power=12,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=12,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=12,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=12,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong"
},
"facing=south,power=12,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=12,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong",
"y": 270
},
"facing=east,power=13,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=13,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong"
},
"facing=south,power=13,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=13,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=13,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=13,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong"
},
"facing=south,power=13,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=13,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong",
"y": 270
},
"facing=east,power=14,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=14,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong"
},
"facing=south,power=14,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=14,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=14,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=14,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong"
},
"facing=south,power=14,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=14,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong",
"y": 270
},
"facing=east,power=15,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong",
"y": 90
},
"facing=north,power=15,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong"
},
"facing=south,power=15,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong",
"y": 180
},
"facing=west,power=15,push=false": {
"model": "cobblemon:block/weathered_copper_fan_decorative_strong",
"y": 270
},
"facing=east,power=15,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong",
"y": 90
},
"facing=north,power=15,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong"
},
"facing=south,power=15,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong",
"y": 180
},
"facing=west,power=15,push=true": {
"model": "cobblemon:block/weathered_copper_fan_pushing_strong",
"y": 270
}
}
}
@@ -0,0 +1,34 @@
{
"variants": {
"facing=east,half=lower": {
"model": "cobblemon:block/weathered_copper_fridge_bottom",
"y": 90
},
"facing=north,half=lower": {
"model": "cobblemon:block/weathered_copper_fridge_bottom"
},
"facing=south,half=lower": {
"model": "cobblemon:block/weathered_copper_fridge_bottom",
"y": 180
},
"facing=west,half=lower": {
"model": "cobblemon:block/weathered_copper_fridge_bottom",
"y": 270
},
"facing=east,half=upper": {
"model": "cobblemon:block/weathered_copper_fridge_top",
"y": 90
},
"facing=north,half=upper": {
"model": "cobblemon:block/weathered_copper_fridge_top"
},
"facing=south,half=upper": {
"model": "cobblemon:block/weathered_copper_fridge_top",
"y": 180
},
"facing=west,half=upper": {
"model": "cobblemon:block/weathered_copper_fridge_top",
"y": 270
}
}
}
@@ -0,0 +1,19 @@
{
"variants": {
"facing=east": {
"model": "cobblemon:block/weathered_copper_mower",
"y": 90
},
"facing=north": {
"model": "cobblemon:block/weathered_copper_mower"
},
"facing=south": {
"model": "cobblemon:block/weathered_copper_mower",
"y": 180
},
"facing=west": {
"model": "cobblemon:block/weathered_copper_mower",
"y": 270
}
}
}
@@ -0,0 +1,64 @@
{
"variants": {
"facing=east,cooking=closed,ejecting=false": {
"model": "cobblemon:block/weathered_copper_oven_closed",
"y": 90
},
"facing=north,cooking=closed,ejecting=false": {
"model": "cobblemon:block/weathered_copper_oven_closed"
},
"facing=south,cooking=closed,ejecting=false": {
"model": "cobblemon:block/weathered_copper_oven_closed",
"y": 180
},
"facing=west,cooking=closed,ejecting=false": {
"model": "cobblemon:block/weathered_copper_oven_closed",
"y": 270
},
"facing=east,cooking=open,ejecting=false": {
"model": "cobblemon:block/weathered_copper_oven_open",
"y": 90
},
"facing=north,cooking=open,ejecting=false": {
"model": "cobblemon:block/weathered_copper_oven_open"
},
"facing=south,cooking=open,ejecting=false": {
"model": "cobblemon:block/weathered_copper_oven_open",
"y": 180
},
"facing=west,cooking=open,ejecting=false": {
"model": "cobblemon:block/weathered_copper_oven_open",
"y": 270
},
"facing=east,cooking=cooking,ejecting=false": {
"model": "cobblemon:block/weathered_copper_oven_closed",
"y": 90
},
"facing=north,cooking=cooking,ejecting=false": {
"model": "cobblemon:block/weathered_copper_oven_closed"
},
"facing=south,cooking=cooking,ejecting=false": {
"model": "cobblemon:block/weathered_copper_oven_closed",
"y": 180
},
"facing=west,cooking=cooking,ejecting=false": {
"model": "cobblemon:block/weathered_copper_oven_closed",
"y": 270
},
"facing=east,ejecting=true": {
"model": "cobblemon:block/weathered_copper_oven_open",
"y": 90
},
"facing=north,ejecting=true": {
"model": "cobblemon:block/weathered_copper_oven_open"
},
"facing=south,ejecting=true": {
"model": "cobblemon:block/weathered_copper_oven_open",
"y": 180
},
"facing=west,ejecting=true": {
"model": "cobblemon:block/weathered_copper_oven_open",
"y": 270
}
}
}
@@ -0,0 +1,19 @@
{
"variants": {
"facing=east": {
"model": "cobblemon:block/weathered_copper_washer",
"y": 90
},
"facing=north": {
"model": "cobblemon:block/weathered_copper_washer"
},
"facing=south": {
"model": "cobblemon:block/weathered_copper_washer",
"y": 180
},
"facing=west": {
"model": "cobblemon:block/weathered_copper_washer",
"y": 270
}
}
}
@@ -922,6 +922,7 @@
"block.cobblemon.fossil_analyzer": "Fossil Analyzer",
"block.cobblemon.monitor": "Data Monitor",
"block.cobblemon.damaged_monitor": "Damaged Data Monitor",
"block.cobblemon.rotom_data_monitor": "Rotom Data Monitor",
"block.cobblemon.red_mint": "Red Mint Seeds",
"block.cobblemon.blue_mint": "Blue Mint Seeds",
"block.cobblemon.cyan_mint": "Cyan Mint Seeds",
@@ -959,6 +960,46 @@
"block.cobblemon.campfire_pot_yellow": "Yellow Campfire Pot",
"block.cobblemon.tm_machine": "TM Machine",
"block.cobblemon.disc_shelf": "Disc Shelf",
"block.cobblemon.copper_oven": "Copper Oven",
"block.cobblemon.exposed_copper_oven": "Exposed Copper Oven",
"block.cobblemon.weathered_copper_oven": "Weathered Copper Oven",
"block.cobblemon.oxidized_copper_oven": "Oxidized Copper Oven",
"block.cobblemon.waxed_copper_oven": "Waxed Copper Oven",
"block.cobblemon.waxed_exposed_copper_oven": "Waxed Exposed Copper Oven",
"block.cobblemon.waxed_weathered_copper_oven": "Waxed Weathered Copper Oven",
"block.cobblemon.waxed_oxidized_copper_oven": "Waxed Oxidized Copper Oven",
"block.cobblemon.copper_washer": "Copper Washer",
"block.cobblemon.exposed_copper_washer": "Exposed Copper Washer",
"block.cobblemon.weathered_copper_washer": "Weathered Copper Washer",
"block.cobblemon.oxidized_copper_washer": "Oxidized Copper Washer",
"block.cobblemon.waxed_copper_washer": "Waxed Copper Washer",
"block.cobblemon.waxed_exposed_copper_washer": "Waxed Exposed Copper Washer",
"block.cobblemon.waxed_weathered_copper_washer": "Waxed Weathered Copper Washer",
"block.cobblemon.waxed_oxidized_copper_washer": "Waxed Oxidized Copper Washer",
"block.cobblemon.copper_fridge": "Copper Fridge",
"block.cobblemon.exposed_copper_fridge": "Exposed Copper Fridge",
"block.cobblemon.weathered_copper_fridge": "Weathered Copper Fridge",
"block.cobblemon.oxidized_copper_fridge": "Oxidized Copper Fridge",
"block.cobblemon.waxed_copper_fridge": "Waxed Copper Fridge",
"block.cobblemon.waxed_exposed_copper_fridge": "Waxed Exposed Copper Fridge",
"block.cobblemon.waxed_weathered_copper_fridge": "Waxed Weathered Copper Fridge",
"block.cobblemon.waxed_oxidized_copper_fridge": "Waxed Oxidized Copper Fridge",
"block.cobblemon.copper_fan": "Copper Fan",
"block.cobblemon.exposed_copper_fan": "Exposed Copper Fan",
"block.cobblemon.weathered_copper_fan": "Weathered Copper Fan",
"block.cobblemon.oxidized_copper_fan": "Oxidized Copper Fan",
"block.cobblemon.waxed_copper_fan": "Waxed Copper Fan",
"block.cobblemon.waxed_exposed_copper_fan": "Waxed Exposed Copper Fan",
"block.cobblemon.waxed_weathered_copper_fan": "Waxed Weathered Copper Fan",
"block.cobblemon.waxed_oxidized_copper_fan": "Waxed Oxidized Copper Fan",
"block.cobblemon.copper_mower": "Copper Mower",
"block.cobblemon.exposed_copper_mower": "Exposed Copper Mower",
"block.cobblemon.weathered_copper_mower": "Weathered Copper Mower",
"block.cobblemon.oxidized_copper_mower": "Oxidized Copper Mower",
"block.cobblemon.waxed_copper_mower": "Waxed Copper Mower",
"block.cobblemon.waxed_exposed_copper_mower": "Waxed Exposed Copper Mower",
"block.cobblemon.waxed_weathered_copper_mower": "Waxed Weathered Copper Mower",
"block.cobblemon.waxed_oxidized_copper_mower": "Waxed Oxidized Copper Mower",
"block.cobblemon.hearty_grain_bale": "Hearty Grain Bale",
"block.cobblemon.tatami_block": "Tatami",
"block.cobblemon.tatami_mat": "Tatami Mat",
@@ -0,0 +1,120 @@
{
"format_version": "1.9.0",
"credit": "Made with Blockbench",
"texture_size": [32, 32],
"textures": {
"texture": "cobblemon:block/functional/copper_appliances/copper_fan",
"blades": "cobblemon:block/functional/copper_appliances/copper_fan_blades_slow",
"particle": "block/chiseled_copper"
},
"elements": [
{
"name": "stand",
"from": [6, 0, 6],
"to": [10, 2, 10],
"rotation": {"angle": 0, "axis": "y", "origin": [6, 0, 6]},
"faces": {
"north": {"uv": [10, 14, 12, 15], "texture": "#texture"},
"east": {"uv": [8, 11, 10, 12], "texture": "#texture"},
"south": {"uv": [14, 11, 16, 12], "texture": "#texture"},
"west": {"uv": [12, 11, 14, 12], "texture": "#texture"},
"up": {"uv": [12, 14, 10, 12], "texture": "#texture"},
"down": {"uv": [14, 9, 12, 11], "texture": "#texture", "cullface": "down"}
}
},
{
"name": "frame_bottom",
"from": [1, 2, 7],
"to": [15, 4, 9],
"rotation": {"angle": 0, "axis": "y", "origin": [2, 2, 7]},
"faces": {
"north": {"uv": [1, 7, 8, 8], "texture": "#texture"},
"east": {"uv": [0, 7, 1, 8], "texture": "#texture"},
"south": {"uv": [9, 7, 16, 8], "texture": "#texture"},
"west": {"uv": [8, 7, 9, 8], "texture": "#texture"},
"up": {"uv": [8, 9, 1, 8], "texture": "#texture"},
"down": {"uv": [16, 8, 9, 9], "texture": "#texture"}
}
},
{
"name": "frame_top",
"from": [1, 14, 7],
"to": [15, 16, 9],
"rotation": {"angle": 0, "axis": "y", "origin": [2, 14, 7]},
"faces": {
"north": {"uv": [1, 1, 8, 2], "texture": "#texture"},
"east": {"uv": [0, 1, 1, 2], "texture": "#texture"},
"south": {"uv": [9, 1, 16, 2], "texture": "#texture"},
"west": {"uv": [8, 1, 9, 2], "texture": "#texture"},
"up": {"uv": [8, 1, 1, 0], "texture": "#texture"},
"down": {"uv": [16, 0, 9, 1], "texture": "#texture"}
}
},
{
"name": "frame_west",
"from": [1, 4, 7],
"to": [3, 14, 9],
"rotation": {"angle": 0, "axis": "y", "origin": [1, 4, 7]},
"faces": {
"north": {"uv": [7, 2, 8, 7], "texture": "#texture"},
"east": {"uv": [6, 2, 7, 7], "texture": "#texture"},
"south": {"uv": [9, 2, 10, 7], "texture": "#texture"},
"west": {"uv": [8, 2, 9, 7], "texture": "#texture"}
}
},
{
"name": "frame_east",
"from": [13, 4, 7],
"to": [15, 14, 9],
"rotation": {"angle": 0, "axis": "y", "origin": [13, 4, 7]},
"faces": {
"north": {"uv": [1, 2, 2, 7], "texture": "#texture"},
"east": {"uv": [0, 2, 1, 7], "texture": "#texture"},
"south": {"uv": [15, 2, 16, 7], "texture": "#texture"},
"west": {"uv": [2, 2, 3, 7], "texture": "#texture"}
}
},
{
"name": "nose",
"from": [7, 8, 7.5],
"to": [9, 10, 8.5],
"rotation": {"angle": 0, "axis": "y", "origin": [7, 6, 7]},
"faces": {
"north": {"uv": [4, 4, 5, 5], "texture": "#texture"},
"east": {"uv": [3.5, 4, 4, 5], "texture": "#texture"},
"west": {"uv": [5, 4, 5.5, 5], "texture": "#texture"},
"up": {"uv": [5, 4, 4, 3.5], "texture": "#texture"},
"down": {"uv": [5, 5, 4, 5.5], "texture": "#texture"}
}
},
{
"name": "blades",
"from": [3, 4, 8],
"to": [13, 14, 8],
"rotation": {"angle": 0, "axis": "y", "origin": [4, 5, 8]},
"faces": {
"north": {"uv": [0, 0, 10, 10], "texture": "#blades"},
"south": {"uv": [10, 0, 0, 10], "texture": "#blades"}
}
},
{
"name": "beams",
"from": [3, 4, 8.5],
"to": [13, 14, 8.5],
"rotation": {"angle": 0, "axis": "y", "origin": [4, 5, 8.5]},
"faces": {
"north": {"uv": [15, 2, 10, 7], "texture": "#texture"},
"south": {"uv": [10, 2, 15, 7], "texture": "#texture"}
}
}
],
"groups": [
{
"name": "fan",
"origin": [7, 6, 7],
"scope": 0,
"color": 0,
"children": [0, 1, 2, 3, 4, 5, 6, 7]
}
]
}
@@ -0,0 +1,6 @@
{
"parent": "cobblemon:block/copper_fan_decorative",
"textures": {
"blades": "cobblemon:block/functional/copper_appliances/copper_fan_blades_fast"
}
}
@@ -0,0 +1,120 @@
{
"format_version": "1.9.0",
"credit": "Made with Blockbench",
"texture_size": [32, 32],
"textures": {
"texture": "cobblemon:block/functional/copper_appliances/copper_fan",
"blades": "cobblemon:block/functional/copper_appliances/copper_fan_blades_slow",
"particle": "block/chiseled_copper"
},
"elements": [
{
"name": "stand",
"from": [6, 0, 6],
"to": [10, 2, 10],
"rotation": {"angle": 0, "axis": "y", "origin": [6, 0, 6]},
"faces": {
"north": {"uv": [12, 14, 14, 15], "texture": "#texture"},
"east": {"uv": [8, 11, 10, 12], "texture": "#texture"},
"south": {"uv": [14, 11, 16, 12], "texture": "#texture"},
"west": {"uv": [12, 11, 14, 12], "texture": "#texture"},
"up": {"uv": [14, 14, 12, 12], "texture": "#texture"},
"down": {"uv": [14, 9, 12, 11], "texture": "#texture", "cullface": "down"}
}
},
{
"name": "frame_bottom",
"from": [1, 2, 7],
"to": [15, 4, 9],
"rotation": {"angle": 0, "axis": "y", "origin": [2, 2, 7]},
"faces": {
"north": {"uv": [1, 7, 8, 8], "texture": "#texture"},
"east": {"uv": [0, 7, 1, 8], "texture": "#texture"},
"south": {"uv": [9, 7, 16, 8], "texture": "#texture"},
"west": {"uv": [8, 7, 9, 8], "texture": "#texture"},
"up": {"uv": [8, 9, 1, 8], "texture": "#texture"},
"down": {"uv": [16, 8, 9, 9], "texture": "#texture"}
}
},
{
"name": "frame_top",
"from": [1, 14, 7],
"to": [15, 16, 9],
"rotation": {"angle": 0, "axis": "y", "origin": [2, 14, 7]},
"faces": {
"north": {"uv": [1, 1, 8, 2], "texture": "#texture"},
"east": {"uv": [0, 1, 1, 2], "texture": "#texture"},
"south": {"uv": [9, 1, 16, 2], "texture": "#texture"},
"west": {"uv": [8, 1, 9, 2], "texture": "#texture"},
"up": {"uv": [8, 1, 1, 0], "texture": "#texture"},
"down": {"uv": [16, 0, 9, 1], "texture": "#texture"}
}
},
{
"name": "frame_west",
"from": [1, 4, 7],
"to": [3, 14, 9],
"rotation": {"angle": 0, "axis": "y", "origin": [1, 4, 7]},
"faces": {
"north": {"uv": [7, 2, 8, 7], "texture": "#texture"},
"east": {"uv": [6, 2, 7, 7], "texture": "#texture"},
"south": {"uv": [9, 2, 10, 7], "texture": "#texture"},
"west": {"uv": [8, 2, 9, 7], "texture": "#texture"}
}
},
{
"name": "frame_east",
"from": [13, 4, 7],
"to": [15, 14, 9],
"rotation": {"angle": 0, "axis": "y", "origin": [13, 4, 7]},
"faces": {
"north": {"uv": [1, 2, 2, 7], "texture": "#texture"},
"east": {"uv": [0, 2, 1, 7], "texture": "#texture"},
"south": {"uv": [15, 2, 16, 7], "texture": "#texture"},
"west": {"uv": [2, 2, 3, 7], "texture": "#texture"}
}
},
{
"name": "nose",
"from": [7, 8, 7.5],
"to": [9, 10, 8.5],
"rotation": {"angle": 0, "axis": "y", "origin": [7, 6, 7]},
"faces": {
"north": {"uv": [4, 4, 5, 5], "texture": "#texture"},
"east": {"uv": [3.5, 4, 4, 5], "texture": "#texture"},
"west": {"uv": [5, 4, 5.5, 5], "texture": "#texture"},
"up": {"uv": [5, 4, 4, 3.5], "texture": "#texture"},
"down": {"uv": [5, 5, 4, 5.5], "texture": "#texture"}
}
},
{
"name": "blades",
"from": [3, 4, 8],
"to": [13, 14, 8],
"rotation": {"angle": 0, "axis": "y", "origin": [4, 5, 8]},
"faces": {
"north": {"uv": [0, 0, 10, 10], "texture": "#blades"},
"south": {"uv": [10, 0, 0, 10], "texture": "#blades"}
}
},
{
"name": "beams",
"from": [3, 4, 8.5],
"to": [13, 14, 8.5],
"rotation": {"angle": 0, "axis": "y", "origin": [4, 5, 8.5]},
"faces": {
"north": {"uv": [15, 2, 10, 7], "texture": "#texture"},
"south": {"uv": [10, 2, 15, 7], "texture": "#texture"}
}
}
],
"groups": [
{
"name": "fan",
"origin": [7, 6, 7],
"scope": 0,
"color": 0,
"children": [0, 1, 2, 3, 4, 5, 6, 7]
}
]
}
@@ -0,0 +1,6 @@
{
"parent": "cobblemon:block/copper_fan_pushing",
"textures": {
"blades": "cobblemon:block/functional/copper_appliances/copper_fan_blades_fast"
}
}
@@ -0,0 +1,152 @@
{
"format_version": "1.9.0",
"credit": "Made with Blockbench",
"texture_size": [32, 32],
"textures": {
"texture": "cobblemon:block/functional/copper_appliances/copper_fan",
"blades": "cobblemon:block/functional/copper_appliances/copper_fan_blades_unpowered",
"particle": "block/chiseled_copper"
},
"elements": [
{
"name": "stand",
"from": [6, 0, 6],
"to": [10, 2, 10],
"rotation": {"angle": 0, "axis": "y", "origin": [6, 0, 6]},
"faces": {
"north": {"uv": [10, 11, 12, 12], "texture": "#texture"},
"east": {"uv": [8, 11, 10, 12], "texture": "#texture"},
"south": {"uv": [14, 11, 16, 12], "texture": "#texture"},
"west": {"uv": [12, 11, 14, 12], "texture": "#texture"},
"up": {"uv": [12, 11, 10, 9], "texture": "#texture"},
"down": {"uv": [14, 9, 12, 11], "texture": "#texture", "cullface": "down"}
}
},
{
"name": "frame_bottom",
"from": [1, 2, 7],
"to": [15, 4, 9],
"rotation": {"angle": 0, "axis": "y", "origin": [2, 2, 7]},
"faces": {
"north": {"uv": [1, 7, 8, 8], "texture": "#texture"},
"east": {"uv": [0, 7, 1, 8], "texture": "#texture"},
"south": {"uv": [9, 7, 16, 8], "texture": "#texture"},
"west": {"uv": [8, 7, 9, 8], "texture": "#texture"},
"up": {"uv": [8, 9, 1, 8], "texture": "#texture"},
"down": {"uv": [16, 8, 9, 9], "texture": "#texture"}
}
},
{
"name": "frame_top",
"from": [1, 14, 7],
"to": [15, 16, 9],
"rotation": {"angle": 0, "axis": "y", "origin": [2, 14, 7]},
"faces": {
"north": {"uv": [1, 1, 8, 2], "texture": "#texture"},
"east": {"uv": [0, 1, 1, 2], "texture": "#texture"},
"south": {"uv": [9, 1, 16, 2], "texture": "#texture"},
"west": {"uv": [8, 1, 9, 2], "texture": "#texture"},
"up": {"uv": [8, 1, 1, 0], "texture": "#texture"},
"down": {"uv": [16, 0, 9, 1], "texture": "#texture"}
}
},
{
"name": "frame_west",
"from": [1, 4, 7],
"to": [3, 14, 9],
"rotation": {"angle": 0, "axis": "y", "origin": [1, 4, 7]},
"faces": {
"north": {"uv": [7, 2, 8, 7], "texture": "#texture"},
"east": {"uv": [6, 2, 7, 7], "texture": "#texture"},
"south": {"uv": [9, 2, 10, 7], "texture": "#texture"},
"west": {"uv": [8, 2, 9, 7], "texture": "#texture"}
}
},
{
"name": "frame_east",
"from": [13, 4, 7],
"to": [15, 14, 9],
"rotation": {"angle": 0, "axis": "y", "origin": [13, 4, 7]},
"faces": {
"north": {"uv": [1, 2, 2, 7], "texture": "#texture"},
"east": {"uv": [0, 2, 1, 7], "texture": "#texture"},
"south": {"uv": [15, 2, 16, 7], "texture": "#texture"},
"west": {"uv": [2, 2, 3, 7], "texture": "#texture"}
}
},
{
"name": "nose",
"from": [7, 8, 7.5],
"to": [9, 10, 8.5],
"rotation": {"angle": 0, "axis": "y", "origin": [7, 6, 7]},
"faces": {
"north": {"uv": [4, 4, 5, 5], "texture": "#texture"},
"east": {"uv": [3.5, 4, 4, 5], "texture": "#texture"},
"west": {"uv": [5, 4, 5.5, 5], "texture": "#texture"},
"up": {"uv": [5, 4, 4, 3.5], "texture": "#texture"},
"down": {"uv": [5, 5, 4, 5.5], "texture": "#texture"}
}
},
{
"name": "blades",
"from": [3, 4, 8],
"to": [13, 14, 8],
"rotation": {"angle": 0, "axis": "y", "origin": [4, 5, 8]},
"faces": {
"north": {"uv": [0, 0, 10, 10], "texture": "#blades"},
"south": {"uv": [10, 0, 0, 10], "texture": "#blades"}
}
},
{
"name": "beams",
"from": [3, 4, 8.5],
"to": [13, 14, 8.5],
"rotation": {"angle": 0, "axis": "y", "origin": [4, 5, 8.5]},
"faces": {
"north": {"uv": [15, 2, 10, 7], "texture": "#texture"},
"south": {"uv": [10, 2, 15, 7], "texture": "#texture"}
}
}
],
"display": {
"thirdperson_righthand": {
"rotation": [75, 45, 0],
"translation": [0, 1.5, 0],
"scale": [0.375, 0.375, 0.375]
},
"thirdperson_lefthand": {
"rotation": [75, 45, 0],
"translation": [0, 1.5, 0],
"scale": [0.375, 0.375, 0.375]
},
"firstperson_righthand": {
"rotation": [0, 45, 0],
"translation": [1, 0, 0],
"scale": [0.4, 0.4, 0.4]
},
"firstperson_lefthand": {
"rotation": [0, -135, 0],
"scale": [0.4, 0.4, 0.4]
},
"ground": {
"translation": [0, 3, 0],
"scale": [0.25, 0.25, 0.25]
},
"gui": {
"rotation": [30, -135, 0],
"scale": [0.625, 0.625, 0.625]
},
"fixed": {
"scale": [0.5, 0.5, 0.5]
}
},
"groups": [
{
"name": "fan",
"origin": [7, 6, 7],
"scope": 0,
"color": 0,
"children": [0, 1, 2, 3, 4, 5, 6, 7]
}
]
}
@@ -0,0 +1,116 @@
{
"format_version": "1.9.0",
"credit": "Made with Blockbench",
"texture_size": [64, 64],
"textures": {
"texture": "cobblemon:block/functional/copper_appliances/copper_fridge",
"particle": "block/chiseled_copper"
},
"elements": [
{
"name": "back",
"from": [0, 1, 1],
"to": [16, 16, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [0, 1, 0]},
"faces": {
"north": {"uv": [3.75, 7.75, 7.75, 11.5], "texture": "#texture"},
"east": {"uv": [0, 7.75, 3.75, 11.5], "texture": "#texture", "cullface": "east"},
"south": {"uv": [11.5, 7.75, 15.5, 11.5], "texture": "#texture", "cullface": "south"},
"west": {"uv": [7.75, 7.75, 11.5, 11.5], "texture": "#texture", "cullface": "west"},
"down": {"uv": [11.75, 0, 7.75, 3.75], "texture": "#texture"}
}
},
{
"name": "feet",
"from": [1, 0, 2],
"to": [15, 1, 15],
"rotation": {"angle": 0, "axis": "y", "origin": [1, 0, 2]},
"faces": {
"north": {"uv": [4.5, 15, 8, 15.25], "texture": "#texture"},
"east": {"uv": [1.25, 15, 4.5, 15.25], "texture": "#texture"},
"south": {"uv": [11.25, 15, 14.75, 15.25], "texture": "#texture"},
"west": {"uv": [8, 15, 11.25, 15.25], "texture": "#texture"},
"down": {"uv": [11.5, 11.75, 8, 15], "texture": "#texture", "cullface": "down"}
}
}
],
"display": {
"thirdperson_righthand": {
"rotation": [75, 135, 0],
"translation": [0, 2.5, 0],
"scale": [0.375, 0.375, 0.375]
},
"thirdperson_lefthand": {
"rotation": [75, 135, 0],
"translation": [0, 2.5, 0],
"scale": [0.375, 0.375, 0.375]
},
"firstperson_righthand": {
"rotation": [0, 135, 0],
"translation": [0, -1, 0],
"scale": [0.4, 0.4, 0.4]
},
"firstperson_lefthand": {
"rotation": [0, 135, 0],
"translation": [0, -1, 0],
"scale": [0.4, 0.4, 0.4]
},
"ground": {
"translation": [0, 3, 0],
"scale": [0.25, 0.25, 0.25]
},
"gui": {
"rotation": [30, -135, 0],
"translation": [0, -3, 0],
"scale": [0.425, 0.425, 0.425]
},
"fixed": {
"translation": [0, -3.75, 0],
"scale": [0.5, 0.5, 0.5]
},
"on_shelf": {
"rotation": [0, -180, 0]
}
},
"groups": [
{
"name": "fridge",
"origin": [8, 0, 8],
"scope": 0,
"color": 0,
"children": [
{
"name": "fridge_bottom",
"origin": [8, 8, 8],
"scope": 0,
"color": 0,
"children": [
0,
1,
{
"name": "drawer",
"origin": [8, 8, 8],
"scope": 0,
"color": 0,
"children": []
},
{
"name": "door_west2",
"origin": [0, 16, 5],
"scope": 0,
"color": 0,
"children": []
},
{
"name": "door_east2",
"origin": [16, 16, 5],
"scope": 0,
"color": 0,
"children": []
}
]
}
]
}
]
}
@@ -0,0 +1,47 @@
{
"format_version": "1.9.0",
"credit": "Made with Blockbench",
"texture_size": [64, 64],
"textures": {
"texture": "cobblemon:block/functional/copper_appliances/copper_fridge",
"particle": "block/chiseled_copper"
},
"elements": [
{
"from": [0, 0, 1],
"to": [16, 16, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [0, -16, 0]},
"faces": {
"north": {"uv": [3.75, 3.75, 7.75, 7.75], "texture": "#texture"},
"east": {"uv": [0, 3.75, 3.75, 7.75], "texture": "#texture", "cullface": "east"},
"south": {"uv": [11.5, 3.75, 15.5, 7.75], "texture": "#texture", "cullface": "south"},
"west": {"uv": [7.75, 3.75, 11.5, 7.75], "texture": "#texture", "cullface": "west"},
"up": {"uv": [7.75, 3.75, 3.75, 0], "texture": "#texture", "cullface": "up"}
}
},
{
"from": [4, 2, 0],
"to": [6, 5, 1],
"rotation": {"angle": 0, "axis": "y", "origin": [4, 2, 0]},
"faces": {
"north": {"uv": [1.5, 0.25, 2, 1], "texture": "#texture"},
"east": {"uv": [1.25, 0.25, 1.5, 1], "texture": "#texture"},
"west": {"uv": [2, 0.25, 2.25, 1], "texture": "#texture"},
"up": {"uv": [2, 0.25, 1.5, 0], "texture": "#texture"},
"down": {"uv": [2.5, 0, 2, 0.25], "texture": "#texture"}
}
},
{
"from": [10, 2, 0],
"to": [12, 5, 1],
"rotation": {"angle": 0, "axis": "y", "origin": [10, 2, 0]},
"faces": {
"north": {"uv": [0.25, 0.25, 0.75, 1], "texture": "#texture"},
"east": {"uv": [0, 0.25, 0.25, 1], "texture": "#texture"},
"west": {"uv": [0.75, 0.25, 1, 1], "texture": "#texture"},
"up": {"uv": [0.75, 0.25, 0.25, 0], "texture": "#texture"},
"down": {"uv": [1.25, 0, 0.75, 0.25], "texture": "#texture"}
}
}
]
}
@@ -0,0 +1,160 @@
{
"format_version": "1.21.11",
"credit": "Made with Blockbench",
"texture_size": [64, 32],
"textures": {
"texture": "cobblemon:block/functional/copper_appliances/copper_mower",
"particle": "block/chiseled_copper"
},
"elements": [
{
"from": [1, 0, 10],
"to": [15, 10, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [2, 0, 11]},
"faces": {
"north": {"uv": [1.5, 3, 5, 8], "texture": "#texture"},
"east": {"uv": [0, 3, 1.5, 8], "texture": "#texture"},
"south": {"uv": [6.5, 3, 10, 8], "texture": "#texture", "cullface": "south"},
"west": {"uv": [5, 3, 6.5, 8], "texture": "#texture"},
"up": {"uv": [5, 3, 1.5, 0], "texture": "#texture"},
"down": {"uv": [8.5, 0, 5, 3], "texture": "#texture", "cullface": "down"}
}
},
{
"from": [3, 0, 0],
"to": [13, 6, 10],
"rotation": {"angle": 0, "axis": "y", "origin": [4, 0, 1]},
"faces": {
"north": {"uv": [2.5, 13, 5, 16], "texture": "#texture"},
"east": {"uv": [0, 13, 2.5, 16], "texture": "#texture"},
"west": {"uv": [5, 13, 7.5, 16], "texture": "#texture"},
"up": {"uv": [5, 13, 2.5, 8], "texture": "#texture"},
"down": {"uv": [7.5, 8, 5, 13], "texture": "#texture", "cullface": "down"}
}
},
{
"from": [2, 0, 3],
"to": [3, 5, 8],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 2.5, 5.5]},
"faces": {
"north": {"uv": [14.25, 3, 14.5, 5.5], "texture": "#texture"},
"south": {"uv": [15.75, 3, 16, 5.5], "texture": "#texture"},
"west": {"uv": [14.5, 3, 15.75, 5.5], "texture": "#texture"},
"up": {"uv": [14.5, 3, 14.25, 0.5], "texture": "#texture"},
"down": {"uv": [14.75, 0.5, 14.5, 3], "texture": "#texture", "cullface": "down"}
}
},
{
"from": [13, 0, 3],
"to": [14, 5, 8],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 2.5, 5.5]},
"faces": {
"north": {"uv": [11.25, 3, 11.5, 5.5], "texture": "#texture"},
"east": {"uv": [10, 3, 11.25, 5.5], "texture": "#texture"},
"south": {"uv": [12.75, 3, 13, 5.5], "texture": "#texture"},
"up": {"uv": [11.5, 3, 11.25, 0.5], "texture": "#texture"},
"down": {"uv": [11.75, 0.5, 11.5, 3], "texture": "#texture", "cullface": "down"}
}
},
{
"from": [6.5, 6, 4.5],
"to": [9.5, 10, 7.5],
"rotation": {"angle": 22.5, "axis": "x", "origin": [8, 6, 4.5]},
"faces": {
"north": {"uv": [12.25, 13, 13, 15], "texture": "#texture"},
"east": {"uv": [11.5, 13, 12.25, 15], "texture": "#texture"},
"south": {"uv": [13.75, 13, 14.5, 15], "texture": "#texture"},
"west": {"uv": [13, 13, 13.75, 15], "texture": "#texture"},
"up": {"uv": [13, 13, 12.25, 11.5], "texture": "#texture"}
}
},
{
"from": [7, 10, 5],
"to": [9, 15, 7],
"rotation": {"angle": 22.5, "axis": "x", "origin": [8, 6, 4.5]},
"faces": {
"north": {"uv": [12.5, 9, 13, 11.5], "texture": "#texture"},
"east": {"uv": [12, 9, 12.5, 11.5], "texture": "#texture"},
"south": {"uv": [13.5, 9, 14, 11.5], "texture": "#texture"},
"west": {"uv": [13, 9, 13.5, 11.5], "texture": "#texture"}
}
},
{
"from": [4, 15, 5],
"to": [12, 17, 7],
"rotation": {"angle": 22.5, "axis": "x", "origin": [8, 6, 4.5]},
"faces": {
"north": {"uv": [11, 7, 13, 8], "texture": "#texture"},
"east": {"uv": [10.5, 7, 11, 8], "texture": "#texture"},
"south": {"uv": [13.5, 7, 15.5, 8], "texture": "#texture"},
"west": {"uv": [13, 7, 13.5, 8], "texture": "#texture"},
"up": {"uv": [13, 7, 11, 6], "texture": "#texture"},
"down": {"uv": [15, 6, 13, 7], "texture": "#texture"}
}
}
],
"display": {
"thirdperson_righthand": {
"rotation": [75, 45, 0],
"translation": [0, 2.5, 0],
"scale": [0.375, 0.375, 0.375]
},
"thirdperson_lefthand": {
"rotation": [75, 45, 0],
"translation": [0, 2.5, 0],
"scale": [0.375, 0.375, 0.375]
},
"firstperson_righthand": {
"rotation": [0, 45, 0],
"scale": [0.4, 0.4, 0.4]
},
"firstperson_lefthand": {
"rotation": [0, 45, 0],
"scale": [0.4, 0.4, 0.4]
},
"ground": {
"translation": [0, 3, 0],
"scale": [0.25, 0.25, 0.25]
},
"gui": {
"rotation": [30, -135, 0],
"scale": [0.625, 0.625, 0.625]
},
"head": {
"translation": [0, 14.25, 0]
},
"fixed": {
"rotation": [0, 90, 0],
"scale": [0.5, 0.5, 0.5]
},
"on_shelf": {
"rotation": [0, -180, 0]
}
},
"groups": [
{
"name": "mower",
"origin": [8, 0, 8],
"scope": 0,
"color": 0,
"children": [
0,
1,
{
"name": "wheels",
"origin": [8, 2, 6],
"scope": 0,
"color": 4,
"children": [2, 3]
},
{
"name": "handle",
"origin": [8, 6, 4.5],
"scope": 0,
"color": 1,
"children": [4, 5, 6]
}
]
}
]
}
@@ -0,0 +1,167 @@
{
"format_version": "1.9.0",
"credit": "Made with Blockbench",
"texture_size": [64, 32],
"textures": {
"texture": "cobblemon:block/functional/copper_appliances/copper_oven",
"particle": "block/chiseled_copper"
},
"elements": [
{
"name": "west",
"from": [1, 0, 5],
"to": [2, 10, 15],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 5, 10]},
"faces": {
"north": {"uv": [8, 6.5, 8.25, 11.5], "texture": "#texture"},
"east": {"uv": [5.5, 6.5, 8, 11.5], "texture": "#texture"},
"south": {"uv": [10.75, 6.5, 11, 11.5], "texture": "#texture"},
"west": {"uv": [8.25, 6.5, 10.75, 11.5], "texture": "#texture"},
"up": {"uv": [8.25, 6.5, 5.75, 6], "rotation": 90, "texture": "#texture"},
"down": {"uv": [8.25, 6.5, 10.75, 6], "rotation": 90, "texture": "#texture", "cullface": "down"}
}
},
{
"name": "east",
"from": [14, 0, 5],
"to": [15, 10, 15],
"rotation": {"angle": 0, "axis": "y", "origin": [20, 5, 10]},
"faces": {
"north": {"uv": [2.5, 6.5, 2.75, 11.5], "texture": "#texture"},
"east": {"uv": [0, 6.5, 2.5, 11.5], "texture": "#texture"},
"south": {"uv": [5.25, 6.5, 5.5, 11.5], "texture": "#texture"},
"west": {"uv": [2.75, 6.5, 5.25, 11.5], "texture": "#texture"},
"up": {"uv": [2.75, 6.5, 0.25, 6], "rotation": 90, "texture": "#texture"},
"down": {"uv": [2.75, 6.5, 5.25, 6], "rotation": 90, "texture": "#texture", "cullface": "down"}
}
},
{
"name": "bottom",
"from": [2, 0, 5],
"to": [14, 1, 15],
"rotation": {"angle": 0, "axis": "y", "origin": [9, 5, 10]},
"faces": {
"north": {"uv": [10, 5, 13, 5.5], "texture": "#texture"},
"south": {"uv": [13, 5, 16, 5.5], "texture": "#texture"},
"up": {"uv": [13, 5, 10, 0], "texture": "#texture"},
"down": {"uv": [16, 0, 13, 5], "texture": "#texture", "cullface": "down"}
}
},
{
"name": "top",
"from": [2, 8, 5],
"to": [14, 10, 15],
"rotation": {"angle": 0, "axis": "y", "origin": [9, 13, 10]},
"faces": {
"north": {"uv": [0, 5, 3, 6], "texture": "#texture"},
"south": {"uv": [3, 5, 6, 6], "texture": "#texture"},
"up": {"uv": [3, 5, 0, 0], "texture": "#texture"},
"down": {"uv": [6, 0, 3, 5], "texture": "#texture"}
}
},
{
"name": "back",
"from": [2, 1, 14],
"to": [14, 8, 15],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 5, 10]},
"faces": {
"north": {"uv": [10, 11.5, 13, 15], "texture": "#texture"},
"south": {"uv": [13, 11.5, 16, 15], "texture": "#texture"}
}
},
{
"from": [4.5, 1, 6.5],
"to": [11.5, 2, 13.5],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 1.5, 9.5]},
"faces": {
"north": {"uv": [11.25, 10.5, 13, 11], "texture": "#texture"},
"east": {"uv": [11, 7, 11.25, 10.5], "rotation": 90, "texture": "#texture"},
"south": {"uv": [11.25, 6.5, 13, 7], "rotation": 180, "texture": "#texture"},
"west": {"uv": [13, 7, 13.25, 10.5], "rotation": 90, "texture": "#texture"},
"up": {"uv": [13, 10.5, 11.25, 7], "texture": "#texture"}
}
},
{
"from": [2, 1, 5],
"to": [14, 8, 6],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 1, 5]},
"faces": {
"north": {"uv": [4.75, 15, 7.75, 11.5], "texture": "#texture"}
}
}
],
"display": {
"thirdperson_righthand": {
"rotation": [75, 45, 0],
"translation": [0, 2.5, 0],
"scale": [0.375, 0.375, 0.375]
},
"thirdperson_lefthand": {
"rotation": [75, 45, 0],
"translation": [0, 2.5, 0],
"scale": [0.375, 0.375, 0.375]
},
"firstperson_righthand": {
"rotation": [0, 45, 0],
"scale": [0.4, 0.4, 0.4]
},
"firstperson_lefthand": {
"rotation": [0, -135, 0],
"scale": [0.4, 0.4, 0.4]
},
"ground": {
"translation": [0, 3, 0],
"scale": [0.25, 0.25, 0.25]
},
"gui": {
"rotation": [30, -135, 0],
"scale": [0.625, 0.625, 0.625]
},
"head": {
"translation": [0, 14.5, 0]
},
"fixed": {
"scale": [0.5, 0.5, 0.5]
},
"on_shelf": {
"rotation": [0, -180, 0]
}
},
"groups": [
{
"name": "shell",
"origin": [8, 5, 9],
"scope": 0,
"color": 0,
"children": [
0,
1,
2,
3,
4,
{
"name": "table",
"origin": [8, 5, 9],
"scope": 0,
"color": 0,
"children": [5]
}
]
},
{
"name": "door",
"origin": [8, 8, 8],
"scope": 0,
"color": 0,
"children": [
{
"name": "closed",
"origin": [8, 8, 8],
"scope": 0,
"color": 0,
"children": [6]
}
]
}
]
}
@@ -0,0 +1,172 @@
{
"format_version": "1.9.0",
"credit": "Made with Blockbench",
"texture_size": [64, 32],
"textures": {
"texture": "cobblemon:block/functional/copper_appliances/copper_oven",
"particle": "block/chiseled_copper"
},
"elements": [
{
"name": "west",
"from": [1, 0, 5],
"to": [2, 10, 15],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 5, 10]},
"faces": {
"north": {"uv": [8, 6.5, 8.25, 11.5], "texture": "#texture"},
"east": {"uv": [5.5, 6.5, 8, 11.5], "texture": "#texture"},
"south": {"uv": [10.75, 6.5, 11, 11.5], "texture": "#texture"},
"west": {"uv": [8.25, 6.5, 10.75, 11.5], "texture": "#texture"},
"up": {"uv": [8.25, 6.5, 5.75, 6], "rotation": 90, "texture": "#texture"},
"down": {"uv": [8.25, 6.5, 10.75, 6], "rotation": 90, "texture": "#texture", "cullface": "down"}
}
},
{
"name": "east",
"from": [14, 0, 5],
"to": [15, 10, 15],
"rotation": {"angle": 0, "axis": "y", "origin": [20, 5, 10]},
"faces": {
"north": {"uv": [2.5, 6.5, 2.75, 11.5], "texture": "#texture"},
"east": {"uv": [0, 6.5, 2.5, 11.5], "texture": "#texture"},
"south": {"uv": [5.25, 6.5, 5.5, 11.5], "texture": "#texture"},
"west": {"uv": [2.75, 6.5, 5.25, 11.5], "texture": "#texture"},
"up": {"uv": [2.75, 6.5, 0.25, 6], "rotation": 90, "texture": "#texture"},
"down": {"uv": [2.75, 6.5, 5.25, 6], "rotation": 90, "texture": "#texture", "cullface": "down"}
}
},
{
"name": "bottom",
"from": [2, 0, 5],
"to": [14, 1, 15],
"rotation": {"angle": 0, "axis": "y", "origin": [9, 5, 10]},
"faces": {
"north": {"uv": [10, 5, 13, 5.5], "texture": "#texture"},
"south": {"uv": [13, 5, 16, 5.5], "texture": "#texture"},
"up": {"uv": [13, 5, 10, 0], "texture": "#texture"},
"down": {"uv": [16, 0, 13, 5], "texture": "#texture", "cullface": "down"}
}
},
{
"name": "top",
"from": [2, 8, 5],
"to": [14, 10, 15],
"rotation": {"angle": 0, "axis": "y", "origin": [9, 13, 10]},
"faces": {
"north": {"uv": [0, 5, 3, 6], "texture": "#texture"},
"south": {"uv": [3, 5, 6, 6], "texture": "#texture"},
"up": {"uv": [3, 5, 0, 0], "texture": "#texture"},
"down": {"uv": [6, 0, 3, 5], "texture": "#texture"}
}
},
{
"name": "back",
"from": [2, 1, 14],
"to": [14, 8, 15],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 5, 10]},
"faces": {
"north": {"uv": [10, 11.5, 13, 15], "texture": "#texture"},
"south": {"uv": [13, 11.5, 16, 15], "texture": "#texture"}
}
},
{
"from": [4.5, 1, 6.5],
"to": [11.5, 2, 13.5],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 1.5, 9.5]},
"faces": {
"north": {"uv": [11.25, 10.5, 13, 11], "texture": "#texture"},
"east": {"uv": [11, 7, 11.25, 10.5], "rotation": 90, "texture": "#texture"},
"south": {"uv": [11.25, 6.5, 13, 7], "rotation": 180, "texture": "#texture"},
"west": {"uv": [13, 7, 13.25, 10.5], "rotation": 90, "texture": "#texture"},
"up": {"uv": [13, 10.5, 11.25, 7], "texture": "#texture"}
}
},
{
"from": [2, 1, -1],
"to": [14, 2, 6],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 1, 6]},
"faces": {
"north": {"uv": [1.75, 15, 4.75, 15.5], "texture": "#texture"},
"east": {"uv": [0, 15, 1.75, 15.5], "texture": "#texture"},
"south": {"uv": [6.5, 15, 9.5, 15.5], "texture": "#texture"},
"west": {"uv": [4.75, 15, 6.5, 15.5], "texture": "#texture"},
"up": {"uv": [4.75, 15, 1.75, 11.5], "texture": "#texture"},
"down": {"uv": [7.75, 11.5, 4.75, 15], "texture": "#texture"}
}
}
],
"display": {
"thirdperson_righthand": {
"rotation": [75, 45, 0],
"translation": [0, 2.5, 0],
"scale": [0.375, 0.375, 0.375]
},
"thirdperson_lefthand": {
"rotation": [75, 45, 0],
"translation": [0, 2.5, 0],
"scale": [0.375, 0.375, 0.375]
},
"firstperson_righthand": {
"rotation": [0, 45, 0],
"scale": [0.4, 0.4, 0.4]
},
"firstperson_lefthand": {
"rotation": [0, -135, 0],
"scale": [0.4, 0.4, 0.4]
},
"ground": {
"translation": [0, 3, 0],
"scale": [0.25, 0.25, 0.25]
},
"gui": {
"rotation": [30, -135, 0],
"scale": [0.625, 0.625, 0.625]
},
"head": {
"translation": [0, 14.5, 0]
},
"fixed": {
"scale": [0.5, 0.5, 0.5]
},
"on_shelf": {
"rotation": [0, -180, 0]
}
},
"groups": [
{
"name": "shell",
"origin": [8, 5, 9],
"scope": 0,
"color": 0,
"children": [
0,
1,
2,
3,
4,
{
"name": "table",
"origin": [8, 5, 9],
"scope": 0,
"color": 0,
"children": [5]
}
]
},
{
"name": "door",
"origin": [8, 8, 8],
"scope": 0,
"color": 0,
"children": [
{
"name": "open",
"origin": [8, 8, 8],
"scope": 0,
"color": 0,
"children": [6]
}
]
}
]
}
@@ -0,0 +1,106 @@
{
"format_version": "1.9.0",
"credit": "Made with Blockbench",
"texture_size": [32, 32],
"textures": {
"texture": "cobblemon:block/functional/copper_appliances/copper_fan",
"blades": "cobblemon:block/functional/copper_appliances/copper_fan_blades_slow",
"particle": "block/chiseled_copper"
},
"elements": [
{
"name": "frame_bottom",
"from": [1, 1, 14],
"to": [15, 3, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [2, 1, 14]},
"faces": {
"north": {"uv": [1, 12.5, 8, 13.5], "texture": "#texture"},
"east": {"uv": [0, 7, 1, 8], "texture": "#texture"},
"south": {"uv": [9, 7, 16, 8], "texture": "#texture"},
"west": {"uv": [8, 7, 9, 8], "texture": "#texture"},
"up": {"uv": [8, 9, 1, 8], "texture": "#texture"},
"down": {"uv": [16, 8, 9, 9], "texture": "#texture"}
}
},
{
"name": "frame_top",
"from": [1, 13, 14],
"to": [15, 15, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [2, 13, 14]},
"faces": {
"north": {"uv": [1, 1, 8, 2], "texture": "#texture"},
"east": {"uv": [0, 1, 1, 2], "texture": "#texture"},
"south": {"uv": [9, 1, 16, 2], "texture": "#texture"},
"west": {"uv": [8, 1, 9, 2], "texture": "#texture"},
"up": {"uv": [8, 1, 1, 0], "texture": "#texture"},
"down": {"uv": [16, 0, 9, 1], "texture": "#texture"}
}
},
{
"name": "frame_west",
"from": [1, 3, 14],
"to": [3, 13, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [1, 3, 14]},
"faces": {
"north": {"uv": [7, 2, 8, 7], "texture": "#texture"},
"east": {"uv": [6, 2, 7, 7], "texture": "#texture"},
"south": {"uv": [9, 2, 10, 7], "texture": "#texture"},
"west": {"uv": [8, 2, 9, 7], "texture": "#texture"}
}
},
{
"name": "frame_east",
"from": [13, 3, 14],
"to": [15, 13, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [13, 3, 14]},
"faces": {
"north": {"uv": [1, 2, 2, 7], "texture": "#texture"},
"east": {"uv": [0, 2, 1, 7], "texture": "#texture"},
"south": {"uv": [15, 2, 16, 7], "texture": "#texture"},
"west": {"uv": [2, 2, 3, 7], "texture": "#texture"}
}
},
{
"name": "nose",
"from": [7, 7, 14.5],
"to": [9, 9, 15.5],
"rotation": {"angle": 0, "axis": "y", "origin": [7, 5, 14]},
"faces": {
"north": {"uv": [4, 4, 5, 5], "texture": "#texture"},
"east": {"uv": [3.5, 4, 4, 5], "texture": "#texture"},
"west": {"uv": [5, 4, 5.5, 5], "texture": "#texture"},
"up": {"uv": [5, 4, 4, 3.5], "texture": "#texture"},
"down": {"uv": [5, 5, 4, 5.5], "texture": "#texture"}
}
},
{
"name": "blades",
"from": [3, 3, 15],
"to": [13, 13, 15],
"rotation": {"angle": 0, "axis": "y", "origin": [4, 4, 15]},
"faces": {
"north": {"uv": [0, 0, 10, 10], "texture": "#blades"},
"south": {"uv": [10, 0, 0, 10], "texture": "#blades"}
}
},
{
"name": "beams",
"from": [3, 3, 15.5],
"to": [13, 13, 15.5],
"rotation": {"angle": 0, "axis": "y", "origin": [4, 4, 15.5]},
"faces": {
"north": {"uv": [15, 2, 10, 7], "texture": "#texture"},
"south": {"uv": [10, 2, 15, 7], "texture": "#texture"}
}
}
],
"groups": [
{
"name": "fan",
"origin": [7, 6, 7],
"scope": 0,
"color": 0,
"children": [0, 1, 2, 3, 4, 5, 6]
}
]
}
@@ -0,0 +1,6 @@
{
"parent": "cobblemon:block/copper_fan_decorative",
"textures": {
"blades": "cobblemon:block/functional/copper_appliances/copper_fan_blades_fast"
}
}
@@ -0,0 +1,106 @@
{
"format_version": "1.9.0",
"credit": "Made with Blockbench",
"texture_size": [32, 32],
"textures": {
"texture": "cobblemon:block/functional/copper_appliances/copper_fan",
"blades": "cobblemon:block/functional/copper_appliances/copper_fan_blades_slow",
"particle": "block/chiseled_copper"
},
"elements": [
{
"name": "frame_bottom",
"from": [1, 1, 14],
"to": [15, 3, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [2, 1, 14]},
"faces": {
"north": {"uv": [1, 11, 8, 12], "texture": "#texture"},
"east": {"uv": [0, 7, 1, 8], "texture": "#texture"},
"south": {"uv": [9, 7, 16, 8], "texture": "#texture"},
"west": {"uv": [8, 7, 9, 8], "texture": "#texture"},
"up": {"uv": [8, 9, 1, 8], "texture": "#texture"},
"down": {"uv": [16, 8, 9, 9], "texture": "#texture"}
}
},
{
"name": "frame_top",
"from": [1, 13, 14],
"to": [15, 15, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [2, 13, 14]},
"faces": {
"north": {"uv": [1, 1, 8, 2], "texture": "#texture"},
"east": {"uv": [0, 1, 1, 2], "texture": "#texture"},
"south": {"uv": [9, 1, 16, 2], "texture": "#texture"},
"west": {"uv": [8, 1, 9, 2], "texture": "#texture"},
"up": {"uv": [8, 1, 1, 0], "texture": "#texture"},
"down": {"uv": [16, 0, 9, 1], "texture": "#texture"}
}
},
{
"name": "frame_west",
"from": [1, 3, 14],
"to": [3, 13, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [1, 3, 14]},
"faces": {
"north": {"uv": [7, 2, 8, 7], "texture": "#texture"},
"east": {"uv": [6, 2, 7, 7], "texture": "#texture"},
"south": {"uv": [9, 2, 10, 7], "texture": "#texture"},
"west": {"uv": [8, 2, 9, 7], "texture": "#texture"}
}
},
{
"name": "frame_east",
"from": [13, 3, 14],
"to": [15, 13, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [13, 3, 14]},
"faces": {
"north": {"uv": [1, 2, 2, 7], "texture": "#texture"},
"east": {"uv": [0, 2, 1, 7], "texture": "#texture"},
"south": {"uv": [15, 2, 16, 7], "texture": "#texture"},
"west": {"uv": [2, 2, 3, 7], "texture": "#texture"}
}
},
{
"name": "nose",
"from": [7, 7, 14.5],
"to": [9, 9, 15.5],
"rotation": {"angle": 0, "axis": "y", "origin": [7, 5, 14]},
"faces": {
"north": {"uv": [4, 4, 5, 5], "texture": "#texture"},
"east": {"uv": [3.5, 4, 4, 5], "texture": "#texture"},
"west": {"uv": [5, 4, 5.5, 5], "texture": "#texture"},
"up": {"uv": [5, 4, 4, 3.5], "texture": "#texture"},
"down": {"uv": [5, 5, 4, 5.5], "texture": "#texture"}
}
},
{
"name": "blades",
"from": [3, 3, 15],
"to": [13, 13, 15],
"rotation": {"angle": 0, "axis": "y", "origin": [4, 4, 15]},
"faces": {
"north": {"uv": [0, 0, 10, 10], "texture": "#blades"},
"south": {"uv": [10, 0, 0, 10], "texture": "#blades"}
}
},
{
"name": "beams",
"from": [3, 3, 15.5],
"to": [13, 13, 15.5],
"rotation": {"angle": 0, "axis": "y", "origin": [4, 4, 15.5]},
"faces": {
"north": {"uv": [15, 2, 10, 7], "texture": "#texture"},
"south": {"uv": [10, 2, 15, 7], "texture": "#texture"}
}
}
],
"groups": [
{
"name": "fan",
"origin": [7, 6, 7],
"scope": 0,
"color": 0,
"children": [0, 1, 2, 3, 4, 5, 6]
}
]
}
@@ -0,0 +1,6 @@
{
"parent": "cobblemon:block/copper_fan_pushing",
"textures": {
"blades": "cobblemon:block/functional/copper_appliances/copper_fan_blades_fast"
}
}
@@ -0,0 +1,106 @@
{
"format_version": "1.9.0",
"credit": "Made with Blockbench",
"texture_size": [32, 32],
"textures": {
"texture": "cobblemon:block/functional/copper_appliances/copper_fan",
"blades": "cobblemon:block/functional/copper_appliances/copper_fan_blades_unpowered",
"particle": "block/chiseled_copper"
},
"elements": [
{
"name": "frame_bottom",
"from": [1, 1, 14],
"to": [15, 3, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [2, 1, 14]},
"faces": {
"north": {"uv": [1, 9.5, 8, 10.5], "texture": "#texture"},
"east": {"uv": [0, 7, 1, 8], "texture": "#texture"},
"south": {"uv": [9, 7, 16, 8], "texture": "#texture"},
"west": {"uv": [8, 7, 9, 8], "texture": "#texture"},
"up": {"uv": [8, 9, 1, 8], "texture": "#texture"},
"down": {"uv": [16, 8, 9, 9], "texture": "#texture"}
}
},
{
"name": "frame_top",
"from": [1, 13, 14],
"to": [15, 15, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [2, 13, 14]},
"faces": {
"north": {"uv": [1, 1, 8, 2], "texture": "#texture"},
"east": {"uv": [0, 1, 1, 2], "texture": "#texture"},
"south": {"uv": [9, 1, 16, 2], "texture": "#texture"},
"west": {"uv": [8, 1, 9, 2], "texture": "#texture"},
"up": {"uv": [8, 1, 1, 0], "texture": "#texture"},
"down": {"uv": [16, 0, 9, 1], "texture": "#texture"}
}
},
{
"name": "frame_west",
"from": [1, 3, 14],
"to": [3, 13, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [1, 3, 14]},
"faces": {
"north": {"uv": [7, 2, 8, 7], "texture": "#texture"},
"east": {"uv": [6, 2, 7, 7], "texture": "#texture"},
"south": {"uv": [9, 2, 10, 7], "texture": "#texture"},
"west": {"uv": [8, 2, 9, 7], "texture": "#texture"}
}
},
{
"name": "frame_east",
"from": [13, 3, 14],
"to": [15, 13, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [13, 3, 14]},
"faces": {
"north": {"uv": [1, 2, 2, 7], "texture": "#texture"},
"east": {"uv": [0, 2, 1, 7], "texture": "#texture"},
"south": {"uv": [15, 2, 16, 7], "texture": "#texture"},
"west": {"uv": [2, 2, 3, 7], "texture": "#texture"}
}
},
{
"name": "nose",
"from": [7, 7, 14.5],
"to": [9, 9, 15.5],
"rotation": {"angle": 0, "axis": "y", "origin": [7, 5, 14]},
"faces": {
"north": {"uv": [4, 4, 5, 5], "texture": "#texture"},
"east": {"uv": [3.5, 4, 4, 5], "texture": "#texture"},
"west": {"uv": [5, 4, 5.5, 5], "texture": "#texture"},
"up": {"uv": [5, 4, 4, 3.5], "texture": "#texture"},
"down": {"uv": [5, 5, 4, 5.5], "texture": "#texture"}
}
},
{
"name": "blades",
"from": [3, 3, 15],
"to": [13, 13, 15],
"rotation": {"angle": 0, "axis": "y", "origin": [4, 4, 15]},
"faces": {
"north": {"uv": [0, 0, 10, 10], "texture": "#blades"},
"south": {"uv": [10, 0, 0, 10], "texture": "#blades"}
}
},
{
"name": "beams",
"from": [3, 3, 15.5],
"to": [13, 13, 15.5],
"rotation": {"angle": 0, "axis": "y", "origin": [4, 4, 15.5]},
"faces": {
"north": {"uv": [15, 2, 10, 7], "texture": "#texture"},
"south": {"uv": [10, 2, 15, 7], "texture": "#texture"}
}
}
],
"groups": [
{
"name": "fan",
"origin": [7, 6, 7],
"scope": 0,
"color": 0,
"children": [0, 1, 2, 3, 4, 5, 6]
}
]
}
@@ -0,0 +1,63 @@
{
"format_version": "1.9.0",
"credit": "Made with Blockbench",
"ambientocclusion": true,
"texture_size": [64, 32],
"textures": {
"texture": "cobblemon:block/functional/copper_appliances/copper_washer",
"particle": "block/chiseled_copper"
},
"elements": [
{
"name": "tub",
"from": [1, 0, 2],
"to": [15, 16, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [2, 0, 3]},
"faces": {
"north": {"uv": [3.5, 8, 7, 16], "texture": "#texture"},
"east": {"uv": [0, 8, 3.5, 16], "texture": "#texture"},
"south": {"uv": [10.5, 8, 14, 16], "texture": "#texture", "cullface": "south"},
"west": {"uv": [7, 8, 10.5, 16], "texture": "#texture"},
"up": {"uv": [7, 8, 3.5, 1], "texture": "#texture", "cullface": "up"},
"down": {"uv": [10.5, 1, 7, 8], "texture": "#texture", "cullface": "down"}
}
}
],
"display": {
"thirdperson_righthand": {
"rotation": [75, 45, 0],
"translation": [0, 2.5, 0],
"scale": [0.375, 0.375, 0.375]
},
"thirdperson_lefthand": {
"rotation": [75, 45, 0],
"translation": [0, 2.5, 0],
"scale": [0.375, 0.375, 0.375]
},
"firstperson_righthand": {
"rotation": [0, 45, 0],
"scale": [0.4, 0.4, 0.4]
},
"firstperson_lefthand": {
"rotation": [0, 45, 0],
"scale": [0.4, 0.4, 0.4]
},
"ground": {
"translation": [0, 3, 0],
"scale": [0.25, 0.25, 0.25]
},
"gui": {
"rotation": [30, -135, 0],
"scale": [0.625, 0.625, 0.625]
},
"head": {
"translation": [0, 0, -1]
},
"fixed": {
"scale": [0.5, 0.5, 0.5]
},
"on_shelf": {
"rotation": [0, -180, 0]
}
}
}
@@ -0,0 +1,7 @@
{
"parent": "cobblemon:block/copper_fan_decorative",
"textures": {
"texture": "cobblemon:block/functional/copper_appliances/exposed_copper_fan",
"particle": "block/exposed_chiseled_copper"
}
}
@@ -0,0 +1,7 @@
{
"parent": "cobblemon:block/copper_fan_decorative_strong",
"textures": {
"texture": "cobblemon:block/functional/copper_appliances/exposed_copper_fan",
"particle": "block/exposed_chiseled_copper"
}
}
@@ -0,0 +1,7 @@
{
"parent": "cobblemon:block/copper_fan_pushing",
"textures": {
"texture": "cobblemon:block/functional/copper_appliances/exposed_copper_fan",
"particle": "block/exposed_chiseled_copper"
}
}
@@ -0,0 +1,7 @@
{
"parent": "cobblemon:block/copper_fan_pushing_strong",
"textures": {
"texture": "cobblemon:block/functional/copper_appliances/exposed_copper_fan",
"particle": "block/exposed_chiseled_copper"
}
}
@@ -0,0 +1,7 @@
{
"parent": "cobblemon:block/copper_fan_unpowered",
"textures": {
"texture": "cobblemon:block/functional/copper_appliances/exposed_copper_fan",
"particle": "block/exposed_chiseled_copper"
}
}
@@ -0,0 +1,7 @@
{
"parent": "cobblemon:block/copper_fridge_bottom",
"textures": {
"texture": "cobblemon:block/functional/copper_appliances/exposed_copper_fridge",
"particle": "block/exposed_chiseled_copper"
}
}
@@ -0,0 +1,7 @@
{
"parent": "cobblemon:block/copper_fridge_top",
"textures": {
"texture": "cobblemon:block/functional/copper_appliances/exposed_copper_fridge",
"particle": "block/exposed_chiseled_copper"
}
}
@@ -0,0 +1,7 @@
{
"parent": "cobblemon:block/copper_mower",
"textures": {
"texture": "cobblemon:block/functional/copper_appliances/exposed_copper_mower",
"particle": "block/exposed_chiseled_copper"
}
}
@@ -0,0 +1,7 @@
{
"parent": "cobblemon:block/copper_oven_closed",
"textures": {
"texture": "cobblemon:block/functional/copper_appliances/exposed_copper_oven",
"particle": "block/exposed_chiseled_copper"
}
}
@@ -0,0 +1,7 @@
{
"parent": "cobblemon:block/copper_oven_open",
"textures": {
"texture": "cobblemon:block/functional/copper_appliances/exposed_copper_oven",
"particle": "block/exposed_chiseled_copper"
}
}
@@ -0,0 +1,7 @@
{
"parent": "cobblemon:block/copper_wall_fan_decorative",
"textures": {
"texture": "cobblemon:block/functional/copper_appliances/exposed_copper_fan",
"particle": "block/exposed_chiseled_copper"
}
}
@@ -0,0 +1,7 @@
{
"parent": "cobblemon:block/copper_wall_fan_decorative_strong",
"textures": {
"texture": "cobblemon:block/functional/copper_appliances/exposed_copper_fan",
"particle": "block/exposed_chiseled_copper"
}
}
@@ -0,0 +1,7 @@
{
"parent": "cobblemon:block/copper_wall_fan_pushing",
"textures": {
"texture": "cobblemon:block/functional/copper_appliances/exposed_copper_fan",
"particle": "block/exposed_chiseled_copper"
}
}
@@ -0,0 +1,7 @@
{
"parent": "cobblemon:block/copper_wall_fan_pushing_strong",
"textures": {
"texture": "cobblemon:block/functional/copper_appliances/exposed_copper_fan",
"particle": "block/exposed_chiseled_copper"
}
}
Loaded 100 of 338 files, more files were not shown because too many files have changed in this diff. Show more